@strands.gg/accui 2.1.3 → 2.1.5

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.
Files changed (209) hide show
  1. package/dist/index.d.ts +0 -1
  2. package/dist/nuxt/module.d.ts +0 -1
  3. package/dist/nuxt/runtime/composables/useAuthenticatedFetch.cjs.js +1 -1
  4. package/dist/nuxt/runtime/composables/useAuthenticatedFetch.d.ts +0 -1
  5. package/dist/nuxt/runtime/composables/useAuthenticatedFetch.es.js +5 -2
  6. package/dist/nuxt/runtime/composables/useStrandsAuth.d.ts +0 -1
  7. package/dist/nuxt/runtime/middleware/auth.d.ts +0 -1
  8. package/dist/nuxt/runtime/middleware/auth.global.d.ts +0 -1
  9. package/dist/nuxt/runtime/middleware/guest.d.ts +0 -1
  10. package/dist/nuxt/runtime/plugin.client.d.ts +0 -1
  11. package/dist/nuxt/runtime/plugin.server.d.ts +0 -1
  12. package/dist/nuxt/runtime/plugins/auth-interceptor.client.d.ts +0 -1
  13. package/dist/nuxt/types.d.ts +0 -1
  14. package/dist/nuxt-v4/module.d.ts +0 -1
  15. package/dist/nuxt-v4/runtime/composables/useAuthenticatedFetch.cjs.js +1 -1
  16. package/dist/nuxt-v4/runtime/composables/useAuthenticatedFetch.d.ts +0 -1
  17. package/dist/nuxt-v4/runtime/composables/useAuthenticatedFetch.es.js +5 -2
  18. package/dist/nuxt-v4/runtime/composables/useStrandsAuth.d.ts +0 -1
  19. package/dist/nuxt-v4/runtime/middleware/auth.global.d.ts +0 -1
  20. package/dist/nuxt-v4/runtime/plugin.client.d.ts +0 -1
  21. package/dist/nuxt-v4/runtime/plugin.server.d.ts +0 -1
  22. package/dist/nuxt-v4/runtime/plugins/auth-interceptor.client.d.ts +0 -1
  23. package/dist/nuxt-v4/types.d.ts +0 -1
  24. package/dist/nuxt-v4.d.ts +0 -1
  25. package/dist/nuxt.d.ts +0 -1
  26. package/dist/shared/defaults.d.ts +0 -1
  27. package/dist/strands-auth-ui.cjs.js +1 -1
  28. package/dist/strands-auth-ui.es.js +4 -2
  29. package/dist/types/index.d.ts +0 -1
  30. package/dist/utils/index.d.ts +0 -1
  31. package/dist/utils/slots.d.ts +0 -1
  32. package/dist/utils/validation.d.ts +0 -1
  33. package/dist/vue/components/SignedIn.vue.d.ts +0 -1
  34. package/dist/vue/components/SignedOut.vue.d.ts +0 -1
  35. package/dist/vue/components/StrandsAuth.vue.d.ts +0 -1
  36. package/dist/vue/components/StrandsBackupCodesModal.vue.d.ts +0 -1
  37. package/dist/vue/components/StrandsCompleteSignUp.vue.d.ts +0 -1
  38. package/dist/vue/components/StrandsConfigProvider.vue.d.ts +0 -1
  39. package/dist/vue/components/StrandsConfirmModal.vue.d.ts +0 -1
  40. package/dist/vue/components/StrandsEmailMfaSetupModal.vue.d.ts +0 -1
  41. package/dist/vue/components/StrandsHardwareKeySetupModal.vue.d.ts +0 -1
  42. package/dist/vue/components/StrandsLogo.vue.d.ts +0 -1
  43. package/dist/vue/components/StrandsMFASetup.vue.d.ts +0 -1
  44. package/dist/vue/components/StrandsMfaModal.vue.d.ts +0 -1
  45. package/dist/vue/components/StrandsMfaVerification.vue.d.ts +0 -1
  46. package/dist/vue/components/StrandsPasswordReset.vue.d.ts +0 -1
  47. package/dist/vue/components/StrandsSecuredFooter.vue.d.ts +0 -1
  48. package/dist/vue/components/StrandsSessionsModal.vue.d.ts +0 -1
  49. package/dist/vue/components/StrandsSettingsModal.vue.d.ts +0 -1
  50. package/dist/vue/components/StrandsSignIn.vue.d.ts +0 -1
  51. package/dist/vue/components/StrandsSignUp.vue.d.ts +0 -1
  52. package/dist/vue/components/StrandsTotpSetupModal.vue.d.ts +0 -1
  53. package/dist/vue/components/StrandsUserButton.vue.d.ts +0 -1
  54. package/dist/vue/components/StrandsUserProfile.vue.d.ts +0 -1
  55. package/dist/vue/components/SvgIcon.vue.d.ts +0 -1
  56. package/dist/vue/components/VirtualList.vue.d.ts +0 -1
  57. package/dist/vue/components/icons/IconGithub.vue.d.ts +0 -1
  58. package/dist/vue/components/icons/IconGoogle.vue.d.ts +0 -1
  59. package/dist/vue/components/icons/index.d.ts +0 -1
  60. package/dist/vue/components/index.d.ts +0 -1
  61. package/dist/vue/composables/useAuthenticatedFetch.d.ts +0 -1
  62. package/dist/vue/composables/useOAuthProviders.d.ts +0 -1
  63. package/dist/vue/composables/useStrandsAuth.d.ts +0 -1
  64. package/dist/vue/composables/useStrandsConfig.d.ts +0 -1
  65. package/dist/vue/composables/useStrandsMfa.d.ts +0 -1
  66. package/dist/vue/index.d.ts +0 -1
  67. package/dist/vue/plugins/StrandsUIPlugin.d.ts +0 -1
  68. package/dist/vue/ui/UiAlert.vue.d.ts +0 -1
  69. package/dist/vue/ui/UiAvatarEditor.vue.d.ts +0 -1
  70. package/dist/vue/ui/UiButton.vue.d.ts +0 -1
  71. package/dist/vue/ui/UiCard.vue.d.ts +0 -1
  72. package/dist/vue/ui/UiInput.vue.d.ts +0 -1
  73. package/dist/vue/ui/UiLevelProgress.vue.d.ts +0 -1
  74. package/dist/vue/ui/UiLink.vue.d.ts +0 -1
  75. package/dist/vue/ui/UiLoader.vue.d.ts +0 -1
  76. package/dist/vue/ui/UiModal.vue.d.ts +0 -1
  77. package/dist/vue/ui/UiTabs.vue.d.ts +0 -1
  78. package/dist/vue/ui/UiToggle.vue.d.ts +0 -1
  79. package/dist/vue/ui/index.d.ts +0 -1
  80. package/dist/vue/utils/contrast.d.ts +0 -1
  81. package/dist/vue/utils/debounce.d.ts +0 -1
  82. package/dist/vue/utils/fontPreloader.d.ts +0 -1
  83. package/dist/vue/utils/iconProps.d.ts +0 -1
  84. package/dist/vue/utils/lazyComponents.d.ts +0 -1
  85. package/dist/vue/utils/levels.d.ts +0 -1
  86. package/dist/vue/utils/performanceInit.d.ts +0 -1
  87. package/dist/vue/utils/requestCache.d.ts +0 -1
  88. package/dist/vue/utils/sounds.d.ts +0 -1
  89. package/package.json +11 -1
  90. package/dist/index.d.ts.map +0 -1
  91. package/dist/nuxt/module.cjs.js.map +0 -1
  92. package/dist/nuxt/module.d.ts.map +0 -1
  93. package/dist/nuxt/module.es.js.map +0 -1
  94. package/dist/nuxt/runtime/composables/useAuthenticatedFetch.cjs.js.map +0 -1
  95. package/dist/nuxt/runtime/composables/useAuthenticatedFetch.d.ts.map +0 -1
  96. package/dist/nuxt/runtime/composables/useAuthenticatedFetch.es.js.map +0 -1
  97. package/dist/nuxt/runtime/composables/useStrandsAuth.cjs.js.map +0 -1
  98. package/dist/nuxt/runtime/composables/useStrandsAuth.d.ts.map +0 -1
  99. package/dist/nuxt/runtime/composables/useStrandsAuth.es.js.map +0 -1
  100. package/dist/nuxt/runtime/middleware/auth.d.ts.map +0 -1
  101. package/dist/nuxt/runtime/middleware/auth.global.cjs.js.map +0 -1
  102. package/dist/nuxt/runtime/middleware/auth.global.d.ts.map +0 -1
  103. package/dist/nuxt/runtime/middleware/auth.global.es.js.map +0 -1
  104. package/dist/nuxt/runtime/middleware/guest.d.ts.map +0 -1
  105. package/dist/nuxt/runtime/plugin.client.cjs.js.map +0 -1
  106. package/dist/nuxt/runtime/plugin.client.d.ts.map +0 -1
  107. package/dist/nuxt/runtime/plugin.client.es.js.map +0 -1
  108. package/dist/nuxt/runtime/plugin.server.cjs.js.map +0 -1
  109. package/dist/nuxt/runtime/plugin.server.d.ts.map +0 -1
  110. package/dist/nuxt/runtime/plugin.server.es.js.map +0 -1
  111. package/dist/nuxt/runtime/plugins/auth-interceptor.client.cjs.js.map +0 -1
  112. package/dist/nuxt/runtime/plugins/auth-interceptor.client.d.ts.map +0 -1
  113. package/dist/nuxt/runtime/plugins/auth-interceptor.client.es.js.map +0 -1
  114. package/dist/nuxt/types.d.ts.map +0 -1
  115. package/dist/nuxt-v4/module.cjs.js.map +0 -1
  116. package/dist/nuxt-v4/module.d.ts.map +0 -1
  117. package/dist/nuxt-v4/module.es.js.map +0 -1
  118. package/dist/nuxt-v4/runtime/composables/useAuthenticatedFetch.cjs.js.map +0 -1
  119. package/dist/nuxt-v4/runtime/composables/useAuthenticatedFetch.d.ts.map +0 -1
  120. package/dist/nuxt-v4/runtime/composables/useAuthenticatedFetch.es.js.map +0 -1
  121. package/dist/nuxt-v4/runtime/composables/useStrandsAuth.cjs.js.map +0 -1
  122. package/dist/nuxt-v4/runtime/composables/useStrandsAuth.d.ts.map +0 -1
  123. package/dist/nuxt-v4/runtime/composables/useStrandsAuth.es.js.map +0 -1
  124. package/dist/nuxt-v4/runtime/middleware/auth.global.cjs.js.map +0 -1
  125. package/dist/nuxt-v4/runtime/middleware/auth.global.d.ts.map +0 -1
  126. package/dist/nuxt-v4/runtime/middleware/auth.global.es.js.map +0 -1
  127. package/dist/nuxt-v4/runtime/plugin.client.cjs.js.map +0 -1
  128. package/dist/nuxt-v4/runtime/plugin.client.d.ts.map +0 -1
  129. package/dist/nuxt-v4/runtime/plugin.client.es.js.map +0 -1
  130. package/dist/nuxt-v4/runtime/plugin.server.cjs.js.map +0 -1
  131. package/dist/nuxt-v4/runtime/plugin.server.d.ts.map +0 -1
  132. package/dist/nuxt-v4/runtime/plugin.server.es.js.map +0 -1
  133. package/dist/nuxt-v4/runtime/plugins/auth-interceptor.client.cjs.js.map +0 -1
  134. package/dist/nuxt-v4/runtime/plugins/auth-interceptor.client.d.ts.map +0 -1
  135. package/dist/nuxt-v4/runtime/plugins/auth-interceptor.client.es.js.map +0 -1
  136. package/dist/nuxt-v4/types.d.ts.map +0 -1
  137. package/dist/nuxt-v4.cjs.js.map +0 -1
  138. package/dist/nuxt-v4.d.ts.map +0 -1
  139. package/dist/nuxt-v4.es.js.map +0 -1
  140. package/dist/nuxt.cjs.js.map +0 -1
  141. package/dist/nuxt.d.ts.map +0 -1
  142. package/dist/nuxt.es.js.map +0 -1
  143. package/dist/shared/defaults.d.ts.map +0 -1
  144. package/dist/strands-auth-ui.cjs.js.map +0 -1
  145. package/dist/strands-auth-ui.es.js.map +0 -1
  146. package/dist/types/index.d.ts.map +0 -1
  147. package/dist/useStrandsAuth-CTlaiFqK.cjs.map +0 -1
  148. package/dist/useStrandsAuth-Cev-PTun.js.map +0 -1
  149. package/dist/useStrandsConfig-Cxb360Os.js.map +0 -1
  150. package/dist/useStrandsConfig-Z9_36OcV.cjs.map +0 -1
  151. package/dist/utils/index.d.ts.map +0 -1
  152. package/dist/utils/slots.d.ts.map +0 -1
  153. package/dist/utils/validation.d.ts.map +0 -1
  154. package/dist/vue/components/SignedIn.vue.d.ts.map +0 -1
  155. package/dist/vue/components/SignedOut.vue.d.ts.map +0 -1
  156. package/dist/vue/components/StrandsAuth.vue.d.ts.map +0 -1
  157. package/dist/vue/components/StrandsBackupCodesModal.vue.d.ts.map +0 -1
  158. package/dist/vue/components/StrandsCompleteSignUp.vue.d.ts.map +0 -1
  159. package/dist/vue/components/StrandsConfigProvider.vue.d.ts.map +0 -1
  160. package/dist/vue/components/StrandsConfirmModal.vue.d.ts.map +0 -1
  161. package/dist/vue/components/StrandsEmailMfaSetupModal.vue.d.ts.map +0 -1
  162. package/dist/vue/components/StrandsHardwareKeySetupModal.vue.d.ts.map +0 -1
  163. package/dist/vue/components/StrandsLogo.vue.d.ts.map +0 -1
  164. package/dist/vue/components/StrandsMFASetup.vue.d.ts.map +0 -1
  165. package/dist/vue/components/StrandsMfaModal.vue.d.ts.map +0 -1
  166. package/dist/vue/components/StrandsMfaVerification.vue.d.ts.map +0 -1
  167. package/dist/vue/components/StrandsPasswordReset.vue.d.ts.map +0 -1
  168. package/dist/vue/components/StrandsSecuredFooter.vue.d.ts.map +0 -1
  169. package/dist/vue/components/StrandsSessionsModal.vue.d.ts.map +0 -1
  170. package/dist/vue/components/StrandsSettingsModal.vue.d.ts.map +0 -1
  171. package/dist/vue/components/StrandsSignIn.vue.d.ts.map +0 -1
  172. package/dist/vue/components/StrandsSignUp.vue.d.ts.map +0 -1
  173. package/dist/vue/components/StrandsTotpSetupModal.vue.d.ts.map +0 -1
  174. package/dist/vue/components/StrandsUserButton.vue.d.ts.map +0 -1
  175. package/dist/vue/components/StrandsUserProfile.vue.d.ts.map +0 -1
  176. package/dist/vue/components/SvgIcon.vue.d.ts.map +0 -1
  177. package/dist/vue/components/VirtualList.vue.d.ts.map +0 -1
  178. package/dist/vue/components/icons/IconGithub.vue.d.ts.map +0 -1
  179. package/dist/vue/components/icons/IconGoogle.vue.d.ts.map +0 -1
  180. package/dist/vue/components/icons/index.d.ts.map +0 -1
  181. package/dist/vue/components/index.d.ts.map +0 -1
  182. package/dist/vue/composables/useAuthenticatedFetch.d.ts.map +0 -1
  183. package/dist/vue/composables/useOAuthProviders.d.ts.map +0 -1
  184. package/dist/vue/composables/useStrandsAuth.d.ts.map +0 -1
  185. package/dist/vue/composables/useStrandsConfig.d.ts.map +0 -1
  186. package/dist/vue/composables/useStrandsMfa.d.ts.map +0 -1
  187. package/dist/vue/index.d.ts.map +0 -1
  188. package/dist/vue/plugins/StrandsUIPlugin.d.ts.map +0 -1
  189. package/dist/vue/ui/UiAlert.vue.d.ts.map +0 -1
  190. package/dist/vue/ui/UiAvatarEditor.vue.d.ts.map +0 -1
  191. package/dist/vue/ui/UiButton.vue.d.ts.map +0 -1
  192. package/dist/vue/ui/UiCard.vue.d.ts.map +0 -1
  193. package/dist/vue/ui/UiInput.vue.d.ts.map +0 -1
  194. package/dist/vue/ui/UiLevelProgress.vue.d.ts.map +0 -1
  195. package/dist/vue/ui/UiLink.vue.d.ts.map +0 -1
  196. package/dist/vue/ui/UiLoader.vue.d.ts.map +0 -1
  197. package/dist/vue/ui/UiModal.vue.d.ts.map +0 -1
  198. package/dist/vue/ui/UiTabs.vue.d.ts.map +0 -1
  199. package/dist/vue/ui/UiToggle.vue.d.ts.map +0 -1
  200. package/dist/vue/ui/index.d.ts.map +0 -1
  201. package/dist/vue/utils/contrast.d.ts.map +0 -1
  202. package/dist/vue/utils/debounce.d.ts.map +0 -1
  203. package/dist/vue/utils/fontPreloader.d.ts.map +0 -1
  204. package/dist/vue/utils/iconProps.d.ts.map +0 -1
  205. package/dist/vue/utils/lazyComponents.d.ts.map +0 -1
  206. package/dist/vue/utils/levels.d.ts.map +0 -1
  207. package/dist/vue/utils/performanceInit.d.ts.map +0 -1
  208. package/dist/vue/utils/requestCache.d.ts.map +0 -1
  209. package/dist/vue/utils/sounds.d.ts.map +0 -1
