[{"data":1,"prerenderedAt":6029},["ShallowReactive",2],{"navigation_docs":3,"evlog-docs-home":598},[4,35,85,138,318,453,475,534,573],{"title":5,"path":6,"stem":7,"children":8,"page":34},"Start","\u002Fstart","1.start",[9,14,19,24,29],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","\u002Fstart\u002Fintroduction","1.start\u002F1.introduction","i-lucide-info",{"title":15,"path":16,"stem":17,"icon":18},"Why start with evlog","\u002Fstart\u002Fwhy-evlog","1.start\u002F2.why-evlog","i-lucide-rocket",{"title":20,"path":21,"stem":22,"icon":23},"Installation","\u002Fstart\u002Finstallation","1.start\u002F3.installation","i-lucide-download",{"title":25,"path":26,"stem":27,"icon":28},"Quick Start","\u002Fstart\u002Fquick-start","1.start\u002F4.quick-start","i-lucide-zap",{"title":30,"path":31,"stem":32,"icon":33},"Choose your logger","\u002Fstart\u002Ftypescript-logging-library","1.start\u002F5.typescript-logging-library","i-lucide-file-code",false,{"title":36,"path":37,"stem":38,"children":39,"page":34},"Learn","\u002Flearn","2.learn",[40,45,50,55,60,65,70,75,80],{"title":41,"path":42,"stem":43,"icon":44},"Overview","\u002Flearn\u002Foverview","2.learn\u002F0.overview","i-lucide-list",{"title":46,"path":47,"stem":48,"icon":49},"Simple Logging","\u002Flearn\u002Fsimple-logging","2.learn\u002F1.simple-logging","i-lucide-terminal",{"title":51,"path":52,"stem":53,"icon":54},"Wide Events","\u002Flearn\u002Fwide-events","2.learn\u002F2.wide-events","i-lucide-layers",{"title":56,"path":57,"stem":58,"icon":59},"Structured Errors","\u002Flearn\u002Fstructured-errors","2.learn\u002F3.structured-errors","i-lucide-shield-alert",{"title":61,"path":62,"stem":63,"icon":64},"Lifecycle","\u002Flearn\u002Flifecycle","2.learn\u002F4.lifecycle","i-lucide-arrow-right-left",{"title":66,"path":67,"stem":68,"icon":69},"Sampling","\u002Flearn\u002Fsampling","2.learn\u002F5.sampling","i-lucide-filter",{"title":71,"path":72,"stem":73,"icon":74},"Auto-Redaction","\u002Flearn\u002Fredaction","2.learn\u002F6.redaction","i-lucide-eye-off",{"title":76,"path":77,"stem":78,"icon":79},"Typed Fields","\u002Flearn\u002Ftyped-fields","2.learn\u002F7.typed-fields","i-simple-icons-typescript",{"title":81,"path":82,"stem":83,"icon":84},"Catalogs","\u002Flearn\u002Fcatalogs","2.learn\u002F8.catalogs","i-lucide-book-open",{"title":86,"path":87,"stem":88,"children":89,"page":34},"CLI","\u002Fcli","3.cli",[90,93,98,103,108,113,118,123,128,133],{"title":41,"path":91,"stem":92,"icon":49},"\u002Fcli\u002Foverview","3.cli\u002F0.overview",{"title":94,"path":95,"stem":96,"icon":97},"init","\u002Fcli\u002Finit","3.cli\u002F1.init","i-lucide-wand-sparkles",{"title":99,"path":100,"stem":101,"icon":102},"map","\u002Fcli\u002Fmap","3.cli\u002F2.map","i-lucide-radar",{"title":104,"path":105,"stem":106,"icon":107},"Rules","\u002Fcli\u002Frules","3.cli\u002F3.rules","i-lucide-list-checks",{"title":109,"path":110,"stem":111,"icon":112},"Scoring","\u002Fcli\u002Fscoring","3.cli\u002F4.scoring","i-lucide-gauge",{"title":114,"path":115,"stem":116,"icon":117},"CI","\u002Fcli\u002Fci","3.cli\u002F5.ci","i-lucide-git-pull-request",{"title":119,"path":120,"stem":121,"icon":122},"doctor","\u002Fcli\u002Fdoctor","3.cli\u002F6.doctor","i-lucide-stethoscope",{"title":124,"path":125,"stem":126,"icon":127},"telemetry","\u002Fcli\u002Ftelemetry","3.cli\u002F7.telemetry","i-lucide-bar-chart-3",{"title":129,"path":130,"stem":131,"icon":132},"agents","\u002Fcli\u002Fagents","3.cli\u002F8.agents","i-lucide-bot",{"title":134,"path":135,"stem":136,"icon":137},"Observability Score","\u002Fcli\u002Fobservability-score","3.cli\u002F9.observability-score","i-lucide-activity",{"title":139,"path":140,"stem":141,"children":142,"page":34},"Integrate","\u002Fintegrate","4.integrate",[143,147,230],{"title":41,"path":144,"stem":145,"icon":146},"\u002Fintegrate\u002Foverview","4.integrate\u002F0.overview","i-lucide-plug",{"title":148,"path":149,"stem":150,"children":151,"page":34},"Adapters","\u002Fintegrate\u002Fadapters","4.integrate\u002Fadapters",[152,155,185,210],{"title":41,"path":153,"stem":154,"icon":44},"\u002Fintegrate\u002Fadapters\u002Foverview","4.integrate\u002Fadapters\u002F01.overview",{"title":156,"path":157,"stem":158,"children":159,"page":34},"Cloud","\u002Fintegrate\u002Fadapters\u002Fcloud","4.integrate\u002Fadapters\u002Fcloud",[160,165,170,175,180],{"title":161,"path":162,"stem":163,"icon":164},"Axiom","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Faxiom","4.integrate\u002Fadapters\u002Fcloud\u002F01.axiom","i-custom-axiom",{"title":166,"path":167,"stem":168,"icon":169},"PostHog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fposthog","4.integrate\u002Fadapters\u002Fcloud\u002F02.posthog","i-simple-icons-posthog",{"title":171,"path":172,"stem":173,"icon":174},"Sentry","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fsentry","4.integrate\u002Fadapters\u002Fcloud\u002F03.sentry","i-simple-icons-sentry",{"title":176,"path":177,"stem":178,"icon":179},"Better Stack","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fbetter-stack","4.integrate\u002Fadapters\u002Fcloud\u002F04.better-stack","i-simple-icons-betterstack",{"title":181,"path":182,"stem":183,"icon":184},"Datadog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fdatadog","4.integrate\u002Fadapters\u002Fcloud\u002F05.datadog","i-simple-icons-datadog",{"title":186,"path":187,"stem":188,"children":189,"page":34},"Cloud or Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fhybrid","4.integrate\u002Fadapters\u002Fhybrid",[190,195,200,205],{"title":191,"path":192,"stem":193,"icon":194},"Grafana Loki","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Floki","4.integrate\u002Fadapters\u002Fhybrid\u002F01.loki","i-simple-icons-grafana",{"title":196,"path":197,"stem":198,"icon":199},"ClickHouse","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fclickhouse","4.integrate\u002Fadapters\u002Fhybrid\u002F02.clickhouse","i-simple-icons-clickhouse",{"title":201,"path":202,"stem":203,"icon":204},"OTLP","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fotlp","4.integrate\u002Fadapters\u002Fhybrid\u002F03.otlp","i-simple-icons-opentelemetry",{"title":206,"path":207,"stem":208,"icon":209},"HyperDX","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fhyperdx","4.integrate\u002Fadapters\u002Fhybrid\u002F04.hyperdx","i-custom-hyperdx",{"title":211,"path":212,"stem":213,"children":214,"page":34},"Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fself-hosted","4.integrate\u002Fadapters\u002Fself-hosted",[215,220,225],{"title":216,"path":217,"stem":218,"icon":219},"File System","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Ffs","4.integrate\u002Fadapters\u002Fself-hosted\u002F01.fs","i-lucide-hard-drive",{"title":221,"path":222,"stem":223,"icon":224},"NuxtHub","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fnuxthub","4.integrate\u002Fadapters\u002Fself-hosted\u002F02.nuxthub","i-simple-icons-nuxt",{"title":226,"path":227,"stem":228,"icon":229},"Memory","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fmemory","4.integrate\u002Fadapters\u002Fself-hosted\u002F03.memory","i-lucide-cpu",{"title":231,"path":232,"stem":233,"children":234,"page":34},"Frameworks","\u002Fintegrate\u002Fframeworks","4.integrate\u002Fframeworks",[235,239,244,249,254,259,264,269,274,279,284,289,294,299,303,308,313],{"title":41,"path":236,"stem":237,"icon":238},"\u002Fintegrate\u002Fframeworks\u002Foverview","4.integrate\u002Fframeworks\u002F00.overview","i-lucide-layout-grid",{"title":240,"path":241,"stem":242,"icon":243},"Nuxt","\u002Fintegrate\u002Fframeworks\u002Fnuxt","4.integrate\u002Fframeworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":245,"path":246,"stem":247,"icon":248},"Next.js","\u002Fintegrate\u002Fframeworks\u002Fnextjs","4.integrate\u002Fframeworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":250,"path":251,"stem":252,"icon":253},"SvelteKit","\u002Fintegrate\u002Fframeworks\u002Fsveltekit","4.integrate\u002Fframeworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":255,"path":256,"stem":257,"icon":258},"Nitro","\u002Fintegrate\u002Fframeworks\u002Fnitro","4.integrate\u002Fframeworks\u002F04.nitro","i-custom-nitro",{"title":260,"path":261,"stem":262,"icon":263},"TanStack Start","\u002Fintegrate\u002Fframeworks\u002Ftanstack-start","4.integrate\u002Fframeworks\u002F05.tanstack-start","i-custom-tanstack",{"title":265,"path":266,"stem":267,"icon":268},"NestJS","\u002Fintegrate\u002Fframeworks\u002Fnestjs","4.integrate\u002Fframeworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":270,"path":271,"stem":272,"icon":273},"Express","\u002Fintegrate\u002Fframeworks\u002Fexpress","4.integrate\u002Fframeworks\u002F07.express","i-simple-icons-express",{"title":275,"path":276,"stem":277,"icon":278},"Hono","\u002Fintegrate\u002Fframeworks\u002Fhono","4.integrate\u002Fframeworks\u002F08.hono","i-simple-icons-hono",{"title":280,"path":281,"stem":282,"icon":283},"Fastify","\u002Fintegrate\u002Fframeworks\u002Ffastify","4.integrate\u002Fframeworks\u002F09.fastify","i-simple-icons-fastify",{"title":285,"path":286,"stem":287,"icon":288},"Elysia","\u002Fintegrate\u002Fframeworks\u002Felysia","4.integrate\u002Fframeworks\u002F10.elysia","i-custom-elysia",{"title":290,"path":291,"stem":292,"icon":293},"React Router","\u002Fintegrate\u002Fframeworks\u002Freact-router","4.integrate\u002Fframeworks\u002F11.react-router","i-custom-reactrouter",{"title":295,"path":296,"stem":297,"icon":298},"Cloudflare Workers","\u002Fintegrate\u002Fframeworks\u002Fcloudflare-workers","4.integrate\u002Fframeworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":300,"path":301,"stem":302,"icon":79},"Standalone","\u002Fintegrate\u002Fframeworks\u002Fstandalone","4.integrate\u002Fframeworks\u002F13.standalone",{"title":304,"path":305,"stem":306,"icon":307},"Astro","\u002Fintegrate\u002Fframeworks\u002Fastro","4.integrate\u002Fframeworks\u002F14.astro","i-simple-icons-astro",{"title":309,"path":310,"stem":311,"icon":312},"oRPC","\u002Fintegrate\u002Fframeworks\u002Forpc","4.integrate\u002Fframeworks\u002F15.orpc","i-lucide-network",{"title":314,"path":315,"stem":316,"icon":317},"AWS Lambda","\u002Fintegrate\u002Fframeworks\u002Faws-lambda","4.integrate\u002Fframeworks\u002F16.aws-lambda","i-custom-lambda",{"title":319,"path":320,"stem":321,"children":322,"page":34},"Use Cases","\u002Fuse-cases","5.use-cases",[323,326,331,359,386,418,439,444,449],{"title":41,"path":324,"stem":325,"icon":107},"\u002Fuse-cases\u002Foverview","5.use-cases\u002F0.overview",{"title":327,"path":328,"stem":329,"icon":330},"Client Logging","\u002Fuse-cases\u002Fclient-logging","5.use-cases\u002F1.client-logging","i-lucide-monitor",{"title":332,"icon":333,"path":334,"stem":335,"children":336,"page":34},"AI SDK","i-simple-icons-vercel","\u002Fuse-cases\u002Fai-sdk","5.use-cases\u002F2.ai-sdk",[337,340,345,350,355],{"title":41,"path":338,"stem":339,"icon":44},"\u002Fuse-cases\u002Fai-sdk\u002Foverview","5.use-cases\u002F2.ai-sdk\u002F01.overview",{"title":341,"path":342,"stem":343,"icon":344},"Usage","\u002Fuse-cases\u002Fai-sdk\u002Fusage","5.use-cases\u002F2.ai-sdk\u002F02.usage","i-lucide-code",{"title":346,"path":347,"stem":348,"icon":349},"Options","\u002Fuse-cases\u002Fai-sdk\u002Foptions","5.use-cases\u002F2.ai-sdk\u002F03.options","i-lucide-sliders",{"title":351,"path":352,"stem":353,"icon":354},"Metadata","\u002Fuse-cases\u002Fai-sdk\u002Fmetadata","5.use-cases\u002F2.ai-sdk\u002F04.metadata","i-lucide-database",{"title":356,"path":357,"stem":358,"icon":137},"Telemetry","\u002Fuse-cases\u002Fai-sdk\u002Ftelemetry","5.use-cases\u002F2.ai-sdk\u002F05.telemetry",{"title":360,"icon":361,"path":362,"stem":363,"children":364,"page":34},"Better Auth","i-simple-icons-betterauth","\u002Fuse-cases\u002Fbetter-auth","5.use-cases\u002F3.better-auth",[365,368,373,378,382],{"title":41,"path":366,"stem":367,"icon":44},"\u002Fuse-cases\u002Fbetter-auth\u002Foverview","5.use-cases\u002F3.better-auth\u002F01.overview",{"title":369,"path":370,"stem":371,"icon":372},"Identify User","\u002Fuse-cases\u002Fbetter-auth\u002Fidentify-user","5.use-cases\u002F3.better-auth\u002F02.identify-user","i-lucide-user-check",{"title":374,"path":375,"stem":376,"icon":377},"Middleware","\u002Fuse-cases\u002Fbetter-auth\u002Fmiddleware","5.use-cases\u002F3.better-auth\u002F03.middleware","i-lucide-shield",{"title":379,"path":380,"stem":381,"icon":330},"Client Sync","\u002Fuse-cases\u002Fbetter-auth\u002Fclient-sync","5.use-cases\u002F3.better-auth\u002F04.client-sync",{"title":383,"path":384,"stem":385,"icon":112},"Performance","\u002Fuse-cases\u002Fbetter-auth\u002Fperformance","5.use-cases\u002F3.better-auth\u002F05.performance",{"title":387,"icon":388,"path":389,"stem":390,"children":391,"page":34},"Audit Logs","i-lucide-shield-check","\u002Fuse-cases\u002Faudit","5.use-cases\u002F4.audit",[392,395,400,405,410,414],{"title":41,"path":393,"stem":394,"icon":44},"\u002Fuse-cases\u002Faudit\u002Foverview","5.use-cases\u002F4.audit\u002F01.overview",{"title":396,"path":397,"stem":398,"icon":399},"Schema","\u002Fuse-cases\u002Faudit\u002Fschema","5.use-cases\u002F4.audit\u002F02.schema","i-lucide-file-text",{"title":401,"path":402,"stem":403,"icon":404},"Recording","\u002Fuse-cases\u002Faudit\u002Frecording","5.use-cases\u002F4.audit\u002F03.recording","i-lucide-pen-line",{"title":406,"path":407,"stem":408,"icon":409},"Drains","\u002Fuse-cases\u002Faudit\u002Fpipeline","5.use-cases\u002F4.audit\u002F04.pipeline","i-lucide-link",{"title":411,"path":412,"stem":413,"icon":388},"Compliance","\u002Fuse-cases\u002Faudit\u002Fcompliance","5.use-cases\u002F4.audit\u002F05.compliance",{"title":415,"path":416,"stem":417,"icon":84},"Recipes","\u002Fuse-cases\u002Faudit\u002Frecipes","5.use-cases\u002F4.audit\u002F06.recipes",{"title":356,"icon":112,"path":419,"stem":420,"children":421,"page":34},"\u002Fuse-cases\u002Ftelemetry","5.use-cases\u002F4.telemetry",[422,425,430,435],{"title":41,"path":423,"stem":424,"icon":44},"\u002Fuse-cases\u002Ftelemetry\u002Foverview","5.use-cases\u002F4.telemetry\u002F01.overview",{"title":426,"path":427,"stem":428,"icon":429},"Setup","\u002Fuse-cases\u002Ftelemetry\u002Fsetup","5.use-cases\u002F4.telemetry\u002F02.setup","i-lucide-wrench",{"title":431,"path":432,"stem":433,"icon":434},"Ingest","\u002Fuse-cases\u002Ftelemetry\u002Fingest","5.use-cases\u002F4.telemetry\u002F03.ingest","i-lucide-server",{"title":436,"path":437,"stem":438,"icon":84},"Reference","\u002Fuse-cases\u002Ftelemetry\u002Freference","5.use-cases\u002F4.telemetry\u002F04.reference",{"title":440,"path":441,"stem":442,"icon":443},"Enrichers","\u002Fuse-cases\u002Fenrichers","5.use-cases\u002F5.enrichers","i-lucide-sparkles",{"title":445,"path":446,"stem":447,"icon":448},"eve","\u002Fuse-cases\u002Feve","5.use-cases\u002F5.eve","i-custom-eve",{"title":450,"path":451,"stem":452,"icon":434},"Node.js request logging","\u002Fuse-cases\u002Fstructured-logging-nodejs","5.use-cases\u002F6.structured-logging-nodejs",{"title":454,"path":455,"stem":456,"children":457,"page":34},"Libraries","\u002Flibraries","6.libraries",[458,462,467,470],{"title":41,"path":459,"stem":460,"icon":461},"\u002Flibraries\u002Foverview","6.libraries\u002F0.overview","i-lucide-package",{"title":463,"path":464,"stem":465,"icon":466},"Emitting Events","\u002Flibraries\u002Femitting","6.libraries\u002F1.emitting","i-lucide-radio",{"title":56,"path":468,"stem":469,"icon":59},"\u002Flibraries\u002Ferrors","6.libraries\u002F2.errors",{"title":471,"path":472,"stem":473,"icon":474},"Testing","\u002Flibraries\u002Ftesting","6.libraries\u002F3.testing","i-lucide-flask-conical",{"title":476,"path":477,"stem":478,"children":479,"page":34},"Extend","\u002Fextend","7.extend",[480,484,489,494,498,503,507,511,515,519,524,529],{"title":41,"path":481,"stem":482,"icon":483},"\u002Fextend\u002Foverview","7.extend\u002F0.overview","i-lucide-blocks",{"title":485,"path":486,"stem":487,"icon":488},"Stream","\u002Fextend\u002Fstream","7.extend\u002F1.stream","i-lucide-radio-tower",{"title":490,"path":491,"stem":492,"icon":493},"Custom framework","\u002Fextend\u002Fcustom-framework","7.extend\u002F10.custom-framework","i-lucide-puzzle",{"title":495,"path":496,"stem":497,"icon":488},"Diagnostics channel","\u002Fextend\u002Fdiagnostics-channel","7.extend\u002F11.diagnostics-channel",{"title":499,"path":500,"stem":501,"icon":502},"FS reader","\u002Fextend\u002Ffs-reader","7.extend\u002F2.fs-reader","i-lucide-folder-search",{"title":415,"path":504,"stem":505,"icon":506},"\u002Fextend\u002Fconsumer-recipes","7.extend\u002F3.consumer-recipes","i-lucide-chef-hat",{"title":508,"path":509,"stem":510,"icon":483},"Plugins","\u002Fextend\u002Fplugins","7.extend\u002F4.plugins",{"title":512,"path":513,"stem":514,"icon":443},"Custom enrichers","\u002Fextend\u002Fcustom-enrichers","7.extend\u002F5.custom-enrichers",{"title":516,"path":517,"stem":518,"icon":69},"Tail sampling","\u002Fextend\u002Ftail-sampling","7.extend\u002F6.tail-sampling",{"title":520,"path":521,"stem":522,"icon":523},"Identity headers","\u002Fextend\u002Fidentity-headers","7.extend\u002F7.identity-headers","i-lucide-fingerprint",{"title":525,"path":526,"stem":527,"icon":528},"Custom drains","\u002Fextend\u002Fcustom-drains","7.extend\u002F8.custom-drains","i-lucide-share-2",{"title":530,"path":531,"stem":532,"icon":533},"Drain pipeline","\u002Fextend\u002Fdrain-pipeline","7.extend\u002F9.drain-pipeline","i-lucide-workflow",{"title":436,"path":535,"stem":536,"children":537,"page":34},"\u002Freference","8.reference",[538,542,547,550,555,559,564,568],{"title":41,"path":539,"stem":540,"icon":541},"\u002Freference\u002Foverview","8.reference\u002F0.overview","i-lucide-book-marked",{"title":543,"path":544,"stem":545,"icon":546},"Configuration","\u002Freference\u002Fconfiguration","8.reference\u002F1.configuration","i-lucide-settings",{"title":383,"path":548,"stem":549,"icon":112},"\u002Freference\u002Fperformance","8.reference\u002F2.performance",{"title":551,"path":552,"stem":553,"icon":554},"Vite Plugin","\u002Freference\u002Fvite-plugin","8.reference\u002F3.vite-plugin","i-custom-vite",{"title":556,"path":557,"stem":558,"icon":388},"Best Practices","\u002Freference\u002Fbest-practices","8.reference\u002F4.best-practices",{"title":560,"path":561,"stem":562,"icon":563},"vs Other Loggers","\u002Freference\u002Fvs-other-loggers","8.reference\u002F5.vs-other-loggers","i-lucide-scale",{"title":565,"path":566,"stem":567,"icon":443},"Agent Skills","\u002Freference\u002Fagent-skills","8.reference\u002F6.agent-skills",{"title":569,"path":570,"stem":571,"icon":572},"Cost","\u002Freference\u002Fcost","8.reference\u002F7.cost","i-lucide-receipt",{"title":574,"path":575,"stem":576,"children":577,"page":34},"Compare","\u002Fcompare","9.compare",[578,582,586,590,594],{"title":579,"path":580,"stem":581,"icon":563},"evlog vs Pino","\u002Fcompare\u002Fpino","9.compare\u002F1.pino",{"title":583,"path":584,"stem":585,"icon":204},"evlog vs OpenTelemetry","\u002Fcompare\u002Fopentelemetry","9.compare\u002F2.opentelemetry",{"title":587,"path":588,"stem":589,"icon":563},"evlog vs LogTape","\u002Fcompare\u002Flogtape","9.compare\u002F3.logtape",{"title":591,"path":592,"stem":593,"icon":563},"evlog vs Winston: formats and request events","\u002Fcompare\u002Fwinston","9.compare\u002F4.winston",{"title":595,"path":596,"stem":597,"icon":563},"evlog vs Consola: reporters and request context","\u002Fcompare\u002Fconsola","9.compare\u002F5.consola",{"id":599,"title":600,"body":601,"description":6021,"extension":6022,"links":6023,"meta":6024,"navigation":34,"path":6025,"seo":6026,"stem":6027,"__hash__":6028},"docs\u002F0.landing.md","evlog — Digging through logs is not observability. It's hope.",{"type":602,"value":603,"toc":6019},"minimark",[604,622,625,5886,6009,6015],[605,606,607,619],"landing-hero",{},[608,609,611,612,615,616,618],"template",{"v-slot:title":610},"","Digging through logs ",[613,614],"br",{}," is not observability. ",[613,617],{}," It's hope",[608,620,621],{"v-slot:description":610},"A modern TypeScript logger built for everything you ship. Simple logs, wide events, and structured errors: one API, every context.",[623,624],"landing-logos",{},[626,627,628],"landing-features",{},[608,629,630,646,659,679,692,705,717,732,748,763],{"v-slot:body":610},[631,632,634,637,643],"features-feature-simple-api",{"link":26,"link-label":633},"Quick start guide",[608,635,636],{"v-slot:headline":610},"Simple API",[608,638,639,640,642],{"v-slot:title":610},"Set context. ",[613,641],{}," Get answers",[608,644,645],{"v-slot:description":610},"Accumulate context with log.set, throw structured errors with why and fix, group recurring errors in typed catalogs. One wide event captures everything, whether the request succeeds or fails.",[647,648,650,653,656],"features-feature-agent-ready",{"link":566,"link-label":649},"Agent skills setup",[608,651,652],{"v-slot:headline":610},"Agent Ready",[608,654,655],{"v-slot:title":610},"Built for agents",[608,657,658],{"v-slot:description":610},"Structured fields, machine-readable context, and actionable metadata that give AI agents everything they need to diagnose and resolve issues on their own. Enable the file system drain to write NDJSON logs locally and let agents read them directly.",[660,661,663,665,671],"features-feature-cli-map",{"link":100,"link-label":662},"evlog map guide",[608,664,134],{"v-slot:headline":610},[608,666,667,668,670],{"v-slot:title":610},"Find logging gaps ",[613,669],{}," in your source",[608,672,673,674,678],{"v-slot:description":610},"Run ",[675,676,677],"code",{},"evlog map"," to find missing evlog patterns in supported Nuxt, Nitro, Next.js App Router, TanStack Start, and Hono entry points. The score summarizes static checks and suggests fixes. It does not run your handlers or verify the logs they produce.",[680,681,683,686,689],"features-feature-adapters",{"link":153,"link-label":682},"Explore adapters",[608,684,685],{"v-slot:headline":610},"Drain Pipeline",[608,687,688],{"v-slot:title":610},"Send everywhere",[608,690,691],{"v-slot:description":610},"Batched writes, automatic retries with backoff, and fan-out to multiple destinations. Your logs flow through a pipeline that never blocks your response.",[693,694,696,699,702],"features-feature-client-drain",{"link":328,"link-label":695},"Client logging guide",[608,697,698],{"v-slot:headline":610},"Client Logs",[608,700,701],{"v-slot:title":610},"See the full picture",[608,703,704],{"v-slot:description":610},"Capture browser events and drain them to your server. Automatic batching, retries, and page-aware flushing with the same pipeline from client to server.",[706,707,709,711,714],"features-feature-sampling",{"link":67,"link-label":708},"Sampling guide",[608,710,66],{"v-slot:headline":610},[608,712,713],{"v-slot:title":610},"Keep what matters",[608,715,716],{"v-slot:description":610},"Two-tier filtering: head sampling drops noise by level, tail sampling rescues critical events. Never miss errors, slow requests, or critical paths.",[718,719,721,723,729],"features-feature-audit",{"link":393,"link-label":720},"Audit logs guide",[608,722,387],{"v-slot:headline":610},[608,724,725,726,728],{"v-slot:title":610},"Compliance-ready ",[613,727],{}," by composition",[608,730,731],{"v-slot:description":610},"First-class who-did-what trails as a thin layer on top of wide events. One enricher, one drain wrapper, one helper. Tamper-evident hash chains, denied actions, redact-aware diffs, idempotency keys for safe retries, and typed action catalogs for refactor-safe alerting, all from the main entrypoint, no parallel pipeline.",[733,734,736,739,745],"features-feature-ai-sdk",{"link":338,"link-label":735},"AI SDK integration",[608,737,738],{"v-slot:headline":610},"AI Observability",[608,740,741,742,744],{"v-slot:title":610},"Make AI calls ",[613,743],{}," observable",[608,746,747],{"v-slot:description":610},"Your AI endpoints are black boxes. You don't know how many tokens each request burns, which tools the model called, or how fast the stream was. Wrap your model with one line and every call is captured into the wide event. Cost estimation, tool execution timing, streaming performance, cache hits, reasoning tokens, and multi-step agent breakdowns.",[749,750,752,754,760],"features-feature-performance",{"link":548,"link-label":751},"Benchmark results",[608,753,383],{"v-slot:headline":610},[608,755,756,757,759],{"v-slot:title":610},"Add logging, ",[613,758],{}," not overhead",[608,761,762],{"v-slot:description":610},"Zero runtime dependencies in the core package. Accumulate context and emit one event per operation. Inspect the benchmark workloads and measure your payload, output, and drain configuration before estimating production cost.",[764,765,767,769,772,779,1211,1612,2039,2420,2940,3341,3497,3848,4220,4558,4868,5319,5577],"features-feature-frameworks",{"link":236,"link-label":766},"Framework integrations",[608,768,231],{"v-slot:headline":610},[608,770,771],{"v-slot:title":610},"Your stack. Covered",[608,773,774,775,778],{"v-slot:description":610},"Integrations for Nuxt, Next.js, SvelteKit, Hono, Express, Fastify, and other documented stacks. Each guide covers its setup and request-logger access. For Vite projects, add ",[675,776,777],{},"evlog\u002Fvite"," for auto-initialization, debug stripping, and source locations.",[608,780,781],{"v-slot:nuxt":610},[782,783,788],"pre",{"className":784,"code":785,"filename":786,"language":787,"meta":610,"style":610},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineEventHandler(async (event) => {\n  const log = useLogger(event)\n  const { cartId } = await readBody(event)\n\n  const cart = await db.findCart(cartId)\n  log.set({ cart: { items: cart.items.length, total: cart.total } })\n\n  const charge = await stripe.charge(cart.total)\n  log.set({ stripe: { chargeId: charge.id } })\n\n  if (!charge.success) {\n    throw createError({\n      status: 402,\n      message: 'Payment failed',\n      why: charge.decline_reason,\n      fix: 'Try a different payment method',\n    })\n  }\n\n  return { orderId: charge.id }\n})\n","server\u002Fapi\u002Fcheckout.post.ts","ts",[675,789,790,831,854,882,889,917,978,983,1014,1051,1056,1080,1093,1108,1128,1145,1162,1170,1176,1181,1203],{"__ignoreMap":610},[791,792,795,799,802,806,810,814,818,822,825,828],"span",{"class":793,"line":794},"line",1,[791,796,798],{"class":797},"s7zQu","export",[791,800,801],{"class":797}," default",[791,803,805],{"class":804},"s2Zo4"," defineEventHandler",[791,807,809],{"class":808},"sTEyZ","(",[791,811,813],{"class":812},"spNyl","async",[791,815,817],{"class":816},"sMK4o"," (",[791,819,821],{"class":820},"sHdIc","event",[791,823,824],{"class":816},")",[791,826,827],{"class":812}," =>",[791,829,830],{"class":816}," {\n",[791,832,834,837,840,843,846,849,851],{"class":793,"line":833},2,[791,835,836],{"class":812},"  const",[791,838,839],{"class":808}," log",[791,841,842],{"class":816}," =",[791,844,845],{"class":804}," useLogger",[791,847,809],{"class":848},"swJcz",[791,850,821],{"class":808},[791,852,853],{"class":848},")\n",[791,855,857,859,862,865,868,870,873,876,878,880],{"class":793,"line":856},3,[791,858,836],{"class":812},[791,860,861],{"class":816}," {",[791,863,864],{"class":808}," cartId",[791,866,867],{"class":816}," }",[791,869,842],{"class":816},[791,871,872],{"class":797}," await",[791,874,875],{"class":804}," readBody",[791,877,809],{"class":848},[791,879,821],{"class":808},[791,881,853],{"class":848},[791,883,885],{"class":793,"line":884},4,[791,886,888],{"emptyLinePlaceholder":887},true,"\n",[791,890,892,894,897,899,901,904,907,910,912,915],{"class":793,"line":891},5,[791,893,836],{"class":812},[791,895,896],{"class":808}," cart",[791,898,842],{"class":816},[791,900,872],{"class":797},[791,902,903],{"class":808}," db",[791,905,906],{"class":816},".",[791,908,909],{"class":804},"findCart",[791,911,809],{"class":848},[791,913,914],{"class":808},"cartId",[791,916,853],{"class":848},[791,918,920,923,925,928,930,933,935,938,940,943,945,947,949,952,954,957,960,963,965,967,969,972,974,976],{"class":793,"line":919},6,[791,921,922],{"class":808},"  log",[791,924,906],{"class":816},[791,926,927],{"class":804},"set",[791,929,809],{"class":848},[791,931,932],{"class":816},"{",[791,934,896],{"class":848},[791,936,937],{"class":816},":",[791,939,861],{"class":816},[791,941,942],{"class":848}," items",[791,944,937],{"class":816},[791,946,896],{"class":808},[791,948,906],{"class":816},[791,950,951],{"class":808},"items",[791,953,906],{"class":816},[791,955,956],{"class":808},"length",[791,958,959],{"class":816},",",[791,961,962],{"class":848}," total",[791,964,937],{"class":816},[791,966,896],{"class":808},[791,968,906],{"class":816},[791,970,971],{"class":808},"total",[791,973,867],{"class":816},[791,975,867],{"class":816},[791,977,853],{"class":848},[791,979,981],{"class":793,"line":980},7,[791,982,888],{"emptyLinePlaceholder":887},[791,984,986,988,991,993,995,998,1000,1003,1005,1008,1010,1012],{"class":793,"line":985},8,[791,987,836],{"class":812},[791,989,990],{"class":808}," charge",[791,992,842],{"class":816},[791,994,872],{"class":797},[791,996,997],{"class":808}," stripe",[791,999,906],{"class":816},[791,1001,1002],{"class":804},"charge",[791,1004,809],{"class":848},[791,1006,1007],{"class":808},"cart",[791,1009,906],{"class":816},[791,1011,971],{"class":808},[791,1013,853],{"class":848},[791,1015,1017,1019,1021,1023,1025,1027,1029,1031,1033,1036,1038,1040,1042,1045,1047,1049],{"class":793,"line":1016},9,[791,1018,922],{"class":808},[791,1020,906],{"class":816},[791,1022,927],{"class":804},[791,1024,809],{"class":848},[791,1026,932],{"class":816},[791,1028,997],{"class":848},[791,1030,937],{"class":816},[791,1032,861],{"class":816},[791,1034,1035],{"class":848}," chargeId",[791,1037,937],{"class":816},[791,1039,990],{"class":808},[791,1041,906],{"class":816},[791,1043,1044],{"class":808},"id",[791,1046,867],{"class":816},[791,1048,867],{"class":816},[791,1050,853],{"class":848},[791,1052,1054],{"class":793,"line":1053},10,[791,1055,888],{"emptyLinePlaceholder":887},[791,1057,1059,1062,1064,1067,1069,1071,1074,1077],{"class":793,"line":1058},11,[791,1060,1061],{"class":797},"  if",[791,1063,817],{"class":848},[791,1065,1066],{"class":816},"!",[791,1068,1002],{"class":808},[791,1070,906],{"class":816},[791,1072,1073],{"class":808},"success",[791,1075,1076],{"class":848},") ",[791,1078,1079],{"class":816},"{\n",[791,1081,1083,1086,1089,1091],{"class":793,"line":1082},12,[791,1084,1085],{"class":797},"    throw",[791,1087,1088],{"class":804}," createError",[791,1090,809],{"class":848},[791,1092,1079],{"class":816},[791,1094,1096,1099,1101,1105],{"class":793,"line":1095},13,[791,1097,1098],{"class":848},"      status",[791,1100,937],{"class":816},[791,1102,1104],{"class":1103},"sbssI"," 402",[791,1106,1107],{"class":816},",\n",[791,1109,1111,1114,1116,1119,1123,1126],{"class":793,"line":1110},14,[791,1112,1113],{"class":848},"      message",[791,1115,937],{"class":816},[791,1117,1118],{"class":816}," '",[791,1120,1122],{"class":1121},"sfazB","Payment failed",[791,1124,1125],{"class":816},"'",[791,1127,1107],{"class":816},[791,1129,1131,1134,1136,1138,1140,1143],{"class":793,"line":1130},15,[791,1132,1133],{"class":848},"      why",[791,1135,937],{"class":816},[791,1137,990],{"class":808},[791,1139,906],{"class":816},[791,1141,1142],{"class":808},"decline_reason",[791,1144,1107],{"class":816},[791,1146,1148,1151,1153,1155,1158,1160],{"class":793,"line":1147},16,[791,1149,1150],{"class":848},"      fix",[791,1152,937],{"class":816},[791,1154,1118],{"class":816},[791,1156,1157],{"class":1121},"Try a different payment method",[791,1159,1125],{"class":816},[791,1161,1107],{"class":816},[791,1163,1165,1168],{"class":793,"line":1164},17,[791,1166,1167],{"class":816},"    }",[791,1169,853],{"class":848},[791,1171,1173],{"class":793,"line":1172},18,[791,1174,1175],{"class":816},"  }\n",[791,1177,1179],{"class":793,"line":1178},19,[791,1180,888],{"emptyLinePlaceholder":887},[791,1182,1184,1187,1189,1192,1194,1196,1198,1200],{"class":793,"line":1183},20,[791,1185,1186],{"class":797},"  return",[791,1188,861],{"class":816},[791,1190,1191],{"class":848}," orderId",[791,1193,937],{"class":816},[791,1195,990],{"class":808},[791,1197,906],{"class":816},[791,1199,1044],{"class":808},[791,1201,1202],{"class":816}," }\n",[791,1204,1206,1209],{"class":793,"line":1205},21,[791,1207,1208],{"class":816},"}",[791,1210,853],{"class":808},[608,1212,1213],{"v-slot:nextjs":610},[782,1214,1217],{"className":784,"code":1215,"filename":1216,"language":787,"meta":610,"style":610},"import { withEvlog, useLogger } from '@\u002Flib\u002Fevlog'\nimport { createError } from 'evlog'\n\nexport const POST = withEvlog(async (req) => {\n  const log = useLogger()\n  const { cartId } = await req.json()\n\n  const cart = await db.findCart(cartId)\n  log.set({ cart: { items: cart.items.length, total: cart.total } })\n\n  const charge = await stripe.charge(cart.total)\n  log.set({ stripe: { chargeId: charge.id } })\n\n  if (!charge.success) {\n    throw createError({\n      status: 402,\n      message: 'Payment failed',\n      why: charge.decline_reason,\n      fix: 'Try a different payment method',\n    })\n  }\n\n  return Response.json({ orderId: charge.id })\n})\n","app\u002Fapi\u002Fcheckout\u002Froute.ts",[675,1218,1219,1246,1265,1269,1299,1312,1336,1340,1362,1412,1416,1442,1476,1480,1498,1508,1518,1532,1546,1560,1566,1570,1575,1605],{"__ignoreMap":610},[791,1220,1221,1224,1226,1229,1231,1233,1235,1238,1240,1243],{"class":793,"line":794},[791,1222,1223],{"class":797},"import",[791,1225,861],{"class":816},[791,1227,1228],{"class":808}," withEvlog",[791,1230,959],{"class":816},[791,1232,845],{"class":808},[791,1234,867],{"class":816},[791,1236,1237],{"class":797}," from",[791,1239,1118],{"class":816},[791,1241,1242],{"class":1121},"@\u002Flib\u002Fevlog",[791,1244,1245],{"class":816},"'\n",[791,1247,1248,1250,1252,1254,1256,1258,1260,1263],{"class":793,"line":833},[791,1249,1223],{"class":797},[791,1251,861],{"class":816},[791,1253,1088],{"class":808},[791,1255,867],{"class":816},[791,1257,1237],{"class":797},[791,1259,1118],{"class":816},[791,1261,1262],{"class":1121},"evlog",[791,1264,1245],{"class":816},[791,1266,1267],{"class":793,"line":856},[791,1268,888],{"emptyLinePlaceholder":887},[791,1270,1271,1273,1276,1279,1282,1284,1286,1288,1290,1293,1295,1297],{"class":793,"line":884},[791,1272,798],{"class":797},[791,1274,1275],{"class":812}," const",[791,1277,1278],{"class":808}," POST ",[791,1280,1281],{"class":816},"=",[791,1283,1228],{"class":804},[791,1285,809],{"class":808},[791,1287,813],{"class":812},[791,1289,817],{"class":816},[791,1291,1292],{"class":820},"req",[791,1294,824],{"class":816},[791,1296,827],{"class":812},[791,1298,830],{"class":816},[791,1300,1301,1303,1305,1307,1309],{"class":793,"line":891},[791,1302,836],{"class":812},[791,1304,839],{"class":808},[791,1306,842],{"class":816},[791,1308,845],{"class":804},[791,1310,1311],{"class":848},"()\n",[791,1313,1314,1316,1318,1320,1322,1324,1326,1329,1331,1334],{"class":793,"line":919},[791,1315,836],{"class":812},[791,1317,861],{"class":816},[791,1319,864],{"class":808},[791,1321,867],{"class":816},[791,1323,842],{"class":816},[791,1325,872],{"class":797},[791,1327,1328],{"class":808}," req",[791,1330,906],{"class":816},[791,1332,1333],{"class":804},"json",[791,1335,1311],{"class":848},[791,1337,1338],{"class":793,"line":980},[791,1339,888],{"emptyLinePlaceholder":887},[791,1341,1342,1344,1346,1348,1350,1352,1354,1356,1358,1360],{"class":793,"line":985},[791,1343,836],{"class":812},[791,1345,896],{"class":808},[791,1347,842],{"class":816},[791,1349,872],{"class":797},[791,1351,903],{"class":808},[791,1353,906],{"class":816},[791,1355,909],{"class":804},[791,1357,809],{"class":848},[791,1359,914],{"class":808},[791,1361,853],{"class":848},[791,1363,1364,1366,1368,1370,1372,1374,1376,1378,1380,1382,1384,1386,1388,1390,1392,1394,1396,1398,1400,1402,1404,1406,1408,1410],{"class":793,"line":1016},[791,1365,922],{"class":808},[791,1367,906],{"class":816},[791,1369,927],{"class":804},[791,1371,809],{"class":848},[791,1373,932],{"class":816},[791,1375,896],{"class":848},[791,1377,937],{"class":816},[791,1379,861],{"class":816},[791,1381,942],{"class":848},[791,1383,937],{"class":816},[791,1385,896],{"class":808},[791,1387,906],{"class":816},[791,1389,951],{"class":808},[791,1391,906],{"class":816},[791,1393,956],{"class":808},[791,1395,959],{"class":816},[791,1397,962],{"class":848},[791,1399,937],{"class":816},[791,1401,896],{"class":808},[791,1403,906],{"class":816},[791,1405,971],{"class":808},[791,1407,867],{"class":816},[791,1409,867],{"class":816},[791,1411,853],{"class":848},[791,1413,1414],{"class":793,"line":1053},[791,1415,888],{"emptyLinePlaceholder":887},[791,1417,1418,1420,1422,1424,1426,1428,1430,1432,1434,1436,1438,1440],{"class":793,"line":1058},[791,1419,836],{"class":812},[791,1421,990],{"class":808},[791,1423,842],{"class":816},[791,1425,872],{"class":797},[791,1427,997],{"class":808},[791,1429,906],{"class":816},[791,1431,1002],{"class":804},[791,1433,809],{"class":848},[791,1435,1007],{"class":808},[791,1437,906],{"class":816},[791,1439,971],{"class":808},[791,1441,853],{"class":848},[791,1443,1444,1446,1448,1450,1452,1454,1456,1458,1460,1462,1464,1466,1468,1470,1472,1474],{"class":793,"line":1082},[791,1445,922],{"class":808},[791,1447,906],{"class":816},[791,1449,927],{"class":804},[791,1451,809],{"class":848},[791,1453,932],{"class":816},[791,1455,997],{"class":848},[791,1457,937],{"class":816},[791,1459,861],{"class":816},[791,1461,1035],{"class":848},[791,1463,937],{"class":816},[791,1465,990],{"class":808},[791,1467,906],{"class":816},[791,1469,1044],{"class":808},[791,1471,867],{"class":816},[791,1473,867],{"class":816},[791,1475,853],{"class":848},[791,1477,1478],{"class":793,"line":1095},[791,1479,888],{"emptyLinePlaceholder":887},[791,1481,1482,1484,1486,1488,1490,1492,1494,1496],{"class":793,"line":1110},[791,1483,1061],{"class":797},[791,1485,817],{"class":848},[791,1487,1066],{"class":816},[791,1489,1002],{"class":808},[791,1491,906],{"class":816},[791,1493,1073],{"class":808},[791,1495,1076],{"class":848},[791,1497,1079],{"class":816},[791,1499,1500,1502,1504,1506],{"class":793,"line":1130},[791,1501,1085],{"class":797},[791,1503,1088],{"class":804},[791,1505,809],{"class":848},[791,1507,1079],{"class":816},[791,1509,1510,1512,1514,1516],{"class":793,"line":1147},[791,1511,1098],{"class":848},[791,1513,937],{"class":816},[791,1515,1104],{"class":1103},[791,1517,1107],{"class":816},[791,1519,1520,1522,1524,1526,1528,1530],{"class":793,"line":1164},[791,1521,1113],{"class":848},[791,1523,937],{"class":816},[791,1525,1118],{"class":816},[791,1527,1122],{"class":1121},[791,1529,1125],{"class":816},[791,1531,1107],{"class":816},[791,1533,1534,1536,1538,1540,1542,1544],{"class":793,"line":1172},[791,1535,1133],{"class":848},[791,1537,937],{"class":816},[791,1539,990],{"class":808},[791,1541,906],{"class":816},[791,1543,1142],{"class":808},[791,1545,1107],{"class":816},[791,1547,1548,1550,1552,1554,1556,1558],{"class":793,"line":1178},[791,1549,1150],{"class":848},[791,1551,937],{"class":816},[791,1553,1118],{"class":816},[791,1555,1157],{"class":1121},[791,1557,1125],{"class":816},[791,1559,1107],{"class":816},[791,1561,1562,1564],{"class":793,"line":1183},[791,1563,1167],{"class":816},[791,1565,853],{"class":848},[791,1567,1568],{"class":793,"line":1205},[791,1569,1175],{"class":816},[791,1571,1573],{"class":793,"line":1572},22,[791,1574,888],{"emptyLinePlaceholder":887},[791,1576,1578,1580,1583,1585,1587,1589,1591,1593,1595,1597,1599,1601,1603],{"class":793,"line":1577},23,[791,1579,1186],{"class":797},[791,1581,1582],{"class":808}," Response",[791,1584,906],{"class":816},[791,1586,1333],{"class":804},[791,1588,809],{"class":848},[791,1590,932],{"class":816},[791,1592,1191],{"class":848},[791,1594,937],{"class":816},[791,1596,990],{"class":808},[791,1598,906],{"class":816},[791,1600,1044],{"class":808},[791,1602,867],{"class":816},[791,1604,853],{"class":848},[791,1606,1608,1610],{"class":793,"line":1607},24,[791,1609,1208],{"class":816},[791,1611,853],{"class":808},[608,1613,1614],{"v-slot:sveltekit":610},[782,1615,1618],{"className":784,"code":1616,"filename":1617,"language":787,"meta":610,"style":610},"import { json } from '@sveltejs\u002Fkit'\nimport { createError } from 'evlog'\nimport { useLogger } from 'evlog\u002Fsveltekit'\nimport type { RequestHandler } from '.\u002F$types'\n\nexport const POST: RequestHandler = async ({ request }) => {\n  const log = useLogger()\n  const { cartId } = await request.json()\n\n  const cart = await db.findCart(cartId)\n  log.set({ cart: { items: cart.items.length, total: cart.total } })\n\n  const charge = await stripe.charge(cart.total)\n  log.set({ stripe: { chargeId: charge.id } })\n\n  if (!charge.success) {\n    throw createError({\n      status: 402,\n      message: 'Payment failed',\n      why: charge.decline_reason,\n      fix: 'Try a different payment method',\n    })\n  }\n\n  return json({ orderId: charge.id })\n}\n","src\u002Froutes\u002Fapi\u002Fcheckout\u002F+server.ts",[675,1619,1620,1640,1658,1677,1700,1704,1736,1748,1770,1774,1796,1846,1850,1876,1910,1914,1932,1942,1952,1966,1980,1994,2000,2004,2008,2033],{"__ignoreMap":610},[791,1621,1622,1624,1626,1629,1631,1633,1635,1638],{"class":793,"line":794},[791,1623,1223],{"class":797},[791,1625,861],{"class":816},[791,1627,1628],{"class":808}," json",[791,1630,867],{"class":816},[791,1632,1237],{"class":797},[791,1634,1118],{"class":816},[791,1636,1637],{"class":1121},"@sveltejs\u002Fkit",[791,1639,1245],{"class":816},[791,1641,1642,1644,1646,1648,1650,1652,1654,1656],{"class":793,"line":833},[791,1643,1223],{"class":797},[791,1645,861],{"class":816},[791,1647,1088],{"class":808},[791,1649,867],{"class":816},[791,1651,1237],{"class":797},[791,1653,1118],{"class":816},[791,1655,1262],{"class":1121},[791,1657,1245],{"class":816},[791,1659,1660,1662,1664,1666,1668,1670,1672,1675],{"class":793,"line":856},[791,1661,1223],{"class":797},[791,1663,861],{"class":816},[791,1665,845],{"class":808},[791,1667,867],{"class":816},[791,1669,1237],{"class":797},[791,1671,1118],{"class":816},[791,1673,1674],{"class":1121},"evlog\u002Fsveltekit",[791,1676,1245],{"class":816},[791,1678,1679,1681,1684,1686,1689,1691,1693,1695,1698],{"class":793,"line":884},[791,1680,1223],{"class":797},[791,1682,1683],{"class":797}," type",[791,1685,861],{"class":816},[791,1687,1688],{"class":808}," RequestHandler",[791,1690,867],{"class":816},[791,1692,1237],{"class":797},[791,1694,1118],{"class":816},[791,1696,1697],{"class":1121},".\u002F$types",[791,1699,1245],{"class":816},[791,1701,1702],{"class":793,"line":891},[791,1703,888],{"emptyLinePlaceholder":887},[791,1705,1706,1708,1710,1713,1715,1718,1720,1723,1726,1729,1732,1734],{"class":793,"line":919},[791,1707,798],{"class":797},[791,1709,1275],{"class":812},[791,1711,1712],{"class":808}," POST",[791,1714,937],{"class":816},[791,1716,1688],{"class":1717},"sBMFI",[791,1719,842],{"class":816},[791,1721,1722],{"class":812}," async",[791,1724,1725],{"class":816}," ({",[791,1727,1728],{"class":820}," request",[791,1730,1731],{"class":816}," })",[791,1733,827],{"class":812},[791,1735,830],{"class":816},[791,1737,1738,1740,1742,1744,1746],{"class":793,"line":980},[791,1739,836],{"class":812},[791,1741,839],{"class":808},[791,1743,842],{"class":816},[791,1745,845],{"class":804},[791,1747,1311],{"class":848},[791,1749,1750,1752,1754,1756,1758,1760,1762,1764,1766,1768],{"class":793,"line":985},[791,1751,836],{"class":812},[791,1753,861],{"class":816},[791,1755,864],{"class":808},[791,1757,867],{"class":816},[791,1759,842],{"class":816},[791,1761,872],{"class":797},[791,1763,1728],{"class":808},[791,1765,906],{"class":816},[791,1767,1333],{"class":804},[791,1769,1311],{"class":848},[791,1771,1772],{"class":793,"line":1016},[791,1773,888],{"emptyLinePlaceholder":887},[791,1775,1776,1778,1780,1782,1784,1786,1788,1790,1792,1794],{"class":793,"line":1053},[791,1777,836],{"class":812},[791,1779,896],{"class":808},[791,1781,842],{"class":816},[791,1783,872],{"class":797},[791,1785,903],{"class":808},[791,1787,906],{"class":816},[791,1789,909],{"class":804},[791,1791,809],{"class":848},[791,1793,914],{"class":808},[791,1795,853],{"class":848},[791,1797,1798,1800,1802,1804,1806,1808,1810,1812,1814,1816,1818,1820,1822,1824,1826,1828,1830,1832,1834,1836,1838,1840,1842,1844],{"class":793,"line":1058},[791,1799,922],{"class":808},[791,1801,906],{"class":816},[791,1803,927],{"class":804},[791,1805,809],{"class":848},[791,1807,932],{"class":816},[791,1809,896],{"class":848},[791,1811,937],{"class":816},[791,1813,861],{"class":816},[791,1815,942],{"class":848},[791,1817,937],{"class":816},[791,1819,896],{"class":808},[791,1821,906],{"class":816},[791,1823,951],{"class":808},[791,1825,906],{"class":816},[791,1827,956],{"class":808},[791,1829,959],{"class":816},[791,1831,962],{"class":848},[791,1833,937],{"class":816},[791,1835,896],{"class":808},[791,1837,906],{"class":816},[791,1839,971],{"class":808},[791,1841,867],{"class":816},[791,1843,867],{"class":816},[791,1845,853],{"class":848},[791,1847,1848],{"class":793,"line":1082},[791,1849,888],{"emptyLinePlaceholder":887},[791,1851,1852,1854,1856,1858,1860,1862,1864,1866,1868,1870,1872,1874],{"class":793,"line":1095},[791,1853,836],{"class":812},[791,1855,990],{"class":808},[791,1857,842],{"class":816},[791,1859,872],{"class":797},[791,1861,997],{"class":808},[791,1863,906],{"class":816},[791,1865,1002],{"class":804},[791,1867,809],{"class":848},[791,1869,1007],{"class":808},[791,1871,906],{"class":816},[791,1873,971],{"class":808},[791,1875,853],{"class":848},[791,1877,1878,1880,1882,1884,1886,1888,1890,1892,1894,1896,1898,1900,1902,1904,1906,1908],{"class":793,"line":1110},[791,1879,922],{"class":808},[791,1881,906],{"class":816},[791,1883,927],{"class":804},[791,1885,809],{"class":848},[791,1887,932],{"class":816},[791,1889,997],{"class":848},[791,1891,937],{"class":816},[791,1893,861],{"class":816},[791,1895,1035],{"class":848},[791,1897,937],{"class":816},[791,1899,990],{"class":808},[791,1901,906],{"class":816},[791,1903,1044],{"class":808},[791,1905,867],{"class":816},[791,1907,867],{"class":816},[791,1909,853],{"class":848},[791,1911,1912],{"class":793,"line":1130},[791,1913,888],{"emptyLinePlaceholder":887},[791,1915,1916,1918,1920,1922,1924,1926,1928,1930],{"class":793,"line":1147},[791,1917,1061],{"class":797},[791,1919,817],{"class":848},[791,1921,1066],{"class":816},[791,1923,1002],{"class":808},[791,1925,906],{"class":816},[791,1927,1073],{"class":808},[791,1929,1076],{"class":848},[791,1931,1079],{"class":816},[791,1933,1934,1936,1938,1940],{"class":793,"line":1164},[791,1935,1085],{"class":797},[791,1937,1088],{"class":804},[791,1939,809],{"class":848},[791,1941,1079],{"class":816},[791,1943,1944,1946,1948,1950],{"class":793,"line":1172},[791,1945,1098],{"class":848},[791,1947,937],{"class":816},[791,1949,1104],{"class":1103},[791,1951,1107],{"class":816},[791,1953,1954,1956,1958,1960,1962,1964],{"class":793,"line":1178},[791,1955,1113],{"class":848},[791,1957,937],{"class":816},[791,1959,1118],{"class":816},[791,1961,1122],{"class":1121},[791,1963,1125],{"class":816},[791,1965,1107],{"class":816},[791,1967,1968,1970,1972,1974,1976,1978],{"class":793,"line":1183},[791,1969,1133],{"class":848},[791,1971,937],{"class":816},[791,1973,990],{"class":808},[791,1975,906],{"class":816},[791,1977,1142],{"class":808},[791,1979,1107],{"class":816},[791,1981,1982,1984,1986,1988,1990,1992],{"class":793,"line":1205},[791,1983,1150],{"class":848},[791,1985,937],{"class":816},[791,1987,1118],{"class":816},[791,1989,1157],{"class":1121},[791,1991,1125],{"class":816},[791,1993,1107],{"class":816},[791,1995,1996,1998],{"class":793,"line":1572},[791,1997,1167],{"class":816},[791,1999,853],{"class":848},[791,2001,2002],{"class":793,"line":1577},[791,2003,1175],{"class":816},[791,2005,2006],{"class":793,"line":1607},[791,2007,888],{"emptyLinePlaceholder":887},[791,2009,2011,2013,2015,2017,2019,2021,2023,2025,2027,2029,2031],{"class":793,"line":2010},25,[791,2012,1186],{"class":797},[791,2014,1628],{"class":804},[791,2016,809],{"class":848},[791,2018,932],{"class":816},[791,2020,1191],{"class":848},[791,2022,937],{"class":816},[791,2024,990],{"class":808},[791,2026,906],{"class":816},[791,2028,1044],{"class":808},[791,2030,867],{"class":816},[791,2032,853],{"class":848},[791,2034,2036],{"class":793,"line":2035},26,[791,2037,2038],{"class":816},"}\n",[608,2040,2041],{"v-slot:nitro":610},[782,2042,2045],{"className":784,"code":2043,"filename":2044,"language":787,"meta":610,"style":610},"import { defineHandler, readBody } from 'nitro\u002Fh3'\nimport { useLogger, createError } from 'evlog\u002Fnitro\u002Fv3'\n\nexport default defineHandler(async (event) => {\n  const log = useLogger(event)\n  const { cartId } = await readBody(event)\n\n  const cart = await db.findCart(cartId)\n  log.set({ cart: { items: cart.items.length, total: cart.total } })\n\n  const charge = await stripe.charge(cart.total)\n  log.set({ stripe: { chargeId: charge.id } })\n\n  if (!charge.success) {\n    throw createError({\n      status: 402,\n      message: 'Payment failed',\n      why: charge.decline_reason,\n      fix: 'Try a different payment method',\n    })\n  }\n\n  return { orderId: charge.id }\n})\n","routes\u002Fapi\u002Fcheckout.post.ts",[675,2046,2047,2071,2094,2098,2120,2136,2158,2162,2184,2234,2238,2264,2298,2302,2320,2330,2340,2354,2368,2382,2388,2392,2396,2414],{"__ignoreMap":610},[791,2048,2049,2051,2053,2056,2058,2060,2062,2064,2066,2069],{"class":793,"line":794},[791,2050,1223],{"class":797},[791,2052,861],{"class":816},[791,2054,2055],{"class":808}," defineHandler",[791,2057,959],{"class":816},[791,2059,875],{"class":808},[791,2061,867],{"class":816},[791,2063,1237],{"class":797},[791,2065,1118],{"class":816},[791,2067,2068],{"class":1121},"nitro\u002Fh3",[791,2070,1245],{"class":816},[791,2072,2073,2075,2077,2079,2081,2083,2085,2087,2089,2092],{"class":793,"line":833},[791,2074,1223],{"class":797},[791,2076,861],{"class":816},[791,2078,845],{"class":808},[791,2080,959],{"class":816},[791,2082,1088],{"class":808},[791,2084,867],{"class":816},[791,2086,1237],{"class":797},[791,2088,1118],{"class":816},[791,2090,2091],{"class":1121},"evlog\u002Fnitro\u002Fv3",[791,2093,1245],{"class":816},[791,2095,2096],{"class":793,"line":856},[791,2097,888],{"emptyLinePlaceholder":887},[791,2099,2100,2102,2104,2106,2108,2110,2112,2114,2116,2118],{"class":793,"line":884},[791,2101,798],{"class":797},[791,2103,801],{"class":797},[791,2105,2055],{"class":804},[791,2107,809],{"class":808},[791,2109,813],{"class":812},[791,2111,817],{"class":816},[791,2113,821],{"class":820},[791,2115,824],{"class":816},[791,2117,827],{"class":812},[791,2119,830],{"class":816},[791,2121,2122,2124,2126,2128,2130,2132,2134],{"class":793,"line":891},[791,2123,836],{"class":812},[791,2125,839],{"class":808},[791,2127,842],{"class":816},[791,2129,845],{"class":804},[791,2131,809],{"class":848},[791,2133,821],{"class":808},[791,2135,853],{"class":848},[791,2137,2138,2140,2142,2144,2146,2148,2150,2152,2154,2156],{"class":793,"line":919},[791,2139,836],{"class":812},[791,2141,861],{"class":816},[791,2143,864],{"class":808},[791,2145,867],{"class":816},[791,2147,842],{"class":816},[791,2149,872],{"class":797},[791,2151,875],{"class":804},[791,2153,809],{"class":848},[791,2155,821],{"class":808},[791,2157,853],{"class":848},[791,2159,2160],{"class":793,"line":980},[791,2161,888],{"emptyLinePlaceholder":887},[791,2163,2164,2166,2168,2170,2172,2174,2176,2178,2180,2182],{"class":793,"line":985},[791,2165,836],{"class":812},[791,2167,896],{"class":808},[791,2169,842],{"class":816},[791,2171,872],{"class":797},[791,2173,903],{"class":808},[791,2175,906],{"class":816},[791,2177,909],{"class":804},[791,2179,809],{"class":848},[791,2181,914],{"class":808},[791,2183,853],{"class":848},[791,2185,2186,2188,2190,2192,2194,2196,2198,2200,2202,2204,2206,2208,2210,2212,2214,2216,2218,2220,2222,2224,2226,2228,2230,2232],{"class":793,"line":1016},[791,2187,922],{"class":808},[791,2189,906],{"class":816},[791,2191,927],{"class":804},[791,2193,809],{"class":848},[791,2195,932],{"class":816},[791,2197,896],{"class":848},[791,2199,937],{"class":816},[791,2201,861],{"class":816},[791,2203,942],{"class":848},[791,2205,937],{"class":816},[791,2207,896],{"class":808},[791,2209,906],{"class":816},[791,2211,951],{"class":808},[791,2213,906],{"class":816},[791,2215,956],{"class":808},[791,2217,959],{"class":816},[791,2219,962],{"class":848},[791,2221,937],{"class":816},[791,2223,896],{"class":808},[791,2225,906],{"class":816},[791,2227,971],{"class":808},[791,2229,867],{"class":816},[791,2231,867],{"class":816},[791,2233,853],{"class":848},[791,2235,2236],{"class":793,"line":1053},[791,2237,888],{"emptyLinePlaceholder":887},[791,2239,2240,2242,2244,2246,2248,2250,2252,2254,2256,2258,2260,2262],{"class":793,"line":1058},[791,2241,836],{"class":812},[791,2243,990],{"class":808},[791,2245,842],{"class":816},[791,2247,872],{"class":797},[791,2249,997],{"class":808},[791,2251,906],{"class":816},[791,2253,1002],{"class":804},[791,2255,809],{"class":848},[791,2257,1007],{"class":808},[791,2259,906],{"class":816},[791,2261,971],{"class":808},[791,2263,853],{"class":848},[791,2265,2266,2268,2270,2272,2274,2276,2278,2280,2282,2284,2286,2288,2290,2292,2294,2296],{"class":793,"line":1082},[791,2267,922],{"class":808},[791,2269,906],{"class":816},[791,2271,927],{"class":804},[791,2273,809],{"class":848},[791,2275,932],{"class":816},[791,2277,997],{"class":848},[791,2279,937],{"class":816},[791,2281,861],{"class":816},[791,2283,1035],{"class":848},[791,2285,937],{"class":816},[791,2287,990],{"class":808},[791,2289,906],{"class":816},[791,2291,1044],{"class":808},[791,2293,867],{"class":816},[791,2295,867],{"class":816},[791,2297,853],{"class":848},[791,2299,2300],{"class":793,"line":1095},[791,2301,888],{"emptyLinePlaceholder":887},[791,2303,2304,2306,2308,2310,2312,2314,2316,2318],{"class":793,"line":1110},[791,2305,1061],{"class":797},[791,2307,817],{"class":848},[791,2309,1066],{"class":816},[791,2311,1002],{"class":808},[791,2313,906],{"class":816},[791,2315,1073],{"class":808},[791,2317,1076],{"class":848},[791,2319,1079],{"class":816},[791,2321,2322,2324,2326,2328],{"class":793,"line":1130},[791,2323,1085],{"class":797},[791,2325,1088],{"class":804},[791,2327,809],{"class":848},[791,2329,1079],{"class":816},[791,2331,2332,2334,2336,2338],{"class":793,"line":1147},[791,2333,1098],{"class":848},[791,2335,937],{"class":816},[791,2337,1104],{"class":1103},[791,2339,1107],{"class":816},[791,2341,2342,2344,2346,2348,2350,2352],{"class":793,"line":1164},[791,2343,1113],{"class":848},[791,2345,937],{"class":816},[791,2347,1118],{"class":816},[791,2349,1122],{"class":1121},[791,2351,1125],{"class":816},[791,2353,1107],{"class":816},[791,2355,2356,2358,2360,2362,2364,2366],{"class":793,"line":1172},[791,2357,1133],{"class":848},[791,2359,937],{"class":816},[791,2361,990],{"class":808},[791,2363,906],{"class":816},[791,2365,1142],{"class":808},[791,2367,1107],{"class":816},[791,2369,2370,2372,2374,2376,2378,2380],{"class":793,"line":1178},[791,2371,1150],{"class":848},[791,2373,937],{"class":816},[791,2375,1118],{"class":816},[791,2377,1157],{"class":1121},[791,2379,1125],{"class":816},[791,2381,1107],{"class":816},[791,2383,2384,2386],{"class":793,"line":1183},[791,2385,1167],{"class":816},[791,2387,853],{"class":848},[791,2389,2390],{"class":793,"line":1205},[791,2391,1175],{"class":816},[791,2393,2394],{"class":793,"line":1572},[791,2395,888],{"emptyLinePlaceholder":887},[791,2397,2398,2400,2402,2404,2406,2408,2410,2412],{"class":793,"line":1577},[791,2399,1186],{"class":797},[791,2401,861],{"class":816},[791,2403,1191],{"class":848},[791,2405,937],{"class":816},[791,2407,990],{"class":808},[791,2409,906],{"class":816},[791,2411,1044],{"class":808},[791,2413,1202],{"class":816},[791,2415,2416,2418],{"class":793,"line":1607},[791,2417,1208],{"class":816},[791,2419,853],{"class":808},[608,2421,2422],{"v-slot:tanstack-start":610},[782,2423,2426],{"className":784,"code":2424,"filename":2425,"language":787,"meta":610,"style":610},"import { createFileRoute } from '@tanstack\u002Freact-router'\nimport { useRequest } from 'nitro\u002Fcontext'\nimport { createError } from 'evlog'\nimport type { RequestLogger } from 'evlog'\n\nexport const Route = createFileRoute('\u002Fapi\u002Fcheckout')({\n  server: {\n    handlers: {\n      POST: async ({ request }) => {\n        const req = useRequest()\n        const log = req.context.log as RequestLogger\n        const { cartId } = await request.json()\n\n        const cart = await db.findCart(cartId)\n        log.set({ cart: { items: cart.items.length, total: cart.total } })\n\n        const charge = await stripe.charge(cart.total)\n        log.set({ stripe: { chargeId: charge.id } })\n\n        if (!charge.success) {\n          throw createError({\n            status: 402,\n            message: 'Payment failed',\n            why: charge.decline_reason,\n            fix: 'Try a different payment method',\n          })\n        }\n\n        return Response.json({ orderId: charge.id })\n      },\n    },\n  },\n})\n","src\u002Froutes\u002Fapi\u002Fcheckout.ts",[675,2427,2428,2448,2468,2486,2507,2511,2538,2547,2556,2575,2588,2614,2636,2640,2662,2713,2717,2743,2777,2781,2800,2811,2822,2837,2852,2867,2874,2880,2885,2915,2921,2927,2933],{"__ignoreMap":610},[791,2429,2430,2432,2434,2437,2439,2441,2443,2446],{"class":793,"line":794},[791,2431,1223],{"class":797},[791,2433,861],{"class":816},[791,2435,2436],{"class":808}," createFileRoute",[791,2438,867],{"class":816},[791,2440,1237],{"class":797},[791,2442,1118],{"class":816},[791,2444,2445],{"class":1121},"@tanstack\u002Freact-router",[791,2447,1245],{"class":816},[791,2449,2450,2452,2454,2457,2459,2461,2463,2466],{"class":793,"line":833},[791,2451,1223],{"class":797},[791,2453,861],{"class":816},[791,2455,2456],{"class":808}," useRequest",[791,2458,867],{"class":816},[791,2460,1237],{"class":797},[791,2462,1118],{"class":816},[791,2464,2465],{"class":1121},"nitro\u002Fcontext",[791,2467,1245],{"class":816},[791,2469,2470,2472,2474,2476,2478,2480,2482,2484],{"class":793,"line":856},[791,2471,1223],{"class":797},[791,2473,861],{"class":816},[791,2475,1088],{"class":808},[791,2477,867],{"class":816},[791,2479,1237],{"class":797},[791,2481,1118],{"class":816},[791,2483,1262],{"class":1121},[791,2485,1245],{"class":816},[791,2487,2488,2490,2492,2494,2497,2499,2501,2503,2505],{"class":793,"line":884},[791,2489,1223],{"class":797},[791,2491,1683],{"class":797},[791,2493,861],{"class":816},[791,2495,2496],{"class":808}," RequestLogger",[791,2498,867],{"class":816},[791,2500,1237],{"class":797},[791,2502,1118],{"class":816},[791,2504,1262],{"class":1121},[791,2506,1245],{"class":816},[791,2508,2509],{"class":793,"line":891},[791,2510,888],{"emptyLinePlaceholder":887},[791,2512,2513,2515,2517,2520,2522,2524,2526,2528,2531,2533,2536],{"class":793,"line":919},[791,2514,798],{"class":797},[791,2516,1275],{"class":812},[791,2518,2519],{"class":808}," Route ",[791,2521,1281],{"class":816},[791,2523,2436],{"class":804},[791,2525,809],{"class":808},[791,2527,1125],{"class":816},[791,2529,2530],{"class":1121},"\u002Fapi\u002Fcheckout",[791,2532,1125],{"class":816},[791,2534,2535],{"class":808},")(",[791,2537,1079],{"class":816},[791,2539,2540,2543,2545],{"class":793,"line":980},[791,2541,2542],{"class":848},"  server",[791,2544,937],{"class":816},[791,2546,830],{"class":816},[791,2548,2549,2552,2554],{"class":793,"line":985},[791,2550,2551],{"class":848},"    handlers",[791,2553,937],{"class":816},[791,2555,830],{"class":816},[791,2557,2558,2561,2563,2565,2567,2569,2571,2573],{"class":793,"line":1016},[791,2559,2560],{"class":804},"      POST",[791,2562,937],{"class":816},[791,2564,1722],{"class":812},[791,2566,1725],{"class":816},[791,2568,1728],{"class":820},[791,2570,1731],{"class":816},[791,2572,827],{"class":812},[791,2574,830],{"class":816},[791,2576,2577,2580,2582,2584,2586],{"class":793,"line":1053},[791,2578,2579],{"class":812},"        const",[791,2581,1328],{"class":808},[791,2583,842],{"class":816},[791,2585,2456],{"class":804},[791,2587,1311],{"class":848},[791,2589,2590,2592,2594,2596,2598,2600,2603,2605,2608,2611],{"class":793,"line":1058},[791,2591,2579],{"class":812},[791,2593,839],{"class":808},[791,2595,842],{"class":816},[791,2597,1328],{"class":808},[791,2599,906],{"class":816},[791,2601,2602],{"class":808},"context",[791,2604,906],{"class":816},[791,2606,2607],{"class":808},"log",[791,2609,2610],{"class":797}," as",[791,2612,2613],{"class":1717}," RequestLogger\n",[791,2615,2616,2618,2620,2622,2624,2626,2628,2630,2632,2634],{"class":793,"line":1082},[791,2617,2579],{"class":812},[791,2619,861],{"class":816},[791,2621,864],{"class":808},[791,2623,867],{"class":816},[791,2625,842],{"class":816},[791,2627,872],{"class":797},[791,2629,1728],{"class":808},[791,2631,906],{"class":816},[791,2633,1333],{"class":804},[791,2635,1311],{"class":848},[791,2637,2638],{"class":793,"line":1095},[791,2639,888],{"emptyLinePlaceholder":887},[791,2641,2642,2644,2646,2648,2650,2652,2654,2656,2658,2660],{"class":793,"line":1110},[791,2643,2579],{"class":812},[791,2645,896],{"class":808},[791,2647,842],{"class":816},[791,2649,872],{"class":797},[791,2651,903],{"class":808},[791,2653,906],{"class":816},[791,2655,909],{"class":804},[791,2657,809],{"class":848},[791,2659,914],{"class":808},[791,2661,853],{"class":848},[791,2663,2664,2667,2669,2671,2673,2675,2677,2679,2681,2683,2685,2687,2689,2691,2693,2695,2697,2699,2701,2703,2705,2707,2709,2711],{"class":793,"line":1130},[791,2665,2666],{"class":808},"        log",[791,2668,906],{"class":816},[791,2670,927],{"class":804},[791,2672,809],{"class":848},[791,2674,932],{"class":816},[791,2676,896],{"class":848},[791,2678,937],{"class":816},[791,2680,861],{"class":816},[791,2682,942],{"class":848},[791,2684,937],{"class":816},[791,2686,896],{"class":808},[791,2688,906],{"class":816},[791,2690,951],{"class":808},[791,2692,906],{"class":816},[791,2694,956],{"class":808},[791,2696,959],{"class":816},[791,2698,962],{"class":848},[791,2700,937],{"class":816},[791,2702,896],{"class":808},[791,2704,906],{"class":816},[791,2706,971],{"class":808},[791,2708,867],{"class":816},[791,2710,867],{"class":816},[791,2712,853],{"class":848},[791,2714,2715],{"class":793,"line":1147},[791,2716,888],{"emptyLinePlaceholder":887},[791,2718,2719,2721,2723,2725,2727,2729,2731,2733,2735,2737,2739,2741],{"class":793,"line":1164},[791,2720,2579],{"class":812},[791,2722,990],{"class":808},[791,2724,842],{"class":816},[791,2726,872],{"class":797},[791,2728,997],{"class":808},[791,2730,906],{"class":816},[791,2732,1002],{"class":804},[791,2734,809],{"class":848},[791,2736,1007],{"class":808},[791,2738,906],{"class":816},[791,2740,971],{"class":808},[791,2742,853],{"class":848},[791,2744,2745,2747,2749,2751,2753,2755,2757,2759,2761,2763,2765,2767,2769,2771,2773,2775],{"class":793,"line":1172},[791,2746,2666],{"class":808},[791,2748,906],{"class":816},[791,2750,927],{"class":804},[791,2752,809],{"class":848},[791,2754,932],{"class":816},[791,2756,997],{"class":848},[791,2758,937],{"class":816},[791,2760,861],{"class":816},[791,2762,1035],{"class":848},[791,2764,937],{"class":816},[791,2766,990],{"class":808},[791,2768,906],{"class":816},[791,2770,1044],{"class":808},[791,2772,867],{"class":816},[791,2774,867],{"class":816},[791,2776,853],{"class":848},[791,2778,2779],{"class":793,"line":1178},[791,2780,888],{"emptyLinePlaceholder":887},[791,2782,2783,2786,2788,2790,2792,2794,2796,2798],{"class":793,"line":1183},[791,2784,2785],{"class":797},"        if",[791,2787,817],{"class":848},[791,2789,1066],{"class":816},[791,2791,1002],{"class":808},[791,2793,906],{"class":816},[791,2795,1073],{"class":808},[791,2797,1076],{"class":848},[791,2799,1079],{"class":816},[791,2801,2802,2805,2807,2809],{"class":793,"line":1205},[791,2803,2804],{"class":797},"          throw",[791,2806,1088],{"class":804},[791,2808,809],{"class":848},[791,2810,1079],{"class":816},[791,2812,2813,2816,2818,2820],{"class":793,"line":1572},[791,2814,2815],{"class":848},"            status",[791,2817,937],{"class":816},[791,2819,1104],{"class":1103},[791,2821,1107],{"class":816},[791,2823,2824,2827,2829,2831,2833,2835],{"class":793,"line":1577},[791,2825,2826],{"class":848},"            message",[791,2828,937],{"class":816},[791,2830,1118],{"class":816},[791,2832,1122],{"class":1121},[791,2834,1125],{"class":816},[791,2836,1107],{"class":816},[791,2838,2839,2842,2844,2846,2848,2850],{"class":793,"line":1607},[791,2840,2841],{"class":848},"            why",[791,2843,937],{"class":816},[791,2845,990],{"class":808},[791,2847,906],{"class":816},[791,2849,1142],{"class":808},[791,2851,1107],{"class":816},[791,2853,2854,2857,2859,2861,2863,2865],{"class":793,"line":2010},[791,2855,2856],{"class":848},"            fix",[791,2858,937],{"class":816},[791,2860,1118],{"class":816},[791,2862,1157],{"class":1121},[791,2864,1125],{"class":816},[791,2866,1107],{"class":816},[791,2868,2869,2872],{"class":793,"line":2035},[791,2870,2871],{"class":816},"          }",[791,2873,853],{"class":848},[791,2875,2877],{"class":793,"line":2876},27,[791,2878,2879],{"class":816},"        }\n",[791,2881,2883],{"class":793,"line":2882},28,[791,2884,888],{"emptyLinePlaceholder":887},[791,2886,2888,2891,2893,2895,2897,2899,2901,2903,2905,2907,2909,2911,2913],{"class":793,"line":2887},29,[791,2889,2890],{"class":797},"        return",[791,2892,1582],{"class":808},[791,2894,906],{"class":816},[791,2896,1333],{"class":804},[791,2898,809],{"class":848},[791,2900,932],{"class":816},[791,2902,1191],{"class":848},[791,2904,937],{"class":816},[791,2906,990],{"class":808},[791,2908,906],{"class":816},[791,2910,1044],{"class":808},[791,2912,867],{"class":816},[791,2914,853],{"class":848},[791,2916,2918],{"class":793,"line":2917},30,[791,2919,2920],{"class":816},"      },\n",[791,2922,2924],{"class":793,"line":2923},31,[791,2925,2926],{"class":816},"    },\n",[791,2928,2930],{"class":793,"line":2929},32,[791,2931,2932],{"class":816},"  },\n",[791,2934,2936,2938],{"class":793,"line":2935},33,[791,2937,1208],{"class":816},[791,2939,853],{"class":808},[608,2941,2942],{"v-slot:react-router":610},[782,2943,2946],{"className":784,"code":2944,"filename":2945,"language":787,"meta":610,"style":610},"import { loggerContext } from 'evlog\u002Freact-router'\nimport { createError } from 'evlog'\n\nexport async function action({ request, context }: Route.ActionArgs) {\n  const log = context.get(loggerContext)\n  const { cartId } = await request.json()\n\n  const cart = await db.findCart(cartId)\n  log.set({ cart: { items: cart.items.length, total: cart.total } })\n\n  const charge = await stripe.charge(cart.total)\n  log.set({ stripe: { chargeId: charge.id } })\n\n  if (!charge.success) {\n    throw createError({\n      status: 402,\n      message: 'Payment failed',\n      why: charge.decline_reason,\n      fix: 'Try a different payment method',\n    })\n  }\n\n  return Response.json({ orderId: charge.id })\n}\n","app\u002Froutes\u002Fapi.checkout.tsx",[675,2947,2948,2968,2986,2990,3027,3049,3071,3075,3097,3147,3151,3177,3211,3215,3233,3243,3253,3267,3281,3295,3301,3305,3309,3337],{"__ignoreMap":610},[791,2949,2950,2952,2954,2957,2959,2961,2963,2966],{"class":793,"line":794},[791,2951,1223],{"class":797},[791,2953,861],{"class":816},[791,2955,2956],{"class":808}," loggerContext",[791,2958,867],{"class":816},[791,2960,1237],{"class":797},[791,2962,1118],{"class":816},[791,2964,2965],{"class":1121},"evlog\u002Freact-router",[791,2967,1245],{"class":816},[791,2969,2970,2972,2974,2976,2978,2980,2982,2984],{"class":793,"line":833},[791,2971,1223],{"class":797},[791,2973,861],{"class":816},[791,2975,1088],{"class":808},[791,2977,867],{"class":816},[791,2979,1237],{"class":797},[791,2981,1118],{"class":816},[791,2983,1262],{"class":1121},[791,2985,1245],{"class":816},[791,2987,2988],{"class":793,"line":856},[791,2989,888],{"emptyLinePlaceholder":887},[791,2991,2992,2994,2996,2999,3002,3005,3007,3009,3012,3015,3018,3020,3023,3025],{"class":793,"line":884},[791,2993,798],{"class":797},[791,2995,1722],{"class":812},[791,2997,2998],{"class":812}," function",[791,3000,3001],{"class":804}," action",[791,3003,3004],{"class":816},"({",[791,3006,1728],{"class":820},[791,3008,959],{"class":816},[791,3010,3011],{"class":820}," context",[791,3013,3014],{"class":816}," }:",[791,3016,3017],{"class":1717}," Route",[791,3019,906],{"class":816},[791,3021,3022],{"class":1717},"ActionArgs",[791,3024,824],{"class":816},[791,3026,830],{"class":816},[791,3028,3029,3031,3033,3035,3037,3039,3042,3044,3047],{"class":793,"line":891},[791,3030,836],{"class":812},[791,3032,839],{"class":808},[791,3034,842],{"class":816},[791,3036,3011],{"class":808},[791,3038,906],{"class":816},[791,3040,3041],{"class":804},"get",[791,3043,809],{"class":848},[791,3045,3046],{"class":808},"loggerContext",[791,3048,853],{"class":848},[791,3050,3051,3053,3055,3057,3059,3061,3063,3065,3067,3069],{"class":793,"line":919},[791,3052,836],{"class":812},[791,3054,861],{"class":816},[791,3056,864],{"class":808},[791,3058,867],{"class":816},[791,3060,842],{"class":816},[791,3062,872],{"class":797},[791,3064,1728],{"class":808},[791,3066,906],{"class":816},[791,3068,1333],{"class":804},[791,3070,1311],{"class":848},[791,3072,3073],{"class":793,"line":980},[791,3074,888],{"emptyLinePlaceholder":887},[791,3076,3077,3079,3081,3083,3085,3087,3089,3091,3093,3095],{"class":793,"line":985},[791,3078,836],{"class":812},[791,3080,896],{"class":808},[791,3082,842],{"class":816},[791,3084,872],{"class":797},[791,3086,903],{"class":808},[791,3088,906],{"class":816},[791,3090,909],{"class":804},[791,3092,809],{"class":848},[791,3094,914],{"class":808},[791,3096,853],{"class":848},[791,3098,3099,3101,3103,3105,3107,3109,3111,3113,3115,3117,3119,3121,3123,3125,3127,3129,3131,3133,3135,3137,3139,3141,3143,3145],{"class":793,"line":1016},[791,3100,922],{"class":808},[791,3102,906],{"class":816},[791,3104,927],{"class":804},[791,3106,809],{"class":848},[791,3108,932],{"class":816},[791,3110,896],{"class":848},[791,3112,937],{"class":816},[791,3114,861],{"class":816},[791,3116,942],{"class":848},[791,3118,937],{"class":816},[791,3120,896],{"class":808},[791,3122,906],{"class":816},[791,3124,951],{"class":808},[791,3126,906],{"class":816},[791,3128,956],{"class":808},[791,3130,959],{"class":816},[791,3132,962],{"class":848},[791,3134,937],{"class":816},[791,3136,896],{"class":808},[791,3138,906],{"class":816},[791,3140,971],{"class":808},[791,3142,867],{"class":816},[791,3144,867],{"class":816},[791,3146,853],{"class":848},[791,3148,3149],{"class":793,"line":1053},[791,3150,888],{"emptyLinePlaceholder":887},[791,3152,3153,3155,3157,3159,3161,3163,3165,3167,3169,3171,3173,3175],{"class":793,"line":1058},[791,3154,836],{"class":812},[791,3156,990],{"class":808},[791,3158,842],{"class":816},[791,3160,872],{"class":797},[791,3162,997],{"class":808},[791,3164,906],{"class":816},[791,3166,1002],{"class":804},[791,3168,809],{"class":848},[791,3170,1007],{"class":808},[791,3172,906],{"class":816},[791,3174,971],{"class":808},[791,3176,853],{"class":848},[791,3178,3179,3181,3183,3185,3187,3189,3191,3193,3195,3197,3199,3201,3203,3205,3207,3209],{"class":793,"line":1082},[791,3180,922],{"class":808},[791,3182,906],{"class":816},[791,3184,927],{"class":804},[791,3186,809],{"class":848},[791,3188,932],{"class":816},[791,3190,997],{"class":848},[791,3192,937],{"class":816},[791,3194,861],{"class":816},[791,3196,1035],{"class":848},[791,3198,937],{"class":816},[791,3200,990],{"class":808},[791,3202,906],{"class":816},[791,3204,1044],{"class":808},[791,3206,867],{"class":816},[791,3208,867],{"class":816},[791,3210,853],{"class":848},[791,3212,3213],{"class":793,"line":1095},[791,3214,888],{"emptyLinePlaceholder":887},[791,3216,3217,3219,3221,3223,3225,3227,3229,3231],{"class":793,"line":1110},[791,3218,1061],{"class":797},[791,3220,817],{"class":848},[791,3222,1066],{"class":816},[791,3224,1002],{"class":808},[791,3226,906],{"class":816},[791,3228,1073],{"class":808},[791,3230,1076],{"class":848},[791,3232,1079],{"class":816},[791,3234,3235,3237,3239,3241],{"class":793,"line":1130},[791,3236,1085],{"class":797},[791,3238,1088],{"class":804},[791,3240,809],{"class":848},[791,3242,1079],{"class":816},[791,3244,3245,3247,3249,3251],{"class":793,"line":1147},[791,3246,1098],{"class":848},[791,3248,937],{"class":816},[791,3250,1104],{"class":1103},[791,3252,1107],{"class":816},[791,3254,3255,3257,3259,3261,3263,3265],{"class":793,"line":1164},[791,3256,1113],{"class":848},[791,3258,937],{"class":816},[791,3260,1118],{"class":816},[791,3262,1122],{"class":1121},[791,3264,1125],{"class":816},[791,3266,1107],{"class":816},[791,3268,3269,3271,3273,3275,3277,3279],{"class":793,"line":1172},[791,3270,1133],{"class":848},[791,3272,937],{"class":816},[791,3274,990],{"class":808},[791,3276,906],{"class":816},[791,3278,1142],{"class":808},[791,3280,1107],{"class":816},[791,3282,3283,3285,3287,3289,3291,3293],{"class":793,"line":1178},[791,3284,1150],{"class":848},[791,3286,937],{"class":816},[791,3288,1118],{"class":816},[791,3290,1157],{"class":1121},[791,3292,1125],{"class":816},[791,3294,1107],{"class":816},[791,3296,3297,3299],{"class":793,"line":1183},[791,3298,1167],{"class":816},[791,3300,853],{"class":848},[791,3302,3303],{"class":793,"line":1205},[791,3304,1175],{"class":816},[791,3306,3307],{"class":793,"line":1572},[791,3308,888],{"emptyLinePlaceholder":887},[791,3310,3311,3313,3315,3317,3319,3321,3323,3325,3327,3329,3331,3333,3335],{"class":793,"line":1577},[791,3312,1186],{"class":797},[791,3314,1582],{"class":808},[791,3316,906],{"class":816},[791,3318,1333],{"class":804},[791,3320,809],{"class":848},[791,3322,932],{"class":816},[791,3324,1191],{"class":848},[791,3326,937],{"class":816},[791,3328,990],{"class":808},[791,3330,906],{"class":816},[791,3332,1044],{"class":808},[791,3334,867],{"class":816},[791,3336,853],{"class":848},[791,3338,3339],{"class":793,"line":1607},[791,3340,2038],{"class":816},[608,3342,3343],{"v-slot:nestjs":610},[782,3344,3347],{"className":784,"code":3345,"filename":3346,"language":787,"meta":610,"style":610},"import { Module } from '@nestjs\u002Fcommon'\nimport { EvlogModule } from 'evlog\u002Fnestjs'\nimport { createAxiomDrain } from 'evlog\u002Faxiom'\n\n@Module({\n  imports: [\n    EvlogModule.forRoot({\n      drain: createAxiomDrain(),\n    }),\n  ],\n})\nexport class AppModule {}\n","app.module.ts",[675,3348,3349,3369,3389,3409,3413,3425,3435,3449,3463,3471,3478,3484],{"__ignoreMap":610},[791,3350,3351,3353,3355,3358,3360,3362,3364,3367],{"class":793,"line":794},[791,3352,1223],{"class":797},[791,3354,861],{"class":816},[791,3356,3357],{"class":808}," Module",[791,3359,867],{"class":816},[791,3361,1237],{"class":797},[791,3363,1118],{"class":816},[791,3365,3366],{"class":1121},"@nestjs\u002Fcommon",[791,3368,1245],{"class":816},[791,3370,3371,3373,3375,3378,3380,3382,3384,3387],{"class":793,"line":833},[791,3372,1223],{"class":797},[791,3374,861],{"class":816},[791,3376,3377],{"class":808}," EvlogModule",[791,3379,867],{"class":816},[791,3381,1237],{"class":797},[791,3383,1118],{"class":816},[791,3385,3386],{"class":1121},"evlog\u002Fnestjs",[791,3388,1245],{"class":816},[791,3390,3391,3393,3395,3398,3400,3402,3404,3407],{"class":793,"line":856},[791,3392,1223],{"class":797},[791,3394,861],{"class":816},[791,3396,3397],{"class":808}," createAxiomDrain",[791,3399,867],{"class":816},[791,3401,1237],{"class":797},[791,3403,1118],{"class":816},[791,3405,3406],{"class":1121},"evlog\u002Faxiom",[791,3408,1245],{"class":816},[791,3410,3411],{"class":793,"line":884},[791,3412,888],{"emptyLinePlaceholder":887},[791,3414,3415,3418,3421,3423],{"class":793,"line":891},[791,3416,3417],{"class":816},"@",[791,3419,3420],{"class":804},"Module",[791,3422,809],{"class":808},[791,3424,1079],{"class":816},[791,3426,3427,3430,3432],{"class":793,"line":919},[791,3428,3429],{"class":848},"  imports",[791,3431,937],{"class":816},[791,3433,3434],{"class":808}," [\n",[791,3436,3437,3440,3442,3445,3447],{"class":793,"line":980},[791,3438,3439],{"class":808},"    EvlogModule",[791,3441,906],{"class":816},[791,3443,3444],{"class":804},"forRoot",[791,3446,809],{"class":808},[791,3448,1079],{"class":816},[791,3450,3451,3454,3456,3458,3461],{"class":793,"line":985},[791,3452,3453],{"class":848},"      drain",[791,3455,937],{"class":816},[791,3457,3397],{"class":804},[791,3459,3460],{"class":808},"()",[791,3462,1107],{"class":816},[791,3464,3465,3467,3469],{"class":793,"line":1016},[791,3466,1167],{"class":816},[791,3468,824],{"class":808},[791,3470,1107],{"class":816},[791,3472,3473,3476],{"class":793,"line":1053},[791,3474,3475],{"class":808},"  ]",[791,3477,1107],{"class":816},[791,3479,3480,3482],{"class":793,"line":1058},[791,3481,1208],{"class":816},[791,3483,853],{"class":808},[791,3485,3486,3488,3491,3494],{"class":793,"line":1082},[791,3487,798],{"class":797},[791,3489,3490],{"class":812}," class",[791,3492,3493],{"class":1717}," AppModule",[791,3495,3496],{"class":816}," {}\n",[608,3498,3499],{"v-slot:express":610},[782,3500,3503],{"className":784,"code":3501,"filename":3502,"language":787,"meta":610,"style":610},"import { evlog, useLogger } from 'evlog\u002Fexpress'\nimport { createAxiomDrain } from 'evlog\u002Faxiom'\n\nconst app = express()\napp.use(evlog({ drain: createAxiomDrain() }))\n\napp.post('\u002Fcheckout', async (req, res) => {\n  const log = useLogger()\n  const { cartId } = req.body\n\n  const cart = await db.findCart(cartId)\n  log.set({ cart: { items: cart.items.length, total: cart.total } })\n\n  const charge = await stripe.charge(cart.total)\n  log.set({ stripe: { chargeId: charge.id } })\n\n  res.json({ orderId: charge.id })\n})\n","src\u002Findex.ts",[675,3504,3505,3529,3547,3551,3566,3599,3603,3640,3652,3671,3675,3697,3747,3751,3777,3811,3815,3842],{"__ignoreMap":610},[791,3506,3507,3509,3511,3514,3516,3518,3520,3522,3524,3527],{"class":793,"line":794},[791,3508,1223],{"class":797},[791,3510,861],{"class":816},[791,3512,3513],{"class":808}," evlog",[791,3515,959],{"class":816},[791,3517,845],{"class":808},[791,3519,867],{"class":816},[791,3521,1237],{"class":797},[791,3523,1118],{"class":816},[791,3525,3526],{"class":1121},"evlog\u002Fexpress",[791,3528,1245],{"class":816},[791,3530,3531,3533,3535,3537,3539,3541,3543,3545],{"class":793,"line":833},[791,3532,1223],{"class":797},[791,3534,861],{"class":816},[791,3536,3397],{"class":808},[791,3538,867],{"class":816},[791,3540,1237],{"class":797},[791,3542,1118],{"class":816},[791,3544,3406],{"class":1121},[791,3546,1245],{"class":816},[791,3548,3549],{"class":793,"line":856},[791,3550,888],{"emptyLinePlaceholder":887},[791,3552,3553,3556,3559,3561,3564],{"class":793,"line":884},[791,3554,3555],{"class":812},"const",[791,3557,3558],{"class":808}," app ",[791,3560,1281],{"class":816},[791,3562,3563],{"class":804}," express",[791,3565,1311],{"class":808},[791,3567,3568,3571,3573,3576,3578,3580,3582,3584,3587,3589,3591,3594,3596],{"class":793,"line":891},[791,3569,3570],{"class":808},"app",[791,3572,906],{"class":816},[791,3574,3575],{"class":804},"use",[791,3577,809],{"class":808},[791,3579,1262],{"class":804},[791,3581,809],{"class":808},[791,3583,932],{"class":816},[791,3585,3586],{"class":848}," drain",[791,3588,937],{"class":816},[791,3590,3397],{"class":804},[791,3592,3593],{"class":808},"() ",[791,3595,1208],{"class":816},[791,3597,3598],{"class":808},"))\n",[791,3600,3601],{"class":793,"line":919},[791,3602,888],{"emptyLinePlaceholder":887},[791,3604,3605,3607,3609,3612,3614,3616,3619,3621,3623,3625,3627,3629,3631,3634,3636,3638],{"class":793,"line":980},[791,3606,3570],{"class":808},[791,3608,906],{"class":816},[791,3610,3611],{"class":804},"post",[791,3613,809],{"class":808},[791,3615,1125],{"class":816},[791,3617,3618],{"class":1121},"\u002Fcheckout",[791,3620,1125],{"class":816},[791,3622,959],{"class":816},[791,3624,1722],{"class":812},[791,3626,817],{"class":816},[791,3628,1292],{"class":820},[791,3630,959],{"class":816},[791,3632,3633],{"class":820}," res",[791,3635,824],{"class":816},[791,3637,827],{"class":812},[791,3639,830],{"class":816},[791,3641,3642,3644,3646,3648,3650],{"class":793,"line":985},[791,3643,836],{"class":812},[791,3645,839],{"class":808},[791,3647,842],{"class":816},[791,3649,845],{"class":804},[791,3651,1311],{"class":848},[791,3653,3654,3656,3658,3660,3662,3664,3666,3668],{"class":793,"line":1016},[791,3655,836],{"class":812},[791,3657,861],{"class":816},[791,3659,864],{"class":808},[791,3661,867],{"class":816},[791,3663,842],{"class":816},[791,3665,1328],{"class":808},[791,3667,906],{"class":816},[791,3669,3670],{"class":808},"body\n",[791,3672,3673],{"class":793,"line":1053},[791,3674,888],{"emptyLinePlaceholder":887},[791,3676,3677,3679,3681,3683,3685,3687,3689,3691,3693,3695],{"class":793,"line":1058},[791,3678,836],{"class":812},[791,3680,896],{"class":808},[791,3682,842],{"class":816},[791,3684,872],{"class":797},[791,3686,903],{"class":808},[791,3688,906],{"class":816},[791,3690,909],{"class":804},[791,3692,809],{"class":848},[791,3694,914],{"class":808},[791,3696,853],{"class":848},[791,3698,3699,3701,3703,3705,3707,3709,3711,3713,3715,3717,3719,3721,3723,3725,3727,3729,3731,3733,3735,3737,3739,3741,3743,3745],{"class":793,"line":1082},[791,3700,922],{"class":808},[791,3702,906],{"class":816},[791,3704,927],{"class":804},[791,3706,809],{"class":848},[791,3708,932],{"class":816},[791,3710,896],{"class":848},[791,3712,937],{"class":816},[791,3714,861],{"class":816},[791,3716,942],{"class":848},[791,3718,937],{"class":816},[791,3720,896],{"class":808},[791,3722,906],{"class":816},[791,3724,951],{"class":808},[791,3726,906],{"class":816},[791,3728,956],{"class":808},[791,3730,959],{"class":816},[791,3732,962],{"class":848},[791,3734,937],{"class":816},[791,3736,896],{"class":808},[791,3738,906],{"class":816},[791,3740,971],{"class":808},[791,3742,867],{"class":816},[791,3744,867],{"class":816},[791,3746,853],{"class":848},[791,3748,3749],{"class":793,"line":1095},[791,3750,888],{"emptyLinePlaceholder":887},[791,3752,3753,3755,3757,3759,3761,3763,3765,3767,3769,3771,3773,3775],{"class":793,"line":1110},[791,3754,836],{"class":812},[791,3756,990],{"class":808},[791,3758,842],{"class":816},[791,3760,872],{"class":797},[791,3762,997],{"class":808},[791,3764,906],{"class":816},[791,3766,1002],{"class":804},[791,3768,809],{"class":848},[791,3770,1007],{"class":808},[791,3772,906],{"class":816},[791,3774,971],{"class":808},[791,3776,853],{"class":848},[791,3778,3779,3781,3783,3785,3787,3789,3791,3793,3795,3797,3799,3801,3803,3805,3807,3809],{"class":793,"line":1130},[791,3780,922],{"class":808},[791,3782,906],{"class":816},[791,3784,927],{"class":804},[791,3786,809],{"class":848},[791,3788,932],{"class":816},[791,3790,997],{"class":848},[791,3792,937],{"class":816},[791,3794,861],{"class":816},[791,3796,1035],{"class":848},[791,3798,937],{"class":816},[791,3800,990],{"class":808},[791,3802,906],{"class":816},[791,3804,1044],{"class":808},[791,3806,867],{"class":816},[791,3808,867],{"class":816},[791,3810,853],{"class":848},[791,3812,3813],{"class":793,"line":1147},[791,3814,888],{"emptyLinePlaceholder":887},[791,3816,3817,3820,3822,3824,3826,3828,3830,3832,3834,3836,3838,3840],{"class":793,"line":1164},[791,3818,3819],{"class":808},"  res",[791,3821,906],{"class":816},[791,3823,1333],{"class":804},[791,3825,809],{"class":848},[791,3827,932],{"class":816},[791,3829,1191],{"class":848},[791,3831,937],{"class":816},[791,3833,990],{"class":808},[791,3835,906],{"class":816},[791,3837,1044],{"class":808},[791,3839,867],{"class":816},[791,3841,853],{"class":848},[791,3843,3844,3846],{"class":793,"line":1172},[791,3845,1208],{"class":816},[791,3847,853],{"class":808},[608,3849,3850],{"v-slot:hono":610},[782,3851,3853],{"className":784,"code":3852,"filename":3502,"language":787,"meta":610,"style":610},"import { evlog, type EvlogVariables } from 'evlog\u002Fhono'\nimport { createAxiomDrain } from 'evlog\u002Faxiom'\n\nconst app = new Hono\u003CEvlogVariables>()\napp.use(evlog({ drain: createAxiomDrain() }))\n\napp.post('\u002Fcheckout', async (c) => {\n  const log = c.get('log')\n  const { cartId } = await c.req.json()\n\n  const cart = await db.findCart(cartId)\n  log.set({ cart: { items: cart.items.length, total: cart.total } })\n\n  const charge = await stripe.charge(cart.total)\n  log.set({ stripe: { chargeId: charge.id } })\n\n  return c.json({ orderId: charge.id })\n})\n",[675,3854,3855,3881,3899,3903,3928,3956,3960,3991,4016,4042,4046,4068,4118,4122,4148,4182,4186,4214],{"__ignoreMap":610},[791,3856,3857,3859,3861,3863,3865,3867,3870,3872,3874,3876,3879],{"class":793,"line":794},[791,3858,1223],{"class":797},[791,3860,861],{"class":816},[791,3862,3513],{"class":808},[791,3864,959],{"class":816},[791,3866,1683],{"class":797},[791,3868,3869],{"class":808}," EvlogVariables",[791,3871,867],{"class":816},[791,3873,1237],{"class":797},[791,3875,1118],{"class":816},[791,3877,3878],{"class":1121},"evlog\u002Fhono",[791,3880,1245],{"class":816},[791,3882,3883,3885,3887,3889,3891,3893,3895,3897],{"class":793,"line":833},[791,3884,1223],{"class":797},[791,3886,861],{"class":816},[791,3888,3397],{"class":808},[791,3890,867],{"class":816},[791,3892,1237],{"class":797},[791,3894,1118],{"class":816},[791,3896,3406],{"class":1121},[791,3898,1245],{"class":816},[791,3900,3901],{"class":793,"line":856},[791,3902,888],{"emptyLinePlaceholder":887},[791,3904,3905,3907,3909,3911,3914,3917,3920,3923,3926],{"class":793,"line":884},[791,3906,3555],{"class":812},[791,3908,3558],{"class":808},[791,3910,1281],{"class":816},[791,3912,3913],{"class":816}," new",[791,3915,3916],{"class":804}," Hono",[791,3918,3919],{"class":816},"\u003C",[791,3921,3922],{"class":1717},"EvlogVariables",[791,3924,3925],{"class":816},">",[791,3927,1311],{"class":808},[791,3929,3930,3932,3934,3936,3938,3940,3942,3944,3946,3948,3950,3952,3954],{"class":793,"line":891},[791,3931,3570],{"class":808},[791,3933,906],{"class":816},[791,3935,3575],{"class":804},[791,3937,809],{"class":808},[791,3939,1262],{"class":804},[791,3941,809],{"class":808},[791,3943,932],{"class":816},[791,3945,3586],{"class":848},[791,3947,937],{"class":816},[791,3949,3397],{"class":804},[791,3951,3593],{"class":808},[791,3953,1208],{"class":816},[791,3955,3598],{"class":808},[791,3957,3958],{"class":793,"line":919},[791,3959,888],{"emptyLinePlaceholder":887},[791,3961,3962,3964,3966,3968,3970,3972,3974,3976,3978,3980,3982,3985,3987,3989],{"class":793,"line":980},[791,3963,3570],{"class":808},[791,3965,906],{"class":816},[791,3967,3611],{"class":804},[791,3969,809],{"class":808},[791,3971,1125],{"class":816},[791,3973,3618],{"class":1121},[791,3975,1125],{"class":816},[791,3977,959],{"class":816},[791,3979,1722],{"class":812},[791,3981,817],{"class":816},[791,3983,3984],{"class":820},"c",[791,3986,824],{"class":816},[791,3988,827],{"class":812},[791,3990,830],{"class":816},[791,3992,3993,3995,3997,3999,4002,4004,4006,4008,4010,4012,4014],{"class":793,"line":985},[791,3994,836],{"class":812},[791,3996,839],{"class":808},[791,3998,842],{"class":816},[791,4000,4001],{"class":808}," c",[791,4003,906],{"class":816},[791,4005,3041],{"class":804},[791,4007,809],{"class":848},[791,4009,1125],{"class":816},[791,4011,2607],{"class":1121},[791,4013,1125],{"class":816},[791,4015,853],{"class":848},[791,4017,4018,4020,4022,4024,4026,4028,4030,4032,4034,4036,4038,4040],{"class":793,"line":1016},[791,4019,836],{"class":812},[791,4021,861],{"class":816},[791,4023,864],{"class":808},[791,4025,867],{"class":816},[791,4027,842],{"class":816},[791,4029,872],{"class":797},[791,4031,4001],{"class":808},[791,4033,906],{"class":816},[791,4035,1292],{"class":808},[791,4037,906],{"class":816},[791,4039,1333],{"class":804},[791,4041,1311],{"class":848},[791,4043,4044],{"class":793,"line":1053},[791,4045,888],{"emptyLinePlaceholder":887},[791,4047,4048,4050,4052,4054,4056,4058,4060,4062,4064,4066],{"class":793,"line":1058},[791,4049,836],{"class":812},[791,4051,896],{"class":808},[791,4053,842],{"class":816},[791,4055,872],{"class":797},[791,4057,903],{"class":808},[791,4059,906],{"class":816},[791,4061,909],{"class":804},[791,4063,809],{"class":848},[791,4065,914],{"class":808},[791,4067,853],{"class":848},[791,4069,4070,4072,4074,4076,4078,4080,4082,4084,4086,4088,4090,4092,4094,4096,4098,4100,4102,4104,4106,4108,4110,4112,4114,4116],{"class":793,"line":1082},[791,4071,922],{"class":808},[791,4073,906],{"class":816},[791,4075,927],{"class":804},[791,4077,809],{"class":848},[791,4079,932],{"class":816},[791,4081,896],{"class":848},[791,4083,937],{"class":816},[791,4085,861],{"class":816},[791,4087,942],{"class":848},[791,4089,937],{"class":816},[791,4091,896],{"class":808},[791,4093,906],{"class":816},[791,4095,951],{"class":808},[791,4097,906],{"class":816},[791,4099,956],{"class":808},[791,4101,959],{"class":816},[791,4103,962],{"class":848},[791,4105,937],{"class":816},[791,4107,896],{"class":808},[791,4109,906],{"class":816},[791,4111,971],{"class":808},[791,4113,867],{"class":816},[791,4115,867],{"class":816},[791,4117,853],{"class":848},[791,4119,4120],{"class":793,"line":1095},[791,4121,888],{"emptyLinePlaceholder":887},[791,4123,4124,4126,4128,4130,4132,4134,4136,4138,4140,4142,4144,4146],{"class":793,"line":1110},[791,4125,836],{"class":812},[791,4127,990],{"class":808},[791,4129,842],{"class":816},[791,4131,872],{"class":797},[791,4133,997],{"class":808},[791,4135,906],{"class":816},[791,4137,1002],{"class":804},[791,4139,809],{"class":848},[791,4141,1007],{"class":808},[791,4143,906],{"class":816},[791,4145,971],{"class":808},[791,4147,853],{"class":848},[791,4149,4150,4152,4154,4156,4158,4160,4162,4164,4166,4168,4170,4172,4174,4176,4178,4180],{"class":793,"line":1130},[791,4151,922],{"class":808},[791,4153,906],{"class":816},[791,4155,927],{"class":804},[791,4157,809],{"class":848},[791,4159,932],{"class":816},[791,4161,997],{"class":848},[791,4163,937],{"class":816},[791,4165,861],{"class":816},[791,4167,1035],{"class":848},[791,4169,937],{"class":816},[791,4171,990],{"class":808},[791,4173,906],{"class":816},[791,4175,1044],{"class":808},[791,4177,867],{"class":816},[791,4179,867],{"class":816},[791,4181,853],{"class":848},[791,4183,4184],{"class":793,"line":1147},[791,4185,888],{"emptyLinePlaceholder":887},[791,4187,4188,4190,4192,4194,4196,4198,4200,4202,4204,4206,4208,4210,4212],{"class":793,"line":1164},[791,4189,1186],{"class":797},[791,4191,4001],{"class":808},[791,4193,906],{"class":816},[791,4195,1333],{"class":804},[791,4197,809],{"class":848},[791,4199,932],{"class":816},[791,4201,1191],{"class":848},[791,4203,937],{"class":816},[791,4205,990],{"class":808},[791,4207,906],{"class":816},[791,4209,1044],{"class":808},[791,4211,867],{"class":816},[791,4213,853],{"class":848},[791,4215,4216,4218],{"class":793,"line":1172},[791,4217,1208],{"class":816},[791,4219,853],{"class":808},[608,4221,4222],{"v-slot:fastify":610},[782,4223,4225],{"className":784,"code":4224,"filename":3502,"language":787,"meta":610,"style":610},"import { evlog } from 'evlog\u002Ffastify'\nimport { createAxiomDrain } from 'evlog\u002Faxiom'\n\nconst app = Fastify({ logger: false })\nawait app.register(evlog, { drain: createAxiomDrain() })\n\napp.post('\u002Fcheckout', async (request) => {\n  const { cartId } = request.body\n\n  const cart = await db.findCart(cartId)\n  request.log.set({ cart: { items: cart.items.length, total: cart.total } })\n\n  const charge = await stripe.charge(cart.total)\n  request.log.set({ stripe: { chargeId: charge.id } })\n\n  return { orderId: charge.id }\n})\n",[675,4226,4227,4246,4264,4268,4296,4328,4332,4363,4381,4385,4407,4462,4466,4492,4530,4534,4552],{"__ignoreMap":610},[791,4228,4229,4231,4233,4235,4237,4239,4241,4244],{"class":793,"line":794},[791,4230,1223],{"class":797},[791,4232,861],{"class":816},[791,4234,3513],{"class":808},[791,4236,867],{"class":816},[791,4238,1237],{"class":797},[791,4240,1118],{"class":816},[791,4242,4243],{"class":1121},"evlog\u002Ffastify",[791,4245,1245],{"class":816},[791,4247,4248,4250,4252,4254,4256,4258,4260,4262],{"class":793,"line":833},[791,4249,1223],{"class":797},[791,4251,861],{"class":816},[791,4253,3397],{"class":808},[791,4255,867],{"class":816},[791,4257,1237],{"class":797},[791,4259,1118],{"class":816},[791,4261,3406],{"class":1121},[791,4263,1245],{"class":816},[791,4265,4266],{"class":793,"line":856},[791,4267,888],{"emptyLinePlaceholder":887},[791,4269,4270,4272,4274,4276,4279,4281,4283,4286,4288,4292,4294],{"class":793,"line":884},[791,4271,3555],{"class":812},[791,4273,3558],{"class":808},[791,4275,1281],{"class":816},[791,4277,4278],{"class":804}," Fastify",[791,4280,809],{"class":808},[791,4282,932],{"class":816},[791,4284,4285],{"class":848}," logger",[791,4287,937],{"class":816},[791,4289,4291],{"class":4290},"sfNiH"," false",[791,4293,867],{"class":816},[791,4295,853],{"class":808},[791,4297,4298,4301,4304,4306,4309,4312,4314,4316,4318,4320,4322,4324,4326],{"class":793,"line":891},[791,4299,4300],{"class":797},"await",[791,4302,4303],{"class":808}," app",[791,4305,906],{"class":816},[791,4307,4308],{"class":804},"register",[791,4310,4311],{"class":808},"(evlog",[791,4313,959],{"class":816},[791,4315,861],{"class":816},[791,4317,3586],{"class":848},[791,4319,937],{"class":816},[791,4321,3397],{"class":804},[791,4323,3593],{"class":808},[791,4325,1208],{"class":816},[791,4327,853],{"class":808},[791,4329,4330],{"class":793,"line":919},[791,4331,888],{"emptyLinePlaceholder":887},[791,4333,4334,4336,4338,4340,4342,4344,4346,4348,4350,4352,4354,4357,4359,4361],{"class":793,"line":980},[791,4335,3570],{"class":808},[791,4337,906],{"class":816},[791,4339,3611],{"class":804},[791,4341,809],{"class":808},[791,4343,1125],{"class":816},[791,4345,3618],{"class":1121},[791,4347,1125],{"class":816},[791,4349,959],{"class":816},[791,4351,1722],{"class":812},[791,4353,817],{"class":816},[791,4355,4356],{"class":820},"request",[791,4358,824],{"class":816},[791,4360,827],{"class":812},[791,4362,830],{"class":816},[791,4364,4365,4367,4369,4371,4373,4375,4377,4379],{"class":793,"line":985},[791,4366,836],{"class":812},[791,4368,861],{"class":816},[791,4370,864],{"class":808},[791,4372,867],{"class":816},[791,4374,842],{"class":816},[791,4376,1728],{"class":808},[791,4378,906],{"class":816},[791,4380,3670],{"class":808},[791,4382,4383],{"class":793,"line":1016},[791,4384,888],{"emptyLinePlaceholder":887},[791,4386,4387,4389,4391,4393,4395,4397,4399,4401,4403,4405],{"class":793,"line":1053},[791,4388,836],{"class":812},[791,4390,896],{"class":808},[791,4392,842],{"class":816},[791,4394,872],{"class":797},[791,4396,903],{"class":808},[791,4398,906],{"class":816},[791,4400,909],{"class":804},[791,4402,809],{"class":848},[791,4404,914],{"class":808},[791,4406,853],{"class":848},[791,4408,4409,4412,4414,4416,4418,4420,4422,4424,4426,4428,4430,4432,4434,4436,4438,4440,4442,4444,4446,4448,4450,4452,4454,4456,4458,4460],{"class":793,"line":1058},[791,4410,4411],{"class":808},"  request",[791,4413,906],{"class":816},[791,4415,2607],{"class":808},[791,4417,906],{"class":816},[791,4419,927],{"class":804},[791,4421,809],{"class":848},[791,4423,932],{"class":816},[791,4425,896],{"class":848},[791,4427,937],{"class":816},[791,4429,861],{"class":816},[791,4431,942],{"class":848},[791,4433,937],{"class":816},[791,4435,896],{"class":808},[791,4437,906],{"class":816},[791,4439,951],{"class":808},[791,4441,906],{"class":816},[791,4443,956],{"class":808},[791,4445,959],{"class":816},[791,4447,962],{"class":848},[791,4449,937],{"class":816},[791,4451,896],{"class":808},[791,4453,906],{"class":816},[791,4455,971],{"class":808},[791,4457,867],{"class":816},[791,4459,867],{"class":816},[791,4461,853],{"class":848},[791,4463,4464],{"class":793,"line":1082},[791,4465,888],{"emptyLinePlaceholder":887},[791,4467,4468,4470,4472,4474,4476,4478,4480,4482,4484,4486,4488,4490],{"class":793,"line":1095},[791,4469,836],{"class":812},[791,4471,990],{"class":808},[791,4473,842],{"class":816},[791,4475,872],{"class":797},[791,4477,997],{"class":808},[791,4479,906],{"class":816},[791,4481,1002],{"class":804},[791,4483,809],{"class":848},[791,4485,1007],{"class":808},[791,4487,906],{"class":816},[791,4489,971],{"class":808},[791,4491,853],{"class":848},[791,4493,4494,4496,4498,4500,4502,4504,4506,4508,4510,4512,4514,4516,4518,4520,4522,4524,4526,4528],{"class":793,"line":1110},[791,4495,4411],{"class":808},[791,4497,906],{"class":816},[791,4499,2607],{"class":808},[791,4501,906],{"class":816},[791,4503,927],{"class":804},[791,4505,809],{"class":848},[791,4507,932],{"class":816},[791,4509,997],{"class":848},[791,4511,937],{"class":816},[791,4513,861],{"class":816},[791,4515,1035],{"class":848},[791,4517,937],{"class":816},[791,4519,990],{"class":808},[791,4521,906],{"class":816},[791,4523,1044],{"class":808},[791,4525,867],{"class":816},[791,4527,867],{"class":816},[791,4529,853],{"class":848},[791,4531,4532],{"class":793,"line":1130},[791,4533,888],{"emptyLinePlaceholder":887},[791,4535,4536,4538,4540,4542,4544,4546,4548,4550],{"class":793,"line":1147},[791,4537,1186],{"class":797},[791,4539,861],{"class":816},[791,4541,1191],{"class":848},[791,4543,937],{"class":816},[791,4545,990],{"class":808},[791,4547,906],{"class":816},[791,4549,1044],{"class":808},[791,4551,1202],{"class":816},[791,4553,4554,4556],{"class":793,"line":1164},[791,4555,1208],{"class":816},[791,4557,853],{"class":808},[608,4559,4560],{"v-slot:elysia":610},[782,4561,4563],{"className":784,"code":4562,"filename":3502,"language":787,"meta":610,"style":610},"import { evlog } from 'evlog\u002Felysia'\nimport { createAxiomDrain } from 'evlog\u002Faxiom'\n\nconst app = new Elysia()\n  .use(evlog({ drain: createAxiomDrain() }))\n  .post('\u002Fcheckout', async ({ log, body }) => {\n    const { cartId } = body\n\n    const cart = await db.findCart(cartId)\n    log.set({ cart: { items: cart.items.length, total: cart.total } })\n\n    const charge = await stripe.charge(cart.total)\n    log.set({ stripe: { chargeId: charge.id } })\n\n    return { orderId: charge.id }\n  })\n",[675,4564,4565,4584,4602,4606,4621,4648,4681,4697,4701,4723,4774,4778,4804,4838,4842,4861],{"__ignoreMap":610},[791,4566,4567,4569,4571,4573,4575,4577,4579,4582],{"class":793,"line":794},[791,4568,1223],{"class":797},[791,4570,861],{"class":816},[791,4572,3513],{"class":808},[791,4574,867],{"class":816},[791,4576,1237],{"class":797},[791,4578,1118],{"class":816},[791,4580,4581],{"class":1121},"evlog\u002Felysia",[791,4583,1245],{"class":816},[791,4585,4586,4588,4590,4592,4594,4596,4598,4600],{"class":793,"line":833},[791,4587,1223],{"class":797},[791,4589,861],{"class":816},[791,4591,3397],{"class":808},[791,4593,867],{"class":816},[791,4595,1237],{"class":797},[791,4597,1118],{"class":816},[791,4599,3406],{"class":1121},[791,4601,1245],{"class":816},[791,4603,4604],{"class":793,"line":856},[791,4605,888],{"emptyLinePlaceholder":887},[791,4607,4608,4610,4612,4614,4616,4619],{"class":793,"line":884},[791,4609,3555],{"class":812},[791,4611,3558],{"class":808},[791,4613,1281],{"class":816},[791,4615,3913],{"class":816},[791,4617,4618],{"class":804}," Elysia",[791,4620,1311],{"class":808},[791,4622,4623,4626,4628,4630,4632,4634,4636,4638,4640,4642,4644,4646],{"class":793,"line":891},[791,4624,4625],{"class":816},"  .",[791,4627,3575],{"class":804},[791,4629,809],{"class":808},[791,4631,1262],{"class":804},[791,4633,809],{"class":808},[791,4635,932],{"class":816},[791,4637,3586],{"class":848},[791,4639,937],{"class":816},[791,4641,3397],{"class":804},[791,4643,3593],{"class":808},[791,4645,1208],{"class":816},[791,4647,3598],{"class":808},[791,4649,4650,4652,4654,4656,4658,4660,4662,4664,4666,4668,4670,4672,4675,4677,4679],{"class":793,"line":919},[791,4651,4625],{"class":816},[791,4653,3611],{"class":804},[791,4655,809],{"class":808},[791,4657,1125],{"class":816},[791,4659,3618],{"class":1121},[791,4661,1125],{"class":816},[791,4663,959],{"class":816},[791,4665,1722],{"class":812},[791,4667,1725],{"class":816},[791,4669,839],{"class":820},[791,4671,959],{"class":816},[791,4673,4674],{"class":820}," body",[791,4676,1731],{"class":816},[791,4678,827],{"class":812},[791,4680,830],{"class":816},[791,4682,4683,4686,4688,4690,4692,4694],{"class":793,"line":980},[791,4684,4685],{"class":812},"    const",[791,4687,861],{"class":816},[791,4689,864],{"class":808},[791,4691,867],{"class":816},[791,4693,842],{"class":816},[791,4695,4696],{"class":808}," body\n",[791,4698,4699],{"class":793,"line":985},[791,4700,888],{"emptyLinePlaceholder":887},[791,4702,4703,4705,4707,4709,4711,4713,4715,4717,4719,4721],{"class":793,"line":1016},[791,4704,4685],{"class":812},[791,4706,896],{"class":808},[791,4708,842],{"class":816},[791,4710,872],{"class":797},[791,4712,903],{"class":808},[791,4714,906],{"class":816},[791,4716,909],{"class":804},[791,4718,809],{"class":848},[791,4720,914],{"class":808},[791,4722,853],{"class":848},[791,4724,4725,4728,4730,4732,4734,4736,4738,4740,4742,4744,4746,4748,4750,4752,4754,4756,4758,4760,4762,4764,4766,4768,4770,4772],{"class":793,"line":1053},[791,4726,4727],{"class":808},"    log",[791,4729,906],{"class":816},[791,4731,927],{"class":804},[791,4733,809],{"class":848},[791,4735,932],{"class":816},[791,4737,896],{"class":848},[791,4739,937],{"class":816},[791,4741,861],{"class":816},[791,4743,942],{"class":848},[791,4745,937],{"class":816},[791,4747,896],{"class":808},[791,4749,906],{"class":816},[791,4751,951],{"class":808},[791,4753,906],{"class":816},[791,4755,956],{"class":808},[791,4757,959],{"class":816},[791,4759,962],{"class":848},[791,4761,937],{"class":816},[791,4763,896],{"class":808},[791,4765,906],{"class":816},[791,4767,971],{"class":808},[791,4769,867],{"class":816},[791,4771,867],{"class":816},[791,4773,853],{"class":848},[791,4775,4776],{"class":793,"line":1058},[791,4777,888],{"emptyLinePlaceholder":887},[791,4779,4780,4782,4784,4786,4788,4790,4792,4794,4796,4798,4800,4802],{"class":793,"line":1082},[791,4781,4685],{"class":812},[791,4783,990],{"class":808},[791,4785,842],{"class":816},[791,4787,872],{"class":797},[791,4789,997],{"class":808},[791,4791,906],{"class":816},[791,4793,1002],{"class":804},[791,4795,809],{"class":848},[791,4797,1007],{"class":808},[791,4799,906],{"class":816},[791,4801,971],{"class":808},[791,4803,853],{"class":848},[791,4805,4806,4808,4810,4812,4814,4816,4818,4820,4822,4824,4826,4828,4830,4832,4834,4836],{"class":793,"line":1095},[791,4807,4727],{"class":808},[791,4809,906],{"class":816},[791,4811,927],{"class":804},[791,4813,809],{"class":848},[791,4815,932],{"class":816},[791,4817,997],{"class":848},[791,4819,937],{"class":816},[791,4821,861],{"class":816},[791,4823,1035],{"class":848},[791,4825,937],{"class":816},[791,4827,990],{"class":808},[791,4829,906],{"class":816},[791,4831,1044],{"class":808},[791,4833,867],{"class":816},[791,4835,867],{"class":816},[791,4837,853],{"class":848},[791,4839,4840],{"class":793,"line":1110},[791,4841,888],{"emptyLinePlaceholder":887},[791,4843,4844,4847,4849,4851,4853,4855,4857,4859],{"class":793,"line":1130},[791,4845,4846],{"class":797},"    return",[791,4848,861],{"class":816},[791,4850,1191],{"class":848},[791,4852,937],{"class":816},[791,4854,990],{"class":808},[791,4856,906],{"class":816},[791,4858,1044],{"class":808},[791,4860,1202],{"class":816},[791,4862,4863,4866],{"class":793,"line":1147},[791,4864,4865],{"class":816},"  }",[791,4867,853],{"class":808},[608,4869,4870],{"v-slot:orpc":610},[782,4871,4874],{"className":784,"code":4872,"filename":4873,"language":787,"meta":610,"style":610},"import { os } from '@orpc\u002Fserver'\nimport { RPCHandler } from '@orpc\u002Fserver\u002Ffetch'\nimport { evlog, withEvlog, type EvlogOrpcContext } from 'evlog\u002Forpc'\nimport { createAxiomDrain } from 'evlog\u002Faxiom'\n\nconst base = os.$context\u003CEvlogOrpcContext>().use(evlog())\n\nconst router = {\n  checkout: base\n    .input(z.object({ cartId: z.string() }))\n    .handler(async ({ input, context }) => {\n      const cart = await db.findCart(input.cartId)\n      context.log.set({ cart: { items: cart.items.length, total: cart.total } })\n\n      const charge = await stripe.charge(cart.total)\n      context.log.set({ stripe: { chargeId: charge.id } })\n\n      return { orderId: charge.id }\n    }),\n}\n\nconst handler = withEvlog(new RPCHandler(router), { drain: createAxiomDrain() })\n","server\u002Forpc.ts",[675,4875,4876,4896,4916,4946,4964,4968,5004,5008,5019,5029,5067,5093,5120,5175,5179,5205,5243,5247,5266,5274,5278,5282],{"__ignoreMap":610},[791,4877,4878,4880,4882,4885,4887,4889,4891,4894],{"class":793,"line":794},[791,4879,1223],{"class":797},[791,4881,861],{"class":816},[791,4883,4884],{"class":808}," os",[791,4886,867],{"class":816},[791,4888,1237],{"class":797},[791,4890,1118],{"class":816},[791,4892,4893],{"class":1121},"@orpc\u002Fserver",[791,4895,1245],{"class":816},[791,4897,4898,4900,4902,4905,4907,4909,4911,4914],{"class":793,"line":833},[791,4899,1223],{"class":797},[791,4901,861],{"class":816},[791,4903,4904],{"class":808}," RPCHandler",[791,4906,867],{"class":816},[791,4908,1237],{"class":797},[791,4910,1118],{"class":816},[791,4912,4913],{"class":1121},"@orpc\u002Fserver\u002Ffetch",[791,4915,1245],{"class":816},[791,4917,4918,4920,4922,4924,4926,4928,4930,4932,4935,4937,4939,4941,4944],{"class":793,"line":856},[791,4919,1223],{"class":797},[791,4921,861],{"class":816},[791,4923,3513],{"class":808},[791,4925,959],{"class":816},[791,4927,1228],{"class":808},[791,4929,959],{"class":816},[791,4931,1683],{"class":797},[791,4933,4934],{"class":808}," EvlogOrpcContext",[791,4936,867],{"class":816},[791,4938,1237],{"class":797},[791,4940,1118],{"class":816},[791,4942,4943],{"class":1121},"evlog\u002Forpc",[791,4945,1245],{"class":816},[791,4947,4948,4950,4952,4954,4956,4958,4960,4962],{"class":793,"line":884},[791,4949,1223],{"class":797},[791,4951,861],{"class":816},[791,4953,3397],{"class":808},[791,4955,867],{"class":816},[791,4957,1237],{"class":797},[791,4959,1118],{"class":816},[791,4961,3406],{"class":1121},[791,4963,1245],{"class":816},[791,4965,4966],{"class":793,"line":891},[791,4967,888],{"emptyLinePlaceholder":887},[791,4969,4970,4972,4975,4977,4979,4981,4984,4986,4989,4991,4993,4995,4997,4999,5001],{"class":793,"line":919},[791,4971,3555],{"class":812},[791,4973,4974],{"class":808}," base ",[791,4976,1281],{"class":816},[791,4978,4884],{"class":808},[791,4980,906],{"class":816},[791,4982,4983],{"class":804},"$context",[791,4985,3919],{"class":816},[791,4987,4988],{"class":1717},"EvlogOrpcContext",[791,4990,3925],{"class":816},[791,4992,3460],{"class":808},[791,4994,906],{"class":816},[791,4996,3575],{"class":804},[791,4998,809],{"class":808},[791,5000,1262],{"class":804},[791,5002,5003],{"class":808},"())\n",[791,5005,5006],{"class":793,"line":980},[791,5007,888],{"emptyLinePlaceholder":887},[791,5009,5010,5012,5015,5017],{"class":793,"line":985},[791,5011,3555],{"class":812},[791,5013,5014],{"class":808}," router ",[791,5016,1281],{"class":816},[791,5018,830],{"class":816},[791,5020,5021,5024,5026],{"class":793,"line":1016},[791,5022,5023],{"class":848},"  checkout",[791,5025,937],{"class":816},[791,5027,5028],{"class":808}," base\n",[791,5030,5031,5034,5037,5040,5042,5045,5047,5049,5051,5053,5056,5058,5061,5063,5065],{"class":793,"line":1053},[791,5032,5033],{"class":816},"    .",[791,5035,5036],{"class":804},"input",[791,5038,5039],{"class":808},"(z",[791,5041,906],{"class":816},[791,5043,5044],{"class":804},"object",[791,5046,809],{"class":808},[791,5048,932],{"class":816},[791,5050,864],{"class":848},[791,5052,937],{"class":816},[791,5054,5055],{"class":808}," z",[791,5057,906],{"class":816},[791,5059,5060],{"class":804},"string",[791,5062,3593],{"class":808},[791,5064,1208],{"class":816},[791,5066,3598],{"class":808},[791,5068,5069,5071,5074,5076,5078,5080,5083,5085,5087,5089,5091],{"class":793,"line":1058},[791,5070,5033],{"class":816},[791,5072,5073],{"class":804},"handler",[791,5075,809],{"class":808},[791,5077,813],{"class":812},[791,5079,1725],{"class":816},[791,5081,5082],{"class":820}," input",[791,5084,959],{"class":816},[791,5086,3011],{"class":820},[791,5088,1731],{"class":816},[791,5090,827],{"class":812},[791,5092,830],{"class":816},[791,5094,5095,5098,5100,5102,5104,5106,5108,5110,5112,5114,5116,5118],{"class":793,"line":1082},[791,5096,5097],{"class":812},"      const",[791,5099,896],{"class":808},[791,5101,842],{"class":816},[791,5103,872],{"class":797},[791,5105,903],{"class":808},[791,5107,906],{"class":816},[791,5109,909],{"class":804},[791,5111,809],{"class":848},[791,5113,5036],{"class":808},[791,5115,906],{"class":816},[791,5117,914],{"class":808},[791,5119,853],{"class":848},[791,5121,5122,5125,5127,5129,5131,5133,5135,5137,5139,5141,5143,5145,5147,5149,5151,5153,5155,5157,5159,5161,5163,5165,5167,5169,5171,5173],{"class":793,"line":1095},[791,5123,5124],{"class":808},"      context",[791,5126,906],{"class":816},[791,5128,2607],{"class":808},[791,5130,906],{"class":816},[791,5132,927],{"class":804},[791,5134,809],{"class":848},[791,5136,932],{"class":816},[791,5138,896],{"class":848},[791,5140,937],{"class":816},[791,5142,861],{"class":816},[791,5144,942],{"class":848},[791,5146,937],{"class":816},[791,5148,896],{"class":808},[791,5150,906],{"class":816},[791,5152,951],{"class":808},[791,5154,906],{"class":816},[791,5156,956],{"class":808},[791,5158,959],{"class":816},[791,5160,962],{"class":848},[791,5162,937],{"class":816},[791,5164,896],{"class":808},[791,5166,906],{"class":816},[791,5168,971],{"class":808},[791,5170,867],{"class":816},[791,5172,867],{"class":816},[791,5174,853],{"class":848},[791,5176,5177],{"class":793,"line":1110},[791,5178,888],{"emptyLinePlaceholder":887},[791,5180,5181,5183,5185,5187,5189,5191,5193,5195,5197,5199,5201,5203],{"class":793,"line":1130},[791,5182,5097],{"class":812},[791,5184,990],{"class":808},[791,5186,842],{"class":816},[791,5188,872],{"class":797},[791,5190,997],{"class":808},[791,5192,906],{"class":816},[791,5194,1002],{"class":804},[791,5196,809],{"class":848},[791,5198,1007],{"class":808},[791,5200,906],{"class":816},[791,5202,971],{"class":808},[791,5204,853],{"class":848},[791,5206,5207,5209,5211,5213,5215,5217,5219,5221,5223,5225,5227,5229,5231,5233,5235,5237,5239,5241],{"class":793,"line":1147},[791,5208,5124],{"class":808},[791,5210,906],{"class":816},[791,5212,2607],{"class":808},[791,5214,906],{"class":816},[791,5216,927],{"class":804},[791,5218,809],{"class":848},[791,5220,932],{"class":816},[791,5222,997],{"class":848},[791,5224,937],{"class":816},[791,5226,861],{"class":816},[791,5228,1035],{"class":848},[791,5230,937],{"class":816},[791,5232,990],{"class":808},[791,5234,906],{"class":816},[791,5236,1044],{"class":808},[791,5238,867],{"class":816},[791,5240,867],{"class":816},[791,5242,853],{"class":848},[791,5244,5245],{"class":793,"line":1164},[791,5246,888],{"emptyLinePlaceholder":887},[791,5248,5249,5252,5254,5256,5258,5260,5262,5264],{"class":793,"line":1172},[791,5250,5251],{"class":797},"      return",[791,5253,861],{"class":816},[791,5255,1191],{"class":848},[791,5257,937],{"class":816},[791,5259,990],{"class":808},[791,5261,906],{"class":816},[791,5263,1044],{"class":808},[791,5265,1202],{"class":816},[791,5267,5268,5270,5272],{"class":793,"line":1178},[791,5269,1167],{"class":816},[791,5271,824],{"class":808},[791,5273,1107],{"class":816},[791,5275,5276],{"class":793,"line":1183},[791,5277,2038],{"class":816},[791,5279,5280],{"class":793,"line":1205},[791,5281,888],{"emptyLinePlaceholder":887},[791,5283,5284,5286,5289,5291,5293,5295,5298,5300,5303,5305,5307,5309,5311,5313,5315,5317],{"class":793,"line":1572},[791,5285,3555],{"class":812},[791,5287,5288],{"class":808}," handler ",[791,5290,1281],{"class":816},[791,5292,1228],{"class":804},[791,5294,809],{"class":808},[791,5296,5297],{"class":816},"new",[791,5299,4904],{"class":804},[791,5301,5302],{"class":808},"(router)",[791,5304,959],{"class":816},[791,5306,861],{"class":816},[791,5308,3586],{"class":848},[791,5310,937],{"class":816},[791,5312,3397],{"class":804},[791,5314,3593],{"class":808},[791,5316,1208],{"class":816},[791,5318,853],{"class":808},[608,5320,5321],{"v-slot:cloudflare":610},[782,5322,5325],{"className":784,"code":5323,"filename":5324,"language":787,"meta":610,"style":610},"import { defineWorkerFetch, initWorkersLogger } from 'evlog\u002Fworkers'\n\ninitWorkersLogger({ env: { service: 'checkout-worker' } })\n\nexport default defineWorkerFetch(async (request, env, _ctx, log) => {\n  const { cartId } = await request.json()\n  const cart = await env.DB.findCart(cartId)\n  log.set({ cart: { items: cart.items.length, total: cart.total } })\n\n  log.emit()\n  return Response.json({ orderId: cart.id })\n})\n","src\u002Fworker.ts",[675,5326,5327,5352,5356,5390,5394,5429,5451,5478,5528,5532,5543,5571],{"__ignoreMap":610},[791,5328,5329,5331,5333,5336,5338,5341,5343,5345,5347,5350],{"class":793,"line":794},[791,5330,1223],{"class":797},[791,5332,861],{"class":816},[791,5334,5335],{"class":808}," defineWorkerFetch",[791,5337,959],{"class":816},[791,5339,5340],{"class":808}," initWorkersLogger",[791,5342,867],{"class":816},[791,5344,1237],{"class":797},[791,5346,1118],{"class":816},[791,5348,5349],{"class":1121},"evlog\u002Fworkers",[791,5351,1245],{"class":816},[791,5353,5354],{"class":793,"line":833},[791,5355,888],{"emptyLinePlaceholder":887},[791,5357,5358,5361,5363,5365,5368,5370,5372,5375,5377,5379,5382,5384,5386,5388],{"class":793,"line":856},[791,5359,5360],{"class":804},"initWorkersLogger",[791,5362,809],{"class":808},[791,5364,932],{"class":816},[791,5366,5367],{"class":848}," env",[791,5369,937],{"class":816},[791,5371,861],{"class":816},[791,5373,5374],{"class":848}," service",[791,5376,937],{"class":816},[791,5378,1118],{"class":816},[791,5380,5381],{"class":1121},"checkout-worker",[791,5383,1125],{"class":816},[791,5385,867],{"class":816},[791,5387,867],{"class":816},[791,5389,853],{"class":808},[791,5391,5392],{"class":793,"line":884},[791,5393,888],{"emptyLinePlaceholder":887},[791,5395,5396,5398,5400,5402,5404,5406,5408,5410,5412,5414,5416,5419,5421,5423,5425,5427],{"class":793,"line":891},[791,5397,798],{"class":797},[791,5399,801],{"class":797},[791,5401,5335],{"class":804},[791,5403,809],{"class":808},[791,5405,813],{"class":812},[791,5407,817],{"class":816},[791,5409,4356],{"class":820},[791,5411,959],{"class":816},[791,5413,5367],{"class":820},[791,5415,959],{"class":816},[791,5417,5418],{"class":820}," _ctx",[791,5420,959],{"class":816},[791,5422,839],{"class":820},[791,5424,824],{"class":816},[791,5426,827],{"class":812},[791,5428,830],{"class":816},[791,5430,5431,5433,5435,5437,5439,5441,5443,5445,5447,5449],{"class":793,"line":919},[791,5432,836],{"class":812},[791,5434,861],{"class":816},[791,5436,864],{"class":808},[791,5438,867],{"class":816},[791,5440,842],{"class":816},[791,5442,872],{"class":797},[791,5444,1728],{"class":808},[791,5446,906],{"class":816},[791,5448,1333],{"class":804},[791,5450,1311],{"class":848},[791,5452,5453,5455,5457,5459,5461,5463,5465,5468,5470,5472,5474,5476],{"class":793,"line":980},[791,5454,836],{"class":812},[791,5456,896],{"class":808},[791,5458,842],{"class":816},[791,5460,872],{"class":797},[791,5462,5367],{"class":808},[791,5464,906],{"class":816},[791,5466,5467],{"class":808},"DB",[791,5469,906],{"class":816},[791,5471,909],{"class":804},[791,5473,809],{"class":848},[791,5475,914],{"class":808},[791,5477,853],{"class":848},[791,5479,5480,5482,5484,5486,5488,5490,5492,5494,5496,5498,5500,5502,5504,5506,5508,5510,5512,5514,5516,5518,5520,5522,5524,5526],{"class":793,"line":985},[791,5481,922],{"class":808},[791,5483,906],{"class":816},[791,5485,927],{"class":804},[791,5487,809],{"class":848},[791,5489,932],{"class":816},[791,5491,896],{"class":848},[791,5493,937],{"class":816},[791,5495,861],{"class":816},[791,5497,942],{"class":848},[791,5499,937],{"class":816},[791,5501,896],{"class":808},[791,5503,906],{"class":816},[791,5505,951],{"class":808},[791,5507,906],{"class":816},[791,5509,956],{"class":808},[791,5511,959],{"class":816},[791,5513,962],{"class":848},[791,5515,937],{"class":816},[791,5517,896],{"class":808},[791,5519,906],{"class":816},[791,5521,971],{"class":808},[791,5523,867],{"class":816},[791,5525,867],{"class":816},[791,5527,853],{"class":848},[791,5529,5530],{"class":793,"line":1016},[791,5531,888],{"emptyLinePlaceholder":887},[791,5533,5534,5536,5538,5541],{"class":793,"line":1053},[791,5535,922],{"class":808},[791,5537,906],{"class":816},[791,5539,5540],{"class":804},"emit",[791,5542,1311],{"class":848},[791,5544,5545,5547,5549,5551,5553,5555,5557,5559,5561,5563,5565,5567,5569],{"class":793,"line":1058},[791,5546,1186],{"class":797},[791,5548,1582],{"class":808},[791,5550,906],{"class":816},[791,5552,1333],{"class":804},[791,5554,809],{"class":848},[791,5556,932],{"class":816},[791,5558,1191],{"class":848},[791,5560,937],{"class":816},[791,5562,896],{"class":808},[791,5564,906],{"class":816},[791,5566,1044],{"class":808},[791,5568,867],{"class":816},[791,5570,853],{"class":848},[791,5572,5573,5575],{"class":793,"line":1082},[791,5574,1208],{"class":816},[791,5576,853],{"class":808},[608,5578,5579],{"v-slot:bun":610},[782,5580,5583],{"className":784,"code":5581,"filename":5582,"language":787,"meta":610,"style":610},"import { initLogger, createLogger } from 'evlog'\n\ninitLogger({ env: { service: 'migrate' } })\n\nconst log = createLogger({ task: 'user-migration' })\n\nconst users = await db.query('SELECT * FROM legacy_users')\nlog.set({ found: users.length })\n\nfor (const user of users) {\n  await newDb.upsert({ id: user.id, email: user.email, plan: user.plan })\n}\n\nlog.set({ migrated: users.length, status: 'complete' })\nlog.emit()\n","scripts\u002Fmigrate-users.ts",[675,5584,5585,5609,5613,5645,5649,5680,5684,5713,5742,5746,5766,5827,5831,5835,5876],{"__ignoreMap":610},[791,5586,5587,5589,5591,5594,5596,5599,5601,5603,5605,5607],{"class":793,"line":794},[791,5588,1223],{"class":797},[791,5590,861],{"class":816},[791,5592,5593],{"class":808}," initLogger",[791,5595,959],{"class":816},[791,5597,5598],{"class":808}," createLogger",[791,5600,867],{"class":816},[791,5602,1237],{"class":797},[791,5604,1118],{"class":816},[791,5606,1262],{"class":1121},[791,5608,1245],{"class":816},[791,5610,5611],{"class":793,"line":833},[791,5612,888],{"emptyLinePlaceholder":887},[791,5614,5615,5618,5620,5622,5624,5626,5628,5630,5632,5634,5637,5639,5641,5643],{"class":793,"line":856},[791,5616,5617],{"class":804},"initLogger",[791,5619,809],{"class":808},[791,5621,932],{"class":816},[791,5623,5367],{"class":848},[791,5625,937],{"class":816},[791,5627,861],{"class":816},[791,5629,5374],{"class":848},[791,5631,937],{"class":816},[791,5633,1118],{"class":816},[791,5635,5636],{"class":1121},"migrate",[791,5638,1125],{"class":816},[791,5640,867],{"class":816},[791,5642,867],{"class":816},[791,5644,853],{"class":808},[791,5646,5647],{"class":793,"line":884},[791,5648,888],{"emptyLinePlaceholder":887},[791,5650,5651,5653,5656,5658,5660,5662,5664,5667,5669,5671,5674,5676,5678],{"class":793,"line":891},[791,5652,3555],{"class":812},[791,5654,5655],{"class":808}," log ",[791,5657,1281],{"class":816},[791,5659,5598],{"class":804},[791,5661,809],{"class":808},[791,5663,932],{"class":816},[791,5665,5666],{"class":848}," task",[791,5668,937],{"class":816},[791,5670,1118],{"class":816},[791,5672,5673],{"class":1121},"user-migration",[791,5675,1125],{"class":816},[791,5677,867],{"class":816},[791,5679,853],{"class":808},[791,5681,5682],{"class":793,"line":919},[791,5683,888],{"emptyLinePlaceholder":887},[791,5685,5686,5688,5691,5693,5695,5697,5699,5702,5704,5706,5709,5711],{"class":793,"line":980},[791,5687,3555],{"class":812},[791,5689,5690],{"class":808}," users ",[791,5692,1281],{"class":816},[791,5694,872],{"class":797},[791,5696,903],{"class":808},[791,5698,906],{"class":816},[791,5700,5701],{"class":804},"query",[791,5703,809],{"class":808},[791,5705,1125],{"class":816},[791,5707,5708],{"class":1121},"SELECT * FROM legacy_users",[791,5710,1125],{"class":816},[791,5712,853],{"class":808},[791,5714,5715,5717,5719,5721,5723,5725,5728,5730,5733,5735,5738,5740],{"class":793,"line":985},[791,5716,2607],{"class":808},[791,5718,906],{"class":816},[791,5720,927],{"class":804},[791,5722,809],{"class":808},[791,5724,932],{"class":816},[791,5726,5727],{"class":848}," found",[791,5729,937],{"class":816},[791,5731,5732],{"class":808}," users",[791,5734,906],{"class":816},[791,5736,5737],{"class":808},"length ",[791,5739,1208],{"class":816},[791,5741,853],{"class":808},[791,5743,5744],{"class":793,"line":1016},[791,5745,888],{"emptyLinePlaceholder":887},[791,5747,5748,5751,5753,5755,5758,5761,5764],{"class":793,"line":1053},[791,5749,5750],{"class":797},"for",[791,5752,817],{"class":808},[791,5754,3555],{"class":812},[791,5756,5757],{"class":808}," user ",[791,5759,5760],{"class":816},"of",[791,5762,5763],{"class":808}," users) ",[791,5765,1079],{"class":816},[791,5767,5768,5771,5774,5776,5779,5781,5783,5786,5788,5791,5793,5795,5797,5800,5802,5804,5806,5809,5811,5814,5816,5818,5820,5823,5825],{"class":793,"line":1058},[791,5769,5770],{"class":797},"  await",[791,5772,5773],{"class":808}," newDb",[791,5775,906],{"class":816},[791,5777,5778],{"class":804},"upsert",[791,5780,809],{"class":848},[791,5782,932],{"class":816},[791,5784,5785],{"class":848}," id",[791,5787,937],{"class":816},[791,5789,5790],{"class":808}," user",[791,5792,906],{"class":816},[791,5794,1044],{"class":808},[791,5796,959],{"class":816},[791,5798,5799],{"class":848}," email",[791,5801,937],{"class":816},[791,5803,5790],{"class":808},[791,5805,906],{"class":816},[791,5807,5808],{"class":808},"email",[791,5810,959],{"class":816},[791,5812,5813],{"class":848}," plan",[791,5815,937],{"class":816},[791,5817,5790],{"class":808},[791,5819,906],{"class":816},[791,5821,5822],{"class":808},"plan",[791,5824,867],{"class":816},[791,5826,853],{"class":848},[791,5828,5829],{"class":793,"line":1082},[791,5830,2038],{"class":816},[791,5832,5833],{"class":793,"line":1095},[791,5834,888],{"emptyLinePlaceholder":887},[791,5836,5837,5839,5841,5843,5845,5847,5850,5852,5854,5856,5858,5860,5863,5865,5867,5870,5872,5874],{"class":793,"line":1110},[791,5838,2607],{"class":808},[791,5840,906],{"class":816},[791,5842,927],{"class":804},[791,5844,809],{"class":808},[791,5846,932],{"class":816},[791,5848,5849],{"class":848}," migrated",[791,5851,937],{"class":816},[791,5853,5732],{"class":808},[791,5855,906],{"class":816},[791,5857,956],{"class":808},[791,5859,959],{"class":816},[791,5861,5862],{"class":848}," status",[791,5864,937],{"class":816},[791,5866,1118],{"class":816},[791,5868,5869],{"class":1121},"complete",[791,5871,1125],{"class":816},[791,5873,867],{"class":816},[791,5875,853],{"class":808},[791,5877,5878,5880,5882,5884],{"class":793,"line":1130},[791,5879,2607],{"class":808},[791,5881,906],{"class":816},[791,5883,5540],{"class":804},[791,5885,1311],{"class":808},[5887,5888,5889,5892,5895],"landing-faq",{},[608,5890,5891],{"v-slot:headline":610},"FAQ",[608,5893,5894],{"v-slot:title":610},"Before you install",[608,5896,5897],{"v-slot:body":610},[5898,5899,5901,5931,5942,5950,5971,5996],"accordion",{"type":5900},"single",[5902,5903,5905,5906,5909,5910,5913,5914,5917,5918,5921,5922,5926,5927,906],"accordion-item",{"label":5904},"I already use pino. What actually changes?","evlog supplies a context accumulator and integrations that finish the request event. ",[675,5907,5908],{},"log.set()"," adds fields during the operation, and the emitted event carries its outcome and error together. Pino can also emit a completed object once, with accumulation managed by your application. ",[675,5911,5912],{},"createError()"," adds ",[675,5915,5916],{},"why"," and ",[675,5919,5920],{},"fix",", and a ",[5923,5924,5925],"a",{"href":82},"catalog"," gives recurring failures a stable code. Call signatures, serializers, and output configuration need an explicit migration. See ",[5923,5928,5930],{"href":5929},"\u002Freference\u002Fvs-other-loggers#choose-the-comparison-for-your-stack","the comparison for your stack",[5902,5932,5934,5935,5937,5938,906],{"label":5933},"My app is already in production. Is it too late?","No, and you do not have to guess where to start. ",[675,5936,677],{}," reads your source and scores every entry point on the context it will hand you when it breaks, then names the ones to fix first. It needs no traffic, no agent, and no deploy, so you get that list before the next incident instead of during it. Day one or year three, the work is the same list. See ",[5923,5939,5941],{"href":5940},"\u002Fcli\u002Fmap#adding-it-to-an-app-already-in-production","adding it to an app already in production",[5902,5943,5945,5946,906],{"label":5944},"Do I have to change where my logs go?","No, and you keep the platform you already pay for. evlog produces the events, a drain ships them: Axiom, Datadog, Sentry, Better Stack, PostHog, Loki, ClickHouse, OTLP, or the filesystem. Changing provider is a drain swap, not an architecture change, because your handlers never name a destination. If you are building the platform rather than buying one, that same pipeline is where you plug in. See ",[5923,5947,5949],{"href":5948},"\u002Fintegrate\u002Fadapters\u002Foverview#send-events-without-naming-a-destination-in-your-code","how a drain keeps the destination out of your code",[5902,5951,5953,5954,5958,5959,5962,5963,5966,5967,906],{"label":5952},"Will it cost me more to ship these logs?","It usually costs less. One request leaves one event instead of four lines, which measures ",[5955,5956,5957],"strong",{},"56% fewer bytes and 75% fewer events"," on the checkout shape in the ",[5923,5960,5961],{"href":570},"log cost guide",", because the level, timestamp, host and request bindings stop repeating on every line. Which of those two numbers moves your bill depends on your provider: most charge per GB ingested, so you save on bytes, while a provider that also bills per million events indexed rewards the event count instead. Then ",[5923,5964,5965],{"href":67},"sampling"," drops what you were never going to read and force-keeps errors and slow requests. Price it against your own traffic on ",[5923,5968,5970],{"href":5969},"\u002Freference\u002Fcost#which-number-moves-your-bill","which number moves your bill",[5902,5972,5974,5975,5977,5978,5980,5981,5983,5984,5986,5987,5991,5992,5995],{"label":5973},"How much work is it to adopt?","You migrate one handler at a time. Two calls are worth learning: ",[675,5976,5908],{},", which adds context to the event in flight, and ",[675,5979,5912],{},", which attaches a ",[675,5982,5916],{}," and a ",[675,5985,5920],{}," to an error instead of a bare stack. See ",[5923,5988,5990],{"href":5989},"\u002Fstart\u002Fquick-start#how-much-of-this-do-you-need-on-day-one","how much of this you need on day one",", or ",[5923,5993,5994],{"href":11},"what evlog is"," if you want the shape before the code.",[5902,5997,5999,6000,6003,6004,6008],{"label":5998},"What does it cost at runtime?","The core package has ",[5955,6001,6002],{},"zero runtime dependencies",". Execution cost depends on context size, redaction, output, and delivery. A silent construction benchmark excludes console serialization and remote export, so it cannot establish a fixed cost per production request. Follow ",[5923,6005,6007],{"href":6006},"\u002Freference\u002Fperformance#what-it-costs-on-one-real-request","what it costs on one real request"," to measure the complete path on your runtime.",[6010,6011,6012],"landing-cta",{},[608,6013,6014],{"v-slot:description":610},"One logger for every context. Set it up in 10 minutes. Your future self will thank you.",[6016,6017,6018],"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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}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 .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}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 .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 .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":610,"searchDepth":833,"depth":833,"links":6020},[],"A modern TypeScript logger built for everything you ship — scripts, libraries, jobs, edge, requests. Simple logs, wide events, and structured errors in one API.","md",null,{},"\u002Flanding",{"title":600,"description":6021},"0.landing","IwbEWCqi9bI3ayOWV_B_e9maAVTlubC23d4_GQMXFAs",1789076896283]