[{"data":1,"prerenderedAt":11232},["ShallowReactive",2],{"navigation_docs":3,"-reference-best-practices":612,"-reference-best-practices-surround":11227},[4,35,85,148,328,489,548,587],{"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,138,143],{"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},"logs","\u002Fcli\u002Flogs","3.cli\u002F10.logs","i-lucide-scroll-text",{"title":104,"path":105,"stem":106,"icon":107},"config","\u002Fcli\u002Fconfig","3.cli\u002F11.config","i-lucide-settings-2",{"title":109,"path":110,"stem":111,"icon":112},"map","\u002Fcli\u002Fmap","3.cli\u002F2.map","i-lucide-radar",{"title":114,"path":115,"stem":116,"icon":117},"Rules","\u002Fcli\u002Frules","3.cli\u002F3.rules","i-lucide-list-checks",{"title":119,"path":120,"stem":121,"icon":122},"Scoring","\u002Fcli\u002Fscoring","3.cli\u002F4.scoring","i-lucide-gauge",{"title":124,"path":125,"stem":126,"icon":127},"CI","\u002Fcli\u002Fci","3.cli\u002F5.ci","i-lucide-git-pull-request",{"title":129,"path":130,"stem":131,"icon":132},"doctor","\u002Fcli\u002Fdoctor","3.cli\u002F6.doctor","i-lucide-stethoscope",{"title":134,"path":135,"stem":136,"icon":137},"telemetry","\u002Fcli\u002Ftelemetry","3.cli\u002F7.telemetry","i-lucide-bar-chart-3",{"title":139,"path":140,"stem":141,"icon":142},"agents","\u002Fcli\u002Fagents","3.cli\u002F8.agents","i-lucide-bot",{"title":144,"path":145,"stem":146,"icon":147},"Observability Score","\u002Fcli\u002Fobservability-score","3.cli\u002F9.observability-score","i-lucide-activity",{"title":149,"path":150,"stem":151,"children":152,"page":34},"Integrate","\u002Fintegrate","4.integrate",[153,157,240],{"title":41,"path":154,"stem":155,"icon":156},"\u002Fintegrate\u002Foverview","4.integrate\u002F0.overview","i-lucide-plug",{"title":158,"path":159,"stem":160,"children":161,"page":34},"Adapters","\u002Fintegrate\u002Fadapters","4.integrate\u002Fadapters",[162,165,195,220],{"title":41,"path":163,"stem":164,"icon":44},"\u002Fintegrate\u002Fadapters\u002Foverview","4.integrate\u002Fadapters\u002F01.overview",{"title":166,"path":167,"stem":168,"children":169,"page":34},"Cloud","\u002Fintegrate\u002Fadapters\u002Fcloud","4.integrate\u002Fadapters\u002Fcloud",[170,175,180,185,190],{"title":171,"path":172,"stem":173,"icon":174},"Axiom","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Faxiom","4.integrate\u002Fadapters\u002Fcloud\u002F01.axiom","i-custom-axiom",{"title":176,"path":177,"stem":178,"icon":179},"PostHog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fposthog","4.integrate\u002Fadapters\u002Fcloud\u002F02.posthog","i-simple-icons-posthog",{"title":181,"path":182,"stem":183,"icon":184},"Sentry","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fsentry","4.integrate\u002Fadapters\u002Fcloud\u002F03.sentry","i-simple-icons-sentry",{"title":186,"path":187,"stem":188,"icon":189},"Better Stack","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fbetter-stack","4.integrate\u002Fadapters\u002Fcloud\u002F04.better-stack","i-simple-icons-betterstack",{"title":191,"path":192,"stem":193,"icon":194},"Datadog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fdatadog","4.integrate\u002Fadapters\u002Fcloud\u002F05.datadog","i-simple-icons-datadog",{"title":196,"path":197,"stem":198,"children":199,"page":34},"Cloud or Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fhybrid","4.integrate\u002Fadapters\u002Fhybrid",[200,205,210,215],{"title":201,"path":202,"stem":203,"icon":204},"Grafana Loki","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Floki","4.integrate\u002Fadapters\u002Fhybrid\u002F01.loki","i-simple-icons-grafana",{"title":206,"path":207,"stem":208,"icon":209},"ClickHouse","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fclickhouse","4.integrate\u002Fadapters\u002Fhybrid\u002F02.clickhouse","i-simple-icons-clickhouse",{"title":211,"path":212,"stem":213,"icon":214},"OTLP","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fotlp","4.integrate\u002Fadapters\u002Fhybrid\u002F03.otlp","i-simple-icons-opentelemetry",{"title":216,"path":217,"stem":218,"icon":219},"HyperDX","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fhyperdx","4.integrate\u002Fadapters\u002Fhybrid\u002F04.hyperdx","i-custom-hyperdx",{"title":221,"path":222,"stem":223,"children":224,"page":34},"Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fself-hosted","4.integrate\u002Fadapters\u002Fself-hosted",[225,230,235],{"title":226,"path":227,"stem":228,"icon":229},"File System","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Ffs","4.integrate\u002Fadapters\u002Fself-hosted\u002F01.fs","i-lucide-hard-drive",{"title":231,"path":232,"stem":233,"icon":234},"NuxtHub","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fnuxthub","4.integrate\u002Fadapters\u002Fself-hosted\u002F02.nuxthub","i-simple-icons-nuxt",{"title":236,"path":237,"stem":238,"icon":239},"Memory","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fmemory","4.integrate\u002Fadapters\u002Fself-hosted\u002F03.memory","i-lucide-cpu",{"title":241,"path":242,"stem":243,"children":244,"page":34},"Frameworks","\u002Fintegrate\u002Fframeworks","4.integrate\u002Fframeworks",[245,249,254,259,264,269,274,279,284,289,294,299,304,309,313,318,323],{"title":41,"path":246,"stem":247,"icon":248},"\u002Fintegrate\u002Fframeworks\u002Foverview","4.integrate\u002Fframeworks\u002F00.overview","i-lucide-layout-grid",{"title":250,"path":251,"stem":252,"icon":253},"Nuxt","\u002Fintegrate\u002Fframeworks\u002Fnuxt","4.integrate\u002Fframeworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":255,"path":256,"stem":257,"icon":258},"Next.js","\u002Fintegrate\u002Fframeworks\u002Fnextjs","4.integrate\u002Fframeworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":260,"path":261,"stem":262,"icon":263},"SvelteKit","\u002Fintegrate\u002Fframeworks\u002Fsveltekit","4.integrate\u002Fframeworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":265,"path":266,"stem":267,"icon":268},"Nitro","\u002Fintegrate\u002Fframeworks\u002Fnitro","4.integrate\u002Fframeworks\u002F04.nitro","i-custom-nitro",{"title":270,"path":271,"stem":272,"icon":273},"TanStack Start","\u002Fintegrate\u002Fframeworks\u002Ftanstack-start","4.integrate\u002Fframeworks\u002F05.tanstack-start","i-custom-tanstack",{"title":275,"path":276,"stem":277,"icon":278},"NestJS","\u002Fintegrate\u002Fframeworks\u002Fnestjs","4.integrate\u002Fframeworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":280,"path":281,"stem":282,"icon":283},"Express","\u002Fintegrate\u002Fframeworks\u002Fexpress","4.integrate\u002Fframeworks\u002F07.express","i-simple-icons-express",{"title":285,"path":286,"stem":287,"icon":288},"Hono","\u002Fintegrate\u002Fframeworks\u002Fhono","4.integrate\u002Fframeworks\u002F08.hono","i-simple-icons-hono",{"title":290,"path":291,"stem":292,"icon":293},"Fastify","\u002Fintegrate\u002Fframeworks\u002Ffastify","4.integrate\u002Fframeworks\u002F09.fastify","i-simple-icons-fastify",{"title":295,"path":296,"stem":297,"icon":298},"Elysia","\u002Fintegrate\u002Fframeworks\u002Felysia","4.integrate\u002Fframeworks\u002F10.elysia","i-custom-elysia",{"title":300,"path":301,"stem":302,"icon":303},"React Router","\u002Fintegrate\u002Fframeworks\u002Freact-router","4.integrate\u002Fframeworks\u002F11.react-router","i-custom-reactrouter",{"title":305,"path":306,"stem":307,"icon":308},"Cloudflare Workers","\u002Fintegrate\u002Fframeworks\u002Fcloudflare-workers","4.integrate\u002Fframeworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":310,"path":311,"stem":312,"icon":79},"Standalone","\u002Fintegrate\u002Fframeworks\u002Fstandalone","4.integrate\u002Fframeworks\u002F13.standalone",{"title":314,"path":315,"stem":316,"icon":317},"Astro","\u002Fintegrate\u002Fframeworks\u002Fastro","4.integrate\u002Fframeworks\u002F14.astro","i-simple-icons-astro",{"title":319,"path":320,"stem":321,"icon":322},"oRPC","\u002Fintegrate\u002Fframeworks\u002Forpc","4.integrate\u002Fframeworks\u002F15.orpc","i-lucide-network",{"title":324,"path":325,"stem":326,"icon":327},"AWS Lambda","\u002Fintegrate\u002Fframeworks\u002Faws-lambda","4.integrate\u002Fframeworks\u002F16.aws-lambda","i-custom-lambda",{"title":329,"path":330,"stem":331,"children":332,"page":34},"Use Cases","\u002Fuse-cases","5.use-cases",[333,336,341,369,396,428,449,454,459,463],{"title":41,"path":334,"stem":335,"icon":117},"\u002Fuse-cases\u002Foverview","5.use-cases\u002F0.overview",{"title":337,"path":338,"stem":339,"icon":340},"Client Logging","\u002Fuse-cases\u002Fclient-logging","5.use-cases\u002F1.client-logging","i-lucide-monitor",{"title":342,"icon":343,"path":344,"stem":345,"children":346,"page":34},"AI SDK","i-simple-icons-vercel","\u002Fuse-cases\u002Fai-sdk","5.use-cases\u002F2.ai-sdk",[347,350,355,360,365],{"title":41,"path":348,"stem":349,"icon":44},"\u002Fuse-cases\u002Fai-sdk\u002Foverview","5.use-cases\u002F2.ai-sdk\u002F01.overview",{"title":351,"path":352,"stem":353,"icon":354},"Usage","\u002Fuse-cases\u002Fai-sdk\u002Fusage","5.use-cases\u002F2.ai-sdk\u002F02.usage","i-lucide-code",{"title":356,"path":357,"stem":358,"icon":359},"Options","\u002Fuse-cases\u002Fai-sdk\u002Foptions","5.use-cases\u002F2.ai-sdk\u002F03.options","i-lucide-sliders",{"title":361,"path":362,"stem":363,"icon":364},"Metadata","\u002Fuse-cases\u002Fai-sdk\u002Fmetadata","5.use-cases\u002F2.ai-sdk\u002F04.metadata","i-lucide-database",{"title":366,"path":367,"stem":368,"icon":147},"Telemetry","\u002Fuse-cases\u002Fai-sdk\u002Ftelemetry","5.use-cases\u002F2.ai-sdk\u002F05.telemetry",{"title":370,"icon":371,"path":372,"stem":373,"children":374,"page":34},"Better Auth","i-simple-icons-betterauth","\u002Fuse-cases\u002Fbetter-auth","5.use-cases\u002F3.better-auth",[375,378,383,388,392],{"title":41,"path":376,"stem":377,"icon":44},"\u002Fuse-cases\u002Fbetter-auth\u002Foverview","5.use-cases\u002F3.better-auth\u002F01.overview",{"title":379,"path":380,"stem":381,"icon":382},"Identify User","\u002Fuse-cases\u002Fbetter-auth\u002Fidentify-user","5.use-cases\u002F3.better-auth\u002F02.identify-user","i-lucide-user-check",{"title":384,"path":385,"stem":386,"icon":387},"Middleware","\u002Fuse-cases\u002Fbetter-auth\u002Fmiddleware","5.use-cases\u002F3.better-auth\u002F03.middleware","i-lucide-shield",{"title":389,"path":390,"stem":391,"icon":340},"Client Sync","\u002Fuse-cases\u002Fbetter-auth\u002Fclient-sync","5.use-cases\u002F3.better-auth\u002F04.client-sync",{"title":393,"path":394,"stem":395,"icon":122},"Performance","\u002Fuse-cases\u002Fbetter-auth\u002Fperformance","5.use-cases\u002F3.better-auth\u002F05.performance",{"title":397,"icon":398,"path":399,"stem":400,"children":401,"page":34},"Audit Logs","i-lucide-shield-check","\u002Fuse-cases\u002Faudit","5.use-cases\u002F4.audit",[402,405,410,415,420,424],{"title":41,"path":403,"stem":404,"icon":44},"\u002Fuse-cases\u002Faudit\u002Foverview","5.use-cases\u002F4.audit\u002F01.overview",{"title":406,"path":407,"stem":408,"icon":409},"Schema","\u002Fuse-cases\u002Faudit\u002Fschema","5.use-cases\u002F4.audit\u002F02.schema","i-lucide-file-text",{"title":411,"path":412,"stem":413,"icon":414},"Recording","\u002Fuse-cases\u002Faudit\u002Frecording","5.use-cases\u002F4.audit\u002F03.recording","i-lucide-pen-line",{"title":416,"path":417,"stem":418,"icon":419},"Drains","\u002Fuse-cases\u002Faudit\u002Fpipeline","5.use-cases\u002F4.audit\u002F04.pipeline","i-lucide-link",{"title":421,"path":422,"stem":423,"icon":398},"Compliance","\u002Fuse-cases\u002Faudit\u002Fcompliance","5.use-cases\u002F4.audit\u002F05.compliance",{"title":425,"path":426,"stem":427,"icon":84},"Recipes","\u002Fuse-cases\u002Faudit\u002Frecipes","5.use-cases\u002F4.audit\u002F06.recipes",{"title":366,"icon":122,"path":429,"stem":430,"children":431,"page":34},"\u002Fuse-cases\u002Ftelemetry","5.use-cases\u002F4.telemetry",[432,435,440,445],{"title":41,"path":433,"stem":434,"icon":44},"\u002Fuse-cases\u002Ftelemetry\u002Foverview","5.use-cases\u002F4.telemetry\u002F01.overview",{"title":436,"path":437,"stem":438,"icon":439},"Setup","\u002Fuse-cases\u002Ftelemetry\u002Fsetup","5.use-cases\u002F4.telemetry\u002F02.setup","i-lucide-wrench",{"title":441,"path":442,"stem":443,"icon":444},"Ingest","\u002Fuse-cases\u002Ftelemetry\u002Fingest","5.use-cases\u002F4.telemetry\u002F03.ingest","i-lucide-server",{"title":446,"path":447,"stem":448,"icon":84},"Reference","\u002Fuse-cases\u002Ftelemetry\u002Freference","5.use-cases\u002F4.telemetry\u002F04.reference",{"title":450,"path":451,"stem":452,"icon":453},"Enrichers","\u002Fuse-cases\u002Fenrichers","5.use-cases\u002F5.enrichers","i-lucide-sparkles",{"title":455,"path":456,"stem":457,"icon":458},"eve","\u002Fuse-cases\u002Feve","5.use-cases\u002F5.eve","i-custom-eve",{"title":460,"path":461,"stem":462,"icon":444},"Node.js request logging","\u002Fuse-cases\u002Fstructured-logging-nodejs","5.use-cases\u002F6.structured-logging-nodejs",{"title":464,"icon":465,"path":466,"stem":467,"children":468,"page":34},"Signals","i-lucide-scan-search","\u002Fuse-cases\u002Fsignals","5.use-cases\u002F7.signals",[469,472,477,482,485],{"title":41,"path":470,"stem":471,"icon":44},"\u002Fuse-cases\u002Fsignals\u002Foverview","5.use-cases\u002F7.signals\u002F01.overview",{"title":473,"path":474,"stem":475,"icon":476},"What You Can Ask","\u002Fuse-cases\u002Fsignals\u002Fask","5.use-cases\u002F7.signals\u002F02.ask","i-lucide-message-circle-question",{"title":478,"path":479,"stem":480,"icon":481},"What It Costs","\u002Fuse-cases\u002Fsignals\u002Fcost","5.use-cases\u002F7.signals\u002F03.cost","i-lucide-coins",{"title":446,"path":483,"stem":484,"icon":84},"\u002Fuse-cases\u002Fsignals\u002Freference","5.use-cases\u002F7.signals\u002F04.reference",{"title":425,"path":486,"stem":487,"icon":488},"\u002Fuse-cases\u002Fsignals\u002Frecipes","5.use-cases\u002F7.signals\u002F05.recipes","i-lucide-lightbulb",{"title":490,"path":491,"stem":492,"children":493,"page":34},"Extend","\u002Fextend","6.extend",[494,498,503,508,512,517,521,525,529,533,538,543],{"title":41,"path":495,"stem":496,"icon":497},"\u002Fextend\u002Foverview","6.extend\u002F0.overview","i-lucide-blocks",{"title":499,"path":500,"stem":501,"icon":502},"Stream","\u002Fextend\u002Fstream","6.extend\u002F1.stream","i-lucide-radio-tower",{"title":504,"path":505,"stem":506,"icon":507},"Custom framework","\u002Fextend\u002Fcustom-framework","6.extend\u002F10.custom-framework","i-lucide-puzzle",{"title":509,"path":510,"stem":511,"icon":502},"Diagnostics channel","\u002Fextend\u002Fdiagnostics-channel","6.extend\u002F11.diagnostics-channel",{"title":513,"path":514,"stem":515,"icon":516},"FS reader","\u002Fextend\u002Ffs-reader","6.extend\u002F2.fs-reader","i-lucide-folder-search",{"title":425,"path":518,"stem":519,"icon":520},"\u002Fextend\u002Fconsumer-recipes","6.extend\u002F3.consumer-recipes","i-lucide-chef-hat",{"title":522,"path":523,"stem":524,"icon":497},"Plugins","\u002Fextend\u002Fplugins","6.extend\u002F4.plugins",{"title":526,"path":527,"stem":528,"icon":453},"Custom enrichers","\u002Fextend\u002Fcustom-enrichers","6.extend\u002F5.custom-enrichers",{"title":530,"path":531,"stem":532,"icon":69},"Tail sampling","\u002Fextend\u002Ftail-sampling","6.extend\u002F6.tail-sampling",{"title":534,"path":535,"stem":536,"icon":537},"Identity headers","\u002Fextend\u002Fidentity-headers","6.extend\u002F7.identity-headers","i-lucide-fingerprint",{"title":539,"path":540,"stem":541,"icon":542},"Custom drains","\u002Fextend\u002Fcustom-drains","6.extend\u002F8.custom-drains","i-lucide-share-2",{"title":544,"path":545,"stem":546,"icon":547},"Drain pipeline","\u002Fextend\u002Fdrain-pipeline","6.extend\u002F9.drain-pipeline","i-lucide-workflow",{"title":446,"path":549,"stem":550,"children":551,"page":34},"\u002Freference","7.reference",[552,556,561,564,569,573,578,582],{"title":41,"path":553,"stem":554,"icon":555},"\u002Freference\u002Foverview","7.reference\u002F0.overview","i-lucide-book-marked",{"title":557,"path":558,"stem":559,"icon":560},"Configuration","\u002Freference\u002Fconfiguration","7.reference\u002F1.configuration","i-lucide-settings",{"title":393,"path":562,"stem":563,"icon":122},"\u002Freference\u002Fperformance","7.reference\u002F2.performance",{"title":565,"path":566,"stem":567,"icon":568},"Vite Plugin","\u002Freference\u002Fvite-plugin","7.reference\u002F3.vite-plugin","i-custom-vite",{"title":570,"path":571,"stem":572,"icon":398},"Best Practices","\u002Freference\u002Fbest-practices","7.reference\u002F4.best-practices",{"title":574,"path":575,"stem":576,"icon":577},"vs Other Loggers","\u002Freference\u002Fvs-other-loggers","7.reference\u002F5.vs-other-loggers","i-lucide-scale",{"title":579,"path":580,"stem":581,"icon":453},"Agent Skills","\u002Freference\u002Fagent-skills","7.reference\u002F6.agent-skills",{"title":583,"path":584,"stem":585,"icon":586},"Cost","\u002Freference\u002Fcost","7.reference\u002F7.cost","i-lucide-receipt",{"title":588,"path":589,"stem":590,"children":591,"page":34},"Compare","\u002Fcompare","8.compare",[592,596,600,604,608],{"title":593,"path":594,"stem":595,"icon":577},"evlog vs Pino","\u002Fcompare\u002Fpino","8.compare\u002F1.pino",{"title":597,"path":598,"stem":599,"icon":214},"evlog vs OpenTelemetry","\u002Fcompare\u002Fopentelemetry","8.compare\u002F2.opentelemetry",{"title":601,"path":602,"stem":603,"icon":577},"evlog vs LogTape","\u002Fcompare\u002Flogtape","8.compare\u002F3.logtape",{"title":605,"path":606,"stem":607,"icon":577},"evlog vs Winston: formats and request events","\u002Fcompare\u002Fwinston","8.compare\u002F4.winston",{"title":609,"path":610,"stem":611,"icon":577},"evlog vs Consola: reporters and request context","\u002Fcompare\u002Fconsola","8.compare\u002F5.consola",{"id":613,"title":570,"body":614,"description":11217,"extension":11218,"links":11219,"meta":11223,"navigation":11224,"path":571,"seo":11225,"stem":572,"__hash__":11226},"docs\u002F7.reference\u002F4.best-practices.md",{"type":615,"value":616,"toc":11198},"minimark",[617,621,626,638,716,721,724,727,1679,1694,1702,1706,1711,1714,2780,2784,2787,3387,3390,4518,4522,4525,10501,10505,10509,10512,10516,10555,10559,10609,10613,10638,10642,10645,10829,10833,10947,10951,10954,11161,11173,11177,11194],[618,619,620],"p",{},"A wide event carries every field the request touched, which is what makes it queryable and what makes an accidental secret permanent. This page covers what to keep out, what to redact, and what production costs.",[622,623,625],"h2",{"id":624},"what-not-to-log","What NOT to Log",[618,627,628,629,633,634],{},"The same accumulation that makes a wide event worth querying puts a secret in your drain the moment one reaches ",[630,631,632],"code",{},"log.set",". ",[635,636,637],"strong",{},"Never log:",[639,640,641,657],"table",{},[642,643,644],"thead",{},[645,646,647,651,654],"tr",{},[648,649,650],"th",{},"Category",[648,652,653],{},"Examples",[648,655,656],{},"Risk",[658,659,660,672,683,694,705],"tbody",{},[645,661,662,666,669],{},[663,664,665],"td",{},"Credentials",[663,667,668],{},"Passwords, API keys, tokens, secrets",[663,670,671],{},"Account compromise",[645,673,674,677,680],{},[663,675,676],{},"Payment data",[663,678,679],{},"Full card numbers, CVV, bank accounts",[663,681,682],{},"PCI compliance violation",[645,684,685,688,691],{},[663,686,687],{},"Personal data (PII)",[663,689,690],{},"SSN, passport numbers, driver's license",[663,692,693],{},"Privacy laws (GDPR, CCPA)",[645,695,696,699,702],{},[663,697,698],{},"Health data",[663,700,701],{},"Medical records, diagnoses",[663,703,704],{},"HIPAA violation",[645,706,707,710,713],{},[663,708,709],{},"Authentication",[663,711,712],{},"Session tokens, JWTs, refresh tokens",[663,714,715],{},"Session hijacking",[717,718,720],"callout",{"color":719,"icon":59},"error","Logs are often accessible to your entire team and may be stored in third-party services. Treat them as semi-public.",[622,722,71],{"id":723},"auto-redaction",[618,725,726],{},"The simplest way to protect PII is to enable built-in auto-redaction:",[728,729,730,777,895,998,1064,1148,1234,1292,1346,1404,1458,1512,1578,1632],"framework-tabs",{},[731,732,738],"pre",{"className":733,"code":734,"filename":250,"language":735,"meta":736,"style":737},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","evlog: {\n  redact: true,\n}\n","typescript","nuxt.config.ts","",[630,739,740,756,771],{"__ignoreMap":737},[741,742,745,749,753],"span",{"class":743,"line":744},"line",1,[741,746,748],{"class":747},"sBMFI","evlog",[741,750,752],{"class":751},"sMK4o",":",[741,754,755],{"class":751}," {\n",[741,757,759,762,764,768],{"class":743,"line":758},2,[741,760,761],{"class":747},"  redact",[741,763,752],{"class":751},[741,765,767],{"class":766},"sfNiH"," true",[741,769,770],{"class":751},",\n",[741,772,774],{"class":743,"line":773},3,[741,775,776],{"class":751},"}\n",[731,778,781],{"className":733,"code":779,"filename":265,"language":735,"meta":780,"style":737},"import { defineConfig } from 'nitro'\nimport evlog from 'evlog\u002Fnitro\u002Fv3'\n\nexport default defineConfig({\n  modules: [evlog({ redact: true })],\n})\n","nitro.config.ts",[630,782,783,812,829,835,853,886],{"__ignoreMap":737},[741,784,785,789,792,796,799,802,805,809],{"class":743,"line":744},[741,786,788],{"class":787},"s7zQu","import",[741,790,791],{"class":751}," {",[741,793,795],{"class":794},"sTEyZ"," defineConfig",[741,797,798],{"class":751}," }",[741,800,801],{"class":787}," from",[741,803,804],{"class":751}," '",[741,806,808],{"class":807},"sfazB","nitro",[741,810,811],{"class":751},"'\n",[741,813,814,816,819,822,824,827],{"class":743,"line":758},[741,815,788],{"class":787},[741,817,818],{"class":794}," evlog ",[741,820,821],{"class":787},"from",[741,823,804],{"class":751},[741,825,826],{"class":807},"evlog\u002Fnitro\u002Fv3",[741,828,811],{"class":751},[741,830,831],{"class":743,"line":773},[741,832,834],{"emptyLinePlaceholder":833},true,"\n",[741,836,838,841,844,847,850],{"class":743,"line":837},4,[741,839,840],{"class":787},"export",[741,842,843],{"class":787}," default",[741,845,795],{"class":846},"s2Zo4",[741,848,849],{"class":794},"(",[741,851,852],{"class":751},"{\n",[741,854,856,860,862,865,867,869,872,875,877,879,881,884],{"class":743,"line":855},5,[741,857,859],{"class":858},"swJcz","  modules",[741,861,752],{"class":751},[741,863,864],{"class":794}," [",[741,866,748],{"class":846},[741,868,849],{"class":794},[741,870,871],{"class":751},"{",[741,873,874],{"class":858}," redact",[741,876,752],{"class":751},[741,878,767],{"class":766},[741,880,798],{"class":751},[741,882,883],{"class":794},")]",[741,885,770],{"class":751},[741,887,889,892],{"class":743,"line":888},6,[741,890,891],{"class":751},"}",[741,893,894],{"class":794},")\n",[731,896,899],{"className":733,"code":897,"filename":255,"language":735,"meta":898,"style":737},"import { createEvlog } from 'evlog\u002Fnext'\n\nexport const { withEvlog, useLogger, log, createError } = createEvlog({\n  service: 'my-app',\n  redact: true,\n})\n","lib\u002Fevlog.ts",[630,900,901,921,925,965,982,992],{"__ignoreMap":737},[741,902,903,905,907,910,912,914,916,919],{"class":743,"line":744},[741,904,788],{"class":787},[741,906,791],{"class":751},[741,908,909],{"class":794}," createEvlog",[741,911,798],{"class":751},[741,913,801],{"class":787},[741,915,804],{"class":751},[741,917,918],{"class":807},"evlog\u002Fnext",[741,920,811],{"class":751},[741,922,923],{"class":743,"line":758},[741,924,834],{"emptyLinePlaceholder":833},[741,926,927,929,933,935,938,941,944,946,949,951,954,956,959,961,963],{"class":743,"line":773},[741,928,840],{"class":787},[741,930,932],{"class":931},"spNyl"," const",[741,934,791],{"class":751},[741,936,937],{"class":794}," withEvlog",[741,939,940],{"class":751},",",[741,942,943],{"class":794}," useLogger",[741,945,940],{"class":751},[741,947,948],{"class":794}," log",[741,950,940],{"class":751},[741,952,953],{"class":794}," createError ",[741,955,891],{"class":751},[741,957,958],{"class":751}," =",[741,960,909],{"class":846},[741,962,849],{"class":794},[741,964,852],{"class":751},[741,966,967,970,972,974,977,980],{"class":743,"line":837},[741,968,969],{"class":858},"  service",[741,971,752],{"class":751},[741,973,804],{"class":751},[741,975,976],{"class":807},"my-app",[741,978,979],{"class":751},"'",[741,981,770],{"class":751},[741,983,984,986,988,990],{"class":743,"line":855},[741,985,761],{"class":858},[741,987,752],{"class":751},[741,989,767],{"class":766},[741,991,770],{"class":751},[741,993,994,996],{"class":743,"line":888},[741,995,891],{"class":751},[741,997,894],{"class":794},[731,999,1002],{"className":733,"code":1000,"filename":260,"language":735,"meta":1001,"style":737},"import { createEvlogHooks } from 'evlog\u002Fsveltekit'\n\nexport const { handle, handleError } = createEvlogHooks({ redact: true })\n","src\u002Fhooks.server.ts",[630,1003,1004,1024,1028],{"__ignoreMap":737},[741,1005,1006,1008,1010,1013,1015,1017,1019,1022],{"class":743,"line":744},[741,1007,788],{"class":787},[741,1009,791],{"class":751},[741,1011,1012],{"class":794}," createEvlogHooks",[741,1014,798],{"class":751},[741,1016,801],{"class":787},[741,1018,804],{"class":751},[741,1020,1021],{"class":807},"evlog\u002Fsveltekit",[741,1023,811],{"class":751},[741,1025,1026],{"class":743,"line":758},[741,1027,834],{"emptyLinePlaceholder":833},[741,1029,1030,1032,1034,1036,1039,1041,1044,1046,1048,1050,1052,1054,1056,1058,1060,1062],{"class":743,"line":773},[741,1031,840],{"class":787},[741,1033,932],{"class":931},[741,1035,791],{"class":751},[741,1037,1038],{"class":794}," handle",[741,1040,940],{"class":751},[741,1042,1043],{"class":794}," handleError ",[741,1045,891],{"class":751},[741,1047,958],{"class":751},[741,1049,1012],{"class":846},[741,1051,849],{"class":794},[741,1053,871],{"class":751},[741,1055,874],{"class":858},[741,1057,752],{"class":751},[741,1059,767],{"class":766},[741,1061,798],{"class":751},[741,1063,894],{"class":794},[731,1065,1066],{"className":733,"code":779,"filename":270,"language":735,"meta":780,"style":737},[630,1067,1068,1086,1100,1104,1116,1142],{"__ignoreMap":737},[741,1069,1070,1072,1074,1076,1078,1080,1082,1084],{"class":743,"line":744},[741,1071,788],{"class":787},[741,1073,791],{"class":751},[741,1075,795],{"class":794},[741,1077,798],{"class":751},[741,1079,801],{"class":787},[741,1081,804],{"class":751},[741,1083,808],{"class":807},[741,1085,811],{"class":751},[741,1087,1088,1090,1092,1094,1096,1098],{"class":743,"line":758},[741,1089,788],{"class":787},[741,1091,818],{"class":794},[741,1093,821],{"class":787},[741,1095,804],{"class":751},[741,1097,826],{"class":807},[741,1099,811],{"class":751},[741,1101,1102],{"class":743,"line":773},[741,1103,834],{"emptyLinePlaceholder":833},[741,1105,1106,1108,1110,1112,1114],{"class":743,"line":837},[741,1107,840],{"class":787},[741,1109,843],{"class":787},[741,1111,795],{"class":846},[741,1113,849],{"class":794},[741,1115,852],{"class":751},[741,1117,1118,1120,1122,1124,1126,1128,1130,1132,1134,1136,1138,1140],{"class":743,"line":855},[741,1119,859],{"class":858},[741,1121,752],{"class":751},[741,1123,864],{"class":794},[741,1125,748],{"class":846},[741,1127,849],{"class":794},[741,1129,871],{"class":751},[741,1131,874],{"class":858},[741,1133,752],{"class":751},[741,1135,767],{"class":766},[741,1137,798],{"class":751},[741,1139,883],{"class":794},[741,1141,770],{"class":751},[741,1143,1144,1146],{"class":743,"line":888},[741,1145,891],{"class":751},[741,1147,894],{"class":794},[731,1149,1152],{"className":733,"code":1150,"filename":300,"language":735,"meta":1151,"style":737},"import { evlog } from 'evlog\u002Freact-router'\n\nexport const middleware: Route.MiddlewareFunction[] = [\n  evlog({ redact: true }),\n]\n","app\u002Froot.tsx",[630,1153,1154,1174,1178,1207,1229],{"__ignoreMap":737},[741,1155,1156,1158,1160,1163,1165,1167,1169,1172],{"class":743,"line":744},[741,1157,788],{"class":787},[741,1159,791],{"class":751},[741,1161,1162],{"class":794}," evlog",[741,1164,798],{"class":751},[741,1166,801],{"class":787},[741,1168,804],{"class":751},[741,1170,1171],{"class":807},"evlog\u002Freact-router",[741,1173,811],{"class":751},[741,1175,1176],{"class":743,"line":758},[741,1177,834],{"emptyLinePlaceholder":833},[741,1179,1180,1182,1184,1187,1189,1192,1195,1198,1201,1204],{"class":743,"line":773},[741,1181,840],{"class":787},[741,1183,932],{"class":931},[741,1185,1186],{"class":794}," middleware",[741,1188,752],{"class":751},[741,1190,1191],{"class":747}," Route",[741,1193,1194],{"class":751},".",[741,1196,1197],{"class":747},"MiddlewareFunction",[741,1199,1200],{"class":794},"[] ",[741,1202,1203],{"class":751},"=",[741,1205,1206],{"class":794}," [\n",[741,1208,1209,1212,1214,1216,1218,1220,1222,1224,1227],{"class":743,"line":837},[741,1210,1211],{"class":846},"  evlog",[741,1213,849],{"class":794},[741,1215,871],{"class":751},[741,1217,874],{"class":858},[741,1219,752],{"class":751},[741,1221,767],{"class":766},[741,1223,798],{"class":751},[741,1225,1226],{"class":794},")",[741,1228,770],{"class":751},[741,1230,1231],{"class":743,"line":855},[741,1232,1233],{"class":794},"]\n",[731,1235,1238],{"className":733,"code":1236,"filename":285,"language":735,"meta":1237,"style":737},"import { evlog } from 'evlog\u002Fhono'\n\napp.use(evlog({ redact: true }))\n","src\u002Findex.ts",[630,1239,1240,1259,1263],{"__ignoreMap":737},[741,1241,1242,1244,1246,1248,1250,1252,1254,1257],{"class":743,"line":744},[741,1243,788],{"class":787},[741,1245,791],{"class":751},[741,1247,1162],{"class":794},[741,1249,798],{"class":751},[741,1251,801],{"class":787},[741,1253,804],{"class":751},[741,1255,1256],{"class":807},"evlog\u002Fhono",[741,1258,811],{"class":751},[741,1260,1261],{"class":743,"line":758},[741,1262,834],{"emptyLinePlaceholder":833},[741,1264,1265,1268,1270,1273,1275,1277,1279,1281,1283,1285,1287,1289],{"class":743,"line":773},[741,1266,1267],{"class":794},"app",[741,1269,1194],{"class":751},[741,1271,1272],{"class":846},"use",[741,1274,849],{"class":794},[741,1276,748],{"class":846},[741,1278,849],{"class":794},[741,1280,871],{"class":751},[741,1282,874],{"class":858},[741,1284,752],{"class":751},[741,1286,767],{"class":766},[741,1288,798],{"class":751},[741,1290,1291],{"class":794},"))\n",[731,1293,1295],{"className":733,"code":1294,"filename":280,"language":735,"meta":1237,"style":737},"import { evlog } from 'evlog\u002Fexpress'\n\napp.use(evlog({ redact: true }))\n",[630,1296,1297,1316,1320],{"__ignoreMap":737},[741,1298,1299,1301,1303,1305,1307,1309,1311,1314],{"class":743,"line":744},[741,1300,788],{"class":787},[741,1302,791],{"class":751},[741,1304,1162],{"class":794},[741,1306,798],{"class":751},[741,1308,801],{"class":787},[741,1310,804],{"class":751},[741,1312,1313],{"class":807},"evlog\u002Fexpress",[741,1315,811],{"class":751},[741,1317,1318],{"class":743,"line":758},[741,1319,834],{"emptyLinePlaceholder":833},[741,1321,1322,1324,1326,1328,1330,1332,1334,1336,1338,1340,1342,1344],{"class":743,"line":773},[741,1323,1267],{"class":794},[741,1325,1194],{"class":751},[741,1327,1272],{"class":846},[741,1329,849],{"class":794},[741,1331,748],{"class":846},[741,1333,849],{"class":794},[741,1335,871],{"class":751},[741,1337,874],{"class":858},[741,1339,752],{"class":751},[741,1341,767],{"class":766},[741,1343,798],{"class":751},[741,1345,1291],{"class":794},[731,1347,1349],{"className":733,"code":1348,"filename":290,"language":735,"meta":1237,"style":737},"import { evlog } from 'evlog\u002Ffastify'\n\nawait app.register(evlog, { redact: true })\n",[630,1350,1351,1370,1374],{"__ignoreMap":737},[741,1352,1353,1355,1357,1359,1361,1363,1365,1368],{"class":743,"line":744},[741,1354,788],{"class":787},[741,1356,791],{"class":751},[741,1358,1162],{"class":794},[741,1360,798],{"class":751},[741,1362,801],{"class":787},[741,1364,804],{"class":751},[741,1366,1367],{"class":807},"evlog\u002Ffastify",[741,1369,811],{"class":751},[741,1371,1372],{"class":743,"line":758},[741,1373,834],{"emptyLinePlaceholder":833},[741,1375,1376,1379,1382,1384,1387,1390,1392,1394,1396,1398,1400,1402],{"class":743,"line":773},[741,1377,1378],{"class":787},"await",[741,1380,1381],{"class":794}," app",[741,1383,1194],{"class":751},[741,1385,1386],{"class":846},"register",[741,1388,1389],{"class":794},"(evlog",[741,1391,940],{"class":751},[741,1393,791],{"class":751},[741,1395,874],{"class":858},[741,1397,752],{"class":751},[741,1399,767],{"class":766},[741,1401,798],{"class":751},[741,1403,894],{"class":794},[731,1405,1407],{"className":733,"code":1406,"filename":295,"language":735,"meta":1237,"style":737},"import { evlog } from 'evlog\u002Felysia'\n\napp.use(evlog({ redact: true }))\n",[630,1408,1409,1428,1432],{"__ignoreMap":737},[741,1410,1411,1413,1415,1417,1419,1421,1423,1426],{"class":743,"line":744},[741,1412,788],{"class":787},[741,1414,791],{"class":751},[741,1416,1162],{"class":794},[741,1418,798],{"class":751},[741,1420,801],{"class":787},[741,1422,804],{"class":751},[741,1424,1425],{"class":807},"evlog\u002Felysia",[741,1427,811],{"class":751},[741,1429,1430],{"class":743,"line":758},[741,1431,834],{"emptyLinePlaceholder":833},[741,1433,1434,1436,1438,1440,1442,1444,1446,1448,1450,1452,1454,1456],{"class":743,"line":773},[741,1435,1267],{"class":794},[741,1437,1194],{"class":751},[741,1439,1272],{"class":846},[741,1441,849],{"class":794},[741,1443,748],{"class":846},[741,1445,849],{"class":794},[741,1447,871],{"class":751},[741,1449,874],{"class":858},[741,1451,752],{"class":751},[741,1453,767],{"class":766},[741,1455,798],{"class":751},[741,1457,1291],{"class":794},[731,1459,1462],{"className":733,"code":1460,"filename":275,"language":735,"meta":1461,"style":737},"import { EvlogModule } from 'evlog\u002Fnestjs'\n\nEvlogModule.forRoot({ redact: true })\n","src\u002Fapp.module.ts",[630,1463,1464,1484,1488],{"__ignoreMap":737},[741,1465,1466,1468,1470,1473,1475,1477,1479,1482],{"class":743,"line":744},[741,1467,788],{"class":787},[741,1469,791],{"class":751},[741,1471,1472],{"class":794}," EvlogModule",[741,1474,798],{"class":751},[741,1476,801],{"class":787},[741,1478,804],{"class":751},[741,1480,1481],{"class":807},"evlog\u002Fnestjs",[741,1483,811],{"class":751},[741,1485,1486],{"class":743,"line":758},[741,1487,834],{"emptyLinePlaceholder":833},[741,1489,1490,1493,1495,1498,1500,1502,1504,1506,1508,1510],{"class":743,"line":773},[741,1491,1492],{"class":794},"EvlogModule",[741,1494,1194],{"class":751},[741,1496,1497],{"class":846},"forRoot",[741,1499,849],{"class":794},[741,1501,871],{"class":751},[741,1503,874],{"class":858},[741,1505,752],{"class":751},[741,1507,767],{"class":766},[741,1509,798],{"class":751},[741,1511,894],{"class":794},[731,1513,1516],{"className":733,"code":1514,"filename":319,"language":735,"meta":1515,"style":737},"import { withEvlog } from 'evlog\u002Forpc'\n\nconst handler = withEvlog(new RPCHandler(router), { redact: true })\n","server\u002Forpc.ts",[630,1517,1518,1537,1541],{"__ignoreMap":737},[741,1519,1520,1522,1524,1526,1528,1530,1532,1535],{"class":743,"line":744},[741,1521,788],{"class":787},[741,1523,791],{"class":751},[741,1525,937],{"class":794},[741,1527,798],{"class":751},[741,1529,801],{"class":787},[741,1531,804],{"class":751},[741,1533,1534],{"class":807},"evlog\u002Forpc",[741,1536,811],{"class":751},[741,1538,1539],{"class":743,"line":758},[741,1540,834],{"emptyLinePlaceholder":833},[741,1542,1543,1546,1549,1551,1553,1555,1558,1561,1564,1566,1568,1570,1572,1574,1576],{"class":743,"line":773},[741,1544,1545],{"class":931},"const",[741,1547,1548],{"class":794}," handler ",[741,1550,1203],{"class":751},[741,1552,937],{"class":846},[741,1554,849],{"class":794},[741,1556,1557],{"class":751},"new",[741,1559,1560],{"class":846}," RPCHandler",[741,1562,1563],{"class":794},"(router)",[741,1565,940],{"class":751},[741,1567,791],{"class":751},[741,1569,874],{"class":858},[741,1571,752],{"class":751},[741,1573,767],{"class":766},[741,1575,798],{"class":751},[741,1577,894],{"class":794},[731,1579,1582],{"className":733,"code":1580,"filename":305,"language":735,"meta":1581,"style":737},"import { withEvlog } from 'evlog\u002Fworkers'\n\nexport default withEvlog(handler, { redact: true })\n","src\u002Fworker.ts",[630,1583,1584,1603,1607],{"__ignoreMap":737},[741,1585,1586,1588,1590,1592,1594,1596,1598,1601],{"class":743,"line":744},[741,1587,788],{"class":787},[741,1589,791],{"class":751},[741,1591,937],{"class":794},[741,1593,798],{"class":751},[741,1595,801],{"class":787},[741,1597,804],{"class":751},[741,1599,1600],{"class":807},"evlog\u002Fworkers",[741,1602,811],{"class":751},[741,1604,1605],{"class":743,"line":758},[741,1606,834],{"emptyLinePlaceholder":833},[741,1608,1609,1611,1613,1615,1618,1620,1622,1624,1626,1628,1630],{"class":743,"line":773},[741,1610,840],{"class":787},[741,1612,843],{"class":787},[741,1614,937],{"class":846},[741,1616,1617],{"class":794},"(handler",[741,1619,940],{"class":751},[741,1621,791],{"class":751},[741,1623,874],{"class":858},[741,1625,752],{"class":751},[741,1627,767],{"class":766},[741,1629,798],{"class":751},[741,1631,894],{"class":794},[731,1633,1635],{"className":733,"code":1634,"filename":310,"language":735,"meta":1237,"style":737},"import { initLogger } from 'evlog'\n\ninitLogger({ redact: true })\n",[630,1636,1637,1656,1660],{"__ignoreMap":737},[741,1638,1639,1641,1643,1646,1648,1650,1652,1654],{"class":743,"line":744},[741,1640,788],{"class":787},[741,1642,791],{"class":751},[741,1644,1645],{"class":794}," initLogger",[741,1647,798],{"class":751},[741,1649,801],{"class":787},[741,1651,804],{"class":751},[741,1653,748],{"class":807},[741,1655,811],{"class":751},[741,1657,1658],{"class":743,"line":758},[741,1659,834],{"emptyLinePlaceholder":833},[741,1661,1662,1665,1667,1669,1671,1673,1675,1677],{"class":743,"line":773},[741,1663,1664],{"class":846},"initLogger",[741,1666,849],{"class":794},[741,1668,871],{"class":751},[741,1670,874],{"class":858},[741,1672,752],{"class":751},[741,1674,767],{"class":766},[741,1676,798],{"class":751},[741,1678,894],{"class":794},[618,1680,1681,1682,1685,1686,1689,1690,1693],{},"This masks credit cards (",[630,1683,1684],{},"****1111","), emails (",[630,1687,1688],{},"a***@***.com","), IPs, phone numbers, JWTs, Bearer tokens, and IBANs in every wide event, before console output and before any drain. See ",[1691,1692,71],"a",{"href":72}," for the full configuration reference.",[717,1695,1697,1698,1701],{"color":1696,"icon":398},"success","Auto-redaction is a safety net, not a replacement for careful logging. Always prefer explicit field selection and combine with ",[630,1699,1700],{},"redact: true"," for defense in depth.",[622,1703,1705],{"id":1704},"sanitize-before-the-field-is-set","Sanitize before the field is set",[1707,1708,1710],"h3",{"id":1709},"manual-field-selection","Manual Field Selection",[618,1712,1713],{},"The safest approach is to explicitly select which fields to log:",[728,1715,1716,1937,2140,2369,2584],{},[731,1717,1720],{"className":733,"code":1718,"filename":250,"language":735,"meta":1719,"style":737},"import { useLogger } from 'evlog'\n\nexport default defineEventHandler(async (event) => {\n  const log = useLogger(event)\n\n  const body = await readBody(event)\n\n  \u002F\u002F ❌ NEVER log the entire request body\n  \u002F\u002F log.set({ body })\n\n  \u002F\u002F ✅ Explicitly select safe fields\n  log.set({\n    user: {\n      id: body.id,\n      email: maskEmail(body.email),\n      \u002F\u002F password: body.password ← NEVER include\n    },\n  })\n})\n","server\u002Fapi\u002Fuser\u002Fupdate.post.ts",[630,1721,1722,1740,1744,1772,1789,1793,1814,1819,1826,1832,1837,1843,1858,1868,1885,1910,1916,1922,1930],{"__ignoreMap":737},[741,1723,1724,1726,1728,1730,1732,1734,1736,1738],{"class":743,"line":744},[741,1725,788],{"class":787},[741,1727,791],{"class":751},[741,1729,943],{"class":794},[741,1731,798],{"class":751},[741,1733,801],{"class":787},[741,1735,804],{"class":751},[741,1737,748],{"class":807},[741,1739,811],{"class":751},[741,1741,1742],{"class":743,"line":758},[741,1743,834],{"emptyLinePlaceholder":833},[741,1745,1746,1748,1750,1753,1755,1758,1761,1765,1767,1770],{"class":743,"line":773},[741,1747,840],{"class":787},[741,1749,843],{"class":787},[741,1751,1752],{"class":846}," defineEventHandler",[741,1754,849],{"class":794},[741,1756,1757],{"class":931},"async",[741,1759,1760],{"class":751}," (",[741,1762,1764],{"class":1763},"sHdIc","event",[741,1766,1226],{"class":751},[741,1768,1769],{"class":931}," =>",[741,1771,755],{"class":751},[741,1773,1774,1777,1779,1781,1783,1785,1787],{"class":743,"line":837},[741,1775,1776],{"class":931},"  const",[741,1778,948],{"class":794},[741,1780,958],{"class":751},[741,1782,943],{"class":846},[741,1784,849],{"class":858},[741,1786,1764],{"class":794},[741,1788,894],{"class":858},[741,1790,1791],{"class":743,"line":855},[741,1792,834],{"emptyLinePlaceholder":833},[741,1794,1795,1797,1800,1802,1805,1808,1810,1812],{"class":743,"line":888},[741,1796,1776],{"class":931},[741,1798,1799],{"class":794}," body",[741,1801,958],{"class":751},[741,1803,1804],{"class":787}," await",[741,1806,1807],{"class":846}," readBody",[741,1809,849],{"class":858},[741,1811,1764],{"class":794},[741,1813,894],{"class":858},[741,1815,1817],{"class":743,"line":1816},7,[741,1818,834],{"emptyLinePlaceholder":833},[741,1820,1822],{"class":743,"line":1821},8,[741,1823,1825],{"class":1824},"sHwdD","  \u002F\u002F ❌ NEVER log the entire request body\n",[741,1827,1829],{"class":743,"line":1828},9,[741,1830,1831],{"class":1824},"  \u002F\u002F log.set({ body })\n",[741,1833,1835],{"class":743,"line":1834},10,[741,1836,834],{"emptyLinePlaceholder":833},[741,1838,1840],{"class":743,"line":1839},11,[741,1841,1842],{"class":1824},"  \u002F\u002F ✅ Explicitly select safe fields\n",[741,1844,1846,1849,1851,1854,1856],{"class":743,"line":1845},12,[741,1847,1848],{"class":794},"  log",[741,1850,1194],{"class":751},[741,1852,1853],{"class":846},"set",[741,1855,849],{"class":858},[741,1857,852],{"class":751},[741,1859,1861,1864,1866],{"class":743,"line":1860},13,[741,1862,1863],{"class":858},"    user",[741,1865,752],{"class":751},[741,1867,755],{"class":751},[741,1869,1871,1874,1876,1878,1880,1883],{"class":743,"line":1870},14,[741,1872,1873],{"class":858},"      id",[741,1875,752],{"class":751},[741,1877,1799],{"class":794},[741,1879,1194],{"class":751},[741,1881,1882],{"class":794},"id",[741,1884,770],{"class":751},[741,1886,1888,1891,1893,1896,1898,1901,1903,1906,1908],{"class":743,"line":1887},15,[741,1889,1890],{"class":858},"      email",[741,1892,752],{"class":751},[741,1894,1895],{"class":846}," maskEmail",[741,1897,849],{"class":858},[741,1899,1900],{"class":794},"body",[741,1902,1194],{"class":751},[741,1904,1905],{"class":794},"email",[741,1907,1226],{"class":858},[741,1909,770],{"class":751},[741,1911,1913],{"class":743,"line":1912},16,[741,1914,1915],{"class":1824},"      \u002F\u002F password: body.password ← NEVER include\n",[741,1917,1919],{"class":743,"line":1918},17,[741,1920,1921],{"class":751},"    },\n",[741,1923,1925,1928],{"class":743,"line":1924},18,[741,1926,1927],{"class":751},"  }",[741,1929,894],{"class":858},[741,1931,1933,1935],{"class":743,"line":1932},19,[741,1934,891],{"class":751},[741,1936,894],{"class":794},[731,1938,1941],{"className":733,"code":1939,"filename":265,"language":735,"meta":1940,"style":737},"import { defineHandler } from 'nitro\u002Fh3'\nimport { useLogger } from 'evlog\u002Fnitro\u002Fv3'\n\nexport default defineHandler(async (event) => {\n  const log = useLogger(event)\n\n  const body = await readBody(event)\n\n  \u002F\u002F ❌ NEVER log the entire request body\n  \u002F\u002F log.set({ body })\n\n  \u002F\u002F ✅ Explicitly select safe fields\n  log.set({\n    user: {\n      id: body.id,\n      email: maskEmail(body.email),\n      \u002F\u002F password: body.password ← NEVER include\n    },\n  })\n})\n","routes\u002Fapi\u002Fuser\u002Fupdate.post.ts",[630,1942,1943,1963,1981,1985,2007,2023,2027,2045,2049,2053,2057,2061,2065,2077,2085,2099,2119,2123,2127,2133],{"__ignoreMap":737},[741,1944,1945,1947,1949,1952,1954,1956,1958,1961],{"class":743,"line":744},[741,1946,788],{"class":787},[741,1948,791],{"class":751},[741,1950,1951],{"class":794}," defineHandler",[741,1953,798],{"class":751},[741,1955,801],{"class":787},[741,1957,804],{"class":751},[741,1959,1960],{"class":807},"nitro\u002Fh3",[741,1962,811],{"class":751},[741,1964,1965,1967,1969,1971,1973,1975,1977,1979],{"class":743,"line":758},[741,1966,788],{"class":787},[741,1968,791],{"class":751},[741,1970,943],{"class":794},[741,1972,798],{"class":751},[741,1974,801],{"class":787},[741,1976,804],{"class":751},[741,1978,826],{"class":807},[741,1980,811],{"class":751},[741,1982,1983],{"class":743,"line":773},[741,1984,834],{"emptyLinePlaceholder":833},[741,1986,1987,1989,1991,1993,1995,1997,1999,2001,2003,2005],{"class":743,"line":837},[741,1988,840],{"class":787},[741,1990,843],{"class":787},[741,1992,1951],{"class":846},[741,1994,849],{"class":794},[741,1996,1757],{"class":931},[741,1998,1760],{"class":751},[741,2000,1764],{"class":1763},[741,2002,1226],{"class":751},[741,2004,1769],{"class":931},[741,2006,755],{"class":751},[741,2008,2009,2011,2013,2015,2017,2019,2021],{"class":743,"line":855},[741,2010,1776],{"class":931},[741,2012,948],{"class":794},[741,2014,958],{"class":751},[741,2016,943],{"class":846},[741,2018,849],{"class":858},[741,2020,1764],{"class":794},[741,2022,894],{"class":858},[741,2024,2025],{"class":743,"line":888},[741,2026,834],{"emptyLinePlaceholder":833},[741,2028,2029,2031,2033,2035,2037,2039,2041,2043],{"class":743,"line":1816},[741,2030,1776],{"class":931},[741,2032,1799],{"class":794},[741,2034,958],{"class":751},[741,2036,1804],{"class":787},[741,2038,1807],{"class":846},[741,2040,849],{"class":858},[741,2042,1764],{"class":794},[741,2044,894],{"class":858},[741,2046,2047],{"class":743,"line":1821},[741,2048,834],{"emptyLinePlaceholder":833},[741,2050,2051],{"class":743,"line":1828},[741,2052,1825],{"class":1824},[741,2054,2055],{"class":743,"line":1834},[741,2056,1831],{"class":1824},[741,2058,2059],{"class":743,"line":1839},[741,2060,834],{"emptyLinePlaceholder":833},[741,2062,2063],{"class":743,"line":1845},[741,2064,1842],{"class":1824},[741,2066,2067,2069,2071,2073,2075],{"class":743,"line":1860},[741,2068,1848],{"class":794},[741,2070,1194],{"class":751},[741,2072,1853],{"class":846},[741,2074,849],{"class":858},[741,2076,852],{"class":751},[741,2078,2079,2081,2083],{"class":743,"line":1870},[741,2080,1863],{"class":858},[741,2082,752],{"class":751},[741,2084,755],{"class":751},[741,2086,2087,2089,2091,2093,2095,2097],{"class":743,"line":1887},[741,2088,1873],{"class":858},[741,2090,752],{"class":751},[741,2092,1799],{"class":794},[741,2094,1194],{"class":751},[741,2096,1882],{"class":794},[741,2098,770],{"class":751},[741,2100,2101,2103,2105,2107,2109,2111,2113,2115,2117],{"class":743,"line":1912},[741,2102,1890],{"class":858},[741,2104,752],{"class":751},[741,2106,1895],{"class":846},[741,2108,849],{"class":858},[741,2110,1900],{"class":794},[741,2112,1194],{"class":751},[741,2114,1905],{"class":794},[741,2116,1226],{"class":858},[741,2118,770],{"class":751},[741,2120,2121],{"class":743,"line":1918},[741,2122,1915],{"class":1824},[741,2124,2125],{"class":743,"line":1924},[741,2126,1921],{"class":751},[741,2128,2129,2131],{"class":743,"line":1932},[741,2130,1927],{"class":751},[741,2132,894],{"class":858},[741,2134,2136,2138],{"class":743,"line":2135},20,[741,2137,891],{"class":751},[741,2139,894],{"class":794},[731,2141,2144],{"className":733,"code":2142,"filename":255,"language":735,"meta":2143,"style":737},"import { withEvlog, useLogger } from '@\u002Flib\u002Fevlog'\n\nexport const POST = withEvlog(async (request: Request) => {\n  const log = useLogger()\n\n  const body = await request.json()\n\n  \u002F\u002F ❌ NEVER log the entire request body\n  \u002F\u002F log.set({ body })\n\n  \u002F\u002F ✅ Explicitly select safe fields\n  log.set({\n    user: {\n      id: body.id,\n      email: maskEmail(body.email),\n      \u002F\u002F password: body.password ← NEVER include\n    },\n  })\n\n  return Response.json({ ok: true })\n})\n","app\u002Fapi\u002Fuser\u002Fupdate\u002Froute.ts",[630,2145,2146,2169,2173,2206,2219,2223,2243,2247,2251,2255,2259,2263,2275,2283,2297,2317,2321,2325,2331,2335,2362],{"__ignoreMap":737},[741,2147,2148,2150,2152,2154,2156,2158,2160,2162,2164,2167],{"class":743,"line":744},[741,2149,788],{"class":787},[741,2151,791],{"class":751},[741,2153,937],{"class":794},[741,2155,940],{"class":751},[741,2157,943],{"class":794},[741,2159,798],{"class":751},[741,2161,801],{"class":787},[741,2163,804],{"class":751},[741,2165,2166],{"class":807},"@\u002Flib\u002Fevlog",[741,2168,811],{"class":751},[741,2170,2171],{"class":743,"line":758},[741,2172,834],{"emptyLinePlaceholder":833},[741,2174,2175,2177,2179,2182,2184,2186,2188,2190,2192,2195,2197,2200,2202,2204],{"class":743,"line":773},[741,2176,840],{"class":787},[741,2178,932],{"class":931},[741,2180,2181],{"class":794}," POST ",[741,2183,1203],{"class":751},[741,2185,937],{"class":846},[741,2187,849],{"class":794},[741,2189,1757],{"class":931},[741,2191,1760],{"class":751},[741,2193,2194],{"class":1763},"request",[741,2196,752],{"class":751},[741,2198,2199],{"class":747}," Request",[741,2201,1226],{"class":751},[741,2203,1769],{"class":931},[741,2205,755],{"class":751},[741,2207,2208,2210,2212,2214,2216],{"class":743,"line":837},[741,2209,1776],{"class":931},[741,2211,948],{"class":794},[741,2213,958],{"class":751},[741,2215,943],{"class":846},[741,2217,2218],{"class":858},"()\n",[741,2220,2221],{"class":743,"line":855},[741,2222,834],{"emptyLinePlaceholder":833},[741,2224,2225,2227,2229,2231,2233,2236,2238,2241],{"class":743,"line":888},[741,2226,1776],{"class":931},[741,2228,1799],{"class":794},[741,2230,958],{"class":751},[741,2232,1804],{"class":787},[741,2234,2235],{"class":794}," request",[741,2237,1194],{"class":751},[741,2239,2240],{"class":846},"json",[741,2242,2218],{"class":858},[741,2244,2245],{"class":743,"line":1816},[741,2246,834],{"emptyLinePlaceholder":833},[741,2248,2249],{"class":743,"line":1821},[741,2250,1825],{"class":1824},[741,2252,2253],{"class":743,"line":1828},[741,2254,1831],{"class":1824},[741,2256,2257],{"class":743,"line":1834},[741,2258,834],{"emptyLinePlaceholder":833},[741,2260,2261],{"class":743,"line":1839},[741,2262,1842],{"class":1824},[741,2264,2265,2267,2269,2271,2273],{"class":743,"line":1845},[741,2266,1848],{"class":794},[741,2268,1194],{"class":751},[741,2270,1853],{"class":846},[741,2272,849],{"class":858},[741,2274,852],{"class":751},[741,2276,2277,2279,2281],{"class":743,"line":1860},[741,2278,1863],{"class":858},[741,2280,752],{"class":751},[741,2282,755],{"class":751},[741,2284,2285,2287,2289,2291,2293,2295],{"class":743,"line":1870},[741,2286,1873],{"class":858},[741,2288,752],{"class":751},[741,2290,1799],{"class":794},[741,2292,1194],{"class":751},[741,2294,1882],{"class":794},[741,2296,770],{"class":751},[741,2298,2299,2301,2303,2305,2307,2309,2311,2313,2315],{"class":743,"line":1887},[741,2300,1890],{"class":858},[741,2302,752],{"class":751},[741,2304,1895],{"class":846},[741,2306,849],{"class":858},[741,2308,1900],{"class":794},[741,2310,1194],{"class":751},[741,2312,1905],{"class":794},[741,2314,1226],{"class":858},[741,2316,770],{"class":751},[741,2318,2319],{"class":743,"line":1912},[741,2320,1915],{"class":1824},[741,2322,2323],{"class":743,"line":1918},[741,2324,1921],{"class":751},[741,2326,2327,2329],{"class":743,"line":1924},[741,2328,1927],{"class":751},[741,2330,894],{"class":858},[741,2332,2333],{"class":743,"line":1932},[741,2334,834],{"emptyLinePlaceholder":833},[741,2336,2337,2340,2343,2345,2347,2349,2351,2354,2356,2358,2360],{"class":743,"line":2135},[741,2338,2339],{"class":787},"  return",[741,2341,2342],{"class":794}," Response",[741,2344,1194],{"class":751},[741,2346,2240],{"class":846},[741,2348,849],{"class":858},[741,2350,871],{"class":751},[741,2352,2353],{"class":858}," ok",[741,2355,752],{"class":751},[741,2357,767],{"class":766},[741,2359,798],{"class":751},[741,2361,894],{"class":858},[741,2363,2365,2367],{"class":743,"line":2364},21,[741,2366,891],{"class":751},[741,2368,894],{"class":794},[731,2370,2372],{"className":733,"code":2371,"filename":285,"language":735,"meta":1237,"style":737},"app.post('\u002Fapi\u002Fuser\u002Fupdate', async (c) => {\n  const log = c.get('log')\n\n  const body = await c.req.json()\n\n  \u002F\u002F ❌ NEVER log the entire request body\n  \u002F\u002F log.set({ body })\n\n  \u002F\u002F ✅ Explicitly select safe fields\n  log.set({\n    user: {\n      id: body.id,\n      email: maskEmail(body.email),\n      \u002F\u002F password: body.password ← NEVER include\n    },\n  })\n\n  return c.json({ ok: true })\n})\n",[630,2373,2374,2408,2435,2439,2462,2466,2470,2474,2478,2482,2494,2502,2516,2536,2540,2544,2550,2554,2578],{"__ignoreMap":737},[741,2375,2376,2378,2380,2383,2385,2387,2390,2392,2394,2397,2399,2402,2404,2406],{"class":743,"line":744},[741,2377,1267],{"class":794},[741,2379,1194],{"class":751},[741,2381,2382],{"class":846},"post",[741,2384,849],{"class":794},[741,2386,979],{"class":751},[741,2388,2389],{"class":807},"\u002Fapi\u002Fuser\u002Fupdate",[741,2391,979],{"class":751},[741,2393,940],{"class":751},[741,2395,2396],{"class":931}," async",[741,2398,1760],{"class":751},[741,2400,2401],{"class":1763},"c",[741,2403,1226],{"class":751},[741,2405,1769],{"class":931},[741,2407,755],{"class":751},[741,2409,2410,2412,2414,2416,2419,2421,2424,2426,2428,2431,2433],{"class":743,"line":758},[741,2411,1776],{"class":931},[741,2413,948],{"class":794},[741,2415,958],{"class":751},[741,2417,2418],{"class":794}," c",[741,2420,1194],{"class":751},[741,2422,2423],{"class":846},"get",[741,2425,849],{"class":858},[741,2427,979],{"class":751},[741,2429,2430],{"class":807},"log",[741,2432,979],{"class":751},[741,2434,894],{"class":858},[741,2436,2437],{"class":743,"line":773},[741,2438,834],{"emptyLinePlaceholder":833},[741,2440,2441,2443,2445,2447,2449,2451,2453,2456,2458,2460],{"class":743,"line":837},[741,2442,1776],{"class":931},[741,2444,1799],{"class":794},[741,2446,958],{"class":751},[741,2448,1804],{"class":787},[741,2450,2418],{"class":794},[741,2452,1194],{"class":751},[741,2454,2455],{"class":794},"req",[741,2457,1194],{"class":751},[741,2459,2240],{"class":846},[741,2461,2218],{"class":858},[741,2463,2464],{"class":743,"line":855},[741,2465,834],{"emptyLinePlaceholder":833},[741,2467,2468],{"class":743,"line":888},[741,2469,1825],{"class":1824},[741,2471,2472],{"class":743,"line":1816},[741,2473,1831],{"class":1824},[741,2475,2476],{"class":743,"line":1821},[741,2477,834],{"emptyLinePlaceholder":833},[741,2479,2480],{"class":743,"line":1828},[741,2481,1842],{"class":1824},[741,2483,2484,2486,2488,2490,2492],{"class":743,"line":1834},[741,2485,1848],{"class":794},[741,2487,1194],{"class":751},[741,2489,1853],{"class":846},[741,2491,849],{"class":858},[741,2493,852],{"class":751},[741,2495,2496,2498,2500],{"class":743,"line":1839},[741,2497,1863],{"class":858},[741,2499,752],{"class":751},[741,2501,755],{"class":751},[741,2503,2504,2506,2508,2510,2512,2514],{"class":743,"line":1845},[741,2505,1873],{"class":858},[741,2507,752],{"class":751},[741,2509,1799],{"class":794},[741,2511,1194],{"class":751},[741,2513,1882],{"class":794},[741,2515,770],{"class":751},[741,2517,2518,2520,2522,2524,2526,2528,2530,2532,2534],{"class":743,"line":1860},[741,2519,1890],{"class":858},[741,2521,752],{"class":751},[741,2523,1895],{"class":846},[741,2525,849],{"class":858},[741,2527,1900],{"class":794},[741,2529,1194],{"class":751},[741,2531,1905],{"class":794},[741,2533,1226],{"class":858},[741,2535,770],{"class":751},[741,2537,2538],{"class":743,"line":1870},[741,2539,1915],{"class":1824},[741,2541,2542],{"class":743,"line":1887},[741,2543,1921],{"class":751},[741,2545,2546,2548],{"class":743,"line":1912},[741,2547,1927],{"class":751},[741,2549,894],{"class":858},[741,2551,2552],{"class":743,"line":1918},[741,2553,834],{"emptyLinePlaceholder":833},[741,2555,2556,2558,2560,2562,2564,2566,2568,2570,2572,2574,2576],{"class":743,"line":1924},[741,2557,2339],{"class":787},[741,2559,2418],{"class":794},[741,2561,1194],{"class":751},[741,2563,2240],{"class":846},[741,2565,849],{"class":858},[741,2567,871],{"class":751},[741,2569,2353],{"class":858},[741,2571,752],{"class":751},[741,2573,767],{"class":766},[741,2575,798],{"class":751},[741,2577,894],{"class":858},[741,2579,2580,2582],{"class":743,"line":1932},[741,2581,891],{"class":751},[741,2583,894],{"class":794},[731,2585,2587],{"className":733,"code":2586,"filename":280,"language":735,"meta":1237,"style":737},"app.post('\u002Fapi\u002Fuser\u002Fupdate', async (req, res) => {\n  const log = req.log\n\n  const body = req.body\n\n  \u002F\u002F ❌ NEVER log the entire request body\n  \u002F\u002F log.set({ body })\n\n  \u002F\u002F ✅ Explicitly select safe fields\n  log.set({\n    user: {\n      id: body.id,\n      email: maskEmail(body.email),\n      \u002F\u002F password: body.password ← NEVER include\n    },\n  })\n\n  res.json({ ok: true })\n})\n",[630,2588,2589,2624,2640,2644,2659,2663,2667,2671,2675,2679,2691,2699,2713,2733,2737,2741,2747,2751,2774],{"__ignoreMap":737},[741,2590,2591,2593,2595,2597,2599,2601,2603,2605,2607,2609,2611,2613,2615,2618,2620,2622],{"class":743,"line":744},[741,2592,1267],{"class":794},[741,2594,1194],{"class":751},[741,2596,2382],{"class":846},[741,2598,849],{"class":794},[741,2600,979],{"class":751},[741,2602,2389],{"class":807},[741,2604,979],{"class":751},[741,2606,940],{"class":751},[741,2608,2396],{"class":931},[741,2610,1760],{"class":751},[741,2612,2455],{"class":1763},[741,2614,940],{"class":751},[741,2616,2617],{"class":1763}," res",[741,2619,1226],{"class":751},[741,2621,1769],{"class":931},[741,2623,755],{"class":751},[741,2625,2626,2628,2630,2632,2635,2637],{"class":743,"line":758},[741,2627,1776],{"class":931},[741,2629,948],{"class":794},[741,2631,958],{"class":751},[741,2633,2634],{"class":794}," req",[741,2636,1194],{"class":751},[741,2638,2639],{"class":794},"log\n",[741,2641,2642],{"class":743,"line":773},[741,2643,834],{"emptyLinePlaceholder":833},[741,2645,2646,2648,2650,2652,2654,2656],{"class":743,"line":837},[741,2647,1776],{"class":931},[741,2649,1799],{"class":794},[741,2651,958],{"class":751},[741,2653,2634],{"class":794},[741,2655,1194],{"class":751},[741,2657,2658],{"class":794},"body\n",[741,2660,2661],{"class":743,"line":855},[741,2662,834],{"emptyLinePlaceholder":833},[741,2664,2665],{"class":743,"line":888},[741,2666,1825],{"class":1824},[741,2668,2669],{"class":743,"line":1816},[741,2670,1831],{"class":1824},[741,2672,2673],{"class":743,"line":1821},[741,2674,834],{"emptyLinePlaceholder":833},[741,2676,2677],{"class":743,"line":1828},[741,2678,1842],{"class":1824},[741,2680,2681,2683,2685,2687,2689],{"class":743,"line":1834},[741,2682,1848],{"class":794},[741,2684,1194],{"class":751},[741,2686,1853],{"class":846},[741,2688,849],{"class":858},[741,2690,852],{"class":751},[741,2692,2693,2695,2697],{"class":743,"line":1839},[741,2694,1863],{"class":858},[741,2696,752],{"class":751},[741,2698,755],{"class":751},[741,2700,2701,2703,2705,2707,2709,2711],{"class":743,"line":1845},[741,2702,1873],{"class":858},[741,2704,752],{"class":751},[741,2706,1799],{"class":794},[741,2708,1194],{"class":751},[741,2710,1882],{"class":794},[741,2712,770],{"class":751},[741,2714,2715,2717,2719,2721,2723,2725,2727,2729,2731],{"class":743,"line":1860},[741,2716,1890],{"class":858},[741,2718,752],{"class":751},[741,2720,1895],{"class":846},[741,2722,849],{"class":858},[741,2724,1900],{"class":794},[741,2726,1194],{"class":751},[741,2728,1905],{"class":794},[741,2730,1226],{"class":858},[741,2732,770],{"class":751},[741,2734,2735],{"class":743,"line":1870},[741,2736,1915],{"class":1824},[741,2738,2739],{"class":743,"line":1887},[741,2740,1921],{"class":751},[741,2742,2743,2745],{"class":743,"line":1912},[741,2744,1927],{"class":751},[741,2746,894],{"class":858},[741,2748,2749],{"class":743,"line":1918},[741,2750,834],{"emptyLinePlaceholder":833},[741,2752,2753,2756,2758,2760,2762,2764,2766,2768,2770,2772],{"class":743,"line":1924},[741,2754,2755],{"class":794},"  res",[741,2757,1194],{"class":751},[741,2759,2240],{"class":846},[741,2761,849],{"class":858},[741,2763,871],{"class":751},[741,2765,2353],{"class":858},[741,2767,752],{"class":751},[741,2769,767],{"class":766},[741,2771,798],{"class":751},[741,2773,894],{"class":858},[741,2775,2776,2778],{"class":743,"line":1932},[741,2777,891],{"class":751},[741,2779,894],{"class":794},[1707,2781,2783],{"id":2782},"helper-functions","Helper Functions",[618,2785,2786],{},"Create utility functions to sanitize common data types:",[2788,2789,2790],"code-collapse",{},[731,2791,2794],{"className":733,"code":2792,"filename":2793,"language":735,"meta":737,"style":737},"\u002F** Masks email: john.doe@example.com → j***.d**@e***.com *\u002F\nexport function maskEmail(email: string): string {\n  const [local, domain] = email.split('@')\n  if (!domain) return '***'\n  const [domainName, tld] = domain.split('.')\n  return `${local[0]}***@${domainName[0]}***.${tld}`\n}\n\n\u002F** Masks card number: 4242424242424242 → ****4242 *\u002F\nexport function maskCard(card: string): string {\n  return `****${card.slice(-4)}`\n}\n\n\u002F** Truncates long IDs for readability *\u002F\nexport function truncateId(id: string, length = 8): string {\n  if (id.length \u003C= length) return id\n  return `${id.slice(0, length)}...`\n}\n\n\u002F** Removes sensitive fields from an object *\u002F\nexport function sanitize\u003CT extends Record\u003Cstring, unknown>>(\n  obj: T,\n  sensitiveKeys: string[] = ['password', 'token', 'secret', 'apiKey', 'authorization']\n): Partial\u003CT> {\n  const result = { ...obj }\n  for (const key of sensitiveKeys) {\n    if (key in result) {\n      delete result[key]\n    }\n  }\n  return result\n}\n","server\u002Futils\u002Fsanitize.ts",[630,2795,2796,2811,2836,2873,2899,2933,2977,2981,2985,2990,3014,3045,3049,3053,3058,3091,3116,3145,3149,3153,3158,3192,3205,3266,3283,3304,3327,3347,3362,3368,3374,3382],{"__ignoreMap":737},[741,2797,2798,2801,2804,2808],{"class":743,"line":744},[741,2799,2800],{"class":1824},"\u002F** Masks email: john.doe",[741,2802,2803],{"class":787},"@",[741,2805,2807],{"class":2806},"s6hCs","example",[741,2809,2810],{"class":1824},".com → j***.d**@e***.com *\u002F\n",[741,2812,2813,2815,2818,2820,2822,2824,2826,2829,2832,2834],{"class":743,"line":758},[741,2814,840],{"class":787},[741,2816,2817],{"class":931}," function",[741,2819,1895],{"class":846},[741,2821,849],{"class":751},[741,2823,1905],{"class":1763},[741,2825,752],{"class":751},[741,2827,2828],{"class":747}," string",[741,2830,2831],{"class":751},"):",[741,2833,2828],{"class":747},[741,2835,755],{"class":751},[741,2837,2838,2840,2842,2845,2847,2850,2853,2855,2858,2860,2863,2865,2867,2869,2871],{"class":743,"line":773},[741,2839,1776],{"class":931},[741,2841,864],{"class":751},[741,2843,2844],{"class":794},"local",[741,2846,940],{"class":751},[741,2848,2849],{"class":794}," domain",[741,2851,2852],{"class":751},"]",[741,2854,958],{"class":751},[741,2856,2857],{"class":794}," email",[741,2859,1194],{"class":751},[741,2861,2862],{"class":846},"split",[741,2864,849],{"class":858},[741,2866,979],{"class":751},[741,2868,2803],{"class":807},[741,2870,979],{"class":751},[741,2872,894],{"class":858},[741,2874,2875,2878,2880,2883,2886,2889,2892,2894,2897],{"class":743,"line":837},[741,2876,2877],{"class":787},"  if",[741,2879,1760],{"class":858},[741,2881,2882],{"class":751},"!",[741,2884,2885],{"class":794},"domain",[741,2887,2888],{"class":858},") ",[741,2890,2891],{"class":787},"return",[741,2893,804],{"class":751},[741,2895,2896],{"class":807},"***",[741,2898,811],{"class":751},[741,2900,2901,2903,2905,2908,2910,2913,2915,2917,2919,2921,2923,2925,2927,2929,2931],{"class":743,"line":855},[741,2902,1776],{"class":931},[741,2904,864],{"class":751},[741,2906,2907],{"class":794},"domainName",[741,2909,940],{"class":751},[741,2911,2912],{"class":794}," tld",[741,2914,2852],{"class":751},[741,2916,958],{"class":751},[741,2918,2849],{"class":794},[741,2920,1194],{"class":751},[741,2922,2862],{"class":846},[741,2924,849],{"class":858},[741,2926,979],{"class":751},[741,2928,1194],{"class":807},[741,2930,979],{"class":751},[741,2932,894],{"class":858},[741,2934,2935,2937,2940,2943,2947,2949,2951,2954,2957,2960,2962,2964,2966,2969,2971,2974],{"class":743,"line":888},[741,2936,2339],{"class":787},[741,2938,2939],{"class":751}," `${",[741,2941,2942],{"class":794},"local[",[741,2944,2946],{"class":2945},"sbssI","0",[741,2948,2852],{"class":794},[741,2950,891],{"class":751},[741,2952,2953],{"class":807},"***@",[741,2955,2956],{"class":751},"${",[741,2958,2959],{"class":794},"domainName[",[741,2961,2946],{"class":2945},[741,2963,2852],{"class":794},[741,2965,891],{"class":751},[741,2967,2968],{"class":807},"***.",[741,2970,2956],{"class":751},[741,2972,2973],{"class":794},"tld",[741,2975,2976],{"class":751},"}`\n",[741,2978,2979],{"class":743,"line":1816},[741,2980,776],{"class":751},[741,2982,2983],{"class":743,"line":1821},[741,2984,834],{"emptyLinePlaceholder":833},[741,2986,2987],{"class":743,"line":1828},[741,2988,2989],{"class":1824},"\u002F** Masks card number: 4242424242424242 → ****4242 *\u002F\n",[741,2991,2992,2994,2996,2999,3001,3004,3006,3008,3010,3012],{"class":743,"line":1834},[741,2993,840],{"class":787},[741,2995,2817],{"class":931},[741,2997,2998],{"class":846}," maskCard",[741,3000,849],{"class":751},[741,3002,3003],{"class":1763},"card",[741,3005,752],{"class":751},[741,3007,2828],{"class":747},[741,3009,2831],{"class":751},[741,3011,2828],{"class":747},[741,3013,755],{"class":751},[741,3015,3016,3018,3021,3024,3026,3028,3030,3033,3035,3038,3041,3043],{"class":743,"line":1839},[741,3017,2339],{"class":787},[741,3019,3020],{"class":751}," `",[741,3022,3023],{"class":807},"****",[741,3025,2956],{"class":751},[741,3027,3003],{"class":794},[741,3029,1194],{"class":751},[741,3031,3032],{"class":846},"slice",[741,3034,849],{"class":794},[741,3036,3037],{"class":751},"-",[741,3039,3040],{"class":2945},"4",[741,3042,1226],{"class":794},[741,3044,2976],{"class":751},[741,3046,3047],{"class":743,"line":1845},[741,3048,776],{"class":751},[741,3050,3051],{"class":743,"line":1860},[741,3052,834],{"emptyLinePlaceholder":833},[741,3054,3055],{"class":743,"line":1870},[741,3056,3057],{"class":1824},"\u002F** Truncates long IDs for readability *\u002F\n",[741,3059,3060,3062,3064,3067,3069,3071,3073,3075,3077,3080,3082,3085,3087,3089],{"class":743,"line":1887},[741,3061,840],{"class":787},[741,3063,2817],{"class":931},[741,3065,3066],{"class":846}," truncateId",[741,3068,849],{"class":751},[741,3070,1882],{"class":1763},[741,3072,752],{"class":751},[741,3074,2828],{"class":747},[741,3076,940],{"class":751},[741,3078,3079],{"class":1763}," length",[741,3081,958],{"class":751},[741,3083,3084],{"class":2945}," 8",[741,3086,2831],{"class":751},[741,3088,2828],{"class":747},[741,3090,755],{"class":751},[741,3092,3093,3095,3097,3099,3101,3104,3107,3109,3111,3113],{"class":743,"line":1912},[741,3094,2877],{"class":787},[741,3096,1760],{"class":858},[741,3098,1882],{"class":794},[741,3100,1194],{"class":751},[741,3102,3103],{"class":794},"length",[741,3105,3106],{"class":751}," \u003C=",[741,3108,3079],{"class":794},[741,3110,2888],{"class":858},[741,3112,2891],{"class":787},[741,3114,3115],{"class":794}," id\n",[741,3117,3118,3120,3122,3124,3126,3128,3130,3132,3134,3137,3139,3142],{"class":743,"line":1918},[741,3119,2339],{"class":787},[741,3121,2939],{"class":751},[741,3123,1882],{"class":794},[741,3125,1194],{"class":751},[741,3127,3032],{"class":846},[741,3129,849],{"class":794},[741,3131,2946],{"class":2945},[741,3133,940],{"class":751},[741,3135,3136],{"class":794}," length)",[741,3138,891],{"class":751},[741,3140,3141],{"class":807},"...",[741,3143,3144],{"class":751},"`\n",[741,3146,3147],{"class":743,"line":1924},[741,3148,776],{"class":751},[741,3150,3151],{"class":743,"line":1932},[741,3152,834],{"emptyLinePlaceholder":833},[741,3154,3155],{"class":743,"line":2135},[741,3156,3157],{"class":1824},"\u002F** Removes sensitive fields from an object *\u002F\n",[741,3159,3160,3162,3164,3167,3170,3173,3176,3179,3181,3184,3186,3189],{"class":743,"line":2364},[741,3161,840],{"class":787},[741,3163,2817],{"class":931},[741,3165,3166],{"class":846}," sanitize",[741,3168,3169],{"class":751},"\u003C",[741,3171,3172],{"class":747},"T",[741,3174,3175],{"class":931}," extends",[741,3177,3178],{"class":747}," Record",[741,3180,3169],{"class":751},[741,3182,3183],{"class":747},"string",[741,3185,940],{"class":751},[741,3187,3188],{"class":747}," unknown",[741,3190,3191],{"class":751},">>(\n",[741,3193,3195,3198,3200,3203],{"class":743,"line":3194},22,[741,3196,3197],{"class":1763},"  obj",[741,3199,752],{"class":751},[741,3201,3202],{"class":747}," T",[741,3204,770],{"class":751},[741,3206,3208,3211,3213,3215,3217,3219,3221,3223,3226,3228,3230,3232,3235,3237,3239,3241,3244,3246,3248,3250,3253,3255,3257,3259,3262,3264],{"class":743,"line":3207},23,[741,3209,3210],{"class":1763},"  sensitiveKeys",[741,3212,752],{"class":751},[741,3214,2828],{"class":747},[741,3216,1200],{"class":794},[741,3218,1203],{"class":751},[741,3220,864],{"class":794},[741,3222,979],{"class":751},[741,3224,3225],{"class":807},"password",[741,3227,979],{"class":751},[741,3229,940],{"class":751},[741,3231,804],{"class":751},[741,3233,3234],{"class":807},"token",[741,3236,979],{"class":751},[741,3238,940],{"class":751},[741,3240,804],{"class":751},[741,3242,3243],{"class":807},"secret",[741,3245,979],{"class":751},[741,3247,940],{"class":751},[741,3249,804],{"class":751},[741,3251,3252],{"class":807},"apiKey",[741,3254,979],{"class":751},[741,3256,940],{"class":751},[741,3258,804],{"class":751},[741,3260,3261],{"class":807},"authorization",[741,3263,979],{"class":751},[741,3265,1233],{"class":794},[741,3267,3269,3271,3274,3276,3278,3281],{"class":743,"line":3268},24,[741,3270,2831],{"class":751},[741,3272,3273],{"class":747}," Partial",[741,3275,3169],{"class":751},[741,3277,3172],{"class":747},[741,3279,3280],{"class":751},">",[741,3282,755],{"class":751},[741,3284,3286,3288,3291,3293,3295,3298,3301],{"class":743,"line":3285},25,[741,3287,1776],{"class":931},[741,3289,3290],{"class":794}," result",[741,3292,958],{"class":751},[741,3294,791],{"class":751},[741,3296,3297],{"class":751}," ...",[741,3299,3300],{"class":794},"obj",[741,3302,3303],{"class":751}," }\n",[741,3305,3307,3310,3312,3314,3317,3320,3323,3325],{"class":743,"line":3306},26,[741,3308,3309],{"class":787},"  for",[741,3311,1760],{"class":858},[741,3313,1545],{"class":931},[741,3315,3316],{"class":794}," key",[741,3318,3319],{"class":751}," of",[741,3321,3322],{"class":794}," sensitiveKeys",[741,3324,2888],{"class":858},[741,3326,852],{"class":751},[741,3328,3330,3333,3335,3338,3341,3343,3345],{"class":743,"line":3329},27,[741,3331,3332],{"class":787},"    if",[741,3334,1760],{"class":858},[741,3336,3337],{"class":794},"key",[741,3339,3340],{"class":751}," in",[741,3342,3290],{"class":794},[741,3344,2888],{"class":858},[741,3346,852],{"class":751},[741,3348,3350,3353,3355,3358,3360],{"class":743,"line":3349},28,[741,3351,3352],{"class":751},"      delete",[741,3354,3290],{"class":794},[741,3356,3357],{"class":858},"[",[741,3359,3337],{"class":794},[741,3361,1233],{"class":858},[741,3363,3365],{"class":743,"line":3364},29,[741,3366,3367],{"class":751},"    }\n",[741,3369,3371],{"class":743,"line":3370},30,[741,3372,3373],{"class":751},"  }\n",[741,3375,3377,3379],{"class":743,"line":3376},31,[741,3378,2339],{"class":787},[741,3380,3381],{"class":794}," result\n",[741,3383,3385],{"class":743,"line":3384},32,[741,3386,776],{"class":751},[618,3388,3389],{},"Usage:",[728,3391,3392,3605,3829,4071,4303],{},[731,3393,3396],{"className":733,"code":3394,"filename":250,"language":735,"meta":3395,"style":737},"import { useLogger } from 'evlog'\n\nexport default defineEventHandler(async (event) => {\n  const log = useLogger(event)\n\n  const { user, card } = await readBody(event)\n\n  log.set({\n    user: {\n      id: user.id,\n      email: maskEmail(user.email),\n    },\n    payment: {\n      last4: maskCard(card.number),\n      \u002F\u002F ❌ Never: number, cvv, expiry\n    },\n  })\n})\n","server\u002Fapi\u002Fcheckout.post.ts",[630,3397,3398,3416,3420,3442,3458,3462,3490,3494,3506,3514,3528,3549,3553,3562,3584,3589,3593,3599],{"__ignoreMap":737},[741,3399,3400,3402,3404,3406,3408,3410,3412,3414],{"class":743,"line":744},[741,3401,788],{"class":787},[741,3403,791],{"class":751},[741,3405,943],{"class":794},[741,3407,798],{"class":751},[741,3409,801],{"class":787},[741,3411,804],{"class":751},[741,3413,748],{"class":807},[741,3415,811],{"class":751},[741,3417,3418],{"class":743,"line":758},[741,3419,834],{"emptyLinePlaceholder":833},[741,3421,3422,3424,3426,3428,3430,3432,3434,3436,3438,3440],{"class":743,"line":773},[741,3423,840],{"class":787},[741,3425,843],{"class":787},[741,3427,1752],{"class":846},[741,3429,849],{"class":794},[741,3431,1757],{"class":931},[741,3433,1760],{"class":751},[741,3435,1764],{"class":1763},[741,3437,1226],{"class":751},[741,3439,1769],{"class":931},[741,3441,755],{"class":751},[741,3443,3444,3446,3448,3450,3452,3454,3456],{"class":743,"line":837},[741,3445,1776],{"class":931},[741,3447,948],{"class":794},[741,3449,958],{"class":751},[741,3451,943],{"class":846},[741,3453,849],{"class":858},[741,3455,1764],{"class":794},[741,3457,894],{"class":858},[741,3459,3460],{"class":743,"line":855},[741,3461,834],{"emptyLinePlaceholder":833},[741,3463,3464,3466,3468,3471,3473,3476,3478,3480,3482,3484,3486,3488],{"class":743,"line":888},[741,3465,1776],{"class":931},[741,3467,791],{"class":751},[741,3469,3470],{"class":794}," user",[741,3472,940],{"class":751},[741,3474,3475],{"class":794}," card",[741,3477,798],{"class":751},[741,3479,958],{"class":751},[741,3481,1804],{"class":787},[741,3483,1807],{"class":846},[741,3485,849],{"class":858},[741,3487,1764],{"class":794},[741,3489,894],{"class":858},[741,3491,3492],{"class":743,"line":1816},[741,3493,834],{"emptyLinePlaceholder":833},[741,3495,3496,3498,3500,3502,3504],{"class":743,"line":1821},[741,3497,1848],{"class":794},[741,3499,1194],{"class":751},[741,3501,1853],{"class":846},[741,3503,849],{"class":858},[741,3505,852],{"class":751},[741,3507,3508,3510,3512],{"class":743,"line":1828},[741,3509,1863],{"class":858},[741,3511,752],{"class":751},[741,3513,755],{"class":751},[741,3515,3516,3518,3520,3522,3524,3526],{"class":743,"line":1834},[741,3517,1873],{"class":858},[741,3519,752],{"class":751},[741,3521,3470],{"class":794},[741,3523,1194],{"class":751},[741,3525,1882],{"class":794},[741,3527,770],{"class":751},[741,3529,3530,3532,3534,3536,3538,3541,3543,3545,3547],{"class":743,"line":1839},[741,3531,1890],{"class":858},[741,3533,752],{"class":751},[741,3535,1895],{"class":846},[741,3537,849],{"class":858},[741,3539,3540],{"class":794},"user",[741,3542,1194],{"class":751},[741,3544,1905],{"class":794},[741,3546,1226],{"class":858},[741,3548,770],{"class":751},[741,3550,3551],{"class":743,"line":1845},[741,3552,1921],{"class":751},[741,3554,3555,3558,3560],{"class":743,"line":1860},[741,3556,3557],{"class":858},"    payment",[741,3559,752],{"class":751},[741,3561,755],{"class":751},[741,3563,3564,3567,3569,3571,3573,3575,3577,3580,3582],{"class":743,"line":1870},[741,3565,3566],{"class":858},"      last4",[741,3568,752],{"class":751},[741,3570,2998],{"class":846},[741,3572,849],{"class":858},[741,3574,3003],{"class":794},[741,3576,1194],{"class":751},[741,3578,3579],{"class":794},"number",[741,3581,1226],{"class":858},[741,3583,770],{"class":751},[741,3585,3586],{"class":743,"line":1887},[741,3587,3588],{"class":1824},"      \u002F\u002F ❌ Never: number, cvv, expiry\n",[741,3590,3591],{"class":743,"line":1912},[741,3592,1921],{"class":751},[741,3594,3595,3597],{"class":743,"line":1918},[741,3596,1927],{"class":751},[741,3598,894],{"class":858},[741,3600,3601,3603],{"class":743,"line":1924},[741,3602,891],{"class":751},[741,3604,894],{"class":794},[731,3606,3609],{"className":733,"code":3607,"filename":265,"language":735,"meta":3608,"style":737},"import { defineHandler } from 'nitro\u002Fh3'\nimport { useLogger } from 'evlog\u002Fnitro\u002Fv3'\n\nexport default defineHandler(async (event) => {\n  const log = useLogger(event)\n\n  const { user, card } = await readBody(event)\n\n  log.set({\n    user: {\n      id: user.id,\n      email: maskEmail(user.email),\n    },\n    payment: {\n      last4: maskCard(card.number),\n      \u002F\u002F ❌ Never: number, cvv, expiry\n    },\n  })\n})\n","routes\u002Fapi\u002Fcheckout.post.ts",[630,3610,3611,3629,3647,3651,3673,3689,3693,3719,3723,3735,3743,3757,3777,3781,3789,3809,3813,3817,3823],{"__ignoreMap":737},[741,3612,3613,3615,3617,3619,3621,3623,3625,3627],{"class":743,"line":744},[741,3614,788],{"class":787},[741,3616,791],{"class":751},[741,3618,1951],{"class":794},[741,3620,798],{"class":751},[741,3622,801],{"class":787},[741,3624,804],{"class":751},[741,3626,1960],{"class":807},[741,3628,811],{"class":751},[741,3630,3631,3633,3635,3637,3639,3641,3643,3645],{"class":743,"line":758},[741,3632,788],{"class":787},[741,3634,791],{"class":751},[741,3636,943],{"class":794},[741,3638,798],{"class":751},[741,3640,801],{"class":787},[741,3642,804],{"class":751},[741,3644,826],{"class":807},[741,3646,811],{"class":751},[741,3648,3649],{"class":743,"line":773},[741,3650,834],{"emptyLinePlaceholder":833},[741,3652,3653,3655,3657,3659,3661,3663,3665,3667,3669,3671],{"class":743,"line":837},[741,3654,840],{"class":787},[741,3656,843],{"class":787},[741,3658,1951],{"class":846},[741,3660,849],{"class":794},[741,3662,1757],{"class":931},[741,3664,1760],{"class":751},[741,3666,1764],{"class":1763},[741,3668,1226],{"class":751},[741,3670,1769],{"class":931},[741,3672,755],{"class":751},[741,3674,3675,3677,3679,3681,3683,3685,3687],{"class":743,"line":855},[741,3676,1776],{"class":931},[741,3678,948],{"class":794},[741,3680,958],{"class":751},[741,3682,943],{"class":846},[741,3684,849],{"class":858},[741,3686,1764],{"class":794},[741,3688,894],{"class":858},[741,3690,3691],{"class":743,"line":888},[741,3692,834],{"emptyLinePlaceholder":833},[741,3694,3695,3697,3699,3701,3703,3705,3707,3709,3711,3713,3715,3717],{"class":743,"line":1816},[741,3696,1776],{"class":931},[741,3698,791],{"class":751},[741,3700,3470],{"class":794},[741,3702,940],{"class":751},[741,3704,3475],{"class":794},[741,3706,798],{"class":751},[741,3708,958],{"class":751},[741,3710,1804],{"class":787},[741,3712,1807],{"class":846},[741,3714,849],{"class":858},[741,3716,1764],{"class":794},[741,3718,894],{"class":858},[741,3720,3721],{"class":743,"line":1821},[741,3722,834],{"emptyLinePlaceholder":833},[741,3724,3725,3727,3729,3731,3733],{"class":743,"line":1828},[741,3726,1848],{"class":794},[741,3728,1194],{"class":751},[741,3730,1853],{"class":846},[741,3732,849],{"class":858},[741,3734,852],{"class":751},[741,3736,3737,3739,3741],{"class":743,"line":1834},[741,3738,1863],{"class":858},[741,3740,752],{"class":751},[741,3742,755],{"class":751},[741,3744,3745,3747,3749,3751,3753,3755],{"class":743,"line":1839},[741,3746,1873],{"class":858},[741,3748,752],{"class":751},[741,3750,3470],{"class":794},[741,3752,1194],{"class":751},[741,3754,1882],{"class":794},[741,3756,770],{"class":751},[741,3758,3759,3761,3763,3765,3767,3769,3771,3773,3775],{"class":743,"line":1845},[741,3760,1890],{"class":858},[741,3762,752],{"class":751},[741,3764,1895],{"class":846},[741,3766,849],{"class":858},[741,3768,3540],{"class":794},[741,3770,1194],{"class":751},[741,3772,1905],{"class":794},[741,3774,1226],{"class":858},[741,3776,770],{"class":751},[741,3778,3779],{"class":743,"line":1860},[741,3780,1921],{"class":751},[741,3782,3783,3785,3787],{"class":743,"line":1870},[741,3784,3557],{"class":858},[741,3786,752],{"class":751},[741,3788,755],{"class":751},[741,3790,3791,3793,3795,3797,3799,3801,3803,3805,3807],{"class":743,"line":1887},[741,3792,3566],{"class":858},[741,3794,752],{"class":751},[741,3796,2998],{"class":846},[741,3798,849],{"class":858},[741,3800,3003],{"class":794},[741,3802,1194],{"class":751},[741,3804,3579],{"class":794},[741,3806,1226],{"class":858},[741,3808,770],{"class":751},[741,3810,3811],{"class":743,"line":1912},[741,3812,3588],{"class":1824},[741,3814,3815],{"class":743,"line":1918},[741,3816,1921],{"class":751},[741,3818,3819,3821],{"class":743,"line":1924},[741,3820,1927],{"class":751},[741,3822,894],{"class":858},[741,3824,3825,3827],{"class":743,"line":1932},[741,3826,891],{"class":751},[741,3828,894],{"class":794},[731,3830,3833],{"className":733,"code":3831,"filename":255,"language":735,"meta":3832,"style":737},"import { withEvlog, useLogger } from '@\u002Flib\u002Fevlog'\n\nexport const POST = withEvlog(async (request: Request) => {\n  const log = useLogger()\n\n  const { user, card } = await request.json()\n\n  log.set({\n    user: {\n      id: user.id,\n      email: maskEmail(user.email),\n    },\n    payment: {\n      last4: maskCard(card.number),\n      \u002F\u002F ❌ Never: number, cvv, expiry\n    },\n  })\n\n  return Response.json({ ok: true })\n})\n","app\u002Fapi\u002Fcheckout\u002Froute.ts",[630,3834,3835,3857,3861,3891,3903,3907,3933,3937,3949,3957,3971,3991,3995,4003,4023,4027,4031,4037,4041,4065],{"__ignoreMap":737},[741,3836,3837,3839,3841,3843,3845,3847,3849,3851,3853,3855],{"class":743,"line":744},[741,3838,788],{"class":787},[741,3840,791],{"class":751},[741,3842,937],{"class":794},[741,3844,940],{"class":751},[741,3846,943],{"class":794},[741,3848,798],{"class":751},[741,3850,801],{"class":787},[741,3852,804],{"class":751},[741,3854,2166],{"class":807},[741,3856,811],{"class":751},[741,3858,3859],{"class":743,"line":758},[741,3860,834],{"emptyLinePlaceholder":833},[741,3862,3863,3865,3867,3869,3871,3873,3875,3877,3879,3881,3883,3885,3887,3889],{"class":743,"line":773},[741,3864,840],{"class":787},[741,3866,932],{"class":931},[741,3868,2181],{"class":794},[741,3870,1203],{"class":751},[741,3872,937],{"class":846},[741,3874,849],{"class":794},[741,3876,1757],{"class":931},[741,3878,1760],{"class":751},[741,3880,2194],{"class":1763},[741,3882,752],{"class":751},[741,3884,2199],{"class":747},[741,3886,1226],{"class":751},[741,3888,1769],{"class":931},[741,3890,755],{"class":751},[741,3892,3893,3895,3897,3899,3901],{"class":743,"line":837},[741,3894,1776],{"class":931},[741,3896,948],{"class":794},[741,3898,958],{"class":751},[741,3900,943],{"class":846},[741,3902,2218],{"class":858},[741,3904,3905],{"class":743,"line":855},[741,3906,834],{"emptyLinePlaceholder":833},[741,3908,3909,3911,3913,3915,3917,3919,3921,3923,3925,3927,3929,3931],{"class":743,"line":888},[741,3910,1776],{"class":931},[741,3912,791],{"class":751},[741,3914,3470],{"class":794},[741,3916,940],{"class":751},[741,3918,3475],{"class":794},[741,3920,798],{"class":751},[741,3922,958],{"class":751},[741,3924,1804],{"class":787},[741,3926,2235],{"class":794},[741,3928,1194],{"class":751},[741,3930,2240],{"class":846},[741,3932,2218],{"class":858},[741,3934,3935],{"class":743,"line":1816},[741,3936,834],{"emptyLinePlaceholder":833},[741,3938,3939,3941,3943,3945,3947],{"class":743,"line":1821},[741,3940,1848],{"class":794},[741,3942,1194],{"class":751},[741,3944,1853],{"class":846},[741,3946,849],{"class":858},[741,3948,852],{"class":751},[741,3950,3951,3953,3955],{"class":743,"line":1828},[741,3952,1863],{"class":858},[741,3954,752],{"class":751},[741,3956,755],{"class":751},[741,3958,3959,3961,3963,3965,3967,3969],{"class":743,"line":1834},[741,3960,1873],{"class":858},[741,3962,752],{"class":751},[741,3964,3470],{"class":794},[741,3966,1194],{"class":751},[741,3968,1882],{"class":794},[741,3970,770],{"class":751},[741,3972,3973,3975,3977,3979,3981,3983,3985,3987,3989],{"class":743,"line":1839},[741,3974,1890],{"class":858},[741,3976,752],{"class":751},[741,3978,1895],{"class":846},[741,3980,849],{"class":858},[741,3982,3540],{"class":794},[741,3984,1194],{"class":751},[741,3986,1905],{"class":794},[741,3988,1226],{"class":858},[741,3990,770],{"class":751},[741,3992,3993],{"class":743,"line":1845},[741,3994,1921],{"class":751},[741,3996,3997,3999,4001],{"class":743,"line":1860},[741,3998,3557],{"class":858},[741,4000,752],{"class":751},[741,4002,755],{"class":751},[741,4004,4005,4007,4009,4011,4013,4015,4017,4019,4021],{"class":743,"line":1870},[741,4006,3566],{"class":858},[741,4008,752],{"class":751},[741,4010,2998],{"class":846},[741,4012,849],{"class":858},[741,4014,3003],{"class":794},[741,4016,1194],{"class":751},[741,4018,3579],{"class":794},[741,4020,1226],{"class":858},[741,4022,770],{"class":751},[741,4024,4025],{"class":743,"line":1887},[741,4026,3588],{"class":1824},[741,4028,4029],{"class":743,"line":1912},[741,4030,1921],{"class":751},[741,4032,4033,4035],{"class":743,"line":1918},[741,4034,1927],{"class":751},[741,4036,894],{"class":858},[741,4038,4039],{"class":743,"line":1924},[741,4040,834],{"emptyLinePlaceholder":833},[741,4042,4043,4045,4047,4049,4051,4053,4055,4057,4059,4061,4063],{"class":743,"line":1932},[741,4044,2339],{"class":787},[741,4046,2342],{"class":794},[741,4048,1194],{"class":751},[741,4050,2240],{"class":846},[741,4052,849],{"class":858},[741,4054,871],{"class":751},[741,4056,2353],{"class":858},[741,4058,752],{"class":751},[741,4060,767],{"class":766},[741,4062,798],{"class":751},[741,4064,894],{"class":858},[741,4066,4067,4069],{"class":743,"line":2135},[741,4068,891],{"class":751},[741,4070,894],{"class":794},[731,4072,4074],{"className":733,"code":4073,"filename":285,"language":735,"meta":1237,"style":737},"app.post('\u002Fapi\u002Fcheckout', async (c) => {\n  const log = c.get('log')\n\n  const { user, card } = await c.req.json()\n\n  log.set({\n    user: {\n      id: user.id,\n      email: maskEmail(user.email),\n    },\n    payment: {\n      last4: maskCard(card.number),\n      \u002F\u002F ❌ Never: number, cvv, expiry\n    },\n  })\n\n  return c.json({ ok: true })\n})\n",[630,4075,4076,4107,4131,4135,4165,4169,4181,4189,4203,4223,4227,4235,4255,4259,4263,4269,4273,4297],{"__ignoreMap":737},[741,4077,4078,4080,4082,4084,4086,4088,4091,4093,4095,4097,4099,4101,4103,4105],{"class":743,"line":744},[741,4079,1267],{"class":794},[741,4081,1194],{"class":751},[741,4083,2382],{"class":846},[741,4085,849],{"class":794},[741,4087,979],{"class":751},[741,4089,4090],{"class":807},"\u002Fapi\u002Fcheckout",[741,4092,979],{"class":751},[741,4094,940],{"class":751},[741,4096,2396],{"class":931},[741,4098,1760],{"class":751},[741,4100,2401],{"class":1763},[741,4102,1226],{"class":751},[741,4104,1769],{"class":931},[741,4106,755],{"class":751},[741,4108,4109,4111,4113,4115,4117,4119,4121,4123,4125,4127,4129],{"class":743,"line":758},[741,4110,1776],{"class":931},[741,4112,948],{"class":794},[741,4114,958],{"class":751},[741,4116,2418],{"class":794},[741,4118,1194],{"class":751},[741,4120,2423],{"class":846},[741,4122,849],{"class":858},[741,4124,979],{"class":751},[741,4126,2430],{"class":807},[741,4128,979],{"class":751},[741,4130,894],{"class":858},[741,4132,4133],{"class":743,"line":773},[741,4134,834],{"emptyLinePlaceholder":833},[741,4136,4137,4139,4141,4143,4145,4147,4149,4151,4153,4155,4157,4159,4161,4163],{"class":743,"line":837},[741,4138,1776],{"class":931},[741,4140,791],{"class":751},[741,4142,3470],{"class":794},[741,4144,940],{"class":751},[741,4146,3475],{"class":794},[741,4148,798],{"class":751},[741,4150,958],{"class":751},[741,4152,1804],{"class":787},[741,4154,2418],{"class":794},[741,4156,1194],{"class":751},[741,4158,2455],{"class":794},[741,4160,1194],{"class":751},[741,4162,2240],{"class":846},[741,4164,2218],{"class":858},[741,4166,4167],{"class":743,"line":855},[741,4168,834],{"emptyLinePlaceholder":833},[741,4170,4171,4173,4175,4177,4179],{"class":743,"line":888},[741,4172,1848],{"class":794},[741,4174,1194],{"class":751},[741,4176,1853],{"class":846},[741,4178,849],{"class":858},[741,4180,852],{"class":751},[741,4182,4183,4185,4187],{"class":743,"line":1816},[741,4184,1863],{"class":858},[741,4186,752],{"class":751},[741,4188,755],{"class":751},[741,4190,4191,4193,4195,4197,4199,4201],{"class":743,"line":1821},[741,4192,1873],{"class":858},[741,4194,752],{"class":751},[741,4196,3470],{"class":794},[741,4198,1194],{"class":751},[741,4200,1882],{"class":794},[741,4202,770],{"class":751},[741,4204,4205,4207,4209,4211,4213,4215,4217,4219,4221],{"class":743,"line":1828},[741,4206,1890],{"class":858},[741,4208,752],{"class":751},[741,4210,1895],{"class":846},[741,4212,849],{"class":858},[741,4214,3540],{"class":794},[741,4216,1194],{"class":751},[741,4218,1905],{"class":794},[741,4220,1226],{"class":858},[741,4222,770],{"class":751},[741,4224,4225],{"class":743,"line":1834},[741,4226,1921],{"class":751},[741,4228,4229,4231,4233],{"class":743,"line":1839},[741,4230,3557],{"class":858},[741,4232,752],{"class":751},[741,4234,755],{"class":751},[741,4236,4237,4239,4241,4243,4245,4247,4249,4251,4253],{"class":743,"line":1845},[741,4238,3566],{"class":858},[741,4240,752],{"class":751},[741,4242,2998],{"class":846},[741,4244,849],{"class":858},[741,4246,3003],{"class":794},[741,4248,1194],{"class":751},[741,4250,3579],{"class":794},[741,4252,1226],{"class":858},[741,4254,770],{"class":751},[741,4256,4257],{"class":743,"line":1860},[741,4258,3588],{"class":1824},[741,4260,4261],{"class":743,"line":1870},[741,4262,1921],{"class":751},[741,4264,4265,4267],{"class":743,"line":1887},[741,4266,1927],{"class":751},[741,4268,894],{"class":858},[741,4270,4271],{"class":743,"line":1912},[741,4272,834],{"emptyLinePlaceholder":833},[741,4274,4275,4277,4279,4281,4283,4285,4287,4289,4291,4293,4295],{"class":743,"line":1918},[741,4276,2339],{"class":787},[741,4278,2418],{"class":794},[741,4280,1194],{"class":751},[741,4282,2240],{"class":846},[741,4284,849],{"class":858},[741,4286,871],{"class":751},[741,4288,2353],{"class":858},[741,4290,752],{"class":751},[741,4292,767],{"class":766},[741,4294,798],{"class":751},[741,4296,894],{"class":858},[741,4298,4299,4301],{"class":743,"line":1924},[741,4300,891],{"class":751},[741,4302,894],{"class":794},[731,4304,4306],{"className":733,"code":4305,"filename":280,"language":735,"meta":1237,"style":737},"app.post('\u002Fapi\u002Fcheckout', async (req, res) => {\n  const log = req.log\n\n  const { user, card } = req.body\n\n  log.set({\n    user: {\n      id: user.id,\n      email: maskEmail(user.email),\n    },\n    payment: {\n      last4: maskCard(card.number),\n      \u002F\u002F ❌ Never: number, cvv, expiry\n    },\n  })\n\n  res.json({ ok: true })\n})\n",[630,4307,4308,4342,4356,4360,4382,4386,4398,4406,4420,4440,4444,4452,4472,4476,4480,4486,4490,4512],{"__ignoreMap":737},[741,4309,4310,4312,4314,4316,4318,4320,4322,4324,4326,4328,4330,4332,4334,4336,4338,4340],{"class":743,"line":744},[741,4311,1267],{"class":794},[741,4313,1194],{"class":751},[741,4315,2382],{"class":846},[741,4317,849],{"class":794},[741,4319,979],{"class":751},[741,4321,4090],{"class":807},[741,4323,979],{"class":751},[741,4325,940],{"class":751},[741,4327,2396],{"class":931},[741,4329,1760],{"class":751},[741,4331,2455],{"class":1763},[741,4333,940],{"class":751},[741,4335,2617],{"class":1763},[741,4337,1226],{"class":751},[741,4339,1769],{"class":931},[741,4341,755],{"class":751},[741,4343,4344,4346,4348,4350,4352,4354],{"class":743,"line":758},[741,4345,1776],{"class":931},[741,4347,948],{"class":794},[741,4349,958],{"class":751},[741,4351,2634],{"class":794},[741,4353,1194],{"class":751},[741,4355,2639],{"class":794},[741,4357,4358],{"class":743,"line":773},[741,4359,834],{"emptyLinePlaceholder":833},[741,4361,4362,4364,4366,4368,4370,4372,4374,4376,4378,4380],{"class":743,"line":837},[741,4363,1776],{"class":931},[741,4365,791],{"class":751},[741,4367,3470],{"class":794},[741,4369,940],{"class":751},[741,4371,3475],{"class":794},[741,4373,798],{"class":751},[741,4375,958],{"class":751},[741,4377,2634],{"class":794},[741,4379,1194],{"class":751},[741,4381,2658],{"class":794},[741,4383,4384],{"class":743,"line":855},[741,4385,834],{"emptyLinePlaceholder":833},[741,4387,4388,4390,4392,4394,4396],{"class":743,"line":888},[741,4389,1848],{"class":794},[741,4391,1194],{"class":751},[741,4393,1853],{"class":846},[741,4395,849],{"class":858},[741,4397,852],{"class":751},[741,4399,4400,4402,4404],{"class":743,"line":1816},[741,4401,1863],{"class":858},[741,4403,752],{"class":751},[741,4405,755],{"class":751},[741,4407,4408,4410,4412,4414,4416,4418],{"class":743,"line":1821},[741,4409,1873],{"class":858},[741,4411,752],{"class":751},[741,4413,3470],{"class":794},[741,4415,1194],{"class":751},[741,4417,1882],{"class":794},[741,4419,770],{"class":751},[741,4421,4422,4424,4426,4428,4430,4432,4434,4436,4438],{"class":743,"line":1828},[741,4423,1890],{"class":858},[741,4425,752],{"class":751},[741,4427,1895],{"class":846},[741,4429,849],{"class":858},[741,4431,3540],{"class":794},[741,4433,1194],{"class":751},[741,4435,1905],{"class":794},[741,4437,1226],{"class":858},[741,4439,770],{"class":751},[741,4441,4442],{"class":743,"line":1834},[741,4443,1921],{"class":751},[741,4445,4446,4448,4450],{"class":743,"line":1839},[741,4447,3557],{"class":858},[741,4449,752],{"class":751},[741,4451,755],{"class":751},[741,4453,4454,4456,4458,4460,4462,4464,4466,4468,4470],{"class":743,"line":1845},[741,4455,3566],{"class":858},[741,4457,752],{"class":751},[741,4459,2998],{"class":846},[741,4461,849],{"class":858},[741,4463,3003],{"class":794},[741,4465,1194],{"class":751},[741,4467,3579],{"class":794},[741,4469,1226],{"class":858},[741,4471,770],{"class":751},[741,4473,4474],{"class":743,"line":1860},[741,4475,3588],{"class":1824},[741,4477,4478],{"class":743,"line":1870},[741,4479,1921],{"class":751},[741,4481,4482,4484],{"class":743,"line":1887},[741,4483,1927],{"class":751},[741,4485,894],{"class":858},[741,4487,4488],{"class":743,"line":1912},[741,4489,834],{"emptyLinePlaceholder":833},[741,4491,4492,4494,4496,4498,4500,4502,4504,4506,4508,4510],{"class":743,"line":1918},[741,4493,2755],{"class":794},[741,4495,1194],{"class":751},[741,4497,2240],{"class":846},[741,4499,849],{"class":858},[741,4501,871],{"class":751},[741,4503,2353],{"class":858},[741,4505,752],{"class":751},[741,4507,767],{"class":766},[741,4509,798],{"class":751},[741,4511,894],{"class":858},[741,4513,4514,4516],{"class":743,"line":1924},[741,4515,891],{"class":751},[741,4517,894],{"class":794},[1707,4519,4521],{"id":4520},"drain-hook-filtering","Drain Hook Filtering",[618,4523,4524],{},"As a last line of defense, filter sensitive data before sending to external services:",[728,4526,4527,4999,5437,5885,6308,6749,7189,7604,8019,8434,8849,9260,9681,10094],{},[731,4528,4531],{"className":733,"code":4529,"filename":250,"language":735,"meta":4530,"style":737},"const SENSITIVE_KEYS = ['password', 'token', 'secret', 'apikey', 'authorization', 'cookie']\n\nfunction deepSanitize(value: unknown): unknown {\n  if (Array.isArray(value)) return value.map(deepSanitize)\n  if (!value || typeof value !== 'object') return value\n\n  const result: Record\u003Cstring, unknown> = {}\n  for (const [key, nested] of Object.entries(value)) {\n    const name = key.toLowerCase().replace(\u002F[-_]\u002Fg, '')\n    result[key] = SENSITIVE_KEYS.some(k => name.includes(k)) ? '[REDACTED]' : deepSanitize(nested)\n  }\n  return result\n}\n\nexport default defineNitroPlugin((nitroApp) => {\n  nitroApp.hooks.hook('evlog:drain', (ctx) => {\n    \u002F\u002F Sanitize before sending to external service\n    ctx.event = deepSanitize(ctx.event) as typeof ctx.event\n  })\n})\n","server\u002Fplugins\u002Fevlog.ts",[630,4532,4533,4594,4598,4621,4658,4693,4697,4722,4759,4805,4869,4873,4879,4883,4887,4909,4946,4951,4987,4993],{"__ignoreMap":737},[741,4534,4535,4537,4540,4542,4544,4546,4548,4550,4552,4554,4556,4558,4560,4562,4564,4566,4568,4570,4573,4575,4577,4579,4581,4583,4585,4587,4590,4592],{"class":743,"line":744},[741,4536,1545],{"class":931},[741,4538,4539],{"class":794}," SENSITIVE_KEYS ",[741,4541,1203],{"class":751},[741,4543,864],{"class":794},[741,4545,979],{"class":751},[741,4547,3225],{"class":807},[741,4549,979],{"class":751},[741,4551,940],{"class":751},[741,4553,804],{"class":751},[741,4555,3234],{"class":807},[741,4557,979],{"class":751},[741,4559,940],{"class":751},[741,4561,804],{"class":751},[741,4563,3243],{"class":807},[741,4565,979],{"class":751},[741,4567,940],{"class":751},[741,4569,804],{"class":751},[741,4571,4572],{"class":807},"apikey",[741,4574,979],{"class":751},[741,4576,940],{"class":751},[741,4578,804],{"class":751},[741,4580,3261],{"class":807},[741,4582,979],{"class":751},[741,4584,940],{"class":751},[741,4586,804],{"class":751},[741,4588,4589],{"class":807},"cookie",[741,4591,979],{"class":751},[741,4593,1233],{"class":794},[741,4595,4596],{"class":743,"line":758},[741,4597,834],{"emptyLinePlaceholder":833},[741,4599,4600,4603,4606,4608,4611,4613,4615,4617,4619],{"class":743,"line":773},[741,4601,4602],{"class":931},"function",[741,4604,4605],{"class":846}," deepSanitize",[741,4607,849],{"class":751},[741,4609,4610],{"class":1763},"value",[741,4612,752],{"class":751},[741,4614,3188],{"class":747},[741,4616,2831],{"class":751},[741,4618,3188],{"class":747},[741,4620,755],{"class":751},[741,4622,4623,4625,4627,4630,4632,4635,4637,4639,4642,4644,4647,4649,4651,4653,4656],{"class":743,"line":837},[741,4624,2877],{"class":787},[741,4626,1760],{"class":858},[741,4628,4629],{"class":794},"Array",[741,4631,1194],{"class":751},[741,4633,4634],{"class":846},"isArray",[741,4636,849],{"class":858},[741,4638,4610],{"class":794},[741,4640,4641],{"class":858},")) ",[741,4643,2891],{"class":787},[741,4645,4646],{"class":794}," value",[741,4648,1194],{"class":751},[741,4650,109],{"class":846},[741,4652,849],{"class":858},[741,4654,4655],{"class":794},"deepSanitize",[741,4657,894],{"class":858},[741,4659,4660,4662,4664,4666,4668,4671,4674,4676,4679,4681,4684,4686,4688,4690],{"class":743,"line":855},[741,4661,2877],{"class":787},[741,4663,1760],{"class":858},[741,4665,2882],{"class":751},[741,4667,4610],{"class":794},[741,4669,4670],{"class":751}," ||",[741,4672,4673],{"class":751}," typeof",[741,4675,4646],{"class":794},[741,4677,4678],{"class":751}," !==",[741,4680,804],{"class":751},[741,4682,4683],{"class":807},"object",[741,4685,979],{"class":751},[741,4687,2888],{"class":858},[741,4689,2891],{"class":787},[741,4691,4692],{"class":794}," value\n",[741,4694,4695],{"class":743,"line":888},[741,4696,834],{"emptyLinePlaceholder":833},[741,4698,4699,4701,4703,4705,4707,4709,4711,4713,4715,4717,4719],{"class":743,"line":1816},[741,4700,1776],{"class":931},[741,4702,3290],{"class":794},[741,4704,752],{"class":751},[741,4706,3178],{"class":747},[741,4708,3169],{"class":751},[741,4710,3183],{"class":747},[741,4712,940],{"class":751},[741,4714,3188],{"class":747},[741,4716,3280],{"class":751},[741,4718,958],{"class":751},[741,4720,4721],{"class":751}," {}\n",[741,4723,4724,4726,4728,4730,4732,4734,4736,4739,4741,4743,4746,4748,4751,4753,4755,4757],{"class":743,"line":1821},[741,4725,3309],{"class":787},[741,4727,1760],{"class":858},[741,4729,1545],{"class":931},[741,4731,864],{"class":751},[741,4733,3337],{"class":794},[741,4735,940],{"class":751},[741,4737,4738],{"class":794}," nested",[741,4740,2852],{"class":751},[741,4742,3319],{"class":751},[741,4744,4745],{"class":794}," Object",[741,4747,1194],{"class":751},[741,4749,4750],{"class":846},"entries",[741,4752,849],{"class":858},[741,4754,4610],{"class":794},[741,4756,4641],{"class":858},[741,4758,852],{"class":751},[741,4760,4761,4764,4767,4769,4771,4773,4776,4779,4781,4784,4786,4789,4792,4795,4798,4800,4803],{"class":743,"line":1828},[741,4762,4763],{"class":931},"    const",[741,4765,4766],{"class":794}," name",[741,4768,958],{"class":751},[741,4770,3316],{"class":794},[741,4772,1194],{"class":751},[741,4774,4775],{"class":846},"toLowerCase",[741,4777,4778],{"class":858},"()",[741,4780,1194],{"class":751},[741,4782,4783],{"class":846},"replace",[741,4785,849],{"class":858},[741,4787,4788],{"class":751},"\u002F[",[741,4790,4791],{"class":807},"-_",[741,4793,4794],{"class":751},"]\u002F",[741,4796,4797],{"class":2945},"g",[741,4799,940],{"class":751},[741,4801,4802],{"class":751}," ''",[741,4804,894],{"class":858},[741,4806,4807,4810,4812,4814,4817,4819,4822,4824,4827,4829,4832,4834,4836,4838,4841,4843,4845,4847,4850,4852,4855,4857,4860,4862,4864,4867],{"class":743,"line":1834},[741,4808,4809],{"class":794},"    result",[741,4811,3357],{"class":858},[741,4813,3337],{"class":794},[741,4815,4816],{"class":858},"] ",[741,4818,1203],{"class":751},[741,4820,4821],{"class":794}," SENSITIVE_KEYS",[741,4823,1194],{"class":751},[741,4825,4826],{"class":846},"some",[741,4828,849],{"class":858},[741,4830,4831],{"class":1763},"k",[741,4833,1769],{"class":931},[741,4835,4766],{"class":794},[741,4837,1194],{"class":751},[741,4839,4840],{"class":846},"includes",[741,4842,849],{"class":858},[741,4844,4831],{"class":794},[741,4846,4641],{"class":858},[741,4848,4849],{"class":751},"?",[741,4851,804],{"class":751},[741,4853,4854],{"class":807},"[REDACTED]",[741,4856,979],{"class":751},[741,4858,4859],{"class":751}," :",[741,4861,4605],{"class":846},[741,4863,849],{"class":858},[741,4865,4866],{"class":794},"nested",[741,4868,894],{"class":858},[741,4870,4871],{"class":743,"line":1839},[741,4872,3373],{"class":751},[741,4874,4875,4877],{"class":743,"line":1845},[741,4876,2339],{"class":787},[741,4878,3381],{"class":794},[741,4880,4881],{"class":743,"line":1860},[741,4882,776],{"class":751},[741,4884,4885],{"class":743,"line":1870},[741,4886,834],{"emptyLinePlaceholder":833},[741,4888,4889,4891,4893,4896,4898,4900,4903,4905,4907],{"class":743,"line":1887},[741,4890,840],{"class":787},[741,4892,843],{"class":787},[741,4894,4895],{"class":846}," defineNitroPlugin",[741,4897,849],{"class":794},[741,4899,849],{"class":751},[741,4901,4902],{"class":1763},"nitroApp",[741,4904,1226],{"class":751},[741,4906,1769],{"class":931},[741,4908,755],{"class":751},[741,4910,4911,4914,4916,4919,4921,4924,4926,4928,4931,4933,4935,4937,4940,4942,4944],{"class":743,"line":1912},[741,4912,4913],{"class":794},"  nitroApp",[741,4915,1194],{"class":751},[741,4917,4918],{"class":794},"hooks",[741,4920,1194],{"class":751},[741,4922,4923],{"class":846},"hook",[741,4925,849],{"class":858},[741,4927,979],{"class":751},[741,4929,4930],{"class":807},"evlog:drain",[741,4932,979],{"class":751},[741,4934,940],{"class":751},[741,4936,1760],{"class":751},[741,4938,4939],{"class":1763},"ctx",[741,4941,1226],{"class":751},[741,4943,1769],{"class":931},[741,4945,755],{"class":751},[741,4947,4948],{"class":743,"line":1918},[741,4949,4950],{"class":1824},"    \u002F\u002F Sanitize before sending to external service\n",[741,4952,4953,4956,4958,4960,4962,4964,4966,4968,4970,4972,4974,4977,4979,4982,4984],{"class":743,"line":1924},[741,4954,4955],{"class":794},"    ctx",[741,4957,1194],{"class":751},[741,4959,1764],{"class":794},[741,4961,958],{"class":751},[741,4963,4605],{"class":846},[741,4965,849],{"class":858},[741,4967,4939],{"class":794},[741,4969,1194],{"class":751},[741,4971,1764],{"class":794},[741,4973,2888],{"class":858},[741,4975,4976],{"class":787},"as",[741,4978,4673],{"class":751},[741,4980,4981],{"class":794}," ctx",[741,4983,1194],{"class":751},[741,4985,4986],{"class":794},"event\n",[741,4988,4989,4991],{"class":743,"line":1932},[741,4990,1927],{"class":751},[741,4992,894],{"class":858},[741,4994,4995,4997],{"class":743,"line":2135},[741,4996,891],{"class":751},[741,4998,894],{"class":794},[731,5000,5002],{"className":733,"code":5001,"filename":265,"language":735,"meta":4530,"style":737},"import { definePlugin } from 'nitro'\nconst SENSITIVE_KEYS = ['password', 'token', 'secret', 'apikey', 'authorization', 'cookie']\n\nfunction deepSanitize(value: unknown): unknown {\n  if (Array.isArray(value)) return value.map(deepSanitize)\n  if (!value || typeof value !== 'object') return value\n\n  const result: Record\u003Cstring, unknown> = {}\n  for (const [key, nested] of Object.entries(value)) {\n    const name = key.toLowerCase().replace(\u002F[-_]\u002Fg, '')\n    result[key] = SENSITIVE_KEYS.some(k => name.includes(k)) ? '[REDACTED]' : deepSanitize(nested)\n  }\n  return result\n}\n\nexport default definePlugin((nitroApp) => {\n  nitroApp.hooks.hook('evlog:drain', (ctx) => {\n    \u002F\u002F Sanitize before sending to external service\n    ctx.event = deepSanitize(ctx.event) as typeof ctx.event\n  })\n})\n",[630,5003,5004,5023,5081,5085,5105,5137,5167,5171,5195,5229,5265,5319,5323,5329,5333,5337,5357,5389,5393,5425,5431],{"__ignoreMap":737},[741,5005,5006,5008,5010,5013,5015,5017,5019,5021],{"class":743,"line":744},[741,5007,788],{"class":787},[741,5009,791],{"class":751},[741,5011,5012],{"class":794}," definePlugin",[741,5014,798],{"class":751},[741,5016,801],{"class":787},[741,5018,804],{"class":751},[741,5020,808],{"class":807},[741,5022,811],{"class":751},[741,5024,5025,5027,5029,5031,5033,5035,5037,5039,5041,5043,5045,5047,5049,5051,5053,5055,5057,5059,5061,5063,5065,5067,5069,5071,5073,5075,5077,5079],{"class":743,"line":758},[741,5026,1545],{"class":931},[741,5028,4539],{"class":794},[741,5030,1203],{"class":751},[741,5032,864],{"class":794},[741,5034,979],{"class":751},[741,5036,3225],{"class":807},[741,5038,979],{"class":751},[741,5040,940],{"class":751},[741,5042,804],{"class":751},[741,5044,3234],{"class":807},[741,5046,979],{"class":751},[741,5048,940],{"class":751},[741,5050,804],{"class":751},[741,5052,3243],{"class":807},[741,5054,979],{"class":751},[741,5056,940],{"class":751},[741,5058,804],{"class":751},[741,5060,4572],{"class":807},[741,5062,979],{"class":751},[741,5064,940],{"class":751},[741,5066,804],{"class":751},[741,5068,3261],{"class":807},[741,5070,979],{"class":751},[741,5072,940],{"class":751},[741,5074,804],{"class":751},[741,5076,4589],{"class":807},[741,5078,979],{"class":751},[741,5080,1233],{"class":794},[741,5082,5083],{"class":743,"line":773},[741,5084,834],{"emptyLinePlaceholder":833},[741,5086,5087,5089,5091,5093,5095,5097,5099,5101,5103],{"class":743,"line":837},[741,5088,4602],{"class":931},[741,5090,4605],{"class":846},[741,5092,849],{"class":751},[741,5094,4610],{"class":1763},[741,5096,752],{"class":751},[741,5098,3188],{"class":747},[741,5100,2831],{"class":751},[741,5102,3188],{"class":747},[741,5104,755],{"class":751},[741,5106,5107,5109,5111,5113,5115,5117,5119,5121,5123,5125,5127,5129,5131,5133,5135],{"class":743,"line":855},[741,5108,2877],{"class":787},[741,5110,1760],{"class":858},[741,5112,4629],{"class":794},[741,5114,1194],{"class":751},[741,5116,4634],{"class":846},[741,5118,849],{"class":858},[741,5120,4610],{"class":794},[741,5122,4641],{"class":858},[741,5124,2891],{"class":787},[741,5126,4646],{"class":794},[741,5128,1194],{"class":751},[741,5130,109],{"class":846},[741,5132,849],{"class":858},[741,5134,4655],{"class":794},[741,5136,894],{"class":858},[741,5138,5139,5141,5143,5145,5147,5149,5151,5153,5155,5157,5159,5161,5163,5165],{"class":743,"line":888},[741,5140,2877],{"class":787},[741,5142,1760],{"class":858},[741,5144,2882],{"class":751},[741,5146,4610],{"class":794},[741,5148,4670],{"class":751},[741,5150,4673],{"class":751},[741,5152,4646],{"class":794},[741,5154,4678],{"class":751},[741,5156,804],{"class":751},[741,5158,4683],{"class":807},[741,5160,979],{"class":751},[741,5162,2888],{"class":858},[741,5164,2891],{"class":787},[741,5166,4692],{"class":794},[741,5168,5169],{"class":743,"line":1816},[741,5170,834],{"emptyLinePlaceholder":833},[741,5172,5173,5175,5177,5179,5181,5183,5185,5187,5189,5191,5193],{"class":743,"line":1821},[741,5174,1776],{"class":931},[741,5176,3290],{"class":794},[741,5178,752],{"class":751},[741,5180,3178],{"class":747},[741,5182,3169],{"class":751},[741,5184,3183],{"class":747},[741,5186,940],{"class":751},[741,5188,3188],{"class":747},[741,5190,3280],{"class":751},[741,5192,958],{"class":751},[741,5194,4721],{"class":751},[741,5196,5197,5199,5201,5203,5205,5207,5209,5211,5213,5215,5217,5219,5221,5223,5225,5227],{"class":743,"line":1828},[741,5198,3309],{"class":787},[741,5200,1760],{"class":858},[741,5202,1545],{"class":931},[741,5204,864],{"class":751},[741,5206,3337],{"class":794},[741,5208,940],{"class":751},[741,5210,4738],{"class":794},[741,5212,2852],{"class":751},[741,5214,3319],{"class":751},[741,5216,4745],{"class":794},[741,5218,1194],{"class":751},[741,5220,4750],{"class":846},[741,5222,849],{"class":858},[741,5224,4610],{"class":794},[741,5226,4641],{"class":858},[741,5228,852],{"class":751},[741,5230,5231,5233,5235,5237,5239,5241,5243,5245,5247,5249,5251,5253,5255,5257,5259,5261,5263],{"class":743,"line":1834},[741,5232,4763],{"class":931},[741,5234,4766],{"class":794},[741,5236,958],{"class":751},[741,5238,3316],{"class":794},[741,5240,1194],{"class":751},[741,5242,4775],{"class":846},[741,5244,4778],{"class":858},[741,5246,1194],{"class":751},[741,5248,4783],{"class":846},[741,5250,849],{"class":858},[741,5252,4788],{"class":751},[741,5254,4791],{"class":807},[741,5256,4794],{"class":751},[741,5258,4797],{"class":2945},[741,5260,940],{"class":751},[741,5262,4802],{"class":751},[741,5264,894],{"class":858},[741,5266,5267,5269,5271,5273,5275,5277,5279,5281,5283,5285,5287,5289,5291,5293,5295,5297,5299,5301,5303,5305,5307,5309,5311,5313,5315,5317],{"class":743,"line":1839},[741,5268,4809],{"class":794},[741,5270,3357],{"class":858},[741,5272,3337],{"class":794},[741,5274,4816],{"class":858},[741,5276,1203],{"class":751},[741,5278,4821],{"class":794},[741,5280,1194],{"class":751},[741,5282,4826],{"class":846},[741,5284,849],{"class":858},[741,5286,4831],{"class":1763},[741,5288,1769],{"class":931},[741,5290,4766],{"class":794},[741,5292,1194],{"class":751},[741,5294,4840],{"class":846},[741,5296,849],{"class":858},[741,5298,4831],{"class":794},[741,5300,4641],{"class":858},[741,5302,4849],{"class":751},[741,5304,804],{"class":751},[741,5306,4854],{"class":807},[741,5308,979],{"class":751},[741,5310,4859],{"class":751},[741,5312,4605],{"class":846},[741,5314,849],{"class":858},[741,5316,4866],{"class":794},[741,5318,894],{"class":858},[741,5320,5321],{"class":743,"line":1845},[741,5322,3373],{"class":751},[741,5324,5325,5327],{"class":743,"line":1860},[741,5326,2339],{"class":787},[741,5328,3381],{"class":794},[741,5330,5331],{"class":743,"line":1870},[741,5332,776],{"class":751},[741,5334,5335],{"class":743,"line":1887},[741,5336,834],{"emptyLinePlaceholder":833},[741,5338,5339,5341,5343,5345,5347,5349,5351,5353,5355],{"class":743,"line":1912},[741,5340,840],{"class":787},[741,5342,843],{"class":787},[741,5344,5012],{"class":846},[741,5346,849],{"class":794},[741,5348,849],{"class":751},[741,5350,4902],{"class":1763},[741,5352,1226],{"class":751},[741,5354,1769],{"class":931},[741,5356,755],{"class":751},[741,5358,5359,5361,5363,5365,5367,5369,5371,5373,5375,5377,5379,5381,5383,5385,5387],{"class":743,"line":1918},[741,5360,4913],{"class":794},[741,5362,1194],{"class":751},[741,5364,4918],{"class":794},[741,5366,1194],{"class":751},[741,5368,4923],{"class":846},[741,5370,849],{"class":858},[741,5372,979],{"class":751},[741,5374,4930],{"class":807},[741,5376,979],{"class":751},[741,5378,940],{"class":751},[741,5380,1760],{"class":751},[741,5382,4939],{"class":1763},[741,5384,1226],{"class":751},[741,5386,1769],{"class":931},[741,5388,755],{"class":751},[741,5390,5391],{"class":743,"line":1924},[741,5392,4950],{"class":1824},[741,5394,5395,5397,5399,5401,5403,5405,5407,5409,5411,5413,5415,5417,5419,5421,5423],{"class":743,"line":1932},[741,5396,4955],{"class":794},[741,5398,1194],{"class":751},[741,5400,1764],{"class":794},[741,5402,958],{"class":751},[741,5404,4605],{"class":846},[741,5406,849],{"class":858},[741,5408,4939],{"class":794},[741,5410,1194],{"class":751},[741,5412,1764],{"class":794},[741,5414,2888],{"class":858},[741,5416,4976],{"class":787},[741,5418,4673],{"class":751},[741,5420,4981],{"class":794},[741,5422,1194],{"class":751},[741,5424,4986],{"class":794},[741,5426,5427,5429],{"class":743,"line":2135},[741,5428,1927],{"class":751},[741,5430,894],{"class":858},[741,5432,5433,5435],{"class":743,"line":2364},[741,5434,891],{"class":751},[741,5436,894],{"class":794},[731,5438,5440],{"className":733,"code":5439,"filename":255,"language":735,"meta":898,"style":737},"import { createEvlog } from 'evlog\u002Fnext'\n\nconst SENSITIVE_KEYS = ['password', 'token', 'secret', 'apikey', 'authorization', 'cookie']\n\nfunction deepSanitize(value: unknown): unknown {\n  if (Array.isArray(value)) return value.map(deepSanitize)\n  if (!value || typeof value !== 'object') return value\n\n  const result: Record\u003Cstring, unknown> = {}\n  for (const [key, nested] of Object.entries(value)) {\n    const name = key.toLowerCase().replace(\u002F[-_]\u002Fg, '')\n    result[key] = SENSITIVE_KEYS.some(k => name.includes(k)) ? '[REDACTED]' : deepSanitize(nested)\n  }\n  return result\n}\nexport const { withEvlog, useLogger, log, createError } = createEvlog({\n  service: 'my-app',\n  drain: (ctx) => {\n      \u002F\u002F Sanitize before sending to external service\n      ctx.event = deepSanitize(ctx.event) as typeof ctx.event\n    },\n})\n",[630,5441,5442,5460,5464,5522,5526,5546,5578,5608,5612,5636,5670,5706,5760,5764,5770,5774,5806,5820,5837,5842,5875,5879],{"__ignoreMap":737},[741,5443,5444,5446,5448,5450,5452,5454,5456,5458],{"class":743,"line":744},[741,5445,788],{"class":787},[741,5447,791],{"class":751},[741,5449,909],{"class":794},[741,5451,798],{"class":751},[741,5453,801],{"class":787},[741,5455,804],{"class":751},[741,5457,918],{"class":807},[741,5459,811],{"class":751},[741,5461,5462],{"class":743,"line":758},[741,5463,834],{"emptyLinePlaceholder":833},[741,5465,5466,5468,5470,5472,5474,5476,5478,5480,5482,5484,5486,5488,5490,5492,5494,5496,5498,5500,5502,5504,5506,5508,5510,5512,5514,5516,5518,5520],{"class":743,"line":773},[741,5467,1545],{"class":931},[741,5469,4539],{"class":794},[741,5471,1203],{"class":751},[741,5473,864],{"class":794},[741,5475,979],{"class":751},[741,5477,3225],{"class":807},[741,5479,979],{"class":751},[741,5481,940],{"class":751},[741,5483,804],{"class":751},[741,5485,3234],{"class":807},[741,5487,979],{"class":751},[741,5489,940],{"class":751},[741,5491,804],{"class":751},[741,5493,3243],{"class":807},[741,5495,979],{"class":751},[741,5497,940],{"class":751},[741,5499,804],{"class":751},[741,5501,4572],{"class":807},[741,5503,979],{"class":751},[741,5505,940],{"class":751},[741,5507,804],{"class":751},[741,5509,3261],{"class":807},[741,5511,979],{"class":751},[741,5513,940],{"class":751},[741,5515,804],{"class":751},[741,5517,4589],{"class":807},[741,5519,979],{"class":751},[741,5521,1233],{"class":794},[741,5523,5524],{"class":743,"line":837},[741,5525,834],{"emptyLinePlaceholder":833},[741,5527,5528,5530,5532,5534,5536,5538,5540,5542,5544],{"class":743,"line":855},[741,5529,4602],{"class":931},[741,5531,4605],{"class":846},[741,5533,849],{"class":751},[741,5535,4610],{"class":1763},[741,5537,752],{"class":751},[741,5539,3188],{"class":747},[741,5541,2831],{"class":751},[741,5543,3188],{"class":747},[741,5545,755],{"class":751},[741,5547,5548,5550,5552,5554,5556,5558,5560,5562,5564,5566,5568,5570,5572,5574,5576],{"class":743,"line":888},[741,5549,2877],{"class":787},[741,5551,1760],{"class":858},[741,5553,4629],{"class":794},[741,5555,1194],{"class":751},[741,5557,4634],{"class":846},[741,5559,849],{"class":858},[741,5561,4610],{"class":794},[741,5563,4641],{"class":858},[741,5565,2891],{"class":787},[741,5567,4646],{"class":794},[741,5569,1194],{"class":751},[741,5571,109],{"class":846},[741,5573,849],{"class":858},[741,5575,4655],{"class":794},[741,5577,894],{"class":858},[741,5579,5580,5582,5584,5586,5588,5590,5592,5594,5596,5598,5600,5602,5604,5606],{"class":743,"line":1816},[741,5581,2877],{"class":787},[741,5583,1760],{"class":858},[741,5585,2882],{"class":751},[741,5587,4610],{"class":794},[741,5589,4670],{"class":751},[741,5591,4673],{"class":751},[741,5593,4646],{"class":794},[741,5595,4678],{"class":751},[741,5597,804],{"class":751},[741,5599,4683],{"class":807},[741,5601,979],{"class":751},[741,5603,2888],{"class":858},[741,5605,2891],{"class":787},[741,5607,4692],{"class":794},[741,5609,5610],{"class":743,"line":1821},[741,5611,834],{"emptyLinePlaceholder":833},[741,5613,5614,5616,5618,5620,5622,5624,5626,5628,5630,5632,5634],{"class":743,"line":1828},[741,5615,1776],{"class":931},[741,5617,3290],{"class":794},[741,5619,752],{"class":751},[741,5621,3178],{"class":747},[741,5623,3169],{"class":751},[741,5625,3183],{"class":747},[741,5627,940],{"class":751},[741,5629,3188],{"class":747},[741,5631,3280],{"class":751},[741,5633,958],{"class":751},[741,5635,4721],{"class":751},[741,5637,5638,5640,5642,5644,5646,5648,5650,5652,5654,5656,5658,5660,5662,5664,5666,5668],{"class":743,"line":1834},[741,5639,3309],{"class":787},[741,5641,1760],{"class":858},[741,5643,1545],{"class":931},[741,5645,864],{"class":751},[741,5647,3337],{"class":794},[741,5649,940],{"class":751},[741,5651,4738],{"class":794},[741,5653,2852],{"class":751},[741,5655,3319],{"class":751},[741,5657,4745],{"class":794},[741,5659,1194],{"class":751},[741,5661,4750],{"class":846},[741,5663,849],{"class":858},[741,5665,4610],{"class":794},[741,5667,4641],{"class":858},[741,5669,852],{"class":751},[741,5671,5672,5674,5676,5678,5680,5682,5684,5686,5688,5690,5692,5694,5696,5698,5700,5702,5704],{"class":743,"line":1839},[741,5673,4763],{"class":931},[741,5675,4766],{"class":794},[741,5677,958],{"class":751},[741,5679,3316],{"class":794},[741,5681,1194],{"class":751},[741,5683,4775],{"class":846},[741,5685,4778],{"class":858},[741,5687,1194],{"class":751},[741,5689,4783],{"class":846},[741,5691,849],{"class":858},[741,5693,4788],{"class":751},[741,5695,4791],{"class":807},[741,5697,4794],{"class":751},[741,5699,4797],{"class":2945},[741,5701,940],{"class":751},[741,5703,4802],{"class":751},[741,5705,894],{"class":858},[741,5707,5708,5710,5712,5714,5716,5718,5720,5722,5724,5726,5728,5730,5732,5734,5736,5738,5740,5742,5744,5746,5748,5750,5752,5754,5756,5758],{"class":743,"line":1845},[741,5709,4809],{"class":794},[741,5711,3357],{"class":858},[741,5713,3337],{"class":794},[741,5715,4816],{"class":858},[741,5717,1203],{"class":751},[741,5719,4821],{"class":794},[741,5721,1194],{"class":751},[741,5723,4826],{"class":846},[741,5725,849],{"class":858},[741,5727,4831],{"class":1763},[741,5729,1769],{"class":931},[741,5731,4766],{"class":794},[741,5733,1194],{"class":751},[741,5735,4840],{"class":846},[741,5737,849],{"class":858},[741,5739,4831],{"class":794},[741,5741,4641],{"class":858},[741,5743,4849],{"class":751},[741,5745,804],{"class":751},[741,5747,4854],{"class":807},[741,5749,979],{"class":751},[741,5751,4859],{"class":751},[741,5753,4605],{"class":846},[741,5755,849],{"class":858},[741,5757,4866],{"class":794},[741,5759,894],{"class":858},[741,5761,5762],{"class":743,"line":1860},[741,5763,3373],{"class":751},[741,5765,5766,5768],{"class":743,"line":1870},[741,5767,2339],{"class":787},[741,5769,3381],{"class":794},[741,5771,5772],{"class":743,"line":1887},[741,5773,776],{"class":751},[741,5775,5776,5778,5780,5782,5784,5786,5788,5790,5792,5794,5796,5798,5800,5802,5804],{"class":743,"line":1912},[741,5777,840],{"class":787},[741,5779,932],{"class":931},[741,5781,791],{"class":751},[741,5783,937],{"class":794},[741,5785,940],{"class":751},[741,5787,943],{"class":794},[741,5789,940],{"class":751},[741,5791,948],{"class":794},[741,5793,940],{"class":751},[741,5795,953],{"class":794},[741,5797,891],{"class":751},[741,5799,958],{"class":751},[741,5801,909],{"class":846},[741,5803,849],{"class":794},[741,5805,852],{"class":751},[741,5807,5808,5810,5812,5814,5816,5818],{"class":743,"line":1918},[741,5809,969],{"class":858},[741,5811,752],{"class":751},[741,5813,804],{"class":751},[741,5815,976],{"class":807},[741,5817,979],{"class":751},[741,5819,770],{"class":751},[741,5821,5822,5825,5827,5829,5831,5833,5835],{"class":743,"line":1924},[741,5823,5824],{"class":846},"  drain",[741,5826,752],{"class":751},[741,5828,1760],{"class":751},[741,5830,4939],{"class":1763},[741,5832,1226],{"class":751},[741,5834,1769],{"class":931},[741,5836,755],{"class":751},[741,5838,5839],{"class":743,"line":1932},[741,5840,5841],{"class":1824},"      \u002F\u002F Sanitize before sending to external service\n",[741,5843,5844,5847,5849,5851,5853,5855,5857,5859,5861,5863,5865,5867,5869,5871,5873],{"class":743,"line":2135},[741,5845,5846],{"class":794},"      ctx",[741,5848,1194],{"class":751},[741,5850,1764],{"class":794},[741,5852,958],{"class":751},[741,5854,4605],{"class":846},[741,5856,849],{"class":858},[741,5858,4939],{"class":794},[741,5860,1194],{"class":751},[741,5862,1764],{"class":794},[741,5864,2888],{"class":858},[741,5866,4976],{"class":787},[741,5868,4673],{"class":751},[741,5870,4981],{"class":794},[741,5872,1194],{"class":751},[741,5874,4986],{"class":794},[741,5876,5877],{"class":743,"line":2364},[741,5878,1921],{"class":751},[741,5880,5881,5883],{"class":743,"line":3194},[741,5882,891],{"class":751},[741,5884,894],{"class":794},[731,5886,5888],{"className":733,"code":5887,"filename":260,"language":735,"meta":1001,"style":737},"import { createEvlogHooks } from 'evlog\u002Fsveltekit'\n\nconst SENSITIVE_KEYS = ['password', 'token', 'secret', 'apikey', 'authorization', 'cookie']\n\nfunction deepSanitize(value: unknown): unknown {\n  if (Array.isArray(value)) return value.map(deepSanitize)\n  if (!value || typeof value !== 'object') return value\n\n  const result: Record\u003Cstring, unknown> = {}\n  for (const [key, nested] of Object.entries(value)) {\n    const name = key.toLowerCase().replace(\u002F[-_]\u002Fg, '')\n    result[key] = SENSITIVE_KEYS.some(k => name.includes(k)) ? '[REDACTED]' : deepSanitize(nested)\n  }\n  return result\n}\nexport const { handle, handleError } = createEvlogHooks({\n  drain: (ctx) => {\n      \u002F\u002F Sanitize before sending to external service\n      ctx.event = deepSanitize(ctx.event) as typeof ctx.event\n    },\n})\n",[630,5889,5890,5908,5912,5970,5974,5994,6026,6056,6060,6084,6118,6154,6208,6212,6218,6222,6246,6262,6266,6298,6302],{"__ignoreMap":737},[741,5891,5892,5894,5896,5898,5900,5902,5904,5906],{"class":743,"line":744},[741,5893,788],{"class":787},[741,5895,791],{"class":751},[741,5897,1012],{"class":794},[741,5899,798],{"class":751},[741,5901,801],{"class":787},[741,5903,804],{"class":751},[741,5905,1021],{"class":807},[741,5907,811],{"class":751},[741,5909,5910],{"class":743,"line":758},[741,5911,834],{"emptyLinePlaceholder":833},[741,5913,5914,5916,5918,5920,5922,5924,5926,5928,5930,5932,5934,5936,5938,5940,5942,5944,5946,5948,5950,5952,5954,5956,5958,5960,5962,5964,5966,5968],{"class":743,"line":773},[741,5915,1545],{"class":931},[741,5917,4539],{"class":794},[741,5919,1203],{"class":751},[741,5921,864],{"class":794},[741,5923,979],{"class":751},[741,5925,3225],{"class":807},[741,5927,979],{"class":751},[741,5929,940],{"class":751},[741,5931,804],{"class":751},[741,5933,3234],{"class":807},[741,5935,979],{"class":751},[741,5937,940],{"class":751},[741,5939,804],{"class":751},[741,5941,3243],{"class":807},[741,5943,979],{"class":751},[741,5945,940],{"class":751},[741,5947,804],{"class":751},[741,5949,4572],{"class":807},[741,5951,979],{"class":751},[741,5953,940],{"class":751},[741,5955,804],{"class":751},[741,5957,3261],{"class":807},[741,5959,979],{"class":751},[741,5961,940],{"class":751},[741,5963,804],{"class":751},[741,5965,4589],{"class":807},[741,5967,979],{"class":751},[741,5969,1233],{"class":794},[741,5971,5972],{"class":743,"line":837},[741,5973,834],{"emptyLinePlaceholder":833},[741,5975,5976,5978,5980,5982,5984,5986,5988,5990,5992],{"class":743,"line":855},[741,5977,4602],{"class":931},[741,5979,4605],{"class":846},[741,5981,849],{"class":751},[741,5983,4610],{"class":1763},[741,5985,752],{"class":751},[741,5987,3188],{"class":747},[741,5989,2831],{"class":751},[741,5991,3188],{"class":747},[741,5993,755],{"class":751},[741,5995,5996,5998,6000,6002,6004,6006,6008,6010,6012,6014,6016,6018,6020,6022,6024],{"class":743,"line":888},[741,5997,2877],{"class":787},[741,5999,1760],{"class":858},[741,6001,4629],{"class":794},[741,6003,1194],{"class":751},[741,6005,4634],{"class":846},[741,6007,849],{"class":858},[741,6009,4610],{"class":794},[741,6011,4641],{"class":858},[741,6013,2891],{"class":787},[741,6015,4646],{"class":794},[741,6017,1194],{"class":751},[741,6019,109],{"class":846},[741,6021,849],{"class":858},[741,6023,4655],{"class":794},[741,6025,894],{"class":858},[741,6027,6028,6030,6032,6034,6036,6038,6040,6042,6044,6046,6048,6050,6052,6054],{"class":743,"line":1816},[741,6029,2877],{"class":787},[741,6031,1760],{"class":858},[741,6033,2882],{"class":751},[741,6035,4610],{"class":794},[741,6037,4670],{"class":751},[741,6039,4673],{"class":751},[741,6041,4646],{"class":794},[741,6043,4678],{"class":751},[741,6045,804],{"class":751},[741,6047,4683],{"class":807},[741,6049,979],{"class":751},[741,6051,2888],{"class":858},[741,6053,2891],{"class":787},[741,6055,4692],{"class":794},[741,6057,6058],{"class":743,"line":1821},[741,6059,834],{"emptyLinePlaceholder":833},[741,6061,6062,6064,6066,6068,6070,6072,6074,6076,6078,6080,6082],{"class":743,"line":1828},[741,6063,1776],{"class":931},[741,6065,3290],{"class":794},[741,6067,752],{"class":751},[741,6069,3178],{"class":747},[741,6071,3169],{"class":751},[741,6073,3183],{"class":747},[741,6075,940],{"class":751},[741,6077,3188],{"class":747},[741,6079,3280],{"class":751},[741,6081,958],{"class":751},[741,6083,4721],{"class":751},[741,6085,6086,6088,6090,6092,6094,6096,6098,6100,6102,6104,6106,6108,6110,6112,6114,6116],{"class":743,"line":1834},[741,6087,3309],{"class":787},[741,6089,1760],{"class":858},[741,6091,1545],{"class":931},[741,6093,864],{"class":751},[741,6095,3337],{"class":794},[741,6097,940],{"class":751},[741,6099,4738],{"class":794},[741,6101,2852],{"class":751},[741,6103,3319],{"class":751},[741,6105,4745],{"class":794},[741,6107,1194],{"class":751},[741,6109,4750],{"class":846},[741,6111,849],{"class":858},[741,6113,4610],{"class":794},[741,6115,4641],{"class":858},[741,6117,852],{"class":751},[741,6119,6120,6122,6124,6126,6128,6130,6132,6134,6136,6138,6140,6142,6144,6146,6148,6150,6152],{"class":743,"line":1839},[741,6121,4763],{"class":931},[741,6123,4766],{"class":794},[741,6125,958],{"class":751},[741,6127,3316],{"class":794},[741,6129,1194],{"class":751},[741,6131,4775],{"class":846},[741,6133,4778],{"class":858},[741,6135,1194],{"class":751},[741,6137,4783],{"class":846},[741,6139,849],{"class":858},[741,6141,4788],{"class":751},[741,6143,4791],{"class":807},[741,6145,4794],{"class":751},[741,6147,4797],{"class":2945},[741,6149,940],{"class":751},[741,6151,4802],{"class":751},[741,6153,894],{"class":858},[741,6155,6156,6158,6160,6162,6164,6166,6168,6170,6172,6174,6176,6178,6180,6182,6184,6186,6188,6190,6192,6194,6196,6198,6200,6202,6204,6206],{"class":743,"line":1845},[741,6157,4809],{"class":794},[741,6159,3357],{"class":858},[741,6161,3337],{"class":794},[741,6163,4816],{"class":858},[741,6165,1203],{"class":751},[741,6167,4821],{"class":794},[741,6169,1194],{"class":751},[741,6171,4826],{"class":846},[741,6173,849],{"class":858},[741,6175,4831],{"class":1763},[741,6177,1769],{"class":931},[741,6179,4766],{"class":794},[741,6181,1194],{"class":751},[741,6183,4840],{"class":846},[741,6185,849],{"class":858},[741,6187,4831],{"class":794},[741,6189,4641],{"class":858},[741,6191,4849],{"class":751},[741,6193,804],{"class":751},[741,6195,4854],{"class":807},[741,6197,979],{"class":751},[741,6199,4859],{"class":751},[741,6201,4605],{"class":846},[741,6203,849],{"class":858},[741,6205,4866],{"class":794},[741,6207,894],{"class":858},[741,6209,6210],{"class":743,"line":1860},[741,6211,3373],{"class":751},[741,6213,6214,6216],{"class":743,"line":1870},[741,6215,2339],{"class":787},[741,6217,3381],{"class":794},[741,6219,6220],{"class":743,"line":1887},[741,6221,776],{"class":751},[741,6223,6224,6226,6228,6230,6232,6234,6236,6238,6240,6242,6244],{"class":743,"line":1912},[741,6225,840],{"class":787},[741,6227,932],{"class":931},[741,6229,791],{"class":751},[741,6231,1038],{"class":794},[741,6233,940],{"class":751},[741,6235,1043],{"class":794},[741,6237,891],{"class":751},[741,6239,958],{"class":751},[741,6241,1012],{"class":846},[741,6243,849],{"class":794},[741,6245,852],{"class":751},[741,6247,6248,6250,6252,6254,6256,6258,6260],{"class":743,"line":1918},[741,6249,5824],{"class":846},[741,6251,752],{"class":751},[741,6253,1760],{"class":751},[741,6255,4939],{"class":1763},[741,6257,1226],{"class":751},[741,6259,1769],{"class":931},[741,6261,755],{"class":751},[741,6263,6264],{"class":743,"line":1924},[741,6265,5841],{"class":1824},[741,6267,6268,6270,6272,6274,6276,6278,6280,6282,6284,6286,6288,6290,6292,6294,6296],{"class":743,"line":1932},[741,6269,5846],{"class":794},[741,6271,1194],{"class":751},[741,6273,1764],{"class":794},[741,6275,958],{"class":751},[741,6277,4605],{"class":846},[741,6279,849],{"class":858},[741,6281,4939],{"class":794},[741,6283,1194],{"class":751},[741,6285,1764],{"class":794},[741,6287,2888],{"class":858},[741,6289,4976],{"class":787},[741,6291,4673],{"class":751},[741,6293,4981],{"class":794},[741,6295,1194],{"class":751},[741,6297,4986],{"class":794},[741,6299,6300],{"class":743,"line":2135},[741,6301,1921],{"class":751},[741,6303,6304,6306],{"class":743,"line":2364},[741,6305,891],{"class":751},[741,6307,894],{"class":794},[731,6309,6311],{"className":733,"code":6310,"filename":270,"language":735,"meta":4530,"style":737},"import { definePlugin } from 'nitro'\n\nconst SENSITIVE_KEYS = ['password', 'token', 'secret', 'apikey', 'authorization', 'cookie']\n\nfunction deepSanitize(value: unknown): unknown {\n  if (Array.isArray(value)) return value.map(deepSanitize)\n  if (!value || typeof value !== 'object') return value\n\n  const result: Record\u003Cstring, unknown> = {}\n  for (const [key, nested] of Object.entries(value)) {\n    const name = key.toLowerCase().replace(\u002F[-_]\u002Fg, '')\n    result[key] = SENSITIVE_KEYS.some(k => name.includes(k)) ? '[REDACTED]' : deepSanitize(nested)\n  }\n  return result\n}\n\nexport default definePlugin((nitroApp) => {\n  nitroApp.hooks.hook('evlog:drain', (ctx) => {\n    \u002F\u002F Sanitize before sending to external service\n    ctx.event = deepSanitize(ctx.event) as typeof ctx.event\n  })\n})\n",[630,6312,6313,6331,6335,6393,6397,6417,6449,6479,6483,6507,6541,6577,6631,6635,6641,6645,6649,6669,6701,6705,6737,6743],{"__ignoreMap":737},[741,6314,6315,6317,6319,6321,6323,6325,6327,6329],{"class":743,"line":744},[741,6316,788],{"class":787},[741,6318,791],{"class":751},[741,6320,5012],{"class":794},[741,6322,798],{"class":751},[741,6324,801],{"class":787},[741,6326,804],{"class":751},[741,6328,808],{"class":807},[741,6330,811],{"class":751},[741,6332,6333],{"class":743,"line":758},[741,6334,834],{"emptyLinePlaceholder":833},[741,6336,6337,6339,6341,6343,6345,6347,6349,6351,6353,6355,6357,6359,6361,6363,6365,6367,6369,6371,6373,6375,6377,6379,6381,6383,6385,6387,6389,6391],{"class":743,"line":773},[741,6338,1545],{"class":931},[741,6340,4539],{"class":794},[741,6342,1203],{"class":751},[741,6344,864],{"class":794},[741,6346,979],{"class":751},[741,6348,3225],{"class":807},[741,6350,979],{"class":751},[741,6352,940],{"class":751},[741,6354,804],{"class":751},[741,6356,3234],{"class":807},[741,6358,979],{"class":751},[741,6360,940],{"class":751},[741,6362,804],{"class":751},[741,6364,3243],{"class":807},[741,6366,979],{"class":751},[741,6368,940],{"class":751},[741,6370,804],{"class":751},[741,6372,4572],{"class":807},[741,6374,979],{"class":751},[741,6376,940],{"class":751},[741,6378,804],{"class":751},[741,6380,3261],{"class":807},[741,6382,979],{"class":751},[741,6384,940],{"class":751},[741,6386,804],{"class":751},[741,6388,4589],{"class":807},[741,6390,979],{"class":751},[741,6392,1233],{"class":794},[741,6394,6395],{"class":743,"line":837},[741,6396,834],{"emptyLinePlaceholder":833},[741,6398,6399,6401,6403,6405,6407,6409,6411,6413,6415],{"class":743,"line":855},[741,6400,4602],{"class":931},[741,6402,4605],{"class":846},[741,6404,849],{"class":751},[741,6406,4610],{"class":1763},[741,6408,752],{"class":751},[741,6410,3188],{"class":747},[741,6412,2831],{"class":751},[741,6414,3188],{"class":747},[741,6416,755],{"class":751},[741,6418,6419,6421,6423,6425,6427,6429,6431,6433,6435,6437,6439,6441,6443,6445,6447],{"class":743,"line":888},[741,6420,2877],{"class":787},[741,6422,1760],{"class":858},[741,6424,4629],{"class":794},[741,6426,1194],{"class":751},[741,6428,4634],{"class":846},[741,6430,849],{"class":858},[741,6432,4610],{"class":794},[741,6434,4641],{"class":858},[741,6436,2891],{"class":787},[741,6438,4646],{"class":794},[741,6440,1194],{"class":751},[741,6442,109],{"class":846},[741,6444,849],{"class":858},[741,6446,4655],{"class":794},[741,6448,894],{"class":858},[741,6450,6451,6453,6455,6457,6459,6461,6463,6465,6467,6469,6471,6473,6475,6477],{"class":743,"line":1816},[741,6452,2877],{"class":787},[741,6454,1760],{"class":858},[741,6456,2882],{"class":751},[741,6458,4610],{"class":794},[741,6460,4670],{"class":751},[741,6462,4673],{"class":751},[741,6464,4646],{"class":794},[741,6466,4678],{"class":751},[741,6468,804],{"class":751},[741,6470,4683],{"class":807},[741,6472,979],{"class":751},[741,6474,2888],{"class":858},[741,6476,2891],{"class":787},[741,6478,4692],{"class":794},[741,6480,6481],{"class":743,"line":1821},[741,6482,834],{"emptyLinePlaceholder":833},[741,6484,6485,6487,6489,6491,6493,6495,6497,6499,6501,6503,6505],{"class":743,"line":1828},[741,6486,1776],{"class":931},[741,6488,3290],{"class":794},[741,6490,752],{"class":751},[741,6492,3178],{"class":747},[741,6494,3169],{"class":751},[741,6496,3183],{"class":747},[741,6498,940],{"class":751},[741,6500,3188],{"class":747},[741,6502,3280],{"class":751},[741,6504,958],{"class":751},[741,6506,4721],{"class":751},[741,6508,6509,6511,6513,6515,6517,6519,6521,6523,6525,6527,6529,6531,6533,6535,6537,6539],{"class":743,"line":1834},[741,6510,3309],{"class":787},[741,6512,1760],{"class":858},[741,6514,1545],{"class":931},[741,6516,864],{"class":751},[741,6518,3337],{"class":794},[741,6520,940],{"class":751},[741,6522,4738],{"class":794},[741,6524,2852],{"class":751},[741,6526,3319],{"class":751},[741,6528,4745],{"class":794},[741,6530,1194],{"class":751},[741,6532,4750],{"class":846},[741,6534,849],{"class":858},[741,6536,4610],{"class":794},[741,6538,4641],{"class":858},[741,6540,852],{"class":751},[741,6542,6543,6545,6547,6549,6551,6553,6555,6557,6559,6561,6563,6565,6567,6569,6571,6573,6575],{"class":743,"line":1839},[741,6544,4763],{"class":931},[741,6546,4766],{"class":794},[741,6548,958],{"class":751},[741,6550,3316],{"class":794},[741,6552,1194],{"class":751},[741,6554,4775],{"class":846},[741,6556,4778],{"class":858},[741,6558,1194],{"class":751},[741,6560,4783],{"class":846},[741,6562,849],{"class":858},[741,6564,4788],{"class":751},[741,6566,4791],{"class":807},[741,6568,4794],{"class":751},[741,6570,4797],{"class":2945},[741,6572,940],{"class":751},[741,6574,4802],{"class":751},[741,6576,894],{"class":858},[741,6578,6579,6581,6583,6585,6587,6589,6591,6593,6595,6597,6599,6601,6603,6605,6607,6609,6611,6613,6615,6617,6619,6621,6623,6625,6627,6629],{"class":743,"line":1845},[741,6580,4809],{"class":794},[741,6582,3357],{"class":858},[741,6584,3337],{"class":794},[741,6586,4816],{"class":858},[741,6588,1203],{"class":751},[741,6590,4821],{"class":794},[741,6592,1194],{"class":751},[741,6594,4826],{"class":846},[741,6596,849],{"class":858},[741,6598,4831],{"class":1763},[741,6600,1769],{"class":931},[741,6602,4766],{"class":794},[741,6604,1194],{"class":751},[741,6606,4840],{"class":846},[741,6608,849],{"class":858},[741,6610,4831],{"class":794},[741,6612,4641],{"class":858},[741,6614,4849],{"class":751},[741,6616,804],{"class":751},[741,6618,4854],{"class":807},[741,6620,979],{"class":751},[741,6622,4859],{"class":751},[741,6624,4605],{"class":846},[741,6626,849],{"class":858},[741,6628,4866],{"class":794},[741,6630,894],{"class":858},[741,6632,6633],{"class":743,"line":1860},[741,6634,3373],{"class":751},[741,6636,6637,6639],{"class":743,"line":1870},[741,6638,2339],{"class":787},[741,6640,3381],{"class":794},[741,6642,6643],{"class":743,"line":1887},[741,6644,776],{"class":751},[741,6646,6647],{"class":743,"line":1912},[741,6648,834],{"emptyLinePlaceholder":833},[741,6650,6651,6653,6655,6657,6659,6661,6663,6665,6667],{"class":743,"line":1918},[741,6652,840],{"class":787},[741,6654,843],{"class":787},[741,6656,5012],{"class":846},[741,6658,849],{"class":794},[741,6660,849],{"class":751},[741,6662,4902],{"class":1763},[741,6664,1226],{"class":751},[741,6666,1769],{"class":931},[741,6668,755],{"class":751},[741,6670,6671,6673,6675,6677,6679,6681,6683,6685,6687,6689,6691,6693,6695,6697,6699],{"class":743,"line":1924},[741,6672,4913],{"class":794},[741,6674,1194],{"class":751},[741,6676,4918],{"class":794},[741,6678,1194],{"class":751},[741,6680,4923],{"class":846},[741,6682,849],{"class":858},[741,6684,979],{"class":751},[741,6686,4930],{"class":807},[741,6688,979],{"class":751},[741,6690,940],{"class":751},[741,6692,1760],{"class":751},[741,6694,4939],{"class":1763},[741,6696,1226],{"class":751},[741,6698,1769],{"class":931},[741,6700,755],{"class":751},[741,6702,6703],{"class":743,"line":1932},[741,6704,4950],{"class":1824},[741,6706,6707,6709,6711,6713,6715,6717,6719,6721,6723,6725,6727,6729,6731,6733,6735],{"class":743,"line":2135},[741,6708,4955],{"class":794},[741,6710,1194],{"class":751},[741,6712,1764],{"class":794},[741,6714,958],{"class":751},[741,6716,4605],{"class":846},[741,6718,849],{"class":858},[741,6720,4939],{"class":794},[741,6722,1194],{"class":751},[741,6724,1764],{"class":794},[741,6726,2888],{"class":858},[741,6728,4976],{"class":787},[741,6730,4673],{"class":751},[741,6732,4981],{"class":794},[741,6734,1194],{"class":751},[741,6736,4986],{"class":794},[741,6738,6739,6741],{"class":743,"line":2364},[741,6740,1927],{"class":751},[741,6742,894],{"class":858},[741,6744,6745,6747],{"class":743,"line":3194},[741,6746,891],{"class":751},[741,6748,894],{"class":794},[731,6750,6752],{"className":733,"code":6751,"filename":300,"language":735,"meta":1151,"style":737},"import { evlog } from 'evlog\u002Freact-router'\n\nconst SENSITIVE_KEYS = ['password', 'token', 'secret', 'apikey', 'authorization', 'cookie']\n\nfunction deepSanitize(value: unknown): unknown {\n  if (Array.isArray(value)) return value.map(deepSanitize)\n  if (!value || typeof value !== 'object') return value\n\n  const result: Record\u003Cstring, unknown> = {}\n  for (const [key, nested] of Object.entries(value)) {\n    const name = key.toLowerCase().replace(\u002F[-_]\u002Fg, '')\n    result[key] = SENSITIVE_KEYS.some(k => name.includes(k)) ? '[REDACTED]' : deepSanitize(nested)\n  }\n  return result\n}\nexport const middleware: Route.MiddlewareFunction[] = [\n  evlog({\n      drain: (ctx) => {\n          \u002F\u002F Sanitize before sending to external service\n          ctx.event = deepSanitize(ctx.event) as typeof ctx.event\n        },\n    }),\n]\n",[630,6753,6754,6772,6776,6834,6838,6858,6890,6920,6924,6948,6982,7018,7072,7076,7082,7086,7108,7116,7133,7138,7171,7176,7185],{"__ignoreMap":737},[741,6755,6756,6758,6760,6762,6764,6766,6768,6770],{"class":743,"line":744},[741,6757,788],{"class":787},[741,6759,791],{"class":751},[741,6761,1162],{"class":794},[741,6763,798],{"class":751},[741,6765,801],{"class":787},[741,6767,804],{"class":751},[741,6769,1171],{"class":807},[741,6771,811],{"class":751},[741,6773,6774],{"class":743,"line":758},[741,6775,834],{"emptyLinePlaceholder":833},[741,6777,6778,6780,6782,6784,6786,6788,6790,6792,6794,6796,6798,6800,6802,6804,6806,6808,6810,6812,6814,6816,6818,6820,6822,6824,6826,6828,6830,6832],{"class":743,"line":773},[741,6779,1545],{"class":931},[741,6781,4539],{"class":794},[741,6783,1203],{"class":751},[741,6785,864],{"class":794},[741,6787,979],{"class":751},[741,6789,3225],{"class":807},[741,6791,979],{"class":751},[741,6793,940],{"class":751},[741,6795,804],{"class":751},[741,6797,3234],{"class":807},[741,6799,979],{"class":751},[741,6801,940],{"class":751},[741,6803,804],{"class":751},[741,6805,3243],{"class":807},[741,6807,979],{"class":751},[741,6809,940],{"class":751},[741,6811,804],{"class":751},[741,6813,4572],{"class":807},[741,6815,979],{"class":751},[741,6817,940],{"class":751},[741,6819,804],{"class":751},[741,6821,3261],{"class":807},[741,6823,979],{"class":751},[741,6825,940],{"class":751},[741,6827,804],{"class":751},[741,6829,4589],{"class":807},[741,6831,979],{"class":751},[741,6833,1233],{"class":794},[741,6835,6836],{"class":743,"line":837},[741,6837,834],{"emptyLinePlaceholder":833},[741,6839,6840,6842,6844,6846,6848,6850,6852,6854,6856],{"class":743,"line":855},[741,6841,4602],{"class":931},[741,6843,4605],{"class":846},[741,6845,849],{"class":751},[741,6847,4610],{"class":1763},[741,6849,752],{"class":751},[741,6851,3188],{"class":747},[741,6853,2831],{"class":751},[741,6855,3188],{"class":747},[741,6857,755],{"class":751},[741,6859,6860,6862,6864,6866,6868,6870,6872,6874,6876,6878,6880,6882,6884,6886,6888],{"class":743,"line":888},[741,6861,2877],{"class":787},[741,6863,1760],{"class":858},[741,6865,4629],{"class":794},[741,6867,1194],{"class":751},[741,6869,4634],{"class":846},[741,6871,849],{"class":858},[741,6873,4610],{"class":794},[741,6875,4641],{"class":858},[741,6877,2891],{"class":787},[741,6879,4646],{"class":794},[741,6881,1194],{"class":751},[741,6883,109],{"class":846},[741,6885,849],{"class":858},[741,6887,4655],{"class":794},[741,6889,894],{"class":858},[741,6891,6892,6894,6896,6898,6900,6902,6904,6906,6908,6910,6912,6914,6916,6918],{"class":743,"line":1816},[741,6893,2877],{"class":787},[741,6895,1760],{"class":858},[741,6897,2882],{"class":751},[741,6899,4610],{"class":794},[741,6901,4670],{"class":751},[741,6903,4673],{"class":751},[741,6905,4646],{"class":794},[741,6907,4678],{"class":751},[741,6909,804],{"class":751},[741,6911,4683],{"class":807},[741,6913,979],{"class":751},[741,6915,2888],{"class":858},[741,6917,2891],{"class":787},[741,6919,4692],{"class":794},[741,6921,6922],{"class":743,"line":1821},[741,6923,834],{"emptyLinePlaceholder":833},[741,6925,6926,6928,6930,6932,6934,6936,6938,6940,6942,6944,6946],{"class":743,"line":1828},[741,6927,1776],{"class":931},[741,6929,3290],{"class":794},[741,6931,752],{"class":751},[741,6933,3178],{"class":747},[741,6935,3169],{"class":751},[741,6937,3183],{"class":747},[741,6939,940],{"class":751},[741,6941,3188],{"class":747},[741,6943,3280],{"class":751},[741,6945,958],{"class":751},[741,6947,4721],{"class":751},[741,6949,6950,6952,6954,6956,6958,6960,6962,6964,6966,6968,6970,6972,6974,6976,6978,6980],{"class":743,"line":1834},[741,6951,3309],{"class":787},[741,6953,1760],{"class":858},[741,6955,1545],{"class":931},[741,6957,864],{"class":751},[741,6959,3337],{"class":794},[741,6961,940],{"class":751},[741,6963,4738],{"class":794},[741,6965,2852],{"class":751},[741,6967,3319],{"class":751},[741,6969,4745],{"class":794},[741,6971,1194],{"class":751},[741,6973,4750],{"class":846},[741,6975,849],{"class":858},[741,6977,4610],{"class":794},[741,6979,4641],{"class":858},[741,6981,852],{"class":751},[741,6983,6984,6986,6988,6990,6992,6994,6996,6998,7000,7002,7004,7006,7008,7010,7012,7014,7016],{"class":743,"line":1839},[741,6985,4763],{"class":931},[741,6987,4766],{"class":794},[741,6989,958],{"class":751},[741,6991,3316],{"class":794},[741,6993,1194],{"class":751},[741,6995,4775],{"class":846},[741,6997,4778],{"class":858},[741,6999,1194],{"class":751},[741,7001,4783],{"class":846},[741,7003,849],{"class":858},[741,7005,4788],{"class":751},[741,7007,4791],{"class":807},[741,7009,4794],{"class":751},[741,7011,4797],{"class":2945},[741,7013,940],{"class":751},[741,7015,4802],{"class":751},[741,7017,894],{"class":858},[741,7019,7020,7022,7024,7026,7028,7030,7032,7034,7036,7038,7040,7042,7044,7046,7048,7050,7052,7054,7056,7058,7060,7062,7064,7066,7068,7070],{"class":743,"line":1845},[741,7021,4809],{"class":794},[741,7023,3357],{"class":858},[741,7025,3337],{"class":794},[741,7027,4816],{"class":858},[741,7029,1203],{"class":751},[741,7031,4821],{"class":794},[741,7033,1194],{"class":751},[741,7035,4826],{"class":846},[741,7037,849],{"class":858},[741,7039,4831],{"class":1763},[741,7041,1769],{"class":931},[741,7043,4766],{"class":794},[741,7045,1194],{"class":751},[741,7047,4840],{"class":846},[741,7049,849],{"class":858},[741,7051,4831],{"class":794},[741,7053,4641],{"class":858},[741,7055,4849],{"class":751},[741,7057,804],{"class":751},[741,7059,4854],{"class":807},[741,7061,979],{"class":751},[741,7063,4859],{"class":751},[741,7065,4605],{"class":846},[741,7067,849],{"class":858},[741,7069,4866],{"class":794},[741,7071,894],{"class":858},[741,7073,7074],{"class":743,"line":1860},[741,7075,3373],{"class":751},[741,7077,7078,7080],{"class":743,"line":1870},[741,7079,2339],{"class":787},[741,7081,3381],{"class":794},[741,7083,7084],{"class":743,"line":1887},[741,7085,776],{"class":751},[741,7087,7088,7090,7092,7094,7096,7098,7100,7102,7104,7106],{"class":743,"line":1912},[741,7089,840],{"class":787},[741,7091,932],{"class":931},[741,7093,1186],{"class":794},[741,7095,752],{"class":751},[741,7097,1191],{"class":747},[741,7099,1194],{"class":751},[741,7101,1197],{"class":747},[741,7103,1200],{"class":794},[741,7105,1203],{"class":751},[741,7107,1206],{"class":794},[741,7109,7110,7112,7114],{"class":743,"line":1918},[741,7111,1211],{"class":846},[741,7113,849],{"class":794},[741,7115,852],{"class":751},[741,7117,7118,7121,7123,7125,7127,7129,7131],{"class":743,"line":1924},[741,7119,7120],{"class":846},"      drain",[741,7122,752],{"class":751},[741,7124,1760],{"class":751},[741,7126,4939],{"class":1763},[741,7128,1226],{"class":751},[741,7130,1769],{"class":931},[741,7132,755],{"class":751},[741,7134,7135],{"class":743,"line":1932},[741,7136,7137],{"class":1824},"          \u002F\u002F Sanitize before sending to external service\n",[741,7139,7140,7143,7145,7147,7149,7151,7153,7155,7157,7159,7161,7163,7165,7167,7169],{"class":743,"line":2135},[741,7141,7142],{"class":794},"          ctx",[741,7144,1194],{"class":751},[741,7146,1764],{"class":794},[741,7148,958],{"class":751},[741,7150,4605],{"class":846},[741,7152,849],{"class":858},[741,7154,4939],{"class":794},[741,7156,1194],{"class":751},[741,7158,1764],{"class":794},[741,7160,2888],{"class":858},[741,7162,4976],{"class":787},[741,7164,4673],{"class":751},[741,7166,4981],{"class":794},[741,7168,1194],{"class":751},[741,7170,4986],{"class":794},[741,7172,7173],{"class":743,"line":2364},[741,7174,7175],{"class":751},"        },\n",[741,7177,7178,7181,7183],{"class":743,"line":3194},[741,7179,7180],{"class":751},"    }",[741,7182,1226],{"class":794},[741,7184,770],{"class":751},[741,7186,7187],{"class":743,"line":3207},[741,7188,1233],{"class":794},[731,7190,7192],{"className":733,"code":7191,"filename":285,"language":735,"meta":1237,"style":737},"import { evlog } from 'evlog\u002Fhono'\n\nconst SENSITIVE_KEYS = ['password', 'token', 'secret', 'apikey', 'authorization', 'cookie']\n\nfunction deepSanitize(value: unknown): unknown {\n  if (Array.isArray(value)) return value.map(deepSanitize)\n  if (!value || typeof value !== 'object') return value\n\n  const result: Record\u003Cstring, unknown> = {}\n  for (const [key, nested] of Object.entries(value)) {\n    const name = key.toLowerCase().replace(\u002F[-_]\u002Fg, '')\n    result[key] = SENSITIVE_KEYS.some(k => name.includes(k)) ? '[REDACTED]' : deepSanitize(nested)\n  }\n  return result\n}\napp.use(evlog({\n  drain: (ctx) => {\n      \u002F\u002F Sanitize before sending to external service\n      ctx.event = deepSanitize(ctx.event) as typeof ctx.event\n    },\n}))\n",[630,7193,7194,7212,7216,7274,7278,7298,7330,7360,7364,7388,7422,7458,7512,7516,7522,7526,7542,7558,7562,7594,7598],{"__ignoreMap":737},[741,7195,7196,7198,7200,7202,7204,7206,7208,7210],{"class":743,"line":744},[741,7197,788],{"class":787},[741,7199,791],{"class":751},[741,7201,1162],{"class":794},[741,7203,798],{"class":751},[741,7205,801],{"class":787},[741,7207,804],{"class":751},[741,7209,1256],{"class":807},[741,7211,811],{"class":751},[741,7213,7214],{"class":743,"line":758},[741,7215,834],{"emptyLinePlaceholder":833},[741,7217,7218,7220,7222,7224,7226,7228,7230,7232,7234,7236,7238,7240,7242,7244,7246,7248,7250,7252,7254,7256,7258,7260,7262,7264,7266,7268,7270,7272],{"class":743,"line":773},[741,7219,1545],{"class":931},[741,7221,4539],{"class":794},[741,7223,1203],{"class":751},[741,7225,864],{"class":794},[741,7227,979],{"class":751},[741,7229,3225],{"class":807},[741,7231,979],{"class":751},[741,7233,940],{"class":751},[741,7235,804],{"class":751},[741,7237,3234],{"class":807},[741,7239,979],{"class":751},[741,7241,940],{"class":751},[741,7243,804],{"class":751},[741,7245,3243],{"class":807},[741,7247,979],{"class":751},[741,7249,940],{"class":751},[741,7251,804],{"class":751},[741,7253,4572],{"class":807},[741,7255,979],{"class":751},[741,7257,940],{"class":751},[741,7259,804],{"class":751},[741,7261,3261],{"class":807},[741,7263,979],{"class":751},[741,7265,940],{"class":751},[741,7267,804],{"class":751},[741,7269,4589],{"class":807},[741,7271,979],{"class":751},[741,7273,1233],{"class":794},[741,7275,7276],{"class":743,"line":837},[741,7277,834],{"emptyLinePlaceholder":833},[741,7279,7280,7282,7284,7286,7288,7290,7292,7294,7296],{"class":743,"line":855},[741,7281,4602],{"class":931},[741,7283,4605],{"class":846},[741,7285,849],{"class":751},[741,7287,4610],{"class":1763},[741,7289,752],{"class":751},[741,7291,3188],{"class":747},[741,7293,2831],{"class":751},[741,7295,3188],{"class":747},[741,7297,755],{"class":751},[741,7299,7300,7302,7304,7306,7308,7310,7312,7314,7316,7318,7320,7322,7324,7326,7328],{"class":743,"line":888},[741,7301,2877],{"class":787},[741,7303,1760],{"class":858},[741,7305,4629],{"class":794},[741,7307,1194],{"class":751},[741,7309,4634],{"class":846},[741,7311,849],{"class":858},[741,7313,4610],{"class":794},[741,7315,4641],{"class":858},[741,7317,2891],{"class":787},[741,7319,4646],{"class":794},[741,7321,1194],{"class":751},[741,7323,109],{"class":846},[741,7325,849],{"class":858},[741,7327,4655],{"class":794},[741,7329,894],{"class":858},[741,7331,7332,7334,7336,7338,7340,7342,7344,7346,7348,7350,7352,7354,7356,7358],{"class":743,"line":1816},[741,7333,2877],{"class":787},[741,7335,1760],{"class":858},[741,7337,2882],{"class":751},[741,7339,4610],{"class":794},[741,7341,4670],{"class":751},[741,7343,4673],{"class":751},[741,7345,4646],{"class":794},[741,7347,4678],{"class":751},[741,7349,804],{"class":751},[741,7351,4683],{"class":807},[741,7353,979],{"class":751},[741,7355,2888],{"class":858},[741,7357,2891],{"class":787},[741,7359,4692],{"class":794},[741,7361,7362],{"class":743,"line":1821},[741,7363,834],{"emptyLinePlaceholder":833},[741,7365,7366,7368,7370,7372,7374,7376,7378,7380,7382,7384,7386],{"class":743,"line":1828},[741,7367,1776],{"class":931},[741,7369,3290],{"class":794},[741,7371,752],{"class":751},[741,7373,3178],{"class":747},[741,7375,3169],{"class":751},[741,7377,3183],{"class":747},[741,7379,940],{"class":751},[741,7381,3188],{"class":747},[741,7383,3280],{"class":751},[741,7385,958],{"class":751},[741,7387,4721],{"class":751},[741,7389,7390,7392,7394,7396,7398,7400,7402,7404,7406,7408,7410,7412,7414,7416,7418,7420],{"class":743,"line":1834},[741,7391,3309],{"class":787},[741,7393,1760],{"class":858},[741,7395,1545],{"class":931},[741,7397,864],{"class":751},[741,7399,3337],{"class":794},[741,7401,940],{"class":751},[741,7403,4738],{"class":794},[741,7405,2852],{"class":751},[741,7407,3319],{"class":751},[741,7409,4745],{"class":794},[741,7411,1194],{"class":751},[741,7413,4750],{"class":846},[741,7415,849],{"class":858},[741,7417,4610],{"class":794},[741,7419,4641],{"class":858},[741,7421,852],{"class":751},[741,7423,7424,7426,7428,7430,7432,7434,7436,7438,7440,7442,7444,7446,7448,7450,7452,7454,7456],{"class":743,"line":1839},[741,7425,4763],{"class":931},[741,7427,4766],{"class":794},[741,7429,958],{"class":751},[741,7431,3316],{"class":794},[741,7433,1194],{"class":751},[741,7435,4775],{"class":846},[741,7437,4778],{"class":858},[741,7439,1194],{"class":751},[741,7441,4783],{"class":846},[741,7443,849],{"class":858},[741,7445,4788],{"class":751},[741,7447,4791],{"class":807},[741,7449,4794],{"class":751},[741,7451,4797],{"class":2945},[741,7453,940],{"class":751},[741,7455,4802],{"class":751},[741,7457,894],{"class":858},[741,7459,7460,7462,7464,7466,7468,7470,7472,7474,7476,7478,7480,7482,7484,7486,7488,7490,7492,7494,7496,7498,7500,7502,7504,7506,7508,7510],{"class":743,"line":1845},[741,7461,4809],{"class":794},[741,7463,3357],{"class":858},[741,7465,3337],{"class":794},[741,7467,4816],{"class":858},[741,7469,1203],{"class":751},[741,7471,4821],{"class":794},[741,7473,1194],{"class":751},[741,7475,4826],{"class":846},[741,7477,849],{"class":858},[741,7479,4831],{"class":1763},[741,7481,1769],{"class":931},[741,7483,4766],{"class":794},[741,7485,1194],{"class":751},[741,7487,4840],{"class":846},[741,7489,849],{"class":858},[741,7491,4831],{"class":794},[741,7493,4641],{"class":858},[741,7495,4849],{"class":751},[741,7497,804],{"class":751},[741,7499,4854],{"class":807},[741,7501,979],{"class":751},[741,7503,4859],{"class":751},[741,7505,4605],{"class":846},[741,7507,849],{"class":858},[741,7509,4866],{"class":794},[741,7511,894],{"class":858},[741,7513,7514],{"class":743,"line":1860},[741,7515,3373],{"class":751},[741,7517,7518,7520],{"class":743,"line":1870},[741,7519,2339],{"class":787},[741,7521,3381],{"class":794},[741,7523,7524],{"class":743,"line":1887},[741,7525,776],{"class":751},[741,7527,7528,7530,7532,7534,7536,7538,7540],{"class":743,"line":1912},[741,7529,1267],{"class":794},[741,7531,1194],{"class":751},[741,7533,1272],{"class":846},[741,7535,849],{"class":794},[741,7537,748],{"class":846},[741,7539,849],{"class":794},[741,7541,852],{"class":751},[741,7543,7544,7546,7548,7550,7552,7554,7556],{"class":743,"line":1918},[741,7545,5824],{"class":846},[741,7547,752],{"class":751},[741,7549,1760],{"class":751},[741,7551,4939],{"class":1763},[741,7553,1226],{"class":751},[741,7555,1769],{"class":931},[741,7557,755],{"class":751},[741,7559,7560],{"class":743,"line":1924},[741,7561,5841],{"class":1824},[741,7563,7564,7566,7568,7570,7572,7574,7576,7578,7580,7582,7584,7586,7588,7590,7592],{"class":743,"line":1932},[741,7565,5846],{"class":794},[741,7567,1194],{"class":751},[741,7569,1764],{"class":794},[741,7571,958],{"class":751},[741,7573,4605],{"class":846},[741,7575,849],{"class":858},[741,7577,4939],{"class":794},[741,7579,1194],{"class":751},[741,7581,1764],{"class":794},[741,7583,2888],{"class":858},[741,7585,4976],{"class":787},[741,7587,4673],{"class":751},[741,7589,4981],{"class":794},[741,7591,1194],{"class":751},[741,7593,4986],{"class":794},[741,7595,7596],{"class":743,"line":2135},[741,7597,1921],{"class":751},[741,7599,7600,7602],{"class":743,"line":2364},[741,7601,891],{"class":751},[741,7603,1291],{"class":794},[731,7605,7607],{"className":733,"code":7606,"filename":280,"language":735,"meta":1237,"style":737},"import { evlog } from 'evlog\u002Fexpress'\n\nconst SENSITIVE_KEYS = ['password', 'token', 'secret', 'apikey', 'authorization', 'cookie']\n\nfunction deepSanitize(value: unknown): unknown {\n  if (Array.isArray(value)) return value.map(deepSanitize)\n  if (!value || typeof value !== 'object') return value\n\n  const result: Record\u003Cstring, unknown> = {}\n  for (const [key, nested] of Object.entries(value)) {\n    const name = key.toLowerCase().replace(\u002F[-_]\u002Fg, '')\n    result[key] = SENSITIVE_KEYS.some(k => name.includes(k)) ? '[REDACTED]' : deepSanitize(nested)\n  }\n  return result\n}\napp.use(evlog({\n  drain: (ctx) => {\n      \u002F\u002F Sanitize before sending to external service\n      ctx.event = deepSanitize(ctx.event) as typeof ctx.event\n    },\n}))\n",[630,7608,7609,7627,7631,7689,7693,7713,7745,7775,7779,7803,7837,7873,7927,7931,7937,7941,7957,7973,7977,8009,8013],{"__ignoreMap":737},[741,7610,7611,7613,7615,7617,7619,7621,7623,7625],{"class":743,"line":744},[741,7612,788],{"class":787},[741,7614,791],{"class":751},[741,7616,1162],{"class":794},[741,7618,798],{"class":751},[741,7620,801],{"class":787},[741,7622,804],{"class":751},[741,7624,1313],{"class":807},[741,7626,811],{"class":751},[741,7628,7629],{"class":743,"line":758},[741,7630,834],{"emptyLinePlaceholder":833},[741,7632,7633,7635,7637,7639,7641,7643,7645,7647,7649,7651,7653,7655,7657,7659,7661,7663,7665,7667,7669,7671,7673,7675,7677,7679,7681,7683,7685,7687],{"class":743,"line":773},[741,7634,1545],{"class":931},[741,7636,4539],{"class":794},[741,7638,1203],{"class":751},[741,7640,864],{"class":794},[741,7642,979],{"class":751},[741,7644,3225],{"class":807},[741,7646,979],{"class":751},[741,7648,940],{"class":751},[741,7650,804],{"class":751},[741,7652,3234],{"class":807},[741,7654,979],{"class":751},[741,7656,940],{"class":751},[741,7658,804],{"class":751},[741,7660,3243],{"class":807},[741,7662,979],{"class":751},[741,7664,940],{"class":751},[741,7666,804],{"class":751},[741,7668,4572],{"class":807},[741,7670,979],{"class":751},[741,7672,940],{"class":751},[741,7674,804],{"class":751},[741,7676,3261],{"class":807},[741,7678,979],{"class":751},[741,7680,940],{"class":751},[741,7682,804],{"class":751},[741,7684,4589],{"class":807},[741,7686,979],{"class":751},[741,7688,1233],{"class":794},[741,7690,7691],{"class":743,"line":837},[741,7692,834],{"emptyLinePlaceholder":833},[741,7694,7695,7697,7699,7701,7703,7705,7707,7709,7711],{"class":743,"line":855},[741,7696,4602],{"class":931},[741,7698,4605],{"class":846},[741,7700,849],{"class":751},[741,7702,4610],{"class":1763},[741,7704,752],{"class":751},[741,7706,3188],{"class":747},[741,7708,2831],{"class":751},[741,7710,3188],{"class":747},[741,7712,755],{"class":751},[741,7714,7715,7717,7719,7721,7723,7725,7727,7729,7731,7733,7735,7737,7739,7741,7743],{"class":743,"line":888},[741,7716,2877],{"class":787},[741,7718,1760],{"class":858},[741,7720,4629],{"class":794},[741,7722,1194],{"class":751},[741,7724,4634],{"class":846},[741,7726,849],{"class":858},[741,7728,4610],{"class":794},[741,7730,4641],{"class":858},[741,7732,2891],{"class":787},[741,7734,4646],{"class":794},[741,7736,1194],{"class":751},[741,7738,109],{"class":846},[741,7740,849],{"class":858},[741,7742,4655],{"class":794},[741,7744,894],{"class":858},[741,7746,7747,7749,7751,7753,7755,7757,7759,7761,7763,7765,7767,7769,7771,7773],{"class":743,"line":1816},[741,7748,2877],{"class":787},[741,7750,1760],{"class":858},[741,7752,2882],{"class":751},[741,7754,4610],{"class":794},[741,7756,4670],{"class":751},[741,7758,4673],{"class":751},[741,7760,4646],{"class":794},[741,7762,4678],{"class":751},[741,7764,804],{"class":751},[741,7766,4683],{"class":807},[741,7768,979],{"class":751},[741,7770,2888],{"class":858},[741,7772,2891],{"class":787},[741,7774,4692],{"class":794},[741,7776,7777],{"class":743,"line":1821},[741,7778,834],{"emptyLinePlaceholder":833},[741,7780,7781,7783,7785,7787,7789,7791,7793,7795,7797,7799,7801],{"class":743,"line":1828},[741,7782,1776],{"class":931},[741,7784,3290],{"class":794},[741,7786,752],{"class":751},[741,7788,3178],{"class":747},[741,7790,3169],{"class":751},[741,7792,3183],{"class":747},[741,7794,940],{"class":751},[741,7796,3188],{"class":747},[741,7798,3280],{"class":751},[741,7800,958],{"class":751},[741,7802,4721],{"class":751},[741,7804,7805,7807,7809,7811,7813,7815,7817,7819,7821,7823,7825,7827,7829,7831,7833,7835],{"class":743,"line":1834},[741,7806,3309],{"class":787},[741,7808,1760],{"class":858},[741,7810,1545],{"class":931},[741,7812,864],{"class":751},[741,7814,3337],{"class":794},[741,7816,940],{"class":751},[741,7818,4738],{"class":794},[741,7820,2852],{"class":751},[741,7822,3319],{"class":751},[741,7824,4745],{"class":794},[741,7826,1194],{"class":751},[741,7828,4750],{"class":846},[741,7830,849],{"class":858},[741,7832,4610],{"class":794},[741,7834,4641],{"class":858},[741,7836,852],{"class":751},[741,7838,7839,7841,7843,7845,7847,7849,7851,7853,7855,7857,7859,7861,7863,7865,7867,7869,7871],{"class":743,"line":1839},[741,7840,4763],{"class":931},[741,7842,4766],{"class":794},[741,7844,958],{"class":751},[741,7846,3316],{"class":794},[741,7848,1194],{"class":751},[741,7850,4775],{"class":846},[741,7852,4778],{"class":858},[741,7854,1194],{"class":751},[741,7856,4783],{"class":846},[741,7858,849],{"class":858},[741,7860,4788],{"class":751},[741,7862,4791],{"class":807},[741,7864,4794],{"class":751},[741,7866,4797],{"class":2945},[741,7868,940],{"class":751},[741,7870,4802],{"class":751},[741,7872,894],{"class":858},[741,7874,7875,7877,7879,7881,7883,7885,7887,7889,7891,7893,7895,7897,7899,7901,7903,7905,7907,7909,7911,7913,7915,7917,7919,7921,7923,7925],{"class":743,"line":1845},[741,7876,4809],{"class":794},[741,7878,3357],{"class":858},[741,7880,3337],{"class":794},[741,7882,4816],{"class":858},[741,7884,1203],{"class":751},[741,7886,4821],{"class":794},[741,7888,1194],{"class":751},[741,7890,4826],{"class":846},[741,7892,849],{"class":858},[741,7894,4831],{"class":1763},[741,7896,1769],{"class":931},[741,7898,4766],{"class":794},[741,7900,1194],{"class":751},[741,7902,4840],{"class":846},[741,7904,849],{"class":858},[741,7906,4831],{"class":794},[741,7908,4641],{"class":858},[741,7910,4849],{"class":751},[741,7912,804],{"class":751},[741,7914,4854],{"class":807},[741,7916,979],{"class":751},[741,7918,4859],{"class":751},[741,7920,4605],{"class":846},[741,7922,849],{"class":858},[741,7924,4866],{"class":794},[741,7926,894],{"class":858},[741,7928,7929],{"class":743,"line":1860},[741,7930,3373],{"class":751},[741,7932,7933,7935],{"class":743,"line":1870},[741,7934,2339],{"class":787},[741,7936,3381],{"class":794},[741,7938,7939],{"class":743,"line":1887},[741,7940,776],{"class":751},[741,7942,7943,7945,7947,7949,7951,7953,7955],{"class":743,"line":1912},[741,7944,1267],{"class":794},[741,7946,1194],{"class":751},[741,7948,1272],{"class":846},[741,7950,849],{"class":794},[741,7952,748],{"class":846},[741,7954,849],{"class":794},[741,7956,852],{"class":751},[741,7958,7959,7961,7963,7965,7967,7969,7971],{"class":743,"line":1918},[741,7960,5824],{"class":846},[741,7962,752],{"class":751},[741,7964,1760],{"class":751},[741,7966,4939],{"class":1763},[741,7968,1226],{"class":751},[741,7970,1769],{"class":931},[741,7972,755],{"class":751},[741,7974,7975],{"class":743,"line":1924},[741,7976,5841],{"class":1824},[741,7978,7979,7981,7983,7985,7987,7989,7991,7993,7995,7997,7999,8001,8003,8005,8007],{"class":743,"line":1932},[741,7980,5846],{"class":794},[741,7982,1194],{"class":751},[741,7984,1764],{"class":794},[741,7986,958],{"class":751},[741,7988,4605],{"class":846},[741,7990,849],{"class":858},[741,7992,4939],{"class":794},[741,7994,1194],{"class":751},[741,7996,1764],{"class":794},[741,7998,2888],{"class":858},[741,8000,4976],{"class":787},[741,8002,4673],{"class":751},[741,8004,4981],{"class":794},[741,8006,1194],{"class":751},[741,8008,4986],{"class":794},[741,8010,8011],{"class":743,"line":2135},[741,8012,1921],{"class":751},[741,8014,8015,8017],{"class":743,"line":2364},[741,8016,891],{"class":751},[741,8018,1291],{"class":794},[731,8020,8022],{"className":733,"code":8021,"filename":290,"language":735,"meta":1237,"style":737},"import { evlog } from 'evlog\u002Ffastify'\n\nconst SENSITIVE_KEYS = ['password', 'token', 'secret', 'apikey', 'authorization', 'cookie']\n\nfunction deepSanitize(value: unknown): unknown {\n  if (Array.isArray(value)) return value.map(deepSanitize)\n  if (!value || typeof value !== 'object') return value\n\n  const result: Record\u003Cstring, unknown> = {}\n  for (const [key, nested] of Object.entries(value)) {\n    const name = key.toLowerCase().replace(\u002F[-_]\u002Fg, '')\n    result[key] = SENSITIVE_KEYS.some(k => name.includes(k)) ? '[REDACTED]' : deepSanitize(nested)\n  }\n  return result\n}\nawait app.register(evlog, {\n  drain: (ctx) => {\n      \u002F\u002F Sanitize before sending to external service\n      ctx.event = deepSanitize(ctx.event) as typeof ctx.event\n    },\n})\n",[630,8023,8024,8042,8046,8104,8108,8128,8160,8190,8194,8218,8252,8288,8342,8346,8352,8356,8372,8388,8392,8424,8428],{"__ignoreMap":737},[741,8025,8026,8028,8030,8032,8034,8036,8038,8040],{"class":743,"line":744},[741,8027,788],{"class":787},[741,8029,791],{"class":751},[741,8031,1162],{"class":794},[741,8033,798],{"class":751},[741,8035,801],{"class":787},[741,8037,804],{"class":751},[741,8039,1367],{"class":807},[741,8041,811],{"class":751},[741,8043,8044],{"class":743,"line":758},[741,8045,834],{"emptyLinePlaceholder":833},[741,8047,8048,8050,8052,8054,8056,8058,8060,8062,8064,8066,8068,8070,8072,8074,8076,8078,8080,8082,8084,8086,8088,8090,8092,8094,8096,8098,8100,8102],{"class":743,"line":773},[741,8049,1545],{"class":931},[741,8051,4539],{"class":794},[741,8053,1203],{"class":751},[741,8055,864],{"class":794},[741,8057,979],{"class":751},[741,8059,3225],{"class":807},[741,8061,979],{"class":751},[741,8063,940],{"class":751},[741,8065,804],{"class":751},[741,8067,3234],{"class":807},[741,8069,979],{"class":751},[741,8071,940],{"class":751},[741,8073,804],{"class":751},[741,8075,3243],{"class":807},[741,8077,979],{"class":751},[741,8079,940],{"class":751},[741,8081,804],{"class":751},[741,8083,4572],{"class":807},[741,8085,979],{"class":751},[741,8087,940],{"class":751},[741,8089,804],{"class":751},[741,8091,3261],{"class":807},[741,8093,979],{"class":751},[741,8095,940],{"class":751},[741,8097,804],{"class":751},[741,8099,4589],{"class":807},[741,8101,979],{"class":751},[741,8103,1233],{"class":794},[741,8105,8106],{"class":743,"line":837},[741,8107,834],{"emptyLinePlaceholder":833},[741,8109,8110,8112,8114,8116,8118,8120,8122,8124,8126],{"class":743,"line":855},[741,8111,4602],{"class":931},[741,8113,4605],{"class":846},[741,8115,849],{"class":751},[741,8117,4610],{"class":1763},[741,8119,752],{"class":751},[741,8121,3188],{"class":747},[741,8123,2831],{"class":751},[741,8125,3188],{"class":747},[741,8127,755],{"class":751},[741,8129,8130,8132,8134,8136,8138,8140,8142,8144,8146,8148,8150,8152,8154,8156,8158],{"class":743,"line":888},[741,8131,2877],{"class":787},[741,8133,1760],{"class":858},[741,8135,4629],{"class":794},[741,8137,1194],{"class":751},[741,8139,4634],{"class":846},[741,8141,849],{"class":858},[741,8143,4610],{"class":794},[741,8145,4641],{"class":858},[741,8147,2891],{"class":787},[741,8149,4646],{"class":794},[741,8151,1194],{"class":751},[741,8153,109],{"class":846},[741,8155,849],{"class":858},[741,8157,4655],{"class":794},[741,8159,894],{"class":858},[741,8161,8162,8164,8166,8168,8170,8172,8174,8176,8178,8180,8182,8184,8186,8188],{"class":743,"line":1816},[741,8163,2877],{"class":787},[741,8165,1760],{"class":858},[741,8167,2882],{"class":751},[741,8169,4610],{"class":794},[741,8171,4670],{"class":751},[741,8173,4673],{"class":751},[741,8175,4646],{"class":794},[741,8177,4678],{"class":751},[741,8179,804],{"class":751},[741,8181,4683],{"class":807},[741,8183,979],{"class":751},[741,8185,2888],{"class":858},[741,8187,2891],{"class":787},[741,8189,4692],{"class":794},[741,8191,8192],{"class":743,"line":1821},[741,8193,834],{"emptyLinePlaceholder":833},[741,8195,8196,8198,8200,8202,8204,8206,8208,8210,8212,8214,8216],{"class":743,"line":1828},[741,8197,1776],{"class":931},[741,8199,3290],{"class":794},[741,8201,752],{"class":751},[741,8203,3178],{"class":747},[741,8205,3169],{"class":751},[741,8207,3183],{"class":747},[741,8209,940],{"class":751},[741,8211,3188],{"class":747},[741,8213,3280],{"class":751},[741,8215,958],{"class":751},[741,8217,4721],{"class":751},[741,8219,8220,8222,8224,8226,8228,8230,8232,8234,8236,8238,8240,8242,8244,8246,8248,8250],{"class":743,"line":1834},[741,8221,3309],{"class":787},[741,8223,1760],{"class":858},[741,8225,1545],{"class":931},[741,8227,864],{"class":751},[741,8229,3337],{"class":794},[741,8231,940],{"class":751},[741,8233,4738],{"class":794},[741,8235,2852],{"class":751},[741,8237,3319],{"class":751},[741,8239,4745],{"class":794},[741,8241,1194],{"class":751},[741,8243,4750],{"class":846},[741,8245,849],{"class":858},[741,8247,4610],{"class":794},[741,8249,4641],{"class":858},[741,8251,852],{"class":751},[741,8253,8254,8256,8258,8260,8262,8264,8266,8268,8270,8272,8274,8276,8278,8280,8282,8284,8286],{"class":743,"line":1839},[741,8255,4763],{"class":931},[741,8257,4766],{"class":794},[741,8259,958],{"class":751},[741,8261,3316],{"class":794},[741,8263,1194],{"class":751},[741,8265,4775],{"class":846},[741,8267,4778],{"class":858},[741,8269,1194],{"class":751},[741,8271,4783],{"class":846},[741,8273,849],{"class":858},[741,8275,4788],{"class":751},[741,8277,4791],{"class":807},[741,8279,4794],{"class":751},[741,8281,4797],{"class":2945},[741,8283,940],{"class":751},[741,8285,4802],{"class":751},[741,8287,894],{"class":858},[741,8289,8290,8292,8294,8296,8298,8300,8302,8304,8306,8308,8310,8312,8314,8316,8318,8320,8322,8324,8326,8328,8330,8332,8334,8336,8338,8340],{"class":743,"line":1845},[741,8291,4809],{"class":794},[741,8293,3357],{"class":858},[741,8295,3337],{"class":794},[741,8297,4816],{"class":858},[741,8299,1203],{"class":751},[741,8301,4821],{"class":794},[741,8303,1194],{"class":751},[741,8305,4826],{"class":846},[741,8307,849],{"class":858},[741,8309,4831],{"class":1763},[741,8311,1769],{"class":931},[741,8313,4766],{"class":794},[741,8315,1194],{"class":751},[741,8317,4840],{"class":846},[741,8319,849],{"class":858},[741,8321,4831],{"class":794},[741,8323,4641],{"class":858},[741,8325,4849],{"class":751},[741,8327,804],{"class":751},[741,8329,4854],{"class":807},[741,8331,979],{"class":751},[741,8333,4859],{"class":751},[741,8335,4605],{"class":846},[741,8337,849],{"class":858},[741,8339,4866],{"class":794},[741,8341,894],{"class":858},[741,8343,8344],{"class":743,"line":1860},[741,8345,3373],{"class":751},[741,8347,8348,8350],{"class":743,"line":1870},[741,8349,2339],{"class":787},[741,8351,3381],{"class":794},[741,8353,8354],{"class":743,"line":1887},[741,8355,776],{"class":751},[741,8357,8358,8360,8362,8364,8366,8368,8370],{"class":743,"line":1912},[741,8359,1378],{"class":787},[741,8361,1381],{"class":794},[741,8363,1194],{"class":751},[741,8365,1386],{"class":846},[741,8367,1389],{"class":794},[741,8369,940],{"class":751},[741,8371,755],{"class":751},[741,8373,8374,8376,8378,8380,8382,8384,8386],{"class":743,"line":1918},[741,8375,5824],{"class":846},[741,8377,752],{"class":751},[741,8379,1760],{"class":751},[741,8381,4939],{"class":1763},[741,8383,1226],{"class":751},[741,8385,1769],{"class":931},[741,8387,755],{"class":751},[741,8389,8390],{"class":743,"line":1924},[741,8391,5841],{"class":1824},[741,8393,8394,8396,8398,8400,8402,8404,8406,8408,8410,8412,8414,8416,8418,8420,8422],{"class":743,"line":1932},[741,8395,5846],{"class":794},[741,8397,1194],{"class":751},[741,8399,1764],{"class":794},[741,8401,958],{"class":751},[741,8403,4605],{"class":846},[741,8405,849],{"class":858},[741,8407,4939],{"class":794},[741,8409,1194],{"class":751},[741,8411,1764],{"class":794},[741,8413,2888],{"class":858},[741,8415,4976],{"class":787},[741,8417,4673],{"class":751},[741,8419,4981],{"class":794},[741,8421,1194],{"class":751},[741,8423,4986],{"class":794},[741,8425,8426],{"class":743,"line":2135},[741,8427,1921],{"class":751},[741,8429,8430,8432],{"class":743,"line":2364},[741,8431,891],{"class":751},[741,8433,894],{"class":794},[731,8435,8437],{"className":733,"code":8436,"filename":295,"language":735,"meta":1237,"style":737},"import { evlog } from 'evlog\u002Felysia'\n\nconst SENSITIVE_KEYS = ['password', 'token', 'secret', 'apikey', 'authorization', 'cookie']\n\nfunction deepSanitize(value: unknown): unknown {\n  if (Array.isArray(value)) return value.map(deepSanitize)\n  if (!value || typeof value !== 'object') return value\n\n  const result: Record\u003Cstring, unknown> = {}\n  for (const [key, nested] of Object.entries(value)) {\n    const name = key.toLowerCase().replace(\u002F[-_]\u002Fg, '')\n    result[key] = SENSITIVE_KEYS.some(k => name.includes(k)) ? '[REDACTED]' : deepSanitize(nested)\n  }\n  return result\n}\napp.use(evlog({\n  drain: (ctx) => {\n      \u002F\u002F Sanitize before sending to external service\n      ctx.event = deepSanitize(ctx.event) as typeof ctx.event\n    },\n}))\n",[630,8438,8439,8457,8461,8519,8523,8543,8575,8605,8609,8633,8667,8703,8757,8761,8767,8771,8787,8803,8807,8839,8843],{"__ignoreMap":737},[741,8440,8441,8443,8445,8447,8449,8451,8453,8455],{"class":743,"line":744},[741,8442,788],{"class":787},[741,8444,791],{"class":751},[741,8446,1162],{"class":794},[741,8448,798],{"class":751},[741,8450,801],{"class":787},[741,8452,804],{"class":751},[741,8454,1425],{"class":807},[741,8456,811],{"class":751},[741,8458,8459],{"class":743,"line":758},[741,8460,834],{"emptyLinePlaceholder":833},[741,8462,8463,8465,8467,8469,8471,8473,8475,8477,8479,8481,8483,8485,8487,8489,8491,8493,8495,8497,8499,8501,8503,8505,8507,8509,8511,8513,8515,8517],{"class":743,"line":773},[741,8464,1545],{"class":931},[741,8466,4539],{"class":794},[741,8468,1203],{"class":751},[741,8470,864],{"class":794},[741,8472,979],{"class":751},[741,8474,3225],{"class":807},[741,8476,979],{"class":751},[741,8478,940],{"class":751},[741,8480,804],{"class":751},[741,8482,3234],{"class":807},[741,8484,979],{"class":751},[741,8486,940],{"class":751},[741,8488,804],{"class":751},[741,8490,3243],{"class":807},[741,8492,979],{"class":751},[741,8494,940],{"class":751},[741,8496,804],{"class":751},[741,8498,4572],{"class":807},[741,8500,979],{"class":751},[741,8502,940],{"class":751},[741,8504,804],{"class":751},[741,8506,3261],{"class":807},[741,8508,979],{"class":751},[741,8510,940],{"class":751},[741,8512,804],{"class":751},[741,8514,4589],{"class":807},[741,8516,979],{"class":751},[741,8518,1233],{"class":794},[741,8520,8521],{"class":743,"line":837},[741,8522,834],{"emptyLinePlaceholder":833},[741,8524,8525,8527,8529,8531,8533,8535,8537,8539,8541],{"class":743,"line":855},[741,8526,4602],{"class":931},[741,8528,4605],{"class":846},[741,8530,849],{"class":751},[741,8532,4610],{"class":1763},[741,8534,752],{"class":751},[741,8536,3188],{"class":747},[741,8538,2831],{"class":751},[741,8540,3188],{"class":747},[741,8542,755],{"class":751},[741,8544,8545,8547,8549,8551,8553,8555,8557,8559,8561,8563,8565,8567,8569,8571,8573],{"class":743,"line":888},[741,8546,2877],{"class":787},[741,8548,1760],{"class":858},[741,8550,4629],{"class":794},[741,8552,1194],{"class":751},[741,8554,4634],{"class":846},[741,8556,849],{"class":858},[741,8558,4610],{"class":794},[741,8560,4641],{"class":858},[741,8562,2891],{"class":787},[741,8564,4646],{"class":794},[741,8566,1194],{"class":751},[741,8568,109],{"class":846},[741,8570,849],{"class":858},[741,8572,4655],{"class":794},[741,8574,894],{"class":858},[741,8576,8577,8579,8581,8583,8585,8587,8589,8591,8593,8595,8597,8599,8601,8603],{"class":743,"line":1816},[741,8578,2877],{"class":787},[741,8580,1760],{"class":858},[741,8582,2882],{"class":751},[741,8584,4610],{"class":794},[741,8586,4670],{"class":751},[741,8588,4673],{"class":751},[741,8590,4646],{"class":794},[741,8592,4678],{"class":751},[741,8594,804],{"class":751},[741,8596,4683],{"class":807},[741,8598,979],{"class":751},[741,8600,2888],{"class":858},[741,8602,2891],{"class":787},[741,8604,4692],{"class":794},[741,8606,8607],{"class":743,"line":1821},[741,8608,834],{"emptyLinePlaceholder":833},[741,8610,8611,8613,8615,8617,8619,8621,8623,8625,8627,8629,8631],{"class":743,"line":1828},[741,8612,1776],{"class":931},[741,8614,3290],{"class":794},[741,8616,752],{"class":751},[741,8618,3178],{"class":747},[741,8620,3169],{"class":751},[741,8622,3183],{"class":747},[741,8624,940],{"class":751},[741,8626,3188],{"class":747},[741,8628,3280],{"class":751},[741,8630,958],{"class":751},[741,8632,4721],{"class":751},[741,8634,8635,8637,8639,8641,8643,8645,8647,8649,8651,8653,8655,8657,8659,8661,8663,8665],{"class":743,"line":1834},[741,8636,3309],{"class":787},[741,8638,1760],{"class":858},[741,8640,1545],{"class":931},[741,8642,864],{"class":751},[741,8644,3337],{"class":794},[741,8646,940],{"class":751},[741,8648,4738],{"class":794},[741,8650,2852],{"class":751},[741,8652,3319],{"class":751},[741,8654,4745],{"class":794},[741,8656,1194],{"class":751},[741,8658,4750],{"class":846},[741,8660,849],{"class":858},[741,8662,4610],{"class":794},[741,8664,4641],{"class":858},[741,8666,852],{"class":751},[741,8668,8669,8671,8673,8675,8677,8679,8681,8683,8685,8687,8689,8691,8693,8695,8697,8699,8701],{"class":743,"line":1839},[741,8670,4763],{"class":931},[741,8672,4766],{"class":794},[741,8674,958],{"class":751},[741,8676,3316],{"class":794},[741,8678,1194],{"class":751},[741,8680,4775],{"class":846},[741,8682,4778],{"class":858},[741,8684,1194],{"class":751},[741,8686,4783],{"class":846},[741,8688,849],{"class":858},[741,8690,4788],{"class":751},[741,8692,4791],{"class":807},[741,8694,4794],{"class":751},[741,8696,4797],{"class":2945},[741,8698,940],{"class":751},[741,8700,4802],{"class":751},[741,8702,894],{"class":858},[741,8704,8705,8707,8709,8711,8713,8715,8717,8719,8721,8723,8725,8727,8729,8731,8733,8735,8737,8739,8741,8743,8745,8747,8749,8751,8753,8755],{"class":743,"line":1845},[741,8706,4809],{"class":794},[741,8708,3357],{"class":858},[741,8710,3337],{"class":794},[741,8712,4816],{"class":858},[741,8714,1203],{"class":751},[741,8716,4821],{"class":794},[741,8718,1194],{"class":751},[741,8720,4826],{"class":846},[741,8722,849],{"class":858},[741,8724,4831],{"class":1763},[741,8726,1769],{"class":931},[741,8728,4766],{"class":794},[741,8730,1194],{"class":751},[741,8732,4840],{"class":846},[741,8734,849],{"class":858},[741,8736,4831],{"class":794},[741,8738,4641],{"class":858},[741,8740,4849],{"class":751},[741,8742,804],{"class":751},[741,8744,4854],{"class":807},[741,8746,979],{"class":751},[741,8748,4859],{"class":751},[741,8750,4605],{"class":846},[741,8752,849],{"class":858},[741,8754,4866],{"class":794},[741,8756,894],{"class":858},[741,8758,8759],{"class":743,"line":1860},[741,8760,3373],{"class":751},[741,8762,8763,8765],{"class":743,"line":1870},[741,8764,2339],{"class":787},[741,8766,3381],{"class":794},[741,8768,8769],{"class":743,"line":1887},[741,8770,776],{"class":751},[741,8772,8773,8775,8777,8779,8781,8783,8785],{"class":743,"line":1912},[741,8774,1267],{"class":794},[741,8776,1194],{"class":751},[741,8778,1272],{"class":846},[741,8780,849],{"class":794},[741,8782,748],{"class":846},[741,8784,849],{"class":794},[741,8786,852],{"class":751},[741,8788,8789,8791,8793,8795,8797,8799,8801],{"class":743,"line":1918},[741,8790,5824],{"class":846},[741,8792,752],{"class":751},[741,8794,1760],{"class":751},[741,8796,4939],{"class":1763},[741,8798,1226],{"class":751},[741,8800,1769],{"class":931},[741,8802,755],{"class":751},[741,8804,8805],{"class":743,"line":1924},[741,8806,5841],{"class":1824},[741,8808,8809,8811,8813,8815,8817,8819,8821,8823,8825,8827,8829,8831,8833,8835,8837],{"class":743,"line":1932},[741,8810,5846],{"class":794},[741,8812,1194],{"class":751},[741,8814,1764],{"class":794},[741,8816,958],{"class":751},[741,8818,4605],{"class":846},[741,8820,849],{"class":858},[741,8822,4939],{"class":794},[741,8824,1194],{"class":751},[741,8826,1764],{"class":794},[741,8828,2888],{"class":858},[741,8830,4976],{"class":787},[741,8832,4673],{"class":751},[741,8834,4981],{"class":794},[741,8836,1194],{"class":751},[741,8838,4986],{"class":794},[741,8840,8841],{"class":743,"line":2135},[741,8842,1921],{"class":751},[741,8844,8845,8847],{"class":743,"line":2364},[741,8846,891],{"class":751},[741,8848,1291],{"class":794},[731,8850,8852],{"className":733,"code":8851,"filename":275,"language":735,"meta":1461,"style":737},"import { EvlogModule } from 'evlog\u002Fnestjs'\n\nconst SENSITIVE_KEYS = ['password', 'token', 'secret', 'apikey', 'authorization', 'cookie']\n\nfunction deepSanitize(value: unknown): unknown {\n  if (Array.isArray(value)) return value.map(deepSanitize)\n  if (!value || typeof value !== 'object') return value\n\n  const result: Record\u003Cstring, unknown> = {}\n  for (const [key, nested] of Object.entries(value)) {\n    const name = key.toLowerCase().replace(\u002F[-_]\u002Fg, '')\n    result[key] = SENSITIVE_KEYS.some(k => name.includes(k)) ? '[REDACTED]' : deepSanitize(nested)\n  }\n  return result\n}\nEvlogModule.forRoot({\n  drain: (ctx) => {\n      \u002F\u002F Sanitize before sending to external service\n      ctx.event = deepSanitize(ctx.event) as typeof ctx.event\n    },\n})\n",[630,8853,8854,8872,8876,8934,8938,8958,8990,9020,9024,9048,9082,9118,9172,9176,9182,9186,9198,9214,9218,9250,9254],{"__ignoreMap":737},[741,8855,8856,8858,8860,8862,8864,8866,8868,8870],{"class":743,"line":744},[741,8857,788],{"class":787},[741,8859,791],{"class":751},[741,8861,1472],{"class":794},[741,8863,798],{"class":751},[741,8865,801],{"class":787},[741,8867,804],{"class":751},[741,8869,1481],{"class":807},[741,8871,811],{"class":751},[741,8873,8874],{"class":743,"line":758},[741,8875,834],{"emptyLinePlaceholder":833},[741,8877,8878,8880,8882,8884,8886,8888,8890,8892,8894,8896,8898,8900,8902,8904,8906,8908,8910,8912,8914,8916,8918,8920,8922,8924,8926,8928,8930,8932],{"class":743,"line":773},[741,8879,1545],{"class":931},[741,8881,4539],{"class":794},[741,8883,1203],{"class":751},[741,8885,864],{"class":794},[741,8887,979],{"class":751},[741,8889,3225],{"class":807},[741,8891,979],{"class":751},[741,8893,940],{"class":751},[741,8895,804],{"class":751},[741,8897,3234],{"class":807},[741,8899,979],{"class":751},[741,8901,940],{"class":751},[741,8903,804],{"class":751},[741,8905,3243],{"class":807},[741,8907,979],{"class":751},[741,8909,940],{"class":751},[741,8911,804],{"class":751},[741,8913,4572],{"class":807},[741,8915,979],{"class":751},[741,8917,940],{"class":751},[741,8919,804],{"class":751},[741,8921,3261],{"class":807},[741,8923,979],{"class":751},[741,8925,940],{"class":751},[741,8927,804],{"class":751},[741,8929,4589],{"class":807},[741,8931,979],{"class":751},[741,8933,1233],{"class":794},[741,8935,8936],{"class":743,"line":837},[741,8937,834],{"emptyLinePlaceholder":833},[741,8939,8940,8942,8944,8946,8948,8950,8952,8954,8956],{"class":743,"line":855},[741,8941,4602],{"class":931},[741,8943,4605],{"class":846},[741,8945,849],{"class":751},[741,8947,4610],{"class":1763},[741,8949,752],{"class":751},[741,8951,3188],{"class":747},[741,8953,2831],{"class":751},[741,8955,3188],{"class":747},[741,8957,755],{"class":751},[741,8959,8960,8962,8964,8966,8968,8970,8972,8974,8976,8978,8980,8982,8984,8986,8988],{"class":743,"line":888},[741,8961,2877],{"class":787},[741,8963,1760],{"class":858},[741,8965,4629],{"class":794},[741,8967,1194],{"class":751},[741,8969,4634],{"class":846},[741,8971,849],{"class":858},[741,8973,4610],{"class":794},[741,8975,4641],{"class":858},[741,8977,2891],{"class":787},[741,8979,4646],{"class":794},[741,8981,1194],{"class":751},[741,8983,109],{"class":846},[741,8985,849],{"class":858},[741,8987,4655],{"class":794},[741,8989,894],{"class":858},[741,8991,8992,8994,8996,8998,9000,9002,9004,9006,9008,9010,9012,9014,9016,9018],{"class":743,"line":1816},[741,8993,2877],{"class":787},[741,8995,1760],{"class":858},[741,8997,2882],{"class":751},[741,8999,4610],{"class":794},[741,9001,4670],{"class":751},[741,9003,4673],{"class":751},[741,9005,4646],{"class":794},[741,9007,4678],{"class":751},[741,9009,804],{"class":751},[741,9011,4683],{"class":807},[741,9013,979],{"class":751},[741,9015,2888],{"class":858},[741,9017,2891],{"class":787},[741,9019,4692],{"class":794},[741,9021,9022],{"class":743,"line":1821},[741,9023,834],{"emptyLinePlaceholder":833},[741,9025,9026,9028,9030,9032,9034,9036,9038,9040,9042,9044,9046],{"class":743,"line":1828},[741,9027,1776],{"class":931},[741,9029,3290],{"class":794},[741,9031,752],{"class":751},[741,9033,3178],{"class":747},[741,9035,3169],{"class":751},[741,9037,3183],{"class":747},[741,9039,940],{"class":751},[741,9041,3188],{"class":747},[741,9043,3280],{"class":751},[741,9045,958],{"class":751},[741,9047,4721],{"class":751},[741,9049,9050,9052,9054,9056,9058,9060,9062,9064,9066,9068,9070,9072,9074,9076,9078,9080],{"class":743,"line":1834},[741,9051,3309],{"class":787},[741,9053,1760],{"class":858},[741,9055,1545],{"class":931},[741,9057,864],{"class":751},[741,9059,3337],{"class":794},[741,9061,940],{"class":751},[741,9063,4738],{"class":794},[741,9065,2852],{"class":751},[741,9067,3319],{"class":751},[741,9069,4745],{"class":794},[741,9071,1194],{"class":751},[741,9073,4750],{"class":846},[741,9075,849],{"class":858},[741,9077,4610],{"class":794},[741,9079,4641],{"class":858},[741,9081,852],{"class":751},[741,9083,9084,9086,9088,9090,9092,9094,9096,9098,9100,9102,9104,9106,9108,9110,9112,9114,9116],{"class":743,"line":1839},[741,9085,4763],{"class":931},[741,9087,4766],{"class":794},[741,9089,958],{"class":751},[741,9091,3316],{"class":794},[741,9093,1194],{"class":751},[741,9095,4775],{"class":846},[741,9097,4778],{"class":858},[741,9099,1194],{"class":751},[741,9101,4783],{"class":846},[741,9103,849],{"class":858},[741,9105,4788],{"class":751},[741,9107,4791],{"class":807},[741,9109,4794],{"class":751},[741,9111,4797],{"class":2945},[741,9113,940],{"class":751},[741,9115,4802],{"class":751},[741,9117,894],{"class":858},[741,9119,9120,9122,9124,9126,9128,9130,9132,9134,9136,9138,9140,9142,9144,9146,9148,9150,9152,9154,9156,9158,9160,9162,9164,9166,9168,9170],{"class":743,"line":1845},[741,9121,4809],{"class":794},[741,9123,3357],{"class":858},[741,9125,3337],{"class":794},[741,9127,4816],{"class":858},[741,9129,1203],{"class":751},[741,9131,4821],{"class":794},[741,9133,1194],{"class":751},[741,9135,4826],{"class":846},[741,9137,849],{"class":858},[741,9139,4831],{"class":1763},[741,9141,1769],{"class":931},[741,9143,4766],{"class":794},[741,9145,1194],{"class":751},[741,9147,4840],{"class":846},[741,9149,849],{"class":858},[741,9151,4831],{"class":794},[741,9153,4641],{"class":858},[741,9155,4849],{"class":751},[741,9157,804],{"class":751},[741,9159,4854],{"class":807},[741,9161,979],{"class":751},[741,9163,4859],{"class":751},[741,9165,4605],{"class":846},[741,9167,849],{"class":858},[741,9169,4866],{"class":794},[741,9171,894],{"class":858},[741,9173,9174],{"class":743,"line":1860},[741,9175,3373],{"class":751},[741,9177,9178,9180],{"class":743,"line":1870},[741,9179,2339],{"class":787},[741,9181,3381],{"class":794},[741,9183,9184],{"class":743,"line":1887},[741,9185,776],{"class":751},[741,9187,9188,9190,9192,9194,9196],{"class":743,"line":1912},[741,9189,1492],{"class":794},[741,9191,1194],{"class":751},[741,9193,1497],{"class":846},[741,9195,849],{"class":794},[741,9197,852],{"class":751},[741,9199,9200,9202,9204,9206,9208,9210,9212],{"class":743,"line":1918},[741,9201,5824],{"class":846},[741,9203,752],{"class":751},[741,9205,1760],{"class":751},[741,9207,4939],{"class":1763},[741,9209,1226],{"class":751},[741,9211,1769],{"class":931},[741,9213,755],{"class":751},[741,9215,9216],{"class":743,"line":1924},[741,9217,5841],{"class":1824},[741,9219,9220,9222,9224,9226,9228,9230,9232,9234,9236,9238,9240,9242,9244,9246,9248],{"class":743,"line":1932},[741,9221,5846],{"class":794},[741,9223,1194],{"class":751},[741,9225,1764],{"class":794},[741,9227,958],{"class":751},[741,9229,4605],{"class":846},[741,9231,849],{"class":858},[741,9233,4939],{"class":794},[741,9235,1194],{"class":751},[741,9237,1764],{"class":794},[741,9239,2888],{"class":858},[741,9241,4976],{"class":787},[741,9243,4673],{"class":751},[741,9245,4981],{"class":794},[741,9247,1194],{"class":751},[741,9249,4986],{"class":794},[741,9251,9252],{"class":743,"line":2135},[741,9253,1921],{"class":751},[741,9255,9256,9258],{"class":743,"line":2364},[741,9257,891],{"class":751},[741,9259,894],{"class":794},[731,9261,9263],{"className":733,"code":9262,"filename":319,"language":735,"meta":1515,"style":737},"import { withEvlog } from 'evlog\u002Forpc'\n\nconst SENSITIVE_KEYS = ['password', 'token', 'secret', 'apikey', 'authorization', 'cookie']\n\nfunction deepSanitize(value: unknown): unknown {\n  if (Array.isArray(value)) return value.map(deepSanitize)\n  if (!value || typeof value !== 'object') return value\n\n  const result: Record\u003Cstring, unknown> = {}\n  for (const [key, nested] of Object.entries(value)) {\n    const name = key.toLowerCase().replace(\u002F[-_]\u002Fg, '')\n    result[key] = SENSITIVE_KEYS.some(k => name.includes(k)) ? '[REDACTED]' : deepSanitize(nested)\n  }\n  return result\n}\nconst handler = withEvlog(new RPCHandler(router), {\n  drain: (ctx) => {\n      \u002F\u002F Sanitize before sending to external service\n      ctx.event = deepSanitize(ctx.event) as typeof ctx.event\n    },\n})\n",[630,9264,9265,9283,9287,9345,9349,9369,9401,9431,9435,9459,9493,9529,9583,9587,9593,9597,9619,9635,9639,9671,9675],{"__ignoreMap":737},[741,9266,9267,9269,9271,9273,9275,9277,9279,9281],{"class":743,"line":744},[741,9268,788],{"class":787},[741,9270,791],{"class":751},[741,9272,937],{"class":794},[741,9274,798],{"class":751},[741,9276,801],{"class":787},[741,9278,804],{"class":751},[741,9280,1534],{"class":807},[741,9282,811],{"class":751},[741,9284,9285],{"class":743,"line":758},[741,9286,834],{"emptyLinePlaceholder":833},[741,9288,9289,9291,9293,9295,9297,9299,9301,9303,9305,9307,9309,9311,9313,9315,9317,9319,9321,9323,9325,9327,9329,9331,9333,9335,9337,9339,9341,9343],{"class":743,"line":773},[741,9290,1545],{"class":931},[741,9292,4539],{"class":794},[741,9294,1203],{"class":751},[741,9296,864],{"class":794},[741,9298,979],{"class":751},[741,9300,3225],{"class":807},[741,9302,979],{"class":751},[741,9304,940],{"class":751},[741,9306,804],{"class":751},[741,9308,3234],{"class":807},[741,9310,979],{"class":751},[741,9312,940],{"class":751},[741,9314,804],{"class":751},[741,9316,3243],{"class":807},[741,9318,979],{"class":751},[741,9320,940],{"class":751},[741,9322,804],{"class":751},[741,9324,4572],{"class":807},[741,9326,979],{"class":751},[741,9328,940],{"class":751},[741,9330,804],{"class":751},[741,9332,3261],{"class":807},[741,9334,979],{"class":751},[741,9336,940],{"class":751},[741,9338,804],{"class":751},[741,9340,4589],{"class":807},[741,9342,979],{"class":751},[741,9344,1233],{"class":794},[741,9346,9347],{"class":743,"line":837},[741,9348,834],{"emptyLinePlaceholder":833},[741,9350,9351,9353,9355,9357,9359,9361,9363,9365,9367],{"class":743,"line":855},[741,9352,4602],{"class":931},[741,9354,4605],{"class":846},[741,9356,849],{"class":751},[741,9358,4610],{"class":1763},[741,9360,752],{"class":751},[741,9362,3188],{"class":747},[741,9364,2831],{"class":751},[741,9366,3188],{"class":747},[741,9368,755],{"class":751},[741,9370,9371,9373,9375,9377,9379,9381,9383,9385,9387,9389,9391,9393,9395,9397,9399],{"class":743,"line":888},[741,9372,2877],{"class":787},[741,9374,1760],{"class":858},[741,9376,4629],{"class":794},[741,9378,1194],{"class":751},[741,9380,4634],{"class":846},[741,9382,849],{"class":858},[741,9384,4610],{"class":794},[741,9386,4641],{"class":858},[741,9388,2891],{"class":787},[741,9390,4646],{"class":794},[741,9392,1194],{"class":751},[741,9394,109],{"class":846},[741,9396,849],{"class":858},[741,9398,4655],{"class":794},[741,9400,894],{"class":858},[741,9402,9403,9405,9407,9409,9411,9413,9415,9417,9419,9421,9423,9425,9427,9429],{"class":743,"line":1816},[741,9404,2877],{"class":787},[741,9406,1760],{"class":858},[741,9408,2882],{"class":751},[741,9410,4610],{"class":794},[741,9412,4670],{"class":751},[741,9414,4673],{"class":751},[741,9416,4646],{"class":794},[741,9418,4678],{"class":751},[741,9420,804],{"class":751},[741,9422,4683],{"class":807},[741,9424,979],{"class":751},[741,9426,2888],{"class":858},[741,9428,2891],{"class":787},[741,9430,4692],{"class":794},[741,9432,9433],{"class":743,"line":1821},[741,9434,834],{"emptyLinePlaceholder":833},[741,9436,9437,9439,9441,9443,9445,9447,9449,9451,9453,9455,9457],{"class":743,"line":1828},[741,9438,1776],{"class":931},[741,9440,3290],{"class":794},[741,9442,752],{"class":751},[741,9444,3178],{"class":747},[741,9446,3169],{"class":751},[741,9448,3183],{"class":747},[741,9450,940],{"class":751},[741,9452,3188],{"class":747},[741,9454,3280],{"class":751},[741,9456,958],{"class":751},[741,9458,4721],{"class":751},[741,9460,9461,9463,9465,9467,9469,9471,9473,9475,9477,9479,9481,9483,9485,9487,9489,9491],{"class":743,"line":1834},[741,9462,3309],{"class":787},[741,9464,1760],{"class":858},[741,9466,1545],{"class":931},[741,9468,864],{"class":751},[741,9470,3337],{"class":794},[741,9472,940],{"class":751},[741,9474,4738],{"class":794},[741,9476,2852],{"class":751},[741,9478,3319],{"class":751},[741,9480,4745],{"class":794},[741,9482,1194],{"class":751},[741,9484,4750],{"class":846},[741,9486,849],{"class":858},[741,9488,4610],{"class":794},[741,9490,4641],{"class":858},[741,9492,852],{"class":751},[741,9494,9495,9497,9499,9501,9503,9505,9507,9509,9511,9513,9515,9517,9519,9521,9523,9525,9527],{"class":743,"line":1839},[741,9496,4763],{"class":931},[741,9498,4766],{"class":794},[741,9500,958],{"class":751},[741,9502,3316],{"class":794},[741,9504,1194],{"class":751},[741,9506,4775],{"class":846},[741,9508,4778],{"class":858},[741,9510,1194],{"class":751},[741,9512,4783],{"class":846},[741,9514,849],{"class":858},[741,9516,4788],{"class":751},[741,9518,4791],{"class":807},[741,9520,4794],{"class":751},[741,9522,4797],{"class":2945},[741,9524,940],{"class":751},[741,9526,4802],{"class":751},[741,9528,894],{"class":858},[741,9530,9531,9533,9535,9537,9539,9541,9543,9545,9547,9549,9551,9553,9555,9557,9559,9561,9563,9565,9567,9569,9571,9573,9575,9577,9579,9581],{"class":743,"line":1845},[741,9532,4809],{"class":794},[741,9534,3357],{"class":858},[741,9536,3337],{"class":794},[741,9538,4816],{"class":858},[741,9540,1203],{"class":751},[741,9542,4821],{"class":794},[741,9544,1194],{"class":751},[741,9546,4826],{"class":846},[741,9548,849],{"class":858},[741,9550,4831],{"class":1763},[741,9552,1769],{"class":931},[741,9554,4766],{"class":794},[741,9556,1194],{"class":751},[741,9558,4840],{"class":846},[741,9560,849],{"class":858},[741,9562,4831],{"class":794},[741,9564,4641],{"class":858},[741,9566,4849],{"class":751},[741,9568,804],{"class":751},[741,9570,4854],{"class":807},[741,9572,979],{"class":751},[741,9574,4859],{"class":751},[741,9576,4605],{"class":846},[741,9578,849],{"class":858},[741,9580,4866],{"class":794},[741,9582,894],{"class":858},[741,9584,9585],{"class":743,"line":1860},[741,9586,3373],{"class":751},[741,9588,9589,9591],{"class":743,"line":1870},[741,9590,2339],{"class":787},[741,9592,3381],{"class":794},[741,9594,9595],{"class":743,"line":1887},[741,9596,776],{"class":751},[741,9598,9599,9601,9603,9605,9607,9609,9611,9613,9615,9617],{"class":743,"line":1912},[741,9600,1545],{"class":931},[741,9602,1548],{"class":794},[741,9604,1203],{"class":751},[741,9606,937],{"class":846},[741,9608,849],{"class":794},[741,9610,1557],{"class":751},[741,9612,1560],{"class":846},[741,9614,1563],{"class":794},[741,9616,940],{"class":751},[741,9618,755],{"class":751},[741,9620,9621,9623,9625,9627,9629,9631,9633],{"class":743,"line":1918},[741,9622,5824],{"class":846},[741,9624,752],{"class":751},[741,9626,1760],{"class":751},[741,9628,4939],{"class":1763},[741,9630,1226],{"class":751},[741,9632,1769],{"class":931},[741,9634,755],{"class":751},[741,9636,9637],{"class":743,"line":1924},[741,9638,5841],{"class":1824},[741,9640,9641,9643,9645,9647,9649,9651,9653,9655,9657,9659,9661,9663,9665,9667,9669],{"class":743,"line":1932},[741,9642,5846],{"class":794},[741,9644,1194],{"class":751},[741,9646,1764],{"class":794},[741,9648,958],{"class":751},[741,9650,4605],{"class":846},[741,9652,849],{"class":858},[741,9654,4939],{"class":794},[741,9656,1194],{"class":751},[741,9658,1764],{"class":794},[741,9660,2888],{"class":858},[741,9662,4976],{"class":787},[741,9664,4673],{"class":751},[741,9666,4981],{"class":794},[741,9668,1194],{"class":751},[741,9670,4986],{"class":794},[741,9672,9673],{"class":743,"line":2135},[741,9674,1921],{"class":751},[741,9676,9677,9679],{"class":743,"line":2364},[741,9678,891],{"class":751},[741,9680,894],{"class":794},[731,9682,9684],{"className":733,"code":9683,"filename":305,"language":735,"meta":1581,"style":737},"import { withEvlog } from 'evlog\u002Fworkers'\n\nconst SENSITIVE_KEYS = ['password', 'token', 'secret', 'apikey', 'authorization', 'cookie']\n\nfunction deepSanitize(value: unknown): unknown {\n  if (Array.isArray(value)) return value.map(deepSanitize)\n  if (!value || typeof value !== 'object') return value\n\n  const result: Record\u003Cstring, unknown> = {}\n  for (const [key, nested] of Object.entries(value)) {\n    const name = key.toLowerCase().replace(\u002F[-_]\u002Fg, '')\n    result[key] = SENSITIVE_KEYS.some(k => name.includes(k)) ? '[REDACTED]' : deepSanitize(nested)\n  }\n  return result\n}\nexport default withEvlog(handler, {\n  drain: (ctx) => {\n      \u002F\u002F Sanitize before sending to external service\n      ctx.event = deepSanitize(ctx.event) as typeof ctx.event\n    },\n})\n",[630,9685,9686,9704,9708,9766,9770,9790,9822,9852,9856,9880,9914,9950,10004,10008,10014,10018,10032,10048,10052,10084,10088],{"__ignoreMap":737},[741,9687,9688,9690,9692,9694,9696,9698,9700,9702],{"class":743,"line":744},[741,9689,788],{"class":787},[741,9691,791],{"class":751},[741,9693,937],{"class":794},[741,9695,798],{"class":751},[741,9697,801],{"class":787},[741,9699,804],{"class":751},[741,9701,1600],{"class":807},[741,9703,811],{"class":751},[741,9705,9706],{"class":743,"line":758},[741,9707,834],{"emptyLinePlaceholder":833},[741,9709,9710,9712,9714,9716,9718,9720,9722,9724,9726,9728,9730,9732,9734,9736,9738,9740,9742,9744,9746,9748,9750,9752,9754,9756,9758,9760,9762,9764],{"class":743,"line":773},[741,9711,1545],{"class":931},[741,9713,4539],{"class":794},[741,9715,1203],{"class":751},[741,9717,864],{"class":794},[741,9719,979],{"class":751},[741,9721,3225],{"class":807},[741,9723,979],{"class":751},[741,9725,940],{"class":751},[741,9727,804],{"class":751},[741,9729,3234],{"class":807},[741,9731,979],{"class":751},[741,9733,940],{"class":751},[741,9735,804],{"class":751},[741,9737,3243],{"class":807},[741,9739,979],{"class":751},[741,9741,940],{"class":751},[741,9743,804],{"class":751},[741,9745,4572],{"class":807},[741,9747,979],{"class":751},[741,9749,940],{"class":751},[741,9751,804],{"class":751},[741,9753,3261],{"class":807},[741,9755,979],{"class":751},[741,9757,940],{"class":751},[741,9759,804],{"class":751},[741,9761,4589],{"class":807},[741,9763,979],{"class":751},[741,9765,1233],{"class":794},[741,9767,9768],{"class":743,"line":837},[741,9769,834],{"emptyLinePlaceholder":833},[741,9771,9772,9774,9776,9778,9780,9782,9784,9786,9788],{"class":743,"line":855},[741,9773,4602],{"class":931},[741,9775,4605],{"class":846},[741,9777,849],{"class":751},[741,9779,4610],{"class":1763},[741,9781,752],{"class":751},[741,9783,3188],{"class":747},[741,9785,2831],{"class":751},[741,9787,3188],{"class":747},[741,9789,755],{"class":751},[741,9791,9792,9794,9796,9798,9800,9802,9804,9806,9808,9810,9812,9814,9816,9818,9820],{"class":743,"line":888},[741,9793,2877],{"class":787},[741,9795,1760],{"class":858},[741,9797,4629],{"class":794},[741,9799,1194],{"class":751},[741,9801,4634],{"class":846},[741,9803,849],{"class":858},[741,9805,4610],{"class":794},[741,9807,4641],{"class":858},[741,9809,2891],{"class":787},[741,9811,4646],{"class":794},[741,9813,1194],{"class":751},[741,9815,109],{"class":846},[741,9817,849],{"class":858},[741,9819,4655],{"class":794},[741,9821,894],{"class":858},[741,9823,9824,9826,9828,9830,9832,9834,9836,9838,9840,9842,9844,9846,9848,9850],{"class":743,"line":1816},[741,9825,2877],{"class":787},[741,9827,1760],{"class":858},[741,9829,2882],{"class":751},[741,9831,4610],{"class":794},[741,9833,4670],{"class":751},[741,9835,4673],{"class":751},[741,9837,4646],{"class":794},[741,9839,4678],{"class":751},[741,9841,804],{"class":751},[741,9843,4683],{"class":807},[741,9845,979],{"class":751},[741,9847,2888],{"class":858},[741,9849,2891],{"class":787},[741,9851,4692],{"class":794},[741,9853,9854],{"class":743,"line":1821},[741,9855,834],{"emptyLinePlaceholder":833},[741,9857,9858,9860,9862,9864,9866,9868,9870,9872,9874,9876,9878],{"class":743,"line":1828},[741,9859,1776],{"class":931},[741,9861,3290],{"class":794},[741,9863,752],{"class":751},[741,9865,3178],{"class":747},[741,9867,3169],{"class":751},[741,9869,3183],{"class":747},[741,9871,940],{"class":751},[741,9873,3188],{"class":747},[741,9875,3280],{"class":751},[741,9877,958],{"class":751},[741,9879,4721],{"class":751},[741,9881,9882,9884,9886,9888,9890,9892,9894,9896,9898,9900,9902,9904,9906,9908,9910,9912],{"class":743,"line":1834},[741,9883,3309],{"class":787},[741,9885,1760],{"class":858},[741,9887,1545],{"class":931},[741,9889,864],{"class":751},[741,9891,3337],{"class":794},[741,9893,940],{"class":751},[741,9895,4738],{"class":794},[741,9897,2852],{"class":751},[741,9899,3319],{"class":751},[741,9901,4745],{"class":794},[741,9903,1194],{"class":751},[741,9905,4750],{"class":846},[741,9907,849],{"class":858},[741,9909,4610],{"class":794},[741,9911,4641],{"class":858},[741,9913,852],{"class":751},[741,9915,9916,9918,9920,9922,9924,9926,9928,9930,9932,9934,9936,9938,9940,9942,9944,9946,9948],{"class":743,"line":1839},[741,9917,4763],{"class":931},[741,9919,4766],{"class":794},[741,9921,958],{"class":751},[741,9923,3316],{"class":794},[741,9925,1194],{"class":751},[741,9927,4775],{"class":846},[741,9929,4778],{"class":858},[741,9931,1194],{"class":751},[741,9933,4783],{"class":846},[741,9935,849],{"class":858},[741,9937,4788],{"class":751},[741,9939,4791],{"class":807},[741,9941,4794],{"class":751},[741,9943,4797],{"class":2945},[741,9945,940],{"class":751},[741,9947,4802],{"class":751},[741,9949,894],{"class":858},[741,9951,9952,9954,9956,9958,9960,9962,9964,9966,9968,9970,9972,9974,9976,9978,9980,9982,9984,9986,9988,9990,9992,9994,9996,9998,10000,10002],{"class":743,"line":1845},[741,9953,4809],{"class":794},[741,9955,3357],{"class":858},[741,9957,3337],{"class":794},[741,9959,4816],{"class":858},[741,9961,1203],{"class":751},[741,9963,4821],{"class":794},[741,9965,1194],{"class":751},[741,9967,4826],{"class":846},[741,9969,849],{"class":858},[741,9971,4831],{"class":1763},[741,9973,1769],{"class":931},[741,9975,4766],{"class":794},[741,9977,1194],{"class":751},[741,9979,4840],{"class":846},[741,9981,849],{"class":858},[741,9983,4831],{"class":794},[741,9985,4641],{"class":858},[741,9987,4849],{"class":751},[741,9989,804],{"class":751},[741,9991,4854],{"class":807},[741,9993,979],{"class":751},[741,9995,4859],{"class":751},[741,9997,4605],{"class":846},[741,9999,849],{"class":858},[741,10001,4866],{"class":794},[741,10003,894],{"class":858},[741,10005,10006],{"class":743,"line":1860},[741,10007,3373],{"class":751},[741,10009,10010,10012],{"class":743,"line":1870},[741,10011,2339],{"class":787},[741,10013,3381],{"class":794},[741,10015,10016],{"class":743,"line":1887},[741,10017,776],{"class":751},[741,10019,10020,10022,10024,10026,10028,10030],{"class":743,"line":1912},[741,10021,840],{"class":787},[741,10023,843],{"class":787},[741,10025,937],{"class":846},[741,10027,1617],{"class":794},[741,10029,940],{"class":751},[741,10031,755],{"class":751},[741,10033,10034,10036,10038,10040,10042,10044,10046],{"class":743,"line":1918},[741,10035,5824],{"class":846},[741,10037,752],{"class":751},[741,10039,1760],{"class":751},[741,10041,4939],{"class":1763},[741,10043,1226],{"class":751},[741,10045,1769],{"class":931},[741,10047,755],{"class":751},[741,10049,10050],{"class":743,"line":1924},[741,10051,5841],{"class":1824},[741,10053,10054,10056,10058,10060,10062,10064,10066,10068,10070,10072,10074,10076,10078,10080,10082],{"class":743,"line":1932},[741,10055,5846],{"class":794},[741,10057,1194],{"class":751},[741,10059,1764],{"class":794},[741,10061,958],{"class":751},[741,10063,4605],{"class":846},[741,10065,849],{"class":858},[741,10067,4939],{"class":794},[741,10069,1194],{"class":751},[741,10071,1764],{"class":794},[741,10073,2888],{"class":858},[741,10075,4976],{"class":787},[741,10077,4673],{"class":751},[741,10079,4981],{"class":794},[741,10081,1194],{"class":751},[741,10083,4986],{"class":794},[741,10085,10086],{"class":743,"line":2135},[741,10087,1921],{"class":751},[741,10089,10090,10092],{"class":743,"line":2364},[741,10091,891],{"class":751},[741,10093,894],{"class":794},[731,10095,10097],{"className":733,"code":10096,"filename":310,"language":735,"meta":1237,"style":737},"import { initLogger } from 'evlog'\n\nconst SENSITIVE_KEYS = ['password', 'token', 'secret', 'apikey', 'authorization', 'cookie']\n\nfunction deepSanitize(value: unknown): unknown {\n  if (Array.isArray(value)) return value.map(deepSanitize)\n  if (!value || typeof value !== 'object') return value\n\n  const result: Record\u003Cstring, unknown> = {}\n  for (const [key, nested] of Object.entries(value)) {\n    const name = key.toLowerCase().replace(\u002F[-_]\u002Fg, '')\n    result[key] = SENSITIVE_KEYS.some(k => name.includes(k)) ? '[REDACTED]' : deepSanitize(nested)\n  }\n  return result\n}\ninitLogger({\n  drain: (ctx) => {\n      \u002F\u002F Sanitize before sending to external service\n      ctx.event = deepSanitize(ctx.event) as typeof ctx.event\n    },\n})\n",[630,10098,10099,10117,10121,10179,10183,10203,10235,10265,10269,10293,10327,10363,10417,10421,10427,10431,10439,10455,10459,10491,10495],{"__ignoreMap":737},[741,10100,10101,10103,10105,10107,10109,10111,10113,10115],{"class":743,"line":744},[741,10102,788],{"class":787},[741,10104,791],{"class":751},[741,10106,1645],{"class":794},[741,10108,798],{"class":751},[741,10110,801],{"class":787},[741,10112,804],{"class":751},[741,10114,748],{"class":807},[741,10116,811],{"class":751},[741,10118,10119],{"class":743,"line":758},[741,10120,834],{"emptyLinePlaceholder":833},[741,10122,10123,10125,10127,10129,10131,10133,10135,10137,10139,10141,10143,10145,10147,10149,10151,10153,10155,10157,10159,10161,10163,10165,10167,10169,10171,10173,10175,10177],{"class":743,"line":773},[741,10124,1545],{"class":931},[741,10126,4539],{"class":794},[741,10128,1203],{"class":751},[741,10130,864],{"class":794},[741,10132,979],{"class":751},[741,10134,3225],{"class":807},[741,10136,979],{"class":751},[741,10138,940],{"class":751},[741,10140,804],{"class":751},[741,10142,3234],{"class":807},[741,10144,979],{"class":751},[741,10146,940],{"class":751},[741,10148,804],{"class":751},[741,10150,3243],{"class":807},[741,10152,979],{"class":751},[741,10154,940],{"class":751},[741,10156,804],{"class":751},[741,10158,4572],{"class":807},[741,10160,979],{"class":751},[741,10162,940],{"class":751},[741,10164,804],{"class":751},[741,10166,3261],{"class":807},[741,10168,979],{"class":751},[741,10170,940],{"class":751},[741,10172,804],{"class":751},[741,10174,4589],{"class":807},[741,10176,979],{"class":751},[741,10178,1233],{"class":794},[741,10180,10181],{"class":743,"line":837},[741,10182,834],{"emptyLinePlaceholder":833},[741,10184,10185,10187,10189,10191,10193,10195,10197,10199,10201],{"class":743,"line":855},[741,10186,4602],{"class":931},[741,10188,4605],{"class":846},[741,10190,849],{"class":751},[741,10192,4610],{"class":1763},[741,10194,752],{"class":751},[741,10196,3188],{"class":747},[741,10198,2831],{"class":751},[741,10200,3188],{"class":747},[741,10202,755],{"class":751},[741,10204,10205,10207,10209,10211,10213,10215,10217,10219,10221,10223,10225,10227,10229,10231,10233],{"class":743,"line":888},[741,10206,2877],{"class":787},[741,10208,1760],{"class":858},[741,10210,4629],{"class":794},[741,10212,1194],{"class":751},[741,10214,4634],{"class":846},[741,10216,849],{"class":858},[741,10218,4610],{"class":794},[741,10220,4641],{"class":858},[741,10222,2891],{"class":787},[741,10224,4646],{"class":794},[741,10226,1194],{"class":751},[741,10228,109],{"class":846},[741,10230,849],{"class":858},[741,10232,4655],{"class":794},[741,10234,894],{"class":858},[741,10236,10237,10239,10241,10243,10245,10247,10249,10251,10253,10255,10257,10259,10261,10263],{"class":743,"line":1816},[741,10238,2877],{"class":787},[741,10240,1760],{"class":858},[741,10242,2882],{"class":751},[741,10244,4610],{"class":794},[741,10246,4670],{"class":751},[741,10248,4673],{"class":751},[741,10250,4646],{"class":794},[741,10252,4678],{"class":751},[741,10254,804],{"class":751},[741,10256,4683],{"class":807},[741,10258,979],{"class":751},[741,10260,2888],{"class":858},[741,10262,2891],{"class":787},[741,10264,4692],{"class":794},[741,10266,10267],{"class":743,"line":1821},[741,10268,834],{"emptyLinePlaceholder":833},[741,10270,10271,10273,10275,10277,10279,10281,10283,10285,10287,10289,10291],{"class":743,"line":1828},[741,10272,1776],{"class":931},[741,10274,3290],{"class":794},[741,10276,752],{"class":751},[741,10278,3178],{"class":747},[741,10280,3169],{"class":751},[741,10282,3183],{"class":747},[741,10284,940],{"class":751},[741,10286,3188],{"class":747},[741,10288,3280],{"class":751},[741,10290,958],{"class":751},[741,10292,4721],{"class":751},[741,10294,10295,10297,10299,10301,10303,10305,10307,10309,10311,10313,10315,10317,10319,10321,10323,10325],{"class":743,"line":1834},[741,10296,3309],{"class":787},[741,10298,1760],{"class":858},[741,10300,1545],{"class":931},[741,10302,864],{"class":751},[741,10304,3337],{"class":794},[741,10306,940],{"class":751},[741,10308,4738],{"class":794},[741,10310,2852],{"class":751},[741,10312,3319],{"class":751},[741,10314,4745],{"class":794},[741,10316,1194],{"class":751},[741,10318,4750],{"class":846},[741,10320,849],{"class":858},[741,10322,4610],{"class":794},[741,10324,4641],{"class":858},[741,10326,852],{"class":751},[741,10328,10329,10331,10333,10335,10337,10339,10341,10343,10345,10347,10349,10351,10353,10355,10357,10359,10361],{"class":743,"line":1839},[741,10330,4763],{"class":931},[741,10332,4766],{"class":794},[741,10334,958],{"class":751},[741,10336,3316],{"class":794},[741,10338,1194],{"class":751},[741,10340,4775],{"class":846},[741,10342,4778],{"class":858},[741,10344,1194],{"class":751},[741,10346,4783],{"class":846},[741,10348,849],{"class":858},[741,10350,4788],{"class":751},[741,10352,4791],{"class":807},[741,10354,4794],{"class":751},[741,10356,4797],{"class":2945},[741,10358,940],{"class":751},[741,10360,4802],{"class":751},[741,10362,894],{"class":858},[741,10364,10365,10367,10369,10371,10373,10375,10377,10379,10381,10383,10385,10387,10389,10391,10393,10395,10397,10399,10401,10403,10405,10407,10409,10411,10413,10415],{"class":743,"line":1845},[741,10366,4809],{"class":794},[741,10368,3357],{"class":858},[741,10370,3337],{"class":794},[741,10372,4816],{"class":858},[741,10374,1203],{"class":751},[741,10376,4821],{"class":794},[741,10378,1194],{"class":751},[741,10380,4826],{"class":846},[741,10382,849],{"class":858},[741,10384,4831],{"class":1763},[741,10386,1769],{"class":931},[741,10388,4766],{"class":794},[741,10390,1194],{"class":751},[741,10392,4840],{"class":846},[741,10394,849],{"class":858},[741,10396,4831],{"class":794},[741,10398,4641],{"class":858},[741,10400,4849],{"class":751},[741,10402,804],{"class":751},[741,10404,4854],{"class":807},[741,10406,979],{"class":751},[741,10408,4859],{"class":751},[741,10410,4605],{"class":846},[741,10412,849],{"class":858},[741,10414,4866],{"class":794},[741,10416,894],{"class":858},[741,10418,10419],{"class":743,"line":1860},[741,10420,3373],{"class":751},[741,10422,10423,10425],{"class":743,"line":1870},[741,10424,2339],{"class":787},[741,10426,3381],{"class":794},[741,10428,10429],{"class":743,"line":1887},[741,10430,776],{"class":751},[741,10432,10433,10435,10437],{"class":743,"line":1912},[741,10434,1664],{"class":846},[741,10436,849],{"class":794},[741,10438,852],{"class":751},[741,10440,10441,10443,10445,10447,10449,10451,10453],{"class":743,"line":1918},[741,10442,5824],{"class":846},[741,10444,752],{"class":751},[741,10446,1760],{"class":751},[741,10448,4939],{"class":1763},[741,10450,1226],{"class":751},[741,10452,1769],{"class":931},[741,10454,755],{"class":751},[741,10456,10457],{"class":743,"line":1924},[741,10458,5841],{"class":1824},[741,10460,10461,10463,10465,10467,10469,10471,10473,10475,10477,10479,10481,10483,10485,10487,10489],{"class":743,"line":1932},[741,10462,5846],{"class":794},[741,10464,1194],{"class":751},[741,10466,1764],{"class":794},[741,10468,958],{"class":751},[741,10470,4605],{"class":846},[741,10472,849],{"class":858},[741,10474,4939],{"class":794},[741,10476,1194],{"class":751},[741,10478,1764],{"class":794},[741,10480,2888],{"class":858},[741,10482,4976],{"class":787},[741,10484,4673],{"class":751},[741,10486,4981],{"class":794},[741,10488,1194],{"class":751},[741,10490,4986],{"class":794},[741,10492,10493],{"class":743,"line":2135},[741,10494,1921],{"class":751},[741,10496,10497,10499],{"class":743,"line":2364},[741,10498,891],{"class":751},[741,10500,894],{"class":794},[717,10502,10504],{"color":10503,"icon":488},"warning","Drain hook sanitization is a safety net, not a replacement for careful logging practices. Always sanitize at the source.",[622,10506,10508],{"id":10507},"production-checklist","Production Checklist",[618,10510,10511],{},"Before deploying to production, verify:",[1707,10513,10515],{"id":10514},"logging-configuration","Logging Configuration",[10517,10518,10521,10534,10540,10546],"ul",{"className":10519},[10520],"contains-task-list",[10522,10523,10526,10530,10531,1226],"li",{"className":10524},[10525],"task-list-item",[10527,10528],"input",{"disabled":833,"type":10529},"checkbox"," Service name is set (",[630,10532,10533],{},"env.service",[10522,10535,10537,10539],{"className":10536},[10525],[10527,10538],{"disabled":833,"type":10529}," Sampling is configured for high-traffic routes",[10522,10541,10543,10545],{"className":10542},[10525],[10527,10544],{"disabled":833,"type":10529}," Log draining is set up for external service (Axiom, Loki, etc.)",[10522,10547,10549,10551,10552,1226],{"className":10548},[10525],[10527,10550],{"disabled":833,"type":10529}," Pretty mode is disabled in production (",[630,10553,10554],{},"pretty: false",[1707,10556,10558],{"id":10557},"data-security","Data Security",[10517,10560,10562,10570,10576,10582,10588,10594,10600],{"className":10561},[10520],[10522,10563,10565,10567,10568,1226],{"className":10564},[10525],[10527,10566],{"disabled":833,"type":10529}," Auto-redaction is enabled (",[630,10569,1700],{},[10522,10571,10573,10575],{"className":10572},[10525],[10527,10574],{"disabled":833,"type":10529}," No passwords or secrets in logs",[10522,10577,10579,10581],{"className":10578},[10525],[10527,10580],{"disabled":833,"type":10529}," No full credit card numbers (only last 4 digits)",[10522,10583,10585,10587],{"className":10584},[10525],[10527,10586],{"disabled":833,"type":10529}," No API keys or tokens",[10522,10589,10591,10593],{"className":10590},[10525],[10527,10592],{"disabled":833,"type":10529}," PII is masked or omitted (emails, phone numbers)",[10522,10595,10597,10599],{"className":10596},[10525],[10527,10598],{"disabled":833,"type":10529}," Session tokens are not logged",[10522,10601,10603,10605,10606,1226],{"className":10602},[10525],[10527,10604],{"disabled":833,"type":10529}," Request bodies are selectively logged (not ",[630,10607,10608],{},"log.set({ body })",[1707,10610,10612],{"id":10611},"error-handling","Error Handling",[10517,10614,10616,10626,10632],{"className":10615},[10520],[10522,10617,10619,10621,10622,10625],{"className":10618},[10525],[10527,10620],{"disabled":833,"type":10529}," Errors use ",[630,10623,10624],{},"createError()"," with structured fields",[10522,10627,10629,10631],{"className":10628},[10525],[10527,10630],{"disabled":833,"type":10529}," Sensitive data is not included in error messages",[10522,10633,10635,10637],{"className":10634},[10525],[10527,10636],{"disabled":833,"type":10529}," Stack traces don't expose internal paths in production",[622,10639,10641],{"id":10640},"group-fields-so-they-stay-queryable","Group fields so they stay queryable",[618,10643,10644],{},"Use consistent, grouped field names across your codebase:",[731,10646,10649],{"className":733,"code":10647,"filename":10648,"language":735,"meta":737,"style":737},"\u002F\u002F ✅ Good - grouped and descriptive\nlog.set({\n  user: { id, plan, accountAge },\n  cart: { items, total, currency },\n  payment: { method, provider, last4 },\n})\n\n\u002F\u002F ❌ Bad - flat and abbreviated\nlog.set({\n  uid: '123',\n  n: 3,\n  t: 9999,\n  pm: 'card',\n})\n","services\u002Fcheckout.ts",[630,10650,10651,10656,10668,10693,10717,10741,10747,10751,10756,10768,10784,10796,10808,10823],{"__ignoreMap":737},[741,10652,10653],{"class":743,"line":744},[741,10654,10655],{"class":1824},"\u002F\u002F ✅ Good - grouped and descriptive\n",[741,10657,10658,10660,10662,10664,10666],{"class":743,"line":758},[741,10659,2430],{"class":794},[741,10661,1194],{"class":751},[741,10663,1853],{"class":846},[741,10665,849],{"class":794},[741,10667,852],{"class":751},[741,10669,10670,10673,10675,10677,10680,10682,10685,10687,10690],{"class":743,"line":773},[741,10671,10672],{"class":858},"  user",[741,10674,752],{"class":751},[741,10676,791],{"class":751},[741,10678,10679],{"class":794}," id",[741,10681,940],{"class":751},[741,10683,10684],{"class":794}," plan",[741,10686,940],{"class":751},[741,10688,10689],{"class":794}," accountAge ",[741,10691,10692],{"class":751},"},\n",[741,10694,10695,10698,10700,10702,10705,10707,10710,10712,10715],{"class":743,"line":837},[741,10696,10697],{"class":858},"  cart",[741,10699,752],{"class":751},[741,10701,791],{"class":751},[741,10703,10704],{"class":794}," items",[741,10706,940],{"class":751},[741,10708,10709],{"class":794}," total",[741,10711,940],{"class":751},[741,10713,10714],{"class":794}," currency ",[741,10716,10692],{"class":751},[741,10718,10719,10722,10724,10726,10729,10731,10734,10736,10739],{"class":743,"line":855},[741,10720,10721],{"class":858},"  payment",[741,10723,752],{"class":751},[741,10725,791],{"class":751},[741,10727,10728],{"class":794}," method",[741,10730,940],{"class":751},[741,10732,10733],{"class":794}," provider",[741,10735,940],{"class":751},[741,10737,10738],{"class":794}," last4 ",[741,10740,10692],{"class":751},[741,10742,10743,10745],{"class":743,"line":888},[741,10744,891],{"class":751},[741,10746,894],{"class":794},[741,10748,10749],{"class":743,"line":1816},[741,10750,834],{"emptyLinePlaceholder":833},[741,10752,10753],{"class":743,"line":1821},[741,10754,10755],{"class":1824},"\u002F\u002F ❌ Bad - flat and abbreviated\n",[741,10757,10758,10760,10762,10764,10766],{"class":743,"line":1828},[741,10759,2430],{"class":794},[741,10761,1194],{"class":751},[741,10763,1853],{"class":846},[741,10765,849],{"class":794},[741,10767,852],{"class":751},[741,10769,10770,10773,10775,10777,10780,10782],{"class":743,"line":1834},[741,10771,10772],{"class":858},"  uid",[741,10774,752],{"class":751},[741,10776,804],{"class":751},[741,10778,10779],{"class":807},"123",[741,10781,979],{"class":751},[741,10783,770],{"class":751},[741,10785,10786,10789,10791,10794],{"class":743,"line":1839},[741,10787,10788],{"class":858},"  n",[741,10790,752],{"class":751},[741,10792,10793],{"class":2945}," 3",[741,10795,770],{"class":751},[741,10797,10798,10801,10803,10806],{"class":743,"line":1845},[741,10799,10800],{"class":858},"  t",[741,10802,752],{"class":751},[741,10804,10805],{"class":2945}," 9999",[741,10807,770],{"class":751},[741,10809,10810,10813,10815,10817,10819,10821],{"class":743,"line":1860},[741,10811,10812],{"class":858},"  pm",[741,10814,752],{"class":751},[741,10816,804],{"class":751},[741,10818,3003],{"class":807},[741,10820,979],{"class":751},[741,10822,770],{"class":751},[741,10824,10825,10827],{"class":743,"line":1870},[741,10826,891],{"class":751},[741,10828,894],{"class":794},[1707,10830,10832],{"id":10831},"recommended-field-structure","Recommended Field Structure",[639,10834,10835,10844],{},[642,10836,10837],{},[645,10838,10839,10841],{},[648,10840,650],{},[648,10842,10843],{},"Fields",[658,10845,10846,10866,10886,10911,10931],{},[645,10847,10848,10852],{},[663,10849,10850],{},[630,10851,3540],{},[663,10853,10854,10856,10857,10856,10860,10856,10863],{},[630,10855,1882],{},", ",[630,10858,10859],{},"plan",[630,10861,10862],{},"role",[630,10864,10865],{},"accountAge",[645,10867,10868,10872],{},[663,10869,10870],{},[630,10871,2194],{},[663,10873,10874,10856,10877,10856,10880,10856,10883],{},[630,10875,10876],{},"method",[630,10878,10879],{},"path",[630,10881,10882],{},"requestId",[630,10884,10885],{},"traceId",[645,10887,10888,10897],{},[663,10889,10890,10893,10894],{},[630,10891,10892],{},"cart"," \u002F ",[630,10895,10896],{},"order",[663,10898,10899,10856,10902,10856,10905,10856,10908],{},[630,10900,10901],{},"items",[630,10903,10904],{},"total",[630,10906,10907],{},"currency",[630,10909,10910],{},"coupon",[645,10912,10913,10918],{},[663,10914,10915],{},[630,10916,10917],{},"payment",[663,10919,10920,10856,10922,10856,10925,10856,10928],{},[630,10921,10876],{},[630,10923,10924],{},"provider",[630,10926,10927],{},"last4",[630,10929,10930],{},"status",[645,10932,10933,10938],{},[663,10934,10935],{},[630,10936,10937],{},"outcome",[663,10939,10940,10856,10942,10856,10945],{},[630,10941,10930],{},[630,10943,10944],{},"duration",[630,10946,719],{},[622,10948,10950],{"id":10949},"decide-what-survives-sampling","Decide what survives sampling",[618,10952,10953],{},"Volume is what you pay for, and a successful request nobody reads costs the same as the one that failed. Keep every error, thin the rest:",[731,10955,10957],{"className":733,"code":10956,"filename":736,"language":735,"meta":737,"style":737},"export default defineNuxtConfig({\n  evlog: {\n    sampling: {\n      \u002F\u002F Head sampling: random percentage per level\n      rates: {\n        info: 10,    \u002F\u002F 10% of success logs\n        warn: 50,    \u002F\u002F 50% of warnings\n        debug: 0,    \u002F\u002F No debug logs in prod\n        error: 100,  \u002F\u002F Always keep errors\n      },\n      \u002F\u002F Tail sampling: force-keep based on outcome\n      keep: [\n        { duration: 1000 },           \u002F\u002F Slow requests (≥1s)\n        { status: 400 },              \u002F\u002F Client\u002Fserver errors\n        { path: '\u002Fapi\u002Fpayments\u002F**' }, \u002F\u002F Critical paths\n      ],\n    },\n  },\n})\n",[630,10958,10959,10972,10980,10989,10994,11003,11018,11033,11048,11063,11068,11073,11082,11101,11118,11139,11146,11150,11155],{"__ignoreMap":737},[741,10960,10961,10963,10965,10968,10970],{"class":743,"line":744},[741,10962,840],{"class":787},[741,10964,843],{"class":787},[741,10966,10967],{"class":846}," defineNuxtConfig",[741,10969,849],{"class":794},[741,10971,852],{"class":751},[741,10973,10974,10976,10978],{"class":743,"line":758},[741,10975,1211],{"class":858},[741,10977,752],{"class":751},[741,10979,755],{"class":751},[741,10981,10982,10985,10987],{"class":743,"line":773},[741,10983,10984],{"class":858},"    sampling",[741,10986,752],{"class":751},[741,10988,755],{"class":751},[741,10990,10991],{"class":743,"line":837},[741,10992,10993],{"class":1824},"      \u002F\u002F Head sampling: random percentage per level\n",[741,10995,10996,10999,11001],{"class":743,"line":855},[741,10997,10998],{"class":858},"      rates",[741,11000,752],{"class":751},[741,11002,755],{"class":751},[741,11004,11005,11008,11010,11013,11015],{"class":743,"line":888},[741,11006,11007],{"class":858},"        info",[741,11009,752],{"class":751},[741,11011,11012],{"class":2945}," 10",[741,11014,940],{"class":751},[741,11016,11017],{"class":1824},"    \u002F\u002F 10% of success logs\n",[741,11019,11020,11023,11025,11028,11030],{"class":743,"line":1816},[741,11021,11022],{"class":858},"        warn",[741,11024,752],{"class":751},[741,11026,11027],{"class":2945}," 50",[741,11029,940],{"class":751},[741,11031,11032],{"class":1824},"    \u002F\u002F 50% of warnings\n",[741,11034,11035,11038,11040,11043,11045],{"class":743,"line":1821},[741,11036,11037],{"class":858},"        debug",[741,11039,752],{"class":751},[741,11041,11042],{"class":2945}," 0",[741,11044,940],{"class":751},[741,11046,11047],{"class":1824},"    \u002F\u002F No debug logs in prod\n",[741,11049,11050,11053,11055,11058,11060],{"class":743,"line":1828},[741,11051,11052],{"class":858},"        error",[741,11054,752],{"class":751},[741,11056,11057],{"class":2945}," 100",[741,11059,940],{"class":751},[741,11061,11062],{"class":1824},"  \u002F\u002F Always keep errors\n",[741,11064,11065],{"class":743,"line":1834},[741,11066,11067],{"class":751},"      },\n",[741,11069,11070],{"class":743,"line":1839},[741,11071,11072],{"class":1824},"      \u002F\u002F Tail sampling: force-keep based on outcome\n",[741,11074,11075,11078,11080],{"class":743,"line":1845},[741,11076,11077],{"class":858},"      keep",[741,11079,752],{"class":751},[741,11081,1206],{"class":794},[741,11083,11084,11087,11090,11092,11095,11098],{"class":743,"line":1860},[741,11085,11086],{"class":751},"        {",[741,11088,11089],{"class":858}," duration",[741,11091,752],{"class":751},[741,11093,11094],{"class":2945}," 1000",[741,11096,11097],{"class":751}," },",[741,11099,11100],{"class":1824},"           \u002F\u002F Slow requests (≥1s)\n",[741,11102,11103,11105,11108,11110,11113,11115],{"class":743,"line":1870},[741,11104,11086],{"class":751},[741,11106,11107],{"class":858}," status",[741,11109,752],{"class":751},[741,11111,11112],{"class":2945}," 400",[741,11114,11097],{"class":751},[741,11116,11117],{"class":1824},"              \u002F\u002F Client\u002Fserver errors\n",[741,11119,11120,11122,11125,11127,11129,11132,11134,11136],{"class":743,"line":1887},[741,11121,11086],{"class":751},[741,11123,11124],{"class":858}," path",[741,11126,752],{"class":751},[741,11128,804],{"class":751},[741,11130,11131],{"class":807},"\u002Fapi\u002Fpayments\u002F**",[741,11133,979],{"class":751},[741,11135,11097],{"class":751},[741,11137,11138],{"class":1824}," \u002F\u002F Critical paths\n",[741,11140,11141,11144],{"class":743,"line":1912},[741,11142,11143],{"class":794},"      ]",[741,11145,770],{"class":751},[741,11147,11148],{"class":743,"line":1918},[741,11149,1921],{"class":751},[741,11151,11152],{"class":743,"line":1924},[741,11153,11154],{"class":751},"  },\n",[741,11156,11157,11159],{"class":743,"line":1932},[741,11158,891],{"class":751},[741,11160,894],{"class":794},[717,11162,11164,11165,11168,11169,1194],{"color":11163,"icon":13},"info","Use ",[630,11166,11167],{},"$production"," override to keep full logging in development while sampling in production. See ",[1691,11170,11172],{"href":11171},"\u002Fintegrate\u002Fframeworks\u002Fnuxt#sampling","Nuxt framework guide",[622,11174,11176],{"id":11175},"next-steps","Next Steps",[10517,11178,11179,11184,11189],{},[10522,11180,11181,11183],{},[1691,11182,71],{"href":72}," - Built-in PII protection with smart masking",[10522,11185,11186,11188],{},[1691,11187,51],{"href":52}," - Design effective wide events",[10522,11190,11191,11193],{},[1691,11192,56],{"href":57}," - Error handling patterns",[11195,11196,11197],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}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 .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 .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .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 .s6hCs, html code.shiki .s6hCs{--shiki-light:#9C3EDA;--shiki-light-font-style:italic;--shiki-default:#C792EA;--shiki-default-font-style:italic;--shiki-dark:#C792EA;--shiki-dark-font-style:italic}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":737,"searchDepth":758,"depth":758,"links":11199},[11200,11201,11202,11207,11212,11215,11216],{"id":624,"depth":758,"text":625},{"id":723,"depth":758,"text":71},{"id":1704,"depth":758,"text":1705,"children":11203},[11204,11205,11206],{"id":1709,"depth":773,"text":1710},{"id":2782,"depth":773,"text":2783},{"id":4520,"depth":773,"text":4521},{"id":10507,"depth":758,"text":10508,"children":11208},[11209,11210,11211],{"id":10514,"depth":773,"text":10515},{"id":10557,"depth":773,"text":10558},{"id":10611,"depth":773,"text":10612},{"id":10640,"depth":758,"text":10641,"children":11213},[11214],{"id":10831,"depth":773,"text":10832},{"id":10949,"depth":758,"text":10950},{"id":11175,"depth":758,"text":11176},"Security guidelines, data sanitization, and production tips for evlog. Learn what not to log and how to protect sensitive data.","md",[11220],{"label":158,"icon":156,"to":163,"color":11221,"variant":11222},"neutral","subtle",{},{"icon":398},{"title":570,"description":11217},"ax7y7oLbWTdGpSQV6F4EPZ4HlMbj7GlTmjPk_-sVwBM",[11228,11230],{"title":565,"path":566,"stem":567,"description":11229,"icon":568,"children":-1},"Build-time optimizations for any Vite-based framework. Auto-init, debug stripping, source location injection, and optional auto-imports.",{"title":574,"path":575,"stem":576,"description":11231,"icon":577,"children":-1},"Choose a logger by context model, extensibility, output, and migration cost, then follow the detailed comparison for your current stack.",1791657879725]