@unidy.io/sdk 1.1.4 → 1.1.6

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 (210) hide show
  1. package/dist/cjs/{auth-NU3DBc-6.js → auth-B83pzi0f.js} +126 -125
  2. package/dist/cjs/auth-B83pzi0f.js.map +1 -0
  3. package/dist/cjs/{auth-store-BaxuIp4z.js → auth-store-DPHWWmXf.js} +2 -4
  4. package/dist/cjs/auth-store-DPHWWmXf.js.map +1 -0
  5. package/dist/cjs/index.cjs.js +2 -2
  6. package/dist/cjs/{newsletter-helpers-DR0vsegt.js → newsletter-helpers-D-V_8kiN.js} +3 -3
  7. package/dist/cjs/{newsletter-helpers-DR0vsegt.js.map → newsletter-helpers-D-V_8kiN.js.map} +1 -1
  8. package/dist/cjs/u-conditional-render.cjs.entry.js +3 -3
  9. package/dist/cjs/u-config.cjs.entry.js +7 -7
  10. package/dist/cjs/u-config.entry.cjs.js.map +1 -1
  11. package/dist/cjs/u-email-field.cjs.entry.js +1 -1
  12. package/dist/cjs/u-error-message.cjs.entry.js +1 -1
  13. package/dist/cjs/u-logout-button.cjs.entry.js +4 -4
  14. package/dist/cjs/u-magic-code-field.cjs.entry.js +3 -3
  15. package/dist/cjs/u-missing-field.cjs.entry.js +1 -1
  16. package/dist/cjs/u-missing-fields-submit-button.cjs.entry.js +1 -1
  17. package/dist/cjs/u-newsletter-checkbox.cjs.entry.js +3 -3
  18. package/dist/cjs/u-newsletter-logout-button.cjs.entry.js +3 -3
  19. package/dist/cjs/u-newsletter-preference-checkbox.cjs.entry.js +3 -3
  20. package/dist/cjs/u-newsletter-resend-doi-button.cjs.entry.js +3 -3
  21. package/dist/cjs/u-newsletter-root.cjs.entry.js +5 -5
  22. package/dist/cjs/u-newsletter-toggle-subscription-button.cjs.entry.js +3 -3
  23. package/dist/cjs/u-passkey.cjs.entry.js +3 -3
  24. package/dist/cjs/u-password-field.cjs.entry.js +1 -1
  25. package/dist/cjs/u-password-field.entry.cjs.js.map +1 -1
  26. package/dist/cjs/u-profile.u-submit-button.entry.cjs.js.map +1 -1
  27. package/dist/cjs/u-profile_2.cjs.entry.js +3 -3
  28. package/dist/cjs/u-registration-button.cjs.entry.js +1 -1
  29. package/dist/cjs/u-reset-password-button.cjs.entry.js +3 -3
  30. package/dist/cjs/u-send-magic-code-button.cjs.entry.js +3 -3
  31. package/dist/cjs/u-signed-in.cjs.entry.js +1 -1
  32. package/dist/cjs/u-signin-root.cjs.entry.js +1 -1
  33. package/dist/cjs/u-signin-step.cjs.entry.js +3 -3
  34. package/dist/cjs/u-signin-strategy.cjs.entry.js +1 -1
  35. package/dist/cjs/u-social-login-button.cjs.entry.js +1 -1
  36. package/dist/cjs/u-spinner.cjs.entry.js +1 -1
  37. package/dist/cjs/u-spinner.entry.cjs.js.map +1 -1
  38. package/dist/collection/auth/auth-helpers.js +115 -117
  39. package/dist/collection/auth/auth-helpers.js.map +1 -1
  40. package/dist/collection/auth/auth.js +9 -6
  41. package/dist/collection/auth/auth.js.map +1 -1
  42. package/dist/collection/auth/components/password-field/password-field.js.map +1 -1
  43. package/dist/collection/auth/store/auth-store.js +0 -2
  44. package/dist/collection/auth/store/auth-store.js.map +1 -1
  45. package/dist/collection/shared/components/config/config.js +6 -6
  46. package/dist/collection/shared/components/config/config.js.map +1 -1
  47. package/dist/collection/shared/components/spinner/spinner.css +1 -1
  48. package/dist/collection/shared/components/submit-button/submit-button.css +1 -1
  49. package/dist/components/auth-store.js +0 -2
  50. package/dist/components/auth-store.js.map +1 -1
  51. package/dist/components/auth.js +124 -123
  52. package/dist/components/auth.js.map +1 -1
  53. package/dist/components/spinner.js +1 -1
  54. package/dist/components/spinner.js.map +1 -1
  55. package/dist/components/submit-button.js +1 -1
  56. package/dist/components/submit-button.js.map +1 -1
  57. package/dist/components/u-config.js +6 -6
  58. package/dist/components/u-config.js.map +1 -1
  59. package/dist/components/u-password-field.js.map +1 -1
  60. package/dist/esm/{auth-nsjRdpvS.js → auth-B0RIcDM-.js} +126 -125
  61. package/dist/esm/auth-B0RIcDM-.js.map +1 -0
  62. package/dist/esm/{auth-store-CVvBlKGv.js → auth-store-BGMYm_jK.js} +2 -4
  63. package/dist/esm/auth-store-BGMYm_jK.js.map +1 -0
  64. package/dist/esm/index.js +2 -2
  65. package/dist/esm/{newsletter-helpers-Dc_24im3.js → newsletter-helpers-CONtbKYi.js} +3 -3
  66. package/dist/esm/{newsletter-helpers-Dc_24im3.js.map → newsletter-helpers-CONtbKYi.js.map} +1 -1
  67. package/dist/esm/u-conditional-render.entry.js +3 -3
  68. package/dist/esm/u-config.entry.js +7 -7
  69. package/dist/esm/u-config.entry.js.map +1 -1
  70. package/dist/esm/u-email-field.entry.js +1 -1
  71. package/dist/esm/u-error-message.entry.js +1 -1
  72. package/dist/esm/u-logout-button.entry.js +4 -4
  73. package/dist/esm/u-magic-code-field.entry.js +3 -3
  74. package/dist/esm/u-missing-field.entry.js +1 -1
  75. package/dist/esm/u-missing-fields-submit-button.entry.js +1 -1
  76. package/dist/esm/u-newsletter-checkbox.entry.js +3 -3
  77. package/dist/esm/u-newsletter-logout-button.entry.js +3 -3
  78. package/dist/esm/u-newsletter-preference-checkbox.entry.js +3 -3
  79. package/dist/esm/u-newsletter-resend-doi-button.entry.js +3 -3
  80. package/dist/esm/u-newsletter-root.entry.js +5 -5
  81. package/dist/esm/u-newsletter-toggle-subscription-button.entry.js +3 -3
  82. package/dist/esm/u-passkey.entry.js +3 -3
  83. package/dist/esm/u-password-field.entry.js +1 -1
  84. package/dist/esm/u-password-field.entry.js.map +1 -1
  85. package/dist/esm/u-profile.u-submit-button.entry.js.map +1 -1
  86. package/dist/esm/u-profile_2.entry.js +3 -3
  87. package/dist/esm/u-registration-button.entry.js +1 -1
  88. package/dist/esm/u-reset-password-button.entry.js +3 -3
  89. package/dist/esm/u-send-magic-code-button.entry.js +3 -3
  90. package/dist/esm/u-signed-in.entry.js +1 -1
  91. package/dist/esm/u-signin-root.entry.js +1 -1
  92. package/dist/esm/u-signin-step.entry.js +3 -3
  93. package/dist/esm/u-signin-strategy.entry.js +1 -1
  94. package/dist/esm/u-social-login-button.entry.js +1 -1
  95. package/dist/esm/u-spinner.entry.js +1 -1
  96. package/dist/esm/u-spinner.entry.js.map +1 -1
  97. package/dist/sdk/auth-BopPjv7G.js.map +1 -0
  98. package/dist/sdk/auth-C0vldOq6.js.map +1 -0
  99. package/dist/sdk/auth-store-DQaam_Qh.js.map +1 -0
  100. package/dist/sdk/auth-store-sOmplc4z.js.map +1 -0
  101. package/dist/sdk/component-utils-D1lzXl_Z.js.map +1 -0
  102. package/dist/sdk/flash-store-Cgu7WoSN.js.map +1 -0
  103. package/dist/sdk/flash-store-DNcSEn2p.js.map +1 -0
  104. package/dist/sdk/helpers-BqFCd65h.js.map +1 -0
  105. package/dist/sdk/helpers-DUHc_Cx7.js.map +1 -0
  106. package/dist/sdk/i18n-B6rRU-m3.js.map +1 -0
  107. package/dist/sdk/i18n-CZii1E-s.js.map +1 -0
  108. package/dist/sdk/index-B1aDcaWd.js.map +1 -0
  109. package/dist/sdk/index-BnBstyfp.js.map +1 -0
  110. package/dist/sdk/index-BqL27K_R.js.map +1 -0
  111. package/dist/sdk/index-C5jZjlU8.js.map +1 -0
  112. package/dist/sdk/index-Df-7P3r0.js.map +1 -0
  113. package/dist/sdk/index-Eu7hg2ii.js.map +1 -0
  114. package/dist/sdk/index-Iulyfmzq.js.map +1 -0
  115. package/dist/sdk/index-O6h7SI7-.js.map +1 -0
  116. package/dist/sdk/index.esm.js +1 -1
  117. package/dist/sdk/newsletter-helpers-8ByV38YW.js.map +1 -0
  118. package/dist/sdk/newsletter-helpers-B-Md6T9k.js.map +1 -0
  119. package/dist/sdk/newsletter-store-CqD-GcDC.js.map +1 -0
  120. package/dist/sdk/newsletter-store-CvULKmsu.js.map +1 -0
  121. package/dist/sdk/{p-c6816542.entry.js → p-08ff2de2.entry.js} +2 -2
  122. package/dist/sdk/{p-39b61f33.entry.js → p-1ea49938.entry.js} +2 -2
  123. package/dist/sdk/{p-bfb04b17.entry.js → p-2a65bcbb.entry.js} +2 -2
  124. package/dist/sdk/{p-80034205.entry.js → p-2af8b45f.entry.js} +2 -2
  125. package/dist/sdk/{p-0d324822.entry.js → p-3411c743.entry.js} +2 -2
  126. package/dist/sdk/{p-4ec3302d.entry.js → p-467c7304.entry.js} +2 -2
  127. package/dist/sdk/{p-e54d5d38.entry.js → p-56abb377.entry.js} +2 -2
  128. package/dist/sdk/p-5703102b.entry.js +2 -0
  129. package/dist/sdk/{p-319c5d3b.entry.js → p-593c6dde.entry.js} +2 -2
  130. package/dist/sdk/{p-a4f5940f.entry.js → p-5b627aea.entry.js} +2 -2
  131. package/dist/sdk/{p-9e71a36c.entry.js → p-5cc20a8b.entry.js} +2 -2
  132. package/dist/sdk/p-628ccd68.entry.js +2 -0
  133. package/dist/sdk/{p-66587fdd.entry.js → p-675eb13d.entry.js} +2 -2
  134. package/dist/sdk/{p-312b919e.entry.js → p-6a642433.entry.js} +2 -2
  135. package/dist/sdk/p-7a0cefff.entry.js +2 -0
  136. package/dist/sdk/{p-e81bbd62.entry.js.map → p-7a0cefff.entry.js.map} +1 -1
  137. package/dist/sdk/{p-e2e7061b.entry.js → p-91bb8b59.entry.js} +2 -2
  138. package/dist/sdk/{p-90e2253e.entry.js → p-9f59909b.entry.js} +2 -2
  139. package/dist/sdk/p-BlAULXyw.js +2 -0
  140. package/dist/sdk/p-BlAULXyw.js.map +1 -0
  141. package/dist/sdk/p-C3fhudPT.js +2 -0
  142. package/dist/sdk/p-C3fhudPT.js.map +1 -0
  143. package/dist/sdk/{p-BiILQPdb.js → p-S3-2d2Qd.js} +2 -2
  144. package/dist/sdk/{p-BiILQPdb.js.map → p-S3-2d2Qd.js.map} +1 -1
  145. package/dist/sdk/{p-568eabbc.entry.js → p-a4b7ffd8.entry.js} +2 -2
  146. package/dist/sdk/{p-0fb37ee9.entry.js → p-a5db968f.entry.js} +2 -2
  147. package/dist/sdk/{p-0ab98e7a.entry.js → p-a6393d19.entry.js} +2 -2
  148. package/dist/sdk/{p-2cb6a2d0.entry.js → p-c31dbbb4.entry.js} +2 -2
  149. package/dist/sdk/{p-f232929b.entry.js → p-c5bffd90.entry.js} +2 -2
  150. package/dist/sdk/{p-f961fbea.entry.js → p-e3611b71.entry.js} +2 -2
  151. package/dist/sdk/{p-f961fbea.entry.js.map → p-e3611b71.entry.js.map} +1 -1
  152. package/dist/sdk/p-f0598e42.entry.js +2 -0
  153. package/dist/sdk/{p-34b98f55.entry.js.map → p-f0598e42.entry.js.map} +1 -1
  154. package/dist/sdk/{p-a69b83ec.entry.js → p-f369a996.entry.js} +2 -2
  155. package/dist/sdk/{p-3049e73f.entry.js → p-ffac964c.entry.js} +2 -2
  156. package/dist/sdk/profile-helpers-BDjk573F.js.map +1 -0
  157. package/dist/sdk/profile-helpers-b8Koj20a.js.map +1 -0
  158. package/dist/sdk/profile-store-BZKApsQm.js.map +1 -0
  159. package/dist/sdk/profile-store-DD6sq42i.js.map +1 -0
  160. package/dist/sdk/sdk.esm.js +1 -1
  161. package/dist/sdk/u-config.entry.esm.js.map +1 -1
  162. package/dist/sdk/u-password-field.entry.esm.js.map +1 -1
  163. package/dist/sdk/u-password-field.entry.js +104 -0
  164. package/dist/sdk/u-profile.u-submit-button.entry.esm.js.map +1 -1
  165. package/dist/sdk/u-reset-password-button.entry.esm.js.map +1 -1
  166. package/dist/sdk/u-reset-password-button.entry.js +54 -0
  167. package/dist/sdk/u-spinner.entry.esm.js.map +1 -1
  168. package/dist/sdk/unidy-store-BwZym11Y.js.map +1 -0
  169. package/dist/sdk/unidy-store-CtifvCkV.js.map +1 -0
  170. package/dist/types/auth/auth-helpers.d.ts +5 -7
  171. package/dist/types/auth/auth.d.ts +1 -1
  172. package/dist/types/auth/components/reset-pass-button/reset-pass-button.d.ts +1 -0
  173. package/dist/types/auth/store/auth-store.d.ts +3 -3
  174. package/dist/types/shared/components/config/config.d.ts +1 -1
  175. package/package.json +1 -1
  176. package/dist/cjs/auth-NU3DBc-6.js.map +0 -1
  177. package/dist/cjs/auth-store-BaxuIp4z.js.map +0 -1
  178. package/dist/esm/auth-nsjRdpvS.js.map +0 -1
  179. package/dist/esm/auth-store-CVvBlKGv.js.map +0 -1
  180. package/dist/sdk/p-34b98f55.entry.js +0 -2
  181. package/dist/sdk/p-5b40a68b.entry.js +0 -2
  182. package/dist/sdk/p-88d93d64.entry.js +0 -2
  183. package/dist/sdk/p-PKvQIsOt.js +0 -2
  184. package/dist/sdk/p-PKvQIsOt.js.map +0 -1
  185. package/dist/sdk/p-aMrLKr2m.js +0 -2
  186. package/dist/sdk/p-aMrLKr2m.js.map +0 -1
  187. package/dist/sdk/p-e81bbd62.entry.js +0 -2
  188. /package/dist/sdk/{p-c6816542.entry.js.map → p-08ff2de2.entry.js.map} +0 -0
  189. /package/dist/sdk/{p-39b61f33.entry.js.map → p-1ea49938.entry.js.map} +0 -0
  190. /package/dist/sdk/{p-bfb04b17.entry.js.map → p-2a65bcbb.entry.js.map} +0 -0
  191. /package/dist/sdk/{p-80034205.entry.js.map → p-2af8b45f.entry.js.map} +0 -0
  192. /package/dist/sdk/{p-0d324822.entry.js.map → p-3411c743.entry.js.map} +0 -0
  193. /package/dist/sdk/{p-4ec3302d.entry.js.map → p-467c7304.entry.js.map} +0 -0
  194. /package/dist/sdk/{p-e54d5d38.entry.js.map → p-56abb377.entry.js.map} +0 -0
  195. /package/dist/sdk/{p-5b40a68b.entry.js.map → p-5703102b.entry.js.map} +0 -0
  196. /package/dist/sdk/{p-319c5d3b.entry.js.map → p-593c6dde.entry.js.map} +0 -0
  197. /package/dist/sdk/{p-a4f5940f.entry.js.map → p-5b627aea.entry.js.map} +0 -0
  198. /package/dist/sdk/{p-9e71a36c.entry.js.map → p-5cc20a8b.entry.js.map} +0 -0
  199. /package/dist/sdk/{p-88d93d64.entry.js.map → p-628ccd68.entry.js.map} +0 -0
  200. /package/dist/sdk/{p-66587fdd.entry.js.map → p-675eb13d.entry.js.map} +0 -0
  201. /package/dist/sdk/{p-312b919e.entry.js.map → p-6a642433.entry.js.map} +0 -0
  202. /package/dist/sdk/{p-e2e7061b.entry.js.map → p-91bb8b59.entry.js.map} +0 -0
  203. /package/dist/sdk/{p-90e2253e.entry.js.map → p-9f59909b.entry.js.map} +0 -0
  204. /package/dist/sdk/{p-568eabbc.entry.js.map → p-a4b7ffd8.entry.js.map} +0 -0
  205. /package/dist/sdk/{p-0fb37ee9.entry.js.map → p-a5db968f.entry.js.map} +0 -0
  206. /package/dist/sdk/{p-0ab98e7a.entry.js.map → p-a6393d19.entry.js.map} +0 -0
  207. /package/dist/sdk/{p-2cb6a2d0.entry.js.map → p-c31dbbb4.entry.js.map} +0 -0
  208. /package/dist/sdk/{p-f232929b.entry.js.map → p-c5bffd90.entry.js.map} +0 -0
  209. /package/dist/sdk/{p-a69b83ec.entry.js.map → p-f369a996.entry.js.map} +0 -0
  210. /package/dist/sdk/{p-3049e73f.entry.js.map → p-ffac964c.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"file":"submit-button.js","mappings":"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","names":["authState","profileState","__stencil_proxyCustomElement"],"sources":["src/auth/components/submit-button/auth-submit-button.ts","src/newsletter/components/submit-button/newsletter-submit-button.ts","src/profile/components/submit-button/profile-submit-button.ts","src/shared/components/submit-button/context.ts","src/shared/components/submit-button/submit-button.css?tag=u-submit-button","src/shared/components/submit-button/submit-button.tsx"],"sourcesContent":["import { t } from \"../../../i18n\";\nimport type { SubmitButtonContext } from \"../../../shared/components/submit-button/context\";\nimport { authState } from \"../../store/auth-store\";\nimport { getParentSigninStep } from \"../helpers\";\n\nexport type AuthButtonFor = \"email\" | \"password\" | \"resetPassword\";\n\nexport const authContext: SubmitButtonContext<AuthButtonFor> = {\n handleClick: async (event: MouseEvent, el: HTMLElement, _forProp?: AuthButtonFor) => {\n event.preventDefault();\n await getParentSigninStep(el)?.submit();\n },\n\n isDisabled(forProp?: AuthButtonFor, disabled?: boolean): boolean {\n if (disabled || authState.loading) return true;\n\n if (authState.step === \"email\" && forProp === \"email\") {\n return authState.email === \"\";\n }\n\n if (authState.step === \"verification\" && forProp === \"password\") {\n return authState.password === \"\";\n }\n\n if (authState.step === \"reset-password\" && forProp === \"resetPassword\") {\n return !authState.resetPassword.newPassword || !authState.resetPassword.passwordConfirmation;\n }\n\n return false;\n },\n\n isLoading(): boolean {\n return authState.loading;\n },\n\n getButtonText(forProp?: AuthButtonFor, text?: string): string {\n if (text) return text;\n\n switch (authState.step) {\n case \"email\":\n return t(\"buttons.continue\");\n case \"verification\":\n if (forProp === \"password\") {\n return t(\"auth.password.button_text\", { defaultValue: \"Sign In with Password\" });\n }\n return t(\"buttons.submit\");\n case \"reset-password\":\n if (forProp === \"resetPassword\") {\n return t(\"auth.resetPassword.button_text_set\", { defaultValue: \"Set Password\" });\n }\n return t(\"buttons.submit\");\n default:\n return t(\"buttons.submit\");\n }\n },\n\n shouldRender(forProp?: AuthButtonFor): boolean {\n if (!authState.availableLoginOptions?.password && forProp === \"password\") {\n return false;\n }\n\n if (authState.step === \"email\") {\n return forProp === \"email\";\n }\n\n if (authState.step === \"verification\") {\n return forProp === \"password\" && authState.magicCodeStep !== \"sent\";\n }\n\n if (authState.step === \"reset-password\") {\n return forProp === \"resetPassword\";\n }\n\n return false;\n },\n};\n","import type { SubmitButtonContext } from \"../../../shared/components/submit-button/context\";\nimport { newsletterStore } from \"../../store/newsletter-store\";\nimport { getParentNewsletterRoot } from \"../helpers\";\n\nexport type NewsletterButtonFor = \"login\" | \"create\";\n\nexport const newsletterContext: SubmitButtonContext<NewsletterButtonFor> = {\n handleClick: async (event: MouseEvent, el: HTMLElement, forProp?: NewsletterButtonFor) => {\n event.preventDefault();\n return await getParentNewsletterRoot(el)?.submit(forProp);\n },\n\n isDisabled(forProp, disabled?: boolean): boolean {\n if (forProp === \"login\") {\n return disabled || !newsletterStore.state.email;\n }\n\n return disabled || !newsletterStore.state.email || Object.keys(newsletterStore.state.checkedNewsletters).length === 0;\n },\n\n isLoading(): boolean {\n return false;\n },\n};\n","import type { SubmitButtonContext } from \"../../../shared/components/submit-button/context\";\nimport { state as profileState } from \"../../store/profile-store\";\n\nfunction getParentProfile(el: HTMLElement) {\n return el.closest(\"u-profile\") as HTMLUProfileElement | null;\n}\n\nexport const profileContext: SubmitButtonContext = {\n async handleClick(event: MouseEvent, el: HTMLElement, _forProp?: string) {\n event.preventDefault();\n await getParentProfile(el)?.submitProfile();\n },\n\n isDisabled(_forProp, disabled?: boolean): boolean {\n return disabled || (profileState.errors && Object.keys(profileState.errors).length > 0) || profileState.phoneValid === false;\n },\n\n isLoading(): boolean {\n return profileState.loading;\n },\n};\n","export interface SubmitButtonContext<ForContext = string> {\n init?(): Promise<void>;\n handleClick(event: MouseEvent, el: HTMLElement, forProp?: ForContext): Promise<void>;\n isDisabled(forProp?: ForContext, disabled?: boolean): boolean;\n isLoading(): boolean;\n getButtonText?(forProp?: ForContext, text?: string): string;\n shouldRender?(forProp?: ForContext): boolean;\n}\n\nexport const defaultContext: SubmitButtonContext = {\n async handleClick() {},\n\n isDisabled(_forProp, disabled = false): boolean {\n return disabled || false;\n },\n\n isLoading(): boolean {\n return false;\n },\n};\n","","import { Component, Element, h, Prop } from \"@stencil/core\";\nimport { type AuthButtonFor, authContext } from \"../../../auth/components/submit-button/auth-submit-button\";\nimport { t } from \"../../../i18n\";\nimport { type NewsletterButtonFor, newsletterContext } from \"../../../newsletter/components/submit-button/newsletter-submit-button\";\nimport { profileContext } from \"../../../profile/components/submit-button/profile-submit-button\";\nimport { hasSlotContent } from \"../../component-utils\";\nimport { defaultContext, type SubmitButtonContext } from \"./context\";\n\n@Component({\n tag: \"u-submit-button\",\n styleUrl: \"submit-button.css\",\n shadow: false,\n})\nexport class SubmitButton {\n @Element() el!: HTMLElement;\n @Prop() for?: AuthButtonFor | NewsletterButtonFor;\n @Prop() text?: string;\n @Prop() disabled = false;\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n\n private context: \"auth\" | \"profile\" | \"newsletter\" = \"auth\";\n private contextModule: SubmitButtonContext = defaultContext;\n private hasSlot = false;\n\n async componentWillLoad() {\n this.hasSlot = hasSlotContent(this.el);\n this.context = this.detectContext();\n\n switch (this.context) {\n case \"auth\":\n this.contextModule = authContext;\n break;\n case \"profile\":\n this.contextModule = profileContext;\n break;\n case \"newsletter\":\n this.contextModule = newsletterContext;\n break;\n default:\n this.contextModule = defaultContext;\n }\n }\n\n private detectContext(): \"auth\" | \"profile\" | \"newsletter\" {\n if (this.el.closest(\"u-signin-root\") || this.el.closest(\"u-signin-step\")) return \"auth\";\n\n if (this.el.closest(\"u-profile\")) return \"profile\";\n\n if (this.el.closest(\"u-newsletter-root\")) return \"newsletter\";\n\n throw new Error(\n \"No context found for submit button. Make sure you are using the component within a u-signin-root, u-profile, or u-newsletter-root.\",\n );\n }\n\n private handleClick = async (event: MouseEvent) => {\n await this.contextModule.handleClick(event, this.el, this.for);\n };\n\n private isDisabled(): boolean {\n return this.contextModule.isDisabled(this.for, this.disabled);\n }\n\n private isLoading(): boolean {\n return this.contextModule.isLoading();\n }\n\n private getButtonText(): string {\n if (this.contextModule.getButtonText) {\n return this.contextModule.getButtonText(this.for, this.text);\n }\n if (this.text) {\n return this.text;\n }\n\n return t(\"buttons.submit\");\n }\n\n private getButtonContent() {\n const loading = this.isLoading();\n\n if (loading) {\n return <u-spinner />;\n }\n\n if (this.hasSlot) {\n return <slot />;\n }\n\n return this.getButtonText();\n }\n\n render() {\n if (this.contextModule.shouldRender && !this.contextModule.shouldRender(this.for)) {\n return null;\n }\n\n const buttonClasses = [\n this.componentClassName,\n this.context === \"auth\" ? \"u:flex u:justify-center\" : \"\",\n \"u:disabled:opacity-50 u:disabled:cursor-not-allowed\",\n ].join(\" \");\n\n const buttonProps: Record<string, unknown> = {\n type: \"submit\",\n part: `${this.context}-submit-button`,\n disabled: this.isDisabled() || this.isLoading(),\n class: buttonClasses,\n onClick: this.handleClick,\n \"aria-live\": \"polite\",\n };\n\n return <button {...buttonProps}>{this.getButtonContent()}</button>;\n }\n}\n"],"version":3}
