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