[{"data":1,"prerenderedAt":3097},["ShallowReactive",2],{"navigation_docs":3,"-api-composables":152,"-api-composables-surround":3092},[4,42,68,110,131],{"title":5,"path":6,"stem":7,"children":8,"icon":11},"Getting Started","/getting-started","1.getting-started/0.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","/getting-started/installation","1.getting-started/1.installation","i-lucide-download",{"title":18,"path":19,"stem":20,"icon":21},"Configuration","/getting-started/configuration","1.getting-started/2.configuration","i-lucide-settings",{"title":23,"path":24,"stem":25,"icon":26},"Client Setup","/getting-started/client-setup","1.getting-started/3.client-setup","i-lucide-monitor",{"title":28,"path":29,"stem":30,"icon":31},"Type Augmentation","/getting-started/type-augmentation","1.getting-started/4.type-augmentation","i-lucide-type",{"title":33,"path":34,"stem":35,"icon":36},"Schema Generation (NuxtHub)","/getting-started/schema-generation","1.getting-started/5.schema-generation","i-lucide-database",{"title":38,"path":39,"stem":40,"icon":41},"How It Works","/getting-started/how-it-works","1.getting-started/6.how-it-works","i-lucide-workflow",{"title":43,"path":44,"stem":45,"children":46,"page":67},"Core Concepts","/core-concepts","2.core-concepts",[47,51,55,59,63],{"title":48,"path":49,"stem":50},"serverAuth()","/core-concepts/server-auth","2.core-concepts/1.server-auth",{"title":52,"path":53,"stem":54},"Sessions","/core-concepts/sessions","2.core-concepts/2.sessions",{"title":56,"path":57,"stem":58},"Route Protection","/core-concepts/route-protection","2.core-concepts/3.route-protection",{"title":60,"path":61,"stem":62},"Auto‑Imports and Aliases","/core-concepts/auto-imports-aliases","2.core-concepts/4.auto-imports-aliases",{"title":64,"path":65,"stem":66},"Security & Caveats","/core-concepts/security-caveats","2.core-concepts/5.security-caveats",false,{"title":69,"path":70,"stem":71,"children":72,"page":67},"Guides","/guides","3.guides",[73,77,81,85,89,94,98,102,106],{"title":74,"path":75,"stem":76},"Role‑Based Access","/guides/role-based-access","3.guides/1.role-based-access",{"title":78,"path":79,"stem":80},"OAuth Providers","/guides/oauth-providers","3.guides/2.oauth-providers",{"title":82,"path":83,"stem":84},"Custom Database","/guides/custom-database","3.guides/3.custom-database",{"title":86,"path":87,"stem":88},"Database-less Mode","/guides/database-less-mode","3.guides/4.database-less-mode",{"title":90,"path":91,"stem":92,"icon":93},"External Auth Backend","/guides/external-auth-backend","3.guides/5.external-auth-backend","i-lucide-server",{"title":95,"path":96,"stem":97},"Migrating from nuxt-auth-utils","/guides/migrate-from-nuxt-auth-utils","3.guides/6.migrate-from-nuxt-auth-utils",{"title":99,"path":100,"stem":101},"Two-Factor Authentication (TOTP + Backup Codes)","/guides/two-factor-auth","3.guides/7.two-factor-auth",{"title":103,"path":104,"stem":105},"Testing","/guides/testing","3.guides/8.testing",{"title":107,"path":108,"stem":109},"Production Deployment","/guides/production-deployment","3.guides/9.production-deployment",{"title":111,"path":112,"stem":113,"children":114,"page":67},"Integrations","/integrations","4.integrations",[115,119,123,127],{"title":116,"path":117,"stem":118},"NuxtHub","/integrations/nuxthub","4.integrations/1.nuxthub",{"title":120,"path":121,"stem":122},"DevTools","/integrations/devtools","4.integrations/2.devtools",{"title":124,"path":125,"stem":126},"Convex","/integrations/convex","4.integrations/3.convex",{"title":128,"path":129,"stem":130},"i18n","/integrations/i18n","4.integrations/4.i18n",{"title":132,"path":133,"stem":134,"children":135,"page":67},"API Reference","/api","5.api",[136,140,144,148],{"title":137,"path":138,"stem":139},"Composables","/api/composables","5.api/1.composables",{"title":141,"path":142,"stem":143},"Server Utilities","/api/server-utils","5.api/2.server-utils",{"title":145,"path":146,"stem":147},"Components","/api/components","5.api/3.components",{"title":149,"path":150,"stem":151},"Types","/api/types","5.api/4.types",{"id":153,"title":137,"body":154,"description":3086,"extension":3087,"links":3088,"meta":3089,"navigation":273,"path":138,"seo":3090,"stem":139,"__hash__":3091},"docs/5.api/1.composables.md",{"type":155,"value":156,"toc":3065},"minimark",[157,161,165,170,178,337,341,410,414,417,455,484,539,543,549,552,588,601,607,659,669,789,793,800,838,843,851,962,971,975,984,1007,1041,1049,1054,1057,1071,1084,1089,1128,1134,1137,1156,1160,1166,1169,1183,1187,1230,1235,1238,1262,1268,1283,1287,1291,1294,1311,1321,1437,1457,1525,1528,1532,1535,1601,1608,1611,1636,1698,1702,1705,1983,1994,2020,2024,2030,2149,2152,2203,2206,2215,2397,2404,2436,2451,2466,2469,2589,2592,2612,2622,2626,2642,2656,2662,2813,2902,2905,2914,3042,3058,3061],[158,159,160],"p",{},"Use this page when you need exact behavior for the client-side composables exposed by the module.",[162,163,164],"note",{},"These composables are auto-imported in Vue files. No import statement is needed in pages, components, plugins, middleware, or stores inside your Nuxt app.",[166,167,169],"h2",{"id":168},"quick-start","Quick Start",[158,171,172,173,177],{},"Use ",[174,175,176],"code",{},"useUserSession()"," in pages and components to access the current session and session lifecycle actions.",[179,180,186],"pre",{"className":181,"code":182,"filename":183,"language":184,"meta":185,"style":185},"language-vue shiki shiki-themes one-light synthwave-84 synthwave-84","\u003Cscript setup lang=\"ts\">\nconst { user, loggedIn, signOut } = useUserSession()\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Cbutton v-if=\"loggedIn\" @click=\"signOut()\">\n    Sign out {{ user?.email }}\n  \u003C/button>\n\u003C/template>\n","pages/app.vue","vue","",[174,187,188,219,258,268,275,285,312,318,328],{"__ignoreMap":185},[189,190,193,197,201,205,208,212,216],"span",{"class":191,"line":192},"line",1,[189,194,196],{"class":195},"sL9le","\u003C",[189,198,200],{"class":199},"stweg","script",[189,202,204],{"class":203},"s0frj"," setup",[189,206,207],{"class":203}," lang",[189,209,211],{"class":210},"sNM9w","=",[189,213,215],{"class":214},"sPAZv","\"ts\"",[189,217,218],{"class":195},">\n",[189,220,222,226,230,234,237,240,242,245,248,251,255],{"class":191,"line":221},2,[189,223,225],{"class":224},"sqe1H","const",[189,227,229],{"class":228},"sEEOt"," { ",[189,231,233],{"class":232},"s6Rhl","user",[189,235,236],{"class":228},", ",[189,238,239],{"class":232},"loggedIn",[189,241,236],{"class":228},[189,243,244],{"class":232},"signOut",[189,246,247],{"class":228}," } ",[189,249,211],{"class":250},"sQBpM",[189,252,254],{"class":253},"sfT9l"," useUserSession",[189,256,257],{"class":228},"()\n",[189,259,261,264,266],{"class":191,"line":260},3,[189,262,263],{"class":195},"\u003C/",[189,265,200],{"class":199},[189,267,218],{"class":195},[189,269,271],{"class":191,"line":270},4,[189,272,274],{"emptyLinePlaceholder":273},true,"\n",[189,276,278,280,283],{"class":191,"line":277},5,[189,279,196],{"class":195},[189,281,282],{"class":199},"template",[189,284,218],{"class":195},[189,286,288,291,294,297,299,302,305,307,310],{"class":191,"line":287},6,[189,289,290],{"class":195},"  \u003C",[189,292,293],{"class":199},"button",[189,295,296],{"class":203}," v-if",[189,298,211],{"class":210},[189,300,301],{"class":214},"\"loggedIn\"",[189,303,304],{"class":203}," @click",[189,306,211],{"class":210},[189,308,309],{"class":214},"\"signOut()\"",[189,311,218],{"class":195},[189,313,315],{"class":191,"line":314},7,[189,316,317],{"class":228},"    Sign out {{ user?.email }}\n",[189,319,321,324,326],{"class":191,"line":320},8,[189,322,323],{"class":195},"  \u003C/",[189,325,293],{"class":199},[189,327,218],{"class":195},[189,329,331,333,335],{"class":191,"line":330},9,[189,332,263],{"class":195},[189,334,282],{"class":199},[189,336,218],{"class":195},[166,338,340],{"id":339},"choosing-an-api","Choosing an API",[342,343,344,357],"table",{},[345,346,347],"thead",{},[348,349,350,354],"tr",{},[351,352,353],"th",{},"Use case",[351,355,356],{},"Composable",[358,359,360,370,380,390,400],"tbody",{},[348,361,362,366],{},[363,364,365],"td",{},"Pages, components, and setup stores that need auth state and session lifecycle actions",[363,367,368],{},[174,369,176],{},[348,371,372,375],{},[363,373,374],{},"Direct Better Auth client access",[363,376,377],{},[174,378,379],{},"useAuthClient()",[348,381,382,385],{},[363,383,384],{},"Sign-in forms that need loading, error, and success state",[363,386,387],{},[174,388,389],{},"useSignIn()",[348,391,392,395],{},[363,393,394],{},"Sign-up forms that need loading, error, and success state",[363,396,397],{},[174,398,399],{},"useSignUp()",[348,401,402,405],{},[363,403,404],{},"Better Auth plugin/client methods that need loading, error, and success state",[363,406,407],{},[174,408,409],{},"useAuthClientAction()",[166,411,413],{"id":412},"useusersession","useUserSession",[158,415,416],{},"The primary composable for accessing authentication state. It is safe to return directly from Pinia setup stores because it only exposes session state and session lifecycle actions.",[179,418,423],{"className":419,"code":420,"filename":421,"language":422,"meta":185,"style":185},"language-ts shiki shiki-themes one-light synthwave-84 synthwave-84","const { loggedIn, user, session, signOut } = useUserSession()\n","pages/login.vue","ts",[174,424,425],{"__ignoreMap":185},[189,426,427,429,432,434,436,438,440,443,445,447,449,451,453],{"class":191,"line":192},[189,428,225],{"class":224},[189,430,229],{"class":431},"s17Py",[189,433,239],{"class":232},[189,435,236],{"class":431},[189,437,233],{"class":232},[189,439,236],{"class":431},[189,441,442],{"class":232},"session",[189,444,236],{"class":431},[189,446,244],{"class":232},[189,448,247],{"class":431},[189,450,211],{"class":250},[189,452,254],{"class":253},[189,454,257],{"class":431},[456,457,458,466,470,474,480],"field-group",{},[459,460,462,465],"field",{"name":239,"type":461},"ComputedRef\u003Cboolean>",[174,463,464],{},"true"," if the user is currently authenticated.",[459,467,469],{"name":233,"type":468},"Ref\u003CAuthUser | null>","The current user object, inferred from your config.",[459,471,473],{"name":442,"type":472},"Ref\u003CAuthSession | null>","The current session object.",[459,475,477,479],{"name":476,"type":461},"ready",[174,478,464],{}," when initial session resolution is complete (from SSR hydration or client fetch).",[459,481,483],{"name":244,"type":482},"(options?: SignOutOptions) => Promise\u003Cvoid>","Signs out and clears local session state.",[162,485,486,489],{},[158,487,488],{},"For SSR-safe auth access:",[490,491,492,511,521],"ul",{},[493,494,172,495,236,497,236,499,236,501,503,504,507,508,510],"li",{},[174,496,233],{},[174,498,442],{},[174,500,239],{},[174,502,476],{},", and ",[174,505,506],{},"fetchSession"," from ",[174,509,176],{},".",[493,512,172,513,516,517,520],{},[174,514,515],{},"useAuthRequestFetch()"," or ",[174,518,519],{},"useAuthAsyncData()"," for auth-bound data in pages.",[493,522,523,524,236,527,530,531,534,535,538],{},"Use server helpers like ",[174,525,526],{},"serverAuth(event)",[174,528,529],{},"getUserSession(event)",", or ",[174,532,533],{},"requireUserSession(event)"," in ",[174,536,537],{},"server/"," handlers.",[166,540,542],{"id":541},"pinia-setup-stores","Pinia setup stores",[158,544,545,546,548],{},"Return ",[174,547,176],{}," directly when you want auth state in a Pinia setup store or another shared state container.",[158,550,551],{},"It returns:",[490,553,554,558,562,566,570,574,579,583],{},[493,555,556],{},[174,557,233],{},[493,559,560],{},[174,561,442],{},[493,563,564],{},[174,565,239],{},[493,567,568],{},[174,569,476],{},[493,571,572],{},[174,573,506],{},[493,575,576],{},[174,577,578],{},"waitForSession",[493,580,581],{},[174,582,244],{},[493,584,585],{},[174,586,587],{},"updateUser",[158,589,590,591,236,594,530,597,600],{},"It does not return ",[174,592,593],{},"client",[174,595,596],{},"signIn",[174,598,599],{},"signUp",". Those values are runtime Better Auth client namespaces, not auth state. Keep them in components or action composables instead of storing them in hydrated state.",[158,602,603,606],{},[174,604,605],{},"useUserSessionState()"," remains as a deprecated alias for the same store-safe shape.",[179,608,611],{"className":419,"code":609,"filename":610,"language":422,"meta":185,"style":185},"export const useUserStore = defineStore('user', () => {\n  return useUserSession()\n})\n","app/stores/user.ts",[174,612,613,645,654],{"__ignoreMap":185},[189,614,615,618,621,624,627,630,633,636,639,642],{"class":191,"line":192},[189,616,617],{"class":224},"export",[189,619,620],{"class":224}," const",[189,622,623],{"class":232}," useUserStore",[189,625,626],{"class":250}," =",[189,628,629],{"class":253}," defineStore",[189,631,632],{"class":431},"(",[189,634,635],{"class":214},"'user'",[189,637,638],{"class":431},", () ",[189,640,641],{"class":224},"=>",[189,643,644],{"class":431}," {\n",[189,646,647,650,652],{"class":191,"line":221},[189,648,649],{"class":224},"  return",[189,651,254],{"class":253},[189,653,257],{"class":431},[189,655,656],{"class":191,"line":260},[189,657,658],{"class":431},"})\n",[158,660,661,662,236,664,530,666,668],{},"Keep sign-in and sign-up flows in components. Use ",[174,663,389],{},[174,665,399],{},[174,667,409],{}," when the UI needs loading, error, and success state:",[179,670,672],{"className":181,"code":671,"filename":421,"language":184,"meta":185,"style":185},"\u003Cscript setup lang=\"ts\">\nconst signInEmail = useSignIn('email')\n\nasync function submit(email: string, password: string) {\n  await signInEmail.execute({ email, password })\n}\n\u003C/script>\n",[174,673,674,690,710,714,751,776,781],{"__ignoreMap":185},[189,675,676,678,680,682,684,686,688],{"class":191,"line":192},[189,677,196],{"class":195},[189,679,200],{"class":199},[189,681,204],{"class":203},[189,683,207],{"class":203},[189,685,211],{"class":210},[189,687,215],{"class":214},[189,689,218],{"class":195},[189,691,692,694,697,699,702,704,707],{"class":191,"line":221},[189,693,225],{"class":224},[189,695,696],{"class":232}," signInEmail",[189,698,626],{"class":250},[189,700,701],{"class":253}," useSignIn",[189,703,632],{"class":228},[189,705,706],{"class":214},"'email'",[189,708,709],{"class":228},")\n",[189,711,712],{"class":191,"line":260},[189,713,274],{"emptyLinePlaceholder":273},[189,715,716,719,722,725,727,731,735,739,741,744,746,748],{"class":191,"line":270},[189,717,718],{"class":224},"async",[189,720,721],{"class":224}," function",[189,723,724],{"class":253}," submit",[189,726,632],{"class":228},[189,728,730],{"class":729},"sgisi","email",[189,732,734],{"class":733},"sn-Jc",":",[189,736,738],{"class":737},"sr8De"," string",[189,740,236],{"class":228},[189,742,743],{"class":729},"password",[189,745,734],{"class":733},[189,747,738],{"class":737},[189,749,750],{"class":228},") {\n",[189,752,753,756,759,761,764,767,769,771,773],{"class":191,"line":277},[189,754,755],{"class":224},"  await",[189,757,696],{"class":758},"svFNh",[189,760,510],{"class":228},[189,762,763],{"class":253},"execute",[189,765,766],{"class":228},"({ ",[189,768,730],{"class":758},[189,770,236],{"class":228},[189,772,743],{"class":758},[189,774,775],{"class":228}," })\n",[189,777,778],{"class":191,"line":287},[189,779,780],{"class":228},"}\n",[189,782,783,785,787],{"class":191,"line":314},[189,784,263],{"class":195},[189,786,200],{"class":199},[189,788,218],{"class":195},[166,790,792],{"id":791},"useauthclient","useAuthClient",[158,794,795,796,799],{},"Returns the Vue-safe Better Auth client on the client runtime and ",[174,797,798],{},"null"," on the server runtime. Use this for direct client/plugin method access when you do not need action state.",[179,801,803],{"className":419,"code":802,"language":422,"meta":185,"style":185},"const client = useAuthClient()\nawait client?.sendVerificationEmail({ email })\n",[174,804,805,819],{"__ignoreMap":185},[189,806,807,809,812,814,817],{"class":191,"line":192},[189,808,225],{"class":224},[189,810,811],{"class":232}," client",[189,813,626],{"class":250},[189,815,816],{"class":253}," useAuthClient",[189,818,257],{"class":431},[189,820,821,824,826,829,832,834,836],{"class":191,"line":221},[189,822,823],{"class":224},"await",[189,825,811],{"class":758},[189,827,828],{"class":431},"?.",[189,830,831],{"class":253},"sendVerificationEmail",[189,833,766],{"class":431},[189,835,730],{"class":758},[189,837,775],{"class":431},[839,840,842],"h3",{"id":841},"promise-behavior","Promise Behavior",[158,844,845,846,850],{},"Raw Better Auth client methods return a promise that resolves when the ",[847,848,849],"strong",{},"server responds",", not when local state updates.",[179,852,854],{"className":419,"code":853,"language":422,"meta":185,"style":185},"// This awaits the server response\nawait client.signIn.email({ email, password })\n\n// Local state updates asynchronously after\n// Use onSuccess callback for actions that depend on updated state\nawait client.signIn.email(\n  { email, password },\n  { onSuccess: () => navigateTo('/dashboard') }\n)\n",[174,855,856,862,887,891,896,901,918,932,958],{"__ignoreMap":185},[189,857,858],{"class":191,"line":192},[189,859,861],{"class":860},"st7cf","// This awaits the server response\n",[189,863,864,866,868,870,873,875,877,879,881,883,885],{"class":191,"line":221},[189,865,823],{"class":224},[189,867,811],{"class":758},[189,869,510],{"class":431},[189,871,596],{"class":872},"sYvLG",[189,874,510],{"class":431},[189,876,730],{"class":253},[189,878,766],{"class":431},[189,880,730],{"class":758},[189,882,236],{"class":431},[189,884,743],{"class":758},[189,886,775],{"class":431},[189,888,889],{"class":191,"line":260},[189,890,274],{"emptyLinePlaceholder":273},[189,892,893],{"class":191,"line":270},[189,894,895],{"class":860},"// Local state updates asynchronously after\n",[189,897,898],{"class":191,"line":277},[189,899,900],{"class":860},"// Use onSuccess callback for actions that depend on updated state\n",[189,902,903,905,907,909,911,913,915],{"class":191,"line":287},[189,904,823],{"class":224},[189,906,811],{"class":758},[189,908,510],{"class":431},[189,910,596],{"class":872},[189,912,510],{"class":431},[189,914,730],{"class":253},[189,916,917],{"class":431},"(\n",[189,919,920,923,925,927,929],{"class":191,"line":314},[189,921,922],{"class":431},"  { ",[189,924,730],{"class":758},[189,926,236],{"class":431},[189,928,743],{"class":758},[189,930,931],{"class":431}," },\n",[189,933,934,936,939,942,945,947,950,952,955],{"class":191,"line":320},[189,935,922],{"class":431},[189,937,938],{"class":253},"onSuccess",[189,940,734],{"class":941},"sVnqq",[189,943,944],{"class":431}," () ",[189,946,641],{"class":224},[189,948,949],{"class":253}," navigateTo",[189,951,632],{"class":431},[189,953,954],{"class":214},"'/dashboard'",[189,956,957],{"class":431},") }\n",[189,959,960],{"class":191,"line":330},[189,961,709],{"class":431},[158,963,964,965,967,968,970],{},"For form flows, prefer ",[174,966,389],{}," and ",[174,969,399],{}," because they normalize errors, sync session state, and apply configured redirects.",[166,972,974],{"id":973},"usesignin-usesignup-redirects","useSignIn / useSignUp redirects",[158,976,977,978,980,981,983],{},"If no ",[174,979,938],{}," callback is provided in method options, ",[174,982,389],{}," will:",[490,985,986,997,1004],{},[493,987,988,989,992,993,996],{},"navigate to ",[174,990,991],{},"route.query.redirect"," (or custom ",[174,994,995],{},"auth.redirectQueryKey",") when it is a local path",[493,998,999,1000,1003],{},"otherwise fallback to ",[174,1001,1002],{},"auth.redirects.authenticated"," when configured and an authenticated session is established",[493,1005,1006],{},"otherwise no automatic navigation",[179,1008,1010],{"className":419,"code":1009,"language":422,"meta":185,"style":185},"await useSignIn('email').execute({ email, password }) // redirects to safe `?redirect=...` or auth.redirects.authenticated\n",[174,1011,1012],{"__ignoreMap":185},[189,1013,1014,1016,1018,1020,1022,1025,1027,1029,1031,1033,1035,1038],{"class":191,"line":192},[189,1015,823],{"class":224},[189,1017,701],{"class":253},[189,1019,632],{"class":431},[189,1021,706],{"class":214},[189,1023,1024],{"class":431},").",[189,1026,763],{"class":253},[189,1028,766],{"class":431},[189,1030,730],{"class":758},[189,1032,236],{"class":431},[189,1034,743],{"class":758},[189,1036,1037],{"class":431}," }) ",[189,1039,1040],{"class":860},"// redirects to safe `?redirect=...` or auth.redirects.authenticated\n",[158,1042,1043,1045,1046,1048],{},[174,1044,399],{}," follows the same redirect precedence:\nquery redirect > ",[174,1047,1002],{}," (only when authenticated) > no auto-redirect.",[839,1050,1052],{"id":1051},"signout",[174,1053,244],{},[158,1055,1056],{},"Signs the user out and clears the local session state.",[179,1058,1060],{"className":419,"code":1059,"language":422,"meta":185,"style":185},"await signOut()\n",[174,1061,1062],{"__ignoreMap":185},[189,1063,1064,1066,1069],{"class":191,"line":192},[189,1065,823],{"class":224},[189,1067,1068],{"class":253}," signOut",[189,1070,257],{"class":431},[158,1072,1073,1074,1077,1078,1081,1082,510],{},"If ",[174,1075,1076],{},"auth.redirects.logout"," is configured, ",[174,1079,1080],{},"signOut()"," will navigate there automatically (client-side), unless you provide ",[174,1083,938],{},[158,1085,1086],{},[847,1087,1088],{},"Options",[179,1090,1092],{"className":419,"code":1091,"language":422,"meta":185,"style":185},"await signOut({\n  onSuccess: () => navigateTo('/'),\n})\n",[174,1093,1094,1103,1124],{"__ignoreMap":185},[189,1095,1096,1098,1100],{"class":191,"line":192},[189,1097,823],{"class":224},[189,1099,1068],{"class":253},[189,1101,1102],{"class":431},"({\n",[189,1104,1105,1108,1110,1112,1114,1116,1118,1121],{"class":191,"line":221},[189,1106,1107],{"class":253},"  onSuccess",[189,1109,734],{"class":941},[189,1111,944],{"class":431},[189,1113,641],{"class":224},[189,1115,949],{"class":253},[189,1117,632],{"class":431},[189,1119,1120],{"class":214},"'/'",[189,1122,1123],{"class":431},"),\n",[189,1125,1126],{"class":191,"line":260},[189,1127,658],{"class":431},[839,1129,1131],{"id":1130},"waitforsession",[174,1132,1133],{},"waitForSession()",[158,1135,1136],{},"Waits for session state to be ready. Resolves when user is logged in or after 5 second timeout.",[179,1138,1140],{"className":419,"code":1139,"language":422,"meta":185,"style":185},"await waitForSession()\n// Session is now ready (or timed out)\n",[174,1141,1142,1151],{"__ignoreMap":185},[189,1143,1144,1146,1149],{"class":191,"line":192},[189,1145,823],{"class":224},[189,1147,1148],{"class":253}," waitForSession",[189,1150,257],{"class":431},[189,1152,1153],{"class":191,"line":221},[189,1154,1155],{"class":860},"// Session is now ready (or timed out)\n",[1157,1158,1159],"tip",{},"Use this when you need to ensure session state before proceeding. The function always resolves - it doesn't throw or return a value.",[1161,1162,1164],"h4",{"id":1163},"fetchsession",[174,1165,506],{},[158,1167,1168],{},"Manually triggers a session refresh. Useful if you've updated user data on the server via a side channel.",[179,1170,1172],{"className":419,"code":1171,"language":422,"meta":185,"style":185},"await fetchSession()\n",[174,1173,1174],{"__ignoreMap":185},[189,1175,1176,1178,1181],{"class":191,"line":192},[189,1177,823],{"class":224},[189,1179,1180],{"class":253}," fetchSession",[189,1182,257],{"class":431},[158,1184,1185],{},[847,1186,1088],{},[179,1188,1190],{"className":419,"code":1189,"language":422,"meta":185,"style":185},"await fetchSession({\n  headers, // optional HeadersInit\n  force: true, // disables Better Auth cookie cache for this fetch\n})\n",[174,1191,1192,1200,1210,1226],{"__ignoreMap":185},[189,1193,1194,1196,1198],{"class":191,"line":192},[189,1195,823],{"class":224},[189,1197,1180],{"class":253},[189,1199,1102],{"class":431},[189,1201,1202,1205,1207],{"class":191,"line":221},[189,1203,1204],{"class":758},"  headers",[189,1206,236],{"class":431},[189,1208,1209],{"class":860},"// optional HeadersInit\n",[189,1211,1212,1215,1217,1221,1223],{"class":191,"line":260},[189,1213,1214],{"class":872},"  force",[189,1216,734],{"class":941},[189,1218,1220],{"class":1219},"s3ZNE"," true",[189,1222,236],{"class":431},[189,1224,1225],{"class":860},"// disables Better Auth cookie cache for this fetch\n",[189,1227,1228],{"class":191,"line":270},[189,1229,658],{"class":431},[1161,1231,1233],{"id":1232},"updateuser",[174,1234,587],{},[158,1236,1237],{},"Updates the user on the server and optimistically patches local state. Local state reverts if the server call fails.",[179,1239,1241],{"className":419,"code":1240,"language":422,"meta":185,"style":185},"await updateUser({ name: 'New Name' })\n",[174,1242,1243],{"__ignoreMap":185},[189,1244,1245,1247,1250,1252,1255,1257,1260],{"class":191,"line":192},[189,1246,823],{"class":224},[189,1248,1249],{"class":253}," updateUser",[189,1251,766],{"class":431},[189,1253,1254],{"class":872},"name",[189,1256,734],{"class":941},[189,1258,1259],{"class":214}," 'New Name'",[189,1261,775],{"class":431},[162,1263,1264,1265,1267],{},"During SSR, ",[174,1266,587],{}," only patches local state since no client is available.",[1157,1269,1270,1273,1274,967,1276,1278,1279,1282],{},[847,1271,1272],{},"Reactivity",": ",[174,1275,233],{},[174,1277,442],{}," are global states using ",[174,1280,1281],{},"useState",". Changes in one component are instantly reflected everywhere.",[1284,1285],"read-more",{"title":1286,"to":146},"BetterAuthState component",[166,1288,1290],{"id":1289},"useauthrequestfetch","useAuthRequestFetch",[158,1292,1293],{},"Returns Nuxt's request-scoped fetch function. On SSR it preserves request context (including cookies); on client it behaves like regular fetch.",[158,1295,1296,1298,1299,1302,1303,1306,1307,1310],{},[174,1297,515],{}," defaults to ",[174,1300,1301],{},"GET",". For endpoints that only allow ",[174,1304,1305],{},"POST"," (or another method), pass ",[174,1308,1309],{},"method"," explicitly to preserve response type inference.",[158,1312,1313,1314,967,1317,1320],{},"When endpoint typing is enabled, ",[174,1315,1316],{},"useFetch('/api/auth/...')",[174,1318,1319],{},"useLazyFetch('/api/auth/...')"," infer payloads directly from your Better Auth config:",[179,1322,1324],{"className":419,"code":1323,"filename":183,"language":422,"meta":185,"style":185},"const { data: customerState } = await useFetch('/api/auth/customer/state')\ncustomerState.value?.activeSubscriptions[0]?.toUpperCase()\n\nconst { data: customerById } = await useLazyFetch('/api/auth/customer/123/state')\ncustomerById.value?.customerId.toUpperCase()\n",[174,1325,1326,1357,1385,1389,1418],{"__ignoreMap":185},[189,1327,1328,1330,1332,1335,1337,1340,1342,1344,1347,1350,1352,1355],{"class":191,"line":192},[189,1329,225],{"class":224},[189,1331,229],{"class":431},[189,1333,1334],{"class":872},"data",[189,1336,1273],{"class":431},[189,1338,1339],{"class":232},"customerState",[189,1341,247],{"class":431},[189,1343,211],{"class":250},[189,1345,1346],{"class":224}," await",[189,1348,1349],{"class":253}," useFetch",[189,1351,632],{"class":431},[189,1353,1354],{"class":214},"'/api/auth/customer/state'",[189,1356,709],{"class":431},[189,1358,1359,1361,1363,1366,1368,1371,1374,1377,1380,1383],{"class":191,"line":221},[189,1360,1339],{"class":758},[189,1362,510],{"class":431},[189,1364,1365],{"class":872},"value",[189,1367,828],{"class":431},[189,1369,1370],{"class":872},"activeSubscriptions",[189,1372,1373],{"class":431},"[",[189,1375,1376],{"class":1219},"0",[189,1378,1379],{"class":431},"]?.",[189,1381,1382],{"class":253},"toUpperCase",[189,1384,257],{"class":431},[189,1386,1387],{"class":191,"line":260},[189,1388,274],{"emptyLinePlaceholder":273},[189,1390,1391,1393,1395,1397,1399,1402,1404,1406,1408,1411,1413,1416],{"class":191,"line":270},[189,1392,225],{"class":224},[189,1394,229],{"class":431},[189,1396,1334],{"class":872},[189,1398,1273],{"class":431},[189,1400,1401],{"class":232},"customerById",[189,1403,247],{"class":431},[189,1405,211],{"class":250},[189,1407,1346],{"class":224},[189,1409,1410],{"class":253}," useLazyFetch",[189,1412,632],{"class":431},[189,1414,1415],{"class":214},"'/api/auth/customer/123/state'",[189,1417,709],{"class":431},[189,1419,1420,1422,1424,1426,1428,1431,1433,1435],{"class":191,"line":277},[189,1421,1401],{"class":758},[189,1423,510],{"class":431},[189,1425,1365],{"class":872},[189,1427,828],{"class":431},[189,1429,1430],{"class":872},"customerId",[189,1432,510],{"class":431},[189,1434,1382],{"class":253},[189,1436,257],{"class":431},[158,1438,1439,1440,1443,1444,1447,1448,1451,1452,967,1455,510],{},"Global ",[174,1441,1442],{},"$fetch"," keeps Nitro ",[174,1445,1446],{},"InternalApi"," response inference, but path autocomplete is best on ",[174,1449,1450],{},"useFetch","/",[174,1453,1454],{},"useLazyFetch",[174,1456,1290],{},[179,1458,1460],{"className":419,"code":1459,"filename":183,"language":422,"meta":185,"style":185},"const requestFetch = useAuthRequestFetch()\nconst state = await requestFetch('/api/auth/customer/state')\nconst postOnly = await requestFetch('/api/auth/customer/post-only', { method: 'POST' })\n",[174,1461,1462,1476,1495],{"__ignoreMap":185},[189,1463,1464,1466,1469,1471,1474],{"class":191,"line":192},[189,1465,225],{"class":224},[189,1467,1468],{"class":232}," requestFetch",[189,1470,626],{"class":250},[189,1472,1473],{"class":253}," useAuthRequestFetch",[189,1475,257],{"class":431},[189,1477,1478,1480,1483,1485,1487,1489,1491,1493],{"class":191,"line":221},[189,1479,225],{"class":224},[189,1481,1482],{"class":232}," state",[189,1484,626],{"class":250},[189,1486,1346],{"class":224},[189,1488,1468],{"class":253},[189,1490,632],{"class":431},[189,1492,1354],{"class":214},[189,1494,709],{"class":431},[189,1496,1497,1499,1502,1504,1506,1508,1510,1513,1516,1518,1520,1523],{"class":191,"line":260},[189,1498,225],{"class":224},[189,1500,1501],{"class":232}," postOnly",[189,1503,626],{"class":250},[189,1505,1346],{"class":224},[189,1507,1468],{"class":253},[189,1509,632],{"class":431},[189,1511,1512],{"class":214},"'/api/auth/customer/post-only'",[189,1514,1515],{"class":431},", { ",[189,1517,1309],{"class":872},[189,1519,734],{"class":941},[189,1521,1522],{"class":214}," 'POST'",[189,1524,775],{"class":431},[158,1526,1527],{},"Use this when you need low-level control and want to build your own data loader pattern.",[166,1529,1531],{"id":1530},"useauthasyncdata","useAuthAsyncData",[158,1533,1534],{},"SSR-safe helper for auth-bound data loading.",[179,1536,1538],{"className":419,"code":1537,"filename":183,"language":422,"meta":185,"style":185},"const { data: customerState, pending, error } = await useAuthAsyncData(\n  'customer-state',\n  requestFetch => requestFetch('/api/auth/customer/state'),\n)\n",[174,1539,1540,1573,1581,1597],{"__ignoreMap":185},[189,1541,1542,1544,1546,1548,1550,1552,1554,1557,1559,1562,1564,1566,1568,1571],{"class":191,"line":192},[189,1543,225],{"class":224},[189,1545,229],{"class":431},[189,1547,1334],{"class":872},[189,1549,1273],{"class":431},[189,1551,1339],{"class":232},[189,1553,236],{"class":431},[189,1555,1556],{"class":232},"pending",[189,1558,236],{"class":431},[189,1560,1561],{"class":232},"error",[189,1563,247],{"class":431},[189,1565,211],{"class":250},[189,1567,1346],{"class":224},[189,1569,1570],{"class":253}," useAuthAsyncData",[189,1572,917],{"class":431},[189,1574,1575,1578],{"class":191,"line":221},[189,1576,1577],{"class":214},"  'customer-state'",[189,1579,1580],{"class":431},",\n",[189,1582,1583,1586,1589,1591,1593,1595],{"class":191,"line":260},[189,1584,1585],{"class":729},"  requestFetch",[189,1587,1588],{"class":224}," =>",[189,1590,1468],{"class":253},[189,1592,632],{"class":431},[189,1594,1354],{"class":214},[189,1596,1123],{"class":431},[189,1598,1599],{"class":191,"line":270},[189,1600,709],{"class":431},[158,1602,1603,1604,1607],{},"When route typing is enabled, payload types for ",[174,1605,1606],{},"/api/auth/*"," endpoints are inferred automatically.",[158,1609,1610],{},"By default:",[490,1612,1613,1625,1631],{},[493,1614,1615,1618,1619,1621,1622,1624],{},[174,1616,1617],{},"requireAuth"," is ",[174,1620,464],{}," (unauthenticated users resolve to ",[174,1623,798],{}," without calling the endpoint).",[493,1626,1627,1298,1629,510],{},[174,1628,1334],{},[174,1630,798],{},[493,1632,1633,1634,510],{},"errors are exposed through ",[174,1635,1561],{},[179,1637,1639],{"className":419,"code":1638,"filename":183,"language":422,"meta":185,"style":185},"const { data } = await useAuthAsyncData(\n  'public-profile',\n  requestFetch => requestFetch('/api/profile/public'),\n  { requireAuth: false },\n)\n",[174,1640,1641,1659,1666,1681,1694],{"__ignoreMap":185},[189,1642,1643,1645,1647,1649,1651,1653,1655,1657],{"class":191,"line":192},[189,1644,225],{"class":224},[189,1646,229],{"class":431},[189,1648,1334],{"class":232},[189,1650,247],{"class":431},[189,1652,211],{"class":250},[189,1654,1346],{"class":224},[189,1656,1570],{"class":253},[189,1658,917],{"class":431},[189,1660,1661,1664],{"class":191,"line":221},[189,1662,1663],{"class":214},"  'public-profile'",[189,1665,1580],{"class":431},[189,1667,1668,1670,1672,1674,1676,1679],{"class":191,"line":260},[189,1669,1585],{"class":729},[189,1671,1588],{"class":224},[189,1673,1468],{"class":253},[189,1675,632],{"class":431},[189,1677,1678],{"class":214},"'/api/profile/public'",[189,1680,1123],{"class":431},[189,1682,1683,1685,1687,1689,1692],{"class":191,"line":270},[189,1684,922],{"class":431},[189,1686,1617],{"class":872},[189,1688,734],{"class":941},[189,1690,1691],{"class":1219}," false",[189,1693,931],{"class":431},[189,1695,1696],{"class":191,"line":277},[189,1697,709],{"class":431},[166,1699,1701],{"id":1700},"useaction","useAction",[158,1703,1704],{},"Creates a reusable async action handle with normalized error state.",[179,1706,1709],{"className":419,"code":1707,"filename":1708,"language":422,"meta":185,"style":185},"const saveProfile = useAction(async (payload: { name: string }) => {\n  return await $fetch('/api/profile', { method: 'PATCH', body: payload })\n})\n\nawait saveProfile.execute({ name: 'Max' })\n\n## Related pages\n\n- [Sessions](/core-concepts/sessions)\n- [Server utilities](/api/server-utils)\n- [Components](/api/components)\n\nif (saveProfile.status.value === 'error') {\n  console.error(saveProfile.error.value?.message)\n}\n","components/ProfileForm.vue",[174,1710,1711,1749,1784,1788,1792,1813,1817,1828,1832,1862,1894,1916,1921,1949,1978],{"__ignoreMap":185},[189,1712,1713,1715,1718,1720,1723,1725,1727,1730,1733,1735,1737,1739,1741,1743,1745,1747],{"class":191,"line":192},[189,1714,225],{"class":224},[189,1716,1717],{"class":232}," saveProfile",[189,1719,626],{"class":250},[189,1721,1722],{"class":253}," useAction",[189,1724,632],{"class":431},[189,1726,718],{"class":224},[189,1728,1729],{"class":431}," (",[189,1731,1732],{"class":729},"payload",[189,1734,734],{"class":733},[189,1736,229],{"class":431},[189,1738,1254],{"class":758},[189,1740,734],{"class":733},[189,1742,738],{"class":737},[189,1744,1037],{"class":431},[189,1746,641],{"class":224},[189,1748,644],{"class":431},[189,1750,1751,1753,1755,1758,1760,1763,1765,1767,1769,1772,1774,1777,1779,1782],{"class":191,"line":221},[189,1752,649],{"class":224},[189,1754,1346],{"class":224},[189,1756,1757],{"class":253}," $fetch",[189,1759,632],{"class":431},[189,1761,1762],{"class":214},"'/api/profile'",[189,1764,1515],{"class":431},[189,1766,1309],{"class":872},[189,1768,734],{"class":941},[189,1770,1771],{"class":214}," 'PATCH'",[189,1773,236],{"class":431},[189,1775,1776],{"class":872},"body",[189,1778,734],{"class":941},[189,1780,1781],{"class":758}," payload",[189,1783,775],{"class":431},[189,1785,1786],{"class":191,"line":260},[189,1787,658],{"class":431},[189,1789,1790],{"class":191,"line":270},[189,1791,274],{"emptyLinePlaceholder":273},[189,1793,1794,1796,1798,1800,1802,1804,1806,1808,1811],{"class":191,"line":277},[189,1795,823],{"class":224},[189,1797,1717],{"class":758},[189,1799,510],{"class":431},[189,1801,763],{"class":253},[189,1803,766],{"class":431},[189,1805,1254],{"class":872},[189,1807,734],{"class":941},[189,1809,1810],{"class":214}," 'Max'",[189,1812,775],{"class":431},[189,1814,1815],{"class":191,"line":287},[189,1816,274],{"emptyLinePlaceholder":273},[189,1818,1819,1822,1825],{"class":191,"line":314},[189,1820,1821],{"class":431},"## ",[189,1823,1824],{"class":758},"Related",[189,1826,1827],{"class":758}," pages\n",[189,1829,1830],{"class":191,"line":320},[189,1831,274],{"emptyLinePlaceholder":273},[189,1833,1834,1837,1840,1842,1845,1847,1850,1852,1855,1857,1860],{"class":191,"line":330},[189,1835,1836],{"class":733},"-",[189,1838,1839],{"class":431}," [",[189,1841,52],{"class":758},[189,1843,1844],{"class":431},"](",[189,1846,1451],{"class":733},[189,1848,1849],{"class":758},"core",[189,1851,1836],{"class":733},[189,1853,1854],{"class":758},"concepts",[189,1856,1451],{"class":733},[189,1858,1859],{"class":758},"sessions",[189,1861,709],{"class":431},[189,1863,1865,1867,1869,1872,1875,1877,1879,1882,1884,1887,1889,1892],{"class":191,"line":1864},10,[189,1866,1836],{"class":733},[189,1868,1839],{"class":431},[189,1870,1871],{"class":758},"Server",[189,1873,1874],{"class":758}," utilities",[189,1876,1844],{"class":431},[189,1878,1451],{"class":733},[189,1880,1881],{"class":758},"api",[189,1883,1451],{"class":733},[189,1885,1886],{"class":758},"server",[189,1888,1836],{"class":733},[189,1890,1891],{"class":758},"utils",[189,1893,709],{"class":431},[189,1895,1897,1899,1901,1903,1905,1907,1909,1911,1914],{"class":191,"line":1896},11,[189,1898,1836],{"class":733},[189,1900,1839],{"class":431},[189,1902,145],{"class":758},[189,1904,1844],{"class":431},[189,1906,1451],{"class":733},[189,1908,1881],{"class":758},[189,1910,1451],{"class":733},[189,1912,1913],{"class":758},"components",[189,1915,709],{"class":431},[189,1917,1919],{"class":191,"line":1918},12,[189,1920,274],{"emptyLinePlaceholder":273},[189,1922,1924,1927,1929,1932,1934,1937,1939,1941,1944,1947],{"class":191,"line":1923},13,[189,1925,1926],{"class":224},"if",[189,1928,1729],{"class":431},[189,1930,1931],{"class":758},"saveProfile",[189,1933,510],{"class":431},[189,1935,1936],{"class":872},"status",[189,1938,510],{"class":431},[189,1940,1365],{"class":872},[189,1942,1943],{"class":733}," ===",[189,1945,1946],{"class":214}," 'error'",[189,1948,750],{"class":431},[189,1950,1952,1955,1957,1959,1961,1963,1965,1967,1969,1971,1973,1976],{"class":191,"line":1951},14,[189,1953,1954],{"class":758},"  console",[189,1956,510],{"class":431},[189,1958,1561],{"class":253},[189,1960,632],{"class":431},[189,1962,1931],{"class":758},[189,1964,510],{"class":431},[189,1966,1561],{"class":872},[189,1968,510],{"class":431},[189,1970,1365],{"class":872},[189,1972,828],{"class":431},[189,1974,1975],{"class":872},"message",[189,1977,709],{"class":431},[189,1979,1981],{"class":191,"line":1980},15,[189,1982,780],{"class":431},[158,1984,1985,1987,1988,1451,1991,734],{},[174,1986,1701],{}," returns the same handle shape as ",[174,1989,1990],{},"useSignIn",[174,1992,1993],{},"useSignUp",[456,1995,1996,2000,2008,2012],{},[459,1997,1999],{"name":763,"type":1998},"(...args) => Promise\u003Cvoid>","Executes the action and never throws.",[459,2001,2003,2004,2007],{"name":1936,"type":2002},"'idle' | 'pending' | 'success' | 'error'","Current status of the latest ",[174,2005,2006],{},"execute()"," call.",[459,2009,2011],{"name":1334,"type":2010},"any | null","Last successful result.",[459,2013,2015,2016,2019],{"name":1561,"type":2014},"AuthActionError | null","Normalized error from thrown errors or ",[174,2017,2018],{},"{ error }"," responses.",[166,2021,2023],{"id":2022},"useauthclientaction","useAuthClientAction",[158,2025,2026,2027,2029],{},"Wraps plugin/client methods from ",[174,2028,379],{}," in the same action handle pattern.",[179,2031,2034],{"className":419,"code":2032,"filename":2033,"language":422,"meta":185,"style":185},"const checkout = useAuthClientAction((client) => client.checkout)\n\nawait checkout.execute({ slug: 'pro' })\n\nif (checkout.status.value === 'error') {\n  console.error(checkout.error.value?.message)\n}\n","pages/pricing.vue",[174,2035,2036,2067,2071,2093,2097,2119,2145],{"__ignoreMap":185},[189,2037,2038,2040,2043,2045,2048,2051,2053,2056,2058,2060,2062,2065],{"class":191,"line":192},[189,2039,225],{"class":224},[189,2041,2042],{"class":232}," checkout",[189,2044,626],{"class":250},[189,2046,2047],{"class":253}," useAuthClientAction",[189,2049,2050],{"class":431},"((",[189,2052,593],{"class":729},[189,2054,2055],{"class":431},") ",[189,2057,641],{"class":224},[189,2059,811],{"class":758},[189,2061,510],{"class":431},[189,2063,2064],{"class":872},"checkout",[189,2066,709],{"class":431},[189,2068,2069],{"class":191,"line":221},[189,2070,274],{"emptyLinePlaceholder":273},[189,2072,2073,2075,2077,2079,2081,2083,2086,2088,2091],{"class":191,"line":260},[189,2074,823],{"class":224},[189,2076,2042],{"class":758},[189,2078,510],{"class":431},[189,2080,763],{"class":253},[189,2082,766],{"class":431},[189,2084,2085],{"class":872},"slug",[189,2087,734],{"class":941},[189,2089,2090],{"class":214}," 'pro'",[189,2092,775],{"class":431},[189,2094,2095],{"class":191,"line":270},[189,2096,274],{"emptyLinePlaceholder":273},[189,2098,2099,2101,2103,2105,2107,2109,2111,2113,2115,2117],{"class":191,"line":277},[189,2100,1926],{"class":224},[189,2102,1729],{"class":431},[189,2104,2064],{"class":758},[189,2106,510],{"class":431},[189,2108,1936],{"class":872},[189,2110,510],{"class":431},[189,2112,1365],{"class":872},[189,2114,1943],{"class":733},[189,2116,1946],{"class":214},[189,2118,750],{"class":431},[189,2120,2121,2123,2125,2127,2129,2131,2133,2135,2137,2139,2141,2143],{"class":191,"line":287},[189,2122,1954],{"class":758},[189,2124,510],{"class":431},[189,2126,1561],{"class":253},[189,2128,632],{"class":431},[189,2130,2064],{"class":758},[189,2132,510],{"class":431},[189,2134,1561],{"class":872},[189,2136,510],{"class":431},[189,2138,1365],{"class":872},[189,2140,828],{"class":431},[189,2142,1975],{"class":872},[189,2144,709],{"class":431},[189,2146,2147],{"class":191,"line":314},[189,2148,780],{"class":431},[158,2150,2151],{},"Nested methods are supported via selector functions:",[179,2153,2156],{"className":419,"code":2154,"filename":2155,"language":422,"meta":185,"style":185},"const openPortal = useAuthClientAction((client) => client.customer.portal)\nawait openPortal.execute()\n","pages/app/index.vue",[174,2157,2158,2191],{"__ignoreMap":185},[189,2159,2160,2162,2165,2167,2169,2171,2173,2175,2177,2179,2181,2184,2186,2189],{"class":191,"line":192},[189,2161,225],{"class":224},[189,2163,2164],{"class":232}," openPortal",[189,2166,626],{"class":250},[189,2168,2047],{"class":253},[189,2170,2050],{"class":431},[189,2172,593],{"class":729},[189,2174,2055],{"class":431},[189,2176,641],{"class":224},[189,2178,811],{"class":758},[189,2180,510],{"class":431},[189,2182,2183],{"class":872},"customer",[189,2185,510],{"class":431},[189,2187,2188],{"class":872},"portal",[189,2190,709],{"class":431},[189,2192,2193,2195,2197,2199,2201],{"class":191,"line":221},[189,2194,823],{"class":224},[189,2196,2164],{"class":758},[189,2198,510],{"class":431},[189,2200,763],{"class":253},[189,2202,257],{"class":431},[166,2204,1990],{"id":2205},"usesignin",[158,2207,2208,2209,2212,2213,510],{},"Returns a keyed action handle for Better Auth ",[174,2210,2211],{},"signIn.*",". Each method handle exposes template-friendly async state, similar to composables like ",[174,2214,1450],{},[179,2216,2218],{"className":419,"code":2217,"filename":421,"language":422,"meta":185,"style":185},"const { execute, data, status, error } = useSignIn('email')\n\nawait execute(\n  { email, password, rememberMe },\n  {\n    onSuccess: () => navigateTo('/app'),\n    onError: (ctx) => console.error(ctx.error),\n  },\n)\n\nif (status.value === 'error') {\n  console.error(error.value?.message)\n}\n",[174,2219,2220,2252,2256,2265,2282,2287,2307,2340,2345,2349,2353,2371,2393],{"__ignoreMap":185},[189,2221,2222,2224,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250],{"class":191,"line":192},[189,2223,225],{"class":224},[189,2225,229],{"class":431},[189,2227,763],{"class":232},[189,2229,236],{"class":431},[189,2231,1334],{"class":232},[189,2233,236],{"class":431},[189,2235,1936],{"class":232},[189,2237,236],{"class":431},[189,2239,1561],{"class":232},[189,2241,247],{"class":431},[189,2243,211],{"class":250},[189,2245,701],{"class":253},[189,2247,632],{"class":431},[189,2249,706],{"class":214},[189,2251,709],{"class":431},[189,2253,2254],{"class":191,"line":221},[189,2255,274],{"emptyLinePlaceholder":273},[189,2257,2258,2260,2263],{"class":191,"line":260},[189,2259,823],{"class":224},[189,2261,2262],{"class":253}," execute",[189,2264,917],{"class":431},[189,2266,2267,2269,2271,2273,2275,2277,2280],{"class":191,"line":270},[189,2268,922],{"class":431},[189,2270,730],{"class":758},[189,2272,236],{"class":431},[189,2274,743],{"class":758},[189,2276,236],{"class":431},[189,2278,2279],{"class":758},"rememberMe",[189,2281,931],{"class":431},[189,2283,2284],{"class":191,"line":277},[189,2285,2286],{"class":431},"  {\n",[189,2288,2289,2292,2294,2296,2298,2300,2302,2305],{"class":191,"line":287},[189,2290,2291],{"class":253},"    onSuccess",[189,2293,734],{"class":941},[189,2295,944],{"class":431},[189,2297,641],{"class":224},[189,2299,949],{"class":253},[189,2301,632],{"class":431},[189,2303,2304],{"class":214},"'/app'",[189,2306,1123],{"class":431},[189,2308,2309,2312,2314,2316,2319,2321,2323,2326,2328,2330,2332,2334,2336,2338],{"class":191,"line":314},[189,2310,2311],{"class":253},"    onError",[189,2313,734],{"class":941},[189,2315,1729],{"class":431},[189,2317,2318],{"class":729},"ctx",[189,2320,2055],{"class":431},[189,2322,641],{"class":224},[189,2324,2325],{"class":758}," console",[189,2327,510],{"class":431},[189,2329,1561],{"class":253},[189,2331,632],{"class":431},[189,2333,2318],{"class":758},[189,2335,510],{"class":431},[189,2337,1561],{"class":872},[189,2339,1123],{"class":431},[189,2341,2342],{"class":191,"line":320},[189,2343,2344],{"class":431},"  },\n",[189,2346,2347],{"class":191,"line":330},[189,2348,709],{"class":431},[189,2350,2351],{"class":191,"line":1864},[189,2352,274],{"emptyLinePlaceholder":273},[189,2354,2355,2357,2359,2361,2363,2365,2367,2369],{"class":191,"line":1896},[189,2356,1926],{"class":224},[189,2358,1729],{"class":431},[189,2360,1936],{"class":758},[189,2362,510],{"class":431},[189,2364,1365],{"class":872},[189,2366,1943],{"class":733},[189,2368,1946],{"class":214},[189,2370,750],{"class":431},[189,2372,2373,2375,2377,2379,2381,2383,2385,2387,2389,2391],{"class":191,"line":1918},[189,2374,1954],{"class":758},[189,2376,510],{"class":431},[189,2378,1561],{"class":253},[189,2380,632],{"class":431},[189,2382,1561],{"class":758},[189,2384,510],{"class":431},[189,2386,1365],{"class":872},[189,2388,828],{"class":431},[189,2390,1975],{"class":872},[189,2392,709],{"class":431},[189,2394,2395],{"class":191,"line":1923},[189,2396,780],{"class":431},[158,2398,2399,2400,2403],{},"For OAuth sign-in, use the ",[174,2401,2402],{},"social"," key and pass the provider in the payload:",[179,2405,2407],{"className":419,"code":2406,"filename":421,"language":422,"meta":185,"style":185},"await useSignIn('social').execute({ provider: 'github' })\n",[174,2408,2409],{"__ignoreMap":185},[189,2410,2411,2413,2415,2417,2420,2422,2424,2426,2429,2431,2434],{"class":191,"line":192},[189,2412,823],{"class":224},[189,2414,701],{"class":253},[189,2416,632],{"class":431},[189,2418,2419],{"class":214},"'social'",[189,2421,1024],{"class":431},[189,2423,763],{"class":253},[189,2425,766],{"class":431},[189,2427,2428],{"class":872},"provider",[189,2430,734],{"class":941},[189,2432,2433],{"class":214}," 'github'",[189,2435,775],{"class":431},[158,2437,2438,2439,2442,2443,2446,2447,2450],{},"Provider keys are inferred from ",[174,2440,2441],{},"server/auth.config.ts"," ",[174,2444,2445],{},"socialProviders"," keys.\nWhen ",[174,2448,2449],{},"callbackURL"," is omitted, the module auto-fills it using the same safe redirect order as other auth flows:",[490,2452,2453,2459,2463],{},[493,2454,2455,2456,2458],{},"safe query redirect (",[174,2457,995],{},")",[493,2460,2461],{},[174,2462,1002],{},[493,2464,2465],{},"otherwise no fallback callback URL",[158,2467,2468],{},"Use renaming to avoid collisions when you use multiple methods in the same scope:",[179,2470,2472],{"className":419,"code":2471,"filename":421,"language":422,"meta":185,"style":185},"const {\n  execute: loginWithEmail,\n  status: statusEmail,\n  error: errorEmail,\n} = useSignIn('email')\n\nconst {\n  execute: loginWithPasskey,\n  status: statusPasskey,\n  error: errorPasskey,\n} = useSignIn('passkey')\n",[174,2473,2474,2480,2492,2504,2516,2531,2535,2541,2552,2563,2574],{"__ignoreMap":185},[189,2475,2476,2478],{"class":191,"line":192},[189,2477,225],{"class":224},[189,2479,644],{"class":431},[189,2481,2482,2485,2487,2490],{"class":191,"line":221},[189,2483,2484],{"class":872},"  execute",[189,2486,1273],{"class":431},[189,2488,2489],{"class":232},"loginWithEmail",[189,2491,1580],{"class":431},[189,2493,2494,2497,2499,2502],{"class":191,"line":260},[189,2495,2496],{"class":872},"  status",[189,2498,1273],{"class":431},[189,2500,2501],{"class":232},"statusEmail",[189,2503,1580],{"class":431},[189,2505,2506,2509,2511,2514],{"class":191,"line":270},[189,2507,2508],{"class":872},"  error",[189,2510,1273],{"class":431},[189,2512,2513],{"class":232},"errorEmail",[189,2515,1580],{"class":431},[189,2517,2518,2521,2523,2525,2527,2529],{"class":191,"line":277},[189,2519,2520],{"class":431},"} ",[189,2522,211],{"class":250},[189,2524,701],{"class":253},[189,2526,632],{"class":431},[189,2528,706],{"class":214},[189,2530,709],{"class":431},[189,2532,2533],{"class":191,"line":287},[189,2534,274],{"emptyLinePlaceholder":273},[189,2536,2537,2539],{"class":191,"line":314},[189,2538,225],{"class":224},[189,2540,644],{"class":431},[189,2542,2543,2545,2547,2550],{"class":191,"line":320},[189,2544,2484],{"class":872},[189,2546,1273],{"class":431},[189,2548,2549],{"class":232},"loginWithPasskey",[189,2551,1580],{"class":431},[189,2553,2554,2556,2558,2561],{"class":191,"line":330},[189,2555,2496],{"class":872},[189,2557,1273],{"class":431},[189,2559,2560],{"class":232},"statusPasskey",[189,2562,1580],{"class":431},[189,2564,2565,2567,2569,2572],{"class":191,"line":1864},[189,2566,2508],{"class":872},[189,2568,1273],{"class":431},[189,2570,2571],{"class":232},"errorPasskey",[189,2573,1580],{"class":431},[189,2575,2576,2578,2580,2582,2584,2587],{"class":191,"line":1896},[189,2577,2520],{"class":431},[189,2579,211],{"class":250},[189,2581,701],{"class":253},[189,2583,632],{"class":431},[189,2585,2586],{"class":214},"'passkey'",[189,2588,709],{"class":431},[158,2590,2591],{},"Each method returns an action handle:",[456,2593,2594,2597,2601,2607],{},[459,2595,2596],{"name":763,"type":1998},"Calls the underlying Better Auth method and never throws.",[459,2598,2003,2599,2007],{"name":1936,"type":2002},[174,2600,2006],{},[459,2602,2603,2604,2606],{"name":1334,"type":2010},"Last successful result. Cleared on each new ",[174,2605,2006],{}," and on errors.",[459,2608,2609,2610,1024],{"name":1561,"type":2014},"Normalized error for the latest call (cleared on new ",[174,2611,2006],{},[162,2613,2614,2615,2617,2618,967,2620,510],{},"Each sign-in method has independent state. When you call ",[174,2616,2006],{}," multiple times, only the latest call updates ",[174,2619,1936],{},[174,2621,1561],{},[839,2623,2625],{"id":2624},"error-state-and-promise-behavior","Error state and promise behavior",[158,2627,172,2628,236,2630,503,2632,2634,2635,2638,2639,2641],{},[174,2629,1936],{},[174,2631,1334],{},[174,2633,1561],{}," as your source of truth. The action handle always sets ",[174,2636,2637],{},"status='error'"," and populates normalized ",[174,2640,1561],{}," when a sign-in attempt fails.",[162,2643,2644,2645,2647,2648,967,2650,503,2652,2655],{},"Better Auth methods can signal failure by throwing or by resolving to a ",[174,2646,2018],{}," result. In both cases, the action handle updates ",[174,2649,1936],{},[174,2651,1561],{},[174,2653,2654],{},"await execute()"," always resolves.",[1161,2657,2659,2660,2458],{"id":2658},"recommended-flow-execute","Recommended flow (",[174,2661,763],{},[179,2663,2665],{"className":419,"code":2664,"filename":421,"language":422,"meta":185,"style":185},"const { execute, data, status, error } = useSignIn('email')\n\nawait execute({ email, password })\n\nif (status.value === 'error') {\n  console.error(error.value?.message)\n}\n\nif (status.value === 'success') {\n  console.log(data.value)\n}\n",[174,2666,2667,2699,2703,2719,2723,2741,2763,2767,2771,2790,2809],{"__ignoreMap":185},[189,2668,2669,2671,2673,2675,2677,2679,2681,2683,2685,2687,2689,2691,2693,2695,2697],{"class":191,"line":192},[189,2670,225],{"class":224},[189,2672,229],{"class":431},[189,2674,763],{"class":232},[189,2676,236],{"class":431},[189,2678,1334],{"class":232},[189,2680,236],{"class":431},[189,2682,1936],{"class":232},[189,2684,236],{"class":431},[189,2686,1561],{"class":232},[189,2688,247],{"class":431},[189,2690,211],{"class":250},[189,2692,701],{"class":253},[189,2694,632],{"class":431},[189,2696,706],{"class":214},[189,2698,709],{"class":431},[189,2700,2701],{"class":191,"line":221},[189,2702,274],{"emptyLinePlaceholder":273},[189,2704,2705,2707,2709,2711,2713,2715,2717],{"class":191,"line":260},[189,2706,823],{"class":224},[189,2708,2262],{"class":253},[189,2710,766],{"class":431},[189,2712,730],{"class":758},[189,2714,236],{"class":431},[189,2716,743],{"class":758},[189,2718,775],{"class":431},[189,2720,2721],{"class":191,"line":270},[189,2722,274],{"emptyLinePlaceholder":273},[189,2724,2725,2727,2729,2731,2733,2735,2737,2739],{"class":191,"line":277},[189,2726,1926],{"class":224},[189,2728,1729],{"class":431},[189,2730,1936],{"class":758},[189,2732,510],{"class":431},[189,2734,1365],{"class":872},[189,2736,1943],{"class":733},[189,2738,1946],{"class":214},[189,2740,750],{"class":431},[189,2742,2743,2745,2747,2749,2751,2753,2755,2757,2759,2761],{"class":191,"line":287},[189,2744,1954],{"class":758},[189,2746,510],{"class":431},[189,2748,1561],{"class":253},[189,2750,632],{"class":431},[189,2752,1561],{"class":758},[189,2754,510],{"class":431},[189,2756,1365],{"class":872},[189,2758,828],{"class":431},[189,2760,1975],{"class":872},[189,2762,709],{"class":431},[189,2764,2765],{"class":191,"line":314},[189,2766,780],{"class":431},[189,2768,2769],{"class":191,"line":320},[189,2770,274],{"emptyLinePlaceholder":273},[189,2772,2773,2775,2777,2779,2781,2783,2785,2788],{"class":191,"line":330},[189,2774,1926],{"class":224},[189,2776,1729],{"class":431},[189,2778,1936],{"class":758},[189,2780,510],{"class":431},[189,2782,1365],{"class":872},[189,2784,1943],{"class":733},[189,2786,2787],{"class":214}," 'success'",[189,2789,750],{"class":431},[189,2791,2792,2794,2796,2799,2801,2803,2805,2807],{"class":191,"line":1864},[189,2793,1954],{"class":758},[189,2795,510],{"class":431},[189,2797,2798],{"class":253},"log",[189,2800,632],{"class":431},[189,2802,1334],{"class":758},[189,2804,510],{"class":431},[189,2806,1365],{"class":872},[189,2808,709],{"class":431},[189,2810,2811],{"class":191,"line":1896},[189,2812,780],{"class":431},[2814,2815,2816,2862,2896],"warning",{},[158,2817,2818,967,2821,2824,2825,967,2827,2829,2830,2833,2834,2837,2838,2841,2842,2845,2846,2848,2849,2852,2853,2855,2856,2845,2859,2861],{},[174,2819,2820],{},"useUserSignIn",[174,2822,2823],{},"useUserSignUp"," were renamed to ",[174,2826,1990],{},[174,2828,1993],{}," in alpha.\nThe API switched from map-style access (",[174,2831,2832],{},"useUserSignIn().email",") to keyed access (",[174,2835,2836],{},"useSignIn('email')",") in alpha.\nOAuth provider aliases (for example ",[174,2839,2840],{},"useSignIn('github')",") were removed. Use ",[174,2843,2844],{},"useSignIn('social').execute({ provider: 'github' })",".\n",[174,2847,1561],{}," changed from ",[174,2850,2851],{},"unknown | null"," to ",[174,2854,2014],{}," in alpha.\nThe message alias field was removed in alpha. Use ",[174,2857,2858],{},"error.value?.message",[174,2860,2006],{}," changed twice in alpha:",[490,2863,2864,2870,2879],{},[493,2865,2866,2867,2869],{},"old: ",[174,2868,2654],{}," could reject",[493,2871,2872,2873,2875,2876],{},"previous alpha: ",[174,2874,2654],{}," resolved ",[174,2877,2878],{},"{ ok: true, data } | { ok: false, error }",[493,2880,2881,2882,2884,2885,2888,2889,2891,2892,2891,2894],{},"new: ",[174,2883,2654],{}," resolves ",[174,2886,2887],{},"void",", and you read ",[174,2890,1936],{}," / ",[174,2893,1334],{},[174,2895,1561],{},[158,2897,2898,2899,510],{},"If you relied on raw payloads, use ",[174,2900,2901],{},"error.raw",[166,2903,1993],{"id":2904},"usesignup",[158,2906,2907,2908,2910,2911,510],{},"Same API as ",[174,2909,1990],{},", but wraps Better Auth ",[174,2912,2913],{},"signUp.*",[179,2915,2918],{"className":419,"code":2916,"filename":2917,"language":422,"meta":185,"style":185},"const { execute, data, status, error } = useSignUp('email')\n\nawait execute(\n  { email, password, name },\n  {\n    onSuccess: () => navigateTo('/welcome'),\n    onError: (ctx) => console.error(ctx.error),\n  },\n)\n","pages/signup.vue",[174,2919,2920,2953,2957,2965,2981,2985,3004,3034,3038],{"__ignoreMap":185},[189,2921,2922,2924,2926,2928,2930,2932,2934,2936,2938,2940,2942,2944,2947,2949,2951],{"class":191,"line":192},[189,2923,225],{"class":224},[189,2925,229],{"class":431},[189,2927,763],{"class":232},[189,2929,236],{"class":431},[189,2931,1334],{"class":232},[189,2933,236],{"class":431},[189,2935,1936],{"class":232},[189,2937,236],{"class":431},[189,2939,1561],{"class":232},[189,2941,247],{"class":431},[189,2943,211],{"class":250},[189,2945,2946],{"class":253}," useSignUp",[189,2948,632],{"class":431},[189,2950,706],{"class":214},[189,2952,709],{"class":431},[189,2954,2955],{"class":191,"line":221},[189,2956,274],{"emptyLinePlaceholder":273},[189,2958,2959,2961,2963],{"class":191,"line":260},[189,2960,823],{"class":224},[189,2962,2262],{"class":253},[189,2964,917],{"class":431},[189,2966,2967,2969,2971,2973,2975,2977,2979],{"class":191,"line":270},[189,2968,922],{"class":431},[189,2970,730],{"class":758},[189,2972,236],{"class":431},[189,2974,743],{"class":758},[189,2976,236],{"class":431},[189,2978,1254],{"class":758},[189,2980,931],{"class":431},[189,2982,2983],{"class":191,"line":277},[189,2984,2286],{"class":431},[189,2986,2987,2989,2991,2993,2995,2997,2999,3002],{"class":191,"line":287},[189,2988,2291],{"class":253},[189,2990,734],{"class":941},[189,2992,944],{"class":431},[189,2994,641],{"class":224},[189,2996,949],{"class":253},[189,2998,632],{"class":431},[189,3000,3001],{"class":214},"'/welcome'",[189,3003,1123],{"class":431},[189,3005,3006,3008,3010,3012,3014,3016,3018,3020,3022,3024,3026,3028,3030,3032],{"class":191,"line":314},[189,3007,2311],{"class":253},[189,3009,734],{"class":941},[189,3011,1729],{"class":431},[189,3013,2318],{"class":729},[189,3015,2055],{"class":431},[189,3017,641],{"class":224},[189,3019,2325],{"class":758},[189,3021,510],{"class":431},[189,3023,1561],{"class":253},[189,3025,632],{"class":431},[189,3027,2318],{"class":758},[189,3029,510],{"class":431},[189,3031,1561],{"class":872},[189,3033,1123],{"class":431},[189,3035,3036],{"class":191,"line":320},[189,3037,2344],{"class":431},[189,3039,3040],{"class":191,"line":330},[189,3041,709],{"class":431},[158,3043,3044,3046,3047,236,3049,236,3051,236,3053,3055,3056,510],{},[174,3045,1993],{}," returns the same action handle shape (",[174,3048,763],{},[174,3050,1936],{},[174,3052,1334],{},[174,3054,1561],{},") and follows the same error normalization semantics as ",[174,3057,1990],{},[1284,3059],{"title":3060,"to":79},"OAuth Providers guide",[3062,3063,3064],"style",{},"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 .sPAZv, html code.shiki .sPAZv{--shiki-light:#50A14F;--shiki-default:#FF8B39;--shiki-dark:#FF8B39}html pre.shiki code .sqe1H, html code.shiki .sqe1H{--shiki-light:#A626A4;--shiki-default:#FEDE5D;--shiki-dark:#FEDE5D}html pre.shiki code .sEEOt, html code.shiki .sEEOt{--shiki-light:#383A42;--shiki-default:#FFFFFFEE;--shiki-dark:#FFFFFFEE}html pre.shiki code .s6Rhl, html code.shiki .s6Rhl{--shiki-light:#986801;--shiki-default:#FF7EDB;--shiki-dark:#FF7EDB}html pre.shiki code .sQBpM, html code.shiki .sQBpM{--shiki-light:#0184BC;--shiki-default:#FFFFFFEE;--shiki-dark:#FFFFFFEE}html pre.shiki code .sfT9l, html code.shiki .sfT9l{--shiki-light:#4078F2;--shiki-default:#36F9F6;--shiki-dark:#36F9F6}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 .s17Py, html code.shiki .s17Py{--shiki-light:#383A42;--shiki-default:#BBBBBB;--shiki-dark:#BBBBBB}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}html pre.shiki code .sn-Jc, html code.shiki .sn-Jc{--shiki-light:#0184BC;--shiki-default:#FEDE5D;--shiki-dark:#FEDE5D}html pre.shiki code .sr8De, html code.shiki .sr8De{--shiki-light:#0184BC;--shiki-default:#FE4450;--shiki-dark:#FE4450}html pre.shiki code .svFNh, html code.shiki .svFNh{--shiki-light:#383A42;--shiki-default:#FF7EDB;--shiki-dark:#FF7EDB}html pre.shiki code .st7cf, html code.shiki .st7cf{--shiki-light:#A0A1A7;--shiki-light-font-style:italic;--shiki-default:#848BBD;--shiki-default-font-style:italic;--shiki-dark:#848BBD;--shiki-dark-font-style:italic}html pre.shiki code .sYvLG, html code.shiki .sYvLG{--shiki-light:#E45649;--shiki-default:#FF7EDB;--shiki-dark:#FF7EDB}html pre.shiki code .sVnqq, html code.shiki .sVnqq{--shiki-light:#0184BC;--shiki-default:#B6B1B1;--shiki-dark:#B6B1B1}html pre.shiki code .s3ZNE, html code.shiki .s3ZNE{--shiki-light:#986801;--shiki-default:#F97E72;--shiki-dark:#F97E72}",{"title":185,"searchDepth":221,"depth":221,"links":3066},[3067,3068,3069,3070,3071,3074,3078,3079,3080,3081,3082,3085],{"id":168,"depth":221,"text":169},{"id":339,"depth":221,"text":340},{"id":412,"depth":221,"text":413},{"id":541,"depth":221,"text":542},{"id":791,"depth":221,"text":792,"children":3072},[3073],{"id":841,"depth":260,"text":842},{"id":973,"depth":221,"text":974,"children":3075},[3076,3077],{"id":1051,"depth":260,"text":244},{"id":1130,"depth":260,"text":1133},{"id":1289,"depth":221,"text":1290},{"id":1530,"depth":221,"text":1531},{"id":1700,"depth":221,"text":1701},{"id":2022,"depth":221,"text":2023},{"id":2205,"depth":221,"text":1990,"children":3083},[3084],{"id":2624,"depth":260,"text":2625},{"id":2904,"depth":221,"text":1993},"API reference for client-side composables.","md",null,{},{"title":137,"description":3086},"oAjaS0_Bv-3y-NWW7lJdUI72ruLbjU-wBAlCOxK4iB4",[3093,3095],{"title":128,"path":129,"stem":130,"description":3094,"children":-1},"Translate authentication errors with @nuxtjs/i18n.",{"title":141,"path":142,"stem":143,"description":3096,"children":-1},"API reference for server-side helpers available in Nitro event handlers.",1778075464416]