1
+ {"file":"submit-button.js","mappings":"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","names":["authState","profileState","__stencil_proxyCustomElement"],"sources":["src/auth/components/submit-button/auth-submit-button.ts","src/newsletter/components/submit-button/newsletter-submit-button.ts","src/profile/components/submit-button/profile-submit-button.ts","src/shared/components/submit-button/context.ts","src/shared/components/submit-button/submit-button.css?tag=u-submit-button","src/shared/components/submit-button/submit-button.tsx"],"sourcesContent":["import { t } from \"../../../i18n\";\nimport type { SubmitButtonContext } from \"../../../shared/components/submit-button/context\";\nimport { authState } from \"../../store/auth-store\";\nimport { getParentSigninStep } from \"../helpers\";\n\nexport type AuthButtonFor = \"email\" | \"password\" | \"resetPassword\";\n\nexport const authContext: SubmitButtonContext<AuthButtonFor> = {\n handleClick: async (event: MouseEvent, el: HTMLElement, _forProp?: AuthButtonFor) => {\n event.preventDefault();\n await getParentSigninStep(el)?.submit();\n },\n\n isDisabled(forProp?: AuthButtonFor, disabled?: boolean): boolean {\n if (disabled || authState.loading) return true;\n\n if (authState.step === \"email\" && forProp === \"email\") {\n return authState.email === \"\";\n }\n\n if (authState.step === \"verification\" && forProp === \"password\") {\n return authState.password === \"\";\n }\n\n if (authState.step === \"reset-password\" && forProp === \"resetPassword\") {\n return !authState.resetPassword.newPassword || !authState.resetPassword.passwordConfirmation;\n }\n\n return false;\n },\n\n isLoading(): boolean {\n return authState.loading;\n },\n\n getButtonText(forProp?: AuthButtonFor, text?: string): string {\n if (text) return text;\n\n switch (authState.step) {\n case \"email\":\n return t(\"buttons.continue\");\n case \"verification\":\n if (forProp === \"password\") {\n return t(\"auth.password.button_text\", { defaultValue: \"Sign In with Password\" });\n }\n return t(\"buttons.submit\");\n case \"reset-password\":\n if (forProp === \"resetPassword\") {\n return t(\"auth.resetPassword.button_text_set\", { defaultValue: \"Set Password\" });\n }\n return t(\"buttons.submit\");\n default:\n return t(\"buttons.submit\");\n }\n },\n\n shouldRender(forProp?: AuthButtonFor): boolean {\n if (!authState.availableLoginOptions?.password && forProp === \"password\") {\n return false;\n }\n\n if (authState.step === \"email\") {\n return forProp === \"email\";\n }\n\n if (authState.step === \"verification\") {\n return forProp === \"password\" && authState.magicCodeStep !== \"sent\";\n }\n\n if (authState.step === \"reset-password\") {\n return forProp === \"resetPassword\";\n }\n\n return false;\n },\n};\n","import type { SubmitButtonContext } from \"../../../shared/components/submit-button/context\";\nimport { newsletterStore } from \"../../store/newsletter-store\";\nimport { getParentNewsletterRoot } from \"../helpers\";\n\nexport type NewsletterButtonFor = \"login\" | \"create\";\n\nexport const newsletterContext: SubmitButtonContext<NewsletterButtonFor> = {\n handleClick: async (event: MouseEvent, el: HTMLElement, forProp?: NewsletterButtonFor) => {\n event.preventDefault();\n return await getParentNewsletterRoot(el)?.submit(forProp);\n },\n\n isDisabled(forProp, disabled?: boolean): boolean {\n if (forProp === \"login\") {\n return disabled || !newsletterStore.state.email;\n }\n\n return disabled || !newsletterStore.state.email || Object.keys(newsletterStore.state.checkedNewsletters).length === 0;\n },\n\n isLoading(): boolean {\n return false;\n },\n};\n","import type { SubmitButtonContext } from \"../../../shared/components/submit-button/context\";\nimport { state as profileState } from \"../../store/profile-store\";\n\nfunction getParentProfile(el: HTMLElement) {\n return el.closest(\"u-profile\") as HTMLUProfileElement | null;\n}\n\nexport const profileContext: SubmitButtonContext = {\n async handleClick(event: MouseEvent, el: HTMLElement, _forProp?: string) {\n event.preventDefault();\n await getParentProfile(el)?.submitProfile();\n },\n\n isDisabled(_forProp, disabled?: boolean): boolean {\n return disabled || (profileState.errors && Object.keys(profileState.errors).length > 0) || profileState.phoneValid === false;\n },\n\n isLoading(): boolean {\n return profileState.loading;\n },\n};\n","export interface SubmitButtonContext<ForContext = string> {\n init?(): Promise<void>;\n handleClick(event: MouseEvent, el: HTMLElement, forProp?: ForContext): Promise<void>;\n isDisabled(forProp?: ForContext, disabled?: boolean): boolean;\n isLoading(): boolean;\n getButtonText?(forProp?: ForContext, text?: string): string;\n shouldRender?(forProp?: ForContext): boolean;\n}\n\nexport const defaultContext: SubmitButtonContext = {\n async handleClick() {},\n\n isDisabled(_forProp, disabled = false): boolean {\n return disabled || false;\n },\n\n isLoading(): boolean {\n return false;\n },\n};\n","","import { Component, Element, h, Prop } from \"@stencil/core\";\nimport { type AuthButtonFor, authContext } from \"../../../auth/components/submit-button/auth-submit-button\";\nimport { t } from \"../../../i18n\";\nimport { type NewsletterButtonFor, newsletterContext } from \"../../../newsletter/components/submit-button/newsletter-submit-button\";\nimport { profileContext } from \"../../../profile/components/submit-button/profile-submit-button\";\nimport { hasSlotContent } from \"../../component-utils\";\nimport { defaultContext, type SubmitButtonContext } from \"./context\";\n\n@Component({\n tag: \"u-submit-button\",\n styleUrl: \"submit-button.css\",\n shadow: false,\n})\nexport class SubmitButton {\n @Element() el!: HTMLElement;\n @Prop() for?: AuthButtonFor | NewsletterButtonFor;\n @Prop() text?: string;\n @Prop() disabled = false;\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n\n private context: \"auth\" | \"profile\" | \"newsletter\" = \"auth\";\n private contextModule: SubmitButtonContext = defaultContext;\n private hasSlot = false;\n\n async componentWillLoad() {\n this.hasSlot = hasSlotContent(this.el);\n this.context = this.detectContext();\n\n switch (this.context) {\n case \"auth\":\n this.contextModule = authContext;\n break;\n case \"profile\":\n this.contextModule = profileContext;\n break;\n case \"newsletter\":\n this.contextModule = newsletterContext;\n break;\n default:\n this.contextModule = defaultContext;\n }\n }\n\n private detectContext(): \"auth\" | \"profile\" | \"newsletter\" {\n if (this.el.closest(\"u-signin-root\") || this.el.closest(\"u-signin-step\")) return \"auth\";\n\n if (this.el.closest(\"u-profile\")) return \"profile\";\n\n if (this.el.closest(\"u-newsletter-root\")) return \"newsletter\";\n\n throw new Error(\n \"No context found for submit button. Make sure you are using the component within a u-signin-root, u-profile, or u-newsletter-root.\",\n );\n }\n\n private handleClick = async (event: MouseEvent) => {\n await this.contextModule.handleClick(event, this.el, this.for);\n };\n\n private isDisabled(): boolean {\n return this.contextModule.isDisabled(this.for, this.disabled);\n }\n\n private isLoading(): boolean {\n return this.contextModule.isLoading();\n }\n\n private getButtonText(): string {\n if (this.contextModule.getButtonText) {\n return this.contextModule.getButtonText(this.for, this.text);\n }\n if (this.text) {\n return this.text;\n }\n\n return t(\"buttons.submit\");\n }\n\n private getButtonContent() {\n const loading = this.isLoading();\n\n if (loading) {\n return <u-spinner />;\n }\n\n if (this.hasSlot) {\n return <slot />;\n }\n\n return this.getButtonText();\n }\n\n render() {\n if (this.contextModule.shouldRender && !this.contextModule.shouldRender(this.for)) {\n return null;\n }\n\n const buttonClasses = [\n this.componentClassName,\n this.context === \"auth\" ? \"u:flex u:justify-center\" : \"\",\n \"u:disabled:opacity-50 u:disabled:cursor-not-allowed\",\n ].join(\" \");\n\n const buttonProps: Record<string, unknown> = {\n type: \"submit\",\n part: `${this.context}-submit-button`,\n disabled: this.isDisabled() || this.isLoading(),\n class: buttonClasses,\n onClick: this.handleClick,\n \"aria-live\": \"polite\",\n };\n\n return <button {...buttonProps}>{this.getButtonContent()}</button>;\n }\n}\n"],"version":3}
@@ -1,10 +1,10 @@
1
1
  import { proxyCustomElement, createEvent, h } from '@stencil/core/internal/client';
