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