[{"data":1,"prerenderedAt":2078},["ShallowReactive",2],{"navigation_docs":3,"-frameworks-cloudflare-workers":258,"-frameworks-cloudflare-workers-surround":2073},[4,30,115,174,228,244],{"title":5,"path":6,"stem":7,"children":8,"page":29},"Getting Started","\u002Fgetting-started","1.getting-started",[9,14,19,24],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-info",{"title":15,"path":16,"stem":17,"icon":18},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Quick Start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start","i-lucide-zap",{"title":25,"path":26,"stem":27,"icon":28},"Agent Skills","\u002Fgetting-started\u002Fagent-skills","1.getting-started\u002F4.agent-skills","i-lucide-sparkles",false,{"title":31,"path":32,"stem":33,"children":34,"page":29},"Frameworks","\u002Fframeworks","2.frameworks",[35,40,45,50,55,60,65,70,75,80,85,90,95,100,105,110],{"title":36,"path":37,"stem":38,"icon":39},"Overview","\u002Fframeworks\u002Foverview","2.frameworks\u002F00.overview","i-lucide-layout-grid",{"title":41,"path":42,"stem":43,"icon":44},"Nuxt","\u002Fframeworks\u002Fnuxt","2.frameworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":46,"path":47,"stem":48,"icon":49},"Next.js","\u002Fframeworks\u002Fnextjs","2.frameworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":51,"path":52,"stem":53,"icon":54},"SvelteKit","\u002Fframeworks\u002Fsveltekit","2.frameworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":56,"path":57,"stem":58,"icon":59},"Nitro","\u002Fframeworks\u002Fnitro","2.frameworks\u002F04.nitro","i-custom-nitro",{"title":61,"path":62,"stem":63,"icon":64},"TanStack Start","\u002Fframeworks\u002Ftanstack-start","2.frameworks\u002F05.tanstack-start","i-custom-tanstack",{"title":66,"path":67,"stem":68,"icon":69},"NestJS","\u002Fframeworks\u002Fnestjs","2.frameworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":71,"path":72,"stem":73,"icon":74},"Express","\u002Fframeworks\u002Fexpress","2.frameworks\u002F07.express","i-simple-icons-express",{"title":76,"path":77,"stem":78,"icon":79},"Hono","\u002Fframeworks\u002Fhono","2.frameworks\u002F08.hono","i-simple-icons-hono",{"title":81,"path":82,"stem":83,"icon":84},"Fastify","\u002Fframeworks\u002Ffastify","2.frameworks\u002F09.fastify","i-simple-icons-fastify",{"title":86,"path":87,"stem":88,"icon":89},"Elysia","\u002Fframeworks\u002Felysia","2.frameworks\u002F10.elysia","i-custom-elysia",{"title":91,"path":92,"stem":93,"icon":94},"React Router","\u002Fframeworks\u002Freact-router","2.frameworks\u002F11.react-router","i-simple-icons-reactrouter",{"title":96,"path":97,"stem":98,"icon":99},"Cloudflare Workers","\u002Fframeworks\u002Fcloudflare-workers","2.frameworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":101,"path":102,"stem":103,"icon":104},"Standalone","\u002Fframeworks\u002Fstandalone","2.frameworks\u002F13.standalone","i-simple-icons-typescript",{"title":106,"path":107,"stem":108,"icon":109},"Astro","\u002Fframeworks\u002Fastro","2.frameworks\u002F14.astro","i-simple-icons-astro",{"title":111,"path":112,"stem":113,"icon":114},"Custom Integration","\u002Fframeworks\u002Fcustom-integration","2.frameworks\u002F15.custom-integration","i-lucide-puzzle",{"title":116,"path":117,"stem":118,"children":119,"page":29},"Core Concepts","\u002Fcore-concepts","3.core-concepts",[120,125,130,135,140,145,150,154,159,164,169],{"title":121,"path":122,"stem":123,"icon":124},"Request Lifecycle","\u002Fcore-concepts\u002Flifecycle","3.core-concepts\u002F0.lifecycle","i-lucide-arrow-right-left",{"title":126,"path":127,"stem":128,"icon":129},"Wide Events","\u002Fcore-concepts\u002Fwide-events","3.core-concepts\u002F1.wide-events","i-lucide-layers",{"title":131,"path":132,"stem":133,"icon":134},"Vite Plugin","\u002Fcore-concepts\u002Fvite-plugin","3.core-concepts\u002F10.vite-plugin","i-custom-vite",{"title":136,"path":137,"stem":138,"icon":139},"AI SDK Integration","\u002Fcore-concepts\u002Fai-sdk","3.core-concepts\u002F11.ai-sdk","i-lucide-scan-eye",{"title":141,"path":142,"stem":143,"icon":144},"Structured Errors","\u002Fcore-concepts\u002Fstructured-errors","3.core-concepts\u002F2.structured-errors","i-lucide-shield-alert",{"title":146,"path":147,"stem":148,"icon":149},"Best Practices","\u002Fcore-concepts\u002Fbest-practices","3.core-concepts\u002F3.best-practices","i-lucide-shield-check",{"title":151,"path":152,"stem":153,"icon":104},"Typed Fields","\u002Fcore-concepts\u002Ftyped-fields","3.core-concepts\u002F4.typed-fields",{"title":155,"path":156,"stem":157,"icon":158},"Sampling","\u002Fcore-concepts\u002Fsampling","3.core-concepts\u002F5.sampling","i-lucide-filter",{"title":160,"path":161,"stem":162,"icon":163},"Client Logging","\u002Fcore-concepts\u002Fclient-logging","3.core-concepts\u002F6.client-logging","i-lucide-monitor",{"title":165,"path":166,"stem":167,"icon":168},"Configuration","\u002Fcore-concepts\u002Fconfiguration","3.core-concepts\u002F7.configuration","i-lucide-settings",{"title":170,"path":171,"stem":172,"icon":173},"Performance","\u002Fcore-concepts\u002Fperformance","3.core-concepts\u002F8.performance","i-lucide-gauge",{"title":175,"path":176,"stem":177,"children":178,"page":29},"Adapters","\u002Fadapters","4.adapters",[179,183,188,193,198,203,208,213,218,223],{"title":36,"path":180,"stem":181,"icon":182},"\u002Fadapters\u002Foverview","4.adapters\u002F1.overview","i-custom-plug",{"title":184,"path":185,"stem":186,"icon":187},"Browser","\u002Fadapters\u002Fbrowser","4.adapters\u002F10.browser","i-lucide-globe",{"title":189,"path":190,"stem":191,"icon":192},"Axiom","\u002Fadapters\u002Faxiom","4.adapters\u002F2.axiom","i-custom-axiom",{"title":194,"path":195,"stem":196,"icon":197},"OTLP","\u002Fadapters\u002Fotlp","4.adapters\u002F3.otlp","i-simple-icons-opentelemetry",{"title":199,"path":200,"stem":201,"icon":202},"PostHog","\u002Fadapters\u002Fposthog","4.adapters\u002F4.posthog","i-simple-icons-posthog",{"title":204,"path":205,"stem":206,"icon":207},"Sentry","\u002Fadapters\u002Fsentry","4.adapters\u002F5.sentry","i-simple-icons-sentry",{"title":209,"path":210,"stem":211,"icon":212},"Better Stack","\u002Fadapters\u002Fbetter-stack","4.adapters\u002F6.better-stack","i-simple-icons-betterstack",{"title":214,"path":215,"stem":216,"icon":217},"File System","\u002Fadapters\u002Ffs","4.adapters\u002F7.fs","i-lucide-hard-drive",{"title":219,"path":220,"stem":221,"icon":222},"Custom Adapters","\u002Fadapters\u002Fcustom","4.adapters\u002F8.custom","i-lucide-code",{"title":224,"path":225,"stem":226,"icon":227},"Pipeline","\u002Fadapters\u002Fpipeline","4.adapters\u002F9.pipeline","i-lucide-workflow",{"title":229,"path":230,"stem":231,"children":232,"page":29},"Enrichers","\u002Fenrichers","5.enrichers",[233,236,240],{"title":36,"path":234,"stem":235,"icon":28},"\u002Fenrichers\u002Foverview","5.enrichers\u002F1.overview",{"title":237,"path":238,"stem":239,"icon":114},"Built-in","\u002Fenrichers\u002Fbuilt-in","5.enrichers\u002F2.built-in",{"title":241,"path":242,"stem":243,"icon":222},"Custom","\u002Fenrichers\u002Fcustom","5.enrichers\u002F3.custom",{"title":245,"path":246,"stem":247,"children":248,"page":29},"NuxtHub","\u002Fnuxthub","6.nuxthub",[249,253],{"title":36,"path":250,"stem":251,"icon":252},"\u002Fnuxthub\u002Foverview","6.nuxthub\u002F1.overview","i-lucide-database",{"title":254,"path":255,"stem":256,"icon":257},"Retention","\u002Fnuxthub\u002Fretention","6.nuxthub\u002F2.retention","i-lucide-clock",{"id":259,"title":96,"body":260,"description":2066,"extension":2067,"links":2068,"meta":2069,"navigation":2070,"path":97,"seo":2071,"stem":98,"__hash__":2072},"docs\u002F2.frameworks\u002F12.cloudflare-workers.md",{"type":261,"value":262,"toc":2054},"minimark",[263,276,357,361,366,386,390,673,691,699,702,705,1093,1159,1163,1170,1691,1694,1706,1710,1716,2000,2008,2012,2015,2033,2037,2050],[264,265,266,267,271,272,275],"p",{},"The ",[268,269,270],"code",{},"evlog\u002Fworkers"," adapter provides factory functions for creating request-scoped loggers with Cloudflare-specific context. Unlike framework integrations, Workers require manual ",[268,273,274],{},"log.emit()"," calls since there is no middleware lifecycle to hook into.",[277,278,279],"code-collapse",{},[280,281,287],"pre",{"className":282,"code":283,"filename":284,"language":285,"meta":286,"style":286},"language-txt shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","Set up evlog in my Cloudflare Worker.\n\n- Install evlog: pnpm add evlog\n- Import initLogger and createRequestLogger from 'evlog'\n- Call initLogger({ service: 'my-worker' }) at the top level\n- In the fetch handler, create a logger with createRequestLogger({ method, path })\n- Use log.set() to accumulate context throughout the request\n- Call log.emit() manually before returning the response (no middleware lifecycle)\n\nDocs: https:\u002F\u002Fwww.evlog.dev\u002Fframeworks\u002Fcloudflare-workers\nAdapters: https:\u002F\u002Fwww.evlog.dev\u002Fadapters\n","Prompt","txt","",[268,288,289,297,304,310,316,322,328,334,340,345,351],{"__ignoreMap":286},[290,291,294],"span",{"class":292,"line":293},"line",1,[290,295,296],{},"Set up evlog in my Cloudflare Worker.\n",[290,298,300],{"class":292,"line":299},2,[290,301,303],{"emptyLinePlaceholder":302},true,"\n",[290,305,307],{"class":292,"line":306},3,[290,308,309],{},"- Install evlog: pnpm add evlog\n",[290,311,313],{"class":292,"line":312},4,[290,314,315],{},"- Import initLogger and createRequestLogger from 'evlog'\n",[290,317,319],{"class":292,"line":318},5,[290,320,321],{},"- Call initLogger({ service: 'my-worker' }) at the top level\n",[290,323,325],{"class":292,"line":324},6,[290,326,327],{},"- In the fetch handler, create a logger with createRequestLogger({ method, path })\n",[290,329,331],{"class":292,"line":330},7,[290,332,333],{},"- Use log.set() to accumulate context throughout the request\n",[290,335,337],{"class":292,"line":336},8,[290,338,339],{},"- Call log.emit() manually before returning the response (no middleware lifecycle)\n",[290,341,343],{"class":292,"line":342},9,[290,344,303],{"emptyLinePlaceholder":302},[290,346,348],{"class":292,"line":347},10,[290,349,350],{},"Docs: https:\u002F\u002Fwww.evlog.dev\u002Fframeworks\u002Fcloudflare-workers\n",[290,352,354],{"class":292,"line":353},11,[290,355,356],{},"Adapters: https:\u002F\u002Fwww.evlog.dev\u002Fadapters\n",[358,359,20],"h2",{"id":360},"quick-start",[362,363,365],"h3",{"id":364},"_1-install","1. Install",[280,367,371],{"className":368,"code":369,"language":370,"meta":286,"style":286},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","bun add evlog\n","bash",[268,372,373],{"__ignoreMap":286},[290,374,375,379,383],{"class":292,"line":293},[290,376,378],{"class":377},"sBMFI","bun",[290,380,382],{"class":381},"sfazB"," add",[290,384,385],{"class":381}," evlog\n",[362,387,389],{"id":388},"_2-initialize-and-create-request-loggers","2. Initialize and create request loggers",[280,391,396],{"className":392,"code":393,"filename":394,"language":395,"meta":286,"style":286},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { initWorkersLogger, createWorkersLogger } from 'evlog\u002Fworkers'\n\ninitWorkersLogger({\n  env: { service: 'my-worker' },\n})\n\nexport default {\n  async fetch(request: Request, env: Env): Promise\u003CResponse> {\n    const log = createWorkersLogger(request)\n\n    log.set({ action: 'handle_request' })\n\n    \u002F\u002F ... your handler logic\n\n    log.emit()\n    return Response.json({ ok: true })\n  },\n}\n","src\u002Fworker.ts","typescript",[268,397,398,432,436,448,475,483,487,498,545,564,568,600,605,612,617,630,661,667],{"__ignoreMap":286},[290,399,400,404,408,412,415,418,421,424,427,429],{"class":292,"line":293},[290,401,403],{"class":402},"s7zQu","import",[290,405,407],{"class":406},"sMK4o"," {",[290,409,411],{"class":410},"sTEyZ"," initWorkersLogger",[290,413,414],{"class":406},",",[290,416,417],{"class":410}," createWorkersLogger",[290,419,420],{"class":406}," }",[290,422,423],{"class":402}," from",[290,425,426],{"class":406}," '",[290,428,270],{"class":381},[290,430,431],{"class":406},"'\n",[290,433,434],{"class":292,"line":299},[290,435,303],{"emptyLinePlaceholder":302},[290,437,438,442,445],{"class":292,"line":306},[290,439,441],{"class":440},"s2Zo4","initWorkersLogger",[290,443,444],{"class":410},"(",[290,446,447],{"class":406},"{\n",[290,449,450,454,457,459,462,464,466,469,472],{"class":292,"line":312},[290,451,453],{"class":452},"swJcz","  env",[290,455,456],{"class":406},":",[290,458,407],{"class":406},[290,460,461],{"class":452}," service",[290,463,456],{"class":406},[290,465,426],{"class":406},[290,467,468],{"class":381},"my-worker",[290,470,471],{"class":406},"'",[290,473,474],{"class":406}," },\n",[290,476,477,480],{"class":292,"line":318},[290,478,479],{"class":406},"}",[290,481,482],{"class":410},")\n",[290,484,485],{"class":292,"line":324},[290,486,303],{"emptyLinePlaceholder":302},[290,488,489,492,495],{"class":292,"line":330},[290,490,491],{"class":402},"export",[290,493,494],{"class":402}," default",[290,496,497],{"class":406}," {\n",[290,499,500,504,507,509,513,515,518,520,523,525,528,531,534,537,540,543],{"class":292,"line":336},[290,501,503],{"class":502},"spNyl","  async",[290,505,506],{"class":452}," fetch",[290,508,444],{"class":406},[290,510,512],{"class":511},"sHdIc","request",[290,514,456],{"class":406},[290,516,517],{"class":377}," Request",[290,519,414],{"class":406},[290,521,522],{"class":511}," env",[290,524,456],{"class":406},[290,526,527],{"class":377}," Env",[290,529,530],{"class":406},"):",[290,532,533],{"class":377}," Promise",[290,535,536],{"class":406},"\u003C",[290,538,539],{"class":377},"Response",[290,541,542],{"class":406},">",[290,544,497],{"class":406},[290,546,547,550,553,556,558,560,562],{"class":292,"line":342},[290,548,549],{"class":502},"    const",[290,551,552],{"class":410}," log",[290,554,555],{"class":406}," =",[290,557,417],{"class":440},[290,559,444],{"class":452},[290,561,512],{"class":410},[290,563,482],{"class":452},[290,565,566],{"class":292,"line":347},[290,567,303],{"emptyLinePlaceholder":302},[290,569,570,573,576,579,581,584,587,589,591,594,596,598],{"class":292,"line":353},[290,571,572],{"class":410},"    log",[290,574,575],{"class":406},".",[290,577,578],{"class":440},"set",[290,580,444],{"class":452},[290,582,583],{"class":406},"{",[290,585,586],{"class":452}," action",[290,588,456],{"class":406},[290,590,426],{"class":406},[290,592,593],{"class":381},"handle_request",[290,595,471],{"class":406},[290,597,420],{"class":406},[290,599,482],{"class":452},[290,601,603],{"class":292,"line":602},12,[290,604,303],{"emptyLinePlaceholder":302},[290,606,608],{"class":292,"line":607},13,[290,609,611],{"class":610},"sHwdD","    \u002F\u002F ... your handler logic\n",[290,613,615],{"class":292,"line":614},14,[290,616,303],{"emptyLinePlaceholder":302},[290,618,620,622,624,627],{"class":292,"line":619},15,[290,621,572],{"class":410},[290,623,575],{"class":406},[290,625,626],{"class":440},"emit",[290,628,629],{"class":452},"()\n",[290,631,633,636,639,641,644,646,648,651,653,657,659],{"class":292,"line":632},16,[290,634,635],{"class":402},"    return",[290,637,638],{"class":410}," Response",[290,640,575],{"class":406},[290,642,643],{"class":440},"json",[290,645,444],{"class":452},[290,647,583],{"class":406},[290,649,650],{"class":452}," ok",[290,652,456],{"class":406},[290,654,656],{"class":655},"sfNiH"," true",[290,658,420],{"class":406},[290,660,482],{"class":452},[290,662,664],{"class":292,"line":663},17,[290,665,666],{"class":406},"  },\n",[290,668,670],{"class":292,"line":669},18,[290,671,672],{"class":406},"}\n",[264,674,675,678,679,682,683,686,687,690],{},[268,676,677],{},"createWorkersLogger(request)"," automatically extracts ",[268,680,681],{},"method",", ",[268,684,685],{},"path",", and ",[268,688,689],{},"cf-ray"," from the request.",[692,693,695,696,698],"callout",{"color":694,"icon":13},"info","You must call ",[268,697,274],{}," manually before returning a response. Workers don't have a request lifecycle hook to auto-emit.",[358,700,126],{"id":701},"wide-events",[264,703,704],{},"Build up context progressively, then emit at the end:",[280,706,708],{"className":392,"code":707,"filename":394,"language":395,"meta":286,"style":286},"export default {\n  async fetch(request: Request, env: Env): Promise\u003CResponse> {\n    const log = createWorkersLogger(request)\n    const url = new URL(request.url)\n\n    log.set({ route: url.pathname })\n\n    const user = await env.DB.prepare('SELECT * FROM users WHERE id = ?').bind(url.searchParams.get('userId')).first()\n    log.set({ user: { id: user.id, plan: user.plan } })\n\n    const orders = await env.DB.prepare('SELECT COUNT(*) as count FROM orders WHERE user_id = ?').bind(user.id).first()\n    log.set({ orders: { count: orders.count } })\n\n    log.emit()\n    return Response.json({ user, orders })\n  },\n}\n",[268,709,710,718,752,768,794,798,826,830,904,954,958,1011,1047,1051,1061,1085,1089],{"__ignoreMap":286},[290,711,712,714,716],{"class":292,"line":293},[290,713,491],{"class":402},[290,715,494],{"class":402},[290,717,497],{"class":406},[290,719,720,722,724,726,728,730,732,734,736,738,740,742,744,746,748,750],{"class":292,"line":299},[290,721,503],{"class":502},[290,723,506],{"class":452},[290,725,444],{"class":406},[290,727,512],{"class":511},[290,729,456],{"class":406},[290,731,517],{"class":377},[290,733,414],{"class":406},[290,735,522],{"class":511},[290,737,456],{"class":406},[290,739,527],{"class":377},[290,741,530],{"class":406},[290,743,533],{"class":377},[290,745,536],{"class":406},[290,747,539],{"class":377},[290,749,542],{"class":406},[290,751,497],{"class":406},[290,753,754,756,758,760,762,764,766],{"class":292,"line":306},[290,755,549],{"class":502},[290,757,552],{"class":410},[290,759,555],{"class":406},[290,761,417],{"class":440},[290,763,444],{"class":452},[290,765,512],{"class":410},[290,767,482],{"class":452},[290,769,770,772,775,777,780,783,785,787,789,792],{"class":292,"line":312},[290,771,549],{"class":502},[290,773,774],{"class":410}," url",[290,776,555],{"class":406},[290,778,779],{"class":406}," new",[290,781,782],{"class":440}," URL",[290,784,444],{"class":452},[290,786,512],{"class":410},[290,788,575],{"class":406},[290,790,791],{"class":410},"url",[290,793,482],{"class":452},[290,795,796],{"class":292,"line":318},[290,797,303],{"emptyLinePlaceholder":302},[290,799,800,802,804,806,808,810,813,815,817,819,822,824],{"class":292,"line":324},[290,801,572],{"class":410},[290,803,575],{"class":406},[290,805,578],{"class":440},[290,807,444],{"class":452},[290,809,583],{"class":406},[290,811,812],{"class":452}," route",[290,814,456],{"class":406},[290,816,774],{"class":410},[290,818,575],{"class":406},[290,820,821],{"class":410},"pathname",[290,823,420],{"class":406},[290,825,482],{"class":452},[290,827,828],{"class":292,"line":330},[290,829,303],{"emptyLinePlaceholder":302},[290,831,832,834,837,839,842,844,846,849,851,854,856,858,861,863,866,868,871,873,875,877,880,882,885,887,889,892,894,897,899,902],{"class":292,"line":336},[290,833,549],{"class":502},[290,835,836],{"class":410}," user",[290,838,555],{"class":406},[290,840,841],{"class":402}," await",[290,843,522],{"class":410},[290,845,575],{"class":406},[290,847,848],{"class":410},"DB",[290,850,575],{"class":406},[290,852,853],{"class":440},"prepare",[290,855,444],{"class":452},[290,857,471],{"class":406},[290,859,860],{"class":381},"SELECT * FROM users WHERE id = ?",[290,862,471],{"class":406},[290,864,865],{"class":452},")",[290,867,575],{"class":406},[290,869,870],{"class":440},"bind",[290,872,444],{"class":452},[290,874,791],{"class":410},[290,876,575],{"class":406},[290,878,879],{"class":410},"searchParams",[290,881,575],{"class":406},[290,883,884],{"class":440},"get",[290,886,444],{"class":452},[290,888,471],{"class":406},[290,890,891],{"class":381},"userId",[290,893,471],{"class":406},[290,895,896],{"class":452},"))",[290,898,575],{"class":406},[290,900,901],{"class":440},"first",[290,903,629],{"class":452},[290,905,906,908,910,912,914,916,918,920,922,925,927,929,931,934,936,939,941,943,945,948,950,952],{"class":292,"line":342},[290,907,572],{"class":410},[290,909,575],{"class":406},[290,911,578],{"class":440},[290,913,444],{"class":452},[290,915,583],{"class":406},[290,917,836],{"class":452},[290,919,456],{"class":406},[290,921,407],{"class":406},[290,923,924],{"class":452}," id",[290,926,456],{"class":406},[290,928,836],{"class":410},[290,930,575],{"class":406},[290,932,933],{"class":410},"id",[290,935,414],{"class":406},[290,937,938],{"class":452}," plan",[290,940,456],{"class":406},[290,942,836],{"class":410},[290,944,575],{"class":406},[290,946,947],{"class":410},"plan",[290,949,420],{"class":406},[290,951,420],{"class":406},[290,953,482],{"class":452},[290,955,956],{"class":292,"line":347},[290,957,303],{"emptyLinePlaceholder":302},[290,959,960,962,965,967,969,971,973,975,977,979,981,983,986,988,990,992,994,996,999,1001,1003,1005,1007,1009],{"class":292,"line":353},[290,961,549],{"class":502},[290,963,964],{"class":410}," orders",[290,966,555],{"class":406},[290,968,841],{"class":402},[290,970,522],{"class":410},[290,972,575],{"class":406},[290,974,848],{"class":410},[290,976,575],{"class":406},[290,978,853],{"class":440},[290,980,444],{"class":452},[290,982,471],{"class":406},[290,984,985],{"class":381},"SELECT COUNT(*) as count FROM orders WHERE user_id = ?",[290,987,471],{"class":406},[290,989,865],{"class":452},[290,991,575],{"class":406},[290,993,870],{"class":440},[290,995,444],{"class":452},[290,997,998],{"class":410},"user",[290,1000,575],{"class":406},[290,1002,933],{"class":410},[290,1004,865],{"class":452},[290,1006,575],{"class":406},[290,1008,901],{"class":440},[290,1010,629],{"class":452},[290,1012,1013,1015,1017,1019,1021,1023,1025,1027,1029,1032,1034,1036,1038,1041,1043,1045],{"class":292,"line":602},[290,1014,572],{"class":410},[290,1016,575],{"class":406},[290,1018,578],{"class":440},[290,1020,444],{"class":452},[290,1022,583],{"class":406},[290,1024,964],{"class":452},[290,1026,456],{"class":406},[290,1028,407],{"class":406},[290,1030,1031],{"class":452}," count",[290,1033,456],{"class":406},[290,1035,964],{"class":410},[290,1037,575],{"class":406},[290,1039,1040],{"class":410},"count",[290,1042,420],{"class":406},[290,1044,420],{"class":406},[290,1046,482],{"class":452},[290,1048,1049],{"class":292,"line":607},[290,1050,303],{"emptyLinePlaceholder":302},[290,1052,1053,1055,1057,1059],{"class":292,"line":614},[290,1054,572],{"class":410},[290,1056,575],{"class":406},[290,1058,626],{"class":440},[290,1060,629],{"class":452},[290,1062,1063,1065,1067,1069,1071,1073,1075,1077,1079,1081,1083],{"class":292,"line":619},[290,1064,635],{"class":402},[290,1066,638],{"class":410},[290,1068,575],{"class":406},[290,1070,643],{"class":440},[290,1072,444],{"class":452},[290,1074,583],{"class":406},[290,1076,836],{"class":410},[290,1078,414],{"class":406},[290,1080,964],{"class":410},[290,1082,420],{"class":406},[290,1084,482],{"class":452},[290,1086,1087],{"class":292,"line":632},[290,1088,666],{"class":406},[290,1090,1091],{"class":292,"line":663},[290,1092,672],{"class":406},[280,1094,1097],{"className":368,"code":1095,"filename":1096,"language":370,"meta":286,"style":286},"14:58:15 INFO [my-worker] GET \u002Fapi\u002Fusers 200 in 12ms\n  ├─ orders: count=5\n  ├─ user: id=usr_123 plan=pro\n  ├─ route: \u002Fapi\u002Fusers\n  └─ requestId: 4a8ff3a8-...\n","Terminal output",[268,1098,1099,1110,1125,1138,1148],{"__ignoreMap":286},[290,1100,1101,1104,1107],{"class":292,"line":293},[290,1102,1103],{"class":377},"14:58:15",[290,1105,1106],{"class":381}," INFO",[290,1108,1109],{"class":410}," [my-worker] GET \u002Fapi\u002Fusers 200 in 12ms\n",[290,1111,1112,1115,1118,1121],{"class":292,"line":299},[290,1113,1114],{"class":377},"  ├─",[290,1116,1117],{"class":381}," orders:",[290,1119,1120],{"class":381}," count=",[290,1122,1124],{"class":1123},"sbssI","5\n",[290,1126,1127,1129,1132,1135],{"class":292,"line":306},[290,1128,1114],{"class":377},[290,1130,1131],{"class":381}," user:",[290,1133,1134],{"class":381}," id=usr_123",[290,1136,1137],{"class":381}," plan=pro\n",[290,1139,1140,1142,1145],{"class":292,"line":312},[290,1141,1114],{"class":377},[290,1143,1144],{"class":381}," route:",[290,1146,1147],{"class":381}," \u002Fapi\u002Fusers\n",[290,1149,1150,1153,1156],{"class":292,"line":318},[290,1151,1152],{"class":377},"  └─",[290,1154,1155],{"class":381}," requestId:",[290,1157,1158],{"class":381}," 4a8ff3a8-...\n",[358,1160,1162],{"id":1161},"error-handling","Error Handling",[264,1164,1165,1166,1169],{},"Use ",[268,1167,1168],{},"createError"," for structured errors and handle them with try\u002Fcatch:",[280,1171,1173],{"className":392,"code":1172,"filename":394,"language":395,"meta":286,"style":286},"import { createError, parseError } from 'evlog'\n\nexport default {\n  async fetch(request: Request, env: Env): Promise\u003CResponse> {\n    const log = createWorkersLogger(request)\n\n    try {\n      const body = await request.json()\n      log.set({ payment: { amount: body.amount } })\n\n      if (body.amount \u003C= 0) {\n        throw createError({\n          status: 400,\n          message: 'Invalid payment amount',\n          why: 'The amount must be a positive number',\n          fix: 'Pass a positive integer in cents',\n        })\n      }\n\n      log.emit()\n      return Response.json({ success: true })\n    } catch (error) {\n      log.error(error instanceof Error ? error : new Error(String(error)))\n      log.emit()\n\n      const parsed = parseError(error)\n      return Response.json({\n        message: parsed.message,\n        why: parsed.why,\n        fix: parsed.fix,\n      }, { status: parsed.status })\n    }\n  },\n}\n",[268,1174,1175,1200,1204,1212,1246,1262,1266,1273,1294,1332,1336,1362,1373,1386,1402,1418,1434,1441,1446,1451,1462,1489,1507,1551,1562,1567,1585,1600,1617,1634,1651,1675,1681,1686],{"__ignoreMap":286},[290,1176,1177,1179,1181,1184,1186,1189,1191,1193,1195,1198],{"class":292,"line":293},[290,1178,403],{"class":402},[290,1180,407],{"class":406},[290,1182,1183],{"class":410}," createError",[290,1185,414],{"class":406},[290,1187,1188],{"class":410}," parseError",[290,1190,420],{"class":406},[290,1192,423],{"class":402},[290,1194,426],{"class":406},[290,1196,1197],{"class":381},"evlog",[290,1199,431],{"class":406},[290,1201,1202],{"class":292,"line":299},[290,1203,303],{"emptyLinePlaceholder":302},[290,1205,1206,1208,1210],{"class":292,"line":306},[290,1207,491],{"class":402},[290,1209,494],{"class":402},[290,1211,497],{"class":406},[290,1213,1214,1216,1218,1220,1222,1224,1226,1228,1230,1232,1234,1236,1238,1240,1242,1244],{"class":292,"line":312},[290,1215,503],{"class":502},[290,1217,506],{"class":452},[290,1219,444],{"class":406},[290,1221,512],{"class":511},[290,1223,456],{"class":406},[290,1225,517],{"class":377},[290,1227,414],{"class":406},[290,1229,522],{"class":511},[290,1231,456],{"class":406},[290,1233,527],{"class":377},[290,1235,530],{"class":406},[290,1237,533],{"class":377},[290,1239,536],{"class":406},[290,1241,539],{"class":377},[290,1243,542],{"class":406},[290,1245,497],{"class":406},[290,1247,1248,1250,1252,1254,1256,1258,1260],{"class":292,"line":318},[290,1249,549],{"class":502},[290,1251,552],{"class":410},[290,1253,555],{"class":406},[290,1255,417],{"class":440},[290,1257,444],{"class":452},[290,1259,512],{"class":410},[290,1261,482],{"class":452},[290,1263,1264],{"class":292,"line":324},[290,1265,303],{"emptyLinePlaceholder":302},[290,1267,1268,1271],{"class":292,"line":330},[290,1269,1270],{"class":402},"    try",[290,1272,497],{"class":406},[290,1274,1275,1278,1281,1283,1285,1288,1290,1292],{"class":292,"line":336},[290,1276,1277],{"class":502},"      const",[290,1279,1280],{"class":410}," body",[290,1282,555],{"class":406},[290,1284,841],{"class":402},[290,1286,1287],{"class":410}," request",[290,1289,575],{"class":406},[290,1291,643],{"class":440},[290,1293,629],{"class":452},[290,1295,1296,1299,1301,1303,1305,1307,1310,1312,1314,1317,1319,1321,1323,1326,1328,1330],{"class":292,"line":342},[290,1297,1298],{"class":410},"      log",[290,1300,575],{"class":406},[290,1302,578],{"class":440},[290,1304,444],{"class":452},[290,1306,583],{"class":406},[290,1308,1309],{"class":452}," payment",[290,1311,456],{"class":406},[290,1313,407],{"class":406},[290,1315,1316],{"class":452}," amount",[290,1318,456],{"class":406},[290,1320,1280],{"class":410},[290,1322,575],{"class":406},[290,1324,1325],{"class":410},"amount",[290,1327,420],{"class":406},[290,1329,420],{"class":406},[290,1331,482],{"class":452},[290,1333,1334],{"class":292,"line":347},[290,1335,303],{"emptyLinePlaceholder":302},[290,1337,1338,1341,1344,1347,1349,1351,1354,1357,1360],{"class":292,"line":353},[290,1339,1340],{"class":402},"      if",[290,1342,1343],{"class":452}," (",[290,1345,1346],{"class":410},"body",[290,1348,575],{"class":406},[290,1350,1325],{"class":410},[290,1352,1353],{"class":406}," \u003C=",[290,1355,1356],{"class":1123}," 0",[290,1358,1359],{"class":452},") ",[290,1361,447],{"class":406},[290,1363,1364,1367,1369,1371],{"class":292,"line":602},[290,1365,1366],{"class":402},"        throw",[290,1368,1183],{"class":440},[290,1370,444],{"class":452},[290,1372,447],{"class":406},[290,1374,1375,1378,1380,1383],{"class":292,"line":607},[290,1376,1377],{"class":452},"          status",[290,1379,456],{"class":406},[290,1381,1382],{"class":1123}," 400",[290,1384,1385],{"class":406},",\n",[290,1387,1388,1391,1393,1395,1398,1400],{"class":292,"line":614},[290,1389,1390],{"class":452},"          message",[290,1392,456],{"class":406},[290,1394,426],{"class":406},[290,1396,1397],{"class":381},"Invalid payment amount",[290,1399,471],{"class":406},[290,1401,1385],{"class":406},[290,1403,1404,1407,1409,1411,1414,1416],{"class":292,"line":619},[290,1405,1406],{"class":452},"          why",[290,1408,456],{"class":406},[290,1410,426],{"class":406},[290,1412,1413],{"class":381},"The amount must be a positive number",[290,1415,471],{"class":406},[290,1417,1385],{"class":406},[290,1419,1420,1423,1425,1427,1430,1432],{"class":292,"line":632},[290,1421,1422],{"class":452},"          fix",[290,1424,456],{"class":406},[290,1426,426],{"class":406},[290,1428,1429],{"class":381},"Pass a positive integer in cents",[290,1431,471],{"class":406},[290,1433,1385],{"class":406},[290,1435,1436,1439],{"class":292,"line":663},[290,1437,1438],{"class":406},"        }",[290,1440,482],{"class":452},[290,1442,1443],{"class":292,"line":669},[290,1444,1445],{"class":406},"      }\n",[290,1447,1449],{"class":292,"line":1448},19,[290,1450,303],{"emptyLinePlaceholder":302},[290,1452,1454,1456,1458,1460],{"class":292,"line":1453},20,[290,1455,1298],{"class":410},[290,1457,575],{"class":406},[290,1459,626],{"class":440},[290,1461,629],{"class":452},[290,1463,1465,1468,1470,1472,1474,1476,1478,1481,1483,1485,1487],{"class":292,"line":1464},21,[290,1466,1467],{"class":402},"      return",[290,1469,638],{"class":410},[290,1471,575],{"class":406},[290,1473,643],{"class":440},[290,1475,444],{"class":452},[290,1477,583],{"class":406},[290,1479,1480],{"class":452}," success",[290,1482,456],{"class":406},[290,1484,656],{"class":655},[290,1486,420],{"class":406},[290,1488,482],{"class":452},[290,1490,1492,1495,1498,1500,1503,1505],{"class":292,"line":1491},22,[290,1493,1494],{"class":406},"    }",[290,1496,1497],{"class":402}," catch",[290,1499,1343],{"class":452},[290,1501,1502],{"class":410},"error",[290,1504,1359],{"class":452},[290,1506,447],{"class":406},[290,1508,1510,1512,1514,1516,1518,1520,1523,1526,1529,1532,1535,1537,1539,1541,1544,1546,1548],{"class":292,"line":1509},23,[290,1511,1298],{"class":410},[290,1513,575],{"class":406},[290,1515,1502],{"class":440},[290,1517,444],{"class":452},[290,1519,1502],{"class":410},[290,1521,1522],{"class":406}," instanceof",[290,1524,1525],{"class":377}," Error",[290,1527,1528],{"class":406}," ?",[290,1530,1531],{"class":410}," error",[290,1533,1534],{"class":406}," :",[290,1536,779],{"class":406},[290,1538,1525],{"class":440},[290,1540,444],{"class":452},[290,1542,1543],{"class":440},"String",[290,1545,444],{"class":452},[290,1547,1502],{"class":410},[290,1549,1550],{"class":452},")))\n",[290,1552,1554,1556,1558,1560],{"class":292,"line":1553},24,[290,1555,1298],{"class":410},[290,1557,575],{"class":406},[290,1559,626],{"class":440},[290,1561,629],{"class":452},[290,1563,1565],{"class":292,"line":1564},25,[290,1566,303],{"emptyLinePlaceholder":302},[290,1568,1570,1572,1575,1577,1579,1581,1583],{"class":292,"line":1569},26,[290,1571,1277],{"class":502},[290,1573,1574],{"class":410}," parsed",[290,1576,555],{"class":406},[290,1578,1188],{"class":440},[290,1580,444],{"class":452},[290,1582,1502],{"class":410},[290,1584,482],{"class":452},[290,1586,1588,1590,1592,1594,1596,1598],{"class":292,"line":1587},27,[290,1589,1467],{"class":402},[290,1591,638],{"class":410},[290,1593,575],{"class":406},[290,1595,643],{"class":440},[290,1597,444],{"class":452},[290,1599,447],{"class":406},[290,1601,1603,1606,1608,1610,1612,1615],{"class":292,"line":1602},28,[290,1604,1605],{"class":452},"        message",[290,1607,456],{"class":406},[290,1609,1574],{"class":410},[290,1611,575],{"class":406},[290,1613,1614],{"class":410},"message",[290,1616,1385],{"class":406},[290,1618,1620,1623,1625,1627,1629,1632],{"class":292,"line":1619},29,[290,1621,1622],{"class":452},"        why",[290,1624,456],{"class":406},[290,1626,1574],{"class":410},[290,1628,575],{"class":406},[290,1630,1631],{"class":410},"why",[290,1633,1385],{"class":406},[290,1635,1637,1640,1642,1644,1646,1649],{"class":292,"line":1636},30,[290,1638,1639],{"class":452},"        fix",[290,1641,456],{"class":406},[290,1643,1574],{"class":410},[290,1645,575],{"class":406},[290,1647,1648],{"class":410},"fix",[290,1650,1385],{"class":406},[290,1652,1654,1657,1659,1662,1664,1666,1668,1671,1673],{"class":292,"line":1653},31,[290,1655,1656],{"class":406},"      },",[290,1658,407],{"class":406},[290,1660,1661],{"class":452}," status",[290,1663,456],{"class":406},[290,1665,1574],{"class":410},[290,1667,575],{"class":406},[290,1669,1670],{"class":410},"status",[290,1672,420],{"class":406},[290,1674,482],{"class":452},[290,1676,1678],{"class":292,"line":1677},32,[290,1679,1680],{"class":406},"    }\n",[290,1682,1684],{"class":292,"line":1683},33,[290,1685,666],{"class":406},[290,1687,1689],{"class":292,"line":1688},34,[290,1690,672],{"class":406},[358,1692,165],{"id":1693},"configuration",[264,1695,1696,1697,1701,1702,1705],{},"See the ",[1698,1699,1700],"a",{"href":166},"Configuration reference"," for all available options (",[268,1703,1704],{},"initLogger",", middleware options, sampling, silent mode, etc.).",[358,1707,1709],{"id":1708},"drain-enrichers","Drain & Enrichers",[264,1711,1712,1713,1715],{},"Configure drain and enrichers via ",[268,1714,441],{}," options:",[280,1717,1719],{"className":392,"code":1718,"filename":394,"language":395,"meta":286,"style":286},"import { initWorkersLogger, createWorkersLogger } from 'evlog\u002Fworkers'\nimport { createAxiomDrain } from 'evlog\u002Faxiom'\nimport { createUserAgentEnricher } from 'evlog\u002Fenrichers'\nimport { createDrainPipeline } from 'evlog\u002Fpipeline'\nimport type { DrainContext } from 'evlog'\n\nconst pipeline = createDrainPipeline\u003CDrainContext>({\n  batch: { size: 50, intervalMs: 5000 },\n})\nconst drain = pipeline(createAxiomDrain())\nconst userAgent = createUserAgentEnricher()\n\ninitWorkersLogger({\n  env: { service: 'my-worker' },\n  drain,\n  enrich: (ctx) => {\n    userAgent(ctx)\n  },\n})\n",[268,1720,1721,1743,1763,1783,1803,1825,1829,1853,1882,1888,1908,1921,1925,1933,1953,1960,1979,1990,1994],{"__ignoreMap":286},[290,1722,1723,1725,1727,1729,1731,1733,1735,1737,1739,1741],{"class":292,"line":293},[290,1724,403],{"class":402},[290,1726,407],{"class":406},[290,1728,411],{"class":410},[290,1730,414],{"class":406},[290,1732,417],{"class":410},[290,1734,420],{"class":406},[290,1736,423],{"class":402},[290,1738,426],{"class":406},[290,1740,270],{"class":381},[290,1742,431],{"class":406},[290,1744,1745,1747,1749,1752,1754,1756,1758,1761],{"class":292,"line":299},[290,1746,403],{"class":402},[290,1748,407],{"class":406},[290,1750,1751],{"class":410}," createAxiomDrain",[290,1753,420],{"class":406},[290,1755,423],{"class":402},[290,1757,426],{"class":406},[290,1759,1760],{"class":381},"evlog\u002Faxiom",[290,1762,431],{"class":406},[290,1764,1765,1767,1769,1772,1774,1776,1778,1781],{"class":292,"line":306},[290,1766,403],{"class":402},[290,1768,407],{"class":406},[290,1770,1771],{"class":410}," createUserAgentEnricher",[290,1773,420],{"class":406},[290,1775,423],{"class":402},[290,1777,426],{"class":406},[290,1779,1780],{"class":381},"evlog\u002Fenrichers",[290,1782,431],{"class":406},[290,1784,1785,1787,1789,1792,1794,1796,1798,1801],{"class":292,"line":312},[290,1786,403],{"class":402},[290,1788,407],{"class":406},[290,1790,1791],{"class":410}," createDrainPipeline",[290,1793,420],{"class":406},[290,1795,423],{"class":402},[290,1797,426],{"class":406},[290,1799,1800],{"class":381},"evlog\u002Fpipeline",[290,1802,431],{"class":406},[290,1804,1805,1807,1810,1812,1815,1817,1819,1821,1823],{"class":292,"line":318},[290,1806,403],{"class":402},[290,1808,1809],{"class":402}," type",[290,1811,407],{"class":406},[290,1813,1814],{"class":410}," DrainContext",[290,1816,420],{"class":406},[290,1818,423],{"class":402},[290,1820,426],{"class":406},[290,1822,1197],{"class":381},[290,1824,431],{"class":406},[290,1826,1827],{"class":292,"line":324},[290,1828,303],{"emptyLinePlaceholder":302},[290,1830,1831,1834,1837,1840,1842,1844,1847,1849,1851],{"class":292,"line":330},[290,1832,1833],{"class":502},"const",[290,1835,1836],{"class":410}," pipeline ",[290,1838,1839],{"class":406},"=",[290,1841,1791],{"class":440},[290,1843,536],{"class":406},[290,1845,1846],{"class":377},"DrainContext",[290,1848,542],{"class":406},[290,1850,444],{"class":410},[290,1852,447],{"class":406},[290,1854,1855,1858,1860,1862,1865,1867,1870,1872,1875,1877,1880],{"class":292,"line":336},[290,1856,1857],{"class":452},"  batch",[290,1859,456],{"class":406},[290,1861,407],{"class":406},[290,1863,1864],{"class":452}," size",[290,1866,456],{"class":406},[290,1868,1869],{"class":1123}," 50",[290,1871,414],{"class":406},[290,1873,1874],{"class":452}," intervalMs",[290,1876,456],{"class":406},[290,1878,1879],{"class":1123}," 5000",[290,1881,474],{"class":406},[290,1883,1884,1886],{"class":292,"line":342},[290,1885,479],{"class":406},[290,1887,482],{"class":410},[290,1889,1890,1892,1895,1897,1900,1902,1905],{"class":292,"line":347},[290,1891,1833],{"class":502},[290,1893,1894],{"class":410}," drain ",[290,1896,1839],{"class":406},[290,1898,1899],{"class":440}," pipeline",[290,1901,444],{"class":410},[290,1903,1904],{"class":440},"createAxiomDrain",[290,1906,1907],{"class":410},"())\n",[290,1909,1910,1912,1915,1917,1919],{"class":292,"line":353},[290,1911,1833],{"class":502},[290,1913,1914],{"class":410}," userAgent ",[290,1916,1839],{"class":406},[290,1918,1771],{"class":440},[290,1920,629],{"class":410},[290,1922,1923],{"class":292,"line":602},[290,1924,303],{"emptyLinePlaceholder":302},[290,1926,1927,1929,1931],{"class":292,"line":607},[290,1928,441],{"class":440},[290,1930,444],{"class":410},[290,1932,447],{"class":406},[290,1934,1935,1937,1939,1941,1943,1945,1947,1949,1951],{"class":292,"line":614},[290,1936,453],{"class":452},[290,1938,456],{"class":406},[290,1940,407],{"class":406},[290,1942,461],{"class":452},[290,1944,456],{"class":406},[290,1946,426],{"class":406},[290,1948,468],{"class":381},[290,1950,471],{"class":406},[290,1952,474],{"class":406},[290,1954,1955,1958],{"class":292,"line":619},[290,1956,1957],{"class":410},"  drain",[290,1959,1385],{"class":406},[290,1961,1962,1965,1967,1969,1972,1974,1977],{"class":292,"line":632},[290,1963,1964],{"class":440},"  enrich",[290,1966,456],{"class":406},[290,1968,1343],{"class":406},[290,1970,1971],{"class":511},"ctx",[290,1973,865],{"class":406},[290,1975,1976],{"class":502}," =>",[290,1978,497],{"class":406},[290,1980,1981,1984,1986,1988],{"class":292,"line":663},[290,1982,1983],{"class":440},"    userAgent",[290,1985,444],{"class":452},[290,1987,1971],{"class":410},[290,1989,482],{"class":452},[290,1991,1992],{"class":292,"line":669},[290,1993,666],{"class":406},[290,1995,1996,1998],{"class":292,"line":1448},[290,1997,479],{"class":406},[290,1999,482],{"class":410},[692,2001,1696,2002,2004,2005,2007],{"color":694,"icon":13},[1698,2003,175],{"href":180}," and ",[1698,2006,229],{"href":234}," docs for all available drain adapters and enrichers.",[358,2009,2011],{"id":2010},"wrangler-configuration","Wrangler Configuration",[264,2013,2014],{},"Disable Cloudflare's default invocation logs to avoid duplicates when using evlog:",[280,2016,2021],{"className":2017,"code":2018,"filename":2019,"language":2020,"meta":286,"style":286},"language-toml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","[observability]\nenabled = false\n","wrangler.toml","toml",[268,2022,2023,2028],{"__ignoreMap":286},[290,2024,2025],{"class":292,"line":293},[290,2026,2027],{},"[observability]\n",[290,2029,2030],{"class":292,"line":299},[290,2031,2032],{},"enabled = false\n",[358,2034,2036],{"id":2035},"run-locally","Run Locally",[280,2038,2040],{"className":368,"code":2039,"language":370,"meta":286,"style":286},"wrangler dev\n",[268,2041,2042],{"__ignoreMap":286},[290,2043,2044,2047],{"class":292,"line":293},[290,2045,2046],{"class":377},"wrangler",[290,2048,2049],{"class":381}," dev\n",[2051,2052,2053],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":286,"searchDepth":299,"depth":299,"links":2055},[2056,2060,2061,2062,2063,2064,2065],{"id":360,"depth":299,"text":20,"children":2057},[2058,2059],{"id":364,"depth":306,"text":365},{"id":388,"depth":306,"text":389},{"id":701,"depth":299,"text":126},{"id":1161,"depth":299,"text":1162},{"id":1693,"depth":299,"text":165},{"id":1708,"depth":299,"text":1709},{"id":2010,"depth":299,"text":2011},{"id":2035,"depth":299,"text":2036},"Wide events, structured errors, and logging in Cloudflare Workers and Durable Objects.","md",null,{},{"title":96,"icon":99},{"title":96,"description":2066},"ZeJJF3LckLY88KRSIXXF4Ulka6S77fL_0dICVvrvhnE",[2074,2076],{"title":91,"path":92,"stem":93,"description":2075,"icon":94,"children":-1},"Using evlog with React Router — automatic wide events, structured errors, drain adapters, enrichers, and tail sampling in React Router applications.",{"title":101,"path":102,"stem":103,"description":2077,"icon":104,"children":-1},"Use evlog in standalone TypeScript scripts, CLI tools, queues, cron jobs, and any TypeScript process.",1774103711589]