[{"data":1,"prerenderedAt":11748},["ShallowReactive",2],{"navigation_docs":3,"-reference-best-practices":602,"-reference-best-practices-surround":11743},[4,35,85,138,318,479,538,577],{"title":5,"path":6,"stem":7,"children":8,"page":34},"Start","\u002Fstart","1.start",[9,14,19,24,29],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","\u002Fstart\u002Fintroduction","1.start\u002F1.introduction","i-lucide-info",{"title":15,"path":16,"stem":17,"icon":18},"Why start with evlog","\u002Fstart\u002Fwhy-evlog","1.start\u002F2.why-evlog","i-lucide-rocket",{"title":20,"path":21,"stem":22,"icon":23},"Installation","\u002Fstart\u002Finstallation","1.start\u002F3.installation","i-lucide-download",{"title":25,"path":26,"stem":27,"icon":28},"Quick Start","\u002Fstart\u002Fquick-start","1.start\u002F4.quick-start","i-lucide-zap",{"title":30,"path":31,"stem":32,"icon":33},"Choose your logger","\u002Fstart\u002Ftypescript-logging-library","1.start\u002F5.typescript-logging-library","i-lucide-file-code",false,{"title":36,"path":37,"stem":38,"children":39,"page":34},"Learn","\u002Flearn","2.learn",[40,45,50,55,60,65,70,75,80],{"title":41,"path":42,"stem":43,"icon":44},"Overview","\u002Flearn\u002Foverview","2.learn\u002F0.overview","i-lucide-list",{"title":46,"path":47,"stem":48,"icon":49},"Simple Logging","\u002Flearn\u002Fsimple-logging","2.learn\u002F1.simple-logging","i-lucide-terminal",{"title":51,"path":52,"stem":53,"icon":54},"Wide Events","\u002Flearn\u002Fwide-events","2.learn\u002F2.wide-events","i-lucide-layers",{"title":56,"path":57,"stem":58,"icon":59},"Structured Errors","\u002Flearn\u002Fstructured-errors","2.learn\u002F3.structured-errors","i-lucide-shield-alert",{"title":61,"path":62,"stem":63,"icon":64},"Lifecycle","\u002Flearn\u002Flifecycle","2.learn\u002F4.lifecycle","i-lucide-arrow-right-left",{"title":66,"path":67,"stem":68,"icon":69},"Sampling","\u002Flearn\u002Fsampling","2.learn\u002F5.sampling","i-lucide-filter",{"title":71,"path":72,"stem":73,"icon":74},"Auto-Redaction","\u002Flearn\u002Fredaction","2.learn\u002F6.redaction","i-lucide-eye-off",{"title":76,"path":77,"stem":78,"icon":79},"Typed Fields","\u002Flearn\u002Ftyped-fields","2.learn\u002F7.typed-fields","i-simple-icons-typescript",{"title":81,"path":82,"stem":83,"icon":84},"Catalogs","\u002Flearn\u002Fcatalogs","2.learn\u002F8.catalogs","i-lucide-book-open",{"title":86,"path":87,"stem":88,"children":89,"page":34},"CLI","\u002Fcli","3.cli",[90,93,98,103,108,113,118,123,128,133],{"title":41,"path":91,"stem":92,"icon":49},"\u002Fcli\u002Foverview","3.cli\u002F0.overview",{"title":94,"path":95,"stem":96,"icon":97},"init","\u002Fcli\u002Finit","3.cli\u002F1.init","i-lucide-wand-sparkles",{"title":99,"path":100,"stem":101,"icon":102},"map","\u002Fcli\u002Fmap","3.cli\u002F2.map","i-lucide-radar",{"title":104,"path":105,"stem":106,"icon":107},"Rules","\u002Fcli\u002Frules","3.cli\u002F3.rules","i-lucide-list-checks",{"title":109,"path":110,"stem":111,"icon":112},"Scoring","\u002Fcli\u002Fscoring","3.cli\u002F4.scoring","i-lucide-gauge",{"title":114,"path":115,"stem":116,"icon":117},"CI","\u002Fcli\u002Fci","3.cli\u002F5.ci","i-lucide-git-pull-request",{"title":119,"path":120,"stem":121,"icon":122},"doctor","\u002Fcli\u002Fdoctor","3.cli\u002F6.doctor","i-lucide-stethoscope",{"title":124,"path":125,"stem":126,"icon":127},"telemetry","\u002Fcli\u002Ftelemetry","3.cli\u002F7.telemetry","i-lucide-bar-chart-3",{"title":129,"path":130,"stem":131,"icon":132},"agents","\u002Fcli\u002Fagents","3.cli\u002F8.agents","i-lucide-bot",{"title":134,"path":135,"stem":136,"icon":137},"Observability Score","\u002Fcli\u002Fobservability-score","3.cli\u002F9.observability-score","i-lucide-activity",{"title":139,"path":140,"stem":141,"children":142,"page":34},"Integrate","\u002Fintegrate","4.integrate",[143,147,230],{"title":41,"path":144,"stem":145,"icon":146},"\u002Fintegrate\u002Foverview","4.integrate\u002F0.overview","i-lucide-plug",{"title":148,"path":149,"stem":150,"children":151,"page":34},"Adapters","\u002Fintegrate\u002Fadapters","4.integrate\u002Fadapters",[152,155,185,210],{"title":41,"path":153,"stem":154,"icon":44},"\u002Fintegrate\u002Fadapters\u002Foverview","4.integrate\u002Fadapters\u002F01.overview",{"title":156,"path":157,"stem":158,"children":159,"page":34},"Cloud","\u002Fintegrate\u002Fadapters\u002Fcloud","4.integrate\u002Fadapters\u002Fcloud",[160,165,170,175,180],{"title":161,"path":162,"stem":163,"icon":164},"Axiom","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Faxiom","4.integrate\u002Fadapters\u002Fcloud\u002F01.axiom","i-custom-axiom",{"title":166,"path":167,"stem":168,"icon":169},"PostHog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fposthog","4.integrate\u002Fadapters\u002Fcloud\u002F02.posthog","i-simple-icons-posthog",{"title":171,"path":172,"stem":173,"icon":174},"Sentry","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fsentry","4.integrate\u002Fadapters\u002Fcloud\u002F03.sentry","i-simple-icons-sentry",{"title":176,"path":177,"stem":178,"icon":179},"Better Stack","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fbetter-stack","4.integrate\u002Fadapters\u002Fcloud\u002F04.better-stack","i-simple-icons-betterstack",{"title":181,"path":182,"stem":183,"icon":184},"Datadog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fdatadog","4.integrate\u002Fadapters\u002Fcloud\u002F05.datadog","i-simple-icons-datadog",{"title":186,"path":187,"stem":188,"children":189,"page":34},"Cloud or Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fhybrid","4.integrate\u002Fadapters\u002Fhybrid",[190,195,200,205],{"title":191,"path":192,"stem":193,"icon":194},"Grafana Loki","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Floki","4.integrate\u002Fadapters\u002Fhybrid\u002F01.loki","i-simple-icons-grafana",{"title":196,"path":197,"stem":198,"icon":199},"ClickHouse","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fclickhouse","4.integrate\u002Fadapters\u002Fhybrid\u002F02.clickhouse","i-simple-icons-clickhouse",{"title":201,"path":202,"stem":203,"icon":204},"OTLP","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fotlp","4.integrate\u002Fadapters\u002Fhybrid\u002F03.otlp","i-simple-icons-opentelemetry",{"title":206,"path":207,"stem":208,"icon":209},"HyperDX","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fhyperdx","4.integrate\u002Fadapters\u002Fhybrid\u002F04.hyperdx","i-custom-hyperdx",{"title":211,"path":212,"stem":213,"children":214,"page":34},"Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fself-hosted","4.integrate\u002Fadapters\u002Fself-hosted",[215,220,225],{"title":216,"path":217,"stem":218,"icon":219},"File System","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Ffs","4.integrate\u002Fadapters\u002Fself-hosted\u002F01.fs","i-lucide-hard-drive",{"title":221,"path":222,"stem":223,"icon":224},"NuxtHub","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fnuxthub","4.integrate\u002Fadapters\u002Fself-hosted\u002F02.nuxthub","i-simple-icons-nuxt",{"title":226,"path":227,"stem":228,"icon":229},"Memory","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fmemory","4.integrate\u002Fadapters\u002Fself-hosted\u002F03.memory","i-lucide-cpu",{"title":231,"path":232,"stem":233,"children":234,"page":34},"Frameworks","\u002Fintegrate\u002Fframeworks","4.integrate\u002Fframeworks",[235,239,244,249,254,259,264,269,274,279,284,289,294,299,303,308,313],{"title":41,"path":236,"stem":237,"icon":238},"\u002Fintegrate\u002Fframeworks\u002Foverview","4.integrate\u002Fframeworks\u002F00.overview","i-lucide-layout-grid",{"title":240,"path":241,"stem":242,"icon":243},"Nuxt","\u002Fintegrate\u002Fframeworks\u002Fnuxt","4.integrate\u002Fframeworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":245,"path":246,"stem":247,"icon":248},"Next.js","\u002Fintegrate\u002Fframeworks\u002Fnextjs","4.integrate\u002Fframeworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":250,"path":251,"stem":252,"icon":253},"SvelteKit","\u002Fintegrate\u002Fframeworks\u002Fsveltekit","4.integrate\u002Fframeworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":255,"path":256,"stem":257,"icon":258},"Nitro","\u002Fintegrate\u002Fframeworks\u002Fnitro","4.integrate\u002Fframeworks\u002F04.nitro","i-custom-nitro",{"title":260,"path":261,"stem":262,"icon":263},"TanStack Start","\u002Fintegrate\u002Fframeworks\u002Ftanstack-start","4.integrate\u002Fframeworks\u002F05.tanstack-start","i-custom-tanstack",{"title":265,"path":266,"stem":267,"icon":268},"NestJS","\u002Fintegrate\u002Fframeworks\u002Fnestjs","4.integrate\u002Fframeworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":270,"path":271,"stem":272,"icon":273},"Express","\u002Fintegrate\u002Fframeworks\u002Fexpress","4.integrate\u002Fframeworks\u002F07.express","i-simple-icons-express",{"title":275,"path":276,"stem":277,"icon":278},"Hono","\u002Fintegrate\u002Fframeworks\u002Fhono","4.integrate\u002Fframeworks\u002F08.hono","i-simple-icons-hono",{"title":280,"path":281,"stem":282,"icon":283},"Fastify","\u002Fintegrate\u002Fframeworks\u002Ffastify","4.integrate\u002Fframeworks\u002F09.fastify","i-simple-icons-fastify",{"title":285,"path":286,"stem":287,"icon":288},"Elysia","\u002Fintegrate\u002Fframeworks\u002Felysia","4.integrate\u002Fframeworks\u002F10.elysia","i-custom-elysia",{"title":290,"path":291,"stem":292,"icon":293},"React Router","\u002Fintegrate\u002Fframeworks\u002Freact-router","4.integrate\u002Fframeworks\u002F11.react-router","i-custom-reactrouter",{"title":295,"path":296,"stem":297,"icon":298},"Cloudflare Workers","\u002Fintegrate\u002Fframeworks\u002Fcloudflare-workers","4.integrate\u002Fframeworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":300,"path":301,"stem":302,"icon":79},"Standalone","\u002Fintegrate\u002Fframeworks\u002Fstandalone","4.integrate\u002Fframeworks\u002F13.standalone",{"title":304,"path":305,"stem":306,"icon":307},"Astro","\u002Fintegrate\u002Fframeworks\u002Fastro","4.integrate\u002Fframeworks\u002F14.astro","i-simple-icons-astro",{"title":309,"path":310,"stem":311,"icon":312},"oRPC","\u002Fintegrate\u002Fframeworks\u002Forpc","4.integrate\u002Fframeworks\u002F15.orpc","i-lucide-network",{"title":314,"path":315,"stem":316,"icon":317},"AWS Lambda","\u002Fintegrate\u002Fframeworks\u002Faws-lambda","4.integrate\u002Fframeworks\u002F16.aws-lambda","i-custom-lambda",{"title":319,"path":320,"stem":321,"children":322,"page":34},"Use Cases","\u002Fuse-cases","5.use-cases",[323,326,331,359,386,418,439,444,449,453],{"title":41,"path":324,"stem":325,"icon":107},"\u002Fuse-cases\u002Foverview","5.use-cases\u002F0.overview",{"title":327,"path":328,"stem":329,"icon":330},"Client Logging","\u002Fuse-cases\u002Fclient-logging","5.use-cases\u002F1.client-logging","i-lucide-monitor",{"title":332,"icon":333,"path":334,"stem":335,"children":336,"page":34},"AI SDK","i-simple-icons-vercel","\u002Fuse-cases\u002Fai-sdk","5.use-cases\u002F2.ai-sdk",[337,340,345,350,355],{"title":41,"path":338,"stem":339,"icon":44},"\u002Fuse-cases\u002Fai-sdk\u002Foverview","5.use-cases\u002F2.ai-sdk\u002F01.overview",{"title":341,"path":342,"stem":343,"icon":344},"Usage","\u002Fuse-cases\u002Fai-sdk\u002Fusage","5.use-cases\u002F2.ai-sdk\u002F02.usage","i-lucide-code",{"title":346,"path":347,"stem":348,"icon":349},"Options","\u002Fuse-cases\u002Fai-sdk\u002Foptions","5.use-cases\u002F2.ai-sdk\u002F03.options","i-lucide-sliders",{"title":351,"path":352,"stem":353,"icon":354},"Metadata","\u002Fuse-cases\u002Fai-sdk\u002Fmetadata","5.use-cases\u002F2.ai-sdk\u002F04.metadata","i-lucide-database",{"title":356,"path":357,"stem":358,"icon":137},"Telemetry","\u002Fuse-cases\u002Fai-sdk\u002Ftelemetry","5.use-cases\u002F2.ai-sdk\u002F05.telemetry",{"title":360,"icon":361,"path":362,"stem":363,"children":364,"page":34},"Better Auth","i-simple-icons-betterauth","\u002Fuse-cases\u002Fbetter-auth","5.use-cases\u002F3.better-auth",[365,368,373,378,382],{"title":41,"path":366,"stem":367,"icon":44},"\u002Fuse-cases\u002Fbetter-auth\u002Foverview","5.use-cases\u002F3.better-auth\u002F01.overview",{"title":369,"path":370,"stem":371,"icon":372},"Identify User","\u002Fuse-cases\u002Fbetter-auth\u002Fidentify-user","5.use-cases\u002F3.better-auth\u002F02.identify-user","i-lucide-user-check",{"title":374,"path":375,"stem":376,"icon":377},"Middleware","\u002Fuse-cases\u002Fbetter-auth\u002Fmiddleware","5.use-cases\u002F3.better-auth\u002F03.middleware","i-lucide-shield",{"title":379,"path":380,"stem":381,"icon":330},"Client Sync","\u002Fuse-cases\u002Fbetter-auth\u002Fclient-sync","5.use-cases\u002F3.better-auth\u002F04.client-sync",{"title":383,"path":384,"stem":385,"icon":112},"Performance","\u002Fuse-cases\u002Fbetter-auth\u002Fperformance","5.use-cases\u002F3.better-auth\u002F05.performance",{"title":387,"icon":388,"path":389,"stem":390,"children":391,"page":34},"Audit Logs","i-lucide-shield-check","\u002Fuse-cases\u002Faudit","5.use-cases\u002F4.audit",[392,395,400,405,410,414],{"title":41,"path":393,"stem":394,"icon":44},"\u002Fuse-cases\u002Faudit\u002Foverview","5.use-cases\u002F4.audit\u002F01.overview",{"title":396,"path":397,"stem":398,"icon":399},"Schema","\u002Fuse-cases\u002Faudit\u002Fschema","5.use-cases\u002F4.audit\u002F02.schema","i-lucide-file-text",{"title":401,"path":402,"stem":403,"icon":404},"Recording","\u002Fuse-cases\u002Faudit\u002Frecording","5.use-cases\u002F4.audit\u002F03.recording","i-lucide-pen-line",{"title":406,"path":407,"stem":408,"icon":409},"Drains","\u002Fuse-cases\u002Faudit\u002Fpipeline","5.use-cases\u002F4.audit\u002F04.pipeline","i-lucide-link",{"title":411,"path":412,"stem":413,"icon":388},"Compliance","\u002Fuse-cases\u002Faudit\u002Fcompliance","5.use-cases\u002F4.audit\u002F05.compliance",{"title":415,"path":416,"stem":417,"icon":84},"Recipes","\u002Fuse-cases\u002Faudit\u002Frecipes","5.use-cases\u002F4.audit\u002F06.recipes",{"title":356,"icon":112,"path":419,"stem":420,"children":421,"page":34},"\u002Fuse-cases\u002Ftelemetry","5.use-cases\u002F4.telemetry",[422,425,430,435],{"title":41,"path":423,"stem":424,"icon":44},"\u002Fuse-cases\u002Ftelemetry\u002Foverview","5.use-cases\u002F4.telemetry\u002F01.overview",{"title":426,"path":427,"stem":428,"icon":429},"Setup","\u002Fuse-cases\u002Ftelemetry\u002Fsetup","5.use-cases\u002F4.telemetry\u002F02.setup","i-lucide-wrench",{"title":431,"path":432,"stem":433,"icon":434},"Ingest","\u002Fuse-cases\u002Ftelemetry\u002Fingest","5.use-cases\u002F4.telemetry\u002F03.ingest","i-lucide-server",{"title":436,"path":437,"stem":438,"icon":84},"Reference","\u002Fuse-cases\u002Ftelemetry\u002Freference","5.use-cases\u002F4.telemetry\u002F04.reference",{"title":440,"path":441,"stem":442,"icon":443},"Enrichers","\u002Fuse-cases\u002Fenrichers","5.use-cases\u002F5.enrichers","i-lucide-sparkles",{"title":445,"path":446,"stem":447,"icon":448},"eve","\u002Fuse-cases\u002Feve","5.use-cases\u002F5.eve","i-custom-eve",{"title":450,"path":451,"stem":452,"icon":434},"Node.js request logging","\u002Fuse-cases\u002Fstructured-logging-nodejs","5.use-cases\u002F6.structured-logging-nodejs",{"title":454,"icon":455,"path":456,"stem":457,"children":458,"page":34},"Signals","i-lucide-scan-search","\u002Fuse-cases\u002Fsignals","5.use-cases\u002F7.signals",[459,462,467,472,475],{"title":41,"path":460,"stem":461,"icon":44},"\u002Fuse-cases\u002Fsignals\u002Foverview","5.use-cases\u002F7.signals\u002F01.overview",{"title":463,"path":464,"stem":465,"icon":466},"What You Can Ask","\u002Fuse-cases\u002Fsignals\u002Fask","5.use-cases\u002F7.signals\u002F02.ask","i-lucide-message-circle-question",{"title":468,"path":469,"stem":470,"icon":471},"What It Costs","\u002Fuse-cases\u002Fsignals\u002Fcost","5.use-cases\u002F7.signals\u002F03.cost","i-lucide-coins",{"title":436,"path":473,"stem":474,"icon":84},"\u002Fuse-cases\u002Fsignals\u002Freference","5.use-cases\u002F7.signals\u002F04.reference",{"title":415,"path":476,"stem":477,"icon":478},"\u002Fuse-cases\u002Fsignals\u002Frecipes","5.use-cases\u002F7.signals\u002F05.recipes","i-lucide-lightbulb",{"title":480,"path":481,"stem":482,"children":483,"page":34},"Extend","\u002Fextend","6.extend",[484,488,493,498,502,507,511,515,519,523,528,533],{"title":41,"path":485,"stem":486,"icon":487},"\u002Fextend\u002Foverview","6.extend\u002F0.overview","i-lucide-blocks",{"title":489,"path":490,"stem":491,"icon":492},"Stream","\u002Fextend\u002Fstream","6.extend\u002F1.stream","i-lucide-radio-tower",{"title":494,"path":495,"stem":496,"icon":497},"Custom framework","\u002Fextend\u002Fcustom-framework","6.extend\u002F10.custom-framework","i-lucide-puzzle",{"title":499,"path":500,"stem":501,"icon":492},"Diagnostics channel","\u002Fextend\u002Fdiagnostics-channel","6.extend\u002F11.diagnostics-channel",{"title":503,"path":504,"stem":505,"icon":506},"FS reader","\u002Fextend\u002Ffs-reader","6.extend\u002F2.fs-reader","i-lucide-folder-search",{"title":415,"path":508,"stem":509,"icon":510},"\u002Fextend\u002Fconsumer-recipes","6.extend\u002F3.consumer-recipes","i-lucide-chef-hat",{"title":512,"path":513,"stem":514,"icon":487},"Plugins","\u002Fextend\u002Fplugins","6.extend\u002F4.plugins",{"title":516,"path":517,"stem":518,"icon":443},"Custom enrichers","\u002Fextend\u002Fcustom-enrichers","6.extend\u002F5.custom-enrichers",{"title":520,"path":521,"stem":522,"icon":69},"Tail sampling","\u002Fextend\u002Ftail-sampling","6.extend\u002F6.tail-sampling",{"title":524,"path":525,"stem":526,"icon":527},"Identity headers","\u002Fextend\u002Fidentity-headers","6.extend\u002F7.identity-headers","i-lucide-fingerprint",{"title":529,"path":530,"stem":531,"icon":532},"Custom drains","\u002Fextend\u002Fcustom-drains","6.extend\u002F8.custom-drains","i-lucide-share-2",{"title":534,"path":535,"stem":536,"icon":537},"Drain pipeline","\u002Fextend\u002Fdrain-pipeline","6.extend\u002F9.drain-pipeline","i-lucide-workflow",{"title":436,"path":539,"stem":540,"children":541,"page":34},"\u002Freference","7.reference",[542,546,551,554,559,563,568,572],{"title":41,"path":543,"stem":544,"icon":545},"\u002Freference\u002Foverview","7.reference\u002F0.overview","i-lucide-book-marked",{"title":547,"path":548,"stem":549,"icon":550},"Configuration","\u002Freference\u002Fconfiguration","7.reference\u002F1.configuration","i-lucide-settings",{"title":383,"path":552,"stem":553,"icon":112},"\u002Freference\u002Fperformance","7.reference\u002F2.performance",{"title":555,"path":556,"stem":557,"icon":558},"Vite Plugin","\u002Freference\u002Fvite-plugin","7.reference\u002F3.vite-plugin","i-custom-vite",{"title":560,"path":561,"stem":562,"icon":388},"Best Practices","\u002Freference\u002Fbest-practices","7.reference\u002F4.best-practices",{"title":564,"path":565,"stem":566,"icon":567},"vs Other Loggers","\u002Freference\u002Fvs-other-loggers","7.reference\u002F5.vs-other-loggers","i-lucide-scale",{"title":569,"path":570,"stem":571,"icon":443},"Agent Skills","\u002Freference\u002Fagent-skills","7.reference\u002F6.agent-skills",{"title":573,"path":574,"stem":575,"icon":576},"Cost","\u002Freference\u002Fcost","7.reference\u002F7.cost","i-lucide-receipt",{"title":578,"path":579,"stem":580,"children":581,"page":34},"Compare","\u002Fcompare","8.compare",[582,586,590,594,598],{"title":583,"path":584,"stem":585,"icon":567},"evlog vs Pino","\u002Fcompare\u002Fpino","8.compare\u002F1.pino",{"title":587,"path":588,"stem":589,"icon":204},"evlog vs OpenTelemetry","\u002Fcompare\u002Fopentelemetry","8.compare\u002F2.opentelemetry",{"title":591,"path":592,"stem":593,"icon":567},"evlog vs LogTape","\u002Fcompare\u002Flogtape","8.compare\u002F3.logtape",{"title":595,"path":596,"stem":597,"icon":567},"evlog vs Winston: formats and request events","\u002Fcompare\u002Fwinston","8.compare\u002F4.winston",{"title":599,"path":600,"stem":601,"icon":567},"evlog vs Consola: reporters and request context","\u002Fcompare\u002Fconsola","8.compare\u002F5.consola",{"id":603,"title":560,"body":604,"description":11733,"extension":11734,"links":11735,"meta":11739,"navigation":11740,"path":561,"seo":11741,"stem":562,"__hash__":11742},"docs\u002F7.reference\u002F4.best-practices.md",{"type":605,"value":606,"toc":11714},"minimark",[607,611,616,628,706,711,714,717,1669,1684,1692,1696,1701,1704,2770,2774,2777,3377,3380,4508,4512,4515,11017,11021,11025,11028,11032,11071,11075,11125,11129,11154,11158,11161,11345,11349,11463,11467,11470,11677,11689,11693,11710],[608,609,610],"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.",[612,613,615],"h2",{"id":614},"what-not-to-log","What NOT to Log",[608,617,618,619,623,624],{},"The same accumulation that makes a wide event worth querying puts a secret in your drain the moment one reaches ",[620,621,622],"code",{},"log.set",". ",[625,626,627],"strong",{},"Never log:",[629,630,631,647],"table",{},[632,633,634],"thead",{},[635,636,637,641,644],"tr",{},[638,639,640],"th",{},"Category",[638,642,643],{},"Examples",[638,645,646],{},"Risk",[648,649,650,662,673,684,695],"tbody",{},[635,651,652,656,659],{},[653,654,655],"td",{},"Credentials",[653,657,658],{},"Passwords, API keys, tokens, secrets",[653,660,661],{},"Account compromise",[635,663,664,667,670],{},[653,665,666],{},"Payment data",[653,668,669],{},"Full card numbers, CVV, bank accounts",[653,671,672],{},"PCI compliance violation",[635,674,675,678,681],{},[653,676,677],{},"Personal data (PII)",[653,679,680],{},"SSN, passport numbers, driver's license",[653,682,683],{},"Privacy laws (GDPR, CCPA)",[635,685,686,689,692],{},[653,687,688],{},"Health data",[653,690,691],{},"Medical records, diagnoses",[653,693,694],{},"HIPAA violation",[635,696,697,700,703],{},[653,698,699],{},"Authentication",[653,701,702],{},"Session tokens, JWTs, refresh tokens",[653,704,705],{},"Session hijacking",[707,708,710],"callout",{"color":709,"icon":59},"error","Logs are often accessible to your entire team and may be stored in third-party services. Treat them as semi-public.",[612,712,71],{"id":713},"auto-redaction",[608,715,716],{},"The simplest way to protect PII is to enable built-in auto-redaction:",[718,719,720,767,885,988,1054,1138,1224,1282,1336,1394,1448,1502,1568,1622],"framework-tabs",{},[721,722,728],"pre",{"className":723,"code":724,"filename":240,"language":725,"meta":726,"style":727},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","evlog: {\n  redact: true,\n}\n","typescript","nuxt.config.ts","",[620,729,730,746,761],{"__ignoreMap":727},[731,732,735,739,743],"span",{"class":733,"line":734},"line",1,[731,736,738],{"class":737},"sBMFI","evlog",[731,740,742],{"class":741},"sMK4o",":",[731,744,745],{"class":741}," {\n",[731,747,749,752,754,758],{"class":733,"line":748},2,[731,750,751],{"class":737},"  redact",[731,753,742],{"class":741},[731,755,757],{"class":756},"sfNiH"," true",[731,759,760],{"class":741},",\n",[731,762,764],{"class":733,"line":763},3,[731,765,766],{"class":741},"}\n",[721,768,771],{"className":723,"code":769,"filename":255,"language":725,"meta":770,"style":727},"import { defineConfig } from 'nitro'\nimport evlog from 'evlog\u002Fnitro\u002Fv3'\n\nexport default defineConfig({\n  modules: [evlog({ redact: true })],\n})\n","nitro.config.ts",[620,772,773,802,819,825,843,876],{"__ignoreMap":727},[731,774,775,779,782,786,789,792,795,799],{"class":733,"line":734},[731,776,778],{"class":777},"s7zQu","import",[731,780,781],{"class":741}," {",[731,783,785],{"class":784},"sTEyZ"," defineConfig",[731,787,788],{"class":741}," }",[731,790,791],{"class":777}," from",[731,793,794],{"class":741}," '",[731,796,798],{"class":797},"sfazB","nitro",[731,800,801],{"class":741},"'\n",[731,803,804,806,809,812,814,817],{"class":733,"line":748},[731,805,778],{"class":777},[731,807,808],{"class":784}," evlog ",[731,810,811],{"class":777},"from",[731,813,794],{"class":741},[731,815,816],{"class":797},"evlog\u002Fnitro\u002Fv3",[731,818,801],{"class":741},[731,820,821],{"class":733,"line":763},[731,822,824],{"emptyLinePlaceholder":823},true,"\n",[731,826,828,831,834,837,840],{"class":733,"line":827},4,[731,829,830],{"class":777},"export",[731,832,833],{"class":777}," default",[731,835,785],{"class":836},"s2Zo4",[731,838,839],{"class":784},"(",[731,841,842],{"class":741},"{\n",[731,844,846,850,852,855,857,859,862,865,867,869,871,874],{"class":733,"line":845},5,[731,847,849],{"class":848},"swJcz","  modules",[731,851,742],{"class":741},[731,853,854],{"class":784}," [",[731,856,738],{"class":836},[731,858,839],{"class":784},[731,860,861],{"class":741},"{",[731,863,864],{"class":848}," redact",[731,866,742],{"class":741},[731,868,757],{"class":756},[731,870,788],{"class":741},[731,872,873],{"class":784},")]",[731,875,760],{"class":741},[731,877,879,882],{"class":733,"line":878},6,[731,880,881],{"class":741},"}",[731,883,884],{"class":784},")\n",[721,886,889],{"className":723,"code":887,"filename":245,"language":725,"meta":888,"style":727},"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",[620,890,891,911,915,955,972,982],{"__ignoreMap":727},[731,892,893,895,897,900,902,904,906,909],{"class":733,"line":734},[731,894,778],{"class":777},[731,896,781],{"class":741},[731,898,899],{"class":784}," createEvlog",[731,901,788],{"class":741},[731,903,791],{"class":777},[731,905,794],{"class":741},[731,907,908],{"class":797},"evlog\u002Fnext",[731,910,801],{"class":741},[731,912,913],{"class":733,"line":748},[731,914,824],{"emptyLinePlaceholder":823},[731,916,917,919,923,925,928,931,934,936,939,941,944,946,949,951,953],{"class":733,"line":763},[731,918,830],{"class":777},[731,920,922],{"class":921},"spNyl"," const",[731,924,781],{"class":741},[731,926,927],{"class":784}," withEvlog",[731,929,930],{"class":741},",",[731,932,933],{"class":784}," useLogger",[731,935,930],{"class":741},[731,937,938],{"class":784}," log",[731,940,930],{"class":741},[731,942,943],{"class":784}," createError ",[731,945,881],{"class":741},[731,947,948],{"class":741}," =",[731,950,899],{"class":836},[731,952,839],{"class":784},[731,954,842],{"class":741},[731,956,957,960,962,964,967,970],{"class":733,"line":827},[731,958,959],{"class":848},"  service",[731,961,742],{"class":741},[731,963,794],{"class":741},[731,965,966],{"class":797},"my-app",[731,968,969],{"class":741},"'",[731,971,760],{"class":741},[731,973,974,976,978,980],{"class":733,"line":845},[731,975,751],{"class":848},[731,977,742],{"class":741},[731,979,757],{"class":756},[731,981,760],{"class":741},[731,983,984,986],{"class":733,"line":878},[731,985,881],{"class":741},[731,987,884],{"class":784},[721,989,992],{"className":723,"code":990,"filename":250,"language":725,"meta":991,"style":727},"import { createEvlogHooks } from 'evlog\u002Fsveltekit'\n\nexport const { handle, handleError } = createEvlogHooks({ redact: true })\n","src\u002Fhooks.server.ts",[620,993,994,1014,1018],{"__ignoreMap":727},[731,995,996,998,1000,1003,1005,1007,1009,1012],{"class":733,"line":734},[731,997,778],{"class":777},[731,999,781],{"class":741},[731,1001,1002],{"class":784}," createEvlogHooks",[731,1004,788],{"class":741},[731,1006,791],{"class":777},[731,1008,794],{"class":741},[731,1010,1011],{"class":797},"evlog\u002Fsveltekit",[731,1013,801],{"class":741},[731,1015,1016],{"class":733,"line":748},[731,1017,824],{"emptyLinePlaceholder":823},[731,1019,1020,1022,1024,1026,1029,1031,1034,1036,1038,1040,1042,1044,1046,1048,1050,1052],{"class":733,"line":763},[731,1021,830],{"class":777},[731,1023,922],{"class":921},[731,1025,781],{"class":741},[731,1027,1028],{"class":784}," handle",[731,1030,930],{"class":741},[731,1032,1033],{"class":784}," handleError ",[731,1035,881],{"class":741},[731,1037,948],{"class":741},[731,1039,1002],{"class":836},[731,1041,839],{"class":784},[731,1043,861],{"class":741},[731,1045,864],{"class":848},[731,1047,742],{"class":741},[731,1049,757],{"class":756},[731,1051,788],{"class":741},[731,1053,884],{"class":784},[721,1055,1056],{"className":723,"code":769,"filename":260,"language":725,"meta":770,"style":727},[620,1057,1058,1076,1090,1094,1106,1132],{"__ignoreMap":727},[731,1059,1060,1062,1064,1066,1068,1070,1072,1074],{"class":733,"line":734},[731,1061,778],{"class":777},[731,1063,781],{"class":741},[731,1065,785],{"class":784},[731,1067,788],{"class":741},[731,1069,791],{"class":777},[731,1071,794],{"class":741},[731,1073,798],{"class":797},[731,1075,801],{"class":741},[731,1077,1078,1080,1082,1084,1086,1088],{"class":733,"line":748},[731,1079,778],{"class":777},[731,1081,808],{"class":784},[731,1083,811],{"class":777},[731,1085,794],{"class":741},[731,1087,816],{"class":797},[731,1089,801],{"class":741},[731,1091,1092],{"class":733,"line":763},[731,1093,824],{"emptyLinePlaceholder":823},[731,1095,1096,1098,1100,1102,1104],{"class":733,"line":827},[731,1097,830],{"class":777},[731,1099,833],{"class":777},[731,1101,785],{"class":836},[731,1103,839],{"class":784},[731,1105,842],{"class":741},[731,1107,1108,1110,1112,1114,1116,1118,1120,1122,1124,1126,1128,1130],{"class":733,"line":845},[731,1109,849],{"class":848},[731,1111,742],{"class":741},[731,1113,854],{"class":784},[731,1115,738],{"class":836},[731,1117,839],{"class":784},[731,1119,861],{"class":741},[731,1121,864],{"class":848},[731,1123,742],{"class":741},[731,1125,757],{"class":756},[731,1127,788],{"class":741},[731,1129,873],{"class":784},[731,1131,760],{"class":741},[731,1133,1134,1136],{"class":733,"line":878},[731,1135,881],{"class":741},[731,1137,884],{"class":784},[721,1139,1142],{"className":723,"code":1140,"filename":290,"language":725,"meta":1141,"style":727},"import { evlog } from 'evlog\u002Freact-router'\n\nexport const middleware: Route.MiddlewareFunction[] = [\n  evlog({ redact: true }),\n]\n","app\u002Froot.tsx",[620,1143,1144,1164,1168,1197,1219],{"__ignoreMap":727},[731,1145,1146,1148,1150,1153,1155,1157,1159,1162],{"class":733,"line":734},[731,1147,778],{"class":777},[731,1149,781],{"class":741},[731,1151,1152],{"class":784}," evlog",[731,1154,788],{"class":741},[731,1156,791],{"class":777},[731,1158,794],{"class":741},[731,1160,1161],{"class":797},"evlog\u002Freact-router",[731,1163,801],{"class":741},[731,1165,1166],{"class":733,"line":748},[731,1167,824],{"emptyLinePlaceholder":823},[731,1169,1170,1172,1174,1177,1179,1182,1185,1188,1191,1194],{"class":733,"line":763},[731,1171,830],{"class":777},[731,1173,922],{"class":921},[731,1175,1176],{"class":784}," middleware",[731,1178,742],{"class":741},[731,1180,1181],{"class":737}," Route",[731,1183,1184],{"class":741},".",[731,1186,1187],{"class":737},"MiddlewareFunction",[731,1189,1190],{"class":784},"[] ",[731,1192,1193],{"class":741},"=",[731,1195,1196],{"class":784}," [\n",[731,1198,1199,1202,1204,1206,1208,1210,1212,1214,1217],{"class":733,"line":827},[731,1200,1201],{"class":836},"  evlog",[731,1203,839],{"class":784},[731,1205,861],{"class":741},[731,1207,864],{"class":848},[731,1209,742],{"class":741},[731,1211,757],{"class":756},[731,1213,788],{"class":741},[731,1215,1216],{"class":784},")",[731,1218,760],{"class":741},[731,1220,1221],{"class":733,"line":845},[731,1222,1223],{"class":784},"]\n",[721,1225,1228],{"className":723,"code":1226,"filename":275,"language":725,"meta":1227,"style":727},"import { evlog } from 'evlog\u002Fhono'\n\napp.use(evlog({ redact: true }))\n","src\u002Findex.ts",[620,1229,1230,1249,1253],{"__ignoreMap":727},[731,1231,1232,1234,1236,1238,1240,1242,1244,1247],{"class":733,"line":734},[731,1233,778],{"class":777},[731,1235,781],{"class":741},[731,1237,1152],{"class":784},[731,1239,788],{"class":741},[731,1241,791],{"class":777},[731,1243,794],{"class":741},[731,1245,1246],{"class":797},"evlog\u002Fhono",[731,1248,801],{"class":741},[731,1250,1251],{"class":733,"line":748},[731,1252,824],{"emptyLinePlaceholder":823},[731,1254,1255,1258,1260,1263,1265,1267,1269,1271,1273,1275,1277,1279],{"class":733,"line":763},[731,1256,1257],{"class":784},"app",[731,1259,1184],{"class":741},[731,1261,1262],{"class":836},"use",[731,1264,839],{"class":784},[731,1266,738],{"class":836},[731,1268,839],{"class":784},[731,1270,861],{"class":741},[731,1272,864],{"class":848},[731,1274,742],{"class":741},[731,1276,757],{"class":756},[731,1278,788],{"class":741},[731,1280,1281],{"class":784},"))\n",[721,1283,1285],{"className":723,"code":1284,"filename":270,"language":725,"meta":1227,"style":727},"import { evlog } from 'evlog\u002Fexpress'\n\napp.use(evlog({ redact: true }))\n",[620,1286,1287,1306,1310],{"__ignoreMap":727},[731,1288,1289,1291,1293,1295,1297,1299,1301,1304],{"class":733,"line":734},[731,1290,778],{"class":777},[731,1292,781],{"class":741},[731,1294,1152],{"class":784},[731,1296,788],{"class":741},[731,1298,791],{"class":777},[731,1300,794],{"class":741},[731,1302,1303],{"class":797},"evlog\u002Fexpress",[731,1305,801],{"class":741},[731,1307,1308],{"class":733,"line":748},[731,1309,824],{"emptyLinePlaceholder":823},[731,1311,1312,1314,1316,1318,1320,1322,1324,1326,1328,1330,1332,1334],{"class":733,"line":763},[731,1313,1257],{"class":784},[731,1315,1184],{"class":741},[731,1317,1262],{"class":836},[731,1319,839],{"class":784},[731,1321,738],{"class":836},[731,1323,839],{"class":784},[731,1325,861],{"class":741},[731,1327,864],{"class":848},[731,1329,742],{"class":741},[731,1331,757],{"class":756},[731,1333,788],{"class":741},[731,1335,1281],{"class":784},[721,1337,1339],{"className":723,"code":1338,"filename":280,"language":725,"meta":1227,"style":727},"import { evlog } from 'evlog\u002Ffastify'\n\nawait app.register(evlog, { redact: true })\n",[620,1340,1341,1360,1364],{"__ignoreMap":727},[731,1342,1343,1345,1347,1349,1351,1353,1355,1358],{"class":733,"line":734},[731,1344,778],{"class":777},[731,1346,781],{"class":741},[731,1348,1152],{"class":784},[731,1350,788],{"class":741},[731,1352,791],{"class":777},[731,1354,794],{"class":741},[731,1356,1357],{"class":797},"evlog\u002Ffastify",[731,1359,801],{"class":741},[731,1361,1362],{"class":733,"line":748},[731,1363,824],{"emptyLinePlaceholder":823},[731,1365,1366,1369,1372,1374,1377,1380,1382,1384,1386,1388,1390,1392],{"class":733,"line":763},[731,1367,1368],{"class":777},"await",[731,1370,1371],{"class":784}," app",[731,1373,1184],{"class":741},[731,1375,1376],{"class":836},"register",[731,1378,1379],{"class":784},"(evlog",[731,1381,930],{"class":741},[731,1383,781],{"class":741},[731,1385,864],{"class":848},[731,1387,742],{"class":741},[731,1389,757],{"class":756},[731,1391,788],{"class":741},[731,1393,884],{"class":784},[721,1395,1397],{"className":723,"code":1396,"filename":285,"language":725,"meta":1227,"style":727},"import { evlog } from 'evlog\u002Felysia'\n\napp.use(evlog({ redact: true }))\n",[620,1398,1399,1418,1422],{"__ignoreMap":727},[731,1400,1401,1403,1405,1407,1409,1411,1413,1416],{"class":733,"line":734},[731,1402,778],{"class":777},[731,1404,781],{"class":741},[731,1406,1152],{"class":784},[731,1408,788],{"class":741},[731,1410,791],{"class":777},[731,1412,794],{"class":741},[731,1414,1415],{"class":797},"evlog\u002Felysia",[731,1417,801],{"class":741},[731,1419,1420],{"class":733,"line":748},[731,1421,824],{"emptyLinePlaceholder":823},[731,1423,1424,1426,1428,1430,1432,1434,1436,1438,1440,1442,1444,1446],{"class":733,"line":763},[731,1425,1257],{"class":784},[731,1427,1184],{"class":741},[731,1429,1262],{"class":836},[731,1431,839],{"class":784},[731,1433,738],{"class":836},[731,1435,839],{"class":784},[731,1437,861],{"class":741},[731,1439,864],{"class":848},[731,1441,742],{"class":741},[731,1443,757],{"class":756},[731,1445,788],{"class":741},[731,1447,1281],{"class":784},[721,1449,1452],{"className":723,"code":1450,"filename":265,"language":725,"meta":1451,"style":727},"import { EvlogModule } from 'evlog\u002Fnestjs'\n\nEvlogModule.forRoot({ redact: true })\n","src\u002Fapp.module.ts",[620,1453,1454,1474,1478],{"__ignoreMap":727},[731,1455,1456,1458,1460,1463,1465,1467,1469,1472],{"class":733,"line":734},[731,1457,778],{"class":777},[731,1459,781],{"class":741},[731,1461,1462],{"class":784}," EvlogModule",[731,1464,788],{"class":741},[731,1466,791],{"class":777},[731,1468,794],{"class":741},[731,1470,1471],{"class":797},"evlog\u002Fnestjs",[731,1473,801],{"class":741},[731,1475,1476],{"class":733,"line":748},[731,1477,824],{"emptyLinePlaceholder":823},[731,1479,1480,1483,1485,1488,1490,1492,1494,1496,1498,1500],{"class":733,"line":763},[731,1481,1482],{"class":784},"EvlogModule",[731,1484,1184],{"class":741},[731,1486,1487],{"class":836},"forRoot",[731,1489,839],{"class":784},[731,1491,861],{"class":741},[731,1493,864],{"class":848},[731,1495,742],{"class":741},[731,1497,757],{"class":756},[731,1499,788],{"class":741},[731,1501,884],{"class":784},[721,1503,1506],{"className":723,"code":1504,"filename":309,"language":725,"meta":1505,"style":727},"import { withEvlog } from 'evlog\u002Forpc'\n\nconst handler = withEvlog(new RPCHandler(router), { redact: true })\n","server\u002Forpc.ts",[620,1507,1508,1527,1531],{"__ignoreMap":727},[731,1509,1510,1512,1514,1516,1518,1520,1522,1525],{"class":733,"line":734},[731,1511,778],{"class":777},[731,1513,781],{"class":741},[731,1515,927],{"class":784},[731,1517,788],{"class":741},[731,1519,791],{"class":777},[731,1521,794],{"class":741},[731,1523,1524],{"class":797},"evlog\u002Forpc",[731,1526,801],{"class":741},[731,1528,1529],{"class":733,"line":748},[731,1530,824],{"emptyLinePlaceholder":823},[731,1532,1533,1536,1539,1541,1543,1545,1548,1551,1554,1556,1558,1560,1562,1564,1566],{"class":733,"line":763},[731,1534,1535],{"class":921},"const",[731,1537,1538],{"class":784}," handler ",[731,1540,1193],{"class":741},[731,1542,927],{"class":836},[731,1544,839],{"class":784},[731,1546,1547],{"class":741},"new",[731,1549,1550],{"class":836}," RPCHandler",[731,1552,1553],{"class":784},"(router)",[731,1555,930],{"class":741},[731,1557,781],{"class":741},[731,1559,864],{"class":848},[731,1561,742],{"class":741},[731,1563,757],{"class":756},[731,1565,788],{"class":741},[731,1567,884],{"class":784},[721,1569,1572],{"className":723,"code":1570,"filename":295,"language":725,"meta":1571,"style":727},"import { withEvlog } from 'evlog\u002Fworkers'\n\nexport default withEvlog(handler, { redact: true })\n","src\u002Fworker.ts",[620,1573,1574,1593,1597],{"__ignoreMap":727},[731,1575,1576,1578,1580,1582,1584,1586,1588,1591],{"class":733,"line":734},[731,1577,778],{"class":777},[731,1579,781],{"class":741},[731,1581,927],{"class":784},[731,1583,788],{"class":741},[731,1585,791],{"class":777},[731,1587,794],{"class":741},[731,1589,1590],{"class":797},"evlog\u002Fworkers",[731,1592,801],{"class":741},[731,1594,1595],{"class":733,"line":748},[731,1596,824],{"emptyLinePlaceholder":823},[731,1598,1599,1601,1603,1605,1608,1610,1612,1614,1616,1618,1620],{"class":733,"line":763},[731,1600,830],{"class":777},[731,1602,833],{"class":777},[731,1604,927],{"class":836},[731,1606,1607],{"class":784},"(handler",[731,1609,930],{"class":741},[731,1611,781],{"class":741},[731,1613,864],{"class":848},[731,1615,742],{"class":741},[731,1617,757],{"class":756},[731,1619,788],{"class":741},[731,1621,884],{"class":784},[721,1623,1625],{"className":723,"code":1624,"filename":300,"language":725,"meta":1227,"style":727},"import { initLogger } from 'evlog'\n\ninitLogger({ redact: true })\n",[620,1626,1627,1646,1650],{"__ignoreMap":727},[731,1628,1629,1631,1633,1636,1638,1640,1642,1644],{"class":733,"line":734},[731,1630,778],{"class":777},[731,1632,781],{"class":741},[731,1634,1635],{"class":784}," initLogger",[731,1637,788],{"class":741},[731,1639,791],{"class":777},[731,1641,794],{"class":741},[731,1643,738],{"class":797},[731,1645,801],{"class":741},[731,1647,1648],{"class":733,"line":748},[731,1649,824],{"emptyLinePlaceholder":823},[731,1651,1652,1655,1657,1659,1661,1663,1665,1667],{"class":733,"line":763},[731,1653,1654],{"class":836},"initLogger",[731,1656,839],{"class":784},[731,1658,861],{"class":741},[731,1660,864],{"class":848},[731,1662,742],{"class":741},[731,1664,757],{"class":756},[731,1666,788],{"class":741},[731,1668,884],{"class":784},[608,1670,1671,1672,1675,1676,1679,1680,1683],{},"This masks credit cards (",[620,1673,1674],{},"****1111","), emails (",[620,1677,1678],{},"a***@***.com","), IPs, phone numbers, JWTs, Bearer tokens, and IBANs in every wide event, before console output and before any drain. See ",[1681,1682,71],"a",{"href":72}," for the full configuration reference.",[707,1685,1687,1688,1691],{"color":1686,"icon":388},"success","Auto-redaction is a safety net, not a replacement for careful logging. Always prefer explicit field selection and combine with ",[620,1689,1690],{},"redact: true"," for defense in depth.",[612,1693,1695],{"id":1694},"sanitize-before-the-field-is-set","Sanitize before the field is set",[1697,1698,1700],"h3",{"id":1699},"manual-field-selection","Manual Field Selection",[608,1702,1703],{},"The safest approach is to explicitly select which fields to log:",[718,1705,1706,1927,2130,2359,2574],{},[721,1707,1710],{"className":723,"code":1708,"filename":240,"language":725,"meta":1709,"style":727},"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",[620,1711,1712,1730,1734,1762,1779,1783,1804,1809,1816,1822,1827,1833,1848,1858,1875,1900,1906,1912,1920],{"__ignoreMap":727},[731,1713,1714,1716,1718,1720,1722,1724,1726,1728],{"class":733,"line":734},[731,1715,778],{"class":777},[731,1717,781],{"class":741},[731,1719,933],{"class":784},[731,1721,788],{"class":741},[731,1723,791],{"class":777},[731,1725,794],{"class":741},[731,1727,738],{"class":797},[731,1729,801],{"class":741},[731,1731,1732],{"class":733,"line":748},[731,1733,824],{"emptyLinePlaceholder":823},[731,1735,1736,1738,1740,1743,1745,1748,1751,1755,1757,1760],{"class":733,"line":763},[731,1737,830],{"class":777},[731,1739,833],{"class":777},[731,1741,1742],{"class":836}," defineEventHandler",[731,1744,839],{"class":784},[731,1746,1747],{"class":921},"async",[731,1749,1750],{"class":741}," (",[731,1752,1754],{"class":1753},"sHdIc","event",[731,1756,1216],{"class":741},[731,1758,1759],{"class":921}," =>",[731,1761,745],{"class":741},[731,1763,1764,1767,1769,1771,1773,1775,1777],{"class":733,"line":827},[731,1765,1766],{"class":921},"  const",[731,1768,938],{"class":784},[731,1770,948],{"class":741},[731,1772,933],{"class":836},[731,1774,839],{"class":848},[731,1776,1754],{"class":784},[731,1778,884],{"class":848},[731,1780,1781],{"class":733,"line":845},[731,1782,824],{"emptyLinePlaceholder":823},[731,1784,1785,1787,1790,1792,1795,1798,1800,1802],{"class":733,"line":878},[731,1786,1766],{"class":921},[731,1788,1789],{"class":784}," body",[731,1791,948],{"class":741},[731,1793,1794],{"class":777}," await",[731,1796,1797],{"class":836}," readBody",[731,1799,839],{"class":848},[731,1801,1754],{"class":784},[731,1803,884],{"class":848},[731,1805,1807],{"class":733,"line":1806},7,[731,1808,824],{"emptyLinePlaceholder":823},[731,1810,1812],{"class":733,"line":1811},8,[731,1813,1815],{"class":1814},"sHwdD","  \u002F\u002F ❌ NEVER log the entire request body\n",[731,1817,1819],{"class":733,"line":1818},9,[731,1820,1821],{"class":1814},"  \u002F\u002F log.set({ body })\n",[731,1823,1825],{"class":733,"line":1824},10,[731,1826,824],{"emptyLinePlaceholder":823},[731,1828,1830],{"class":733,"line":1829},11,[731,1831,1832],{"class":1814},"  \u002F\u002F ✅ Explicitly select safe fields\n",[731,1834,1836,1839,1841,1844,1846],{"class":733,"line":1835},12,[731,1837,1838],{"class":784},"  log",[731,1840,1184],{"class":741},[731,1842,1843],{"class":836},"set",[731,1845,839],{"class":848},[731,1847,842],{"class":741},[731,1849,1851,1854,1856],{"class":733,"line":1850},13,[731,1852,1853],{"class":848},"    user",[731,1855,742],{"class":741},[731,1857,745],{"class":741},[731,1859,1861,1864,1866,1868,1870,1873],{"class":733,"line":1860},14,[731,1862,1863],{"class":848},"      id",[731,1865,742],{"class":741},[731,1867,1789],{"class":784},[731,1869,1184],{"class":741},[731,1871,1872],{"class":784},"id",[731,1874,760],{"class":741},[731,1876,1878,1881,1883,1886,1888,1891,1893,1896,1898],{"class":733,"line":1877},15,[731,1879,1880],{"class":848},"      email",[731,1882,742],{"class":741},[731,1884,1885],{"class":836}," maskEmail",[731,1887,839],{"class":848},[731,1889,1890],{"class":784},"body",[731,1892,1184],{"class":741},[731,1894,1895],{"class":784},"email",[731,1897,1216],{"class":848},[731,1899,760],{"class":741},[731,1901,1903],{"class":733,"line":1902},16,[731,1904,1905],{"class":1814},"      \u002F\u002F password: body.password ← NEVER include\n",[731,1907,1909],{"class":733,"line":1908},17,[731,1910,1911],{"class":741},"    },\n",[731,1913,1915,1918],{"class":733,"line":1914},18,[731,1916,1917],{"class":741},"  }",[731,1919,884],{"class":848},[731,1921,1923,1925],{"class":733,"line":1922},19,[731,1924,881],{"class":741},[731,1926,884],{"class":784},[721,1928,1931],{"className":723,"code":1929,"filename":255,"language":725,"meta":1930,"style":727},"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",[620,1932,1933,1953,1971,1975,1997,2013,2017,2035,2039,2043,2047,2051,2055,2067,2075,2089,2109,2113,2117,2123],{"__ignoreMap":727},[731,1934,1935,1937,1939,1942,1944,1946,1948,1951],{"class":733,"line":734},[731,1936,778],{"class":777},[731,1938,781],{"class":741},[731,1940,1941],{"class":784}," defineHandler",[731,1943,788],{"class":741},[731,1945,791],{"class":777},[731,1947,794],{"class":741},[731,1949,1950],{"class":797},"nitro\u002Fh3",[731,1952,801],{"class":741},[731,1954,1955,1957,1959,1961,1963,1965,1967,1969],{"class":733,"line":748},[731,1956,778],{"class":777},[731,1958,781],{"class":741},[731,1960,933],{"class":784},[731,1962,788],{"class":741},[731,1964,791],{"class":777},[731,1966,794],{"class":741},[731,1968,816],{"class":797},[731,1970,801],{"class":741},[731,1972,1973],{"class":733,"line":763},[731,1974,824],{"emptyLinePlaceholder":823},[731,1976,1977,1979,1981,1983,1985,1987,1989,1991,1993,1995],{"class":733,"line":827},[731,1978,830],{"class":777},[731,1980,833],{"class":777},[731,1982,1941],{"class":836},[731,1984,839],{"class":784},[731,1986,1747],{"class":921},[731,1988,1750],{"class":741},[731,1990,1754],{"class":1753},[731,1992,1216],{"class":741},[731,1994,1759],{"class":921},[731,1996,745],{"class":741},[731,1998,1999,2001,2003,2005,2007,2009,2011],{"class":733,"line":845},[731,2000,1766],{"class":921},[731,2002,938],{"class":784},[731,2004,948],{"class":741},[731,2006,933],{"class":836},[731,2008,839],{"class":848},[731,2010,1754],{"class":784},[731,2012,884],{"class":848},[731,2014,2015],{"class":733,"line":878},[731,2016,824],{"emptyLinePlaceholder":823},[731,2018,2019,2021,2023,2025,2027,2029,2031,2033],{"class":733,"line":1806},[731,2020,1766],{"class":921},[731,2022,1789],{"class":784},[731,2024,948],{"class":741},[731,2026,1794],{"class":777},[731,2028,1797],{"class":836},[731,2030,839],{"class":848},[731,2032,1754],{"class":784},[731,2034,884],{"class":848},[731,2036,2037],{"class":733,"line":1811},[731,2038,824],{"emptyLinePlaceholder":823},[731,2040,2041],{"class":733,"line":1818},[731,2042,1815],{"class":1814},[731,2044,2045],{"class":733,"line":1824},[731,2046,1821],{"class":1814},[731,2048,2049],{"class":733,"line":1829},[731,2050,824],{"emptyLinePlaceholder":823},[731,2052,2053],{"class":733,"line":1835},[731,2054,1832],{"class":1814},[731,2056,2057,2059,2061,2063,2065],{"class":733,"line":1850},[731,2058,1838],{"class":784},[731,2060,1184],{"class":741},[731,2062,1843],{"class":836},[731,2064,839],{"class":848},[731,2066,842],{"class":741},[731,2068,2069,2071,2073],{"class":733,"line":1860},[731,2070,1853],{"class":848},[731,2072,742],{"class":741},[731,2074,745],{"class":741},[731,2076,2077,2079,2081,2083,2085,2087],{"class":733,"line":1877},[731,2078,1863],{"class":848},[731,2080,742],{"class":741},[731,2082,1789],{"class":784},[731,2084,1184],{"class":741},[731,2086,1872],{"class":784},[731,2088,760],{"class":741},[731,2090,2091,2093,2095,2097,2099,2101,2103,2105,2107],{"class":733,"line":1902},[731,2092,1880],{"class":848},[731,2094,742],{"class":741},[731,2096,1885],{"class":836},[731,2098,839],{"class":848},[731,2100,1890],{"class":784},[731,2102,1184],{"class":741},[731,2104,1895],{"class":784},[731,2106,1216],{"class":848},[731,2108,760],{"class":741},[731,2110,2111],{"class":733,"line":1908},[731,2112,1905],{"class":1814},[731,2114,2115],{"class":733,"line":1914},[731,2116,1911],{"class":741},[731,2118,2119,2121],{"class":733,"line":1922},[731,2120,1917],{"class":741},[731,2122,884],{"class":848},[731,2124,2126,2128],{"class":733,"line":2125},20,[731,2127,881],{"class":741},[731,2129,884],{"class":784},[721,2131,2134],{"className":723,"code":2132,"filename":245,"language":725,"meta":2133,"style":727},"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",[620,2135,2136,2159,2163,2196,2209,2213,2233,2237,2241,2245,2249,2253,2265,2273,2287,2307,2311,2315,2321,2325,2352],{"__ignoreMap":727},[731,2137,2138,2140,2142,2144,2146,2148,2150,2152,2154,2157],{"class":733,"line":734},[731,2139,778],{"class":777},[731,2141,781],{"class":741},[731,2143,927],{"class":784},[731,2145,930],{"class":741},[731,2147,933],{"class":784},[731,2149,788],{"class":741},[731,2151,791],{"class":777},[731,2153,794],{"class":741},[731,2155,2156],{"class":797},"@\u002Flib\u002Fevlog",[731,2158,801],{"class":741},[731,2160,2161],{"class":733,"line":748},[731,2162,824],{"emptyLinePlaceholder":823},[731,2164,2165,2167,2169,2172,2174,2176,2178,2180,2182,2185,2187,2190,2192,2194],{"class":733,"line":763},[731,2166,830],{"class":777},[731,2168,922],{"class":921},[731,2170,2171],{"class":784}," POST ",[731,2173,1193],{"class":741},[731,2175,927],{"class":836},[731,2177,839],{"class":784},[731,2179,1747],{"class":921},[731,2181,1750],{"class":741},[731,2183,2184],{"class":1753},"request",[731,2186,742],{"class":741},[731,2188,2189],{"class":737}," Request",[731,2191,1216],{"class":741},[731,2193,1759],{"class":921},[731,2195,745],{"class":741},[731,2197,2198,2200,2202,2204,2206],{"class":733,"line":827},[731,2199,1766],{"class":921},[731,2201,938],{"class":784},[731,2203,948],{"class":741},[731,2205,933],{"class":836},[731,2207,2208],{"class":848},"()\n",[731,2210,2211],{"class":733,"line":845},[731,2212,824],{"emptyLinePlaceholder":823},[731,2214,2215,2217,2219,2221,2223,2226,2228,2231],{"class":733,"line":878},[731,2216,1766],{"class":921},[731,2218,1789],{"class":784},[731,2220,948],{"class":741},[731,2222,1794],{"class":777},[731,2224,2225],{"class":784}," request",[731,2227,1184],{"class":741},[731,2229,2230],{"class":836},"json",[731,2232,2208],{"class":848},[731,2234,2235],{"class":733,"line":1806},[731,2236,824],{"emptyLinePlaceholder":823},[731,2238,2239],{"class":733,"line":1811},[731,2240,1815],{"class":1814},[731,2242,2243],{"class":733,"line":1818},[731,2244,1821],{"class":1814},[731,2246,2247],{"class":733,"line":1824},[731,2248,824],{"emptyLinePlaceholder":823},[731,2250,2251],{"class":733,"line":1829},[731,2252,1832],{"class":1814},[731,2254,2255,2257,2259,2261,2263],{"class":733,"line":1835},[731,2256,1838],{"class":784},[731,2258,1184],{"class":741},[731,2260,1843],{"class":836},[731,2262,839],{"class":848},[731,2264,842],{"class":741},[731,2266,2267,2269,2271],{"class":733,"line":1850},[731,2268,1853],{"class":848},[731,2270,742],{"class":741},[731,2272,745],{"class":741},[731,2274,2275,2277,2279,2281,2283,2285],{"class":733,"line":1860},[731,2276,1863],{"class":848},[731,2278,742],{"class":741},[731,2280,1789],{"class":784},[731,2282,1184],{"class":741},[731,2284,1872],{"class":784},[731,2286,760],{"class":741},[731,2288,2289,2291,2293,2295,2297,2299,2301,2303,2305],{"class":733,"line":1877},[731,2290,1880],{"class":848},[731,2292,742],{"class":741},[731,2294,1885],{"class":836},[731,2296,839],{"class":848},[731,2298,1890],{"class":784},[731,2300,1184],{"class":741},[731,2302,1895],{"class":784},[731,2304,1216],{"class":848},[731,2306,760],{"class":741},[731,2308,2309],{"class":733,"line":1902},[731,2310,1905],{"class":1814},[731,2312,2313],{"class":733,"line":1908},[731,2314,1911],{"class":741},[731,2316,2317,2319],{"class":733,"line":1914},[731,2318,1917],{"class":741},[731,2320,884],{"class":848},[731,2322,2323],{"class":733,"line":1922},[731,2324,824],{"emptyLinePlaceholder":823},[731,2326,2327,2330,2333,2335,2337,2339,2341,2344,2346,2348,2350],{"class":733,"line":2125},[731,2328,2329],{"class":777},"  return",[731,2331,2332],{"class":784}," Response",[731,2334,1184],{"class":741},[731,2336,2230],{"class":836},[731,2338,839],{"class":848},[731,2340,861],{"class":741},[731,2342,2343],{"class":848}," ok",[731,2345,742],{"class":741},[731,2347,757],{"class":756},[731,2349,788],{"class":741},[731,2351,884],{"class":848},[731,2353,2355,2357],{"class":733,"line":2354},21,[731,2356,881],{"class":741},[731,2358,884],{"class":784},[721,2360,2362],{"className":723,"code":2361,"filename":275,"language":725,"meta":1227,"style":727},"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",[620,2363,2364,2398,2425,2429,2452,2456,2460,2464,2468,2472,2484,2492,2506,2526,2530,2534,2540,2544,2568],{"__ignoreMap":727},[731,2365,2366,2368,2370,2373,2375,2377,2380,2382,2384,2387,2389,2392,2394,2396],{"class":733,"line":734},[731,2367,1257],{"class":784},[731,2369,1184],{"class":741},[731,2371,2372],{"class":836},"post",[731,2374,839],{"class":784},[731,2376,969],{"class":741},[731,2378,2379],{"class":797},"\u002Fapi\u002Fuser\u002Fupdate",[731,2381,969],{"class":741},[731,2383,930],{"class":741},[731,2385,2386],{"class":921}," async",[731,2388,1750],{"class":741},[731,2390,2391],{"class":1753},"c",[731,2393,1216],{"class":741},[731,2395,1759],{"class":921},[731,2397,745],{"class":741},[731,2399,2400,2402,2404,2406,2409,2411,2414,2416,2418,2421,2423],{"class":733,"line":748},[731,2401,1766],{"class":921},[731,2403,938],{"class":784},[731,2405,948],{"class":741},[731,2407,2408],{"class":784}," c",[731,2410,1184],{"class":741},[731,2412,2413],{"class":836},"get",[731,2415,839],{"class":848},[731,2417,969],{"class":741},[731,2419,2420],{"class":797},"log",[731,2422,969],{"class":741},[731,2424,884],{"class":848},[731,2426,2427],{"class":733,"line":763},[731,2428,824],{"emptyLinePlaceholder":823},[731,2430,2431,2433,2435,2437,2439,2441,2443,2446,2448,2450],{"class":733,"line":827},[731,2432,1766],{"class":921},[731,2434,1789],{"class":784},[731,2436,948],{"class":741},[731,2438,1794],{"class":777},[731,2440,2408],{"class":784},[731,2442,1184],{"class":741},[731,2444,2445],{"class":784},"req",[731,2447,1184],{"class":741},[731,2449,2230],{"class":836},[731,2451,2208],{"class":848},[731,2453,2454],{"class":733,"line":845},[731,2455,824],{"emptyLinePlaceholder":823},[731,2457,2458],{"class":733,"line":878},[731,2459,1815],{"class":1814},[731,2461,2462],{"class":733,"line":1806},[731,2463,1821],{"class":1814},[731,2465,2466],{"class":733,"line":1811},[731,2467,824],{"emptyLinePlaceholder":823},[731,2469,2470],{"class":733,"line":1818},[731,2471,1832],{"class":1814},[731,2473,2474,2476,2478,2480,2482],{"class":733,"line":1824},[731,2475,1838],{"class":784},[731,2477,1184],{"class":741},[731,2479,1843],{"class":836},[731,2481,839],{"class":848},[731,2483,842],{"class":741},[731,2485,2486,2488,2490],{"class":733,"line":1829},[731,2487,1853],{"class":848},[731,2489,742],{"class":741},[731,2491,745],{"class":741},[731,2493,2494,2496,2498,2500,2502,2504],{"class":733,"line":1835},[731,2495,1863],{"class":848},[731,2497,742],{"class":741},[731,2499,1789],{"class":784},[731,2501,1184],{"class":741},[731,2503,1872],{"class":784},[731,2505,760],{"class":741},[731,2507,2508,2510,2512,2514,2516,2518,2520,2522,2524],{"class":733,"line":1850},[731,2509,1880],{"class":848},[731,2511,742],{"class":741},[731,2513,1885],{"class":836},[731,2515,839],{"class":848},[731,2517,1890],{"class":784},[731,2519,1184],{"class":741},[731,2521,1895],{"class":784},[731,2523,1216],{"class":848},[731,2525,760],{"class":741},[731,2527,2528],{"class":733,"line":1860},[731,2529,1905],{"class":1814},[731,2531,2532],{"class":733,"line":1877},[731,2533,1911],{"class":741},[731,2535,2536,2538],{"class":733,"line":1902},[731,2537,1917],{"class":741},[731,2539,884],{"class":848},[731,2541,2542],{"class":733,"line":1908},[731,2543,824],{"emptyLinePlaceholder":823},[731,2545,2546,2548,2550,2552,2554,2556,2558,2560,2562,2564,2566],{"class":733,"line":1914},[731,2547,2329],{"class":777},[731,2549,2408],{"class":784},[731,2551,1184],{"class":741},[731,2553,2230],{"class":836},[731,2555,839],{"class":848},[731,2557,861],{"class":741},[731,2559,2343],{"class":848},[731,2561,742],{"class":741},[731,2563,757],{"class":756},[731,2565,788],{"class":741},[731,2567,884],{"class":848},[731,2569,2570,2572],{"class":733,"line":1922},[731,2571,881],{"class":741},[731,2573,884],{"class":784},[721,2575,2577],{"className":723,"code":2576,"filename":270,"language":725,"meta":1227,"style":727},"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",[620,2578,2579,2614,2630,2634,2649,2653,2657,2661,2665,2669,2681,2689,2703,2723,2727,2731,2737,2741,2764],{"__ignoreMap":727},[731,2580,2581,2583,2585,2587,2589,2591,2593,2595,2597,2599,2601,2603,2605,2608,2610,2612],{"class":733,"line":734},[731,2582,1257],{"class":784},[731,2584,1184],{"class":741},[731,2586,2372],{"class":836},[731,2588,839],{"class":784},[731,2590,969],{"class":741},[731,2592,2379],{"class":797},[731,2594,969],{"class":741},[731,2596,930],{"class":741},[731,2598,2386],{"class":921},[731,2600,1750],{"class":741},[731,2602,2445],{"class":1753},[731,2604,930],{"class":741},[731,2606,2607],{"class":1753}," res",[731,2609,1216],{"class":741},[731,2611,1759],{"class":921},[731,2613,745],{"class":741},[731,2615,2616,2618,2620,2622,2625,2627],{"class":733,"line":748},[731,2617,1766],{"class":921},[731,2619,938],{"class":784},[731,2621,948],{"class":741},[731,2623,2624],{"class":784}," req",[731,2626,1184],{"class":741},[731,2628,2629],{"class":784},"log\n",[731,2631,2632],{"class":733,"line":763},[731,2633,824],{"emptyLinePlaceholder":823},[731,2635,2636,2638,2640,2642,2644,2646],{"class":733,"line":827},[731,2637,1766],{"class":921},[731,2639,1789],{"class":784},[731,2641,948],{"class":741},[731,2643,2624],{"class":784},[731,2645,1184],{"class":741},[731,2647,2648],{"class":784},"body\n",[731,2650,2651],{"class":733,"line":845},[731,2652,824],{"emptyLinePlaceholder":823},[731,2654,2655],{"class":733,"line":878},[731,2656,1815],{"class":1814},[731,2658,2659],{"class":733,"line":1806},[731,2660,1821],{"class":1814},[731,2662,2663],{"class":733,"line":1811},[731,2664,824],{"emptyLinePlaceholder":823},[731,2666,2667],{"class":733,"line":1818},[731,2668,1832],{"class":1814},[731,2670,2671,2673,2675,2677,2679],{"class":733,"line":1824},[731,2672,1838],{"class":784},[731,2674,1184],{"class":741},[731,2676,1843],{"class":836},[731,2678,839],{"class":848},[731,2680,842],{"class":741},[731,2682,2683,2685,2687],{"class":733,"line":1829},[731,2684,1853],{"class":848},[731,2686,742],{"class":741},[731,2688,745],{"class":741},[731,2690,2691,2693,2695,2697,2699,2701],{"class":733,"line":1835},[731,2692,1863],{"class":848},[731,2694,742],{"class":741},[731,2696,1789],{"class":784},[731,2698,1184],{"class":741},[731,2700,1872],{"class":784},[731,2702,760],{"class":741},[731,2704,2705,2707,2709,2711,2713,2715,2717,2719,2721],{"class":733,"line":1850},[731,2706,1880],{"class":848},[731,2708,742],{"class":741},[731,2710,1885],{"class":836},[731,2712,839],{"class":848},[731,2714,1890],{"class":784},[731,2716,1184],{"class":741},[731,2718,1895],{"class":784},[731,2720,1216],{"class":848},[731,2722,760],{"class":741},[731,2724,2725],{"class":733,"line":1860},[731,2726,1905],{"class":1814},[731,2728,2729],{"class":733,"line":1877},[731,2730,1911],{"class":741},[731,2732,2733,2735],{"class":733,"line":1902},[731,2734,1917],{"class":741},[731,2736,884],{"class":848},[731,2738,2739],{"class":733,"line":1908},[731,2740,824],{"emptyLinePlaceholder":823},[731,2742,2743,2746,2748,2750,2752,2754,2756,2758,2760,2762],{"class":733,"line":1914},[731,2744,2745],{"class":784},"  res",[731,2747,1184],{"class":741},[731,2749,2230],{"class":836},[731,2751,839],{"class":848},[731,2753,861],{"class":741},[731,2755,2343],{"class":848},[731,2757,742],{"class":741},[731,2759,757],{"class":756},[731,2761,788],{"class":741},[731,2763,884],{"class":848},[731,2765,2766,2768],{"class":733,"line":1922},[731,2767,881],{"class":741},[731,2769,884],{"class":784},[1697,2771,2773],{"id":2772},"helper-functions","Helper Functions",[608,2775,2776],{},"Create utility functions to sanitize common data types:",[2778,2779,2780],"code-collapse",{},[721,2781,2784],{"className":723,"code":2782,"filename":2783,"language":725,"meta":727,"style":727},"\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",[620,2785,2786,2801,2826,2863,2889,2923,2967,2971,2975,2980,3004,3035,3039,3043,3048,3081,3106,3135,3139,3143,3148,3182,3195,3256,3273,3294,3317,3337,3352,3358,3364,3372],{"__ignoreMap":727},[731,2787,2788,2791,2794,2798],{"class":733,"line":734},[731,2789,2790],{"class":1814},"\u002F** Masks email: john.doe",[731,2792,2793],{"class":777},"@",[731,2795,2797],{"class":2796},"s6hCs","example",[731,2799,2800],{"class":1814},".com → j***.d**@e***.com *\u002F\n",[731,2802,2803,2805,2808,2810,2812,2814,2816,2819,2822,2824],{"class":733,"line":748},[731,2804,830],{"class":777},[731,2806,2807],{"class":921}," function",[731,2809,1885],{"class":836},[731,2811,839],{"class":741},[731,2813,1895],{"class":1753},[731,2815,742],{"class":741},[731,2817,2818],{"class":737}," string",[731,2820,2821],{"class":741},"):",[731,2823,2818],{"class":737},[731,2825,745],{"class":741},[731,2827,2828,2830,2832,2835,2837,2840,2843,2845,2848,2850,2853,2855,2857,2859,2861],{"class":733,"line":763},[731,2829,1766],{"class":921},[731,2831,854],{"class":741},[731,2833,2834],{"class":784},"local",[731,2836,930],{"class":741},[731,2838,2839],{"class":784}," domain",[731,2841,2842],{"class":741},"]",[731,2844,948],{"class":741},[731,2846,2847],{"class":784}," email",[731,2849,1184],{"class":741},[731,2851,2852],{"class":836},"split",[731,2854,839],{"class":848},[731,2856,969],{"class":741},[731,2858,2793],{"class":797},[731,2860,969],{"class":741},[731,2862,884],{"class":848},[731,2864,2865,2868,2870,2873,2876,2879,2882,2884,2887],{"class":733,"line":827},[731,2866,2867],{"class":777},"  if",[731,2869,1750],{"class":848},[731,2871,2872],{"class":741},"!",[731,2874,2875],{"class":784},"domain",[731,2877,2878],{"class":848},") ",[731,2880,2881],{"class":777},"return",[731,2883,794],{"class":741},[731,2885,2886],{"class":797},"***",[731,2888,801],{"class":741},[731,2890,2891,2893,2895,2898,2900,2903,2905,2907,2909,2911,2913,2915,2917,2919,2921],{"class":733,"line":845},[731,2892,1766],{"class":921},[731,2894,854],{"class":741},[731,2896,2897],{"class":784},"domainName",[731,2899,930],{"class":741},[731,2901,2902],{"class":784}," tld",[731,2904,2842],{"class":741},[731,2906,948],{"class":741},[731,2908,2839],{"class":784},[731,2910,1184],{"class":741},[731,2912,2852],{"class":836},[731,2914,839],{"class":848},[731,2916,969],{"class":741},[731,2918,1184],{"class":797},[731,2920,969],{"class":741},[731,2922,884],{"class":848},[731,2924,2925,2927,2930,2933,2937,2939,2941,2944,2947,2950,2952,2954,2956,2959,2961,2964],{"class":733,"line":878},[731,2926,2329],{"class":777},[731,2928,2929],{"class":741}," `${",[731,2931,2932],{"class":784},"local[",[731,2934,2936],{"class":2935},"sbssI","0",[731,2938,2842],{"class":784},[731,2940,881],{"class":741},[731,2942,2943],{"class":797},"***@",[731,2945,2946],{"class":741},"${",[731,2948,2949],{"class":784},"domainName[",[731,2951,2936],{"class":2935},[731,2953,2842],{"class":784},[731,2955,881],{"class":741},[731,2957,2958],{"class":797},"***.",[731,2960,2946],{"class":741},[731,2962,2963],{"class":784},"tld",[731,2965,2966],{"class":741},"}`\n",[731,2968,2969],{"class":733,"line":1806},[731,2970,766],{"class":741},[731,2972,2973],{"class":733,"line":1811},[731,2974,824],{"emptyLinePlaceholder":823},[731,2976,2977],{"class":733,"line":1818},[731,2978,2979],{"class":1814},"\u002F** Masks card number: 4242424242424242 → ****4242 *\u002F\n",[731,2981,2982,2984,2986,2989,2991,2994,2996,2998,3000,3002],{"class":733,"line":1824},[731,2983,830],{"class":777},[731,2985,2807],{"class":921},[731,2987,2988],{"class":836}," maskCard",[731,2990,839],{"class":741},[731,2992,2993],{"class":1753},"card",[731,2995,742],{"class":741},[731,2997,2818],{"class":737},[731,2999,2821],{"class":741},[731,3001,2818],{"class":737},[731,3003,745],{"class":741},[731,3005,3006,3008,3011,3014,3016,3018,3020,3023,3025,3028,3031,3033],{"class":733,"line":1829},[731,3007,2329],{"class":777},[731,3009,3010],{"class":741}," `",[731,3012,3013],{"class":797},"****",[731,3015,2946],{"class":741},[731,3017,2993],{"class":784},[731,3019,1184],{"class":741},[731,3021,3022],{"class":836},"slice",[731,3024,839],{"class":784},[731,3026,3027],{"class":741},"-",[731,3029,3030],{"class":2935},"4",[731,3032,1216],{"class":784},[731,3034,2966],{"class":741},[731,3036,3037],{"class":733,"line":1835},[731,3038,766],{"class":741},[731,3040,3041],{"class":733,"line":1850},[731,3042,824],{"emptyLinePlaceholder":823},[731,3044,3045],{"class":733,"line":1860},[731,3046,3047],{"class":1814},"\u002F** Truncates long IDs for readability *\u002F\n",[731,3049,3050,3052,3054,3057,3059,3061,3063,3065,3067,3070,3072,3075,3077,3079],{"class":733,"line":1877},[731,3051,830],{"class":777},[731,3053,2807],{"class":921},[731,3055,3056],{"class":836}," truncateId",[731,3058,839],{"class":741},[731,3060,1872],{"class":1753},[731,3062,742],{"class":741},[731,3064,2818],{"class":737},[731,3066,930],{"class":741},[731,3068,3069],{"class":1753}," length",[731,3071,948],{"class":741},[731,3073,3074],{"class":2935}," 8",[731,3076,2821],{"class":741},[731,3078,2818],{"class":737},[731,3080,745],{"class":741},[731,3082,3083,3085,3087,3089,3091,3094,3097,3099,3101,3103],{"class":733,"line":1902},[731,3084,2867],{"class":777},[731,3086,1750],{"class":848},[731,3088,1872],{"class":784},[731,3090,1184],{"class":741},[731,3092,3093],{"class":784},"length",[731,3095,3096],{"class":741}," \u003C=",[731,3098,3069],{"class":784},[731,3100,2878],{"class":848},[731,3102,2881],{"class":777},[731,3104,3105],{"class":784}," id\n",[731,3107,3108,3110,3112,3114,3116,3118,3120,3122,3124,3127,3129,3132],{"class":733,"line":1908},[731,3109,2329],{"class":777},[731,3111,2929],{"class":741},[731,3113,1872],{"class":784},[731,3115,1184],{"class":741},[731,3117,3022],{"class":836},[731,3119,839],{"class":784},[731,3121,2936],{"class":2935},[731,3123,930],{"class":741},[731,3125,3126],{"class":784}," length)",[731,3128,881],{"class":741},[731,3130,3131],{"class":797},"...",[731,3133,3134],{"class":741},"`\n",[731,3136,3137],{"class":733,"line":1914},[731,3138,766],{"class":741},[731,3140,3141],{"class":733,"line":1922},[731,3142,824],{"emptyLinePlaceholder":823},[731,3144,3145],{"class":733,"line":2125},[731,3146,3147],{"class":1814},"\u002F** Removes sensitive fields from an object *\u002F\n",[731,3149,3150,3152,3154,3157,3160,3163,3166,3169,3171,3174,3176,3179],{"class":733,"line":2354},[731,3151,830],{"class":777},[731,3153,2807],{"class":921},[731,3155,3156],{"class":836}," sanitize",[731,3158,3159],{"class":741},"\u003C",[731,3161,3162],{"class":737},"T",[731,3164,3165],{"class":921}," extends",[731,3167,3168],{"class":737}," Record",[731,3170,3159],{"class":741},[731,3172,3173],{"class":737},"string",[731,3175,930],{"class":741},[731,3177,3178],{"class":737}," unknown",[731,3180,3181],{"class":741},">>(\n",[731,3183,3185,3188,3190,3193],{"class":733,"line":3184},22,[731,3186,3187],{"class":1753},"  obj",[731,3189,742],{"class":741},[731,3191,3192],{"class":737}," T",[731,3194,760],{"class":741},[731,3196,3198,3201,3203,3205,3207,3209,3211,3213,3216,3218,3220,3222,3225,3227,3229,3231,3234,3236,3238,3240,3243,3245,3247,3249,3252,3254],{"class":733,"line":3197},23,[731,3199,3200],{"class":1753},"  sensitiveKeys",[731,3202,742],{"class":741},[731,3204,2818],{"class":737},[731,3206,1190],{"class":784},[731,3208,1193],{"class":741},[731,3210,854],{"class":784},[731,3212,969],{"class":741},[731,3214,3215],{"class":797},"password",[731,3217,969],{"class":741},[731,3219,930],{"class":741},[731,3221,794],{"class":741},[731,3223,3224],{"class":797},"token",[731,3226,969],{"class":741},[731,3228,930],{"class":741},[731,3230,794],{"class":741},[731,3232,3233],{"class":797},"secret",[731,3235,969],{"class":741},[731,3237,930],{"class":741},[731,3239,794],{"class":741},[731,3241,3242],{"class":797},"apiKey",[731,3244,969],{"class":741},[731,3246,930],{"class":741},[731,3248,794],{"class":741},[731,3250,3251],{"class":797},"authorization",[731,3253,969],{"class":741},[731,3255,1223],{"class":784},[731,3257,3259,3261,3264,3266,3268,3271],{"class":733,"line":3258},24,[731,3260,2821],{"class":741},[731,3262,3263],{"class":737}," Partial",[731,3265,3159],{"class":741},[731,3267,3162],{"class":737},[731,3269,3270],{"class":741},">",[731,3272,745],{"class":741},[731,3274,3276,3278,3281,3283,3285,3288,3291],{"class":733,"line":3275},25,[731,3277,1766],{"class":921},[731,3279,3280],{"class":784}," result",[731,3282,948],{"class":741},[731,3284,781],{"class":741},[731,3286,3287],{"class":741}," ...",[731,3289,3290],{"class":784},"obj",[731,3292,3293],{"class":741}," }\n",[731,3295,3297,3300,3302,3304,3307,3310,3313,3315],{"class":733,"line":3296},26,[731,3298,3299],{"class":777},"  for",[731,3301,1750],{"class":848},[731,3303,1535],{"class":921},[731,3305,3306],{"class":784}," key",[731,3308,3309],{"class":741}," of",[731,3311,3312],{"class":784}," sensitiveKeys",[731,3314,2878],{"class":848},[731,3316,842],{"class":741},[731,3318,3320,3323,3325,3328,3331,3333,3335],{"class":733,"line":3319},27,[731,3321,3322],{"class":777},"    if",[731,3324,1750],{"class":848},[731,3326,3327],{"class":784},"key",[731,3329,3330],{"class":741}," in",[731,3332,3280],{"class":784},[731,3334,2878],{"class":848},[731,3336,842],{"class":741},[731,3338,3340,3343,3345,3348,3350],{"class":733,"line":3339},28,[731,3341,3342],{"class":741},"      delete",[731,3344,3280],{"class":784},[731,3346,3347],{"class":848},"[",[731,3349,3327],{"class":784},[731,3351,1223],{"class":848},[731,3353,3355],{"class":733,"line":3354},29,[731,3356,3357],{"class":741},"    }\n",[731,3359,3361],{"class":733,"line":3360},30,[731,3362,3363],{"class":741},"  }\n",[731,3365,3367,3369],{"class":733,"line":3366},31,[731,3368,2329],{"class":777},[731,3370,3371],{"class":784}," result\n",[731,3373,3375],{"class":733,"line":3374},32,[731,3376,766],{"class":741},[608,3378,3379],{},"Usage:",[718,3381,3382,3595,3819,4061,4293],{},[721,3383,3386],{"className":723,"code":3384,"filename":240,"language":725,"meta":3385,"style":727},"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",[620,3387,3388,3406,3410,3432,3448,3452,3480,3484,3496,3504,3518,3539,3543,3552,3574,3579,3583,3589],{"__ignoreMap":727},[731,3389,3390,3392,3394,3396,3398,3400,3402,3404],{"class":733,"line":734},[731,3391,778],{"class":777},[731,3393,781],{"class":741},[731,3395,933],{"class":784},[731,3397,788],{"class":741},[731,3399,791],{"class":777},[731,3401,794],{"class":741},[731,3403,738],{"class":797},[731,3405,801],{"class":741},[731,3407,3408],{"class":733,"line":748},[731,3409,824],{"emptyLinePlaceholder":823},[731,3411,3412,3414,3416,3418,3420,3422,3424,3426,3428,3430],{"class":733,"line":763},[731,3413,830],{"class":777},[731,3415,833],{"class":777},[731,3417,1742],{"class":836},[731,3419,839],{"class":784},[731,3421,1747],{"class":921},[731,3423,1750],{"class":741},[731,3425,1754],{"class":1753},[731,3427,1216],{"class":741},[731,3429,1759],{"class":921},[731,3431,745],{"class":741},[731,3433,3434,3436,3438,3440,3442,3444,3446],{"class":733,"line":827},[731,3435,1766],{"class":921},[731,3437,938],{"class":784},[731,3439,948],{"class":741},[731,3441,933],{"class":836},[731,3443,839],{"class":848},[731,3445,1754],{"class":784},[731,3447,884],{"class":848},[731,3449,3450],{"class":733,"line":845},[731,3451,824],{"emptyLinePlaceholder":823},[731,3453,3454,3456,3458,3461,3463,3466,3468,3470,3472,3474,3476,3478],{"class":733,"line":878},[731,3455,1766],{"class":921},[731,3457,781],{"class":741},[731,3459,3460],{"class":784}," user",[731,3462,930],{"class":741},[731,3464,3465],{"class":784}," card",[731,3467,788],{"class":741},[731,3469,948],{"class":741},[731,3471,1794],{"class":777},[731,3473,1797],{"class":836},[731,3475,839],{"class":848},[731,3477,1754],{"class":784},[731,3479,884],{"class":848},[731,3481,3482],{"class":733,"line":1806},[731,3483,824],{"emptyLinePlaceholder":823},[731,3485,3486,3488,3490,3492,3494],{"class":733,"line":1811},[731,3487,1838],{"class":784},[731,3489,1184],{"class":741},[731,3491,1843],{"class":836},[731,3493,839],{"class":848},[731,3495,842],{"class":741},[731,3497,3498,3500,3502],{"class":733,"line":1818},[731,3499,1853],{"class":848},[731,3501,742],{"class":741},[731,3503,745],{"class":741},[731,3505,3506,3508,3510,3512,3514,3516],{"class":733,"line":1824},[731,3507,1863],{"class":848},[731,3509,742],{"class":741},[731,3511,3460],{"class":784},[731,3513,1184],{"class":741},[731,3515,1872],{"class":784},[731,3517,760],{"class":741},[731,3519,3520,3522,3524,3526,3528,3531,3533,3535,3537],{"class":733,"line":1829},[731,3521,1880],{"class":848},[731,3523,742],{"class":741},[731,3525,1885],{"class":836},[731,3527,839],{"class":848},[731,3529,3530],{"class":784},"user",[731,3532,1184],{"class":741},[731,3534,1895],{"class":784},[731,3536,1216],{"class":848},[731,3538,760],{"class":741},[731,3540,3541],{"class":733,"line":1835},[731,3542,1911],{"class":741},[731,3544,3545,3548,3550],{"class":733,"line":1850},[731,3546,3547],{"class":848},"    payment",[731,3549,742],{"class":741},[731,3551,745],{"class":741},[731,3553,3554,3557,3559,3561,3563,3565,3567,3570,3572],{"class":733,"line":1860},[731,3555,3556],{"class":848},"      last4",[731,3558,742],{"class":741},[731,3560,2988],{"class":836},[731,3562,839],{"class":848},[731,3564,2993],{"class":784},[731,3566,1184],{"class":741},[731,3568,3569],{"class":784},"number",[731,3571,1216],{"class":848},[731,3573,760],{"class":741},[731,3575,3576],{"class":733,"line":1877},[731,3577,3578],{"class":1814},"      \u002F\u002F ❌ Never: number, cvv, expiry\n",[731,3580,3581],{"class":733,"line":1902},[731,3582,1911],{"class":741},[731,3584,3585,3587],{"class":733,"line":1908},[731,3586,1917],{"class":741},[731,3588,884],{"class":848},[731,3590,3591,3593],{"class":733,"line":1914},[731,3592,881],{"class":741},[731,3594,884],{"class":784},[721,3596,3599],{"className":723,"code":3597,"filename":255,"language":725,"meta":3598,"style":727},"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",[620,3600,3601,3619,3637,3641,3663,3679,3683,3709,3713,3725,3733,3747,3767,3771,3779,3799,3803,3807,3813],{"__ignoreMap":727},[731,3602,3603,3605,3607,3609,3611,3613,3615,3617],{"class":733,"line":734},[731,3604,778],{"class":777},[731,3606,781],{"class":741},[731,3608,1941],{"class":784},[731,3610,788],{"class":741},[731,3612,791],{"class":777},[731,3614,794],{"class":741},[731,3616,1950],{"class":797},[731,3618,801],{"class":741},[731,3620,3621,3623,3625,3627,3629,3631,3633,3635],{"class":733,"line":748},[731,3622,778],{"class":777},[731,3624,781],{"class":741},[731,3626,933],{"class":784},[731,3628,788],{"class":741},[731,3630,791],{"class":777},[731,3632,794],{"class":741},[731,3634,816],{"class":797},[731,3636,801],{"class":741},[731,3638,3639],{"class":733,"line":763},[731,3640,824],{"emptyLinePlaceholder":823},[731,3642,3643,3645,3647,3649,3651,3653,3655,3657,3659,3661],{"class":733,"line":827},[731,3644,830],{"class":777},[731,3646,833],{"class":777},[731,3648,1941],{"class":836},[731,3650,839],{"class":784},[731,3652,1747],{"class":921},[731,3654,1750],{"class":741},[731,3656,1754],{"class":1753},[731,3658,1216],{"class":741},[731,3660,1759],{"class":921},[731,3662,745],{"class":741},[731,3664,3665,3667,3669,3671,3673,3675,3677],{"class":733,"line":845},[731,3666,1766],{"class":921},[731,3668,938],{"class":784},[731,3670,948],{"class":741},[731,3672,933],{"class":836},[731,3674,839],{"class":848},[731,3676,1754],{"class":784},[731,3678,884],{"class":848},[731,3680,3681],{"class":733,"line":878},[731,3682,824],{"emptyLinePlaceholder":823},[731,3684,3685,3687,3689,3691,3693,3695,3697,3699,3701,3703,3705,3707],{"class":733,"line":1806},[731,3686,1766],{"class":921},[731,3688,781],{"class":741},[731,3690,3460],{"class":784},[731,3692,930],{"class":741},[731,3694,3465],{"class":784},[731,3696,788],{"class":741},[731,3698,948],{"class":741},[731,3700,1794],{"class":777},[731,3702,1797],{"class":836},[731,3704,839],{"class":848},[731,3706,1754],{"class":784},[731,3708,884],{"class":848},[731,3710,3711],{"class":733,"line":1811},[731,3712,824],{"emptyLinePlaceholder":823},[731,3714,3715,3717,3719,3721,3723],{"class":733,"line":1818},[731,3716,1838],{"class":784},[731,3718,1184],{"class":741},[731,3720,1843],{"class":836},[731,3722,839],{"class":848},[731,3724,842],{"class":741},[731,3726,3727,3729,3731],{"class":733,"line":1824},[731,3728,1853],{"class":848},[731,3730,742],{"class":741},[731,3732,745],{"class":741},[731,3734,3735,3737,3739,3741,3743,3745],{"class":733,"line":1829},[731,3736,1863],{"class":848},[731,3738,742],{"class":741},[731,3740,3460],{"class":784},[731,3742,1184],{"class":741},[731,3744,1872],{"class":784},[731,3746,760],{"class":741},[731,3748,3749,3751,3753,3755,3757,3759,3761,3763,3765],{"class":733,"line":1835},[731,3750,1880],{"class":848},[731,3752,742],{"class":741},[731,3754,1885],{"class":836},[731,3756,839],{"class":848},[731,3758,3530],{"class":784},[731,3760,1184],{"class":741},[731,3762,1895],{"class":784},[731,3764,1216],{"class":848},[731,3766,760],{"class":741},[731,3768,3769],{"class":733,"line":1850},[731,3770,1911],{"class":741},[731,3772,3773,3775,3777],{"class":733,"line":1860},[731,3774,3547],{"class":848},[731,3776,742],{"class":741},[731,3778,745],{"class":741},[731,3780,3781,3783,3785,3787,3789,3791,3793,3795,3797],{"class":733,"line":1877},[731,3782,3556],{"class":848},[731,3784,742],{"class":741},[731,3786,2988],{"class":836},[731,3788,839],{"class":848},[731,3790,2993],{"class":784},[731,3792,1184],{"class":741},[731,3794,3569],{"class":784},[731,3796,1216],{"class":848},[731,3798,760],{"class":741},[731,3800,3801],{"class":733,"line":1902},[731,3802,3578],{"class":1814},[731,3804,3805],{"class":733,"line":1908},[731,3806,1911],{"class":741},[731,3808,3809,3811],{"class":733,"line":1914},[731,3810,1917],{"class":741},[731,3812,884],{"class":848},[731,3814,3815,3817],{"class":733,"line":1922},[731,3816,881],{"class":741},[731,3818,884],{"class":784},[721,3820,3823],{"className":723,"code":3821,"filename":245,"language":725,"meta":3822,"style":727},"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",[620,3824,3825,3847,3851,3881,3893,3897,3923,3927,3939,3947,3961,3981,3985,3993,4013,4017,4021,4027,4031,4055],{"__ignoreMap":727},[731,3826,3827,3829,3831,3833,3835,3837,3839,3841,3843,3845],{"class":733,"line":734},[731,3828,778],{"class":777},[731,3830,781],{"class":741},[731,3832,927],{"class":784},[731,3834,930],{"class":741},[731,3836,933],{"class":784},[731,3838,788],{"class":741},[731,3840,791],{"class":777},[731,3842,794],{"class":741},[731,3844,2156],{"class":797},[731,3846,801],{"class":741},[731,3848,3849],{"class":733,"line":748},[731,3850,824],{"emptyLinePlaceholder":823},[731,3852,3853,3855,3857,3859,3861,3863,3865,3867,3869,3871,3873,3875,3877,3879],{"class":733,"line":763},[731,3854,830],{"class":777},[731,3856,922],{"class":921},[731,3858,2171],{"class":784},[731,3860,1193],{"class":741},[731,3862,927],{"class":836},[731,3864,839],{"class":784},[731,3866,1747],{"class":921},[731,3868,1750],{"class":741},[731,3870,2184],{"class":1753},[731,3872,742],{"class":741},[731,3874,2189],{"class":737},[731,3876,1216],{"class":741},[731,3878,1759],{"class":921},[731,3880,745],{"class":741},[731,3882,3883,3885,3887,3889,3891],{"class":733,"line":827},[731,3884,1766],{"class":921},[731,3886,938],{"class":784},[731,3888,948],{"class":741},[731,3890,933],{"class":836},[731,3892,2208],{"class":848},[731,3894,3895],{"class":733,"line":845},[731,3896,824],{"emptyLinePlaceholder":823},[731,3898,3899,3901,3903,3905,3907,3909,3911,3913,3915,3917,3919,3921],{"class":733,"line":878},[731,3900,1766],{"class":921},[731,3902,781],{"class":741},[731,3904,3460],{"class":784},[731,3906,930],{"class":741},[731,3908,3465],{"class":784},[731,3910,788],{"class":741},[731,3912,948],{"class":741},[731,3914,1794],{"class":777},[731,3916,2225],{"class":784},[731,3918,1184],{"class":741},[731,3920,2230],{"class":836},[731,3922,2208],{"class":848},[731,3924,3925],{"class":733,"line":1806},[731,3926,824],{"emptyLinePlaceholder":823},[731,3928,3929,3931,3933,3935,3937],{"class":733,"line":1811},[731,3930,1838],{"class":784},[731,3932,1184],{"class":741},[731,3934,1843],{"class":836},[731,3936,839],{"class":848},[731,3938,842],{"class":741},[731,3940,3941,3943,3945],{"class":733,"line":1818},[731,3942,1853],{"class":848},[731,3944,742],{"class":741},[731,3946,745],{"class":741},[731,3948,3949,3951,3953,3955,3957,3959],{"class":733,"line":1824},[731,3950,1863],{"class":848},[731,3952,742],{"class":741},[731,3954,3460],{"class":784},[731,3956,1184],{"class":741},[731,3958,1872],{"class":784},[731,3960,760],{"class":741},[731,3962,3963,3965,3967,3969,3971,3973,3975,3977,3979],{"class":733,"line":1829},[731,3964,1880],{"class":848},[731,3966,742],{"class":741},[731,3968,1885],{"class":836},[731,3970,839],{"class":848},[731,3972,3530],{"class":784},[731,3974,1184],{"class":741},[731,3976,1895],{"class":784},[731,3978,1216],{"class":848},[731,3980,760],{"class":741},[731,3982,3983],{"class":733,"line":1835},[731,3984,1911],{"class":741},[731,3986,3987,3989,3991],{"class":733,"line":1850},[731,3988,3547],{"class":848},[731,3990,742],{"class":741},[731,3992,745],{"class":741},[731,3994,3995,3997,3999,4001,4003,4005,4007,4009,4011],{"class":733,"line":1860},[731,3996,3556],{"class":848},[731,3998,742],{"class":741},[731,4000,2988],{"class":836},[731,4002,839],{"class":848},[731,4004,2993],{"class":784},[731,4006,1184],{"class":741},[731,4008,3569],{"class":784},[731,4010,1216],{"class":848},[731,4012,760],{"class":741},[731,4014,4015],{"class":733,"line":1877},[731,4016,3578],{"class":1814},[731,4018,4019],{"class":733,"line":1902},[731,4020,1911],{"class":741},[731,4022,4023,4025],{"class":733,"line":1908},[731,4024,1917],{"class":741},[731,4026,884],{"class":848},[731,4028,4029],{"class":733,"line":1914},[731,4030,824],{"emptyLinePlaceholder":823},[731,4032,4033,4035,4037,4039,4041,4043,4045,4047,4049,4051,4053],{"class":733,"line":1922},[731,4034,2329],{"class":777},[731,4036,2332],{"class":784},[731,4038,1184],{"class":741},[731,4040,2230],{"class":836},[731,4042,839],{"class":848},[731,4044,861],{"class":741},[731,4046,2343],{"class":848},[731,4048,742],{"class":741},[731,4050,757],{"class":756},[731,4052,788],{"class":741},[731,4054,884],{"class":848},[731,4056,4057,4059],{"class":733,"line":2125},[731,4058,881],{"class":741},[731,4060,884],{"class":784},[721,4062,4064],{"className":723,"code":4063,"filename":275,"language":725,"meta":1227,"style":727},"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",[620,4065,4066,4097,4121,4125,4155,4159,4171,4179,4193,4213,4217,4225,4245,4249,4253,4259,4263,4287],{"__ignoreMap":727},[731,4067,4068,4070,4072,4074,4076,4078,4081,4083,4085,4087,4089,4091,4093,4095],{"class":733,"line":734},[731,4069,1257],{"class":784},[731,4071,1184],{"class":741},[731,4073,2372],{"class":836},[731,4075,839],{"class":784},[731,4077,969],{"class":741},[731,4079,4080],{"class":797},"\u002Fapi\u002Fcheckout",[731,4082,969],{"class":741},[731,4084,930],{"class":741},[731,4086,2386],{"class":921},[731,4088,1750],{"class":741},[731,4090,2391],{"class":1753},[731,4092,1216],{"class":741},[731,4094,1759],{"class":921},[731,4096,745],{"class":741},[731,4098,4099,4101,4103,4105,4107,4109,4111,4113,4115,4117,4119],{"class":733,"line":748},[731,4100,1766],{"class":921},[731,4102,938],{"class":784},[731,4104,948],{"class":741},[731,4106,2408],{"class":784},[731,4108,1184],{"class":741},[731,4110,2413],{"class":836},[731,4112,839],{"class":848},[731,4114,969],{"class":741},[731,4116,2420],{"class":797},[731,4118,969],{"class":741},[731,4120,884],{"class":848},[731,4122,4123],{"class":733,"line":763},[731,4124,824],{"emptyLinePlaceholder":823},[731,4126,4127,4129,4131,4133,4135,4137,4139,4141,4143,4145,4147,4149,4151,4153],{"class":733,"line":827},[731,4128,1766],{"class":921},[731,4130,781],{"class":741},[731,4132,3460],{"class":784},[731,4134,930],{"class":741},[731,4136,3465],{"class":784},[731,4138,788],{"class":741},[731,4140,948],{"class":741},[731,4142,1794],{"class":777},[731,4144,2408],{"class":784},[731,4146,1184],{"class":741},[731,4148,2445],{"class":784},[731,4150,1184],{"class":741},[731,4152,2230],{"class":836},[731,4154,2208],{"class":848},[731,4156,4157],{"class":733,"line":845},[731,4158,824],{"emptyLinePlaceholder":823},[731,4160,4161,4163,4165,4167,4169],{"class":733,"line":878},[731,4162,1838],{"class":784},[731,4164,1184],{"class":741},[731,4166,1843],{"class":836},[731,4168,839],{"class":848},[731,4170,842],{"class":741},[731,4172,4173,4175,4177],{"class":733,"line":1806},[731,4174,1853],{"class":848},[731,4176,742],{"class":741},[731,4178,745],{"class":741},[731,4180,4181,4183,4185,4187,4189,4191],{"class":733,"line":1811},[731,4182,1863],{"class":848},[731,4184,742],{"class":741},[731,4186,3460],{"class":784},[731,4188,1184],{"class":741},[731,4190,1872],{"class":784},[731,4192,760],{"class":741},[731,4194,4195,4197,4199,4201,4203,4205,4207,4209,4211],{"class":733,"line":1818},[731,4196,1880],{"class":848},[731,4198,742],{"class":741},[731,4200,1885],{"class":836},[731,4202,839],{"class":848},[731,4204,3530],{"class":784},[731,4206,1184],{"class":741},[731,4208,1895],{"class":784},[731,4210,1216],{"class":848},[731,4212,760],{"class":741},[731,4214,4215],{"class":733,"line":1824},[731,4216,1911],{"class":741},[731,4218,4219,4221,4223],{"class":733,"line":1829},[731,4220,3547],{"class":848},[731,4222,742],{"class":741},[731,4224,745],{"class":741},[731,4226,4227,4229,4231,4233,4235,4237,4239,4241,4243],{"class":733,"line":1835},[731,4228,3556],{"class":848},[731,4230,742],{"class":741},[731,4232,2988],{"class":836},[731,4234,839],{"class":848},[731,4236,2993],{"class":784},[731,4238,1184],{"class":741},[731,4240,3569],{"class":784},[731,4242,1216],{"class":848},[731,4244,760],{"class":741},[731,4246,4247],{"class":733,"line":1850},[731,4248,3578],{"class":1814},[731,4250,4251],{"class":733,"line":1860},[731,4252,1911],{"class":741},[731,4254,4255,4257],{"class":733,"line":1877},[731,4256,1917],{"class":741},[731,4258,884],{"class":848},[731,4260,4261],{"class":733,"line":1902},[731,4262,824],{"emptyLinePlaceholder":823},[731,4264,4265,4267,4269,4271,4273,4275,4277,4279,4281,4283,4285],{"class":733,"line":1908},[731,4266,2329],{"class":777},[731,4268,2408],{"class":784},[731,4270,1184],{"class":741},[731,4272,2230],{"class":836},[731,4274,839],{"class":848},[731,4276,861],{"class":741},[731,4278,2343],{"class":848},[731,4280,742],{"class":741},[731,4282,757],{"class":756},[731,4284,788],{"class":741},[731,4286,884],{"class":848},[731,4288,4289,4291],{"class":733,"line":1914},[731,4290,881],{"class":741},[731,4292,884],{"class":784},[721,4294,4296],{"className":723,"code":4295,"filename":270,"language":725,"meta":1227,"style":727},"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",[620,4297,4298,4332,4346,4350,4372,4376,4388,4396,4410,4430,4434,4442,4462,4466,4470,4476,4480,4502],{"__ignoreMap":727},[731,4299,4300,4302,4304,4306,4308,4310,4312,4314,4316,4318,4320,4322,4324,4326,4328,4330],{"class":733,"line":734},[731,4301,1257],{"class":784},[731,4303,1184],{"class":741},[731,4305,2372],{"class":836},[731,4307,839],{"class":784},[731,4309,969],{"class":741},[731,4311,4080],{"class":797},[731,4313,969],{"class":741},[731,4315,930],{"class":741},[731,4317,2386],{"class":921},[731,4319,1750],{"class":741},[731,4321,2445],{"class":1753},[731,4323,930],{"class":741},[731,4325,2607],{"class":1753},[731,4327,1216],{"class":741},[731,4329,1759],{"class":921},[731,4331,745],{"class":741},[731,4333,4334,4336,4338,4340,4342,4344],{"class":733,"line":748},[731,4335,1766],{"class":921},[731,4337,938],{"class":784},[731,4339,948],{"class":741},[731,4341,2624],{"class":784},[731,4343,1184],{"class":741},[731,4345,2629],{"class":784},[731,4347,4348],{"class":733,"line":763},[731,4349,824],{"emptyLinePlaceholder":823},[731,4351,4352,4354,4356,4358,4360,4362,4364,4366,4368,4370],{"class":733,"line":827},[731,4353,1766],{"class":921},[731,4355,781],{"class":741},[731,4357,3460],{"class":784},[731,4359,930],{"class":741},[731,4361,3465],{"class":784},[731,4363,788],{"class":741},[731,4365,948],{"class":741},[731,4367,2624],{"class":784},[731,4369,1184],{"class":741},[731,4371,2648],{"class":784},[731,4373,4374],{"class":733,"line":845},[731,4375,824],{"emptyLinePlaceholder":823},[731,4377,4378,4380,4382,4384,4386],{"class":733,"line":878},[731,4379,1838],{"class":784},[731,4381,1184],{"class":741},[731,4383,1843],{"class":836},[731,4385,839],{"class":848},[731,4387,842],{"class":741},[731,4389,4390,4392,4394],{"class":733,"line":1806},[731,4391,1853],{"class":848},[731,4393,742],{"class":741},[731,4395,745],{"class":741},[731,4397,4398,4400,4402,4404,4406,4408],{"class":733,"line":1811},[731,4399,1863],{"class":848},[731,4401,742],{"class":741},[731,4403,3460],{"class":784},[731,4405,1184],{"class":741},[731,4407,1872],{"class":784},[731,4409,760],{"class":741},[731,4411,4412,4414,4416,4418,4420,4422,4424,4426,4428],{"class":733,"line":1818},[731,4413,1880],{"class":848},[731,4415,742],{"class":741},[731,4417,1885],{"class":836},[731,4419,839],{"class":848},[731,4421,3530],{"class":784},[731,4423,1184],{"class":741},[731,4425,1895],{"class":784},[731,4427,1216],{"class":848},[731,4429,760],{"class":741},[731,4431,4432],{"class":733,"line":1824},[731,4433,1911],{"class":741},[731,4435,4436,4438,4440],{"class":733,"line":1829},[731,4437,3547],{"class":848},[731,4439,742],{"class":741},[731,4441,745],{"class":741},[731,4443,4444,4446,4448,4450,4452,4454,4456,4458,4460],{"class":733,"line":1835},[731,4445,3556],{"class":848},[731,4447,742],{"class":741},[731,4449,2988],{"class":836},[731,4451,839],{"class":848},[731,4453,2993],{"class":784},[731,4455,1184],{"class":741},[731,4457,3569],{"class":784},[731,4459,1216],{"class":848},[731,4461,760],{"class":741},[731,4463,4464],{"class":733,"line":1850},[731,4465,3578],{"class":1814},[731,4467,4468],{"class":733,"line":1860},[731,4469,1911],{"class":741},[731,4471,4472,4474],{"class":733,"line":1877},[731,4473,1917],{"class":741},[731,4475,884],{"class":848},[731,4477,4478],{"class":733,"line":1902},[731,4479,824],{"emptyLinePlaceholder":823},[731,4481,4482,4484,4486,4488,4490,4492,4494,4496,4498,4500],{"class":733,"line":1908},[731,4483,2745],{"class":784},[731,4485,1184],{"class":741},[731,4487,2230],{"class":836},[731,4489,839],{"class":848},[731,4491,861],{"class":741},[731,4493,2343],{"class":848},[731,4495,742],{"class":741},[731,4497,757],{"class":756},[731,4499,788],{"class":741},[731,4501,884],{"class":848},[731,4503,4504,4506],{"class":733,"line":1914},[731,4505,881],{"class":741},[731,4507,884],{"class":784},[1697,4509,4511],{"id":4510},"drain-hook-filtering","Drain Hook Filtering",[608,4513,4514],{},"As a last line of defense, filter sensitive data before sending to external services:",[718,4516,4517,5022,5498,5984,6445,6924,7401,7854,8307,8760,9213,9662,10121,10572],{},[721,4518,4521],{"className":723,"code":4519,"filename":240,"language":725,"meta":4520,"style":727},"const SENSITIVE_KEYS = ['password', 'token', 'secret', 'apiKey', 'authorization', 'cookie']\n\nfunction deepSanitize(obj: Record\u003Cstring, unknown>): Record\u003Cstring, unknown> {\n  const result: Record\u003Cstring, unknown> = {}\n\n  for (const [key, value] of Object.entries(obj)) {\n    \u002F\u002F Check if key contains any sensitive keyword (case-insensitive)\n    if (SENSITIVE_KEYS.some(k => key.toLowerCase().includes(k))) {\n      result[key] = '[REDACTED]'\n    } else if (value && typeof value === 'object' && !Array.isArray(value)) {\n      \u002F\u002F Recursively sanitize nested objects\n      result[key] = deepSanitize(value as Record\u003Cstring, unknown>)\n    } else {\n      result[key] = value\n    }\n  }\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",[620,4522,4523,4583,4587,4628,4653,4657,4695,4700,4745,4766,4821,4826,4861,4869,4884,4888,4892,4896,4902,4906,4910,4932,4969,4974,5010,5016],{"__ignoreMap":727},[731,4524,4525,4527,4530,4532,4534,4536,4538,4540,4542,4544,4546,4548,4550,4552,4554,4556,4558,4560,4562,4564,4566,4568,4570,4572,4574,4576,4579,4581],{"class":733,"line":734},[731,4526,1535],{"class":921},[731,4528,4529],{"class":784}," SENSITIVE_KEYS ",[731,4531,1193],{"class":741},[731,4533,854],{"class":784},[731,4535,969],{"class":741},[731,4537,3215],{"class":797},[731,4539,969],{"class":741},[731,4541,930],{"class":741},[731,4543,794],{"class":741},[731,4545,3224],{"class":797},[731,4547,969],{"class":741},[731,4549,930],{"class":741},[731,4551,794],{"class":741},[731,4553,3233],{"class":797},[731,4555,969],{"class":741},[731,4557,930],{"class":741},[731,4559,794],{"class":741},[731,4561,3242],{"class":797},[731,4563,969],{"class":741},[731,4565,930],{"class":741},[731,4567,794],{"class":741},[731,4569,3251],{"class":797},[731,4571,969],{"class":741},[731,4573,930],{"class":741},[731,4575,794],{"class":741},[731,4577,4578],{"class":797},"cookie",[731,4580,969],{"class":741},[731,4582,1223],{"class":784},[731,4584,4585],{"class":733,"line":748},[731,4586,824],{"emptyLinePlaceholder":823},[731,4588,4589,4592,4595,4597,4599,4601,4603,4605,4607,4609,4611,4614,4616,4618,4620,4622,4624,4626],{"class":733,"line":763},[731,4590,4591],{"class":921},"function",[731,4593,4594],{"class":836}," deepSanitize",[731,4596,839],{"class":741},[731,4598,3290],{"class":1753},[731,4600,742],{"class":741},[731,4602,3168],{"class":737},[731,4604,3159],{"class":741},[731,4606,3173],{"class":737},[731,4608,930],{"class":741},[731,4610,3178],{"class":737},[731,4612,4613],{"class":741},">):",[731,4615,3168],{"class":737},[731,4617,3159],{"class":741},[731,4619,3173],{"class":737},[731,4621,930],{"class":741},[731,4623,3178],{"class":737},[731,4625,3270],{"class":741},[731,4627,745],{"class":741},[731,4629,4630,4632,4634,4636,4638,4640,4642,4644,4646,4648,4650],{"class":733,"line":827},[731,4631,1766],{"class":921},[731,4633,3280],{"class":784},[731,4635,742],{"class":741},[731,4637,3168],{"class":737},[731,4639,3159],{"class":741},[731,4641,3173],{"class":737},[731,4643,930],{"class":741},[731,4645,3178],{"class":737},[731,4647,3270],{"class":741},[731,4649,948],{"class":741},[731,4651,4652],{"class":741}," {}\n",[731,4654,4655],{"class":733,"line":845},[731,4656,824],{"emptyLinePlaceholder":823},[731,4658,4659,4661,4663,4665,4667,4669,4671,4674,4676,4678,4681,4683,4686,4688,4690,4693],{"class":733,"line":878},[731,4660,3299],{"class":777},[731,4662,1750],{"class":848},[731,4664,1535],{"class":921},[731,4666,854],{"class":741},[731,4668,3327],{"class":784},[731,4670,930],{"class":741},[731,4672,4673],{"class":784}," value",[731,4675,2842],{"class":741},[731,4677,3309],{"class":741},[731,4679,4680],{"class":784}," Object",[731,4682,1184],{"class":741},[731,4684,4685],{"class":836},"entries",[731,4687,839],{"class":848},[731,4689,3290],{"class":784},[731,4691,4692],{"class":848},")) ",[731,4694,842],{"class":741},[731,4696,4697],{"class":733,"line":1806},[731,4698,4699],{"class":1814},"    \u002F\u002F Check if key contains any sensitive keyword (case-insensitive)\n",[731,4701,4702,4704,4706,4709,4711,4714,4716,4719,4721,4723,4725,4728,4731,4733,4736,4738,4740,4743],{"class":733,"line":1811},[731,4703,3322],{"class":777},[731,4705,1750],{"class":848},[731,4707,4708],{"class":784},"SENSITIVE_KEYS",[731,4710,1184],{"class":741},[731,4712,4713],{"class":836},"some",[731,4715,839],{"class":848},[731,4717,4718],{"class":1753},"k",[731,4720,1759],{"class":921},[731,4722,3306],{"class":784},[731,4724,1184],{"class":741},[731,4726,4727],{"class":836},"toLowerCase",[731,4729,4730],{"class":848},"()",[731,4732,1184],{"class":741},[731,4734,4735],{"class":836},"includes",[731,4737,839],{"class":848},[731,4739,4718],{"class":784},[731,4741,4742],{"class":848},"))) ",[731,4744,842],{"class":741},[731,4746,4747,4750,4752,4754,4757,4759,4761,4764],{"class":733,"line":1818},[731,4748,4749],{"class":784},"      result",[731,4751,3347],{"class":848},[731,4753,3327],{"class":784},[731,4755,4756],{"class":848},"] ",[731,4758,1193],{"class":741},[731,4760,794],{"class":741},[731,4762,4763],{"class":797},"[REDACTED]",[731,4765,801],{"class":741},[731,4767,4768,4771,4774,4777,4779,4782,4785,4788,4790,4793,4795,4798,4800,4802,4805,4808,4810,4813,4815,4817,4819],{"class":733,"line":1824},[731,4769,4770],{"class":741},"    }",[731,4772,4773],{"class":777}," else",[731,4775,4776],{"class":777}," if",[731,4778,1750],{"class":848},[731,4780,4781],{"class":784},"value",[731,4783,4784],{"class":741}," &&",[731,4786,4787],{"class":741}," typeof",[731,4789,4673],{"class":784},[731,4791,4792],{"class":741}," ===",[731,4794,794],{"class":741},[731,4796,4797],{"class":797},"object",[731,4799,969],{"class":741},[731,4801,4784],{"class":741},[731,4803,4804],{"class":741}," !",[731,4806,4807],{"class":784},"Array",[731,4809,1184],{"class":741},[731,4811,4812],{"class":836},"isArray",[731,4814,839],{"class":848},[731,4816,4781],{"class":784},[731,4818,4692],{"class":848},[731,4820,842],{"class":741},[731,4822,4823],{"class":733,"line":1829},[731,4824,4825],{"class":1814},"      \u002F\u002F Recursively sanitize nested objects\n",[731,4827,4828,4830,4832,4834,4836,4838,4840,4842,4844,4847,4849,4851,4853,4855,4857,4859],{"class":733,"line":1835},[731,4829,4749],{"class":784},[731,4831,3347],{"class":848},[731,4833,3327],{"class":784},[731,4835,4756],{"class":848},[731,4837,1193],{"class":741},[731,4839,4594],{"class":836},[731,4841,839],{"class":848},[731,4843,4781],{"class":784},[731,4845,4846],{"class":777}," as",[731,4848,3168],{"class":737},[731,4850,3159],{"class":741},[731,4852,3173],{"class":737},[731,4854,930],{"class":741},[731,4856,3178],{"class":737},[731,4858,3270],{"class":741},[731,4860,884],{"class":848},[731,4862,4863,4865,4867],{"class":733,"line":1850},[731,4864,4770],{"class":741},[731,4866,4773],{"class":777},[731,4868,745],{"class":741},[731,4870,4871,4873,4875,4877,4879,4881],{"class":733,"line":1860},[731,4872,4749],{"class":784},[731,4874,3347],{"class":848},[731,4876,3327],{"class":784},[731,4878,4756],{"class":848},[731,4880,1193],{"class":741},[731,4882,4883],{"class":784}," value\n",[731,4885,4886],{"class":733,"line":1877},[731,4887,3357],{"class":741},[731,4889,4890],{"class":733,"line":1902},[731,4891,3363],{"class":741},[731,4893,4894],{"class":733,"line":1908},[731,4895,824],{"emptyLinePlaceholder":823},[731,4897,4898,4900],{"class":733,"line":1914},[731,4899,2329],{"class":777},[731,4901,3371],{"class":784},[731,4903,4904],{"class":733,"line":1922},[731,4905,766],{"class":741},[731,4907,4908],{"class":733,"line":2125},[731,4909,824],{"emptyLinePlaceholder":823},[731,4911,4912,4914,4916,4919,4921,4923,4926,4928,4930],{"class":733,"line":2354},[731,4913,830],{"class":777},[731,4915,833],{"class":777},[731,4917,4918],{"class":836}," defineNitroPlugin",[731,4920,839],{"class":784},[731,4922,839],{"class":741},[731,4924,4925],{"class":1753},"nitroApp",[731,4927,1216],{"class":741},[731,4929,1759],{"class":921},[731,4931,745],{"class":741},[731,4933,4934,4937,4939,4942,4944,4947,4949,4951,4954,4956,4958,4960,4963,4965,4967],{"class":733,"line":3184},[731,4935,4936],{"class":784},"  nitroApp",[731,4938,1184],{"class":741},[731,4940,4941],{"class":784},"hooks",[731,4943,1184],{"class":741},[731,4945,4946],{"class":836},"hook",[731,4948,839],{"class":848},[731,4950,969],{"class":741},[731,4952,4953],{"class":797},"evlog:drain",[731,4955,969],{"class":741},[731,4957,930],{"class":741},[731,4959,1750],{"class":741},[731,4961,4962],{"class":1753},"ctx",[731,4964,1216],{"class":741},[731,4966,1759],{"class":921},[731,4968,745],{"class":741},[731,4970,4971],{"class":733,"line":3197},[731,4972,4973],{"class":1814},"    \u002F\u002F Sanitize before sending to external service\n",[731,4975,4976,4979,4981,4983,4985,4987,4989,4991,4993,4995,4997,5000,5002,5005,5007],{"class":733,"line":3258},[731,4977,4978],{"class":784},"    ctx",[731,4980,1184],{"class":741},[731,4982,1754],{"class":784},[731,4984,948],{"class":741},[731,4986,4594],{"class":836},[731,4988,839],{"class":848},[731,4990,4962],{"class":784},[731,4992,1184],{"class":741},[731,4994,1754],{"class":784},[731,4996,2878],{"class":848},[731,4998,4999],{"class":777},"as",[731,5001,4787],{"class":741},[731,5003,5004],{"class":784}," ctx",[731,5006,1184],{"class":741},[731,5008,5009],{"class":784},"event\n",[731,5011,5012,5014],{"class":733,"line":3275},[731,5013,1917],{"class":741},[731,5015,884],{"class":848},[731,5017,5018,5020],{"class":733,"line":3296},[731,5019,881],{"class":741},[731,5021,884],{"class":784},[721,5023,5025],{"className":723,"code":5024,"filename":255,"language":725,"meta":4520,"style":727},"import { definePlugin } from 'nitro'\nconst SENSITIVE_KEYS = ['password', 'token', 'secret', 'apiKey', 'authorization', 'cookie']\n\nfunction deepSanitize(obj: Record\u003Cstring, unknown>): Record\u003Cstring, unknown> {\n  const result: Record\u003Cstring, unknown> = {}\n\n  for (const [key, value] of Object.entries(obj)) {\n    \u002F\u002F Check if key contains any sensitive keyword (case-insensitive)\n    if (SENSITIVE_KEYS.some(k => key.toLowerCase().includes(k))) {\n      result[key] = '[REDACTED]'\n    } else if (value && typeof value === 'object' && !Array.isArray(value)) {\n      \u002F\u002F Recursively sanitize nested objects\n      result[key] = deepSanitize(value as Record\u003Cstring, unknown>)\n    } else {\n      result[key] = value\n    }\n  }\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",[620,5026,5027,5046,5104,5108,5146,5170,5174,5208,5212,5250,5268,5312,5316,5350,5358,5372,5376,5380,5384,5390,5394,5398,5418,5450,5454,5486,5492],{"__ignoreMap":727},[731,5028,5029,5031,5033,5036,5038,5040,5042,5044],{"class":733,"line":734},[731,5030,778],{"class":777},[731,5032,781],{"class":741},[731,5034,5035],{"class":784}," definePlugin",[731,5037,788],{"class":741},[731,5039,791],{"class":777},[731,5041,794],{"class":741},[731,5043,798],{"class":797},[731,5045,801],{"class":741},[731,5047,5048,5050,5052,5054,5056,5058,5060,5062,5064,5066,5068,5070,5072,5074,5076,5078,5080,5082,5084,5086,5088,5090,5092,5094,5096,5098,5100,5102],{"class":733,"line":748},[731,5049,1535],{"class":921},[731,5051,4529],{"class":784},[731,5053,1193],{"class":741},[731,5055,854],{"class":784},[731,5057,969],{"class":741},[731,5059,3215],{"class":797},[731,5061,969],{"class":741},[731,5063,930],{"class":741},[731,5065,794],{"class":741},[731,5067,3224],{"class":797},[731,5069,969],{"class":741},[731,5071,930],{"class":741},[731,5073,794],{"class":741},[731,5075,3233],{"class":797},[731,5077,969],{"class":741},[731,5079,930],{"class":741},[731,5081,794],{"class":741},[731,5083,3242],{"class":797},[731,5085,969],{"class":741},[731,5087,930],{"class":741},[731,5089,794],{"class":741},[731,5091,3251],{"class":797},[731,5093,969],{"class":741},[731,5095,930],{"class":741},[731,5097,794],{"class":741},[731,5099,4578],{"class":797},[731,5101,969],{"class":741},[731,5103,1223],{"class":784},[731,5105,5106],{"class":733,"line":763},[731,5107,824],{"emptyLinePlaceholder":823},[731,5109,5110,5112,5114,5116,5118,5120,5122,5124,5126,5128,5130,5132,5134,5136,5138,5140,5142,5144],{"class":733,"line":827},[731,5111,4591],{"class":921},[731,5113,4594],{"class":836},[731,5115,839],{"class":741},[731,5117,3290],{"class":1753},[731,5119,742],{"class":741},[731,5121,3168],{"class":737},[731,5123,3159],{"class":741},[731,5125,3173],{"class":737},[731,5127,930],{"class":741},[731,5129,3178],{"class":737},[731,5131,4613],{"class":741},[731,5133,3168],{"class":737},[731,5135,3159],{"class":741},[731,5137,3173],{"class":737},[731,5139,930],{"class":741},[731,5141,3178],{"class":737},[731,5143,3270],{"class":741},[731,5145,745],{"class":741},[731,5147,5148,5150,5152,5154,5156,5158,5160,5162,5164,5166,5168],{"class":733,"line":845},[731,5149,1766],{"class":921},[731,5151,3280],{"class":784},[731,5153,742],{"class":741},[731,5155,3168],{"class":737},[731,5157,3159],{"class":741},[731,5159,3173],{"class":737},[731,5161,930],{"class":741},[731,5163,3178],{"class":737},[731,5165,3270],{"class":741},[731,5167,948],{"class":741},[731,5169,4652],{"class":741},[731,5171,5172],{"class":733,"line":878},[731,5173,824],{"emptyLinePlaceholder":823},[731,5175,5176,5178,5180,5182,5184,5186,5188,5190,5192,5194,5196,5198,5200,5202,5204,5206],{"class":733,"line":1806},[731,5177,3299],{"class":777},[731,5179,1750],{"class":848},[731,5181,1535],{"class":921},[731,5183,854],{"class":741},[731,5185,3327],{"class":784},[731,5187,930],{"class":741},[731,5189,4673],{"class":784},[731,5191,2842],{"class":741},[731,5193,3309],{"class":741},[731,5195,4680],{"class":784},[731,5197,1184],{"class":741},[731,5199,4685],{"class":836},[731,5201,839],{"class":848},[731,5203,3290],{"class":784},[731,5205,4692],{"class":848},[731,5207,842],{"class":741},[731,5209,5210],{"class":733,"line":1811},[731,5211,4699],{"class":1814},[731,5213,5214,5216,5218,5220,5222,5224,5226,5228,5230,5232,5234,5236,5238,5240,5242,5244,5246,5248],{"class":733,"line":1818},[731,5215,3322],{"class":777},[731,5217,1750],{"class":848},[731,5219,4708],{"class":784},[731,5221,1184],{"class":741},[731,5223,4713],{"class":836},[731,5225,839],{"class":848},[731,5227,4718],{"class":1753},[731,5229,1759],{"class":921},[731,5231,3306],{"class":784},[731,5233,1184],{"class":741},[731,5235,4727],{"class":836},[731,5237,4730],{"class":848},[731,5239,1184],{"class":741},[731,5241,4735],{"class":836},[731,5243,839],{"class":848},[731,5245,4718],{"class":784},[731,5247,4742],{"class":848},[731,5249,842],{"class":741},[731,5251,5252,5254,5256,5258,5260,5262,5264,5266],{"class":733,"line":1824},[731,5253,4749],{"class":784},[731,5255,3347],{"class":848},[731,5257,3327],{"class":784},[731,5259,4756],{"class":848},[731,5261,1193],{"class":741},[731,5263,794],{"class":741},[731,5265,4763],{"class":797},[731,5267,801],{"class":741},[731,5269,5270,5272,5274,5276,5278,5280,5282,5284,5286,5288,5290,5292,5294,5296,5298,5300,5302,5304,5306,5308,5310],{"class":733,"line":1829},[731,5271,4770],{"class":741},[731,5273,4773],{"class":777},[731,5275,4776],{"class":777},[731,5277,1750],{"class":848},[731,5279,4781],{"class":784},[731,5281,4784],{"class":741},[731,5283,4787],{"class":741},[731,5285,4673],{"class":784},[731,5287,4792],{"class":741},[731,5289,794],{"class":741},[731,5291,4797],{"class":797},[731,5293,969],{"class":741},[731,5295,4784],{"class":741},[731,5297,4804],{"class":741},[731,5299,4807],{"class":784},[731,5301,1184],{"class":741},[731,5303,4812],{"class":836},[731,5305,839],{"class":848},[731,5307,4781],{"class":784},[731,5309,4692],{"class":848},[731,5311,842],{"class":741},[731,5313,5314],{"class":733,"line":1835},[731,5315,4825],{"class":1814},[731,5317,5318,5320,5322,5324,5326,5328,5330,5332,5334,5336,5338,5340,5342,5344,5346,5348],{"class":733,"line":1850},[731,5319,4749],{"class":784},[731,5321,3347],{"class":848},[731,5323,3327],{"class":784},[731,5325,4756],{"class":848},[731,5327,1193],{"class":741},[731,5329,4594],{"class":836},[731,5331,839],{"class":848},[731,5333,4781],{"class":784},[731,5335,4846],{"class":777},[731,5337,3168],{"class":737},[731,5339,3159],{"class":741},[731,5341,3173],{"class":737},[731,5343,930],{"class":741},[731,5345,3178],{"class":737},[731,5347,3270],{"class":741},[731,5349,884],{"class":848},[731,5351,5352,5354,5356],{"class":733,"line":1860},[731,5353,4770],{"class":741},[731,5355,4773],{"class":777},[731,5357,745],{"class":741},[731,5359,5360,5362,5364,5366,5368,5370],{"class":733,"line":1877},[731,5361,4749],{"class":784},[731,5363,3347],{"class":848},[731,5365,3327],{"class":784},[731,5367,4756],{"class":848},[731,5369,1193],{"class":741},[731,5371,4883],{"class":784},[731,5373,5374],{"class":733,"line":1902},[731,5375,3357],{"class":741},[731,5377,5378],{"class":733,"line":1908},[731,5379,3363],{"class":741},[731,5381,5382],{"class":733,"line":1914},[731,5383,824],{"emptyLinePlaceholder":823},[731,5385,5386,5388],{"class":733,"line":1922},[731,5387,2329],{"class":777},[731,5389,3371],{"class":784},[731,5391,5392],{"class":733,"line":2125},[731,5393,766],{"class":741},[731,5395,5396],{"class":733,"line":2354},[731,5397,824],{"emptyLinePlaceholder":823},[731,5399,5400,5402,5404,5406,5408,5410,5412,5414,5416],{"class":733,"line":3184},[731,5401,830],{"class":777},[731,5403,833],{"class":777},[731,5405,5035],{"class":836},[731,5407,839],{"class":784},[731,5409,839],{"class":741},[731,5411,4925],{"class":1753},[731,5413,1216],{"class":741},[731,5415,1759],{"class":921},[731,5417,745],{"class":741},[731,5419,5420,5422,5424,5426,5428,5430,5432,5434,5436,5438,5440,5442,5444,5446,5448],{"class":733,"line":3197},[731,5421,4936],{"class":784},[731,5423,1184],{"class":741},[731,5425,4941],{"class":784},[731,5427,1184],{"class":741},[731,5429,4946],{"class":836},[731,5431,839],{"class":848},[731,5433,969],{"class":741},[731,5435,4953],{"class":797},[731,5437,969],{"class":741},[731,5439,930],{"class":741},[731,5441,1750],{"class":741},[731,5443,4962],{"class":1753},[731,5445,1216],{"class":741},[731,5447,1759],{"class":921},[731,5449,745],{"class":741},[731,5451,5452],{"class":733,"line":3258},[731,5453,4973],{"class":1814},[731,5455,5456,5458,5460,5462,5464,5466,5468,5470,5472,5474,5476,5478,5480,5482,5484],{"class":733,"line":3275},[731,5457,4978],{"class":784},[731,5459,1184],{"class":741},[731,5461,1754],{"class":784},[731,5463,948],{"class":741},[731,5465,4594],{"class":836},[731,5467,839],{"class":848},[731,5469,4962],{"class":784},[731,5471,1184],{"class":741},[731,5473,1754],{"class":784},[731,5475,2878],{"class":848},[731,5477,4999],{"class":777},[731,5479,4787],{"class":741},[731,5481,5004],{"class":784},[731,5483,1184],{"class":741},[731,5485,5009],{"class":784},[731,5487,5488,5490],{"class":733,"line":3296},[731,5489,1917],{"class":741},[731,5491,884],{"class":848},[731,5493,5494,5496],{"class":733,"line":3319},[731,5495,881],{"class":741},[731,5497,884],{"class":784},[721,5499,5501],{"className":723,"code":5500,"filename":245,"language":725,"meta":888,"style":727},"import { createEvlog } from 'evlog\u002Fnext'\n\nconst SENSITIVE_KEYS = ['password', 'token', 'secret', 'apiKey', 'authorization', 'cookie']\n\nfunction deepSanitize(obj: Record\u003Cstring, unknown>): Record\u003Cstring, unknown> {\n  const result: Record\u003Cstring, unknown> = {}\n\n  for (const [key, value] of Object.entries(obj)) {\n    \u002F\u002F Check if key contains any sensitive keyword (case-insensitive)\n    if (SENSITIVE_KEYS.some(k => key.toLowerCase().includes(k))) {\n      result[key] = '[REDACTED]'\n    } else if (value && typeof value === 'object' && !Array.isArray(value)) {\n      \u002F\u002F Recursively sanitize nested objects\n      result[key] = deepSanitize(value as Record\u003Cstring, unknown>)\n    } else {\n      result[key] = value\n    }\n  }\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",[620,5502,5503,5521,5525,5583,5587,5625,5649,5653,5687,5691,5729,5747,5791,5795,5829,5837,5851,5855,5859,5863,5869,5873,5905,5919,5936,5941,5974,5978],{"__ignoreMap":727},[731,5504,5505,5507,5509,5511,5513,5515,5517,5519],{"class":733,"line":734},[731,5506,778],{"class":777},[731,5508,781],{"class":741},[731,5510,899],{"class":784},[731,5512,788],{"class":741},[731,5514,791],{"class":777},[731,5516,794],{"class":741},[731,5518,908],{"class":797},[731,5520,801],{"class":741},[731,5522,5523],{"class":733,"line":748},[731,5524,824],{"emptyLinePlaceholder":823},[731,5526,5527,5529,5531,5533,5535,5537,5539,5541,5543,5545,5547,5549,5551,5553,5555,5557,5559,5561,5563,5565,5567,5569,5571,5573,5575,5577,5579,5581],{"class":733,"line":763},[731,5528,1535],{"class":921},[731,5530,4529],{"class":784},[731,5532,1193],{"class":741},[731,5534,854],{"class":784},[731,5536,969],{"class":741},[731,5538,3215],{"class":797},[731,5540,969],{"class":741},[731,5542,930],{"class":741},[731,5544,794],{"class":741},[731,5546,3224],{"class":797},[731,5548,969],{"class":741},[731,5550,930],{"class":741},[731,5552,794],{"class":741},[731,5554,3233],{"class":797},[731,5556,969],{"class":741},[731,5558,930],{"class":741},[731,5560,794],{"class":741},[731,5562,3242],{"class":797},[731,5564,969],{"class":741},[731,5566,930],{"class":741},[731,5568,794],{"class":741},[731,5570,3251],{"class":797},[731,5572,969],{"class":741},[731,5574,930],{"class":741},[731,5576,794],{"class":741},[731,5578,4578],{"class":797},[731,5580,969],{"class":741},[731,5582,1223],{"class":784},[731,5584,5585],{"class":733,"line":827},[731,5586,824],{"emptyLinePlaceholder":823},[731,5588,5589,5591,5593,5595,5597,5599,5601,5603,5605,5607,5609,5611,5613,5615,5617,5619,5621,5623],{"class":733,"line":845},[731,5590,4591],{"class":921},[731,5592,4594],{"class":836},[731,5594,839],{"class":741},[731,5596,3290],{"class":1753},[731,5598,742],{"class":741},[731,5600,3168],{"class":737},[731,5602,3159],{"class":741},[731,5604,3173],{"class":737},[731,5606,930],{"class":741},[731,5608,3178],{"class":737},[731,5610,4613],{"class":741},[731,5612,3168],{"class":737},[731,5614,3159],{"class":741},[731,5616,3173],{"class":737},[731,5618,930],{"class":741},[731,5620,3178],{"class":737},[731,5622,3270],{"class":741},[731,5624,745],{"class":741},[731,5626,5627,5629,5631,5633,5635,5637,5639,5641,5643,5645,5647],{"class":733,"line":878},[731,5628,1766],{"class":921},[731,5630,3280],{"class":784},[731,5632,742],{"class":741},[731,5634,3168],{"class":737},[731,5636,3159],{"class":741},[731,5638,3173],{"class":737},[731,5640,930],{"class":741},[731,5642,3178],{"class":737},[731,5644,3270],{"class":741},[731,5646,948],{"class":741},[731,5648,4652],{"class":741},[731,5650,5651],{"class":733,"line":1806},[731,5652,824],{"emptyLinePlaceholder":823},[731,5654,5655,5657,5659,5661,5663,5665,5667,5669,5671,5673,5675,5677,5679,5681,5683,5685],{"class":733,"line":1811},[731,5656,3299],{"class":777},[731,5658,1750],{"class":848},[731,5660,1535],{"class":921},[731,5662,854],{"class":741},[731,5664,3327],{"class":784},[731,5666,930],{"class":741},[731,5668,4673],{"class":784},[731,5670,2842],{"class":741},[731,5672,3309],{"class":741},[731,5674,4680],{"class":784},[731,5676,1184],{"class":741},[731,5678,4685],{"class":836},[731,5680,839],{"class":848},[731,5682,3290],{"class":784},[731,5684,4692],{"class":848},[731,5686,842],{"class":741},[731,5688,5689],{"class":733,"line":1818},[731,5690,4699],{"class":1814},[731,5692,5693,5695,5697,5699,5701,5703,5705,5707,5709,5711,5713,5715,5717,5719,5721,5723,5725,5727],{"class":733,"line":1824},[731,5694,3322],{"class":777},[731,5696,1750],{"class":848},[731,5698,4708],{"class":784},[731,5700,1184],{"class":741},[731,5702,4713],{"class":836},[731,5704,839],{"class":848},[731,5706,4718],{"class":1753},[731,5708,1759],{"class":921},[731,5710,3306],{"class":784},[731,5712,1184],{"class":741},[731,5714,4727],{"class":836},[731,5716,4730],{"class":848},[731,5718,1184],{"class":741},[731,5720,4735],{"class":836},[731,5722,839],{"class":848},[731,5724,4718],{"class":784},[731,5726,4742],{"class":848},[731,5728,842],{"class":741},[731,5730,5731,5733,5735,5737,5739,5741,5743,5745],{"class":733,"line":1829},[731,5732,4749],{"class":784},[731,5734,3347],{"class":848},[731,5736,3327],{"class":784},[731,5738,4756],{"class":848},[731,5740,1193],{"class":741},[731,5742,794],{"class":741},[731,5744,4763],{"class":797},[731,5746,801],{"class":741},[731,5748,5749,5751,5753,5755,5757,5759,5761,5763,5765,5767,5769,5771,5773,5775,5777,5779,5781,5783,5785,5787,5789],{"class":733,"line":1835},[731,5750,4770],{"class":741},[731,5752,4773],{"class":777},[731,5754,4776],{"class":777},[731,5756,1750],{"class":848},[731,5758,4781],{"class":784},[731,5760,4784],{"class":741},[731,5762,4787],{"class":741},[731,5764,4673],{"class":784},[731,5766,4792],{"class":741},[731,5768,794],{"class":741},[731,5770,4797],{"class":797},[731,5772,969],{"class":741},[731,5774,4784],{"class":741},[731,5776,4804],{"class":741},[731,5778,4807],{"class":784},[731,5780,1184],{"class":741},[731,5782,4812],{"class":836},[731,5784,839],{"class":848},[731,5786,4781],{"class":784},[731,5788,4692],{"class":848},[731,5790,842],{"class":741},[731,5792,5793],{"class":733,"line":1850},[731,5794,4825],{"class":1814},[731,5796,5797,5799,5801,5803,5805,5807,5809,5811,5813,5815,5817,5819,5821,5823,5825,5827],{"class":733,"line":1860},[731,5798,4749],{"class":784},[731,5800,3347],{"class":848},[731,5802,3327],{"class":784},[731,5804,4756],{"class":848},[731,5806,1193],{"class":741},[731,5808,4594],{"class":836},[731,5810,839],{"class":848},[731,5812,4781],{"class":784},[731,5814,4846],{"class":777},[731,5816,3168],{"class":737},[731,5818,3159],{"class":741},[731,5820,3173],{"class":737},[731,5822,930],{"class":741},[731,5824,3178],{"class":737},[731,5826,3270],{"class":741},[731,5828,884],{"class":848},[731,5830,5831,5833,5835],{"class":733,"line":1877},[731,5832,4770],{"class":741},[731,5834,4773],{"class":777},[731,5836,745],{"class":741},[731,5838,5839,5841,5843,5845,5847,5849],{"class":733,"line":1902},[731,5840,4749],{"class":784},[731,5842,3347],{"class":848},[731,5844,3327],{"class":784},[731,5846,4756],{"class":848},[731,5848,1193],{"class":741},[731,5850,4883],{"class":784},[731,5852,5853],{"class":733,"line":1908},[731,5854,3357],{"class":741},[731,5856,5857],{"class":733,"line":1914},[731,5858,3363],{"class":741},[731,5860,5861],{"class":733,"line":1922},[731,5862,824],{"emptyLinePlaceholder":823},[731,5864,5865,5867],{"class":733,"line":2125},[731,5866,2329],{"class":777},[731,5868,3371],{"class":784},[731,5870,5871],{"class":733,"line":2354},[731,5872,766],{"class":741},[731,5874,5875,5877,5879,5881,5883,5885,5887,5889,5891,5893,5895,5897,5899,5901,5903],{"class":733,"line":3184},[731,5876,830],{"class":777},[731,5878,922],{"class":921},[731,5880,781],{"class":741},[731,5882,927],{"class":784},[731,5884,930],{"class":741},[731,5886,933],{"class":784},[731,5888,930],{"class":741},[731,5890,938],{"class":784},[731,5892,930],{"class":741},[731,5894,943],{"class":784},[731,5896,881],{"class":741},[731,5898,948],{"class":741},[731,5900,899],{"class":836},[731,5902,839],{"class":784},[731,5904,842],{"class":741},[731,5906,5907,5909,5911,5913,5915,5917],{"class":733,"line":3197},[731,5908,959],{"class":848},[731,5910,742],{"class":741},[731,5912,794],{"class":741},[731,5914,966],{"class":797},[731,5916,969],{"class":741},[731,5918,760],{"class":741},[731,5920,5921,5924,5926,5928,5930,5932,5934],{"class":733,"line":3258},[731,5922,5923],{"class":836},"  drain",[731,5925,742],{"class":741},[731,5927,1750],{"class":741},[731,5929,4962],{"class":1753},[731,5931,1216],{"class":741},[731,5933,1759],{"class":921},[731,5935,745],{"class":741},[731,5937,5938],{"class":733,"line":3275},[731,5939,5940],{"class":1814},"      \u002F\u002F Sanitize before sending to external service\n",[731,5942,5943,5946,5948,5950,5952,5954,5956,5958,5960,5962,5964,5966,5968,5970,5972],{"class":733,"line":3296},[731,5944,5945],{"class":784},"      ctx",[731,5947,1184],{"class":741},[731,5949,1754],{"class":784},[731,5951,948],{"class":741},[731,5953,4594],{"class":836},[731,5955,839],{"class":848},[731,5957,4962],{"class":784},[731,5959,1184],{"class":741},[731,5961,1754],{"class":784},[731,5963,2878],{"class":848},[731,5965,4999],{"class":777},[731,5967,4787],{"class":741},[731,5969,5004],{"class":784},[731,5971,1184],{"class":741},[731,5973,5009],{"class":784},[731,5975,5976],{"class":733,"line":3319},[731,5977,1911],{"class":741},[731,5979,5980,5982],{"class":733,"line":3339},[731,5981,881],{"class":741},[731,5983,884],{"class":784},[721,5985,5987],{"className":723,"code":5986,"filename":250,"language":725,"meta":991,"style":727},"import { createEvlogHooks } from 'evlog\u002Fsveltekit'\n\nconst SENSITIVE_KEYS = ['password', 'token', 'secret', 'apiKey', 'authorization', 'cookie']\n\nfunction deepSanitize(obj: Record\u003Cstring, unknown>): Record\u003Cstring, unknown> {\n  const result: Record\u003Cstring, unknown> = {}\n\n  for (const [key, value] of Object.entries(obj)) {\n    \u002F\u002F Check if key contains any sensitive keyword (case-insensitive)\n    if (SENSITIVE_KEYS.some(k => key.toLowerCase().includes(k))) {\n      result[key] = '[REDACTED]'\n    } else if (value && typeof value === 'object' && !Array.isArray(value)) {\n      \u002F\u002F Recursively sanitize nested objects\n      result[key] = deepSanitize(value as Record\u003Cstring, unknown>)\n    } else {\n      result[key] = value\n    }\n  }\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",[620,5988,5989,6007,6011,6069,6073,6111,6135,6139,6173,6177,6215,6233,6277,6281,6315,6323,6337,6341,6345,6349,6355,6359,6383,6399,6403,6435,6439],{"__ignoreMap":727},[731,5990,5991,5993,5995,5997,5999,6001,6003,6005],{"class":733,"line":734},[731,5992,778],{"class":777},[731,5994,781],{"class":741},[731,5996,1002],{"class":784},[731,5998,788],{"class":741},[731,6000,791],{"class":777},[731,6002,794],{"class":741},[731,6004,1011],{"class":797},[731,6006,801],{"class":741},[731,6008,6009],{"class":733,"line":748},[731,6010,824],{"emptyLinePlaceholder":823},[731,6012,6013,6015,6017,6019,6021,6023,6025,6027,6029,6031,6033,6035,6037,6039,6041,6043,6045,6047,6049,6051,6053,6055,6057,6059,6061,6063,6065,6067],{"class":733,"line":763},[731,6014,1535],{"class":921},[731,6016,4529],{"class":784},[731,6018,1193],{"class":741},[731,6020,854],{"class":784},[731,6022,969],{"class":741},[731,6024,3215],{"class":797},[731,6026,969],{"class":741},[731,6028,930],{"class":741},[731,6030,794],{"class":741},[731,6032,3224],{"class":797},[731,6034,969],{"class":741},[731,6036,930],{"class":741},[731,6038,794],{"class":741},[731,6040,3233],{"class":797},[731,6042,969],{"class":741},[731,6044,930],{"class":741},[731,6046,794],{"class":741},[731,6048,3242],{"class":797},[731,6050,969],{"class":741},[731,6052,930],{"class":741},[731,6054,794],{"class":741},[731,6056,3251],{"class":797},[731,6058,969],{"class":741},[731,6060,930],{"class":741},[731,6062,794],{"class":741},[731,6064,4578],{"class":797},[731,6066,969],{"class":741},[731,6068,1223],{"class":784},[731,6070,6071],{"class":733,"line":827},[731,6072,824],{"emptyLinePlaceholder":823},[731,6074,6075,6077,6079,6081,6083,6085,6087,6089,6091,6093,6095,6097,6099,6101,6103,6105,6107,6109],{"class":733,"line":845},[731,6076,4591],{"class":921},[731,6078,4594],{"class":836},[731,6080,839],{"class":741},[731,6082,3290],{"class":1753},[731,6084,742],{"class":741},[731,6086,3168],{"class":737},[731,6088,3159],{"class":741},[731,6090,3173],{"class":737},[731,6092,930],{"class":741},[731,6094,3178],{"class":737},[731,6096,4613],{"class":741},[731,6098,3168],{"class":737},[731,6100,3159],{"class":741},[731,6102,3173],{"class":737},[731,6104,930],{"class":741},[731,6106,3178],{"class":737},[731,6108,3270],{"class":741},[731,6110,745],{"class":741},[731,6112,6113,6115,6117,6119,6121,6123,6125,6127,6129,6131,6133],{"class":733,"line":878},[731,6114,1766],{"class":921},[731,6116,3280],{"class":784},[731,6118,742],{"class":741},[731,6120,3168],{"class":737},[731,6122,3159],{"class":741},[731,6124,3173],{"class":737},[731,6126,930],{"class":741},[731,6128,3178],{"class":737},[731,6130,3270],{"class":741},[731,6132,948],{"class":741},[731,6134,4652],{"class":741},[731,6136,6137],{"class":733,"line":1806},[731,6138,824],{"emptyLinePlaceholder":823},[731,6140,6141,6143,6145,6147,6149,6151,6153,6155,6157,6159,6161,6163,6165,6167,6169,6171],{"class":733,"line":1811},[731,6142,3299],{"class":777},[731,6144,1750],{"class":848},[731,6146,1535],{"class":921},[731,6148,854],{"class":741},[731,6150,3327],{"class":784},[731,6152,930],{"class":741},[731,6154,4673],{"class":784},[731,6156,2842],{"class":741},[731,6158,3309],{"class":741},[731,6160,4680],{"class":784},[731,6162,1184],{"class":741},[731,6164,4685],{"class":836},[731,6166,839],{"class":848},[731,6168,3290],{"class":784},[731,6170,4692],{"class":848},[731,6172,842],{"class":741},[731,6174,6175],{"class":733,"line":1818},[731,6176,4699],{"class":1814},[731,6178,6179,6181,6183,6185,6187,6189,6191,6193,6195,6197,6199,6201,6203,6205,6207,6209,6211,6213],{"class":733,"line":1824},[731,6180,3322],{"class":777},[731,6182,1750],{"class":848},[731,6184,4708],{"class":784},[731,6186,1184],{"class":741},[731,6188,4713],{"class":836},[731,6190,839],{"class":848},[731,6192,4718],{"class":1753},[731,6194,1759],{"class":921},[731,6196,3306],{"class":784},[731,6198,1184],{"class":741},[731,6200,4727],{"class":836},[731,6202,4730],{"class":848},[731,6204,1184],{"class":741},[731,6206,4735],{"class":836},[731,6208,839],{"class":848},[731,6210,4718],{"class":784},[731,6212,4742],{"class":848},[731,6214,842],{"class":741},[731,6216,6217,6219,6221,6223,6225,6227,6229,6231],{"class":733,"line":1829},[731,6218,4749],{"class":784},[731,6220,3347],{"class":848},[731,6222,3327],{"class":784},[731,6224,4756],{"class":848},[731,6226,1193],{"class":741},[731,6228,794],{"class":741},[731,6230,4763],{"class":797},[731,6232,801],{"class":741},[731,6234,6235,6237,6239,6241,6243,6245,6247,6249,6251,6253,6255,6257,6259,6261,6263,6265,6267,6269,6271,6273,6275],{"class":733,"line":1835},[731,6236,4770],{"class":741},[731,6238,4773],{"class":777},[731,6240,4776],{"class":777},[731,6242,1750],{"class":848},[731,6244,4781],{"class":784},[731,6246,4784],{"class":741},[731,6248,4787],{"class":741},[731,6250,4673],{"class":784},[731,6252,4792],{"class":741},[731,6254,794],{"class":741},[731,6256,4797],{"class":797},[731,6258,969],{"class":741},[731,6260,4784],{"class":741},[731,6262,4804],{"class":741},[731,6264,4807],{"class":784},[731,6266,1184],{"class":741},[731,6268,4812],{"class":836},[731,6270,839],{"class":848},[731,6272,4781],{"class":784},[731,6274,4692],{"class":848},[731,6276,842],{"class":741},[731,6278,6279],{"class":733,"line":1850},[731,6280,4825],{"class":1814},[731,6282,6283,6285,6287,6289,6291,6293,6295,6297,6299,6301,6303,6305,6307,6309,6311,6313],{"class":733,"line":1860},[731,6284,4749],{"class":784},[731,6286,3347],{"class":848},[731,6288,3327],{"class":784},[731,6290,4756],{"class":848},[731,6292,1193],{"class":741},[731,6294,4594],{"class":836},[731,6296,839],{"class":848},[731,6298,4781],{"class":784},[731,6300,4846],{"class":777},[731,6302,3168],{"class":737},[731,6304,3159],{"class":741},[731,6306,3173],{"class":737},[731,6308,930],{"class":741},[731,6310,3178],{"class":737},[731,6312,3270],{"class":741},[731,6314,884],{"class":848},[731,6316,6317,6319,6321],{"class":733,"line":1877},[731,6318,4770],{"class":741},[731,6320,4773],{"class":777},[731,6322,745],{"class":741},[731,6324,6325,6327,6329,6331,6333,6335],{"class":733,"line":1902},[731,6326,4749],{"class":784},[731,6328,3347],{"class":848},[731,6330,3327],{"class":784},[731,6332,4756],{"class":848},[731,6334,1193],{"class":741},[731,6336,4883],{"class":784},[731,6338,6339],{"class":733,"line":1908},[731,6340,3357],{"class":741},[731,6342,6343],{"class":733,"line":1914},[731,6344,3363],{"class":741},[731,6346,6347],{"class":733,"line":1922},[731,6348,824],{"emptyLinePlaceholder":823},[731,6350,6351,6353],{"class":733,"line":2125},[731,6352,2329],{"class":777},[731,6354,3371],{"class":784},[731,6356,6357],{"class":733,"line":2354},[731,6358,766],{"class":741},[731,6360,6361,6363,6365,6367,6369,6371,6373,6375,6377,6379,6381],{"class":733,"line":3184},[731,6362,830],{"class":777},[731,6364,922],{"class":921},[731,6366,781],{"class":741},[731,6368,1028],{"class":784},[731,6370,930],{"class":741},[731,6372,1033],{"class":784},[731,6374,881],{"class":741},[731,6376,948],{"class":741},[731,6378,1002],{"class":836},[731,6380,839],{"class":784},[731,6382,842],{"class":741},[731,6384,6385,6387,6389,6391,6393,6395,6397],{"class":733,"line":3197},[731,6386,5923],{"class":836},[731,6388,742],{"class":741},[731,6390,1750],{"class":741},[731,6392,4962],{"class":1753},[731,6394,1216],{"class":741},[731,6396,1759],{"class":921},[731,6398,745],{"class":741},[731,6400,6401],{"class":733,"line":3258},[731,6402,5940],{"class":1814},[731,6404,6405,6407,6409,6411,6413,6415,6417,6419,6421,6423,6425,6427,6429,6431,6433],{"class":733,"line":3275},[731,6406,5945],{"class":784},[731,6408,1184],{"class":741},[731,6410,1754],{"class":784},[731,6412,948],{"class":741},[731,6414,4594],{"class":836},[731,6416,839],{"class":848},[731,6418,4962],{"class":784},[731,6420,1184],{"class":741},[731,6422,1754],{"class":784},[731,6424,2878],{"class":848},[731,6426,4999],{"class":777},[731,6428,4787],{"class":741},[731,6430,5004],{"class":784},[731,6432,1184],{"class":741},[731,6434,5009],{"class":784},[731,6436,6437],{"class":733,"line":3296},[731,6438,1911],{"class":741},[731,6440,6441,6443],{"class":733,"line":3319},[731,6442,881],{"class":741},[731,6444,884],{"class":784},[721,6446,6448],{"className":723,"code":6447,"filename":260,"language":725,"meta":4520,"style":727},"import { definePlugin } from 'nitro'\n\nconst SENSITIVE_KEYS = ['password', 'token', 'secret', 'apiKey', 'authorization', 'cookie']\n\nfunction deepSanitize(obj: Record\u003Cstring, unknown>): Record\u003Cstring, unknown> {\n  const result: Record\u003Cstring, unknown> = {}\n\n  for (const [key, value] of Object.entries(obj)) {\n    \u002F\u002F Check if key contains any sensitive keyword (case-insensitive)\n    if (SENSITIVE_KEYS.some(k => key.toLowerCase().includes(k))) {\n      result[key] = '[REDACTED]'\n    } else if (value && typeof value === 'object' && !Array.isArray(value)) {\n      \u002F\u002F Recursively sanitize nested objects\n      result[key] = deepSanitize(value as Record\u003Cstring, unknown>)\n    } else {\n      result[key] = value\n    }\n  }\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",[620,6449,6450,6468,6472,6530,6534,6572,6596,6600,6634,6638,6676,6694,6738,6742,6776,6784,6798,6802,6806,6810,6816,6820,6824,6844,6876,6880,6912,6918],{"__ignoreMap":727},[731,6451,6452,6454,6456,6458,6460,6462,6464,6466],{"class":733,"line":734},[731,6453,778],{"class":777},[731,6455,781],{"class":741},[731,6457,5035],{"class":784},[731,6459,788],{"class":741},[731,6461,791],{"class":777},[731,6463,794],{"class":741},[731,6465,798],{"class":797},[731,6467,801],{"class":741},[731,6469,6470],{"class":733,"line":748},[731,6471,824],{"emptyLinePlaceholder":823},[731,6473,6474,6476,6478,6480,6482,6484,6486,6488,6490,6492,6494,6496,6498,6500,6502,6504,6506,6508,6510,6512,6514,6516,6518,6520,6522,6524,6526,6528],{"class":733,"line":763},[731,6475,1535],{"class":921},[731,6477,4529],{"class":784},[731,6479,1193],{"class":741},[731,6481,854],{"class":784},[731,6483,969],{"class":741},[731,6485,3215],{"class":797},[731,6487,969],{"class":741},[731,6489,930],{"class":741},[731,6491,794],{"class":741},[731,6493,3224],{"class":797},[731,6495,969],{"class":741},[731,6497,930],{"class":741},[731,6499,794],{"class":741},[731,6501,3233],{"class":797},[731,6503,969],{"class":741},[731,6505,930],{"class":741},[731,6507,794],{"class":741},[731,6509,3242],{"class":797},[731,6511,969],{"class":741},[731,6513,930],{"class":741},[731,6515,794],{"class":741},[731,6517,3251],{"class":797},[731,6519,969],{"class":741},[731,6521,930],{"class":741},[731,6523,794],{"class":741},[731,6525,4578],{"class":797},[731,6527,969],{"class":741},[731,6529,1223],{"class":784},[731,6531,6532],{"class":733,"line":827},[731,6533,824],{"emptyLinePlaceholder":823},[731,6535,6536,6538,6540,6542,6544,6546,6548,6550,6552,6554,6556,6558,6560,6562,6564,6566,6568,6570],{"class":733,"line":845},[731,6537,4591],{"class":921},[731,6539,4594],{"class":836},[731,6541,839],{"class":741},[731,6543,3290],{"class":1753},[731,6545,742],{"class":741},[731,6547,3168],{"class":737},[731,6549,3159],{"class":741},[731,6551,3173],{"class":737},[731,6553,930],{"class":741},[731,6555,3178],{"class":737},[731,6557,4613],{"class":741},[731,6559,3168],{"class":737},[731,6561,3159],{"class":741},[731,6563,3173],{"class":737},[731,6565,930],{"class":741},[731,6567,3178],{"class":737},[731,6569,3270],{"class":741},[731,6571,745],{"class":741},[731,6573,6574,6576,6578,6580,6582,6584,6586,6588,6590,6592,6594],{"class":733,"line":878},[731,6575,1766],{"class":921},[731,6577,3280],{"class":784},[731,6579,742],{"class":741},[731,6581,3168],{"class":737},[731,6583,3159],{"class":741},[731,6585,3173],{"class":737},[731,6587,930],{"class":741},[731,6589,3178],{"class":737},[731,6591,3270],{"class":741},[731,6593,948],{"class":741},[731,6595,4652],{"class":741},[731,6597,6598],{"class":733,"line":1806},[731,6599,824],{"emptyLinePlaceholder":823},[731,6601,6602,6604,6606,6608,6610,6612,6614,6616,6618,6620,6622,6624,6626,6628,6630,6632],{"class":733,"line":1811},[731,6603,3299],{"class":777},[731,6605,1750],{"class":848},[731,6607,1535],{"class":921},[731,6609,854],{"class":741},[731,6611,3327],{"class":784},[731,6613,930],{"class":741},[731,6615,4673],{"class":784},[731,6617,2842],{"class":741},[731,6619,3309],{"class":741},[731,6621,4680],{"class":784},[731,6623,1184],{"class":741},[731,6625,4685],{"class":836},[731,6627,839],{"class":848},[731,6629,3290],{"class":784},[731,6631,4692],{"class":848},[731,6633,842],{"class":741},[731,6635,6636],{"class":733,"line":1818},[731,6637,4699],{"class":1814},[731,6639,6640,6642,6644,6646,6648,6650,6652,6654,6656,6658,6660,6662,6664,6666,6668,6670,6672,6674],{"class":733,"line":1824},[731,6641,3322],{"class":777},[731,6643,1750],{"class":848},[731,6645,4708],{"class":784},[731,6647,1184],{"class":741},[731,6649,4713],{"class":836},[731,6651,839],{"class":848},[731,6653,4718],{"class":1753},[731,6655,1759],{"class":921},[731,6657,3306],{"class":784},[731,6659,1184],{"class":741},[731,6661,4727],{"class":836},[731,6663,4730],{"class":848},[731,6665,1184],{"class":741},[731,6667,4735],{"class":836},[731,6669,839],{"class":848},[731,6671,4718],{"class":784},[731,6673,4742],{"class":848},[731,6675,842],{"class":741},[731,6677,6678,6680,6682,6684,6686,6688,6690,6692],{"class":733,"line":1829},[731,6679,4749],{"class":784},[731,6681,3347],{"class":848},[731,6683,3327],{"class":784},[731,6685,4756],{"class":848},[731,6687,1193],{"class":741},[731,6689,794],{"class":741},[731,6691,4763],{"class":797},[731,6693,801],{"class":741},[731,6695,6696,6698,6700,6702,6704,6706,6708,6710,6712,6714,6716,6718,6720,6722,6724,6726,6728,6730,6732,6734,6736],{"class":733,"line":1835},[731,6697,4770],{"class":741},[731,6699,4773],{"class":777},[731,6701,4776],{"class":777},[731,6703,1750],{"class":848},[731,6705,4781],{"class":784},[731,6707,4784],{"class":741},[731,6709,4787],{"class":741},[731,6711,4673],{"class":784},[731,6713,4792],{"class":741},[731,6715,794],{"class":741},[731,6717,4797],{"class":797},[731,6719,969],{"class":741},[731,6721,4784],{"class":741},[731,6723,4804],{"class":741},[731,6725,4807],{"class":784},[731,6727,1184],{"class":741},[731,6729,4812],{"class":836},[731,6731,839],{"class":848},[731,6733,4781],{"class":784},[731,6735,4692],{"class":848},[731,6737,842],{"class":741},[731,6739,6740],{"class":733,"line":1850},[731,6741,4825],{"class":1814},[731,6743,6744,6746,6748,6750,6752,6754,6756,6758,6760,6762,6764,6766,6768,6770,6772,6774],{"class":733,"line":1860},[731,6745,4749],{"class":784},[731,6747,3347],{"class":848},[731,6749,3327],{"class":784},[731,6751,4756],{"class":848},[731,6753,1193],{"class":741},[731,6755,4594],{"class":836},[731,6757,839],{"class":848},[731,6759,4781],{"class":784},[731,6761,4846],{"class":777},[731,6763,3168],{"class":737},[731,6765,3159],{"class":741},[731,6767,3173],{"class":737},[731,6769,930],{"class":741},[731,6771,3178],{"class":737},[731,6773,3270],{"class":741},[731,6775,884],{"class":848},[731,6777,6778,6780,6782],{"class":733,"line":1877},[731,6779,4770],{"class":741},[731,6781,4773],{"class":777},[731,6783,745],{"class":741},[731,6785,6786,6788,6790,6792,6794,6796],{"class":733,"line":1902},[731,6787,4749],{"class":784},[731,6789,3347],{"class":848},[731,6791,3327],{"class":784},[731,6793,4756],{"class":848},[731,6795,1193],{"class":741},[731,6797,4883],{"class":784},[731,6799,6800],{"class":733,"line":1908},[731,6801,3357],{"class":741},[731,6803,6804],{"class":733,"line":1914},[731,6805,3363],{"class":741},[731,6807,6808],{"class":733,"line":1922},[731,6809,824],{"emptyLinePlaceholder":823},[731,6811,6812,6814],{"class":733,"line":2125},[731,6813,2329],{"class":777},[731,6815,3371],{"class":784},[731,6817,6818],{"class":733,"line":2354},[731,6819,766],{"class":741},[731,6821,6822],{"class":733,"line":3184},[731,6823,824],{"emptyLinePlaceholder":823},[731,6825,6826,6828,6830,6832,6834,6836,6838,6840,6842],{"class":733,"line":3197},[731,6827,830],{"class":777},[731,6829,833],{"class":777},[731,6831,5035],{"class":836},[731,6833,839],{"class":784},[731,6835,839],{"class":741},[731,6837,4925],{"class":1753},[731,6839,1216],{"class":741},[731,6841,1759],{"class":921},[731,6843,745],{"class":741},[731,6845,6846,6848,6850,6852,6854,6856,6858,6860,6862,6864,6866,6868,6870,6872,6874],{"class":733,"line":3258},[731,6847,4936],{"class":784},[731,6849,1184],{"class":741},[731,6851,4941],{"class":784},[731,6853,1184],{"class":741},[731,6855,4946],{"class":836},[731,6857,839],{"class":848},[731,6859,969],{"class":741},[731,6861,4953],{"class":797},[731,6863,969],{"class":741},[731,6865,930],{"class":741},[731,6867,1750],{"class":741},[731,6869,4962],{"class":1753},[731,6871,1216],{"class":741},[731,6873,1759],{"class":921},[731,6875,745],{"class":741},[731,6877,6878],{"class":733,"line":3275},[731,6879,4973],{"class":1814},[731,6881,6882,6884,6886,6888,6890,6892,6894,6896,6898,6900,6902,6904,6906,6908,6910],{"class":733,"line":3296},[731,6883,4978],{"class":784},[731,6885,1184],{"class":741},[731,6887,1754],{"class":784},[731,6889,948],{"class":741},[731,6891,4594],{"class":836},[731,6893,839],{"class":848},[731,6895,4962],{"class":784},[731,6897,1184],{"class":741},[731,6899,1754],{"class":784},[731,6901,2878],{"class":848},[731,6903,4999],{"class":777},[731,6905,4787],{"class":741},[731,6907,5004],{"class":784},[731,6909,1184],{"class":741},[731,6911,5009],{"class":784},[731,6913,6914,6916],{"class":733,"line":3319},[731,6915,1917],{"class":741},[731,6917,884],{"class":848},[731,6919,6920,6922],{"class":733,"line":3339},[731,6921,881],{"class":741},[731,6923,884],{"class":784},[721,6925,6927],{"className":723,"code":6926,"filename":290,"language":725,"meta":1141,"style":727},"import { evlog } from 'evlog\u002Freact-router'\n\nconst SENSITIVE_KEYS = ['password', 'token', 'secret', 'apiKey', 'authorization', 'cookie']\n\nfunction deepSanitize(obj: Record\u003Cstring, unknown>): Record\u003Cstring, unknown> {\n  const result: Record\u003Cstring, unknown> = {}\n\n  for (const [key, value] of Object.entries(obj)) {\n    \u002F\u002F Check if key contains any sensitive keyword (case-insensitive)\n    if (SENSITIVE_KEYS.some(k => key.toLowerCase().includes(k))) {\n      result[key] = '[REDACTED]'\n    } else if (value && typeof value === 'object' && !Array.isArray(value)) {\n      \u002F\u002F Recursively sanitize nested objects\n      result[key] = deepSanitize(value as Record\u003Cstring, unknown>)\n    } else {\n      result[key] = value\n    }\n  }\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",[620,6928,6929,6947,6951,7009,7013,7051,7075,7079,7113,7117,7155,7173,7217,7221,7255,7263,7277,7281,7285,7289,7295,7299,7321,7329,7346,7351,7384,7389,7397],{"__ignoreMap":727},[731,6930,6931,6933,6935,6937,6939,6941,6943,6945],{"class":733,"line":734},[731,6932,778],{"class":777},[731,6934,781],{"class":741},[731,6936,1152],{"class":784},[731,6938,788],{"class":741},[731,6940,791],{"class":777},[731,6942,794],{"class":741},[731,6944,1161],{"class":797},[731,6946,801],{"class":741},[731,6948,6949],{"class":733,"line":748},[731,6950,824],{"emptyLinePlaceholder":823},[731,6952,6953,6955,6957,6959,6961,6963,6965,6967,6969,6971,6973,6975,6977,6979,6981,6983,6985,6987,6989,6991,6993,6995,6997,6999,7001,7003,7005,7007],{"class":733,"line":763},[731,6954,1535],{"class":921},[731,6956,4529],{"class":784},[731,6958,1193],{"class":741},[731,6960,854],{"class":784},[731,6962,969],{"class":741},[731,6964,3215],{"class":797},[731,6966,969],{"class":741},[731,6968,930],{"class":741},[731,6970,794],{"class":741},[731,6972,3224],{"class":797},[731,6974,969],{"class":741},[731,6976,930],{"class":741},[731,6978,794],{"class":741},[731,6980,3233],{"class":797},[731,6982,969],{"class":741},[731,6984,930],{"class":741},[731,6986,794],{"class":741},[731,6988,3242],{"class":797},[731,6990,969],{"class":741},[731,6992,930],{"class":741},[731,6994,794],{"class":741},[731,6996,3251],{"class":797},[731,6998,969],{"class":741},[731,7000,930],{"class":741},[731,7002,794],{"class":741},[731,7004,4578],{"class":797},[731,7006,969],{"class":741},[731,7008,1223],{"class":784},[731,7010,7011],{"class":733,"line":827},[731,7012,824],{"emptyLinePlaceholder":823},[731,7014,7015,7017,7019,7021,7023,7025,7027,7029,7031,7033,7035,7037,7039,7041,7043,7045,7047,7049],{"class":733,"line":845},[731,7016,4591],{"class":921},[731,7018,4594],{"class":836},[731,7020,839],{"class":741},[731,7022,3290],{"class":1753},[731,7024,742],{"class":741},[731,7026,3168],{"class":737},[731,7028,3159],{"class":741},[731,7030,3173],{"class":737},[731,7032,930],{"class":741},[731,7034,3178],{"class":737},[731,7036,4613],{"class":741},[731,7038,3168],{"class":737},[731,7040,3159],{"class":741},[731,7042,3173],{"class":737},[731,7044,930],{"class":741},[731,7046,3178],{"class":737},[731,7048,3270],{"class":741},[731,7050,745],{"class":741},[731,7052,7053,7055,7057,7059,7061,7063,7065,7067,7069,7071,7073],{"class":733,"line":878},[731,7054,1766],{"class":921},[731,7056,3280],{"class":784},[731,7058,742],{"class":741},[731,7060,3168],{"class":737},[731,7062,3159],{"class":741},[731,7064,3173],{"class":737},[731,7066,930],{"class":741},[731,7068,3178],{"class":737},[731,7070,3270],{"class":741},[731,7072,948],{"class":741},[731,7074,4652],{"class":741},[731,7076,7077],{"class":733,"line":1806},[731,7078,824],{"emptyLinePlaceholder":823},[731,7080,7081,7083,7085,7087,7089,7091,7093,7095,7097,7099,7101,7103,7105,7107,7109,7111],{"class":733,"line":1811},[731,7082,3299],{"class":777},[731,7084,1750],{"class":848},[731,7086,1535],{"class":921},[731,7088,854],{"class":741},[731,7090,3327],{"class":784},[731,7092,930],{"class":741},[731,7094,4673],{"class":784},[731,7096,2842],{"class":741},[731,7098,3309],{"class":741},[731,7100,4680],{"class":784},[731,7102,1184],{"class":741},[731,7104,4685],{"class":836},[731,7106,839],{"class":848},[731,7108,3290],{"class":784},[731,7110,4692],{"class":848},[731,7112,842],{"class":741},[731,7114,7115],{"class":733,"line":1818},[731,7116,4699],{"class":1814},[731,7118,7119,7121,7123,7125,7127,7129,7131,7133,7135,7137,7139,7141,7143,7145,7147,7149,7151,7153],{"class":733,"line":1824},[731,7120,3322],{"class":777},[731,7122,1750],{"class":848},[731,7124,4708],{"class":784},[731,7126,1184],{"class":741},[731,7128,4713],{"class":836},[731,7130,839],{"class":848},[731,7132,4718],{"class":1753},[731,7134,1759],{"class":921},[731,7136,3306],{"class":784},[731,7138,1184],{"class":741},[731,7140,4727],{"class":836},[731,7142,4730],{"class":848},[731,7144,1184],{"class":741},[731,7146,4735],{"class":836},[731,7148,839],{"class":848},[731,7150,4718],{"class":784},[731,7152,4742],{"class":848},[731,7154,842],{"class":741},[731,7156,7157,7159,7161,7163,7165,7167,7169,7171],{"class":733,"line":1829},[731,7158,4749],{"class":784},[731,7160,3347],{"class":848},[731,7162,3327],{"class":784},[731,7164,4756],{"class":848},[731,7166,1193],{"class":741},[731,7168,794],{"class":741},[731,7170,4763],{"class":797},[731,7172,801],{"class":741},[731,7174,7175,7177,7179,7181,7183,7185,7187,7189,7191,7193,7195,7197,7199,7201,7203,7205,7207,7209,7211,7213,7215],{"class":733,"line":1835},[731,7176,4770],{"class":741},[731,7178,4773],{"class":777},[731,7180,4776],{"class":777},[731,7182,1750],{"class":848},[731,7184,4781],{"class":784},[731,7186,4784],{"class":741},[731,7188,4787],{"class":741},[731,7190,4673],{"class":784},[731,7192,4792],{"class":741},[731,7194,794],{"class":741},[731,7196,4797],{"class":797},[731,7198,969],{"class":741},[731,7200,4784],{"class":741},[731,7202,4804],{"class":741},[731,7204,4807],{"class":784},[731,7206,1184],{"class":741},[731,7208,4812],{"class":836},[731,7210,839],{"class":848},[731,7212,4781],{"class":784},[731,7214,4692],{"class":848},[731,7216,842],{"class":741},[731,7218,7219],{"class":733,"line":1850},[731,7220,4825],{"class":1814},[731,7222,7223,7225,7227,7229,7231,7233,7235,7237,7239,7241,7243,7245,7247,7249,7251,7253],{"class":733,"line":1860},[731,7224,4749],{"class":784},[731,7226,3347],{"class":848},[731,7228,3327],{"class":784},[731,7230,4756],{"class":848},[731,7232,1193],{"class":741},[731,7234,4594],{"class":836},[731,7236,839],{"class":848},[731,7238,4781],{"class":784},[731,7240,4846],{"class":777},[731,7242,3168],{"class":737},[731,7244,3159],{"class":741},[731,7246,3173],{"class":737},[731,7248,930],{"class":741},[731,7250,3178],{"class":737},[731,7252,3270],{"class":741},[731,7254,884],{"class":848},[731,7256,7257,7259,7261],{"class":733,"line":1877},[731,7258,4770],{"class":741},[731,7260,4773],{"class":777},[731,7262,745],{"class":741},[731,7264,7265,7267,7269,7271,7273,7275],{"class":733,"line":1902},[731,7266,4749],{"class":784},[731,7268,3347],{"class":848},[731,7270,3327],{"class":784},[731,7272,4756],{"class":848},[731,7274,1193],{"class":741},[731,7276,4883],{"class":784},[731,7278,7279],{"class":733,"line":1908},[731,7280,3357],{"class":741},[731,7282,7283],{"class":733,"line":1914},[731,7284,3363],{"class":741},[731,7286,7287],{"class":733,"line":1922},[731,7288,824],{"emptyLinePlaceholder":823},[731,7290,7291,7293],{"class":733,"line":2125},[731,7292,2329],{"class":777},[731,7294,3371],{"class":784},[731,7296,7297],{"class":733,"line":2354},[731,7298,766],{"class":741},[731,7300,7301,7303,7305,7307,7309,7311,7313,7315,7317,7319],{"class":733,"line":3184},[731,7302,830],{"class":777},[731,7304,922],{"class":921},[731,7306,1176],{"class":784},[731,7308,742],{"class":741},[731,7310,1181],{"class":737},[731,7312,1184],{"class":741},[731,7314,1187],{"class":737},[731,7316,1190],{"class":784},[731,7318,1193],{"class":741},[731,7320,1196],{"class":784},[731,7322,7323,7325,7327],{"class":733,"line":3197},[731,7324,1201],{"class":836},[731,7326,839],{"class":784},[731,7328,842],{"class":741},[731,7330,7331,7334,7336,7338,7340,7342,7344],{"class":733,"line":3258},[731,7332,7333],{"class":836},"      drain",[731,7335,742],{"class":741},[731,7337,1750],{"class":741},[731,7339,4962],{"class":1753},[731,7341,1216],{"class":741},[731,7343,1759],{"class":921},[731,7345,745],{"class":741},[731,7347,7348],{"class":733,"line":3275},[731,7349,7350],{"class":1814},"          \u002F\u002F Sanitize before sending to external service\n",[731,7352,7353,7356,7358,7360,7362,7364,7366,7368,7370,7372,7374,7376,7378,7380,7382],{"class":733,"line":3296},[731,7354,7355],{"class":784},"          ctx",[731,7357,1184],{"class":741},[731,7359,1754],{"class":784},[731,7361,948],{"class":741},[731,7363,4594],{"class":836},[731,7365,839],{"class":848},[731,7367,4962],{"class":784},[731,7369,1184],{"class":741},[731,7371,1754],{"class":784},[731,7373,2878],{"class":848},[731,7375,4999],{"class":777},[731,7377,4787],{"class":741},[731,7379,5004],{"class":784},[731,7381,1184],{"class":741},[731,7383,5009],{"class":784},[731,7385,7386],{"class":733,"line":3319},[731,7387,7388],{"class":741},"        },\n",[731,7390,7391,7393,7395],{"class":733,"line":3339},[731,7392,4770],{"class":741},[731,7394,1216],{"class":784},[731,7396,760],{"class":741},[731,7398,7399],{"class":733,"line":3354},[731,7400,1223],{"class":784},[721,7402,7404],{"className":723,"code":7403,"filename":275,"language":725,"meta":1227,"style":727},"import { evlog } from 'evlog\u002Fhono'\n\nconst SENSITIVE_KEYS = ['password', 'token', 'secret', 'apiKey', 'authorization', 'cookie']\n\nfunction deepSanitize(obj: Record\u003Cstring, unknown>): Record\u003Cstring, unknown> {\n  const result: Record\u003Cstring, unknown> = {}\n\n  for (const [key, value] of Object.entries(obj)) {\n    \u002F\u002F Check if key contains any sensitive keyword (case-insensitive)\n    if (SENSITIVE_KEYS.some(k => key.toLowerCase().includes(k))) {\n      result[key] = '[REDACTED]'\n    } else if (value && typeof value === 'object' && !Array.isArray(value)) {\n      \u002F\u002F Recursively sanitize nested objects\n      result[key] = deepSanitize(value as Record\u003Cstring, unknown>)\n    } else {\n      result[key] = value\n    }\n  }\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",[620,7405,7406,7424,7428,7486,7490,7528,7552,7556,7590,7594,7632,7650,7694,7698,7732,7740,7754,7758,7762,7766,7772,7776,7792,7808,7812,7844,7848],{"__ignoreMap":727},[731,7407,7408,7410,7412,7414,7416,7418,7420,7422],{"class":733,"line":734},[731,7409,778],{"class":777},[731,7411,781],{"class":741},[731,7413,1152],{"class":784},[731,7415,788],{"class":741},[731,7417,791],{"class":777},[731,7419,794],{"class":741},[731,7421,1246],{"class":797},[731,7423,801],{"class":741},[731,7425,7426],{"class":733,"line":748},[731,7427,824],{"emptyLinePlaceholder":823},[731,7429,7430,7432,7434,7436,7438,7440,7442,7444,7446,7448,7450,7452,7454,7456,7458,7460,7462,7464,7466,7468,7470,7472,7474,7476,7478,7480,7482,7484],{"class":733,"line":763},[731,7431,1535],{"class":921},[731,7433,4529],{"class":784},[731,7435,1193],{"class":741},[731,7437,854],{"class":784},[731,7439,969],{"class":741},[731,7441,3215],{"class":797},[731,7443,969],{"class":741},[731,7445,930],{"class":741},[731,7447,794],{"class":741},[731,7449,3224],{"class":797},[731,7451,969],{"class":741},[731,7453,930],{"class":741},[731,7455,794],{"class":741},[731,7457,3233],{"class":797},[731,7459,969],{"class":741},[731,7461,930],{"class":741},[731,7463,794],{"class":741},[731,7465,3242],{"class":797},[731,7467,969],{"class":741},[731,7469,930],{"class":741},[731,7471,794],{"class":741},[731,7473,3251],{"class":797},[731,7475,969],{"class":741},[731,7477,930],{"class":741},[731,7479,794],{"class":741},[731,7481,4578],{"class":797},[731,7483,969],{"class":741},[731,7485,1223],{"class":784},[731,7487,7488],{"class":733,"line":827},[731,7489,824],{"emptyLinePlaceholder":823},[731,7491,7492,7494,7496,7498,7500,7502,7504,7506,7508,7510,7512,7514,7516,7518,7520,7522,7524,7526],{"class":733,"line":845},[731,7493,4591],{"class":921},[731,7495,4594],{"class":836},[731,7497,839],{"class":741},[731,7499,3290],{"class":1753},[731,7501,742],{"class":741},[731,7503,3168],{"class":737},[731,7505,3159],{"class":741},[731,7507,3173],{"class":737},[731,7509,930],{"class":741},[731,7511,3178],{"class":737},[731,7513,4613],{"class":741},[731,7515,3168],{"class":737},[731,7517,3159],{"class":741},[731,7519,3173],{"class":737},[731,7521,930],{"class":741},[731,7523,3178],{"class":737},[731,7525,3270],{"class":741},[731,7527,745],{"class":741},[731,7529,7530,7532,7534,7536,7538,7540,7542,7544,7546,7548,7550],{"class":733,"line":878},[731,7531,1766],{"class":921},[731,7533,3280],{"class":784},[731,7535,742],{"class":741},[731,7537,3168],{"class":737},[731,7539,3159],{"class":741},[731,7541,3173],{"class":737},[731,7543,930],{"class":741},[731,7545,3178],{"class":737},[731,7547,3270],{"class":741},[731,7549,948],{"class":741},[731,7551,4652],{"class":741},[731,7553,7554],{"class":733,"line":1806},[731,7555,824],{"emptyLinePlaceholder":823},[731,7557,7558,7560,7562,7564,7566,7568,7570,7572,7574,7576,7578,7580,7582,7584,7586,7588],{"class":733,"line":1811},[731,7559,3299],{"class":777},[731,7561,1750],{"class":848},[731,7563,1535],{"class":921},[731,7565,854],{"class":741},[731,7567,3327],{"class":784},[731,7569,930],{"class":741},[731,7571,4673],{"class":784},[731,7573,2842],{"class":741},[731,7575,3309],{"class":741},[731,7577,4680],{"class":784},[731,7579,1184],{"class":741},[731,7581,4685],{"class":836},[731,7583,839],{"class":848},[731,7585,3290],{"class":784},[731,7587,4692],{"class":848},[731,7589,842],{"class":741},[731,7591,7592],{"class":733,"line":1818},[731,7593,4699],{"class":1814},[731,7595,7596,7598,7600,7602,7604,7606,7608,7610,7612,7614,7616,7618,7620,7622,7624,7626,7628,7630],{"class":733,"line":1824},[731,7597,3322],{"class":777},[731,7599,1750],{"class":848},[731,7601,4708],{"class":784},[731,7603,1184],{"class":741},[731,7605,4713],{"class":836},[731,7607,839],{"class":848},[731,7609,4718],{"class":1753},[731,7611,1759],{"class":921},[731,7613,3306],{"class":784},[731,7615,1184],{"class":741},[731,7617,4727],{"class":836},[731,7619,4730],{"class":848},[731,7621,1184],{"class":741},[731,7623,4735],{"class":836},[731,7625,839],{"class":848},[731,7627,4718],{"class":784},[731,7629,4742],{"class":848},[731,7631,842],{"class":741},[731,7633,7634,7636,7638,7640,7642,7644,7646,7648],{"class":733,"line":1829},[731,7635,4749],{"class":784},[731,7637,3347],{"class":848},[731,7639,3327],{"class":784},[731,7641,4756],{"class":848},[731,7643,1193],{"class":741},[731,7645,794],{"class":741},[731,7647,4763],{"class":797},[731,7649,801],{"class":741},[731,7651,7652,7654,7656,7658,7660,7662,7664,7666,7668,7670,7672,7674,7676,7678,7680,7682,7684,7686,7688,7690,7692],{"class":733,"line":1835},[731,7653,4770],{"class":741},[731,7655,4773],{"class":777},[731,7657,4776],{"class":777},[731,7659,1750],{"class":848},[731,7661,4781],{"class":784},[731,7663,4784],{"class":741},[731,7665,4787],{"class":741},[731,7667,4673],{"class":784},[731,7669,4792],{"class":741},[731,7671,794],{"class":741},[731,7673,4797],{"class":797},[731,7675,969],{"class":741},[731,7677,4784],{"class":741},[731,7679,4804],{"class":741},[731,7681,4807],{"class":784},[731,7683,1184],{"class":741},[731,7685,4812],{"class":836},[731,7687,839],{"class":848},[731,7689,4781],{"class":784},[731,7691,4692],{"class":848},[731,7693,842],{"class":741},[731,7695,7696],{"class":733,"line":1850},[731,7697,4825],{"class":1814},[731,7699,7700,7702,7704,7706,7708,7710,7712,7714,7716,7718,7720,7722,7724,7726,7728,7730],{"class":733,"line":1860},[731,7701,4749],{"class":784},[731,7703,3347],{"class":848},[731,7705,3327],{"class":784},[731,7707,4756],{"class":848},[731,7709,1193],{"class":741},[731,7711,4594],{"class":836},[731,7713,839],{"class":848},[731,7715,4781],{"class":784},[731,7717,4846],{"class":777},[731,7719,3168],{"class":737},[731,7721,3159],{"class":741},[731,7723,3173],{"class":737},[731,7725,930],{"class":741},[731,7727,3178],{"class":737},[731,7729,3270],{"class":741},[731,7731,884],{"class":848},[731,7733,7734,7736,7738],{"class":733,"line":1877},[731,7735,4770],{"class":741},[731,7737,4773],{"class":777},[731,7739,745],{"class":741},[731,7741,7742,7744,7746,7748,7750,7752],{"class":733,"line":1902},[731,7743,4749],{"class":784},[731,7745,3347],{"class":848},[731,7747,3327],{"class":784},[731,7749,4756],{"class":848},[731,7751,1193],{"class":741},[731,7753,4883],{"class":784},[731,7755,7756],{"class":733,"line":1908},[731,7757,3357],{"class":741},[731,7759,7760],{"class":733,"line":1914},[731,7761,3363],{"class":741},[731,7763,7764],{"class":733,"line":1922},[731,7765,824],{"emptyLinePlaceholder":823},[731,7767,7768,7770],{"class":733,"line":2125},[731,7769,2329],{"class":777},[731,7771,3371],{"class":784},[731,7773,7774],{"class":733,"line":2354},[731,7775,766],{"class":741},[731,7777,7778,7780,7782,7784,7786,7788,7790],{"class":733,"line":3184},[731,7779,1257],{"class":784},[731,7781,1184],{"class":741},[731,7783,1262],{"class":836},[731,7785,839],{"class":784},[731,7787,738],{"class":836},[731,7789,839],{"class":784},[731,7791,842],{"class":741},[731,7793,7794,7796,7798,7800,7802,7804,7806],{"class":733,"line":3197},[731,7795,5923],{"class":836},[731,7797,742],{"class":741},[731,7799,1750],{"class":741},[731,7801,4962],{"class":1753},[731,7803,1216],{"class":741},[731,7805,1759],{"class":921},[731,7807,745],{"class":741},[731,7809,7810],{"class":733,"line":3258},[731,7811,5940],{"class":1814},[731,7813,7814,7816,7818,7820,7822,7824,7826,7828,7830,7832,7834,7836,7838,7840,7842],{"class":733,"line":3275},[731,7815,5945],{"class":784},[731,7817,1184],{"class":741},[731,7819,1754],{"class":784},[731,7821,948],{"class":741},[731,7823,4594],{"class":836},[731,7825,839],{"class":848},[731,7827,4962],{"class":784},[731,7829,1184],{"class":741},[731,7831,1754],{"class":784},[731,7833,2878],{"class":848},[731,7835,4999],{"class":777},[731,7837,4787],{"class":741},[731,7839,5004],{"class":784},[731,7841,1184],{"class":741},[731,7843,5009],{"class":784},[731,7845,7846],{"class":733,"line":3296},[731,7847,1911],{"class":741},[731,7849,7850,7852],{"class":733,"line":3319},[731,7851,881],{"class":741},[731,7853,1281],{"class":784},[721,7855,7857],{"className":723,"code":7856,"filename":270,"language":725,"meta":1227,"style":727},"import { evlog } from 'evlog\u002Fexpress'\n\nconst SENSITIVE_KEYS = ['password', 'token', 'secret', 'apiKey', 'authorization', 'cookie']\n\nfunction deepSanitize(obj: Record\u003Cstring, unknown>): Record\u003Cstring, unknown> {\n  const result: Record\u003Cstring, unknown> = {}\n\n  for (const [key, value] of Object.entries(obj)) {\n    \u002F\u002F Check if key contains any sensitive keyword (case-insensitive)\n    if (SENSITIVE_KEYS.some(k => key.toLowerCase().includes(k))) {\n      result[key] = '[REDACTED]'\n    } else if (value && typeof value === 'object' && !Array.isArray(value)) {\n      \u002F\u002F Recursively sanitize nested objects\n      result[key] = deepSanitize(value as Record\u003Cstring, unknown>)\n    } else {\n      result[key] = value\n    }\n  }\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",[620,7858,7859,7877,7881,7939,7943,7981,8005,8009,8043,8047,8085,8103,8147,8151,8185,8193,8207,8211,8215,8219,8225,8229,8245,8261,8265,8297,8301],{"__ignoreMap":727},[731,7860,7861,7863,7865,7867,7869,7871,7873,7875],{"class":733,"line":734},[731,7862,778],{"class":777},[731,7864,781],{"class":741},[731,7866,1152],{"class":784},[731,7868,788],{"class":741},[731,7870,791],{"class":777},[731,7872,794],{"class":741},[731,7874,1303],{"class":797},[731,7876,801],{"class":741},[731,7878,7879],{"class":733,"line":748},[731,7880,824],{"emptyLinePlaceholder":823},[731,7882,7883,7885,7887,7889,7891,7893,7895,7897,7899,7901,7903,7905,7907,7909,7911,7913,7915,7917,7919,7921,7923,7925,7927,7929,7931,7933,7935,7937],{"class":733,"line":763},[731,7884,1535],{"class":921},[731,7886,4529],{"class":784},[731,7888,1193],{"class":741},[731,7890,854],{"class":784},[731,7892,969],{"class":741},[731,7894,3215],{"class":797},[731,7896,969],{"class":741},[731,7898,930],{"class":741},[731,7900,794],{"class":741},[731,7902,3224],{"class":797},[731,7904,969],{"class":741},[731,7906,930],{"class":741},[731,7908,794],{"class":741},[731,7910,3233],{"class":797},[731,7912,969],{"class":741},[731,7914,930],{"class":741},[731,7916,794],{"class":741},[731,7918,3242],{"class":797},[731,7920,969],{"class":741},[731,7922,930],{"class":741},[731,7924,794],{"class":741},[731,7926,3251],{"class":797},[731,7928,969],{"class":741},[731,7930,930],{"class":741},[731,7932,794],{"class":741},[731,7934,4578],{"class":797},[731,7936,969],{"class":741},[731,7938,1223],{"class":784},[731,7940,7941],{"class":733,"line":827},[731,7942,824],{"emptyLinePlaceholder":823},[731,7944,7945,7947,7949,7951,7953,7955,7957,7959,7961,7963,7965,7967,7969,7971,7973,7975,7977,7979],{"class":733,"line":845},[731,7946,4591],{"class":921},[731,7948,4594],{"class":836},[731,7950,839],{"class":741},[731,7952,3290],{"class":1753},[731,7954,742],{"class":741},[731,7956,3168],{"class":737},[731,7958,3159],{"class":741},[731,7960,3173],{"class":737},[731,7962,930],{"class":741},[731,7964,3178],{"class":737},[731,7966,4613],{"class":741},[731,7968,3168],{"class":737},[731,7970,3159],{"class":741},[731,7972,3173],{"class":737},[731,7974,930],{"class":741},[731,7976,3178],{"class":737},[731,7978,3270],{"class":741},[731,7980,745],{"class":741},[731,7982,7983,7985,7987,7989,7991,7993,7995,7997,7999,8001,8003],{"class":733,"line":878},[731,7984,1766],{"class":921},[731,7986,3280],{"class":784},[731,7988,742],{"class":741},[731,7990,3168],{"class":737},[731,7992,3159],{"class":741},[731,7994,3173],{"class":737},[731,7996,930],{"class":741},[731,7998,3178],{"class":737},[731,8000,3270],{"class":741},[731,8002,948],{"class":741},[731,8004,4652],{"class":741},[731,8006,8007],{"class":733,"line":1806},[731,8008,824],{"emptyLinePlaceholder":823},[731,8010,8011,8013,8015,8017,8019,8021,8023,8025,8027,8029,8031,8033,8035,8037,8039,8041],{"class":733,"line":1811},[731,8012,3299],{"class":777},[731,8014,1750],{"class":848},[731,8016,1535],{"class":921},[731,8018,854],{"class":741},[731,8020,3327],{"class":784},[731,8022,930],{"class":741},[731,8024,4673],{"class":784},[731,8026,2842],{"class":741},[731,8028,3309],{"class":741},[731,8030,4680],{"class":784},[731,8032,1184],{"class":741},[731,8034,4685],{"class":836},[731,8036,839],{"class":848},[731,8038,3290],{"class":784},[731,8040,4692],{"class":848},[731,8042,842],{"class":741},[731,8044,8045],{"class":733,"line":1818},[731,8046,4699],{"class":1814},[731,8048,8049,8051,8053,8055,8057,8059,8061,8063,8065,8067,8069,8071,8073,8075,8077,8079,8081,8083],{"class":733,"line":1824},[731,8050,3322],{"class":777},[731,8052,1750],{"class":848},[731,8054,4708],{"class":784},[731,8056,1184],{"class":741},[731,8058,4713],{"class":836},[731,8060,839],{"class":848},[731,8062,4718],{"class":1753},[731,8064,1759],{"class":921},[731,8066,3306],{"class":784},[731,8068,1184],{"class":741},[731,8070,4727],{"class":836},[731,8072,4730],{"class":848},[731,8074,1184],{"class":741},[731,8076,4735],{"class":836},[731,8078,839],{"class":848},[731,8080,4718],{"class":784},[731,8082,4742],{"class":848},[731,8084,842],{"class":741},[731,8086,8087,8089,8091,8093,8095,8097,8099,8101],{"class":733,"line":1829},[731,8088,4749],{"class":784},[731,8090,3347],{"class":848},[731,8092,3327],{"class":784},[731,8094,4756],{"class":848},[731,8096,1193],{"class":741},[731,8098,794],{"class":741},[731,8100,4763],{"class":797},[731,8102,801],{"class":741},[731,8104,8105,8107,8109,8111,8113,8115,8117,8119,8121,8123,8125,8127,8129,8131,8133,8135,8137,8139,8141,8143,8145],{"class":733,"line":1835},[731,8106,4770],{"class":741},[731,8108,4773],{"class":777},[731,8110,4776],{"class":777},[731,8112,1750],{"class":848},[731,8114,4781],{"class":784},[731,8116,4784],{"class":741},[731,8118,4787],{"class":741},[731,8120,4673],{"class":784},[731,8122,4792],{"class":741},[731,8124,794],{"class":741},[731,8126,4797],{"class":797},[731,8128,969],{"class":741},[731,8130,4784],{"class":741},[731,8132,4804],{"class":741},[731,8134,4807],{"class":784},[731,8136,1184],{"class":741},[731,8138,4812],{"class":836},[731,8140,839],{"class":848},[731,8142,4781],{"class":784},[731,8144,4692],{"class":848},[731,8146,842],{"class":741},[731,8148,8149],{"class":733,"line":1850},[731,8150,4825],{"class":1814},[731,8152,8153,8155,8157,8159,8161,8163,8165,8167,8169,8171,8173,8175,8177,8179,8181,8183],{"class":733,"line":1860},[731,8154,4749],{"class":784},[731,8156,3347],{"class":848},[731,8158,3327],{"class":784},[731,8160,4756],{"class":848},[731,8162,1193],{"class":741},[731,8164,4594],{"class":836},[731,8166,839],{"class":848},[731,8168,4781],{"class":784},[731,8170,4846],{"class":777},[731,8172,3168],{"class":737},[731,8174,3159],{"class":741},[731,8176,3173],{"class":737},[731,8178,930],{"class":741},[731,8180,3178],{"class":737},[731,8182,3270],{"class":741},[731,8184,884],{"class":848},[731,8186,8187,8189,8191],{"class":733,"line":1877},[731,8188,4770],{"class":741},[731,8190,4773],{"class":777},[731,8192,745],{"class":741},[731,8194,8195,8197,8199,8201,8203,8205],{"class":733,"line":1902},[731,8196,4749],{"class":784},[731,8198,3347],{"class":848},[731,8200,3327],{"class":784},[731,8202,4756],{"class":848},[731,8204,1193],{"class":741},[731,8206,4883],{"class":784},[731,8208,8209],{"class":733,"line":1908},[731,8210,3357],{"class":741},[731,8212,8213],{"class":733,"line":1914},[731,8214,3363],{"class":741},[731,8216,8217],{"class":733,"line":1922},[731,8218,824],{"emptyLinePlaceholder":823},[731,8220,8221,8223],{"class":733,"line":2125},[731,8222,2329],{"class":777},[731,8224,3371],{"class":784},[731,8226,8227],{"class":733,"line":2354},[731,8228,766],{"class":741},[731,8230,8231,8233,8235,8237,8239,8241,8243],{"class":733,"line":3184},[731,8232,1257],{"class":784},[731,8234,1184],{"class":741},[731,8236,1262],{"class":836},[731,8238,839],{"class":784},[731,8240,738],{"class":836},[731,8242,839],{"class":784},[731,8244,842],{"class":741},[731,8246,8247,8249,8251,8253,8255,8257,8259],{"class":733,"line":3197},[731,8248,5923],{"class":836},[731,8250,742],{"class":741},[731,8252,1750],{"class":741},[731,8254,4962],{"class":1753},[731,8256,1216],{"class":741},[731,8258,1759],{"class":921},[731,8260,745],{"class":741},[731,8262,8263],{"class":733,"line":3258},[731,8264,5940],{"class":1814},[731,8266,8267,8269,8271,8273,8275,8277,8279,8281,8283,8285,8287,8289,8291,8293,8295],{"class":733,"line":3275},[731,8268,5945],{"class":784},[731,8270,1184],{"class":741},[731,8272,1754],{"class":784},[731,8274,948],{"class":741},[731,8276,4594],{"class":836},[731,8278,839],{"class":848},[731,8280,4962],{"class":784},[731,8282,1184],{"class":741},[731,8284,1754],{"class":784},[731,8286,2878],{"class":848},[731,8288,4999],{"class":777},[731,8290,4787],{"class":741},[731,8292,5004],{"class":784},[731,8294,1184],{"class":741},[731,8296,5009],{"class":784},[731,8298,8299],{"class":733,"line":3296},[731,8300,1911],{"class":741},[731,8302,8303,8305],{"class":733,"line":3319},[731,8304,881],{"class":741},[731,8306,1281],{"class":784},[721,8308,8310],{"className":723,"code":8309,"filename":280,"language":725,"meta":1227,"style":727},"import { evlog } from 'evlog\u002Ffastify'\n\nconst SENSITIVE_KEYS = ['password', 'token', 'secret', 'apiKey', 'authorization', 'cookie']\n\nfunction deepSanitize(obj: Record\u003Cstring, unknown>): Record\u003Cstring, unknown> {\n  const result: Record\u003Cstring, unknown> = {}\n\n  for (const [key, value] of Object.entries(obj)) {\n    \u002F\u002F Check if key contains any sensitive keyword (case-insensitive)\n    if (SENSITIVE_KEYS.some(k => key.toLowerCase().includes(k))) {\n      result[key] = '[REDACTED]'\n    } else if (value && typeof value === 'object' && !Array.isArray(value)) {\n      \u002F\u002F Recursively sanitize nested objects\n      result[key] = deepSanitize(value as Record\u003Cstring, unknown>)\n    } else {\n      result[key] = value\n    }\n  }\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",[620,8311,8312,8330,8334,8392,8396,8434,8458,8462,8496,8500,8538,8556,8600,8604,8638,8646,8660,8664,8668,8672,8678,8682,8698,8714,8718,8750,8754],{"__ignoreMap":727},[731,8313,8314,8316,8318,8320,8322,8324,8326,8328],{"class":733,"line":734},[731,8315,778],{"class":777},[731,8317,781],{"class":741},[731,8319,1152],{"class":784},[731,8321,788],{"class":741},[731,8323,791],{"class":777},[731,8325,794],{"class":741},[731,8327,1357],{"class":797},[731,8329,801],{"class":741},[731,8331,8332],{"class":733,"line":748},[731,8333,824],{"emptyLinePlaceholder":823},[731,8335,8336,8338,8340,8342,8344,8346,8348,8350,8352,8354,8356,8358,8360,8362,8364,8366,8368,8370,8372,8374,8376,8378,8380,8382,8384,8386,8388,8390],{"class":733,"line":763},[731,8337,1535],{"class":921},[731,8339,4529],{"class":784},[731,8341,1193],{"class":741},[731,8343,854],{"class":784},[731,8345,969],{"class":741},[731,8347,3215],{"class":797},[731,8349,969],{"class":741},[731,8351,930],{"class":741},[731,8353,794],{"class":741},[731,8355,3224],{"class":797},[731,8357,969],{"class":741},[731,8359,930],{"class":741},[731,8361,794],{"class":741},[731,8363,3233],{"class":797},[731,8365,969],{"class":741},[731,8367,930],{"class":741},[731,8369,794],{"class":741},[731,8371,3242],{"class":797},[731,8373,969],{"class":741},[731,8375,930],{"class":741},[731,8377,794],{"class":741},[731,8379,3251],{"class":797},[731,8381,969],{"class":741},[731,8383,930],{"class":741},[731,8385,794],{"class":741},[731,8387,4578],{"class":797},[731,8389,969],{"class":741},[731,8391,1223],{"class":784},[731,8393,8394],{"class":733,"line":827},[731,8395,824],{"emptyLinePlaceholder":823},[731,8397,8398,8400,8402,8404,8406,8408,8410,8412,8414,8416,8418,8420,8422,8424,8426,8428,8430,8432],{"class":733,"line":845},[731,8399,4591],{"class":921},[731,8401,4594],{"class":836},[731,8403,839],{"class":741},[731,8405,3290],{"class":1753},[731,8407,742],{"class":741},[731,8409,3168],{"class":737},[731,8411,3159],{"class":741},[731,8413,3173],{"class":737},[731,8415,930],{"class":741},[731,8417,3178],{"class":737},[731,8419,4613],{"class":741},[731,8421,3168],{"class":737},[731,8423,3159],{"class":741},[731,8425,3173],{"class":737},[731,8427,930],{"class":741},[731,8429,3178],{"class":737},[731,8431,3270],{"class":741},[731,8433,745],{"class":741},[731,8435,8436,8438,8440,8442,8444,8446,8448,8450,8452,8454,8456],{"class":733,"line":878},[731,8437,1766],{"class":921},[731,8439,3280],{"class":784},[731,8441,742],{"class":741},[731,8443,3168],{"class":737},[731,8445,3159],{"class":741},[731,8447,3173],{"class":737},[731,8449,930],{"class":741},[731,8451,3178],{"class":737},[731,8453,3270],{"class":741},[731,8455,948],{"class":741},[731,8457,4652],{"class":741},[731,8459,8460],{"class":733,"line":1806},[731,8461,824],{"emptyLinePlaceholder":823},[731,8463,8464,8466,8468,8470,8472,8474,8476,8478,8480,8482,8484,8486,8488,8490,8492,8494],{"class":733,"line":1811},[731,8465,3299],{"class":777},[731,8467,1750],{"class":848},[731,8469,1535],{"class":921},[731,8471,854],{"class":741},[731,8473,3327],{"class":784},[731,8475,930],{"class":741},[731,8477,4673],{"class":784},[731,8479,2842],{"class":741},[731,8481,3309],{"class":741},[731,8483,4680],{"class":784},[731,8485,1184],{"class":741},[731,8487,4685],{"class":836},[731,8489,839],{"class":848},[731,8491,3290],{"class":784},[731,8493,4692],{"class":848},[731,8495,842],{"class":741},[731,8497,8498],{"class":733,"line":1818},[731,8499,4699],{"class":1814},[731,8501,8502,8504,8506,8508,8510,8512,8514,8516,8518,8520,8522,8524,8526,8528,8530,8532,8534,8536],{"class":733,"line":1824},[731,8503,3322],{"class":777},[731,8505,1750],{"class":848},[731,8507,4708],{"class":784},[731,8509,1184],{"class":741},[731,8511,4713],{"class":836},[731,8513,839],{"class":848},[731,8515,4718],{"class":1753},[731,8517,1759],{"class":921},[731,8519,3306],{"class":784},[731,8521,1184],{"class":741},[731,8523,4727],{"class":836},[731,8525,4730],{"class":848},[731,8527,1184],{"class":741},[731,8529,4735],{"class":836},[731,8531,839],{"class":848},[731,8533,4718],{"class":784},[731,8535,4742],{"class":848},[731,8537,842],{"class":741},[731,8539,8540,8542,8544,8546,8548,8550,8552,8554],{"class":733,"line":1829},[731,8541,4749],{"class":784},[731,8543,3347],{"class":848},[731,8545,3327],{"class":784},[731,8547,4756],{"class":848},[731,8549,1193],{"class":741},[731,8551,794],{"class":741},[731,8553,4763],{"class":797},[731,8555,801],{"class":741},[731,8557,8558,8560,8562,8564,8566,8568,8570,8572,8574,8576,8578,8580,8582,8584,8586,8588,8590,8592,8594,8596,8598],{"class":733,"line":1835},[731,8559,4770],{"class":741},[731,8561,4773],{"class":777},[731,8563,4776],{"class":777},[731,8565,1750],{"class":848},[731,8567,4781],{"class":784},[731,8569,4784],{"class":741},[731,8571,4787],{"class":741},[731,8573,4673],{"class":784},[731,8575,4792],{"class":741},[731,8577,794],{"class":741},[731,8579,4797],{"class":797},[731,8581,969],{"class":741},[731,8583,4784],{"class":741},[731,8585,4804],{"class":741},[731,8587,4807],{"class":784},[731,8589,1184],{"class":741},[731,8591,4812],{"class":836},[731,8593,839],{"class":848},[731,8595,4781],{"class":784},[731,8597,4692],{"class":848},[731,8599,842],{"class":741},[731,8601,8602],{"class":733,"line":1850},[731,8603,4825],{"class":1814},[731,8605,8606,8608,8610,8612,8614,8616,8618,8620,8622,8624,8626,8628,8630,8632,8634,8636],{"class":733,"line":1860},[731,8607,4749],{"class":784},[731,8609,3347],{"class":848},[731,8611,3327],{"class":784},[731,8613,4756],{"class":848},[731,8615,1193],{"class":741},[731,8617,4594],{"class":836},[731,8619,839],{"class":848},[731,8621,4781],{"class":784},[731,8623,4846],{"class":777},[731,8625,3168],{"class":737},[731,8627,3159],{"class":741},[731,8629,3173],{"class":737},[731,8631,930],{"class":741},[731,8633,3178],{"class":737},[731,8635,3270],{"class":741},[731,8637,884],{"class":848},[731,8639,8640,8642,8644],{"class":733,"line":1877},[731,8641,4770],{"class":741},[731,8643,4773],{"class":777},[731,8645,745],{"class":741},[731,8647,8648,8650,8652,8654,8656,8658],{"class":733,"line":1902},[731,8649,4749],{"class":784},[731,8651,3347],{"class":848},[731,8653,3327],{"class":784},[731,8655,4756],{"class":848},[731,8657,1193],{"class":741},[731,8659,4883],{"class":784},[731,8661,8662],{"class":733,"line":1908},[731,8663,3357],{"class":741},[731,8665,8666],{"class":733,"line":1914},[731,8667,3363],{"class":741},[731,8669,8670],{"class":733,"line":1922},[731,8671,824],{"emptyLinePlaceholder":823},[731,8673,8674,8676],{"class":733,"line":2125},[731,8675,2329],{"class":777},[731,8677,3371],{"class":784},[731,8679,8680],{"class":733,"line":2354},[731,8681,766],{"class":741},[731,8683,8684,8686,8688,8690,8692,8694,8696],{"class":733,"line":3184},[731,8685,1368],{"class":777},[731,8687,1371],{"class":784},[731,8689,1184],{"class":741},[731,8691,1376],{"class":836},[731,8693,1379],{"class":784},[731,8695,930],{"class":741},[731,8697,745],{"class":741},[731,8699,8700,8702,8704,8706,8708,8710,8712],{"class":733,"line":3197},[731,8701,5923],{"class":836},[731,8703,742],{"class":741},[731,8705,1750],{"class":741},[731,8707,4962],{"class":1753},[731,8709,1216],{"class":741},[731,8711,1759],{"class":921},[731,8713,745],{"class":741},[731,8715,8716],{"class":733,"line":3258},[731,8717,5940],{"class":1814},[731,8719,8720,8722,8724,8726,8728,8730,8732,8734,8736,8738,8740,8742,8744,8746,8748],{"class":733,"line":3275},[731,8721,5945],{"class":784},[731,8723,1184],{"class":741},[731,8725,1754],{"class":784},[731,8727,948],{"class":741},[731,8729,4594],{"class":836},[731,8731,839],{"class":848},[731,8733,4962],{"class":784},[731,8735,1184],{"class":741},[731,8737,1754],{"class":784},[731,8739,2878],{"class":848},[731,8741,4999],{"class":777},[731,8743,4787],{"class":741},[731,8745,5004],{"class":784},[731,8747,1184],{"class":741},[731,8749,5009],{"class":784},[731,8751,8752],{"class":733,"line":3296},[731,8753,1911],{"class":741},[731,8755,8756,8758],{"class":733,"line":3319},[731,8757,881],{"class":741},[731,8759,884],{"class":784},[721,8761,8763],{"className":723,"code":8762,"filename":285,"language":725,"meta":1227,"style":727},"import { evlog } from 'evlog\u002Felysia'\n\nconst SENSITIVE_KEYS = ['password', 'token', 'secret', 'apiKey', 'authorization', 'cookie']\n\nfunction deepSanitize(obj: Record\u003Cstring, unknown>): Record\u003Cstring, unknown> {\n  const result: Record\u003Cstring, unknown> = {}\n\n  for (const [key, value] of Object.entries(obj)) {\n    \u002F\u002F Check if key contains any sensitive keyword (case-insensitive)\n    if (SENSITIVE_KEYS.some(k => key.toLowerCase().includes(k))) {\n      result[key] = '[REDACTED]'\n    } else if (value && typeof value === 'object' && !Array.isArray(value)) {\n      \u002F\u002F Recursively sanitize nested objects\n      result[key] = deepSanitize(value as Record\u003Cstring, unknown>)\n    } else {\n      result[key] = value\n    }\n  }\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",[620,8764,8765,8783,8787,8845,8849,8887,8911,8915,8949,8953,8991,9009,9053,9057,9091,9099,9113,9117,9121,9125,9131,9135,9151,9167,9171,9203,9207],{"__ignoreMap":727},[731,8766,8767,8769,8771,8773,8775,8777,8779,8781],{"class":733,"line":734},[731,8768,778],{"class":777},[731,8770,781],{"class":741},[731,8772,1152],{"class":784},[731,8774,788],{"class":741},[731,8776,791],{"class":777},[731,8778,794],{"class":741},[731,8780,1415],{"class":797},[731,8782,801],{"class":741},[731,8784,8785],{"class":733,"line":748},[731,8786,824],{"emptyLinePlaceholder":823},[731,8788,8789,8791,8793,8795,8797,8799,8801,8803,8805,8807,8809,8811,8813,8815,8817,8819,8821,8823,8825,8827,8829,8831,8833,8835,8837,8839,8841,8843],{"class":733,"line":763},[731,8790,1535],{"class":921},[731,8792,4529],{"class":784},[731,8794,1193],{"class":741},[731,8796,854],{"class":784},[731,8798,969],{"class":741},[731,8800,3215],{"class":797},[731,8802,969],{"class":741},[731,8804,930],{"class":741},[731,8806,794],{"class":741},[731,8808,3224],{"class":797},[731,8810,969],{"class":741},[731,8812,930],{"class":741},[731,8814,794],{"class":741},[731,8816,3233],{"class":797},[731,8818,969],{"class":741},[731,8820,930],{"class":741},[731,8822,794],{"class":741},[731,8824,3242],{"class":797},[731,8826,969],{"class":741},[731,8828,930],{"class":741},[731,8830,794],{"class":741},[731,8832,3251],{"class":797},[731,8834,969],{"class":741},[731,8836,930],{"class":741},[731,8838,794],{"class":741},[731,8840,4578],{"class":797},[731,8842,969],{"class":741},[731,8844,1223],{"class":784},[731,8846,8847],{"class":733,"line":827},[731,8848,824],{"emptyLinePlaceholder":823},[731,8850,8851,8853,8855,8857,8859,8861,8863,8865,8867,8869,8871,8873,8875,8877,8879,8881,8883,8885],{"class":733,"line":845},[731,8852,4591],{"class":921},[731,8854,4594],{"class":836},[731,8856,839],{"class":741},[731,8858,3290],{"class":1753},[731,8860,742],{"class":741},[731,8862,3168],{"class":737},[731,8864,3159],{"class":741},[731,8866,3173],{"class":737},[731,8868,930],{"class":741},[731,8870,3178],{"class":737},[731,8872,4613],{"class":741},[731,8874,3168],{"class":737},[731,8876,3159],{"class":741},[731,8878,3173],{"class":737},[731,8880,930],{"class":741},[731,8882,3178],{"class":737},[731,8884,3270],{"class":741},[731,8886,745],{"class":741},[731,8888,8889,8891,8893,8895,8897,8899,8901,8903,8905,8907,8909],{"class":733,"line":878},[731,8890,1766],{"class":921},[731,8892,3280],{"class":784},[731,8894,742],{"class":741},[731,8896,3168],{"class":737},[731,8898,3159],{"class":741},[731,8900,3173],{"class":737},[731,8902,930],{"class":741},[731,8904,3178],{"class":737},[731,8906,3270],{"class":741},[731,8908,948],{"class":741},[731,8910,4652],{"class":741},[731,8912,8913],{"class":733,"line":1806},[731,8914,824],{"emptyLinePlaceholder":823},[731,8916,8917,8919,8921,8923,8925,8927,8929,8931,8933,8935,8937,8939,8941,8943,8945,8947],{"class":733,"line":1811},[731,8918,3299],{"class":777},[731,8920,1750],{"class":848},[731,8922,1535],{"class":921},[731,8924,854],{"class":741},[731,8926,3327],{"class":784},[731,8928,930],{"class":741},[731,8930,4673],{"class":784},[731,8932,2842],{"class":741},[731,8934,3309],{"class":741},[731,8936,4680],{"class":784},[731,8938,1184],{"class":741},[731,8940,4685],{"class":836},[731,8942,839],{"class":848},[731,8944,3290],{"class":784},[731,8946,4692],{"class":848},[731,8948,842],{"class":741},[731,8950,8951],{"class":733,"line":1818},[731,8952,4699],{"class":1814},[731,8954,8955,8957,8959,8961,8963,8965,8967,8969,8971,8973,8975,8977,8979,8981,8983,8985,8987,8989],{"class":733,"line":1824},[731,8956,3322],{"class":777},[731,8958,1750],{"class":848},[731,8960,4708],{"class":784},[731,8962,1184],{"class":741},[731,8964,4713],{"class":836},[731,8966,839],{"class":848},[731,8968,4718],{"class":1753},[731,8970,1759],{"class":921},[731,8972,3306],{"class":784},[731,8974,1184],{"class":741},[731,8976,4727],{"class":836},[731,8978,4730],{"class":848},[731,8980,1184],{"class":741},[731,8982,4735],{"class":836},[731,8984,839],{"class":848},[731,8986,4718],{"class":784},[731,8988,4742],{"class":848},[731,8990,842],{"class":741},[731,8992,8993,8995,8997,8999,9001,9003,9005,9007],{"class":733,"line":1829},[731,8994,4749],{"class":784},[731,8996,3347],{"class":848},[731,8998,3327],{"class":784},[731,9000,4756],{"class":848},[731,9002,1193],{"class":741},[731,9004,794],{"class":741},[731,9006,4763],{"class":797},[731,9008,801],{"class":741},[731,9010,9011,9013,9015,9017,9019,9021,9023,9025,9027,9029,9031,9033,9035,9037,9039,9041,9043,9045,9047,9049,9051],{"class":733,"line":1835},[731,9012,4770],{"class":741},[731,9014,4773],{"class":777},[731,9016,4776],{"class":777},[731,9018,1750],{"class":848},[731,9020,4781],{"class":784},[731,9022,4784],{"class":741},[731,9024,4787],{"class":741},[731,9026,4673],{"class":784},[731,9028,4792],{"class":741},[731,9030,794],{"class":741},[731,9032,4797],{"class":797},[731,9034,969],{"class":741},[731,9036,4784],{"class":741},[731,9038,4804],{"class":741},[731,9040,4807],{"class":784},[731,9042,1184],{"class":741},[731,9044,4812],{"class":836},[731,9046,839],{"class":848},[731,9048,4781],{"class":784},[731,9050,4692],{"class":848},[731,9052,842],{"class":741},[731,9054,9055],{"class":733,"line":1850},[731,9056,4825],{"class":1814},[731,9058,9059,9061,9063,9065,9067,9069,9071,9073,9075,9077,9079,9081,9083,9085,9087,9089],{"class":733,"line":1860},[731,9060,4749],{"class":784},[731,9062,3347],{"class":848},[731,9064,3327],{"class":784},[731,9066,4756],{"class":848},[731,9068,1193],{"class":741},[731,9070,4594],{"class":836},[731,9072,839],{"class":848},[731,9074,4781],{"class":784},[731,9076,4846],{"class":777},[731,9078,3168],{"class":737},[731,9080,3159],{"class":741},[731,9082,3173],{"class":737},[731,9084,930],{"class":741},[731,9086,3178],{"class":737},[731,9088,3270],{"class":741},[731,9090,884],{"class":848},[731,9092,9093,9095,9097],{"class":733,"line":1877},[731,9094,4770],{"class":741},[731,9096,4773],{"class":777},[731,9098,745],{"class":741},[731,9100,9101,9103,9105,9107,9109,9111],{"class":733,"line":1902},[731,9102,4749],{"class":784},[731,9104,3347],{"class":848},[731,9106,3327],{"class":784},[731,9108,4756],{"class":848},[731,9110,1193],{"class":741},[731,9112,4883],{"class":784},[731,9114,9115],{"class":733,"line":1908},[731,9116,3357],{"class":741},[731,9118,9119],{"class":733,"line":1914},[731,9120,3363],{"class":741},[731,9122,9123],{"class":733,"line":1922},[731,9124,824],{"emptyLinePlaceholder":823},[731,9126,9127,9129],{"class":733,"line":2125},[731,9128,2329],{"class":777},[731,9130,3371],{"class":784},[731,9132,9133],{"class":733,"line":2354},[731,9134,766],{"class":741},[731,9136,9137,9139,9141,9143,9145,9147,9149],{"class":733,"line":3184},[731,9138,1257],{"class":784},[731,9140,1184],{"class":741},[731,9142,1262],{"class":836},[731,9144,839],{"class":784},[731,9146,738],{"class":836},[731,9148,839],{"class":784},[731,9150,842],{"class":741},[731,9152,9153,9155,9157,9159,9161,9163,9165],{"class":733,"line":3197},[731,9154,5923],{"class":836},[731,9156,742],{"class":741},[731,9158,1750],{"class":741},[731,9160,4962],{"class":1753},[731,9162,1216],{"class":741},[731,9164,1759],{"class":921},[731,9166,745],{"class":741},[731,9168,9169],{"class":733,"line":3258},[731,9170,5940],{"class":1814},[731,9172,9173,9175,9177,9179,9181,9183,9185,9187,9189,9191,9193,9195,9197,9199,9201],{"class":733,"line":3275},[731,9174,5945],{"class":784},[731,9176,1184],{"class":741},[731,9178,1754],{"class":784},[731,9180,948],{"class":741},[731,9182,4594],{"class":836},[731,9184,839],{"class":848},[731,9186,4962],{"class":784},[731,9188,1184],{"class":741},[731,9190,1754],{"class":784},[731,9192,2878],{"class":848},[731,9194,4999],{"class":777},[731,9196,4787],{"class":741},[731,9198,5004],{"class":784},[731,9200,1184],{"class":741},[731,9202,5009],{"class":784},[731,9204,9205],{"class":733,"line":3296},[731,9206,1911],{"class":741},[731,9208,9209,9211],{"class":733,"line":3319},[731,9210,881],{"class":741},[731,9212,1281],{"class":784},[721,9214,9216],{"className":723,"code":9215,"filename":265,"language":725,"meta":1451,"style":727},"import { EvlogModule } from 'evlog\u002Fnestjs'\n\nconst SENSITIVE_KEYS = ['password', 'token', 'secret', 'apiKey', 'authorization', 'cookie']\n\nfunction deepSanitize(obj: Record\u003Cstring, unknown>): Record\u003Cstring, unknown> {\n  const result: Record\u003Cstring, unknown> = {}\n\n  for (const [key, value] of Object.entries(obj)) {\n    \u002F\u002F Check if key contains any sensitive keyword (case-insensitive)\n    if (SENSITIVE_KEYS.some(k => key.toLowerCase().includes(k))) {\n      result[key] = '[REDACTED]'\n    } else if (value && typeof value === 'object' && !Array.isArray(value)) {\n      \u002F\u002F Recursively sanitize nested objects\n      result[key] = deepSanitize(value as Record\u003Cstring, unknown>)\n    } else {\n      result[key] = value\n    }\n  }\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",[620,9217,9218,9236,9240,9298,9302,9340,9364,9368,9402,9406,9444,9462,9506,9510,9544,9552,9566,9570,9574,9578,9584,9588,9600,9616,9620,9652,9656],{"__ignoreMap":727},[731,9219,9220,9222,9224,9226,9228,9230,9232,9234],{"class":733,"line":734},[731,9221,778],{"class":777},[731,9223,781],{"class":741},[731,9225,1462],{"class":784},[731,9227,788],{"class":741},[731,9229,791],{"class":777},[731,9231,794],{"class":741},[731,9233,1471],{"class":797},[731,9235,801],{"class":741},[731,9237,9238],{"class":733,"line":748},[731,9239,824],{"emptyLinePlaceholder":823},[731,9241,9242,9244,9246,9248,9250,9252,9254,9256,9258,9260,9262,9264,9266,9268,9270,9272,9274,9276,9278,9280,9282,9284,9286,9288,9290,9292,9294,9296],{"class":733,"line":763},[731,9243,1535],{"class":921},[731,9245,4529],{"class":784},[731,9247,1193],{"class":741},[731,9249,854],{"class":784},[731,9251,969],{"class":741},[731,9253,3215],{"class":797},[731,9255,969],{"class":741},[731,9257,930],{"class":741},[731,9259,794],{"class":741},[731,9261,3224],{"class":797},[731,9263,969],{"class":741},[731,9265,930],{"class":741},[731,9267,794],{"class":741},[731,9269,3233],{"class":797},[731,9271,969],{"class":741},[731,9273,930],{"class":741},[731,9275,794],{"class":741},[731,9277,3242],{"class":797},[731,9279,969],{"class":741},[731,9281,930],{"class":741},[731,9283,794],{"class":741},[731,9285,3251],{"class":797},[731,9287,969],{"class":741},[731,9289,930],{"class":741},[731,9291,794],{"class":741},[731,9293,4578],{"class":797},[731,9295,969],{"class":741},[731,9297,1223],{"class":784},[731,9299,9300],{"class":733,"line":827},[731,9301,824],{"emptyLinePlaceholder":823},[731,9303,9304,9306,9308,9310,9312,9314,9316,9318,9320,9322,9324,9326,9328,9330,9332,9334,9336,9338],{"class":733,"line":845},[731,9305,4591],{"class":921},[731,9307,4594],{"class":836},[731,9309,839],{"class":741},[731,9311,3290],{"class":1753},[731,9313,742],{"class":741},[731,9315,3168],{"class":737},[731,9317,3159],{"class":741},[731,9319,3173],{"class":737},[731,9321,930],{"class":741},[731,9323,3178],{"class":737},[731,9325,4613],{"class":741},[731,9327,3168],{"class":737},[731,9329,3159],{"class":741},[731,9331,3173],{"class":737},[731,9333,930],{"class":741},[731,9335,3178],{"class":737},[731,9337,3270],{"class":741},[731,9339,745],{"class":741},[731,9341,9342,9344,9346,9348,9350,9352,9354,9356,9358,9360,9362],{"class":733,"line":878},[731,9343,1766],{"class":921},[731,9345,3280],{"class":784},[731,9347,742],{"class":741},[731,9349,3168],{"class":737},[731,9351,3159],{"class":741},[731,9353,3173],{"class":737},[731,9355,930],{"class":741},[731,9357,3178],{"class":737},[731,9359,3270],{"class":741},[731,9361,948],{"class":741},[731,9363,4652],{"class":741},[731,9365,9366],{"class":733,"line":1806},[731,9367,824],{"emptyLinePlaceholder":823},[731,9369,9370,9372,9374,9376,9378,9380,9382,9384,9386,9388,9390,9392,9394,9396,9398,9400],{"class":733,"line":1811},[731,9371,3299],{"class":777},[731,9373,1750],{"class":848},[731,9375,1535],{"class":921},[731,9377,854],{"class":741},[731,9379,3327],{"class":784},[731,9381,930],{"class":741},[731,9383,4673],{"class":784},[731,9385,2842],{"class":741},[731,9387,3309],{"class":741},[731,9389,4680],{"class":784},[731,9391,1184],{"class":741},[731,9393,4685],{"class":836},[731,9395,839],{"class":848},[731,9397,3290],{"class":784},[731,9399,4692],{"class":848},[731,9401,842],{"class":741},[731,9403,9404],{"class":733,"line":1818},[731,9405,4699],{"class":1814},[731,9407,9408,9410,9412,9414,9416,9418,9420,9422,9424,9426,9428,9430,9432,9434,9436,9438,9440,9442],{"class":733,"line":1824},[731,9409,3322],{"class":777},[731,9411,1750],{"class":848},[731,9413,4708],{"class":784},[731,9415,1184],{"class":741},[731,9417,4713],{"class":836},[731,9419,839],{"class":848},[731,9421,4718],{"class":1753},[731,9423,1759],{"class":921},[731,9425,3306],{"class":784},[731,9427,1184],{"class":741},[731,9429,4727],{"class":836},[731,9431,4730],{"class":848},[731,9433,1184],{"class":741},[731,9435,4735],{"class":836},[731,9437,839],{"class":848},[731,9439,4718],{"class":784},[731,9441,4742],{"class":848},[731,9443,842],{"class":741},[731,9445,9446,9448,9450,9452,9454,9456,9458,9460],{"class":733,"line":1829},[731,9447,4749],{"class":784},[731,9449,3347],{"class":848},[731,9451,3327],{"class":784},[731,9453,4756],{"class":848},[731,9455,1193],{"class":741},[731,9457,794],{"class":741},[731,9459,4763],{"class":797},[731,9461,801],{"class":741},[731,9463,9464,9466,9468,9470,9472,9474,9476,9478,9480,9482,9484,9486,9488,9490,9492,9494,9496,9498,9500,9502,9504],{"class":733,"line":1835},[731,9465,4770],{"class":741},[731,9467,4773],{"class":777},[731,9469,4776],{"class":777},[731,9471,1750],{"class":848},[731,9473,4781],{"class":784},[731,9475,4784],{"class":741},[731,9477,4787],{"class":741},[731,9479,4673],{"class":784},[731,9481,4792],{"class":741},[731,9483,794],{"class":741},[731,9485,4797],{"class":797},[731,9487,969],{"class":741},[731,9489,4784],{"class":741},[731,9491,4804],{"class":741},[731,9493,4807],{"class":784},[731,9495,1184],{"class":741},[731,9497,4812],{"class":836},[731,9499,839],{"class":848},[731,9501,4781],{"class":784},[731,9503,4692],{"class":848},[731,9505,842],{"class":741},[731,9507,9508],{"class":733,"line":1850},[731,9509,4825],{"class":1814},[731,9511,9512,9514,9516,9518,9520,9522,9524,9526,9528,9530,9532,9534,9536,9538,9540,9542],{"class":733,"line":1860},[731,9513,4749],{"class":784},[731,9515,3347],{"class":848},[731,9517,3327],{"class":784},[731,9519,4756],{"class":848},[731,9521,1193],{"class":741},[731,9523,4594],{"class":836},[731,9525,839],{"class":848},[731,9527,4781],{"class":784},[731,9529,4846],{"class":777},[731,9531,3168],{"class":737},[731,9533,3159],{"class":741},[731,9535,3173],{"class":737},[731,9537,930],{"class":741},[731,9539,3178],{"class":737},[731,9541,3270],{"class":741},[731,9543,884],{"class":848},[731,9545,9546,9548,9550],{"class":733,"line":1877},[731,9547,4770],{"class":741},[731,9549,4773],{"class":777},[731,9551,745],{"class":741},[731,9553,9554,9556,9558,9560,9562,9564],{"class":733,"line":1902},[731,9555,4749],{"class":784},[731,9557,3347],{"class":848},[731,9559,3327],{"class":784},[731,9561,4756],{"class":848},[731,9563,1193],{"class":741},[731,9565,4883],{"class":784},[731,9567,9568],{"class":733,"line":1908},[731,9569,3357],{"class":741},[731,9571,9572],{"class":733,"line":1914},[731,9573,3363],{"class":741},[731,9575,9576],{"class":733,"line":1922},[731,9577,824],{"emptyLinePlaceholder":823},[731,9579,9580,9582],{"class":733,"line":2125},[731,9581,2329],{"class":777},[731,9583,3371],{"class":784},[731,9585,9586],{"class":733,"line":2354},[731,9587,766],{"class":741},[731,9589,9590,9592,9594,9596,9598],{"class":733,"line":3184},[731,9591,1482],{"class":784},[731,9593,1184],{"class":741},[731,9595,1487],{"class":836},[731,9597,839],{"class":784},[731,9599,842],{"class":741},[731,9601,9602,9604,9606,9608,9610,9612,9614],{"class":733,"line":3197},[731,9603,5923],{"class":836},[731,9605,742],{"class":741},[731,9607,1750],{"class":741},[731,9609,4962],{"class":1753},[731,9611,1216],{"class":741},[731,9613,1759],{"class":921},[731,9615,745],{"class":741},[731,9617,9618],{"class":733,"line":3258},[731,9619,5940],{"class":1814},[731,9621,9622,9624,9626,9628,9630,9632,9634,9636,9638,9640,9642,9644,9646,9648,9650],{"class":733,"line":3275},[731,9623,5945],{"class":784},[731,9625,1184],{"class":741},[731,9627,1754],{"class":784},[731,9629,948],{"class":741},[731,9631,4594],{"class":836},[731,9633,839],{"class":848},[731,9635,4962],{"class":784},[731,9637,1184],{"class":741},[731,9639,1754],{"class":784},[731,9641,2878],{"class":848},[731,9643,4999],{"class":777},[731,9645,4787],{"class":741},[731,9647,5004],{"class":784},[731,9649,1184],{"class":741},[731,9651,5009],{"class":784},[731,9653,9654],{"class":733,"line":3296},[731,9655,1911],{"class":741},[731,9657,9658,9660],{"class":733,"line":3319},[731,9659,881],{"class":741},[731,9661,884],{"class":784},[721,9663,9665],{"className":723,"code":9664,"filename":309,"language":725,"meta":1505,"style":727},"import { withEvlog } from 'evlog\u002Forpc'\n\nconst SENSITIVE_KEYS = ['password', 'token', 'secret', 'apiKey', 'authorization', 'cookie']\n\nfunction deepSanitize(obj: Record\u003Cstring, unknown>): Record\u003Cstring, unknown> {\n  const result: Record\u003Cstring, unknown> = {}\n\n  for (const [key, value] of Object.entries(obj)) {\n    \u002F\u002F Check if key contains any sensitive keyword (case-insensitive)\n    if (SENSITIVE_KEYS.some(k => key.toLowerCase().includes(k))) {\n      result[key] = '[REDACTED]'\n    } else if (value && typeof value === 'object' && !Array.isArray(value)) {\n      \u002F\u002F Recursively sanitize nested objects\n      result[key] = deepSanitize(value as Record\u003Cstring, unknown>)\n    } else {\n      result[key] = value\n    }\n  }\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",[620,9666,9667,9685,9689,9747,9751,9789,9813,9817,9851,9855,9893,9911,9955,9959,9993,10001,10015,10019,10023,10027,10033,10037,10059,10075,10079,10111,10115],{"__ignoreMap":727},[731,9668,9669,9671,9673,9675,9677,9679,9681,9683],{"class":733,"line":734},[731,9670,778],{"class":777},[731,9672,781],{"class":741},[731,9674,927],{"class":784},[731,9676,788],{"class":741},[731,9678,791],{"class":777},[731,9680,794],{"class":741},[731,9682,1524],{"class":797},[731,9684,801],{"class":741},[731,9686,9687],{"class":733,"line":748},[731,9688,824],{"emptyLinePlaceholder":823},[731,9690,9691,9693,9695,9697,9699,9701,9703,9705,9707,9709,9711,9713,9715,9717,9719,9721,9723,9725,9727,9729,9731,9733,9735,9737,9739,9741,9743,9745],{"class":733,"line":763},[731,9692,1535],{"class":921},[731,9694,4529],{"class":784},[731,9696,1193],{"class":741},[731,9698,854],{"class":784},[731,9700,969],{"class":741},[731,9702,3215],{"class":797},[731,9704,969],{"class":741},[731,9706,930],{"class":741},[731,9708,794],{"class":741},[731,9710,3224],{"class":797},[731,9712,969],{"class":741},[731,9714,930],{"class":741},[731,9716,794],{"class":741},[731,9718,3233],{"class":797},[731,9720,969],{"class":741},[731,9722,930],{"class":741},[731,9724,794],{"class":741},[731,9726,3242],{"class":797},[731,9728,969],{"class":741},[731,9730,930],{"class":741},[731,9732,794],{"class":741},[731,9734,3251],{"class":797},[731,9736,969],{"class":741},[731,9738,930],{"class":741},[731,9740,794],{"class":741},[731,9742,4578],{"class":797},[731,9744,969],{"class":741},[731,9746,1223],{"class":784},[731,9748,9749],{"class":733,"line":827},[731,9750,824],{"emptyLinePlaceholder":823},[731,9752,9753,9755,9757,9759,9761,9763,9765,9767,9769,9771,9773,9775,9777,9779,9781,9783,9785,9787],{"class":733,"line":845},[731,9754,4591],{"class":921},[731,9756,4594],{"class":836},[731,9758,839],{"class":741},[731,9760,3290],{"class":1753},[731,9762,742],{"class":741},[731,9764,3168],{"class":737},[731,9766,3159],{"class":741},[731,9768,3173],{"class":737},[731,9770,930],{"class":741},[731,9772,3178],{"class":737},[731,9774,4613],{"class":741},[731,9776,3168],{"class":737},[731,9778,3159],{"class":741},[731,9780,3173],{"class":737},[731,9782,930],{"class":741},[731,9784,3178],{"class":737},[731,9786,3270],{"class":741},[731,9788,745],{"class":741},[731,9790,9791,9793,9795,9797,9799,9801,9803,9805,9807,9809,9811],{"class":733,"line":878},[731,9792,1766],{"class":921},[731,9794,3280],{"class":784},[731,9796,742],{"class":741},[731,9798,3168],{"class":737},[731,9800,3159],{"class":741},[731,9802,3173],{"class":737},[731,9804,930],{"class":741},[731,9806,3178],{"class":737},[731,9808,3270],{"class":741},[731,9810,948],{"class":741},[731,9812,4652],{"class":741},[731,9814,9815],{"class":733,"line":1806},[731,9816,824],{"emptyLinePlaceholder":823},[731,9818,9819,9821,9823,9825,9827,9829,9831,9833,9835,9837,9839,9841,9843,9845,9847,9849],{"class":733,"line":1811},[731,9820,3299],{"class":777},[731,9822,1750],{"class":848},[731,9824,1535],{"class":921},[731,9826,854],{"class":741},[731,9828,3327],{"class":784},[731,9830,930],{"class":741},[731,9832,4673],{"class":784},[731,9834,2842],{"class":741},[731,9836,3309],{"class":741},[731,9838,4680],{"class":784},[731,9840,1184],{"class":741},[731,9842,4685],{"class":836},[731,9844,839],{"class":848},[731,9846,3290],{"class":784},[731,9848,4692],{"class":848},[731,9850,842],{"class":741},[731,9852,9853],{"class":733,"line":1818},[731,9854,4699],{"class":1814},[731,9856,9857,9859,9861,9863,9865,9867,9869,9871,9873,9875,9877,9879,9881,9883,9885,9887,9889,9891],{"class":733,"line":1824},[731,9858,3322],{"class":777},[731,9860,1750],{"class":848},[731,9862,4708],{"class":784},[731,9864,1184],{"class":741},[731,9866,4713],{"class":836},[731,9868,839],{"class":848},[731,9870,4718],{"class":1753},[731,9872,1759],{"class":921},[731,9874,3306],{"class":784},[731,9876,1184],{"class":741},[731,9878,4727],{"class":836},[731,9880,4730],{"class":848},[731,9882,1184],{"class":741},[731,9884,4735],{"class":836},[731,9886,839],{"class":848},[731,9888,4718],{"class":784},[731,9890,4742],{"class":848},[731,9892,842],{"class":741},[731,9894,9895,9897,9899,9901,9903,9905,9907,9909],{"class":733,"line":1829},[731,9896,4749],{"class":784},[731,9898,3347],{"class":848},[731,9900,3327],{"class":784},[731,9902,4756],{"class":848},[731,9904,1193],{"class":741},[731,9906,794],{"class":741},[731,9908,4763],{"class":797},[731,9910,801],{"class":741},[731,9912,9913,9915,9917,9919,9921,9923,9925,9927,9929,9931,9933,9935,9937,9939,9941,9943,9945,9947,9949,9951,9953],{"class":733,"line":1835},[731,9914,4770],{"class":741},[731,9916,4773],{"class":777},[731,9918,4776],{"class":777},[731,9920,1750],{"class":848},[731,9922,4781],{"class":784},[731,9924,4784],{"class":741},[731,9926,4787],{"class":741},[731,9928,4673],{"class":784},[731,9930,4792],{"class":741},[731,9932,794],{"class":741},[731,9934,4797],{"class":797},[731,9936,969],{"class":741},[731,9938,4784],{"class":741},[731,9940,4804],{"class":741},[731,9942,4807],{"class":784},[731,9944,1184],{"class":741},[731,9946,4812],{"class":836},[731,9948,839],{"class":848},[731,9950,4781],{"class":784},[731,9952,4692],{"class":848},[731,9954,842],{"class":741},[731,9956,9957],{"class":733,"line":1850},[731,9958,4825],{"class":1814},[731,9960,9961,9963,9965,9967,9969,9971,9973,9975,9977,9979,9981,9983,9985,9987,9989,9991],{"class":733,"line":1860},[731,9962,4749],{"class":784},[731,9964,3347],{"class":848},[731,9966,3327],{"class":784},[731,9968,4756],{"class":848},[731,9970,1193],{"class":741},[731,9972,4594],{"class":836},[731,9974,839],{"class":848},[731,9976,4781],{"class":784},[731,9978,4846],{"class":777},[731,9980,3168],{"class":737},[731,9982,3159],{"class":741},[731,9984,3173],{"class":737},[731,9986,930],{"class":741},[731,9988,3178],{"class":737},[731,9990,3270],{"class":741},[731,9992,884],{"class":848},[731,9994,9995,9997,9999],{"class":733,"line":1877},[731,9996,4770],{"class":741},[731,9998,4773],{"class":777},[731,10000,745],{"class":741},[731,10002,10003,10005,10007,10009,10011,10013],{"class":733,"line":1902},[731,10004,4749],{"class":784},[731,10006,3347],{"class":848},[731,10008,3327],{"class":784},[731,10010,4756],{"class":848},[731,10012,1193],{"class":741},[731,10014,4883],{"class":784},[731,10016,10017],{"class":733,"line":1908},[731,10018,3357],{"class":741},[731,10020,10021],{"class":733,"line":1914},[731,10022,3363],{"class":741},[731,10024,10025],{"class":733,"line":1922},[731,10026,824],{"emptyLinePlaceholder":823},[731,10028,10029,10031],{"class":733,"line":2125},[731,10030,2329],{"class":777},[731,10032,3371],{"class":784},[731,10034,10035],{"class":733,"line":2354},[731,10036,766],{"class":741},[731,10038,10039,10041,10043,10045,10047,10049,10051,10053,10055,10057],{"class":733,"line":3184},[731,10040,1535],{"class":921},[731,10042,1538],{"class":784},[731,10044,1193],{"class":741},[731,10046,927],{"class":836},[731,10048,839],{"class":784},[731,10050,1547],{"class":741},[731,10052,1550],{"class":836},[731,10054,1553],{"class":784},[731,10056,930],{"class":741},[731,10058,745],{"class":741},[731,10060,10061,10063,10065,10067,10069,10071,10073],{"class":733,"line":3197},[731,10062,5923],{"class":836},[731,10064,742],{"class":741},[731,10066,1750],{"class":741},[731,10068,4962],{"class":1753},[731,10070,1216],{"class":741},[731,10072,1759],{"class":921},[731,10074,745],{"class":741},[731,10076,10077],{"class":733,"line":3258},[731,10078,5940],{"class":1814},[731,10080,10081,10083,10085,10087,10089,10091,10093,10095,10097,10099,10101,10103,10105,10107,10109],{"class":733,"line":3275},[731,10082,5945],{"class":784},[731,10084,1184],{"class":741},[731,10086,1754],{"class":784},[731,10088,948],{"class":741},[731,10090,4594],{"class":836},[731,10092,839],{"class":848},[731,10094,4962],{"class":784},[731,10096,1184],{"class":741},[731,10098,1754],{"class":784},[731,10100,2878],{"class":848},[731,10102,4999],{"class":777},[731,10104,4787],{"class":741},[731,10106,5004],{"class":784},[731,10108,1184],{"class":741},[731,10110,5009],{"class":784},[731,10112,10113],{"class":733,"line":3296},[731,10114,1911],{"class":741},[731,10116,10117,10119],{"class":733,"line":3319},[731,10118,881],{"class":741},[731,10120,884],{"class":784},[721,10122,10124],{"className":723,"code":10123,"filename":295,"language":725,"meta":1571,"style":727},"import { withEvlog } from 'evlog\u002Fworkers'\n\nconst SENSITIVE_KEYS = ['password', 'token', 'secret', 'apiKey', 'authorization', 'cookie']\n\nfunction deepSanitize(obj: Record\u003Cstring, unknown>): Record\u003Cstring, unknown> {\n  const result: Record\u003Cstring, unknown> = {}\n\n  for (const [key, value] of Object.entries(obj)) {\n    \u002F\u002F Check if key contains any sensitive keyword (case-insensitive)\n    if (SENSITIVE_KEYS.some(k => key.toLowerCase().includes(k))) {\n      result[key] = '[REDACTED]'\n    } else if (value && typeof value === 'object' && !Array.isArray(value)) {\n      \u002F\u002F Recursively sanitize nested objects\n      result[key] = deepSanitize(value as Record\u003Cstring, unknown>)\n    } else {\n      result[key] = value\n    }\n  }\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",[620,10125,10126,10144,10148,10206,10210,10248,10272,10276,10310,10314,10352,10370,10414,10418,10452,10460,10474,10478,10482,10486,10492,10496,10510,10526,10530,10562,10566],{"__ignoreMap":727},[731,10127,10128,10130,10132,10134,10136,10138,10140,10142],{"class":733,"line":734},[731,10129,778],{"class":777},[731,10131,781],{"class":741},[731,10133,927],{"class":784},[731,10135,788],{"class":741},[731,10137,791],{"class":777},[731,10139,794],{"class":741},[731,10141,1590],{"class":797},[731,10143,801],{"class":741},[731,10145,10146],{"class":733,"line":748},[731,10147,824],{"emptyLinePlaceholder":823},[731,10149,10150,10152,10154,10156,10158,10160,10162,10164,10166,10168,10170,10172,10174,10176,10178,10180,10182,10184,10186,10188,10190,10192,10194,10196,10198,10200,10202,10204],{"class":733,"line":763},[731,10151,1535],{"class":921},[731,10153,4529],{"class":784},[731,10155,1193],{"class":741},[731,10157,854],{"class":784},[731,10159,969],{"class":741},[731,10161,3215],{"class":797},[731,10163,969],{"class":741},[731,10165,930],{"class":741},[731,10167,794],{"class":741},[731,10169,3224],{"class":797},[731,10171,969],{"class":741},[731,10173,930],{"class":741},[731,10175,794],{"class":741},[731,10177,3233],{"class":797},[731,10179,969],{"class":741},[731,10181,930],{"class":741},[731,10183,794],{"class":741},[731,10185,3242],{"class":797},[731,10187,969],{"class":741},[731,10189,930],{"class":741},[731,10191,794],{"class":741},[731,10193,3251],{"class":797},[731,10195,969],{"class":741},[731,10197,930],{"class":741},[731,10199,794],{"class":741},[731,10201,4578],{"class":797},[731,10203,969],{"class":741},[731,10205,1223],{"class":784},[731,10207,10208],{"class":733,"line":827},[731,10209,824],{"emptyLinePlaceholder":823},[731,10211,10212,10214,10216,10218,10220,10222,10224,10226,10228,10230,10232,10234,10236,10238,10240,10242,10244,10246],{"class":733,"line":845},[731,10213,4591],{"class":921},[731,10215,4594],{"class":836},[731,10217,839],{"class":741},[731,10219,3290],{"class":1753},[731,10221,742],{"class":741},[731,10223,3168],{"class":737},[731,10225,3159],{"class":741},[731,10227,3173],{"class":737},[731,10229,930],{"class":741},[731,10231,3178],{"class":737},[731,10233,4613],{"class":741},[731,10235,3168],{"class":737},[731,10237,3159],{"class":741},[731,10239,3173],{"class":737},[731,10241,930],{"class":741},[731,10243,3178],{"class":737},[731,10245,3270],{"class":741},[731,10247,745],{"class":741},[731,10249,10250,10252,10254,10256,10258,10260,10262,10264,10266,10268,10270],{"class":733,"line":878},[731,10251,1766],{"class":921},[731,10253,3280],{"class":784},[731,10255,742],{"class":741},[731,10257,3168],{"class":737},[731,10259,3159],{"class":741},[731,10261,3173],{"class":737},[731,10263,930],{"class":741},[731,10265,3178],{"class":737},[731,10267,3270],{"class":741},[731,10269,948],{"class":741},[731,10271,4652],{"class":741},[731,10273,10274],{"class":733,"line":1806},[731,10275,824],{"emptyLinePlaceholder":823},[731,10277,10278,10280,10282,10284,10286,10288,10290,10292,10294,10296,10298,10300,10302,10304,10306,10308],{"class":733,"line":1811},[731,10279,3299],{"class":777},[731,10281,1750],{"class":848},[731,10283,1535],{"class":921},[731,10285,854],{"class":741},[731,10287,3327],{"class":784},[731,10289,930],{"class":741},[731,10291,4673],{"class":784},[731,10293,2842],{"class":741},[731,10295,3309],{"class":741},[731,10297,4680],{"class":784},[731,10299,1184],{"class":741},[731,10301,4685],{"class":836},[731,10303,839],{"class":848},[731,10305,3290],{"class":784},[731,10307,4692],{"class":848},[731,10309,842],{"class":741},[731,10311,10312],{"class":733,"line":1818},[731,10313,4699],{"class":1814},[731,10315,10316,10318,10320,10322,10324,10326,10328,10330,10332,10334,10336,10338,10340,10342,10344,10346,10348,10350],{"class":733,"line":1824},[731,10317,3322],{"class":777},[731,10319,1750],{"class":848},[731,10321,4708],{"class":784},[731,10323,1184],{"class":741},[731,10325,4713],{"class":836},[731,10327,839],{"class":848},[731,10329,4718],{"class":1753},[731,10331,1759],{"class":921},[731,10333,3306],{"class":784},[731,10335,1184],{"class":741},[731,10337,4727],{"class":836},[731,10339,4730],{"class":848},[731,10341,1184],{"class":741},[731,10343,4735],{"class":836},[731,10345,839],{"class":848},[731,10347,4718],{"class":784},[731,10349,4742],{"class":848},[731,10351,842],{"class":741},[731,10353,10354,10356,10358,10360,10362,10364,10366,10368],{"class":733,"line":1829},[731,10355,4749],{"class":784},[731,10357,3347],{"class":848},[731,10359,3327],{"class":784},[731,10361,4756],{"class":848},[731,10363,1193],{"class":741},[731,10365,794],{"class":741},[731,10367,4763],{"class":797},[731,10369,801],{"class":741},[731,10371,10372,10374,10376,10378,10380,10382,10384,10386,10388,10390,10392,10394,10396,10398,10400,10402,10404,10406,10408,10410,10412],{"class":733,"line":1835},[731,10373,4770],{"class":741},[731,10375,4773],{"class":777},[731,10377,4776],{"class":777},[731,10379,1750],{"class":848},[731,10381,4781],{"class":784},[731,10383,4784],{"class":741},[731,10385,4787],{"class":741},[731,10387,4673],{"class":784},[731,10389,4792],{"class":741},[731,10391,794],{"class":741},[731,10393,4797],{"class":797},[731,10395,969],{"class":741},[731,10397,4784],{"class":741},[731,10399,4804],{"class":741},[731,10401,4807],{"class":784},[731,10403,1184],{"class":741},[731,10405,4812],{"class":836},[731,10407,839],{"class":848},[731,10409,4781],{"class":784},[731,10411,4692],{"class":848},[731,10413,842],{"class":741},[731,10415,10416],{"class":733,"line":1850},[731,10417,4825],{"class":1814},[731,10419,10420,10422,10424,10426,10428,10430,10432,10434,10436,10438,10440,10442,10444,10446,10448,10450],{"class":733,"line":1860},[731,10421,4749],{"class":784},[731,10423,3347],{"class":848},[731,10425,3327],{"class":784},[731,10427,4756],{"class":848},[731,10429,1193],{"class":741},[731,10431,4594],{"class":836},[731,10433,839],{"class":848},[731,10435,4781],{"class":784},[731,10437,4846],{"class":777},[731,10439,3168],{"class":737},[731,10441,3159],{"class":741},[731,10443,3173],{"class":737},[731,10445,930],{"class":741},[731,10447,3178],{"class":737},[731,10449,3270],{"class":741},[731,10451,884],{"class":848},[731,10453,10454,10456,10458],{"class":733,"line":1877},[731,10455,4770],{"class":741},[731,10457,4773],{"class":777},[731,10459,745],{"class":741},[731,10461,10462,10464,10466,10468,10470,10472],{"class":733,"line":1902},[731,10463,4749],{"class":784},[731,10465,3347],{"class":848},[731,10467,3327],{"class":784},[731,10469,4756],{"class":848},[731,10471,1193],{"class":741},[731,10473,4883],{"class":784},[731,10475,10476],{"class":733,"line":1908},[731,10477,3357],{"class":741},[731,10479,10480],{"class":733,"line":1914},[731,10481,3363],{"class":741},[731,10483,10484],{"class":733,"line":1922},[731,10485,824],{"emptyLinePlaceholder":823},[731,10487,10488,10490],{"class":733,"line":2125},[731,10489,2329],{"class":777},[731,10491,3371],{"class":784},[731,10493,10494],{"class":733,"line":2354},[731,10495,766],{"class":741},[731,10497,10498,10500,10502,10504,10506,10508],{"class":733,"line":3184},[731,10499,830],{"class":777},[731,10501,833],{"class":777},[731,10503,927],{"class":836},[731,10505,1607],{"class":784},[731,10507,930],{"class":741},[731,10509,745],{"class":741},[731,10511,10512,10514,10516,10518,10520,10522,10524],{"class":733,"line":3197},[731,10513,5923],{"class":836},[731,10515,742],{"class":741},[731,10517,1750],{"class":741},[731,10519,4962],{"class":1753},[731,10521,1216],{"class":741},[731,10523,1759],{"class":921},[731,10525,745],{"class":741},[731,10527,10528],{"class":733,"line":3258},[731,10529,5940],{"class":1814},[731,10531,10532,10534,10536,10538,10540,10542,10544,10546,10548,10550,10552,10554,10556,10558,10560],{"class":733,"line":3275},[731,10533,5945],{"class":784},[731,10535,1184],{"class":741},[731,10537,1754],{"class":784},[731,10539,948],{"class":741},[731,10541,4594],{"class":836},[731,10543,839],{"class":848},[731,10545,4962],{"class":784},[731,10547,1184],{"class":741},[731,10549,1754],{"class":784},[731,10551,2878],{"class":848},[731,10553,4999],{"class":777},[731,10555,4787],{"class":741},[731,10557,5004],{"class":784},[731,10559,1184],{"class":741},[731,10561,5009],{"class":784},[731,10563,10564],{"class":733,"line":3296},[731,10565,1911],{"class":741},[731,10567,10568,10570],{"class":733,"line":3319},[731,10569,881],{"class":741},[731,10571,884],{"class":784},[721,10573,10575],{"className":723,"code":10574,"filename":300,"language":725,"meta":1227,"style":727},"import { initLogger } from 'evlog'\n\nconst SENSITIVE_KEYS = ['password', 'token', 'secret', 'apiKey', 'authorization', 'cookie']\n\nfunction deepSanitize(obj: Record\u003Cstring, unknown>): Record\u003Cstring, unknown> {\n  const result: Record\u003Cstring, unknown> = {}\n\n  for (const [key, value] of Object.entries(obj)) {\n    \u002F\u002F Check if key contains any sensitive keyword (case-insensitive)\n    if (SENSITIVE_KEYS.some(k => key.toLowerCase().includes(k))) {\n      result[key] = '[REDACTED]'\n    } else if (value && typeof value === 'object' && !Array.isArray(value)) {\n      \u002F\u002F Recursively sanitize nested objects\n      result[key] = deepSanitize(value as Record\u003Cstring, unknown>)\n    } else {\n      result[key] = value\n    }\n  }\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",[620,10576,10577,10595,10599,10657,10661,10699,10723,10727,10761,10765,10803,10821,10865,10869,10903,10911,10925,10929,10933,10937,10943,10947,10955,10971,10975,11007,11011],{"__ignoreMap":727},[731,10578,10579,10581,10583,10585,10587,10589,10591,10593],{"class":733,"line":734},[731,10580,778],{"class":777},[731,10582,781],{"class":741},[731,10584,1635],{"class":784},[731,10586,788],{"class":741},[731,10588,791],{"class":777},[731,10590,794],{"class":741},[731,10592,738],{"class":797},[731,10594,801],{"class":741},[731,10596,10597],{"class":733,"line":748},[731,10598,824],{"emptyLinePlaceholder":823},[731,10600,10601,10603,10605,10607,10609,10611,10613,10615,10617,10619,10621,10623,10625,10627,10629,10631,10633,10635,10637,10639,10641,10643,10645,10647,10649,10651,10653,10655],{"class":733,"line":763},[731,10602,1535],{"class":921},[731,10604,4529],{"class":784},[731,10606,1193],{"class":741},[731,10608,854],{"class":784},[731,10610,969],{"class":741},[731,10612,3215],{"class":797},[731,10614,969],{"class":741},[731,10616,930],{"class":741},[731,10618,794],{"class":741},[731,10620,3224],{"class":797},[731,10622,969],{"class":741},[731,10624,930],{"class":741},[731,10626,794],{"class":741},[731,10628,3233],{"class":797},[731,10630,969],{"class":741},[731,10632,930],{"class":741},[731,10634,794],{"class":741},[731,10636,3242],{"class":797},[731,10638,969],{"class":741},[731,10640,930],{"class":741},[731,10642,794],{"class":741},[731,10644,3251],{"class":797},[731,10646,969],{"class":741},[731,10648,930],{"class":741},[731,10650,794],{"class":741},[731,10652,4578],{"class":797},[731,10654,969],{"class":741},[731,10656,1223],{"class":784},[731,10658,10659],{"class":733,"line":827},[731,10660,824],{"emptyLinePlaceholder":823},[731,10662,10663,10665,10667,10669,10671,10673,10675,10677,10679,10681,10683,10685,10687,10689,10691,10693,10695,10697],{"class":733,"line":845},[731,10664,4591],{"class":921},[731,10666,4594],{"class":836},[731,10668,839],{"class":741},[731,10670,3290],{"class":1753},[731,10672,742],{"class":741},[731,10674,3168],{"class":737},[731,10676,3159],{"class":741},[731,10678,3173],{"class":737},[731,10680,930],{"class":741},[731,10682,3178],{"class":737},[731,10684,4613],{"class":741},[731,10686,3168],{"class":737},[731,10688,3159],{"class":741},[731,10690,3173],{"class":737},[731,10692,930],{"class":741},[731,10694,3178],{"class":737},[731,10696,3270],{"class":741},[731,10698,745],{"class":741},[731,10700,10701,10703,10705,10707,10709,10711,10713,10715,10717,10719,10721],{"class":733,"line":878},[731,10702,1766],{"class":921},[731,10704,3280],{"class":784},[731,10706,742],{"class":741},[731,10708,3168],{"class":737},[731,10710,3159],{"class":741},[731,10712,3173],{"class":737},[731,10714,930],{"class":741},[731,10716,3178],{"class":737},[731,10718,3270],{"class":741},[731,10720,948],{"class":741},[731,10722,4652],{"class":741},[731,10724,10725],{"class":733,"line":1806},[731,10726,824],{"emptyLinePlaceholder":823},[731,10728,10729,10731,10733,10735,10737,10739,10741,10743,10745,10747,10749,10751,10753,10755,10757,10759],{"class":733,"line":1811},[731,10730,3299],{"class":777},[731,10732,1750],{"class":848},[731,10734,1535],{"class":921},[731,10736,854],{"class":741},[731,10738,3327],{"class":784},[731,10740,930],{"class":741},[731,10742,4673],{"class":784},[731,10744,2842],{"class":741},[731,10746,3309],{"class":741},[731,10748,4680],{"class":784},[731,10750,1184],{"class":741},[731,10752,4685],{"class":836},[731,10754,839],{"class":848},[731,10756,3290],{"class":784},[731,10758,4692],{"class":848},[731,10760,842],{"class":741},[731,10762,10763],{"class":733,"line":1818},[731,10764,4699],{"class":1814},[731,10766,10767,10769,10771,10773,10775,10777,10779,10781,10783,10785,10787,10789,10791,10793,10795,10797,10799,10801],{"class":733,"line":1824},[731,10768,3322],{"class":777},[731,10770,1750],{"class":848},[731,10772,4708],{"class":784},[731,10774,1184],{"class":741},[731,10776,4713],{"class":836},[731,10778,839],{"class":848},[731,10780,4718],{"class":1753},[731,10782,1759],{"class":921},[731,10784,3306],{"class":784},[731,10786,1184],{"class":741},[731,10788,4727],{"class":836},[731,10790,4730],{"class":848},[731,10792,1184],{"class":741},[731,10794,4735],{"class":836},[731,10796,839],{"class":848},[731,10798,4718],{"class":784},[731,10800,4742],{"class":848},[731,10802,842],{"class":741},[731,10804,10805,10807,10809,10811,10813,10815,10817,10819],{"class":733,"line":1829},[731,10806,4749],{"class":784},[731,10808,3347],{"class":848},[731,10810,3327],{"class":784},[731,10812,4756],{"class":848},[731,10814,1193],{"class":741},[731,10816,794],{"class":741},[731,10818,4763],{"class":797},[731,10820,801],{"class":741},[731,10822,10823,10825,10827,10829,10831,10833,10835,10837,10839,10841,10843,10845,10847,10849,10851,10853,10855,10857,10859,10861,10863],{"class":733,"line":1835},[731,10824,4770],{"class":741},[731,10826,4773],{"class":777},[731,10828,4776],{"class":777},[731,10830,1750],{"class":848},[731,10832,4781],{"class":784},[731,10834,4784],{"class":741},[731,10836,4787],{"class":741},[731,10838,4673],{"class":784},[731,10840,4792],{"class":741},[731,10842,794],{"class":741},[731,10844,4797],{"class":797},[731,10846,969],{"class":741},[731,10848,4784],{"class":741},[731,10850,4804],{"class":741},[731,10852,4807],{"class":784},[731,10854,1184],{"class":741},[731,10856,4812],{"class":836},[731,10858,839],{"class":848},[731,10860,4781],{"class":784},[731,10862,4692],{"class":848},[731,10864,842],{"class":741},[731,10866,10867],{"class":733,"line":1850},[731,10868,4825],{"class":1814},[731,10870,10871,10873,10875,10877,10879,10881,10883,10885,10887,10889,10891,10893,10895,10897,10899,10901],{"class":733,"line":1860},[731,10872,4749],{"class":784},[731,10874,3347],{"class":848},[731,10876,3327],{"class":784},[731,10878,4756],{"class":848},[731,10880,1193],{"class":741},[731,10882,4594],{"class":836},[731,10884,839],{"class":848},[731,10886,4781],{"class":784},[731,10888,4846],{"class":777},[731,10890,3168],{"class":737},[731,10892,3159],{"class":741},[731,10894,3173],{"class":737},[731,10896,930],{"class":741},[731,10898,3178],{"class":737},[731,10900,3270],{"class":741},[731,10902,884],{"class":848},[731,10904,10905,10907,10909],{"class":733,"line":1877},[731,10906,4770],{"class":741},[731,10908,4773],{"class":777},[731,10910,745],{"class":741},[731,10912,10913,10915,10917,10919,10921,10923],{"class":733,"line":1902},[731,10914,4749],{"class":784},[731,10916,3347],{"class":848},[731,10918,3327],{"class":784},[731,10920,4756],{"class":848},[731,10922,1193],{"class":741},[731,10924,4883],{"class":784},[731,10926,10927],{"class":733,"line":1908},[731,10928,3357],{"class":741},[731,10930,10931],{"class":733,"line":1914},[731,10932,3363],{"class":741},[731,10934,10935],{"class":733,"line":1922},[731,10936,824],{"emptyLinePlaceholder":823},[731,10938,10939,10941],{"class":733,"line":2125},[731,10940,2329],{"class":777},[731,10942,3371],{"class":784},[731,10944,10945],{"class":733,"line":2354},[731,10946,766],{"class":741},[731,10948,10949,10951,10953],{"class":733,"line":3184},[731,10950,1654],{"class":836},[731,10952,839],{"class":784},[731,10954,842],{"class":741},[731,10956,10957,10959,10961,10963,10965,10967,10969],{"class":733,"line":3197},[731,10958,5923],{"class":836},[731,10960,742],{"class":741},[731,10962,1750],{"class":741},[731,10964,4962],{"class":1753},[731,10966,1216],{"class":741},[731,10968,1759],{"class":921},[731,10970,745],{"class":741},[731,10972,10973],{"class":733,"line":3258},[731,10974,5940],{"class":1814},[731,10976,10977,10979,10981,10983,10985,10987,10989,10991,10993,10995,10997,10999,11001,11003,11005],{"class":733,"line":3275},[731,10978,5945],{"class":784},[731,10980,1184],{"class":741},[731,10982,1754],{"class":784},[731,10984,948],{"class":741},[731,10986,4594],{"class":836},[731,10988,839],{"class":848},[731,10990,4962],{"class":784},[731,10992,1184],{"class":741},[731,10994,1754],{"class":784},[731,10996,2878],{"class":848},[731,10998,4999],{"class":777},[731,11000,4787],{"class":741},[731,11002,5004],{"class":784},[731,11004,1184],{"class":741},[731,11006,5009],{"class":784},[731,11008,11009],{"class":733,"line":3296},[731,11010,1911],{"class":741},[731,11012,11013,11015],{"class":733,"line":3319},[731,11014,881],{"class":741},[731,11016,884],{"class":784},[707,11018,11020],{"color":11019,"icon":478},"warning","Drain hook sanitization is a safety net, not a replacement for careful logging practices. Always sanitize at the source.",[612,11022,11024],{"id":11023},"production-checklist","Production Checklist",[608,11026,11027],{},"Before deploying to production, verify:",[1697,11029,11031],{"id":11030},"logging-configuration","Logging Configuration",[11033,11034,11037,11050,11056,11062],"ul",{"className":11035},[11036],"contains-task-list",[11038,11039,11042,11046,11047,1216],"li",{"className":11040},[11041],"task-list-item",[11043,11044],"input",{"disabled":823,"type":11045},"checkbox"," Service name is set (",[620,11048,11049],{},"env.service",[11038,11051,11053,11055],{"className":11052},[11041],[11043,11054],{"disabled":823,"type":11045}," Sampling is configured for high-traffic routes",[11038,11057,11059,11061],{"className":11058},[11041],[11043,11060],{"disabled":823,"type":11045}," Log draining is set up for external service (Axiom, Loki, etc.)",[11038,11063,11065,11067,11068,1216],{"className":11064},[11041],[11043,11066],{"disabled":823,"type":11045}," Pretty mode is disabled in production (",[620,11069,11070],{},"pretty: false",[1697,11072,11074],{"id":11073},"data-security","Data Security",[11033,11076,11078,11086,11092,11098,11104,11110,11116],{"className":11077},[11036],[11038,11079,11081,11083,11084,1216],{"className":11080},[11041],[11043,11082],{"disabled":823,"type":11045}," Auto-redaction is enabled (",[620,11085,1690],{},[11038,11087,11089,11091],{"className":11088},[11041],[11043,11090],{"disabled":823,"type":11045}," No passwords or secrets in logs",[11038,11093,11095,11097],{"className":11094},[11041],[11043,11096],{"disabled":823,"type":11045}," No full credit card numbers (only last 4 digits)",[11038,11099,11101,11103],{"className":11100},[11041],[11043,11102],{"disabled":823,"type":11045}," No API keys or tokens",[11038,11105,11107,11109],{"className":11106},[11041],[11043,11108],{"disabled":823,"type":11045}," PII is masked or omitted (emails, phone numbers)",[11038,11111,11113,11115],{"className":11112},[11041],[11043,11114],{"disabled":823,"type":11045}," Session tokens are not logged",[11038,11117,11119,11121,11122,1216],{"className":11118},[11041],[11043,11120],{"disabled":823,"type":11045}," Request bodies are selectively logged (not ",[620,11123,11124],{},"log.set({ body })",[1697,11126,11128],{"id":11127},"error-handling","Error Handling",[11033,11130,11132,11142,11148],{"className":11131},[11036],[11038,11133,11135,11137,11138,11141],{"className":11134},[11041],[11043,11136],{"disabled":823,"type":11045}," Errors use ",[620,11139,11140],{},"createError()"," with structured fields",[11038,11143,11145,11147],{"className":11144},[11041],[11043,11146],{"disabled":823,"type":11045}," Sensitive data is not included in error messages",[11038,11149,11151,11153],{"className":11150},[11041],[11043,11152],{"disabled":823,"type":11045}," Stack traces don't expose internal paths in production",[612,11155,11157],{"id":11156},"group-fields-so-they-stay-queryable","Group fields so they stay queryable",[608,11159,11160],{},"Use consistent, grouped field names across your codebase:",[721,11162,11165],{"className":723,"code":11163,"filename":11164,"language":725,"meta":727,"style":727},"\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",[620,11166,11167,11172,11184,11209,11233,11257,11263,11267,11272,11284,11300,11312,11324,11339],{"__ignoreMap":727},[731,11168,11169],{"class":733,"line":734},[731,11170,11171],{"class":1814},"\u002F\u002F ✅ Good - grouped and descriptive\n",[731,11173,11174,11176,11178,11180,11182],{"class":733,"line":748},[731,11175,2420],{"class":784},[731,11177,1184],{"class":741},[731,11179,1843],{"class":836},[731,11181,839],{"class":784},[731,11183,842],{"class":741},[731,11185,11186,11189,11191,11193,11196,11198,11201,11203,11206],{"class":733,"line":763},[731,11187,11188],{"class":848},"  user",[731,11190,742],{"class":741},[731,11192,781],{"class":741},[731,11194,11195],{"class":784}," id",[731,11197,930],{"class":741},[731,11199,11200],{"class":784}," plan",[731,11202,930],{"class":741},[731,11204,11205],{"class":784}," accountAge ",[731,11207,11208],{"class":741},"},\n",[731,11210,11211,11214,11216,11218,11221,11223,11226,11228,11231],{"class":733,"line":827},[731,11212,11213],{"class":848},"  cart",[731,11215,742],{"class":741},[731,11217,781],{"class":741},[731,11219,11220],{"class":784}," items",[731,11222,930],{"class":741},[731,11224,11225],{"class":784}," total",[731,11227,930],{"class":741},[731,11229,11230],{"class":784}," currency ",[731,11232,11208],{"class":741},[731,11234,11235,11238,11240,11242,11245,11247,11250,11252,11255],{"class":733,"line":845},[731,11236,11237],{"class":848},"  payment",[731,11239,742],{"class":741},[731,11241,781],{"class":741},[731,11243,11244],{"class":784}," method",[731,11246,930],{"class":741},[731,11248,11249],{"class":784}," provider",[731,11251,930],{"class":741},[731,11253,11254],{"class":784}," last4 ",[731,11256,11208],{"class":741},[731,11258,11259,11261],{"class":733,"line":878},[731,11260,881],{"class":741},[731,11262,884],{"class":784},[731,11264,11265],{"class":733,"line":1806},[731,11266,824],{"emptyLinePlaceholder":823},[731,11268,11269],{"class":733,"line":1811},[731,11270,11271],{"class":1814},"\u002F\u002F ❌ Bad - flat and abbreviated\n",[731,11273,11274,11276,11278,11280,11282],{"class":733,"line":1818},[731,11275,2420],{"class":784},[731,11277,1184],{"class":741},[731,11279,1843],{"class":836},[731,11281,839],{"class":784},[731,11283,842],{"class":741},[731,11285,11286,11289,11291,11293,11296,11298],{"class":733,"line":1824},[731,11287,11288],{"class":848},"  uid",[731,11290,742],{"class":741},[731,11292,794],{"class":741},[731,11294,11295],{"class":797},"123",[731,11297,969],{"class":741},[731,11299,760],{"class":741},[731,11301,11302,11305,11307,11310],{"class":733,"line":1829},[731,11303,11304],{"class":848},"  n",[731,11306,742],{"class":741},[731,11308,11309],{"class":2935}," 3",[731,11311,760],{"class":741},[731,11313,11314,11317,11319,11322],{"class":733,"line":1835},[731,11315,11316],{"class":848},"  t",[731,11318,742],{"class":741},[731,11320,11321],{"class":2935}," 9999",[731,11323,760],{"class":741},[731,11325,11326,11329,11331,11333,11335,11337],{"class":733,"line":1850},[731,11327,11328],{"class":848},"  pm",[731,11330,742],{"class":741},[731,11332,794],{"class":741},[731,11334,2993],{"class":797},[731,11336,969],{"class":741},[731,11338,760],{"class":741},[731,11340,11341,11343],{"class":733,"line":1860},[731,11342,881],{"class":741},[731,11344,884],{"class":784},[1697,11346,11348],{"id":11347},"recommended-field-structure","Recommended Field Structure",[629,11350,11351,11360],{},[632,11352,11353],{},[635,11354,11355,11357],{},[638,11356,640],{},[638,11358,11359],{},"Fields",[648,11361,11362,11382,11402,11427,11447],{},[635,11363,11364,11368],{},[653,11365,11366],{},[620,11367,3530],{},[653,11369,11370,11372,11373,11372,11376,11372,11379],{},[620,11371,1872],{},", ",[620,11374,11375],{},"plan",[620,11377,11378],{},"role",[620,11380,11381],{},"accountAge",[635,11383,11384,11388],{},[653,11385,11386],{},[620,11387,2184],{},[653,11389,11390,11372,11393,11372,11396,11372,11399],{},[620,11391,11392],{},"method",[620,11394,11395],{},"path",[620,11397,11398],{},"requestId",[620,11400,11401],{},"traceId",[635,11403,11404,11413],{},[653,11405,11406,11409,11410],{},[620,11407,11408],{},"cart"," \u002F ",[620,11411,11412],{},"order",[653,11414,11415,11372,11418,11372,11421,11372,11424],{},[620,11416,11417],{},"items",[620,11419,11420],{},"total",[620,11422,11423],{},"currency",[620,11425,11426],{},"coupon",[635,11428,11429,11434],{},[653,11430,11431],{},[620,11432,11433],{},"payment",[653,11435,11436,11372,11438,11372,11441,11372,11444],{},[620,11437,11392],{},[620,11439,11440],{},"provider",[620,11442,11443],{},"last4",[620,11445,11446],{},"status",[635,11448,11449,11454],{},[653,11450,11451],{},[620,11452,11453],{},"outcome",[653,11455,11456,11372,11458,11372,11461],{},[620,11457,11446],{},[620,11459,11460],{},"duration",[620,11462,709],{},[612,11464,11466],{"id":11465},"decide-what-survives-sampling","Decide what survives sampling",[608,11468,11469],{},"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:",[721,11471,11473],{"className":723,"code":11472,"filename":726,"language":725,"meta":727,"style":727},"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",[620,11474,11475,11488,11496,11505,11510,11519,11534,11549,11564,11579,11584,11589,11598,11617,11634,11655,11662,11666,11671],{"__ignoreMap":727},[731,11476,11477,11479,11481,11484,11486],{"class":733,"line":734},[731,11478,830],{"class":777},[731,11480,833],{"class":777},[731,11482,11483],{"class":836}," defineNuxtConfig",[731,11485,839],{"class":784},[731,11487,842],{"class":741},[731,11489,11490,11492,11494],{"class":733,"line":748},[731,11491,1201],{"class":848},[731,11493,742],{"class":741},[731,11495,745],{"class":741},[731,11497,11498,11501,11503],{"class":733,"line":763},[731,11499,11500],{"class":848},"    sampling",[731,11502,742],{"class":741},[731,11504,745],{"class":741},[731,11506,11507],{"class":733,"line":827},[731,11508,11509],{"class":1814},"      \u002F\u002F Head sampling: random percentage per level\n",[731,11511,11512,11515,11517],{"class":733,"line":845},[731,11513,11514],{"class":848},"      rates",[731,11516,742],{"class":741},[731,11518,745],{"class":741},[731,11520,11521,11524,11526,11529,11531],{"class":733,"line":878},[731,11522,11523],{"class":848},"        info",[731,11525,742],{"class":741},[731,11527,11528],{"class":2935}," 10",[731,11530,930],{"class":741},[731,11532,11533],{"class":1814},"    \u002F\u002F 10% of success logs\n",[731,11535,11536,11539,11541,11544,11546],{"class":733,"line":1806},[731,11537,11538],{"class":848},"        warn",[731,11540,742],{"class":741},[731,11542,11543],{"class":2935}," 50",[731,11545,930],{"class":741},[731,11547,11548],{"class":1814},"    \u002F\u002F 50% of warnings\n",[731,11550,11551,11554,11556,11559,11561],{"class":733,"line":1811},[731,11552,11553],{"class":848},"        debug",[731,11555,742],{"class":741},[731,11557,11558],{"class":2935}," 0",[731,11560,930],{"class":741},[731,11562,11563],{"class":1814},"    \u002F\u002F No debug logs in prod\n",[731,11565,11566,11569,11571,11574,11576],{"class":733,"line":1818},[731,11567,11568],{"class":848},"        error",[731,11570,742],{"class":741},[731,11572,11573],{"class":2935}," 100",[731,11575,930],{"class":741},[731,11577,11578],{"class":1814},"  \u002F\u002F Always keep errors\n",[731,11580,11581],{"class":733,"line":1824},[731,11582,11583],{"class":741},"      },\n",[731,11585,11586],{"class":733,"line":1829},[731,11587,11588],{"class":1814},"      \u002F\u002F Tail sampling: force-keep based on outcome\n",[731,11590,11591,11594,11596],{"class":733,"line":1835},[731,11592,11593],{"class":848},"      keep",[731,11595,742],{"class":741},[731,11597,1196],{"class":784},[731,11599,11600,11603,11606,11608,11611,11614],{"class":733,"line":1850},[731,11601,11602],{"class":741},"        {",[731,11604,11605],{"class":848}," duration",[731,11607,742],{"class":741},[731,11609,11610],{"class":2935}," 1000",[731,11612,11613],{"class":741}," },",[731,11615,11616],{"class":1814},"           \u002F\u002F Slow requests (≥1s)\n",[731,11618,11619,11621,11624,11626,11629,11631],{"class":733,"line":1860},[731,11620,11602],{"class":741},[731,11622,11623],{"class":848}," status",[731,11625,742],{"class":741},[731,11627,11628],{"class":2935}," 400",[731,11630,11613],{"class":741},[731,11632,11633],{"class":1814},"              \u002F\u002F Client\u002Fserver errors\n",[731,11635,11636,11638,11641,11643,11645,11648,11650,11652],{"class":733,"line":1877},[731,11637,11602],{"class":741},[731,11639,11640],{"class":848}," path",[731,11642,742],{"class":741},[731,11644,794],{"class":741},[731,11646,11647],{"class":797},"\u002Fapi\u002Fpayments\u002F**",[731,11649,969],{"class":741},[731,11651,11613],{"class":741},[731,11653,11654],{"class":1814}," \u002F\u002F Critical paths\n",[731,11656,11657,11660],{"class":733,"line":1902},[731,11658,11659],{"class":784},"      ]",[731,11661,760],{"class":741},[731,11663,11664],{"class":733,"line":1908},[731,11665,1911],{"class":741},[731,11667,11668],{"class":733,"line":1914},[731,11669,11670],{"class":741},"  },\n",[731,11672,11673,11675],{"class":733,"line":1922},[731,11674,881],{"class":741},[731,11676,884],{"class":784},[707,11678,11680,11681,11684,11685,1184],{"color":11679,"icon":13},"info","Use ",[620,11682,11683],{},"$production"," override to keep full logging in development while sampling in production. See ",[1681,11686,11688],{"href":11687},"\u002Fintegrate\u002Fframeworks\u002Fnuxt#sampling","Nuxt framework guide",[612,11690,11692],{"id":11691},"next-steps","Next Steps",[11033,11694,11695,11700,11705],{},[11038,11696,11697,11699],{},[1681,11698,71],{"href":72}," - Built-in PII protection with smart masking",[11038,11701,11702,11704],{},[1681,11703,51],{"href":52}," - Design effective wide events",[11038,11706,11707,11709],{},[1681,11708,56],{"href":57}," - Error handling patterns",[11711,11712,11713],"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":727,"searchDepth":748,"depth":748,"links":11715},[11716,11717,11718,11723,11728,11731,11732],{"id":614,"depth":748,"text":615},{"id":713,"depth":748,"text":71},{"id":1694,"depth":748,"text":1695,"children":11719},[11720,11721,11722],{"id":1699,"depth":763,"text":1700},{"id":2772,"depth":763,"text":2773},{"id":4510,"depth":763,"text":4511},{"id":11023,"depth":748,"text":11024,"children":11724},[11725,11726,11727],{"id":11030,"depth":763,"text":11031},{"id":11073,"depth":763,"text":11074},{"id":11127,"depth":763,"text":11128},{"id":11156,"depth":748,"text":11157,"children":11729},[11730],{"id":11347,"depth":763,"text":11348},{"id":11465,"depth":748,"text":11466},{"id":11691,"depth":748,"text":11692},"Security guidelines, data sanitization, and production tips for evlog. Learn what not to log and how to protect sensitive data.","md",[11736],{"label":148,"icon":146,"to":153,"color":11737,"variant":11738},"neutral","subtle",{},{"icon":388},{"title":560,"description":11733},"4grS-ctxDxuAI2jo2VZVyanqvgDg0TMxszNeGnaZp10",[11744,11746],{"title":555,"path":556,"stem":557,"description":11745,"icon":558,"children":-1},"Build-time optimizations for any Vite-based framework. Auto-init, debug stripping, source location injection, and optional auto-imports.",{"title":564,"path":565,"stem":566,"description":11747,"icon":567,"children":-1},"Choose a logger by context model, extensibility, output, and migration cost, then follow the detailed comparison for your current stack.",1791058671923]