@strands.gg/accui 1.10.0 → 2.0.0

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.
@@ -1 +1 @@
1
- "use strict";const e=require("@nuxt/kit");var t="undefined"!=typeof document?document.currentScript:null;const s=e.defineNuxtModule({meta:{name:"@strands.gg/accui/nuxt",configKey:"strandsAuth",compatibility:{nuxt:"^3.0.0"}},defaults:{baseUrl:"https://your-api.example.com",accentColor:"#EA00A8",redirectUrl:"/",onSignInUrl:"/dashboard",onSignOutUrl:"/",autoRefresh:!0,refreshInterval:4,protectedRoutes:[],guestOnlyRoutes:["/auth","/login","/register"],devMode:!1,styles:!0,supportEmail:"",oauth2RedirectUrl:""},async setup(s,r){const n=e.createResolver("undefined"==typeof document?require("url").pathToFileURL(__filename).href:t&&"SCRIPT"===t.tagName.toUpperCase()&&t.src||new URL("nuxt/module.cjs.js",document.baseURI).href);r.options.runtimeConfig.public=r.options.runtimeConfig.public||{},r.options.runtimeConfig.public.strandsAuth={...s,styles:!1!==s.styles},!1!==s.styles&&r.options.css.push("@strands.gg/accui/style.css");const a="es.js";e.addPlugin({src:n.resolve(`./runtime/plugin.client.${a}`),mode:"client"}),e.addPlugin({src:n.resolve(`./runtime/plugin.server.${a}`),mode:"server"}),e.addRouteMiddleware({name:"auth",path:n.resolve(`./runtime/middleware/auth.global.${a}`),global:!0}),r.hook("pages:extend",e=>{}),e.addImports([{name:"useStrandsAuth",as:"useStrandsAuth",from:n.resolve(`./runtime/composables/useStrandsAuth.${a}`)},{name:"useAuthUser",as:"useAuthUser",from:n.resolve(`./runtime/composables/useStrandsAuth.${a}`)},{name:"useAuthState",as:"useAuthState",from:n.resolve(`./runtime/composables/useStrandsAuth.${a}`)}]);const o=["StrandsAuth","StrandsSignIn","StrandsSignUp","StrandsCompleteSignUp","StrandsUserProfile","StrandsUserButton","StrandsPasswordReset","StrandsMFASetup","StrandsConfigProvider","SignedIn","SignedOut","StrandsLogo","StrandsSecuredFooter","StrandsUiAlert","StrandsUiButton","StrandsUiCard","StrandsUiInput","StrandsUiLink","StrandsUiTabs","StrandsUiLoader"];for(const t of o)e.addComponent({name:t,export:t,filePath:"@strands.gg/accui"});r.hook("prepare:types",e=>{e.references.push({types:"@strands.gg/auth-nuxt"})})}});module.exports=s;
1
+ "use strict";const e=require("@nuxt/kit");var t="undefined"!=typeof document?document.currentScript:null;const s=e.defineNuxtModule({meta:{name:"@strands.gg/accui/nuxt",configKey:"strandsAuth",compatibility:{nuxt:"^3.0.0"}},defaults:{baseUrl:"https://your-api.example.com",accentColor:"#EA00A8",redirectUrl:"/",onSignInUrl:"/dashboard",onSignOutUrl:"/",autoRefresh:!0,refreshInterval:4,protectedRoutes:[],guestOnlyRoutes:["/auth","/login","/register"],devMode:!1,styles:!0,supportEmail:"",oauth2RedirectUrl:""},async setup(s,n){const r=e.createResolver("undefined"==typeof document?require("url").pathToFileURL(__filename).href:t&&"SCRIPT"===t.tagName.toUpperCase()&&t.src||new URL("nuxt/module.cjs.js",document.baseURI).href);n.options.runtimeConfig.public=n.options.runtimeConfig.public||{},n.options.runtimeConfig.public.strandsAuth={...s,styles:!1!==s.styles},!1!==s.styles&&n.options.css.push("@strands.gg/accui/style.css");const a="es.js";e.addPlugin({src:r.resolve(`./runtime/plugin.client.${a}`),mode:"client"}),e.addPlugin({src:r.resolve(`./runtime/plugin.server.${a}`),mode:"server"}),e.addPlugin({src:r.resolve(`./runtime/plugins/auth-interceptor.client.${a}`),mode:"client"}),e.addRouteMiddleware({name:"auth",path:r.resolve(`./runtime/middleware/auth.global.${a}`),global:!0}),n.hook("pages:extend",e=>{}),e.addImports([{name:"useStrandsAuth",as:"useStrandsAuth",from:r.resolve(`./runtime/composables/useStrandsAuth.${a}`)},{name:"useAuthUser",as:"useAuthUser",from:r.resolve(`./runtime/composables/useStrandsAuth.${a}`)},{name:"useAuthState",as:"useAuthState",from:r.resolve(`./runtime/composables/useStrandsAuth.${a}`)},{name:"useAuthenticatedFetch",as:"useAuthenticatedFetch",from:r.resolve(`./runtime/composables/useAuthenticatedFetch.${a}`)}]);const o=["StrandsAuth","StrandsSignIn","StrandsSignUp","StrandsCompleteSignUp","StrandsUserProfile","StrandsUserButton","StrandsPasswordReset","StrandsMFASetup","StrandsConfigProvider","SignedIn","SignedOut","StrandsLogo","StrandsSecuredFooter","StrandsUiAlert","StrandsUiButton","StrandsUiCard","StrandsUiInput","StrandsUiLink","StrandsUiTabs","StrandsUiLoader"];for(const t of o)e.addComponent({name:t,export:t,filePath:"@strands.gg/accui"});n.hook("prepare:types",e=>{e.references.push({types:"@strands.gg/auth-nuxt"})})}});module.exports=s;
@@ -1 +1 @@
1
- {"version":3,"file":"module.cjs.js","sources":["../../../../apps/accounts-ui/src/nuxt/module.ts"],"sourcesContent":["import { defineNuxtModule, addPlugin, createResolver, addImports, addComponent, addRouteMiddleware } from '@nuxt/kit'\n\n// Re-export types for users\nexport type { StrandsAuthConfig, StrandsAuthEndpoints } from '../types'\nimport type { StrandsAuthConfig } from '../types'\n\n// Create defaults that match the full interface to ensure proper type inference \nconst moduleDefaults: StrandsAuthConfig = {\n baseUrl: '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 supportEmail: '',\n oauth2RedirectUrl: ''\n}\n\nexport default defineNuxtModule<StrandsAuthConfig>({\n meta: {\n name: '@strands.gg/accui/nuxt',\n configKey: 'strandsAuth',\n compatibility: {\n nuxt: '^3.0.0'\n }\n },\n defaults: moduleDefaults,\n async setup(options, nuxt) {\n const resolver = createResolver(import.meta.url)\n\n // Add runtime config\n nuxt.options.runtimeConfig.public = nuxt.options.runtimeConfig.public || {}\n ;(nuxt.options.runtimeConfig.public as any).strandsAuth = {\n ...options,\n styles: options.styles !== false\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 }\n\n // Plugin and middleware paths - always use built JavaScript files when module is distributed\n // This prevents issues when the module is loaded from dist/ directory\n const ext = 'es.js'\n \n // Add the main plugin\n addPlugin({\n src: resolver.resolve(`./runtime/plugin.client.${ext}`),\n mode: 'client'\n })\n\n // Add server plugin for SSR support\n addPlugin({\n src: resolver.resolve(`./runtime/plugin.server.${ext}`),\n mode: 'server'\n })\n\n // Add middleware for route protection\n addRouteMiddleware({\n name: 'auth',\n path: resolver.resolve(`./runtime/middleware/auth.global.${ext}`),\n global: true\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.${ext}`)\n },\n {\n name: 'useAuthUser',\n as: 'useAuthUser', \n from: resolver.resolve(`./runtime/composables/useStrandsAuth.${ext}`)\n },\n {\n name: 'useAuthState',\n as: 'useAuthState',\n from: resolver.resolve(`./runtime/composables/useStrandsAuth.${ext}`)\n }\n ])\n\n // Auto-register components from the main bundle export\n const components = [\n 'StrandsAuth',\n 'StrandsSignIn', \n 'StrandsSignUp',\n 'StrandsCompleteSignUp',\n 'StrandsUserProfile',\n 'StrandsUserButton',\n 'StrandsPasswordReset',\n 'StrandsMFASetup',\n 'StrandsConfigProvider',\n 'SignedIn',\n 'SignedOut',\n 'StrandsLogo',\n 'StrandsSecuredFooter',\n // UI Components\n 'StrandsUiAlert',\n 'StrandsUiButton',\n 'StrandsUiCard',\n 'StrandsUiInput',\n 'StrandsUiLink',\n 'StrandsUiTabs',\n 'StrandsUiLoader'\n ]\n\n for (const component of components) {\n addComponent({\n name: component,\n export: component,\n filePath: '@strands.gg/accui'\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","meta","name","configKey","compatibility","nuxt","defaults","baseUrl","accentColor","redirectUrl","onSignInUrl","onSignOutUrl","autoRefresh","refreshInterval","protectedRoutes","guestOnlyRoutes","devMode","styles","supportEmail","oauth2RedirectUrl","setup","options","resolver","createResolver","runtimeConfig","public","strandsAuth","css","push","ext","addPlugin","src","resolve","mode","addRouteMiddleware","path","global","hook","pages","addImports","as","from","components","component","addComponent","export","filePath","opts","references","types"],"mappings":"yGAOA,MAgBAA,EAAeC,mBAAoC,CACjDC,KAAM,CACJC,KAAM,yBACNC,UAAW,cACXC,cAAe,CACbC,KAAM,WAGVC,SAxBwC,CACxCC,QAAS,+BACTC,YAAa,UACbC,YAAa,IACbC,YAAa,aACbC,aAAc,IACdC,aAAa,EACbC,gBAAiB,EACjBC,gBAAiB,GACjBC,gBAAiB,CAAC,QAAS,SAAU,aACrCC,SAAS,EACTC,QAAQ,EACRC,aAAc,GACdC,kBAAmB,IAYnB,WAAMC,CAAMC,EAAShB,GACnB,MAAMiB,EAAWC,EAAAA,6LAGjBlB,EAAKgB,QAAQG,cAAcC,OAASpB,EAAKgB,QAAQG,cAAcC,QAAU,CAAA,EACvEpB,EAAKgB,QAAQG,cAAcC,OAAeC,YAAc,IACrDL,EACHJ,QAA2B,IAAnBI,EAAQJ,SAIK,IAAnBI,EAAQJ,QACVZ,EAAKgB,QAAQM,IAAIC,KAAK,+BAKxB,MAAMC,EAAM,QAGZC,YAAU,CACRC,IAAKT,EAASU,QAAQ,2BAA2BH,KACjDI,KAAM,WAIRH,YAAU,CACRC,IAAKT,EAASU,QAAQ,2BAA2BH,KACjDI,KAAM,WAIRC,qBAAmB,CACjBhC,KAAM,OACNiC,KAAMb,EAASU,QAAQ,oCAAoCH,KAC3DO,QAAQ,IAIV/B,EAAKgC,KAAK,eAAiBC,OAK3BC,aAAW,CACT,CACErC,KAAM,iBACNsC,GAAI,iBACJC,KAAMnB,EAASU,QAAQ,wCAAwCH,MAEjE,CACE3B,KAAM,cACNsC,GAAI,cACJC,KAAMnB,EAASU,QAAQ,wCAAwCH,MAEjE,CACE3B,KAAM,eACNsC,GAAI,eACJC,KAAMnB,EAASU,QAAQ,wCAAwCH,QAKnE,MAAMa,EAAa,CACjB,cACA,gBACA,gBACA,wBACA,qBACA,oBACA,uBACA,kBACA,wBACA,WACA,YACA,cACA,uBAEA,iBACA,kBACA,gBACA,iBACA,gBACA,gBACA,mBAGF,IAAA,MAAWC,KAAaD,EACtBE,eAAa,CACX1C,KAAMyC,EACNE,OAAQF,EACRG,SAAU,sBAKdzC,EAAKgC,KAAK,gBAAkBU,IAC1BA,EAAKC,WAAWpB,KAAK,CACnBqB,MAAO,2BAGb"}
1
+ {"version":3,"file":"module.cjs.js","sources":["../../../../apps/accounts-ui/src/nuxt/module.ts"],"sourcesContent":["import { defineNuxtModule, addPlugin, createResolver, addImports, addComponent, addRouteMiddleware } from '@nuxt/kit'\n\n// Re-export types for users\nexport type { StrandsAuthConfig, StrandsAuthEndpoints } from '../types'\nimport type { StrandsAuthConfig } from '../types'\n\n// Create defaults that match the full interface to ensure proper type inference \nconst moduleDefaults: StrandsAuthConfig = {\n baseUrl: '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 supportEmail: '',\n oauth2RedirectUrl: ''\n}\n\nexport default defineNuxtModule<StrandsAuthConfig>({\n meta: {\n name: '@strands.gg/accui/nuxt',\n configKey: 'strandsAuth',\n compatibility: {\n nuxt: '^3.0.0'\n }\n },\n defaults: moduleDefaults,\n async setup(options, nuxt) {\n const resolver = createResolver(import.meta.url)\n\n // Add runtime config\n nuxt.options.runtimeConfig.public = nuxt.options.runtimeConfig.public || {}\n ;(nuxt.options.runtimeConfig.public as any).strandsAuth = {\n ...options,\n styles: options.styles !== false\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 }\n\n // Plugin and middleware paths - always use built JavaScript files when module is distributed\n // This prevents issues when the module is loaded from dist/ directory\n const ext = 'es.js'\n \n // Add the main plugin\n addPlugin({\n src: resolver.resolve(`./runtime/plugin.client.${ext}`),\n mode: 'client'\n })\n\n // Add server plugin for SSR support\n addPlugin({\n src: resolver.resolve(`./runtime/plugin.server.${ext}`),\n mode: 'server'\n })\n\n // Add auth interceptor plugin for automatic token injection\n addPlugin({\n src: resolver.resolve(`./runtime/plugins/auth-interceptor.client.${ext}`),\n mode: 'client'\n })\n\n // Add middleware for route protection\n addRouteMiddleware({\n name: 'auth',\n path: resolver.resolve(`./runtime/middleware/auth.global.${ext}`),\n global: true\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.${ext}`)\n },\n {\n name: 'useAuthUser',\n as: 'useAuthUser', \n from: resolver.resolve(`./runtime/composables/useStrandsAuth.${ext}`)\n },\n {\n name: 'useAuthState',\n as: 'useAuthState',\n from: resolver.resolve(`./runtime/composables/useStrandsAuth.${ext}`)\n },\n {\n name: 'useAuthenticatedFetch',\n as: 'useAuthenticatedFetch',\n from: resolver.resolve(`./runtime/composables/useAuthenticatedFetch.${ext}`)\n }\n ])\n\n // Auto-register components from the main bundle export\n const components = [\n 'StrandsAuth',\n 'StrandsSignIn', \n 'StrandsSignUp',\n 'StrandsCompleteSignUp',\n 'StrandsUserProfile',\n 'StrandsUserButton',\n 'StrandsPasswordReset',\n 'StrandsMFASetup',\n 'StrandsConfigProvider',\n 'SignedIn',\n 'SignedOut',\n 'StrandsLogo',\n 'StrandsSecuredFooter',\n // UI Components\n 'StrandsUiAlert',\n 'StrandsUiButton',\n 'StrandsUiCard',\n 'StrandsUiInput',\n 'StrandsUiLink',\n 'StrandsUiTabs',\n 'StrandsUiLoader'\n ]\n\n for (const component of components) {\n addComponent({\n name: component,\n export: component,\n filePath: '@strands.gg/accui'\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","meta","name","configKey","compatibility","nuxt","defaults","baseUrl","accentColor","redirectUrl","onSignInUrl","onSignOutUrl","autoRefresh","refreshInterval","protectedRoutes","guestOnlyRoutes","devMode","styles","supportEmail","oauth2RedirectUrl","setup","options","resolver","createResolver","runtimeConfig","public","strandsAuth","css","push","ext","addPlugin","src","resolve","mode","addRouteMiddleware","path","global","hook","pages","addImports","as","from","components","component","addComponent","export","filePath","opts","references","types"],"mappings":"yGAOA,MAgBAA,EAAeC,mBAAoC,CACjDC,KAAM,CACJC,KAAM,yBACNC,UAAW,cACXC,cAAe,CACbC,KAAM,WAGVC,SAxBwC,CACxCC,QAAS,+BACTC,YAAa,UACbC,YAAa,IACbC,YAAa,aACbC,aAAc,IACdC,aAAa,EACbC,gBAAiB,EACjBC,gBAAiB,GACjBC,gBAAiB,CAAC,QAAS,SAAU,aACrCC,SAAS,EACTC,QAAQ,EACRC,aAAc,GACdC,kBAAmB,IAYnB,WAAMC,CAAMC,EAAShB,GACnB,MAAMiB,EAAWC,EAAAA,6LAGjBlB,EAAKgB,QAAQG,cAAcC,OAASpB,EAAKgB,QAAQG,cAAcC,QAAU,CAAA,EACvEpB,EAAKgB,QAAQG,cAAcC,OAAeC,YAAc,IACrDL,EACHJ,QAA2B,IAAnBI,EAAQJ,SAIK,IAAnBI,EAAQJ,QACVZ,EAAKgB,QAAQM,IAAIC,KAAK,+BAKxB,MAAMC,EAAM,QAGZC,YAAU,CACRC,IAAKT,EAASU,QAAQ,2BAA2BH,KACjDI,KAAM,WAIRH,YAAU,CACRC,IAAKT,EAASU,QAAQ,2BAA2BH,KACjDI,KAAM,WAIRH,YAAU,CACRC,IAAKT,EAASU,QAAQ,6CAA6CH,KACnEI,KAAM,WAIRC,qBAAmB,CACjBhC,KAAM,OACNiC,KAAMb,EAASU,QAAQ,oCAAoCH,KAC3DO,QAAQ,IAIV/B,EAAKgC,KAAK,eAAiBC,OAK3BC,aAAW,CACT,CACErC,KAAM,iBACNsC,GAAI,iBACJC,KAAMnB,EAASU,QAAQ,wCAAwCH,MAEjE,CACE3B,KAAM,cACNsC,GAAI,cACJC,KAAMnB,EAASU,QAAQ,wCAAwCH,MAEjE,CACE3B,KAAM,eACNsC,GAAI,eACJC,KAAMnB,EAASU,QAAQ,wCAAwCH,MAEjE,CACE3B,KAAM,wBACNsC,GAAI,wBACJC,KAAMnB,EAASU,QAAQ,+CAA+CH,QAK1E,MAAMa,EAAa,CACjB,cACA,gBACA,gBACA,wBACA,qBACA,oBACA,uBACA,kBACA,wBACA,WACA,YACA,cACA,uBAEA,iBACA,kBACA,gBACA,iBACA,gBACA,gBACA,mBAGF,IAAA,MAAWC,KAAaD,EACtBE,eAAa,CACX1C,KAAMyC,EACNE,OAAQF,EACRG,SAAU,sBAKdzC,EAAKgC,KAAK,gBAAkBU,IAC1BA,EAAKC,WAAWpB,KAAK,CACnBqB,MAAO,2BAGb"}
@@ -42,6 +42,10 @@ const module = defineNuxtModule({
42
42
  src: resolver.resolve(`./runtime/plugin.server.${ext}`),
43
43
  mode: "server"
44
44
  });
