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