[{"data":1,"prerenderedAt":1385},["ShallowReactive",2],{"navigation_docs":3,"-use-cases-better-auth-client-sync":451,"-use-cases-better-auth-client-sync-surround":1380},[4,30,80,245,365,420],{"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,358],{"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,"path":355,"stem":356,"icon":357},"eve","\u002Fuse-cases\u002Feve","4.use-cases\u002F5.eve","i-custom-eve",{"title":284,"path":359,"stem":360,"children":361,"page":29},"\u002Fuse-cases\u002Ftelemetry","4.use-cases\u002F6.telemetry",[362],{"title":284,"path":363,"stem":364,"icon":315},"\u002Fuse-cases\u002Ftelemetry\u002Foverview","4.use-cases\u002F6.telemetry\u002F01.overview",{"title":366,"path":367,"stem":368,"children":369,"page":29},"Extend","\u002Fextend","5.extend",[370,374,379,384,389,393,397,401,405,410,415],{"title":36,"path":371,"stem":372,"icon":373},"\u002Fextend\u002Foverview","5.extend\u002F0.overview","i-lucide-blocks",{"title":375,"path":376,"stem":377,"icon":378},"Stream","\u002Fextend\u002Fstream","5.extend\u002F1.stream","i-lucide-radio-tower",{"title":380,"path":381,"stem":382,"icon":383},"Custom framework","\u002Fextend\u002Fcustom-framework","5.extend\u002F10.custom-framework","i-lucide-puzzle",{"title":385,"path":386,"stem":387,"icon":388},"FS reader","\u002Fextend\u002Ffs-reader","5.extend\u002F2.fs-reader","i-lucide-folder-search",{"title":345,"path":390,"stem":391,"icon":392},"\u002Fextend\u002Fconsumer-recipes","5.extend\u002F3.consumer-recipes","i-lucide-chef-hat",{"title":394,"path":395,"stem":396,"icon":373},"Plugins","\u002Fextend\u002Fplugins","5.extend\u002F4.plugins",{"title":398,"path":399,"stem":400,"icon":352},"Custom enrichers","\u002Fextend\u002Fcustom-enrichers","5.extend\u002F5.custom-enrichers",{"title":402,"path":403,"stem":404,"icon":64},"Tail sampling","\u002Fextend\u002Ftail-sampling","5.extend\u002F6.tail-sampling",{"title":406,"path":407,"stem":408,"icon":409},"Identity headers","\u002Fextend\u002Fidentity-headers","5.extend\u002F7.identity-headers","i-lucide-fingerprint",{"title":411,"path":412,"stem":413,"icon":414},"Custom drains","\u002Fextend\u002Fcustom-drains","5.extend\u002F8.custom-drains","i-lucide-share-2",{"title":416,"path":417,"stem":418,"icon":419},"Drain pipeline","\u002Fextend\u002Fdrain-pipeline","5.extend\u002F9.drain-pipeline","i-lucide-workflow",{"title":421,"path":422,"stem":423,"children":424,"page":29},"Reference","\u002Freference","6.reference",[425,430,433,438,442,447],{"title":426,"path":427,"stem":428,"icon":429},"Configuration","\u002Freference\u002Fconfiguration","6.reference\u002F1.configuration","i-lucide-settings",{"title":312,"path":431,"stem":432,"icon":315},"\u002Freference\u002Fperformance","6.reference\u002F2.performance",{"title":434,"path":435,"stem":436,"icon":437},"Vite Plugin","\u002Freference\u002Fvite-plugin","6.reference\u002F3.vite-plugin","i-custom-vite",{"title":439,"path":440,"stem":441,"icon":318},"Best Practices","\u002Freference\u002Fbest-practices","6.reference\u002F4.best-practices",{"title":443,"path":444,"stem":445,"icon":446},"vs Other Loggers","\u002Freference\u002Fvs-other-loggers","6.reference\u002F5.vs-other-loggers","i-lucide-scale",{"title":448,"path":449,"stem":450,"icon":352},"Agent Skills","\u002Freference\u002Fagent-skills","6.reference\u002F6.agent-skills",{"id":452,"title":453,"body":454,"description":1368,"extension":1369,"links":1370,"meta":1376,"navigation":1377,"path":309,"seo":1378,"stem":310,"__hash__":1379},"docs\u002F4.use-cases\u002F3.better-auth\u002F04.client-sync.md","Client Identity Sync",{"type":455,"value":456,"toc":1362},"minimark",[457,466,471,731,734,772,776,1003,1010,1014,1209,1216,1220,1223,1342,1358],[458,459,460,461,465],"p",{},"The middleware identifies users on the server. To get the same identity on ",[462,463,464],"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.",[467,468,470],"h2",{"id":469},"vue-nuxt","Vue \u002F Nuxt",[472,473,479],"pre",{"className":474,"code":475,"filename":476,"language":477,"meta":478,"style":478},"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","",[480,481,482,515,522,542,566,571,619,635,679,690,698,704,725],"code",{"__ignoreMap":478},[483,484,487,491,495,499,502,505,508,512],"span",{"class":485,"line":486},"line",1,[483,488,490],{"class":489},"s7zQu","import",[483,492,494],{"class":493},"sMK4o"," {",[483,496,498],{"class":497},"sTEyZ"," authClient",[483,500,501],{"class":493}," }",[483,503,504],{"class":489}," from",[483,506,507],{"class":493}," '",[483,509,511],{"class":510},"sfazB","~\u002Flib\u002Fauth-client",[483,513,514],{"class":493},"'\n",[483,516,518],{"class":485,"line":517},2,[483,519,521],{"emptyLinePlaceholder":520},true,"\n",[483,523,525,528,532,536,539],{"class":485,"line":524},3,[483,526,527],{"class":489},"export",[483,529,531],{"class":530},"spNyl"," function",[483,533,535],{"class":534},"s2Zo4"," useAuthIdentity",[483,537,538],{"class":493},"()",[483,540,541],{"class":493}," {\n",[483,543,545,548,551,554,556,559,562],{"class":485,"line":544},4,[483,546,547],{"class":530},"  const",[483,549,550],{"class":497}," session",[483,552,553],{"class":493}," =",[483,555,498],{"class":497},[483,557,558],{"class":493},".",[483,560,561],{"class":534},"useSession",[483,563,565],{"class":564},"swJcz","()\n",[483,567,569],{"class":485,"line":568},5,[483,570,521],{"emptyLinePlaceholder":520},[483,572,574,577,580,582,585,587,589,592,595,598,600,603,606,609,612,615,617],{"class":485,"line":573},6,[483,575,576],{"class":534},"  watch",[483,578,579],{"class":564},"(",[483,581,538],{"class":493},[483,583,584],{"class":530}," =>",[483,586,550],{"class":497},[483,588,558],{"class":493},[483,590,591],{"class":497},"value",[483,593,594],{"class":493},"?.",[483,596,597],{"class":497},"data",[483,599,594],{"class":493},[483,601,602],{"class":497},"user",[483,604,605],{"class":493},",",[483,607,608],{"class":493}," (",[483,610,602],{"class":611},"sHdIc",[483,613,614],{"class":493},")",[483,616,584],{"class":530},[483,618,541],{"class":493},[483,620,622,625,627,629,632],{"class":485,"line":621},7,[483,623,624],{"class":489},"    if",[483,626,608],{"class":564},[483,628,602],{"class":497},[483,630,631],{"class":564},") ",[483,633,634],{"class":493},"{\n",[483,636,638,641,643,646,649,652,655,657,660,662,665,667,669,671,674,676],{"class":485,"line":637},8,[483,639,640],{"class":534},"      setIdentity",[483,642,579],{"class":564},[483,644,645],{"class":493},"{",[483,647,648],{"class":564}," userId",[483,650,651],{"class":493},":",[483,653,654],{"class":497}," user",[483,656,558],{"class":493},[483,658,659],{"class":497},"id",[483,661,605],{"class":493},[483,663,664],{"class":564}," userName",[483,666,651],{"class":493},[483,668,654],{"class":497},[483,670,558],{"class":493},[483,672,673],{"class":497},"name",[483,675,501],{"class":493},[483,677,678],{"class":564},")\n",[483,680,682,685,688],{"class":485,"line":681},9,[483,683,684],{"class":493},"    }",[483,686,687],{"class":489}," else",[483,689,541],{"class":493},[483,691,693,696],{"class":485,"line":692},10,[483,694,695],{"class":534},"      clearIdentity",[483,697,565],{"class":564},[483,699,701],{"class":485,"line":700},11,[483,702,703],{"class":493},"    }\n",[483,705,707,710,712,715,717,721,723],{"class":485,"line":706},12,[483,708,709],{"class":493},"  },",[483,711,494],{"class":493},[483,713,714],{"class":564}," immediate",[483,716,651],{"class":493},[483,718,720],{"class":719},"sfNiH"," true",[483,722,501],{"class":493},[483,724,678],{"class":564},[483,726,728],{"class":485,"line":727},13,[483,729,730],{"class":493},"}\n",[458,732,733],{},"Call it once in your root layout:",[472,735,740],{"className":736,"code":737,"filename":738,"language":739,"meta":478,"style":478},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript setup>\nuseAuthIdentity()\n\u003C\u002Fscript>\n","app.vue","vue",[480,741,742,756,763],{"__ignoreMap":478},[483,743,744,747,750,753],{"class":485,"line":486},[483,745,746],{"class":493},"\u003C",[483,748,749],{"class":564},"script",[483,751,752],{"class":530}," setup",[483,754,755],{"class":493},">\n",[483,757,758,761],{"class":485,"line":517},[483,759,760],{"class":534},"useAuthIdentity",[483,762,565],{"class":497},[483,764,765,768,770],{"class":485,"line":524},[483,766,767],{"class":493},"\u003C\u002F",[483,769,749],{"class":564},[483,771,755],{"class":493},[467,773,775],{"id":774},"react","React",[472,777,782],{"className":778,"code":779,"filename":780,"language":781,"meta":478,"style":478},"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",[480,783,784,803,828,847,851,863,884,888,901,917,959,967,973,977,998],{"__ignoreMap":478},[483,785,786,788,790,793,795,797,799,801],{"class":485,"line":486},[483,787,490],{"class":489},[483,789,494],{"class":493},[483,791,792],{"class":497}," useEffect",[483,794,501],{"class":493},[483,796,504],{"class":489},[483,798,507],{"class":493},[483,800,774],{"class":510},[483,802,514],{"class":493},[483,804,805,807,809,812,814,817,819,821,823,826],{"class":485,"line":517},[483,806,490],{"class":489},[483,808,494],{"class":493},[483,810,811],{"class":497}," setIdentity",[483,813,605],{"class":493},[483,815,816],{"class":497}," clearIdentity",[483,818,501],{"class":493},[483,820,504],{"class":489},[483,822,507],{"class":493},[483,824,825],{"class":510},"evlog\u002Fhttp",[483,827,514],{"class":493},[483,829,830,832,834,836,838,840,842,845],{"class":485,"line":524},[483,831,490],{"class":489},[483,833,494],{"class":493},[483,835,498],{"class":497},[483,837,501],{"class":493},[483,839,504],{"class":489},[483,841,507],{"class":493},[483,843,844],{"class":510},"@\u002Flib\u002Fauth-client",[483,846,514],{"class":493},[483,848,849],{"class":485,"line":544},[483,850,521],{"emptyLinePlaceholder":520},[483,852,853,855,857,859,861],{"class":485,"line":568},[483,854,527],{"class":489},[483,856,531],{"class":530},[483,858,535],{"class":534},[483,860,538],{"class":493},[483,862,541],{"class":493},[483,864,865,867,869,872,874,876,878,880,882],{"class":485,"line":573},[483,866,547],{"class":530},[483,868,494],{"class":493},[483,870,871],{"class":497}," data",[483,873,501],{"class":493},[483,875,553],{"class":493},[483,877,498],{"class":497},[483,879,558],{"class":493},[483,881,561],{"class":534},[483,883,565],{"class":564},[483,885,886],{"class":485,"line":621},[483,887,521],{"emptyLinePlaceholder":520},[483,889,890,893,895,897,899],{"class":485,"line":637},[483,891,892],{"class":534},"  useEffect",[483,894,579],{"class":564},[483,896,538],{"class":493},[483,898,584],{"class":530},[483,900,541],{"class":493},[483,902,903,905,907,909,911,913,915],{"class":485,"line":681},[483,904,624],{"class":489},[483,906,608],{"class":564},[483,908,597],{"class":497},[483,910,594],{"class":493},[483,912,602],{"class":497},[483,914,631],{"class":564},[483,916,634],{"class":493},[483,918,919,921,923,925,927,929,931,933,935,937,939,941,943,945,947,949,951,953,955,957],{"class":485,"line":692},[483,920,640],{"class":534},[483,922,579],{"class":564},[483,924,645],{"class":493},[483,926,648],{"class":564},[483,928,651],{"class":493},[483,930,871],{"class":497},[483,932,558],{"class":493},[483,934,602],{"class":497},[483,936,558],{"class":493},[483,938,659],{"class":497},[483,940,605],{"class":493},[483,942,664],{"class":564},[483,944,651],{"class":493},[483,946,871],{"class":497},[483,948,558],{"class":493},[483,950,602],{"class":497},[483,952,558],{"class":493},[483,954,673],{"class":497},[483,956,501],{"class":493},[483,958,678],{"class":564},[483,960,961,963,965],{"class":485,"line":700},[483,962,684],{"class":493},[483,964,687],{"class":489},[483,966,541],{"class":493},[483,968,969,971],{"class":485,"line":706},[483,970,695],{"class":534},[483,972,565],{"class":564},[483,974,975],{"class":485,"line":727},[483,976,703],{"class":493},[483,978,980,982,985,987,989,991,993,995],{"class":485,"line":979},14,[483,981,709],{"class":493},[483,983,984],{"class":564}," [",[483,986,597],{"class":497},[483,988,594],{"class":493},[483,990,602],{"class":497},[483,992,594],{"class":493},[483,994,659],{"class":497},[483,996,997],{"class":564},"])\n",[483,999,1001],{"class":485,"line":1000},15,[483,1002,730],{"class":493},[458,1004,1005,1006,1009],{},"Wire it up at the root of your app (in ",[480,1007,1008],{},"_app.tsx",", the root layout, or a top-level provider).",[467,1011,1013],{"id":1012},"svelte","Svelte",[472,1015,1018],{"className":474,"code":1016,"filename":1017,"language":477,"meta":478,"style":478},"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",[480,1019,1020,1042,1061,1065,1078,1094,1098,1122,1138,1180,1188,1194,1198,1205],{"__ignoreMap":478},[483,1021,1022,1024,1026,1028,1030,1032,1034,1036,1038,1040],{"class":485,"line":486},[483,1023,490],{"class":489},[483,1025,494],{"class":493},[483,1027,811],{"class":497},[483,1029,605],{"class":493},[483,1031,816],{"class":497},[483,1033,501],{"class":493},[483,1035,504],{"class":489},[483,1037,507],{"class":493},[483,1039,825],{"class":510},[483,1041,514],{"class":493},[483,1043,1044,1046,1048,1050,1052,1054,1056,1059],{"class":485,"line":517},[483,1045,490],{"class":489},[483,1047,494],{"class":493},[483,1049,498],{"class":497},[483,1051,501],{"class":493},[483,1053,504],{"class":489},[483,1055,507],{"class":493},[483,1057,1058],{"class":510},"$lib\u002Fauth-client",[483,1060,514],{"class":493},[483,1062,1063],{"class":485,"line":524},[483,1064,521],{"emptyLinePlaceholder":520},[483,1066,1067,1069,1071,1074,1076],{"class":485,"line":544},[483,1068,527],{"class":489},[483,1070,531],{"class":530},[483,1072,1073],{"class":534}," setupAuthIdentity",[483,1075,538],{"class":493},[483,1077,541],{"class":493},[483,1079,1080,1082,1084,1086,1088,1090,1092],{"class":485,"line":568},[483,1081,547],{"class":530},[483,1083,550],{"class":497},[483,1085,553],{"class":493},[483,1087,498],{"class":497},[483,1089,558],{"class":493},[483,1091,561],{"class":534},[483,1093,565],{"class":564},[483,1095,1096],{"class":485,"line":573},[483,1097,521],{"emptyLinePlaceholder":520},[483,1099,1100,1103,1105,1108,1110,1113,1115,1118,1120],{"class":485,"line":621},[483,1101,1102],{"class":497},"  session",[483,1104,558],{"class":493},[483,1106,1107],{"class":534},"subscribe",[483,1109,579],{"class":564},[483,1111,1112],{"class":493},"({",[483,1114,871],{"class":611},[483,1116,1117],{"class":493}," })",[483,1119,584],{"class":530},[483,1121,541],{"class":493},[483,1123,1124,1126,1128,1130,1132,1134,1136],{"class":485,"line":637},[483,1125,624],{"class":489},[483,1127,608],{"class":564},[483,1129,597],{"class":497},[483,1131,594],{"class":493},[483,1133,602],{"class":497},[483,1135,631],{"class":564},[483,1137,634],{"class":493},[483,1139,1140,1142,1144,1146,1148,1150,1152,1154,1156,1158,1160,1162,1164,1166,1168,1170,1172,1174,1176,1178],{"class":485,"line":681},[483,1141,640],{"class":534},[483,1143,579],{"class":564},[483,1145,645],{"class":493},[483,1147,648],{"class":564},[483,1149,651],{"class":493},[483,1151,871],{"class":497},[483,1153,558],{"class":493},[483,1155,602],{"class":497},[483,1157,558],{"class":493},[483,1159,659],{"class":497},[483,1161,605],{"class":493},[483,1163,664],{"class":564},[483,1165,651],{"class":493},[483,1167,871],{"class":497},[483,1169,558],{"class":493},[483,1171,602],{"class":497},[483,1173,558],{"class":493},[483,1175,673],{"class":497},[483,1177,501],{"class":493},[483,1179,678],{"class":564},[483,1181,1182,1184,1186],{"class":485,"line":692},[483,1183,684],{"class":493},[483,1185,687],{"class":489},[483,1187,541],{"class":493},[483,1189,1190,1192],{"class":485,"line":700},[483,1191,695],{"class":534},[483,1193,565],{"class":564},[483,1195,1196],{"class":485,"line":706},[483,1197,703],{"class":493},[483,1199,1200,1203],{"class":485,"line":727},[483,1201,1202],{"class":493},"  }",[483,1204,678],{"class":564},[483,1206,1207],{"class":485,"line":979},[483,1208,730],{"class":493},[458,1210,1211,1212,1215],{},"Run ",[480,1213,1214],{},"setupAuthIdentity()"," once when the app boots.",[467,1217,1219],{"id":1218},"output","Output",[458,1221,1222],{},"Client-side logs now include the user identity:",[472,1224,1229],{"className":1225,"code":1226,"filename":1227,"language":1228,"meta":478,"style":478},"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",[480,1230,1231,1235,1259,1279,1299,1319,1338],{"__ignoreMap":478},[483,1232,1233],{"class":485,"line":486},[483,1234,634],{"class":493},[483,1236,1237,1240,1243,1246,1248,1251,1254,1256],{"class":485,"line":517},[483,1238,1239],{"class":493},"  \"",[483,1241,1242],{"class":530},"level",[483,1244,1245],{"class":493},"\"",[483,1247,651],{"class":493},[483,1249,1250],{"class":493}," \"",[483,1252,1253],{"class":510},"info",[483,1255,1245],{"class":493},[483,1257,1258],{"class":493},",\n",[483,1260,1261,1263,1266,1268,1270,1272,1275,1277],{"class":485,"line":524},[483,1262,1239],{"class":493},[483,1264,1265],{"class":530},"tag",[483,1267,1245],{"class":493},[483,1269,651],{"class":493},[483,1271,1250],{"class":493},[483,1273,1274],{"class":510},"checkout",[483,1276,1245],{"class":493},[483,1278,1258],{"class":493},[483,1280,1281,1283,1286,1288,1290,1292,1295,1297],{"class":485,"line":544},[483,1282,1239],{"class":493},[483,1284,1285],{"class":530},"message",[483,1287,1245],{"class":493},[483,1289,651],{"class":493},[483,1291,1250],{"class":493},[483,1293,1294],{"class":510},"User clicked checkout",[483,1296,1245],{"class":493},[483,1298,1258],{"class":493},[483,1300,1301,1303,1306,1308,1310,1312,1315,1317],{"class":485,"line":568},[483,1302,1239],{"class":493},[483,1304,1305],{"class":530},"userId",[483,1307,1245],{"class":493},[483,1309,651],{"class":493},[483,1311,1250],{"class":493},[483,1313,1314],{"class":510},"QBX9tPjJQExWawAbNll75",[483,1316,1245],{"class":493},[483,1318,1258],{"class":493},[483,1320,1321,1323,1326,1328,1330,1332,1335],{"class":485,"line":573},[483,1322,1239],{"class":493},[483,1324,1325],{"class":530},"userName",[483,1327,1245],{"class":493},[483,1329,651],{"class":493},[483,1331,1250],{"class":493},[483,1333,1334],{"class":510},"Hugo Richard",[483,1336,1337],{"class":493},"\"\n",[483,1339,1340],{"class":485,"line":621},[483,1341,730],{"class":493},[1343,1344,1345,1348,1349,1353,1354,1357],"tip",{},[480,1346,1347],{},"setIdentity"," is part of evlog's ",[1350,1351,1352],"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 ",[462,1355,1356],{},"and"," API logs.",[1359,1360,1361],"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":478,"searchDepth":517,"depth":517,"links":1363},[1364,1365,1366,1367],{"id":469,"depth":517,"text":470},{"id":774,"depth":517,"text":775},{"id":1012,"depth":517,"text":1013},{"id":1218,"depth":517,"text":1219},"Mirror the server-side user identity into client-side logs by watching the Better Auth session and calling setIdentity.","md",[1371,1374],{"label":36,"icon":39,"to":295,"color":1372,"variant":1373},"neutral","subtle",{"label":255,"icon":1375,"to":256,"color":1372,"variant":1373},"i-lucide-monitor-dot",{},{"title":308,"icon":258},{"title":453,"description":1368},"sJEJlejAja_J96L8yvmIttC_iI0gol_zZ55GYdBMqBw",[1381,1383],{"title":303,"path":304,"stem":305,"description":1382,"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":1384,"icon":315,"children":-1},"Watch session resolution time, enable session caching, wire the standalone Nitro hook, and combine with the AI SDK integration.",1784142036575]