[{"data":1,"prerenderedAt":2692},["ShallowReactive",2],{"navigation_docs":3,"-use-cases-enrichers":533,"-use-cases-enrichers-surround":2687},[4,29,76,122,304,436,495],{"title":5,"path":6,"stem":7,"children":8,"page":28},"Start","\u002Fstart","1.start",[9,13,18,23],{"title":10,"path":11,"stem":12},"Introduction","\u002Fstart\u002Fintroduction","1.start\u002F1.introduction",{"title":14,"path":15,"stem":16,"icon":17},"Why start with evlog","\u002Fstart\u002Fwhy-evlog","1.start\u002F2.why-evlog","i-lucide-rocket",{"title":19,"path":20,"stem":21,"icon":22},"Installation","\u002Fstart\u002Finstallation","1.start\u002F3.installation","i-lucide-download",{"title":24,"path":25,"stem":26,"icon":27},"Quick Start","\u002Fstart\u002Fquick-start","1.start\u002F4.quick-start","i-lucide-zap",false,{"title":30,"path":31,"stem":32,"children":33,"page":28},"Learn","\u002Flearn","2.learn",[34,38,43,48,53,58,62,67,72],{"title":35,"path":36,"stem":37},"Learn evlog","\u002Flearn\u002Foverview","2.learn\u002F0.overview",{"title":39,"path":40,"stem":41,"icon":42},"Simple Logging","\u002Flearn\u002Fsimple-logging","2.learn\u002F1.simple-logging","i-lucide-terminal",{"title":44,"path":45,"stem":46,"icon":47},"Wide Events","\u002Flearn\u002Fwide-events","2.learn\u002F2.wide-events","i-lucide-layers",{"title":49,"path":50,"stem":51,"icon":52},"Structured Errors","\u002Flearn\u002Fstructured-errors","2.learn\u002F3.structured-errors","i-lucide-shield-alert",{"title":54,"path":55,"stem":56,"icon":57},"Lifecycle","\u002Flearn\u002Flifecycle","2.learn\u002F4.lifecycle","i-lucide-arrow-right-left",{"title":59,"path":60,"stem":61},"Sampling","\u002Flearn\u002Fsampling","2.learn\u002F5.sampling",{"title":63,"path":64,"stem":65,"icon":66},"Auto-Redaction","\u002Flearn\u002Fredaction","2.learn\u002F6.redaction","i-lucide-eye-off",{"title":68,"path":69,"stem":70,"icon":71},"Typed Fields","\u002Flearn\u002Ftyped-fields","2.learn\u002F7.typed-fields","i-simple-icons-typescript",{"title":73,"path":74,"stem":75},"Catalogs","\u002Flearn\u002Fcatalogs","2.learn\u002F8.catalogs",{"title":77,"path":78,"stem":79,"children":80,"page":28},"CLI","\u002Fcli","3.cli",[81,85,90,95,99,103,108,113,118],{"title":82,"path":83,"stem":84},"evlog CLI","\u002Fcli\u002Foverview","3.cli\u002F0.overview",{"title":86,"path":87,"stem":88,"icon":89},"init","\u002Fcli\u002Finit","3.cli\u002F1.init","i-lucide-wand-sparkles",{"title":91,"path":92,"stem":93,"icon":94},"map","\u002Fcli\u002Fmap","3.cli\u002F2.map","i-lucide-radar",{"title":96,"path":97,"stem":98},"Map rules","\u002Fcli\u002Frules","3.cli\u002F3.rules",{"title":100,"path":101,"stem":102},"Map scoring","\u002Fcli\u002Fscoring","3.cli\u002F4.scoring",{"title":104,"path":105,"stem":106,"icon":107},"CI","\u002Fcli\u002Fci","3.cli\u002F5.ci","i-lucide-git-pull-request",{"title":109,"path":110,"stem":111,"icon":112},"doctor","\u002Fcli\u002Fdoctor","3.cli\u002F6.doctor","i-lucide-stethoscope",{"title":114,"path":115,"stem":116,"icon":117},"telemetry","\u002Fcli\u002Ftelemetry","3.cli\u002F7.telemetry","i-lucide-bar-chart-3",{"title":119,"path":120,"stem":121},"evlog agents","\u002Fcli\u002Fagents","3.cli\u002F8.agents",{"title":123,"path":124,"stem":125,"children":126,"page":28},"Integrate","\u002Fintegrate","4.integrate",[127,132,216],{"title":128,"path":129,"stem":130,"icon":131},"Overview","\u002Fintegrate\u002Foverview","4.integrate\u002F0.overview","i-lucide-plug",{"title":133,"path":134,"stem":135,"children":136,"page":28},"Adapters","\u002Fintegrate\u002Fadapters","4.integrate\u002Fadapters",[137,141,171,196],{"title":128,"path":138,"stem":139,"icon":140},"\u002Fintegrate\u002Fadapters\u002Foverview","4.integrate\u002Fadapters\u002F01.overview","i-lucide-list",{"title":142,"path":143,"stem":144,"children":145,"page":28},"Cloud","\u002Fintegrate\u002Fadapters\u002Fcloud","4.integrate\u002Fadapters\u002Fcloud",[146,151,156,161,166],{"title":147,"path":148,"stem":149,"icon":150},"Axiom","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Faxiom","4.integrate\u002Fadapters\u002Fcloud\u002F01.axiom","i-custom-axiom",{"title":152,"path":153,"stem":154,"icon":155},"PostHog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fposthog","4.integrate\u002Fadapters\u002Fcloud\u002F02.posthog","i-simple-icons-posthog",{"title":157,"path":158,"stem":159,"icon":160},"Sentry","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fsentry","4.integrate\u002Fadapters\u002Fcloud\u002F03.sentry","i-simple-icons-sentry",{"title":162,"path":163,"stem":164,"icon":165},"Better Stack","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fbetter-stack","4.integrate\u002Fadapters\u002Fcloud\u002F04.better-stack","i-simple-icons-betterstack",{"title":167,"path":168,"stem":169,"icon":170},"Datadog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fdatadog","4.integrate\u002Fadapters\u002Fcloud\u002F05.datadog","i-simple-icons-datadog",{"title":172,"path":173,"stem":174,"children":175,"page":28},"Cloud or Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fhybrid","4.integrate\u002Fadapters\u002Fhybrid",[176,181,186,191],{"title":177,"path":178,"stem":179,"icon":180},"Grafana Loki","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Floki","4.integrate\u002Fadapters\u002Fhybrid\u002F01.loki","i-simple-icons-grafana",{"title":182,"path":183,"stem":184,"icon":185},"ClickHouse","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fclickhouse","4.integrate\u002Fadapters\u002Fhybrid\u002F02.clickhouse","i-simple-icons-clickhouse",{"title":187,"path":188,"stem":189,"icon":190},"OTLP","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fotlp","4.integrate\u002Fadapters\u002Fhybrid\u002F03.otlp","i-simple-icons-opentelemetry",{"title":192,"path":193,"stem":194,"icon":195},"HyperDX","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fhyperdx","4.integrate\u002Fadapters\u002Fhybrid\u002F04.hyperdx","i-custom-hyperdx",{"title":197,"path":198,"stem":199,"children":200,"page":28},"Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fself-hosted","4.integrate\u002Fadapters\u002Fself-hosted",[201,206,211],{"title":202,"path":203,"stem":204,"icon":205},"File System","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Ffs","4.integrate\u002Fadapters\u002Fself-hosted\u002F01.fs","i-lucide-hard-drive",{"title":207,"path":208,"stem":209,"icon":210},"NuxtHub","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fnuxthub","4.integrate\u002Fadapters\u002Fself-hosted\u002F02.nuxthub","i-simple-icons-nuxt",{"title":212,"path":213,"stem":214,"icon":215},"Memory","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fmemory","4.integrate\u002Fadapters\u002Fself-hosted\u002F03.memory","i-lucide-cpu",{"title":217,"path":218,"stem":219,"children":220,"page":28},"Frameworks","\u002Fintegrate\u002Fframeworks","4.integrate\u002Fframeworks",[221,225,230,235,240,245,250,255,260,265,270,275,280,285,289,294,299],{"title":128,"path":222,"stem":223,"icon":224},"\u002Fintegrate\u002Fframeworks\u002Foverview","4.integrate\u002Fframeworks\u002F00.overview","i-lucide-layout-grid",{"title":226,"path":227,"stem":228,"icon":229},"Nuxt","\u002Fintegrate\u002Fframeworks\u002Fnuxt","4.integrate\u002Fframeworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":231,"path":232,"stem":233,"icon":234},"Next.js","\u002Fintegrate\u002Fframeworks\u002Fnextjs","4.integrate\u002Fframeworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":236,"path":237,"stem":238,"icon":239},"SvelteKit","\u002Fintegrate\u002Fframeworks\u002Fsveltekit","4.integrate\u002Fframeworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":241,"path":242,"stem":243,"icon":244},"Nitro","\u002Fintegrate\u002Fframeworks\u002Fnitro","4.integrate\u002Fframeworks\u002F04.nitro","i-custom-nitro",{"title":246,"path":247,"stem":248,"icon":249},"TanStack Start","\u002Fintegrate\u002Fframeworks\u002Ftanstack-start","4.integrate\u002Fframeworks\u002F05.tanstack-start","i-custom-tanstack",{"title":251,"path":252,"stem":253,"icon":254},"NestJS","\u002Fintegrate\u002Fframeworks\u002Fnestjs","4.integrate\u002Fframeworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":256,"path":257,"stem":258,"icon":259},"Express","\u002Fintegrate\u002Fframeworks\u002Fexpress","4.integrate\u002Fframeworks\u002F07.express","i-simple-icons-express",{"title":261,"path":262,"stem":263,"icon":264},"Hono","\u002Fintegrate\u002Fframeworks\u002Fhono","4.integrate\u002Fframeworks\u002F08.hono","i-simple-icons-hono",{"title":266,"path":267,"stem":268,"icon":269},"Fastify","\u002Fintegrate\u002Fframeworks\u002Ffastify","4.integrate\u002Fframeworks\u002F09.fastify","i-simple-icons-fastify",{"title":271,"path":272,"stem":273,"icon":274},"Elysia","\u002Fintegrate\u002Fframeworks\u002Felysia","4.integrate\u002Fframeworks\u002F10.elysia","i-custom-elysia",{"title":276,"path":277,"stem":278,"icon":279},"React Router","\u002Fintegrate\u002Fframeworks\u002Freact-router","4.integrate\u002Fframeworks\u002F11.react-router","i-custom-reactrouter",{"title":281,"path":282,"stem":283,"icon":284},"Cloudflare Workers","\u002Fintegrate\u002Fframeworks\u002Fcloudflare-workers","4.integrate\u002Fframeworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":286,"path":287,"stem":288,"icon":71},"Standalone","\u002Fintegrate\u002Fframeworks\u002Fstandalone","4.integrate\u002Fframeworks\u002F13.standalone",{"title":290,"path":291,"stem":292,"icon":293},"Astro","\u002Fintegrate\u002Fframeworks\u002Fastro","4.integrate\u002Fframeworks\u002F14.astro","i-simple-icons-astro",{"title":295,"path":296,"stem":297,"icon":298},"oRPC","\u002Fintegrate\u002Fframeworks\u002Forpc","4.integrate\u002Fframeworks\u002F15.orpc","i-lucide-network",{"title":300,"path":301,"stem":302,"icon":303},"AWS Lambda","\u002Fintegrate\u002Fframeworks\u002Faws-lambda","4.integrate\u002Fframeworks\u002F16.aws-lambda","i-custom-lambda",{"title":305,"path":306,"stem":307,"children":308,"page":28},"Use Cases","\u002Fuse-cases","5.use-cases",[309,312,317,346,374,407,427,432],{"title":305,"path":310,"stem":311},"\u002Fuse-cases\u002Foverview","5.use-cases\u002F0.overview",{"title":313,"path":314,"stem":315,"icon":316},"Client Logging","\u002Fuse-cases\u002Fclient-logging","5.use-cases\u002F1.client-logging","i-lucide-monitor",{"title":318,"icon":319,"path":320,"stem":321,"children":322,"page":28},"AI SDK","i-simple-icons-vercel","\u002Fuse-cases\u002Fai-sdk","5.use-cases\u002F2.ai-sdk",[323,326,331,336,341],{"title":128,"path":324,"stem":325,"icon":140},"\u002Fuse-cases\u002Fai-sdk\u002Foverview","5.use-cases\u002F2.ai-sdk\u002F01.overview",{"title":327,"path":328,"stem":329,"icon":330},"Usage","\u002Fuse-cases\u002Fai-sdk\u002Fusage","5.use-cases\u002F2.ai-sdk\u002F02.usage","i-lucide-code",{"title":332,"path":333,"stem":334,"icon":335},"Options","\u002Fuse-cases\u002Fai-sdk\u002Foptions","5.use-cases\u002F2.ai-sdk\u002F03.options","i-lucide-sliders",{"title":337,"path":338,"stem":339,"icon":340},"Metadata","\u002Fuse-cases\u002Fai-sdk\u002Fmetadata","5.use-cases\u002F2.ai-sdk\u002F04.metadata","i-lucide-database",{"title":342,"path":343,"stem":344,"icon":345},"Telemetry","\u002Fuse-cases\u002Fai-sdk\u002Ftelemetry","5.use-cases\u002F2.ai-sdk\u002F05.telemetry","i-lucide-activity",{"title":347,"icon":348,"path":349,"stem":350,"children":351,"page":28},"Better Auth","i-simple-icons-betterauth","\u002Fuse-cases\u002Fbetter-auth","5.use-cases\u002F3.better-auth",[352,355,360,365,369],{"title":128,"path":353,"stem":354,"icon":140},"\u002Fuse-cases\u002Fbetter-auth\u002Foverview","5.use-cases\u002F3.better-auth\u002F01.overview",{"title":356,"path":357,"stem":358,"icon":359},"Identify User","\u002Fuse-cases\u002Fbetter-auth\u002Fidentify-user","5.use-cases\u002F3.better-auth\u002F02.identify-user","i-lucide-user-check",{"title":361,"path":362,"stem":363,"icon":364},"Middleware","\u002Fuse-cases\u002Fbetter-auth\u002Fmiddleware","5.use-cases\u002F3.better-auth\u002F03.middleware","i-lucide-shield",{"title":366,"path":367,"stem":368,"icon":316},"Client Sync","\u002Fuse-cases\u002Fbetter-auth\u002Fclient-sync","5.use-cases\u002F3.better-auth\u002F04.client-sync",{"title":370,"path":371,"stem":372,"icon":373},"Performance","\u002Fuse-cases\u002Fbetter-auth\u002Fperformance","5.use-cases\u002F3.better-auth\u002F05.performance","i-lucide-gauge",{"title":375,"icon":376,"path":377,"stem":378,"children":379,"page":28},"Audit Logs","i-lucide-shield-check","\u002Fuse-cases\u002Faudit","5.use-cases\u002F4.audit",[380,383,388,393,398,402],{"title":128,"path":381,"stem":382,"icon":140},"\u002Fuse-cases\u002Faudit\u002Foverview","5.use-cases\u002F4.audit\u002F01.overview",{"title":384,"path":385,"stem":386,"icon":387},"Schema","\u002Fuse-cases\u002Faudit\u002Fschema","5.use-cases\u002F4.audit\u002F02.schema","i-lucide-file-text",{"title":389,"path":390,"stem":391,"icon":392},"Recording","\u002Fuse-cases\u002Faudit\u002Frecording","5.use-cases\u002F4.audit\u002F03.recording","i-lucide-pen-line",{"title":394,"path":395,"stem":396,"icon":397},"Drains","\u002Fuse-cases\u002Faudit\u002Fpipeline","5.use-cases\u002F4.audit\u002F04.pipeline","i-lucide-link",{"title":399,"path":400,"stem":401,"icon":376},"Compliance","\u002Fuse-cases\u002Faudit\u002Fcompliance","5.use-cases\u002F4.audit\u002F05.compliance",{"title":403,"path":404,"stem":405,"icon":406},"Recipes","\u002Fuse-cases\u002Faudit\u002Frecipes","5.use-cases\u002F4.audit\u002F06.recipes","i-lucide-book-open",{"title":342,"icon":373,"path":408,"stem":409,"children":410,"page":28},"\u002Fuse-cases\u002Ftelemetry","5.use-cases\u002F4.telemetry",[411,414,419,423],{"title":128,"path":412,"stem":413,"icon":140},"\u002Fuse-cases\u002Ftelemetry\u002Foverview","5.use-cases\u002F4.telemetry\u002F01.overview",{"title":415,"path":416,"stem":417,"icon":418},"Setup","\u002Fuse-cases\u002Ftelemetry\u002Fsetup","5.use-cases\u002F4.telemetry\u002F02.setup","i-lucide-wrench",{"title":420,"path":421,"stem":422},"Telemetry Ingest","\u002Fuse-cases\u002Ftelemetry\u002Fingest","5.use-cases\u002F4.telemetry\u002F03.ingest",{"title":424,"path":425,"stem":426,"icon":406},"Reference","\u002Fuse-cases\u002Ftelemetry\u002Freference","5.use-cases\u002F4.telemetry\u002F04.reference",{"title":428,"path":429,"stem":430,"icon":431},"Enrichers","\u002Fuse-cases\u002Fenrichers","5.use-cases\u002F5.enrichers","i-lucide-sparkles",{"title":433,"path":434,"stem":435},"eve","\u002Fuse-cases\u002Feve","5.use-cases\u002F5.eve",{"title":437,"path":438,"stem":439,"children":440,"page":28},"Extend","\u002Fextend","6.extend",[441,445,450,455,459,464,468,472,476,481,486,491],{"title":128,"path":442,"stem":443,"icon":444},"\u002Fextend\u002Foverview","6.extend\u002F0.overview","i-lucide-blocks",{"title":446,"path":447,"stem":448,"icon":449},"Stream","\u002Fextend\u002Fstream","6.extend\u002F1.stream","i-lucide-radio-tower",{"title":451,"path":452,"stem":453,"icon":454},"Custom framework","\u002Fextend\u002Fcustom-framework","6.extend\u002F10.custom-framework","i-lucide-puzzle",{"title":456,"path":457,"stem":458,"icon":449},"Diagnostics channel","\u002Fextend\u002Fdiagnostics-channel","6.extend\u002F11.diagnostics-channel",{"title":460,"path":461,"stem":462,"icon":463},"FS reader","\u002Fextend\u002Ffs-reader","6.extend\u002F2.fs-reader","i-lucide-folder-search",{"title":403,"path":465,"stem":466,"icon":467},"\u002Fextend\u002Fconsumer-recipes","6.extend\u002F3.consumer-recipes","i-lucide-chef-hat",{"title":469,"path":470,"stem":471},"Plugins","\u002Fextend\u002Fplugins","6.extend\u002F4.plugins",{"title":473,"path":474,"stem":475,"icon":431},"Custom enrichers","\u002Fextend\u002Fcustom-enrichers","6.extend\u002F5.custom-enrichers",{"title":477,"path":478,"stem":479,"icon":480},"Tail sampling","\u002Fextend\u002Ftail-sampling","6.extend\u002F6.tail-sampling","i-lucide-filter",{"title":482,"path":483,"stem":484,"icon":485},"Identity headers","\u002Fextend\u002Fidentity-headers","6.extend\u002F7.identity-headers","i-lucide-fingerprint",{"title":487,"path":488,"stem":489,"icon":490},"Custom drains","\u002Fextend\u002Fcustom-drains","6.extend\u002F8.custom-drains","i-lucide-share-2",{"title":492,"path":493,"stem":494},"Drain Pipeline","\u002Fextend\u002Fdrain-pipeline","6.extend\u002F9.drain-pipeline",{"title":424,"path":496,"stem":497,"children":498,"page":28},"\u002Freference","7.reference",[499,503,508,511,516,520,525,529],{"title":128,"path":500,"stem":501,"icon":502},"\u002Freference\u002Foverview","7.reference\u002F0.overview","i-lucide-book-marked",{"title":504,"path":505,"stem":506,"icon":507},"Configuration","\u002Freference\u002Fconfiguration","7.reference\u002F1.configuration","i-lucide-settings",{"title":370,"path":509,"stem":510,"icon":373},"\u002Freference\u002Fperformance","7.reference\u002F2.performance",{"title":512,"path":513,"stem":514,"icon":515},"Vite Plugin","\u002Freference\u002Fvite-plugin","7.reference\u002F3.vite-plugin","i-custom-vite",{"title":517,"path":518,"stem":519,"icon":376},"Best Practices","\u002Freference\u002Fbest-practices","7.reference\u002F4.best-practices",{"title":521,"path":522,"stem":523,"icon":524},"vs Other Loggers","\u002Freference\u002Fvs-other-loggers","7.reference\u002F5.vs-other-loggers","i-lucide-scale",{"title":526,"path":527,"stem":528,"icon":431},"Agent Skills","\u002Freference\u002Fagent-skills","7.reference\u002F6.agent-skills",{"title":530,"path":531,"stem":532},"Log cost","\u002Freference\u002Fcost","7.reference\u002F7.cost",{"id":534,"title":428,"body":535,"description":2677,"extension":2678,"links":2679,"meta":2683,"navigation":2684,"path":429,"seo":2685,"stem":430,"__hash__":2686},"docs\u002F5.use-cases\u002F5.enrichers.md",{"type":536,"value":537,"toc":2668},"minimark",[538,542,559,599,674,679,686,810,821,827,834,844,863,868,1026,1031,1219,1225,1231,1237,1240,1247,1266,1270,1362,1367,1429,1466,1472,1479,1486,1505,1509,1552,1556,1617,1626,1632,1642,1655,1674,1678,1745,1749,1874,1881,1893,1897,1900,2647,2651,2664],[539,540,541],"p",{},"Enrichers add derived context to your wide events after they are emitted, before they reach your drain adapters. Use them to automatically extract useful information from request headers without cluttering your application code.",[539,543,544,545,549,550,553,554,558],{},"All built-in enrichers are exported from ",[546,547,548],"code",{},"evlog\u002Fenrichers",". Each enricher is a factory function that returns an ",[546,551,552],{},"(ctx: EnrichContext) => void"," callback. To write your own, see ",[555,556,557],"a",{"href":474},"Custom Enrichers",".",[560,561,564,567,586],"prompt",{":actions":562,"description":563,"icon":454},"[\"copy\",\"cursor\",\"claude\"]","Add all built-in evlog enrichers",[539,565,566],{},"Add all built-in enrichers to my evlog setup.",[568,569,570,574,577,580,583],"ol",{},[571,572,573],"li",{},"Identify which framework I'm using and follow its evlog integration pattern",[571,575,576],{},"Import createUserAgentEnricher, createGeoEnricher, createRequestSizeEnricher, and createTraceContextEnricher from 'evlog\u002Fenrichers'",[571,578,579],{},"Wire the enrichers into my framework's enrich configuration",[571,581,582],{},"Enrichers add userAgent, geo, requestSize, and traceContext fields to wide events",[571,584,585],{},"All enrichers accept { overwrite?: boolean } - defaults to false to preserve user-set data",[539,587,588,589,594,595],{},"Enricher docs: ",[555,590,591],{"href":591,"rel":592},"https:\u002F\u002Fwww.evlog.dev\u002Fuse-cases\u002Fenrichers",[593],"nofollow","\nFramework setup: ",[555,596,597],{"href":597,"rel":598},"https:\u002F\u002Fwww.evlog.dev\u002Fintegrate\u002Fframeworks\u002Foverview",[593],[600,601,607],"pre",{"className":602,"code":603,"filename":604,"language":605,"meta":606,"style":606},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import {\n  createUserAgentEnricher,\n  createGeoEnricher,\n  createRequestSizeEnricher,\n  createTraceContextEnricher,\n} from 'evlog\u002Fenrichers'\n","server\u002Fplugins\u002Fevlog-enrich.ts","typescript","",[546,608,609,622,632,640,648,656],{"__ignoreMap":606},[610,611,614,618],"span",{"class":612,"line":613},"line",1,[610,615,617],{"class":616},"s7zQu","import",[610,619,621],{"class":620},"sMK4o"," {\n",[610,623,625,629],{"class":612,"line":624},2,[610,626,628],{"class":627},"sTEyZ","  createUserAgentEnricher",[610,630,631],{"class":620},",\n",[610,633,635,638],{"class":612,"line":634},3,[610,636,637],{"class":627},"  createGeoEnricher",[610,639,631],{"class":620},[610,641,643,646],{"class":612,"line":642},4,[610,644,645],{"class":627},"  createRequestSizeEnricher",[610,647,631],{"class":620},[610,649,651,654],{"class":612,"line":650},5,[610,652,653],{"class":627},"  createTraceContextEnricher",[610,655,631],{"class":620},[610,657,659,662,665,668,671],{"class":612,"line":658},6,[610,660,661],{"class":620},"}",[610,663,664],{"class":616}," from",[610,666,667],{"class":620}," '",[610,669,548],{"class":670},"sfazB",[610,672,673],{"class":620},"'\n",[675,676,678],"h2",{"id":677},"all-built-in-enrichers","All built-in enrichers",[539,680,681,682,685],{},"Use ",[546,683,684],{},"createDefaultEnrichers()"," to compose user agent, geo, request size, and trace context in one call:",[600,687,689],{"className":602,"code":688,"filename":604,"language":605,"meta":606,"style":606},"import { createDefaultEnrichers } from 'evlog\u002Fenrichers'\n\nconst enrich = createDefaultEnrichers()\n\nexport default defineNitroPlugin((nitroApp) => {\n  nitroApp.hooks.hook('evlog:enrich', enrich)\n})\n",[546,690,691,712,718,736,740,768,803],{"__ignoreMap":606},[610,692,693,695,698,701,704,706,708,710],{"class":612,"line":613},[610,694,617],{"class":616},[610,696,697],{"class":620}," {",[610,699,700],{"class":627}," createDefaultEnrichers",[610,702,703],{"class":620}," }",[610,705,664],{"class":616},[610,707,667],{"class":620},[610,709,548],{"class":670},[610,711,673],{"class":620},[610,713,714],{"class":612,"line":624},[610,715,717],{"emptyLinePlaceholder":716},true,"\n",[610,719,720,724,727,730,733],{"class":612,"line":634},[610,721,723],{"class":722},"spNyl","const",[610,725,726],{"class":627}," enrich ",[610,728,729],{"class":620},"=",[610,731,700],{"class":732},"s2Zo4",[610,734,735],{"class":627},"()\n",[610,737,738],{"class":612,"line":642},[610,739,717],{"emptyLinePlaceholder":716},[610,741,742,745,748,751,754,756,760,763,766],{"class":612,"line":650},[610,743,744],{"class":616},"export",[610,746,747],{"class":616}," default",[610,749,750],{"class":732}," defineNitroPlugin",[610,752,753],{"class":627},"(",[610,755,753],{"class":620},[610,757,759],{"class":758},"sHdIc","nitroApp",[610,761,762],{"class":620},")",[610,764,765],{"class":722}," =>",[610,767,621],{"class":620},[610,769,770,773,775,778,780,783,786,789,792,794,797,800],{"class":612,"line":658},[610,771,772],{"class":627},"  nitroApp",[610,774,558],{"class":620},[610,776,777],{"class":627},"hooks",[610,779,558],{"class":620},[610,781,782],{"class":732},"hook",[610,784,753],{"class":785},"swJcz",[610,787,788],{"class":620},"'",[610,790,791],{"class":670},"evlog:enrich",[610,793,788],{"class":620},[610,795,796],{"class":620},",",[610,798,799],{"class":627}," enrich",[610,801,802],{"class":785},")\n",[610,804,806,808],{"class":612,"line":805},7,[610,807,661],{"class":620},[610,809,802],{"class":627},[539,811,812,813,816,817,820],{},"Each enricher accepts ",[546,814,815],{},"{ overwrite?: boolean }"," (default ",[546,818,819],{},"false",") so user-set fields are preserved.",[675,822,824],{"id":823},"useragentenricher",[546,825,826],{},"userAgentEnricher()",[539,828,829,830,833],{},"Parse browser, OS, and device type from the ",[546,831,832],{},"User-Agent"," header.",[539,835,836,840,841],{},[837,838,839],"strong",{},"Sets:"," ",[546,842,843],{},"event.userAgent",[600,845,848],{"className":602,"code":846,"filename":847,"language":605,"meta":606,"style":606},"const enrich = createUserAgentEnricher()\n","user-agent-enricher.ts",[546,849,850],{"__ignoreMap":606},[610,851,852,854,856,858,861],{"class":612,"line":613},[610,853,723],{"class":722},[610,855,726],{"class":627},[610,857,729],{"class":620},[610,859,860],{"class":732}," createUserAgentEnricher",[610,862,735],{"class":627},[539,864,865],{},[837,866,867],{},"Output shape:",[600,869,872],{"className":602,"code":870,"filename":871,"language":605,"meta":606,"style":606},"interface UserAgentInfo {\n  raw: string                                      \u002F\u002F Original User-Agent string\n  browser?: { name: string; version?: string }     \u002F\u002F Chrome, Firefox, Safari, Edge\n  os?: { name: string; version?: string }          \u002F\u002F Windows, macOS, iOS, Android, Linux\n  device?: { type: 'mobile' | 'tablet' | 'desktop' | 'bot' | 'unknown' }\n}\n","user-agent-types.ts",[546,873,874,885,900,932,960,1021],{"__ignoreMap":606},[610,875,876,879,883],{"class":612,"line":613},[610,877,878],{"class":722},"interface",[610,880,882],{"class":881},"sBMFI"," UserAgentInfo",[610,884,621],{"class":620},[610,886,887,890,893,896],{"class":612,"line":624},[610,888,889],{"class":785},"  raw",[610,891,892],{"class":620},":",[610,894,895],{"class":881}," string",[610,897,899],{"class":898},"sHwdD","                                      \u002F\u002F Original User-Agent string\n",[610,901,902,905,908,910,913,915,917,920,923,925,927,929],{"class":612,"line":634},[610,903,904],{"class":785},"  browser",[610,906,907],{"class":620},"?:",[610,909,697],{"class":620},[610,911,912],{"class":785}," name",[610,914,892],{"class":620},[610,916,895],{"class":881},[610,918,919],{"class":620},";",[610,921,922],{"class":785}," version",[610,924,907],{"class":620},[610,926,895],{"class":881},[610,928,703],{"class":620},[610,930,931],{"class":898},"     \u002F\u002F Chrome, Firefox, Safari, Edge\n",[610,933,934,937,939,941,943,945,947,949,951,953,955,957],{"class":612,"line":642},[610,935,936],{"class":785},"  os",[610,938,907],{"class":620},[610,940,697],{"class":620},[610,942,912],{"class":785},[610,944,892],{"class":620},[610,946,895],{"class":881},[610,948,919],{"class":620},[610,950,922],{"class":785},[610,952,907],{"class":620},[610,954,895],{"class":881},[610,956,703],{"class":620},[610,958,959],{"class":898},"          \u002F\u002F Windows, macOS, iOS, Android, Linux\n",[610,961,962,965,967,969,972,974,976,979,981,984,986,989,991,993,995,998,1000,1002,1004,1007,1009,1011,1013,1016,1018],{"class":612,"line":650},[610,963,964],{"class":785},"  device",[610,966,907],{"class":620},[610,968,697],{"class":620},[610,970,971],{"class":785}," type",[610,973,892],{"class":620},[610,975,667],{"class":620},[610,977,978],{"class":670},"mobile",[610,980,788],{"class":620},[610,982,983],{"class":620}," |",[610,985,667],{"class":620},[610,987,988],{"class":670},"tablet",[610,990,788],{"class":620},[610,992,983],{"class":620},[610,994,667],{"class":620},[610,996,997],{"class":670},"desktop",[610,999,788],{"class":620},[610,1001,983],{"class":620},[610,1003,667],{"class":620},[610,1005,1006],{"class":670},"bot",[610,1008,788],{"class":620},[610,1010,983],{"class":620},[610,1012,667],{"class":620},[610,1014,1015],{"class":670},"unknown",[610,1017,788],{"class":620},[610,1019,1020],{"class":620}," }\n",[610,1022,1023],{"class":612,"line":658},[610,1024,1025],{"class":620},"}\n",[539,1027,1028],{},[837,1029,1030],{},"Example output:",[600,1032,1037],{"className":1033,"code":1034,"filename":1035,"language":1036,"meta":606,"style":606},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"userAgent\": {\n    \"raw\": \"Mozilla\u002F5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\u002F537.36 Chrome\u002F120.0.0.0\",\n    \"browser\": { \"name\": \"Chrome\", \"version\": \"120.0.0.0\" },\n    \"os\": { \"name\": \"macOS\", \"version\": \"10.15.7\" },\n    \"device\": { \"type\": \"desktop\" }\n  }\n}\n","Example wide event: userAgent","json",[546,1038,1039,1044,1059,1081,1132,1179,1209,1214],{"__ignoreMap":606},[610,1040,1041],{"class":612,"line":613},[610,1042,1043],{"class":620},"{\n",[610,1045,1046,1049,1052,1055,1057],{"class":612,"line":624},[610,1047,1048],{"class":620},"  \"",[610,1050,1051],{"class":722},"userAgent",[610,1053,1054],{"class":620},"\"",[610,1056,892],{"class":620},[610,1058,621],{"class":620},[610,1060,1061,1064,1067,1069,1071,1074,1077,1079],{"class":612,"line":634},[610,1062,1063],{"class":620},"    \"",[610,1065,1066],{"class":881},"raw",[610,1068,1054],{"class":620},[610,1070,892],{"class":620},[610,1072,1073],{"class":620}," \"",[610,1075,1076],{"class":670},"Mozilla\u002F5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\u002F537.36 Chrome\u002F120.0.0.0",[610,1078,1054],{"class":620},[610,1080,631],{"class":620},[610,1082,1083,1085,1088,1090,1092,1094,1096,1100,1102,1104,1106,1109,1111,1113,1115,1118,1120,1122,1124,1127,1129],{"class":612,"line":642},[610,1084,1063],{"class":620},[610,1086,1087],{"class":881},"browser",[610,1089,1054],{"class":620},[610,1091,892],{"class":620},[610,1093,697],{"class":620},[610,1095,1073],{"class":620},[610,1097,1099],{"class":1098},"sbssI","name",[610,1101,1054],{"class":620},[610,1103,892],{"class":620},[610,1105,1073],{"class":620},[610,1107,1108],{"class":670},"Chrome",[610,1110,1054],{"class":620},[610,1112,796],{"class":620},[610,1114,1073],{"class":620},[610,1116,1117],{"class":1098},"version",[610,1119,1054],{"class":620},[610,1121,892],{"class":620},[610,1123,1073],{"class":620},[610,1125,1126],{"class":670},"120.0.0.0",[610,1128,1054],{"class":620},[610,1130,1131],{"class":620}," },\n",[610,1133,1134,1136,1139,1141,1143,1145,1147,1149,1151,1153,1155,1158,1160,1162,1164,1166,1168,1170,1172,1175,1177],{"class":612,"line":650},[610,1135,1063],{"class":620},[610,1137,1138],{"class":881},"os",[610,1140,1054],{"class":620},[610,1142,892],{"class":620},[610,1144,697],{"class":620},[610,1146,1073],{"class":620},[610,1148,1099],{"class":1098},[610,1150,1054],{"class":620},[610,1152,892],{"class":620},[610,1154,1073],{"class":620},[610,1156,1157],{"class":670},"macOS",[610,1159,1054],{"class":620},[610,1161,796],{"class":620},[610,1163,1073],{"class":620},[610,1165,1117],{"class":1098},[610,1167,1054],{"class":620},[610,1169,892],{"class":620},[610,1171,1073],{"class":620},[610,1173,1174],{"class":670},"10.15.7",[610,1176,1054],{"class":620},[610,1178,1131],{"class":620},[610,1180,1181,1183,1186,1188,1190,1192,1194,1197,1199,1201,1203,1205,1207],{"class":612,"line":658},[610,1182,1063],{"class":620},[610,1184,1185],{"class":881},"device",[610,1187,1054],{"class":620},[610,1189,892],{"class":620},[610,1191,697],{"class":620},[610,1193,1073],{"class":620},[610,1195,1196],{"class":1098},"type",[610,1198,1054],{"class":620},[610,1200,892],{"class":620},[610,1202,1073],{"class":620},[610,1204,997],{"class":670},[610,1206,1054],{"class":620},[610,1208,1020],{"class":620},[610,1210,1211],{"class":612,"line":805},[610,1212,1213],{"class":620},"  }\n",[610,1215,1217],{"class":612,"line":1216},8,[610,1218,1025],{"class":620},[539,1220,1221,1224],{},[837,1222,1223],{},"Detected browsers:"," Edge, Chrome, Firefox, Safari (checked in order, Edge before Chrome to avoid false matches).",[539,1226,1227,1230],{},[837,1228,1229],{},"Detected devices:"," Bot (crawlers, spiders), Tablet (iPad), Mobile (iPhone, Android phones), Desktop (fallback).",[675,1232,1234],{"id":1233},"geoenricher",[546,1235,1236],{},"geoEnricher()",[539,1238,1239],{},"Extract geographic data from platform-injected headers.",[539,1241,1242,840,1244],{},[837,1243,839],{},[546,1245,1246],{},"event.geo",[600,1248,1251],{"className":602,"code":1249,"filename":1250,"language":605,"meta":606,"style":606},"const enrich = createGeoEnricher()\n","geo-enricher.ts",[546,1252,1253],{"__ignoreMap":606},[610,1254,1255,1257,1259,1261,1264],{"class":612,"line":613},[610,1256,723],{"class":722},[610,1258,726],{"class":627},[610,1260,729],{"class":620},[610,1262,1263],{"class":732}," createGeoEnricher",[610,1265,735],{"class":627},[539,1267,1268],{},[837,1269,867],{},[600,1271,1274],{"className":602,"code":1272,"filename":1273,"language":605,"meta":606,"style":606},"interface GeoInfo {\n  country?: string      \u002F\u002F ISO country code (e.g., \"US\", \"FR\")\n  region?: string       \u002F\u002F Region\u002Fstate name\n  regionCode?: string   \u002F\u002F Region code\n  city?: string         \u002F\u002F City name\n  latitude?: number     \u002F\u002F Decimal latitude\n  longitude?: number    \u002F\u002F Decimal longitude\n}\n","geo-types.ts",[546,1275,1276,1285,1297,1309,1321,1333,1346,1358],{"__ignoreMap":606},[610,1277,1278,1280,1283],{"class":612,"line":613},[610,1279,878],{"class":722},[610,1281,1282],{"class":881}," GeoInfo",[610,1284,621],{"class":620},[610,1286,1287,1290,1292,1294],{"class":612,"line":624},[610,1288,1289],{"class":785},"  country",[610,1291,907],{"class":620},[610,1293,895],{"class":881},[610,1295,1296],{"class":898},"      \u002F\u002F ISO country code (e.g., \"US\", \"FR\")\n",[610,1298,1299,1302,1304,1306],{"class":612,"line":634},[610,1300,1301],{"class":785},"  region",[610,1303,907],{"class":620},[610,1305,895],{"class":881},[610,1307,1308],{"class":898},"       \u002F\u002F Region\u002Fstate name\n",[610,1310,1311,1314,1316,1318],{"class":612,"line":642},[610,1312,1313],{"class":785},"  regionCode",[610,1315,907],{"class":620},[610,1317,895],{"class":881},[610,1319,1320],{"class":898},"   \u002F\u002F Region code\n",[610,1322,1323,1326,1328,1330],{"class":612,"line":650},[610,1324,1325],{"class":785},"  city",[610,1327,907],{"class":620},[610,1329,895],{"class":881},[610,1331,1332],{"class":898},"         \u002F\u002F City name\n",[610,1334,1335,1338,1340,1343],{"class":612,"line":658},[610,1336,1337],{"class":785},"  latitude",[610,1339,907],{"class":620},[610,1341,1342],{"class":881}," number",[610,1344,1345],{"class":898},"     \u002F\u002F Decimal latitude\n",[610,1347,1348,1351,1353,1355],{"class":612,"line":805},[610,1349,1350],{"class":785},"  longitude",[610,1352,907],{"class":620},[610,1354,1342],{"class":881},[610,1356,1357],{"class":898},"    \u002F\u002F Decimal longitude\n",[610,1359,1360],{"class":612,"line":1216},[610,1361,1025],{"class":620},[539,1363,1364],{},[837,1365,1366],{},"Supported platforms:",[1368,1369,1370,1386],"table",{},[1371,1372,1373],"thead",{},[1374,1375,1376,1380,1383],"tr",{},[1377,1378,1379],"th",{},"Platform",[1377,1381,1382],{},"Headers",[1377,1384,1385],{},"Coverage",[1387,1388,1389,1416],"tbody",{},[1374,1390,1391,1395,1413],{},[1392,1393,1394],"td",{},"Vercel",[1392,1396,1397,1400,1401,1400,1404,1400,1407,1400,1410],{},[546,1398,1399],{},"x-vercel-ip-country",", ",[546,1402,1403],{},"x-vercel-ip-country-region",[546,1405,1406],{},"x-vercel-ip-city",[546,1408,1409],{},"x-vercel-ip-latitude",[546,1411,1412],{},"x-vercel-ip-longitude",[1392,1414,1415],{},"Full",[1374,1417,1418,1421,1426],{},[1392,1419,1420],{},"Cloudflare",[1392,1422,1423],{},[546,1424,1425],{},"cf-ipcountry",[1392,1427,1428],{},"Country only",[1430,1431,1434,1437,1438,1440,1441,1400,1444,1400,1447,1450,1451,1454,1455,1458,1459,1461,1462,1465],"callout",{"color":1432,"icon":1433},"info","i-lucide-info",[837,1435,1436],{},"Cloudflare note:"," Only ",[546,1439,1425],{}," is a standard Cloudflare HTTP header. Other geo fields (",[546,1442,1443],{},"city",[546,1445,1446],{},"region",[546,1448,1449],{},"latitude",", etc.) are properties of ",[546,1452,1453],{},"request.cf",", which is not exposed as headers. For full Cloudflare geo data, write a ",[555,1456,1457],{"href":474},"custom enricher"," that reads ",[546,1460,1453],{},", or use a Workers middleware to copy ",[546,1463,1464],{},"cf"," properties into custom headers.",[675,1467,1469],{"id":1468},"requestsizeenricher",[546,1470,1471],{},"requestSizeEnricher()",[539,1473,1474,1475,1478],{},"Capture request and response payload sizes from ",[546,1476,1477],{},"Content-Length"," headers.",[539,1480,1481,840,1483],{},[837,1482,839],{},[546,1484,1485],{},"event.requestSize",[600,1487,1490],{"className":602,"code":1488,"filename":1489,"language":605,"meta":606,"style":606},"const enrich = createRequestSizeEnricher()\n","request-size-enricher.ts",[546,1491,1492],{"__ignoreMap":606},[610,1493,1494,1496,1498,1500,1503],{"class":612,"line":613},[610,1495,723],{"class":722},[610,1497,726],{"class":627},[610,1499,729],{"class":620},[610,1501,1502],{"class":732}," createRequestSizeEnricher",[610,1504,735],{"class":627},[539,1506,1507],{},[837,1508,867],{},[600,1510,1513],{"className":602,"code":1511,"filename":1512,"language":605,"meta":606,"style":606},"interface RequestSizeInfo {\n  requestBytes?: number    \u002F\u002F Request Content-Length\n  responseBytes?: number   \u002F\u002F Response Content-Length\n}\n","request-size-types.ts",[546,1514,1515,1524,1536,1548],{"__ignoreMap":606},[610,1516,1517,1519,1522],{"class":612,"line":613},[610,1518,878],{"class":722},[610,1520,1521],{"class":881}," RequestSizeInfo",[610,1523,621],{"class":620},[610,1525,1526,1529,1531,1533],{"class":612,"line":624},[610,1527,1528],{"class":785},"  requestBytes",[610,1530,907],{"class":620},[610,1532,1342],{"class":881},[610,1534,1535],{"class":898},"    \u002F\u002F Request Content-Length\n",[610,1537,1538,1541,1543,1545],{"class":612,"line":634},[610,1539,1540],{"class":785},"  responseBytes",[610,1542,907],{"class":620},[610,1544,1342],{"class":881},[610,1546,1547],{"class":898},"   \u002F\u002F Response Content-Length\n",[610,1549,1550],{"class":612,"line":642},[610,1551,1025],{"class":620},[539,1553,1554],{},[837,1555,1030],{},[600,1557,1560],{"className":1033,"code":1558,"filename":1559,"language":1036,"meta":606,"style":606},"{\n  \"requestSize\": {\n    \"requestBytes\": 1234,\n    \"responseBytes\": 5678\n  }\n}\n","Example wide event: requestSize",[546,1561,1562,1566,1579,1595,1609,1613],{"__ignoreMap":606},[610,1563,1564],{"class":612,"line":613},[610,1565,1043],{"class":620},[610,1567,1568,1570,1573,1575,1577],{"class":612,"line":624},[610,1569,1048],{"class":620},[610,1571,1572],{"class":722},"requestSize",[610,1574,1054],{"class":620},[610,1576,892],{"class":620},[610,1578,621],{"class":620},[610,1580,1581,1583,1586,1588,1590,1593],{"class":612,"line":634},[610,1582,1063],{"class":620},[610,1584,1585],{"class":881},"requestBytes",[610,1587,1054],{"class":620},[610,1589,892],{"class":620},[610,1591,1592],{"class":1098}," 1234",[610,1594,631],{"class":620},[610,1596,1597,1599,1602,1604,1606],{"class":612,"line":642},[610,1598,1063],{"class":620},[610,1600,1601],{"class":881},"responseBytes",[610,1603,1054],{"class":620},[610,1605,892],{"class":620},[610,1607,1608],{"class":1098}," 5678\n",[610,1610,1611],{"class":612,"line":650},[610,1612,1213],{"class":620},[610,1614,1615],{"class":612,"line":658},[610,1616,1025],{"class":620},[1430,1618,1619,1620,1622,1623,558],{"color":1432,"icon":1433},"This enricher reads the ",[546,1621,1477],{}," header from both the request and response. If the header is missing (e.g., for chunked transfer encoding), the corresponding field will be ",[546,1624,1625],{},"undefined",[675,1627,1629],{"id":1628},"tracecontextenricher",[546,1630,1631],{},"traceContextEnricher()",[539,1633,1634,1635,1638,1639,1478],{},"Extract W3C trace context from the ",[546,1636,1637],{},"traceparent"," and ",[546,1640,1641],{},"tracestate",[539,1643,1644,840,1646,1400,1649,1400,1652],{},[837,1645,839],{},[546,1647,1648],{},"event.traceContext",[546,1650,1651],{},"event.traceId",[546,1653,1654],{},"event.spanId",[600,1656,1659],{"className":602,"code":1657,"filename":1658,"language":605,"meta":606,"style":606},"const enrich = createTraceContextEnricher()\n","trace-context-enricher.ts",[546,1660,1661],{"__ignoreMap":606},[610,1662,1663,1665,1667,1669,1672],{"class":612,"line":613},[610,1664,723],{"class":722},[610,1666,726],{"class":627},[610,1668,729],{"class":620},[610,1670,1671],{"class":732}," createTraceContextEnricher",[610,1673,735],{"class":627},[539,1675,1676],{},[837,1677,867],{},[600,1679,1682],{"className":602,"code":1680,"filename":1681,"language":605,"meta":606,"style":606},"interface TraceContextInfo {\n  traceparent?: string   \u002F\u002F Full traceparent header value\n  tracestate?: string    \u002F\u002F Full tracestate header value\n  traceId?: string       \u002F\u002F 32-char hex trace ID (parsed from traceparent)\n  spanId?: string        \u002F\u002F 16-char hex span ID (parsed from traceparent)\n}\n","trace-context-types.ts",[546,1683,1684,1693,1705,1717,1729,1741],{"__ignoreMap":606},[610,1685,1686,1688,1691],{"class":612,"line":613},[610,1687,878],{"class":722},[610,1689,1690],{"class":881}," TraceContextInfo",[610,1692,621],{"class":620},[610,1694,1695,1698,1700,1702],{"class":612,"line":624},[610,1696,1697],{"class":785},"  traceparent",[610,1699,907],{"class":620},[610,1701,895],{"class":881},[610,1703,1704],{"class":898},"   \u002F\u002F Full traceparent header value\n",[610,1706,1707,1710,1712,1714],{"class":612,"line":634},[610,1708,1709],{"class":785},"  tracestate",[610,1711,907],{"class":620},[610,1713,895],{"class":881},[610,1715,1716],{"class":898},"    \u002F\u002F Full tracestate header value\n",[610,1718,1719,1722,1724,1726],{"class":612,"line":642},[610,1720,1721],{"class":785},"  traceId",[610,1723,907],{"class":620},[610,1725,895],{"class":881},[610,1727,1728],{"class":898},"       \u002F\u002F 32-char hex trace ID (parsed from traceparent)\n",[610,1730,1731,1734,1736,1738],{"class":612,"line":650},[610,1732,1733],{"class":785},"  spanId",[610,1735,907],{"class":620},[610,1737,895],{"class":881},[610,1739,1740],{"class":898},"        \u002F\u002F 16-char hex span ID (parsed from traceparent)\n",[610,1742,1743],{"class":612,"line":658},[610,1744,1025],{"class":620},[539,1746,1747],{},[837,1748,1030],{},[600,1750,1753],{"className":1033,"code":1751,"filename":1752,"language":1036,"meta":606,"style":606},"{\n  \"traceContext\": {\n    \"traceparent\": \"00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01\",\n    \"traceId\": \"4bf92f3577b34da6a3ce929d0e0e4736\",\n    \"spanId\": \"00f067aa0ba902b7\"\n  },\n  \"traceId\": \"4bf92f3577b34da6a3ce929d0e0e4736\",\n  \"spanId\": \"00f067aa0ba902b7\"\n}\n","Example wide event: traceContext",[546,1754,1755,1759,1772,1791,1811,1830,1835,1853,1869],{"__ignoreMap":606},[610,1756,1757],{"class":612,"line":613},[610,1758,1043],{"class":620},[610,1760,1761,1763,1766,1768,1770],{"class":612,"line":624},[610,1762,1048],{"class":620},[610,1764,1765],{"class":722},"traceContext",[610,1767,1054],{"class":620},[610,1769,892],{"class":620},[610,1771,621],{"class":620},[610,1773,1774,1776,1778,1780,1782,1784,1787,1789],{"class":612,"line":634},[610,1775,1063],{"class":620},[610,1777,1637],{"class":881},[610,1779,1054],{"class":620},[610,1781,892],{"class":620},[610,1783,1073],{"class":620},[610,1785,1786],{"class":670},"00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01",[610,1788,1054],{"class":620},[610,1790,631],{"class":620},[610,1792,1793,1795,1798,1800,1802,1804,1807,1809],{"class":612,"line":642},[610,1794,1063],{"class":620},[610,1796,1797],{"class":881},"traceId",[610,1799,1054],{"class":620},[610,1801,892],{"class":620},[610,1803,1073],{"class":620},[610,1805,1806],{"class":670},"4bf92f3577b34da6a3ce929d0e0e4736",[610,1808,1054],{"class":620},[610,1810,631],{"class":620},[610,1812,1813,1815,1818,1820,1822,1824,1827],{"class":612,"line":650},[610,1814,1063],{"class":620},[610,1816,1817],{"class":881},"spanId",[610,1819,1054],{"class":620},[610,1821,892],{"class":620},[610,1823,1073],{"class":620},[610,1825,1826],{"class":670},"00f067aa0ba902b7",[610,1828,1829],{"class":620},"\"\n",[610,1831,1832],{"class":612,"line":658},[610,1833,1834],{"class":620},"  },\n",[610,1836,1837,1839,1841,1843,1845,1847,1849,1851],{"class":612,"line":805},[610,1838,1048],{"class":620},[610,1840,1797],{"class":722},[610,1842,1054],{"class":620},[610,1844,892],{"class":620},[610,1846,1073],{"class":620},[610,1848,1806],{"class":670},[610,1850,1054],{"class":620},[610,1852,631],{"class":620},[610,1854,1855,1857,1859,1861,1863,1865,1867],{"class":612,"line":1216},[610,1856,1048],{"class":620},[610,1858,1817],{"class":722},[610,1860,1054],{"class":620},[610,1862,892],{"class":620},[610,1864,1073],{"class":620},[610,1866,1826],{"class":670},[610,1868,1829],{"class":620},[610,1870,1872],{"class":612,"line":1871},9,[610,1873,1025],{"class":620},[539,1875,1876,1638,1878,1880],{},[546,1877,1797],{},[546,1879,1817],{}," are also set at the top level of the event for easy querying and correlation.",[1430,1882,1883,1884,1889,1890,558],{"color":1432,"icon":1433},"The traceparent format follows the ",[555,1885,1888],{"href":1886,"rel":1887},"https:\u002F\u002Fwww.w3.org\u002FTR\u002Ftrace-context\u002F",[593],"W3C Trace Context"," specification: ",[546,1891,1892],{},"{version}-{traceId}-{spanId}-{flags}",[675,1894,1896],{"id":1895},"wire-all-four-at-once","Wire all four at once",[539,1898,1899],{},"Use all built-in enrichers together. The list of enrichers is identical across frameworks. Only the wiring changes.",[1901,1902,1903,2127,2361,2509],"code-group",{},[600,1904,1907],{"className":602,"code":1905,"filename":1906,"language":605,"meta":606,"style":606},"\u002F\u002F server\u002Fplugins\u002Fevlog-enrich.ts\nimport {\n  createUserAgentEnricher,\n  createGeoEnricher,\n  createRequestSizeEnricher,\n  createTraceContextEnricher,\n} from 'evlog\u002Fenrichers'\n\nexport default defineNitroPlugin((nitroApp) => {\n  const enrichers = [\n    createUserAgentEnricher(),\n    createGeoEnricher(),\n    createRequestSizeEnricher(),\n    createTraceContextEnricher(),\n  ]\n\n  nitroApp.hooks.hook('evlog:enrich', (ctx) => {\n    for (const enricher of enrichers) enricher(ctx)\n  })\n})\n","Nuxt \u002F Nitro",[546,1908,1909,1914,1920,1926,1932,1938,1944,1956,1960,1980,1995,2006,2016,2026,2036,2042,2047,2082,2112,2120],{"__ignoreMap":606},[610,1910,1911],{"class":612,"line":613},[610,1912,1913],{"class":898},"\u002F\u002F server\u002Fplugins\u002Fevlog-enrich.ts\n",[610,1915,1916,1918],{"class":612,"line":624},[610,1917,617],{"class":616},[610,1919,621],{"class":620},[610,1921,1922,1924],{"class":612,"line":634},[610,1923,628],{"class":627},[610,1925,631],{"class":620},[610,1927,1928,1930],{"class":612,"line":642},[610,1929,637],{"class":627},[610,1931,631],{"class":620},[610,1933,1934,1936],{"class":612,"line":650},[610,1935,645],{"class":627},[610,1937,631],{"class":620},[610,1939,1940,1942],{"class":612,"line":658},[610,1941,653],{"class":627},[610,1943,631],{"class":620},[610,1945,1946,1948,1950,1952,1954],{"class":612,"line":805},[610,1947,661],{"class":620},[610,1949,664],{"class":616},[610,1951,667],{"class":620},[610,1953,548],{"class":670},[610,1955,673],{"class":620},[610,1957,1958],{"class":612,"line":1216},[610,1959,717],{"emptyLinePlaceholder":716},[610,1961,1962,1964,1966,1968,1970,1972,1974,1976,1978],{"class":612,"line":1871},[610,1963,744],{"class":616},[610,1965,747],{"class":616},[610,1967,750],{"class":732},[610,1969,753],{"class":627},[610,1971,753],{"class":620},[610,1973,759],{"class":758},[610,1975,762],{"class":620},[610,1977,765],{"class":722},[610,1979,621],{"class":620},[610,1981,1983,1986,1989,1992],{"class":612,"line":1982},10,[610,1984,1985],{"class":722},"  const",[610,1987,1988],{"class":627}," enrichers",[610,1990,1991],{"class":620}," =",[610,1993,1994],{"class":785}," [\n",[610,1996,1998,2001,2004],{"class":612,"line":1997},11,[610,1999,2000],{"class":732},"    createUserAgentEnricher",[610,2002,2003],{"class":785},"()",[610,2005,631],{"class":620},[610,2007,2009,2012,2014],{"class":612,"line":2008},12,[610,2010,2011],{"class":732},"    createGeoEnricher",[610,2013,2003],{"class":785},[610,2015,631],{"class":620},[610,2017,2019,2022,2024],{"class":612,"line":2018},13,[610,2020,2021],{"class":732},"    createRequestSizeEnricher",[610,2023,2003],{"class":785},[610,2025,631],{"class":620},[610,2027,2029,2032,2034],{"class":612,"line":2028},14,[610,2030,2031],{"class":732},"    createTraceContextEnricher",[610,2033,2003],{"class":785},[610,2035,631],{"class":620},[610,2037,2039],{"class":612,"line":2038},15,[610,2040,2041],{"class":785},"  ]\n",[610,2043,2045],{"class":612,"line":2044},16,[610,2046,717],{"emptyLinePlaceholder":716},[610,2048,2050,2052,2054,2056,2058,2060,2062,2064,2066,2068,2070,2073,2076,2078,2080],{"class":612,"line":2049},17,[610,2051,772],{"class":627},[610,2053,558],{"class":620},[610,2055,777],{"class":627},[610,2057,558],{"class":620},[610,2059,782],{"class":732},[610,2061,753],{"class":785},[610,2063,788],{"class":620},[610,2065,791],{"class":670},[610,2067,788],{"class":620},[610,2069,796],{"class":620},[610,2071,2072],{"class":620}," (",[610,2074,2075],{"class":758},"ctx",[610,2077,762],{"class":620},[610,2079,765],{"class":722},[610,2081,621],{"class":620},[610,2083,2085,2088,2090,2092,2095,2098,2100,2103,2106,2108,2110],{"class":612,"line":2084},18,[610,2086,2087],{"class":616},"    for",[610,2089,2072],{"class":785},[610,2091,723],{"class":722},[610,2093,2094],{"class":627}," enricher",[610,2096,2097],{"class":620}," of",[610,2099,1988],{"class":627},[610,2101,2102],{"class":785},") ",[610,2104,2105],{"class":732},"enricher",[610,2107,753],{"class":785},[610,2109,2075],{"class":627},[610,2111,802],{"class":785},[610,2113,2115,2118],{"class":612,"line":2114},19,[610,2116,2117],{"class":620},"  }",[610,2119,802],{"class":785},[610,2121,2123,2125],{"class":612,"line":2122},20,[610,2124,661],{"class":620},[610,2126,802],{"class":627},[600,2128,2130],{"className":602,"code":2129,"filename":231,"language":605,"meta":606,"style":606},"\u002F\u002F lib\u002Fevlog.ts\nimport { createEvlog } from 'evlog\u002Fnext'\nimport {\n  createUserAgentEnricher,\n  createGeoEnricher,\n  createRequestSizeEnricher,\n  createTraceContextEnricher,\n} from 'evlog\u002Fenrichers'\n\nconst enrichers = [\n  createUserAgentEnricher(),\n  createGeoEnricher(),\n  createRequestSizeEnricher(),\n  createTraceContextEnricher(),\n]\n\nexport const { withEvlog, useLogger, log, createError } = createEvlog({\n  service: 'my-app',\n  enrich: (ctx) => {\n    for (const enricher of enrichers) enricher(ctx)\n  },\n})\n",[546,2131,2132,2137,2157,2163,2169,2175,2181,2187,2199,2203,2214,2222,2230,2238,2246,2251,2255,2292,2308,2325,2349,2354],{"__ignoreMap":606},[610,2133,2134],{"class":612,"line":613},[610,2135,2136],{"class":898},"\u002F\u002F lib\u002Fevlog.ts\n",[610,2138,2139,2141,2143,2146,2148,2150,2152,2155],{"class":612,"line":624},[610,2140,617],{"class":616},[610,2142,697],{"class":620},[610,2144,2145],{"class":627}," createEvlog",[610,2147,703],{"class":620},[610,2149,664],{"class":616},[610,2151,667],{"class":620},[610,2153,2154],{"class":670},"evlog\u002Fnext",[610,2156,673],{"class":620},[610,2158,2159,2161],{"class":612,"line":634},[610,2160,617],{"class":616},[610,2162,621],{"class":620},[610,2164,2165,2167],{"class":612,"line":642},[610,2166,628],{"class":627},[610,2168,631],{"class":620},[610,2170,2171,2173],{"class":612,"line":650},[610,2172,637],{"class":627},[610,2174,631],{"class":620},[610,2176,2177,2179],{"class":612,"line":658},[610,2178,645],{"class":627},[610,2180,631],{"class":620},[610,2182,2183,2185],{"class":612,"line":805},[610,2184,653],{"class":627},[610,2186,631],{"class":620},[610,2188,2189,2191,2193,2195,2197],{"class":612,"line":1216},[610,2190,661],{"class":620},[610,2192,664],{"class":616},[610,2194,667],{"class":620},[610,2196,548],{"class":670},[610,2198,673],{"class":620},[610,2200,2201],{"class":612,"line":1871},[610,2202,717],{"emptyLinePlaceholder":716},[610,2204,2205,2207,2210,2212],{"class":612,"line":1982},[610,2206,723],{"class":722},[610,2208,2209],{"class":627}," enrichers ",[610,2211,729],{"class":620},[610,2213,1994],{"class":627},[610,2215,2216,2218,2220],{"class":612,"line":1997},[610,2217,628],{"class":732},[610,2219,2003],{"class":627},[610,2221,631],{"class":620},[610,2223,2224,2226,2228],{"class":612,"line":2008},[610,2225,637],{"class":732},[610,2227,2003],{"class":627},[610,2229,631],{"class":620},[610,2231,2232,2234,2236],{"class":612,"line":2018},[610,2233,645],{"class":732},[610,2235,2003],{"class":627},[610,2237,631],{"class":620},[610,2239,2240,2242,2244],{"class":612,"line":2028},[610,2241,653],{"class":732},[610,2243,2003],{"class":627},[610,2245,631],{"class":620},[610,2247,2248],{"class":612,"line":2038},[610,2249,2250],{"class":627},"]\n",[610,2252,2253],{"class":612,"line":2044},[610,2254,717],{"emptyLinePlaceholder":716},[610,2256,2257,2259,2262,2264,2267,2269,2272,2274,2277,2279,2282,2284,2286,2288,2290],{"class":612,"line":2049},[610,2258,744],{"class":616},[610,2260,2261],{"class":722}," const",[610,2263,697],{"class":620},[610,2265,2266],{"class":627}," withEvlog",[610,2268,796],{"class":620},[610,2270,2271],{"class":627}," useLogger",[610,2273,796],{"class":620},[610,2275,2276],{"class":627}," log",[610,2278,796],{"class":620},[610,2280,2281],{"class":627}," createError ",[610,2283,661],{"class":620},[610,2285,1991],{"class":620},[610,2287,2145],{"class":732},[610,2289,753],{"class":627},[610,2291,1043],{"class":620},[610,2293,2294,2297,2299,2301,2304,2306],{"class":612,"line":2084},[610,2295,2296],{"class":785},"  service",[610,2298,892],{"class":620},[610,2300,667],{"class":620},[610,2302,2303],{"class":670},"my-app",[610,2305,788],{"class":620},[610,2307,631],{"class":620},[610,2309,2310,2313,2315,2317,2319,2321,2323],{"class":612,"line":2114},[610,2311,2312],{"class":732},"  enrich",[610,2314,892],{"class":620},[610,2316,2072],{"class":620},[610,2318,2075],{"class":758},[610,2320,762],{"class":620},[610,2322,765],{"class":722},[610,2324,621],{"class":620},[610,2326,2327,2329,2331,2333,2335,2337,2339,2341,2343,2345,2347],{"class":612,"line":2122},[610,2328,2087],{"class":616},[610,2330,2072],{"class":785},[610,2332,723],{"class":722},[610,2334,2094],{"class":627},[610,2336,2097],{"class":620},[610,2338,1988],{"class":627},[610,2340,2102],{"class":785},[610,2342,2105],{"class":732},[610,2344,753],{"class":785},[610,2346,2075],{"class":627},[610,2348,802],{"class":785},[610,2350,2352],{"class":612,"line":2351},21,[610,2353,1834],{"class":620},[610,2355,2357,2359],{"class":612,"line":2356},22,[610,2358,661],{"class":620},[610,2360,802],{"class":627},[600,2362,2365],{"className":602,"code":2363,"filename":2364,"language":605,"meta":606,"style":606},"import {\n  createUserAgentEnricher,\n  createGeoEnricher,\n  createRequestSizeEnricher,\n  createTraceContextEnricher,\n} from 'evlog\u002Fenrichers'\n\nconst enrichers = [\n  createUserAgentEnricher(),\n  createGeoEnricher(),\n  createRequestSizeEnricher(),\n  createTraceContextEnricher(),\n]\n\napp.use(evlog({ enrichers })) \u002F\u002F Hono \u002F Express \u002F Elysia\n\u002F\u002F await app.register(evlog, { enrichers }) \u002F\u002F Fastify\n\u002F\u002F EvlogModule.forRoot({ enrichers }) \u002F\u002F NestJS\n","Hono \u002F Express \u002F Fastify \u002F Elysia \u002F NestJS",[546,2366,2367,2373,2379,2385,2391,2397,2409,2413,2423,2431,2439,2447,2455,2459,2463,2493,2501],{"__ignoreMap":606},[610,2368,2369,2371],{"class":612,"line":613},[610,2370,617],{"class":616},[610,2372,621],{"class":620},[610,2374,2375,2377],{"class":612,"line":624},[610,2376,628],{"class":627},[610,2378,631],{"class":620},[610,2380,2381,2383],{"class":612,"line":634},[610,2382,637],{"class":627},[610,2384,631],{"class":620},[610,2386,2387,2389],{"class":612,"line":642},[610,2388,645],{"class":627},[610,2390,631],{"class":620},[610,2392,2393,2395],{"class":612,"line":650},[610,2394,653],{"class":627},[610,2396,631],{"class":620},[610,2398,2399,2401,2403,2405,2407],{"class":612,"line":658},[610,2400,661],{"class":620},[610,2402,664],{"class":616},[610,2404,667],{"class":620},[610,2406,548],{"class":670},[610,2408,673],{"class":620},[610,2410,2411],{"class":612,"line":805},[610,2412,717],{"emptyLinePlaceholder":716},[610,2414,2415,2417,2419,2421],{"class":612,"line":1216},[610,2416,723],{"class":722},[610,2418,2209],{"class":627},[610,2420,729],{"class":620},[610,2422,1994],{"class":627},[610,2424,2425,2427,2429],{"class":612,"line":1871},[610,2426,628],{"class":732},[610,2428,2003],{"class":627},[610,2430,631],{"class":620},[610,2432,2433,2435,2437],{"class":612,"line":1982},[610,2434,637],{"class":732},[610,2436,2003],{"class":627},[610,2438,631],{"class":620},[610,2440,2441,2443,2445],{"class":612,"line":1997},[610,2442,645],{"class":732},[610,2444,2003],{"class":627},[610,2446,631],{"class":620},[610,2448,2449,2451,2453],{"class":612,"line":2008},[610,2450,653],{"class":732},[610,2452,2003],{"class":627},[610,2454,631],{"class":620},[610,2456,2457],{"class":612,"line":2018},[610,2458,2250],{"class":627},[610,2460,2461],{"class":612,"line":2028},[610,2462,717],{"emptyLinePlaceholder":716},[610,2464,2465,2468,2470,2473,2475,2478,2480,2483,2485,2487,2490],{"class":612,"line":2038},[610,2466,2467],{"class":627},"app",[610,2469,558],{"class":620},[610,2471,2472],{"class":732},"use",[610,2474,753],{"class":627},[610,2476,2477],{"class":732},"evlog",[610,2479,753],{"class":627},[610,2481,2482],{"class":620},"{",[610,2484,2209],{"class":627},[610,2486,661],{"class":620},[610,2488,2489],{"class":627},")) ",[610,2491,2492],{"class":898},"\u002F\u002F Hono \u002F Express \u002F Elysia\n",[610,2494,2495,2498],{"class":612,"line":2044},[610,2496,2497],{"class":898},"\u002F\u002F await app.register(evlog, { enrichers })",[610,2499,2500],{"class":898}," \u002F\u002F Fastify\n",[610,2502,2503,2506],{"class":612,"line":2049},[610,2504,2505],{"class":898},"\u002F\u002F EvlogModule.forRoot({ enrichers })",[610,2507,2508],{"class":898}," \u002F\u002F NestJS\n",[600,2510,2512],{"className":602,"code":2511,"filename":286,"language":605,"meta":606,"style":606},"\u002F\u002F index.ts\nimport { initLogger } from 'evlog'\nimport {\n  createUserAgentEnricher,\n  createGeoEnricher,\n  createRequestSizeEnricher,\n  createTraceContextEnricher,\n} from 'evlog\u002Fenrichers'\n\ninitLogger({\n  enrichers: [\n    createUserAgentEnricher(),\n    createGeoEnricher(),\n    createRequestSizeEnricher(),\n    createTraceContextEnricher(),\n  ],\n})\n",[546,2513,2514,2519,2538,2544,2550,2556,2562,2568,2580,2584,2593,2602,2610,2618,2626,2634,2641],{"__ignoreMap":606},[610,2515,2516],{"class":612,"line":613},[610,2517,2518],{"class":898},"\u002F\u002F index.ts\n",[610,2520,2521,2523,2525,2528,2530,2532,2534,2536],{"class":612,"line":624},[610,2522,617],{"class":616},[610,2524,697],{"class":620},[610,2526,2527],{"class":627}," initLogger",[610,2529,703],{"class":620},[610,2531,664],{"class":616},[610,2533,667],{"class":620},[610,2535,2477],{"class":670},[610,2537,673],{"class":620},[610,2539,2540,2542],{"class":612,"line":634},[610,2541,617],{"class":616},[610,2543,621],{"class":620},[610,2545,2546,2548],{"class":612,"line":642},[610,2547,628],{"class":627},[610,2549,631],{"class":620},[610,2551,2552,2554],{"class":612,"line":650},[610,2553,637],{"class":627},[610,2555,631],{"class":620},[610,2557,2558,2560],{"class":612,"line":658},[610,2559,645],{"class":627},[610,2561,631],{"class":620},[610,2563,2564,2566],{"class":612,"line":805},[610,2565,653],{"class":627},[610,2567,631],{"class":620},[610,2569,2570,2572,2574,2576,2578],{"class":612,"line":1216},[610,2571,661],{"class":620},[610,2573,664],{"class":616},[610,2575,667],{"class":620},[610,2577,548],{"class":670},[610,2579,673],{"class":620},[610,2581,2582],{"class":612,"line":1871},[610,2583,717],{"emptyLinePlaceholder":716},[610,2585,2586,2589,2591],{"class":612,"line":1982},[610,2587,2588],{"class":732},"initLogger",[610,2590,753],{"class":627},[610,2592,1043],{"class":620},[610,2594,2595,2598,2600],{"class":612,"line":1997},[610,2596,2597],{"class":785},"  enrichers",[610,2599,892],{"class":620},[610,2601,1994],{"class":627},[610,2603,2604,2606,2608],{"class":612,"line":2008},[610,2605,2000],{"class":732},[610,2607,2003],{"class":627},[610,2609,631],{"class":620},[610,2611,2612,2614,2616],{"class":612,"line":2018},[610,2613,2011],{"class":732},[610,2615,2003],{"class":627},[610,2617,631],{"class":620},[610,2619,2620,2622,2624],{"class":612,"line":2028},[610,2621,2021],{"class":732},[610,2623,2003],{"class":627},[610,2625,631],{"class":620},[610,2627,2628,2630,2632],{"class":612,"line":2038},[610,2629,2031],{"class":732},[610,2631,2003],{"class":627},[610,2633,631],{"class":620},[610,2635,2636,2639],{"class":612,"line":2044},[610,2637,2638],{"class":627},"  ]",[610,2640,631],{"class":620},[610,2642,2643,2645],{"class":612,"line":2049},[610,2644,661],{"class":620},[610,2646,802],{"class":627},[675,2648,2650],{"id":2649},"next-steps","Next Steps",[2652,2653,2654,2659],"ul",{},[571,2655,2656,2658],{},[555,2657,557],{"href":474}," - Write your own enricher",[571,2660,2661,2663],{},[555,2662,133],{"href":138}," - Send enriched events to external services",[2665,2666,2667],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .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 .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .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 .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":606,"searchDepth":624,"depth":624,"links":2669},[2670,2671,2672,2673,2674,2675,2676],{"id":677,"depth":624,"text":678},{"id":823,"depth":624,"text":826},{"id":1233,"depth":624,"text":1236},{"id":1468,"depth":624,"text":1471},{"id":1628,"depth":624,"text":1631},{"id":1895,"depth":624,"text":1896},{"id":2649,"depth":624,"text":2650},"Add derived context to every wide event, from user agent and geo to your own computed fields.","md",[2680],{"label":557,"icon":330,"to":474,"color":2681,"variant":2682},"neutral","subtle",{},{"title":428,"icon":431},{"title":428,"description":2677},"SshDUrm5K9Kh_pQXtk75JLm2nkaZjAzF6puffLM-xB8",[2688,2690],{"title":424,"path":425,"stem":426,"description":2689,"icon":406,"children":-1},"RunEvent envelope, extending the schema with collect and custom fields, privacy rules, TELEMETRY.md disclosure, and consent \u002F outbox reliability.",{"title":433,"path":434,"stem":435,"description":2691,"children":-1},"[object Object]",1786806589288]