[{"data":1,"prerenderedAt":1170},["ShallowReactive",2],{"navigation_docs":3,"-api-types":208,"-api-types-surround":1165},[4,42,68,115,136,157],{"title":5,"path":6,"stem":7,"children":8,"icon":11},"Getting Started","\u002Fgetting-started","1.getting-started\u002F0.index",[9,12,17,22,27,32,37],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-sparkles",{"title":13,"path":14,"stem":15,"icon":16},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F1.installation","i-lucide-download",{"title":18,"path":19,"stem":20,"icon":21},"Configuration","\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F2.configuration","i-lucide-settings",{"title":23,"path":24,"stem":25,"icon":26},"Client Setup","\u002Fgetting-started\u002Fclient-setup","1.getting-started\u002F3.client-setup","i-lucide-monitor",{"title":28,"path":29,"stem":30,"icon":31},"Type Augmentation","\u002Fgetting-started\u002Ftype-augmentation","1.getting-started\u002F4.type-augmentation","i-lucide-type",{"title":33,"path":34,"stem":35,"icon":36},"Schema Generation (NuxtHub)","\u002Fgetting-started\u002Fschema-generation","1.getting-started\u002F5.schema-generation","i-lucide-database",{"title":38,"path":39,"stem":40,"icon":41},"How It Works","\u002Fgetting-started\u002Fhow-it-works","1.getting-started\u002F6.how-it-works","i-lucide-workflow",{"title":43,"path":44,"stem":45,"children":46,"page":67},"Core Concepts","\u002Fcore-concepts","2.core-concepts",[47,51,55,59,63],{"title":48,"path":49,"stem":50},"serverAuth()","\u002Fcore-concepts\u002Fserver-auth","2.core-concepts\u002F1.server-auth",{"title":52,"path":53,"stem":54},"Sessions","\u002Fcore-concepts\u002Fsessions","2.core-concepts\u002F2.sessions",{"title":56,"path":57,"stem":58},"Route Protection","\u002Fcore-concepts\u002Froute-protection","2.core-concepts\u002F3.route-protection",{"title":60,"path":61,"stem":62},"Auto‑Imports and Aliases","\u002Fcore-concepts\u002Fauto-imports-aliases","2.core-concepts\u002F4.auto-imports-aliases",{"title":64,"path":65,"stem":66},"Security & Caveats","\u002Fcore-concepts\u002Fsecurity-caveats","2.core-concepts\u002F5.security-caveats",false,{"title":69,"path":70,"stem":71,"children":72,"page":67},"Guides","\u002Fguides","3.guides",[73,77,82,86,90,94,99,103,107,111],{"title":74,"path":75,"stem":76},"Role‑Based Access","\u002Fguides\u002Frole-based-access","3.guides\u002F1.role-based-access",{"title":78,"path":79,"stem":80,"icon":81},"Setup diagnostics","\u002Fguides\u002Fdiagnostics","3.guides\u002F10.diagnostics","i-lucide-circle-alert",{"title":83,"path":84,"stem":85},"OAuth Providers","\u002Fguides\u002Foauth-providers","3.guides\u002F2.oauth-providers",{"title":87,"path":88,"stem":89},"Custom Database","\u002Fguides\u002Fcustom-database","3.guides\u002F3.custom-database",{"title":91,"path":92,"stem":93},"Database-less Mode","\u002Fguides\u002Fdatabase-less-mode","3.guides\u002F4.database-less-mode",{"title":95,"path":96,"stem":97,"icon":98},"External Auth Backend","\u002Fguides\u002Fexternal-auth-backend","3.guides\u002F5.external-auth-backend","i-lucide-server",{"title":100,"path":101,"stem":102},"Migrating from nuxt-auth-utils","\u002Fguides\u002Fmigrate-from-nuxt-auth-utils","3.guides\u002F6.migrate-from-nuxt-auth-utils",{"title":104,"path":105,"stem":106},"Two-Factor Authentication (TOTP + Backup Codes)","\u002Fguides\u002Ftwo-factor-auth","3.guides\u002F7.two-factor-auth",{"title":108,"path":109,"stem":110},"Testing","\u002Fguides\u002Ftesting","3.guides\u002F8.testing",{"title":112,"path":113,"stem":114},"Production Deployment","\u002Fguides\u002Fproduction-deployment","3.guides\u002F9.production-deployment",{"title":116,"path":117,"stem":118,"children":119,"page":67},"Integrations","\u002Fintegrations","4.integrations",[120,124,128,132],{"title":121,"path":122,"stem":123},"NuxtHub","\u002Fintegrations\u002Fnuxthub","4.integrations\u002F1.nuxthub",{"title":125,"path":126,"stem":127},"DevTools","\u002Fintegrations\u002Fdevtools","4.integrations\u002F2.devtools",{"title":129,"path":130,"stem":131},"Convex","\u002Fintegrations\u002Fconvex","4.integrations\u002F3.convex",{"title":133,"path":134,"stem":135},"i18n","\u002Fintegrations\u002Fi18n","4.integrations\u002F4.i18n",{"title":137,"path":138,"stem":139,"children":140,"page":67},"API Reference","\u002Fapi","5.api",[141,145,149,153],{"title":142,"path":143,"stem":144},"Composables","\u002Fapi\u002Fcomposables","5.api\u002F1.composables",{"title":146,"path":147,"stem":148},"Server Utilities","\u002Fapi\u002Fserver-utils","5.api\u002F2.server-utils",{"title":150,"path":151,"stem":152},"Components","\u002Fapi\u002Fcomponents","5.api\u002F3.components",{"title":154,"path":155,"stem":156},"Types","\u002Fapi\u002Ftypes","5.api\u002F4.types",{"title":158,"path":159,"stem":160,"children":161,"icon":81},"Errors","\u002Ferrors","6.errors\u002F0.index",[162,164,168,172,176,180,184,188,192,196,200,204],{"title":163,"path":159,"stem":160},"Overview",{"title":165,"path":166,"stem":167},"Auth configuration failed to load","\u002Ferrors\u002Fnuxt-auth-config-load-failed","6.errors\u002Fnuxt-auth-config-load-failed",{"title":169,"path":170,"stem":171},"Schema generator returned no code","\u002Ferrors\u002Fnuxt-auth-empty-schema","6.errors\u002Fnuxt-auth-empty-schema",{"title":173,"path":174,"stem":175},"Invalid server auth config export","\u002Ferrors\u002Fnuxt-auth-invalid-config-export","6.errors\u002Fnuxt-auth-invalid-config-export",{"title":177,"path":178,"stem":179},"Auth plugin path must be absolute","\u002Ferrors\u002Fnuxt-auth-invalid-plugin-source","6.errors\u002Fnuxt-auth-invalid-plugin-source",{"title":181,"path":182,"stem":183},"Missing auth configuration","\u002Ferrors\u002Fnuxt-auth-missing-config","6.errors\u002Fnuxt-auth-missing-config",{"title":185,"path":186,"stem":187},"NuxtHub database alias is missing","\u002Ferrors\u002Fnuxt-auth-missing-hub-db","6.errors\u002Fnuxt-auth-missing-hub-db",{"title":189,"path":190,"stem":191},"No database provider is enabled","\u002Ferrors\u002Fnuxt-auth-no-database-provider","6.errors\u002Fnuxt-auth-no-database-provider",{"title":193,"path":194,"stem":195},"Auth schema generation failed","\u002Ferrors\u002Fnuxt-auth-schema-generation-failed","6.errors\u002Fnuxt-auth-schema-generation-failed",{"title":197,"path":198,"stem":199},"Custom session storage is missing","\u002Ferrors\u002Fnuxt-auth-schema-storage-required","6.errors\u002Fnuxt-auth-schema-storage-required",{"title":201,"path":202,"stem":203},"Secondary storage in client-only mode","\u002Ferrors\u002Fnuxt-auth-storage-client-only","6.errors\u002Fnuxt-auth-storage-client-only",{"title":205,"path":206,"stem":207},"Unsupported database dialect","\u002Ferrors\u002Fnuxt-auth-unsupported-dialect","6.errors\u002Fnuxt-auth-unsupported-dialect",{"id":209,"title":154,"body":210,"description":1159,"extension":1160,"links":1161,"meta":1162,"navigation":816,"path":155,"seo":1163,"stem":156,"__hash__":1164},"docs\u002F5.api\u002F4.types.md",{"type":211,"value":212,"toc":1141},"minimark",[213,217,346,351,358,385,388,392,398,402,412,434,441,452,529,535,538,547,611,680,686,697,703,727,734,741,779,785,791,840,843,899,903,913,922,926,930,1025,1029,1137],[214,215,216],"p",{},"Use this page when you need the public TypeScript surface exposed by the module and its generated auth types.",[218,219,224],"pre",{"className":220,"code":221,"language":222,"meta":223,"style":223},"language-ts shiki shiki-themes one-light synthwave-84 synthwave-84","import type {\n  AppSession,\n  AuthActionError,\n  AuthMeta,\n  AuthMode,\n  AuthRouteRules,\n  AuthSocialProviderId,\n  AuthSession,\n  ClientAuthSession,\n  AuthUser,\n  RequireSessionOptions,\n  UserMatch,\n} from '@nuxtjs\u002Fbetter-auth'\n","ts","",[225,226,227,243,253,261,269,277,285,293,301,309,317,325,333],"code",{"__ignoreMap":223},[228,229,232,236,239],"span",{"class":230,"line":231},"line",1,[228,233,235],{"class":234},"sqe1H","import",[228,237,238],{"class":234}," type",[228,240,242],{"class":241},"s17Py"," {\n",[228,244,246,250],{"class":230,"line":245},2,[228,247,249],{"class":248},"sYvLG","  AppSession",[228,251,252],{"class":241},",\n",[228,254,256,259],{"class":230,"line":255},3,[228,257,258],{"class":248},"  AuthActionError",[228,260,252],{"class":241},[228,262,264,267],{"class":230,"line":263},4,[228,265,266],{"class":248},"  AuthMeta",[228,268,252],{"class":241},[228,270,272,275],{"class":230,"line":271},5,[228,273,274],{"class":248},"  AuthMode",[228,276,252],{"class":241},[228,278,280,283],{"class":230,"line":279},6,[228,281,282],{"class":248},"  AuthRouteRules",[228,284,252],{"class":241},[228,286,288,291],{"class":230,"line":287},7,[228,289,290],{"class":248},"  AuthSocialProviderId",[228,292,252],{"class":241},[228,294,296,299],{"class":230,"line":295},8,[228,297,298],{"class":248},"  AuthSession",[228,300,252],{"class":241},[228,302,304,307],{"class":230,"line":303},9,[228,305,306],{"class":248},"  ClientAuthSession",[228,308,252],{"class":241},[228,310,312,315],{"class":230,"line":311},10,[228,313,314],{"class":248},"  AuthUser",[228,316,252],{"class":241},[228,318,320,323],{"class":230,"line":319},11,[228,321,322],{"class":248},"  RequireSessionOptions",[228,324,252],{"class":241},[228,326,328,331],{"class":230,"line":327},12,[228,329,330],{"class":248},"  UserMatch",[228,332,252],{"class":241},[228,334,336,339,342],{"class":230,"line":335},13,[228,337,338],{"class":241},"} ",[228,340,341],{"class":234},"from",[228,343,345],{"class":344},"sPAZv"," '@nuxtjs\u002Fbetter-auth'\n",[347,348,350],"h2",{"id":349},"authuser","AuthUser",[214,352,353,354,357],{},"The user object returned by ",[225,355,356],{},"useUserSession()",".",[359,360,361,367,371,376,380],"field-group",{},[362,363,366],"field",{"name":364,"type":365},"id","string","Unique user identifier.",[362,368,370],{"name":369,"type":365},"email","User's email address.",[362,372,375],{"name":373,"type":374},"name","string | null","User's display name.",[362,377,379],{"name":378,"type":374},"image","URL to user's avatar image.",[362,381,384],{"name":382,"type":383},"emailVerified","boolean","Whether email has been verified.",[214,386,387],{},"Additional fields depend on your Better Auth plugins.",[347,389,391],{"id":390},"authsession","AuthSession",[214,393,394,395,357],{},"The full session returned by server helpers, including its ",[225,396,397],{},"token",[347,399,401],{"id":400},"clientauthsession","ClientAuthSession",[214,403,404,405,407,408,411],{},"The session object returned by ",[225,406,356],{},". This is ",[225,409,410],{},"Omit\u003CAuthSession, 'token'>"," and preserves additional session fields inferred from your configuration.",[359,413,414,417,421,426,430],{},[362,415,416],{"name":364,"type":365},"Unique session identifier.",[362,418,420],{"name":419,"type":365},"userId","ID of the user this session belongs to.",[362,422,425],{"name":423,"type":424},"expiresAt","Date","When the session expires (database sessions only).",[362,427,429],{"name":428,"type":374},"ipAddress","IP address that created the session.",[362,431,433],{"name":432,"type":374},"userAgent","User agent that created the session.",[435,436,438],"h3",{"id":437},"authmeta",[225,439,440],{},"AuthMeta",[214,442,443,444,447,448,451],{},"Used in page meta and route-rule auth entries (",[225,445,446],{},"routeRules.auth"," or ",[225,449,450],{},"nitro.routeRules.auth",").",[218,453,456],{"className":220,"code":454,"filename":455,"language":222,"meta":223,"style":223},"definePageMeta({ auth: 'user' satisfies AuthMeta })\ndefinePageMeta({ auth: { only: 'guest', redirectTo: '\u002F' } satisfies AuthMeta })\n","pages\u002Fdashboard.vue",[225,457,458,487],{"__ignoreMap":223},[228,459,460,464,467,470,474,477,480,484],{"class":230,"line":231},[228,461,463],{"class":462},"sfT9l","definePageMeta",[228,465,466],{"class":241},"({ ",[228,468,469],{"class":248},"auth",[228,471,473],{"class":472},"sVnqq",":",[228,475,476],{"class":344}," 'user'",[228,478,479],{"class":234}," satisfies",[228,481,483],{"class":482},"s8RlJ"," AuthMeta",[228,485,486],{"class":241}," })\n",[228,488,489,491,493,495,497,500,503,505,508,511,514,516,519,522,525,527],{"class":230,"line":245},[228,490,463],{"class":462},[228,492,466],{"class":241},[228,494,469],{"class":248},[228,496,473],{"class":472},[228,498,499],{"class":241}," { ",[228,501,502],{"class":248},"only",[228,504,473],{"class":472},[228,506,507],{"class":344}," 'guest'",[228,509,510],{"class":241},", ",[228,512,513],{"class":248},"redirectTo",[228,515,473],{"class":472},[228,517,518],{"class":344}," '\u002F'",[228,520,521],{"class":241}," } ",[228,523,524],{"class":234},"satisfies",[228,526,483],{"class":482},[228,528,486],{"class":241},[435,530,532],{"id":531},"authrouterules",[225,533,534],{},"AuthRouteRules",[214,536,537],{},"Extends Nitro route rules with:",[539,540,541],"ul",{},[542,543,544],"li",{},[225,545,546],{},"auth?: AuthMeta",[218,548,551],{"className":220,"code":549,"filename":550,"language":222,"meta":223,"style":223},"export default defineNuxtConfig({\n  routeRules: {\n    '\u002Fdashboard': { auth: 'user' } satisfies AuthRouteRules,\n  },\n})\n","nuxt.config.ts",[225,552,553,568,577,601,606],{"__ignoreMap":223},[228,554,555,558,562,565],{"class":230,"line":231},[228,556,557],{"class":234},"export",[228,559,561],{"class":560},"sKg8T"," default",[228,563,564],{"class":462}," defineNuxtConfig",[228,566,567],{"class":241},"({\n",[228,569,570,573,575],{"class":230,"line":245},[228,571,572],{"class":248},"  routeRules",[228,574,473],{"class":472},[228,576,242],{"class":241},[228,578,579,582,584,586,588,590,592,594,596,599],{"class":230,"line":255},[228,580,581],{"class":344},"    '\u002Fdashboard'",[228,583,473],{"class":472},[228,585,499],{"class":241},[228,587,469],{"class":248},[228,589,473],{"class":472},[228,591,476],{"class":344},[228,593,521],{"class":241},[228,595,524],{"class":234},[228,597,598],{"class":482}," AuthRouteRules",[228,600,252],{"class":241},[228,602,603],{"class":230,"line":263},[228,604,605],{"class":241},"  },\n",[228,607,608],{"class":230,"line":271},[228,609,610],{"class":241},"})\n",[218,612,614],{"className":220,"code":613,"filename":550,"language":222,"meta":223,"style":223},"export default defineNuxtConfig({\n  nitro: {\n    routeRules: {\n      '\u002Fdashboard': { auth: 'user' } satisfies AuthRouteRules,\n    },\n  },\n})\n",[225,615,616,626,635,644,667,672,676],{"__ignoreMap":223},[228,617,618,620,622,624],{"class":230,"line":231},[228,619,557],{"class":234},[228,621,561],{"class":560},[228,623,564],{"class":462},[228,625,567],{"class":241},[228,627,628,631,633],{"class":230,"line":245},[228,629,630],{"class":248},"  nitro",[228,632,473],{"class":472},[228,634,242],{"class":241},[228,636,637,640,642],{"class":230,"line":255},[228,638,639],{"class":248},"    routeRules",[228,641,473],{"class":472},[228,643,242],{"class":241},[228,645,646,649,651,653,655,657,659,661,663,665],{"class":230,"line":263},[228,647,648],{"class":344},"      '\u002Fdashboard'",[228,650,473],{"class":472},[228,652,499],{"class":241},[228,654,469],{"class":248},[228,656,473],{"class":472},[228,658,476],{"class":344},[228,660,521],{"class":241},[228,662,524],{"class":234},[228,664,598],{"class":482},[228,666,252],{"class":241},[228,668,669],{"class":230,"line":271},[228,670,671],{"class":241},"    },\n",[228,673,674],{"class":230,"line":279},[228,675,605],{"class":241},[228,677,678],{"class":230,"line":287},[228,679,610],{"class":241},[435,681,683],{"id":682},"usermatcht",[225,684,685],{},"UserMatch\u003CT>",[214,687,688,689,692,693,696],{},"Used for user matching in ",[225,690,691],{},"AuthMeta.user"," and ",[225,694,695],{},"RequireSessionOptions.user"," (OR logic for arrays, AND logic between fields).",[435,698,700],{"id":699},"requiresessionoptions",[225,701,702],{},"RequireSessionOptions",[214,704,705,706,709,710,713,714,717,718,720,721,723,724,357],{},"The options object for ",[225,707,708],{},"requireUserSession(event, options?)",".\nIt is augmentation-aware: ",[225,711,712],{},"user"," matching and ",[225,715,716],{},"rule"," callback context use ",[225,719,350],{}," \u002F ",[225,722,391],{}," from ",[225,725,726],{},"#nuxt-better-auth",[435,728,730,733],{"id":729},"signout-options",[225,731,732],{},"signOut"," options",[214,735,736,737,740],{},"Used by ",[225,738,739],{},"signOut(options?)"," to run a post-sign-out callback:",[218,742,744],{"className":220,"code":743,"language":222,"meta":223,"style":223},"await signOut({ onSuccess: () => navigateTo('\u002F') })\n",[225,745,746],{"__ignoreMap":223},[228,747,748,751,754,756,759,761,764,767,770,773,776],{"class":230,"line":231},[228,749,750],{"class":234},"await",[228,752,753],{"class":462}," signOut",[228,755,466],{"class":241},[228,757,758],{"class":462},"onSuccess",[228,760,473],{"class":472},[228,762,763],{"class":241}," () ",[228,765,766],{"class":234},"=>",[228,768,769],{"class":462}," navigateTo",[228,771,772],{"class":241},"(",[228,774,775],{"class":344},"'\u002F'",[228,777,778],{"class":241},") })\n",[435,780,782],{"id":781},"authsocialproviderid",[225,783,784],{},"AuthSocialProviderId",[214,786,787,788,357],{},"Typed provider ids inferred from your configured ",[225,789,790],{},"socialProviders",[218,792,794],{"className":220,"code":793,"language":222,"meta":223,"style":223},"import type { AuthSocialProviderId } from '@nuxtjs\u002Fbetter-auth'\n\nconst provider: AuthSocialProviderId = 'github'\n",[225,795,796,812,818],{"__ignoreMap":223},[228,797,798,800,802,804,806,808,810],{"class":230,"line":231},[228,799,235],{"class":234},[228,801,238],{"class":234},[228,803,499],{"class":241},[228,805,784],{"class":248},[228,807,521],{"class":241},[228,809,341],{"class":234},[228,811,345],{"class":344},[228,813,814],{"class":230,"line":245},[228,815,817],{"emptyLinePlaceholder":816},true,"\n",[228,819,820,823,827,830,833,837],{"class":230,"line":255},[228,821,822],{"class":234},"const",[228,824,826],{"class":825},"s6Rhl"," provider",[228,828,473],{"class":829},"sn-Jc",[228,831,832],{"class":482}," AuthSocialProviderId",[228,834,836],{"class":835},"sQBpM"," =",[228,838,839],{"class":344}," 'github'\n",[214,841,842],{},"This replaces verbose extraction patterns like:",[218,844,846],{"className":220,"code":845,"language":222,"meta":223,"style":223},"type SocialProvider = Parameters\u003CNonNullable\u003CAppAuthClient>['signIn']['social']>[0]['provider']\n",[225,847,848],{"__ignoreMap":223},[228,849,850,853,856,858,861,864,867,869,872,875,878,881,884,887,891,893,896],{"class":230,"line":231},[228,851,852],{"class":234},"type",[228,854,855],{"class":482}," SocialProvider",[228,857,836],{"class":835},[228,859,860],{"class":482}," Parameters",[228,862,863],{"class":241},"\u003C",[228,865,866],{"class":482},"NonNullable",[228,868,863],{"class":241},[228,870,871],{"class":482},"AppAuthClient",[228,873,874],{"class":241},">[",[228,876,877],{"class":344},"'signIn'",[228,879,880],{"class":241},"][",[228,882,883],{"class":344},"'social'",[228,885,886],{"class":241},"]>[",[228,888,890],{"class":889},"s3ZNE","0",[228,892,880],{"class":241},[228,894,895],{"class":344},"'provider'",[228,897,898],{"class":241},"]\n",[435,900,902],{"id":901},"module-augmentation","Module augmentation",[214,904,905,906,720,908,910,911,357],{},"Augment ",[225,907,350],{},[225,909,391],{}," by declaring module ",[225,912,726],{},[914,915,917,918,921],"callout",{"icon":916,"to":29},"i-lucide-arrow-right","See ",[919,920,28],"strong",{}," for examples.",[347,923,925],{"id":924},"using-types","Using Types",[435,927,929],{"id":928},"in-vue-components","In Vue Components",[218,931,935],{"className":932,"code":933,"language":934,"meta":223,"style":223},"language-vue shiki shiki-themes one-light synthwave-84 synthwave-84","\u003Cscript setup lang=\"ts\">\nimport type { AuthUser } from '#nuxt-better-auth'\n\nconst props = defineProps\u003C{\n  user: AuthUser\n}>()\n\u003C\u002Fscript>\n","vue",[225,936,937,963,981,985,1000,1011,1016],{"__ignoreMap":223},[228,938,939,942,946,950,953,957,960],{"class":230,"line":231},[228,940,863],{"class":941},"sL9le",[228,943,945],{"class":944},"stweg","script",[228,947,949],{"class":948},"s0frj"," setup",[228,951,952],{"class":948}," lang",[228,954,956],{"class":955},"sNM9w","=",[228,958,959],{"class":344},"\"ts\"",[228,961,962],{"class":941},">\n",[228,964,965,967,969,972,974,976,978],{"class":230,"line":245},[228,966,235],{"class":234},[228,968,238],{"class":234},[228,970,499],{"class":971},"sEEOt",[228,973,350],{"class":248},[228,975,521],{"class":971},[228,977,341],{"class":234},[228,979,980],{"class":344}," '#nuxt-better-auth'\n",[228,982,983],{"class":230,"line":255},[228,984,817],{"emptyLinePlaceholder":816},[228,986,987,989,992,994,997],{"class":230,"line":263},[228,988,822],{"class":234},[228,990,991],{"class":825}," props",[228,993,836],{"class":835},[228,995,996],{"class":462}," defineProps",[228,998,999],{"class":971},"\u003C{\n",[228,1001,1002,1006,1008],{"class":230,"line":271},[228,1003,1005],{"class":1004},"svFNh","  user",[228,1007,473],{"class":829},[228,1009,1010],{"class":482}," AuthUser\n",[228,1012,1013],{"class":230,"line":279},[228,1014,1015],{"class":971},"}>()\n",[228,1017,1018,1021,1023],{"class":230,"line":287},[228,1019,1020],{"class":941},"\u003C\u002F",[228,1022,945],{"class":944},[228,1024,962],{"class":941},[435,1026,1028],{"id":1027},"in-server-code","In Server Code",[218,1030,1033],{"className":220,"code":1031,"filename":1032,"language":222,"meta":223,"style":223},"import type { AuthUser, AuthSession } from '#nuxt-better-auth'\n\nexport default defineEventHandler(async (event): Promise\u003CAuthUser> => {\n  const { user } = await requireUserSession(event)\n  return user\n})\n","server\u002Fapi\u002Fusers\u002F[userId].ts",[225,1034,1035,1055,1059,1099,1125,1133],{"__ignoreMap":223},[228,1036,1037,1039,1041,1043,1045,1047,1049,1051,1053],{"class":230,"line":231},[228,1038,235],{"class":234},[228,1040,238],{"class":234},[228,1042,499],{"class":241},[228,1044,350],{"class":248},[228,1046,510],{"class":241},[228,1048,391],{"class":248},[228,1050,521],{"class":241},[228,1052,341],{"class":234},[228,1054,980],{"class":344},[228,1056,1057],{"class":230,"line":245},[228,1058,817],{"emptyLinePlaceholder":816},[228,1060,1061,1063,1065,1068,1070,1073,1076,1080,1083,1085,1088,1090,1092,1095,1097],{"class":230,"line":255},[228,1062,557],{"class":234},[228,1064,561],{"class":560},[228,1066,1067],{"class":462}," defineEventHandler",[228,1069,772],{"class":241},[228,1071,1072],{"class":234},"async",[228,1074,1075],{"class":241}," (",[228,1077,1079],{"class":1078},"sgisi","event",[228,1081,1082],{"class":241},")",[228,1084,473],{"class":829},[228,1086,1087],{"class":482}," Promise",[228,1089,863],{"class":241},[228,1091,350],{"class":482},[228,1093,1094],{"class":241},"> ",[228,1096,766],{"class":234},[228,1098,242],{"class":241},[228,1100,1101,1104,1106,1108,1110,1112,1115,1118,1120,1122],{"class":230,"line":263},[228,1102,1103],{"class":234},"  const",[228,1105,499],{"class":241},[228,1107,712],{"class":825},[228,1109,521],{"class":241},[228,1111,956],{"class":835},[228,1113,1114],{"class":234}," await",[228,1116,1117],{"class":462}," requireUserSession",[228,1119,772],{"class":241},[228,1121,1079],{"class":248},[228,1123,1124],{"class":241},")\n",[228,1126,1127,1130],{"class":230,"line":271},[228,1128,1129],{"class":234},"  return",[228,1131,1132],{"class":248}," user\n",[228,1134,1135],{"class":230,"line":279},[228,1136,610],{"class":241},[1138,1139,1140],"style",{},"html pre.shiki code .sqe1H, html code.shiki .sqe1H{--shiki-light:#A626A4;--shiki-default:#FEDE5D;--shiki-dark:#FEDE5D}html pre.shiki code .s17Py, html code.shiki .s17Py{--shiki-light:#383A42;--shiki-default:#BBBBBB;--shiki-dark:#BBBBBB}html pre.shiki code .sYvLG, html code.shiki .sYvLG{--shiki-light:#E45649;--shiki-default:#FF7EDB;--shiki-dark:#FF7EDB}html pre.shiki code .sPAZv, html code.shiki .sPAZv{--shiki-light:#50A14F;--shiki-default:#FF8B39;--shiki-dark:#FF8B39}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 .sfT9l, html code.shiki .sfT9l{--shiki-light:#4078F2;--shiki-default:#36F9F6;--shiki-dark:#36F9F6}html pre.shiki code .sVnqq, html code.shiki .sVnqq{--shiki-light:#0184BC;--shiki-default:#B6B1B1;--shiki-dark:#B6B1B1}html pre.shiki code .s8RlJ, html code.shiki .s8RlJ{--shiki-light:#C18401;--shiki-default:#FE4450;--shiki-dark:#FE4450}html pre.shiki code .sKg8T, html code.shiki .sKg8T{--shiki-light:#E45649;--shiki-default:#FEDE5D;--shiki-dark:#FEDE5D}html pre.shiki code .s6Rhl, html code.shiki .s6Rhl{--shiki-light:#986801;--shiki-default:#FF7EDB;--shiki-dark:#FF7EDB}html pre.shiki code .sn-Jc, html code.shiki .sn-Jc{--shiki-light:#0184BC;--shiki-default:#FEDE5D;--shiki-dark:#FEDE5D}html pre.shiki code .sQBpM, html code.shiki .sQBpM{--shiki-light:#0184BC;--shiki-default:#FFFFFFEE;--shiki-dark:#FFFFFFEE}html pre.shiki code .s3ZNE, html code.shiki .s3ZNE{--shiki-light:#986801;--shiki-default:#F97E72;--shiki-dark:#F97E72}html pre.shiki code .sL9le, html code.shiki .sL9le{--shiki-light:#383A42;--shiki-default:#36F9F6;--shiki-dark:#36F9F6}html pre.shiki code .stweg, html code.shiki .stweg{--shiki-light:#E45649;--shiki-default:#72F1B8;--shiki-dark:#72F1B8}html pre.shiki code .s0frj, html code.shiki .s0frj{--shiki-light:#986801;--shiki-light-font-style:inherit;--shiki-default:#FEDE5D;--shiki-default-font-style:italic;--shiki-dark:#FEDE5D;--shiki-dark-font-style:italic}html pre.shiki code .sNM9w, html code.shiki .sNM9w{--shiki-light:#383A42;--shiki-default:#B6B1B1;--shiki-dark:#B6B1B1}html pre.shiki code .sEEOt, html code.shiki .sEEOt{--shiki-light:#383A42;--shiki-default:#FFFFFFEE;--shiki-dark:#FFFFFFEE}html pre.shiki code .svFNh, html code.shiki .svFNh{--shiki-light:#383A42;--shiki-default:#FF7EDB;--shiki-dark:#FF7EDB}html pre.shiki code .sgisi, html code.shiki .sgisi{--shiki-light:#383A42;--shiki-light-font-style:inherit;--shiki-default:#FF7EDB;--shiki-default-font-style:italic;--shiki-dark:#FF7EDB;--shiki-dark-font-style:italic}",{"title":223,"searchDepth":245,"depth":245,"links":1142},[1143,1144,1145,1155],{"id":349,"depth":245,"text":350},{"id":390,"depth":245,"text":391},{"id":400,"depth":245,"text":401,"children":1146},[1147,1148,1149,1150,1151,1153,1154],{"id":437,"depth":255,"text":440},{"id":531,"depth":255,"text":534},{"id":682,"depth":255,"text":685},{"id":699,"depth":255,"text":702},{"id":729,"depth":255,"text":1152},"signOut options",{"id":781,"depth":255,"text":784},{"id":901,"depth":255,"text":902},{"id":924,"depth":245,"text":925,"children":1156},[1157,1158],{"id":928,"depth":255,"text":929},{"id":1027,"depth":255,"text":1028},"Public types and route rule shapes.","md",null,{},{"title":154,"description":1159},"HZ51yxKoLNpYhlv_jr6aNJnsM3_8AgH4T-VSZlV6tlU",[1166,1168],{"title":150,"path":151,"stem":152,"description":1167,"children":-1},"Built‑in UI helpers.",{"title":163,"path":159,"stem":160,"description":1169,"children":-1},"Find the cause and fix for Nuxt Better Auth module setup and schema generation errors.",1791214952656]