[{"data":1,"prerenderedAt":1381},["ShallowReactive",2],{"navigation_docs":3,"-use-cases-better-auth-client-sync":447,"-use-cases-better-auth-client-sync-surround":1376},[4,30,80,245,361,416],{"title":5,"path":6,"stem":7,"children":8,"page":29},"Start","\u002Fstart","1.start",[9,14,19,24],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","\u002Fstart\u002Fintroduction","1.start\u002F1.introduction","i-lucide-info",{"title":15,"path":16,"stem":17,"icon":18},"Why start with evlog","\u002Fstart\u002Fwhy-evlog","1.start\u002F2.why-evlog","i-lucide-rocket",{"title":20,"path":21,"stem":22,"icon":23},"Installation","\u002Fstart\u002Finstallation","1.start\u002F3.installation","i-lucide-download",{"title":25,"path":26,"stem":27,"icon":28},"Quick Start","\u002Fstart\u002Fquick-start","1.start\u002F4.quick-start","i-lucide-zap",false,{"title":31,"path":32,"stem":33,"children":34,"page":29},"Learn","\u002Flearn","2.learn",[35,40,45,50,55,60,65,70,75],{"title":36,"path":37,"stem":38,"icon":39},"Overview","\u002Flearn\u002Foverview","2.learn\u002F0.overview","i-lucide-list",{"title":41,"path":42,"stem":43,"icon":44},"Simple Logging","\u002Flearn\u002Fsimple-logging","2.learn\u002F1.simple-logging","i-lucide-terminal",{"title":46,"path":47,"stem":48,"icon":49},"Wide Events","\u002Flearn\u002Fwide-events","2.learn\u002F2.wide-events","i-lucide-layers",{"title":51,"path":52,"stem":53,"icon":54},"Structured Errors","\u002Flearn\u002Fstructured-errors","2.learn\u002F3.structured-errors","i-lucide-shield-alert",{"title":56,"path":57,"stem":58,"icon":59},"Lifecycle","\u002Flearn\u002Flifecycle","2.learn\u002F4.lifecycle","i-lucide-arrow-right-left",{"title":61,"path":62,"stem":63,"icon":64},"Sampling","\u002Flearn\u002Fsampling","2.learn\u002F5.sampling","i-lucide-filter",{"title":66,"path":67,"stem":68,"icon":69},"Auto-Redaction","\u002Flearn\u002Fredaction","2.learn\u002F6.redaction","i-lucide-eye-off",{"title":71,"path":72,"stem":73,"icon":74},"Typed Fields","\u002Flearn\u002Ftyped-fields","2.learn\u002F7.typed-fields","i-simple-icons-typescript",{"title":76,"path":77,"stem":78,"icon":79},"Catalogs","\u002Flearn\u002Fcatalogs","2.learn\u002F8.catalogs","i-lucide-book-open",{"title":81,"path":82,"stem":83,"children":84,"page":29},"Integrate","\u002Fintegrate","3.integrate",[85,89,157],{"title":36,"path":86,"stem":87,"icon":88},"\u002Fintegrate\u002Foverview","3.integrate\u002F0.overview","i-lucide-plug",{"title":90,"path":91,"stem":92,"children":93,"page":29},"Adapters","\u002Fintegrate\u002Fadapters","3.integrate\u002Fadapters",[94,97,137],{"title":36,"path":95,"stem":96,"icon":39},"\u002Fintegrate\u002Fadapters\u002Foverview","3.integrate\u002Fadapters\u002F01.overview",{"title":98,"path":99,"stem":100,"children":101,"page":29},"Cloud","\u002Fintegrate\u002Fadapters\u002Fcloud","3.integrate\u002Fadapters\u002Fcloud",[102,107,112,117,122,127,132],{"title":103,"path":104,"stem":105,"icon":106},"Axiom","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Faxiom","3.integrate\u002Fadapters\u002Fcloud\u002F01.axiom","i-custom-axiom",{"title":108,"path":109,"stem":110,"icon":111},"OTLP","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fotlp","3.integrate\u002Fadapters\u002Fcloud\u002F02.otlp","i-simple-icons-opentelemetry",{"title":113,"path":114,"stem":115,"icon":116},"PostHog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fposthog","3.integrate\u002Fadapters\u002Fcloud\u002F03.posthog","i-simple-icons-posthog",{"title":118,"path":119,"stem":120,"icon":121},"Sentry","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fsentry","3.integrate\u002Fadapters\u002Fcloud\u002F04.sentry","i-simple-icons-sentry",{"title":123,"path":124,"stem":125,"icon":126},"Better Stack","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fbetter-stack","3.integrate\u002Fadapters\u002Fcloud\u002F05.better-stack","i-simple-icons-betterstack",{"title":128,"path":129,"stem":130,"icon":131},"Datadog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fdatadog","3.integrate\u002Fadapters\u002Fcloud\u002F06.datadog","i-simple-icons-datadog",{"title":133,"path":134,"stem":135,"icon":136},"HyperDX","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fhyperdx","3.integrate\u002Fadapters\u002Fcloud\u002F07.hyperdx","i-custom-hyperdx",{"title":138,"path":139,"stem":140,"children":141,"page":29},"Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fself-hosted","3.integrate\u002Fadapters\u002Fself-hosted",[142,147,152],{"title":143,"path":144,"stem":145,"icon":146},"File System","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Ffs","3.integrate\u002Fadapters\u002Fself-hosted\u002F01.fs","i-lucide-hard-drive",{"title":148,"path":149,"stem":150,"icon":151},"NuxtHub","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fnuxthub","3.integrate\u002Fadapters\u002Fself-hosted\u002F02.nuxthub","i-simple-icons-nuxt",{"title":153,"path":154,"stem":155,"icon":156},"Memory","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fmemory","3.integrate\u002Fadapters\u002Fself-hosted\u002F03.memory","i-lucide-cpu",{"title":158,"path":159,"stem":160,"children":161,"page":29},"Frameworks","\u002Fintegrate\u002Fframeworks","3.integrate\u002Fframeworks",[162,166,171,176,181,186,191,196,201,206,211,216,221,226,230,235,240],{"title":36,"path":163,"stem":164,"icon":165},"\u002Fintegrate\u002Fframeworks\u002Foverview","3.integrate\u002Fframeworks\u002F00.overview","i-lucide-layout-grid",{"title":167,"path":168,"stem":169,"icon":170},"Nuxt","\u002Fintegrate\u002Fframeworks\u002Fnuxt","3.integrate\u002Fframeworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":172,"path":173,"stem":174,"icon":175},"Next.js","\u002Fintegrate\u002Fframeworks\u002Fnextjs","3.integrate\u002Fframeworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":177,"path":178,"stem":179,"icon":180},"SvelteKit","\u002Fintegrate\u002Fframeworks\u002Fsveltekit","3.integrate\u002Fframeworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":182,"path":183,"stem":184,"icon":185},"Nitro","\u002Fintegrate\u002Fframeworks\u002Fnitro","3.integrate\u002Fframeworks\u002F04.nitro","i-custom-nitro",{"title":187,"path":188,"stem":189,"icon":190},"TanStack Start","\u002Fintegrate\u002Fframeworks\u002Ftanstack-start","3.integrate\u002Fframeworks\u002F05.tanstack-start","i-custom-tanstack",{"title":192,"path":193,"stem":194,"icon":195},"NestJS","\u002Fintegrate\u002Fframeworks\u002Fnestjs","3.integrate\u002Fframeworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":197,"path":198,"stem":199,"icon":200},"Express","\u002Fintegrate\u002Fframeworks\u002Fexpress","3.integrate\u002Fframeworks\u002F07.express","i-simple-icons-express",{"title":202,"path":203,"stem":204,"icon":205},"Hono","\u002Fintegrate\u002Fframeworks\u002Fhono","3.integrate\u002Fframeworks\u002F08.hono","i-simple-icons-hono",{"title":207,"path":208,"stem":209,"icon":210},"Fastify","\u002Fintegrate\u002Fframeworks\u002Ffastify","3.integrate\u002Fframeworks\u002F09.fastify","i-simple-icons-fastify",{"title":212,"path":213,"stem":214,"icon":215},"Elysia","\u002Fintegrate\u002Fframeworks\u002Felysia","3.integrate\u002Fframeworks\u002F10.elysia","i-custom-elysia",{"title":217,"path":218,"stem":219,"icon":220},"React Router","\u002Fintegrate\u002Fframeworks\u002Freact-router","3.integrate\u002Fframeworks\u002F11.react-router","i-custom-reactrouter",{"title":222,"path":223,"stem":224,"icon":225},"Cloudflare Workers","\u002Fintegrate\u002Fframeworks\u002Fcloudflare-workers","3.integrate\u002Fframeworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":227,"path":228,"stem":229,"icon":74},"Standalone","\u002Fintegrate\u002Fframeworks\u002Fstandalone","3.integrate\u002Fframeworks\u002F13.standalone",{"title":231,"path":232,"stem":233,"icon":234},"Astro","\u002Fintegrate\u002Fframeworks\u002Fastro","3.integrate\u002Fframeworks\u002F14.astro","i-simple-icons-astro",{"title":236,"path":237,"stem":238,"icon":239},"oRPC","\u002Fintegrate\u002Fframeworks\u002Forpc","3.integrate\u002Fframeworks\u002F15.orpc","i-lucide-network",{"title":241,"path":242,"stem":243,"icon":244},"AWS Lambda","\u002Fintegrate\u002Fframeworks\u002Faws-lambda","3.integrate\u002Fframeworks\u002F16.aws-lambda","i-custom-lambda",{"title":246,"path":247,"stem":248,"children":249,"page":29},"Use Cases","\u002Fuse-cases","4.use-cases",[250,254,259,288,316,348,353],{"title":36,"path":251,"stem":252,"icon":253},"\u002Fuse-cases\u002Foverview","4.use-cases\u002F0.overview","i-lucide-list-checks",{"title":255,"path":256,"stem":257,"icon":258},"Client Logging","\u002Fuse-cases\u002Fclient-logging","4.use-cases\u002F1.client-logging","i-lucide-monitor",{"title":260,"icon":261,"path":262,"stem":263,"children":264,"page":29},"AI SDK","i-simple-icons-vercel","\u002Fuse-cases\u002Fai-sdk","4.use-cases\u002F2.ai-sdk",[265,268,273,278,283],{"title":36,"path":266,"stem":267,"icon":39},"\u002Fuse-cases\u002Fai-sdk\u002Foverview","4.use-cases\u002F2.ai-sdk\u002F01.overview",{"title":269,"path":270,"stem":271,"icon":272},"Usage","\u002Fuse-cases\u002Fai-sdk\u002Fusage","4.use-cases\u002F2.ai-sdk\u002F02.usage","i-lucide-code",{"title":274,"path":275,"stem":276,"icon":277},"Options","\u002Fuse-cases\u002Fai-sdk\u002Foptions","4.use-cases\u002F2.ai-sdk\u002F03.options","i-lucide-sliders",{"title":279,"path":280,"stem":281,"icon":282},"Metadata","\u002Fuse-cases\u002Fai-sdk\u002Fmetadata","4.use-cases\u002F2.ai-sdk\u002F04.metadata","i-lucide-database",{"title":284,"path":285,"stem":286,"icon":287},"Telemetry","\u002Fuse-cases\u002Fai-sdk\u002Ftelemetry","4.use-cases\u002F2.ai-sdk\u002F05.telemetry","i-lucide-activity",{"title":289,"icon":290,"path":291,"stem":292,"children":293,"page":29},"Better Auth","i-simple-icons-betterauth","\u002Fuse-cases\u002Fbetter-auth","4.use-cases\u002F3.better-auth",[294,297,302,307,311],{"title":36,"path":295,"stem":296,"icon":39},"\u002Fuse-cases\u002Fbetter-auth\u002Foverview","4.use-cases\u002F3.better-auth\u002F01.overview",{"title":298,"path":299,"stem":300,"icon":301},"Identify User","\u002Fuse-cases\u002Fbetter-auth\u002Fidentify-user","4.use-cases\u002F3.better-auth\u002F02.identify-user","i-lucide-user-check",{"title":303,"path":304,"stem":305,"icon":306},"Middleware","\u002Fuse-cases\u002Fbetter-auth\u002Fmiddleware","4.use-cases\u002F3.better-auth\u002F03.middleware","i-lucide-shield",{"title":308,"path":309,"stem":310,"icon":258},"Client Sync","\u002Fuse-cases\u002Fbetter-auth\u002Fclient-sync","4.use-cases\u002F3.better-auth\u002F04.client-sync",{"title":312,"path":313,"stem":314,"icon":315},"Performance","\u002Fuse-cases\u002Fbetter-auth\u002Fperformance","4.use-cases\u002F3.better-auth\u002F05.performance","i-lucide-gauge",{"title":317,"icon":318,"path":319,"stem":320,"children":321,"page":29},"Audit Logs","i-lucide-shield-check","\u002Fuse-cases\u002Faudit","4.use-cases\u002F4.audit",[322,325,330,335,340,344],{"title":36,"path":323,"stem":324,"icon":39},"\u002Fuse-cases\u002Faudit\u002Foverview","4.use-cases\u002F4.audit\u002F01.overview",{"title":326,"path":327,"stem":328,"icon":329},"Schema","\u002Fuse-cases\u002Faudit\u002Fschema","4.use-cases\u002F4.audit\u002F02.schema","i-lucide-file-text",{"title":331,"path":332,"stem":333,"icon":334},"Recording","\u002Fuse-cases\u002Faudit\u002Frecording","4.use-cases\u002F4.audit\u002F03.recording","i-lucide-pen-line",{"title":336,"path":337,"stem":338,"icon":339},"Drains","\u002Fuse-cases\u002Faudit\u002Fpipeline","4.use-cases\u002F4.audit\u002F04.pipeline","i-lucide-link",{"title":341,"path":342,"stem":343,"icon":318},"Compliance","\u002Fuse-cases\u002Faudit\u002Fcompliance","4.use-cases\u002F4.audit\u002F05.compliance",{"title":345,"path":346,"stem":347,"icon":79},"Recipes","\u002Fuse-cases\u002Faudit\u002Frecipes","4.use-cases\u002F4.audit\u002F06.recipes",{"title":349,"path":350,"stem":351,"icon":352},"Enrichers","\u002Fuse-cases\u002Fenrichers","4.use-cases\u002F5.enrichers","i-lucide-sparkles",{"title":354,"icon":261,"path":355,"stem":356,"children":357,"page":29},"Eve","\u002Fuse-cases\u002Feve","4.use-cases\u002F5.eve",[358],{"title":36,"path":359,"stem":360,"icon":261},"\u002Fuse-cases\u002Feve\u002Foverview","4.use-cases\u002F5.eve\u002F01.overview",{"title":362,"path":363,"stem":364,"children":365,"page":29},"Extend","\u002Fextend","5.extend",[366,370,375,380,385,389,393,397,401,406,411],{"title":36,"path":367,"stem":368,"icon":369},"\u002Fextend\u002Foverview","5.extend\u002F0.overview","i-lucide-blocks",{"title":371,"path":372,"stem":373,"icon":374},"Stream","\u002Fextend\u002Fstream","5.extend\u002F1.stream","i-lucide-radio-tower",{"title":376,"path":377,"stem":378,"icon":379},"Custom framework","\u002Fextend\u002Fcustom-framework","5.extend\u002F10.custom-framework","i-lucide-puzzle",{"title":381,"path":382,"stem":383,"icon":384},"FS reader","\u002Fextend\u002Ffs-reader","5.extend\u002F2.fs-reader","i-lucide-folder-search",{"title":345,"path":386,"stem":387,"icon":388},"\u002Fextend\u002Fconsumer-recipes","5.extend\u002F3.consumer-recipes","i-lucide-chef-hat",{"title":390,"path":391,"stem":392,"icon":369},"Plugins","\u002Fextend\u002Fplugins","5.extend\u002F4.plugins",{"title":394,"path":395,"stem":396,"icon":352},"Custom enrichers","\u002Fextend\u002Fcustom-enrichers","5.extend\u002F5.custom-enrichers",{"title":398,"path":399,"stem":400,"icon":64},"Tail sampling","\u002Fextend\u002Ftail-sampling","5.extend\u002F6.tail-sampling",{"title":402,"path":403,"stem":404,"icon":405},"Identity headers","\u002Fextend\u002Fidentity-headers","5.extend\u002F7.identity-headers","i-lucide-fingerprint",{"title":407,"path":408,"stem":409,"icon":410},"Custom drains","\u002Fextend\u002Fcustom-drains","5.extend\u002F8.custom-drains","i-lucide-share-2",{"title":412,"path":413,"stem":414,"icon":415},"Drain pipeline","\u002Fextend\u002Fdrain-pipeline","5.extend\u002F9.drain-pipeline","i-lucide-workflow",{"title":417,"path":418,"stem":419,"children":420,"page":29},"Reference","\u002Freference","6.reference",[421,426,429,434,438,443],{"title":422,"path":423,"stem":424,"icon":425},"Configuration","\u002Freference\u002Fconfiguration","6.reference\u002F1.configuration","i-lucide-settings",{"title":312,"path":427,"stem":428,"icon":315},"\u002Freference\u002Fperformance","6.reference\u002F2.performance",{"title":430,"path":431,"stem":432,"icon":433},"Vite Plugin","\u002Freference\u002Fvite-plugin","6.reference\u002F3.vite-plugin","i-custom-vite",{"title":435,"path":436,"stem":437,"icon":318},"Best Practices","\u002Freference\u002Fbest-practices","6.reference\u002F4.best-practices",{"title":439,"path":440,"stem":441,"icon":442},"vs Other Loggers","\u002Freference\u002Fvs-other-loggers","6.reference\u002F5.vs-other-loggers","i-lucide-scale",{"title":444,"path":445,"stem":446,"icon":352},"Agent Skills","\u002Freference\u002Fagent-skills","6.reference\u002F6.agent-skills",{"id":448,"title":449,"body":450,"description":1364,"extension":1365,"links":1366,"meta":1372,"navigation":1373,"path":309,"seo":1374,"stem":310,"__hash__":1375},"docs\u002F4.use-cases\u002F3.better-auth\u002F04.client-sync.md","Client Identity Sync",{"type":451,"value":452,"toc":1358},"minimark",[453,462,467,727,730,768,772,999,1006,1010,1205,1212,1216,1219,1338,1354],[454,455,456,457,461],"p",{},"The middleware identifies users on the server. To get the same identity on ",[458,459,460],"strong",{},"client-side logs"," (clicks, navigation, errors caught in the browser), watch the Better Auth session and forward the user to evlog's client identity store.",[463,464,466],"h2",{"id":465},"vue-nuxt","Vue \u002F Nuxt",[468,469,475],"pre",{"className":470,"code":471,"filename":472,"language":473,"meta":474,"style":474},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { authClient } from '~\u002Flib\u002Fauth-client'\n\nexport function useAuthIdentity() {\n  const session = authClient.useSession()\n\n  watch(() => session.value?.data?.user, (user) => {\n    if (user) {\n      setIdentity({ userId: user.id, userName: user.name })\n    } else {\n      clearIdentity()\n    }\n  }, { immediate: true })\n}\n","composables\u002FuseAuthIdentity.ts","typescript","",[476,477,478,511,518,538,562,567,615,631,675,686,694,700,721],"code",{"__ignoreMap":474},[479,480,483,487,491,495,498,501,504,508],"span",{"class":481,"line":482},"line",1,[479,484,486],{"class":485},"s7zQu","import",[479,488,490],{"class":489},"sMK4o"," {",[479,492,494],{"class":493},"sTEyZ"," authClient",[479,496,497],{"class":489}," }",[479,499,500],{"class":485}," from",[479,502,503],{"class":489}," '",[479,505,507],{"class":506},"sfazB","~\u002Flib\u002Fauth-client",[479,509,510],{"class":489},"'\n",[479,512,514],{"class":481,"line":513},2,[479,515,517],{"emptyLinePlaceholder":516},true,"\n",[479,519,521,524,528,532,535],{"class":481,"line":520},3,[479,522,523],{"class":485},"export",[479,525,527],{"class":526},"spNyl"," function",[479,529,531],{"class":530},"s2Zo4"," useAuthIdentity",[479,533,534],{"class":489},"()",[479,536,537],{"class":489}," {\n",[479,539,541,544,547,550,552,555,558],{"class":481,"line":540},4,[479,542,543],{"class":526},"  const",[479,545,546],{"class":493}," session",[479,548,549],{"class":489}," =",[479,551,494],{"class":493},[479,553,554],{"class":489},".",[479,556,557],{"class":530},"useSession",[479,559,561],{"class":560},"swJcz","()\n",[479,563,565],{"class":481,"line":564},5,[479,566,517],{"emptyLinePlaceholder":516},[479,568,570,573,576,578,581,583,585,588,591,594,596,599,602,605,608,611,613],{"class":481,"line":569},6,[479,571,572],{"class":530},"  watch",[479,574,575],{"class":560},"(",[479,577,534],{"class":489},[479,579,580],{"class":526}," =>",[479,582,546],{"class":493},[479,584,554],{"class":489},[479,586,587],{"class":493},"value",[479,589,590],{"class":489},"?.",[479,592,593],{"class":493},"data",[479,595,590],{"class":489},[479,597,598],{"class":493},"user",[479,600,601],{"class":489},",",[479,603,604],{"class":489}," (",[479,606,598],{"class":607},"sHdIc",[479,609,610],{"class":489},")",[479,612,580],{"class":526},[479,614,537],{"class":489},[479,616,618,621,623,625,628],{"class":481,"line":617},7,[479,619,620],{"class":485},"    if",[479,622,604],{"class":560},[479,624,598],{"class":493},[479,626,627],{"class":560},") ",[479,629,630],{"class":489},"{\n",[479,632,634,637,639,642,645,648,651,653,656,658,661,663,665,667,670,672],{"class":481,"line":633},8,[479,635,636],{"class":530},"      setIdentity",[479,638,575],{"class":560},[479,640,641],{"class":489},"{",[479,643,644],{"class":560}," userId",[479,646,647],{"class":489},":",[479,649,650],{"class":493}," user",[479,652,554],{"class":489},[479,654,655],{"class":493},"id",[479,657,601],{"class":489},[479,659,660],{"class":560}," userName",[479,662,647],{"class":489},[479,664,650],{"class":493},[479,666,554],{"class":489},[479,668,669],{"class":493},"name",[479,671,497],{"class":489},[479,673,674],{"class":560},")\n",[479,676,678,681,684],{"class":481,"line":677},9,[479,679,680],{"class":489},"    }",[479,682,683],{"class":485}," else",[479,685,537],{"class":489},[479,687,689,692],{"class":481,"line":688},10,[479,690,691],{"class":530},"      clearIdentity",[479,693,561],{"class":560},[479,695,697],{"class":481,"line":696},11,[479,698,699],{"class":489},"    }\n",[479,701,703,706,708,711,713,717,719],{"class":481,"line":702},12,[479,704,705],{"class":489},"  },",[479,707,490],{"class":489},[479,709,710],{"class":560}," immediate",[479,712,647],{"class":489},[479,714,716],{"class":715},"sfNiH"," true",[479,718,497],{"class":489},[479,720,674],{"class":560},[479,722,724],{"class":481,"line":723},13,[479,725,726],{"class":489},"}\n",[454,728,729],{},"Call it once in your root layout:",[468,731,736],{"className":732,"code":733,"filename":734,"language":735,"meta":474,"style":474},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript setup>\nuseAuthIdentity()\n\u003C\u002Fscript>\n","app.vue","vue",[476,737,738,752,759],{"__ignoreMap":474},[479,739,740,743,746,749],{"class":481,"line":482},[479,741,742],{"class":489},"\u003C",[479,744,745],{"class":560},"script",[479,747,748],{"class":526}," setup",[479,750,751],{"class":489},">\n",[479,753,754,757],{"class":481,"line":513},[479,755,756],{"class":530},"useAuthIdentity",[479,758,561],{"class":493},[479,760,761,764,766],{"class":481,"line":520},[479,762,763],{"class":489},"\u003C\u002F",[479,765,745],{"class":560},[479,767,751],{"class":489},[463,769,771],{"id":770},"react","React",[468,773,778],{"className":774,"code":775,"filename":776,"language":777,"meta":474,"style":474},"language-tsx shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { useEffect } from 'react'\nimport { setIdentity, clearIdentity } from 'evlog\u002Fhttp'\nimport { authClient } from '@\u002Flib\u002Fauth-client'\n\nexport function useAuthIdentity() {\n  const { data } = authClient.useSession()\n\n  useEffect(() => {\n    if (data?.user) {\n      setIdentity({ userId: data.user.id, userName: data.user.name })\n    } else {\n      clearIdentity()\n    }\n  }, [data?.user?.id])\n}\n","hooks\u002FuseAuthIdentity.tsx","tsx",[476,779,780,799,824,843,847,859,880,884,897,913,955,963,969,973,994],{"__ignoreMap":474},[479,781,782,784,786,789,791,793,795,797],{"class":481,"line":482},[479,783,486],{"class":485},[479,785,490],{"class":489},[479,787,788],{"class":493}," useEffect",[479,790,497],{"class":489},[479,792,500],{"class":485},[479,794,503],{"class":489},[479,796,770],{"class":506},[479,798,510],{"class":489},[479,800,801,803,805,808,810,813,815,817,819,822],{"class":481,"line":513},[479,802,486],{"class":485},[479,804,490],{"class":489},[479,806,807],{"class":493}," setIdentity",[479,809,601],{"class":489},[479,811,812],{"class":493}," clearIdentity",[479,814,497],{"class":489},[479,816,500],{"class":485},[479,818,503],{"class":489},[479,820,821],{"class":506},"evlog\u002Fhttp",[479,823,510],{"class":489},[479,825,826,828,830,832,834,836,838,841],{"class":481,"line":520},[479,827,486],{"class":485},[479,829,490],{"class":489},[479,831,494],{"class":493},[479,833,497],{"class":489},[479,835,500],{"class":485},[479,837,503],{"class":489},[479,839,840],{"class":506},"@\u002Flib\u002Fauth-client",[479,842,510],{"class":489},[479,844,845],{"class":481,"line":540},[479,846,517],{"emptyLinePlaceholder":516},[479,848,849,851,853,855,857],{"class":481,"line":564},[479,850,523],{"class":485},[479,852,527],{"class":526},[479,854,531],{"class":530},[479,856,534],{"class":489},[479,858,537],{"class":489},[479,860,861,863,865,868,870,872,874,876,878],{"class":481,"line":569},[479,862,543],{"class":526},[479,864,490],{"class":489},[479,866,867],{"class":493}," data",[479,869,497],{"class":489},[479,871,549],{"class":489},[479,873,494],{"class":493},[479,875,554],{"class":489},[479,877,557],{"class":530},[479,879,561],{"class":560},[479,881,882],{"class":481,"line":617},[479,883,517],{"emptyLinePlaceholder":516},[479,885,886,889,891,893,895],{"class":481,"line":633},[479,887,888],{"class":530},"  useEffect",[479,890,575],{"class":560},[479,892,534],{"class":489},[479,894,580],{"class":526},[479,896,537],{"class":489},[479,898,899,901,903,905,907,909,911],{"class":481,"line":677},[479,900,620],{"class":485},[479,902,604],{"class":560},[479,904,593],{"class":493},[479,906,590],{"class":489},[479,908,598],{"class":493},[479,910,627],{"class":560},[479,912,630],{"class":489},[479,914,915,917,919,921,923,925,927,929,931,933,935,937,939,941,943,945,947,949,951,953],{"class":481,"line":688},[479,916,636],{"class":530},[479,918,575],{"class":560},[479,920,641],{"class":489},[479,922,644],{"class":560},[479,924,647],{"class":489},[479,926,867],{"class":493},[479,928,554],{"class":489},[479,930,598],{"class":493},[479,932,554],{"class":489},[479,934,655],{"class":493},[479,936,601],{"class":489},[479,938,660],{"class":560},[479,940,647],{"class":489},[479,942,867],{"class":493},[479,944,554],{"class":489},[479,946,598],{"class":493},[479,948,554],{"class":489},[479,950,669],{"class":493},[479,952,497],{"class":489},[479,954,674],{"class":560},[479,956,957,959,961],{"class":481,"line":696},[479,958,680],{"class":489},[479,960,683],{"class":485},[479,962,537],{"class":489},[479,964,965,967],{"class":481,"line":702},[479,966,691],{"class":530},[479,968,561],{"class":560},[479,970,971],{"class":481,"line":723},[479,972,699],{"class":489},[479,974,976,978,981,983,985,987,989,991],{"class":481,"line":975},14,[479,977,705],{"class":489},[479,979,980],{"class":560}," [",[479,982,593],{"class":493},[479,984,590],{"class":489},[479,986,598],{"class":493},[479,988,590],{"class":489},[479,990,655],{"class":493},[479,992,993],{"class":560},"])\n",[479,995,997],{"class":481,"line":996},15,[479,998,726],{"class":489},[454,1000,1001,1002,1005],{},"Wire it up at the root of your app (in ",[476,1003,1004],{},"_app.tsx",", the root layout, or a top-level provider).",[463,1007,1009],{"id":1008},"svelte","Svelte",[468,1011,1014],{"className":470,"code":1012,"filename":1013,"language":473,"meta":474,"style":474},"import { setIdentity, clearIdentity } from 'evlog\u002Fhttp'\nimport { authClient } from '$lib\u002Fauth-client'\n\nexport function setupAuthIdentity() {\n  const session = authClient.useSession()\n\n  session.subscribe(({ data }) => {\n    if (data?.user) {\n      setIdentity({ userId: data.user.id, userName: data.user.name })\n    } else {\n      clearIdentity()\n    }\n  })\n}\n","src\u002Flib\u002Fauth-identity.ts",[476,1015,1016,1038,1057,1061,1074,1090,1094,1118,1134,1176,1184,1190,1194,1201],{"__ignoreMap":474},[479,1017,1018,1020,1022,1024,1026,1028,1030,1032,1034,1036],{"class":481,"line":482},[479,1019,486],{"class":485},[479,1021,490],{"class":489},[479,1023,807],{"class":493},[479,1025,601],{"class":489},[479,1027,812],{"class":493},[479,1029,497],{"class":489},[479,1031,500],{"class":485},[479,1033,503],{"class":489},[479,1035,821],{"class":506},[479,1037,510],{"class":489},[479,1039,1040,1042,1044,1046,1048,1050,1052,1055],{"class":481,"line":513},[479,1041,486],{"class":485},[479,1043,490],{"class":489},[479,1045,494],{"class":493},[479,1047,497],{"class":489},[479,1049,500],{"class":485},[479,1051,503],{"class":489},[479,1053,1054],{"class":506},"$lib\u002Fauth-client",[479,1056,510],{"class":489},[479,1058,1059],{"class":481,"line":520},[479,1060,517],{"emptyLinePlaceholder":516},[479,1062,1063,1065,1067,1070,1072],{"class":481,"line":540},[479,1064,523],{"class":485},[479,1066,527],{"class":526},[479,1068,1069],{"class":530}," setupAuthIdentity",[479,1071,534],{"class":489},[479,1073,537],{"class":489},[479,1075,1076,1078,1080,1082,1084,1086,1088],{"class":481,"line":564},[479,1077,543],{"class":526},[479,1079,546],{"class":493},[479,1081,549],{"class":489},[479,1083,494],{"class":493},[479,1085,554],{"class":489},[479,1087,557],{"class":530},[479,1089,561],{"class":560},[479,1091,1092],{"class":481,"line":569},[479,1093,517],{"emptyLinePlaceholder":516},[479,1095,1096,1099,1101,1104,1106,1109,1111,1114,1116],{"class":481,"line":617},[479,1097,1098],{"class":493},"  session",[479,1100,554],{"class":489},[479,1102,1103],{"class":530},"subscribe",[479,1105,575],{"class":560},[479,1107,1108],{"class":489},"({",[479,1110,867],{"class":607},[479,1112,1113],{"class":489}," })",[479,1115,580],{"class":526},[479,1117,537],{"class":489},[479,1119,1120,1122,1124,1126,1128,1130,1132],{"class":481,"line":633},[479,1121,620],{"class":485},[479,1123,604],{"class":560},[479,1125,593],{"class":493},[479,1127,590],{"class":489},[479,1129,598],{"class":493},[479,1131,627],{"class":560},[479,1133,630],{"class":489},[479,1135,1136,1138,1140,1142,1144,1146,1148,1150,1152,1154,1156,1158,1160,1162,1164,1166,1168,1170,1172,1174],{"class":481,"line":677},[479,1137,636],{"class":530},[479,1139,575],{"class":560},[479,1141,641],{"class":489},[479,1143,644],{"class":560},[479,1145,647],{"class":489},[479,1147,867],{"class":493},[479,1149,554],{"class":489},[479,1151,598],{"class":493},[479,1153,554],{"class":489},[479,1155,655],{"class":493},[479,1157,601],{"class":489},[479,1159,660],{"class":560},[479,1161,647],{"class":489},[479,1163,867],{"class":493},[479,1165,554],{"class":489},[479,1167,598],{"class":493},[479,1169,554],{"class":489},[479,1171,669],{"class":493},[479,1173,497],{"class":489},[479,1175,674],{"class":560},[479,1177,1178,1180,1182],{"class":481,"line":688},[479,1179,680],{"class":489},[479,1181,683],{"class":485},[479,1183,537],{"class":489},[479,1185,1186,1188],{"class":481,"line":696},[479,1187,691],{"class":530},[479,1189,561],{"class":560},[479,1191,1192],{"class":481,"line":702},[479,1193,699],{"class":489},[479,1195,1196,1199],{"class":481,"line":723},[479,1197,1198],{"class":489},"  }",[479,1200,674],{"class":560},[479,1202,1203],{"class":481,"line":975},[479,1204,726],{"class":489},[454,1206,1207,1208,1211],{},"Run ",[476,1209,1210],{},"setupAuthIdentity()"," once when the app boots.",[463,1213,1215],{"id":1214},"output","Output",[454,1217,1218],{},"Client-side logs now include the user identity:",[468,1220,1225],{"className":1221,"code":1222,"filename":1223,"language":1224,"meta":474,"style":474},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"level\": \"info\",\n  \"tag\": \"checkout\",\n  \"message\": \"User clicked checkout\",\n  \"userId\": \"QBX9tPjJQExWawAbNll75\",\n  \"userName\": \"Hugo Richard\"\n}\n","Client Log","json",[476,1226,1227,1231,1255,1275,1295,1315,1334],{"__ignoreMap":474},[479,1228,1229],{"class":481,"line":482},[479,1230,630],{"class":489},[479,1232,1233,1236,1239,1242,1244,1247,1250,1252],{"class":481,"line":513},[479,1234,1235],{"class":489},"  \"",[479,1237,1238],{"class":526},"level",[479,1240,1241],{"class":489},"\"",[479,1243,647],{"class":489},[479,1245,1246],{"class":489}," \"",[479,1248,1249],{"class":506},"info",[479,1251,1241],{"class":489},[479,1253,1254],{"class":489},",\n",[479,1256,1257,1259,1262,1264,1266,1268,1271,1273],{"class":481,"line":520},[479,1258,1235],{"class":489},[479,1260,1261],{"class":526},"tag",[479,1263,1241],{"class":489},[479,1265,647],{"class":489},[479,1267,1246],{"class":489},[479,1269,1270],{"class":506},"checkout",[479,1272,1241],{"class":489},[479,1274,1254],{"class":489},[479,1276,1277,1279,1282,1284,1286,1288,1291,1293],{"class":481,"line":540},[479,1278,1235],{"class":489},[479,1280,1281],{"class":526},"message",[479,1283,1241],{"class":489},[479,1285,647],{"class":489},[479,1287,1246],{"class":489},[479,1289,1290],{"class":506},"User clicked checkout",[479,1292,1241],{"class":489},[479,1294,1254],{"class":489},[479,1296,1297,1299,1302,1304,1306,1308,1311,1313],{"class":481,"line":564},[479,1298,1235],{"class":489},[479,1300,1301],{"class":526},"userId",[479,1303,1241],{"class":489},[479,1305,647],{"class":489},[479,1307,1246],{"class":489},[479,1309,1310],{"class":506},"QBX9tPjJQExWawAbNll75",[479,1312,1241],{"class":489},[479,1314,1254],{"class":489},[479,1316,1317,1319,1322,1324,1326,1328,1331],{"class":481,"line":569},[479,1318,1235],{"class":489},[479,1320,1321],{"class":526},"userName",[479,1323,1241],{"class":489},[479,1325,647],{"class":489},[479,1327,1246],{"class":489},[479,1329,1330],{"class":506},"Hugo Richard",[479,1332,1333],{"class":489},"\"\n",[479,1335,1336],{"class":481,"line":617},[479,1337,726],{"class":489},[1339,1340,1341,1344,1345,1349,1350,1353],"tip",{},[476,1342,1343],{},"setIdentity"," is part of evlog's ",[1346,1347,1348],"a",{"href":256},"client logging"," layer. The same fields are picked up by the HTTP transport when client logs are forwarded to your server, so a single user shows up identified across browser ",[458,1351,1352],{},"and"," API logs.",[1355,1356,1357],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html 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 .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);}",{"title":474,"searchDepth":513,"depth":513,"links":1359},[1360,1361,1362,1363],{"id":465,"depth":513,"text":466},{"id":770,"depth":513,"text":771},{"id":1008,"depth":513,"text":1009},{"id":1214,"depth":513,"text":1215},"Mirror the server-side user identity into client-side logs by watching the Better Auth session and calling setIdentity.","md",[1367,1370],{"label":36,"icon":39,"to":295,"color":1368,"variant":1369},"neutral","subtle",{"label":255,"icon":1371,"to":256,"color":1368,"variant":1369},"i-lucide-monitor-dot",{},{"title":308,"icon":258},{"title":449,"description":1364},"sJEJlejAja_J96L8yvmIttC_iI0gol_zZ55GYdBMqBw",[1377,1379],{"title":303,"path":304,"stem":305,"description":1378,"icon":306,"children":-1},"Framework-agnostic factory with route filtering, session timing, and lifecycle hooks. Call it once at startup and reuse across requests.",{"title":312,"path":313,"stem":314,"description":1380,"icon":315,"children":-1},"Watch session resolution time, enable session caching, wire the standalone Nitro hook, and combine with the AI SDK integration.",1782924663958]