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