[{"data":1,"prerenderedAt":1617},["ShallowReactive",2],{"navigation_docs":3,"-use-cases-better-auth-identify-user":528,"-use-cases-better-auth-identify-user-surround":1612},[4,29,76,122,304,435,496],{"title":5,"path":6,"stem":7,"children":8,"page":28},"Start","\u002Fstart","1.start",[9,13,18,23],{"title":10,"path":11,"stem":12},"Introduction","\u002Fstart\u002Fintroduction","1.start\u002F1.introduction",{"title":14,"path":15,"stem":16,"icon":17},"Why start with evlog","\u002Fstart\u002Fwhy-evlog","1.start\u002F2.why-evlog","i-lucide-rocket",{"title":19,"path":20,"stem":21,"icon":22},"Installation","\u002Fstart\u002Finstallation","1.start\u002F3.installation","i-lucide-download",{"title":24,"path":25,"stem":26,"icon":27},"Quick Start","\u002Fstart\u002Fquick-start","1.start\u002F4.quick-start","i-lucide-zap",false,{"title":30,"path":31,"stem":32,"children":33,"page":28},"Learn","\u002Flearn","2.learn",[34,38,43,48,53,58,62,67,72],{"title":35,"path":36,"stem":37},"Learn evlog","\u002Flearn\u002Foverview","2.learn\u002F0.overview",{"title":39,"path":40,"stem":41,"icon":42},"Simple Logging","\u002Flearn\u002Fsimple-logging","2.learn\u002F1.simple-logging","i-lucide-terminal",{"title":44,"path":45,"stem":46,"icon":47},"Wide Events","\u002Flearn\u002Fwide-events","2.learn\u002F2.wide-events","i-lucide-layers",{"title":49,"path":50,"stem":51,"icon":52},"Structured Errors","\u002Flearn\u002Fstructured-errors","2.learn\u002F3.structured-errors","i-lucide-shield-alert",{"title":54,"path":55,"stem":56,"icon":57},"Lifecycle","\u002Flearn\u002Flifecycle","2.learn\u002F4.lifecycle","i-lucide-arrow-right-left",{"title":59,"path":60,"stem":61},"Sampling","\u002Flearn\u002Fsampling","2.learn\u002F5.sampling",{"title":63,"path":64,"stem":65,"icon":66},"Auto-Redaction","\u002Flearn\u002Fredaction","2.learn\u002F6.redaction","i-lucide-eye-off",{"title":68,"path":69,"stem":70,"icon":71},"Typed Fields","\u002Flearn\u002Ftyped-fields","2.learn\u002F7.typed-fields","i-simple-icons-typescript",{"title":73,"path":74,"stem":75},"Catalogs","\u002Flearn\u002Fcatalogs","2.learn\u002F8.catalogs",{"title":77,"path":78,"stem":79,"children":80,"page":28},"CLI","\u002Fcli","3.cli",[81,85,90,95,99,103,108,113,118],{"title":82,"path":83,"stem":84},"evlog CLI","\u002Fcli\u002Foverview","3.cli\u002F0.overview",{"title":86,"path":87,"stem":88,"icon":89},"init","\u002Fcli\u002Finit","3.cli\u002F1.init","i-lucide-wand-sparkles",{"title":91,"path":92,"stem":93,"icon":94},"map","\u002Fcli\u002Fmap","3.cli\u002F2.map","i-lucide-radar",{"title":96,"path":97,"stem":98},"Map rules","\u002Fcli\u002Frules","3.cli\u002F3.rules",{"title":100,"path":101,"stem":102},"Map scoring","\u002Fcli\u002Fscoring","3.cli\u002F4.scoring",{"title":104,"path":105,"stem":106,"icon":107},"CI","\u002Fcli\u002Fci","3.cli\u002F5.ci","i-lucide-git-pull-request",{"title":109,"path":110,"stem":111,"icon":112},"doctor","\u002Fcli\u002Fdoctor","3.cli\u002F6.doctor","i-lucide-stethoscope",{"title":114,"path":115,"stem":116,"icon":117},"telemetry","\u002Fcli\u002Ftelemetry","3.cli\u002F7.telemetry","i-lucide-bar-chart-3",{"title":119,"path":120,"stem":121},"evlog agents","\u002Fcli\u002Fagents","3.cli\u002F8.agents",{"title":123,"path":124,"stem":125,"children":126,"page":28},"Integrate","\u002Fintegrate","4.integrate",[127,132,216],{"title":128,"path":129,"stem":130,"icon":131},"Overview","\u002Fintegrate\u002Foverview","4.integrate\u002F0.overview","i-lucide-plug",{"title":133,"path":134,"stem":135,"children":136,"page":28},"Adapters","\u002Fintegrate\u002Fadapters","4.integrate\u002Fadapters",[137,141,171,196],{"title":128,"path":138,"stem":139,"icon":140},"\u002Fintegrate\u002Fadapters\u002Foverview","4.integrate\u002Fadapters\u002F01.overview","i-lucide-list",{"title":142,"path":143,"stem":144,"children":145,"page":28},"Cloud","\u002Fintegrate\u002Fadapters\u002Fcloud","4.integrate\u002Fadapters\u002Fcloud",[146,151,156,161,166],{"title":147,"path":148,"stem":149,"icon":150},"Axiom","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Faxiom","4.integrate\u002Fadapters\u002Fcloud\u002F01.axiom","i-custom-axiom",{"title":152,"path":153,"stem":154,"icon":155},"PostHog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fposthog","4.integrate\u002Fadapters\u002Fcloud\u002F02.posthog","i-simple-icons-posthog",{"title":157,"path":158,"stem":159,"icon":160},"Sentry","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fsentry","4.integrate\u002Fadapters\u002Fcloud\u002F03.sentry","i-simple-icons-sentry",{"title":162,"path":163,"stem":164,"icon":165},"Better Stack","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fbetter-stack","4.integrate\u002Fadapters\u002Fcloud\u002F04.better-stack","i-simple-icons-betterstack",{"title":167,"path":168,"stem":169,"icon":170},"Datadog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fdatadog","4.integrate\u002Fadapters\u002Fcloud\u002F05.datadog","i-simple-icons-datadog",{"title":172,"path":173,"stem":174,"children":175,"page":28},"Cloud or Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fhybrid","4.integrate\u002Fadapters\u002Fhybrid",[176,181,186,191],{"title":177,"path":178,"stem":179,"icon":180},"Grafana Loki","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Floki","4.integrate\u002Fadapters\u002Fhybrid\u002F01.loki","i-simple-icons-grafana",{"title":182,"path":183,"stem":184,"icon":185},"ClickHouse","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fclickhouse","4.integrate\u002Fadapters\u002Fhybrid\u002F02.clickhouse","i-simple-icons-clickhouse",{"title":187,"path":188,"stem":189,"icon":190},"OTLP","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fotlp","4.integrate\u002Fadapters\u002Fhybrid\u002F03.otlp","i-simple-icons-opentelemetry",{"title":192,"path":193,"stem":194,"icon":195},"HyperDX","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fhyperdx","4.integrate\u002Fadapters\u002Fhybrid\u002F04.hyperdx","i-custom-hyperdx",{"title":197,"path":198,"stem":199,"children":200,"page":28},"Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fself-hosted","4.integrate\u002Fadapters\u002Fself-hosted",[201,206,211],{"title":202,"path":203,"stem":204,"icon":205},"File System","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Ffs","4.integrate\u002Fadapters\u002Fself-hosted\u002F01.fs","i-lucide-hard-drive",{"title":207,"path":208,"stem":209,"icon":210},"NuxtHub","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fnuxthub","4.integrate\u002Fadapters\u002Fself-hosted\u002F02.nuxthub","i-simple-icons-nuxt",{"title":212,"path":213,"stem":214,"icon":215},"Memory","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fmemory","4.integrate\u002Fadapters\u002Fself-hosted\u002F03.memory","i-lucide-cpu",{"title":217,"path":218,"stem":219,"children":220,"page":28},"Frameworks","\u002Fintegrate\u002Fframeworks","4.integrate\u002Fframeworks",[221,225,230,235,240,245,250,255,260,265,270,275,280,285,289,294,299],{"title":128,"path":222,"stem":223,"icon":224},"\u002Fintegrate\u002Fframeworks\u002Foverview","4.integrate\u002Fframeworks\u002F00.overview","i-lucide-layout-grid",{"title":226,"path":227,"stem":228,"icon":229},"Nuxt","\u002Fintegrate\u002Fframeworks\u002Fnuxt","4.integrate\u002Fframeworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":231,"path":232,"stem":233,"icon":234},"Next.js","\u002Fintegrate\u002Fframeworks\u002Fnextjs","4.integrate\u002Fframeworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":236,"path":237,"stem":238,"icon":239},"SvelteKit","\u002Fintegrate\u002Fframeworks\u002Fsveltekit","4.integrate\u002Fframeworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":241,"path":242,"stem":243,"icon":244},"Nitro","\u002Fintegrate\u002Fframeworks\u002Fnitro","4.integrate\u002Fframeworks\u002F04.nitro","i-custom-nitro",{"title":246,"path":247,"stem":248,"icon":249},"TanStack Start","\u002Fintegrate\u002Fframeworks\u002Ftanstack-start","4.integrate\u002Fframeworks\u002F05.tanstack-start","i-custom-tanstack",{"title":251,"path":252,"stem":253,"icon":254},"NestJS","\u002Fintegrate\u002Fframeworks\u002Fnestjs","4.integrate\u002Fframeworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":256,"path":257,"stem":258,"icon":259},"Express","\u002Fintegrate\u002Fframeworks\u002Fexpress","4.integrate\u002Fframeworks\u002F07.express","i-simple-icons-express",{"title":261,"path":262,"stem":263,"icon":264},"Hono","\u002Fintegrate\u002Fframeworks\u002Fhono","4.integrate\u002Fframeworks\u002F08.hono","i-simple-icons-hono",{"title":266,"path":267,"stem":268,"icon":269},"Fastify","\u002Fintegrate\u002Fframeworks\u002Ffastify","4.integrate\u002Fframeworks\u002F09.fastify","i-simple-icons-fastify",{"title":271,"path":272,"stem":273,"icon":274},"Elysia","\u002Fintegrate\u002Fframeworks\u002Felysia","4.integrate\u002Fframeworks\u002F10.elysia","i-custom-elysia",{"title":276,"path":277,"stem":278,"icon":279},"React Router","\u002Fintegrate\u002Fframeworks\u002Freact-router","4.integrate\u002Fframeworks\u002F11.react-router","i-custom-reactrouter",{"title":281,"path":282,"stem":283,"icon":284},"Cloudflare Workers","\u002Fintegrate\u002Fframeworks\u002Fcloudflare-workers","4.integrate\u002Fframeworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":286,"path":287,"stem":288,"icon":71},"Standalone","\u002Fintegrate\u002Fframeworks\u002Fstandalone","4.integrate\u002Fframeworks\u002F13.standalone",{"title":290,"path":291,"stem":292,"icon":293},"Astro","\u002Fintegrate\u002Fframeworks\u002Fastro","4.integrate\u002Fframeworks\u002F14.astro","i-simple-icons-astro",{"title":295,"path":296,"stem":297,"icon":298},"oRPC","\u002Fintegrate\u002Fframeworks\u002Forpc","4.integrate\u002Fframeworks\u002F15.orpc","i-lucide-network",{"title":300,"path":301,"stem":302,"icon":303},"AWS Lambda","\u002Fintegrate\u002Fframeworks\u002Faws-lambda","4.integrate\u002Fframeworks\u002F16.aws-lambda","i-custom-lambda",{"title":305,"path":306,"stem":307,"children":308,"page":28},"Use Cases","\u002Fuse-cases","5.use-cases",[309,312,317,346,374,407,427,431],{"title":305,"path":310,"stem":311},"\u002Fuse-cases\u002Foverview","5.use-cases\u002F0.overview",{"title":313,"path":314,"stem":315,"icon":316},"Client Logging","\u002Fuse-cases\u002Fclient-logging","5.use-cases\u002F1.client-logging","i-lucide-monitor",{"title":318,"icon":319,"path":320,"stem":321,"children":322,"page":28},"AI SDK","i-simple-icons-vercel","\u002Fuse-cases\u002Fai-sdk","5.use-cases\u002F2.ai-sdk",[323,326,331,336,341],{"title":128,"path":324,"stem":325,"icon":140},"\u002Fuse-cases\u002Fai-sdk\u002Foverview","5.use-cases\u002F2.ai-sdk\u002F01.overview",{"title":327,"path":328,"stem":329,"icon":330},"Usage","\u002Fuse-cases\u002Fai-sdk\u002Fusage","5.use-cases\u002F2.ai-sdk\u002F02.usage","i-lucide-code",{"title":332,"path":333,"stem":334,"icon":335},"Options","\u002Fuse-cases\u002Fai-sdk\u002Foptions","5.use-cases\u002F2.ai-sdk\u002F03.options","i-lucide-sliders",{"title":337,"path":338,"stem":339,"icon":340},"Metadata","\u002Fuse-cases\u002Fai-sdk\u002Fmetadata","5.use-cases\u002F2.ai-sdk\u002F04.metadata","i-lucide-database",{"title":342,"path":343,"stem":344,"icon":345},"Telemetry","\u002Fuse-cases\u002Fai-sdk\u002Ftelemetry","5.use-cases\u002F2.ai-sdk\u002F05.telemetry","i-lucide-activity",{"title":347,"icon":348,"path":349,"stem":350,"children":351,"page":28},"Better Auth","i-simple-icons-betterauth","\u002Fuse-cases\u002Fbetter-auth","5.use-cases\u002F3.better-auth",[352,355,360,365,369],{"title":128,"path":353,"stem":354,"icon":140},"\u002Fuse-cases\u002Fbetter-auth\u002Foverview","5.use-cases\u002F3.better-auth\u002F01.overview",{"title":356,"path":357,"stem":358,"icon":359},"Identify User","\u002Fuse-cases\u002Fbetter-auth\u002Fidentify-user","5.use-cases\u002F3.better-auth\u002F02.identify-user","i-lucide-user-check",{"title":361,"path":362,"stem":363,"icon":364},"Middleware","\u002Fuse-cases\u002Fbetter-auth\u002Fmiddleware","5.use-cases\u002F3.better-auth\u002F03.middleware","i-lucide-shield",{"title":366,"path":367,"stem":368,"icon":316},"Client Sync","\u002Fuse-cases\u002Fbetter-auth\u002Fclient-sync","5.use-cases\u002F3.better-auth\u002F04.client-sync",{"title":370,"path":371,"stem":372,"icon":373},"Performance","\u002Fuse-cases\u002Fbetter-auth\u002Fperformance","5.use-cases\u002F3.better-auth\u002F05.performance","i-lucide-gauge",{"title":375,"icon":376,"path":377,"stem":378,"children":379,"page":28},"Audit Logs","i-lucide-shield-check","\u002Fuse-cases\u002Faudit","5.use-cases\u002F4.audit",[380,383,388,393,398,402],{"title":128,"path":381,"stem":382,"icon":140},"\u002Fuse-cases\u002Faudit\u002Foverview","5.use-cases\u002F4.audit\u002F01.overview",{"title":384,"path":385,"stem":386,"icon":387},"Schema","\u002Fuse-cases\u002Faudit\u002Fschema","5.use-cases\u002F4.audit\u002F02.schema","i-lucide-file-text",{"title":389,"path":390,"stem":391,"icon":392},"Recording","\u002Fuse-cases\u002Faudit\u002Frecording","5.use-cases\u002F4.audit\u002F03.recording","i-lucide-pen-line",{"title":394,"path":395,"stem":396,"icon":397},"Drains","\u002Fuse-cases\u002Faudit\u002Fpipeline","5.use-cases\u002F4.audit\u002F04.pipeline","i-lucide-link",{"title":399,"path":400,"stem":401,"icon":376},"Compliance","\u002Fuse-cases\u002Faudit\u002Fcompliance","5.use-cases\u002F4.audit\u002F05.compliance",{"title":403,"path":404,"stem":405,"icon":406},"Recipes","\u002Fuse-cases\u002Faudit\u002Frecipes","5.use-cases\u002F4.audit\u002F06.recipes","i-lucide-book-open",{"title":342,"icon":373,"path":408,"stem":409,"children":410,"page":28},"\u002Fuse-cases\u002Ftelemetry","5.use-cases\u002F4.telemetry",[411,414,419,423],{"title":128,"path":412,"stem":413,"icon":140},"\u002Fuse-cases\u002Ftelemetry\u002Foverview","5.use-cases\u002F4.telemetry\u002F01.overview",{"title":415,"path":416,"stem":417,"icon":418},"Setup","\u002Fuse-cases\u002Ftelemetry\u002Fsetup","5.use-cases\u002F4.telemetry\u002F02.setup","i-lucide-wrench",{"title":420,"path":421,"stem":422},"Telemetry Ingest","\u002Fuse-cases\u002Ftelemetry\u002Fingest","5.use-cases\u002F4.telemetry\u002F03.ingest",{"title":424,"path":425,"stem":426,"icon":406},"Reference","\u002Fuse-cases\u002Ftelemetry\u002Freference","5.use-cases\u002F4.telemetry\u002F04.reference",{"title":428,"path":429,"stem":430},"Enrichers","\u002Fuse-cases\u002Fenrichers","5.use-cases\u002F5.enrichers",{"title":432,"path":433,"stem":434},"eve","\u002Fuse-cases\u002Feve","5.use-cases\u002F5.eve",{"title":436,"path":437,"stem":438,"children":439,"page":28},"Extend","\u002Fextend","6.extend",[440,444,449,454,458,463,467,471,476,481,486,491],{"title":128,"path":441,"stem":442,"icon":443},"\u002Fextend\u002Foverview","6.extend\u002F0.overview","i-lucide-blocks",{"title":445,"path":446,"stem":447,"icon":448},"Stream","\u002Fextend\u002Fstream","6.extend\u002F1.stream","i-lucide-radio-tower",{"title":450,"path":451,"stem":452,"icon":453},"Custom framework","\u002Fextend\u002Fcustom-framework","6.extend\u002F10.custom-framework","i-lucide-puzzle",{"title":455,"path":456,"stem":457,"icon":448},"Diagnostics channel","\u002Fextend\u002Fdiagnostics-channel","6.extend\u002F11.diagnostics-channel",{"title":459,"path":460,"stem":461,"icon":462},"FS reader","\u002Fextend\u002Ffs-reader","6.extend\u002F2.fs-reader","i-lucide-folder-search",{"title":403,"path":464,"stem":465,"icon":466},"\u002Fextend\u002Fconsumer-recipes","6.extend\u002F3.consumer-recipes","i-lucide-chef-hat",{"title":468,"path":469,"stem":470},"Plugins","\u002Fextend\u002Fplugins","6.extend\u002F4.plugins",{"title":472,"path":473,"stem":474,"icon":475},"Custom enrichers","\u002Fextend\u002Fcustom-enrichers","6.extend\u002F5.custom-enrichers","i-lucide-sparkles",{"title":477,"path":478,"stem":479,"icon":480},"Tail sampling","\u002Fextend\u002Ftail-sampling","6.extend\u002F6.tail-sampling","i-lucide-filter",{"title":482,"path":483,"stem":484,"icon":485},"Identity headers","\u002Fextend\u002Fidentity-headers","6.extend\u002F7.identity-headers","i-lucide-fingerprint",{"title":487,"path":488,"stem":489,"icon":490},"Custom drains","\u002Fextend\u002Fcustom-drains","6.extend\u002F8.custom-drains","i-lucide-share-2",{"title":492,"path":493,"stem":494,"icon":495},"Drain pipeline","\u002Fextend\u002Fdrain-pipeline","6.extend\u002F9.drain-pipeline","i-lucide-workflow",{"title":424,"path":497,"stem":498,"children":499,"page":28},"\u002Freference","7.reference",[500,504,507,512,516,520,524],{"title":501,"path":502,"stem":503},"Configuration","\u002Freference\u002Fconfiguration","7.reference\u002F1.configuration",{"title":370,"path":505,"stem":506,"icon":373},"\u002Freference\u002Fperformance","7.reference\u002F2.performance",{"title":508,"path":509,"stem":510,"icon":511},"Vite Plugin","\u002Freference\u002Fvite-plugin","7.reference\u002F3.vite-plugin","i-custom-vite",{"title":513,"path":514,"stem":515,"icon":376},"Best Practices","\u002Freference\u002Fbest-practices","7.reference\u002F4.best-practices",{"title":517,"path":518,"stem":519},"evlog vs pino, winston, consola","\u002Freference\u002Fvs-other-loggers","7.reference\u002F5.vs-other-loggers",{"title":521,"path":522,"stem":523,"icon":475},"Agent Skills","\u002Freference\u002Fagent-skills","7.reference\u002F6.agent-skills",{"title":525,"path":526,"stem":527},"Log cost","\u002Freference\u002Fcost","7.reference\u002F7.cost",{"id":529,"title":530,"body":531,"description":1601,"extension":1602,"links":1603,"meta":1608,"navigation":1609,"path":357,"seo":1610,"stem":358,"__hash__":1611},"docs\u002F5.use-cases\u002F3.better-auth\u002F02.identify-user.md","identifyUser",{"type":532,"value":533,"toc":1595},"minimark",[534,557,765,773,777,897,981,985,988,1018,1024,1070,1074,1080,1205,1208,1359,1365,1369,1591],[535,536,537,540,541,544,545,548,549,552,553,556],"p",{},[538,539,530],"code",{}," is the core building block. Take a ",[538,542,543],{},"RequestLogger"," and a Better Auth session, extract safe fields, and call ",[538,546,547],{},"log.set()",". Returns ",[538,550,551],{},"true"," if the user was identified, ",[538,554,555],{},"false"," otherwise.",[558,559,565],"pre",{"className":560,"code":561,"filename":562,"language":563,"meta":564,"style":564},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { identifyUser } from 'evlog\u002Fbetter-auth'\n\nconst session = await auth.api.getSession({ headers: event.headers })\nif (session) {\n  const identified = identifyUser(log, session)\n  if (identified) {\n    log.set({ subscription: 'premium' })\n  }\n}\n","server\u002Fapi\u002Fcheckout.post.ts","typescript","",[538,566,567,600,607,665,677,704,721,753,759],{"__ignoreMap":564},[568,569,572,576,580,584,587,590,593,597],"span",{"class":570,"line":571},"line",1,[568,573,575],{"class":574},"s7zQu","import",[568,577,579],{"class":578},"sMK4o"," {",[568,581,583],{"class":582},"sTEyZ"," identifyUser",[568,585,586],{"class":578}," }",[568,588,589],{"class":574}," from",[568,591,592],{"class":578}," '",[568,594,596],{"class":595},"sfazB","evlog\u002Fbetter-auth",[568,598,599],{"class":578},"'\n",[568,601,603],{"class":570,"line":602},2,[568,604,606],{"emptyLinePlaceholder":605},true,"\n",[568,608,610,614,617,620,623,626,629,632,634,638,641,644,648,651,654,656,659,662],{"class":570,"line":609},3,[568,611,613],{"class":612},"spNyl","const",[568,615,616],{"class":582}," session ",[568,618,619],{"class":578},"=",[568,621,622],{"class":574}," await",[568,624,625],{"class":582}," auth",[568,627,628],{"class":578},".",[568,630,631],{"class":582},"api",[568,633,628],{"class":578},[568,635,637],{"class":636},"s2Zo4","getSession",[568,639,640],{"class":582},"(",[568,642,643],{"class":578},"{",[568,645,647],{"class":646},"swJcz"," headers",[568,649,650],{"class":578},":",[568,652,653],{"class":582}," event",[568,655,628],{"class":578},[568,657,658],{"class":582},"headers ",[568,660,661],{"class":578},"}",[568,663,664],{"class":582},")\n",[568,666,668,671,674],{"class":570,"line":667},4,[568,669,670],{"class":574},"if",[568,672,673],{"class":582}," (session) ",[568,675,676],{"class":578},"{\n",[568,678,680,683,686,689,691,693,696,699,702],{"class":570,"line":679},5,[568,681,682],{"class":612},"  const",[568,684,685],{"class":582}," identified",[568,687,688],{"class":578}," =",[568,690,583],{"class":636},[568,692,640],{"class":646},[568,694,695],{"class":582},"log",[568,697,698],{"class":578},",",[568,700,701],{"class":582}," session",[568,703,664],{"class":646},[568,705,707,710,713,716,719],{"class":570,"line":706},6,[568,708,709],{"class":574},"  if",[568,711,712],{"class":646}," (",[568,714,715],{"class":582},"identified",[568,717,718],{"class":646},") ",[568,720,676],{"class":578},[568,722,724,727,729,732,734,736,739,741,743,746,749,751],{"class":570,"line":723},7,[568,725,726],{"class":582},"    log",[568,728,628],{"class":578},[568,730,731],{"class":636},"set",[568,733,640],{"class":646},[568,735,643],{"class":578},[568,737,738],{"class":646}," subscription",[568,740,650],{"class":578},[568,742,592],{"class":578},[568,744,745],{"class":595},"premium",[568,747,748],{"class":578},"'",[568,750,586],{"class":578},[568,752,664],{"class":646},[568,754,756],{"class":570,"line":755},8,[568,757,758],{"class":578},"  }\n",[568,760,762],{"class":570,"line":761},9,[568,763,764],{"class":578},"}\n",[766,767,768,772],"tip",{},[769,770,771],"strong",{},"Safe by default."," Only whitelisted fields are extracted, and passwords, tokens, and secrets are never written to the logger.",[774,775,332],"h2",{"id":776},"options",[778,779,780,799],"table",{},[781,782,783],"thead",{},[784,785,786,790,793,796],"tr",{},[787,788,789],"th",{},"Option",[787,791,792],{},"Type",[787,794,795],{},"Default",[787,797,798],{},"Description",[800,801,802,825,857,877],"tbody",{},[784,803,804,810,815,819],{},[805,806,807],"td",{},[538,808,809],{},"maskEmail",[805,811,812],{},[538,813,814],{},"boolean",[805,816,817],{},[538,818,555],{},[805,820,821,822,628],{},"Mask emails as ",[538,823,824],{},"h***@example.com",[784,826,827,832,836,840],{},[805,828,829],{},[538,830,831],{},"session",[805,833,834],{},[538,835,814],{},[805,837,838],{},[538,839,551],{},[805,841,842,843,846,847,846,850,846,853,856],{},"Include session metadata (",[538,844,845],{},"session.id",", ",[538,848,849],{},"session.expiresAt",[538,851,852],{},"session.ipAddress",[538,854,855],{},"session.userAgent",").",[784,858,859,864,869,874],{},[805,860,861],{},[538,862,863],{},"fields",[805,865,866],{},[538,867,868],{},"string[]",[805,870,871],{},[538,872,873],{},"['id', 'name', 'email', 'image', 'emailVerified', 'createdAt']",[805,875,876],{},"User fields to extract.",[784,878,879,884,889,894],{},[805,880,881],{},[538,882,883],{},"extend",[805,885,886],{},[538,887,888],{},"(session) => Record\u003Cstring, unknown>",[805,890,891],{},[538,892,893],{},"undefined",[805,895,896],{},"Add custom fields from Better Auth plugins (organizations, roles, etc.).",[558,898,900],{"className":560,"code":899,"filename":562,"language":563,"meta":564,"style":564},"identifyUser(log, session, {\n  maskEmail: true,\n  fields: ['id', 'name'],\n  session: false,\n})\n",[538,901,902,918,932,963,975],{"__ignoreMap":564},[568,903,904,906,909,911,913,915],{"class":570,"line":571},[568,905,530],{"class":636},[568,907,908],{"class":582},"(log",[568,910,698],{"class":578},[568,912,701],{"class":582},[568,914,698],{"class":578},[568,916,917],{"class":578}," {\n",[568,919,920,923,925,929],{"class":570,"line":602},[568,921,922],{"class":646},"  maskEmail",[568,924,650],{"class":578},[568,926,928],{"class":927},"sfNiH"," true",[568,930,931],{"class":578},",\n",[568,933,934,937,939,942,944,947,949,951,953,956,958,961],{"class":570,"line":609},[568,935,936],{"class":646},"  fields",[568,938,650],{"class":578},[568,940,941],{"class":582}," [",[568,943,748],{"class":578},[568,945,946],{"class":595},"id",[568,948,748],{"class":578},[568,950,698],{"class":578},[568,952,592],{"class":578},[568,954,955],{"class":595},"name",[568,957,748],{"class":578},[568,959,960],{"class":582},"]",[568,962,931],{"class":578},[568,964,965,968,970,973],{"class":570,"line":667},[568,966,967],{"class":646},"  session",[568,969,650],{"class":578},[568,971,972],{"class":927}," false",[568,974,931],{"class":578},[568,976,977,979],{"class":570,"line":679},[568,978,661],{"class":578},[568,980,664],{"class":582},[774,982,984],{"id":983},"mask-emails","Mask emails",[535,986,987],{},"Emails are PII. In environments where the audit\u002Flog trail might be reviewed by support or third parties, mask them:",[558,989,991],{"className":560,"code":990,"language":563,"meta":564,"style":564},"identifyUser(log, session, { maskEmail: true })\n",[538,992,993],{"__ignoreMap":564},[568,994,995,997,999,1001,1003,1005,1007,1010,1012,1014,1016],{"class":570,"line":571},[568,996,530],{"class":636},[568,998,908],{"class":582},[568,1000,698],{"class":578},[568,1002,701],{"class":582},[568,1004,698],{"class":578},[568,1006,579],{"class":578},[568,1008,1009],{"class":646}," maskEmail",[568,1011,650],{"class":578},[568,1013,928],{"class":927},[568,1015,586],{"class":578},[568,1017,664],{"class":582},[535,1019,1020,1021,1023],{},"The ",[538,1022,809],{}," helper is also exported on its own:",[558,1025,1027],{"className":560,"code":1026,"language":563,"meta":564,"style":564},"import { maskEmail } from 'evlog\u002Fbetter-auth'\n\nmaskEmail('hugo@example.com') \u002F\u002F 'h***@example.com'\n",[538,1028,1029,1047,1051],{"__ignoreMap":564},[568,1030,1031,1033,1035,1037,1039,1041,1043,1045],{"class":570,"line":571},[568,1032,575],{"class":574},[568,1034,579],{"class":578},[568,1036,1009],{"class":582},[568,1038,586],{"class":578},[568,1040,589],{"class":574},[568,1042,592],{"class":578},[568,1044,596],{"class":595},[568,1046,599],{"class":578},[568,1048,1049],{"class":570,"line":602},[568,1050,606],{"emptyLinePlaceholder":605},[568,1052,1053,1055,1057,1059,1062,1064,1066],{"class":570,"line":609},[568,1054,809],{"class":636},[568,1056,640],{"class":582},[568,1058,748],{"class":578},[568,1060,1061],{"class":595},"hugo@example.com",[568,1063,748],{"class":578},[568,1065,718],{"class":582},[568,1067,1069],{"class":1068},"sHwdD","\u002F\u002F 'h***@example.com'\n",[774,1071,1073],{"id":1072},"capture-plugin-fields","Capture plugin fields",[535,1075,1076,1077,1079],{},"Better Auth ships with plugins (organizations, 2FA, roles, admin) that add fields to the session. Use ",[538,1078,883],{}," to surface them on the wide event:",[558,1081,1084],{"className":560,"code":1082,"filename":1083,"language":563,"meta":564,"style":564},"import { createAuthMiddleware } from 'evlog\u002Fbetter-auth'\n\nconst identify = createAuthMiddleware(auth, {\n  extend: (session) => ({\n    organization: session.user.activeOrganization,\n    role: session.user.role,\n  }),\n})\n","server\u002Fmiddleware\u002Fauth-identify.ts",[538,1085,1086,1105,1109,1127,1149,1170,1190,1199],{"__ignoreMap":564},[568,1087,1088,1090,1092,1095,1097,1099,1101,1103],{"class":570,"line":571},[568,1089,575],{"class":574},[568,1091,579],{"class":578},[568,1093,1094],{"class":582}," createAuthMiddleware",[568,1096,586],{"class":578},[568,1098,589],{"class":574},[568,1100,592],{"class":578},[568,1102,596],{"class":595},[568,1104,599],{"class":578},[568,1106,1107],{"class":570,"line":602},[568,1108,606],{"emptyLinePlaceholder":605},[568,1110,1111,1113,1116,1118,1120,1123,1125],{"class":570,"line":609},[568,1112,613],{"class":612},[568,1114,1115],{"class":582}," identify ",[568,1117,619],{"class":578},[568,1119,1094],{"class":636},[568,1121,1122],{"class":582},"(auth",[568,1124,698],{"class":578},[568,1126,917],{"class":578},[568,1128,1129,1132,1134,1136,1139,1142,1145,1147],{"class":570,"line":667},[568,1130,1131],{"class":636},"  extend",[568,1133,650],{"class":578},[568,1135,712],{"class":578},[568,1137,831],{"class":1138},"sHdIc",[568,1140,1141],{"class":578},")",[568,1143,1144],{"class":612}," =>",[568,1146,712],{"class":582},[568,1148,676],{"class":578},[568,1150,1151,1154,1156,1158,1160,1163,1165,1168],{"class":570,"line":679},[568,1152,1153],{"class":646},"    organization",[568,1155,650],{"class":578},[568,1157,701],{"class":582},[568,1159,628],{"class":578},[568,1161,1162],{"class":582},"user",[568,1164,628],{"class":578},[568,1166,1167],{"class":582},"activeOrganization",[568,1169,931],{"class":578},[568,1171,1172,1175,1177,1179,1181,1183,1185,1188],{"class":570,"line":706},[568,1173,1174],{"class":646},"    role",[568,1176,650],{"class":578},[568,1178,701],{"class":582},[568,1180,628],{"class":578},[568,1182,1162],{"class":582},[568,1184,628],{"class":578},[568,1186,1187],{"class":582},"role",[568,1189,931],{"class":578},[568,1191,1192,1195,1197],{"class":570,"line":723},[568,1193,1194],{"class":578},"  }",[568,1196,1141],{"class":582},[568,1198,931],{"class":578},[568,1200,1201,1203],{"class":570,"line":755},[568,1202,661],{"class":578},[568,1204,664],{"class":582},[535,1206,1207],{},"Wide event with plugin fields:",[558,1209,1214],{"className":1210,"code":1211,"filename":1212,"language":1213,"meta":564,"style":564},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"userId\": \"QBX9tPjJQExWawAbNll75\",\n  \"user\": { \"id\": \"QBX9tPjJQExWawAbNll75\", \"name\": \"Hugo Richard\" },\n  \"organization\": { \"id\": \"org_42\", \"name\": \"Acme\" },\n  \"role\": \"admin\"\n}\n","Wide Event","json",[538,1215,1216,1220,1243,1290,1337,1355],{"__ignoreMap":564},[568,1217,1218],{"class":570,"line":571},[568,1219,676],{"class":578},[568,1221,1222,1225,1228,1231,1233,1236,1239,1241],{"class":570,"line":602},[568,1223,1224],{"class":578},"  \"",[568,1226,1227],{"class":612},"userId",[568,1229,1230],{"class":578},"\"",[568,1232,650],{"class":578},[568,1234,1235],{"class":578}," \"",[568,1237,1238],{"class":595},"QBX9tPjJQExWawAbNll75",[568,1240,1230],{"class":578},[568,1242,931],{"class":578},[568,1244,1245,1247,1249,1251,1253,1255,1257,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280,1282,1285,1287],{"class":570,"line":609},[568,1246,1224],{"class":578},[568,1248,1162],{"class":612},[568,1250,1230],{"class":578},[568,1252,650],{"class":578},[568,1254,579],{"class":578},[568,1256,1235],{"class":578},[568,1258,946],{"class":1259},"sBMFI",[568,1261,1230],{"class":578},[568,1263,650],{"class":578},[568,1265,1235],{"class":578},[568,1267,1238],{"class":595},[568,1269,1230],{"class":578},[568,1271,698],{"class":578},[568,1273,1235],{"class":578},[568,1275,955],{"class":1259},[568,1277,1230],{"class":578},[568,1279,650],{"class":578},[568,1281,1235],{"class":578},[568,1283,1284],{"class":595},"Hugo Richard",[568,1286,1230],{"class":578},[568,1288,1289],{"class":578}," },\n",[568,1291,1292,1294,1297,1299,1301,1303,1305,1307,1309,1311,1313,1316,1318,1320,1322,1324,1326,1328,1330,1333,1335],{"class":570,"line":667},[568,1293,1224],{"class":578},[568,1295,1296],{"class":612},"organization",[568,1298,1230],{"class":578},[568,1300,650],{"class":578},[568,1302,579],{"class":578},[568,1304,1235],{"class":578},[568,1306,946],{"class":1259},[568,1308,1230],{"class":578},[568,1310,650],{"class":578},[568,1312,1235],{"class":578},[568,1314,1315],{"class":595},"org_42",[568,1317,1230],{"class":578},[568,1319,698],{"class":578},[568,1321,1235],{"class":578},[568,1323,955],{"class":1259},[568,1325,1230],{"class":578},[568,1327,650],{"class":578},[568,1329,1235],{"class":578},[568,1331,1332],{"class":595},"Acme",[568,1334,1230],{"class":578},[568,1336,1289],{"class":578},[568,1338,1339,1341,1343,1345,1347,1349,1352],{"class":570,"line":679},[568,1340,1224],{"class":578},[568,1342,1187],{"class":612},[568,1344,1230],{"class":578},[568,1346,650],{"class":578},[568,1348,1235],{"class":578},[568,1350,1351],{"class":595},"admin",[568,1353,1354],{"class":578},"\"\n",[568,1356,1357],{"class":570,"line":706},[568,1358,764],{"class":578},[766,1360,1361,1362,1364],{},"Keep ",[538,1363,883],{}," deterministic, because it runs on every request. Avoid heavy computations or extra database calls inside it; query the data Better Auth already loaded into the session.",[774,1366,1368],{"id":1367},"captured-fields","Captured fields",[778,1370,1371,1383],{},[781,1372,1373],{},[784,1374,1375,1378,1381],{},[787,1376,1377],{},"Field",[787,1379,1380],{},"Source",[787,1382,798],{},[800,1384,1385,1402,1416,1431,1449,1464,1479,1494,1508,1522,1536,1550,1565,1578],{},[784,1386,1387,1391,1396],{},[805,1388,1389],{},[538,1390,1227],{},[805,1392,1393],{},[538,1394,1395],{},"session.user.id",[805,1397,1398,1399,856],{},"Top-level user ID (used by PostHog adapter as ",[538,1400,1401],{},"distinct_id",[784,1403,1404,1409,1413],{},[805,1405,1406],{},[538,1407,1408],{},"user.id",[805,1410,1411],{},[538,1412,1395],{},[805,1414,1415],{},"User ID.",[784,1417,1418,1423,1428],{},[805,1419,1420],{},[538,1421,1422],{},"user.name",[805,1424,1425],{},[538,1426,1427],{},"session.user.name",[805,1429,1430],{},"Display name.",[784,1432,1433,1438,1443],{},[805,1434,1435],{},[538,1436,1437],{},"user.email",[805,1439,1440],{},[538,1441,1442],{},"session.user.email",[805,1444,1445,1446,856],{},"Email (maskable with ",[538,1447,1448],{},"maskEmail: true",[784,1450,1451,1456,1461],{},[805,1452,1453],{},[538,1454,1455],{},"user.image",[805,1457,1458],{},[538,1459,1460],{},"session.user.image",[805,1462,1463],{},"Avatar URL.",[784,1465,1466,1471,1476],{},[805,1467,1468],{},[538,1469,1470],{},"user.emailVerified",[805,1472,1473],{},[538,1474,1475],{},"session.user.emailVerified",[805,1477,1478],{},"Email verification status.",[784,1480,1481,1486,1491],{},[805,1482,1483],{},[538,1484,1485],{},"user.createdAt",[805,1487,1488],{},[538,1489,1490],{},"session.user.createdAt",[805,1492,1493],{},"Account creation date (ISO string).",[784,1495,1496,1500,1505],{},[805,1497,1498],{},[538,1499,845],{},[805,1501,1502],{},[538,1503,1504],{},"session.session.id",[805,1506,1507],{},"Session ID.",[784,1509,1510,1514,1519],{},[805,1511,1512],{},[538,1513,849],{},[805,1515,1516],{},[538,1517,1518],{},"session.session.expiresAt",[805,1520,1521],{},"Session expiry (ISO string).",[784,1523,1524,1528,1533],{},[805,1525,1526],{},[538,1527,852],{},[805,1529,1530],{},[538,1531,1532],{},"session.session.ipAddress",[805,1534,1535],{},"Client IP from the session.",[784,1537,1538,1542,1547],{},[805,1539,1540],{},[538,1541,855],{},[805,1543,1544],{},[538,1545,1546],{},"session.session.userAgent",[805,1548,1549],{},"User agent string from the session.",[784,1551,1552,1557,1562],{},[805,1553,1554],{},[538,1555,1556],{},"session.createdAt",[805,1558,1559],{},[538,1560,1561],{},"session.session.createdAt",[805,1563,1564],{},"Session creation date (ISO string).",[784,1566,1567,1572,1575],{},[805,1568,1569],{},[538,1570,1571],{},"auth.resolvedIn",[805,1573,1574],{},"Measured",[805,1576,1577],{},"Session resolution time in ms.",[784,1579,1580,1585,1588],{},[805,1581,1582],{},[538,1583,1584],{},"auth.identified",[805,1586,1587],{},"Computed",[805,1589,1590],{},"Whether the request was identified.",[1592,1593,1594],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}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 .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 .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":564,"searchDepth":602,"depth":602,"links":1596},[1597,1598,1599,1600],{"id":776,"depth":602,"text":332},{"id":983,"depth":602,"text":984},{"id":1072,"depth":602,"text":1073},{"id":1367,"depth":602,"text":1368},"The core building block — extract safe user fields, mask emails, and capture plugin data (organizations, roles, 2FA) from a Better Auth session.","md",[1604,1607],{"label":128,"icon":140,"to":353,"color":1605,"variant":1606},"neutral","subtle",{"label":361,"icon":364,"to":362,"color":1605,"variant":1606},{},{"title":356,"icon":359},{"title":530,"description":1601},"R_rUjGKSnz7Yi4WO0olFISbkU6Nuew9Aj8oNq4QIeI8",[1613,1615],{"title":128,"path":353,"stem":354,"description":1614,"icon":140,"children":-1},"Identify users on every request. Each wide event carries who made it, their profile, and session metadata, with no manual log.set call.",{"title":361,"path":362,"stem":363,"description":1616,"icon":364,"children":-1},"Framework-agnostic factory with route filtering, session timing, and lifecycle hooks. Call it once at startup and reuse across requests.",1786793477920]