[{"data":1,"prerenderedAt":1342},["ShallowReactive",2],{"navigation_docs":3,"-integrations-i18n":152,"-integrations-i18n-surround":1337},[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":128,"body":154,"description":1331,"extension":1332,"links":1333,"meta":1334,"navigation":599,"path":129,"seo":1335,"stem":130,"__hash__":1336},"docs/4.integrations/4.i18n.md",{"type":155,"value":156,"toc":1321},"minimark",[157,166,172,177,321,325,332,473,477,486,942,953,957,968,978,1170,1174,1294,1307,1317],[158,159,160,161,165],"p",{},"Use this guide when you already have ",[162,163,164],"code",{},"@nuxtjs/i18n"," configured and you want auth errors to respect the active locale.",[158,167,168,169,171],{},"This integration enables translated authentication error messages using your existing ",[162,170,164],{}," setup.",[173,174,176],"h2",{"id":175},"setup","Setup",[178,179,180,185,210,214],"steps",{},[181,182,184],"h3",{"id":183},"install-nuxtjsi18n","Install @nuxtjs/i18n",[186,187,192],"pre",{"className":188,"code":189,"language":190,"meta":191,"style":191},"language-bash shiki shiki-themes one-light synthwave-84 synthwave-84","pnpm add @nuxtjs/i18n\n","bash","",[162,193,194],{"__ignoreMap":191},[195,196,199,203,207],"span",{"class":197,"line":198},"line",1,[195,200,202],{"class":201},"siqUp","pnpm",[195,204,206],{"class":205},"sI3kV"," add",[195,208,209],{"class":205}," @nuxtjs/i18n\n",[181,211,213],{"id":212},"configure-nuxtconfigts","Configure nuxt.config.ts",[186,215,220],{"className":216,"code":217,"filename":218,"language":219,"meta":191,"style":191},"language-ts shiki shiki-themes one-light synthwave-84 synthwave-84","export default defineNuxtConfig({\n  modules: ['@nuxtjs/i18n', '@onmax/nuxt-better-auth'],\n  i18n: {\n    locales: ['en', 'es'],\n    defaultLocale: 'en'\n  }\n})\n","nuxt.config.ts","ts",[162,221,222,240,267,278,298,309,315],{"__ignoreMap":191},[195,223,224,228,232,236],{"class":197,"line":198},[195,225,227],{"class":226},"sqe1H","export",[195,229,231],{"class":230},"sKg8T"," default",[195,233,235],{"class":234},"sfT9l"," defineNuxtConfig",[195,237,239],{"class":238},"s17Py","({\n",[195,241,243,247,251,254,258,261,264],{"class":197,"line":242},2,[195,244,246],{"class":245},"sYvLG","  modules",[195,248,250],{"class":249},"sVnqq",":",[195,252,253],{"class":238}," [",[195,255,257],{"class":256},"sPAZv","'@nuxtjs/i18n'",[195,259,260],{"class":238},", ",[195,262,263],{"class":256},"'@onmax/nuxt-better-auth'",[195,265,266],{"class":238},"],\n",[195,268,270,273,275],{"class":197,"line":269},3,[195,271,272],{"class":245},"  i18n",[195,274,250],{"class":249},[195,276,277],{"class":238}," {\n",[195,279,281,284,286,288,291,293,296],{"class":197,"line":280},4,[195,282,283],{"class":245},"    locales",[195,285,250],{"class":249},[195,287,253],{"class":238},[195,289,290],{"class":256},"'en'",[195,292,260],{"class":238},[195,294,295],{"class":256},"'es'",[195,297,266],{"class":238},[195,299,301,304,306],{"class":197,"line":300},5,[195,302,303],{"class":245},"    defaultLocale",[195,305,250],{"class":249},[195,307,308],{"class":256}," 'en'\n",[195,310,312],{"class":197,"line":311},6,[195,313,314],{"class":238},"  }\n",[195,316,318],{"class":197,"line":317},7,[195,319,320],{"class":238},"})\n",[173,322,324],{"id":323},"translation-files","Translation Files",[158,326,327,328,331],{},"Add error translations to your locale files using the ",[162,329,330],{},"auth.errors.*"," prefix:",[333,334,335,410],"code-group",{},[186,336,341],{"className":337,"code":338,"filename":339,"language":340,"meta":191,"style":191},"language-yaml shiki shiki-themes one-light synthwave-84 synthwave-84","auth:\n  errors:\n    USER_NOT_FOUND: \"User not found\"\n    INVALID_PASSWORD: \"Invalid password\"\n    INVALID_EMAIL_OR_PASSWORD: \"Invalid email or password\"\n    EMAIL_NOT_VERIFIED: \"Please verify your email first\"\n    SESSION_EXPIRED: \"Session expired, please sign in again\"\n","locales/en.yaml","yaml",[162,342,343,353,360,370,380,390,400],{"__ignoreMap":191},[195,344,345,349],{"class":197,"line":198},[195,346,348],{"class":347},"stweg","auth",[195,350,352],{"class":351},"sNM9w",":\n",[195,354,355,358],{"class":197,"line":242},[195,356,357],{"class":347},"  errors",[195,359,352],{"class":351},[195,361,362,365,367],{"class":197,"line":269},[195,363,364],{"class":347},"    USER_NOT_FOUND",[195,366,250],{"class":351},[195,368,369],{"class":256}," \"User not found\"\n",[195,371,372,375,377],{"class":197,"line":280},[195,373,374],{"class":347},"    INVALID_PASSWORD",[195,376,250],{"class":351},[195,378,379],{"class":256}," \"Invalid password\"\n",[195,381,382,385,387],{"class":197,"line":300},[195,383,384],{"class":347},"    INVALID_EMAIL_OR_PASSWORD",[195,386,250],{"class":351},[195,388,389],{"class":256}," \"Invalid email or password\"\n",[195,391,392,395,397],{"class":197,"line":311},[195,393,394],{"class":347},"    EMAIL_NOT_VERIFIED",[195,396,250],{"class":351},[195,398,399],{"class":256}," \"Please verify your email first\"\n",[195,401,402,405,407],{"class":197,"line":317},[195,403,404],{"class":347},"    SESSION_EXPIRED",[195,406,250],{"class":351},[195,408,409],{"class":256}," \"Session expired, please sign in again\"\n",[186,411,414],{"className":337,"code":412,"filename":413,"language":340,"meta":191,"style":191},"auth:\n  errors:\n    USER_NOT_FOUND: \"Usuario no encontrado\"\n    INVALID_PASSWORD: \"Contraseña incorrecta\"\n    INVALID_EMAIL_OR_PASSWORD: \"Email o contraseña incorrectos\"\n    EMAIL_NOT_VERIFIED: \"Por favor verifica tu email primero\"\n    SESSION_EXPIRED: \"Sesión expirada, inicia sesión de nuevo\"\n","locales/es.yaml",[162,415,416,422,428,437,446,455,464],{"__ignoreMap":191},[195,417,418,420],{"class":197,"line":198},[195,419,348],{"class":347},[195,421,352],{"class":351},[195,423,424,426],{"class":197,"line":242},[195,425,357],{"class":347},[195,427,352],{"class":351},[195,429,430,432,434],{"class":197,"line":269},[195,431,364],{"class":347},[195,433,250],{"class":351},[195,435,436],{"class":256}," \"Usuario no encontrado\"\n",[195,438,439,441,443],{"class":197,"line":280},[195,440,374],{"class":347},[195,442,250],{"class":351},[195,444,445],{"class":256}," \"Contraseña incorrecta\"\n",[195,447,448,450,452],{"class":197,"line":300},[195,449,384],{"class":347},[195,451,250],{"class":351},[195,453,454],{"class":256}," \"Email o contraseña incorrectos\"\n",[195,456,457,459,461],{"class":197,"line":311},[195,458,394],{"class":347},[195,460,250],{"class":351},[195,462,463],{"class":256}," \"Por favor verifica tu email primero\"\n",[195,465,466,468,470],{"class":197,"line":317},[195,467,404],{"class":347},[195,469,250],{"class":351},[195,471,472],{"class":256}," \"Sesión expirada, inicia sesión de nuevo\"\n",[173,474,476],{"id":475},"client-side-error-handling","Client-Side Error Handling",[158,478,479,480,482,483,250],{},"Better Auth errors include a ",[162,481,162],{}," property that you can translate using ",[162,484,485],{},"useI18n()",[186,487,492],{"className":488,"code":489,"filename":490,"language":491,"meta":191,"style":191},"language-vue shiki shiki-themes one-light synthwave-84 synthwave-84","\u003Cscript setup lang=\"ts\">\nconst {\n  execute: signInWithEmail,\n  error,\n} = useSignIn('email')\nconst { t, te } = useI18n()\n\nasync function handleLogin(email: string, password: string) {\n  await signInWithEmail(\n    { email, password },\n    {\n      onSuccess: () => navigateTo('/app'),\n    }\n  )\n}\n\nconst localizedErrorMessage = computed(() => {\n  const code = error.value?.code\n  if (!code)\n    return error.value?.message\n  const key = `auth.errors.${code}`\n  return te(key) ? t(key) : error.value?.message\n})\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Cdiv v-if=\"localizedErrorMessage\" class=\"error\">{{ localizedErrorMessage }}\u003C/div>\n\u003C/template>\n","pages/login.vue","vue",[162,493,494,519,527,542,549,569,595,601,638,650,666,672,697,703,709,715,720,741,767,783,800,825,866,871,881,886,896,933],{"__ignoreMap":191},[195,495,496,500,503,507,510,513,516],{"class":197,"line":198},[195,497,499],{"class":498},"sL9le","\u003C",[195,501,502],{"class":347},"script",[195,504,506],{"class":505},"s0frj"," setup",[195,508,509],{"class":505}," lang",[195,511,512],{"class":351},"=",[195,514,515],{"class":256},"\"ts\"",[195,517,518],{"class":498},">\n",[195,520,521,524],{"class":197,"line":242},[195,522,523],{"class":226},"const",[195,525,277],{"class":526},"sEEOt",[195,528,529,532,535,539],{"class":197,"line":269},[195,530,531],{"class":245},"  execute",[195,533,534],{"class":526},": ",[195,536,538],{"class":537},"s6Rhl","signInWithEmail",[195,540,541],{"class":526},",\n",[195,543,544,547],{"class":197,"line":280},[195,545,546],{"class":537},"  error",[195,548,541],{"class":526},[195,550,551,554,557,560,563,566],{"class":197,"line":300},[195,552,553],{"class":526},"} ",[195,555,512],{"class":556},"sQBpM",[195,558,559],{"class":234}," useSignIn",[195,561,562],{"class":526},"(",[195,564,565],{"class":256},"'email'",[195,567,568],{"class":526},")\n",[195,570,571,573,576,579,581,584,587,589,592],{"class":197,"line":311},[195,572,523],{"class":226},[195,574,575],{"class":526}," { ",[195,577,578],{"class":537},"t",[195,580,260],{"class":526},[195,582,583],{"class":537},"te",[195,585,586],{"class":526}," } ",[195,588,512],{"class":556},[195,590,591],{"class":234}," useI18n",[195,593,594],{"class":526},"()\n",[195,596,597],{"class":197,"line":317},[195,598,600],{"emptyLinePlaceholder":599},true,"\n",[195,602,604,607,610,613,615,619,622,626,628,631,633,635],{"class":197,"line":603},8,[195,605,606],{"class":226},"async",[195,608,609],{"class":226}," function",[195,611,612],{"class":234}," handleLogin",[195,614,562],{"class":526},[195,616,618],{"class":617},"sgisi","email",[195,620,250],{"class":621},"sn-Jc",[195,623,625],{"class":624},"sr8De"," string",[195,627,260],{"class":526},[195,629,630],{"class":617},"password",[195,632,250],{"class":621},[195,634,625],{"class":624},[195,636,637],{"class":526},") {\n",[195,639,641,644,647],{"class":197,"line":640},9,[195,642,643],{"class":226},"  await",[195,645,646],{"class":234}," signInWithEmail",[195,648,649],{"class":526},"(\n",[195,651,653,656,659,661,663],{"class":197,"line":652},10,[195,654,655],{"class":526},"    { ",[195,657,618],{"class":658},"svFNh",[195,660,260],{"class":526},[195,662,630],{"class":658},[195,664,665],{"class":526}," },\n",[195,667,669],{"class":197,"line":668},11,[195,670,671],{"class":526},"    {\n",[195,673,675,678,680,683,686,689,691,694],{"class":197,"line":674},12,[195,676,677],{"class":234},"      onSuccess",[195,679,250],{"class":249},[195,681,682],{"class":526}," () ",[195,684,685],{"class":226},"=>",[195,687,688],{"class":234}," navigateTo",[195,690,562],{"class":526},[195,692,693],{"class":256},"'/app'",[195,695,696],{"class":526},"),\n",[195,698,700],{"class":197,"line":699},13,[195,701,702],{"class":526},"    }\n",[195,704,706],{"class":197,"line":705},14,[195,707,708],{"class":526},"  )\n",[195,710,712],{"class":197,"line":711},15,[195,713,714],{"class":526},"}\n",[195,716,718],{"class":197,"line":717},16,[195,719,600],{"emptyLinePlaceholder":599},[195,721,723,725,728,731,734,737,739],{"class":197,"line":722},17,[195,724,523],{"class":226},[195,726,727],{"class":537}," localizedErrorMessage",[195,729,730],{"class":556}," =",[195,732,733],{"class":234}," computed",[195,735,736],{"class":526},"(() ",[195,738,685],{"class":226},[195,740,277],{"class":526},[195,742,744,747,750,752,755,758,761,764],{"class":197,"line":743},18,[195,745,746],{"class":226},"  const",[195,748,749],{"class":537}," code",[195,751,730],{"class":556},[195,753,754],{"class":658}," error",[195,756,757],{"class":526},".",[195,759,760],{"class":245},"value",[195,762,763],{"class":526},"?.",[195,765,766],{"class":245},"code\n",[195,768,770,773,776,779,781],{"class":197,"line":769},19,[195,771,772],{"class":226},"  if",[195,774,775],{"class":526}," (",[195,777,778],{"class":621},"!",[195,780,162],{"class":658},[195,782,568],{"class":526},[195,784,786,789,791,793,795,797],{"class":197,"line":785},20,[195,787,788],{"class":226},"    return",[195,790,754],{"class":658},[195,792,757],{"class":526},[195,794,760],{"class":245},[195,796,763],{"class":526},[195,798,799],{"class":245},"message\n",[195,801,803,805,808,810,813,817,819,822],{"class":197,"line":802},21,[195,804,746],{"class":226},[195,806,807],{"class":537}," key",[195,809,730],{"class":556},[195,811,812],{"class":256}," `auth.errors.",[195,814,816],{"class":815},"sSSMX","${",[195,818,162],{"class":658},[195,820,821],{"class":815},"}",[195,823,824],{"class":256},"`\n",[195,826,828,831,834,836,839,842,845,848,850,852,854,856,858,860,862,864],{"class":197,"line":827},22,[195,829,830],{"class":226},"  return",[195,832,833],{"class":234}," te",[195,835,562],{"class":526},[195,837,838],{"class":658},"key",[195,840,841],{"class":526},") ",[195,843,844],{"class":621},"?",[195,846,847],{"class":234}," t",[195,849,562],{"class":526},[195,851,838],{"class":658},[195,853,841],{"class":526},[195,855,250],{"class":621},[195,857,754],{"class":658},[195,859,757],{"class":526},[195,861,760],{"class":245},[195,863,763],{"class":526},[195,865,799],{"class":245},[195,867,869],{"class":197,"line":868},23,[195,870,320],{"class":526},[195,872,874,877,879],{"class":197,"line":873},24,[195,875,876],{"class":498},"\u003C/",[195,878,502],{"class":347},[195,880,518],{"class":498},[195,882,884],{"class":197,"line":883},25,[195,885,600],{"emptyLinePlaceholder":599},[195,887,889,891,894],{"class":197,"line":888},26,[195,890,499],{"class":498},[195,892,893],{"class":347},"template",[195,895,518],{"class":498},[195,897,899,902,905,908,910,913,916,918,921,924,927,929,931],{"class":197,"line":898},27,[195,900,901],{"class":498},"  \u003C",[195,903,904],{"class":347},"div",[195,906,907],{"class":505}," v-if",[195,909,512],{"class":351},[195,911,912],{"class":256},"\"localizedErrorMessage\"",[195,914,915],{"class":505}," class",[195,917,512],{"class":351},[195,919,920],{"class":256},"\"error\"",[195,922,923],{"class":498},">",[195,925,926],{"class":526},"{{ localizedErrorMessage }}",[195,928,876],{"class":498},[195,930,904],{"class":347},[195,932,518],{"class":498},[195,934,936,938,940],{"class":197,"line":935},28,[195,937,876],{"class":498},[195,939,893],{"class":347},[195,941,518],{"class":498},[158,943,944,945,948,949,952],{},"This pattern uses typed ",[162,946,947],{},"error.code"," for translation and falls back to ",[162,950,951],{},"error.message"," when no localized key exists.",[173,954,956],{"id":955},"server-side-locale-detection","Server-Side Locale Detection",[158,958,959,960,963,964,967],{},"For auth config callbacks like ",[162,961,962],{},"sendResetPassword",", use ",[162,965,966],{},"@intlify/utils/h3"," to detect the user's locale:",[969,970,971,974,975,977],"note",{},[162,972,973],{},"@intlify/utils"," is installed as a dependency of ",[162,976,164],{},", but you need to import it explicitly in server code.",[186,979,982],{"className":216,"code":980,"filename":981,"language":219,"meta":191,"style":191},"import { tryCookieLocale, tryHeaderLocale } from '@intlify/utils/h3'\nimport { defineServerAuth } from '@onmax/nuxt-better-auth/config'\n\nexport default defineServerAuth(() => ({\n  emailAndPassword: {\n    enabled: true,\n    sendResetPassword: async ({ user, url }, request) => {\n      const locale = tryCookieLocale(request)?.toString()\n        ?? tryHeaderLocale(request)?.toString()\n        ?? 'en'\n\n      // Use locale for email content...\n    }\n  }\n}))\n","server/auth.config.ts",[162,983,984,1007,1023,1027,1043,1052,1065,1098,1123,1141,1147,1151,1157,1161,1165],{"__ignoreMap":191},[195,985,986,989,991,994,996,999,1001,1004],{"class":197,"line":198},[195,987,988],{"class":226},"import",[195,990,575],{"class":238},[195,992,993],{"class":245},"tryCookieLocale",[195,995,260],{"class":238},[195,997,998],{"class":245},"tryHeaderLocale",[195,1000,586],{"class":238},[195,1002,1003],{"class":226},"from",[195,1005,1006],{"class":256}," '@intlify/utils/h3'\n",[195,1008,1009,1011,1013,1016,1018,1020],{"class":197,"line":242},[195,1010,988],{"class":226},[195,1012,575],{"class":238},[195,1014,1015],{"class":245},"defineServerAuth",[195,1017,586],{"class":238},[195,1019,1003],{"class":226},[195,1021,1022],{"class":256}," '@onmax/nuxt-better-auth/config'\n",[195,1024,1025],{"class":197,"line":269},[195,1026,600],{"emptyLinePlaceholder":599},[195,1028,1029,1031,1033,1036,1038,1040],{"class":197,"line":280},[195,1030,227],{"class":226},[195,1032,231],{"class":230},[195,1034,1035],{"class":234}," defineServerAuth",[195,1037,736],{"class":238},[195,1039,685],{"class":226},[195,1041,1042],{"class":238}," ({\n",[195,1044,1045,1048,1050],{"class":197,"line":300},[195,1046,1047],{"class":245},"  emailAndPassword",[195,1049,250],{"class":249},[195,1051,277],{"class":238},[195,1053,1054,1057,1059,1063],{"class":197,"line":311},[195,1055,1056],{"class":245},"    enabled",[195,1058,250],{"class":249},[195,1060,1062],{"class":1061},"s3ZNE"," true",[195,1064,541],{"class":238},[195,1066,1067,1070,1072,1075,1078,1081,1083,1086,1089,1092,1094,1096],{"class":197,"line":317},[195,1068,1069],{"class":234},"    sendResetPassword",[195,1071,250],{"class":249},[195,1073,1074],{"class":226}," async",[195,1076,1077],{"class":238}," ({ ",[195,1079,1080],{"class":617},"user",[195,1082,260],{"class":238},[195,1084,1085],{"class":617},"url",[195,1087,1088],{"class":238}," }, ",[195,1090,1091],{"class":617},"request",[195,1093,841],{"class":238},[195,1095,685],{"class":226},[195,1097,277],{"class":238},[195,1099,1100,1103,1106,1108,1111,1113,1115,1118,1121],{"class":197,"line":603},[195,1101,1102],{"class":226},"      const",[195,1104,1105],{"class":537}," locale",[195,1107,730],{"class":556},[195,1109,1110],{"class":234}," tryCookieLocale",[195,1112,562],{"class":238},[195,1114,1091],{"class":245},[195,1116,1117],{"class":238},")?.",[195,1119,1120],{"class":234},"toString",[195,1122,594],{"class":238},[195,1124,1125,1128,1131,1133,1135,1137,1139],{"class":197,"line":640},[195,1126,1127],{"class":621},"        ??",[195,1129,1130],{"class":234}," tryHeaderLocale",[195,1132,562],{"class":238},[195,1134,1091],{"class":245},[195,1136,1117],{"class":238},[195,1138,1120],{"class":234},[195,1140,594],{"class":238},[195,1142,1143,1145],{"class":197,"line":652},[195,1144,1127],{"class":621},[195,1146,308],{"class":256},[195,1148,1149],{"class":197,"line":668},[195,1150,600],{"emptyLinePlaceholder":599},[195,1152,1153],{"class":197,"line":674},[195,1154,1156],{"class":1155},"st7cf","      // Use locale for email content...\n",[195,1158,1159],{"class":197,"line":699},[195,1160,702],{"class":238},[195,1162,1163],{"class":197,"line":705},[195,1164,314],{"class":238},[195,1166,1167],{"class":197,"line":711},[195,1168,1169],{"class":238},"}))\n",[173,1171,1173],{"id":1172},"error-codes-reference","Error Codes Reference",[1175,1176,1177,1190],"table",{},[1178,1179,1180],"thead",{},[1181,1182,1183,1187],"tr",{},[1184,1185,1186],"th",{},"Code",[1184,1188,1189],{},"Default Message",[1191,1192,1193,1204,1214,1224,1234,1244,1254,1264,1274,1284],"tbody",{},[1181,1194,1195,1201],{},[1196,1197,1198],"td",{},[162,1199,1200],{},"USER_NOT_FOUND",[1196,1202,1203],{},"User not found",[1181,1205,1206,1211],{},[1196,1207,1208],{},[162,1209,1210],{},"INVALID_PASSWORD",[1196,1212,1213],{},"Invalid password",[1181,1215,1216,1221],{},[1196,1217,1218],{},[162,1219,1220],{},"INVALID_EMAIL_OR_PASSWORD",[1196,1222,1223],{},"Invalid email or password",[1181,1225,1226,1231],{},[1196,1227,1228],{},[162,1229,1230],{},"EMAIL_NOT_VERIFIED",[1196,1232,1233],{},"Email not verified",[1181,1235,1236,1241],{},[1196,1237,1238],{},[162,1239,1240],{},"SESSION_EXPIRED",[1196,1242,1243],{},"Session expired",[1181,1245,1246,1251],{},[1196,1247,1248],{},[162,1249,1250],{},"INVALID_TOKEN",[1196,1252,1253],{},"Invalid token",[1181,1255,1256,1261],{},[1196,1257,1258],{},[162,1259,1260],{},"TOKEN_EXPIRED",[1196,1262,1263],{},"Token expired",[1181,1265,1266,1271],{},[1196,1267,1268],{},[162,1269,1270],{},"USER_ALREADY_EXISTS",[1196,1272,1273],{},"User already exists",[1181,1275,1276,1281],{},[1196,1277,1278],{},[162,1279,1280],{},"INVALID_EMAIL",[1196,1282,1283],{},"Invalid email",[1181,1285,1286,1291],{},[1196,1287,1288],{},[162,1289,1290],{},"PASSWORD_TOO_SHORT",[1196,1292,1293],{},"Password too short",[1295,1296,1299,1300,1306],"callout",{"icon":1297,"to":1298},"i-lucide-book","https://www.better-auth.com/docs/concepts/client#error-codes","See ",[1301,1302,1305],"a",{"href":1298,"rel":1303},[1304],"nofollow","Better Auth Error Codes"," for the complete list of error codes.",[1295,1308,1311,1312,1316],{"icon":1309,"to":1310},"i-lucide-globe","https://github.com/better-auth/better-auth-localization","For comprehensive translations, see ",[1301,1313,1315],{"href":1310,"rel":1314},[1304],"better-auth-localization"," plugin with 30+ languages.",[1318,1319,1320],"style",{},"html pre.shiki code .siqUp, html code.shiki .siqUp{--shiki-light:#4078F2;--shiki-default:#FE4450;--shiki-dark:#FE4450}html pre.shiki code .sI3kV, html code.shiki .sI3kV{--shiki-light:#50A14F;--shiki-default:#BBBBBB;--shiki-dark:#BBBBBB}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 .sqe1H, html code.shiki .sqe1H{--shiki-light:#A626A4;--shiki-default:#FEDE5D;--shiki-dark:#FEDE5D}html pre.shiki code .sKg8T, html code.shiki .sKg8T{--shiki-light:#E45649;--shiki-default:#FEDE5D;--shiki-dark:#FEDE5D}html pre.shiki code .sfT9l, html code.shiki .sfT9l{--shiki-light:#4078F2;--shiki-default:#36F9F6;--shiki-dark:#36F9F6}html pre.shiki code .s17Py, html code.shiki .s17Py{--shiki-light:#383A42;--shiki-default:#BBBBBB;--shiki-dark:#BBBBBB}html pre.shiki code .sYvLG, html code.shiki .sYvLG{--shiki-light:#E45649;--shiki-default:#FF7EDB;--shiki-dark:#FF7EDB}html pre.shiki code .sVnqq, html code.shiki .sVnqq{--shiki-light:#0184BC;--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 .stweg, html code.shiki .stweg{--shiki-light:#E45649;--shiki-default:#72F1B8;--shiki-dark:#72F1B8}html pre.shiki code .sNM9w, html code.shiki .sNM9w{--shiki-light:#383A42;--shiki-default:#B6B1B1;--shiki-dark:#B6B1B1}html pre.shiki code .sL9le, html code.shiki .sL9le{--shiki-light:#383A42;--shiki-default:#36F9F6;--shiki-dark:#36F9F6}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 .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 .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 .sSSMX, html code.shiki .sSSMX{--shiki-light:#CA1243;--shiki-default:#72F1B8;--shiki-dark:#72F1B8}html pre.shiki code .s3ZNE, html code.shiki .s3ZNE{--shiki-light:#986801;--shiki-default:#F97E72;--shiki-dark:#F97E72}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}",{"title":191,"searchDepth":242,"depth":242,"links":1322},[1323,1327,1328,1329,1330],{"id":175,"depth":242,"text":176,"children":1324},[1325,1326],{"id":183,"depth":269,"text":184},{"id":212,"depth":269,"text":213},{"id":323,"depth":242,"text":324},{"id":475,"depth":242,"text":476},{"id":955,"depth":242,"text":956},{"id":1172,"depth":242,"text":1173},"Translate authentication errors with @nuxtjs/i18n.","md",null,{},{"title":128,"description":1331},"HoCwQZplx4TQmr3aiI0sPwAcUkqfLaMa29kz-0ZD9rE",[1338,1340],{"title":124,"path":125,"stem":126,"description":1339,"children":-1},"Current status of Convex integration in this module.",{"title":137,"path":138,"stem":139,"description":1341,"children":-1},"API reference for client-side composables.",1777450762371]