@@ -10294,6 +10294,7 @@ const StrandsUIPlugin = {
10294
10294
  }
10295
10295
  };
10296
10296
  function useAuthenticatedFetch() {
10297
+ const { config } = useStrandsConfig();
10297
10298
  const { currentSession, refreshToken, getAuthHeaders } = useStrandsAuth();
10298
10299
  const authenticatedFetch = async (url, options = {}) => {
10299
10300
  const {
@@ -10306,8 +10307,9 @@ function useAuthenticatedFetch() {
10306
10307
  throw new Error("User is not authenticated");
10307
10308
  }
10308
10309
  let fullUrl = url;
10309
- if (baseURL && typeof url === "string" && !url.startsWith("http")) {
10310
- fullUrl = new URL(url, baseURL).toString();
10310
+ const resolvedBaseURL = baseURL || config.value.baseUrl;
10311
+ if (resolvedBaseURL && typeof url === "string" && !url.startsWith("http")) {
10312
+ fullUrl = new URL(url, resolvedBaseURL).toString();
10311
10313
  }
10312
10314
  const headers = new Headers(fetchOptions.headers);
10313
10315
  if (currentSession.value?.accessToken) {
@@ -234,4 +234,3 @@ export interface MfaErrorResponse {
234
234
  mfa_session_id?: string;
235
235
  available_methods?: string[];
236
236
  }
237
- //# sourceMappingURL=index.d.ts.map
@@ -1,2 +1 @@
1
1
  export * from './validation';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1,2 +1 @@
1
1
  export declare const slotHasContent: (slotName: string, slots: any) => boolean;
2
- //# sourceMappingURL=slots.d.ts.map
@@ -10,4 +10,3 @@ export declare const passwordsMatch: (password: string, confirmation: string) =>
10
10
  export declare const getInitials: (firstName?: string, lastName?: string) => string;
11
11
  export declare const formatDate: (date: string | Date) => string;
12
12
  export declare const debounce: <T extends (...args: any[]) => any>(func: T, wait: number) => ((...args: Parameters<T>) => void);
13
- //# sourceMappingURL=validation.d.ts.map
@@ -52,4 +52,3 @@ type __VLS_WithTemplateSlots<T, S> = T & {
52
52
  $slots: S;
53
53
  };
54
54
  };
55
- //# sourceMappingURL=SignedIn.vue.d.ts.map
@@ -52,4 +52,3 @@ type __VLS_WithTemplateSlots<T, S> = T & {
52
52
  $slots: S;
53
53
  };
54
54
  };
55
- //# sourceMappingURL=SignedOut.vue.d.ts.map
@@ -23,4 +23,3 @@ declare const _default: DefineComponent<Props, {}, {}, {}, {}, ComponentOptionsM
23
23
  inModal: boolean;
24
24
  }, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
25
25
  export default _default;
26
- //# sourceMappingURL=StrandsAuth.vue.d.ts.map
@@ -10,4 +10,3 @@ declare const _default: DefineComponent<Props, {}, {}, {}, {}, ComponentOptionsM
10
10
  onClose?: (() => any) | undefined;
11
11
  }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
12
12
  export default _default;
13
- //# sourceMappingURL=StrandsBackupCodesModal.vue.d.ts.map
@@ -19,4 +19,3 @@ declare const _default: DefineComponent<Props, {}, {}, {}, {}, ComponentOptionsM
19
19
  "onStart-registration"?: (() => any) | undefined;
20
20
  }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
