@strands.gg/accui 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/nuxt/module.cjs.js +1 -1
- package/dist/nuxt/module.cjs.js.map +1 -1
- package/dist/nuxt/module.d.ts.map +1 -1
- package/dist/nuxt/module.es.js +16 -15
- package/dist/nuxt/module.es.js.map +1 -1
- package/dist/nuxt/runtime/composables/useStrandsAuth.cjs.js +2 -0
- package/dist/nuxt/runtime/composables/useStrandsAuth.cjs.js.map +1 -0
- package/dist/nuxt/runtime/composables/useStrandsAuth.d.ts +65 -0
- package/dist/nuxt/runtime/composables/useStrandsAuth.d.ts.map +1 -0
- package/dist/nuxt/runtime/composables/useStrandsAuth.es.js +41 -0
- package/dist/nuxt/runtime/composables/useStrandsAuth.es.js.map +1 -0
- package/dist/nuxt/runtime/middleware/auth.global.cjs.js +2 -0
- package/dist/nuxt/runtime/middleware/auth.global.cjs.js.map +1 -0
- package/dist/nuxt/runtime/middleware/auth.global.d.ts +3 -0
- package/dist/nuxt/runtime/middleware/auth.global.d.ts.map +1 -0
- package/dist/nuxt/runtime/middleware/auth.global.es.js +26 -0
- package/dist/nuxt/runtime/middleware/auth.global.es.js.map +1 -0
- package/dist/nuxt/runtime/plugin.client.cjs.js +2 -0
- package/dist/nuxt/runtime/plugin.client.cjs.js.map +1 -0
- package/dist/nuxt/runtime/plugin.client.d.ts +3 -0
- package/dist/nuxt/runtime/plugin.client.d.ts.map +1 -0
- package/dist/nuxt/runtime/plugin.client.es.js +12 -0
- package/dist/nuxt/runtime/plugin.client.es.js.map +1 -0
- package/dist/nuxt/runtime/plugin.server.cjs.js +2 -0
- package/dist/nuxt/runtime/plugin.server.cjs.js.map +1 -0
- package/dist/nuxt/runtime/plugin.server.d.ts +3 -0
- package/dist/nuxt/runtime/plugin.server.d.ts.map +1 -0
- package/dist/nuxt/runtime/plugin.server.es.js +11 -0
- package/dist/nuxt/runtime/plugin.server.es.js.map +1 -0
- package/dist/strands-auth-ui.cjs.js +1 -1
- package/dist/strands-auth-ui.cjs.js.map +1 -1
- package/dist/strands-auth-ui.es.js +758 -818
- package/dist/strands-auth-ui.es.js.map +1 -1
- package/dist/useStrandsAuth-Bh7evftS.js +66 -0
- package/dist/useStrandsAuth-Bh7evftS.js.map +1 -0
- package/dist/useStrandsAuth-sAfTQeGC.cjs +2 -0
- package/dist/useStrandsAuth-sAfTQeGC.cjs.map +1 -0
- package/package.json +1 -1
package/dist/nuxt/module.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const
|
|
1
|
+
"use strict";const t=require("@nuxt/kit");var u=typeof document<"u"?document.currentScript:null;const a=t.defineNuxtModule({meta:{name:"@strands.gg/auth-nuxt",configKey:"strandsAuth",compatibility:{nuxt:"^3.0.0"}},defaults:{apiBaseUrl:"https://your-api.example.com",accentColor:"#EA00A8",redirectUrl:"/",onSignInUrl:"/dashboard",onSignOutUrl:"/",autoRefresh:!0,refreshInterval:4,protectedRoutes:[],guestOnlyRoutes:["/auth","/login","/register"],devMode:!1,styles:!0},async setup(e,r){const s=t.createResolver(typeof document>"u"?require("url").pathToFileURL(__filename).href:u&&u.tagName.toUpperCase()==="SCRIPT"&&u.src||new URL("nuxt/module.cjs.js",document.baseURI).href);!e.clientId&&!e.devMode&&console.warn("⚠️ Strands Auth: clientId is required for production use"),r.options.runtimeConfig.public=r.options.runtimeConfig.public||{},r.options.runtimeConfig.public.strandsAuth={apiBaseUrl:e.apiBaseUrl,clientId:e.clientId,accentColor:e.accentColor,redirectUrl:e.redirectUrl,onSignInUrl:e.onSignInUrl,onSignOutUrl:e.onSignOutUrl,autoRefresh:e.autoRefresh,refreshInterval:e.refreshInterval,protectedRoutes:e.protectedRoutes,guestOnlyRoutes:e.guestOnlyRoutes,devMode:e.devMode,styles:e.styles!==!1},e.styles!==!1&&(r.options.css.push("@strands.gg/accui/style.css"),r.options.css.push(s.resolve("./runtime/styles.css"))),t.addPlugin({src:s.resolve("./runtime/plugin.client.es.js"),mode:"client"}),t.addPlugin({src:s.resolve("./runtime/plugin.server.es.js"),mode:"server"}),t.addPlugin({src:s.resolve("./runtime/middleware/auth.global.es.js"),mode:"all"}),r.hook("pages:extend",n=>{}),t.addImports([{name:"useStrandsAuth",as:"useStrandsAuth",from:s.resolve("./runtime/composables/useStrandsAuth.es.js")},{name:"useAuthUser",as:"useAuthUser",from:s.resolve("./runtime/composables/useStrandsAuth.es.js")},{name:"useAuthState",as:"useAuthState",from:s.resolve("./runtime/composables/useStrandsAuth.es.js")}]);const o=["StrandsAuth","StrandsSignIn","StrandsSignUp","StrandsUserProfile","StrandsPasswordReset","StrandsMFASetup","StrandsConfigProvider","SignedIn","SignedOut","StrandsLogo","StrandsSecuredFooter"];for(const n of o)t.addComponent({name:n,filePath:s.resolve(`../vue/components/${n}.vue`)});r.hook("prepare:types",n=>{n.references.push({types:"@strands.gg/auth-nuxt"})})}});module.exports=a;
|
|
2
2
|
//# sourceMappingURL=module.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.cjs.js","sources":["../../../../apps/accounts-ui/src/nuxt/module.ts"],"sourcesContent":["import { defineNuxtModule, addPlugin, createResolver, addImports, addComponent
|
|
1
|
+
{"version":3,"file":"module.cjs.js","sources":["../../../../apps/accounts-ui/src/nuxt/module.ts"],"sourcesContent":["import { defineNuxtModule, addPlugin, createResolver, addImports, addComponent } from '@nuxt/kit'\n\nexport interface StrandsAuthConfig {\n /**\n * Base URL for the Strands Auth API\n * @default 'https://your-api.example.com'\n */\n apiBaseUrl?: string\n\n /**\n * Client ID for authentication\n */\n clientId?: string\n\n /**\n * Primary accent color for the auth components\n * @default '#EA00A8'\n */\n accentColor?: string\n\n /**\n * Default redirect URL after successful authentication\n * @default '/'\n */\n redirectUrl?: string\n\n /**\n * URL to redirect to after successful sign in\n * @default '/dashboard'\n */\n onSignInUrl?: string\n\n /**\n * URL to redirect to after successful sign out\n * @default '/'\n */\n onSignOutUrl?: string\n\n /**\n * Enable automatic token refresh\n * @default true\n */\n autoRefresh?: boolean\n\n /**\n * Token refresh interval in minutes\n * @default 4\n */\n refreshInterval?: number\n\n /**\n * Pages that should redirect to sign in if user is not authenticated\n * @default []\n */\n protectedRoutes?: string[]\n\n /**\n * Pages that should redirect away if user IS authenticated\n * @default ['/auth', '/login', '/register']\n */\n guestOnlyRoutes?: string[]\n\n /**\n * Enable development mode (shows debug info)\n * @default false\n */\n devMode?: boolean\n\n /**\n * Automatically import CSS styles\n * Set to false if you want to manually import styles or use custom styling\n * @default true\n */\n styles?: boolean\n}\n\nexport default defineNuxtModule<StrandsAuthConfig>({\n meta: {\n name: '@strands.gg/auth-nuxt',\n configKey: 'strandsAuth',\n compatibility: {\n nuxt: '^3.0.0'\n }\n },\n defaults: {\n apiBaseUrl: 'https://your-api.example.com',\n accentColor: '#EA00A8',\n redirectUrl: '/',\n onSignInUrl: '/dashboard',\n onSignOutUrl: '/',\n autoRefresh: true,\n refreshInterval: 4,\n protectedRoutes: [],\n guestOnlyRoutes: ['/auth', '/login', '/register'],\n devMode: false,\n styles: true\n },\n async setup(options, nuxt) {\n const resolver = createResolver(import.meta.url)\n\n // Ensure we have required configuration\n if (!options.clientId && !options.devMode) {\n console.warn('⚠️ Strands Auth: clientId is required for production use')\n }\n\n // Add runtime config with proper typing\n nuxt.options.runtimeConfig.public = nuxt.options.runtimeConfig.public || {}\n ;(nuxt.options.runtimeConfig.public as any).strandsAuth = {\n apiBaseUrl: options.apiBaseUrl,\n clientId: options.clientId,\n accentColor: options.accentColor,\n redirectUrl: options.redirectUrl,\n onSignInUrl: options.onSignInUrl,\n onSignOutUrl: options.onSignOutUrl,\n autoRefresh: options.autoRefresh,\n refreshInterval: options.refreshInterval,\n protectedRoutes: options.protectedRoutes,\n guestOnlyRoutes: options.guestOnlyRoutes,\n devMode: options.devMode,\n styles: options.styles !== false // Default to true, allow disabling\n }\n\n // Conditionally add CSS for styling based on autoImportStyles setting\n if (options.styles !== false) {\n nuxt.options.css.push('@strands.gg/accui/style.css')\n nuxt.options.css.push(resolver.resolve('./runtime/styles.css'))\n }\n\n // Add the main plugin\n addPlugin({\n src: resolver.resolve('./runtime/plugin.client.es.js'),\n mode: 'client'\n })\n\n // Add server plugin for SSR support\n addPlugin({\n src: resolver.resolve('./runtime/plugin.server.es.js'),\n mode: 'server'\n })\n\n // Add middleware for route protection\n addPlugin({\n src: resolver.resolve('./runtime/middleware/auth.global.es.js'),\n mode: 'all'\n })\n\n // Add route middleware\n nuxt.hook('pages:extend', (pages) => {\n // This will be handled in the global middleware instead\n })\n\n // Auto-import composables\n addImports([\n {\n name: 'useStrandsAuth',\n as: 'useStrandsAuth',\n from: resolver.resolve('./runtime/composables/useStrandsAuth.es.js')\n },\n {\n name: 'useAuthUser',\n as: 'useAuthUser', \n from: resolver.resolve('./runtime/composables/useStrandsAuth.es.js')\n },\n {\n name: 'useAuthState',\n as: 'useAuthState',\n from: resolver.resolve('./runtime/composables/useStrandsAuth.es.js')\n }\n ])\n\n // Auto-register components (directly from Vue components)\n const components = [\n 'StrandsAuth',\n 'StrandsSignIn',\n 'StrandsSignUp',\n 'StrandsUserProfile',\n 'StrandsPasswordReset',\n 'StrandsMFASetup',\n 'StrandsConfigProvider',\n 'SignedIn',\n 'SignedOut',\n 'StrandsLogo',\n 'StrandsSecuredFooter'\n ]\n\n for (const component of components) {\n addComponent({\n name: component,\n filePath: resolver.resolve(`../vue/components/${component}.vue`)\n })\n }\n\n // Add type declarations\n nuxt.hook('prepare:types', (opts) => {\n opts.references.push({\n types: '@strands.gg/auth-nuxt'\n })\n })\n }\n})"],"names":["module$1","defineNuxtModule","options","nuxt","resolver","createResolver","addPlugin","pages","addImports","components","component","addComponent","opts"],"mappings":"gGA4EA,MAAAA,EAAeC,mBAAoC,CACjD,KAAM,CACJ,KAAM,wBACN,UAAW,cACX,cAAe,CACb,KAAM,QAAA,CACR,EAEF,SAAU,CACR,WAAY,+BACZ,YAAa,UACb,YAAa,IACb,YAAa,aACb,aAAc,IACd,YAAa,GACb,gBAAiB,EACjB,gBAAiB,CAAA,EACjB,gBAAiB,CAAC,QAAS,SAAU,WAAW,EAChD,QAAS,GACT,OAAQ,EAAA,EAEV,MAAM,MAAMC,EAASC,EAAM,CACzB,MAAMC,EAAWC,EAAAA,kLAA8B,EAG3C,CAACH,EAAQ,UAAY,CAACA,EAAQ,SAChC,QAAQ,KAAK,2DAA2D,EAI1EC,EAAK,QAAQ,cAAc,OAASA,EAAK,QAAQ,cAAc,QAAU,CAAA,EACvEA,EAAK,QAAQ,cAAc,OAAe,YAAc,CACxD,WAAYD,EAAQ,WACpB,SAAUA,EAAQ,SAClB,YAAaA,EAAQ,YACrB,YAAaA,EAAQ,YACrB,YAAaA,EAAQ,YACrB,aAAcA,EAAQ,aACtB,YAAaA,EAAQ,YACrB,gBAAiBA,EAAQ,gBACzB,gBAAiBA,EAAQ,gBACzB,gBAAiBA,EAAQ,gBACzB,QAASA,EAAQ,QACjB,OAAQA,EAAQ,SAAW,EAAA,EAIzBA,EAAQ,SAAW,KACrBC,EAAK,QAAQ,IAAI,KAAK,6BAA6B,EACnDA,EAAK,QAAQ,IAAI,KAAKC,EAAS,QAAQ,sBAAsB,CAAC,GAIhEE,YAAU,CACR,IAAKF,EAAS,QAAQ,+BAA+B,EACrD,KAAM,QAAA,CACP,EAGDE,YAAU,CACR,IAAKF,EAAS,QAAQ,+BAA+B,EACrD,KAAM,QAAA,CACP,EAGDE,YAAU,CACR,IAAKF,EAAS,QAAQ,wCAAwC,EAC9D,KAAM,KAAA,CACP,EAGDD,EAAK,KAAK,eAAiBI,GAAU,CAErC,CAAC,EAGDC,aAAW,CACT,CACE,KAAM,iBACN,GAAI,iBACJ,KAAMJ,EAAS,QAAQ,4CAA4C,CAAA,EAErE,CACE,KAAM,cACN,GAAI,cACJ,KAAMA,EAAS,QAAQ,4CAA4C,CAAA,EAErE,CACE,KAAM,eACN,GAAI,eACJ,KAAMA,EAAS,QAAQ,4CAA4C,CAAA,CACrE,CACD,EAGD,MAAMK,EAAa,CACjB,cACA,gBACA,gBACA,qBACA,uBACA,kBACA,wBACA,WACA,YACA,cACA,sBAAA,EAGF,UAAWC,KAAaD,EACtBE,eAAa,CACX,KAAMD,EACN,SAAUN,EAAS,QAAQ,qBAAqBM,CAAS,MAAM,CAAA,CAChE,EAIHP,EAAK,KAAK,gBAAkBS,GAAS,CACnCA,EAAK,WAAW,KAAK,CACnB,MAAO,uBAAA,CACR,CACH,CAAC,CACH,CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../apps/accounts-ui/src/nuxt/module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../apps/accounts-ui/src/nuxt/module.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IAErB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAE1B;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAE1B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;;AAED,wBA2HE"}
|
package/dist/nuxt/module.es.js
CHANGED
|
@@ -21,7 +21,7 @@ const c = o({
|
|
|
21
21
|
styles: !0
|
|
22
22
|
},
|
|
23
23
|
async setup(e, r) {
|
|
24
|
-
const
|
|
24
|
+
const s = u(import.meta.url);
|
|
25
25
|
!e.clientId && !e.devMode && console.warn("⚠️ Strands Auth: clientId is required for production use"), r.options.runtimeConfig.public = r.options.runtimeConfig.public || {}, r.options.runtimeConfig.public.strandsAuth = {
|
|
26
26
|
apiBaseUrl: e.apiBaseUrl,
|
|
27
27
|
clientId: e.clientId,
|
|
@@ -36,30 +36,31 @@ const c = o({
|
|
|
36
36
|
devMode: e.devMode,
|
|
37
37
|
styles: e.styles !== !1
|
|
38
38
|
// Default to true, allow disabling
|
|
39
|
-
}, e.styles !== !1 && (r.options.css.push("@strands.gg/accui/style.css"), r.options.css.push(
|
|
40
|
-
src:
|
|
39
|
+
}, e.styles !== !1 && (r.options.css.push("@strands.gg/accui/style.css"), r.options.css.push(s.resolve("./runtime/styles.css"))), n({
|
|
40
|
+
src: s.resolve("./runtime/plugin.client.es.js"),
|
|
41
41
|
mode: "client"
|
|
42
42
|
}), n({
|
|
43
|
-
src:
|
|
43
|
+
src: s.resolve("./runtime/plugin.server.es.js"),
|
|
44
44
|
mode: "server"
|
|
45
|
-
}),
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
}), n({
|
|
46
|
+
src: s.resolve("./runtime/middleware/auth.global.es.js"),
|
|
47
|
+
mode: "all"
|
|
48
|
+
}), r.hook("pages:extend", (t) => {
|
|
48
49
|
}), l([
|
|
49
50
|
{
|
|
50
51
|
name: "useStrandsAuth",
|
|
51
52
|
as: "useStrandsAuth",
|
|
52
|
-
from:
|
|
53
|
+
from: s.resolve("./runtime/composables/useStrandsAuth.es.js")
|
|
53
54
|
},
|
|
54
55
|
{
|
|
55
56
|
name: "useAuthUser",
|
|
56
57
|
as: "useAuthUser",
|
|
57
|
-
from:
|
|
58
|
+
from: s.resolve("./runtime/composables/useStrandsAuth.es.js")
|
|
58
59
|
},
|
|
59
60
|
{
|
|
60
61
|
name: "useAuthState",
|
|
61
62
|
as: "useAuthState",
|
|
62
|
-
from:
|
|
63
|
+
from: s.resolve("./runtime/composables/useStrandsAuth.es.js")
|
|
63
64
|
}
|
|
64
65
|
]);
|
|
65
66
|
const a = [
|
|
@@ -75,13 +76,13 @@ const c = o({
|
|
|
75
76
|
"StrandsLogo",
|
|
76
77
|
"StrandsSecuredFooter"
|
|
77
78
|
];
|
|
78
|
-
for (const
|
|
79
|
+
for (const t of a)
|
|
79
80
|
d({
|
|
80
|
-
name:
|
|
81
|
-
filePath:
|
|
81
|
+
name: t,
|
|
82
|
+
filePath: s.resolve(`../vue/components/${t}.vue`)
|
|
82
83
|
});
|
|
83
|
-
r.hook("prepare:types", (
|
|
84
|
-
|
|
84
|
+
r.hook("prepare:types", (t) => {
|
|
85
|
+
t.references.push({
|
|
85
86
|
types: "@strands.gg/auth-nuxt"
|
|
86
87
|
});
|
|
87
88
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.es.js","sources":["../../../../apps/accounts-ui/src/nuxt/module.ts"],"sourcesContent":["import { defineNuxtModule, addPlugin, createResolver, addImports, addComponent
|
|
1
|
+
{"version":3,"file":"module.es.js","sources":["../../../../apps/accounts-ui/src/nuxt/module.ts"],"sourcesContent":["import { defineNuxtModule, addPlugin, createResolver, addImports, addComponent } from '@nuxt/kit'\n\nexport interface StrandsAuthConfig {\n /**\n * Base URL for the Strands Auth API\n * @default 'https://your-api.example.com'\n */\n apiBaseUrl?: string\n\n /**\n * Client ID for authentication\n */\n clientId?: string\n\n /**\n * Primary accent color for the auth components\n * @default '#EA00A8'\n */\n accentColor?: string\n\n /**\n * Default redirect URL after successful authentication\n * @default '/'\n */\n redirectUrl?: string\n\n /**\n * URL to redirect to after successful sign in\n * @default '/dashboard'\n */\n onSignInUrl?: string\n\n /**\n * URL to redirect to after successful sign out\n * @default '/'\n */\n onSignOutUrl?: string\n\n /**\n * Enable automatic token refresh\n * @default true\n */\n autoRefresh?: boolean\n\n /**\n * Token refresh interval in minutes\n * @default 4\n */\n refreshInterval?: number\n\n /**\n * Pages that should redirect to sign in if user is not authenticated\n * @default []\n */\n protectedRoutes?: string[]\n\n /**\n * Pages that should redirect away if user IS authenticated\n * @default ['/auth', '/login', '/register']\n */\n guestOnlyRoutes?: string[]\n\n /**\n * Enable development mode (shows debug info)\n * @default false\n */\n devMode?: boolean\n\n /**\n * Automatically import CSS styles\n * Set to false if you want to manually import styles or use custom styling\n * @default true\n */\n styles?: boolean\n}\n\nexport default defineNuxtModule<StrandsAuthConfig>({\n meta: {\n name: '@strands.gg/auth-nuxt',\n configKey: 'strandsAuth',\n compatibility: {\n nuxt: '^3.0.0'\n }\n },\n defaults: {\n apiBaseUrl: 'https://your-api.example.com',\n accentColor: '#EA00A8',\n redirectUrl: '/',\n onSignInUrl: '/dashboard',\n onSignOutUrl: '/',\n autoRefresh: true,\n refreshInterval: 4,\n protectedRoutes: [],\n guestOnlyRoutes: ['/auth', '/login', '/register'],\n devMode: false,\n styles: true\n },\n async setup(options, nuxt) {\n const resolver = createResolver(import.meta.url)\n\n // Ensure we have required configuration\n if (!options.clientId && !options.devMode) {\n console.warn('⚠️ Strands Auth: clientId is required for production use')\n }\n\n // Add runtime config with proper typing\n nuxt.options.runtimeConfig.public = nuxt.options.runtimeConfig.public || {}\n ;(nuxt.options.runtimeConfig.public as any).strandsAuth = {\n apiBaseUrl: options.apiBaseUrl,\n clientId: options.clientId,\n accentColor: options.accentColor,\n redirectUrl: options.redirectUrl,\n onSignInUrl: options.onSignInUrl,\n onSignOutUrl: options.onSignOutUrl,\n autoRefresh: options.autoRefresh,\n refreshInterval: options.refreshInterval,\n protectedRoutes: options.protectedRoutes,\n guestOnlyRoutes: options.guestOnlyRoutes,\n devMode: options.devMode,\n styles: options.styles !== false // Default to true, allow disabling\n }\n\n // Conditionally add CSS for styling based on autoImportStyles setting\n if (options.styles !== false) {\n nuxt.options.css.push('@strands.gg/accui/style.css')\n nuxt.options.css.push(resolver.resolve('./runtime/styles.css'))\n }\n\n // Add the main plugin\n addPlugin({\n src: resolver.resolve('./runtime/plugin.client.es.js'),\n mode: 'client'\n })\n\n // Add server plugin for SSR support\n addPlugin({\n src: resolver.resolve('./runtime/plugin.server.es.js'),\n mode: 'server'\n })\n\n // Add middleware for route protection\n addPlugin({\n src: resolver.resolve('./runtime/middleware/auth.global.es.js'),\n mode: 'all'\n })\n\n // Add route middleware\n nuxt.hook('pages:extend', (pages) => {\n // This will be handled in the global middleware instead\n })\n\n // Auto-import composables\n addImports([\n {\n name: 'useStrandsAuth',\n as: 'useStrandsAuth',\n from: resolver.resolve('./runtime/composables/useStrandsAuth.es.js')\n },\n {\n name: 'useAuthUser',\n as: 'useAuthUser', \n from: resolver.resolve('./runtime/composables/useStrandsAuth.es.js')\n },\n {\n name: 'useAuthState',\n as: 'useAuthState',\n from: resolver.resolve('./runtime/composables/useStrandsAuth.es.js')\n }\n ])\n\n // Auto-register components (directly from Vue components)\n const components = [\n 'StrandsAuth',\n 'StrandsSignIn',\n 'StrandsSignUp',\n 'StrandsUserProfile',\n 'StrandsPasswordReset',\n 'StrandsMFASetup',\n 'StrandsConfigProvider',\n 'SignedIn',\n 'SignedOut',\n 'StrandsLogo',\n 'StrandsSecuredFooter'\n ]\n\n for (const component of components) {\n addComponent({\n name: component,\n filePath: resolver.resolve(`../vue/components/${component}.vue`)\n })\n }\n\n // Add type declarations\n nuxt.hook('prepare:types', (opts) => {\n opts.references.push({\n types: '@strands.gg/auth-nuxt'\n })\n })\n }\n})"],"names":["module","defineNuxtModule","options","nuxt","resolver","createResolver","addPlugin","pages","addImports","components","component","addComponent","opts"],"mappings":";AA4EA,MAAAA,IAAeC,EAAoC;AAAA,EACjD,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,WAAW;AAAA,IACX,eAAe;AAAA,MACb,MAAM;AAAA,IAAA;AAAA,EACR;AAAA,EAEF,UAAU;AAAA,IACR,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,iBAAiB,CAAA;AAAA,IACjB,iBAAiB,CAAC,SAAS,UAAU,WAAW;AAAA,IAChD,SAAS;AAAA,IACT,QAAQ;AAAA,EAAA;AAAA,EAEV,MAAM,MAAMC,GAASC,GAAM;AACzB,UAAMC,IAAWC,EAAe,YAAY,GAAG;AAG/C,IAAI,CAACH,EAAQ,YAAY,CAACA,EAAQ,WAChC,QAAQ,KAAK,2DAA2D,GAI1EC,EAAK,QAAQ,cAAc,SAASA,EAAK,QAAQ,cAAc,UAAU,CAAA,GACvEA,EAAK,QAAQ,cAAc,OAAe,cAAc;AAAA,MACxD,YAAYD,EAAQ;AAAA,MACpB,UAAUA,EAAQ;AAAA,MAClB,aAAaA,EAAQ;AAAA,MACrB,aAAaA,EAAQ;AAAA,MACrB,aAAaA,EAAQ;AAAA,MACrB,cAAcA,EAAQ;AAAA,MACtB,aAAaA,EAAQ;AAAA,MACrB,iBAAiBA,EAAQ;AAAA,MACzB,iBAAiBA,EAAQ;AAAA,MACzB,iBAAiBA,EAAQ;AAAA,MACzB,SAASA,EAAQ;AAAA,MACjB,QAAQA,EAAQ,WAAW;AAAA;AAAA,IAAA,GAIzBA,EAAQ,WAAW,OACrBC,EAAK,QAAQ,IAAI,KAAK,6BAA6B,GACnDA,EAAK,QAAQ,IAAI,KAAKC,EAAS,QAAQ,sBAAsB,CAAC,IAIhEE,EAAU;AAAA,MACR,KAAKF,EAAS,QAAQ,+BAA+B;AAAA,MACrD,MAAM;AAAA,IAAA,CACP,GAGDE,EAAU;AAAA,MACR,KAAKF,EAAS,QAAQ,+BAA+B;AAAA,MACrD,MAAM;AAAA,IAAA,CACP,GAGDE,EAAU;AAAA,MACR,KAAKF,EAAS,QAAQ,wCAAwC;AAAA,MAC9D,MAAM;AAAA,IAAA,CACP,GAGDD,EAAK,KAAK,gBAAgB,CAACI,MAAU;AAAA,IAErC,CAAC,GAGDC,EAAW;AAAA,MACT;AAAA,QACE,MAAM;AAAA,QACN,IAAI;AAAA,QACJ,MAAMJ,EAAS,QAAQ,4CAA4C;AAAA,MAAA;AAAA,MAErE;AAAA,QACE,MAAM;AAAA,QACN,IAAI;AAAA,QACJ,MAAMA,EAAS,QAAQ,4CAA4C;AAAA,MAAA;AAAA,MAErE;AAAA,QACE,MAAM;AAAA,QACN,IAAI;AAAA,QACJ,MAAMA,EAAS,QAAQ,4CAA4C;AAAA,MAAA;AAAA,IACrE,CACD;AAGD,UAAMK,IAAa;AAAA,MACjB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAGF,eAAWC,KAAaD;AACtB,MAAAE,EAAa;AAAA,QACX,MAAMD;AAAA,QACN,UAAUN,EAAS,QAAQ,qBAAqBM,CAAS,MAAM;AAAA,MAAA,CAChE;AAIH,IAAAP,EAAK,KAAK,iBAAiB,CAACS,MAAS;AACnC,MAAAA,EAAK,WAAW,KAAK;AAAA,QACnB,OAAO;AAAA,MAAA,CACR;AAAA,IACH,CAAC;AAAA,EACH;AACF,CAAC;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("nuxt/app"),a=require("../../../useStrandsAuth-sAfTQeGC.cjs"),u=()=>{const t=e.useRuntimeConfig().public.strandsAuth,n=a.useStrandsAuth();return{...n,initialize:async()=>{await n.initialize()},signIn:async s=>{const i=await n.signIn(s);return i&&t.onSignInUrl&&await e.navigateTo(t.onSignInUrl),i},signUp:async s=>await n.signUp({email:s.email,password:"",firstName:"",lastName:""}),signOut:async()=>{await n.signOut(),t.onSignOutUrl&&await e.navigateTo(t.onSignOutUrl)}}},r=()=>{const{user:t}=u();return t},o=()=>{const{isAuthenticated:t,isLoading:n}=u();return{isAuthenticated:t,isLoading:n}};exports.useAuthState=o;exports.useAuthUser=r;exports.useStrandsAuth=u;
|
|
2
|
+
//# sourceMappingURL=useStrandsAuth.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useStrandsAuth.cjs.js","sources":["../../../../../../apps/accounts-ui/src/nuxt/runtime/composables/useStrandsAuth.ts"],"sourcesContent":["import type { Ref } from 'vue'\nimport { useRuntimeConfig } from 'nuxt/app'\nimport { navigateTo } from 'nuxt/app'\nimport { useStrandsAuth as useVueStrandsAuth } from '../../../vue/composables/useStrandsAuth'\nimport type { StrandsAuthConfig } from '../../module'\n\nexport const useStrandsAuth = () => {\n const config = useRuntimeConfig().public['strandsAuth'] as StrandsAuthConfig\n \n // Get the base Vue composable\n const vueAuth = useVueStrandsAuth()\n\n // Initialize function for setup\n const initialize = async () => {\n await vueAuth.initialize()\n }\n\n // Enhanced signIn with Nuxt navigation\n const signIn = async (credentials: { email: string; password: string }) => {\n const result = await vueAuth.signIn(credentials)\n \n // Navigate to configured sign-in URL on success\n if (result && config.onSignInUrl) {\n await navigateTo(config.onSignInUrl)\n }\n \n return result\n }\n\n // Enhanced signUp with Nuxt navigation (magic link flow)\n const signUp = async (userData: { email: string }) => {\n // For magic link flow, we just need an email\n const result = await vueAuth.signUp({\n email: userData.email,\n password: '', // Empty password for magic link\n firstName: '', // Will be filled later in the magic link flow\n lastName: ''\n })\n \n // For magic link, we don't navigate immediately\n // The user will complete signup via the magic link\n \n return result\n }\n\n // Enhanced signOut with Nuxt navigation\n const signOut = async () => {\n await vueAuth.signOut()\n \n // Navigate to configured sign-out URL\n if (config.onSignOutUrl) {\n await navigateTo(config.onSignOutUrl)\n }\n }\n\n return {\n // Re-export Vue composable state and methods\n ...vueAuth,\n \n // Add initialize function\n initialize,\n \n // Override methods with Nuxt-specific navigation\n signIn,\n signUp,\n signOut,\n }\n}\n\n// Convenience composables\nexport const useAuthUser = () => {\n const { user } = useStrandsAuth()\n return user\n}\n\nexport const useAuthState = () => {\n const { isAuthenticated, isLoading } = useStrandsAuth()\n return { isAuthenticated, isLoading }\n}"],"names":["useStrandsAuth","config","useRuntimeConfig","vueAuth","useVueStrandsAuth","credentials","result","navigateTo","userData","useAuthUser","user","useAuthState","isAuthenticated","isLoading"],"mappings":"8JAMaA,EAAiB,IAAM,CAClC,MAAMC,EAASC,EAAAA,mBAAmB,OAAO,YAGnCC,EAAUC,EAAAA,eAAA,EA6ChB,MAAO,CAEL,GAAGD,EAGH,WA/CiB,SAAY,CAC7B,MAAMA,EAAQ,WAAA,CAChB,EAgDE,OA7Ca,MAAOE,GAAqD,CACzE,MAAMC,EAAS,MAAMH,EAAQ,OAAOE,CAAW,EAG/C,OAAIC,GAAUL,EAAO,aACnB,MAAMM,EAAAA,WAAWN,EAAO,WAAW,EAG9BK,CACT,EAqCE,OAlCa,MAAOE,GAEL,MAAML,EAAQ,OAAO,CAClC,MAAOK,EAAS,MAChB,SAAU,GACV,UAAW,GACX,SAAU,EAAA,CACX,EA4BD,QAnBc,SAAY,CAC1B,MAAML,EAAQ,QAAA,EAGVF,EAAO,cACT,MAAMM,EAAAA,WAAWN,EAAO,YAAY,CAExC,CAYE,CAEJ,EAGaQ,EAAc,IAAM,CAC/B,KAAM,CAAE,KAAAC,CAAA,EAASV,EAAA,EACjB,OAAOU,CACT,EAEaC,EAAe,IAAM,CAChC,KAAM,CAAE,gBAAAC,EAAiB,UAAAC,CAAA,EAAcb,EAAA,EACvC,MAAO,CAAE,gBAAAY,EAAiB,UAAAC,CAAA,CAC5B"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
export declare const useStrandsAuth: () => {
|
|
2
|
+
initialize: () => Promise<void>;
|
|
3
|
+
signIn: (credentials: {
|
|
4
|
+
email: string;
|
|
5
|
+
password: string;
|
|
6
|
+
}) => Promise<never>;
|
|
7
|
+
signUp: (userData: {
|
|
8
|
+
email: string;
|
|
9
|
+
}) => Promise<never>;
|
|
10
|
+
signOut: () => Promise<void>;
|
|
11
|
+
user: import('vue').ComputedRef<{
|
|
12
|
+
id: string;
|
|
13
|
+
email: string;
|
|
14
|
+
firstName: string;
|
|
15
|
+
lastName: string;
|
|
16
|
+
phone?: string | undefined;
|
|
17
|
+
avatar?: string | undefined;
|
|
18
|
+
mfaEnabled: boolean;
|
|
19
|
+
emailVerified: boolean;
|
|
20
|
+
createdAt: string | Date;
|
|
21
|
+
updatedAt: string | Date;
|
|
22
|
+
} | null>;
|
|
23
|
+
currentUser: import('vue').ComputedRef<{
|
|
24
|
+
id: string;
|
|
25
|
+
email: string;
|
|
26
|
+
firstName: string;
|
|
27
|
+
lastName: string;
|
|
28
|
+
phone?: string | undefined;
|
|
29
|
+
avatar?: string | undefined;
|
|
30
|
+
mfaEnabled: boolean;
|
|
31
|
+
emailVerified: boolean;
|
|
32
|
+
createdAt: string | Date;
|
|
33
|
+
updatedAt: string | Date;
|
|
34
|
+
} | null>;
|
|
35
|
+
currentSession: import('vue').ComputedRef<{
|
|
36
|
+
id?: string | undefined;
|
|
37
|
+
userId?: string | undefined;
|
|
38
|
+
accessToken: string;
|
|
39
|
+
refreshToken: string;
|
|
40
|
+
expiresAt: Date;
|
|
41
|
+
createdAt?: Date | undefined;
|
|
42
|
+
} | null>;
|
|
43
|
+
isAuthenticated: import('vue').ComputedRef<boolean>;
|
|
44
|
+
isLoading: import('vue').ComputedRef<boolean>;
|
|
45
|
+
loading: import('vue').ComputedRef<boolean>;
|
|
46
|
+
refreshToken: () => Promise<void>;
|
|
47
|
+
updateProfile: (profileData: Partial<import('../../..').User>) => Promise<void>;
|
|
48
|
+
};
|
|
49
|
+
export declare const useAuthUser: () => import('vue').ComputedRef<{
|
|
50
|
+
id: string;
|
|
51
|
+
email: string;
|
|
52
|
+
firstName: string;
|
|
53
|
+
lastName: string;
|
|
54
|
+
phone?: string | undefined;
|
|
55
|
+
avatar?: string | undefined;
|
|
56
|
+
mfaEnabled: boolean;
|
|
57
|
+
emailVerified: boolean;
|
|
58
|
+
createdAt: string | Date;
|
|
59
|
+
updatedAt: string | Date;
|
|
60
|
+
} | null>;
|
|
61
|
+
export declare const useAuthState: () => {
|
|
62
|
+
isAuthenticated: import('vue').ComputedRef<boolean>;
|
|
63
|
+
isLoading: import('vue').ComputedRef<boolean>;
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=useStrandsAuth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useStrandsAuth.d.ts","sourceRoot":"","sources":["../../../../../../apps/accounts-ui/src/nuxt/runtime/composables/useStrandsAuth.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,cAAc;;0BAYU;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;uBAYtC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqClD,CAAA;AAGD,eAAO,MAAM,WAAW;;;;;;;;;;;SAGvB,CAAA;AAED,eAAO,MAAM,YAAY;;;CAGxB,CAAA"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { useRuntimeConfig as e, navigateTo as a } from "nuxt/app";
|
|
2
|
+
import { u as r } from "../../../useStrandsAuth-Bh7evftS.js";
|
|
3
|
+
const u = () => {
|
|
4
|
+
const n = e().public.strandsAuth, t = r();
|
|
5
|
+
return {
|
|
6
|
+
// Re-export Vue composable state and methods
|
|
7
|
+
...t,
|
|
8
|
+
// Add initialize function
|
|
9
|
+
initialize: async () => {
|
|
10
|
+
await t.initialize();
|
|
11
|
+
},
|
|
12
|
+
// Override methods with Nuxt-specific navigation
|
|
13
|
+
signIn: async (i) => {
|
|
14
|
+
const s = await t.signIn(i);
|
|
15
|
+
return s && n.onSignInUrl && await a(n.onSignInUrl), s;
|
|
16
|
+
},
|
|
17
|
+
signUp: async (i) => await t.signUp({
|
|
18
|
+
email: i.email,
|
|
19
|
+
password: "",
|
|
20
|
+
// Empty password for magic link
|
|
21
|
+
firstName: "",
|
|
22
|
+
// Will be filled later in the magic link flow
|
|
23
|
+
lastName: ""
|
|
24
|
+
}),
|
|
25
|
+
signOut: async () => {
|
|
26
|
+
await t.signOut(), n.onSignOutUrl && await a(n.onSignOutUrl);
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
}, U = () => {
|
|
30
|
+
const { user: n } = u();
|
|
31
|
+
return n;
|
|
32
|
+
}, f = () => {
|
|
33
|
+
const { isAuthenticated: n, isLoading: t } = u();
|
|
34
|
+
return { isAuthenticated: n, isLoading: t };
|
|
35
|
+
};
|
|
36
|
+
export {
|
|
37
|
+
f as useAuthState,
|
|
38
|
+
U as useAuthUser,
|
|
39
|
+
u as useStrandsAuth
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=useStrandsAuth.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useStrandsAuth.es.js","sources":["../../../../../../apps/accounts-ui/src/nuxt/runtime/composables/useStrandsAuth.ts"],"sourcesContent":["import type { Ref } from 'vue'\nimport { useRuntimeConfig } from 'nuxt/app'\nimport { navigateTo } from 'nuxt/app'\nimport { useStrandsAuth as useVueStrandsAuth } from '../../../vue/composables/useStrandsAuth'\nimport type { StrandsAuthConfig } from '../../module'\n\nexport const useStrandsAuth = () => {\n const config = useRuntimeConfig().public['strandsAuth'] as StrandsAuthConfig\n \n // Get the base Vue composable\n const vueAuth = useVueStrandsAuth()\n\n // Initialize function for setup\n const initialize = async () => {\n await vueAuth.initialize()\n }\n\n // Enhanced signIn with Nuxt navigation\n const signIn = async (credentials: { email: string; password: string }) => {\n const result = await vueAuth.signIn(credentials)\n \n // Navigate to configured sign-in URL on success\n if (result && config.onSignInUrl) {\n await navigateTo(config.onSignInUrl)\n }\n \n return result\n }\n\n // Enhanced signUp with Nuxt navigation (magic link flow)\n const signUp = async (userData: { email: string }) => {\n // For magic link flow, we just need an email\n const result = await vueAuth.signUp({\n email: userData.email,\n password: '', // Empty password for magic link\n firstName: '', // Will be filled later in the magic link flow\n lastName: ''\n })\n \n // For magic link, we don't navigate immediately\n // The user will complete signup via the magic link\n \n return result\n }\n\n // Enhanced signOut with Nuxt navigation\n const signOut = async () => {\n await vueAuth.signOut()\n \n // Navigate to configured sign-out URL\n if (config.onSignOutUrl) {\n await navigateTo(config.onSignOutUrl)\n }\n }\n\n return {\n // Re-export Vue composable state and methods\n ...vueAuth,\n \n // Add initialize function\n initialize,\n \n // Override methods with Nuxt-specific navigation\n signIn,\n signUp,\n signOut,\n }\n}\n\n// Convenience composables\nexport const useAuthUser = () => {\n const { user } = useStrandsAuth()\n return user\n}\n\nexport const useAuthState = () => {\n const { isAuthenticated, isLoading } = useStrandsAuth()\n return { isAuthenticated, isLoading }\n}"],"names":["useStrandsAuth","config","useRuntimeConfig","vueAuth","useVueStrandsAuth","credentials","result","navigateTo","userData","useAuthUser","user","useAuthState","isAuthenticated","isLoading"],"mappings":";;AAMO,MAAMA,IAAiB,MAAM;AAClC,QAAMC,IAASC,IAAmB,OAAO,aAGnCC,IAAUC,EAAA;AA6ChB,SAAO;AAAA;AAAA,IAEL,GAAGD;AAAA;AAAA,IAGH,YA/CiB,YAAY;AAC7B,YAAMA,EAAQ,WAAA;AAAA,IAChB;AAAA;AAAA,IAgDE,QA7Ca,OAAOE,MAAqD;AACzE,YAAMC,IAAS,MAAMH,EAAQ,OAAOE,CAAW;AAG/C,aAAIC,KAAUL,EAAO,eACnB,MAAMM,EAAWN,EAAO,WAAW,GAG9BK;AAAA,IACT;AAAA,IAqCE,QAlCa,OAAOE,MAEL,MAAML,EAAQ,OAAO;AAAA,MAClC,OAAOK,EAAS;AAAA,MAChB,UAAU;AAAA;AAAA,MACV,WAAW;AAAA;AAAA,MACX,UAAU;AAAA,IAAA,CACX;AAAA,IA4BD,SAnBc,YAAY;AAC1B,YAAML,EAAQ,QAAA,GAGVF,EAAO,gBACT,MAAMM,EAAWN,EAAO,YAAY;AAAA,IAExC;AAAA,EAYE;AAEJ,GAGaQ,IAAc,MAAM;AAC/B,QAAM,EAAE,MAAAC,EAAA,IAASV,EAAA;AACjB,SAAOU;AACT,GAEaC,IAAe,MAAM;AAChC,QAAM,EAAE,iBAAAC,GAAiB,WAAAC,EAAA,IAAcb,EAAA;AACvC,SAAO,EAAE,iBAAAY,GAAiB,WAAAC,EAAA;AAC5B;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const s=require("nuxt/app"),l=s.defineNuxtRouteMiddleware(o=>{const n=s.useRuntimeConfig().public.strandsAuth;if(!process.server)return new Promise(u=>{Promise.resolve().then(()=>require("../composables/useStrandsAuth.cjs.js")).then(({useStrandsAuth:c})=>{const{isAuthenticated:r,isLoading:a}=c(),i=()=>{if(a.value){setTimeout(i,50);return}const e=o.path,h=n.protectedRoutes?.some(t=>t.endsWith("*")?e.startsWith(t.slice(0,-1)):e===t||e.startsWith(t+"/")),d=n.guestOnlyRoutes?.some(t=>t.endsWith("*")?e.startsWith(t.slice(0,-1)):e===t||e.startsWith(t+"/"));if(h&&!r.value)return console.log("[Strands Auth] Protected route accessed without authentication, redirecting to auth"),s.navigateTo("/auth?redirect="+encodeURIComponent(e));if(d&&r.value)return console.log("[Strands Auth] Guest-only route accessed while authenticated, redirecting"),s.navigateTo(n.onSignInUrl||"/dashboard");u()};i()})})});module.exports=l;
|
|
2
|
+
//# sourceMappingURL=auth.global.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.global.cjs.js","sources":["../../../../../../apps/accounts-ui/src/nuxt/runtime/middleware/auth.global.ts"],"sourcesContent":["import { defineNuxtRouteMiddleware, navigateTo, useRuntimeConfig } from 'nuxt/app'\nimport type { StrandsAuthConfig } from '../../module'\n\nexport default defineNuxtRouteMiddleware((to) => {\n const config = useRuntimeConfig().public['strandsAuth'] as StrandsAuthConfig\n\n // Skip middleware during SSR/build\n if (process.server) return\n\n // Import composable dynamically on client side\n return new Promise<void>((resolve) => {\n import('../composables/useStrandsAuth').then(({ useStrandsAuth }) => {\n const { isAuthenticated, isLoading } = useStrandsAuth()\n\n // Wait for auth initialization\n const checkAuth = () => {\n if (isLoading.value) {\n setTimeout(checkAuth, 50)\n return\n }\n\n const currentPath = to.path\n\n // Check if current route should be protected\n const isProtectedRoute = config.protectedRoutes?.some((route: string) => {\n if (route.endsWith('*')) {\n return currentPath.startsWith(route.slice(0, -1))\n }\n return currentPath === route || currentPath.startsWith(route + '/')\n })\n\n // Check if current route is guest-only\n const isGuestOnlyRoute = config.guestOnlyRoutes?.some((route: string) => {\n if (route.endsWith('*')) {\n return currentPath.startsWith(route.slice(0, -1))\n }\n return currentPath === route || currentPath.startsWith(route + '/')\n })\n\n // Redirect unauthenticated users from protected routes\n if (isProtectedRoute && !isAuthenticated.value) {\n console.log('[Strands Auth] Protected route accessed without authentication, redirecting to auth')\n return navigateTo('/auth?redirect=' + encodeURIComponent(currentPath))\n }\n\n // Redirect authenticated users from guest-only routes\n if (isGuestOnlyRoute && isAuthenticated.value) {\n console.log('[Strands Auth] Guest-only route accessed while authenticated, redirecting')\n return navigateTo(config.onSignInUrl || '/dashboard')\n }\n\n resolve()\n }\n\n checkAuth()\n })\n })\n})"],"names":["auth_global","defineNuxtRouteMiddleware","to","config","useRuntimeConfig","resolve","useStrandsAuth","isAuthenticated","isLoading","checkAuth","currentPath","isProtectedRoute","route","isGuestOnlyRoute","navigateTo"],"mappings":"yCAGAA,EAAeC,EAAAA,0BAA2BC,GAAO,CAC/C,MAAMC,EAASC,EAAAA,mBAAmB,OAAO,YAGzC,GAAI,SAAQ,OAGZ,OAAO,IAAI,QAAeC,GAAY,CACpC,QAAA,QAAA,EAAA,KAAA,IAAA,QAAO,sCAA+B,CAAA,EAAE,KAAK,CAAC,CAAE,eAAAC,KAAqB,CACnE,KAAM,CAAE,gBAAAC,EAAiB,UAAAC,CAAA,EAAcF,EAAA,EAGjCG,EAAY,IAAM,CACtB,GAAID,EAAU,MAAO,CACnB,WAAWC,EAAW,EAAE,EACxB,MACF,CAEA,MAAMC,EAAcR,EAAG,KAGjBS,EAAmBR,EAAO,iBAAiB,KAAMS,GACjDA,EAAM,SAAS,GAAG,EACbF,EAAY,WAAWE,EAAM,MAAM,EAAG,EAAE,CAAC,EAE3CF,IAAgBE,GAASF,EAAY,WAAWE,EAAQ,GAAG,CACnE,EAGKC,EAAmBV,EAAO,iBAAiB,KAAMS,GACjDA,EAAM,SAAS,GAAG,EACbF,EAAY,WAAWE,EAAM,MAAM,EAAG,EAAE,CAAC,EAE3CF,IAAgBE,GAASF,EAAY,WAAWE,EAAQ,GAAG,CACnE,EAGD,GAAID,GAAoB,CAACJ,EAAgB,MACvC,eAAQ,IAAI,qFAAqF,EAC1FO,aAAW,kBAAoB,mBAAmBJ,CAAW,CAAC,EAIvE,GAAIG,GAAoBN,EAAgB,MACtC,eAAQ,IAAI,2EAA2E,EAChFO,aAAWX,EAAO,aAAe,YAAY,EAGtDE,EAAA,CACF,EAEAI,EAAA,CACF,CAAC,CACH,CAAC,CACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.global.d.ts","sourceRoot":"","sources":["../../../../../../apps/accounts-ui/src/nuxt/runtime/middleware/auth.global.ts"],"names":[],"mappings":";AAGA,wBAsDE"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { defineNuxtRouteMiddleware as l, useRuntimeConfig as f, navigateTo as i } from "nuxt/app";
|
|
2
|
+
const m = l((o) => {
|
|
3
|
+
const s = f().public.strandsAuth;
|
|
4
|
+
if (!process.server)
|
|
5
|
+
return new Promise((u) => {
|
|
6
|
+
import("../composables/useStrandsAuth.es.js").then(({ useStrandsAuth: a }) => {
|
|
7
|
+
const { isAuthenticated: n, isLoading: c } = a(), r = () => {
|
|
8
|
+
if (c.value) {
|
|
9
|
+
setTimeout(r, 50);
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
const e = o.path, d = s.protectedRoutes?.some((t) => t.endsWith("*") ? e.startsWith(t.slice(0, -1)) : e === t || e.startsWith(t + "/")), h = s.guestOnlyRoutes?.some((t) => t.endsWith("*") ? e.startsWith(t.slice(0, -1)) : e === t || e.startsWith(t + "/"));
|
|
13
|
+
if (d && !n.value)
|
|
14
|
+
return console.log("[Strands Auth] Protected route accessed without authentication, redirecting to auth"), i("/auth?redirect=" + encodeURIComponent(e));
|
|
15
|
+
if (h && n.value)
|
|
16
|
+
return console.log("[Strands Auth] Guest-only route accessed while authenticated, redirecting"), i(s.onSignInUrl || "/dashboard");
|
|
17
|
+
u();
|
|
18
|
+
};
|
|
19
|
+
r();
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
export {
|
|
24
|
+
m as default
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=auth.global.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.global.es.js","sources":["../../../../../../apps/accounts-ui/src/nuxt/runtime/middleware/auth.global.ts"],"sourcesContent":["import { defineNuxtRouteMiddleware, navigateTo, useRuntimeConfig } from 'nuxt/app'\nimport type { StrandsAuthConfig } from '../../module'\n\nexport default defineNuxtRouteMiddleware((to) => {\n const config = useRuntimeConfig().public['strandsAuth'] as StrandsAuthConfig\n\n // Skip middleware during SSR/build\n if (process.server) return\n\n // Import composable dynamically on client side\n return new Promise<void>((resolve) => {\n import('../composables/useStrandsAuth').then(({ useStrandsAuth }) => {\n const { isAuthenticated, isLoading } = useStrandsAuth()\n\n // Wait for auth initialization\n const checkAuth = () => {\n if (isLoading.value) {\n setTimeout(checkAuth, 50)\n return\n }\n\n const currentPath = to.path\n\n // Check if current route should be protected\n const isProtectedRoute = config.protectedRoutes?.some((route: string) => {\n if (route.endsWith('*')) {\n return currentPath.startsWith(route.slice(0, -1))\n }\n return currentPath === route || currentPath.startsWith(route + '/')\n })\n\n // Check if current route is guest-only\n const isGuestOnlyRoute = config.guestOnlyRoutes?.some((route: string) => {\n if (route.endsWith('*')) {\n return currentPath.startsWith(route.slice(0, -1))\n }\n return currentPath === route || currentPath.startsWith(route + '/')\n })\n\n // Redirect unauthenticated users from protected routes\n if (isProtectedRoute && !isAuthenticated.value) {\n console.log('[Strands Auth] Protected route accessed without authentication, redirecting to auth')\n return navigateTo('/auth?redirect=' + encodeURIComponent(currentPath))\n }\n\n // Redirect authenticated users from guest-only routes\n if (isGuestOnlyRoute && isAuthenticated.value) {\n console.log('[Strands Auth] Guest-only route accessed while authenticated, redirecting')\n return navigateTo(config.onSignInUrl || '/dashboard')\n }\n\n resolve()\n }\n\n checkAuth()\n })\n })\n})"],"names":["auth_global","defineNuxtRouteMiddleware","to","config","useRuntimeConfig","resolve","useStrandsAuth","isAuthenticated","isLoading","checkAuth","currentPath","isProtectedRoute","route","isGuestOnlyRoute","navigateTo"],"mappings":";AAGA,MAAAA,IAAeC,EAA0B,CAACC,MAAO;AAC/C,QAAMC,IAASC,IAAmB,OAAO;AAGzC,MAAI,SAAQ;AAGZ,WAAO,IAAI,QAAc,CAACC,MAAY;AACpC,aAAO,qCAA+B,EAAE,KAAK,CAAC,EAAE,gBAAAC,QAAqB;AACnE,cAAM,EAAE,iBAAAC,GAAiB,WAAAC,EAAA,IAAcF,EAAA,GAGjCG,IAAY,MAAM;AACtB,cAAID,EAAU,OAAO;AACnB,uBAAWC,GAAW,EAAE;AACxB;AAAA,UACF;AAEA,gBAAMC,IAAcR,EAAG,MAGjBS,IAAmBR,EAAO,iBAAiB,KAAK,CAACS,MACjDA,EAAM,SAAS,GAAG,IACbF,EAAY,WAAWE,EAAM,MAAM,GAAG,EAAE,CAAC,IAE3CF,MAAgBE,KAASF,EAAY,WAAWE,IAAQ,GAAG,CACnE,GAGKC,IAAmBV,EAAO,iBAAiB,KAAK,CAACS,MACjDA,EAAM,SAAS,GAAG,IACbF,EAAY,WAAWE,EAAM,MAAM,GAAG,EAAE,CAAC,IAE3CF,MAAgBE,KAASF,EAAY,WAAWE,IAAQ,GAAG,CACnE;AAGD,cAAID,KAAoB,CAACJ,EAAgB;AACvC,2BAAQ,IAAI,qFAAqF,GAC1FO,EAAW,oBAAoB,mBAAmBJ,CAAW,CAAC;AAIvE,cAAIG,KAAoBN,EAAgB;AACtC,2BAAQ,IAAI,2EAA2E,GAChFO,EAAWX,EAAO,eAAe,YAAY;AAGtD,UAAAE,EAAA;AAAA,QACF;AAEA,QAAAI,EAAA;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AACH,CAAC;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const i=require("nuxt/app"),n=i.defineNuxtPlugin({name:"strands-auth-client",async setup(){const{useStrandsAuth:t}=await Promise.resolve().then(()=>require("./composables/useStrandsAuth.cjs.js")),{initialize:e}=t();await e(),console.log("[Strands Auth] Client plugin initialized")}});module.exports=n;
|
|
2
|
+
//# sourceMappingURL=plugin.client.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.client.cjs.js","sources":["../../../../../apps/accounts-ui/src/nuxt/runtime/plugin.client.ts"],"sourcesContent":["import { defineNuxtPlugin } from 'nuxt/app'\n\nexport default defineNuxtPlugin({\n name: 'strands-auth-client',\n async setup() {\n // Initialize auth state on client side\n const { useStrandsAuth } = await import('./composables/useStrandsAuth')\n const { initialize } = useStrandsAuth()\n \n // Initialize auth state\n await initialize()\n \n console.log('[Strands Auth] Client plugin initialized')\n }\n})"],"names":["plugin_client","defineNuxtPlugin","useStrandsAuth","initialize"],"mappings":"yCAEAA,EAAeC,mBAAiB,CAC9B,KAAM,sBACN,MAAM,OAAQ,CAEZ,KAAM,CAAE,eAAAC,CAAA,EAAmB,MAAM,QAAA,QAAA,EAAA,KAAA,IAAA,QAAO,qCAA8B,CAAA,EAChE,CAAE,WAAAC,CAAA,EAAeD,EAAA,EAGvB,MAAMC,EAAA,EAEN,QAAQ,IAAI,0CAA0C,CACxD,CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.client.d.ts","sourceRoot":"","sources":["../../../../../apps/accounts-ui/src/nuxt/runtime/plugin.client.ts"],"names":[],"mappings":";AAEA,wBAYE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { defineNuxtPlugin as n } from "nuxt/app";
|
|
2
|
+
const e = n({
|
|
3
|
+
name: "strands-auth-client",
|
|
4
|
+
async setup() {
|
|
5
|
+
const { useStrandsAuth: t } = await import("./composables/useStrandsAuth.es.js"), { initialize: i } = t();
|
|
6
|
+
await i(), console.log("[Strands Auth] Client plugin initialized");
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
export {
|
|
10
|
+
e as default
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=plugin.client.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.client.es.js","sources":["../../../../../apps/accounts-ui/src/nuxt/runtime/plugin.client.ts"],"sourcesContent":["import { defineNuxtPlugin } from 'nuxt/app'\n\nexport default defineNuxtPlugin({\n name: 'strands-auth-client',\n async setup() {\n // Initialize auth state on client side\n const { useStrandsAuth } = await import('./composables/useStrandsAuth')\n const { initialize } = useStrandsAuth()\n \n // Initialize auth state\n await initialize()\n \n console.log('[Strands Auth] Client plugin initialized')\n }\n})"],"names":["plugin_client","defineNuxtPlugin","useStrandsAuth","initialize"],"mappings":";AAEA,MAAAA,IAAeC,EAAiB;AAAA,EAC9B,MAAM;AAAA,EACN,MAAM,QAAQ;AAEZ,UAAM,EAAE,gBAAAC,EAAA,IAAmB,MAAM,OAAO,oCAA8B,GAChE,EAAE,YAAAC,EAAA,IAAeD,EAAA;AAGvB,UAAMC,EAAA,GAEN,QAAQ,IAAI,0CAA0C;AAAA,EACxD;AACF,CAAC;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.server.cjs.js","sources":["../../../../../apps/accounts-ui/src/nuxt/runtime/plugin.server.ts"],"sourcesContent":["import { defineNuxtPlugin } from 'nuxt/app'\n\nexport default defineNuxtPlugin({\n name: 'strands-auth-server',\n setup() {\n // Server-side initialization\n // In a real implementation, this would handle JWT verification from cookies/headers\n console.log('[Strands Auth] Server plugin initialized')\n }\n})"],"names":["plugin_server","defineNuxtPlugin"],"mappings":"yCAEAA,EAAeC,mBAAiB,CAC9B,KAAM,sBACN,OAAQ,CAGN,QAAQ,IAAI,0CAA0C,CACxD,CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.server.d.ts","sourceRoot":"","sources":["../../../../../apps/accounts-ui/src/nuxt/runtime/plugin.server.ts"],"names":[],"mappings":";AAEA,wBAOE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.server.es.js","sources":["../../../../../apps/accounts-ui/src/nuxt/runtime/plugin.server.ts"],"sourcesContent":["import { defineNuxtPlugin } from 'nuxt/app'\n\nexport default defineNuxtPlugin({\n name: 'strands-auth-server',\n setup() {\n // Server-side initialization\n // In a real implementation, this would handle JWT verification from cookies/headers\n console.log('[Strands Auth] Server plugin initialized')\n }\n})"],"names":["plugin_server","defineNuxtPlugin"],"mappings":";AAEA,MAAAA,IAAeC,EAAiB;AAAA,EAC9B,MAAM;AAAA,EACN,QAAQ;AAGN,YAAQ,IAAI,0CAA0C;AAAA,EACxD;AACF,CAAC;"}
|