45
+ addPlugin({
46
+ src: resolver.resolve(`./runtime/plugins/auth-interceptor.client.${ext}`),
47
+ mode: "client"
48
+ });
45
49
  addRouteMiddleware({
46
50
  name: "auth",
47
51
  path: resolver.resolve(`./runtime/middleware/auth.global.${ext}`),
@@ -64,6 +68,11 @@ const module = defineNuxtModule({
64
68
  name: "useAuthState",
65
69
  as: "useAuthState",
66
70
  from: resolver.resolve(`./runtime/composables/useStrandsAuth.${ext}`)
71
+ },
72
+ {
73
+ name: "useAuthenticatedFetch",
74
+ as: "useAuthenticatedFetch",
75
+ from: resolver.resolve(`./runtime/composables/useAuthenticatedFetch.${ext}`)
67
76
  }
68
77
  ]);
69
78
  const components = [
@@ -1 +1 @@
1
- {"version":3,"file":"module.es.js","sources":["../../../../apps/accounts-ui/src/nuxt/module.ts"],"sourcesContent":["import { defineNuxtModule, addPlugin, createResolver, addImports, addComponent, addRouteMiddleware } from '@nuxt/kit'\n\n// Re-export types for users\nexport type { StrandsAuthConfig, StrandsAuthEndpoints } from '../types'\nimport type { StrandsAuthConfig } from '../types'\n\n// Create defaults that match the full interface to ensure proper type inference \nconst moduleDefaults: StrandsAuthConfig = {\n baseUrl: '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 supportEmail: '',\n oauth2RedirectUrl: ''\n}\n\nexport default defineNuxtModule<StrandsAuthConfig>({\n meta: {\n name: '@strands.gg/accui/nuxt',\n configKey: 'strandsAuth',\n compatibility: {\n nuxt: '^3.0.0'\n }\n },\n defaults: moduleDefaults,\n async setup(options, nuxt) {\n const resolver = createResolver(import.meta.url)\n\n // Add runtime config\n nuxt.options.runtimeConfig.public = nuxt.options.runtimeConfig.public || {}\n ;(nuxt.options.runtimeConfig.public as any).strandsAuth = {\n ...options,\n styles: options.styles !== false\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 }\n\n // Plugin and middleware paths - always use built JavaScript files when module is distributed\n // This prevents issues when the module is loaded from dist/ directory\n const ext = 'es.js'\n \n // Add the main plugin\n addPlugin({\n src: resolver.resolve(`./runtime/plugin.client.${ext}`),\n mode: 'client'\n })\n\n // Add server plugin for SSR support\n addPlugin({\n src: resolver.resolve(`./runtime/plugin.server.${ext}`),\n mode: 'server'\n })\n\n // Add middleware for route protection\n addRouteMiddleware({\n name: 'auth',\n path: resolver.resolve(`./runtime/middleware/auth.global.${ext}`),\n global: true\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.${ext}`)\n },\n {\n name: 'useAuthUser',\n as: 'useAuthUser', \n from: resolver.resolve(`./runtime/composables/useStrandsAuth.${ext}`)\n },\n {\n name: 'useAuthState',\n as: 'useAuthState',\n from: resolver.resolve(`./runtime/composables/useStrandsAuth.${ext}`)\n }\n ])\n\n // Auto-register components from the main bundle export\n const components = [\n 'StrandsAuth',\n 'StrandsSignIn', \n 'StrandsSignUp',\n 'StrandsCompleteSignUp',\n 'StrandsUserProfile',\n 'StrandsUserButton',\n 'StrandsPasswordReset',\n 'StrandsMFASetup',\n 'StrandsConfigProvider',\n 'SignedIn',\n 'SignedOut',\n 'StrandsLogo',\n 'StrandsSecuredFooter',\n // UI Components\n 'StrandsUiAlert',\n 'StrandsUiButton',\n 'StrandsUiCard',\n 'StrandsUiInput',\n 'StrandsUiLink',\n 'StrandsUiTabs',\n 'StrandsUiLoader'\n ]\n\n for (const component of components) {\n addComponent({\n name: component,\n export: component,\n filePath: '@strands.gg/accui'\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":[],"mappings":";AAOA,MAAM,iBAAoC;AAAA,EACxC,SAAS;AAAA,EACT,aAAa;AAAA,EACb,aAAa;AAAA,EACb,aAAa;AAAA,EACb,cAAc;AAAA,EACd,aAAa;AAAA,EACb,iBAAiB;AAAA,EACjB,iBAAiB,CAAA;AAAA,EACjB,iBAAiB,CAAC,SAAS,UAAU,WAAW;AAAA,EAChD,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,mBAAmB;AACrB;AAEA,MAAA,SAAe,iBAAoC;AAAA,EACjD,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,WAAW;AAAA,IACX,eAAe;AAAA,MACb,MAAM;AAAA,IAAA;AAAA,EACR;AAAA,EAEF,UAAU;AAAA,EACV,MAAM,MAAM,SAAS,MAAM;AACzB,UAAM,WAAW,eAAe,YAAY,GAAG;AAG/C,SAAK,QAAQ,cAAc,SAAS,KAAK,QAAQ,cAAc,UAAU,CAAA;AACvE,SAAK,QAAQ,cAAc,OAAe,cAAc;AAAA,MACxD,GAAG;AAAA,MACH,QAAQ,QAAQ,WAAW;AAAA,IAAA;AAI7B,QAAI,QAAQ,WAAW,OAAO;AAC5B,WAAK,QAAQ,IAAI,KAAK,6BAA6B;AAAA,IACrD;AAIA,UAAM,MAAM;AAGZ,cAAU;AAAA,MACR,KAAK,SAAS,QAAQ,2BAA2B,GAAG,EAAE;AAAA,MACtD,MAAM;AAAA,IAAA,CACP;AAGD,cAAU;AAAA,MACR,KAAK,SAAS,QAAQ,2BAA2B,GAAG,EAAE;AAAA,MACtD,MAAM;AAAA,IAAA,CACP;AAGD,uBAAmB;AAAA,MACjB,MAAM;AAAA,MACN,MAAM,SAAS,QAAQ,oCAAoC,GAAG,EAAE;AAAA,MAChE,QAAQ;AAAA,IAAA,CACT;AAGD,SAAK,KAAK,gBAAgB,CAAC,UAAU;AAAA,IAErC,CAAC;AAGD,eAAW;AAAA,MACT;AAAA,QACE,MAAM;AAAA,QACN,IAAI;AAAA,QACJ,MAAM,SAAS,QAAQ,wCAAwC,GAAG,EAAE;AAAA,MAAA;AAAA,MAEtE;AAAA,QACE,MAAM;AAAA,QACN,IAAI;AAAA,QACJ,MAAM,SAAS,QAAQ,wCAAwC,GAAG,EAAE;AAAA,MAAA;AAAA,MAEtE;AAAA,QACE,MAAM;AAAA,QACN,IAAI;AAAA,QACJ,MAAM,SAAS,QAAQ,wCAAwC,GAAG,EAAE;AAAA,MAAA;AAAA,IACtE,CACD;AAGD,UAAM,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAGF,eAAW,aAAa,YAAY;AAClC,mBAAa;AAAA,QACX,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,UAAU;AAAA,MAAA,CACX;AAAA,IACH;AAGA,SAAK,KAAK,iBAAiB,CAAC,SAAS;AACnC,WAAK,WAAW,KAAK;AAAA,QACnB,OAAO;AAAA,MAAA,CACR;AAAA,IACH,CAAC;AAAA,EACH;AACF,CAAC;"}
1
+ {"version":3,"file":"module.es.js","sources":["../../../../apps/accounts-ui/src/nuxt/module.ts"],"sourcesContent":["import { defineNuxtModule, addPlugin, createResolver, addImports, addComponent, addRouteMiddleware } from '@nuxt/kit'\n\n// Re-export types for users\nexport type { StrandsAuthConfig, StrandsAuthEndpoints } from '../types'\nimport type { StrandsAuthConfig } from '../types'\n\n// Create defaults that match the full interface to ensure proper type inference \nconst moduleDefaults: StrandsAuthConfig = {\n baseUrl: '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 supportEmail: '',\n oauth2RedirectUrl: ''\n}\n\nexport default defineNuxtModule<StrandsAuthConfig>({\n meta: {\n name: '@strands.gg/accui/nuxt',\n configKey: 'strandsAuth',\n compatibility: {\n nuxt: '^3.0.0'\n }\n },\n defaults: moduleDefaults,\n async setup(options, nuxt) {\n const resolver = createResolver(import.meta.url)\n\n // Add runtime config\n nuxt.options.runtimeConfig.public = nuxt.options.runtimeConfig.public || {}\n ;(nuxt.options.runtimeConfig.public as any).strandsAuth = {\n ...options,\n styles: options.styles !== false\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 }\n\n // Plugin and middleware paths - always use built JavaScript files when module is distributed\n // This prevents issues when the module is loaded from dist/ directory\n const ext = 'es.js'\n \n // Add the main plugin\n addPlugin({\n src: resolver.resolve(`./runtime/plugin.client.${ext}`),\n mode: 'client'\n })\n\n // Add server plugin for SSR support\n addPlugin({\n src: resolver.resolve(`./runtime/plugin.server.${ext}`),\n mode: 'server'\n })\n\n // Add auth interceptor plugin for automatic token injection\n addPlugin({\n src: resolver.resolve(`./runtime/plugins/auth-interceptor.client.${ext}`),\n mode: 'client'\n })\n\n // Add middleware for route protection\n addRouteMiddleware({\n name: 'auth',\n path: resolver.resolve(`./runtime/middleware/auth.global.${ext}`),\n global: true\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.${ext}`)\n },\n {\n name: 'useAuthUser',\n as: 'useAuthUser', \n from: resolver.resolve(`./runtime/composables/useStrandsAuth.${ext}`)\n },\n {\n name: 'useAuthState',\n as: 'useAuthState',\n from: resolver.resolve(`./runtime/composables/useStrandsAuth.${ext}`)\n },\n {\n name: 'useAuthenticatedFetch',\n as: 'useAuthenticatedFetch',\n from: resolver.resolve(`./runtime/composables/useAuthenticatedFetch.${ext}`)\n }\n ])\n\n // Auto-register components from the main bundle export\n const components = [\n 'StrandsAuth',\n 'StrandsSignIn', \n 'StrandsSignUp',\n 'StrandsCompleteSignUp',\n 'StrandsUserProfile',\n 'StrandsUserButton',\n 'StrandsPasswordReset',\n 'StrandsMFASetup',\n 'StrandsConfigProvider',\n 'SignedIn',\n 'SignedOut',\n 'StrandsLogo',\n 'StrandsSecuredFooter',\n // UI Components\n 'StrandsUiAlert',\n 'StrandsUiButton',\n 'StrandsUiCard',\n 'StrandsUiInput',\n 'StrandsUiLink',\n 'StrandsUiTabs',\n 'StrandsUiLoader'\n ]\n\n for (const component of components) {\n addComponent({\n name: component,\n export: component,\n filePath: '@strands.gg/accui'\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":[],"mappings":";AAOA,MAAM,iBAAoC;AAAA,EACxC,SAAS;AAAA,EACT,aAAa;AAAA,EACb,aAAa;AAAA,EACb,aAAa;AAAA,EACb,cAAc;AAAA,EACd,aAAa;AAAA,EACb,iBAAiB;AAAA,EACjB,iBAAiB,CAAA;AAAA,EACjB,iBAAiB,CAAC,SAAS,UAAU,WAAW;AAAA,EAChD,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,mBAAmB;AACrB;AAEA,MAAA,SAAe,iBAAoC;AAAA,EACjD,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,WAAW;AAAA,IACX,eAAe;AAAA,MACb,MAAM;AAAA,IAAA;AAAA,EACR;AAAA,EAEF,UAAU;AAAA,EACV,MAAM,MAAM,SAAS,MAAM;AACzB,UAAM,WAAW,eAAe,YAAY,GAAG;AAG/C,SAAK,QAAQ,cAAc,SAAS,KAAK,QAAQ,cAAc,UAAU,CAAA;AACvE,SAAK,QAAQ,cAAc,OAAe,cAAc;AAAA,MACxD,GAAG;AAAA,MACH,QAAQ,QAAQ,WAAW;AAAA,IAAA;AAI7B,QAAI,QAAQ,WAAW,OAAO;AAC5B,WAAK,QAAQ,IAAI,KAAK,6BAA6B;AAAA,IACrD;AAIA,UAAM,MAAM;AAGZ,cAAU;AAAA,MACR,KAAK,SAAS,QAAQ,2BAA2B,GAAG,EAAE;AAAA,MACtD,MAAM;AAAA,IAAA,CACP;AAGD,cAAU;AAAA,MACR,KAAK,SAAS,QAAQ,2BAA2B,GAAG,EAAE;AAAA,MACtD,MAAM;AAAA,IAAA,CACP;AAGD,cAAU;AAAA,MACR,KAAK,SAAS,QAAQ,6CAA6C,GAAG,EAAE;AAAA,MACxE,MAAM;AAAA,IAAA,CACP;AAGD,uBAAmB;AAAA,MACjB,MAAM;AAAA,MACN,MAAM,SAAS,QAAQ,oCAAoC,GAAG,EAAE;AAAA,MAChE,QAAQ;AAAA,IAAA,CACT;AAGD,SAAK,KAAK,gBAAgB,CAAC,UAAU;AAAA,IAErC,CAAC;AAGD,eAAW;AAAA,MACT;AAAA,QACE,MAAM;AAAA,QACN,IAAI;AAAA,QACJ,MAAM,SAAS,QAAQ,wCAAwC,GAAG,EAAE;AAAA,MAAA;AAAA,MAEtE;AAAA,QACE,MAAM;AAAA,QACN,IAAI;AAAA,QACJ,MAAM,SAAS,QAAQ,wCAAwC,GAAG,EAAE;AAAA,MAAA;AAAA,MAEtE;AAAA,QACE,MAAM;AAAA,QACN,IAAI;AAAA,QACJ,MAAM,SAAS,QAAQ,wCAAwC,GAAG,EAAE;AAAA,MAAA;AAAA,MAEtE;AAAA,QACE,MAAM;AAAA,QACN,IAAI;AAAA,QACJ,MAAM,SAAS,QAAQ,+CAA+C,GAAG,EAAE;AAAA,MAAA;AAAA,IAC7E,CACD;AAGD,UAAM,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAGF,eAAW,aAAa,YAAY;AAClC,mBAAa;AAAA,QACX,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,UAAU;AAAA,MAAA,CACX;AAAA,IACH;AAGA,SAAK,KAAK,iBAAiB,CAAC,SAAS;AACnC,WAAK,WAAW,KAAK;AAAA,QACnB,OAAO;AAAA,MAAA,CACR;AAAA,IACH,CAAC;AAAA,EACH;AACF,CAAC;"}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("nuxt/app"),n=require("../../../useStrandsAuth-Co9ekmXB.cjs"),i=()=>{const i=t.useRuntimeConfig().public.strandsAuth,s=n.useStrandsAuth();return{...s,initialize:async()=>{await s.initialize()},signIn:async n=>{const e=await s.signIn(n);return e&&i.onSignInUrl&&await t.navigateTo(i.onSignInUrl),e},signUp:async t=>await s.signUp({email:t.email,password:"",firstName:"",lastName:""}),signOut:async()=>{await s.signOut(),i.onSignOutUrl&&await t.navigateTo(i.onSignOutUrl)}}};exports.useAuthState=()=>{const{isAuthenticated:t,isLoading:n}=i();return{isAuthenticated:t,isLoading:n}},exports.useAuthUser=()=>{const{user:t}=i();return{user:t}},exports.useStrandsAuth=i;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("nuxt/app"),n=require("../../../useStrandsAuth-CTlaiFqK.cjs"),i=()=>{const i=t.useRuntimeConfig().public.strandsAuth,s=n.useStrandsAuth();return{...s,initialize:async()=>{await s.initialize()},signIn:async n=>{const e=await s.signIn(n);return e&&i.onSignInUrl&&await t.navigateTo(i.onSignInUrl),e},signUp:async t=>await s.signUp({email:t.email,password:"",firstName:"",lastName:""}),signOut:async()=>{await s.signOut(),i.onSignOutUrl&&await t.navigateTo(i.onSignOutUrl)}}};exports.useAuthState=()=>{const{isAuthenticated:t,isLoading:n}=i();return{isAuthenticated:t,isLoading:n}},exports.useAuthUser=()=>{const{user:t}=i();return{user:t}},exports.useStrandsAuth=i;
@@ -1,5 +1,5 @@
1
1
  import { useRuntimeConfig, navigateTo } from "nuxt/app";
2
- import { u as useStrandsAuth$1 } from "../../../useStrandsAuth-kWUOoMm-.js";
2
+ import { u as useStrandsAuth$1 } from "../../../useStrandsAuth-Cev-PTun.js";
3
3
  const useStrandsAuth = () => {
4
4
  const config = useRuntimeConfig().public["strandsAuth"];
5
5
  const vueAuth = useStrandsAuth$1();
@@ -1 +1 @@
1
- "use strict";const e=require("@nuxt/kit");var t="undefined"!=typeof document?document.currentScript:null;const s=e.defineNuxtModule({meta:{name:"@strands.gg/accui/nuxt-v4",configKey:"strandsAuth",compatibility:{nuxt:"^4.0.0"}},defaults:{baseUrl:"https://your-api.example.com",accentColor:"#EA00A8",redirectUrl:"/",onSignInUrl:"/dashboard",onSignOutUrl:"/",autoRefresh:!0,refreshInterval:4,protectedRoutes:[],guestOnlyRoutes:["/auth","/login","/register"],devMode:!1,styles:!0,supportEmail:"",oauth2RedirectUrl:""},async setup(s,r){const n=e.createResolver("undefined"==typeof document?require("url").pathToFileURL(__filename).href:t&&"SCRIPT"===t.tagName.toUpperCase()&&t.src||new URL("nuxt-v4/module.cjs.js",document.baseURI).href);r.options.runtimeConfig.public=r.options.runtimeConfig.public||{};const o={...s,styles:!1!==s.styles};r.options.runtimeConfig.public.strandsAuth=o,r.options.appConfig.strandsAuth=o,!1!==s.styles&&r.options.css.push("@strands.gg/accui/style.css");const u="es.js",a=n.resolve(`./runtime/plugin.client.${u}`),d=n.resolve(`./runtime/plugin.server.${u}`),i=n.resolve(`./runtime/middleware/auth.global.${u}`);e.addPlugin({src:a,mode:"client"}),e.addPlugin({src:d,mode:"server"}),e.addRouteMiddleware({name:"auth",path:i,global:!0}),e.addImports([{name:"useStrandsAuth",as:"useStrandsAuth",from:n.resolve(`./runtime/composables/useStrandsAuth.${u}`)},{name:"useAuthUser",as:"useAuthUser",from:n.resolve(`./runtime/composables/useStrandsAuth.${u}`)},{name:"useAuthState",as:"useAuthState",from:n.resolve(`./runtime/composables/useStrandsAuth.${u}`)}]);const l=["StrandsAuth","StrandsSignIn","StrandsSignUp","StrandsCompleteSignUp","StrandsUserProfile","StrandsUserButton","StrandsPasswordReset","StrandsMFASetup","StrandsConfigProvider","SignedIn","SignedOut","StrandsLogo","StrandsSecuredFooter","StrandsUiAlert","StrandsUiButton","StrandsUiCard","StrandsUiInput","StrandsUiLink","StrandsUiTabs","StrandsUiLoader"];for(const t of l)e.addComponent({name:t,export:t,filePath:"@strands.gg/accui"});r.hook("prepare:types",e=>{e.references.push({types:"@strands.gg/auth-nuxt-v4"}),e.declarations.push(`\n declare global {\n const useStrandsAuth: typeof import('${n.resolve("./runtime/composables/useStrandsAuth.d.ts")}')['useStrandsAuth']\n const useAuthUser: typeof import('${n.resolve("./runtime/composables/useStrandsAuth.d.ts")}')['useAuthUser']\n const useAuthState: typeof import('${n.resolve("./runtime/composables/useStrandsAuth.d.ts")}')['useAuthState']\n }\n `)})}});module.exports=s;
1
+ "use strict";const e=require("@nuxt/kit");var t="undefined"!=typeof document?document.currentScript:null;const s=e.defineNuxtModule({meta:{name:"@strands.gg/accui/nuxt-v4",configKey:"strandsAuth",compatibility:{nuxt:"^4.0.0"}},defaults:{baseUrl:"https://your-api.example.com",accentColor:"#EA00A8",redirectUrl:"/",onSignInUrl:"/dashboard",onSignOutUrl:"/",autoRefresh:!0,refreshInterval:4,protectedRoutes:[],guestOnlyRoutes:["/auth","/login","/register"],devMode:!1,styles:!0,supportEmail:"",oauth2RedirectUrl:""},async setup(s,n){const r=e.createResolver("undefined"==typeof document?require("url").pathToFileURL(__filename).href:t&&"SCRIPT"===t.tagName.toUpperCase()&&t.src||new URL("nuxt-v4/module.cjs.js",document.baseURI).href);n.options.runtimeConfig.public=n.options.runtimeConfig.public||{};const o={...s,styles:!1!==s.styles};n.options.runtimeConfig.public.strandsAuth=o,n.options.appConfig.strandsAuth=o,!1!==s.styles&&n.options.css.push("@strands.gg/accui/style.css");const u="es.js",a=r.resolve(`./runtime/plugin.client.${u}`),d=r.resolve(`./runtime/plugin.server.${u}`),i=r.resolve(`./runtime/middleware/auth.global.${u}`);e.addPlugin({src:a,mode:"client"}),e.addPlugin({src:d,mode:"server"}),e.addPlugin({src:r.resolve(`./runtime/plugins/auth-interceptor.client.${u}`),mode:"client"}),e.addRouteMiddleware({name:"auth",path:i,global:!0}),e.addImports([{name:"useStrandsAuth",as:"useStrandsAuth",from:r.resolve(`./runtime/composables/useStrandsAuth.${u}`)},{name:"useAuthUser",as:"useAuthUser",from:r.resolve(`./runtime/composables/useStrandsAuth.${u}`)},{name:"useAuthState",as:"useAuthState",from:r.resolve(`./runtime/composables/useStrandsAuth.${u}`)},{name:"useAuthenticatedFetch",as:"useAuthenticatedFetch",from:r.resolve(`./runtime/composables/useAuthenticatedFetch.${u}`)}]);const l=["StrandsAuth","StrandsSignIn","StrandsSignUp","StrandsCompleteSignUp","StrandsUserProfile","StrandsUserButton","StrandsPasswordReset","StrandsMFASetup","StrandsConfigProvider","SignedIn","SignedOut","StrandsLogo","StrandsSecuredFooter","StrandsUiAlert","StrandsUiButton","StrandsUiCard","StrandsUiInput","StrandsUiLink","StrandsUiTabs","StrandsUiLoader"];for(const t of l)e.addComponent({name:t,export:t,filePath:"@strands.gg/accui"});n.hook("prepare:types",e=>{e.references.push({types:"@strands.gg/auth-nuxt-v4"}),e.declarations.push(`\n declare global {\n const useStrandsAuth: typeof import('${r.resolve("./runtime/composables/useStrandsAuth.d.ts")}')['useStrandsAuth']\n const useAuthUser: typeof import('${r.resolve("./runtime/composables/useStrandsAuth.d.ts")}')['useAuthUser']\n const useAuthState: typeof import('${r.resolve("./runtime/composables/useStrandsAuth.d.ts")}')['useAuthState']\n }\n `)})}});module.exports=s;
@@ -1 +1 @@
1
- {"version":3,"file":"module.cjs.js","sources":["../../../../apps/accounts-ui/src/nuxt-v4/module.ts"],"sourcesContent":["import { defineNuxtModule, addPlugin, createResolver, addImports, addComponent, addRouteMiddleware } from '@nuxt/kit'\n\n// Re-export types for users\nexport type { StrandsAuthConfig, StrandsAuthEndpoints } from '../types'\nimport type { StrandsAuthConfig } from '../types'\n\n// Create defaults that match the full interface to ensure proper type inference \nconst moduleDefaults: StrandsAuthConfig = {\n baseUrl: '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 supportEmail: '',\n oauth2RedirectUrl: ''\n}\n\nexport default defineNuxtModule<StrandsAuthConfig>({\n meta: {\n name: '@strands.gg/accui/nuxt-v4',\n configKey: 'strandsAuth',\n compatibility: {\n nuxt: '^4.0.0'\n }\n },\n defaults: moduleDefaults,\n async setup(options, nuxt) {\n const resolver = createResolver(import.meta.url)\n\n // Add runtime config\n nuxt.options.runtimeConfig.public = nuxt.options.runtimeConfig.public || {}\n const runtimeConfig = {\n ...options,\n styles: options.styles !== false\n }\n \n ;(nuxt.options.runtimeConfig.public as any).strandsAuth = runtimeConfig\n \n // Also add it to app config for immediate access\n ;(nuxt.options.appConfig as any).strandsAuth = runtimeConfig\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 }\n\n // Plugin and middleware paths - always use built JavaScript files when module is distributed\n // This prevents issues when the module is loaded from dist/ directory\n const ext = 'es.js'\n \n const clientPluginPath = resolver.resolve(`./runtime/plugin.client.${ext}`)\n const serverPluginPath = resolver.resolve(`./runtime/plugin.server.${ext}`) \n const middlewarePath = resolver.resolve(`./runtime/middleware/auth.global.${ext}`)\n\n // Add the main plugin with highest priority to ensure config is set early\n addPlugin({\n src: clientPluginPath,\n mode: 'client'\n })\n\n // Add server plugin for SSR support \n addPlugin({\n src: serverPluginPath,\n mode: 'server'\n })\n\n // Add middleware for route protection (updated for Nuxt v4)\n addRouteMiddleware({\n name: 'auth',\n path: middlewarePath,\n global: true\n })\n\n // Auto-import composables - use TypeScript in development, JavaScript in production\n addImports([\n {\n name: 'useStrandsAuth',\n as: 'useStrandsAuth',\n from: resolver.resolve(`./runtime/composables/useStrandsAuth.${ext}`)\n },\n {\n name: 'useAuthUser',\n as: 'useAuthUser', \n from: resolver.resolve(`./runtime/composables/useStrandsAuth.${ext}`)\n },\n {\n name: 'useAuthState',\n as: 'useAuthState',\n from: resolver.resolve(`./runtime/composables/useStrandsAuth.${ext}`)\n }\n ])\n\n // Auto-register components from the main bundle export\n const components = [\n 'StrandsAuth',\n 'StrandsSignIn', \n 'StrandsSignUp',\n 'StrandsCompleteSignUp',\n 'StrandsUserProfile',\n 'StrandsUserButton',\n 'StrandsPasswordReset',\n 'StrandsMFASetup',\n 'StrandsConfigProvider',\n 'SignedIn',\n 'SignedOut',\n 'StrandsLogo',\n 'StrandsSecuredFooter',\n // UI Components\n 'StrandsUiAlert',\n 'StrandsUiButton',\n 'StrandsUiCard',\n 'StrandsUiInput',\n 'StrandsUiLink',\n 'StrandsUiTabs',\n 'StrandsUiLoader'\n ]\n\n for (const component of components) {\n addComponent({\n name: component,\n export: component,\n filePath: '@strands.gg/accui'\n })\n }\n\n // Add type declarations (updated for Nuxt v4)\n nuxt.hook('prepare:types', (opts) => {\n opts.references.push({\n types: '@strands.gg/auth-nuxt-v4'\n })\n \n // Add the composables to the auto-imports types\n opts.declarations.push(`\n declare global {\n const useStrandsAuth: typeof import('${resolver.resolve(`./runtime/composables/useStrandsAuth.d.ts`)}')['useStrandsAuth']\n const useAuthUser: typeof import('${resolver.resolve(`./runtime/composables/useStrandsAuth.d.ts`)}')['useAuthUser']\n const useAuthState: typeof import('${resolver.resolve(`./runtime/composables/useStrandsAuth.d.ts`)}')['useAuthState']\n }\n `)\n })\n }\n})\n"],"names":["module$1","defineNuxtModule","meta","name","configKey","compatibility","nuxt","defaults","baseUrl","accentColor","redirectUrl","onSignInUrl","onSignOutUrl","autoRefresh","refreshInterval","protectedRoutes","guestOnlyRoutes","devMode","styles","supportEmail","oauth2RedirectUrl","setup","options","resolver","createResolver","runtimeConfig","public","strandsAuth","appConfig","css","push","ext","clientPluginPath","resolve","serverPluginPath","middlewarePath","addPlugin","src","mode","addRouteMiddleware","path","global","addImports","as","from","components","component","addComponent","export","filePath","hook","opts","references","types","declarations"],"mappings":"yGAOA,MAgBAA,EAAeC,mBAAoC,CACjDC,KAAM,CACJC,KAAM,4BACNC,UAAW,cACXC,cAAe,CACbC,KAAM,WAGVC,SAxBwC,CACxCC,QAAS,+BACTC,YAAa,UACbC,YAAa,IACbC,YAAa,aACbC,aAAc,IACdC,aAAa,EACbC,gBAAiB,EACjBC,gBAAiB,GACjBC,gBAAiB,CAAC,QAAS,SAAU,aACrCC,SAAS,EACTC,QAAQ,EACRC,aAAc,GACdC,kBAAmB,IAYnB,WAAMC,CAAMC,EAAShB,GACnB,MAAMiB,EAAWC,EAAAA,gMAGjBlB,EAAKgB,QAAQG,cAAcC,OAASpB,EAAKgB,QAAQG,cAAcC,QAAU,CAAA,EACzE,MAAMD,EAAgB,IACjBH,EACHJ,QAA2B,IAAnBI,EAAQJ,QAGhBZ,EAAKgB,QAAQG,cAAcC,OAAeC,YAAcF,EAGxDnB,EAAKgB,QAAQM,UAAkBD,YAAcF,GAGxB,IAAnBH,EAAQJ,QACVZ,EAAKgB,QAAQO,IAAIC,KAAK,+BAKxB,MAAMC,EAAM,QAENC,EAAmBT,EAASU,QAAQ,2BAA2BF,KAC/DG,EAAmBX,EAASU,QAAQ,2BAA2BF,KAC/DI,EAAiBZ,EAASU,QAAQ,oCAAoCF,KAG5EK,YAAU,CACRC,IAAKL,EACLM,KAAM,WAIRF,YAAU,CACRC,IAAKH,EACLI,KAAM,WAIRC,qBAAmB,CACjBpC,KAAM,OACNqC,KAAML,EACNM,QAAQ,IAIVC,aAAW,CACT,CACEvC,KAAM,iBACNwC,GAAI,iBACJC,KAAMrB,EAASU,QAAQ,wCAAwCF,MAEjE,CACE5B,KAAM,cACNwC,GAAI,cACJC,KAAMrB,EAASU,QAAQ,wCAAwCF,MAEjE,CACE5B,KAAM,eACNwC,GAAI,eACJC,KAAMrB,EAASU,QAAQ,wCAAwCF,QAKnE,MAAMc,EAAa,CACjB,cACA,gBACA,gBACA,wBACA,qBACA,oBACA,uBACA,kBACA,wBACA,WACA,YACA,cACA,uBAEA,iBACA,kBACA,gBACA,iBACA,gBACA,gBACA,mBAGF,IAAA,MAAWC,KAAaD,EACtBE,eAAa,CACX5C,KAAM2C,EACNE,OAAQF,EACRG,SAAU,sBAKd3C,EAAK4C,KAAK,gBAAkBC,IAC1BA,EAAKC,WAAWtB,KAAK,CACnBuB,MAAO,6BAITF,EAAKG,aAAaxB,KAAK,8EAEoBP,EAASU,QAAQ,iHACpBV,EAASU,QAAQ,+GAChBV,EAASU,QAAQ,sFAI9D"}
1
+ {"version":3,"file":"module.cjs.js","sources":["../../../../apps/accounts-ui/src/nuxt-v4/module.ts"],"sourcesContent":["import { defineNuxtModule, addPlugin, createResolver, addImports, addComponent, addRouteMiddleware } from '@nuxt/kit'\n\n// Re-export types for users\nexport type { StrandsAuthConfig, StrandsAuthEndpoints } from '../types'\nimport type { StrandsAuthConfig } from '../types'\n\n// Create defaults that match the full interface to ensure proper type inference \nconst moduleDefaults: StrandsAuthConfig = {\n baseUrl: '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 supportEmail: '',\n oauth2RedirectUrl: ''\n}\n\nexport default defineNuxtModule<StrandsAuthConfig>({\n meta: {\n name: '@strands.gg/accui/nuxt-v4',\n configKey: 'strandsAuth',\n compatibility: {\n nuxt: '^4.0.0'\n }\n },\n defaults: moduleDefaults,\n async setup(options, nuxt) {\n const resolver = createResolver(import.meta.url)\n\n // Add runtime config\n nuxt.options.runtimeConfig.public = nuxt.options.runtimeConfig.public || {}\n const runtimeConfig = {\n ...options,\n styles: options.styles !== false\n }\n \n ;(nuxt.options.runtimeConfig.public as any).strandsAuth = runtimeConfig\n \n // Also add it to app config for immediate access\n ;(nuxt.options.appConfig as any).strandsAuth = runtimeConfig\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 }\n\n // Plugin and middleware paths - always use built JavaScript files when module is distributed\n // This prevents issues when the module is loaded from dist/ directory\n const ext = 'es.js'\n \n const clientPluginPath = resolver.resolve(`./runtime/plugin.client.${ext}`)\n const serverPluginPath = resolver.resolve(`./runtime/plugin.server.${ext}`) \n const middlewarePath = resolver.resolve(`./runtime/middleware/auth.global.${ext}`)\n\n // Add the main plugin with highest priority to ensure config is set early\n addPlugin({\n src: clientPluginPath,\n mode: 'client'\n })\n\n // Add server plugin for SSR support \n addPlugin({\n src: serverPluginPath,\n mode: 'server'\n })\n\n // Add auth interceptor plugin for automatic token injection\n addPlugin({\n src: resolver.resolve(`./runtime/plugins/auth-interceptor.client.${ext}`),\n mode: 'client'\n })\n\n // Add middleware for route protection (updated for Nuxt v4)\n addRouteMiddleware({\n name: 'auth',\n path: middlewarePath,\n global: true\n })\n\n // Auto-import composables - use TypeScript in development, JavaScript in production\n addImports([\n {\n name: 'useStrandsAuth',\n as: 'useStrandsAuth',\n from: resolver.resolve(`./runtime/composables/useStrandsAuth.${ext}`)\n },\n {\n name: 'useAuthUser',\n as: 'useAuthUser', \n from: resolver.resolve(`./runtime/composables/useStrandsAuth.${ext}`)\n },\n {\n name: 'useAuthState',\n as: 'useAuthState',\n from: resolver.resolve(`./runtime/composables/useStrandsAuth.${ext}`)\n },\n {\n name: 'useAuthenticatedFetch',\n as: 'useAuthenticatedFetch',\n from: resolver.resolve(`./runtime/composables/useAuthenticatedFetch.${ext}`)\n }\n ])\n\n // Auto-register components from the main bundle export\n const components = [\n 'StrandsAuth',\n 'StrandsSignIn', \n 'StrandsSignUp',\n 'StrandsCompleteSignUp',\n 'StrandsUserProfile',\n 'StrandsUserButton',\n 'StrandsPasswordReset',\n 'StrandsMFASetup',\n 'StrandsConfigProvider',\n 'SignedIn',\n 'SignedOut',\n 'StrandsLogo',\n 'StrandsSecuredFooter',\n // UI Components\n 'StrandsUiAlert',\n 'StrandsUiButton',\n 'StrandsUiCard',\n 'StrandsUiInput',\n 'StrandsUiLink',\n 'StrandsUiTabs',\n 'StrandsUiLoader'\n ]\n\n for (const component of components) {\n addComponent({\n name: component,\n export: component,\n filePath: '@strands.gg/accui'\n })\n }\n\n // Add type declarations (updated for Nuxt v4)\n nuxt.hook('prepare:types', (opts) => {\n opts.references.push({\n types: '@strands.gg/auth-nuxt-v4'\n })\n \n // Add the composables to the auto-imports types\n opts.declarations.push(`\n declare global {\n const useStrandsAuth: typeof import('${resolver.resolve(`./runtime/composables/useStrandsAuth.d.ts`)}')['useStrandsAuth']\n const useAuthUser: typeof import('${resolver.resolve(`./runtime/composables/useStrandsAuth.d.ts`)}')['useAuthUser']\n const useAuthState: typeof import('${resolver.resolve(`./runtime/composables/useStrandsAuth.d.ts`)}')['useAuthState']\n }\n `)\n })\n }\n})\n"],"names":["module$1","defineNuxtModule","meta","name","configKey","compatibility","nuxt","defaults","baseUrl","accentColor","redirectUrl","onSignInUrl","onSignOutUrl","autoRefresh","refreshInterval","protectedRoutes","guestOnlyRoutes","devMode","styles","supportEmail","oauth2RedirectUrl","setup","options","resolver","createResolver","runtimeConfig","public","strandsAuth","appConfig","css","push","ext","clientPluginPath","resolve","serverPluginPath","middlewarePath","addPlugin","src","mode","addRouteMiddleware","path","global","addImports","as","from","components","component","addComponent","export","filePath","hook","opts","references","types","declarations"],"mappings":"yGAOA,MAgBAA,EAAeC,mBAAoC,CACjDC,KAAM,CACJC,KAAM,4BACNC,UAAW,cACXC,cAAe,CACbC,KAAM,WAGVC,SAxBwC,CACxCC,QAAS,+BACTC,YAAa,UACbC,YAAa,IACbC,YAAa,aACbC,aAAc,IACdC,aAAa,EACbC,gBAAiB,EACjBC,gBAAiB,GACjBC,gBAAiB,CAAC,QAAS,SAAU,aACrCC,SAAS,EACTC,QAAQ,EACRC,aAAc,GACdC,kBAAmB,IAYnB,WAAMC,CAAMC,EAAShB,GACnB,MAAMiB,EAAWC,EAAAA,gMAGjBlB,EAAKgB,QAAQG,cAAcC,OAASpB,EAAKgB,QAAQG,cAAcC,QAAU,CAAA,EACzE,MAAMD,EAAgB,IACjBH,EACHJ,QAA2B,IAAnBI,EAAQJ,QAGhBZ,EAAKgB,QAAQG,cAAcC,OAAeC,YAAcF,EAGxDnB,EAAKgB,QAAQM,UAAkBD,YAAcF,GAGxB,IAAnBH,EAAQJ,QACVZ,EAAKgB,QAAQO,IAAIC,KAAK,+BAKxB,MAAMC,EAAM,QAENC,EAAmBT,EAASU,QAAQ,2BAA2BF,KAC/DG,EAAmBX,EAASU,QAAQ,2BAA2BF,KAC/DI,EAAiBZ,EAASU,QAAQ,oCAAoCF,KAG5EK,YAAU,CACRC,IAAKL,EACLM,KAAM,WAIRF,YAAU,CACRC,IAAKH,EACLI,KAAM,WAIRF,YAAU,CACRC,IAAKd,EAASU,QAAQ,6CAA6CF,KACnEO,KAAM,WAIRC,qBAAmB,CACjBpC,KAAM,OACNqC,KAAML,EACNM,QAAQ,IAIVC,aAAW,CACT,CACEvC,KAAM,iBACNwC,GAAI,iBACJC,KAAMrB,EAASU,QAAQ,wCAAwCF,MAEjE,CACE5B,KAAM,cACNwC,GAAI,cACJC,KAAMrB,EAASU,QAAQ,wCAAwCF,MAEjE,CACE5B,KAAM,eACNwC,GAAI,eACJC,KAAMrB,EAASU,QAAQ,wCAAwCF,MAEjE,CACE5B,KAAM,wBACNwC,GAAI,wBACJC,KAAMrB,EAASU,QAAQ,+CAA+CF,QAK1E,MAAMc,EAAa,CACjB,cACA,gBACA,gBACA,wBACA,qBACA,oBACA,uBACA,kBACA,wBACA,WACA,YACA,cACA,uBAEA,iBACA,kBACA,gBACA,iBACA,gBACA,gBACA,mBAGF,IAAA,MAAWC,KAAaD,EACtBE,eAAa,CACX5C,KAAM2C,EACNE,OAAQF,EACRG,SAAU,sBAKd3C,EAAK4C,KAAK,gBAAkBC,IAC1BA,EAAKC,WAAWtB,KAAK,CACnBuB,MAAO,6BAITF,EAAKG,aAAaxB,KAAK,8EAEoBP,EAASU,QAAQ,iHACpBV,EAASU,QAAQ,+GAChBV,EAASU,QAAQ,sFAI9D"}
@@ -47,6 +47,10 @@ const module = defineNuxtModule({
47
47
  src: serverPluginPath,
48
48
  mode: "server"
49
49
  });
50
+ addPlugin({
51
+ src: resolver.resolve(`./runtime/plugins/auth-interceptor.client.${ext}`),
52
+ mode: "client"
53
+ });
50
54
  addRouteMiddleware({
51
55
  name: "auth",
52
56
  path: middlewarePath,
@@ -67,6 +71,11 @@ const module = defineNuxtModule({
67
71
  name: "useAuthState",
68
72
  as: "useAuthState",
69
73
  from: resolver.resolve(`./runtime/composables/useStrandsAuth.${ext}`)
74
+ },
75
+ {
76
+ name: "useAuthenticatedFetch",
77
+ as: "useAuthenticatedFetch",
78
+ from: resolver.resolve(`./runtime/composables/useAuthenticatedFetch.${ext}`)
70
79
  }
71
80
  ]);
72
81
  const components = [
@@ -1 +1 @@
1
- {"version":3,"file":"module.es.js","sources":["../../../../apps/accounts-ui/src/nuxt-v4/module.ts"],"sourcesContent":["import { defineNuxtModule, addPlugin, createResolver, addImports, addComponent, addRouteMiddleware } from '@nuxt/kit'\n\n// Re-export types for users\nexport type { StrandsAuthConfig, StrandsAuthEndpoints } from '../types'\nimport type { StrandsAuthConfig } from '../types'\n\n// Create defaults that match the full interface to ensure proper type inference \nconst moduleDefaults: StrandsAuthConfig = {\n baseUrl: '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 supportEmail: '',\n oauth2RedirectUrl: ''\n}\n\nexport default defineNuxtModule<StrandsAuthConfig>({\n meta: {\n name: '@strands.gg/accui/nuxt-v4',\n configKey: 'strandsAuth',\n compatibility: {\n nuxt: '^4.0.0'\n }\n },\n defaults: moduleDefaults,\n async setup(options, nuxt) {\n const resolver = createResolver(import.meta.url)\n\n // Add runtime config\n nuxt.options.runtimeConfig.public = nuxt.options.runtimeConfig.public || {}\n const runtimeConfig = {\n ...options,\n styles: options.styles !== false\n }\n \n ;(nuxt.options.runtimeConfig.public as any).strandsAuth = runtimeConfig\n \n // Also add it to app config for immediate access\n ;(nuxt.options.appConfig as any).strandsAuth = runtimeConfig\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 }\n\n // Plugin and middleware paths - always use built JavaScript files when module is distributed\n // This prevents issues when the module is loaded from dist/ directory\n const ext = 'es.js'\n \n const clientPluginPath = resolver.resolve(`./runtime/plugin.client.${ext}`)\n const serverPluginPath = resolver.resolve(`./runtime/plugin.server.${ext}`) \n const middlewarePath = resolver.resolve(`./runtime/middleware/auth.global.${ext}`)\n\n // Add the main plugin with highest priority to ensure config is set early\n addPlugin({\n src: clientPluginPath,\n mode: 'client'\n })\n\n // Add server plugin for SSR support \n addPlugin({\n src: serverPluginPath,\n mode: 'server'\n })\n\n // Add middleware for route protection (updated for Nuxt v4)\n addRouteMiddleware({\n name: 'auth',\n path: middlewarePath,\n global: true\n })\n\n // Auto-import composables - use TypeScript in development, JavaScript in production\n addImports([\n {\n name: 'useStrandsAuth',\n as: 'useStrandsAuth',\n from: resolver.resolve(`./runtime/composables/useStrandsAuth.${ext}`)\n },\n {\n name: 'useAuthUser',\n as: 'useAuthUser', \n from: resolver.resolve(`./runtime/composables/useStrandsAuth.${ext}`)\n },\n {\n name: 'useAuthState',\n as: 'useAuthState',\n from: resolver.resolve(`./runtime/composables/useStrandsAuth.${ext}`)\n }\n ])\n\n // Auto-register components from the main bundle export\n const components = [\n 'StrandsAuth',\n 'StrandsSignIn', \n 'StrandsSignUp',\n 'StrandsCompleteSignUp',\n 'StrandsUserProfile',\n 'StrandsUserButton',\n 'StrandsPasswordReset',\n 'StrandsMFASetup',\n 'StrandsConfigProvider',\n 'SignedIn',\n 'SignedOut',\n 'StrandsLogo',\n 'StrandsSecuredFooter',\n // UI Components\n 'StrandsUiAlert',\n 'StrandsUiButton',\n 'StrandsUiCard',\n 'StrandsUiInput',\n 'StrandsUiLink',\n 'StrandsUiTabs',\n 'StrandsUiLoader'\n ]\n\n for (const component of components) {\n addComponent({\n name: component,\n export: component,\n filePath: '@strands.gg/accui'\n })\n }\n\n // Add type declarations (updated for Nuxt v4)\n nuxt.hook('prepare:types', (opts) => {\n opts.references.push({\n types: '@strands.gg/auth-nuxt-v4'\n })\n \n // Add the composables to the auto-imports types\n opts.declarations.push(`\n declare global {\n const useStrandsAuth: typeof import('${resolver.resolve(`./runtime/composables/useStrandsAuth.d.ts`)}')['useStrandsAuth']\n const useAuthUser: typeof import('${resolver.resolve(`./runtime/composables/useStrandsAuth.d.ts`)}')['useAuthUser']\n const useAuthState: typeof import('${resolver.resolve(`./runtime/composables/useStrandsAuth.d.ts`)}')['useAuthState']\n }\n `)\n })\n }\n})\n"],"names":[],"mappings":";AAOA,MAAM,iBAAoC;AAAA,EACxC,SAAS;AAAA,EACT,aAAa;AAAA,EACb,aAAa;AAAA,EACb,aAAa;AAAA,EACb,cAAc;AAAA,EACd,aAAa;AAAA,EACb,iBAAiB;AAAA,EACjB,iBAAiB,CAAA;AAAA,EACjB,iBAAiB,CAAC,SAAS,UAAU,WAAW;AAAA,EAChD,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,mBAAmB;AACrB;AAEA,MAAA,SAAe,iBAAoC;AAAA,EACjD,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,WAAW;AAAA,IACX,eAAe;AAAA,MACb,MAAM;AAAA,IAAA;AAAA,EACR;AAAA,EAEF,UAAU;AAAA,EACV,MAAM,MAAM,SAAS,MAAM;AACzB,UAAM,WAAW,eAAe,YAAY,GAAG;AAG/C,SAAK,QAAQ,cAAc,SAAS,KAAK,QAAQ,cAAc,UAAU,CAAA;AACzE,UAAM,gBAAgB;AAAA,MACpB,GAAG;AAAA,MACH,QAAQ,QAAQ,WAAW;AAAA,IAAA;AAG3B,SAAK,QAAQ,cAAc,OAAe,cAAc;AAGxD,SAAK,QAAQ,UAAkB,cAAc;AAG/C,QAAI,QAAQ,WAAW,OAAO;AAC5B,WAAK,QAAQ,IAAI,KAAK,6BAA6B;AAAA,IACrD;AAIA,UAAM,MAAM;AAEZ,UAAM,mBAAmB,SAAS,QAAQ,2BAA2B,GAAG,EAAE;AAC1E,UAAM,mBAAmB,SAAS,QAAQ,2BAA2B,GAAG,EAAE;AAC1E,UAAM,iBAAiB,SAAS,QAAQ,oCAAoC,GAAG,EAAE;AAGjF,cAAU;AAAA,MACR,KAAK;AAAA,MACL,MAAM;AAAA,IAAA,CACP;AAGD,cAAU;AAAA,MACR,KAAK;AAAA,MACL,MAAM;AAAA,IAAA,CACP;AAGD,uBAAmB;AAAA,MACjB,MAAM;AAAA,MACN,MAAM;AAAA,MACN,QAAQ;AAAA,IAAA,CACT;AAGD,eAAW;AAAA,MACT;AAAA,QACE,MAAM;AAAA,QACN,IAAI;AAAA,QACJ,MAAM,SAAS,QAAQ,wCAAwC,GAAG,EAAE;AAAA,MAAA;AAAA,MAEtE;AAAA,QACE,MAAM;AAAA,QACN,IAAI;AAAA,QACJ,MAAM,SAAS,QAAQ,wCAAwC,GAAG,EAAE;AAAA,MAAA;AAAA,MAEtE;AAAA,QACE,MAAM;AAAA,QACN,IAAI;AAAA,QACJ,MAAM,SAAS,QAAQ,wCAAwC,GAAG,EAAE;AAAA,MAAA;AAAA,IACtE,CACD;AAGD,UAAM,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAGF,eAAW,aAAa,YAAY;AAClC,mBAAa;AAAA,QACX,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,UAAU;AAAA,MAAA,CACX;AAAA,IACH;AAGA,SAAK,KAAK,iBAAiB,CAAC,SAAS;AACnC,WAAK,WAAW,KAAK;AAAA,QACnB,OAAO;AAAA,MAAA,CACR;AAGD,WAAK,aAAa,KAAK;AAAA;AAAA,iDAEoB,SAAS,QAAQ,2CAA2C,CAAC;AAAA,8CAChE,SAAS,QAAQ,2CAA2C,CAAC;AAAA,+CAC5D,SAAS,QAAQ,2CAA2C,CAAC;AAAA;AAAA,OAErG;AAAA,IACH,CAAC;AAAA,EACH;AACF,CAAC;"}
1
+ {"version":3,"file":"module.es.js","sources":["../../../../apps/accounts-ui/src/nuxt-v4/module.ts"],"sourcesContent":["import { defineNuxtModule, addPlugin, createResolver, addImports, addComponent, addRouteMiddleware } from '@nuxt/kit'\n\n// Re-export types for users\nexport type { StrandsAuthConfig, StrandsAuthEndpoints } from '../types'\nimport type { StrandsAuthConfig } from '../types'\n\n// Create defaults that match the full interface to ensure proper type inference \nconst moduleDefaults: StrandsAuthConfig = {\n baseUrl: '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 supportEmail: '',\n oauth2RedirectUrl: ''\n}\n\nexport default defineNuxtModule<StrandsAuthConfig>({\n meta: {\n name: '@strands.gg/accui/nuxt-v4',\n configKey: 'strandsAuth',\n compatibility: {\n nuxt: '^4.0.0'\n }\n },\n defaults: moduleDefaults,\n async setup(options, nuxt) {\n const resolver = createResolver(import.meta.url)\n\n // Add runtime config\n nuxt.options.runtimeConfig.public = nuxt.options.runtimeConfig.public || {}\n const runtimeConfig = {\n ...options,\n styles: options.styles !== false\n }\n \n ;(nuxt.options.runtimeConfig.public as any).strandsAuth = runtimeConfig\n \n // Also add it to app config for immediate access\n ;(nuxt.options.appConfig as any).strandsAuth = runtimeConfig\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 }\n\n // Plugin and middleware paths - always use built JavaScript files when module is distributed\n // This prevents issues when the module is loaded from dist/ directory\n const ext = 'es.js'\n \n const clientPluginPath = resolver.resolve(`./runtime/plugin.client.${ext}`)\n const serverPluginPath = resolver.resolve(`./runtime/plugin.server.${ext}`) \n const middlewarePath = resolver.resolve(`./runtime/middleware/auth.global.${ext}`)\n\n // Add the main plugin with highest priority to ensure config is set early\n addPlugin({\n src: clientPluginPath,\n mode: 'client'\n })\n\n // Add server plugin for SSR support \n addPlugin({\n src: serverPluginPath,\n mode: 'server'\n })\n\n // Add auth interceptor plugin for automatic token injection\n addPlugin({\n src: resolver.resolve(`./runtime/plugins/auth-interceptor.client.${ext}`),\n mode: 'client'\n })\n\n // Add middleware for route protection (updated for Nuxt v4)\n addRouteMiddleware({\n name: 'auth',\n path: middlewarePath,\n global: true\n })\n\n // Auto-import composables - use TypeScript in development, JavaScript in production\n addImports([\n {\n name: 'useStrandsAuth',\n as: 'useStrandsAuth',\n from: resolver.resolve(`./runtime/composables/useStrandsAuth.${ext}`)\n },\n {\n name: 'useAuthUser',\n as: 'useAuthUser', \n from: resolver.resolve(`./runtime/composables/useStrandsAuth.${ext}`)\n },\n {\n name: 'useAuthState',\n as: 'useAuthState',\n from: resolver.resolve(`./runtime/composables/useStrandsAuth.${ext}`)\n },\n {\n name: 'useAuthenticatedFetch',\n as: 'useAuthenticatedFetch',\n from: resolver.resolve(`./runtime/composables/useAuthenticatedFetch.${ext}`)\n }\n ])\n\n // Auto-register components from the main bundle export\n const components = [\n 'StrandsAuth',\n 'StrandsSignIn', \n 'StrandsSignUp',\n 'StrandsCompleteSignUp',\n 'StrandsUserProfile',\n 'StrandsUserButton',\n 'StrandsPasswordReset',\n 'StrandsMFASetup',\n 'StrandsConfigProvider',\n 'SignedIn',\n 'SignedOut',\n 'StrandsLogo',\n 'StrandsSecuredFooter',\n // UI Components\n 'StrandsUiAlert',\n 'StrandsUiButton',\n 'StrandsUiCard',\n 'StrandsUiInput',\n 'StrandsUiLink',\n 'StrandsUiTabs',\n 'StrandsUiLoader'\n ]\n\n for (const component of components) {\n addComponent({\n name: component,\n export: component,\n filePath: '@strands.gg/accui'\n })\n }\n\n // Add type declarations (updated for Nuxt v4)\n nuxt.hook('prepare:types', (opts) => {\n opts.references.push({\n types: '@strands.gg/auth-nuxt-v4'\n })\n \n // Add the composables to the auto-imports types\n opts.declarations.push(`\n declare global {\n const useStrandsAuth: typeof import('${resolver.resolve(`./runtime/composables/useStrandsAuth.d.ts`)}')['useStrandsAuth']\n const useAuthUser: typeof import('${resolver.resolve(`./runtime/composables/useStrandsAuth.d.ts`)}')['useAuthUser']\n const useAuthState: typeof import('${resolver.resolve(`./runtime/composables/useStrandsAuth.d.ts`)}')['useAuthState']\n }\n `)\n })\n }\n})\n"],"names":[],"mappings":";AAOA,MAAM,iBAAoC;AAAA,EACxC,SAAS;AAAA,EACT,aAAa;AAAA,EACb,aAAa;AAAA,EACb,aAAa;AAAA,EACb,cAAc;AAAA,EACd,aAAa;AAAA,EACb,iBAAiB;AAAA,EACjB,iBAAiB,CAAA;AAAA,EACjB,iBAAiB,CAAC,SAAS,UAAU,WAAW;AAAA,EAChD,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,mBAAmB;AACrB;AAEA,MAAA,SAAe,iBAAoC;AAAA,EACjD,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,WAAW;AAAA,IACX,eAAe;AAAA,MACb,MAAM;AAAA,IAAA;AAAA,EACR;AAAA,EAEF,UAAU;AAAA,EACV,MAAM,MAAM,SAAS,MAAM;AACzB,UAAM,WAAW,eAAe,YAAY,GAAG;AAG/C,SAAK,QAAQ,cAAc,SAAS,KAAK,QAAQ,cAAc,UAAU,CAAA;AACzE,UAAM,gBAAgB;AAAA,MACpB,GAAG;AAAA,MACH,QAAQ,QAAQ,WAAW;AAAA,IAAA;AAG3B,SAAK,QAAQ,cAAc,OAAe,cAAc;AAGxD,SAAK,QAAQ,UAAkB,cAAc;AAG/C,QAAI,QAAQ,WAAW,OAAO;AAC5B,WAAK,QAAQ,IAAI,KAAK,6BAA6B;AAAA,IACrD;AAIA,UAAM,MAAM;AAEZ,UAAM,mBAAmB,SAAS,QAAQ,2BAA2B,GAAG,EAAE;AAC1E,UAAM,mBAAmB,SAAS,QAAQ,2BAA2B,GAAG,EAAE;AAC1E,UAAM,iBAAiB,SAAS,QAAQ,oCAAoC,GAAG,EAAE;AAGjF,cAAU;AAAA,MACR,KAAK;AAAA,MACL,MAAM;AAAA,IAAA,CACP;AAGD,cAAU;AAAA,MACR,KAAK;AAAA,MACL,MAAM;AAAA,IAAA,CACP;AAGD,cAAU;AAAA,MACR,KAAK,SAAS,QAAQ,6CAA6C,GAAG,EAAE;AAAA,MACxE,MAAM;AAAA,IAAA,CACP;AAGD,uBAAmB;AAAA,MACjB,MAAM;AAAA,MACN,MAAM;AAAA,MACN,QAAQ;AAAA,IAAA,CACT;AAGD,eAAW;AAAA,MACT;AAAA,QACE,MAAM;AAAA,QACN,IAAI;AAAA,QACJ,MAAM,SAAS,QAAQ,wCAAwC,GAAG,EAAE;AAAA,MAAA;AAAA,MAEtE;AAAA,QACE,MAAM;AAAA,QACN,IAAI;AAAA,QACJ,MAAM,SAAS,QAAQ,wCAAwC,GAAG,EAAE;AAAA,MAAA;AAAA,MAEtE;AAAA,QACE,MAAM;AAAA,QACN,IAAI;AAAA,QACJ,MAAM,SAAS,QAAQ,wCAAwC,GAAG,EAAE;AAAA,MAAA;AAAA,MAEtE;AAAA,QACE,MAAM;AAAA,QACN,IAAI;AAAA,QACJ,MAAM,SAAS,QAAQ,+CAA+C,GAAG,EAAE;AAAA,MAAA;AAAA,IAC7E,CACD;AAGD,UAAM,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAGF,eAAW,aAAa,YAAY;AAClC,mBAAa;AAAA,QACX,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,UAAU;AAAA,MAAA,CACX;AAAA,IACH;AAGA,SAAK,KAAK,iBAAiB,CAAC,SAAS;AACnC,WAAK,WAAW,KAAK;AAAA,QACnB,OAAO;AAAA,MAAA,CACR;AAGD,WAAK,aAAa,KAAK;AAAA;AAAA,iDAEoB,SAAS,QAAQ,2CAA2C,CAAC;AAAA,8CAChE,SAAS,QAAQ,2CAA2C,CAAC;AAAA,+CAC5D,SAAS,QAAQ,2CAA2C,CAAC;AAAA;AAAA,OAErG;AAAA,IACH,CAAC;AAAA,EACH;AACF,CAAC;"}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("nuxt/app"),e=require("../../../useStrandsAuth-Co9ekmXB.cjs"),n=()=>{const n=t.useRuntimeConfig().public.strandsAuth,s=e.useStrandsAuth();return{user:s.user,currentUser:s.currentUser,currentSession:s.currentSession,isAuthenticated:s.isAuthenticated,isLoading:s.isLoading,loading:s.loading,signIn:async e=>{const i=await s.signIn(e);return i&&n.onSignInUrl&&await t.navigateTo(n.onSignInUrl),i},signUp:async t=>await s.signUp({email:t.email,password:"",firstName:"",lastName:""}),signOut:async()=>{await s.signOut(),n.onSignOutUrl&&await t.navigateTo(n.onSignOutUrl)},refreshToken:s.refreshToken,updateProfile:s.updateProfile,setAuthData:s.setAuthData,initialize:async()=>{try{await s.initialize()}catch(t){}}}};exports.useAuthState=()=>{const{isAuthenticated:t,isLoading:e}=n();return{isAuthenticated:t,isLoading:e}},exports.useAuthUser=()=>{const{user:t}=n();return{user:t}},exports.useStrandsAuth=n;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("nuxt/app"),e=require("../../../useStrandsAuth-CTlaiFqK.cjs"),n=()=>{const n=t.useRuntimeConfig().public.strandsAuth,s=e.useStrandsAuth();return{user:s.user,currentUser:s.currentUser,currentSession:s.currentSession,isAuthenticated:s.isAuthenticated,isLoading:s.isLoading,loading:s.loading,signIn:async e=>{const i=await s.signIn(e);return i&&n.onSignInUrl&&await t.navigateTo(n.onSignInUrl),i},signUp:async t=>await s.signUp({email:t.email,password:"",firstName:"",lastName:""}),signOut:async()=>{await s.signOut(),n.onSignOutUrl&&await t.navigateTo(n.onSignOutUrl)},refreshToken:s.refreshToken,updateProfile:s.updateProfile,setAuthData:s.setAuthData,initialize:async()=>{try{await s.initialize()}catch(t){}}}};exports.useAuthState=()=>{const{isAuthenticated:t,isLoading:e}=n();return{isAuthenticated:t,isLoading:e}},exports.useAuthUser=()=>{const{user:t}=n();return{user:t}},exports.useStrandsAuth=n;
@@ -1,5 +1,5 @@
1
1
  import { useRuntimeConfig, navigateTo } from "nuxt/app";
2
- import { u as useStrandsAuth$1 } from "../../../useStrandsAuth-kWUOoMm-.js";
2
+ import { u as useStrandsAuth$1 } from "../../../useStrandsAuth-Cev-PTun.js";
3
3
  const useStrandsAuth = () => {
4
4
  const config = useRuntimeConfig().public["strandsAuth"];
5
5
  const vueAuth = useStrandsAuth$1();