21
21
  export default _default;
22
- //# sourceMappingURL=StrandsCompleteSignUp.vue.d.ts.map
@@ -20,4 +20,3 @@ type __VLS_WithTemplateSlots<T, S> = T & {
20
20
  $slots: S;
21
21
  };
22
22
  };
23
- //# sourceMappingURL=StrandsConfigProvider.vue.d.ts.map
@@ -20,4 +20,3 @@ declare const _default: DefineComponent<Props, {}, {}, {}, {}, ComponentOptionsM
20
20
  cancelText: string;
21
21
  }, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
22
22
  export default _default;
23
- //# sourceMappingURL=StrandsConfirmModal.vue.d.ts.map
@@ -10,4 +10,3 @@ declare const _default: DefineComponent<Props, {}, {}, {}, {}, ComponentOptionsM
10
10
  onClose?: (() => any) | undefined;
11
11
  }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
12
12
  export default _default;
13
- //# sourceMappingURL=StrandsEmailMfaSetupModal.vue.d.ts.map
@@ -13,4 +13,3 @@ declare const _default: DefineComponent<Props, {}, {}, {}, {}, ComponentOptionsM
13
13
  deviceType: "passkey" | "hardware";
14
14
  }, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
15
15
  export default _default;
16
- //# sourceMappingURL=StrandsHardwareKeySetupModal.vue.d.ts.map
@@ -6,4 +6,3 @@ declare const _default: DefineComponent<Props, {}, {}, {}, {}, ComponentOptionsM
6
6
  class: string;
7
7
  }, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
8
8
  export default _default;
9
- //# sourceMappingURL=StrandsLogo.vue.d.ts.map
@@ -14,4 +14,3 @@ declare const _default: DefineComponent<Props, {}, {}, {}, {}, ComponentOptionsM
14
14
  show: boolean;
15
15
  }, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
16
16
  export default _default;
17
- //# sourceMappingURL=StrandsMFASetup.vue.d.ts.map
@@ -10,4 +10,3 @@ declare const _default: DefineComponent<Props, {}, {}, {}, {}, ComponentOptionsM
10
10
  "onMfa-updated"?: (() => any) | undefined;
11
11
  }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
12
12
  export default _default;
13
- //# sourceMappingURL=StrandsMfaModal.vue.d.ts.map
@@ -15,4 +15,3 @@ declare const _default: DefineComponent<Props, {}, {}, {}, {}, ComponentOptionsM
15
15
  onClose?: (() => any) | undefined;
16
16
  }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
17
17
  export default _default;
18
- //# sourceMappingURL=StrandsMfaVerification.vue.d.ts.map
@@ -13,4 +13,3 @@ declare const _default: DefineComponent<Props, {}, {}, {}, {}, ComponentOptionsM
13
13
  "onBack-to-signin"?: (() => any) | undefined;
14
14
  }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
15
15
  export default _default;
16
- //# sourceMappingURL=StrandsPasswordReset.vue.d.ts.map
@@ -20,4 +20,3 @@ type __VLS_WithTemplateSlots<T, S> = T & {
20
20
  $slots: S;
21
21
  };
22
22
  };
23
- //# sourceMappingURL=StrandsSecuredFooter.vue.d.ts.map
@@ -12,4 +12,3 @@ declare const _default: DefineComponent<Props, {}, {}, {}, {}, ComponentOptionsM
12
12
  onCurrentSessionRevoked?: (() => any) | undefined;
13
13
  }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
14
14
  export default _default;
15
- //# sourceMappingURL=StrandsSessionsModal.vue.d.ts.map
@@ -16,4 +16,3 @@ declare const _default: DefineComponent<Props, {}, {}, {}, {}, ComponentOptionsM
16
16
  open: boolean;
17
17
  }, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
18
18
  export default _default;
19
- //# sourceMappingURL=StrandsSettingsModal.vue.d.ts.map
@@ -19,4 +19,3 @@ declare const _default: DefineComponent<Props, {}, {}, {}, {}, ComponentOptionsM
19
19
  oauthScopes: string[];
20
20
  }, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
21
21
  export default _default;
22
- //# sourceMappingURL=StrandsSignIn.vue.d.ts.map
@@ -17,4 +17,3 @@ declare const _default: DefineComponent<Props, {}, {}, {}, {}, ComponentOptionsM
17
17
  oauthScopes: string[];
18
18
  }, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
19
19
  export default _default;
20
- //# sourceMappingURL=StrandsSignUp.vue.d.ts.map
@@ -10,4 +10,3 @@ declare const _default: DefineComponent<Props, {}, {}, {}, {}, ComponentOptionsM
10
10
  onClose?: (() => any) | undefined;
11
11
  }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
12
12
  export default _default;
13
- //# sourceMappingURL=StrandsTotpSetupModal.vue.d.ts.map
@@ -28,4 +28,3 @@ declare const _default: DefineComponent<Props, {}, {}, {}, {}, ComponentOptionsM
28
28
  profileButtonRef: HTMLButtonElement;
29
29
  }, HTMLDivElement>;
30
30
  export default _default;
31
- //# sourceMappingURL=StrandsUserButton.vue.d.ts.map
@@ -24,4 +24,3 @@ declare const _default: DefineComponent<Props, {}, {}, {}, {}, ComponentOptionsM
24
24
  avatarFileInput: HTMLInputElement;
25
25
  }, HTMLDivElement>;
26
26
  export default _default;
27
- //# sourceMappingURL=StrandsUserProfile.vue.d.ts.map
@@ -15,4 +15,3 @@ declare const _default: DefineComponent<Props, {}, {}, {}, {}, ComponentOptionsM
15
15
  ariaHidden: boolean;
16
16
  }, {}, {}, {}, string, ComponentProvideOptions, false, {}, SVGSVGElement>;
17
17
  export default _default;
18
- //# sourceMappingURL=SvgIcon.vue.d.ts.map
@@ -35,4 +35,3 @@ type __VLS_WithTemplateSlots<T, S> = T & {
35
35
  $slots: S;
36
36
  };
37
37
  };
38
- //# sourceMappingURL=VirtualList.vue.d.ts.map
@@ -1,4 +1,3 @@
1
1
  import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
2
2
  declare const _default: DefineComponent<{}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, SVGSVGElement>;
3
3
  export default _default;
4
- //# sourceMappingURL=IconGithub.vue.d.ts.map
@@ -1,4 +1,3 @@
1
1
  import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
2
2
  declare const _default: DefineComponent<{}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, SVGSVGElement>;
3
3
  export default _default;
4
- //# sourceMappingURL=IconGoogle.vue.d.ts.map
@@ -1,3 +1,2 @@
1
1
  export { default as IconGoogle } from './IconGoogle.vue';
2
2
  export { default as IconGithub } from './IconGithub.vue';
3
- //# sourceMappingURL=index.d.ts.map
@@ -24,4 +24,3 @@ export { default as StrandsEmailMfaSetupModal } from './StrandsEmailMfaSetupModa
24
24
  export { default as StrandsHardwareKeySetupModal } from './StrandsHardwareKeySetupModal.vue';
25
25
  export { default as StrandsBackupCodesModal } from './StrandsBackupCodesModal.vue';
26
26
  export { default as StrandsSettingsModal } from './StrandsSettingsModal.vue';
