[{"data":1,"prerenderedAt":3037},["ShallowReactive",2],{"navigation_docs":3,"-frameworks-elysia":282,"-frameworks-elysia-surround":3032},[4,30,65,105,188,252,268],{"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},"Logging","\u002Flogging","2.logging",[35,40,45,50,55,60],{"title":36,"path":37,"stem":38,"icon":39},"Overview","\u002Flogging\u002Foverview","2.logging\u002F0.overview","i-lucide-list",{"title":41,"path":42,"stem":43,"icon":44},"Simple Logging","\u002Flogging\u002Fsimple-logging","2.logging\u002F1.simple-logging","i-lucide-terminal",{"title":46,"path":47,"stem":48,"icon":49},"Wide Events","\u002Flogging\u002Fwide-events","2.logging\u002F2.wide-events","i-lucide-layers",{"title":51,"path":52,"stem":53,"icon":54},"Structured Errors","\u002Flogging\u002Fstructured-errors","2.logging\u002F3.structured-errors","i-lucide-shield-alert",{"title":56,"path":57,"stem":58,"icon":59},"Client Logging","\u002Flogging\u002Fclient-logging","2.logging\u002F4.client-logging","i-lucide-monitor",{"title":61,"path":62,"stem":63,"icon":64},"AI SDK Integration","\u002Flogging\u002Fai-sdk","2.logging\u002F5.ai-sdk","i-simple-icons-vercel",{"title":66,"path":67,"stem":68,"children":69,"page":29},"Core Concepts","\u002Fcore-concepts","3.core-concepts",[70,75,80,85,90,95,100],{"title":71,"path":72,"stem":73,"icon":74},"Lifecycle","\u002Fcore-concepts\u002Flifecycle","3.core-concepts\u002F0.lifecycle","i-lucide-arrow-right-left",{"title":76,"path":77,"stem":78,"icon":79},"Configuration","\u002Fcore-concepts\u002Fconfiguration","3.core-concepts\u002F1.configuration","i-lucide-settings",{"title":81,"path":82,"stem":83,"icon":84},"Sampling","\u002Fcore-concepts\u002Fsampling","3.core-concepts\u002F2.sampling","i-lucide-filter",{"title":86,"path":87,"stem":88,"icon":89},"Typed Fields","\u002Fcore-concepts\u002Ftyped-fields","3.core-concepts\u002F3.typed-fields","i-simple-icons-typescript",{"title":91,"path":92,"stem":93,"icon":94},"Best Practices","\u002Fcore-concepts\u002Fbest-practices","3.core-concepts\u002F4.best-practices","i-lucide-shield-check",{"title":96,"path":97,"stem":98,"icon":99},"Performance","\u002Fcore-concepts\u002Fperformance","3.core-concepts\u002F5.performance","i-lucide-gauge",{"title":101,"path":102,"stem":103,"icon":104},"Vite Plugin","\u002Fcore-concepts\u002Fvite-plugin","3.core-concepts\u002F6.vite-plugin","i-custom-vite",{"title":106,"path":107,"stem":108,"children":109,"page":29},"Frameworks","\u002Fframeworks","4.frameworks",[110,114,119,124,129,134,139,144,149,154,159,164,169,174,178,183],{"title":36,"path":111,"stem":112,"icon":113},"\u002Fframeworks\u002Foverview","4.frameworks\u002F00.overview","i-lucide-layout-grid",{"title":115,"path":116,"stem":117,"icon":118},"Nuxt","\u002Fframeworks\u002Fnuxt","4.frameworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":120,"path":121,"stem":122,"icon":123},"Next.js","\u002Fframeworks\u002Fnextjs","4.frameworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":125,"path":126,"stem":127,"icon":128},"SvelteKit","\u002Fframeworks\u002Fsveltekit","4.frameworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":130,"path":131,"stem":132,"icon":133},"Nitro","\u002Fframeworks\u002Fnitro","4.frameworks\u002F04.nitro","i-custom-nitro",{"title":135,"path":136,"stem":137,"icon":138},"TanStack Start","\u002Fframeworks\u002Ftanstack-start","4.frameworks\u002F05.tanstack-start","i-custom-tanstack",{"title":140,"path":141,"stem":142,"icon":143},"NestJS","\u002Fframeworks\u002Fnestjs","4.frameworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":145,"path":146,"stem":147,"icon":148},"Express","\u002Fframeworks\u002Fexpress","4.frameworks\u002F07.express","i-simple-icons-express",{"title":150,"path":151,"stem":152,"icon":153},"Hono","\u002Fframeworks\u002Fhono","4.frameworks\u002F08.hono","i-simple-icons-hono",{"title":155,"path":156,"stem":157,"icon":158},"Fastify","\u002Fframeworks\u002Ffastify","4.frameworks\u002F09.fastify","i-simple-icons-fastify",{"title":160,"path":161,"stem":162,"icon":163},"Elysia","\u002Fframeworks\u002Felysia","4.frameworks\u002F10.elysia","i-custom-elysia",{"title":165,"path":166,"stem":167,"icon":168},"React Router","\u002Fframeworks\u002Freact-router","4.frameworks\u002F11.react-router","i-custom-reactrouter",{"title":170,"path":171,"stem":172,"icon":173},"Cloudflare Workers","\u002Fframeworks\u002Fcloudflare-workers","4.frameworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":175,"path":176,"stem":177,"icon":89},"Standalone","\u002Fframeworks\u002Fstandalone","4.frameworks\u002F13.standalone",{"title":179,"path":180,"stem":181,"icon":182},"Astro","\u002Fframeworks\u002Fastro","4.frameworks\u002F14.astro","i-simple-icons-astro",{"title":184,"path":185,"stem":186,"icon":187},"Custom Integration","\u002Fframeworks\u002Fcustom-integration","4.frameworks\u002F15.custom-integration","i-lucide-puzzle",{"title":189,"path":190,"stem":191,"children":192,"page":29},"Adapters","\u002Fadapters","5.adapters",[193,197,202,207,212,217,222,227,232,237,242,247],{"title":36,"path":194,"stem":195,"icon":196},"\u002Fadapters\u002Foverview","5.adapters\u002F1.overview","i-custom-plug",{"title":198,"path":199,"stem":200,"icon":201},"Custom Adapters","\u002Fadapters\u002Fcustom","5.adapters\u002F10.custom","i-lucide-code",{"title":203,"path":204,"stem":205,"icon":206},"Pipeline","\u002Fadapters\u002Fpipeline","5.adapters\u002F11.pipeline","i-lucide-workflow",{"title":208,"path":209,"stem":210,"icon":211},"Browser","\u002Fadapters\u002Fbrowser","5.adapters\u002F12.browser","i-lucide-globe",{"title":213,"path":214,"stem":215,"icon":216},"Axiom","\u002Fadapters\u002Faxiom","5.adapters\u002F2.axiom","i-custom-axiom",{"title":218,"path":219,"stem":220,"icon":221},"OTLP","\u002Fadapters\u002Fotlp","5.adapters\u002F3.otlp","i-simple-icons-opentelemetry",{"title":223,"path":224,"stem":225,"icon":226},"PostHog","\u002Fadapters\u002Fposthog","5.adapters\u002F4.posthog","i-simple-icons-posthog",{"title":228,"path":229,"stem":230,"icon":231},"Sentry","\u002Fadapters\u002Fsentry","5.adapters\u002F5.sentry","i-simple-icons-sentry",{"title":233,"path":234,"stem":235,"icon":236},"Better Stack","\u002Fadapters\u002Fbetter-stack","5.adapters\u002F6.better-stack","i-simple-icons-betterstack",{"title":238,"path":239,"stem":240,"icon":241},"File System","\u002Fadapters\u002Ffs","5.adapters\u002F7.fs","i-lucide-hard-drive",{"title":243,"path":244,"stem":245,"icon":246},"Datadog","\u002Fadapters\u002Fdatadog","5.adapters\u002F8.datadog","i-simple-icons-datadog",{"title":248,"path":249,"stem":250,"icon":251},"HyperDX","\u002Fadapters\u002Fhyperdx","5.adapters\u002F9.hyperdx","i-custom-hyperdx",{"title":253,"path":254,"stem":255,"children":256,"page":29},"Enrichers","\u002Fenrichers","6.enrichers",[257,260,264],{"title":36,"path":258,"stem":259,"icon":28},"\u002Fenrichers\u002Foverview","6.enrichers\u002F1.overview",{"title":261,"path":262,"stem":263,"icon":187},"Built-in","\u002Fenrichers\u002Fbuilt-in","6.enrichers\u002F2.built-in",{"title":265,"path":266,"stem":267,"icon":201},"Custom","\u002Fenrichers\u002Fcustom","6.enrichers\u002F3.custom",{"title":269,"path":270,"stem":271,"children":272,"page":29},"NuxtHub","\u002Fnuxthub","7.nuxthub",[273,277],{"title":36,"path":274,"stem":275,"icon":276},"\u002Fnuxthub\u002Foverview","7.nuxthub\u002F1.overview","i-lucide-database",{"title":278,"path":279,"stem":280,"icon":281},"Retention","\u002Fnuxthub\u002Fretention","7.nuxthub\u002F2.retention","i-lucide-clock",{"id":283,"title":160,"body":284,"description":3022,"extension":3023,"links":3024,"meta":3028,"navigation":3029,"path":161,"seo":3030,"stem":162,"__hash__":3031},"docs\u002F4.frameworks\u002F10.elysia.md",{"type":285,"value":286,"toc":3001},"minimark",[287,304,391,395,400,424,428,704,729,737,740,743,1028,1031,1095,1098,1104,1287,1380,1396,1400,1421,1793,1796,1862,1865,1875,1879,1882,2050,2054,2061,2252,2263,2267,2273,2377,2381,2392,2535,2539,2545,2549,2703,2707,2714,2891,2899,2903,2944,2953,2962,2966,2997],[288,289,290,291,295,296,299,300,303],"p",{},"The ",[292,293,294],"code",{},"evlog\u002Felysia"," plugin auto-creates a request-scoped logger accessible via ",[292,297,298],{},"log"," in route context and ",[292,301,302],{},"useLogger()",", emitting a wide event when the response completes.",[305,306,307],"code-collapse",{},[308,309,315],"pre",{"className":310,"code":311,"filename":312,"language":313,"meta":314,"style":314},"language-txt shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","Set up evlog in my Elysia app.\n\n- Install evlog: pnpm add evlog\n- Call initLogger({ env: { service: 'my-api' } }) at startup\n- Alternatively, use evlog\u002Fvite plugin in vite.config.ts for auto-init (replaces initLogger)\n- Import evlog from 'evlog\u002Felysia' and add .use(evlog()) to your Elysia app\n- Access the logger via the log property in route context destructuring\n- Use useLogger() from 'evlog\u002Felysia' to access the logger from anywhere\n- Optionally pass drain, enrich, include, and keep options to evlog()\n\nDocs: https:\u002F\u002Fwww.evlog.dev\u002Fframeworks\u002Felysia\nAdapters: https:\u002F\u002Fwww.evlog.dev\u002Fadapters\n","Prompt","txt","",[292,316,317,325,332,338,344,350,356,362,368,374,379,385],{"__ignoreMap":314},[318,319,322],"span",{"class":320,"line":321},"line",1,[318,323,324],{},"Set up evlog in my Elysia app.\n",[318,326,328],{"class":320,"line":327},2,[318,329,331],{"emptyLinePlaceholder":330},true,"\n",[318,333,335],{"class":320,"line":334},3,[318,336,337],{},"- Install evlog: pnpm add evlog\n",[318,339,341],{"class":320,"line":340},4,[318,342,343],{},"- Call initLogger({ env: { service: 'my-api' } }) at startup\n",[318,345,347],{"class":320,"line":346},5,[318,348,349],{},"- Alternatively, use evlog\u002Fvite plugin in vite.config.ts for auto-init (replaces initLogger)\n",[318,351,353],{"class":320,"line":352},6,[318,354,355],{},"- Import evlog from 'evlog\u002Felysia' and add .use(evlog()) to your Elysia app\n",[318,357,359],{"class":320,"line":358},7,[318,360,361],{},"- Access the logger via the log property in route context destructuring\n",[318,363,365],{"class":320,"line":364},8,[318,366,367],{},"- Use useLogger() from 'evlog\u002Felysia' to access the logger from anywhere\n",[318,369,371],{"class":320,"line":370},9,[318,372,373],{},"- Optionally pass drain, enrich, include, and keep options to evlog()\n",[318,375,377],{"class":320,"line":376},10,[318,378,331],{"emptyLinePlaceholder":330},[318,380,382],{"class":320,"line":381},11,[318,383,384],{},"Docs: https:\u002F\u002Fwww.evlog.dev\u002Fframeworks\u002Felysia\n",[318,386,388],{"class":320,"line":387},12,[318,389,390],{},"Adapters: https:\u002F\u002Fwww.evlog.dev\u002Fadapters\n",[392,393,20],"h2",{"id":394},"quick-start",[396,397,399],"h3",{"id":398},"_1-install","1. Install",[308,401,406],{"className":402,"code":403,"filename":404,"language":405,"meta":314,"style":314},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","bun add evlog elysia\n","Terminal","bash",[292,407,408],{"__ignoreMap":314},[318,409,410,414,418,421],{"class":320,"line":321},[318,411,413],{"class":412},"sBMFI","bun",[318,415,417],{"class":416},"sfazB"," add",[318,419,420],{"class":416}," evlog",[318,422,423],{"class":416}," elysia\n",[396,425,427],{"id":426},"_2-initialize-and-register-the-plugin","2. Initialize and register the plugin",[308,429,434],{"className":430,"code":431,"filename":432,"language":433,"meta":314,"style":314},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { Elysia } from 'elysia'\nimport { initLogger } from 'evlog'\nimport { evlog } from 'evlog\u002Felysia'\n\ninitLogger({\n  env: { service: 'my-api' },\n})\n\nconst app = new Elysia()\n  .use(evlog())\n  .get('\u002Fhealth', ({ log }) => {\n    log.set({ route: 'health' })\n    return { ok: true }\n  })\n  .listen(3000)\n","src\u002Findex.ts","typescript",[292,435,436,465,485,503,507,519,546,554,558,578,593,628,660,680,688],{"__ignoreMap":314},[318,437,438,442,446,450,453,456,459,462],{"class":320,"line":321},[318,439,441],{"class":440},"s7zQu","import",[318,443,445],{"class":444},"sMK4o"," {",[318,447,449],{"class":448},"sTEyZ"," Elysia",[318,451,452],{"class":444}," }",[318,454,455],{"class":440}," from",[318,457,458],{"class":444}," '",[318,460,461],{"class":416},"elysia",[318,463,464],{"class":444},"'\n",[318,466,467,469,471,474,476,478,480,483],{"class":320,"line":327},[318,468,441],{"class":440},[318,470,445],{"class":444},[318,472,473],{"class":448}," initLogger",[318,475,452],{"class":444},[318,477,455],{"class":440},[318,479,458],{"class":444},[318,481,482],{"class":416},"evlog",[318,484,464],{"class":444},[318,486,487,489,491,493,495,497,499,501],{"class":320,"line":334},[318,488,441],{"class":440},[318,490,445],{"class":444},[318,492,420],{"class":448},[318,494,452],{"class":444},[318,496,455],{"class":440},[318,498,458],{"class":444},[318,500,294],{"class":416},[318,502,464],{"class":444},[318,504,505],{"class":320,"line":340},[318,506,331],{"emptyLinePlaceholder":330},[318,508,509,513,516],{"class":320,"line":346},[318,510,512],{"class":511},"s2Zo4","initLogger",[318,514,515],{"class":448},"(",[318,517,518],{"class":444},"{\n",[318,520,521,525,528,530,533,535,537,540,543],{"class":320,"line":352},[318,522,524],{"class":523},"swJcz","  env",[318,526,527],{"class":444},":",[318,529,445],{"class":444},[318,531,532],{"class":523}," service",[318,534,527],{"class":444},[318,536,458],{"class":444},[318,538,539],{"class":416},"my-api",[318,541,542],{"class":444},"'",[318,544,545],{"class":444}," },\n",[318,547,548,551],{"class":320,"line":358},[318,549,550],{"class":444},"}",[318,552,553],{"class":448},")\n",[318,555,556],{"class":320,"line":364},[318,557,331],{"emptyLinePlaceholder":330},[318,559,560,564,567,570,573,575],{"class":320,"line":370},[318,561,563],{"class":562},"spNyl","const",[318,565,566],{"class":448}," app ",[318,568,569],{"class":444},"=",[318,571,572],{"class":444}," new",[318,574,449],{"class":511},[318,576,577],{"class":448},"()\n",[318,579,580,583,586,588,590],{"class":320,"line":376},[318,581,582],{"class":444},"  .",[318,584,585],{"class":511},"use",[318,587,515],{"class":448},[318,589,482],{"class":511},[318,591,592],{"class":448},"())\n",[318,594,595,597,600,602,604,607,609,612,615,619,622,625],{"class":320,"line":381},[318,596,582],{"class":444},[318,598,599],{"class":511},"get",[318,601,515],{"class":448},[318,603,542],{"class":444},[318,605,606],{"class":416},"\u002Fhealth",[318,608,542],{"class":444},[318,610,611],{"class":444},",",[318,613,614],{"class":444}," ({",[318,616,618],{"class":617},"sHdIc"," log",[318,620,621],{"class":444}," })",[318,623,624],{"class":562}," =>",[318,626,627],{"class":444}," {\n",[318,629,630,633,636,639,641,644,647,649,651,654,656,658],{"class":320,"line":387},[318,631,632],{"class":448},"    log",[318,634,635],{"class":444},".",[318,637,638],{"class":511},"set",[318,640,515],{"class":523},[318,642,643],{"class":444},"{",[318,645,646],{"class":523}," route",[318,648,527],{"class":444},[318,650,458],{"class":444},[318,652,653],{"class":416},"health",[318,655,542],{"class":444},[318,657,452],{"class":444},[318,659,553],{"class":523},[318,661,663,666,668,671,673,677],{"class":320,"line":662},13,[318,664,665],{"class":440},"    return",[318,667,445],{"class":444},[318,669,670],{"class":523}," ok",[318,672,527],{"class":444},[318,674,676],{"class":675},"sfNiH"," true",[318,678,679],{"class":444}," }\n",[318,681,683,686],{"class":320,"line":682},14,[318,684,685],{"class":444},"  }",[318,687,553],{"class":448},[318,689,691,693,696,698,702],{"class":320,"line":690},15,[318,692,582],{"class":444},[318,694,695],{"class":511},"listen",[318,697,515],{"class":448},[318,699,701],{"class":700},"sbssI","3000",[318,703,553],{"class":448},[705,706,708,712,713,720,721,724,725,728],"callout",{"color":707,"icon":104},"info",[709,710,711],"strong",{},"Using Vite?"," The ",[714,715,716,719],"a",{"href":102},[292,717,718],{},"evlog\u002Fvite"," plugin"," replaces the ",[292,722,723],{},"initLogger()"," call with compile-time auto-initialization, strips ",[292,726,727],{},"log.debug()"," from production builds, and injects source locations.",[288,730,290,731,733,734,635],{},[292,732,298],{}," property is automatically available in all route handlers via Elysia's ",[292,735,736],{},"derive",[392,738,46],{"id":739},"wide-events",[288,741,742],{},"Build up context progressively through your handler. One request = one wide event:",[308,744,746],{"className":430,"code":745,"filename":432,"language":433,"meta":314,"style":314},"app.get('\u002Fusers\u002F:id', async ({ log, params }) => {\n  const userId = params.id\n\n  log.set({ user: { id: userId } })\n\n  const user = await db.findUser(userId)\n  log.set({ user: { name: user.name, plan: user.plan } })\n\n  const orders = await db.findOrders(userId)\n  log.set({ orders: { count: orders.length, totalRevenue: sum(orders) } })\n\n  return { user, orders }\n})\n",[292,747,748,786,804,808,841,845,871,921,925,949,1003,1007,1022],{"__ignoreMap":314},[318,749,750,753,755,757,759,761,764,766,768,771,773,775,777,780,782,784],{"class":320,"line":321},[318,751,752],{"class":448},"app",[318,754,635],{"class":444},[318,756,599],{"class":511},[318,758,515],{"class":448},[318,760,542],{"class":444},[318,762,763],{"class":416},"\u002Fusers\u002F:id",[318,765,542],{"class":444},[318,767,611],{"class":444},[318,769,770],{"class":562}," async",[318,772,614],{"class":444},[318,774,618],{"class":617},[318,776,611],{"class":444},[318,778,779],{"class":617}," params",[318,781,621],{"class":444},[318,783,624],{"class":562},[318,785,627],{"class":444},[318,787,788,791,794,797,799,801],{"class":320,"line":327},[318,789,790],{"class":562},"  const",[318,792,793],{"class":448}," userId",[318,795,796],{"class":444}," =",[318,798,779],{"class":448},[318,800,635],{"class":444},[318,802,803],{"class":448},"id\n",[318,805,806],{"class":320,"line":334},[318,807,331],{"emptyLinePlaceholder":330},[318,809,810,813,815,817,819,821,824,826,828,831,833,835,837,839],{"class":320,"line":340},[318,811,812],{"class":448},"  log",[318,814,635],{"class":444},[318,816,638],{"class":511},[318,818,515],{"class":523},[318,820,643],{"class":444},[318,822,823],{"class":523}," user",[318,825,527],{"class":444},[318,827,445],{"class":444},[318,829,830],{"class":523}," id",[318,832,527],{"class":444},[318,834,793],{"class":448},[318,836,452],{"class":444},[318,838,452],{"class":444},[318,840,553],{"class":523},[318,842,843],{"class":320,"line":346},[318,844,331],{"emptyLinePlaceholder":330},[318,846,847,849,851,853,856,859,861,864,866,869],{"class":320,"line":352},[318,848,790],{"class":562},[318,850,823],{"class":448},[318,852,796],{"class":444},[318,854,855],{"class":440}," await",[318,857,858],{"class":448}," db",[318,860,635],{"class":444},[318,862,863],{"class":511},"findUser",[318,865,515],{"class":523},[318,867,868],{"class":448},"userId",[318,870,553],{"class":523},[318,872,873,875,877,879,881,883,885,887,889,892,894,896,898,901,903,906,908,910,912,915,917,919],{"class":320,"line":358},[318,874,812],{"class":448},[318,876,635],{"class":444},[318,878,638],{"class":511},[318,880,515],{"class":523},[318,882,643],{"class":444},[318,884,823],{"class":523},[318,886,527],{"class":444},[318,888,445],{"class":444},[318,890,891],{"class":523}," name",[318,893,527],{"class":444},[318,895,823],{"class":448},[318,897,635],{"class":444},[318,899,900],{"class":448},"name",[318,902,611],{"class":444},[318,904,905],{"class":523}," plan",[318,907,527],{"class":444},[318,909,823],{"class":448},[318,911,635],{"class":444},[318,913,914],{"class":448},"plan",[318,916,452],{"class":444},[318,918,452],{"class":444},[318,920,553],{"class":523},[318,922,923],{"class":320,"line":364},[318,924,331],{"emptyLinePlaceholder":330},[318,926,927,929,932,934,936,938,940,943,945,947],{"class":320,"line":370},[318,928,790],{"class":562},[318,930,931],{"class":448}," orders",[318,933,796],{"class":444},[318,935,855],{"class":440},[318,937,858],{"class":448},[318,939,635],{"class":444},[318,941,942],{"class":511},"findOrders",[318,944,515],{"class":523},[318,946,868],{"class":448},[318,948,553],{"class":523},[318,950,951,953,955,957,959,961,963,965,967,970,972,974,976,979,981,984,986,989,991,994,997,999,1001],{"class":320,"line":376},[318,952,812],{"class":448},[318,954,635],{"class":444},[318,956,638],{"class":511},[318,958,515],{"class":523},[318,960,643],{"class":444},[318,962,931],{"class":523},[318,964,527],{"class":444},[318,966,445],{"class":444},[318,968,969],{"class":523}," count",[318,971,527],{"class":444},[318,973,931],{"class":448},[318,975,635],{"class":444},[318,977,978],{"class":448},"length",[318,980,611],{"class":444},[318,982,983],{"class":523}," totalRevenue",[318,985,527],{"class":444},[318,987,988],{"class":511}," sum",[318,990,515],{"class":523},[318,992,993],{"class":448},"orders",[318,995,996],{"class":523},") ",[318,998,550],{"class":444},[318,1000,452],{"class":444},[318,1002,553],{"class":523},[318,1004,1005],{"class":320,"line":381},[318,1006,331],{"emptyLinePlaceholder":330},[318,1008,1009,1012,1014,1016,1018,1020],{"class":320,"line":387},[318,1010,1011],{"class":440},"  return",[318,1013,445],{"class":444},[318,1015,823],{"class":448},[318,1017,611],{"class":444},[318,1019,931],{"class":448},[318,1021,679],{"class":444},[318,1023,1024,1026],{"class":320,"line":662},[318,1025,550],{"class":444},[318,1027,553],{"class":448},[288,1029,1030],{},"All fields are merged into a single wide event emitted when the request completes:",[308,1032,1035],{"className":402,"code":1033,"filename":1034,"language":405,"meta":314,"style":314},"14:58:15 INFO [my-api] GET \u002Fusers\u002Fusr_123 200 in 12ms\n  ├─ orders: count=2 totalRevenue=6298\n  ├─ user: id=usr_123 name=Alice plan=pro\n  └─ requestId: 4a8ff3a8-...\n","Terminal output",[292,1036,1037,1048,1068,1084],{"__ignoreMap":314},[318,1038,1039,1042,1045],{"class":320,"line":321},[318,1040,1041],{"class":412},"14:58:15",[318,1043,1044],{"class":416}," INFO",[318,1046,1047],{"class":448}," [my-api] GET \u002Fusers\u002Fusr_123 200 in 12ms\n",[318,1049,1050,1053,1056,1059,1062,1065],{"class":320,"line":327},[318,1051,1052],{"class":412},"  ├─",[318,1054,1055],{"class":416}," orders:",[318,1057,1058],{"class":416}," count=",[318,1060,1061],{"class":700},"2",[318,1063,1064],{"class":416}," totalRevenue=",[318,1066,1067],{"class":700},"6298\n",[318,1069,1070,1072,1075,1078,1081],{"class":320,"line":334},[318,1071,1052],{"class":412},[318,1073,1074],{"class":416}," user:",[318,1076,1077],{"class":416}," id=usr_123",[318,1079,1080],{"class":416}," name=Alice",[318,1082,1083],{"class":416}," plan=pro\n",[318,1085,1086,1089,1092],{"class":320,"line":340},[318,1087,1088],{"class":412},"  └─",[318,1090,1091],{"class":416}," requestId:",[318,1093,1094],{"class":416}," 4a8ff3a8-...\n",[392,1096,302],{"id":1097},"uselogger",[288,1099,1100,1101,1103],{},"Use ",[292,1102,302],{}," to access the request-scoped logger from anywhere in the call stack without passing the context through your service layer:",[308,1105,1108],{"className":430,"code":1106,"filename":1107,"language":433,"meta":314,"style":314},"import { useLogger } from 'evlog\u002Felysia'\n\nexport async function findUser(id: string) {\n  const log = useLogger()\n  log.set({ user: { id } })\n\n  const user = await db.findUser(id)\n  log.set({ user: { name: user.name, plan: user.plan } })\n\n  return user\n}\n","src\u002Fservices\u002Fuser.ts",[292,1109,1110,1129,1133,1161,1173,1199,1203,1225,1271,1275,1282],{"__ignoreMap":314},[318,1111,1112,1114,1116,1119,1121,1123,1125,1127],{"class":320,"line":321},[318,1113,441],{"class":440},[318,1115,445],{"class":444},[318,1117,1118],{"class":448}," useLogger",[318,1120,452],{"class":444},[318,1122,455],{"class":440},[318,1124,458],{"class":444},[318,1126,294],{"class":416},[318,1128,464],{"class":444},[318,1130,1131],{"class":320,"line":327},[318,1132,331],{"emptyLinePlaceholder":330},[318,1134,1135,1138,1140,1143,1146,1148,1151,1153,1156,1159],{"class":320,"line":334},[318,1136,1137],{"class":440},"export",[318,1139,770],{"class":562},[318,1141,1142],{"class":562}," function",[318,1144,1145],{"class":511}," findUser",[318,1147,515],{"class":444},[318,1149,1150],{"class":617},"id",[318,1152,527],{"class":444},[318,1154,1155],{"class":412}," string",[318,1157,1158],{"class":444},")",[318,1160,627],{"class":444},[318,1162,1163,1165,1167,1169,1171],{"class":320,"line":340},[318,1164,790],{"class":562},[318,1166,618],{"class":448},[318,1168,796],{"class":444},[318,1170,1118],{"class":511},[318,1172,577],{"class":523},[318,1174,1175,1177,1179,1181,1183,1185,1187,1189,1191,1193,1195,1197],{"class":320,"line":346},[318,1176,812],{"class":448},[318,1178,635],{"class":444},[318,1180,638],{"class":511},[318,1182,515],{"class":523},[318,1184,643],{"class":444},[318,1186,823],{"class":523},[318,1188,527],{"class":444},[318,1190,445],{"class":444},[318,1192,830],{"class":448},[318,1194,452],{"class":444},[318,1196,452],{"class":444},[318,1198,553],{"class":523},[318,1200,1201],{"class":320,"line":352},[318,1202,331],{"emptyLinePlaceholder":330},[318,1204,1205,1207,1209,1211,1213,1215,1217,1219,1221,1223],{"class":320,"line":358},[318,1206,790],{"class":562},[318,1208,823],{"class":448},[318,1210,796],{"class":444},[318,1212,855],{"class":440},[318,1214,858],{"class":448},[318,1216,635],{"class":444},[318,1218,863],{"class":511},[318,1220,515],{"class":523},[318,1222,1150],{"class":448},[318,1224,553],{"class":523},[318,1226,1227,1229,1231,1233,1235,1237,1239,1241,1243,1245,1247,1249,1251,1253,1255,1257,1259,1261,1263,1265,1267,1269],{"class":320,"line":364},[318,1228,812],{"class":448},[318,1230,635],{"class":444},[318,1232,638],{"class":511},[318,1234,515],{"class":523},[318,1236,643],{"class":444},[318,1238,823],{"class":523},[318,1240,527],{"class":444},[318,1242,445],{"class":444},[318,1244,891],{"class":523},[318,1246,527],{"class":444},[318,1248,823],{"class":448},[318,1250,635],{"class":444},[318,1252,900],{"class":448},[318,1254,611],{"class":444},[318,1256,905],{"class":523},[318,1258,527],{"class":444},[318,1260,823],{"class":448},[318,1262,635],{"class":444},[318,1264,914],{"class":448},[318,1266,452],{"class":444},[318,1268,452],{"class":444},[318,1270,553],{"class":523},[318,1272,1273],{"class":320,"line":370},[318,1274,331],{"emptyLinePlaceholder":330},[318,1276,1277,1279],{"class":320,"line":376},[318,1278,1011],{"class":440},[318,1280,1281],{"class":448}," user\n",[318,1283,1284],{"class":320,"line":381},[318,1285,1286],{"class":444},"}\n",[308,1288,1290],{"className":430,"code":1289,"filename":432,"language":433,"meta":314,"style":314},"import { findUser } from '.\u002Fservices\u002Fuser'\n\napp.get('\u002Fusers\u002F:id', async ({ params }) => {\n  const user = await findUser(params.id)\n  return user\n})\n",[292,1291,1292,1311,1315,1345,1368,1374],{"__ignoreMap":314},[318,1293,1294,1296,1298,1300,1302,1304,1306,1309],{"class":320,"line":321},[318,1295,441],{"class":440},[318,1297,445],{"class":444},[318,1299,1145],{"class":448},[318,1301,452],{"class":444},[318,1303,455],{"class":440},[318,1305,458],{"class":444},[318,1307,1308],{"class":416},".\u002Fservices\u002Fuser",[318,1310,464],{"class":444},[318,1312,1313],{"class":320,"line":327},[318,1314,331],{"emptyLinePlaceholder":330},[318,1316,1317,1319,1321,1323,1325,1327,1329,1331,1333,1335,1337,1339,1341,1343],{"class":320,"line":334},[318,1318,752],{"class":448},[318,1320,635],{"class":444},[318,1322,599],{"class":511},[318,1324,515],{"class":448},[318,1326,542],{"class":444},[318,1328,763],{"class":416},[318,1330,542],{"class":444},[318,1332,611],{"class":444},[318,1334,770],{"class":562},[318,1336,614],{"class":444},[318,1338,779],{"class":617},[318,1340,621],{"class":444},[318,1342,624],{"class":562},[318,1344,627],{"class":444},[318,1346,1347,1349,1351,1353,1355,1357,1359,1362,1364,1366],{"class":320,"line":340},[318,1348,790],{"class":562},[318,1350,823],{"class":448},[318,1352,796],{"class":444},[318,1354,855],{"class":440},[318,1356,1145],{"class":511},[318,1358,515],{"class":523},[318,1360,1361],{"class":448},"params",[318,1363,635],{"class":444},[318,1365,1150],{"class":448},[318,1367,553],{"class":523},[318,1369,1370,1372],{"class":320,"line":346},[318,1371,1011],{"class":440},[318,1373,1281],{"class":448},[318,1375,1376,1378],{"class":320,"line":352},[318,1377,550],{"class":444},[318,1379,553],{"class":448},[288,1381,1382,1383,1385,1386,1388,1389,1391,1392,1395],{},"Both ",[292,1384,298],{}," in context and ",[292,1387,302],{}," return the same logger instance. ",[292,1390,302],{}," uses ",[292,1393,1394],{},"AsyncLocalStorage"," to propagate the logger across async boundaries.",[392,1397,1399],{"id":1398},"error-handling","Error Handling",[288,1401,1100,1402,1405,1406,1409,1410,1413,1414,1417,1418,527],{},[292,1403,1404],{},"createError"," for structured errors with ",[292,1407,1408],{},"why",", ",[292,1411,1412],{},"fix",", and ",[292,1415,1416],{},"link"," fields. Elysia captures thrown errors via ",[292,1419,1420],{},"onError",[308,1422,1424],{"className":430,"code":1423,"filename":432,"language":433,"meta":314,"style":314},"import { createError, parseError } from 'evlog'\n\napp\n  .use(evlog())\n  .get('\u002Fcheckout', ({ log }) => {\n    log.set({ cart: { items: 3, total: 9999 } })\n\n    throw createError({\n      message: 'Payment failed',\n      status: 402,\n      why: 'Card declined by issuer',\n      fix: 'Try a different payment method',\n      link: 'https:\u002F\u002Fdocs.example.com\u002Fpayments\u002Fdeclined',\n    })\n  })\n  .onError(({ error, set }) => {\n    const parsed = parseError(error)\n    set.status = parsed.status\n    return {\n      message: parsed.message,\n      why: parsed.why,\n      fix: parsed.fix,\n      link: parsed.link,\n    }\n  })\n",[292,1425,1426,1450,1454,1459,1471,1498,1541,1545,1556,1573,1585,1601,1617,1633,1640,1646,1672,1692,1712,1719,1735,1750,1765,1780,1786],{"__ignoreMap":314},[318,1427,1428,1430,1432,1435,1437,1440,1442,1444,1446,1448],{"class":320,"line":321},[318,1429,441],{"class":440},[318,1431,445],{"class":444},[318,1433,1434],{"class":448}," createError",[318,1436,611],{"class":444},[318,1438,1439],{"class":448}," parseError",[318,1441,452],{"class":444},[318,1443,455],{"class":440},[318,1445,458],{"class":444},[318,1447,482],{"class":416},[318,1449,464],{"class":444},[318,1451,1452],{"class":320,"line":327},[318,1453,331],{"emptyLinePlaceholder":330},[318,1455,1456],{"class":320,"line":334},[318,1457,1458],{"class":448},"app\n",[318,1460,1461,1463,1465,1467,1469],{"class":320,"line":340},[318,1462,582],{"class":444},[318,1464,585],{"class":511},[318,1466,515],{"class":448},[318,1468,482],{"class":511},[318,1470,592],{"class":448},[318,1472,1473,1475,1477,1479,1481,1484,1486,1488,1490,1492,1494,1496],{"class":320,"line":346},[318,1474,582],{"class":444},[318,1476,599],{"class":511},[318,1478,515],{"class":448},[318,1480,542],{"class":444},[318,1482,1483],{"class":416},"\u002Fcheckout",[318,1485,542],{"class":444},[318,1487,611],{"class":444},[318,1489,614],{"class":444},[318,1491,618],{"class":617},[318,1493,621],{"class":444},[318,1495,624],{"class":562},[318,1497,627],{"class":444},[318,1499,1500,1502,1504,1506,1508,1510,1513,1515,1517,1520,1522,1525,1527,1530,1532,1535,1537,1539],{"class":320,"line":352},[318,1501,632],{"class":448},[318,1503,635],{"class":444},[318,1505,638],{"class":511},[318,1507,515],{"class":523},[318,1509,643],{"class":444},[318,1511,1512],{"class":523}," cart",[318,1514,527],{"class":444},[318,1516,445],{"class":444},[318,1518,1519],{"class":523}," items",[318,1521,527],{"class":444},[318,1523,1524],{"class":700}," 3",[318,1526,611],{"class":444},[318,1528,1529],{"class":523}," total",[318,1531,527],{"class":444},[318,1533,1534],{"class":700}," 9999",[318,1536,452],{"class":444},[318,1538,452],{"class":444},[318,1540,553],{"class":523},[318,1542,1543],{"class":320,"line":358},[318,1544,331],{"emptyLinePlaceholder":330},[318,1546,1547,1550,1552,1554],{"class":320,"line":364},[318,1548,1549],{"class":440},"    throw",[318,1551,1434],{"class":511},[318,1553,515],{"class":523},[318,1555,518],{"class":444},[318,1557,1558,1561,1563,1565,1568,1570],{"class":320,"line":370},[318,1559,1560],{"class":523},"      message",[318,1562,527],{"class":444},[318,1564,458],{"class":444},[318,1566,1567],{"class":416},"Payment failed",[318,1569,542],{"class":444},[318,1571,1572],{"class":444},",\n",[318,1574,1575,1578,1580,1583],{"class":320,"line":376},[318,1576,1577],{"class":523},"      status",[318,1579,527],{"class":444},[318,1581,1582],{"class":700}," 402",[318,1584,1572],{"class":444},[318,1586,1587,1590,1592,1594,1597,1599],{"class":320,"line":381},[318,1588,1589],{"class":523},"      why",[318,1591,527],{"class":444},[318,1593,458],{"class":444},[318,1595,1596],{"class":416},"Card declined by issuer",[318,1598,542],{"class":444},[318,1600,1572],{"class":444},[318,1602,1603,1606,1608,1610,1613,1615],{"class":320,"line":387},[318,1604,1605],{"class":523},"      fix",[318,1607,527],{"class":444},[318,1609,458],{"class":444},[318,1611,1612],{"class":416},"Try a different payment method",[318,1614,542],{"class":444},[318,1616,1572],{"class":444},[318,1618,1619,1622,1624,1626,1629,1631],{"class":320,"line":662},[318,1620,1621],{"class":523},"      link",[318,1623,527],{"class":444},[318,1625,458],{"class":444},[318,1627,1628],{"class":416},"https:\u002F\u002Fdocs.example.com\u002Fpayments\u002Fdeclined",[318,1630,542],{"class":444},[318,1632,1572],{"class":444},[318,1634,1635,1638],{"class":320,"line":682},[318,1636,1637],{"class":444},"    }",[318,1639,553],{"class":523},[318,1641,1642,1644],{"class":320,"line":690},[318,1643,685],{"class":444},[318,1645,553],{"class":448},[318,1647,1649,1651,1653,1655,1658,1661,1663,1666,1668,1670],{"class":320,"line":1648},16,[318,1650,582],{"class":444},[318,1652,1420],{"class":511},[318,1654,515],{"class":448},[318,1656,1657],{"class":444},"({",[318,1659,1660],{"class":617}," error",[318,1662,611],{"class":444},[318,1664,1665],{"class":617}," set",[318,1667,621],{"class":444},[318,1669,624],{"class":562},[318,1671,627],{"class":444},[318,1673,1675,1678,1681,1683,1685,1687,1690],{"class":320,"line":1674},17,[318,1676,1677],{"class":562},"    const",[318,1679,1680],{"class":448}," parsed",[318,1682,796],{"class":444},[318,1684,1439],{"class":511},[318,1686,515],{"class":523},[318,1688,1689],{"class":448},"error",[318,1691,553],{"class":523},[318,1693,1695,1698,1700,1703,1705,1707,1709],{"class":320,"line":1694},18,[318,1696,1697],{"class":448},"    set",[318,1699,635],{"class":444},[318,1701,1702],{"class":448},"status",[318,1704,796],{"class":444},[318,1706,1680],{"class":448},[318,1708,635],{"class":444},[318,1710,1711],{"class":448},"status\n",[318,1713,1715,1717],{"class":320,"line":1714},19,[318,1716,665],{"class":440},[318,1718,627],{"class":444},[318,1720,1722,1724,1726,1728,1730,1733],{"class":320,"line":1721},20,[318,1723,1560],{"class":523},[318,1725,527],{"class":444},[318,1727,1680],{"class":448},[318,1729,635],{"class":444},[318,1731,1732],{"class":448},"message",[318,1734,1572],{"class":444},[318,1736,1738,1740,1742,1744,1746,1748],{"class":320,"line":1737},21,[318,1739,1589],{"class":523},[318,1741,527],{"class":444},[318,1743,1680],{"class":448},[318,1745,635],{"class":444},[318,1747,1408],{"class":448},[318,1749,1572],{"class":444},[318,1751,1753,1755,1757,1759,1761,1763],{"class":320,"line":1752},22,[318,1754,1605],{"class":523},[318,1756,527],{"class":444},[318,1758,1680],{"class":448},[318,1760,635],{"class":444},[318,1762,1412],{"class":448},[318,1764,1572],{"class":444},[318,1766,1768,1770,1772,1774,1776,1778],{"class":320,"line":1767},23,[318,1769,1621],{"class":523},[318,1771,527],{"class":444},[318,1773,1680],{"class":448},[318,1775,635],{"class":444},[318,1777,1416],{"class":448},[318,1779,1572],{"class":444},[318,1781,1783],{"class":320,"line":1782},24,[318,1784,1785],{"class":444},"    }\n",[318,1787,1789,1791],{"class":320,"line":1788},25,[318,1790,685],{"class":444},[318,1792,553],{"class":448},[288,1794,1795],{},"The error is captured and logged with both the custom context and structured error fields:",[308,1797,1799],{"className":402,"code":1798,"filename":1034,"language":405,"meta":314,"style":314},"14:58:20 ERROR [my-api] GET \u002Fcheckout 402 in 3ms\n  ├─ error: name=EvlogError message=Payment failed status=402\n  ├─ cart: items=3 total=9999\n  └─ requestId: 880a50ac-...\n",[292,1800,1801,1812,1834,1853],{"__ignoreMap":314},[318,1802,1803,1806,1809],{"class":320,"line":321},[318,1804,1805],{"class":412},"14:58:20",[318,1807,1808],{"class":416}," ERROR",[318,1810,1811],{"class":448}," [my-api] GET \u002Fcheckout 402 in 3ms\n",[318,1813,1814,1816,1819,1822,1825,1828,1831],{"class":320,"line":327},[318,1815,1052],{"class":412},[318,1817,1818],{"class":416}," error:",[318,1820,1821],{"class":416}," name=EvlogError",[318,1823,1824],{"class":416}," message=Payment",[318,1826,1827],{"class":416}," failed",[318,1829,1830],{"class":416}," status=",[318,1832,1833],{"class":700},"402\n",[318,1835,1836,1838,1841,1844,1847,1850],{"class":320,"line":334},[318,1837,1052],{"class":412},[318,1839,1840],{"class":416}," cart:",[318,1842,1843],{"class":416}," items=",[318,1845,1846],{"class":700},"3",[318,1848,1849],{"class":416}," total=",[318,1851,1852],{"class":700},"9999\n",[318,1854,1855,1857,1859],{"class":320,"line":340},[318,1856,1088],{"class":412},[318,1858,1091],{"class":416},[318,1860,1861],{"class":416}," 880a50ac-...\n",[392,1863,76],{"id":1864},"configuration",[288,1866,1867,1868,1871,1872,1874],{},"See the ",[714,1869,1870],{"href":77},"Configuration reference"," for all available options (",[292,1873,512],{},", middleware options, sampling, silent mode, etc.).",[392,1876,1878],{"id":1877},"drain-enrichers","Drain & Enrichers",[288,1880,1881],{},"Configure drain adapters and enrichers directly in the plugin options:",[308,1883,1885],{"className":430,"code":1884,"filename":432,"language":433,"meta":314,"style":314},"import { createAxiomDrain } from 'evlog\u002Faxiom'\nimport { createUserAgentEnricher } from 'evlog\u002Fenrichers'\n\nconst userAgent = createUserAgentEnricher()\n\napp.use(evlog({\n  drain: createAxiomDrain(),\n  enrich: (ctx) => {\n    userAgent(ctx)\n    ctx.event.region = process.env.FLY_REGION\n  },\n}))\n",[292,1886,1887,1907,1927,1931,1944,1948,1964,1978,1997,2008,2038,2043],{"__ignoreMap":314},[318,1888,1889,1891,1893,1896,1898,1900,1902,1905],{"class":320,"line":321},[318,1890,441],{"class":440},[318,1892,445],{"class":444},[318,1894,1895],{"class":448}," createAxiomDrain",[318,1897,452],{"class":444},[318,1899,455],{"class":440},[318,1901,458],{"class":444},[318,1903,1904],{"class":416},"evlog\u002Faxiom",[318,1906,464],{"class":444},[318,1908,1909,1911,1913,1916,1918,1920,1922,1925],{"class":320,"line":327},[318,1910,441],{"class":440},[318,1912,445],{"class":444},[318,1914,1915],{"class":448}," createUserAgentEnricher",[318,1917,452],{"class":444},[318,1919,455],{"class":440},[318,1921,458],{"class":444},[318,1923,1924],{"class":416},"evlog\u002Fenrichers",[318,1926,464],{"class":444},[318,1928,1929],{"class":320,"line":334},[318,1930,331],{"emptyLinePlaceholder":330},[318,1932,1933,1935,1938,1940,1942],{"class":320,"line":340},[318,1934,563],{"class":562},[318,1936,1937],{"class":448}," userAgent ",[318,1939,569],{"class":444},[318,1941,1915],{"class":511},[318,1943,577],{"class":448},[318,1945,1946],{"class":320,"line":346},[318,1947,331],{"emptyLinePlaceholder":330},[318,1949,1950,1952,1954,1956,1958,1960,1962],{"class":320,"line":352},[318,1951,752],{"class":448},[318,1953,635],{"class":444},[318,1955,585],{"class":511},[318,1957,515],{"class":448},[318,1959,482],{"class":511},[318,1961,515],{"class":448},[318,1963,518],{"class":444},[318,1965,1966,1969,1971,1973,1976],{"class":320,"line":358},[318,1967,1968],{"class":523},"  drain",[318,1970,527],{"class":444},[318,1972,1895],{"class":511},[318,1974,1975],{"class":448},"()",[318,1977,1572],{"class":444},[318,1979,1980,1983,1985,1988,1991,1993,1995],{"class":320,"line":364},[318,1981,1982],{"class":511},"  enrich",[318,1984,527],{"class":444},[318,1986,1987],{"class":444}," (",[318,1989,1990],{"class":617},"ctx",[318,1992,1158],{"class":444},[318,1994,624],{"class":562},[318,1996,627],{"class":444},[318,1998,1999,2002,2004,2006],{"class":320,"line":370},[318,2000,2001],{"class":511},"    userAgent",[318,2003,515],{"class":523},[318,2005,1990],{"class":448},[318,2007,553],{"class":523},[318,2009,2010,2013,2015,2018,2020,2023,2025,2028,2030,2033,2035],{"class":320,"line":376},[318,2011,2012],{"class":448},"    ctx",[318,2014,635],{"class":444},[318,2016,2017],{"class":448},"event",[318,2019,635],{"class":444},[318,2021,2022],{"class":448},"region",[318,2024,796],{"class":444},[318,2026,2027],{"class":448}," process",[318,2029,635],{"class":444},[318,2031,2032],{"class":448},"env",[318,2034,635],{"class":444},[318,2036,2037],{"class":448},"FLY_REGION\n",[318,2039,2040],{"class":320,"line":381},[318,2041,2042],{"class":444},"  },\n",[318,2044,2045,2047],{"class":320,"line":387},[318,2046,550],{"class":444},[318,2048,2049],{"class":448},"))\n",[396,2051,2053],{"id":2052},"pipeline-batching-retry","Pipeline (Batching & Retry)",[288,2055,2056,2057,2060],{},"For production, wrap your adapter with ",[292,2058,2059],{},"createDrainPipeline"," to batch events and retry on failure:",[308,2062,2064],{"className":430,"code":2063,"filename":432,"language":433,"meta":314,"style":314},"import type { DrainContext } from 'evlog'\nimport { createAxiomDrain } from 'evlog\u002Faxiom'\nimport { createDrainPipeline } from 'evlog\u002Fpipeline'\n\nconst pipeline = createDrainPipeline\u003CDrainContext>({\n  batch: { size: 50, intervalMs: 5000 },\n  retry: { maxAttempts: 3 },\n})\nconst drain = pipeline(createAxiomDrain())\n\napp.use(evlog({ drain }))\n",[292,2065,2066,2088,2106,2126,2130,2154,2183,2201,2207,2226,2230],{"__ignoreMap":314},[318,2067,2068,2070,2073,2075,2078,2080,2082,2084,2086],{"class":320,"line":321},[318,2069,441],{"class":440},[318,2071,2072],{"class":440}," type",[318,2074,445],{"class":444},[318,2076,2077],{"class":448}," DrainContext",[318,2079,452],{"class":444},[318,2081,455],{"class":440},[318,2083,458],{"class":444},[318,2085,482],{"class":416},[318,2087,464],{"class":444},[318,2089,2090,2092,2094,2096,2098,2100,2102,2104],{"class":320,"line":327},[318,2091,441],{"class":440},[318,2093,445],{"class":444},[318,2095,1895],{"class":448},[318,2097,452],{"class":444},[318,2099,455],{"class":440},[318,2101,458],{"class":444},[318,2103,1904],{"class":416},[318,2105,464],{"class":444},[318,2107,2108,2110,2112,2115,2117,2119,2121,2124],{"class":320,"line":334},[318,2109,441],{"class":440},[318,2111,445],{"class":444},[318,2113,2114],{"class":448}," createDrainPipeline",[318,2116,452],{"class":444},[318,2118,455],{"class":440},[318,2120,458],{"class":444},[318,2122,2123],{"class":416},"evlog\u002Fpipeline",[318,2125,464],{"class":444},[318,2127,2128],{"class":320,"line":340},[318,2129,331],{"emptyLinePlaceholder":330},[318,2131,2132,2134,2137,2139,2141,2144,2147,2150,2152],{"class":320,"line":346},[318,2133,563],{"class":562},[318,2135,2136],{"class":448}," pipeline ",[318,2138,569],{"class":444},[318,2140,2114],{"class":511},[318,2142,2143],{"class":444},"\u003C",[318,2145,2146],{"class":412},"DrainContext",[318,2148,2149],{"class":444},">",[318,2151,515],{"class":448},[318,2153,518],{"class":444},[318,2155,2156,2159,2161,2163,2166,2168,2171,2173,2176,2178,2181],{"class":320,"line":352},[318,2157,2158],{"class":523},"  batch",[318,2160,527],{"class":444},[318,2162,445],{"class":444},[318,2164,2165],{"class":523}," size",[318,2167,527],{"class":444},[318,2169,2170],{"class":700}," 50",[318,2172,611],{"class":444},[318,2174,2175],{"class":523}," intervalMs",[318,2177,527],{"class":444},[318,2179,2180],{"class":700}," 5000",[318,2182,545],{"class":444},[318,2184,2185,2188,2190,2192,2195,2197,2199],{"class":320,"line":358},[318,2186,2187],{"class":523},"  retry",[318,2189,527],{"class":444},[318,2191,445],{"class":444},[318,2193,2194],{"class":523}," maxAttempts",[318,2196,527],{"class":444},[318,2198,1524],{"class":700},[318,2200,545],{"class":444},[318,2202,2203,2205],{"class":320,"line":364},[318,2204,550],{"class":444},[318,2206,553],{"class":448},[318,2208,2209,2211,2214,2216,2219,2221,2224],{"class":320,"line":370},[318,2210,563],{"class":562},[318,2212,2213],{"class":448}," drain ",[318,2215,569],{"class":444},[318,2217,2218],{"class":511}," pipeline",[318,2220,515],{"class":448},[318,2222,2223],{"class":511},"createAxiomDrain",[318,2225,592],{"class":448},[318,2227,2228],{"class":320,"line":376},[318,2229,331],{"emptyLinePlaceholder":330},[318,2231,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250],{"class":320,"line":381},[318,2233,752],{"class":448},[318,2235,635],{"class":444},[318,2237,585],{"class":511},[318,2239,515],{"class":448},[318,2241,482],{"class":511},[318,2243,515],{"class":448},[318,2245,643],{"class":444},[318,2247,2213],{"class":448},[318,2249,550],{"class":444},[318,2251,2049],{"class":448},[705,2253,2254,2255,2258,2259,2262],{"color":707,"icon":13},"Call ",[292,2256,2257],{},"drain.flush()"," on server shutdown to ensure all buffered events are sent. See the ",[714,2260,2261],{"href":204},"Pipeline docs"," for all options.",[392,2264,2266],{"id":2265},"tail-sampling","Tail Sampling",[288,2268,1100,2269,2272],{},[292,2270,2271],{},"keep"," to force-retain specific events regardless of head sampling:",[308,2274,2276],{"className":430,"code":2275,"filename":432,"language":433,"meta":314,"style":314},"app.use(evlog({\n  drain: createAxiomDrain(),\n  keep: (ctx) => {\n    if (ctx.duration && ctx.duration > 2000) ctx.shouldKeep = true\n  },\n}))\n",[292,2277,2278,2294,2306,2323,2367,2371],{"__ignoreMap":314},[318,2279,2280,2282,2284,2286,2288,2290,2292],{"class":320,"line":321},[318,2281,752],{"class":448},[318,2283,635],{"class":444},[318,2285,585],{"class":511},[318,2287,515],{"class":448},[318,2289,482],{"class":511},[318,2291,515],{"class":448},[318,2293,518],{"class":444},[318,2295,2296,2298,2300,2302,2304],{"class":320,"line":327},[318,2297,1968],{"class":523},[318,2299,527],{"class":444},[318,2301,1895],{"class":511},[318,2303,1975],{"class":448},[318,2305,1572],{"class":444},[318,2307,2308,2311,2313,2315,2317,2319,2321],{"class":320,"line":334},[318,2309,2310],{"class":511},"  keep",[318,2312,527],{"class":444},[318,2314,1987],{"class":444},[318,2316,1990],{"class":617},[318,2318,1158],{"class":444},[318,2320,624],{"class":562},[318,2322,627],{"class":444},[318,2324,2325,2328,2330,2332,2334,2337,2340,2343,2345,2347,2350,2353,2355,2357,2359,2362,2364],{"class":320,"line":340},[318,2326,2327],{"class":440},"    if",[318,2329,1987],{"class":523},[318,2331,1990],{"class":448},[318,2333,635],{"class":444},[318,2335,2336],{"class":448},"duration",[318,2338,2339],{"class":444}," &&",[318,2341,2342],{"class":448}," ctx",[318,2344,635],{"class":444},[318,2346,2336],{"class":448},[318,2348,2349],{"class":444}," >",[318,2351,2352],{"class":700}," 2000",[318,2354,996],{"class":523},[318,2356,1990],{"class":448},[318,2358,635],{"class":444},[318,2360,2361],{"class":448},"shouldKeep",[318,2363,796],{"class":444},[318,2365,2366],{"class":675}," true\n",[318,2368,2369],{"class":320,"line":346},[318,2370,2042],{"class":444},[318,2372,2373,2375],{"class":320,"line":352},[318,2374,550],{"class":444},[318,2376,2049],{"class":448},[392,2378,2380],{"id":2379},"route-filtering","Route Filtering",[288,2382,2383,2384,2387,2388,2391],{},"Control which routes are logged with ",[292,2385,2386],{},"include"," and ",[292,2389,2390],{},"exclude"," patterns:",[308,2393,2395],{"className":430,"code":2394,"filename":432,"language":433,"meta":314,"style":314},"app.use(evlog({\n  include: ['\u002Fapi\u002F**'],\n  exclude: ['\u002F_internal\u002F**', '\u002Fhealth'],\n  routes: {\n    '\u002Fapi\u002Fauth\u002F**': { service: 'auth-service' },\n    '\u002Fapi\u002Fpayment\u002F**': { service: 'payment-service' },\n  },\n}))\n",[292,2396,2397,2413,2435,2463,2472,2499,2525,2529],{"__ignoreMap":314},[318,2398,2399,2401,2403,2405,2407,2409,2411],{"class":320,"line":321},[318,2400,752],{"class":448},[318,2402,635],{"class":444},[318,2404,585],{"class":511},[318,2406,515],{"class":448},[318,2408,482],{"class":511},[318,2410,515],{"class":448},[318,2412,518],{"class":444},[318,2414,2415,2418,2420,2423,2425,2428,2430,2433],{"class":320,"line":327},[318,2416,2417],{"class":523},"  include",[318,2419,527],{"class":444},[318,2421,2422],{"class":448}," [",[318,2424,542],{"class":444},[318,2426,2427],{"class":416},"\u002Fapi\u002F**",[318,2429,542],{"class":444},[318,2431,2432],{"class":448},"]",[318,2434,1572],{"class":444},[318,2436,2437,2440,2442,2444,2446,2449,2451,2453,2455,2457,2459,2461],{"class":320,"line":334},[318,2438,2439],{"class":523},"  exclude",[318,2441,527],{"class":444},[318,2443,2422],{"class":448},[318,2445,542],{"class":444},[318,2447,2448],{"class":416},"\u002F_internal\u002F**",[318,2450,542],{"class":444},[318,2452,611],{"class":444},[318,2454,458],{"class":444},[318,2456,606],{"class":416},[318,2458,542],{"class":444},[318,2460,2432],{"class":448},[318,2462,1572],{"class":444},[318,2464,2465,2468,2470],{"class":320,"line":340},[318,2466,2467],{"class":523},"  routes",[318,2469,527],{"class":444},[318,2471,627],{"class":444},[318,2473,2474,2477,2480,2482,2484,2486,2488,2490,2492,2495,2497],{"class":320,"line":346},[318,2475,2476],{"class":444},"    '",[318,2478,2479],{"class":523},"\u002Fapi\u002Fauth\u002F**",[318,2481,542],{"class":444},[318,2483,527],{"class":444},[318,2485,445],{"class":444},[318,2487,532],{"class":523},[318,2489,527],{"class":444},[318,2491,458],{"class":444},[318,2493,2494],{"class":416},"auth-service",[318,2496,542],{"class":444},[318,2498,545],{"class":444},[318,2500,2501,2503,2506,2508,2510,2512,2514,2516,2518,2521,2523],{"class":320,"line":352},[318,2502,2476],{"class":444},[318,2504,2505],{"class":523},"\u002Fapi\u002Fpayment\u002F**",[318,2507,542],{"class":444},[318,2509,527],{"class":444},[318,2511,445],{"class":444},[318,2513,532],{"class":523},[318,2515,527],{"class":444},[318,2517,458],{"class":444},[318,2519,2520],{"class":416},"payment-service",[318,2522,542],{"class":444},[318,2524,545],{"class":444},[318,2526,2527],{"class":320,"line":358},[318,2528,2042],{"class":444},[318,2530,2531,2533],{"class":320,"line":364},[318,2532,550],{"class":444},[318,2534,2049],{"class":448},[392,2536,2538],{"id":2537},"client-side-logging","Client-Side Logging",[288,2540,1100,2541,2544],{},[292,2542,2543],{},"evlog\u002Fbrowser"," to send structured logs from any frontend to your Elysia server. This works with any client framework (React, Vue, Svelte, vanilla JS).",[396,2546,2548],{"id":2547},"browser-setup","Browser setup",[308,2550,2553],{"className":430,"code":2551,"filename":2552,"language":433,"meta":314,"style":314},"import { initLogger, log } from 'evlog'\nimport { createBrowserLogDrain } from 'evlog\u002Fbrowser'\n\nconst drain = createBrowserLogDrain({\n  drain: { endpoint: '\u002Fv1\u002Fingest' },\n})\ninitLogger({ drain })\n\nlog.info({ action: 'page_view', path: location.pathname })\n","client.ts",[292,2554,2555,2577,2596,2600,2614,2636,2642,2656,2660],{"__ignoreMap":314},[318,2556,2557,2559,2561,2563,2565,2567,2569,2571,2573,2575],{"class":320,"line":321},[318,2558,441],{"class":440},[318,2560,445],{"class":444},[318,2562,473],{"class":448},[318,2564,611],{"class":444},[318,2566,618],{"class":448},[318,2568,452],{"class":444},[318,2570,455],{"class":440},[318,2572,458],{"class":444},[318,2574,482],{"class":416},[318,2576,464],{"class":444},[318,2578,2579,2581,2583,2586,2588,2590,2592,2594],{"class":320,"line":327},[318,2580,441],{"class":440},[318,2582,445],{"class":444},[318,2584,2585],{"class":448}," createBrowserLogDrain",[318,2587,452],{"class":444},[318,2589,455],{"class":440},[318,2591,458],{"class":444},[318,2593,2543],{"class":416},[318,2595,464],{"class":444},[318,2597,2598],{"class":320,"line":334},[318,2599,331],{"emptyLinePlaceholder":330},[318,2601,2602,2604,2606,2608,2610,2612],{"class":320,"line":340},[318,2603,563],{"class":562},[318,2605,2213],{"class":448},[318,2607,569],{"class":444},[318,2609,2585],{"class":511},[318,2611,515],{"class":448},[318,2613,518],{"class":444},[318,2615,2616,2618,2620,2622,2625,2627,2629,2632,2634],{"class":320,"line":346},[318,2617,1968],{"class":523},[318,2619,527],{"class":444},[318,2621,445],{"class":444},[318,2623,2624],{"class":523}," endpoint",[318,2626,527],{"class":444},[318,2628,458],{"class":444},[318,2630,2631],{"class":416},"\u002Fv1\u002Fingest",[318,2633,542],{"class":444},[318,2635,545],{"class":444},[318,2637,2638,2640],{"class":320,"line":352},[318,2639,550],{"class":444},[318,2641,553],{"class":448},[318,2643,2644,2646,2648,2650,2652,2654],{"class":320,"line":358},[318,2645,512],{"class":511},[318,2647,515],{"class":448},[318,2649,643],{"class":444},[318,2651,2213],{"class":448},[318,2653,550],{"class":444},[318,2655,553],{"class":448},[318,2657,2658],{"class":320,"line":364},[318,2659,331],{"emptyLinePlaceholder":330},[318,2661,2662,2664,2666,2668,2670,2672,2675,2677,2679,2682,2684,2686,2689,2691,2694,2696,2699,2701],{"class":320,"line":370},[318,2663,298],{"class":448},[318,2665,635],{"class":444},[318,2667,707],{"class":511},[318,2669,515],{"class":448},[318,2671,643],{"class":444},[318,2673,2674],{"class":523}," action",[318,2676,527],{"class":444},[318,2678,458],{"class":444},[318,2680,2681],{"class":416},"page_view",[318,2683,542],{"class":444},[318,2685,611],{"class":444},[318,2687,2688],{"class":523}," path",[318,2690,527],{"class":444},[318,2692,2693],{"class":448}," location",[318,2695,635],{"class":444},[318,2697,2698],{"class":448},"pathname ",[318,2700,550],{"class":444},[318,2702,553],{"class":448},[396,2704,2706],{"id":2705},"ingest-endpoint","Ingest endpoint",[288,2708,2709,2710,2713],{},"Add a POST route to receive batched ",[292,2711,2712],{},"DrainContext[]"," from the browser:",[308,2715,2717],{"className":430,"code":2716,"filename":432,"language":433,"meta":314,"style":314},"import type { DrainContext } from 'evlog'\n\napp.post('\u002Fv1\u002Fingest', async ({ body }) => {\n  const batch = body as DrainContext[]\n  for (const ctx of batch) {\n    console.log('[BROWSER]', JSON.stringify(ctx.event))\n  }\n  return new Response(null, { status: 204 })\n})\n",[292,2718,2719,2739,2743,2775,2794,2814,2852,2857,2885],{"__ignoreMap":314},[318,2720,2721,2723,2725,2727,2729,2731,2733,2735,2737],{"class":320,"line":321},[318,2722,441],{"class":440},[318,2724,2072],{"class":440},[318,2726,445],{"class":444},[318,2728,2077],{"class":448},[318,2730,452],{"class":444},[318,2732,455],{"class":440},[318,2734,458],{"class":444},[318,2736,482],{"class":416},[318,2738,464],{"class":444},[318,2740,2741],{"class":320,"line":327},[318,2742,331],{"emptyLinePlaceholder":330},[318,2744,2745,2747,2749,2752,2754,2756,2758,2760,2762,2764,2766,2769,2771,2773],{"class":320,"line":334},[318,2746,752],{"class":448},[318,2748,635],{"class":444},[318,2750,2751],{"class":511},"post",[318,2753,515],{"class":448},[318,2755,542],{"class":444},[318,2757,2631],{"class":416},[318,2759,542],{"class":444},[318,2761,611],{"class":444},[318,2763,770],{"class":562},[318,2765,614],{"class":444},[318,2767,2768],{"class":617}," body",[318,2770,621],{"class":444},[318,2772,624],{"class":562},[318,2774,627],{"class":444},[318,2776,2777,2779,2782,2784,2786,2789,2791],{"class":320,"line":340},[318,2778,790],{"class":562},[318,2780,2781],{"class":448}," batch",[318,2783,796],{"class":444},[318,2785,2768],{"class":448},[318,2787,2788],{"class":440}," as",[318,2790,2077],{"class":412},[318,2792,2793],{"class":523},"[]\n",[318,2795,2796,2799,2801,2803,2805,2808,2810,2812],{"class":320,"line":346},[318,2797,2798],{"class":440},"  for",[318,2800,1987],{"class":523},[318,2802,563],{"class":562},[318,2804,2342],{"class":448},[318,2806,2807],{"class":444}," of",[318,2809,2781],{"class":448},[318,2811,996],{"class":523},[318,2813,518],{"class":444},[318,2815,2816,2819,2821,2823,2825,2827,2830,2832,2834,2837,2839,2842,2844,2846,2848,2850],{"class":320,"line":352},[318,2817,2818],{"class":448},"    console",[318,2820,635],{"class":444},[318,2822,298],{"class":511},[318,2824,515],{"class":523},[318,2826,542],{"class":444},[318,2828,2829],{"class":416},"[BROWSER]",[318,2831,542],{"class":444},[318,2833,611],{"class":444},[318,2835,2836],{"class":448}," JSON",[318,2838,635],{"class":444},[318,2840,2841],{"class":511},"stringify",[318,2843,515],{"class":523},[318,2845,1990],{"class":448},[318,2847,635],{"class":444},[318,2849,2017],{"class":448},[318,2851,2049],{"class":523},[318,2853,2854],{"class":320,"line":358},[318,2855,2856],{"class":444},"  }\n",[318,2858,2859,2861,2863,2866,2868,2871,2873,2876,2878,2881,2883],{"class":320,"line":364},[318,2860,1011],{"class":440},[318,2862,572],{"class":444},[318,2864,2865],{"class":511}," Response",[318,2867,515],{"class":523},[318,2869,2870],{"class":444},"null,",[318,2872,445],{"class":444},[318,2874,2875],{"class":523}," status",[318,2877,527],{"class":444},[318,2879,2880],{"class":700}," 204",[318,2882,452],{"class":444},[318,2884,553],{"class":523},[318,2886,2887,2889],{"class":320,"line":370},[318,2888,550],{"class":444},[318,2890,553],{"class":448},[705,2892,2894,2895,2898],{"color":2893,"icon":211},"neutral","See the full ",[714,2896,2897],{"href":209},"Browser Drain"," adapter docs for batching, retry, sendBeacon fallback, and authentication options.",[392,2900,2902],{"id":2901},"run-locally","Run Locally",[308,2904,2906],{"className":402,"code":2905,"filename":404,"language":405,"meta":314,"style":314},"git clone https:\u002F\u002Fgithub.com\u002Fhugorcd\u002Fevlog.git\ncd evlog\nbun install\nbun run example:elysia\n",[292,2907,2908,2919,2927,2934],{"__ignoreMap":314},[318,2909,2910,2913,2916],{"class":320,"line":321},[318,2911,2912],{"class":412},"git",[318,2914,2915],{"class":416}," clone",[318,2917,2918],{"class":416}," https:\u002F\u002Fgithub.com\u002Fhugorcd\u002Fevlog.git\n",[318,2920,2921,2924],{"class":320,"line":327},[318,2922,2923],{"class":511},"cd",[318,2925,2926],{"class":416}," evlog\n",[318,2928,2929,2931],{"class":320,"line":334},[318,2930,413],{"class":412},[318,2932,2933],{"class":416}," install\n",[318,2935,2936,2938,2941],{"class":320,"line":340},[318,2937,413],{"class":412},[318,2939,2940],{"class":416}," run",[318,2942,2943],{"class":416}," example:elysia\n",[288,2945,2946,2947,2952],{},"Open ",[714,2948,2949],{"href":2949,"rel":2950},"http:\u002F\u002Flocalhost:3000",[2951],"nofollow"," to explore the interactive test UI.",[2954,2955,2956],"card-group",{},[2957,2958,2961],"card",{"icon":163,"title":2959,"to":2960},"Source Code","https:\u002F\u002Fgithub.com\u002Fhugorcd\u002Fevlog\u002Ftree\u002Fmain\u002Fexamples\u002Felysia","Browse the complete Elysia example source on GitHub.",[392,2963,2965],{"id":2964},"next-steps","Next Steps",[2967,2968,2969,2975,2980,2985],"ul",{},[2970,2971,2972,2974],"li",{},[714,2973,46],{"href":47},": Design comprehensive events with context layering",[2970,2976,2977,2979],{},[714,2978,189],{"href":194},": Send logs to Axiom, Sentry, PostHog, and more",[2970,2981,2982,2984],{},[714,2983,81],{"href":82},": Control log volume with head and tail sampling",[2970,2986,2987,2989,2990,1409,2992,1413,2994,2996],{},[714,2988,51],{"href":52},": Throw errors with ",[292,2991,1408],{},[292,2993,1412],{},[292,2995,1416],{}," fields",[2998,2999,3000],"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 .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":314,"searchDepth":327,"depth":327,"links":3002},[3003,3007,3008,3009,3010,3011,3014,3015,3016,3020,3021],{"id":394,"depth":327,"text":20,"children":3004},[3005,3006],{"id":398,"depth":334,"text":399},{"id":426,"depth":334,"text":427},{"id":739,"depth":327,"text":46},{"id":1097,"depth":327,"text":302},{"id":1398,"depth":327,"text":1399},{"id":1864,"depth":327,"text":76},{"id":1877,"depth":327,"text":1878,"children":3012},[3013],{"id":2052,"depth":334,"text":2053},{"id":2265,"depth":327,"text":2266},{"id":2379,"depth":327,"text":2380},{"id":2537,"depth":327,"text":2538,"children":3017},[3018,3019],{"id":2547,"depth":334,"text":2548},{"id":2705,"depth":334,"text":2706},{"id":2901,"depth":327,"text":2902},{"id":2964,"depth":327,"text":2965},"Automatic wide events, structured errors, drain adapters, enrichers, and tail sampling in Elysia applications.","md",[3025],{"label":2959,"icon":3026,"to":2960,"color":2893,"variant":3027},"i-simple-icons-github","subtle",{},{"title":160,"icon":163},{"title":160,"description":3022},"BNeyy3fyaaZycdDgrGsZ-Z3kPjitKsltSyOdISMawu4",[3033,3035],{"title":155,"path":156,"stem":157,"description":3034,"icon":158,"children":-1},"Automatic wide events, structured errors, drain adapters, enrichers, and tail sampling in Fastify applications.",{"title":165,"path":166,"stem":167,"description":3036,"icon":168,"children":-1},"Automatic wide events, structured errors, drain adapters, enrichers, and tail sampling in React Router applications.",1775319492849]