[{"data":1,"prerenderedAt":1358},["ShallowReactive",2],{"navigation":3,"\u002Freference\u002Fapi":178,"\u002Freference\u002Fapi-surround":1353},[4,23,78,95,123,143,158],{"title":5,"path":6,"stem":7,"children":8,"icon":22},"Getting Started","\u002Fgetting-started","1.getting-started\u002F1.index",[9,12,17],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-house",{"title":13,"path":14,"stem":15,"icon":16},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":18,"path":19,"stem":20,"icon":21},"Configuration","\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F3.configuration","i-lucide-settings",false,{"title":24,"icon":22,"path":25,"stem":26,"children":27,"page":22},"Sign-in","\u002Fsign-in","2.sign-in",[28,33,38,43,48,53,58,63,68,73],{"title":29,"path":30,"stem":31,"icon":32},"Sign-in pages","\u002Fsign-in\u002Fpages","2.sign-in\u002F1.pages","i-lucide-log-in",{"title":34,"path":35,"stem":36,"icon":37},"Several accounts","\u002Fsign-in\u002Fmulti-session","2.sign-in\u002F10.multi-session","i-lucide-users-round",{"title":39,"path":40,"stem":41,"icon":42},"Account page","\u002Fsign-in\u002Faccount","2.sign-in\u002F2.account","i-lucide-circle-user",{"title":44,"path":45,"stem":46,"icon":47},"Other methods","\u002Fsign-in\u002Fmethods","2.sign-in\u002F3.methods","i-lucide-key-square",{"title":49,"path":50,"stem":51,"icon":52},"Sign-in providers","\u002Fsign-in\u002Fproviders","2.sign-in\u002F4.providers","i-lucide-share-2",{"title":54,"path":55,"stem":56,"icon":57},"Two-factor","\u002Fsign-in\u002Ftwo-factor","2.sign-in\u002F5.two-factor","i-lucide-shield-check",{"title":59,"path":60,"stem":61,"icon":62},"Passkeys","\u002Fsign-in\u002Fpasskeys","2.sign-in\u002F6.passkeys","i-lucide-fingerprint",{"title":64,"path":65,"stem":66,"icon":67},"Phone numbers","\u002Fsign-in\u002Fphone-numbers","2.sign-in\u002F7.phone-numbers","i-lucide-smartphone",{"title":69,"path":70,"stem":71,"icon":72},"Signing in devices","\u002Fsign-in\u002Fdevices","2.sign-in\u002F8.devices","i-lucide-tv",{"title":74,"path":75,"stem":76,"icon":77},"Security","\u002Fsign-in\u002Fsecurity","2.sign-in\u002F9.security","i-lucide-lock-keyhole",{"title":79,"path":80,"stem":81,"children":82,"icon":22},"Organizations","\u002Forganizations","3.organizations\u002F1.index",[83,85,90],{"title":79,"path":80,"stem":81,"icon":84},"i-lucide-building-2",{"title":86,"path":87,"stem":88,"icon":89},"Roles","\u002Forganizations\u002Froles","3.organizations\u002F2.roles","i-lucide-shield",{"title":91,"path":92,"stem":93,"icon":94},"Single sign-on","\u002Forganizations\u002Fsso","3.organizations\u002F3.sso","i-lucide-key-round",{"title":96,"path":97,"stem":98,"children":99,"icon":22},"Admin dashboard","\u002Fadmin","4.admin\u002F1.index",[100,103,108,113,118],{"title":101,"path":97,"stem":98,"icon":102},"Overview","i-lucide-layout-dashboard",{"title":104,"path":105,"stem":106,"icon":107},"Managing users","\u002Fadmin\u002Fusers","4.admin\u002F2.users","i-lucide-user-cog",{"title":109,"path":110,"stem":111,"icon":112},"Staff roles","\u002Fadmin\u002Froles","4.admin\u002F3.roles","i-lucide-shield-user",{"title":114,"path":115,"stem":116,"icon":117},"Audit log","\u002Fadmin\u002Faudit-log","4.admin\u002F4.audit-log","i-lucide-history",{"title":119,"path":120,"stem":121,"icon":122},"Your own pages","\u002Fadmin\u002Fextending","4.admin\u002F5.extending","i-lucide-layout-panel-left",{"title":124,"icon":22,"path":125,"stem":126,"children":127,"page":22},"Integrations","\u002Fintegrations","5.integrations",[128,133,138],{"title":129,"path":130,"stem":131,"icon":132},"Stripe","\u002Fintegrations\u002Fstripe","5.integrations\u002F1.stripe","i-simple-icons-stripe",{"title":134,"path":135,"stem":136,"icon":137},"API keys","\u002Fintegrations\u002Fapi-keys","5.integrations\u002F2.api-keys","i-lucide-key",{"title":139,"path":140,"stem":141,"icon":142},"Tokens","\u002Fintegrations\u002Ftokens","5.integrations\u002F3.tokens","i-lucide-ticket",{"title":144,"icon":22,"path":145,"stem":146,"children":147,"page":22},"Customization","\u002Fcustomization","6.customization",[148,153],{"title":149,"path":150,"stem":151,"icon":152},"Emails","\u002Fcustomization\u002Femails","6.customization\u002F1.emails","i-lucide-mail",{"title":154,"path":155,"stem":156,"icon":157},"Languages","\u002Fcustomization\u002Flanguages","6.customization\u002F2.languages","i-lucide-languages",{"title":159,"icon":22,"path":160,"stem":161,"children":162,"page":22},"Reference","\u002Freference","7.reference",[163,168,173],{"title":164,"path":165,"stem":166,"icon":167},"How it works","\u002Freference\u002Fhow-it-works","7.reference\u002F1.how-it-works","i-lucide-cog",{"title":169,"path":170,"stem":171,"icon":172},"API reference","\u002Freference\u002Fapi","7.reference\u002F2.api","i-lucide-braces",{"title":174,"path":175,"stem":176,"icon":177},"Contributing","\u002Freference\u002Fcontributing","7.reference\u002F3.contributing","i-lucide-git-pull-request",{"id":179,"title":169,"body":180,"description":1346,"extension":1347,"links":1348,"meta":1349,"navigation":1350,"path":170,"seo":1351,"stem":171,"__hash__":1352},"docs\u002F7.reference\u002F2.api.md",{"type":181,"value":182,"toc":1322},"minimark",[183,187,192,200,212,269,275,280,327,330,336,347,372,378,393,399,402,466,472,481,547,553,561,614,620,623,662,666,723,734,738,744,839,843,847,853,859,862,920,926,933,1027,1031,1034,1040,1044,1123,1129,1156,1162,1166,1204,1208,1211,1309,1318],[184,185,186],"p",{},"Composables, components and server utilities are auto-imported. The rest come from the package's entries.",[188,189,191],"h2",{"id":190},"composables","Composables",[193,194,196],"h3",{"id":195},"useauthactiveorganization",[197,198,199],"code",{},"useAuthActiveOrganization()",[184,201,202,203,206,207],{},"The signed-in user's active organization, server-rendered. It follows the session, so switching organizations\nupdates it. Only with ",[197,204,205],{},"organization"," on. ",[208,209,211],"a",{"href":210},"\u002Forganizations#in-your-app","More",[213,214,219],"pre",{"className":215,"code":216,"language":217,"meta":218,"style":218},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","const { organization, activeTeamId, refresh } = useAuthActiveOrganization()\n\u002F\u002F organization.value: { id, name, slug, logo, members, invitations } | null\n","ts","",[197,220,221,262],{"__ignoreMap":218},[222,223,226,230,234,238,241,244,246,249,252,255,259],"span",{"class":224,"line":225},"line",1,[222,227,229],{"class":228},"spNyl","const",[222,231,233],{"class":232},"sMK4o"," {",[222,235,237],{"class":236},"sTEyZ"," organization",[222,239,240],{"class":232},",",[222,242,243],{"class":236}," activeTeamId",[222,245,240],{"class":232},[222,247,248],{"class":236}," refresh ",[222,250,251],{"class":232},"}",[222,253,254],{"class":232}," =",[222,256,258],{"class":257},"s2Zo4"," useAuthActiveOrganization",[222,260,261],{"class":236},"()\n",[222,263,265],{"class":224,"line":264},2,[222,266,268],{"class":267},"sHwdD","\u002F\u002F organization.value: { id, name, slug, logo, members, invitations } | null\n",[193,270,272],{"id":271},"useauthdeviceaccounts",[197,273,274],{},"useAuthDeviceAccounts()",[184,276,277,278],{},"The accounts signed in on this browser, with Better Auth's Multi Session plugin. Empty without it.\n",[208,279,211],{"href":35},[213,281,283],{"className":215,"code":282,"language":217,"meta":218,"style":218},"const { accounts, switchTo, signOutOf, addAccountLink, refresh } = useAuthDeviceAccounts()\n\u002F\u002F accounts.value: Array\u003C{ token, user: { id, name, email, image }, current }>\n",[197,284,285,322],{"__ignoreMap":218},[222,286,287,289,291,294,296,299,301,304,306,309,311,313,315,317,320],{"class":224,"line":225},[222,288,229],{"class":228},[222,290,233],{"class":232},[222,292,293],{"class":236}," accounts",[222,295,240],{"class":232},[222,297,298],{"class":236}," switchTo",[222,300,240],{"class":232},[222,302,303],{"class":236}," signOutOf",[222,305,240],{"class":232},[222,307,308],{"class":236}," addAccountLink",[222,310,240],{"class":232},[222,312,248],{"class":236},[222,314,251],{"class":232},[222,316,254],{"class":232},[222,318,319],{"class":257}," useAuthDeviceAccounts",[222,321,261],{"class":236},[222,323,324],{"class":224,"line":264},[222,325,326],{"class":267},"\u002F\u002F accounts.value: Array\u003C{ token, user: { id, name, email, image }, current }>\n",[184,328,329],{},"Switching to an account reloads the app, so every page's data is the new account's.",[193,331,333],{"id":332},"useauthpages",[197,334,335],{},"useAuthPages()",[184,337,338,339,342,343,346],{},"Where the module's sign-in and account pages are, as set in ",[197,340,341],{},"pages",". A page you turned off is ",[197,344,345],{},"false",".",[213,348,350],{"className":215,"code":349,"language":217,"meta":218,"style":218},"const pages = useAuthPages()\n\u002F\u002F { signIn: '\u002Flogin', signUp: '\u002Fsignup', account: '\u002Faccount', … }\n",[197,351,352,367],{"__ignoreMap":218},[222,353,354,356,359,362,365],{"class":224,"line":225},[222,355,229],{"class":228},[222,357,358],{"class":236}," pages ",[222,360,361],{"class":232},"=",[222,363,364],{"class":257}," useAuthPages",[222,366,261],{"class":236},[222,368,369],{"class":224,"line":264},[222,370,371],{"class":267},"\u002F\u002F { signIn: '\u002Flogin', signUp: '\u002Fsignup', account: '\u002Faccount', … }\n",[193,373,375],{"id":374},"useauthredirecttarget",[197,376,377],{},"useAuthRedirectTarget()",[184,379,380,381,384,385,388,389,392],{},"Where to go after signing in, as @nuxtjs\u002Fbetter-auth decides it: its ",[197,382,383],{},"?redirect=",", else its\n",[197,386,387],{},"redirects.authenticated",", else ",[197,390,391],{},"\u002F",". Only ever a path on your own site.",[193,394,396],{"id":395},"useauthcapabilities",[197,397,398],{},"useAuthCapabilities()",[184,400,401],{},"What your Better Auth set-up offers: the sign-in methods, providers and plugins that are on. Fetched once per page\nload, during server rendering.",[213,403,405],{"className":215,"code":404,"language":217,"meta":218,"style":218},"const { capabilities, loaded } = useAuthCapabilities()\nif ((await loaded)?.passkey) {\n  \u002F\u002F …\n}\n",[197,406,407,430,454,460],{"__ignoreMap":218},[222,408,409,411,413,416,418,421,423,425,428],{"class":224,"line":225},[222,410,229],{"class":228},[222,412,233],{"class":232},[222,414,415],{"class":236}," capabilities",[222,417,240],{"class":232},[222,419,420],{"class":236}," loaded ",[222,422,251],{"class":232},[222,424,254],{"class":232},[222,426,427],{"class":257}," useAuthCapabilities",[222,429,261],{"class":236},[222,431,432,436,439,442,445,448,451],{"class":224,"line":264},[222,433,435],{"class":434},"s7zQu","if",[222,437,438],{"class":236}," ((",[222,440,441],{"class":434},"await",[222,443,444],{"class":236}," loaded)",[222,446,447],{"class":232},"?.",[222,449,450],{"class":236},"passkey) ",[222,452,453],{"class":232},"{\n",[222,455,457],{"class":224,"line":456},3,[222,458,459],{"class":267},"  \u002F\u002F …\n",[222,461,463],{"class":224,"line":462},4,[222,464,465],{"class":232},"}\n",[193,467,469],{"id":468},"useauthi18n",[197,470,471],{},"useAuthI18n()",[184,473,474,475,478,479],{},"The module's words, in the current language, with your own from ",[197,476,477],{},"messages",". ",[208,480,211],{"href":155},[213,482,484],{"className":215,"code":483,"language":217,"meta":218,"style":218},"const { t, locale, errorMessage } = useAuthI18n()\nt('signIn.title')\n\u002F\u002F An error's words: translated by its code when there's a translation, else its own message.\nerrorMessage(error)\n",[197,485,486,514,534,539],{"__ignoreMap":218},[222,487,488,490,492,495,497,500,502,505,507,509,512],{"class":224,"line":225},[222,489,229],{"class":228},[222,491,233],{"class":232},[222,493,494],{"class":236}," t",[222,496,240],{"class":232},[222,498,499],{"class":236}," locale",[222,501,240],{"class":232},[222,503,504],{"class":236}," errorMessage ",[222,506,251],{"class":232},[222,508,254],{"class":232},[222,510,511],{"class":257}," useAuthI18n",[222,513,261],{"class":236},[222,515,516,519,522,525,529,531],{"class":224,"line":264},[222,517,518],{"class":257},"t",[222,520,521],{"class":236},"(",[222,523,524],{"class":232},"'",[222,526,528],{"class":527},"sfazB","signIn.title",[222,530,524],{"class":232},[222,532,533],{"class":236},")\n",[222,535,536],{"class":224,"line":456},[222,537,538],{"class":267},"\u002F\u002F An error's words: translated by its code when there's a translation, else its own message.\n",[222,540,541,544],{"class":224,"line":462},[222,542,543],{"class":257},"errorMessage",[222,545,546],{"class":236},"(error)\n",[193,548,550],{"id":549},"usebetterauthadmincan",[197,551,552],{},"useBetterAuthAdminCan()",[184,554,555,556,560],{},"Whether the signed-in user's role allows these ",[208,557,559],{"href":558},"\u002Fadmin\u002Froles#permissions","Better Auth Admin permissions",", checked\nwith the same roles as the server. Admin dashboard only.",[213,562,564],{"className":215,"code":563,"language":217,"meta":218,"style":218},"const can = useBetterAuthAdminCan()\ncan({ user: ['ban'] })\n",[197,565,566,580],{"__ignoreMap":218},[222,567,568,570,573,575,578],{"class":224,"line":225},[222,569,229],{"class":228},[222,571,572],{"class":236}," can ",[222,574,361],{"class":232},[222,576,577],{"class":257}," useBetterAuthAdminCan",[222,579,261],{"class":236},[222,581,582,585,587,590,594,597,600,602,605,607,610,612],{"class":224,"line":264},[222,583,584],{"class":257},"can",[222,586,521],{"class":236},[222,588,589],{"class":232},"{",[222,591,593],{"class":592},"swJcz"," user",[222,595,596],{"class":232},":",[222,598,599],{"class":236}," [",[222,601,524],{"class":232},[222,603,604],{"class":527},"ban",[222,606,524],{"class":232},[222,608,609],{"class":236},"] ",[222,611,251],{"class":232},[222,613,533],{"class":236},[193,615,617],{"id":616},"usebetterauthadminpath",[197,618,619],{},"useBetterAuthAdminPath()",[184,621,622],{},"Turns a path into a URL under the admin route. Admin dashboard only.",[213,624,626],{"className":215,"code":625,"language":217,"meta":218,"style":218},"const adminPath = useBetterAuthAdminPath()\nadminPath('\u002Fusers') \u002F\u002F '\u002Fadmin\u002Fusers'\n",[197,627,628,642],{"__ignoreMap":218},[222,629,630,632,635,637,640],{"class":224,"line":225},[222,631,229],{"class":228},[222,633,634],{"class":236}," adminPath ",[222,636,361],{"class":232},[222,638,639],{"class":257}," useBetterAuthAdminPath",[222,641,261],{"class":236},[222,643,644,647,649,651,654,656,659],{"class":224,"line":264},[222,645,646],{"class":257},"adminPath",[222,648,521],{"class":236},[222,650,524],{"class":232},[222,652,653],{"class":527},"\u002Fusers",[222,655,524],{"class":232},[222,657,658],{"class":236},") ",[222,660,661],{"class":267},"\u002F\u002F '\u002Fadmin\u002Fusers'\n",[188,663,665],{"id":664},"components","Components",[667,668,669,681],"table",{},[670,671,672],"thead",{},[673,674,675,679],"tr",{},[676,677,678],"th",{},"Component",[676,680],{},[682,683,684,697,711],"tbody",{},[673,685,686,692],{},[687,688,689],"td",{},[197,690,691],{},"\u003CAuthAccountSwitcher \u002F>",[687,693,694,695],{},"The accounts signed in on this browser, to switch between, sign out of, or add to. Shows nothing without multi-session. ",[208,696,211],{"href":35},[673,698,699,704],{},[687,700,701],{},[197,702,703],{},"\u003CAuthOrganizationSwitcher \u002F>",[687,705,706,707,206,709],{},"The active organization and team, to switch between. Only with ",[197,708,205],{},[208,710,211],{"href":210},[673,712,713,718],{},[687,714,715],{},[197,716,717],{},"\u003CAdminImpersonationBanner \u002F>",[687,719,720,721],{},"\"You're signed in as …\" while staff impersonate someone, with the way back. Only with the admin dashboard on. ",[208,722,211],{"href":105},[184,724,725,726,729,730,733],{},"The module's own pages use components prefixed ",[197,727,728],{},"BetterAuthUi",", and composables prefixed ",[197,731,732],{},"useBetterAuthAdmin"," besides\nthe two above. They're not for your app and may change in any release.",[188,735,737],{"id":736},"page-meta","Page meta",[184,739,740,743],{},[197,741,742],{},"betterAuthAdmin"," adds your own page under the admin route to the dashboard's sidebar and search:",[213,745,747],{"className":215,"code":746,"language":217,"meta":218,"style":218},"definePageMeta({\n  betterAuthAdmin: { label: 'Reports', icon: 'i-lucide-chart-bar', permissions: { user: ['list'] }, order: 0 }\n})\n",[197,748,749,758,833],{"__ignoreMap":218},[222,750,751,754,756],{"class":224,"line":225},[222,752,753],{"class":257},"definePageMeta",[222,755,521],{"class":236},[222,757,453],{"class":232},[222,759,760,763,765,767,770,772,775,778,780,782,785,787,789,792,794,796,799,801,803,805,807,809,811,814,816,818,821,824,826,830],{"class":224,"line":264},[222,761,762],{"class":592},"  betterAuthAdmin",[222,764,596],{"class":232},[222,766,233],{"class":232},[222,768,769],{"class":592}," label",[222,771,596],{"class":232},[222,773,774],{"class":232}," '",[222,776,777],{"class":527},"Reports",[222,779,524],{"class":232},[222,781,240],{"class":232},[222,783,784],{"class":592}," icon",[222,786,596],{"class":232},[222,788,774],{"class":232},[222,790,791],{"class":527},"i-lucide-chart-bar",[222,793,524],{"class":232},[222,795,240],{"class":232},[222,797,798],{"class":592}," permissions",[222,800,596],{"class":232},[222,802,233],{"class":232},[222,804,593],{"class":592},[222,806,596],{"class":232},[222,808,599],{"class":236},[222,810,524],{"class":232},[222,812,813],{"class":527},"list",[222,815,524],{"class":232},[222,817,609],{"class":236},[222,819,820],{"class":232},"},",[222,822,823],{"class":592}," order",[222,825,596],{"class":232},[222,827,829],{"class":828},"sbssI"," 0",[222,831,832],{"class":232}," }\n",[222,834,835,837],{"class":224,"line":456},[222,836,251],{"class":232},[222,838,533],{"class":236},[184,840,841],{},[208,842,211],{"href":120},[188,844,846],{"id":845},"server-utilities","Server utilities",[184,848,849,850],{},"Auto-imported in your server routes, with the admin dashboard on. ",[208,851,211],{"href":852},"\u002Fadmin\u002Fextending#api-routes",[193,854,856],{"id":855},"requirebetterauthadminevent-permissions",[197,857,858],{},"requireBetterAuthAdmin(event, permissions)",[184,860,861],{},"Requires a signed-in user whose role has the Better Auth Admin permissions: a 401 when signed out, a 403 without\nthem. Returns the user, Better Auth's context and its instance.",[213,863,865],{"className":215,"code":864,"language":217,"meta":218,"style":218},"const { user, context, auth } = await requireBetterAuthAdmin(event, { user: ['list'] })\n",[197,866,867],{"__ignoreMap":218},[222,868,869,871,873,875,877,880,882,885,887,889,892,895,898,900,902,904,906,908,910,912,914,916,918],{"class":224,"line":225},[222,870,229],{"class":228},[222,872,233],{"class":232},[222,874,593],{"class":236},[222,876,240],{"class":232},[222,878,879],{"class":236}," context",[222,881,240],{"class":232},[222,883,884],{"class":236}," auth ",[222,886,251],{"class":232},[222,888,254],{"class":232},[222,890,891],{"class":434}," await",[222,893,894],{"class":257}," requireBetterAuthAdmin",[222,896,897],{"class":236},"(event",[222,899,240],{"class":232},[222,901,233],{"class":232},[222,903,593],{"class":592},[222,905,596],{"class":232},[222,907,599],{"class":236},[222,909,524],{"class":232},[222,911,813],{"class":527},[222,913,524],{"class":232},[222,915,609],{"class":236},[222,917,251],{"class":232},[222,919,533],{"class":236},[193,921,923],{"id":922},"recordbetterauthadminactionevent-context-entry",[197,924,925],{},"recordBetterAuthAdminAction(event, context, entry)",[184,927,928,929,932],{},"Adds an entry to the ",[208,930,931],{"href":115},"audit log",", with the request's IP and browser. Does nothing with the audit log\noff, and never throws.",[213,934,936],{"className":215,"code":935,"language":217,"meta":218,"style":218},"await recordBetterAuthAdminAction(event, context, {\n  action: 'report.export',\n  actor: user,\n  \u002F\u002F Who it was done to, if anyone.\n  target: null,\n  details: { rows: 120 }\n})\n",[197,937,938,956,973,984,989,1000,1020],{"__ignoreMap":218},[222,939,940,942,945,947,949,951,953],{"class":224,"line":225},[222,941,441],{"class":434},[222,943,944],{"class":257}," recordBetterAuthAdminAction",[222,946,897],{"class":236},[222,948,240],{"class":232},[222,950,879],{"class":236},[222,952,240],{"class":232},[222,954,955],{"class":232}," {\n",[222,957,958,961,963,965,968,970],{"class":224,"line":264},[222,959,960],{"class":592},"  action",[222,962,596],{"class":232},[222,964,774],{"class":232},[222,966,967],{"class":527},"report.export",[222,969,524],{"class":232},[222,971,972],{"class":232},",\n",[222,974,975,978,980,982],{"class":224,"line":456},[222,976,977],{"class":592},"  actor",[222,979,596],{"class":232},[222,981,593],{"class":236},[222,983,972],{"class":232},[222,985,986],{"class":224,"line":462},[222,987,988],{"class":267},"  \u002F\u002F Who it was done to, if anyone.\n",[222,990,992,995,997],{"class":224,"line":991},5,[222,993,994],{"class":592},"  target",[222,996,596],{"class":232},[222,998,999],{"class":232}," null,\n",[222,1001,1003,1006,1008,1010,1013,1015,1018],{"class":224,"line":1002},6,[222,1004,1005],{"class":592},"  details",[222,1007,596],{"class":232},[222,1009,233],{"class":232},[222,1011,1012],{"class":592}," rows",[222,1014,596],{"class":232},[222,1016,1017],{"class":828}," 120",[222,1019,832],{"class":232},[222,1021,1023,1025],{"class":224,"line":1022},7,[222,1024,251],{"class":232},[222,1026,533],{"class":236},[188,1028,1030],{"id":1029},"package-entries","Package entries",[184,1032,1033],{},"For files the module loads, and your Better Auth config.",[193,1035,1037],{"id":1036},"treygrrnuxt-better-auth-uiemails",[197,1038,1039],{},"@treygrr\u002Fnuxt-better-auth-ui\u002Femails",[184,1041,1042],{},[208,1043,211],{"href":150},[667,1045,1046,1055],{},[670,1047,1048],{},[673,1049,1050,1053],{},[676,1051,1052],{},"Export",[676,1054],{},[682,1056,1057,1070,1087,1113],{},[673,1058,1059,1064],{},[687,1060,1061],{},[197,1062,1063],{},"defineBetterAuthEmailSender(send)",[687,1065,1066,1067,346],{},"Your function that delivers emails, for ",[197,1068,1069],{},"emails.send",[673,1071,1072,1077],{},[687,1073,1074],{},[197,1075,1076],{},"defineBetterAuthEmail(name, render)",[687,1078,1079,1080,1083,1084,346],{},"A template for one email, for ",[197,1081,1082],{},"emails.templates",". Returns HTML, or ",[197,1085,1086],{},"{ subject, html, text }",[673,1088,1089,1094],{},[687,1090,1091],{},[197,1092,1093],{},"betterAuthEmails",[687,1095,1096,1097,1100,1101,1100,1104,1100,1107,1100,1110,346],{},"Ready-made callbacks for Better Auth's email options: ",[197,1098,1099],{},"verifyEmail",", ",[197,1102,1103],{},"resetPassword",[197,1105,1106],{},"existingUserSignUp",[197,1108,1109],{},"changeEmailConfirmation",[197,1111,1112],{},"deleteAccount",[673,1114,1115,1120],{},[687,1116,1117],{},[197,1118,1119],{},"renderEmail(name, data, template?, locale?)",[687,1121,1122],{},"Renders an email as the module would send it: your template, else the default in that language.",[193,1124,1126],{"id":1125},"treygrrnuxt-better-auth-uisms",[197,1127,1128],{},"@treygrr\u002Fnuxt-better-auth-ui\u002Fsms",[667,1130,1131,1139],{},[670,1132,1133],{},[673,1134,1135,1137],{},[676,1136,1052],{},[676,1138],{},[682,1140,1141],{},[673,1142,1143,1148],{},[687,1144,1145],{},[197,1146,1147],{},"defineBetterAuthSmsSender(send)",[687,1149,1150,1151,478,1154],{},"Your function that delivers texts, for ",[197,1152,1153],{},"sms.send",[208,1155,211],{"href":65},[193,1157,1159],{"id":1158},"treygrrnuxt-better-auth-uiproviders",[197,1160,1161],{},"@treygrr\u002Fnuxt-better-auth-ui\u002Fproviders",[184,1163,1164],{},[208,1165,211],{"href":50},[667,1167,1168,1176],{},[670,1169,1170],{},[673,1171,1172,1174],{},[676,1173,1052],{},[676,1175],{},[682,1177,1178,1191],{},[673,1179,1180,1188],{},[687,1181,1182,1100,1185],{},[197,1183,1184],{},"epicGames(options)",[197,1186,1187],{},"battleNet(options)",[687,1189,1190],{},"Generic OAuth configs for providers Better Auth has no helper for.",[673,1192,1193,1201],{},[687,1194,1195,1100,1198],{},[197,1196,1197],{},"placeholderEmail(providerId, accountId)",[197,1199,1200],{},"isPlaceholderEmail(email)",[687,1202,1203],{},"The stand-in address for accounts whose provider shares no email.",[188,1205,1207],{"id":1206},"hooks","Hooks",[184,1209,1210],{},"The module adds Better Auth's plugins itself, so their function options go in files of yours, which it loads:",[667,1212,1213,1223],{},[670,1214,1215],{},[673,1216,1217,1220],{},[676,1218,1219],{},"Option",[676,1221,1222],{},"The file's default export",[682,1224,1225,1236,1248,1259,1276,1292],{},[673,1226,1227,1231],{},[687,1228,1229],{},[197,1230,1069],{},[687,1232,1233,1234],{},"Your email sender. ",[208,1235,211],{"href":150},[673,1237,1238,1242],{},[687,1239,1240],{},[197,1241,1082],{},[687,1243,1244,1245],{},"One template per email. ",[208,1246,211],{"href":1247},"\u002Fcustomization\u002Femails#your-own-templates",[673,1249,1250,1254],{},[687,1251,1252],{},[197,1253,1153],{},[687,1255,1256,1257],{},"Your text sender. ",[208,1258,211],{"href":65},[673,1260,1261,1266],{},[687,1262,1263],{},[197,1264,1265],{},"anonymous.onLinkAccount",[687,1267,1268,1269,1272,1273],{},"Better Auth's ",[197,1270,1271],{},"onLinkAccount",", to move a guest's data to their new account. ",[208,1274,211],{"href":1275},"\u002Fsign-in\u002Fmethods#moving-a-guests-data",[673,1277,1278,1283],{},[687,1279,1280],{},[197,1281,1282],{},"organization.serverOptions",[687,1284,1285,1286,478,1289],{},"More of the Organization plugin's options, such as ",[197,1287,1288],{},"organizationHooks",[208,1290,211],{"href":1291},"\u002Forganizations#options-that-are-functions",[673,1293,1294,1299],{},[687,1295,1296],{},[197,1297,1298],{},"sso.serverOptions",[687,1300,1301,1302,1305,1306],{},"More of the SSO plugin's options, such as ",[197,1303,1304],{},"getRole"," for who joins as what. ",[208,1307,211],{"href":1308},"\u002Forganizations\u002Fsso#who-joins-as-what",[184,1310,1311,1312,1100,1315,1317],{},"Better Auth's own hooks (",[197,1313,1314],{},"databaseHooks",[197,1316,1206],{},") go in your Better Auth config, as usual.",[1319,1320,1321],"style",{},"html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}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 .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":218,"searchDepth":225,"depth":264,"links":1323},[1324,1334,1335,1336,1340,1345],{"id":190,"depth":264,"text":191,"children":1325},[1326,1327,1328,1329,1330,1331,1332,1333],{"id":195,"depth":456,"text":199},{"id":271,"depth":456,"text":274},{"id":332,"depth":456,"text":335},{"id":374,"depth":456,"text":377},{"id":395,"depth":456,"text":398},{"id":468,"depth":456,"text":471},{"id":549,"depth":456,"text":552},{"id":616,"depth":456,"text":619},{"id":664,"depth":264,"text":665},{"id":736,"depth":264,"text":737},{"id":845,"depth":264,"text":846,"children":1337},[1338,1339],{"id":855,"depth":456,"text":858},{"id":922,"depth":456,"text":925},{"id":1029,"depth":264,"text":1030,"children":1341},[1342,1343,1344],{"id":1036,"depth":456,"text":1039},{"id":1125,"depth":456,"text":1128},{"id":1158,"depth":456,"text":1161},{"id":1206,"depth":264,"text":1207},"Every composable, component, utility and hook the module gives your app.","md",null,{},{"icon":172},{"title":169,"description":1346},"YpbPoe7ti-sR3-xFl-SvdGhj8wx49n4UkxrWt3Hv3a8",[1354,1356],{"title":164,"path":165,"stem":166,"description":1355,"icon":167,"children":-1},"How the module fits into Better Auth and your Nuxt app.",{"title":174,"path":175,"stem":176,"description":1357,"icon":177,"children":-1},"Set up the repository, run the playground and tests, and add a feature the way the module does.",1793019845254]