@strands.gg/accui 2.1.2 → 2.1.3
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/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/nuxt/module.d.ts +6 -0
- package/dist/nuxt/module.d.ts.map +1 -0
- package/dist/nuxt/runtime/composables/useAuthenticatedFetch.d.ts +21 -0
- package/dist/nuxt/runtime/composables/useAuthenticatedFetch.d.ts.map +1 -0
- package/dist/nuxt/runtime/composables/useStrandsAuth.d.ts +143 -0
- package/dist/nuxt/runtime/composables/useStrandsAuth.d.ts.map +1 -0
- package/dist/nuxt/runtime/middleware/auth.d.ts +8 -0
- package/dist/nuxt/runtime/middleware/auth.d.ts.map +1 -0
- package/dist/nuxt/runtime/middleware/auth.global.d.ts +4 -0
- package/dist/nuxt/runtime/middleware/auth.global.d.ts.map +1 -0
- package/dist/nuxt/runtime/middleware/guest.d.ts +8 -0
- package/dist/nuxt/runtime/middleware/guest.d.ts.map +1 -0
- package/dist/nuxt/runtime/plugin.client.d.ts +4 -0
- package/dist/nuxt/runtime/plugin.client.d.ts.map +1 -0
- package/dist/nuxt/runtime/plugin.server.d.ts +4 -0
- package/dist/nuxt/runtime/plugin.server.d.ts.map +1 -0
- package/dist/nuxt/runtime/plugins/auth-interceptor.client.d.ts +4 -0
- package/dist/nuxt/runtime/plugins/auth-interceptor.client.d.ts.map +1 -0
- package/dist/nuxt/types.d.ts +46 -0
- package/dist/nuxt/types.d.ts.map +1 -0
- package/dist/nuxt-v4/module.d.ts +6 -0
- package/dist/nuxt-v4/module.d.ts.map +1 -0
- package/dist/nuxt-v4/runtime/composables/useAuthenticatedFetch.cjs.js.map +1 -1
- package/dist/nuxt-v4/runtime/composables/useAuthenticatedFetch.d.ts +21 -0
- package/dist/nuxt-v4/runtime/composables/useAuthenticatedFetch.d.ts.map +1 -0
- package/dist/nuxt-v4/runtime/composables/useAuthenticatedFetch.es.js.map +1 -1
- package/dist/nuxt-v4/runtime/composables/useStrandsAuth.cjs.js +1 -1
- package/dist/nuxt-v4/runtime/composables/useStrandsAuth.cjs.js.map +1 -1
- package/dist/nuxt-v4/runtime/composables/useStrandsAuth.d.ts +28 -0
- package/dist/nuxt-v4/runtime/composables/useStrandsAuth.d.ts.map +1 -0
- package/dist/nuxt-v4/runtime/composables/useStrandsAuth.es.js +1 -0
- package/dist/nuxt-v4/runtime/composables/useStrandsAuth.es.js.map +1 -1
- package/dist/nuxt-v4/runtime/middleware/auth.global.d.ts +4 -0
- package/dist/nuxt-v4/runtime/middleware/auth.global.d.ts.map +1 -0
- package/dist/nuxt-v4/runtime/plugin.client.d.ts +4 -0
- package/dist/nuxt-v4/runtime/plugin.client.d.ts.map +1 -0
- package/dist/nuxt-v4/runtime/plugin.server.d.ts +4 -0
- package/dist/nuxt-v4/runtime/plugin.server.d.ts.map +1 -0
- package/dist/nuxt-v4/runtime/plugins/auth-interceptor.client.cjs.js.map +1 -1
- package/dist/nuxt-v4/runtime/plugins/auth-interceptor.client.d.ts +4 -0
- package/dist/nuxt-v4/runtime/plugins/auth-interceptor.client.d.ts.map +1 -0
- package/dist/nuxt-v4/runtime/plugins/auth-interceptor.client.es.js.map +1 -1
- package/dist/nuxt-v4/types.d.ts +64 -0
- package/dist/nuxt-v4/types.d.ts.map +1 -0
- package/dist/nuxt-v4.d.ts +5 -0
- package/dist/nuxt-v4.d.ts.map +1 -0
- package/dist/nuxt.d.ts +5 -0
- package/dist/nuxt.d.ts.map +1 -0
- package/dist/shared/defaults.d.ts +3 -0
- package/dist/shared/defaults.d.ts.map +1 -0
- package/dist/types/index.d.ts +237 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/slots.d.ts +2 -0
- package/dist/utils/slots.d.ts.map +1 -0
- package/dist/utils/validation.d.ts +13 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/vue/components/SignedIn.vue.d.ts +55 -0
- package/dist/vue/components/SignedIn.vue.d.ts.map +1 -0
- package/dist/vue/components/SignedOut.vue.d.ts +55 -0
- package/dist/vue/components/SignedOut.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsAuth.vue.d.ts +26 -0
- package/dist/vue/components/StrandsAuth.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsBackupCodesModal.vue.d.ts +13 -0
- package/dist/vue/components/StrandsBackupCodesModal.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsCompleteSignUp.vue.d.ts +22 -0
- package/dist/vue/components/StrandsCompleteSignUp.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsConfigProvider.vue.d.ts +23 -0
- package/dist/vue/components/StrandsConfigProvider.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsConfirmModal.vue.d.ts +23 -0
- package/dist/vue/components/StrandsConfirmModal.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsEmailMfaSetupModal.vue.d.ts +13 -0
- package/dist/vue/components/StrandsEmailMfaSetupModal.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsHardwareKeySetupModal.vue.d.ts +16 -0
- package/dist/vue/components/StrandsHardwareKeySetupModal.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsLogo.vue.d.ts +9 -0
- package/dist/vue/components/StrandsLogo.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsMFASetup.vue.d.ts +17 -0
- package/dist/vue/components/StrandsMFASetup.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsMfaModal.vue.d.ts +13 -0
- package/dist/vue/components/StrandsMfaModal.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsMfaVerification.vue.d.ts +18 -0
- package/dist/vue/components/StrandsMfaVerification.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsPasswordReset.vue.d.ts +16 -0
- package/dist/vue/components/StrandsPasswordReset.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsSecuredFooter.vue.d.ts +23 -0
- package/dist/vue/components/StrandsSecuredFooter.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsSessionsModal.vue.d.ts +15 -0
- package/dist/vue/components/StrandsSessionsModal.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsSettingsModal.vue.d.ts +19 -0
- package/dist/vue/components/StrandsSettingsModal.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsSignIn.vue.d.ts +22 -0
- package/dist/vue/components/StrandsSignIn.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsSignUp.vue.d.ts +20 -0
- package/dist/vue/components/StrandsSignUp.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsTotpSetupModal.vue.d.ts +13 -0
- package/dist/vue/components/StrandsTotpSetupModal.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsUserButton.vue.d.ts +31 -0
- package/dist/vue/components/StrandsUserButton.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsUserProfile.vue.d.ts +27 -0
- package/dist/vue/components/StrandsUserProfile.vue.d.ts.map +1 -0
- package/dist/vue/components/SvgIcon.vue.d.ts +18 -0
- package/dist/vue/components/SvgIcon.vue.d.ts.map +1 -0
- package/dist/vue/components/VirtualList.vue.d.ts +38 -0
- package/dist/vue/components/VirtualList.vue.d.ts.map +1 -0
- package/dist/vue/components/icons/IconGithub.vue.d.ts +4 -0
- package/dist/vue/components/icons/IconGithub.vue.d.ts.map +1 -0
- package/dist/vue/components/icons/IconGoogle.vue.d.ts +4 -0
- package/dist/vue/components/icons/IconGoogle.vue.d.ts.map +1 -0
- package/dist/vue/components/icons/index.d.ts +3 -0
- package/dist/vue/components/icons/index.d.ts.map +1 -0
- package/dist/vue/components/index.d.ts +27 -0
- package/dist/vue/components/index.d.ts.map +1 -0
- package/dist/vue/composables/useAuthenticatedFetch.d.ts +21 -0
- package/dist/vue/composables/useAuthenticatedFetch.d.ts.map +1 -0
- package/dist/vue/composables/useOAuthProviders.d.ts +75 -0
- package/dist/vue/composables/useOAuthProviders.d.ts.map +1 -0
- package/dist/vue/composables/useStrandsAuth.d.ts +131 -0
- package/dist/vue/composables/useStrandsAuth.d.ts.map +1 -0
- package/dist/vue/composables/useStrandsConfig.d.ts +12 -0
- package/dist/vue/composables/useStrandsConfig.d.ts.map +1 -0
- package/dist/vue/composables/useStrandsMfa.d.ts +39 -0
- package/dist/vue/composables/useStrandsMfa.d.ts.map +1 -0
- package/dist/vue/index.d.ts +13 -0
- package/dist/vue/index.d.ts.map +1 -0
- package/dist/vue/plugins/StrandsUIPlugin.d.ts +20 -0
- package/dist/vue/plugins/StrandsUIPlugin.d.ts.map +1 -0
- package/dist/vue/ui/UiAlert.vue.d.ts +32 -0
- package/dist/vue/ui/UiAlert.vue.d.ts.map +1 -0
- package/dist/vue/ui/UiAvatarEditor.vue.d.ts +26 -0
- package/dist/vue/ui/UiAvatarEditor.vue.d.ts.map +1 -0
- package/dist/vue/ui/UiButton.vue.d.ts +55 -0
- package/dist/vue/ui/UiButton.vue.d.ts.map +1 -0
- package/dist/vue/ui/UiCard.vue.d.ts +30 -0
- package/dist/vue/ui/UiCard.vue.d.ts.map +1 -0
- package/dist/vue/ui/UiInput.vue.d.ts +49 -0
- package/dist/vue/ui/UiInput.vue.d.ts.map +1 -0
- package/dist/vue/ui/UiLevelProgress.vue.d.ts +20 -0
- package/dist/vue/ui/UiLevelProgress.vue.d.ts.map +1 -0
- package/dist/vue/ui/UiLink.vue.d.ts +43 -0
- package/dist/vue/ui/UiLink.vue.d.ts.map +1 -0
- package/dist/vue/ui/UiLoader.vue.d.ts +16 -0
- package/dist/vue/ui/UiLoader.vue.d.ts.map +1 -0
- package/dist/vue/ui/UiModal.vue.d.ts +34 -0
- package/dist/vue/ui/UiModal.vue.d.ts.map +1 -0
- package/dist/vue/ui/UiTabs.vue.d.ts +18 -0
- package/dist/vue/ui/UiTabs.vue.d.ts.map +1 -0
- package/dist/vue/ui/UiToggle.vue.d.ts +16 -0
- package/dist/vue/ui/UiToggle.vue.d.ts.map +1 -0
- package/dist/vue/ui/index.d.ts +30 -0
- package/dist/vue/ui/index.d.ts.map +1 -0
- package/dist/vue/utils/contrast.d.ts +80 -0
- package/dist/vue/utils/contrast.d.ts.map +1 -0
- package/dist/vue/utils/debounce.d.ts +13 -0
- package/dist/vue/utils/debounce.d.ts.map +1 -0
- package/dist/vue/utils/fontPreloader.d.ts +20 -0
- package/dist/vue/utils/fontPreloader.d.ts.map +1 -0
- package/dist/vue/utils/iconProps.d.ts +10 -0
- package/dist/vue/utils/iconProps.d.ts.map +1 -0
- package/dist/vue/utils/lazyComponents.d.ts +3 -0
- package/dist/vue/utils/lazyComponents.d.ts.map +1 -0
- package/dist/vue/utils/levels.d.ts +28 -0
- package/dist/vue/utils/levels.d.ts.map +1 -0
- package/dist/vue/utils/performanceInit.d.ts +41 -0
- package/dist/vue/utils/performanceInit.d.ts.map +1 -0
- package/dist/vue/utils/requestCache.d.ts +50 -0
- package/dist/vue/utils/requestCache.d.ts.map +1 -0
- package/dist/vue/utils/sounds.d.ts +57 -0
- package/dist/vue/utils/sounds.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-interceptor.client.cjs.js","sources":["../../../../../../apps/accounts-ui/src/nuxt-v4/runtime/plugins/auth-interceptor.client.ts"],"sourcesContent":["import { defineNuxtPlugin } from 'nuxt/app'\n\nexport default defineNuxtPlugin({\n name: 'strands-auth-interceptor',\n setup() {\n // Only run on client side\n if (process.server) return\n\n // Store original fetch function\n const originalFetch = globalThis.fetch\n\n // Create interceptor function\n globalThis.fetch = async (input: RequestInfo | URL, init?: RequestInit): Promise<Response> => {\n try {\n // Import auth composable dynamically to avoid SSR issues\n const { useStrandsAuth } = await import('../composables/useStrandsAuth')\n const { currentSession, getAuthHeaders } = useStrandsAuth()\n\n // Parse request URL to determine if it's an API request that needs auth\n let url: string\n if (typeof input === 'string') {\n url = input\n } else if (input instanceof URL) {\n url = input.toString()\n } else {\n url = input.url\n }\n\n // Check if this is an API request that should include auth headers\n const shouldAddAuth = shouldInjectAuth(url)\n\n if (shouldAddAuth && currentSession.value?.accessToken) {\n // Get auth headers\n try {\n const authHeaders = getAuthHeaders()\n \n // Merge headers with existing headers\n const headers = new Headers(init?.headers)\n Object.entries(authHeaders).forEach(([key, value]) => {\n headers.set(key, value)\n })\n\n // Create new init object with merged headers\n const enhancedInit: RequestInit = {\n ...init,\n headers\n }\n\n console.log('[Strands Auth] Injecting auth headers for request:', url)\n return originalFetch(input, enhancedInit)\n } catch (error) {\n // If we can't get auth headers, continue with original request\n console.warn('[Strands Auth] Failed to inject auth headers:', error)\n }\n }\n\n // Return original request\n return originalFetch(input, init)\n } catch (error) {\n // If anything goes wrong, fallback to original fetch\n console.error('[Strands Auth] Error in fetch interceptor:', error)\n return originalFetch(input, init)\n }\n }\n }\n})\n\n/**\n * Determine if a URL should have auth headers injected\n */\nfunction shouldInjectAuth(url: string): boolean {\n // Skip data URLs, blob URLs, etc.\n if (!url.startsWith('http')) {\n return false\n }\n\n // Skip third-party APIs that shouldn't receive our auth tokens\n const skipDomains = [\n 'googleapis.com',\n 'github.com/api',\n 'api.github.com',\n 'discord.com/api',\n 'graph.microsoft.com',\n 'api.stripe.com',\n 'api.twilio.com',\n // Add other third-party APIs here\n ]\n\n const shouldSkip = skipDomains.some(domain => url.includes(domain))\n if (shouldSkip) {\n return false\n }\n\n // Include auth for any API endpoints that contain common API patterns\n const apiPatterns = [\n '/api/',\n '/v1/',\n '/v2/',\n '/graphql',\n '/trpc',\n ]\n\n const isApiRequest = apiPatterns.some(pattern => url.includes(pattern))\n \n // Also check for common backend ports that might be API servers\n const apiPorts = [':3001', ':8000', ':8080', ':5000', ':4000']\n const hasApiPort = apiPorts.some(port => url.includes(port))\n\n return isApiRequest || hasApiPort\n}"],"names":["authInterceptor_client","name","setup","process","server","originalFetch","globalThis","fetch","async","input","init","useStrandsAuth","Promise","resolve","then","require","currentSession","getAuthHeaders","url","URL","toString","shouldAddAuth","startsWith","shouldSkip","some","includes","domain","isApiRequest","pattern","hasApiPort","port","shouldInjectAuth","value","accessToken","authHeaders","headers","Headers","Object","entries","forEach","key","set","enhancedInit","error"],"mappings":"mBAEAA,uCAAgC,CAC9BC,KAAM,2BACN,KAAAC,GAEE,GAAIC,QAAQC,OAAQ,OAGpB,MAAMC,EAAgBC,WAAWC,MAGjCD,WAAWC,MAAQC,MAAOC,EAA0BC,KAClD,IAEE,MAAMC,eAAEA,SAAyBC,QAAAC,UAAAC,KAAA,IAAAC,QAAO,0CAClCC,eAAEA,EAAAC,eAAgBA,GAAmBN,IAG3C,IAAIO,EAEFA,EADmB,iBAAVT,EACHA,EACGA,aAAiBU,IACpBV,EAAMW,WAENX,EAAMS,IAId,MAAMG,EAyCd,SAA0BH,GAExB,IAAKA,EAAII,WAAW,QAClB,OAAO,EAIT,MAWMC,EAXc,CAClB,iBACA,iBACA,iBACA,kBACA,sBACA,iBACA,kBAI6BC,QAAeN,EAAIO,SAASC,IAC3D,GAAIH,EACF,OAAO,EAIT,MAQMI,EARc,CAClB,QACA,OACA,OACA,WACA,SAG+BH,QAAgBN,EAAIO,SAASG,IAIxDC,EADW,CAAC,QAAS,QAAS,QAAS,QAAS,SAC1BL,QAAaN,EAAIO,SAASK,IAEtD,OAAOH,GAAgBE,CACzB,CAhF8BE,CAAiBb,GAEvC,GAAIG,GAAiBL,EAAegB,OAAOC,YAEzC,IACE,MAAMC,EAAcjB,IAGdkB,EAAU,IAAIC,QAAQ1B,GAAMyB,SAClCE,OAAOC,QAAQJ,GAAaK,QAAQ,EAAEC,EAAKR,MACzCG,EAAQM,IAAID,EAAKR,KAInB,MAAMU,EAA4B,IAC7BhC,EACHyB,WAIF,OAAO9B,EAAcI,EAAOiC,EAC9B,OAASC,GAGT,CAIF,OAAOtC,EAAcI,EAAOC,EAC9B,OAASiC,GAGP,OAAOtC,EAAcI,EAAOC,EAC9B,EAEJ"}
|
|
1
|
+
{"version":3,"file":"auth-interceptor.client.cjs.js","sources":["../../../../../../apps/accounts-ui/src/nuxt-v4/runtime/plugins/auth-interceptor.client.ts"],"sourcesContent":["import { defineNuxtPlugin } from 'nuxt/app'\n\nexport default defineNuxtPlugin({\n name: 'strands-auth-interceptor',\n setup() {\n // Only run on client side\n if (process.server) return\n\n // Store original fetch function\n const originalFetch = globalThis.fetch\n\n // Create interceptor function\n globalThis.fetch = async (input: RequestInfo | URL, init?: RequestInit): Promise<Response> => {\n try {\n // Import auth composable dynamically to avoid SSR issues\n const { useStrandsAuth } = await import('../composables/useStrandsAuth')\n const { currentSession, getAuthHeaders } = useStrandsAuth()\n\n // Parse request URL to determine if it's an API request that needs auth\n let url: string\n if (typeof input === 'string') {\n url = input\n } else if (input instanceof URL) {\n url = input.toString()\n } else {\n url = input.url\n }\n\n // Check if this is an API request that should include auth headers\n const shouldAddAuth = shouldInjectAuth(url)\n\n if (shouldAddAuth && currentSession.value?.accessToken) {\n // Get auth headers\n try {\n const authHeaders = getAuthHeaders()\n \n // Merge headers with existing headers\n const headers = new Headers(init?.headers)\n Object.entries(authHeaders).forEach(([key, value]) => {\n headers.set(key, value as string)\n })\n\n // Create new init object with merged headers\n const enhancedInit: RequestInit = {\n ...init,\n headers\n }\n\n console.log('[Strands Auth] Injecting auth headers for request:', url)\n return originalFetch(input, enhancedInit)\n } catch (error) {\n // If we can't get auth headers, continue with original request\n console.warn('[Strands Auth] Failed to inject auth headers:', error)\n }\n }\n\n // Return original request\n return originalFetch(input, init)\n } catch (error) {\n // If anything goes wrong, fallback to original fetch\n console.error('[Strands Auth] Error in fetch interceptor:', error)\n return originalFetch(input, init)\n }\n }\n }\n})\n\n/**\n * Determine if a URL should have auth headers injected\n */\nfunction shouldInjectAuth(url: string): boolean {\n // Skip data URLs, blob URLs, etc.\n if (!url.startsWith('http')) {\n return false\n }\n\n // Skip third-party APIs that shouldn't receive our auth tokens\n const skipDomains = [\n 'googleapis.com',\n 'github.com/api',\n 'api.github.com',\n 'discord.com/api',\n 'graph.microsoft.com',\n 'api.stripe.com',\n 'api.twilio.com',\n // Add other third-party APIs here\n ]\n\n const shouldSkip = skipDomains.some(domain => url.includes(domain))\n if (shouldSkip) {\n return false\n }\n\n // Include auth for any API endpoints that contain common API patterns\n const apiPatterns = [\n '/api/',\n '/v1/',\n '/v2/',\n '/graphql',\n '/trpc',\n ]\n\n const isApiRequest = apiPatterns.some(pattern => url.includes(pattern))\n \n // Also check for common backend ports that might be API servers\n const apiPorts = [':3001', ':8000', ':8080', ':5000', ':4000']\n const hasApiPort = apiPorts.some(port => url.includes(port))\n\n return isApiRequest || hasApiPort\n}"],"names":["authInterceptor_client","name","setup","process","server","originalFetch","globalThis","fetch","async","input","init","useStrandsAuth","Promise","resolve","then","require","currentSession","getAuthHeaders","url","URL","toString","shouldAddAuth","startsWith","shouldSkip","some","includes","domain","isApiRequest","pattern","hasApiPort","port","shouldInjectAuth","value","accessToken","authHeaders","headers","Headers","Object","entries","forEach","key","set","enhancedInit","error"],"mappings":"mBAEAA,uCAAgC,CAC9BC,KAAM,2BACN,KAAAC,GAEE,GAAIC,QAAQC,OAAQ,OAGpB,MAAMC,EAAgBC,WAAWC,MAGjCD,WAAWC,MAAQC,MAAOC,EAA0BC,KAClD,IAEE,MAAMC,eAAEA,SAAyBC,QAAAC,UAAAC,KAAA,IAAAC,QAAO,0CAClCC,eAAEA,EAAAC,eAAgBA,GAAmBN,IAG3C,IAAIO,EAEFA,EADmB,iBAAVT,EACHA,EACGA,aAAiBU,IACpBV,EAAMW,WAENX,EAAMS,IAId,MAAMG,EAyCd,SAA0BH,GAExB,IAAKA,EAAII,WAAW,QAClB,OAAO,EAIT,MAWMC,EAXc,CAClB,iBACA,iBACA,iBACA,kBACA,sBACA,iBACA,kBAI6BC,QAAeN,EAAIO,SAASC,IAC3D,GAAIH,EACF,OAAO,EAIT,MAQMI,EARc,CAClB,QACA,OACA,OACA,WACA,SAG+BH,QAAgBN,EAAIO,SAASG,IAIxDC,EADW,CAAC,QAAS,QAAS,QAAS,QAAS,SAC1BL,QAAaN,EAAIO,SAASK,IAEtD,OAAOH,GAAgBE,CACzB,CAhF8BE,CAAiBb,GAEvC,GAAIG,GAAiBL,EAAegB,OAAOC,YAEzC,IACE,MAAMC,EAAcjB,IAGdkB,EAAU,IAAIC,QAAQ1B,GAAMyB,SAClCE,OAAOC,QAAQJ,GAAaK,QAAQ,EAAEC,EAAKR,MACzCG,EAAQM,IAAID,EAAKR,KAInB,MAAMU,EAA4B,IAC7BhC,EACHyB,WAIF,OAAO9B,EAAcI,EAAOiC,EAC9B,OAASC,GAGT,CAIF,OAAOtC,EAAcI,EAAOC,EAC9B,OAASiC,GAGP,OAAOtC,EAAcI,EAAOC,EAC9B,EAEJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-interceptor.client.d.ts","sourceRoot":"","sources":["../../../../../../apps/accounts-ui/src/nuxt-v4/runtime/plugins/auth-interceptor.client.ts"],"names":[],"mappings":";;AAEA,wBA+DE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-interceptor.client.es.js","sources":["../../../../../../apps/accounts-ui/src/nuxt-v4/runtime/plugins/auth-interceptor.client.ts"],"sourcesContent":["import { defineNuxtPlugin } from 'nuxt/app'\n\nexport default defineNuxtPlugin({\n name: 'strands-auth-interceptor',\n setup() {\n // Only run on client side\n if (process.server) return\n\n // Store original fetch function\n const originalFetch = globalThis.fetch\n\n // Create interceptor function\n globalThis.fetch = async (input: RequestInfo | URL, init?: RequestInit): Promise<Response> => {\n try {\n // Import auth composable dynamically to avoid SSR issues\n const { useStrandsAuth } = await import('../composables/useStrandsAuth')\n const { currentSession, getAuthHeaders } = useStrandsAuth()\n\n // Parse request URL to determine if it's an API request that needs auth\n let url: string\n if (typeof input === 'string') {\n url = input\n } else if (input instanceof URL) {\n url = input.toString()\n } else {\n url = input.url\n }\n\n // Check if this is an API request that should include auth headers\n const shouldAddAuth = shouldInjectAuth(url)\n\n if (shouldAddAuth && currentSession.value?.accessToken) {\n // Get auth headers\n try {\n const authHeaders = getAuthHeaders()\n \n // Merge headers with existing headers\n const headers = new Headers(init?.headers)\n Object.entries(authHeaders).forEach(([key, value]) => {\n headers.set(key, value)\n })\n\n // Create new init object with merged headers\n const enhancedInit: RequestInit = {\n ...init,\n headers\n }\n\n console.log('[Strands Auth] Injecting auth headers for request:', url)\n return originalFetch(input, enhancedInit)\n } catch (error) {\n // If we can't get auth headers, continue with original request\n console.warn('[Strands Auth] Failed to inject auth headers:', error)\n }\n }\n\n // Return original request\n return originalFetch(input, init)\n } catch (error) {\n // If anything goes wrong, fallback to original fetch\n console.error('[Strands Auth] Error in fetch interceptor:', error)\n return originalFetch(input, init)\n }\n }\n }\n})\n\n/**\n * Determine if a URL should have auth headers injected\n */\nfunction shouldInjectAuth(url: string): boolean {\n // Skip data URLs, blob URLs, etc.\n if (!url.startsWith('http')) {\n return false\n }\n\n // Skip third-party APIs that shouldn't receive our auth tokens\n const skipDomains = [\n 'googleapis.com',\n 'github.com/api',\n 'api.github.com',\n 'discord.com/api',\n 'graph.microsoft.com',\n 'api.stripe.com',\n 'api.twilio.com',\n // Add other third-party APIs here\n ]\n\n const shouldSkip = skipDomains.some(domain => url.includes(domain))\n if (shouldSkip) {\n return false\n }\n\n // Include auth for any API endpoints that contain common API patterns\n const apiPatterns = [\n '/api/',\n '/v1/',\n '/v2/',\n '/graphql',\n '/trpc',\n ]\n\n const isApiRequest = apiPatterns.some(pattern => url.includes(pattern))\n \n // Also check for common backend ports that might be API servers\n const apiPorts = [':3001', ':8000', ':8080', ':5000', ':4000']\n const hasApiPort = apiPorts.some(port => url.includes(port))\n\n return isApiRequest || hasApiPort\n}"],"names":[],"mappings":";AAEA,MAAA,yBAAe,iBAAiB;AAAA,EAC9B,MAAM;AAAA,EACN,QAAQ;AAEN,QAAI,QAAQ,OAAQ;AAGpB,UAAM,gBAAgB,WAAW;AAGjC,eAAW,QAAQ,OAAO,OAA0B,SAA0C;AAC5F,UAAI;AAEF,cAAM,EAAE,eAAA,IAAmB,MAAM,OAAO,qCAA+B;AACvE,cAAM,EAAE,gBAAgB,eAAA,IAAmB,eAAA;AAG3C,YAAI;AACJ,YAAI,OAAO,UAAU,UAAU;AAC7B,gBAAM;AAAA,QACR,WAAW,iBAAiB,KAAK;AAC/B,gBAAM,MAAM,SAAA;AAAA,QACd,OAAO;AACL,gBAAM,MAAM;AAAA,QACd;AAGA,cAAM,gBAAgB,iBAAiB,GAAG;AAE1C,YAAI,iBAAiB,eAAe,OAAO,aAAa;AAEtD,cAAI;AACF,kBAAM,cAAc,eAAA;AAGpB,kBAAM,UAAU,IAAI,QAAQ,MAAM,OAAO;AACzC,mBAAO,QAAQ,WAAW,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AACpD,sBAAQ,IAAI,KAAK,
|
|
1
|
+
{"version":3,"file":"auth-interceptor.client.es.js","sources":["../../../../../../apps/accounts-ui/src/nuxt-v4/runtime/plugins/auth-interceptor.client.ts"],"sourcesContent":["import { defineNuxtPlugin } from 'nuxt/app'\n\nexport default defineNuxtPlugin({\n name: 'strands-auth-interceptor',\n setup() {\n // Only run on client side\n if (process.server) return\n\n // Store original fetch function\n const originalFetch = globalThis.fetch\n\n // Create interceptor function\n globalThis.fetch = async (input: RequestInfo | URL, init?: RequestInit): Promise<Response> => {\n try {\n // Import auth composable dynamically to avoid SSR issues\n const { useStrandsAuth } = await import('../composables/useStrandsAuth')\n const { currentSession, getAuthHeaders } = useStrandsAuth()\n\n // Parse request URL to determine if it's an API request that needs auth\n let url: string\n if (typeof input === 'string') {\n url = input\n } else if (input instanceof URL) {\n url = input.toString()\n } else {\n url = input.url\n }\n\n // Check if this is an API request that should include auth headers\n const shouldAddAuth = shouldInjectAuth(url)\n\n if (shouldAddAuth && currentSession.value?.accessToken) {\n // Get auth headers\n try {\n const authHeaders = getAuthHeaders()\n \n // Merge headers with existing headers\n const headers = new Headers(init?.headers)\n Object.entries(authHeaders).forEach(([key, value]) => {\n headers.set(key, value as string)\n })\n\n // Create new init object with merged headers\n const enhancedInit: RequestInit = {\n ...init,\n headers\n }\n\n console.log('[Strands Auth] Injecting auth headers for request:', url)\n return originalFetch(input, enhancedInit)\n } catch (error) {\n // If we can't get auth headers, continue with original request\n console.warn('[Strands Auth] Failed to inject auth headers:', error)\n }\n }\n\n // Return original request\n return originalFetch(input, init)\n } catch (error) {\n // If anything goes wrong, fallback to original fetch\n console.error('[Strands Auth] Error in fetch interceptor:', error)\n return originalFetch(input, init)\n }\n }\n }\n})\n\n/**\n * Determine if a URL should have auth headers injected\n */\nfunction shouldInjectAuth(url: string): boolean {\n // Skip data URLs, blob URLs, etc.\n if (!url.startsWith('http')) {\n return false\n }\n\n // Skip third-party APIs that shouldn't receive our auth tokens\n const skipDomains = [\n 'googleapis.com',\n 'github.com/api',\n 'api.github.com',\n 'discord.com/api',\n 'graph.microsoft.com',\n 'api.stripe.com',\n 'api.twilio.com',\n // Add other third-party APIs here\n ]\n\n const shouldSkip = skipDomains.some(domain => url.includes(domain))\n if (shouldSkip) {\n return false\n }\n\n // Include auth for any API endpoints that contain common API patterns\n const apiPatterns = [\n '/api/',\n '/v1/',\n '/v2/',\n '/graphql',\n '/trpc',\n ]\n\n const isApiRequest = apiPatterns.some(pattern => url.includes(pattern))\n \n // Also check for common backend ports that might be API servers\n const apiPorts = [':3001', ':8000', ':8080', ':5000', ':4000']\n const hasApiPort = apiPorts.some(port => url.includes(port))\n\n return isApiRequest || hasApiPort\n}"],"names":[],"mappings":";AAEA,MAAA,yBAAe,iBAAiB;AAAA,EAC9B,MAAM;AAAA,EACN,QAAQ;AAEN,QAAI,QAAQ,OAAQ;AAGpB,UAAM,gBAAgB,WAAW;AAGjC,eAAW,QAAQ,OAAO,OAA0B,SAA0C;AAC5F,UAAI;AAEF,cAAM,EAAE,eAAA,IAAmB,MAAM,OAAO,qCAA+B;AACvE,cAAM,EAAE,gBAAgB,eAAA,IAAmB,eAAA;AAG3C,YAAI;AACJ,YAAI,OAAO,UAAU,UAAU;AAC7B,gBAAM;AAAA,QACR,WAAW,iBAAiB,KAAK;AAC/B,gBAAM,MAAM,SAAA;AAAA,QACd,OAAO;AACL,gBAAM,MAAM;AAAA,QACd;AAGA,cAAM,gBAAgB,iBAAiB,GAAG;AAE1C,YAAI,iBAAiB,eAAe,OAAO,aAAa;AAEtD,cAAI;AACF,kBAAM,cAAc,eAAA;AAGpB,kBAAM,UAAU,IAAI,QAAQ,MAAM,OAAO;AACzC,mBAAO,QAAQ,WAAW,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AACpD,sBAAQ,IAAI,KAAK,KAAe;AAAA,YAClC,CAAC;AAGD,kBAAM,eAA4B;AAAA,cAChC,GAAG;AAAA,cACH;AAAA,YAAA;AAGF,oBAAQ,IAAI,sDAAsD,GAAG;AACrE,mBAAO,cAAc,OAAO,YAAY;AAAA,UAC1C,SAAS,OAAO;AAEd,oBAAQ,KAAK,iDAAiD,KAAK;AAAA,UACrE;AAAA,QACF;AAGA,eAAO,cAAc,OAAO,IAAI;AAAA,MAClC,SAAS,OAAO;AAEd,gBAAQ,MAAM,8CAA8C,KAAK;AACjE,eAAO,cAAc,OAAO,IAAI;AAAA,MAClC;AAAA,IACF;AAAA,EACF;AACF,CAAC;AAKD,SAAS,iBAAiB,KAAsB;AAE9C,MAAI,CAAC,IAAI,WAAW,MAAM,GAAG;AAC3B,WAAO;AAAA,EACT;AAGA,QAAM,cAAc;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAAA;AAIF,QAAM,aAAa,YAAY,KAAK,YAAU,IAAI,SAAS,MAAM,CAAC;AAClE,MAAI,YAAY;AACd,WAAO;AAAA,EACT;AAGA,QAAM,cAAc;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAGF,QAAM,eAAe,YAAY,KAAK,aAAW,IAAI,SAAS,OAAO,CAAC;AAGtE,QAAM,WAAW,CAAC,SAAS,SAAS,SAAS,SAAS,OAAO;AAC7D,QAAM,aAAa,SAAS,KAAK,UAAQ,IAAI,SAAS,IAAI,CAAC;AAE3D,SAAO,gBAAgB;AACzB;"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
export interface StrandsUser {
|
|
2
|
+
id: string;
|
|
3
|
+
email: string;
|
|
4
|
+
firstName: string;
|
|
5
|
+
lastName: string;
|
|
6
|
+
avatar?: string;
|
|
7
|
+
mfaEnabled: boolean;
|
|
8
|
+
emailVerified: boolean;
|
|
9
|
+
createdAt: string | Date;
|
|
10
|
+
updatedAt: string | Date;
|
|
11
|
+
}
|
|
12
|
+
export interface StrandsSession {
|
|
13
|
+
accessToken: string;
|
|
14
|
+
refreshToken: string;
|
|
15
|
+
expiresAt: Date;
|
|
16
|
+
user: StrandsUser;
|
|
17
|
+
}
|
|
18
|
+
interface StrandsAuthRuntimeConfig {
|
|
19
|
+
baseUrl?: string;
|
|
20
|
+
applicationId?: string;
|
|
21
|
+
publicKey?: string;
|
|
22
|
+
accentColor?: string;
|
|
23
|
+
redirectUrl?: string;
|
|
24
|
+
onSignInUrl?: string;
|
|
25
|
+
onSignOutUrl?: string;
|
|
26
|
+
/** @deprecated OAuth providers are now dynamically fetched from API */
|
|
27
|
+
oauthProviders?: string[];
|
|
28
|
+
autoRefresh?: boolean;
|
|
29
|
+
refreshInterval?: number;
|
|
30
|
+
protectedRoutes?: string[];
|
|
31
|
+
guestOnlyRoutes?: string[];
|
|
32
|
+
devMode?: boolean;
|
|
33
|
+
}
|
|
34
|
+
declare module '@nuxt/schema' {
|
|
35
|
+
interface PublicRuntimeConfig {
|
|
36
|
+
strandsAuth?: StrandsAuthRuntimeConfig;
|
|
37
|
+
}
|
|
38
|
+
interface NuxtConfig {
|
|
39
|
+
strandsAuth?: import('../types').StrandsAuthConfig;
|
|
40
|
+
}
|
|
41
|
+
interface NuxtOptions {
|
|
42
|
+
strandsAuth?: import('../types').StrandsAuthConfig;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
declare module 'nuxt/schema' {
|
|
46
|
+
interface PublicRuntimeConfig {
|
|
47
|
+
strandsAuth?: StrandsAuthRuntimeConfig;
|
|
48
|
+
}
|
|
49
|
+
interface NuxtConfig {
|
|
50
|
+
strandsAuth?: import('../types').StrandsAuthConfig;
|
|
51
|
+
}
|
|
52
|
+
interface NuxtOptions {
|
|
53
|
+
strandsAuth?: import('../types').StrandsAuthConfig;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
declare module 'nuxt/app' {
|
|
57
|
+
interface NuxtApp {
|
|
58
|
+
$strandsAuth: {
|
|
59
|
+
accentColor: string;
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
export {};
|
|
64
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../apps/accounts-ui/src/nuxt-v4/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,OAAO,CAAA;IACnB,aAAa,EAAE,OAAO,CAAA;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,IAAI,CAAA;IACf,IAAI,EAAE,WAAW,CAAA;CAClB;AAGD,UAAU,wBAAwB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,uEAAuE;IACvE,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAGD,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,mBAAmB;QAC3B,WAAW,CAAC,EAAE,wBAAwB,CAAA;KACvC;IACD,UAAU,UAAU;QAClB,WAAW,CAAC,EAAE,OAAO,UAAU,EAAE,iBAAiB,CAAA;KACnD;IACD,UAAU,WAAW;QACnB,WAAW,CAAC,EAAE,OAAO,UAAU,EAAE,iBAAiB,CAAA;KACnD;CACF;AAGD,OAAO,QAAQ,aAAa,CAAC;IAC3B,UAAU,mBAAmB;QAC3B,WAAW,CAAC,EAAE,wBAAwB,CAAA;KACvC;IACD,UAAU,UAAU;QAClB,WAAW,CAAC,EAAE,OAAO,UAAU,EAAE,iBAAiB,CAAA;KACnD;IACD,UAAU,WAAW;QACnB,WAAW,CAAC,EAAE,OAAO,UAAU,EAAE,iBAAiB,CAAA;KACnD;CACF;AAGD,OAAO,QAAQ,UAAU,CAAC;IACxB,UAAU,OAAO;QACf,YAAY,EAAE;YACZ,WAAW,EAAE,MAAM,CAAA;SACpB,CAAA;KACF;CACF;AAED,OAAO,EAAE,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { default } from './nuxt-v4/module';
|
|
2
|
+
export type { StrandsAuthConfig, StrandsAuthEndpoints } from './types';
|
|
3
|
+
export { useStrandsAuth, useAuthUser, useAuthState } from './nuxt-v4/runtime/composables/useStrandsAuth';
|
|
4
|
+
export { useAuthenticatedFetch, $authFetch } from './nuxt-v4/runtime/composables/useAuthenticatedFetch';
|
|
5
|
+
//# sourceMappingURL=nuxt-v4.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nuxt-v4.d.ts","sourceRoot":"","sources":["../../../apps/accounts-ui/src/nuxt-v4.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAG1C,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAGtE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAA;AACxG,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,qDAAqD,CAAA"}
|
package/dist/nuxt.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { default } from './nuxt/module';
|
|
2
|
+
export type { StrandsAuthConfig, StrandsAuthEndpoints } from './types';
|
|
3
|
+
export { useStrandsAuth, useAuthUser, useAuthState } from './nuxt/runtime/composables/useStrandsAuth';
|
|
4
|
+
export { useAuthenticatedFetch, $authFetch } from './nuxt/runtime/composables/useAuthenticatedFetch';
|
|
5
|
+
//# sourceMappingURL=nuxt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nuxt.d.ts","sourceRoot":"","sources":["../../../apps/accounts-ui/src/nuxt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAGvC,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAGtE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAA;AACrG,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,kDAAkD,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../../apps/accounts-ui/src/shared/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAEjD,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,cAAc,GAAG,mBAAmB,CAAC,CAatH,CAAA"}
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
export interface User {
|
|
2
|
+
id: string;
|
|
3
|
+
email: string;
|
|
4
|
+
firstName: string;
|
|
5
|
+
lastName: string;
|
|
6
|
+
avatar?: string;
|
|
7
|
+
mfaEnabled: boolean;
|
|
8
|
+
emailVerified: boolean;
|
|
9
|
+
passwordUpdatedAt?: string | Date;
|
|
10
|
+
settings?: any;
|
|
11
|
+
xp: number;
|
|
12
|
+
level: number;
|
|
13
|
+
next_level_xp: number;
|
|
14
|
+
username?: string;
|
|
15
|
+
usernameLastChangedAt?: string | Date;
|
|
16
|
+
createdAt: string | Date;
|
|
17
|
+
updatedAt: string | Date;
|
|
18
|
+
}
|
|
19
|
+
export interface AuthenticatedFetchOptions extends RequestInit {
|
|
20
|
+
/**
|
|
21
|
+
* Whether to automatically refresh token if the request fails with 401
|
|
22
|
+
* @default true
|
|
23
|
+
*/
|
|
24
|
+
autoRefresh?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Whether to throw an error if user is not authenticated
|
|
27
|
+
* @default true
|
|
28
|
+
*/
|
|
29
|
+
requireAuth?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Base URL for the API requests
|
|
32
|
+
* If not provided, will use the current origin
|
|
33
|
+
*/
|
|
34
|
+
baseURL?: string;
|
|
35
|
+
}
|
|
36
|
+
export interface Session {
|
|
37
|
+
id?: string;
|
|
38
|
+
userId?: string;
|
|
39
|
+
accessToken: string;
|
|
40
|
+
refreshToken: string;
|
|
41
|
+
expiresAt: Date;
|
|
42
|
+
createdAt?: Date;
|
|
43
|
+
}
|
|
44
|
+
export interface SessionInfo {
|
|
45
|
+
id: string;
|
|
46
|
+
device_name?: string;
|
|
47
|
+
device_type?: string;
|
|
48
|
+
ip_address?: string;
|
|
49
|
+
country?: string;
|
|
50
|
+
city?: string;
|
|
51
|
+
application_domain?: string;
|
|
52
|
+
application_name?: string;
|
|
53
|
+
created_at: string | Date;
|
|
54
|
+
last_activity_at?: string | Date;
|
|
55
|
+
is_current: boolean;
|
|
56
|
+
}
|
|
57
|
+
export interface SessionStats {
|
|
58
|
+
total_sessions: number;
|
|
59
|
+
active_sessions: number;
|
|
60
|
+
devices_by_type: Record<string, number>;
|
|
61
|
+
unique_locations: string[];
|
|
62
|
+
}
|
|
63
|
+
export interface AuthConfig {
|
|
64
|
+
apiUrl: string;
|
|
65
|
+
applicationId: string;
|
|
66
|
+
publicKey: string;
|
|
67
|
+
autoRefresh?: boolean;
|
|
68
|
+
redirectUrl?: string;
|
|
69
|
+
}
|
|
70
|
+
export interface SignInCredentials {
|
|
71
|
+
email: string;
|
|
72
|
+
password: string;
|
|
73
|
+
}
|
|
74
|
+
export interface SignUpData {
|
|
75
|
+
email: string;
|
|
76
|
+
password: string;
|
|
77
|
+
firstName: string;
|
|
78
|
+
lastName: string;
|
|
79
|
+
}
|
|
80
|
+
export interface OAuthProvider {
|
|
81
|
+
id: string;
|
|
82
|
+
name: string;
|
|
83
|
+
enabled: boolean;
|
|
84
|
+
clientId?: string;
|
|
85
|
+
scopes?: string[];
|
|
86
|
+
}
|
|
87
|
+
export interface StrandsAuthConfig {
|
|
88
|
+
/**
|
|
89
|
+
* Base URL for the Strands Auth API
|
|
90
|
+
* @default 'https://your-api.example.com'
|
|
91
|
+
*/
|
|
92
|
+
baseUrl?: string;
|
|
93
|
+
/**
|
|
94
|
+
* Client ID for authentication (optional - authentication is now based on domain)
|
|
95
|
+
*/
|
|
96
|
+
clientId?: string;
|
|
97
|
+
/**
|
|
98
|
+
* Primary accent color for the auth components
|
|
99
|
+
* @default '#EA00A8'
|
|
100
|
+
*/
|
|
101
|
+
accentColor?: string;
|
|
102
|
+
/**
|
|
103
|
+
* Default redirect URL after successful authentication
|
|
104
|
+
* @default '/'
|
|
105
|
+
*/
|
|
106
|
+
redirectUrl?: string;
|
|
107
|
+
/**
|
|
108
|
+
* URL to redirect to after successful sign in
|
|
109
|
+
* @default '/dashboard'
|
|
110
|
+
*/
|
|
111
|
+
onSignInUrl?: string;
|
|
112
|
+
/**
|
|
113
|
+
* URL to redirect to after successful sign out
|
|
114
|
+
* @default '/'
|
|
115
|
+
*/
|
|
116
|
+
onSignOutUrl?: string;
|
|
117
|
+
/**
|
|
118
|
+
* Enable automatic token refresh
|
|
119
|
+
* @default true
|
|
120
|
+
*/
|
|
121
|
+
autoRefresh?: boolean;
|
|
122
|
+
/**
|
|
123
|
+
* Token refresh interval in minutes
|
|
124
|
+
* @default 4
|
|
125
|
+
*/
|
|
126
|
+
refreshInterval?: number;
|
|
127
|
+
/**
|
|
128
|
+
* Pages that should redirect to sign in if user is not authenticated
|
|
129
|
+
* @default []
|
|
130
|
+
*/
|
|
131
|
+
protectedRoutes?: string[];
|
|
132
|
+
/**
|
|
133
|
+
* Pages that should redirect away if user IS authenticated
|
|
134
|
+
* @default ['/auth', '/login', '/register']
|
|
135
|
+
*/
|
|
136
|
+
guestOnlyRoutes?: string[];
|
|
137
|
+
/**
|
|
138
|
+
* Enable development mode (shows debug info)
|
|
139
|
+
* @default false
|
|
140
|
+
*/
|
|
141
|
+
devMode?: boolean;
|
|
142
|
+
/**
|
|
143
|
+
* Support email address for contact links
|
|
144
|
+
* @optional
|
|
145
|
+
*/
|
|
146
|
+
supportEmail?: string;
|
|
147
|
+
/**
|
|
148
|
+
* OAuth2 redirect URL for OAuth providers
|
|
149
|
+
* If not specified, will use {origin}/auth/callback
|
|
150
|
+
* @optional
|
|
151
|
+
*/
|
|
152
|
+
oauth2RedirectUrl?: string;
|
|
153
|
+
/**
|
|
154
|
+
* Automatically import CSS styles
|
|
155
|
+
* Set to false if you want to manually import styles or use custom styling
|
|
156
|
+
* @default true
|
|
157
|
+
*/
|
|
158
|
+
styles?: boolean;
|
|
159
|
+
/**
|
|
160
|
+
* Custom API endpoints
|
|
161
|
+
*/
|
|
162
|
+
endpoints?: Partial<StrandsAuthEndpoints>;
|
|
163
|
+
}
|
|
164
|
+
export interface StrandsAuthEndpoints {
|
|
165
|
+
signIn: string;
|
|
166
|
+
signUp: string;
|
|
167
|
+
signOut: string;
|
|
168
|
+
refresh: string;
|
|
169
|
+
passwordReset: string;
|
|
170
|
+
passwordResetConfirm: string;
|
|
171
|
+
completeRegistration: string;
|
|
172
|
+
profile: string;
|
|
173
|
+
verifyEmail: string;
|
|
174
|
+
oauthProviders: string;
|
|
175
|
+
oauthProvider: string;
|
|
176
|
+
changeEmail: string;
|
|
177
|
+
avatar: string;
|
|
178
|
+
settings: string;
|
|
179
|
+
changeUsername: string;
|
|
180
|
+
usernameCooldown: string;
|
|
181
|
+
checkUsernameAvailability: string;
|
|
182
|
+
mfaDevices: string;
|
|
183
|
+
mfaTotpSetup: string;
|
|
184
|
+
mfaTotpVerify: string;
|
|
185
|
+
mfaEmailSetup: string;
|
|
186
|
+
mfaEmailSend: string;
|
|
187
|
+
mfaEmailVerify: string;
|
|
188
|
+
mfaDeviceDisable: string;
|
|
189
|
+
mfaBackupCodes: string;
|
|
190
|
+
mfaHardwareStartRegistration: string;
|
|
191
|
+
mfaHardwareCompleteRegistration: string;
|
|
192
|
+
mfaSigninSendEmail: string;
|
|
193
|
+
mfaSigninVerify: string;
|
|
194
|
+
mfaBackupCodeVerify: string;
|
|
195
|
+
mfaWebAuthnChallenge: string;
|
|
196
|
+
sessions: string;
|
|
197
|
+
sessionsStats: string;
|
|
198
|
+
sessionRevoke: string;
|
|
199
|
+
sessionsRevokeAll: string;
|
|
200
|
+
}
|
|
201
|
+
export interface AuthResponse {
|
|
202
|
+
access_token: string;
|
|
203
|
+
refresh_token: string;
|
|
204
|
+
user: User;
|
|
205
|
+
mfa_required?: boolean;
|
|
206
|
+
mfa_session_id?: string;
|
|
207
|
+
available_mfa_methods?: MfaDevice[];
|
|
208
|
+
}
|
|
209
|
+
export type MfaDeviceType = 'totp' | 'email' | 'hardware' | 'passkey';
|
|
210
|
+
export interface MfaDevice {
|
|
211
|
+
id: string;
|
|
212
|
+
device_type: MfaDeviceType;
|
|
213
|
+
device_name: string;
|
|
214
|
+
is_active: boolean;
|
|
215
|
+
last_used_at?: string | Date;
|
|
216
|
+
created_at: string | Date;
|
|
217
|
+
}
|
|
218
|
+
export interface MfaDevicesResponse {
|
|
219
|
+
devices: MfaDevice[];
|
|
220
|
+
mfa_enabled: boolean;
|
|
221
|
+
}
|
|
222
|
+
export interface TotpSetupResponse {
|
|
223
|
+
device_id: string;
|
|
224
|
+
secret: string;
|
|
225
|
+
qr_code_url: string;
|
|
226
|
+
backup_codes: string[];
|
|
227
|
+
}
|
|
228
|
+
export interface BackupCodesResponse {
|
|
229
|
+
backup_codes: string[];
|
|
230
|
+
}
|
|
231
|
+
export interface MfaErrorResponse {
|
|
232
|
+
code: string;
|
|
233
|
+
message: string;
|
|
234
|
+
mfa_session_id?: string;
|
|
235
|
+
available_methods?: string[];
|
|
236
|
+
}
|
|
237
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../apps/accounts-ui/src/types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../apps/accounts-ui/src/utils/index.ts"],"names":[],"mappings":"AACA,cAAc,cAAc,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slots.d.ts","sourceRoot":"","sources":["../../../../apps/accounts-ui/src/utils/slots.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,EAAE,OAAO,GAAG,YAQ1D,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const isValidEmail: (email: string) => boolean;
|
|
2
|
+
export declare const validatePassword: (password: string) => {
|
|
3
|
+
isValid: boolean;
|
|
4
|
+
strength: "weak" | "medium" | "strong";
|
|
5
|
+
errors: string[];
|
|
6
|
+
};
|
|
7
|
+
export declare const isValidName: (name: string) => boolean;
|
|
8
|
+
export declare const isRequired: (value: string) => boolean;
|
|
9
|
+
export declare const passwordsMatch: (password: string, confirmation: string) => boolean;
|
|
10
|
+
export declare const getInitials: (firstName?: string, lastName?: string) => string;
|
|
11
|
+
export declare const formatDate: (date: string | Date) => string;
|
|
12
|
+
export declare const debounce: <T extends (...args: any[]) => any>(func: T, wait: number) => ((...args: Parameters<T>) => void);
|
|
13
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../apps/accounts-ui/src/utils/validation.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,KAAG,OAG5C,CAAA;AAGD,eAAO,MAAM,gBAAgB,GAAI,UAAU,MAAM,KAAG;IAClD,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAA;IACtC,MAAM,EAAE,MAAM,EAAE,CAAA;CA6CjB,CAAA;AAGD,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,KAAG,OAE1C,CAAA;AAID,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,KAAG,OAE1C,CAAA;AAGD,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,EAAE,cAAc,MAAM,KAAG,OAEvE,CAAA;AAGD,eAAO,MAAM,WAAW,GAAI,YAAY,MAAM,EAAE,WAAW,MAAM,KAAG,MAInE,CAAA;AAGD,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,GAAG,IAAI,KAAG,MAOhD,CAAA;AAGD,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EACxD,MAAM,CAAC,EACP,MAAM,MAAM,KACX,CAAC,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAMnC,CAAA"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
|
|
2
|
+
interface Props {
|
|
3
|
+
showFallback?: boolean;
|
|
4
|
+
invert?: boolean;
|
|
5
|
+
}
|
|
6
|
+
declare function __VLS_template(): {
|
|
7
|
+
attrs: Partial<{}>;
|
|
8
|
+
slots: {
|
|
9
|
+
default?(_: {
|
|
10
|
+
user: {
|
|
11
|
+
id: string;
|
|
12
|
+
email: string;
|
|
13
|
+
firstName: string;
|
|
14
|
+
lastName: string;
|
|
15
|
+
avatar?: string | undefined;
|
|
16
|
+
mfaEnabled: boolean;
|
|
17
|
+
emailVerified: boolean;
|
|
18
|
+
passwordUpdatedAt?: (string | Date) | undefined;
|
|
19
|
+
settings?: any;
|
|
20
|
+
xp: number;
|
|
21
|
+
level: number;
|
|
22
|
+
next_level_xp: number;
|
|
23
|
+
username?: string | undefined;
|
|
24
|
+
usernameLastChangedAt?: (string | Date) | undefined;
|
|
25
|
+
createdAt: string | Date;
|
|
26
|
+
updatedAt: string | Date;
|
|
27
|
+
} | null;
|
|
28
|
+
signOut: () => Promise<void>;
|
|
29
|
+
invert: boolean;
|
|
30
|
+
}): any;
|
|
31
|
+
fallback?(_: {
|
|
32
|
+
signIn: () => void;
|
|
33
|
+
}): any;
|
|
34
|
+
loading?(_: {}): any;
|
|
35
|
+
};
|
|
36
|
+
refs: {};
|
|
37
|
+
rootEl: any;
|
|
38
|
+
};
|
|
39
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
40
|
+
declare const __VLS_component: DefineComponent<Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
|
|
41
|
+
"sign-in-required": () => any;
|
|
42
|
+
}, string, PublicProps, Readonly<Props> & Readonly<{
|
|
43
|
+
"onSign-in-required"?: (() => any) | undefined;
|
|
44
|
+
}>, {
|
|
45
|
+
showFallback: boolean;
|
|
46
|
+
invert: boolean;
|
|
47
|
+
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
|
|
48
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
49
|
+
export default _default;
|
|
50
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
51
|
+
new (): {
|
|
52
|
+
$slots: S;
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=SignedIn.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SignedIn.vue.d.ts","sourceRoot":"","sources":["../../../../../apps/accounts-ui/src/vue/components/SignedIn.vue"],"names":[],"mappings":";AAmCA;AA2IA,UAAU,KAAK;IACb,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AA8CD,iBAAS,cAAc;WAkGT,OAAO,IAA6B;;;;;;;;;;;;;;;;;;;;;;;YAZrB,GAAG;;;YACF,GAAG;yBACJ,GAAG;;;;EAe/B;AAkBD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;kBA1KJ,OAAO;YACb,OAAO;6EAiLhB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
|
|
2
|
+
interface Props {
|
|
3
|
+
showFallback?: boolean;
|
|
4
|
+
}
|
|
5
|
+
declare function __VLS_template(): {
|
|
6
|
+
attrs: Partial<{}>;
|
|
7
|
+
slots: {
|
|
8
|
+
default?(_: {
|
|
9
|
+
signIn: () => void;
|
|
10
|
+
signUp: () => void;
|
|
11
|
+
}): any;
|
|
12
|
+
fallback?(_: {
|
|
13
|
+
user: {
|
|
14
|
+
id: string;
|
|
15
|
+
email: string;
|
|
16
|
+
firstName: string;
|
|
17
|
+
lastName: string;
|
|
18
|
+
avatar?: string | undefined;
|
|
19
|
+
mfaEnabled: boolean;
|
|
20
|
+
emailVerified: boolean;
|
|
21
|
+
passwordUpdatedAt?: (string | Date) | undefined;
|
|
22
|
+
settings?: any;
|
|
23
|
+
xp: number;
|
|
24
|
+
level: number;
|
|
25
|
+
next_level_xp: number;
|
|
26
|
+
username?: string | undefined;
|
|
27
|
+
usernameLastChangedAt?: (string | Date) | undefined;
|
|
28
|
+
createdAt: string | Date;
|
|
29
|
+
updatedAt: string | Date;
|
|
30
|
+
} | null;
|
|
31
|
+
signOut: () => Promise<void>;
|
|
32
|
+
}): any;
|
|
33
|
+
loading?(_: {}): any;
|
|
34
|
+
};
|
|
35
|
+
refs: {};
|
|
36
|
+
rootEl: any;
|
|
37
|
+
};
|
|
38
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
39
|
+
declare const __VLS_component: DefineComponent<Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
|
|
40
|
+
"sign-in-clicked": () => any;
|
|
41
|
+
"sign-up-clicked": () => any;
|
|
42
|
+
}, string, PublicProps, Readonly<Props> & Readonly<{
|
|
43
|
+
"onSign-in-clicked"?: (() => any) | undefined;
|
|
44
|
+
"onSign-up-clicked"?: (() => any) | undefined;
|
|
45
|
+
}>, {
|
|
46
|
+
showFallback: boolean;
|
|
47
|
+
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
|
|
48
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
49
|
+
export default _default;
|
|
50
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
51
|
+
new (): {
|
|
52
|
+
$slots: S;
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=SignedOut.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SignedOut.vue.d.ts","sourceRoot":"","sources":["../../../../../apps/accounts-ui/src/vue/components/SignedOut.vue"],"names":[],"mappings":";AAmCA;AA0HA,UAAU,KAAK;IACb,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AA8BD,iBAAS,cAAc;WAmGT,OAAO,IAA6B;;;;;YAZrB,GAAG;;;;;;;;;;;;;;;;;;;;;YACF,GAAG;yBACJ,GAAG;;;;EAe/B;AAiBD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;;kBAzJJ,OAAO;6EAiKtB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { StrandsAuthConfig } from '../composables/useStrandsConfig';
|
|
2
|
+
import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
|
|
3
|
+
interface Props {
|
|
4
|
+
mode?: 'signin' | 'signup' | 'reset-password';
|
|
5
|
+
redirectUrl?: string;
|
|
6
|
+
inModal?: boolean;
|
|
7
|
+
config?: StrandsAuthConfig;
|
|
8
|
+
}
|
|
9
|
+
declare const _default: DefineComponent<Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
|
|
10
|
+
success: (user: any) => any;
|
|
11
|
+
error: (error: string) => any;
|
|
12
|
+
"forgot-password": () => any;
|
|
13
|
+
"password-reset-sent": (email: string) => any;
|
|
14
|
+
"mode-changed": (mode: "signin" | "signup" | "reset-password") => any;
|
|
15
|
+
}, string, PublicProps, Readonly<Props> & Readonly<{
|
|
16
|
+
onSuccess?: ((user: any) => any) | undefined;
|
|
17
|
+
onError?: ((error: string) => any) | undefined;
|
|
18
|
+
"onForgot-password"?: (() => any) | undefined;
|
|
19
|
+
"onPassword-reset-sent"?: ((email: string) => any) | undefined;
|
|
20
|
+
"onMode-changed"?: ((mode: "signin" | "signup" | "reset-password") => any) | undefined;
|
|
21
|
+
}>, {
|
|
22
|
+
mode: "signin" | "signup" | "reset-password";
|
|
23
|
+
inModal: boolean;
|
|
24
|
+
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
25
|
+
export default _default;
|
|
26
|
+
//# sourceMappingURL=StrandsAuth.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StrandsAuth.vue.d.ts","sourceRoot":"","sources":["../../../../../apps/accounts-ui/src/vue/components/StrandsAuth.vue"],"names":[],"mappings":";AA4MA;AAsgCA,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAK1F,UAAU,KAAK;IACb,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,gBAAgB,CAAA;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB,MAAM,CAAC,EAAE,iBAAiB,CAAA;CAC3B;;;;;;;;;;;;;;UALQ,QAAQ,GAAG,QAAQ,GAAG,gBAAgB;aAEnC,OAAO;;AAkpCnB,wBASG"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { MfaDevice } from '../../types';
|
|
2
|
+
import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
|
|
3
|
+
interface Props {
|
|
4
|
+
show: boolean;
|
|
5
|
+
device?: MfaDevice | null;
|
|
6
|
+
}
|
|
7
|
+
declare const _default: DefineComponent<Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
|
|
8
|
+
close: () => any;
|
|
9
|
+
}, string, PublicProps, Readonly<Props> & Readonly<{
|
|
10
|
+
onClose?: (() => any) | undefined;
|
|
11
|
+
}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
12
|
+
export default _default;
|
|
13
|
+
//# sourceMappingURL=StrandsBackupCodesModal.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StrandsBackupCodesModal.vue.d.ts","sourceRoot":"","sources":["../../../../../apps/accounts-ui/src/vue/components/StrandsBackupCodesModal.vue"],"names":[],"mappings":";AAgHA;AAgcA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C,UAAU,KAAK;IACb,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;CAC1B;;;;;;AA+eD,wBAQG"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { StrandsAuthConfig } from '../composables/useStrandsConfig';
|
|
2
|
+
import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
|
|
3
|
+
interface Props {
|
|
4
|
+
token?: string;
|
|
5
|
+
redirectUrl?: string;
|
|
6
|
+
config?: StrandsAuthConfig;
|
|
7
|
+
}
|
|
8
|
+
declare const _default: DefineComponent<Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
|
|
9
|
+
success: (result: any) => any;
|
|
10
|
+
error: (error: string) => any;
|
|
11
|
+
"invalid-token": () => any;
|
|
12
|
+
"request-new-link": () => any;
|
|
13
|
+
"start-registration": () => any;
|
|
14
|
+
}, string, PublicProps, Readonly<Props> & Readonly<{
|
|
15
|
+
onSuccess?: ((result: any) => any) | undefined;
|
|
16
|
+
onError?: ((error: string) => any) | undefined;
|
|
17
|
+
"onInvalid-token"?: (() => any) | undefined;
|
|
18
|
+
"onRequest-new-link"?: (() => any) | undefined;
|
|
19
|
+
"onStart-registration"?: (() => any) | undefined;
|
|
20
|
+
}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
21
|
+
export default _default;
|
|
22
|
+
//# sourceMappingURL=StrandsCompleteSignUp.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StrandsCompleteSignUp.vue.d.ts","sourceRoot":"","sources":["../../../../../apps/accounts-ui/src/vue/components/StrandsCompleteSignUp.vue"],"names":[],"mappings":";AA4KA;AAikBA,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAI1F,UAAU,KAAK;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,iBAAiB,CAAA;CAC3B;;;;;;;;;;;;;;AAuoBD,wBAQG"}
|