27
- //# sourceMappingURL=index.d.ts.map
@@ -18,4 +18,3 @@ export declare const $authFetch: {
18
18
  delete: (url: string | URL, options?: AuthenticatedFetchOptions) => Promise<Response>;
19
19
  patch: (url: string | URL, body?: any, options?: AuthenticatedFetchOptions) => Promise<Response>;
20
20
  };
21
- //# sourceMappingURL=useAuthenticatedFetch.d.ts.map
@@ -72,4 +72,3 @@ export declare function useOAuthProviders(options?: UseOAuthProvidersOptions): {
72
72
  } | undefined;
73
73
  getProviderIcon: (provider: OAuthProvider) => string;
74
74
  };
75
- //# sourceMappingURL=useOAuthProviders.d.ts.map
@@ -128,4 +128,3 @@ export declare function useStrandsAuth(): {
128
128
  getAuthHeaders: () => Record<string, string>;
129
129
  forceReInit: () => void;
130
130
  };
131
- //# sourceMappingURL=useStrandsAuth.d.ts.map
@@ -9,4 +9,3 @@ export declare function useStrandsConfig(fallbackConfig?: Partial<StrandsAuthCon
9
9
  getSupportEmail: () => any;
10
10
  };
11
11
  export declare function setStrandsConfig(config: StrandsAuthConfig): void;
12
- //# sourceMappingURL=useStrandsConfig.d.ts.map
@@ -36,4 +36,3 @@ export declare function useStrandsMfa(): {
36
36
  getDeviceTypeName: (deviceType: string) => string;
37
37
  formatLastUsed: (lastUsedAt?: string | Date) => string;
38
38
  };
39
- //# sourceMappingURL=useStrandsMfa.d.ts.map
@@ -10,4 +10,3 @@ export * from './utils/debounce';
10
10
  export * from './utils/fontPreloader';
11
11
  export * from './utils/lazyComponents';
12
12
  export * from './utils/performanceInit';
13
- //# sourceMappingURL=index.d.ts.map
@@ -17,4 +17,3 @@ export default _default;
17
17
  export { StrandsUiAlert, StrandsUiButton, StrandsUiCard, StrandsUiInput, StrandsUiLink, StrandsUiTabs, StrandsUiLoader, };
18
18
  export { injectSquircleStyles };
19
19
  export type { ButtonVariant, ButtonSize, InputType, CardVariant, LinkVariant, AlertVariant, } from '../ui/index';
20
- //# sourceMappingURL=StrandsUIPlugin.d.ts.map
@@ -29,4 +29,3 @@ type __VLS_WithTemplateSlots<T, S> = T & {
29
29
  $slots: S;
30
30
  };
31
31
  };
32
- //# sourceMappingURL=UiAlert.vue.d.ts.map
@@ -23,4 +23,3 @@ declare const _default: DefineComponent<Props, {}, {}, {}, {}, ComponentOptionsM
23
23
  previewCanvas: HTMLCanvasElement;
24
24
  }, HTMLDivElement>;
25
25
  export default _default;
26
- //# sourceMappingURL=UiAvatarEditor.vue.d.ts.map
@@ -52,4 +52,3 @@ type __VLS_WithTemplateSlots<T, S> = T & {
52
52
  $slots: S;
53
53
  };
54
54
  };
55
- //# sourceMappingURL=UiButton.vue.d.ts.map
@@ -27,4 +27,3 @@ type __VLS_WithTemplateSlots<T, S> = T & {
27
27
  $slots: S;
28
28
  };
29
29
  };
30
- //# sourceMappingURL=UiCard.vue.d.ts.map
@@ -46,4 +46,3 @@ type __VLS_WithTemplateSlots<T, S> = T & {
46
46
  $slots: S;
47
47
  };
48
48
  };
49
- //# sourceMappingURL=UiInput.vue.d.ts.map
@@ -17,4 +17,3 @@ declare const _default: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOp
17
17
  onLevelup?: ((...args: any[]) => any) | undefined;
18
18
  }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
19
19
  export default _default;
20
- //# sourceMappingURL=UiLevelProgress.vue.d.ts.map
@@ -40,4 +40,3 @@ type __VLS_WithTemplateSlots<T, S> = T & {
40
40
  $slots: S;
41
41
  };
42
42
  };
43
- //# sourceMappingURL=UiLink.vue.d.ts.map
@@ -13,4 +13,3 @@ declare const _default: DefineComponent<Props, {}, {}, {}, {}, ComponentOptionsM
13
13
  weight: number;
14
14
  }, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
15
15
  export default _default;
16
- //# sourceMappingURL=UiLoader.vue.d.ts.map
@@ -31,4 +31,3 @@ type __VLS_WithTemplateSlots<T, S> = T & {
31
31
  $slots: S;
32
32
  };
33
33
  };
34
- //# sourceMappingURL=UiModal.vue.d.ts.map
@@ -15,4 +15,3 @@ declare const _default: DefineComponent<Props, {}, {}, {}, {}, ComponentOptionsM
15
15
  tabButtons: HTMLButtonElement[];
16
16
  }, HTMLDivElement>;
17
17
  export default _default;
18
- //# sourceMappingURL=UiTabs.vue.d.ts.map
@@ -13,4 +13,3 @@ declare const _default: DefineComponent<Props, {}, {}, {}, {}, ComponentOptionsM
13
13
  modelValue: boolean;
14
14
  }, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLButtonElement>;
15
15
  export default _default;
16
- //# sourceMappingURL=UiToggle.vue.d.ts.map
@@ -27,4 +27,3 @@ export type InputType = 'text' | 'email' | 'password' | 'number' | 'tel' | 'url'
27
27
  export type CardVariant = 'default' | 'modern' | 'minimal';
28
28
  export type LinkVariant = 'primary' | 'secondary' | 'ghost' | 'underline';
29
29
  export type AlertVariant = 'success' | 'error' | 'warning' | 'info';
30
- //# sourceMappingURL=index.d.ts.map
@@ -77,4 +77,3 @@ export declare const meetsAPCAStandard: (textColor: {
77
77
  * Generate color value from color prop (for CSS generation)
78
78
  */
79
79
  export declare const getColorValue: (color: string) => string;
80
- //# sourceMappingURL=contrast.d.ts.map
@@ -10,4 +10,3 @@ export declare const debouncedSetItem: (key: string, value: string) => void;
10
10
  * Throttle utility for limiting function execution frequency
11
11
  */
12
12
  export declare function throttle<T extends (...args: any[]) => void>(func: T, limit: number): (...args: Parameters<T>) => void;
13
- //# sourceMappingURL=debounce.d.ts.map
@@ -17,4 +17,3 @@ export declare function checkFontLoaded(fontFamily: string, weight?: string): Pr
17
17
  * Optimize font loading with font-display: swap
18
18
  */
19
19
  export declare function optimizeFontLoading(): void;
20
- //# sourceMappingURL=fontPreloader.d.ts.map
@@ -7,4 +7,3 @@ export declare const iconProps: {
7
7
  default: number;
8
8
  };
9
9
  };
10
- //# sourceMappingURL=iconProps.d.ts.map
@@ -1,3 +1,2 @@
1
1
  export declare const preloadComponent: (componentLoader: () => Promise<any>) => void;
2
2
  export declare const preloadCriticalComponents: () => void;
3
- //# sourceMappingURL=lazyComponents.d.ts.map
@@ -25,4 +25,3 @@ export declare const getCurrentLevelExp: (totalXp: number) => number;
25
25
  * Get the XP needed to reach the next level
26
26
  */
27
27
  export declare const getExpToNextLevel: (totalXp: number) => number;
28
- //# sourceMappingURL=levels.d.ts.map
@@ -38,4 +38,3 @@ export declare function getPerformanceMetrics(): {
38
38
  limit: any;
39
39
  } | null;
40
40
  };
41
- //# sourceMappingURL=performanceInit.d.ts.map
@@ -47,4 +47,3 @@ export declare function useRequestCache(): {
47
47
  */
48
48
  export declare function getCacheKey(url: string, options?: RequestInit): string;
49
49
  export {};
50
- //# sourceMappingURL=requestCache.d.ts.map
@@ -54,4 +54,3 @@ export declare const playError: () => void;
54
54
  export declare const playClick: () => void;
55
55
  export declare const playNotification: () => void;
56
56
  export declare const playXpGain: () => void;
57
- //# sourceMappingURL=sounds.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strands.gg/accui",
3
- "version": "2.1.3",
3
+ "version": "2.1.5",
4
4
  "description": "Strands Authentication UI Components",
5
5
  "type": "module",
6
6
  "main": "./dist/strands-auth-ui.cjs.js",
@@ -28,11 +28,21 @@
28
28
  "import": "./dist/nuxt.es.js",
29
29
  "require": "./dist/nuxt.cjs.js"
30
30
  },
31
+ "./nuxt/*": {
32
+ "types": "./dist/nuxt/*.d.ts",
33
+ "import": "./dist/nuxt/*.es.js",
34
+ "require": "./dist/nuxt/*.cjs.js"
35
+ },
31
36
  "./nuxt-v4": {
32
37
  "types": "./dist/nuxt-v4.d.ts",
33
38
  "import": "./dist/nuxt-v4.es.js",
34
39
  "require": "./dist/nuxt-v4.cjs.js"
35
40
  },
