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