[{"data":1,"prerenderedAt":1926},["ShallowReactive",2],{"navigation_docs":3,"-frameworks-astro":263,"-frameworks-astro-surround":1921},[4,30,115,174,233,249],{"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-simple-icons-vercel",{"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,228],{"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},"Pipeline","\u002Fadapters\u002Fpipeline","4.adapters\u002F10.pipeline","i-lucide-workflow",{"title":189,"path":190,"stem":191,"icon":192},"Browser","\u002Fadapters\u002Fbrowser","4.adapters\u002F11.browser","i-lucide-globe",{"title":194,"path":195,"stem":196,"icon":197},"Axiom","\u002Fadapters\u002Faxiom","4.adapters\u002F2.axiom","i-custom-axiom",{"title":199,"path":200,"stem":201,"icon":202},"OTLP","\u002Fadapters\u002Fotlp","4.adapters\u002F3.otlp","i-simple-icons-opentelemetry",{"title":204,"path":205,"stem":206,"icon":207},"PostHog","\u002Fadapters\u002Fposthog","4.adapters\u002F4.posthog","i-simple-icons-posthog",{"title":209,"path":210,"stem":211,"icon":212},"Sentry","\u002Fadapters\u002Fsentry","4.adapters\u002F5.sentry","i-simple-icons-sentry",{"title":214,"path":215,"stem":216,"icon":217},"Better Stack","\u002Fadapters\u002Fbetter-stack","4.adapters\u002F6.better-stack","i-simple-icons-betterstack",{"title":219,"path":220,"stem":221,"icon":222},"File System","\u002Fadapters\u002Ffs","4.adapters\u002F7.fs","i-lucide-hard-drive",{"title":224,"path":225,"stem":226,"icon":227},"HyperDX","\u002Fadapters\u002Fhyperdx","4.adapters\u002F8.hyperdx","i-custom-hyperdx",{"title":229,"path":230,"stem":231,"icon":232},"Custom Adapters","\u002Fadapters\u002Fcustom","4.adapters\u002F9.custom","i-lucide-code",{"title":234,"path":235,"stem":236,"children":237,"page":29},"Enrichers","\u002Fenrichers","5.enrichers",[238,241,245],{"title":36,"path":239,"stem":240,"icon":28},"\u002Fenrichers\u002Foverview","5.enrichers\u002F1.overview",{"title":242,"path":243,"stem":244,"icon":114},"Built-in","\u002Fenrichers\u002Fbuilt-in","5.enrichers\u002F2.built-in",{"title":246,"path":247,"stem":248,"icon":232},"Custom","\u002Fenrichers\u002Fcustom","5.enrichers\u002F3.custom",{"title":250,"path":251,"stem":252,"children":253,"page":29},"NuxtHub","\u002Fnuxthub","6.nuxthub",[254,258],{"title":36,"path":255,"stem":256,"icon":257},"\u002Fnuxthub\u002Foverview","6.nuxthub\u002F1.overview","i-lucide-database",{"title":259,"path":260,"stem":261,"icon":262},"Retention","\u002Fnuxthub\u002Fretention","6.nuxthub\u002F2.retention","i-lucide-clock",{"id":264,"title":106,"body":265,"description":1914,"extension":1915,"links":1916,"meta":1917,"navigation":1918,"path":107,"seo":1919,"stem":108,"__hash__":1920},"docs\u002F2.frameworks\u002F14.astro.md",{"type":266,"value":267,"toc":1903},"minimark",[268,277,358,367,371,376,396,400,829,833,941,944,951,1219,1264,1268,1275,1654,1657,1668,1672,1678,1894,1899],[269,270,271,272,276],"p",{},"Astro doesn't have a dedicated evlog integration. Instead, use the core ",[273,274,275],"code",{},"evlog"," package with Astro's middleware to create request-scoped loggers manually.",[278,279,280],"code-collapse",{},[281,282,288],"pre",{"className":283,"code":284,"filename":285,"language":286,"meta":287,"style":287},"language-txt shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","Set up evlog in my Astro app.\n\n- Install evlog: pnpm add evlog\n- Import initLogger and createRequestLogger from 'evlog'\n- Call initLogger({ env: { service: 'my-app' } }) in Astro middleware\n- Create a request logger with createRequestLogger({ method, path }) per request\n- Use log.set() in API routes and middleware to accumulate context\n- Call log.emit() before returning the response (no auto-emit lifecycle)\n\nDocs: https:\u002F\u002Fwww.evlog.dev\u002Fframeworks\u002Fastro\nAdapters: https:\u002F\u002Fwww.evlog.dev\u002Fadapters\n","Prompt","txt","",[273,289,290,298,305,311,317,323,329,335,341,346,352],{"__ignoreMap":287},[291,292,295],"span",{"class":293,"line":294},"line",1,[291,296,297],{},"Set up evlog in my Astro app.\n",[291,299,301],{"class":293,"line":300},2,[291,302,304],{"emptyLinePlaceholder":303},true,"\n",[291,306,308],{"class":293,"line":307},3,[291,309,310],{},"- Install evlog: pnpm add evlog\n",[291,312,314],{"class":293,"line":313},4,[291,315,316],{},"- Import initLogger and createRequestLogger from 'evlog'\n",[291,318,320],{"class":293,"line":319},5,[291,321,322],{},"- Call initLogger({ env: { service: 'my-app' } }) in Astro middleware\n",[291,324,326],{"class":293,"line":325},6,[291,327,328],{},"- Create a request logger with createRequestLogger({ method, path }) per request\n",[291,330,332],{"class":293,"line":331},7,[291,333,334],{},"- Use log.set() in API routes and middleware to accumulate context\n",[291,336,338],{"class":293,"line":337},8,[291,339,340],{},"- Call log.emit() before returning the response (no auto-emit lifecycle)\n",[291,342,344],{"class":293,"line":343},9,[291,345,304],{"emptyLinePlaceholder":303},[291,347,349],{"class":293,"line":348},10,[291,350,351],{},"Docs: https:\u002F\u002Fwww.evlog.dev\u002Fframeworks\u002Fastro\n",[291,353,355],{"class":293,"line":354},11,[291,356,357],{},"Adapters: https:\u002F\u002Fwww.evlog.dev\u002Fadapters\n",[359,360,362,363,366],"callout",{"color":361,"icon":13},"info","This is a guide-level integration. It uses the generic ",[273,364,365],{},"createRequestLogger"," API rather than a framework-specific module.",[368,369,20],"h2",{"id":370},"quick-start",[372,373,375],"h3",{"id":374},"_1-install","1. Install",[281,377,381],{"className":378,"code":379,"language":380,"meta":287,"style":287},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","bun add evlog\n","bash",[273,382,383],{"__ignoreMap":287},[291,384,385,389,393],{"class":293,"line":294},[291,386,388],{"class":387},"sBMFI","bun",[291,390,392],{"class":391},"sfazB"," add",[291,394,395],{"class":391}," evlog\n",[372,397,399],{"id":398},"_2-create-a-middleware","2. Create a middleware",[281,401,406],{"className":402,"code":403,"filename":404,"language":405,"meta":287,"style":287},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { defineMiddleware } from 'astro:middleware'\nimport { initLogger, createRequestLogger } from 'evlog'\n\ninitLogger({\n  env: { service: 'my-astro-app' },\n})\n\nexport const onRequest = defineMiddleware(async ({ request, locals }, next) => {\n  const url = new URL(request.url)\n\n  const log = createRequestLogger({\n    method: request.method,\n    path: url.pathname,\n  })\n\n  locals.log = log\n\n  try {\n    const response = await next()\n    log.emit()\n    return response\n  } catch (error) {\n    log.error(error instanceof Error ? error : new Error(String(error)))\n    log.emit()\n    throw error\n  }\n})\n","src\u002Fmiddleware.ts","typescript",[273,407,408,437,462,466,478,505,513,517,566,596,600,615,633,650,658,663,679,684,692,711,724,733,752,796,807,816,822],{"__ignoreMap":287},[291,409,410,414,418,422,425,428,431,434],{"class":293,"line":294},[291,411,413],{"class":412},"s7zQu","import",[291,415,417],{"class":416},"sMK4o"," {",[291,419,421],{"class":420},"sTEyZ"," defineMiddleware",[291,423,424],{"class":416}," }",[291,426,427],{"class":412}," from",[291,429,430],{"class":416}," '",[291,432,433],{"class":391},"astro:middleware",[291,435,436],{"class":416},"'\n",[291,438,439,441,443,446,449,452,454,456,458,460],{"class":293,"line":300},[291,440,413],{"class":412},[291,442,417],{"class":416},[291,444,445],{"class":420}," initLogger",[291,447,448],{"class":416},",",[291,450,451],{"class":420}," createRequestLogger",[291,453,424],{"class":416},[291,455,427],{"class":412},[291,457,430],{"class":416},[291,459,275],{"class":391},[291,461,436],{"class":416},[291,463,464],{"class":293,"line":307},[291,465,304],{"emptyLinePlaceholder":303},[291,467,468,472,475],{"class":293,"line":313},[291,469,471],{"class":470},"s2Zo4","initLogger",[291,473,474],{"class":420},"(",[291,476,477],{"class":416},"{\n",[291,479,480,484,487,489,492,494,496,499,502],{"class":293,"line":319},[291,481,483],{"class":482},"swJcz","  env",[291,485,486],{"class":416},":",[291,488,417],{"class":416},[291,490,491],{"class":482}," service",[291,493,486],{"class":416},[291,495,430],{"class":416},[291,497,498],{"class":391},"my-astro-app",[291,500,501],{"class":416},"'",[291,503,504],{"class":416}," },\n",[291,506,507,510],{"class":293,"line":325},[291,508,509],{"class":416},"}",[291,511,512],{"class":420},")\n",[291,514,515],{"class":293,"line":331},[291,516,304],{"emptyLinePlaceholder":303},[291,518,519,522,526,529,532,534,536,539,542,546,548,551,554,557,560,563],{"class":293,"line":337},[291,520,521],{"class":412},"export",[291,523,525],{"class":524},"spNyl"," const",[291,527,528],{"class":420}," onRequest ",[291,530,531],{"class":416},"=",[291,533,421],{"class":470},[291,535,474],{"class":420},[291,537,538],{"class":524},"async",[291,540,541],{"class":416}," ({",[291,543,545],{"class":544},"sHdIc"," request",[291,547,448],{"class":416},[291,549,550],{"class":544}," locals",[291,552,553],{"class":416}," },",[291,555,556],{"class":544}," next",[291,558,559],{"class":416},")",[291,561,562],{"class":524}," =>",[291,564,565],{"class":416}," {\n",[291,567,568,571,574,577,580,583,585,588,591,594],{"class":293,"line":343},[291,569,570],{"class":524},"  const",[291,572,573],{"class":420}," url",[291,575,576],{"class":416}," =",[291,578,579],{"class":416}," new",[291,581,582],{"class":470}," URL",[291,584,474],{"class":482},[291,586,587],{"class":420},"request",[291,589,590],{"class":416},".",[291,592,593],{"class":420},"url",[291,595,512],{"class":482},[291,597,598],{"class":293,"line":348},[291,599,304],{"emptyLinePlaceholder":303},[291,601,602,604,607,609,611,613],{"class":293,"line":354},[291,603,570],{"class":524},[291,605,606],{"class":420}," log",[291,608,576],{"class":416},[291,610,451],{"class":470},[291,612,474],{"class":482},[291,614,477],{"class":416},[291,616,618,621,623,625,627,630],{"class":293,"line":617},12,[291,619,620],{"class":482},"    method",[291,622,486],{"class":416},[291,624,545],{"class":420},[291,626,590],{"class":416},[291,628,629],{"class":420},"method",[291,631,632],{"class":416},",\n",[291,634,636,639,641,643,645,648],{"class":293,"line":635},13,[291,637,638],{"class":482},"    path",[291,640,486],{"class":416},[291,642,573],{"class":420},[291,644,590],{"class":416},[291,646,647],{"class":420},"pathname",[291,649,632],{"class":416},[291,651,653,656],{"class":293,"line":652},14,[291,654,655],{"class":416},"  }",[291,657,512],{"class":482},[291,659,661],{"class":293,"line":660},15,[291,662,304],{"emptyLinePlaceholder":303},[291,664,666,669,671,674,676],{"class":293,"line":665},16,[291,667,668],{"class":420},"  locals",[291,670,590],{"class":416},[291,672,673],{"class":420},"log",[291,675,576],{"class":416},[291,677,678],{"class":420}," log\n",[291,680,682],{"class":293,"line":681},17,[291,683,304],{"emptyLinePlaceholder":303},[291,685,687,690],{"class":293,"line":686},18,[291,688,689],{"class":412},"  try",[291,691,565],{"class":416},[291,693,695,698,701,703,706,708],{"class":293,"line":694},19,[291,696,697],{"class":524},"    const",[291,699,700],{"class":420}," response",[291,702,576],{"class":416},[291,704,705],{"class":412}," await",[291,707,556],{"class":470},[291,709,710],{"class":482},"()\n",[291,712,714,717,719,722],{"class":293,"line":713},20,[291,715,716],{"class":420},"    log",[291,718,590],{"class":416},[291,720,721],{"class":470},"emit",[291,723,710],{"class":482},[291,725,727,730],{"class":293,"line":726},21,[291,728,729],{"class":412},"    return",[291,731,732],{"class":420}," response\n",[291,734,736,738,741,744,747,750],{"class":293,"line":735},22,[291,737,655],{"class":416},[291,739,740],{"class":412}," catch",[291,742,743],{"class":482}," (",[291,745,746],{"class":420},"error",[291,748,749],{"class":482},") ",[291,751,477],{"class":416},[291,753,755,757,759,761,763,765,768,771,774,777,780,782,784,786,789,791,793],{"class":293,"line":754},23,[291,756,716],{"class":420},[291,758,590],{"class":416},[291,760,746],{"class":470},[291,762,474],{"class":482},[291,764,746],{"class":420},[291,766,767],{"class":416}," instanceof",[291,769,770],{"class":387}," Error",[291,772,773],{"class":416}," ?",[291,775,776],{"class":420}," error",[291,778,779],{"class":416}," :",[291,781,579],{"class":416},[291,783,770],{"class":470},[291,785,474],{"class":482},[291,787,788],{"class":470},"String",[291,790,474],{"class":482},[291,792,746],{"class":420},[291,794,795],{"class":482},")))\n",[291,797,799,801,803,805],{"class":293,"line":798},24,[291,800,716],{"class":420},[291,802,590],{"class":416},[291,804,721],{"class":470},[291,806,710],{"class":482},[291,808,810,813],{"class":293,"line":809},25,[291,811,812],{"class":412},"    throw",[291,814,815],{"class":420}," error\n",[291,817,819],{"class":293,"line":818},26,[291,820,821],{"class":416},"  }\n",[291,823,825,827],{"class":293,"line":824},27,[291,826,509],{"class":416},[291,828,512],{"class":420},[372,830,832],{"id":831},"_3-type-your-locals","3. Type your locals",[281,834,837],{"className":402,"code":835,"filename":836,"language":405,"meta":287,"style":287},"\u002F\u002F\u002F \u003Creference types=\"astro\u002Fclient\" \u002F>\n\nimport type { RequestLogger } from 'evlog'\n\ndeclare namespace App {\n  interface Locals {\n    log: RequestLogger\n  }\n}\n","src\u002Fenv.d.ts",[273,838,839,870,874,896,900,913,923,932,936],{"__ignoreMap":287},[291,840,841,845,848,852,856,858,861,865,867],{"class":293,"line":294},[291,842,844],{"class":843},"sHwdD","\u002F\u002F\u002F ",[291,846,847],{"class":412},"\u003C",[291,849,851],{"class":850},"s5tWE","reference",[291,853,855],{"class":854},"s6hCs"," types",[291,857,531],{"class":412},[291,859,860],{"class":412},"\"",[291,862,864],{"class":863},"smbvS","astro\u002Fclient",[291,866,860],{"class":412},[291,868,869],{"class":412}," \u002F>\n",[291,871,872],{"class":293,"line":300},[291,873,304],{"emptyLinePlaceholder":303},[291,875,876,878,881,883,886,888,890,892,894],{"class":293,"line":307},[291,877,413],{"class":412},[291,879,880],{"class":412}," type",[291,882,417],{"class":416},[291,884,885],{"class":420}," RequestLogger",[291,887,424],{"class":416},[291,889,427],{"class":412},[291,891,430],{"class":416},[291,893,275],{"class":391},[291,895,436],{"class":416},[291,897,898],{"class":293,"line":313},[291,899,304],{"emptyLinePlaceholder":303},[291,901,902,905,908,911],{"class":293,"line":319},[291,903,904],{"class":524},"declare",[291,906,907],{"class":524}," namespace",[291,909,910],{"class":387}," App",[291,912,565],{"class":416},[291,914,915,918,921],{"class":293,"line":325},[291,916,917],{"class":524},"  interface",[291,919,920],{"class":387}," Locals",[291,922,565],{"class":416},[291,924,925,927,929],{"class":293,"line":331},[291,926,716],{"class":482},[291,928,486],{"class":416},[291,930,931],{"class":387}," RequestLogger\n",[291,933,934],{"class":293,"line":337},[291,935,821],{"class":416},[291,937,938],{"class":293,"line":343},[291,939,940],{"class":416},"}\n",[368,942,126],{"id":943},"wide-events",[269,945,946,947,950],{},"Access the logger from ",[273,948,949],{},"Astro.locals"," in your pages and API routes:",[281,952,955],{"className":402,"code":953,"filename":954,"language":405,"meta":287,"style":287},"import type { APIRoute } from 'astro'\n\nexport const GET: APIRoute = async ({ params, locals }) => {\n  locals.log.set({ user: { id: params.id } })\n\n  const user = await db.findUser(params.id)\n  locals.log.set({ user: { name: user.name, plan: user.plan } })\n\n  return new Response(JSON.stringify(user), {\n    headers: { 'Content-Type': 'application\u002Fjson' },\n  })\n}\n","src\u002Fpages\u002Fapi\u002Fusers\u002F[id].ts",[273,956,957,979,983,1017,1060,1064,1093,1147,1151,1182,1209,1215],{"__ignoreMap":287},[291,958,959,961,963,965,968,970,972,974,977],{"class":293,"line":294},[291,960,413],{"class":412},[291,962,880],{"class":412},[291,964,417],{"class":416},[291,966,967],{"class":420}," APIRoute",[291,969,424],{"class":416},[291,971,427],{"class":412},[291,973,430],{"class":416},[291,975,976],{"class":391},"astro",[291,978,436],{"class":416},[291,980,981],{"class":293,"line":300},[291,982,304],{"emptyLinePlaceholder":303},[291,984,985,987,989,992,994,996,998,1001,1003,1006,1008,1010,1013,1015],{"class":293,"line":307},[291,986,521],{"class":412},[291,988,525],{"class":524},[291,990,991],{"class":420}," GET",[291,993,486],{"class":416},[291,995,967],{"class":387},[291,997,576],{"class":416},[291,999,1000],{"class":524}," async",[291,1002,541],{"class":416},[291,1004,1005],{"class":544}," params",[291,1007,448],{"class":416},[291,1009,550],{"class":544},[291,1011,1012],{"class":416}," })",[291,1014,562],{"class":524},[291,1016,565],{"class":416},[291,1018,1019,1021,1023,1025,1027,1030,1032,1035,1038,1040,1042,1045,1047,1049,1051,1054,1056,1058],{"class":293,"line":313},[291,1020,668],{"class":420},[291,1022,590],{"class":416},[291,1024,673],{"class":420},[291,1026,590],{"class":416},[291,1028,1029],{"class":470},"set",[291,1031,474],{"class":482},[291,1033,1034],{"class":416},"{",[291,1036,1037],{"class":482}," user",[291,1039,486],{"class":416},[291,1041,417],{"class":416},[291,1043,1044],{"class":482}," id",[291,1046,486],{"class":416},[291,1048,1005],{"class":420},[291,1050,590],{"class":416},[291,1052,1053],{"class":420},"id",[291,1055,424],{"class":416},[291,1057,424],{"class":416},[291,1059,512],{"class":482},[291,1061,1062],{"class":293,"line":319},[291,1063,304],{"emptyLinePlaceholder":303},[291,1065,1066,1068,1070,1072,1074,1077,1079,1082,1084,1087,1089,1091],{"class":293,"line":325},[291,1067,570],{"class":524},[291,1069,1037],{"class":420},[291,1071,576],{"class":416},[291,1073,705],{"class":412},[291,1075,1076],{"class":420}," db",[291,1078,590],{"class":416},[291,1080,1081],{"class":470},"findUser",[291,1083,474],{"class":482},[291,1085,1086],{"class":420},"params",[291,1088,590],{"class":416},[291,1090,1053],{"class":420},[291,1092,512],{"class":482},[291,1094,1095,1097,1099,1101,1103,1105,1107,1109,1111,1113,1115,1118,1120,1122,1124,1127,1129,1132,1134,1136,1138,1141,1143,1145],{"class":293,"line":331},[291,1096,668],{"class":420},[291,1098,590],{"class":416},[291,1100,673],{"class":420},[291,1102,590],{"class":416},[291,1104,1029],{"class":470},[291,1106,474],{"class":482},[291,1108,1034],{"class":416},[291,1110,1037],{"class":482},[291,1112,486],{"class":416},[291,1114,417],{"class":416},[291,1116,1117],{"class":482}," name",[291,1119,486],{"class":416},[291,1121,1037],{"class":420},[291,1123,590],{"class":416},[291,1125,1126],{"class":420},"name",[291,1128,448],{"class":416},[291,1130,1131],{"class":482}," plan",[291,1133,486],{"class":416},[291,1135,1037],{"class":420},[291,1137,590],{"class":416},[291,1139,1140],{"class":420},"plan",[291,1142,424],{"class":416},[291,1144,424],{"class":416},[291,1146,512],{"class":482},[291,1148,1149],{"class":293,"line":337},[291,1150,304],{"emptyLinePlaceholder":303},[291,1152,1153,1156,1158,1161,1163,1166,1168,1171,1173,1176,1178,1180],{"class":293,"line":343},[291,1154,1155],{"class":412},"  return",[291,1157,579],{"class":416},[291,1159,1160],{"class":470}," Response",[291,1162,474],{"class":482},[291,1164,1165],{"class":420},"JSON",[291,1167,590],{"class":416},[291,1169,1170],{"class":470},"stringify",[291,1172,474],{"class":482},[291,1174,1175],{"class":420},"user",[291,1177,559],{"class":482},[291,1179,448],{"class":416},[291,1181,565],{"class":416},[291,1183,1184,1187,1189,1191,1193,1196,1198,1200,1202,1205,1207],{"class":293,"line":348},[291,1185,1186],{"class":482},"    headers",[291,1188,486],{"class":416},[291,1190,417],{"class":416},[291,1192,430],{"class":416},[291,1194,1195],{"class":482},"Content-Type",[291,1197,501],{"class":416},[291,1199,486],{"class":416},[291,1201,430],{"class":416},[291,1203,1204],{"class":391},"application\u002Fjson",[291,1206,501],{"class":416},[291,1208,504],{"class":416},[291,1210,1211,1213],{"class":293,"line":354},[291,1212,655],{"class":416},[291,1214,512],{"class":482},[291,1216,1217],{"class":293,"line":617},[291,1218,940],{"class":416},[281,1220,1223],{"className":378,"code":1221,"filename":1222,"language":380,"meta":287,"style":287},"14:58:15 INFO [my-astro-app] GET \u002Fapi\u002Fusers\u002Fusr_123\n  ├─ user: id=usr_123 name=Alice plan=pro\n  └─ requestId: 4a8ff3a8-...\n","Terminal output",[273,1224,1225,1236,1253],{"__ignoreMap":287},[291,1226,1227,1230,1233],{"class":293,"line":294},[291,1228,1229],{"class":387},"14:58:15",[291,1231,1232],{"class":391}," INFO",[291,1234,1235],{"class":420}," [my-astro-app] GET \u002Fapi\u002Fusers\u002Fusr_123\n",[291,1237,1238,1241,1244,1247,1250],{"class":293,"line":300},[291,1239,1240],{"class":387},"  ├─",[291,1242,1243],{"class":391}," user:",[291,1245,1246],{"class":391}," id=usr_123",[291,1248,1249],{"class":391}," name=Alice",[291,1251,1252],{"class":391}," plan=pro\n",[291,1254,1255,1258,1261],{"class":293,"line":307},[291,1256,1257],{"class":387},"  └─",[291,1259,1260],{"class":391}," requestId:",[291,1262,1263],{"class":391}," 4a8ff3a8-...\n",[368,1265,1267],{"id":1266},"error-handling","Error Handling",[269,1269,1270,1271,1274],{},"Use ",[273,1272,1273],{},"createError"," for structured errors:",[281,1276,1279],{"className":402,"code":1277,"filename":1278,"language":405,"meta":287,"style":287},"import type { APIRoute } from 'astro'\nimport { createError, parseError } from 'evlog'\n\nexport const POST: APIRoute = async ({ request, locals }) => {\n  const body = await request.json()\n  locals.log.set({ cart: { items: body.items } })\n\n  if (!body.paymentMethod) {\n    const error = createError({\n      status: 400,\n      message: 'Missing payment method',\n      why: 'No payment method was provided',\n      fix: 'Include a paymentMethod field in the request body',\n    })\n    locals.log.error(error)\n    const parsed = parseError(error)\n    return new Response(JSON.stringify(parsed), { status: parsed.status })\n  }\n\n  return new Response(JSON.stringify({ success: true }))\n}\n","src\u002Fpages\u002Fapi\u002Fcheckout.ts",[273,1280,1281,1301,1325,1329,1360,1380,1421,1425,1447,1461,1474,1490,1506,1522,1529,1548,1565,1608,1612,1616,1650],{"__ignoreMap":287},[291,1282,1283,1285,1287,1289,1291,1293,1295,1297,1299],{"class":293,"line":294},[291,1284,413],{"class":412},[291,1286,880],{"class":412},[291,1288,417],{"class":416},[291,1290,967],{"class":420},[291,1292,424],{"class":416},[291,1294,427],{"class":412},[291,1296,430],{"class":416},[291,1298,976],{"class":391},[291,1300,436],{"class":416},[291,1302,1303,1305,1307,1310,1312,1315,1317,1319,1321,1323],{"class":293,"line":300},[291,1304,413],{"class":412},[291,1306,417],{"class":416},[291,1308,1309],{"class":420}," createError",[291,1311,448],{"class":416},[291,1313,1314],{"class":420}," parseError",[291,1316,424],{"class":416},[291,1318,427],{"class":412},[291,1320,430],{"class":416},[291,1322,275],{"class":391},[291,1324,436],{"class":416},[291,1326,1327],{"class":293,"line":307},[291,1328,304],{"emptyLinePlaceholder":303},[291,1330,1331,1333,1335,1338,1340,1342,1344,1346,1348,1350,1352,1354,1356,1358],{"class":293,"line":313},[291,1332,521],{"class":412},[291,1334,525],{"class":524},[291,1336,1337],{"class":420}," POST",[291,1339,486],{"class":416},[291,1341,967],{"class":387},[291,1343,576],{"class":416},[291,1345,1000],{"class":524},[291,1347,541],{"class":416},[291,1349,545],{"class":544},[291,1351,448],{"class":416},[291,1353,550],{"class":544},[291,1355,1012],{"class":416},[291,1357,562],{"class":524},[291,1359,565],{"class":416},[291,1361,1362,1364,1367,1369,1371,1373,1375,1378],{"class":293,"line":319},[291,1363,570],{"class":524},[291,1365,1366],{"class":420}," body",[291,1368,576],{"class":416},[291,1370,705],{"class":412},[291,1372,545],{"class":420},[291,1374,590],{"class":416},[291,1376,1377],{"class":470},"json",[291,1379,710],{"class":482},[291,1381,1382,1384,1386,1388,1390,1392,1394,1396,1399,1401,1403,1406,1408,1410,1412,1415,1417,1419],{"class":293,"line":325},[291,1383,668],{"class":420},[291,1385,590],{"class":416},[291,1387,673],{"class":420},[291,1389,590],{"class":416},[291,1391,1029],{"class":470},[291,1393,474],{"class":482},[291,1395,1034],{"class":416},[291,1397,1398],{"class":482}," cart",[291,1400,486],{"class":416},[291,1402,417],{"class":416},[291,1404,1405],{"class":482}," items",[291,1407,486],{"class":416},[291,1409,1366],{"class":420},[291,1411,590],{"class":416},[291,1413,1414],{"class":420},"items",[291,1416,424],{"class":416},[291,1418,424],{"class":416},[291,1420,512],{"class":482},[291,1422,1423],{"class":293,"line":331},[291,1424,304],{"emptyLinePlaceholder":303},[291,1426,1427,1430,1432,1435,1438,1440,1443,1445],{"class":293,"line":337},[291,1428,1429],{"class":412},"  if",[291,1431,743],{"class":482},[291,1433,1434],{"class":416},"!",[291,1436,1437],{"class":420},"body",[291,1439,590],{"class":416},[291,1441,1442],{"class":420},"paymentMethod",[291,1444,749],{"class":482},[291,1446,477],{"class":416},[291,1448,1449,1451,1453,1455,1457,1459],{"class":293,"line":343},[291,1450,697],{"class":524},[291,1452,776],{"class":420},[291,1454,576],{"class":416},[291,1456,1309],{"class":470},[291,1458,474],{"class":482},[291,1460,477],{"class":416},[291,1462,1463,1466,1468,1472],{"class":293,"line":348},[291,1464,1465],{"class":482},"      status",[291,1467,486],{"class":416},[291,1469,1471],{"class":1470},"sbssI"," 400",[291,1473,632],{"class":416},[291,1475,1476,1479,1481,1483,1486,1488],{"class":293,"line":354},[291,1477,1478],{"class":482},"      message",[291,1480,486],{"class":416},[291,1482,430],{"class":416},[291,1484,1485],{"class":391},"Missing payment method",[291,1487,501],{"class":416},[291,1489,632],{"class":416},[291,1491,1492,1495,1497,1499,1502,1504],{"class":293,"line":617},[291,1493,1494],{"class":482},"      why",[291,1496,486],{"class":416},[291,1498,430],{"class":416},[291,1500,1501],{"class":391},"No payment method was provided",[291,1503,501],{"class":416},[291,1505,632],{"class":416},[291,1507,1508,1511,1513,1515,1518,1520],{"class":293,"line":635},[291,1509,1510],{"class":482},"      fix",[291,1512,486],{"class":416},[291,1514,430],{"class":416},[291,1516,1517],{"class":391},"Include a paymentMethod field in the request body",[291,1519,501],{"class":416},[291,1521,632],{"class":416},[291,1523,1524,1527],{"class":293,"line":652},[291,1525,1526],{"class":416},"    }",[291,1528,512],{"class":482},[291,1530,1531,1534,1536,1538,1540,1542,1544,1546],{"class":293,"line":660},[291,1532,1533],{"class":420},"    locals",[291,1535,590],{"class":416},[291,1537,673],{"class":420},[291,1539,590],{"class":416},[291,1541,746],{"class":470},[291,1543,474],{"class":482},[291,1545,746],{"class":420},[291,1547,512],{"class":482},[291,1549,1550,1552,1555,1557,1559,1561,1563],{"class":293,"line":665},[291,1551,697],{"class":524},[291,1553,1554],{"class":420}," parsed",[291,1556,576],{"class":416},[291,1558,1314],{"class":470},[291,1560,474],{"class":482},[291,1562,746],{"class":420},[291,1564,512],{"class":482},[291,1566,1567,1569,1571,1573,1575,1577,1579,1581,1583,1586,1588,1590,1592,1595,1597,1599,1601,1604,1606],{"class":293,"line":681},[291,1568,729],{"class":412},[291,1570,579],{"class":416},[291,1572,1160],{"class":470},[291,1574,474],{"class":482},[291,1576,1165],{"class":420},[291,1578,590],{"class":416},[291,1580,1170],{"class":470},[291,1582,474],{"class":482},[291,1584,1585],{"class":420},"parsed",[291,1587,559],{"class":482},[291,1589,448],{"class":416},[291,1591,417],{"class":416},[291,1593,1594],{"class":482}," status",[291,1596,486],{"class":416},[291,1598,1554],{"class":420},[291,1600,590],{"class":416},[291,1602,1603],{"class":420},"status",[291,1605,424],{"class":416},[291,1607,512],{"class":482},[291,1609,1610],{"class":293,"line":686},[291,1611,821],{"class":416},[291,1613,1614],{"class":293,"line":694},[291,1615,304],{"emptyLinePlaceholder":303},[291,1617,1618,1620,1622,1624,1626,1628,1630,1632,1634,1636,1639,1641,1645,1647],{"class":293,"line":713},[291,1619,1155],{"class":412},[291,1621,579],{"class":416},[291,1623,1160],{"class":470},[291,1625,474],{"class":482},[291,1627,1165],{"class":420},[291,1629,590],{"class":416},[291,1631,1170],{"class":470},[291,1633,474],{"class":482},[291,1635,1034],{"class":416},[291,1637,1638],{"class":482}," success",[291,1640,486],{"class":416},[291,1642,1644],{"class":1643},"sfNiH"," true",[291,1646,424],{"class":416},[291,1648,1649],{"class":482},"))\n",[291,1651,1652],{"class":293,"line":726},[291,1653,940],{"class":416},[368,1655,165],{"id":1656},"configuration",[269,1658,1659,1660,1664,1665,1667],{},"See the ",[1661,1662,1663],"a",{"href":166},"Configuration reference"," for all available options (",[273,1666,471],{},", middleware options, sampling, silent mode, etc.).",[368,1669,1671],{"id":1670},"drain","Drain",[269,1673,1674,1675,1677],{},"Configure drain in ",[273,1676,471],{}," inside your middleware:",[281,1679,1681],{"className":402,"code":1680,"filename":404,"language":405,"meta":287,"style":287},"import { initLogger, createRequestLogger } from 'evlog'\nimport { createAxiomDrain } from 'evlog\u002Faxiom'\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())\n\ninitLogger({\n  env: { service: 'my-astro-app' },\n  drain,\n})\n",[273,1682,1683,1705,1725,1745,1766,1770,1794,1823,1829,1849,1853,1861,1881,1888],{"__ignoreMap":287},[291,1684,1685,1687,1689,1691,1693,1695,1697,1699,1701,1703],{"class":293,"line":294},[291,1686,413],{"class":412},[291,1688,417],{"class":416},[291,1690,445],{"class":420},[291,1692,448],{"class":416},[291,1694,451],{"class":420},[291,1696,424],{"class":416},[291,1698,427],{"class":412},[291,1700,430],{"class":416},[291,1702,275],{"class":391},[291,1704,436],{"class":416},[291,1706,1707,1709,1711,1714,1716,1718,1720,1723],{"class":293,"line":300},[291,1708,413],{"class":412},[291,1710,417],{"class":416},[291,1712,1713],{"class":420}," createAxiomDrain",[291,1715,424],{"class":416},[291,1717,427],{"class":412},[291,1719,430],{"class":416},[291,1721,1722],{"class":391},"evlog\u002Faxiom",[291,1724,436],{"class":416},[291,1726,1727,1729,1731,1734,1736,1738,1740,1743],{"class":293,"line":307},[291,1728,413],{"class":412},[291,1730,417],{"class":416},[291,1732,1733],{"class":420}," createDrainPipeline",[291,1735,424],{"class":416},[291,1737,427],{"class":412},[291,1739,430],{"class":416},[291,1741,1742],{"class":391},"evlog\u002Fpipeline",[291,1744,436],{"class":416},[291,1746,1747,1749,1751,1753,1756,1758,1760,1762,1764],{"class":293,"line":313},[291,1748,413],{"class":412},[291,1750,880],{"class":412},[291,1752,417],{"class":416},[291,1754,1755],{"class":420}," DrainContext",[291,1757,424],{"class":416},[291,1759,427],{"class":412},[291,1761,430],{"class":416},[291,1763,275],{"class":391},[291,1765,436],{"class":416},[291,1767,1768],{"class":293,"line":319},[291,1769,304],{"emptyLinePlaceholder":303},[291,1771,1772,1775,1778,1780,1782,1784,1787,1790,1792],{"class":293,"line":325},[291,1773,1774],{"class":524},"const",[291,1776,1777],{"class":420}," pipeline ",[291,1779,531],{"class":416},[291,1781,1733],{"class":470},[291,1783,847],{"class":416},[291,1785,1786],{"class":387},"DrainContext",[291,1788,1789],{"class":416},">",[291,1791,474],{"class":420},[291,1793,477],{"class":416},[291,1795,1796,1799,1801,1803,1806,1808,1811,1813,1816,1818,1821],{"class":293,"line":331},[291,1797,1798],{"class":482},"  batch",[291,1800,486],{"class":416},[291,1802,417],{"class":416},[291,1804,1805],{"class":482}," size",[291,1807,486],{"class":416},[291,1809,1810],{"class":1470}," 50",[291,1812,448],{"class":416},[291,1814,1815],{"class":482}," intervalMs",[291,1817,486],{"class":416},[291,1819,1820],{"class":1470}," 5000",[291,1822,504],{"class":416},[291,1824,1825,1827],{"class":293,"line":337},[291,1826,509],{"class":416},[291,1828,512],{"class":420},[291,1830,1831,1833,1836,1838,1841,1843,1846],{"class":293,"line":343},[291,1832,1774],{"class":524},[291,1834,1835],{"class":420}," drain ",[291,1837,531],{"class":416},[291,1839,1840],{"class":470}," pipeline",[291,1842,474],{"class":420},[291,1844,1845],{"class":470},"createAxiomDrain",[291,1847,1848],{"class":420},"())\n",[291,1850,1851],{"class":293,"line":348},[291,1852,304],{"emptyLinePlaceholder":303},[291,1854,1855,1857,1859],{"class":293,"line":354},[291,1856,471],{"class":470},[291,1858,474],{"class":420},[291,1860,477],{"class":416},[291,1862,1863,1865,1867,1869,1871,1873,1875,1877,1879],{"class":293,"line":617},[291,1864,483],{"class":482},[291,1866,486],{"class":416},[291,1868,417],{"class":416},[291,1870,491],{"class":482},[291,1872,486],{"class":416},[291,1874,430],{"class":416},[291,1876,498],{"class":391},[291,1878,501],{"class":416},[291,1880,504],{"class":416},[291,1882,1883,1886],{"class":293,"line":635},[291,1884,1885],{"class":420},"  drain",[291,1887,632],{"class":416},[291,1889,1890,1892],{"class":293,"line":652},[291,1891,509],{"class":416},[291,1893,512],{"class":420},[359,1895,1659,1896,1898],{"color":361,"icon":13},[1661,1897,175],{"href":180}," docs for all available drain adapters.",[1900,1901,1902],"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 .s5tWE, html code.shiki .s5tWE{--shiki-light:#E53935;--shiki-light-font-style:italic;--shiki-default:#F07178;--shiki-default-font-style:italic;--shiki-dark:#F07178;--shiki-dark-font-style:italic}html pre.shiki code .s6hCs, html code.shiki .s6hCs{--shiki-light:#9C3EDA;--shiki-light-font-style:italic;--shiki-default:#C792EA;--shiki-default-font-style:italic;--shiki-dark:#C792EA;--shiki-dark-font-style:italic}html pre.shiki code .smbvS, html code.shiki .smbvS{--shiki-light:#91B859;--shiki-light-font-style:italic;--shiki-default:#C3E88D;--shiki-default-font-style:italic;--shiki-dark:#C3E88D;--shiki-dark-font-style:italic}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":287,"searchDepth":300,"depth":300,"links":1904},[1905,1910,1911,1912,1913],{"id":370,"depth":300,"text":20,"children":1906},[1907,1908,1909],{"id":374,"depth":307,"text":375},{"id":398,"depth":307,"text":399},{"id":831,"depth":307,"text":832},{"id":943,"depth":300,"text":126},{"id":1266,"depth":300,"text":1267},{"id":1656,"depth":300,"text":165},{"id":1670,"depth":300,"text":1671},"Wide events and structured errors in Astro server middleware.","md",null,{},{"title":106,"icon":109},{"title":106,"description":1914},"eEq5Q25-0P2Nn68rxMmeY-9dQDSTn0CnxlLmEdO3xs0",[1922,1924],{"title":101,"path":102,"stem":103,"description":1923,"icon":104,"children":-1},"Use evlog in standalone TypeScript scripts, CLI tools, queues, cron jobs, and any TypeScript process.",{"title":111,"path":112,"stem":113,"description":1925,"icon":114,"children":-1},"Build your own evlog framework integration using the toolkit API with createMiddlewareLogger, header extraction, AsyncLocalStorage, and the full drain\u002Fenrich\u002Fkeep pipeline.",1775236129265]