41
+ "./nuxt-v4/*": {
42
+ "types": "./dist/nuxt-v4/*.d.ts",
43
+ "import": "./dist/nuxt-v4/*.es.js",
44
+ "require": "./dist/nuxt-v4/*.cjs.js"
45
+ },
36
46
  "./fetch": {
37
47
  "types": "./dist/vue/composables/useAuthenticatedFetch.d.ts",
38
48
  "import": "./dist/strands-auth-ui.es.js",
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../apps/accounts-ui/src/index.ts"],"names":[],"mappings":"AACA,OAAO,mBAAmB,CAAA;AAG1B,cAAc,kBAAkB,CAAA;AAGhC,cAAc,UAAU,CAAA;AACxB,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAG1E,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAGtJ,cAAc,SAAS,CAAA;AAGvB,mBAAmB,eAAe,CAAA"}
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../apps/accounts-ui/src/nuxt/module.ts"],"names":[],"mappings":";AAGA,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;;AAmBjD,wBA0HE"}
@@ -1 +0,0 @@
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 +0,0 @@
1
- {"version":3,"file":"useAuthenticatedFetch.cjs.js","sources":["../../../../../../apps/accounts-ui/src/nuxt/runtime/composables/useAuthenticatedFetch.ts"],"sourcesContent":["import { useStrandsAuth } from './useStrandsAuth'\nimport type { AuthenticatedFetchOptions } from '../../../types'\n\n/**\n * Enhanced fetch composable that automatically includes auth headers\n * and handles token refresh for API requests\n */\nexport function useAuthenticatedFetch() {\n const { currentSession, refreshToken, getAuthHeaders } = useStrandsAuth()\n\n const authenticatedFetch = async (\n url: string | URL,\n options: AuthenticatedFetchOptions = {}\n ): Promise<Response> => {\n const {\n autoRefresh = true,\n requireAuth = true,\n baseURL,\n ...fetchOptions\n } = options\n\n // Check if user is authenticated when required\n if (requireAuth && !currentSession.value?.accessToken) {\n throw new Error('User is not authenticated')\n }\n\n // Construct full URL if baseURL is provided\n let fullUrl: string | URL = url\n if (baseURL && typeof url === 'string' && !url.startsWith('http')) {\n fullUrl = new URL(url, baseURL).toString()\n }\n\n // Prepare headers\n const headers = new Headers(fetchOptions.headers)\n \n // Add auth headers if available\n if (currentSession.value?.accessToken) {\n try {\n const authHeaders = getAuthHeaders()\n Object.entries(authHeaders).forEach(([key, value]) => {\n headers.set(key, value)\n })\n } catch (error) {\n console.warn('[Strands Auth] Failed to get auth headers:', error)\n if (requireAuth) {\n throw error\n }\n }\n }\n\n // Make the request\n const enhancedOptions: RequestInit = {\n ...fetchOptions,\n headers\n }\n\n let response = await fetch(fullUrl, enhancedOptions)\n\n // Handle 401 with auto-refresh\n if (response.status === 401 && autoRefresh && currentSession.value?.refreshToken) {\n console.log('[Strands Auth] Request failed with 401, attempting token refresh...')\n \n try {\n // Attempt to refresh token\n const refreshed = await refreshToken()\n \n if (refreshed && currentSession.value?.accessToken) {\n // Update headers with new token\n const newAuthHeaders = getAuthHeaders()\n Object.entries(newAuthHeaders).forEach(([key, value]) => {\n headers.set(key, value)\n })\n\n // Retry the request with new token\n console.log('[Strands Auth] Retrying request with refreshed token')\n response = await fetch(fullUrl, { ...enhancedOptions, headers })\n }\n } catch (refreshError) {\n console.error('[Strands Auth] Token refresh failed:', refreshError)\n // Return the original 401 response\n }\n }\n\n return response\n }\n\n /**\n * Convenience method for making authenticated GET requests\n */\n const get = (url: string | URL, options?: AuthenticatedFetchOptions) => {\n return authenticatedFetch(url, { ...options, method: 'GET' })\n }\n\n /**\n * Convenience method for making authenticated POST requests\n */\n const post = (url: string | URL, body?: any, options?: AuthenticatedFetchOptions) => {\n const headers = new Headers(options?.headers)\n \n // Auto-set content type for JSON requests\n if (body && typeof body === 'object' && !headers.has('Content-Type')) {\n headers.set('Content-Type', 'application/json')\n }\n\n return authenticatedFetch(url, {\n ...options,\n method: 'POST',\n headers,\n body: typeof body === 'object' ? JSON.stringify(body) : body\n })\n }\n\n /**\n * Convenience method for making authenticated PUT requests\n */\n const put = (url: string | URL, body?: any, options?: AuthenticatedFetchOptions) => {\n const headers = new Headers(options?.headers)\n \n if (body && typeof body === 'object' && !headers.has('Content-Type')) {\n headers.set('Content-Type', 'application/json')\n }\n\n return authenticatedFetch(url, {\n ...options,\n method: 'PUT',\n headers,\n body: typeof body === 'object' ? JSON.stringify(body) : body\n })\n }\n\n /**\n * Convenience method for making authenticated DELETE requests\n */\n const del = (url: string | URL, options?: AuthenticatedFetchOptions) => {\n return authenticatedFetch(url, { ...options, method: 'DELETE' })\n }\n\n /**\n * Convenience method for making authenticated PATCH requests\n */\n const patch = (url: string | URL, body?: any, options?: AuthenticatedFetchOptions) => {\n const headers = new Headers(options?.headers)\n \n if (body && typeof body === 'object' && !headers.has('Content-Type')) {\n headers.set('Content-Type', 'application/json')\n }\n\n return authenticatedFetch(url, {\n ...options,\n method: 'PATCH',\n headers,\n body: typeof body === 'object' ? JSON.stringify(body) : body\n })\n }\n\n return {\n authenticatedFetch,\n get,\n post,\n put,\n delete: del,\n patch\n }\n}\n\n// Export convenience functions for non-composable usage\nexport const $authFetch = {\n get: async (url: string | URL, options?: AuthenticatedFetchOptions) => {\n const { get } = useAuthenticatedFetch()\n return get(url, options)\n },\n post: async (url: string | URL, body?: any, options?: AuthenticatedFetchOptions) => {\n const { post } = useAuthenticatedFetch()\n return post(url, body, options)\n },\n put: async (url: string | URL, body?: any, options?: AuthenticatedFetchOptions) => {\n const { put } = useAuthenticatedFetch()\n return put(url, body, options)\n },\n delete: async (url: string | URL, options?: AuthenticatedFetchOptions) => {\n const { delete: del } = useAuthenticatedFetch()\n return del(url, options)\n },\n patch: async (url: string | URL, body?: any, options?: AuthenticatedFetchOptions) => {\n const { patch } = useAuthenticatedFetch()\n return patch(url, body, options)\n }\n}"],"names":["useAuthenticatedFetch","currentSession","refreshToken","getAuthHeaders","useStrandsAuth","authenticatedFetch","async","url","options","autoRefresh","requireAuth","baseURL","fetchOptions","value","accessToken","Error","fullUrl","startsWith","URL","toString","headers","Headers","authHeaders","Object","entries","forEach","key","set","error","enhancedOptions","response","fetch","status","newAuthHeaders","refreshError","get","method","post","body","has","JSON","stringify","put","delete","patch","$authFetch","del"],"mappings":"2HAOO,SAASA,IACd,MAAMC,eAAEA,EAAAC,aAAgBA,EAAAC,eAAcA,GAAmBC,EAAAA,iBAEnDC,EAAqBC,MACzBC,EACAC,EAAqC,CAAA,KAErC,MAAMC,YACJA,GAAc,EAAAC,YACdA,GAAc,EAAAC,QACdA,KACGC,GACDJ,EAGJ,GAAIE,IAAgBT,EAAeY,OAAOC,YACxC,MAAM,IAAIC,MAAM,6BAIlB,IAAIC,EAAwBT,EACxBI,GAA0B,iBAARJ,IAAqBA,EAAIU,WAAW,UACxDD,EAAU,IAAIE,IAAIX,EAAKI,GAASQ,YAIlC,MAAMC,EAAU,IAAIC,QAAQT,EAAaQ,SAGzC,GAAInB,EAAeY,OAAOC,YACxB,IACE,MAAMQ,EAAcnB,IACpBoB,OAAOC,QAAQF,GAAaG,QAAQ,EAAEC,EAAKb,MACzCO,EAAQO,IAAID,EAAKb,IAErB,OAASe,GAEP,GAAIlB,EACF,MAAMkB,CAEV,CAIF,MAAMC,EAA+B,IAChCjB,EACHQ,WAGF,IAAIU,QAAiBC,MAAMf,EAASa,GAGpC,GAAwB,MAApBC,EAASE,QAAkBvB,GAAeR,EAAeY,OAAOX,aAGlE,IAIE,SAFwBA,KAEPD,EAAeY,OAAOC,YAAa,CAElD,MAAMmB,EAAiB9B,IACvBoB,OAAOC,QAAQS,GAAgBR,QAAQ,EAAEC,EAAKb,MAC5CO,EAAQO,IAAID,EAAKb,KAKnBiB,QAAiBC,MAAMf,EAAS,IAAKa,EAAiBT,WACxD,CACF,OAASc,GAGT,CAGF,OAAOJ,GAwET,MAAO,CACLzB,qBACA8B,IApEU,CAAC5B,EAAmBC,IACvBH,EAAmBE,EAAK,IAAKC,EAAS4B,OAAQ,QAoErDC,KA9DW,CAAC9B,EAAmB+B,EAAY9B,KAC3C,MAAMY,EAAU,IAAIC,QAAQb,GAASY,SAOrC,OAJIkB,GAAwB,iBAATA,IAAsBlB,EAAQmB,IAAI,iBACnDnB,EAAQO,IAAI,eAAgB,oBAGvBtB,EAAmBE,EAAK,IAC1BC,EACH4B,OAAQ,OACRhB,UACAkB,KAAsB,iBAATA,EAAoBE,KAAKC,UAAUH,GAAQA,KAmD1DI,IA5CU,CAACnC,EAAmB+B,EAAY9B,KAC1C,MAAMY,EAAU,IAAIC,QAAQb,GAASY,SAMrC,OAJIkB,GAAwB,iBAATA,IAAsBlB,EAAQmB,IAAI,iBACnDnB,EAAQO,IAAI,eAAgB,oBAGvBtB,EAAmBE,EAAK,IAC1BC,EACH4B,OAAQ,MACRhB,UACAkB,KAAsB,iBAATA,EAAoBE,KAAKC,UAAUH,GAAQA,KAkC1DK,OA3BU,CAACpC,EAAmBC,IACvBH,EAAmBE,EAAK,IAAKC,EAAS4B,OAAQ,WA2BrDQ,MArBY,CAACrC,EAAmB+B,EAAY9B,KAC5C,MAAMY,EAAU,IAAIC,QAAQb,GAASY,SAMrC,OAJIkB,GAAwB,iBAATA,IAAsBlB,EAAQmB,IAAI,iBACnDnB,EAAQO,IAAI,eAAgB,oBAGvBtB,EAAmBE,EAAK,IAC1BC,EACH4B,OAAQ,QACRhB,UACAkB,KAAsB,iBAATA,EAAoBE,KAAKC,UAAUH,GAAQA,KAY9D,CAGO,MAAMO,EAAa,CACxBV,IAAK7B,MAAOC,EAAmBC,KAC7B,MAAM2B,IAAEA,GAAQnC,IAChB,OAAOmC,EAAI5B,EAAKC,IAElB6B,KAAM/B,MAAOC,EAAmB+B,EAAY9B,KAC1C,MAAM6B,KAAEA,GAASrC,IACjB,OAAOqC,EAAK9B,EAAK+B,EAAM9B,IAEzBkC,IAAKpC,MAAOC,EAAmB+B,EAAY9B,KACzC,MAAMkC,IAAEA,GAAQ1C,IAChB,OAAO0C,EAAInC,EAAK+B,EAAM9B,IAExBmC,OAAQrC,MAAOC,EAAmBC,KAChC,MAAQmC,OAAQG,GAAQ9C,IACxB,OAAO8C,EAAIvC,EAAKC,IAElBoC,MAAOtC,MAAOC,EAAmB+B,EAAY9B,KAC3C,MAAMoC,MAAEA,GAAU5C,IAClB,OAAO4C,EAAMrC,EAAK+B,EAAM9B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAuthenticatedFetch.d.ts","sourceRoot":"","sources":["../../../../../../apps/accounts-ui/src/nuxt/runtime/composables/useAuthenticatedFetch.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAA;AAE/D;;;GAGG;AACH,wBAAgB,qBAAqB;8BAI5B,MAAM,GAAG,GAAG,YACR,yBAAyB,KACjC,OAAO,CAAC,QAAQ,CAAC;eA4EF,MAAM,GAAG,GAAG,YAAY,yBAAyB;gBAOhD,MAAM,GAAG,GAAG,SAAS,GAAG,YAAY,yBAAyB;eAmB9D,MAAM,GAAG,GAAG,SAAS,GAAG,YAAY,yBAAyB;kBAkB7D,MAAM,GAAG,GAAG,YAAY,yBAAyB;iBAO/C,MAAM,GAAG,GAAG,SAAS,GAAG,YAAY,yBAAyB;EAuBlF;AAGD,eAAO,MAAM,UAAU;eACJ,MAAM,GAAG,GAAG,YAAY,yBAAyB;gBAIhD,MAAM,GAAG,GAAG,SAAS,GAAG,YAAY,yBAAyB;eAI9D,MAAM,GAAG,GAAG,SAAS,GAAG,YAAY,yBAAyB;kBAI1D,MAAM,GAAG,GAAG,YAAY,yBAAyB;iBAIlD,MAAM,GAAG,GAAG,SAAS,GAAG,YAAY,yBAAyB;CAIjF,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAuthenticatedFetch.es.js","sources":["../../../../../../apps/accounts-ui/src/nuxt/runtime/composables/useAuthenticatedFetch.ts"],"sourcesContent":["import { useStrandsAuth } from './useStrandsAuth'\nimport type { AuthenticatedFetchOptions } from '../../../types'\n\n/**\n * Enhanced fetch composable that automatically includes auth headers\n * and handles token refresh for API requests\n */\nexport function useAuthenticatedFetch() {\n const { currentSession, refreshToken, getAuthHeaders } = useStrandsAuth()\n\n const authenticatedFetch = async (\n url: string | URL,\n options: AuthenticatedFetchOptions = {}\n ): Promise<Response> => {\n const {\n autoRefresh = true,\n requireAuth = true,\n baseURL,\n ...fetchOptions\n } = options\n\n // Check if user is authenticated when required\n if (requireAuth && !currentSession.value?.accessToken) {\n throw new Error('User is not authenticated')\n }\n\n // Construct full URL if baseURL is provided\n let fullUrl: string | URL = url\n if (baseURL && typeof url === 'string' && !url.startsWith('http')) {\n fullUrl = new URL(url, baseURL).toString()\n }\n\n // Prepare headers\n const headers = new Headers(fetchOptions.headers)\n \n // Add auth headers if available\n if (currentSession.value?.accessToken) {\n try {\n const authHeaders = getAuthHeaders()\n Object.entries(authHeaders).forEach(([key, value]) => {\n headers.set(key, value)\n })\n } catch (error) {\n console.warn('[Strands Auth] Failed to get auth headers:', error)\n if (requireAuth) {\n throw error\n }\n }\n }\n\n // Make the request\n const enhancedOptions: RequestInit = {\n ...fetchOptions,\n headers\n }\n\n let response = await fetch(fullUrl, enhancedOptions)\n\n // Handle 401 with auto-refresh\n if (response.status === 401 && autoRefresh && currentSession.value?.refreshToken) {\n console.log('[Strands Auth] Request failed with 401, attempting token refresh...')\n \n try {\n // Attempt to refresh token\n const refreshed = await refreshToken()\n \n if (refreshed && currentSession.value?.accessToken) {\n // Update headers with new token\n const newAuthHeaders = getAuthHeaders()\n Object.entries(newAuthHeaders).forEach(([key, value]) => {\n headers.set(key, value)\n })\n\n // Retry the request with new token\n console.log('[Strands Auth] Retrying request with refreshed token')\n response = await fetch(fullUrl, { ...enhancedOptions, headers })\n }\n } catch (refreshError) {\n console.error('[Strands Auth] Token refresh failed:', refreshError)\n // Return the original 401 response\n }\n }\n\n return response\n }\n\n /**\n * Convenience method for making authenticated GET requests\n */\n const get = (url: string | URL, options?: AuthenticatedFetchOptions) => {\n return authenticatedFetch(url, { ...options, method: 'GET' })\n }\n\n /**\n * Convenience method for making authenticated POST requests\n */\n const post = (url: string | URL, body?: any, options?: AuthenticatedFetchOptions) => {\n const headers = new Headers(options?.headers)\n \n // Auto-set content type for JSON requests\n if (body && typeof body === 'object' && !headers.has('Content-Type')) {\n headers.set('Content-Type', 'application/json')\n }\n\n return authenticatedFetch(url, {\n ...options,\n method: 'POST',\n headers,\n body: typeof body === 'object' ? JSON.stringify(body) : body\n })\n }\n\n /**\n * Convenience method for making authenticated PUT requests\n */\n const put = (url: string | URL, body?: any, options?: AuthenticatedFetchOptions) => {\n const headers = new Headers(options?.headers)\n \n if (body && typeof body === 'object' && !headers.has('Content-Type')) {\n headers.set('Content-Type', 'application/json')\n }\n\n return authenticatedFetch(url, {\n ...options,\n method: 'PUT',\n headers,\n body: typeof body === 'object' ? JSON.stringify(body) : body\n })\n }\n\n /**\n * Convenience method for making authenticated DELETE requests\n */\n const del = (url: string | URL, options?: AuthenticatedFetchOptions) => {\n return authenticatedFetch(url, { ...options, method: 'DELETE' })\n }\n\n /**\n * Convenience method for making authenticated PATCH requests\n */\n const patch = (url: string | URL, body?: any, options?: AuthenticatedFetchOptions) => {\n const headers = new Headers(options?.headers)\n \n if (body && typeof body === 'object' && !headers.has('Content-Type')) {\n headers.set('Content-Type', 'application/json')\n }\n\n return authenticatedFetch(url, {\n ...options,\n method: 'PATCH',\n headers,\n body: typeof body === 'object' ? JSON.stringify(body) : body\n })\n }\n\n return {\n authenticatedFetch,\n get,\n post,\n put,\n delete: del,\n patch\n }\n}\n\n// Export convenience functions for non-composable usage\nexport const $authFetch = {\n get: async (url: string | URL, options?: AuthenticatedFetchOptions) => {\n const { get } = useAuthenticatedFetch()\n return get(url, options)\n },\n post: async (url: string | URL, body?: any, options?: AuthenticatedFetchOptions) => {\n const { post } = useAuthenticatedFetch()\n return post(url, body, options)\n },\n put: async (url: string | URL, body?: any, options?: AuthenticatedFetchOptions) => {\n const { put } = useAuthenticatedFetch()\n return put(url, body, options)\n },\n delete: async (url: string | URL, options?: AuthenticatedFetchOptions) => {\n const { delete: del } = useAuthenticatedFetch()\n return del(url, options)\n },\n patch: async (url: string | URL, body?: any, options?: AuthenticatedFetchOptions) => {\n const { patch } = useAuthenticatedFetch()\n return patch(url, body, options)\n }\n}"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useStrandsAuth.cjs.js","sources":["../../../../../../apps/accounts-ui/src/nuxt/runtime/composables/useStrandsAuth.ts"],"sourcesContent":["import type { Ref, ComputedRef } from 'vue'\nimport { useRuntimeConfig } from 'nuxt/app'\nimport { navigateTo } from 'nuxt/app'\nimport { useStrandsAuth as useVueStrandsAuth } from '../../../vue/composables/useStrandsAuth'\nimport type { StrandsAuthConfig } from '../../../types'\nimport type { User } from '../../../types'\n\nexport const useStrandsAuth = () => {\n const config = useRuntimeConfig().public['strandsAuth'] as StrandsAuthConfig\n \n // Get the base Vue composable\n const vueAuth = useVueStrandsAuth()\n\n // Initialize function for setup\n const initialize = async () => {\n await vueAuth.initialize()\n }\n\n // Enhanced signIn with Nuxt navigation\n const signIn = async (credentials: { email: string; password: string }) => {\n const result = await vueAuth.signIn(credentials)\n \n // Navigate to configured sign-in URL on success\n if (result && config.onSignInUrl) {\n await navigateTo(config.onSignInUrl)\n }\n \n return result\n }\n\n // Enhanced signUp with Nuxt navigation (magic link flow)\n const signUp = async (userData: { email: string }) => {\n // For magic link flow, we just need an email\n const result = await vueAuth.signUp({\n email: userData.email,\n password: '', // Empty password for magic link\n firstName: '', // Will be filled later in the magic link flow\n lastName: ''\n })\n \n // For magic link, we don't navigate immediately\n // The user will complete signup via the magic link\n \n return result\n }\n\n // Enhanced signOut with Nuxt navigation\n const signOut = async () => {\n await vueAuth.signOut()\n \n // Navigate to configured sign-out URL\n if (config.onSignOutUrl) {\n await navigateTo(config.onSignOutUrl)\n }\n }\n\n return {\n // Re-export Vue composable state and methods\n ...vueAuth,\n \n // Add initialize function\n initialize,\n \n // Override methods with Nuxt-specific navigation\n signIn,\n signUp,\n signOut,\n }\n}\n\n// Convenience composables\nexport const useAuthUser = (): { user: ComputedRef<User | null> } => {\n const { user } = useStrandsAuth()\n return { user }\n}\n\nexport const useAuthState = (): { isAuthenticated: ComputedRef<boolean>, isLoading: ComputedRef<boolean> } => {\n const { isAuthenticated, isLoading } = useStrandsAuth()\n return { isAuthenticated, isLoading }\n}"],"names":["useStrandsAuth","config","useRuntimeConfig","public","vueAuth","useVueStrandsAuth","initialize","async","signIn","credentials","result","onSignInUrl","navigateTo","signUp","userData","email","password","firstName","lastName","signOut","onSignOutUrl","isAuthenticated","isLoading","user"],"mappings":"8JAOaA,EAAiB,KAC5B,MAAMC,EAASC,EAAAA,mBAAmBC,OAAoB,YAGhDC,EAAUC,EAAAA,iBA6ChB,MAAO,IAEFD,EAGHE,WA/CiBC,gBACXH,EAAQE,cAiDdE,OA7CaD,MAAOE,IACpB,MAAMC,QAAeN,EAAQI,OAAOC,GAOpC,OAJIC,GAAUT,EAAOU,mBACbC,EAAAA,WAAWX,EAAOU,aAGnBD,GAsCPG,OAlCaN,MAAOO,SAECV,EAAQS,OAAO,CAClCE,MAAOD,EAASC,MAChBC,SAAU,GACVC,UAAW,GACXC,SAAU,KA6BZC,QAnBcZ,gBACRH,EAAQe,UAGVlB,EAAOmB,oBACHR,EAAAA,WAAWX,EAAOmB,sCAwBF,KAC1B,MAAMC,gBAAEA,EAAAC,UAAiBA,GAActB,IACvC,MAAO,CAAEqB,kBAAiBC,kCAPD,KACzB,MAAMC,KAAEA,GAASvB,IACjB,MAAO,CAAEuB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useStrandsAuth.d.ts","sourceRoot":"","sources":["../../../../../../apps/accounts-ui/src/nuxt/runtime/composables/useStrandsAuth.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAO,WAAW,EAAE,MAAM,KAAK,CAAA;AAK3C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAE1C,eAAO,MAAM,cAAc;;0BAYU;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;uBAYtC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqClD,CAAA;AAGD,eAAO,MAAM,WAAW,QAAO;IAAE,IAAI,EAAE,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;CAG9D,CAAA;AAED,eAAO,MAAM,YAAY,QAAO;IAAE,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAAC,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;CAGvG,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useStrandsAuth.es.js","sources":["../../../../../../apps/accounts-ui/src/nuxt/runtime/composables/useStrandsAuth.ts"],"sourcesContent":["import type { Ref, ComputedRef } from 'vue'\nimport { useRuntimeConfig } from 'nuxt/app'\nimport { navigateTo } from 'nuxt/app'\nimport { useStrandsAuth as useVueStrandsAuth } from '../../../vue/composables/useStrandsAuth'\nimport type { StrandsAuthConfig } from '../../../types'\nimport type { User } from '../../../types'\n\nexport const useStrandsAuth = () => {\n const config = useRuntimeConfig().public['strandsAuth'] as StrandsAuthConfig\n \n // Get the base Vue composable\n const vueAuth = useVueStrandsAuth()\n\n // Initialize function for setup\n const initialize = async () => {\n await vueAuth.initialize()\n }\n\n // Enhanced signIn with Nuxt navigation\n const signIn = async (credentials: { email: string; password: string }) => {\n const result = await vueAuth.signIn(credentials)\n \n // Navigate to configured sign-in URL on success\n if (result && config.onSignInUrl) {\n await navigateTo(config.onSignInUrl)\n }\n \n return result\n }\n\n // Enhanced signUp with Nuxt navigation (magic link flow)\n const signUp = async (userData: { email: string }) => {\n // For magic link flow, we just need an email\n const result = await vueAuth.signUp({\n email: userData.email,\n password: '', // Empty password for magic link\n firstName: '', // Will be filled later in the magic link flow\n lastName: ''\n })\n \n // For magic link, we don't navigate immediately\n // The user will complete signup via the magic link\n \n return result\n }\n\n // Enhanced signOut with Nuxt navigation\n const signOut = async () => {\n await vueAuth.signOut()\n \n // Navigate to configured sign-out URL\n if (config.onSignOutUrl) {\n await navigateTo(config.onSignOutUrl)\n }\n }\n\n return {\n // Re-export Vue composable state and methods\n ...vueAuth,\n \n // Add initialize function\n initialize,\n \n // Override methods with Nuxt-specific navigation\n signIn,\n signUp,\n signOut,\n }\n}\n\n// Convenience composables\nexport const useAuthUser = (): { user: ComputedRef<User | null> } => {\n const { user } = useStrandsAuth()\n return { user }\n}\n\nexport const useAuthState = (): { isAuthenticated: ComputedRef<boolean>, isLoading: ComputedRef<boolean> } => {\n const { isAuthenticated, isLoading } = useStrandsAuth()\n return { isAuthenticated, isLoading }\n}"],"names":["useVueStrandsAuth"],"mappings":";;AAOO,MAAM,iBAAiB,MAAM;AAClC,QAAM,SAAS,mBAAmB,OAAO,aAAa;AAGtD,QAAM,UAAUA,iBAAA;AAGhB,QAAM,aAAa,YAAY;AAC7B,UAAM,QAAQ,WAAA;AAAA,EAChB;AAGA,QAAM,SAAS,OAAO,gBAAqD;AACzE,UAAM,SAAS,MAAM,QAAQ,OAAO,WAAW;AAG/C,QAAI,UAAU,OAAO,aAAa;AAChC,YAAM,WAAW,OAAO,WAAW;AAAA,IACrC;AAEA,WAAO;AAAA,EACT;AAGA,QAAM,SAAS,OAAO,aAAgC;AAEpD,UAAM,SAAS,MAAM,QAAQ,OAAO;AAAA,MAClC,OAAO,SAAS;AAAA,MAChB,UAAU;AAAA;AAAA,MACV,WAAW;AAAA;AAAA,MACX,UAAU;AAAA,IAAA,CACX;AAKD,WAAO;AAAA,EACT;AAGA,QAAM,UAAU,YAAY;AAC1B,UAAM,QAAQ,QAAA;AAGd,QAAI,OAAO,cAAc;AACvB,YAAM,WAAW,OAAO,YAAY;AAAA,IACtC;AAAA,EACF;AAEA,SAAO;AAAA;AAAA,IAEL,GAAG;AAAA;AAAA,IAGH;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAGO,MAAM,cAAc,MAA0C;AACnE,QAAM,EAAE,KAAA,IAAS,eAAA;AACjB,SAAO,EAAE,KAAA;AACX;AAEO,MAAM,eAAe,MAAkF;AAC5G,QAAM,EAAE,iBAAiB,UAAA,IAAc,eAAA;AACvC,SAAO,EAAE,iBAAiB,UAAA;AAC5B;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../../../../apps/accounts-ui/src/nuxt/runtime/middleware/auth.ts"],"names":[],"mappings":";AAEA;;;GAGG;;AACH,wBA0BE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.global.cjs.js","sources":["../../../../../../apps/accounts-ui/src/nuxt/runtime/middleware/auth.global.ts"],"sourcesContent":["import { defineNuxtRouteMiddleware, navigateTo, useRuntimeConfig } from 'nuxt/app'\nimport type { StrandsAuthConfig } from '../../../types'\n\nexport default defineNuxtRouteMiddleware((to) => {\n const config = useRuntimeConfig().public['strandsAuth'] as StrandsAuthConfig\n\n // Skip middleware during SSR/build\n if (process.server) return\n\n // Import composable dynamically on client side\n return new Promise<void>((resolve) => {\n import('../composables/useStrandsAuth').then(({ useStrandsAuth }) => {\n const { isAuthenticated, isLoading } = useStrandsAuth()\n\n // Wait for auth initialization\n const checkAuth = () => {\n if (isLoading.value) {\n setTimeout(checkAuth, 50)\n return\n }\n\n const currentPath = to.path\n\n // Check if current route should be protected\n const isProtectedRoute = config.protectedRoutes?.some((route: string) => {\n if (route.endsWith('*')) {\n return currentPath.startsWith(route.slice(0, -1))\n }\n return currentPath === route || currentPath.startsWith(route + '/')\n })\n\n // Check if current route is guest-only\n const isGuestOnlyRoute = config.guestOnlyRoutes?.some((route: string) => {\n if (route.endsWith('*')) {\n return currentPath.startsWith(route.slice(0, -1))\n }\n return currentPath === route || currentPath.startsWith(route + '/')\n })\n\n // Redirect unauthenticated users from protected routes\n if (isProtectedRoute && !isAuthenticated.value) {\n console.log('[Strands Auth] Protected route accessed without authentication, redirecting to auth')\n return navigateTo('/auth?redirect=' + encodeURIComponent(currentPath))\n }\n\n // Redirect authenticated users from guest-only routes\n if (isGuestOnlyRoute && isAuthenticated.value) {\n console.log('[Strands Auth] Guest-only route accessed while authenticated, redirecting')\n return navigateTo(config.onSignInUrl || '/dashboard')\n }\n\n resolve()\n }\n\n checkAuth()\n })\n })\n})"],"names":["auth_global","defineNuxtRouteMiddleware","to","config","useRuntimeConfig","public","process","server","Promise","resolve","then","require","useStrandsAuth","isAuthenticated","isLoading","checkAuth","value","setTimeout","currentPath","path","isProtectedRoute","protectedRoutes","some","route","endsWith","startsWith","slice","isGuestOnlyRoute","guestOnlyRoutes","navigateTo","encodeURIComponent","onSignInUrl"],"mappings":"yCAGAA,EAAeC,EAAAA,0BAA2BC,IACxC,MAAMC,EAASC,EAAAA,mBAAmBC,OAAoB,YAGtD,IAAIC,QAAQC,OAGZ,OAAO,IAAIC,QAAeC,IACxBD,QAAAC,UAAAC,KAAA,IAAAC,QAAO,yCAAiCD,KAAK,EAAGE,qBAC9C,MAAMC,gBAAEA,EAAAC,UAAiBA,GAAcF,IAGjCG,EAAY,KAChB,GAAID,EAAUE,MAEZ,YADAC,WAAWF,EAAW,IAIxB,MAAMG,EAAchB,EAAGiB,KAGjBC,EAAmBjB,EAAOkB,iBAAiBC,KAAMC,GACjDA,EAAMC,SAAS,KACVN,EAAYO,WAAWF,EAAMG,MAAM,OAErCR,IAAgBK,GAASL,EAAYO,WAAWF,EAAQ,MAI3DI,EAAmBxB,EAAOyB,iBAAiBN,KAAMC,GACjDA,EAAMC,SAAS,KACVN,EAAYO,WAAWF,EAAMG,MAAM,OAErCR,IAAgBK,GAASL,EAAYO,WAAWF,EAAQ,MAIjE,OAAIH,IAAqBP,EAAgBG,MAEhCa,aAAW,kBAAoBC,mBAAmBZ,IAIvDS,GAAoBd,EAAgBG,MAE/Ba,aAAW1B,EAAO4B,aAAe,mBAG1CtB,KAGFM"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.global.d.ts","sourceRoot":"","sources":["../../../../../../apps/accounts-ui/src/nuxt/runtime/middleware/auth.global.ts"],"names":[],"mappings":";;AAGA,wBAsDE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.global.es.js","sources":["../../../../../../apps/accounts-ui/src/nuxt/runtime/middleware/auth.global.ts"],"sourcesContent":["import { defineNuxtRouteMiddleware, navigateTo, useRuntimeConfig } from 'nuxt/app'\nimport type { StrandsAuthConfig } from '../../../types'\n\nexport default defineNuxtRouteMiddleware((to) => {\n const config = useRuntimeConfig().public['strandsAuth'] as StrandsAuthConfig\n\n // Skip middleware during SSR/build\n if (process.server) return\n\n // Import composable dynamically on client side\n return new Promise<void>((resolve) => {\n import('../composables/useStrandsAuth').then(({ useStrandsAuth }) => {\n const { isAuthenticated, isLoading } = useStrandsAuth()\n\n // Wait for auth initialization\n const checkAuth = () => {\n if (isLoading.value) {\n setTimeout(checkAuth, 50)\n return\n }\n\n const currentPath = to.path\n\n // Check if current route should be protected\n const isProtectedRoute = config.protectedRoutes?.some((route: string) => {\n if (route.endsWith('*')) {\n return currentPath.startsWith(route.slice(0, -1))\n }\n return currentPath === route || currentPath.startsWith(route + '/')\n })\n\n // Check if current route is guest-only\n const isGuestOnlyRoute = config.guestOnlyRoutes?.some((route: string) => {\n if (route.endsWith('*')) {\n return currentPath.startsWith(route.slice(0, -1))\n }\n return currentPath === route || currentPath.startsWith(route + '/')\n })\n\n // Redirect unauthenticated users from protected routes\n if (isProtectedRoute && !isAuthenticated.value) {\n console.log('[Strands Auth] Protected route accessed without authentication, redirecting to auth')\n return navigateTo('/auth?redirect=' + encodeURIComponent(currentPath))\n }\n\n // Redirect authenticated users from guest-only routes\n if (isGuestOnlyRoute && isAuthenticated.value) {\n console.log('[Strands Auth] Guest-only route accessed while authenticated, redirecting')\n return navigateTo(config.onSignInUrl || '/dashboard')\n }\n\n resolve()\n }\n\n checkAuth()\n })\n })\n})"],"names":[],"mappings":";AAGA,MAAA,cAAe,0BAA0B,CAAC,OAAO;AAC/C,QAAM,SAAS,mBAAmB,OAAO,aAAa;AAGtD,MAAI,QAAQ,OAAQ;AAGpB,SAAO,IAAI,QAAc,CAAC,YAAY;AACpC,WAAO,qCAA+B,EAAE,KAAK,CAAC,EAAE,qBAAqB;AACnE,YAAM,EAAE,iBAAiB,UAAA,IAAc,eAAA;AAGvC,YAAM,YAAY,MAAM;AACtB,YAAI,UAAU,OAAO;AACnB,qBAAW,WAAW,EAAE;AACxB;AAAA,QACF;AAEA,cAAM,cAAc,GAAG;AAGvB,cAAM,mBAAmB,OAAO,iBAAiB,KAAK,CAAC,UAAkB;AACvE,cAAI,MAAM,SAAS,GAAG,GAAG;AACvB,mBAAO,YAAY,WAAW,MAAM,MAAM,GAAG,EAAE,CAAC;AAAA,UAClD;AACA,iBAAO,gBAAgB,SAAS,YAAY,WAAW,QAAQ,GAAG;AAAA,QACpE,CAAC;AAGD,cAAM,mBAAmB,OAAO,iBAAiB,KAAK,CAAC,UAAkB;AACvE,cAAI,MAAM,SAAS,GAAG,GAAG;AACvB,mBAAO,YAAY,WAAW,MAAM,MAAM,GAAG,EAAE,CAAC;AAAA,UAClD;AACA,iBAAO,gBAAgB,SAAS,YAAY,WAAW,QAAQ,GAAG;AAAA,QACpE,CAAC;AAGD,YAAI,oBAAoB,CAAC,gBAAgB,OAAO;AAC9C,kBAAQ,IAAI,qFAAqF;AACjG,iBAAO,WAAW,oBAAoB,mBAAmB,WAAW,CAAC;AAAA,QACvE;AAGA,YAAI,oBAAoB,gBAAgB,OAAO;AAC7C,kBAAQ,IAAI,2EAA2E;AACvF,iBAAO,WAAW,OAAO,eAAe,YAAY;AAAA,QACtD;AAEA,gBAAA;AAAA,MACF;AAEA,gBAAA;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH,CAAC;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"guest.d.ts","sourceRoot":"","sources":["../../../../../../apps/accounts-ui/src/nuxt/runtime/middleware/guest.ts"],"names":[],"mappings":";AAGA;;;GAGG;;AACH,wBA4BE"}