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