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