2
- import { i as instance } from './i18n.js';
3
- import { u as unidyState } from './unidy-store.js';
2
+ import { g as getUnidyClient } from './index2.js';
4
3
  import './auth-store.js';
5
4
  import { A as Auth } from './auth.js';
6
- import { g as getUnidyClient } from './index2.js';
5
+ import { i as instance } from './i18n.js';
7
6
  import { U as UnidyComponent } from './logger.js';
7
+ import { u as unidyState } from './unidy-store.js';
8
8
  import { Y as captureException } from './exports.js';
9
9
 
10
10
  const UnidyConfig = /*@__PURE__*/ proxyCustomElement(class UnidyConfig extends UnidyComponent {
@@ -24,7 +24,7 @@ const UnidyConfig = /*@__PURE__*/ proxyCustomElement(class UnidyConfig extends U
24
24
  locale = "en";
25
25
  unidyInitialized;
26
26
  configChange;
27
- componentWillLoad() {
27
+ async componentWillLoad() {
28
28
  if (!this.baseUrl || !this.apiKey) {
29
29
  this.logger.error("baseUrl and apiKey are required");
30
30
  return;
@@ -42,7 +42,7 @@ const UnidyConfig = /*@__PURE__*/ proxyCustomElement(class UnidyConfig extends U
42
42
  instance.options.fallbackLng = this.fallbackLocale;
43
43
  this.loadCustomTranslations();
44
44
  unidyState.locale = this.locale;
45
- Auth.initialize(getUnidyClient());
45
+ await Auth.initialize(getUnidyClient());
46
46
  }
47
47
  // extend the list of properties that should be watched when new properties are added to the Config
48
48
  onPropChange(newValue, oldValue, propName) {
@@ -58,7 +58,7 @@ const UnidyConfig = /*@__PURE__*/ proxyCustomElement(class UnidyConfig extends U
58
58
  });
59
59
  }
60
60
  render() {
61
- return h("slot", { key: '1105e4e4e3732dfa457352ef7d9b3fdc1095f960' });
61
+ return h("slot", { key: 'c1f855a1b3661d92bffe82bd4d927e832907f272' });
62
62
  }
63
63
  loadCustomTranslations() {
64
64
  if (this.customTranslations) {
@@ -1 +1 @@
1
- {"file":"u-config.js","mappings":";;;;;;;;;MA6Ba,WAAY,iBAAAA,kBAAA,CAAA,MAAA,WAAA,SAAQ,cAAc,CAAA;;;;;;;;;IACrC,IAAI,GAAiC,YAAY;IACjD,OAAO,GAAG,EAAE;IACZ,MAAM,GAAG,EAAE;IACX,kBAAkB,GAA6C,EAAE;IACjE,cAAc,GAAG,IAAI;IACrB,MAAM,GAAG,IAAI;AAEZ,IAAA,gBAAgB;AAChB,IAAA,YAAY;IAErB,iBAAiB,GAAA;QACf,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACjC,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC;YACpD;;AAGF,QAAA,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AAC/B,QAAA,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;AACjC,QAAA,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AAC/B,QAAA,UAAU,CAAC,YAAY,GAAG,IAAI;AAE9B,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;AAChB,SAAA,CAAC;QAEFC,QAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc;QAE9C,IAAI,CAAC,sBAAsB,EAAE;AAC7B,QAAA,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AAE/B,QAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;;;AAMnC,IAAA,YAAY,CAAC,QAAgB,EAAE,QAAgB,EAAE,QAAsB,EAAA;QACrE,IAAI,QAAQ,KAAK,SAAS;YAAE;AAE5B,QAAA,IAAI,QAAQ,IAAI,UAAU,EAAE;AACzB,YAAA,UAA2C,CAAC,QAAQ,CAAC,GAAG,QAAQ;;AAGnE,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AACrB,YAAA,GAAG,EAAE,QAAQ;AACb,YAAA,KAAK,EAAE,QAAQ;AACf,YAAA,aAAa,EAAE,QAAQ;AACxB,SAAA,CAAC;;IAGJ,MAAM,GAAA;QACJ,OAAO,8DAAQ;;IAGT,sBAAsB,GAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,YAAA,IAAI;gBACF,MAAM,YAAY,GAAG,OAAO,IAAI,CAAC,kBAAkB,KAAK,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,kBAAkB;AAEhI,gBAAA,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE;oBAC/B,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE;AACrC,wBAAAA,QAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,aAAa,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;;;;YAG/E,OAAO,KAAK,EAAE;AACd,gBAAAC,gBAAuB,CAAC,oCAAoC,EAAE,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","i18n","Sentry.captureException"],"sources":["src/shared/components/config/config.tsx"],"sourcesContent":["import * as Sentry from \"@sentry/browser\";\nimport { Component, Prop, Watch, Event, type EventEmitter, h } from \"@stencil/core\";\nimport i18n from \"../../../i18n\";\nimport { unidyState } from \"../../store/unidy-store\";\nimport { Auth } from \"../../../auth\";\nimport { getUnidyClient } from \"../../../api/\";\nimport { UnidyComponent } from \"../../../logger\";\n\nexport interface Config {\n apiKey: string;\n baseUrl: string;\n locale: string;\n mode: \"production\" | \"development\";\n}\n\nexport interface ConfigChange {\n key: string;\n value: string;\n previousValue: string;\n}\n\ntype TranslationTree = {\n [key: string]: string | TranslationTree;\n};\n\n@Component({\n tag: \"u-config\",\n shadow: false,\n})\nexport class UnidyConfig extends UnidyComponent {\n @Prop() mode: \"production\" | \"development\" = \"production\";\n @Prop() baseUrl = \"\";\n @Prop() apiKey = \"\";\n @Prop() customTranslations: string | Record<string, TranslationTree> = \"\";\n @Prop() fallbackLocale = \"en\";\n @Prop() locale = \"en\";\n\n @Event() unidyInitialized!: EventEmitter<Config>;\n @Event() configChange!: EventEmitter<ConfigChange>;\n\n componentWillLoad() {\n if (!this.baseUrl || !this.apiKey) {\n this.logger.error(\"baseUrl and apiKey are required\");\n return;\n }\n\n unidyState.apiKey = this.apiKey;\n unidyState.baseUrl = this.baseUrl;\n unidyState.locale = this.locale;\n unidyState.isConfigured = true;\n\n this.unidyInitialized.emit({\n apiKey: this.apiKey,\n baseUrl: this.baseUrl,\n locale: this.locale,\n mode: this.mode,\n });\n\n i18n.options.fallbackLng = this.fallbackLocale;\n\n this.loadCustomTranslations();\n unidyState.locale = this.locale;\n\n Auth.initialize(getUnidyClient());\n }\n\n // extend the list of properties that should be watched when new properties are added to the Config\n @Watch(\"mode\")\n @Watch(\"locale\")\n onPropChange(newValue: string, oldValue: string, propName: keyof Config) {\n if (oldValue === undefined) return;\n\n if (propName in unidyState) {\n (unidyState as Record<keyof Config, string>)[propName] = newValue;\n }\n\n this.configChange.emit({\n key: propName,\n value: newValue,\n previousValue: oldValue,\n });\n }\n\n render() {\n return <slot />;\n }\n\n private loadCustomTranslations() {\n if (this.customTranslations) {\n try {\n const translations = typeof this.customTranslations === \"string\" ? JSON.parse(this.customTranslations) : this.customTranslations;\n\n for (const lang in translations) {\n if (Object.hasOwn(translations, lang)) {\n i18n.addResourceBundle(lang, \"translation\", translations[lang], true, true);\n }\n }\n } catch (error) {\n Sentry.captureException(\"Failed to parse customTranslations\", error);\n }\n }\n }\n}\n"],"version":3}
1
+ {"file":"u-config.js","mappings":";;;;;;;;;MA6Ba,WAAY,iBAAAA,kBAAA,CAAA,MAAA,WAAA,SAAQ,cAAc,CAAA;;;;;;;;;IACrC,IAAI,GAAiC,YAAY;IACjD,OAAO,GAAG,EAAE;IACZ,MAAM,GAAG,EAAE;IACX,kBAAkB,GAA6C,EAAE;IACjE,cAAc,GAAG,IAAI;IACrB,MAAM,GAAG,IAAI;AAEZ,IAAA,gBAAgB;AAChB,IAAA,YAAY;AAErB,IAAA,MAAM,iBAAiB,GAAA;QACrB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACjC,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC;YACpD;;AAGF,QAAA,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AAC/B,QAAA,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;AACjC,QAAA,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AAC/B,QAAA,UAAU,CAAC,YAAY,GAAG,IAAI;AAE9B,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;AAChB,SAAA,CAAC;QAEFC,QAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc;QAE9C,IAAI,CAAC,sBAAsB,EAAE;AAC7B,QAAA,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AAE/B,QAAA,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;;;AAMzC,IAAA,YAAY,CAAC,QAAgB,EAAE,QAAgB,EAAE,QAAsB,EAAA;QACrE,IAAI,QAAQ,KAAK,SAAS;YAAE;AAE5B,QAAA,IAAI,QAAQ,IAAI,UAAU,EAAE;AACzB,YAAA,UAA2C,CAAC,QAAQ,CAAC,GAAG,QAAQ;;AAGnE,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AACrB,YAAA,GAAG,EAAE,QAAQ;AACb,YAAA,KAAK,EAAE,QAAQ;AACf,YAAA,aAAa,EAAE,QAAQ;AACxB,SAAA,CAAC;;IAGJ,MAAM,GAAA;QACJ,OAAO,8DAAQ;;IAGT,sBAAsB,GAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,YAAA,IAAI;gBACF,MAAM,YAAY,GAAG,OAAO,IAAI,CAAC,kBAAkB,KAAK,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,kBAAkB;AAEhI,gBAAA,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE;oBAC/B,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE;AACrC,wBAAAA,QAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,aAAa,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;;;;YAG/E,OAAO,KAAK,EAAE;AACd,gBAAAC,gBAAuB,CAAC,oCAAoC,EAAE,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","i18n","Sentry.captureException"],"sources":["src/shared/components/config/config.tsx"],"sourcesContent":["import * as Sentry from \"@sentry/browser\";\nimport { Component, Event, type EventEmitter, h, Prop, Watch } from \"@stencil/core\";\nimport { getUnidyClient } from \"../../../api/\";\nimport { Auth } from \"../../../auth\";\nimport i18n from \"../../../i18n\";\nimport { UnidyComponent } from \"../../../logger\";\nimport { unidyState } from \"../../store/unidy-store\";\n\nexport interface Config {\n apiKey: string;\n baseUrl: string;\n locale: string;\n mode: \"production\" | \"development\";\n}\n\nexport interface ConfigChange {\n key: string;\n value: string;\n previousValue: string;\n}\n\ntype TranslationTree = {\n [key: string]: string | TranslationTree;\n};\n\n@Component({\n tag: \"u-config\",\n shadow: false,\n})\nexport class UnidyConfig extends UnidyComponent {\n @Prop() mode: \"production\" | \"development\" = \"production\";\n @Prop() baseUrl = \"\";\n @Prop() apiKey = \"\";\n @Prop() customTranslations: string | Record<string, TranslationTree> = \"\";\n @Prop() fallbackLocale = \"en\";\n @Prop() locale = \"en\";\n\n @Event() unidyInitialized!: EventEmitter<Config>;\n @Event() configChange!: EventEmitter<ConfigChange>;\n\n async componentWillLoad() {\n if (!this.baseUrl || !this.apiKey) {\n this.logger.error(\"baseUrl and apiKey are required\");\n return;\n }\n\n unidyState.apiKey = this.apiKey;\n unidyState.baseUrl = this.baseUrl;\n unidyState.locale = this.locale;\n unidyState.isConfigured = true;\n\n this.unidyInitialized.emit({\n apiKey: this.apiKey,\n baseUrl: this.baseUrl,\n locale: this.locale,\n mode: this.mode,\n });\n\n i18n.options.fallbackLng = this.fallbackLocale;\n\n this.loadCustomTranslations();\n unidyState.locale = this.locale;\n\n await Auth.initialize(getUnidyClient());\n }\n\n // extend the list of properties that should be watched when new properties are added to the Config\n @Watch(\"mode\")\n @Watch(\"locale\")\n onPropChange(newValue: string, oldValue: string, propName: keyof Config) {\n if (oldValue === undefined) return;\n\n if (propName in unidyState) {\n (unidyState as Record<keyof Config, string>)[propName] = newValue;\n }\n\n this.configChange.emit({\n key: propName,\n value: newValue,\n previousValue: oldValue,\n });\n }\n\n render() {\n return <slot />;\n }\n\n private loadCustomTranslations() {\n if (this.customTranslations) {\n try {\n const translations = typeof this.customTranslations === \"string\" ? JSON.parse(this.customTranslations) : this.customTranslations;\n\n for (const lang in translations) {\n if (Object.hasOwn(translations, lang)) {\n i18n.addResourceBundle(lang, \"translation\", translations[lang], true, true);\n }\n }\n } catch (error) {\n Sentry.captureException(\"Failed to parse customTranslations\", error);\n }\n }\n }\n}\n"],"version":3}
@@ -1 +1 @@
1
- {"file":"u-password-field.js","mappings":"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","names":["__stencil_proxyCustomElement","authState"],"sources":["src/auth/components/password-field/password-field.tsx"],"sourcesContent":["import { Component, h, Prop, Element } from \"@stencil/core\";\nimport { t } from \"../../../i18n\";\nimport { authState, authStore } from \"../../store/auth-store\";\nimport { getParentSigninStep } from \"../helpers\";\n\nexport type PasswordFieldFor = \"login\" | \"new-password\" | \"password-confirmation\";\n\n@Component({\n tag: \"u-password-field\",\n shadow: false,\n})\nexport class PasswordField {\n @Element() el!: HTMLElement;\n\n @Prop() for: PasswordFieldFor = \"login\";\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n @Prop() ariaLabel = \"\";\n\n private getAriaLabel(): string {\n if (this.ariaLabel) return this.ariaLabel;\n\n switch (this.for) {\n case \"login\":\n return \"Password\";\n case \"new-password\":\n return \"New Password\";\n case \"password-confirmation\":\n return \"Password Confirmation\";\n }\n }\n\n private getValue(): string {\n switch (this.for) {\n case \"login\":\n return authState.password;\n case \"new-password\":\n return authState.resetPassword.newPassword;\n case \"password-confirmation\":\n return authState.resetPassword.passwordConfirmation;\n }\n }\n\n private getAutocomplete(): string {\n switch (this.for) {\n case \"login\":\n return \"current-password\";\n case \"new-password\":\n case \"password-confirmation\":\n return \"new-password\";\n }\n }\n\n private getInputName(): string {\n switch (this.for) {\n case \"login\":\n return \"password\";\n case \"new-password\":\n return \"new-password\";\n case \"password-confirmation\":\n return \"confirm-password\";\n }\n }\n\n private handleInput = (event: Event) => {\n const target = event.target as HTMLInputElement;\n\n switch (this.for) {\n case \"login\":\n authStore.setPassword(target.value);\n break;\n case \"new-password\":\n authStore.setNewPassword(target.value);\n authStore.clearFieldError(\"resetPassword\");\n authStore.clearFieldError(\"password\");\n break;\n case \"password-confirmation\":\n authStore.setConfirmPassword(target.value);\n authStore.clearFieldError(\"resetPassword\");\n authStore.clearFieldError(\"password\");\n break;\n }\n };\n\n private handleSubmit = async (event: Event) => {\n event.preventDefault();\n\n (await getParentSigninStep(this.el))?.submit();\n };\n\n private shouldRender(): boolean {\n switch (this.for) {\n case \"login\":\n return (authState.step === \"verification\" && authState.availableLoginOptions?.password) || authState.step === \"single-login\";\n case \"new-password\":\n case \"password-confirmation\":\n return authState.step === \"reset-password\";\n }\n }\n\n render() {\n if (!this.shouldRender()) {\n return null;\n }\n\n if (authState.availableLoginOptions && !authState.availableLoginOptions.password && authState.step !== \"single-login\") {\n return null;\n }\n\n const key = this.for === \"password-confirmation\" ? \"auth.password.confirmation.placeholder\" : \"auth.password.placeholder\";\n const placeholder = t(key, { defaultValue: \"Enter your password\" });\n\n return (\n <form onSubmit={this.handleSubmit}>\n <input\n name={this.getInputName()}\n type=\"password\"\n value={this.getValue()}\n autocomplete={this.getAutocomplete()}\n placeholder={placeholder}\n disabled={authState.loading}\n class={this.componentClassName}\n onInput={this.handleInput}\n aria-label={this.getAriaLabel()}\n />\n </form>\n );\n }\n}\n"],"version":3}
1
+ {"file":"u-password-field.js","mappings":"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","names":["__stencil_proxyCustomElement","authState"],"sources":["src/auth/components/password-field/password-field.tsx"],"sourcesContent":["import { Component, Element, h, Prop } from \"@stencil/core\";\nimport { t } from \"../../../i18n\";\nimport { authState, authStore } from \"../../store/auth-store\";\nimport { getParentSigninStep } from \"../helpers\";\n\nexport type PasswordFieldFor = \"login\" | \"new-password\" | \"password-confirmation\";\n\n@Component({\n tag: \"u-password-field\",\n shadow: false,\n})\nexport class PasswordField {\n @Element() el!: HTMLElement;\n\n @Prop() for: PasswordFieldFor = \"login\";\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n @Prop() ariaLabel = \"\";\n\n private getAriaLabel(): string {\n if (this.ariaLabel) return this.ariaLabel;\n\n switch (this.for) {\n case \"login\":\n return \"Password\";\n case \"new-password\":\n return \"New Password\";\n case \"password-confirmation\":\n return \"Password Confirmation\";\n }\n }\n\n private getValue(): string {\n switch (this.for) {\n case \"login\":\n return authState.password;\n case \"new-password\":\n return authState.resetPassword.newPassword;\n case \"password-confirmation\":\n return authState.resetPassword.passwordConfirmation;\n }\n }\n\n private getAutocomplete(): string {\n switch (this.for) {\n case \"login\":\n return \"current-password\";\n case \"new-password\":\n case \"password-confirmation\":\n return \"new-password\";\n }\n }\n\n private getInputName(): string {\n switch (this.for) {\n case \"login\":\n return \"password\";\n case \"new-password\":\n return \"new-password\";\n case \"password-confirmation\":\n return \"confirm-password\";\n }\n }\n\n private handleInput = (event: Event) => {\n const target = event.target as HTMLInputElement;\n\n switch (this.for) {\n case \"login\":\n authStore.setPassword(target.value);\n break;\n case \"new-password\":\n authStore.setNewPassword(target.value);\n authStore.clearFieldError(\"resetPassword\");\n authStore.clearFieldError(\"password\");\n break;\n case \"password-confirmation\":\n authStore.setConfirmPassword(target.value);\n authStore.clearFieldError(\"resetPassword\");\n authStore.clearFieldError(\"password\");\n break;\n }\n };\n\n private handleSubmit = async (event: Event) => {\n event.preventDefault();\n\n (await getParentSigninStep(this.el))?.submit();\n };\n\n private shouldRender(): boolean {\n switch (this.for) {\n case \"login\":\n return (authState.step === \"verification\" && authState.availableLoginOptions?.password) || authState.step === \"single-login\";\n case \"new-password\":\n case \"password-confirmation\":\n return authState.step === \"reset-password\";\n }\n }\n\n render() {\n if (!this.shouldRender()) {\n return null;\n }\n\n if (authState.availableLoginOptions && !authState.availableLoginOptions.password && authState.step !== \"single-login\") {\n return null;\n }\n\n const key = this.for === \"password-confirmation\" ? \"auth.password.confirmation.placeholder\" : \"auth.password.placeholder\";\n const placeholder = t(key, { defaultValue: \"Enter your password\" });\n\n return (\n <form onSubmit={this.handleSubmit}>\n <input\n name={this.getInputName()}\n type=\"password\"\n value={this.getValue()}\n autocomplete={this.getAutocomplete()}\n placeholder={placeholder}\n disabled={authState.loading}\n class={this.componentClassName}\n onInput={this.handleInput}\n aria-label={this.getAriaLabel()}\n />\n </form>\n );\n }\n}\n"],"version":3}
@@ -1,11 +1,11 @@
1
- import { a as authStore, s as state } from './auth-store-CVvBlKGv.js';
1
+ import { g as getUnidyClient } from './index-DSDkaHWI.js';
2
2
  import { t } from './i18n-CLdWzy5J.js';
3
+ import { w as waitForConfig } from './unidy-store-BldTAtO0.js';
4
+ import { a as authStore, s as state } from './auth-store-BGMYm_jK.js';
3
5
  import { e as createLogger, d as captureException } from './index-Ci3aTmzp.js';
4
6
  import { s as state$1 } from './profile-store-RmZB2PTc.js';
5
7
  import { c as clearUrlParam } from './component-utils-D1lzXl_Z.js';
6
8
  import { F as Flash } from './flash-store-CEvWSG0c.js';
7
- import { w as waitForConfig } from './unidy-store-BldTAtO0.js';
8
- import { g as getUnidyClient } from './index-DSDkaHWI.js';
9
9
 
10
10
  class InvalidTokenError extends Error {
11
11
  }
@@ -171,12 +171,6 @@ async function authenticateWithPasskey(client, onSuccess) {
171
171
  class AuthHelpers {
172
172
  client;
173
173
  logger = createLogger("AuthHelpers");
174
- static PASSWORD_ERROR_IDENTIFIERS = [
175
- "invalid_password",
176
- "password_required",
177
- "password_not_set",
178
- "passwords_do_not_match",
179
- ];
180
174
  constructor(client) {
181
175
  this.client = client;
182
176
  }
@@ -188,7 +182,7 @@ class AuthHelpers {
188
182
  authStore.clearErrors();
189
183
  const [error, response] = await this.client.auth.createSignIn(email, password, sendMagicCode);
190
184
  if (error) {
191
- this.handleAuthError(error, response);
185
+ this.handleAuthError(error, response, password ? "password" : "email");
192
186
  return;
193
187
  }
194
188
  if (password) {
@@ -224,7 +218,7 @@ class AuthHelpers {
224
218
  authStore.clearErrors();
225
219
  const [error, response] = await this.client.auth.authenticateWithPassword(state.sid, password);
226
220
  if (error) {
227
- this.handleAuthError(error, response);
221
+ this.handleAuthError(error, response, "password");
228
222
  }
229
223
  else {
230
224
  authStore.setLoading(false);
@@ -232,31 +226,24 @@ class AuthHelpers {
232
226
  return;
233
227
  }
234
228
  }
235
- handleAuthError(error, response) {
236
- switch (error) {
237
- case "account_not_found":
238
- authStore.setFieldError("email", error);
239
- break;
240
- case "missing_required_fields": {
241
- authStore.setMissingFields(response.fields);
242
- state$1.data = response.fields;
243
- if (response.sid) {
244
- authStore.setSignInId(response.sid);
245
- }
246
- authStore.setStep("missing-fields");
247
- break;
248
- }
249
- default:
250
- if (AuthHelpers.PASSWORD_ERROR_IDENTIFIERS.includes(error)) {
251
- authStore.setFieldError("password", error);
252
- }
253
- else {
254
- // e.g. "account_locked", "internal_server_error"
255
- authStore.setGlobalError("auth", error);
256
- }
257
- break;
229
+ async authenticateWithMagicCode(code) {
230
+ if (!state.sid) {
231
+ throw new Error(t("errors.no_sign_in_id"));
258
232
  }
259
- authStore.setLoading(false);
233
+ if (!code) {
234
+ throw new Error(t("errors.magic_code_is_missing"));
235
+ }
236
+ authStore.setLoading(true);
237
+ authStore.clearErrors();
238
+ const [error, response] = await this.client.auth.authenticateWithMagicCode(state.sid, code);
239
+ if (error) {
240
+ this.handleAuthError(error, response, "magicCode");
241
+ return;
242
+ }
243
+ this.handleAuthSuccess(response);
244
+ }
245
+ authenticateWithPasskey() {
246
+ return authenticateWithPasskey(this.client, (response) => this.handleAuthSuccess(response));
260
247
  }
261
248
  async logout() {
262
249
  const [error, _] = await this.client.auth.signOut(state.sid);
@@ -269,7 +256,10 @@ class AuthHelpers {
269
256
  if (state.step === "missing-fields") {
270
257
  return;
271
258
  }
272
- this.extractSignInIdFromQuery();
259
+ const sid = clearUrlParam("sid");
260
+ if (sid) {
261
+ authStore.setSignInId(sid);
262
+ }
273
263
  if (!state.sid) {
274
264
  this.logger.warn("No sign-in ID in the session");
275
265
  return;
@@ -283,40 +273,6 @@ class AuthHelpers {
283
273
  authStore.setToken(response.jwt);
284
274
  }
285
275
  }
286
- handleSocialAuthRedirect() {
287
- // missing required fields flow
288
- const url = new URL(window.location.href);
289
- const params = url.searchParams;
290
- const error = params.get("error");
291
- if (error !== "missing_required_fields") {
292
- return;
293
- }
294
- const fieldsFromUrl = params.get("fields");
295
- if (!fieldsFromUrl) {
296
- return;
297
- }
298
- const signInId = params.get("sid");
299
- if (signInId) {
300
- authStore.setSignInId(signInId);
301
- }
302
- else {
303
- return;
304
- }
305
- try {
306
- const fields = JSON.parse(fieldsFromUrl);
307
- authStore.setMissingFields(fields);
308
- state$1.data = fields;
309
- authStore.setStep("missing-fields");
310
- params.delete("error");
311
- params.delete("fields");
312
- const cleanUrl = `${url.origin}${url.pathname}${url.hash}`;
313
- window.history.replaceState(null, "", cleanUrl);
314
- }
315
- catch (e) {
316
- this.logger.error("Failed to parse missing fields payload:", e);
317
- authStore.setGlobalError("auth", "invalid_required_fields_payload");
318
- }
319
- }
320
276
  async sendMagicCode() {
321
277
  if (!state.sid && state.step !== "single-login") {
322
278
  throw new Error(t("errors.no_sign_in_id"));
@@ -342,27 +298,6 @@ class AuthHelpers {
342
298
  }
343
299
  return [error, response];
344
300
  }
345
- async authenticateWithMagicCode(code) {
346
- if (!state.sid) {
347
- throw new Error(t("errors.no_sign_in_id"));
348
- }
349
- if (!code) {
350
- throw new Error(t("errors.magic_code_is_missing"));
351
- }
352
- authStore.setLoading(true);
353
- authStore.clearErrors();
354
- const [error, response] = await this.client.auth.authenticateWithMagicCode(state.sid, code);
355
- if (!error) {
356
- this.handleAuthSuccess(response);
357
- return;
358
- }
359
- if (error === "missing_required_fields") {
360
- this.handleMissingFields(response);
361
- return;
362
- }
363
- authStore.setLoading(false);
364
- authStore.setFieldError("magicCode", error);
365
- }
366
301
  async sendResetPasswordEmail() {
367
302
  if (!state.sid) {
368
303
  throw new Error(t("errors.no_sign_in_id"));
@@ -379,28 +314,6 @@ class AuthHelpers {
379
314
  }
380
315
  authStore.setLoading(false);
381
316
  }
382
- async handleResetPasswordRedirect() {
383
- const url = new URL(window.location.href);
384
- const params = url.searchParams;
385
- const resetToken = params.get("reset_password_token");
386
- if (!resetToken) {
387
- return false;
388
- }
389
- if (state.sid) {
390
- authStore.setLoading(true);
391
- const [error] = await this.client.auth.validateResetPasswordToken(state.sid, resetToken);
392
- if (error) {
393
- authStore.setFieldError("resetPassword", error);
394
- authStore.setStep("reset-password");
395
- authStore.setLoading(false);
396
- return false;
397
- }
398
- }
399
- authStore.setResetToken(resetToken);
400
- authStore.setStep("reset-password");
401
- authStore.setLoading(false);
402
- return true;
403
- }
404
317
  async resetPassword() {
405
318
  if (!state.resetPassword.token) {
406
319
  throw new Error("No reset token available");
@@ -437,18 +350,103 @@ class AuthHelpers {
437
350
  }
438
351
  authStore.setLoading(false);
439
352
  }
440
- authenticateWithPasskey() {
441
- return authenticateWithPasskey(this.client, (response) => this.handleAuthSuccess(response));
353
+ async handleResetPasswordRedirect() {
354
+ const url = new URL(window.location.href);
355
+ const params = url.searchParams;
356
+ const resetToken = params.get("reset_password_token");
357
+ if (!resetToken) {
358
+ return;
359
+ }
360
+ if (state.sid) {
361
+ authStore.setLoading(true);
362
+ const [error] = await this.client.auth.validateResetPasswordToken(state.sid, resetToken);
363
+ if (error) {
364
+ authStore.setFieldError("resetPassword", error);
365
+ authStore.setStep("reset-password");
366
+ authStore.setLoading(false);
367
+ return;
368
+ }
369
+ }
370
+ authStore.setResetToken(resetToken);
371
+ authStore.setStep("reset-password");
372
+ authStore.setLoading(false);
442
373
  }
443
- extractSignInIdFromQuery() {
374
+ handleSocialAuthRedirect() {
375
+ const url = new URL(window.location.href);
376
+ const params = url.searchParams;
377
+ const error = params.get("error");
378
+ // Not a social auth redirect (normal page load)
379
+ if (!error && !params.has("sid")) {
380
+ return;
381
+ }
382
+ // Handle successful social auth redirect
383
+ if (!error && params.has("sid") && params.has("id_token")) {
384
+ authStore.setSignInId(clearUrlParam("sid"));
385
+ const idToken = clearUrlParam("id_token");
386
+ if (idToken) {
387
+ authStore.setToken(idToken);
388
+ this.handleAuthSuccess({ jwt: idToken });
389
+ }
390
+ else {
391
+ this.logger.error("No ID token found in the URL on social auth redirect");
392
+ }
393
+ return;
394
+ }
395
+ // Handle missing required fields
396
+ if (error !== "missing_required_fields") {
397
+ this.logger.error("Social auth redirect error:", error);
398
+ return;
399
+ }
400
+ const fieldsFromUrl = clearUrlParam("fields");
444
401
  const sid = clearUrlParam("sid");
445
- if (sid) {
402
+ clearUrlParam("error");
403
+ if (!fieldsFromUrl || !sid) {
404
+ return;
405
+ }
406
+ try {
407
+ const fields = JSON.parse(fieldsFromUrl);
446
408
  authStore.setSignInId(sid);
409
+ this.handleMissingFields(fields);
410
+ }
411
+ catch (e) {
412
+ this.logger.error("Failed to parse missing fields payload:", e);
413
+ authStore.setGlobalError("auth", "invalid_required_fields_payload");
414
+ }
415
+ }
416
+ handleAuthError(error, response, fallbackField) {
417
+ switch (error) {
418
+ case "account_not_found":
419
+ authStore.setFieldError("email", error);
420
+ break;
421
+ case "missing_required_fields": {
422
+ const { fields, sid } = response;
423
+ this.handleMissingFields(fields);
424
+ if (sid) {
425
+ authStore.setSignInId(sid);
426
+ }
427
+ break;
428
+ }
429
+ default:
430
+ if (fallbackField === "password") {
431
+ authStore.setFieldError("password", error);
432
+ }
433
+ else if (fallbackField === "magicCode") {
434
+ authStore.setFieldError("magicCode", error);
435
+ }
436
+ else if (fallbackField === "email") {
437
+ authStore.setFieldError("email", error);
438
+ }
439
+ else {
440
+ // e.g. "account_locked", "internal_server_error"
441
+ authStore.setGlobalError("auth", error);
442
+ }
443
+ break;
447
444
  }
445
+ authStore.setLoading(false);
448
446
  }
449
- handleMissingFields(response) {
450
- authStore.setMissingFields(response.fields);
451
- state$1.data = response.fields;
447
+ handleMissingFields(fields) {
448
+ authStore.setMissingFields(fields);
449
+ state$1.data = fields;
452
450
  authStore.setStep("missing-fields");
453
451
  authStore.setLoading(false);
454
452
  }
@@ -464,8 +462,6 @@ class Auth {
464
462
  helpers;
465
463
  constructor(client) {
466
464
  this.helpers = new AuthHelpers(client);
467
- this.helpers.handleSocialAuthRedirect();
468
- this.helpers.handleResetPasswordRedirect();
469
465
  }
470
466
  static Errors = {
471
467
  email: {
@@ -494,8 +490,13 @@ class Auth {
494
490
  }
495
491
  return Auth.instance;
496
492
  }
497
- static initialize(client) {
493
+ static async initialize(client) {
494
+ if (Auth.instance) {
495
+ return Auth.instance;
496
+ }
498
497
  Auth.instance = new Auth(client);
498
+ Auth.instance.helpers.handleSocialAuthRedirect();
499
+ await Auth.instance.helpers.handleResetPasswordRedirect();
499
500
  if (Auth.instance.isTokenValid(state.token)) {
500
501
  authStore.setAuthenticated(true);
501
502
  }
@@ -574,6 +575,6 @@ class Auth {
574
575
  }
575
576
 
576
577
  export { Auth as A };
577
- //# sourceMappingURL=auth-nsjRdpvS.js.map
578
+ //# sourceMappingURL=auth-B0RIcDM-.js.map
578
579
 
579
- //# sourceMappingURL=auth-nsjRdpvS.js.map
580
+ //# sourceMappingURL=auth-B0RIcDM-.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-B0RIcDM-.js","sources":["../../node_modules/jwt-decode/build/esm/index.js","src/auth/passkey-auth.ts","src/auth/auth-helpers.ts","src/auth/auth.ts"],"sourcesContent":["export class InvalidTokenError extends Error {\n}\nInvalidTokenError.prototype.name = \"InvalidTokenError\";\nfunction b64DecodeUnicode(str) {\n return decodeURIComponent(atob(str).replace(/(.)/g, (m, p) => {\n let code = p.charCodeAt(0).toString(16).toUpperCase();\n if (code.length < 2) {\n code = \"0\" + code;\n }\n return \"%\" + code;\n }));\n}\nfunction base64UrlDecode(str) {\n let output = str.replace(/-/g, \"+\").replace(/_/g, \"/\");\n switch (output.length % 4) {\n case 0:\n break;\n case 2:\n output += \"==\";\n break;\n case 3:\n output += \"=\";\n break;\n default:\n throw new Error(\"base64 string is not of the correct length\");\n }\n try {\n return b64DecodeUnicode(output);\n }\n catch (err) {\n return atob(output);\n }\n}\nexport function jwtDecode(token, options) {\n if (typeof token !== \"string\") {\n throw new InvalidTokenError(\"Invalid token specified: must be a string\");\n }\n options || (options = {});\n const pos = options.header === true ? 0 : 1;\n const part = token.split(\".\")[pos];\n if (typeof part !== \"string\") {\n throw new InvalidTokenError(`Invalid token specified: missing part #${pos + 1}`);\n }\n let decoded;\n try {\n decoded = base64UrlDecode(part);\n }\n catch (e) {\n throw new InvalidTokenError(`Invalid token specified: invalid base64 for part #${pos + 1} (${e.message})`);\n }\n try {\n return JSON.parse(decoded);\n }\n catch (e) {\n throw new InvalidTokenError(`Invalid token specified: invalid json for part #${pos + 1} (${e.message})`);\n }\n}\n","import { jwtDecode } from \"jwt-decode\";\nimport type { PasskeyOptionsResponse, TokenResponse, UnidyClient } from \"../api\";\nimport { createLogger } from \"../logger\";\nimport type { TokenPayload } from \"./auth\";\nimport { authState, authStore } from \"./store/auth-store\";\n\nconst logger = createLogger(\"PasskeyAuth\");\n\nconst PASSKEY_ERRORS: Record<string, string> = {\n NotSupportedError: \"passkey_not_supported\",\n NotAllowedError: \"passkey_cancelled\",\n SecurityError: \"passkey_security_error\",\n InvalidStateError: \"passkey_invalid_state\",\n};\n\nfunction decodeBase64Url(base64url: string): Uint8Array {\n const base64 = base64url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const padded = base64 + \"=\".repeat((4 - (base64.length % 4)) % 4);\n return Uint8Array.from(atob(padded), (c) => c.charCodeAt(0));\n}\n\nfunction buildPublicKeyOptions(options: PasskeyOptionsResponse): PublicKeyCredentialRequestOptions {\n return {\n challenge: Uint8Array.from(atob(options.challenge), (c) => c.charCodeAt(0)),\n timeout: options.timeout || 60000,\n rpId: options.rpId,\n userVerification: (options.userVerification as UserVerificationRequirement) || \"required\",\n allowCredentials: options.allowCredentials?.map((cred) => ({\n ...cred,\n id: decodeBase64Url(cred.id),\n })),\n };\n}\n\nfunction formatCredentialForServer(credential: PublicKeyCredential) {\n const response = credential.response as AuthenticatorAssertionResponse;\n return {\n id: credential.id,\n rawId: btoa(String.fromCharCode(...new Uint8Array(credential.rawId))),\n response: {\n authenticatorData: btoa(String.fromCharCode(...new Uint8Array(response.authenticatorData))),\n clientDataJSON: btoa(String.fromCharCode(...new Uint8Array(response.clientDataJSON))),\n signature: btoa(String.fromCharCode(...new Uint8Array(response.signature))),\n },\n type: credential.type,\n };\n}\n\nfunction extractAndSetSignInId(tokenResponse: TokenResponse) {\n if (tokenResponse.sid) {\n authStore.setSignInId(tokenResponse.sid);\n return;\n }\n\n // Fallback: extract sid from JWT token payload\n try {\n const decoded = jwtDecode<TokenPayload>(tokenResponse.jwt);\n if (decoded.sid) {\n authStore.setSignInId(decoded.sid);\n }\n } catch {\n // Failed to decode JWT token to extract sid, continue without it\n }\n}\n\nfunction handlePasskeyError(error: unknown) {\n logger.error(\"Passkey error:\", error);\n\n let errorMessage = \"passkey_error\";\n if (error instanceof DOMException) {\n errorMessage = PASSKEY_ERRORS[error.name] || \"passkey_error\";\n }\n\n authStore.setFieldError(\"passkey\", errorMessage);\n authStore.setLoading(false);\n}\n\nexport async function authenticateWithPasskey(client: UnidyClient, onSuccess: (response: TokenResponse) => void) {\n authStore.setLoading(true);\n authStore.clearErrors();\n\n if (!window.PublicKeyCredential) {\n authStore.setFieldError(\"passkey\", \"passkey_not_supported\");\n authStore.setLoading(false);\n return;\n }\n\n try {\n const [optionsError, options] = await client.auth.getPasskeyOptions(authState.sid || undefined);\n\n if (optionsError || !options) {\n authStore.setFieldError(\"passkey\", optionsError || \"bad_request\");\n authStore.setLoading(false);\n return;\n }\n\n const publicKeyOptions = buildPublicKeyOptions(options as PasskeyOptionsResponse);\n\n const credential = (await navigator.credentials.get({\n publicKey: publicKeyOptions,\n })) as PublicKeyCredential | null;\n\n if (!credential) {\n authStore.setFieldError(\"passkey\", \"passkey_cancelled\");\n authStore.setLoading(false);\n return;\n }\n\n const formattedCredential = formatCredentialForServer(credential);\n\n const [verifyError, tkResponse] = await client.auth.authenticateWithPasskey(formattedCredential);\n\n const tokenResponse = tkResponse as TokenResponse;\n if (verifyError || !tokenResponse) {\n authStore.setGlobalError(\"auth\", verifyError || \"authentication_failed\");\n authStore.setLoading(false);\n return;\n }\n\n authStore.setToken(tokenResponse.jwt);\n extractAndSetSignInId(tokenResponse);\n onSuccess(tokenResponse);\n } catch (error) {\n handlePasskeyError(error);\n }\n}\n","import { jwtDecode } from \"jwt-decode\";\nimport type { CreateSignInResponse, RequiredFieldsResponse, TokenResponse, UnidyClient } from \"../api\";\nimport { authState, authStore } from \"../auth/store/auth-store\";\nimport { t } from \"../i18n\";\nimport { createLogger } from \"../logger\";\nimport type { ProfileRaw } from \"../profile\";\nimport { state as profileState } from \"../profile/store/profile-store\";\nimport { clearUrlParam } from \"../shared/component-utils\";\nimport { Flash } from \"../shared/store/flash-store\";\nimport type { TokenPayload } from \"./auth\";\nimport { authenticateWithPasskey } from \"./passkey-auth\";\n\nexport class AuthHelpers {\n private client: UnidyClient;\n private logger = createLogger(\"AuthHelpers\");\n\n constructor(client: UnidyClient) {\n this.client = client;\n }\n\n async createSignIn(email: string, password?: string, sendMagicCode?: boolean) {\n if (!email) {\n throw new Error(t(\"errors.required_field\", { field: \"Email\" }));\n }\n\n authStore.setLoading(true);\n authStore.clearErrors();\n\n const [error, response] = await this.client.auth.createSignIn(email, password, sendMagicCode);\n\n if (error) {\n this.handleAuthError(error, response, password ? \"password\" : \"email\");\n return;\n }\n\n if (password) {\n const token = jwtDecode<TokenPayload>((response as TokenResponse).jwt);\n authStore.setSignInId(token.sid);\n authStore.setToken((response as TokenResponse).jwt);\n authStore.setLoading(false);\n authStore.getRootComponentRef()?.onAuth(response as TokenResponse);\n return;\n }\n\n if (sendMagicCode) {\n authStore.setSignInId((response as CreateSignInResponse).sid);\n authStore.setMagicCodeStep(\"sent\");\n authStore.setStep(\"magic-code\");\n authStore.setLoading(false);\n return [error, response] as const;\n }\n const signInResponse = response as CreateSignInResponse;\n authStore.setStep(\"verification\");\n authStore.setEmail(email);\n authStore.setSignInId(signInResponse.sid);\n authStore.setLoginOptions(signInResponse.login_options);\n authStore.setLoading(false);\n }\n\n async authenticateWithPassword(password: string) {\n if (!authState.sid) {\n throw new Error(t(\"errors.no_sign_in_id\"));\n }\n\n if (!password) {\n throw new Error(t(\"errors.required_field\", { field: \"Password\" }));\n }\n\n authStore.setLoading(true);\n authStore.clearErrors();\n\n const [error, response] = await this.client.auth.authenticateWithPassword(authState.sid, password);\n\n if (error) {\n this.handleAuthError(error, response, \"password\");\n } else {\n authStore.setLoading(false);\n this.handleAuthSuccess(response as TokenResponse);\n return;\n }\n }\n\n async authenticateWithMagicCode(code: string) {\n if (!authState.sid) {\n throw new Error(t(\"errors.no_sign_in_id\"));\n }\n\n if (!code) {\n throw new Error(t(\"errors.magic_code_is_missing\"));\n }\n\n authStore.setLoading(true);\n authStore.clearErrors();\n\n const [error, response] = await this.client.auth.authenticateWithMagicCode(authState.sid, code);\n\n if (error) {\n this.handleAuthError(error, response, \"magicCode\");\n return;\n }\n\n this.handleAuthSuccess(response as TokenResponse);\n }\n\n authenticateWithPasskey() {\n return authenticateWithPasskey(this.client, (response) => this.handleAuthSuccess(response));\n }\n\n async logout() {\n const [error, _] = await this.client.auth.signOut(authState.sid as string);\n\n if (error) {\n authStore.setGlobalError(\"auth\", error);\n }\n\n return [error, _] as const;\n }\n\n async refreshToken() {\n if (authState.step === \"missing-fields\") {\n return;\n }\n\n const sid = clearUrlParam(\"sid\");\n if (sid) {\n authStore.setSignInId(sid);\n }\n\n if (!authState.sid) {\n this.logger.warn(\"No sign-in ID in the session\");\n return;\n }\n\n const [error, response] = await this.client.auth.refreshToken(authState.sid);\n\n if (error) {\n authStore.reset();\n authStore.setGlobalError(\"auth\", error);\n } else {\n authStore.setToken((response as TokenResponse).jwt);\n }\n }\n\n async sendMagicCode() {\n if (!authState.sid && authState.step !== \"single-login\") {\n throw new Error(t(\"errors.no_sign_in_id\"));\n }\n\n authStore.setMagicCodeStep(\"requested\");\n authStore.setLoading(true);\n authStore.clearErrors();\n\n if (authState.step === \"single-login\") {\n const [error, response] = await this.createSignIn(authState.email, undefined, true);\n authStore.setLoading(false);\n return [error, response] as const;\n }\n\n const [error, response] = await this.client.auth.sendMagicCode(authState.sid);\n\n authStore.setLoading(false);\n\n authStore.setStep(\"magic-code\");\n\n if (!error) {\n authStore.setMagicCodeStep(\"sent\");\n\n return [null, response] as const;\n }\n\n authStore.setFieldError(\"magicCode\", error);\n\n if (error === \"magic_code_recently_created\") {\n authStore.setMagicCodeStep(\"sent\");\n }\n\n return [error, response] as const;\n }\n\n async sendResetPasswordEmail() {\n if (!authState.sid) {\n throw new Error(t(\"errors.no_sign_in_id\"));\n }\n\n authStore.setLoading(true);\n authStore.setResetPasswordStep(\"requested\");\n\n const [error, _] = await this.client.auth.sendResetPasswordEmail(authState.sid, window.location.href);\n\n if (error) {\n authStore.setFieldError(\"resetPassword\", error);\n } else {\n authStore.setResetPasswordStep(\"sent\");\n authStore.clearErrors();\n }\n\n authStore.setLoading(false);\n }\n\n async resetPassword() {\n if (!authState.resetPassword.token) {\n throw new Error(\"No reset token available\");\n }\n\n if (!authState.resetPassword.newPassword) {\n authStore.setFieldError(\"resetPassword\", \"password_required\");\n return;\n }\n\n if (\n authState.resetPassword.passwordConfirmation &&\n authState.resetPassword.newPassword !== authState.resetPassword.passwordConfirmation\n ) {\n authStore.setFieldError(\"resetPassword\", \"passwords_do_not_match\");\n return;\n }\n\n authStore.setLoading(true);\n authStore.clearErrors();\n\n const [error, response] = await this.client.auth.resetPassword(\n authState.sid as string,\n authState.resetPassword.token,\n authState.resetPassword.newPassword,\n authState.resetPassword.passwordConfirmation,\n );\n\n if (error) {\n authStore.setFieldError(\"resetPassword\", error);\n\n // TODO: add proper password requirements handling --> for now this is fine\n if (error === \"invalid_password\") {\n authStore.setFieldError(\"password\", response.error_details?.password.map((p) => t(`errors.password_requirements.${p}`)).join(\"\\n\"));\n }\n } else {\n authStore.setStep(\"email\");\n authStore.updateResetPassword({\n step: \"completed\",\n token: null,\n newPassword: \"\",\n passwordConfirmation: \"\",\n });\n\n clearUrlParam(\"reset_password_token\");\n Flash.success.addMessage(\"Password reset successfully\");\n }\n\n authStore.setLoading(false);\n }\n\n async handleResetPasswordRedirect() {\n const url = new URL(window.location.href);\n const params = url.searchParams;\n const resetToken = params.get(\"reset_password_token\");\n\n if (!resetToken) {\n return;\n }\n\n if (authState.sid) {\n authStore.setLoading(true);\n\n const [error] = await this.client.auth.validateResetPasswordToken(authState.sid, resetToken);\n\n if (error) {\n authStore.setFieldError(\"resetPassword\", error);\n authStore.setStep(\"reset-password\");\n authStore.setLoading(false);\n return;\n }\n }\n\n authStore.setResetToken(resetToken);\n authStore.setStep(\"reset-password\");\n authStore.setLoading(false);\n }\n\n handleSocialAuthRedirect(): void {\n const url = new URL(window.location.href);\n const params = url.searchParams;\n const error = params.get(\"error\");\n\n // Not a social auth redirect (normal page load)\n if (!error && !params.has(\"sid\")) {\n return;\n }\n\n // Handle successful social auth redirect\n if (!error && params.has(\"sid\") && params.has(\"id_token\")) {\n authStore.setSignInId(clearUrlParam(\"sid\"));\n\n const idToken = clearUrlParam(\"id_token\");\n\n if (idToken) {\n authStore.setToken(idToken);\n this.handleAuthSuccess({ jwt: idToken } as TokenResponse);\n } else {\n this.logger.error(\"No ID token found in the URL on social auth redirect\");\n }\n\n return;\n }\n\n // Handle missing required fields\n if (error !== \"missing_required_fields\") {\n this.logger.error(\"Social auth redirect error:\", error);\n return;\n }\n\n const fieldsFromUrl = clearUrlParam(\"fields\");\n const sid = clearUrlParam(\"sid\");\n clearUrlParam(\"error\");\n\n if (!fieldsFromUrl || !sid) {\n return;\n }\n\n try {\n const fields = JSON.parse(fieldsFromUrl);\n authStore.setSignInId(sid);\n\n this.handleMissingFields(fields);\n } catch (e) {\n this.logger.error(\"Failed to parse missing fields payload:\", e);\n authStore.setGlobalError(\"auth\", \"invalid_required_fields_payload\");\n }\n }\n\n private handleAuthError(error: string, response: unknown, fallbackField?: \"email\" | \"password\" | \"magicCode\") {\n switch (error) {\n case \"account_not_found\":\n authStore.setFieldError(\"email\", error);\n break;\n\n case \"missing_required_fields\": {\n const { fields, sid } = response as RequiredFieldsResponse;\n this.handleMissingFields(fields);\n if (sid) {\n authStore.setSignInId(sid);\n }\n break;\n }\n\n default:\n if (fallbackField === \"password\") {\n authStore.setFieldError(\"password\", error);\n } else if (fallbackField === \"magicCode\") {\n authStore.setFieldError(\"magicCode\", error);\n } else if (fallbackField === \"email\") {\n authStore.setFieldError(\"email\", error);\n } else {\n // e.g. \"account_locked\", \"internal_server_error\"\n authStore.setGlobalError(\"auth\", error);\n }\n break;\n }\n\n authStore.setLoading(false);\n }\n\n private handleMissingFields(fields: RequiredFieldsResponse[\"fields\"]) {\n authStore.setMissingFields(fields);\n profileState.data = fields as ProfileRaw;\n authStore.setStep(\"missing-fields\");\n authStore.setLoading(false);\n }\n\n private handleAuthSuccess(response: TokenResponse) {\n authStore.setToken(response.jwt);\n authStore.setLoading(false);\n authStore.getRootComponentRef()?.onAuth(response);\n }\n}\n","import * as Sentry from \"@sentry/browser\";\nimport { jwtDecode } from \"jwt-decode\";\nimport type { UnidyClient } from \"../api\";\nimport { getUnidyClient } from \"../api\";\nimport { t } from \"../i18n\";\nimport { waitForConfig } from \"../shared/store/unidy-store\";\nimport { AuthHelpers } from \"./auth-helpers\";\nimport { authState, authStore } from \"./store/auth-store\";\n\nexport interface TokenPayload {\n sub: string; // unidy id\n sid: string; // sign-in id\n exp: number;\n iat: number;\n iss: string;\n aud: string;\n nonce: string;\n auth_time: number;\n email: string;\n email_verified: boolean;\n [key: string]: unknown;\n}\n\nexport type AuthError = Error & {\n code: \"TOKEN_EXPIRED\" | \"REFRESH_FAILED\" | \"NO_TOKEN\" | \"INVALID_TOKEN\" | \"SIGN_IN_NOT_FOUND\" | \"SIGN_OUT_FAILED\";\n requiresReauth: boolean;\n};\n\nexport class Auth {\n private static instance: Auth;\n\n readonly helpers: AuthHelpers;\n\n private constructor(client: UnidyClient) {\n this.helpers = new AuthHelpers(client);\n }\n\n static Errors = {\n email: {\n NOT_FOUND: \"account_not_found\",\n },\n magicCode: {\n RECENTLY_CREATED: \"magic_code_recently_created\",\n NOT_VALID: \"magic_code_not_valid\",\n EXPIRED: \"magic_code_expired\",\n USED: \"magic_code_used\",\n },\n password: {\n INVALID: \"invalid_password\",\n NOT_SET: \"password_not_set\",\n RESET_PASSWORD_ALREADY_SENT: \"reset_password_already_sent\",\n },\n general: {\n ACCOUNT_LOCKED: \"account_locked\",\n SIGN_IN_EXPIRED: \"sign_in_expired\",\n },\n } as const;\n\n static async getInstance(): Promise<Auth> {\n if (!Auth.isInitialized()) {\n await waitForConfig();\n\n return Auth.initialize(getUnidyClient());\n }\n\n return Auth.instance;\n }\n\n static async initialize(client: UnidyClient): Promise<Auth> {\n if (Auth.instance) {\n return Auth.instance;\n }\n\n Auth.instance = new Auth(client);\n\n Auth.instance.helpers.handleSocialAuthRedirect();\n await Auth.instance.helpers.handleResetPasswordRedirect();\n\n if (Auth.instance.isTokenValid(authState.token)) {\n authStore.setAuthenticated(true);\n }\n\n return Auth.instance;\n }\n\n static isInitialized(): boolean {\n return !!Auth.instance;\n }\n\n isTokenValid(token: string | TokenPayload | null): boolean {\n try {\n let decoded: TokenPayload | null;\n\n if (typeof token === \"string\") {\n decoded = jwtDecode<TokenPayload>(token);\n } else {\n decoded = token;\n }\n\n if (!decoded) return false;\n\n const currentTime = Date.now() / 1000;\n return decoded.exp > currentTime;\n } catch (error) {\n Sentry.captureException(error);\n return false;\n }\n }\n\n async isAuthenticated(): Promise<boolean> {\n const token = await this.getToken();\n return typeof token === \"string\";\n }\n\n async getToken(): Promise<string | AuthError> {\n const currentToken = authState.token;\n\n if (currentToken && this.isTokenValid(currentToken)) {\n return currentToken;\n }\n\n await this.helpers.refreshToken();\n\n if (authState.globalErrors.auth || !authState.token) {\n return this.createAuthError(t(\"errors.refresh_failed\"), \"REFRESH_FAILED\", true);\n }\n\n return authState.token as string;\n }\n\n async userData(): Promise<TokenPayload | null> {\n const token = await this.getToken();\n\n if (typeof token !== \"string\") {\n return null;\n }\n\n if (!token) {\n return null;\n }\n\n try {\n return jwtDecode<TokenPayload>(token);\n } catch (error) {\n Sentry.captureException(error);\n return null;\n }\n }\n\n async logout(): Promise<boolean | AuthError> {\n const [error, _] = await this.helpers.logout();\n\n if (error) {\n return this.createAuthError(t(\"errors.sign_out_failed\", { reason: error }), \"SIGN_OUT_FAILED\", false);\n }\n\n authStore.reset();\n\n return true;\n }\n\n getEmail(): string | null {\n return authState.email;\n }\n\n private createAuthError(message: string, code: AuthError[\"code\"], requiresReauth = false): AuthError {\n const error = new Error(message) as AuthError;\n error.code = code;\n error.requiresReauth = requiresReauth;\n\n return error;\n }\n}\n"],"names":["authState","profileState","Sentry.captureException"],"mappings":"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","x_google_ignoreList":[0]}
@@ -46,8 +46,6 @@ const initialState = {
46
46
  password: null,
47
47
  magicCode: null,
48
48
  resetPassword: null,
49
- general: null,
50
- connection: null,
51
49
  passkey: null,
52
50
  },
53
51
  globalErrors: {},
@@ -175,6 +173,6 @@ class AuthStore {
175
173
  const authStore = new AuthStore();
176
174
 
177
175
  export { authStore as a, authStoreOnChange as b, missingFieldNames as m, state as s };
178
- //# sourceMappingURL=auth-store-CVvBlKGv.js.map
176
+ //# sourceMappingURL=auth-store-BGMYm_jK.js.map
179
177
 
180
- //# sourceMappingURL=auth-store-CVvBlKGv.js.map
178
+ //# sourceMappingURL=auth-store-BGMYm_jK.js.map