[{"data":1,"prerenderedAt":3430},["ShallowReactive",2],{"navigation":3,"\u002Fadvanced\u002Fmodule-aliases":170,"\u002Fadvanced\u002Fmodule-aliases-surround":3425},[4,18,43,75,103,120,134],{"title":5,"path":6,"stem":7,"children":8,"icon":17},"Getting Started","\u002Fgetting-started","1.getting-started\u002F1.index",[9,12],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-simple-icons-laravel",{"title":13,"path":14,"stem":15,"icon":16},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",false,{"title":19,"path":20,"stem":21,"children":22,"page":17},"Sanctum","\u002Fsanctum","2.sanctum",[23,28,33,38],{"title":24,"path":25,"stem":26,"icon":27},"Configuration","\u002Fsanctum\u002Fconfiguration","2.sanctum\u002F1.configuration","i-lucide-cog",{"title":29,"path":30,"stem":31,"icon":32},"Cookie Authentication","\u002Fsanctum\u002Fcookie","2.sanctum\u002F2.cookie","i-lucide-cookie",{"title":34,"path":35,"stem":36,"icon":37},"Sanctum 2FA Flow","\u002Fsanctum\u002Ftwo-factor","2.sanctum\u002F3.two-factor","i-lucide-shield-check",{"title":39,"path":40,"stem":41,"icon":42},"Server Proxy","\u002Fsanctum\u002Fproxy","2.sanctum\u002F4.proxy","i-lucide-waypoints",{"title":44,"path":45,"stem":46,"children":47,"page":17},"Passport","\u002Fpassport","3.passport",[48,51,56,61,66,70],{"title":24,"path":49,"stem":50,"icon":27},"\u002Fpassport\u002Fconfiguration","3.passport\u002F1.configuration",{"title":52,"path":53,"stem":54,"icon":55},"Login & Logout","\u002Fpassport\u002Flogin-logout","3.passport\u002F2.login-logout","i-lucide-log-in",{"title":57,"path":58,"stem":59,"icon":60},"Token Management","\u002Fpassport\u002Ftokens","3.passport\u002F3.tokens","i-lucide-key",{"title":62,"path":63,"stem":64,"icon":65},"Two-Factor Authentication","\u002Fpassport\u002Ftwo-factor","3.passport\u002F4.two-factor","i-lucide-shield",{"title":67,"path":68,"stem":69,"icon":37},"Middleware & Route Protection","\u002Fpassport\u002Fmiddleware","3.passport\u002F5.middleware",{"title":71,"path":72,"stem":73,"icon":74},"Examples & Use Cases","\u002Fpassport\u002Fexamples","3.passport\u002F6.examples","i-lucide-code",{"title":76,"path":77,"stem":78,"children":79,"page":17},"Composables","\u002Fcomposables","4.composables",[80,84,89,94,99],{"title":76,"path":81,"stem":82,"icon":83},"\u002Fcomposables\u002Fcomposables","4.composables\u002F1.composables","i-lucide-code-2",{"title":85,"path":86,"stem":87,"icon":88},"$autx","\u002Fcomposables\u002Fautx","4.composables\u002F2.autx","i-lucide-globe",{"title":90,"path":91,"stem":92,"icon":93},"useAuthConfig","\u002Fcomposables\u002Fuse-auth-config","4.composables\u002F3.use-auth-config","i-lucide-settings",{"title":95,"path":96,"stem":97,"icon":98},"useAuthStore","\u002Fcomposables\u002Fuse-auth-store","4.composables\u002F4.use-auth-store","i-lucide-database",{"title":100,"path":101,"stem":102,"icon":37},"useEnsureCsrf","\u002Fcomposables\u002Fuse-ensure-csrf","4.composables\u002F5.use-ensure-csrf",{"title":104,"path":105,"stem":106,"children":107,"page":17},"Middleware","\u002Fmiddleware","5.middleware",[108,111,116],{"title":104,"path":109,"stem":110,"icon":37},"\u002Fmiddleware\u002Fmiddleware","5.middleware\u002F1.middleware",{"title":112,"path":113,"stem":114,"icon":115},"auth","\u002Fmiddleware\u002Fauth","5.middleware\u002F2.auth","i-lucide-lock",{"title":117,"path":118,"stem":119,"icon":65},"two-factor","\u002Fmiddleware\u002Ftwo-factor","5.middleware\u002F3.two-factor",{"title":121,"path":122,"stem":123,"children":124,"page":17},"Hooks","\u002Fhooks","6.hooks",[125,129],{"title":121,"path":126,"stem":127,"icon":128},"\u002Fhooks\u002Fhooks","6.hooks\u002F1.hooks","i-lucide-webhook",{"title":130,"path":131,"stem":132,"icon":133},"prepare:types","\u002Fhooks\u002Fprepare-types","6.hooks\u002F2.prepare-types","i-lucide-file-code",{"title":135,"path":136,"stem":137,"children":138,"page":17},"Advanced","\u002Fadvanced","7.advanced",[139,143,148,152,156,161,165],{"title":135,"path":140,"stem":141,"icon":142},"\u002Fadvanced\u002Fadvanced","7.advanced\u002F1.advanced","i-lucide-settings-2",{"title":144,"path":145,"stem":146,"icon":147},"Custom Configuration","\u002Fadvanced\u002Fcustom-configuration","7.advanced\u002F2.custom-configuration","i-lucide-sliders",{"title":149,"path":150,"stem":151,"icon":32},"Cookie Configuration","\u002Fadvanced\u002Fcookie-configuration","7.advanced\u002F3.cookie-configuration",{"title":153,"path":154,"stem":155,"icon":133},"TypeScript Integration","\u002Fadvanced\u002Ftypescript-integration","7.advanced\u002F4.typescript-integration",{"title":157,"path":158,"stem":159,"icon":160},"Module Aliases","\u002Fadvanced\u002Fmodule-aliases","7.advanced\u002F5.module-aliases","i-lucide-square-library",{"title":162,"path":163,"stem":164,"icon":37},"Security Features","\u002Fadvanced\u002Fsecurity-features","7.advanced\u002F6.security-features",{"title":166,"path":167,"stem":168,"icon":169},"Runtime Configuration","\u002Fadvanced\u002Fruntime-configuration","7.advanced\u002F7.runtime-configuration","i-lucide-server",{"id":171,"title":157,"body":172,"description":3418,"extension":3419,"links":3420,"meta":3421,"navigation":3422,"path":158,"seo":3423,"stem":159,"__hash__":3424},"docs\u002F7.advanced\u002F5.module-aliases.md",{"type":173,"value":174,"toc":3373},"minimark",[175,188,193,196,215,218,222,226,232,249,252,257,267,271,275,342,346,349,354,404,408,444,448,452,653,657,775,779,900,904,908,940,944,948,996,1000,1120,1124,1172,1176,1180,1310,1314,1594,1598,1726,1730,1733,1737,1801,1805,1868,1872,1876,1973,1977,2014,2018,2076,2080,2117,2121,2125,2455,2459,2716,2720,2846,2850,2853,3055,3059,3063,3066,3085,3089,3092,3149,3153,3156,3167,3171,3203,3207,3210,3214,3259,3263,3306,3310,3313,3330,3334,3337,3369],[176,177,178,179,183,184,187],"p",{},"Learn how to use Nuxt Umbu's module aliases (",[180,181,182],"code",{},"#auth-utils"," and ",[180,185,186],{},"#auth-types",") for clean, type-safe imports throughout your application.",[189,190,192],"h2",{"id":191},"overview","Overview",[176,194,195],{},"Nuxt Umbu provides two module aliases that simplify imports and provide full TypeScript support:",[197,198,199,208],"ul",{},[200,201,202,207],"li",{},[203,204,205],"strong",{},[180,206,182],{},": Import utility functions and helpers",[200,209,210,214],{},[203,211,212],{},[180,213,186],{},": Import TypeScript type definitions",[176,216,217],{},"These aliases are automatically configured by the module and work in both client and server contexts.",[189,219,221],{"id":220},"available-aliases","Available Aliases",[223,224,182],"h3",{"id":225},"auth-utils",[176,227,228,229,231],{},"The ",[180,230,182],{}," alias points to provider-specific utilities:",[197,233,234,242],{},[200,235,236,238,239],{},[203,237,19],{},": ",[180,240,241],{},"src\u002Fruntime\u002Fsanctum\u002Futils\u002Findex.ts",[200,243,244,238,246],{},[203,245,44],{},[180,247,248],{},"src\u002Fruntime\u002Fpassport\u002Futils\u002Findex.ts",[223,250,186],{"id":251},"auth-types",[176,253,228,254,256],{},[180,255,186],{}," alias points to type definitions:",[197,258,259],{},[200,260,261,238,264],{},[203,262,263],{},"All providers",[180,265,266],{},"src\u002Fruntime\u002Ftypes\u002Findex.ts",[189,268,270],{"id":269},"using-auth-utils","Using #auth-utils",[223,272,274],{"id":273},"importing-utilities","Importing Utilities",[276,277,282],"pre",{"className":278,"code":279,"language":280,"meta":281,"style":281},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { useAuthStore } from '#auth-utils'\n\nconst authStore = useAuthStore()\n","typescript","",[180,283,284,316,323],{"__ignoreMap":281},[285,286,289,293,297,301,304,307,310,313],"span",{"class":287,"line":288},"line",1,[285,290,292],{"class":291},"s7zQu","import",[285,294,296],{"class":295},"sMK4o"," {",[285,298,300],{"class":299},"sTEyZ"," useAuthStore",[285,302,303],{"class":295}," }",[285,305,306],{"class":291}," from",[285,308,309],{"class":295}," '",[285,311,182],{"class":312},"sfazB",[285,314,315],{"class":295},"'\n",[285,317,319],{"class":287,"line":318},2,[285,320,322],{"emptyLinePlaceholder":321},true,"\n",[285,324,326,330,333,336,339],{"class":287,"line":325},3,[285,327,329],{"class":328},"spNyl","const",[285,331,332],{"class":299}," authStore ",[285,334,335],{"class":295},"=",[285,337,300],{"class":338},"s2Zo4",[285,340,341],{"class":299},"()\n",[223,343,345],{"id":344},"available-utilities","Available Utilities",[176,347,348],{},"The available utilities depend on your configured provider:",[350,351,353],"h4",{"id":352},"sanctum-utilities","Sanctum Utilities",[276,355,357],{"className":278,"code":356,"language":280,"meta":281,"style":281},"import { \n  useAuthStore,\n  syncHeaders,\n  ensureCsrf\n} from '#auth-utils'\n",[180,358,359,369,377,384,390],{"__ignoreMap":281},[285,360,361,363,365],{"class":287,"line":288},[285,362,292],{"class":291},[285,364,296],{"class":295},[285,366,368],{"class":367},"swJcz"," \n",[285,370,371,374],{"class":287,"line":318},[285,372,373],{"class":299},"  useAuthStore",[285,375,376],{"class":295},",\n",[285,378,379,382],{"class":287,"line":325},[285,380,381],{"class":299},"  syncHeaders",[285,383,376],{"class":295},[285,385,387],{"class":287,"line":386},4,[285,388,389],{"class":299},"  ensureCsrf\n",[285,391,393,396,398,400,402],{"class":287,"line":392},5,[285,394,395],{"class":295},"}",[285,397,306],{"class":291},[285,399,309],{"class":295},[285,401,182],{"class":312},[285,403,315],{"class":295},[350,405,407],{"id":406},"passport-utilities","Passport Utilities",[276,409,411],{"className":278,"code":410,"language":280,"meta":281,"style":281},"import { \n  useAuthStore,\n  syncHeaders\n} from '#auth-utils'\n",[180,412,413,421,427,432],{"__ignoreMap":281},[285,414,415,417,419],{"class":287,"line":288},[285,416,292],{"class":291},[285,418,296],{"class":295},[285,420,368],{"class":367},[285,422,423,425],{"class":287,"line":318},[285,424,373],{"class":299},[285,426,376],{"class":295},[285,428,429],{"class":287,"line":325},[285,430,431],{"class":299},"  syncHeaders\n",[285,433,434,436,438,440,442],{"class":287,"line":386},[285,435,395],{"class":295},[285,437,306],{"class":291},[285,439,309],{"class":295},[285,441,182],{"class":312},[285,443,315],{"class":295},[223,445,447],{"id":446},"common-usage-patterns","Common Usage Patterns",[350,449,451],{"id":450},"auth-store","Auth Store",[276,453,455],{"className":278,"code":454,"language":280,"meta":281,"style":281},"import { useAuthStore } from '#auth-utils'\n\n\u002F\u002F In a component\nconst authStore = useAuthStore()\n\n\u002F\u002F Access state\nconst user = computed(() => authStore.user)\nconst token = computed(() => authStore.token)\nconst strategy = computed(() => authStore.strategy)\n\n\u002F\u002F Call methods\nawait authStore.fetchUser()\nawait authStore.setToken('new-token')\nawait authStore.clearToken()\n",[180,456,457,475,479,485,497,501,507,538,563,588,593,599,614,639],{"__ignoreMap":281},[285,458,459,461,463,465,467,469,471,473],{"class":287,"line":288},[285,460,292],{"class":291},[285,462,296],{"class":295},[285,464,300],{"class":299},[285,466,303],{"class":295},[285,468,306],{"class":291},[285,470,309],{"class":295},[285,472,182],{"class":312},[285,474,315],{"class":295},[285,476,477],{"class":287,"line":318},[285,478,322],{"emptyLinePlaceholder":321},[285,480,481],{"class":287,"line":325},[285,482,484],{"class":483},"sHwdD","\u002F\u002F In a component\n",[285,486,487,489,491,493,495],{"class":287,"line":386},[285,488,329],{"class":328},[285,490,332],{"class":299},[285,492,335],{"class":295},[285,494,300],{"class":338},[285,496,341],{"class":299},[285,498,499],{"class":287,"line":392},[285,500,322],{"emptyLinePlaceholder":321},[285,502,504],{"class":287,"line":503},6,[285,505,506],{"class":483},"\u002F\u002F Access state\n",[285,508,510,512,515,517,520,523,526,529,532,535],{"class":287,"line":509},7,[285,511,329],{"class":328},[285,513,514],{"class":299}," user ",[285,516,335],{"class":295},[285,518,519],{"class":338}," computed",[285,521,522],{"class":299},"(",[285,524,525],{"class":295},"()",[285,527,528],{"class":328}," =>",[285,530,531],{"class":299}," authStore",[285,533,534],{"class":295},".",[285,536,537],{"class":299},"user)\n",[285,539,541,543,546,548,550,552,554,556,558,560],{"class":287,"line":540},8,[285,542,329],{"class":328},[285,544,545],{"class":299}," token ",[285,547,335],{"class":295},[285,549,519],{"class":338},[285,551,522],{"class":299},[285,553,525],{"class":295},[285,555,528],{"class":328},[285,557,531],{"class":299},[285,559,534],{"class":295},[285,561,562],{"class":299},"token)\n",[285,564,566,568,571,573,575,577,579,581,583,585],{"class":287,"line":565},9,[285,567,329],{"class":328},[285,569,570],{"class":299}," strategy ",[285,572,335],{"class":295},[285,574,519],{"class":338},[285,576,522],{"class":299},[285,578,525],{"class":295},[285,580,528],{"class":328},[285,582,531],{"class":299},[285,584,534],{"class":295},[285,586,587],{"class":299},"strategy)\n",[285,589,591],{"class":287,"line":590},10,[285,592,322],{"emptyLinePlaceholder":321},[285,594,596],{"class":287,"line":595},11,[285,597,598],{"class":483},"\u002F\u002F Call methods\n",[285,600,602,605,607,609,612],{"class":287,"line":601},12,[285,603,604],{"class":291},"await",[285,606,531],{"class":299},[285,608,534],{"class":295},[285,610,611],{"class":338},"fetchUser",[285,613,341],{"class":299},[285,615,617,619,621,623,626,628,631,634,636],{"class":287,"line":616},13,[285,618,604],{"class":291},[285,620,531],{"class":299},[285,622,534],{"class":295},[285,624,625],{"class":338},"setToken",[285,627,522],{"class":299},[285,629,630],{"class":295},"'",[285,632,633],{"class":312},"new-token",[285,635,630],{"class":295},[285,637,638],{"class":299},")\n",[285,640,642,644,646,648,651],{"class":287,"line":641},14,[285,643,604],{"class":291},[285,645,531],{"class":299},[285,647,534],{"class":295},[285,649,650],{"class":338},"clearToken",[285,652,341],{"class":299},[350,654,656],{"id":655},"header-synchronization","Header Synchronization",[276,658,660],{"className":278,"code":659,"language":280,"meta":281,"style":281},"import { syncHeaders } from '#auth-utils'\n\n\u002F\u002F Sync headers with auth state\nconst headers = syncHeaders()\n\n\u002F\u002F Use in API calls\nconst response = await $fetch('\u002Fapi\u002Fdata', {\n  headers: Object.fromEntries(headers.entries())\n})\n",[180,661,662,681,685,690,703,707,712,742,769],{"__ignoreMap":281},[285,663,664,666,668,671,673,675,677,679],{"class":287,"line":288},[285,665,292],{"class":291},[285,667,296],{"class":295},[285,669,670],{"class":299}," syncHeaders",[285,672,303],{"class":295},[285,674,306],{"class":291},[285,676,309],{"class":295},[285,678,182],{"class":312},[285,680,315],{"class":295},[285,682,683],{"class":287,"line":318},[285,684,322],{"emptyLinePlaceholder":321},[285,686,687],{"class":287,"line":325},[285,688,689],{"class":483},"\u002F\u002F Sync headers with auth state\n",[285,691,692,694,697,699,701],{"class":287,"line":386},[285,693,329],{"class":328},[285,695,696],{"class":299}," headers ",[285,698,335],{"class":295},[285,700,670],{"class":338},[285,702,341],{"class":299},[285,704,705],{"class":287,"line":392},[285,706,322],{"emptyLinePlaceholder":321},[285,708,709],{"class":287,"line":503},[285,710,711],{"class":483},"\u002F\u002F Use in API calls\n",[285,713,714,716,719,721,724,727,729,731,734,736,739],{"class":287,"line":509},[285,715,329],{"class":328},[285,717,718],{"class":299}," response ",[285,720,335],{"class":295},[285,722,723],{"class":291}," await",[285,725,726],{"class":338}," $fetch",[285,728,522],{"class":299},[285,730,630],{"class":295},[285,732,733],{"class":312},"\u002Fapi\u002Fdata",[285,735,630],{"class":295},[285,737,738],{"class":295},",",[285,740,741],{"class":295}," {\n",[285,743,744,747,750,753,755,758,761,763,766],{"class":287,"line":540},[285,745,746],{"class":367},"  headers",[285,748,749],{"class":295},":",[285,751,752],{"class":299}," Object",[285,754,534],{"class":295},[285,756,757],{"class":338},"fromEntries",[285,759,760],{"class":299},"(headers",[285,762,534],{"class":295},[285,764,765],{"class":338},"entries",[285,767,768],{"class":299},"())\n",[285,770,771,773],{"class":287,"line":565},[285,772,395],{"class":295},[285,774,638],{"class":299},[350,776,778],{"id":777},"csrf-protection-sanctum","CSRF Protection (Sanctum)",[276,780,782],{"className":278,"code":781,"language":280,"meta":281,"style":281},"import { ensureCsrf } from '#auth-utils'\n\n\u002F\u002F Ensure CSRF token is present\nawait ensureCsrf()\n\n\u002F\u002F Then make authenticated requests\nconst response = await $fetch('\u002Fapi\u002Fprotected', {\n  method: 'POST',\n  body: { data: 'value' }\n})\n",[180,783,784,803,807,812,820,824,829,854,870,894],{"__ignoreMap":281},[285,785,786,788,790,793,795,797,799,801],{"class":287,"line":288},[285,787,292],{"class":291},[285,789,296],{"class":295},[285,791,792],{"class":299}," ensureCsrf",[285,794,303],{"class":295},[285,796,306],{"class":291},[285,798,309],{"class":295},[285,800,182],{"class":312},[285,802,315],{"class":295},[285,804,805],{"class":287,"line":318},[285,806,322],{"emptyLinePlaceholder":321},[285,808,809],{"class":287,"line":325},[285,810,811],{"class":483},"\u002F\u002F Ensure CSRF token is present\n",[285,813,814,816,818],{"class":287,"line":386},[285,815,604],{"class":291},[285,817,792],{"class":338},[285,819,341],{"class":299},[285,821,822],{"class":287,"line":392},[285,823,322],{"emptyLinePlaceholder":321},[285,825,826],{"class":287,"line":503},[285,827,828],{"class":483},"\u002F\u002F Then make authenticated requests\n",[285,830,831,833,835,837,839,841,843,845,848,850,852],{"class":287,"line":509},[285,832,329],{"class":328},[285,834,718],{"class":299},[285,836,335],{"class":295},[285,838,723],{"class":291},[285,840,726],{"class":338},[285,842,522],{"class":299},[285,844,630],{"class":295},[285,846,847],{"class":312},"\u002Fapi\u002Fprotected",[285,849,630],{"class":295},[285,851,738],{"class":295},[285,853,741],{"class":295},[285,855,856,859,861,863,866,868],{"class":287,"line":540},[285,857,858],{"class":367},"  method",[285,860,749],{"class":295},[285,862,309],{"class":295},[285,864,865],{"class":312},"POST",[285,867,630],{"class":295},[285,869,376],{"class":295},[285,871,872,875,877,879,882,884,886,889,891],{"class":287,"line":565},[285,873,874],{"class":367},"  body",[285,876,749],{"class":295},[285,878,296],{"class":295},[285,880,881],{"class":367}," data",[285,883,749],{"class":295},[285,885,309],{"class":295},[285,887,888],{"class":312},"value",[285,890,630],{"class":295},[285,892,893],{"class":295}," }\n",[285,895,896,898],{"class":287,"line":590},[285,897,395],{"class":295},[285,899,638],{"class":299},[189,901,903],{"id":902},"using-auth-types","Using #auth-types",[223,905,907],{"id":906},"importing-types","Importing Types",[276,909,911],{"className":278,"code":910,"language":280,"meta":281,"style":281},"import type { AuthInstance, ModuleOptions } from '#auth-types'\n",[180,912,913],{"__ignoreMap":281},[285,914,915,917,920,922,925,927,930,932,934,936,938],{"class":287,"line":288},[285,916,292],{"class":291},[285,918,919],{"class":291}," type",[285,921,296],{"class":295},[285,923,924],{"class":299}," AuthInstance",[285,926,738],{"class":295},[285,928,929],{"class":299}," ModuleOptions",[285,931,303],{"class":295},[285,933,306],{"class":291},[285,935,309],{"class":295},[285,937,186],{"class":312},[285,939,315],{"class":295},[223,941,943],{"id":942},"common-type-imports","Common Type Imports",[350,945,947],{"id":946},"core-types","Core Types",[276,949,951],{"className":278,"code":950,"language":280,"meta":281,"style":281},"import type { \n  AuthInstance,\n  AuthState,\n  ModuleOptions \n} from '#auth-types'\n",[180,952,953,963,970,977,984],{"__ignoreMap":281},[285,954,955,957,959,961],{"class":287,"line":288},[285,956,292],{"class":291},[285,958,919],{"class":291},[285,960,296],{"class":295},[285,962,368],{"class":367},[285,964,965,968],{"class":287,"line":318},[285,966,967],{"class":299},"  AuthInstance",[285,969,376],{"class":295},[285,971,972,975],{"class":287,"line":325},[285,973,974],{"class":299},"  AuthState",[285,976,376],{"class":295},[285,978,979,982],{"class":287,"line":386},[285,980,981],{"class":299},"  ModuleOptions",[285,983,368],{"class":367},[285,985,986,988,990,992,994],{"class":287,"line":392},[285,987,395],{"class":295},[285,989,306],{"class":291},[285,991,309],{"class":295},[285,993,186],{"class":312},[285,995,315],{"class":295},[350,997,999],{"id":998},"provider-types","Provider Types",[276,1001,1003],{"className":278,"code":1002,"language":280,"meta":281,"style":281},"\u002F\u002F Passport\nimport type { \n  PassportModuleOptions,\n  PassportStrategiesOptions,\n  AuthSecretConfig,\n  AuthResponse,\n  ProfileResponse \n} from '#auth-types'\n\n\u002F\u002F Sanctum\nimport type { \n  SanctumModuleOptions,\n  SanctumStrategiesOptions,\n  UserFetchOption \n} from '#auth-types'\n",[180,1004,1005,1010,1020,1027,1034,1041,1048,1055,1067,1071,1076,1086,1093,1100,1107],{"__ignoreMap":281},[285,1006,1007],{"class":287,"line":288},[285,1008,1009],{"class":483},"\u002F\u002F Passport\n",[285,1011,1012,1014,1016,1018],{"class":287,"line":318},[285,1013,292],{"class":291},[285,1015,919],{"class":291},[285,1017,296],{"class":295},[285,1019,368],{"class":367},[285,1021,1022,1025],{"class":287,"line":325},[285,1023,1024],{"class":299},"  PassportModuleOptions",[285,1026,376],{"class":295},[285,1028,1029,1032],{"class":287,"line":386},[285,1030,1031],{"class":299},"  PassportStrategiesOptions",[285,1033,376],{"class":295},[285,1035,1036,1039],{"class":287,"line":392},[285,1037,1038],{"class":299},"  AuthSecretConfig",[285,1040,376],{"class":295},[285,1042,1043,1046],{"class":287,"line":503},[285,1044,1045],{"class":299},"  AuthResponse",[285,1047,376],{"class":295},[285,1049,1050,1053],{"class":287,"line":509},[285,1051,1052],{"class":299},"  ProfileResponse",[285,1054,368],{"class":367},[285,1056,1057,1059,1061,1063,1065],{"class":287,"line":540},[285,1058,395],{"class":295},[285,1060,306],{"class":291},[285,1062,309],{"class":295},[285,1064,186],{"class":312},[285,1066,315],{"class":295},[285,1068,1069],{"class":287,"line":565},[285,1070,322],{"emptyLinePlaceholder":321},[285,1072,1073],{"class":287,"line":590},[285,1074,1075],{"class":483},"\u002F\u002F Sanctum\n",[285,1077,1078,1080,1082,1084],{"class":287,"line":595},[285,1079,292],{"class":291},[285,1081,919],{"class":291},[285,1083,296],{"class":295},[285,1085,368],{"class":367},[285,1087,1088,1091],{"class":287,"line":601},[285,1089,1090],{"class":299},"  SanctumModuleOptions",[285,1092,376],{"class":295},[285,1094,1095,1098],{"class":287,"line":616},[285,1096,1097],{"class":299},"  SanctumStrategiesOptions",[285,1099,376],{"class":295},[285,1101,1102,1105],{"class":287,"line":641},[285,1103,1104],{"class":299},"  UserFetchOption",[285,1106,368],{"class":367},[285,1108,1110,1112,1114,1116,1118],{"class":287,"line":1109},15,[285,1111,395],{"class":295},[285,1113,306],{"class":291},[285,1115,309],{"class":295},[285,1117,186],{"class":312},[285,1119,315],{"class":295},[350,1121,1123],{"id":1122},"shared-types","Shared Types",[276,1125,1127],{"className":278,"code":1126,"language":280,"meta":281,"style":281},"import type { \n  CookieOption,\n  AuthOptionsCookie,\n  RedirectOptions \n} from '#auth-types'\n",[180,1128,1129,1139,1146,1153,1160],{"__ignoreMap":281},[285,1130,1131,1133,1135,1137],{"class":287,"line":288},[285,1132,292],{"class":291},[285,1134,919],{"class":291},[285,1136,296],{"class":295},[285,1138,368],{"class":367},[285,1140,1141,1144],{"class":287,"line":318},[285,1142,1143],{"class":299},"  CookieOption",[285,1145,376],{"class":295},[285,1147,1148,1151],{"class":287,"line":325},[285,1149,1150],{"class":299},"  AuthOptionsCookie",[285,1152,376],{"class":295},[285,1154,1155,1158],{"class":287,"line":386},[285,1156,1157],{"class":299},"  RedirectOptions",[285,1159,368],{"class":367},[285,1161,1162,1164,1166,1168,1170],{"class":287,"line":392},[285,1163,395],{"class":295},[285,1165,306],{"class":291},[285,1167,309],{"class":295},[285,1169,186],{"class":312},[285,1171,315],{"class":295},[223,1173,1175],{"id":1174},"type-usage-examples","Type Usage Examples",[350,1177,1179],{"id":1178},"typing-auth-instance","Typing Auth Instance",[276,1181,1183],{"className":278,"code":1182,"language":280,"meta":281,"style":281},"import type { AuthInstance } from '#auth-types'\n\nconst { $auth } = useNuxtApp()\nconst auth = $auth as AuthInstance\n\n\u002F\u002F Now fully typed\nawait auth.loginWith('password', { username: 'user', password: 'pass' })\n",[180,1184,1185,1205,1209,1228,1246,1250,1255],{"__ignoreMap":281},[285,1186,1187,1189,1191,1193,1195,1197,1199,1201,1203],{"class":287,"line":288},[285,1188,292],{"class":291},[285,1190,919],{"class":291},[285,1192,296],{"class":295},[285,1194,924],{"class":299},[285,1196,303],{"class":295},[285,1198,306],{"class":291},[285,1200,309],{"class":295},[285,1202,186],{"class":312},[285,1204,315],{"class":295},[285,1206,1207],{"class":287,"line":318},[285,1208,322],{"emptyLinePlaceholder":321},[285,1210,1211,1213,1215,1218,1220,1223,1226],{"class":287,"line":325},[285,1212,329],{"class":328},[285,1214,296],{"class":295},[285,1216,1217],{"class":299}," $auth ",[285,1219,395],{"class":295},[285,1221,1222],{"class":295}," =",[285,1224,1225],{"class":338}," useNuxtApp",[285,1227,341],{"class":299},[285,1229,1230,1232,1235,1237,1239,1242],{"class":287,"line":386},[285,1231,329],{"class":328},[285,1233,1234],{"class":299}," auth ",[285,1236,335],{"class":295},[285,1238,1217],{"class":299},[285,1240,1241],{"class":291},"as",[285,1243,1245],{"class":1244},"sBMFI"," AuthInstance\n",[285,1247,1248],{"class":287,"line":392},[285,1249,322],{"emptyLinePlaceholder":321},[285,1251,1252],{"class":287,"line":503},[285,1253,1254],{"class":483},"\u002F\u002F Now fully typed\n",[285,1256,1257,1259,1262,1264,1267,1269,1271,1274,1276,1278,1280,1283,1285,1287,1290,1292,1294,1297,1299,1301,1304,1306,1308],{"class":287,"line":509},[285,1258,604],{"class":291},[285,1260,1261],{"class":299}," auth",[285,1263,534],{"class":295},[285,1265,1266],{"class":338},"loginWith",[285,1268,522],{"class":299},[285,1270,630],{"class":295},[285,1272,1273],{"class":312},"password",[285,1275,630],{"class":295},[285,1277,738],{"class":295},[285,1279,296],{"class":295},[285,1281,1282],{"class":367}," username",[285,1284,749],{"class":295},[285,1286,309],{"class":295},[285,1288,1289],{"class":312},"user",[285,1291,630],{"class":295},[285,1293,738],{"class":295},[285,1295,1296],{"class":367}," password",[285,1298,749],{"class":295},[285,1300,309],{"class":295},[285,1302,1303],{"class":312},"pass",[285,1305,630],{"class":295},[285,1307,303],{"class":295},[285,1309,638],{"class":299},[350,1311,1313],{"id":1312},"typing-configuration","Typing Configuration",[276,1315,1317],{"className":278,"code":1316,"language":280,"meta":281,"style":281},"import type { ModuleOptions, RedirectOptions } from '#auth-types'\n\nconst redirectConfig: RedirectOptions = {\n  login: '\u002Flogin',\n  logout: '\u002F',\n  home: '\u002Fdashboard'\n}\n\nconst authConfig: ModuleOptions = {\n  provider: 'sanctum',\n  redirect: redirectConfig,\n  strategies: {\n    default: {\n      endpoints: {\n        login: { url: '\u002Flogin', method: 'post' },\n        user: { url: '\u002Fapi\u002Fuser', method: 'get' }\n      },\n      redirect: redirectConfig\n    }\n  }\n}\n",[180,1318,1319,1344,1348,1363,1379,1395,1409,1414,1418,1433,1449,1460,1469,1478,1487,1524,1560,1566,1577,1583,1589],{"__ignoreMap":281},[285,1320,1321,1323,1325,1327,1329,1331,1334,1336,1338,1340,1342],{"class":287,"line":288},[285,1322,292],{"class":291},[285,1324,919],{"class":291},[285,1326,296],{"class":295},[285,1328,929],{"class":299},[285,1330,738],{"class":295},[285,1332,1333],{"class":299}," RedirectOptions",[285,1335,303],{"class":295},[285,1337,306],{"class":291},[285,1339,309],{"class":295},[285,1341,186],{"class":312},[285,1343,315],{"class":295},[285,1345,1346],{"class":287,"line":318},[285,1347,322],{"emptyLinePlaceholder":321},[285,1349,1350,1352,1355,1357,1359,1361],{"class":287,"line":325},[285,1351,329],{"class":328},[285,1353,1354],{"class":299}," redirectConfig",[285,1356,749],{"class":295},[285,1358,1333],{"class":1244},[285,1360,1222],{"class":295},[285,1362,741],{"class":295},[285,1364,1365,1368,1370,1372,1375,1377],{"class":287,"line":386},[285,1366,1367],{"class":367},"  login",[285,1369,749],{"class":295},[285,1371,309],{"class":295},[285,1373,1374],{"class":312},"\u002Flogin",[285,1376,630],{"class":295},[285,1378,376],{"class":295},[285,1380,1381,1384,1386,1388,1391,1393],{"class":287,"line":392},[285,1382,1383],{"class":367},"  logout",[285,1385,749],{"class":295},[285,1387,309],{"class":295},[285,1389,1390],{"class":312},"\u002F",[285,1392,630],{"class":295},[285,1394,376],{"class":295},[285,1396,1397,1400,1402,1404,1407],{"class":287,"line":503},[285,1398,1399],{"class":367},"  home",[285,1401,749],{"class":295},[285,1403,309],{"class":295},[285,1405,1406],{"class":312},"\u002Fdashboard",[285,1408,315],{"class":295},[285,1410,1411],{"class":287,"line":509},[285,1412,1413],{"class":295},"}\n",[285,1415,1416],{"class":287,"line":540},[285,1417,322],{"emptyLinePlaceholder":321},[285,1419,1420,1422,1425,1427,1429,1431],{"class":287,"line":565},[285,1421,329],{"class":328},[285,1423,1424],{"class":299}," authConfig",[285,1426,749],{"class":295},[285,1428,929],{"class":1244},[285,1430,1222],{"class":295},[285,1432,741],{"class":295},[285,1434,1435,1438,1440,1442,1445,1447],{"class":287,"line":590},[285,1436,1437],{"class":367},"  provider",[285,1439,749],{"class":295},[285,1441,309],{"class":295},[285,1443,1444],{"class":312},"sanctum",[285,1446,630],{"class":295},[285,1448,376],{"class":295},[285,1450,1451,1454,1456,1458],{"class":287,"line":595},[285,1452,1453],{"class":367},"  redirect",[285,1455,749],{"class":295},[285,1457,1354],{"class":299},[285,1459,376],{"class":295},[285,1461,1462,1465,1467],{"class":287,"line":601},[285,1463,1464],{"class":367},"  strategies",[285,1466,749],{"class":295},[285,1468,741],{"class":295},[285,1470,1471,1474,1476],{"class":287,"line":616},[285,1472,1473],{"class":367},"    default",[285,1475,749],{"class":295},[285,1477,741],{"class":295},[285,1479,1480,1483,1485],{"class":287,"line":641},[285,1481,1482],{"class":367},"      endpoints",[285,1484,749],{"class":295},[285,1486,741],{"class":295},[285,1488,1489,1492,1494,1496,1499,1501,1503,1505,1507,1509,1512,1514,1516,1519,1521],{"class":287,"line":1109},[285,1490,1491],{"class":367},"        login",[285,1493,749],{"class":295},[285,1495,296],{"class":295},[285,1497,1498],{"class":367}," url",[285,1500,749],{"class":295},[285,1502,309],{"class":295},[285,1504,1374],{"class":312},[285,1506,630],{"class":295},[285,1508,738],{"class":295},[285,1510,1511],{"class":367}," method",[285,1513,749],{"class":295},[285,1515,309],{"class":295},[285,1517,1518],{"class":312},"post",[285,1520,630],{"class":295},[285,1522,1523],{"class":295}," },\n",[285,1525,1527,1530,1532,1534,1536,1538,1540,1543,1545,1547,1549,1551,1553,1556,1558],{"class":287,"line":1526},16,[285,1528,1529],{"class":367},"        user",[285,1531,749],{"class":295},[285,1533,296],{"class":295},[285,1535,1498],{"class":367},[285,1537,749],{"class":295},[285,1539,309],{"class":295},[285,1541,1542],{"class":312},"\u002Fapi\u002Fuser",[285,1544,630],{"class":295},[285,1546,738],{"class":295},[285,1548,1511],{"class":367},[285,1550,749],{"class":295},[285,1552,309],{"class":295},[285,1554,1555],{"class":312},"get",[285,1557,630],{"class":295},[285,1559,893],{"class":295},[285,1561,1563],{"class":287,"line":1562},17,[285,1564,1565],{"class":295},"      },\n",[285,1567,1569,1572,1574],{"class":287,"line":1568},18,[285,1570,1571],{"class":367},"      redirect",[285,1573,749],{"class":295},[285,1575,1576],{"class":299}," redirectConfig\n",[285,1578,1580],{"class":287,"line":1579},19,[285,1581,1582],{"class":295},"    }\n",[285,1584,1586],{"class":287,"line":1585},20,[285,1587,1588],{"class":295},"  }\n",[285,1590,1592],{"class":287,"line":1591},21,[285,1593,1413],{"class":295},[350,1595,1597],{"id":1596},"typing-custom-functions","Typing Custom Functions",[276,1599,1601],{"className":278,"code":1600,"language":280,"meta":281,"style":281},"import type { AuthInstance } from '#auth-types'\n\nasync function loginAndFetchUser(\n  auth: AuthInstance,\n  credentials: Record\u003Cstring, unknown>\n) {\n  await auth.loginWith('password', credentials)\n  return auth.user\n}\n",[180,1602,1603,1623,1627,1641,1653,1677,1684,1710,1722],{"__ignoreMap":281},[285,1604,1605,1607,1609,1611,1613,1615,1617,1619,1621],{"class":287,"line":288},[285,1606,292],{"class":291},[285,1608,919],{"class":291},[285,1610,296],{"class":295},[285,1612,924],{"class":299},[285,1614,303],{"class":295},[285,1616,306],{"class":291},[285,1618,309],{"class":295},[285,1620,186],{"class":312},[285,1622,315],{"class":295},[285,1624,1625],{"class":287,"line":318},[285,1626,322],{"emptyLinePlaceholder":321},[285,1628,1629,1632,1635,1638],{"class":287,"line":325},[285,1630,1631],{"class":328},"async",[285,1633,1634],{"class":328}," function",[285,1636,1637],{"class":338}," loginAndFetchUser",[285,1639,1640],{"class":295},"(\n",[285,1642,1643,1647,1649,1651],{"class":287,"line":386},[285,1644,1646],{"class":1645},"sHdIc","  auth",[285,1648,749],{"class":295},[285,1650,924],{"class":1244},[285,1652,376],{"class":295},[285,1654,1655,1658,1660,1663,1666,1669,1671,1674],{"class":287,"line":392},[285,1656,1657],{"class":1645},"  credentials",[285,1659,749],{"class":295},[285,1661,1662],{"class":1244}," Record",[285,1664,1665],{"class":295},"\u003C",[285,1667,1668],{"class":1244},"string",[285,1670,738],{"class":295},[285,1672,1673],{"class":1244}," unknown",[285,1675,1676],{"class":295},">\n",[285,1678,1679,1682],{"class":287,"line":503},[285,1680,1681],{"class":295},")",[285,1683,741],{"class":295},[285,1685,1686,1689,1691,1693,1695,1697,1699,1701,1703,1705,1708],{"class":287,"line":509},[285,1687,1688],{"class":291},"  await",[285,1690,1261],{"class":299},[285,1692,534],{"class":295},[285,1694,1266],{"class":338},[285,1696,522],{"class":367},[285,1698,630],{"class":295},[285,1700,1273],{"class":312},[285,1702,630],{"class":295},[285,1704,738],{"class":295},[285,1706,1707],{"class":299}," credentials",[285,1709,638],{"class":367},[285,1711,1712,1715,1717,1719],{"class":287,"line":540},[285,1713,1714],{"class":291},"  return",[285,1716,1261],{"class":299},[285,1718,534],{"class":295},[285,1720,1721],{"class":299},"user\n",[285,1723,1724],{"class":287,"line":565},[285,1725,1413],{"class":295},[189,1727,1729],{"id":1728},"alias-configuration","Alias Configuration",[176,1731,1732],{},"The aliases are automatically configured by the module:",[223,1734,1736],{"id":1735},"vitenitro-configuration","Vite\u002FNitro Configuration",[276,1738,1740],{"className":278,"code":1739,"language":280,"meta":281,"style":281},"\u002F\u002F Configured in module.ts\nnuxt.options.alias['#auth-utils'] = runtimeUtilsPath\nnuxt.options.alias['#auth-types'] = runtimeTypesPath\n",[180,1741,1742,1747,1776],{"__ignoreMap":281},[285,1743,1744],{"class":287,"line":288},[285,1745,1746],{"class":483},"\u002F\u002F Configured in module.ts\n",[285,1748,1749,1752,1754,1757,1759,1762,1764,1766,1768,1771,1773],{"class":287,"line":318},[285,1750,1751],{"class":299},"nuxt",[285,1753,534],{"class":295},[285,1755,1756],{"class":299},"options",[285,1758,534],{"class":295},[285,1760,1761],{"class":299},"alias[",[285,1763,630],{"class":295},[285,1765,182],{"class":312},[285,1767,630],{"class":295},[285,1769,1770],{"class":299},"] ",[285,1772,335],{"class":295},[285,1774,1775],{"class":299}," runtimeUtilsPath\n",[285,1777,1778,1780,1782,1784,1786,1788,1790,1792,1794,1796,1798],{"class":287,"line":325},[285,1779,1751],{"class":299},[285,1781,534],{"class":295},[285,1783,1756],{"class":299},[285,1785,534],{"class":295},[285,1787,1761],{"class":299},[285,1789,630],{"class":295},[285,1791,186],{"class":312},[285,1793,630],{"class":295},[285,1795,1770],{"class":299},[285,1797,335],{"class":295},[285,1799,1800],{"class":299}," runtimeTypesPath\n",[223,1802,1804],{"id":1803},"typescript-configuration","TypeScript Configuration",[276,1806,1808],{"className":278,"code":1807,"language":280,"meta":281,"style":281},"\u002F\u002F Configured in prepare:types hook\ntsConfig.compilerOptions.paths['#auth-utils'] = [runtimeUtilsPath]\ntsConfig.compilerOptions.paths['#auth-types'] = [runtimeTypesPath]\n",[180,1809,1810,1815,1843],{"__ignoreMap":281},[285,1811,1812],{"class":287,"line":288},[285,1813,1814],{"class":483},"\u002F\u002F Configured in prepare:types hook\n",[285,1816,1817,1820,1822,1825,1827,1830,1832,1834,1836,1838,1840],{"class":287,"line":318},[285,1818,1819],{"class":299},"tsConfig",[285,1821,534],{"class":295},[285,1823,1824],{"class":299},"compilerOptions",[285,1826,534],{"class":295},[285,1828,1829],{"class":299},"paths[",[285,1831,630],{"class":295},[285,1833,182],{"class":312},[285,1835,630],{"class":295},[285,1837,1770],{"class":299},[285,1839,335],{"class":295},[285,1841,1842],{"class":299}," [runtimeUtilsPath]\n",[285,1844,1845,1847,1849,1851,1853,1855,1857,1859,1861,1863,1865],{"class":287,"line":325},[285,1846,1819],{"class":299},[285,1848,534],{"class":295},[285,1850,1824],{"class":299},[285,1852,534],{"class":295},[285,1854,1829],{"class":299},[285,1856,630],{"class":295},[285,1858,186],{"class":312},[285,1860,630],{"class":295},[285,1862,1770],{"class":299},[285,1864,335],{"class":295},[285,1866,1867],{"class":299}," [runtimeTypesPath]\n",[189,1869,1871],{"id":1870},"benefits-of-using-aliases","Benefits of Using Aliases",[223,1873,1875],{"id":1874},"clean-imports","Clean Imports",[276,1877,1879],{"className":278,"code":1878,"language":280,"meta":281,"style":281},"\u002F\u002F Without aliases\nimport { useAuthStore } from '..\u002F..\u002F..\u002Fruntime\u002Fsanctum\u002Futils\u002Findex'\nimport type { AuthInstance } from '..\u002F..\u002F..\u002Fruntime\u002Ftypes\u002Findex'\n\n\u002F\u002F With aliases\nimport { useAuthStore } from '#auth-utils'\nimport type { AuthInstance } from '#auth-types'\n",[180,1880,1881,1886,1905,1926,1930,1935,1953],{"__ignoreMap":281},[285,1882,1883],{"class":287,"line":288},[285,1884,1885],{"class":483},"\u002F\u002F Without aliases\n",[285,1887,1888,1890,1892,1894,1896,1898,1900,1903],{"class":287,"line":318},[285,1889,292],{"class":291},[285,1891,296],{"class":295},[285,1893,300],{"class":299},[285,1895,303],{"class":295},[285,1897,306],{"class":291},[285,1899,309],{"class":295},[285,1901,1902],{"class":312},"..\u002F..\u002F..\u002Fruntime\u002Fsanctum\u002Futils\u002Findex",[285,1904,315],{"class":295},[285,1906,1907,1909,1911,1913,1915,1917,1919,1921,1924],{"class":287,"line":325},[285,1908,292],{"class":291},[285,1910,919],{"class":291},[285,1912,296],{"class":295},[285,1914,924],{"class":299},[285,1916,303],{"class":295},[285,1918,306],{"class":291},[285,1920,309],{"class":295},[285,1922,1923],{"class":312},"..\u002F..\u002F..\u002Fruntime\u002Ftypes\u002Findex",[285,1925,315],{"class":295},[285,1927,1928],{"class":287,"line":386},[285,1929,322],{"emptyLinePlaceholder":321},[285,1931,1932],{"class":287,"line":392},[285,1933,1934],{"class":483},"\u002F\u002F With aliases\n",[285,1936,1937,1939,1941,1943,1945,1947,1949,1951],{"class":287,"line":503},[285,1938,292],{"class":291},[285,1940,296],{"class":295},[285,1942,300],{"class":299},[285,1944,303],{"class":295},[285,1946,306],{"class":291},[285,1948,309],{"class":295},[285,1950,182],{"class":312},[285,1952,315],{"class":295},[285,1954,1955,1957,1959,1961,1963,1965,1967,1969,1971],{"class":287,"line":509},[285,1956,292],{"class":291},[285,1958,919],{"class":291},[285,1960,296],{"class":295},[285,1962,924],{"class":299},[285,1964,303],{"class":295},[285,1966,306],{"class":291},[285,1968,309],{"class":295},[285,1970,186],{"class":312},[285,1972,315],{"class":295},[223,1974,1976],{"id":1975},"provider-independence","Provider Independence",[276,1978,1980],{"className":278,"code":1979,"language":280,"meta":281,"style":281},"\u002F\u002F Works regardless of provider\nimport { useAuthStore } from '#auth-utils'\n\n\u002F\u002F Automatically uses correct provider implementation\n",[180,1981,1982,1987,2005,2009],{"__ignoreMap":281},[285,1983,1984],{"class":287,"line":288},[285,1985,1986],{"class":483},"\u002F\u002F Works regardless of provider\n",[285,1988,1989,1991,1993,1995,1997,1999,2001,2003],{"class":287,"line":318},[285,1990,292],{"class":291},[285,1992,296],{"class":295},[285,1994,300],{"class":299},[285,1996,303],{"class":295},[285,1998,306],{"class":291},[285,2000,309],{"class":295},[285,2002,182],{"class":312},[285,2004,315],{"class":295},[285,2006,2007],{"class":287,"line":325},[285,2008,322],{"emptyLinePlaceholder":321},[285,2010,2011],{"class":287,"line":386},[285,2012,2013],{"class":483},"\u002F\u002F Automatically uses correct provider implementation\n",[223,2015,2017],{"id":2016},"type-safety","Type Safety",[276,2019,2021],{"className":278,"code":2020,"language":280,"meta":281,"style":281},"\u002F\u002F Full TypeScript support\nimport type { ModuleOptions } from '#auth-types'\n\nconst config: ModuleOptions = {\n  \u002F\u002F Type-checked configuration\n}\n",[180,2022,2023,2028,2048,2052,2067,2072],{"__ignoreMap":281},[285,2024,2025],{"class":287,"line":288},[285,2026,2027],{"class":483},"\u002F\u002F Full TypeScript support\n",[285,2029,2030,2032,2034,2036,2038,2040,2042,2044,2046],{"class":287,"line":318},[285,2031,292],{"class":291},[285,2033,919],{"class":291},[285,2035,296],{"class":295},[285,2037,929],{"class":299},[285,2039,303],{"class":295},[285,2041,306],{"class":291},[285,2043,309],{"class":295},[285,2045,186],{"class":312},[285,2047,315],{"class":295},[285,2049,2050],{"class":287,"line":325},[285,2051,322],{"emptyLinePlaceholder":321},[285,2053,2054,2056,2059,2061,2063,2065],{"class":287,"line":386},[285,2055,329],{"class":328},[285,2057,2058],{"class":299}," config",[285,2060,749],{"class":295},[285,2062,929],{"class":1244},[285,2064,1222],{"class":295},[285,2066,741],{"class":295},[285,2068,2069],{"class":287,"line":392},[285,2070,2071],{"class":483},"  \u002F\u002F Type-checked configuration\n",[285,2073,2074],{"class":287,"line":503},[285,2075,1413],{"class":295},[223,2077,2079],{"id":2078},"refactoring-friendly","Refactoring Friendly",[276,2081,2083],{"className":278,"code":2082,"language":280,"meta":281,"style":281},"\u002F\u002F Change provider without updating imports\nimport { useAuthStore } from '#auth-utils'\n\n\u002F\u002F Alias automatically points to correct provider\n",[180,2084,2085,2090,2108,2112],{"__ignoreMap":281},[285,2086,2087],{"class":287,"line":288},[285,2088,2089],{"class":483},"\u002F\u002F Change provider without updating imports\n",[285,2091,2092,2094,2096,2098,2100,2102,2104,2106],{"class":287,"line":318},[285,2093,292],{"class":291},[285,2095,296],{"class":295},[285,2097,300],{"class":299},[285,2099,303],{"class":295},[285,2101,306],{"class":291},[285,2103,309],{"class":295},[285,2105,182],{"class":312},[285,2107,315],{"class":295},[285,2109,2110],{"class":287,"line":325},[285,2111,322],{"emptyLinePlaceholder":321},[285,2113,2114],{"class":287,"line":386},[285,2115,2116],{"class":483},"\u002F\u002F Alias automatically points to correct provider\n",[189,2118,2120],{"id":2119},"advanced-usage","Advanced Usage",[223,2122,2124],{"id":2123},"creating-custom-utilities","Creating Custom Utilities",[276,2126,2128],{"className":278,"code":2127,"language":280,"meta":281,"style":281},"\u002F\u002F utils\u002Fauth.ts\nimport { useAuthStore } from '#auth-utils'\nimport type { AuthInstance } from '#auth-types'\n\nexport function useCustomAuth() {\n  const authStore = useAuthStore()\n  const { $auth } = useNuxtApp()\n  const auth = $auth as AuthInstance\n\n  const login = async (credentials: { email: string; password: string }) => {\n    return await auth.loginWith('password', credentials)\n  }\n\n  const logout = async () => {\n    await auth.logout('password')\n  }\n\n  return {\n    login,\n    logout,\n    user: computed(() => authStore.user),\n    isLoggedIn: computed(() => authStore.strategy !== null)\n  }\n}\n",[180,2129,2130,2135,2153,2173,2177,2191,2204,2221,2236,2240,2286,2313,2317,2321,2339,2361,2365,2369,2375,2382,2389,2414,2445,2450],{"__ignoreMap":281},[285,2131,2132],{"class":287,"line":288},[285,2133,2134],{"class":483},"\u002F\u002F utils\u002Fauth.ts\n",[285,2136,2137,2139,2141,2143,2145,2147,2149,2151],{"class":287,"line":318},[285,2138,292],{"class":291},[285,2140,296],{"class":295},[285,2142,300],{"class":299},[285,2144,303],{"class":295},[285,2146,306],{"class":291},[285,2148,309],{"class":295},[285,2150,182],{"class":312},[285,2152,315],{"class":295},[285,2154,2155,2157,2159,2161,2163,2165,2167,2169,2171],{"class":287,"line":325},[285,2156,292],{"class":291},[285,2158,919],{"class":291},[285,2160,296],{"class":295},[285,2162,924],{"class":299},[285,2164,303],{"class":295},[285,2166,306],{"class":291},[285,2168,309],{"class":295},[285,2170,186],{"class":312},[285,2172,315],{"class":295},[285,2174,2175],{"class":287,"line":386},[285,2176,322],{"emptyLinePlaceholder":321},[285,2178,2179,2182,2184,2187,2189],{"class":287,"line":392},[285,2180,2181],{"class":291},"export",[285,2183,1634],{"class":328},[285,2185,2186],{"class":338}," useCustomAuth",[285,2188,525],{"class":295},[285,2190,741],{"class":295},[285,2192,2193,2196,2198,2200,2202],{"class":287,"line":503},[285,2194,2195],{"class":328},"  const",[285,2197,531],{"class":299},[285,2199,1222],{"class":295},[285,2201,300],{"class":338},[285,2203,341],{"class":367},[285,2205,2206,2208,2210,2213,2215,2217,2219],{"class":287,"line":509},[285,2207,2195],{"class":328},[285,2209,296],{"class":295},[285,2211,2212],{"class":299}," $auth",[285,2214,303],{"class":295},[285,2216,1222],{"class":295},[285,2218,1225],{"class":338},[285,2220,341],{"class":367},[285,2222,2223,2225,2227,2229,2231,2234],{"class":287,"line":540},[285,2224,2195],{"class":328},[285,2226,1261],{"class":299},[285,2228,1222],{"class":295},[285,2230,2212],{"class":299},[285,2232,2233],{"class":291}," as",[285,2235,1245],{"class":1244},[285,2237,2238],{"class":287,"line":565},[285,2239,322],{"emptyLinePlaceholder":321},[285,2241,2242,2244,2247,2249,2252,2255,2258,2260,2262,2265,2267,2270,2273,2275,2277,2279,2282,2284],{"class":287,"line":590},[285,2243,2195],{"class":328},[285,2245,2246],{"class":299}," login",[285,2248,1222],{"class":295},[285,2250,2251],{"class":328}," async",[285,2253,2254],{"class":295}," (",[285,2256,2257],{"class":1645},"credentials",[285,2259,749],{"class":295},[285,2261,296],{"class":295},[285,2263,2264],{"class":367}," email",[285,2266,749],{"class":295},[285,2268,2269],{"class":1244}," string",[285,2271,2272],{"class":295},";",[285,2274,1296],{"class":367},[285,2276,749],{"class":295},[285,2278,2269],{"class":1244},[285,2280,2281],{"class":295}," })",[285,2283,528],{"class":328},[285,2285,741],{"class":295},[285,2287,2288,2291,2293,2295,2297,2299,2301,2303,2305,2307,2309,2311],{"class":287,"line":595},[285,2289,2290],{"class":291},"    return",[285,2292,723],{"class":291},[285,2294,1261],{"class":299},[285,2296,534],{"class":295},[285,2298,1266],{"class":338},[285,2300,522],{"class":367},[285,2302,630],{"class":295},[285,2304,1273],{"class":312},[285,2306,630],{"class":295},[285,2308,738],{"class":295},[285,2310,1707],{"class":299},[285,2312,638],{"class":367},[285,2314,2315],{"class":287,"line":601},[285,2316,1588],{"class":295},[285,2318,2319],{"class":287,"line":616},[285,2320,322],{"emptyLinePlaceholder":321},[285,2322,2323,2325,2328,2330,2332,2335,2337],{"class":287,"line":641},[285,2324,2195],{"class":328},[285,2326,2327],{"class":299}," logout",[285,2329,1222],{"class":295},[285,2331,2251],{"class":328},[285,2333,2334],{"class":295}," ()",[285,2336,528],{"class":328},[285,2338,741],{"class":295},[285,2340,2341,2344,2346,2348,2351,2353,2355,2357,2359],{"class":287,"line":1109},[285,2342,2343],{"class":291},"    await",[285,2345,1261],{"class":299},[285,2347,534],{"class":295},[285,2349,2350],{"class":338},"logout",[285,2352,522],{"class":367},[285,2354,630],{"class":295},[285,2356,1273],{"class":312},[285,2358,630],{"class":295},[285,2360,638],{"class":367},[285,2362,2363],{"class":287,"line":1526},[285,2364,1588],{"class":295},[285,2366,2367],{"class":287,"line":1562},[285,2368,322],{"emptyLinePlaceholder":321},[285,2370,2371,2373],{"class":287,"line":1568},[285,2372,1714],{"class":291},[285,2374,741],{"class":295},[285,2376,2377,2380],{"class":287,"line":1579},[285,2378,2379],{"class":299},"    login",[285,2381,376],{"class":295},[285,2383,2384,2387],{"class":287,"line":1585},[285,2385,2386],{"class":299},"    logout",[285,2388,376],{"class":295},[285,2390,2391,2394,2396,2398,2400,2402,2404,2406,2408,2410,2412],{"class":287,"line":1591},[285,2392,2393],{"class":367},"    user",[285,2395,749],{"class":295},[285,2397,519],{"class":338},[285,2399,522],{"class":367},[285,2401,525],{"class":295},[285,2403,528],{"class":328},[285,2405,531],{"class":299},[285,2407,534],{"class":295},[285,2409,1289],{"class":299},[285,2411,1681],{"class":367},[285,2413,376],{"class":295},[285,2415,2417,2420,2422,2424,2426,2428,2430,2432,2434,2437,2440,2443],{"class":287,"line":2416},22,[285,2418,2419],{"class":367},"    isLoggedIn",[285,2421,749],{"class":295},[285,2423,519],{"class":338},[285,2425,522],{"class":367},[285,2427,525],{"class":295},[285,2429,528],{"class":328},[285,2431,531],{"class":299},[285,2433,534],{"class":295},[285,2435,2436],{"class":299},"strategy",[285,2438,2439],{"class":295}," !==",[285,2441,2442],{"class":295}," null",[285,2444,638],{"class":367},[285,2446,2448],{"class":287,"line":2447},23,[285,2449,1588],{"class":295},[285,2451,2453],{"class":287,"line":2452},24,[285,2454,1413],{"class":295},[223,2456,2458],{"id":2457},"type-safe-api-client","Type-Safe API Client",[276,2460,2462],{"className":278,"code":2461,"language":280,"meta":281,"style":281},"\u002F\u002F utils\u002Fapi.ts\nimport { syncHeaders } from '#auth-utils'\nimport type { AuthInstance } from '#auth-types'\n\nexport function createAuthApiClient(auth: AuthInstance) {\n  return async \u003CT = unknown>(\n    url: string,\n    options: RequestInit = {}\n  ): Promise\u003CT> => {\n    const headers = syncHeaders()\n    \n    return await $fetch\u003CT>(url, {\n      ...options,\n      headers: {\n        ...Object.fromEntries(headers.entries()),\n        ...options.headers\n      }\n    })\n  }\n}\n",[180,2463,2464,2469,2487,2507,2511,2532,2553,2564,2579,2599,2613,2618,2641,2650,2659,2685,2696,2701,2708,2712],{"__ignoreMap":281},[285,2465,2466],{"class":287,"line":288},[285,2467,2468],{"class":483},"\u002F\u002F utils\u002Fapi.ts\n",[285,2470,2471,2473,2475,2477,2479,2481,2483,2485],{"class":287,"line":318},[285,2472,292],{"class":291},[285,2474,296],{"class":295},[285,2476,670],{"class":299},[285,2478,303],{"class":295},[285,2480,306],{"class":291},[285,2482,309],{"class":295},[285,2484,182],{"class":312},[285,2486,315],{"class":295},[285,2488,2489,2491,2493,2495,2497,2499,2501,2503,2505],{"class":287,"line":325},[285,2490,292],{"class":291},[285,2492,919],{"class":291},[285,2494,296],{"class":295},[285,2496,924],{"class":299},[285,2498,303],{"class":295},[285,2500,306],{"class":291},[285,2502,309],{"class":295},[285,2504,186],{"class":312},[285,2506,315],{"class":295},[285,2508,2509],{"class":287,"line":386},[285,2510,322],{"emptyLinePlaceholder":321},[285,2512,2513,2515,2517,2520,2522,2524,2526,2528,2530],{"class":287,"line":392},[285,2514,2181],{"class":291},[285,2516,1634],{"class":328},[285,2518,2519],{"class":338}," createAuthApiClient",[285,2521,522],{"class":295},[285,2523,112],{"class":1645},[285,2525,749],{"class":295},[285,2527,924],{"class":1244},[285,2529,1681],{"class":295},[285,2531,741],{"class":295},[285,2533,2534,2536,2538,2541,2544,2546,2548,2551],{"class":287,"line":503},[285,2535,1714],{"class":291},[285,2537,2251],{"class":328},[285,2539,2540],{"class":295}," \u003C",[285,2542,2543],{"class":1244},"T",[285,2545,1222],{"class":295},[285,2547,1673],{"class":1244},[285,2549,2550],{"class":295},">",[285,2552,1640],{"class":367},[285,2554,2555,2558,2560,2562],{"class":287,"line":509},[285,2556,2557],{"class":1645},"    url",[285,2559,749],{"class":295},[285,2561,2269],{"class":1244},[285,2563,376],{"class":295},[285,2565,2566,2569,2571,2574,2576],{"class":287,"line":540},[285,2567,2568],{"class":1645},"    options",[285,2570,749],{"class":295},[285,2572,2573],{"class":1244}," RequestInit",[285,2575,1222],{"class":295},[285,2577,2578],{"class":295}," {}\n",[285,2580,2581,2584,2586,2589,2591,2593,2595,2597],{"class":287,"line":565},[285,2582,2583],{"class":367},"  )",[285,2585,749],{"class":295},[285,2587,2588],{"class":1244}," Promise",[285,2590,1665],{"class":295},[285,2592,2543],{"class":1244},[285,2594,2550],{"class":295},[285,2596,528],{"class":328},[285,2598,741],{"class":295},[285,2600,2601,2604,2607,2609,2611],{"class":287,"line":590},[285,2602,2603],{"class":328},"    const",[285,2605,2606],{"class":299}," headers",[285,2608,1222],{"class":295},[285,2610,670],{"class":338},[285,2612,341],{"class":367},[285,2614,2615],{"class":287,"line":595},[285,2616,2617],{"class":367},"    \n",[285,2619,2620,2622,2624,2626,2628,2630,2632,2634,2637,2639],{"class":287,"line":601},[285,2621,2290],{"class":291},[285,2623,723],{"class":291},[285,2625,726],{"class":338},[285,2627,1665],{"class":295},[285,2629,2543],{"class":1244},[285,2631,2550],{"class":295},[285,2633,522],{"class":367},[285,2635,2636],{"class":299},"url",[285,2638,738],{"class":295},[285,2640,741],{"class":295},[285,2642,2643,2646,2648],{"class":287,"line":616},[285,2644,2645],{"class":295},"      ...",[285,2647,1756],{"class":299},[285,2649,376],{"class":295},[285,2651,2652,2655,2657],{"class":287,"line":641},[285,2653,2654],{"class":367},"      headers",[285,2656,749],{"class":295},[285,2658,741],{"class":295},[285,2660,2661,2664,2667,2669,2671,2673,2676,2678,2680,2683],{"class":287,"line":1109},[285,2662,2663],{"class":295},"        ...",[285,2665,2666],{"class":299},"Object",[285,2668,534],{"class":295},[285,2670,757],{"class":338},[285,2672,522],{"class":367},[285,2674,2675],{"class":299},"headers",[285,2677,534],{"class":295},[285,2679,765],{"class":338},[285,2681,2682],{"class":367},"())",[285,2684,376],{"class":295},[285,2686,2687,2689,2691,2693],{"class":287,"line":1526},[285,2688,2663],{"class":295},[285,2690,1756],{"class":299},[285,2692,534],{"class":295},[285,2694,2695],{"class":299},"headers\n",[285,2697,2698],{"class":287,"line":1562},[285,2699,2700],{"class":295},"      }\n",[285,2702,2703,2706],{"class":287,"line":1568},[285,2704,2705],{"class":295},"    }",[285,2707,638],{"class":367},[285,2709,2710],{"class":287,"line":1579},[285,2711,1588],{"class":295},[285,2713,2714],{"class":287,"line":1585},[285,2715,1413],{"class":295},[223,2717,2719],{"id":2718},"middleware-with-aliases","Middleware with Aliases",[276,2721,2723],{"className":278,"code":2722,"language":280,"meta":281,"style":281},"\u002F\u002F middleware\u002Fauth-check.ts\nimport { useAuthStore } from '#auth-utils'\n\nexport default defineNuxtRouteMiddleware((to, from) => {\n  const authStore = useAuthStore()\n  \n  if (!authStore.strategy) {\n    return navigateTo('\u002Flogin')\n  }\n})\n",[180,2724,2725,2730,2748,2752,2779,2791,2796,2819,2836,2840],{"__ignoreMap":281},[285,2726,2727],{"class":287,"line":288},[285,2728,2729],{"class":483},"\u002F\u002F middleware\u002Fauth-check.ts\n",[285,2731,2732,2734,2736,2738,2740,2742,2744,2746],{"class":287,"line":318},[285,2733,292],{"class":291},[285,2735,296],{"class":295},[285,2737,300],{"class":299},[285,2739,303],{"class":295},[285,2741,306],{"class":291},[285,2743,309],{"class":295},[285,2745,182],{"class":312},[285,2747,315],{"class":295},[285,2749,2750],{"class":287,"line":325},[285,2751,322],{"emptyLinePlaceholder":321},[285,2753,2754,2756,2759,2762,2764,2766,2769,2771,2773,2775,2777],{"class":287,"line":386},[285,2755,2181],{"class":291},[285,2757,2758],{"class":291}," default",[285,2760,2761],{"class":338}," defineNuxtRouteMiddleware",[285,2763,522],{"class":299},[285,2765,522],{"class":295},[285,2767,2768],{"class":1645},"to",[285,2770,738],{"class":295},[285,2772,306],{"class":1645},[285,2774,1681],{"class":295},[285,2776,528],{"class":328},[285,2778,741],{"class":295},[285,2780,2781,2783,2785,2787,2789],{"class":287,"line":392},[285,2782,2195],{"class":328},[285,2784,531],{"class":299},[285,2786,1222],{"class":295},[285,2788,300],{"class":338},[285,2790,341],{"class":367},[285,2792,2793],{"class":287,"line":503},[285,2794,2795],{"class":367},"  \n",[285,2797,2798,2801,2803,2806,2809,2811,2813,2816],{"class":287,"line":509},[285,2799,2800],{"class":291},"  if",[285,2802,2254],{"class":367},[285,2804,2805],{"class":295},"!",[285,2807,2808],{"class":299},"authStore",[285,2810,534],{"class":295},[285,2812,2436],{"class":299},[285,2814,2815],{"class":367},") ",[285,2817,2818],{"class":295},"{\n",[285,2820,2821,2823,2826,2828,2830,2832,2834],{"class":287,"line":540},[285,2822,2290],{"class":291},[285,2824,2825],{"class":338}," navigateTo",[285,2827,522],{"class":367},[285,2829,630],{"class":295},[285,2831,1374],{"class":312},[285,2833,630],{"class":295},[285,2835,638],{"class":367},[285,2837,2838],{"class":287,"line":565},[285,2839,1588],{"class":295},[285,2841,2842,2844],{"class":287,"line":590},[285,2843,395],{"class":295},[285,2845,638],{"class":299},[189,2847,2849],{"id":2848},"server-side-usage","Server-Side Usage",[176,2851,2852],{},"Aliases work in server contexts as well:",[276,2854,2856],{"className":278,"code":2855,"language":280,"meta":281,"style":281},"\u002F\u002F server\u002Fapi\u002Fuser.get.ts\nimport { useAuthStore } from '#auth-utils'\nimport type { AuthInstance } from '#auth-types'\n\nexport default defineEventHandler(async (event) => {\n  const { $auth } = useNuxtApp(event)\n  const auth = $auth as AuthInstance\n  \n  if (!auth.loggedIn) {\n    throw createError({\n      statusCode: 401,\n      statusMessage: 'Unauthorized'\n    })\n  }\n  \n  return auth.user\n})\n",[180,2857,2858,2863,2881,2901,2905,2929,2949,2963,2967,2986,2998,3011,3025,3031,3035,3039,3049],{"__ignoreMap":281},[285,2859,2860],{"class":287,"line":288},[285,2861,2862],{"class":483},"\u002F\u002F server\u002Fapi\u002Fuser.get.ts\n",[285,2864,2865,2867,2869,2871,2873,2875,2877,2879],{"class":287,"line":318},[285,2866,292],{"class":291},[285,2868,296],{"class":295},[285,2870,300],{"class":299},[285,2872,303],{"class":295},[285,2874,306],{"class":291},[285,2876,309],{"class":295},[285,2878,182],{"class":312},[285,2880,315],{"class":295},[285,2882,2883,2885,2887,2889,2891,2893,2895,2897,2899],{"class":287,"line":325},[285,2884,292],{"class":291},[285,2886,919],{"class":291},[285,2888,296],{"class":295},[285,2890,924],{"class":299},[285,2892,303],{"class":295},[285,2894,306],{"class":291},[285,2896,309],{"class":295},[285,2898,186],{"class":312},[285,2900,315],{"class":295},[285,2902,2903],{"class":287,"line":386},[285,2904,322],{"emptyLinePlaceholder":321},[285,2906,2907,2909,2911,2914,2916,2918,2920,2923,2925,2927],{"class":287,"line":392},[285,2908,2181],{"class":291},[285,2910,2758],{"class":291},[285,2912,2913],{"class":338}," defineEventHandler",[285,2915,522],{"class":299},[285,2917,1631],{"class":328},[285,2919,2254],{"class":295},[285,2921,2922],{"class":1645},"event",[285,2924,1681],{"class":295},[285,2926,528],{"class":328},[285,2928,741],{"class":295},[285,2930,2931,2933,2935,2937,2939,2941,2943,2945,2947],{"class":287,"line":503},[285,2932,2195],{"class":328},[285,2934,296],{"class":295},[285,2936,2212],{"class":299},[285,2938,303],{"class":295},[285,2940,1222],{"class":295},[285,2942,1225],{"class":338},[285,2944,522],{"class":367},[285,2946,2922],{"class":299},[285,2948,638],{"class":367},[285,2950,2951,2953,2955,2957,2959,2961],{"class":287,"line":509},[285,2952,2195],{"class":328},[285,2954,1261],{"class":299},[285,2956,1222],{"class":295},[285,2958,2212],{"class":299},[285,2960,2233],{"class":291},[285,2962,1245],{"class":1244},[285,2964,2965],{"class":287,"line":540},[285,2966,2795],{"class":367},[285,2968,2969,2971,2973,2975,2977,2979,2982,2984],{"class":287,"line":565},[285,2970,2800],{"class":291},[285,2972,2254],{"class":367},[285,2974,2805],{"class":295},[285,2976,112],{"class":299},[285,2978,534],{"class":295},[285,2980,2981],{"class":299},"loggedIn",[285,2983,2815],{"class":367},[285,2985,2818],{"class":295},[285,2987,2988,2991,2994,2996],{"class":287,"line":590},[285,2989,2990],{"class":291},"    throw",[285,2992,2993],{"class":338}," createError",[285,2995,522],{"class":367},[285,2997,2818],{"class":295},[285,2999,3000,3003,3005,3009],{"class":287,"line":595},[285,3001,3002],{"class":367},"      statusCode",[285,3004,749],{"class":295},[285,3006,3008],{"class":3007},"sbssI"," 401",[285,3010,376],{"class":295},[285,3012,3013,3016,3018,3020,3023],{"class":287,"line":601},[285,3014,3015],{"class":367},"      statusMessage",[285,3017,749],{"class":295},[285,3019,309],{"class":295},[285,3021,3022],{"class":312},"Unauthorized",[285,3024,315],{"class":295},[285,3026,3027,3029],{"class":287,"line":616},[285,3028,2705],{"class":295},[285,3030,638],{"class":367},[285,3032,3033],{"class":287,"line":641},[285,3034,1588],{"class":295},[285,3036,3037],{"class":287,"line":1109},[285,3038,2795],{"class":367},[285,3040,3041,3043,3045,3047],{"class":287,"line":1526},[285,3042,1714],{"class":291},[285,3044,1261],{"class":299},[285,3046,534],{"class":295},[285,3048,1721],{"class":299},[285,3050,3051,3053],{"class":287,"line":1562},[285,3052,395],{"class":295},[285,3054,638],{"class":299},[189,3056,3058],{"id":3057},"troubleshooting","Troubleshooting",[223,3060,3062],{"id":3061},"alias-not-recognized","Alias Not Recognized",[176,3064,3065],{},"If aliases aren't recognized:",[3067,3068,3069,3072,3079,3082],"ol",{},[200,3070,3071],{},"Restart your IDE",[200,3073,3074,3075,3078],{},"Delete ",[180,3076,3077],{},".nuxt"," folder and rebuild",[200,3080,3081],{},"Check that the module is properly configured",[200,3083,3084],{},"Verify TypeScript configuration",[223,3086,3088],{"id":3087},"type-errors-with-aliases","Type Errors with Aliases",[176,3090,3091],{},"If you get type errors:",[276,3093,3095],{"className":278,"code":3094,"language":280,"meta":281,"style":281},"\u002F\u002F Ensure you're using 'type' keyword for type imports\nimport type { AuthInstance } from '#auth-types'\n\n\u002F\u002F Not\nimport { AuthInstance } from '#auth-types'\n",[180,3096,3097,3102,3122,3126,3131],{"__ignoreMap":281},[285,3098,3099],{"class":287,"line":288},[285,3100,3101],{"class":483},"\u002F\u002F Ensure you're using 'type' keyword for type imports\n",[285,3103,3104,3106,3108,3110,3112,3114,3116,3118,3120],{"class":287,"line":318},[285,3105,292],{"class":291},[285,3107,919],{"class":291},[285,3109,296],{"class":295},[285,3111,924],{"class":299},[285,3113,303],{"class":295},[285,3115,306],{"class":291},[285,3117,309],{"class":295},[285,3119,186],{"class":312},[285,3121,315],{"class":295},[285,3123,3124],{"class":287,"line":325},[285,3125,322],{"emptyLinePlaceholder":321},[285,3127,3128],{"class":287,"line":386},[285,3129,3130],{"class":483},"\u002F\u002F Not\n",[285,3132,3133,3135,3137,3139,3141,3143,3145,3147],{"class":287,"line":392},[285,3134,292],{"class":291},[285,3136,296],{"class":295},[285,3138,924],{"class":299},[285,3140,303],{"class":295},[285,3142,306],{"class":291},[285,3144,309],{"class":295},[285,3146,186],{"class":312},[285,3148,315],{"class":295},[223,3150,3152],{"id":3151},"wrong-provider-utils","Wrong Provider Utils",[176,3154,3155],{},"If you're getting wrong utilities:",[3067,3157,3158,3161,3164],{},[200,3159,3160],{},"Verify your provider configuration",[200,3162,3163],{},"Check that the module setup completed successfully",[200,3165,3166],{},"Restart the dev server after changing providers",[189,3168,3170],{"id":3169},"best-practices","Best Practices",[197,3172,3173,3179,3184,3191,3194,3197,3200],{},[200,3174,3175,3176,3178],{},"Always use ",[180,3177,182],{}," for utility imports",[200,3180,3175,3181,3183],{},[180,3182,186],{}," for type imports",[200,3185,3186,3187,3190],{},"Use ",[180,3188,3189],{},"type"," keyword for type-only imports",[200,3192,3193],{},"Create custom utilities that wrap the aliases",[200,3195,3196],{},"Leverage TypeScript for type safety",[200,3198,3199],{},"Keep imports at the top of files",[200,3201,3202],{},"Document custom utilities that use aliases",[189,3204,3206],{"id":3205},"migration-from-relative-imports","Migration from Relative Imports",[176,3208,3209],{},"If you're using relative imports, migrate to aliases:",[223,3211,3213],{"id":3212},"before","Before",[276,3215,3217],{"className":278,"code":3216,"language":280,"meta":281,"style":281},"import { useAuthStore } from '..\u002Fruntime\u002Fsanctum\u002Futils\u002Findex'\nimport type { AuthInstance } from '..\u002Fruntime\u002Ftypes\u002Findex'\n",[180,3218,3219,3238],{"__ignoreMap":281},[285,3220,3221,3223,3225,3227,3229,3231,3233,3236],{"class":287,"line":288},[285,3222,292],{"class":291},[285,3224,296],{"class":295},[285,3226,300],{"class":299},[285,3228,303],{"class":295},[285,3230,306],{"class":291},[285,3232,309],{"class":295},[285,3234,3235],{"class":312},"..\u002Fruntime\u002Fsanctum\u002Futils\u002Findex",[285,3237,315],{"class":295},[285,3239,3240,3242,3244,3246,3248,3250,3252,3254,3257],{"class":287,"line":318},[285,3241,292],{"class":291},[285,3243,919],{"class":291},[285,3245,296],{"class":295},[285,3247,924],{"class":299},[285,3249,303],{"class":295},[285,3251,306],{"class":291},[285,3253,309],{"class":295},[285,3255,3256],{"class":312},"..\u002Fruntime\u002Ftypes\u002Findex",[285,3258,315],{"class":295},[223,3260,3262],{"id":3261},"after","After",[276,3264,3266],{"className":278,"code":3265,"language":280,"meta":281,"style":281},"import { useAuthStore } from '#auth-utils'\nimport type { AuthInstance } from '#auth-types'\n",[180,3267,3268,3286],{"__ignoreMap":281},[285,3269,3270,3272,3274,3276,3278,3280,3282,3284],{"class":287,"line":288},[285,3271,292],{"class":291},[285,3273,296],{"class":295},[285,3275,300],{"class":299},[285,3277,303],{"class":295},[285,3279,306],{"class":291},[285,3281,309],{"class":295},[285,3283,182],{"class":312},[285,3285,315],{"class":295},[285,3287,3288,3290,3292,3294,3296,3298,3300,3302,3304],{"class":287,"line":318},[285,3289,292],{"class":291},[285,3291,919],{"class":291},[285,3293,296],{"class":295},[285,3295,924],{"class":299},[285,3297,303],{"class":295},[285,3299,306],{"class":291},[285,3301,309],{"class":295},[285,3303,186],{"class":312},[285,3305,315],{"class":295},[189,3307,3309],{"id":3308},"ide-support","IDE Support",[176,3311,3312],{},"Both VS Code and WebStorm fully support these aliases:",[197,3314,3315,3318,3321,3324,3327],{},[200,3316,3317],{},"Autocomplete for imports",[200,3319,3320],{},"Go to definition",[200,3322,3323],{},"Find references",[200,3325,3326],{},"Rename symbol",[200,3328,3329],{},"Type checking",[189,3331,3333],{"id":3332},"summary","Summary",[176,3335,3336],{},"Module aliases provide:",[197,3338,3339,3345,3351,3357,3363],{},[200,3340,3341,3344],{},[203,3342,3343],{},"Cleaner imports",": No relative paths",[200,3346,3347,3350],{},[203,3348,3349],{},"Type safety",": Full TypeScript support",[200,3352,3353,3356],{},[203,3354,3355],{},"Provider independence",": Works with any provider",[200,3358,3359,3362],{},[203,3360,3361],{},"Better refactoring",": Easier to maintain",[200,3364,3365,3368],{},[203,3366,3367],{},"IDE support",": Full autocomplete and navigation",[3370,3371,3372],"style",{},"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 .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 .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}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 .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}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 pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":281,"searchDepth":288,"depth":318,"links":3374},[3375,3376,3380,3385,3390,3394,3400,3405,3406,3411,3412,3416,3417],{"id":191,"depth":318,"text":192},{"id":220,"depth":318,"text":221,"children":3377},[3378,3379],{"id":225,"depth":325,"text":182},{"id":251,"depth":325,"text":186},{"id":269,"depth":318,"text":270,"children":3381},[3382,3383,3384],{"id":273,"depth":325,"text":274},{"id":344,"depth":325,"text":345},{"id":446,"depth":325,"text":447},{"id":902,"depth":318,"text":903,"children":3386},[3387,3388,3389],{"id":906,"depth":325,"text":907},{"id":942,"depth":325,"text":943},{"id":1174,"depth":325,"text":1175},{"id":1728,"depth":318,"text":1729,"children":3391},[3392,3393],{"id":1735,"depth":325,"text":1736},{"id":1803,"depth":325,"text":1804},{"id":1870,"depth":318,"text":1871,"children":3395},[3396,3397,3398,3399],{"id":1874,"depth":325,"text":1875},{"id":1975,"depth":325,"text":1976},{"id":2016,"depth":325,"text":2017},{"id":2078,"depth":325,"text":2079},{"id":2119,"depth":318,"text":2120,"children":3401},[3402,3403,3404],{"id":2123,"depth":325,"text":2124},{"id":2457,"depth":325,"text":2458},{"id":2718,"depth":325,"text":2719},{"id":2848,"depth":318,"text":2849},{"id":3057,"depth":318,"text":3058,"children":3407},[3408,3409,3410],{"id":3061,"depth":325,"text":3062},{"id":3087,"depth":325,"text":3088},{"id":3151,"depth":325,"text":3152},{"id":3169,"depth":318,"text":3170},{"id":3205,"depth":318,"text":3206,"children":3413},[3414,3415],{"id":3212,"depth":325,"text":3213},{"id":3261,"depth":325,"text":3262},{"id":3308,"depth":318,"text":3309},{"id":3332,"depth":318,"text":3333},"Using","md",null,{},{"icon":160},{"title":157,"description":3418},"yAXd3oCZwy_Hutqi2eYC4MkQaZbQ8Mis_nUTGLmV-M0",[3426,3428],{"title":153,"path":154,"stem":155,"description":3427,"icon":133,"children":-1},"TypeScript types and IDE support for Nuxt Umbu",{"title":162,"path":163,"stem":164,"description":3429,"icon":37,"children":-1},"CSRF protection and two-factor authentication (2FA) implementation",1785126615761]