@unidy.io/sdk 1.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/app-globals-DSKjcXX_.js +10 -0
- package/dist/cjs/app-globals-DSKjcXX_.js.map +1 -0
- package/dist/cjs/{auth-COn3PdbX.js → auth-BVKZHhXz.js} +11 -14
- package/dist/cjs/{auth-COn3PdbX.js.map → auth-BVKZHhXz.js.map} +1 -1
- package/dist/cjs/{auth-store-BT2pDmTN.js → auth-store-DC9EVec8.js} +4 -4
- package/dist/cjs/{auth-store-BT2pDmTN.js.map → auth-store-DC9EVec8.js.map} +1 -1
- package/dist/cjs/{flash-store-Bz-eFpp2.js → flash-store-BuIBuQDx.js} +3 -3
- package/dist/cjs/{flash-store-Bz-eFpp2.js.map → flash-store-BuIBuQDx.js.map} +1 -1
- package/dist/cjs/{i18n-DNuyTvmJ.js → i18n-Xy1So-ba.js} +580 -26
- package/dist/cjs/i18n-Xy1So-ba.js.map +1 -0
- package/dist/cjs/index-B_N5xKgH.js +12025 -0
- package/dist/cjs/index-B_N5xKgH.js.map +1 -0
- package/dist/cjs/{index-JpRzPaSm.js → index-DLz3FT7T.js} +3 -3
- package/dist/cjs/{index-JpRzPaSm.js.map → index-DLz3FT7T.js.map} +1 -1
- package/dist/cjs/{index-CtJ5meJ7.js → index-DiUlebpf.js} +18 -17
- package/dist/cjs/index-DiUlebpf.js.map +1 -0
- package/dist/cjs/index.cjs.js +10 -11
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +3 -4
- package/dist/cjs/loader.cjs.js.map +1 -1
- package/dist/cjs/{newsletter-helpers-BINJr8bg.js → newsletter-helpers-DtXuIac8.js} +9 -8
- package/dist/cjs/{newsletter-helpers-BINJr8bg.js.map → newsletter-helpers-DtXuIac8.js.map} +1 -1
- package/dist/cjs/{newsletter-store-D_RRzlpH.js → newsletter-store-dhtu8ywO.js} +3 -3
- package/dist/cjs/{newsletter-store-D_RRzlpH.js.map → newsletter-store-dhtu8ywO.js.map} +1 -1
- package/dist/cjs/{pagination-store-TtGIma9Z.js → pagination-store-BEiW3MQd.js} +3 -3
- package/dist/cjs/{pagination-store-TtGIma9Z.js.map → pagination-store-BEiW3MQd.js.map} +1 -1
- package/dist/cjs/{submit-button-logic-rhAjEO33.js → profile-helpers-DrcTgN5n.js} +4 -4
- package/dist/cjs/profile-helpers-DrcTgN5n.js.map +1 -0
- package/dist/cjs/{profile-store-JiqaDLcK.js → profile-store-P_BcYkef.js} +3 -3
- package/dist/cjs/{profile-store-JiqaDLcK.js.map → profile-store-P_BcYkef.js.map} +1 -1
- package/dist/cjs/sdk.cjs.js +3 -4
- package/dist/cjs/sdk.cjs.js.map +1 -1
- package/dist/cjs/u-conditional-render.cjs.entry.js +11 -12
- package/dist/cjs/u-conditional-render.entry.cjs.js.map +1 -1
- package/dist/cjs/u-config.cjs.entry.js +11 -12
- package/dist/cjs/u-config.entry.cjs.js.map +1 -1
- package/dist/cjs/u-email-field.cjs.entry.js +9 -8
- package/dist/cjs/u-email-field.entry.cjs.js.map +1 -1
- package/dist/cjs/u-error-message.cjs.entry.js +6 -6
- package/dist/cjs/u-field.u-raw-field.entry.cjs.js.map +1 -1
- package/dist/cjs/u-field_2.cjs.entry.js +13 -11
- package/dist/cjs/u-flash-message.cjs.entry.js +3 -3
- package/dist/cjs/u-full-profile.cjs.entry.js +6 -6
- package/dist/cjs/u-full-profile.entry.cjs.js.map +1 -1
- package/dist/cjs/u-logout-button.cjs.entry.js +9 -10
- package/dist/cjs/u-logout-button.entry.cjs.js.map +1 -1
- package/dist/cjs/u-magic-code-field.cjs.entry.js +11 -12
- package/dist/cjs/u-magic-code-field.entry.cjs.js.map +1 -1
- package/dist/cjs/u-missing-field.cjs.entry.js +4 -4
- package/dist/cjs/u-missing-fields-submit-button.cjs.entry.js +10 -11
- package/dist/cjs/u-missing-fields-submit-button.entry.cjs.js.map +1 -1
- package/dist/cjs/u-newsletter-checkbox.cjs.entry.js +11 -12
- package/dist/cjs/u-newsletter-checkbox.entry.cjs.js.map +1 -1
- package/dist/cjs/u-newsletter-logout-button.cjs.entry.js +11 -12
- package/dist/cjs/u-newsletter-logout-button.entry.cjs.js.map +1 -1
- package/dist/cjs/u-newsletter-preference-checkbox.cjs.entry.js +11 -12
- package/dist/cjs/u-newsletter-preference-checkbox.entry.cjs.js.map +1 -1
- package/dist/cjs/u-newsletter-resend-doi-button.cjs.entry.js +11 -12
- package/dist/cjs/u-newsletter-resend-doi-button.entry.cjs.js.map +1 -1
- package/dist/cjs/u-newsletter-root.cjs.entry.js +20 -14
- package/dist/cjs/u-newsletter-root.entry.cjs.js.map +1 -1
- package/dist/cjs/u-newsletter-toggle-subscription-button.cjs.entry.js +11 -12
- package/dist/cjs/u-newsletter-toggle-subscription-button.entry.cjs.js.map +1 -1
- package/dist/cjs/u-pagination-button.cjs.entry.js +1 -1
- package/dist/cjs/u-pagination-button.entry.cjs.js.map +1 -1
- package/dist/cjs/u-pagination-page.cjs.entry.js +1 -1
- package/dist/cjs/u-passkey.cjs.entry.js +9 -10
- package/dist/cjs/u-passkey.entry.cjs.js.map +1 -1
- package/dist/cjs/u-password-field.cjs.entry.js +5 -5
- package/dist/cjs/u-profile.u-submit-button.entry.cjs.js.map +1 -1
- package/dist/cjs/u-profile_2.cjs.entry.js +39 -59
- package/dist/cjs/u-registration-button.cjs.entry.js +5 -5
- package/dist/cjs/u-reset-password-button.cjs.entry.js +9 -10
- package/dist/cjs/u-reset-password-button.entry.cjs.js.map +1 -1
- package/dist/cjs/u-send-magic-code-button.cjs.entry.js +9 -10
- package/dist/cjs/u-send-magic-code-button.entry.cjs.js.map +1 -1
- package/dist/cjs/u-signed-in.cjs.entry.js +4 -4
- package/dist/cjs/u-signin-root.cjs.entry.js +4 -4
- package/dist/cjs/u-signin-root.entry.cjs.js.map +1 -1
- package/dist/cjs/u-signin-step.cjs.entry.js +9 -10
- package/dist/cjs/u-signin-step.entry.cjs.js.map +1 -1
- package/dist/cjs/u-signin-strategy.cjs.entry.js +4 -4
- package/dist/cjs/u-social-login-button.cjs.entry.js +8 -9
- package/dist/cjs/u-social-login-button.entry.cjs.js.map +1 -1
- package/dist/cjs/u-spinner.cjs.entry.js +3 -3
- package/dist/cjs/u-spinner.entry.cjs.js.map +1 -1
- package/dist/cjs/u-ticketable-list.cjs.entry.js +9 -10
- package/dist/cjs/u-ticketable-list.entry.cjs.js.map +1 -1
- package/dist/cjs/{unidy-store-C1O0g41c.js → unidy-store-7AbWnZ6g.js} +3 -3
- package/dist/cjs/{unidy-store-C1O0g41c.js.map → unidy-store-7AbWnZ6g.js.map} +1 -1
- package/dist/collection/api/client.js +4 -2
- package/dist/collection/api/client.js.map +1 -1
- package/dist/collection/auth/api/auth.js +1 -1
- package/dist/collection/auth/api/auth.js.map +1 -1
- package/dist/collection/auth/components/magic-code-field/magic-code-field.css +1 -1
- package/dist/collection/auth/components/magic-code-field/magic-code-field.js +1 -1
- package/dist/collection/auth/components/magic-code-field/magic-code-field.js.map +1 -1
- package/dist/collection/auth/components/missing-fields-submit-button/missing-fields-submit-button.js +1 -1
- package/dist/collection/auth/components/missing-fields-submit-button/missing-fields-submit-button.js.map +1 -1
- package/dist/collection/auth/components/signin-root/signin-root.js.map +1 -1
- package/dist/collection/auth/components/social-logins/social-login-button.js +1 -1
- package/dist/collection/auth/components/social-logins/social-login-button.js.map +1 -1
- package/dist/collection/auth/components/submit-button/auth-submit-button.js +2 -5
- package/dist/collection/auth/components/submit-button/auth-submit-button.js.map +1 -1
- package/dist/collection/auth/passkey-auth.js +1 -3
- package/dist/collection/auth/passkey-auth.js.map +1 -1
- package/dist/collection/globalScript.js +1 -0
- package/dist/collection/globalScript.js.map +1 -1
- package/dist/collection/i18n.js +10 -4
- package/dist/collection/i18n.js.map +1 -1
- package/dist/collection/locales/fr.json +131 -0
- package/dist/collection/locales/it.json +131 -0
- package/dist/collection/locales/nl_be.json +131 -0
- package/dist/collection/locales/ro.json +131 -0
- package/dist/collection/logger.js +25 -55
- package/dist/collection/logger.js.map +1 -1
- package/dist/collection/newsletter/api/newsletters.js +1 -1
- package/dist/collection/newsletter/api/newsletters.js.map +1 -1
- package/dist/collection/newsletter/components/newsletter-root/newsletter-root.js +25 -9
- package/dist/collection/newsletter/components/newsletter-root/newsletter-root.js.map +1 -1
- package/dist/collection/newsletter/components/submit-button/newsletter-submit-button.js +6 -6
- package/dist/collection/newsletter/components/submit-button/newsletter-submit-button.js.map +1 -1
- package/dist/collection/profile/components/field/field.css +1 -1
- package/dist/collection/profile/components/field/field.js +7 -5
- package/dist/collection/profile/components/field/field.js.map +1 -1
- package/dist/collection/profile/components/full-profile/full-profile.css +1 -1
- package/dist/collection/profile/components/profile/profile.js +1 -1
- package/dist/collection/profile/components/profile/profile.js.map +1 -1
- package/dist/collection/profile/components/raw-input-fields/MultiSelect.js.map +1 -1
- package/dist/collection/profile/components/submit-button/profile-submit-button.js +2 -7
- package/dist/collection/profile/components/submit-button/profile-submit-button.js.map +1 -1
- package/dist/collection/{shared/components/u-fields-submit-button-logic/submit-button-logic.js → profile/profile-helpers.js} +3 -3
- package/dist/collection/profile/profile-helpers.js.map +1 -0
- package/dist/collection/sdk.css +2 -2
- package/dist/collection/shared/components/config/config.js +1 -1
- package/dist/collection/shared/components/config/config.js.map +1 -1
- package/dist/collection/shared/components/email-field/email-field.js +31 -5
- package/dist/collection/shared/components/email-field/email-field.js.map +1 -1
- package/dist/collection/shared/components/spinner/spinner.css +1 -1
- package/dist/collection/shared/components/spinner/spinner.js +1 -1
- package/dist/collection/shared/components/spinner/spinner.js.map +1 -1
- package/dist/collection/shared/components/submit-button/context.js +2 -3
- package/dist/collection/shared/components/submit-button/context.js.map +1 -1
- package/dist/collection/shared/components/submit-button/submit-button.js +14 -19
- package/dist/collection/shared/components/submit-button/submit-button.js.map +1 -1
- package/dist/collection/ticketable/components/pagination/pagination-button.js.map +1 -1
- package/dist/collection/ticketable/components/ticketable-list/ticketable-list.js +2 -2
- package/dist/collection/ticketable/components/ticketable-list/ticketable-list.js.map +1 -1
- package/dist/components/auth.js +0 -2
- package/dist/components/auth.js.map +1 -1
- package/dist/components/field.js +8 -6
- package/dist/components/field.js.map +1 -1
- package/dist/components/i18n.js +576 -22
- package/dist/components/i18n.js.map +1 -1
- package/dist/components/index.js +1 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/index2.js +6 -4
- package/dist/components/index2.js.map +1 -1
- package/dist/components/logger.js +25 -55
- package/dist/components/logger.js.map +1 -1
- package/dist/components/newsletter-helpers.js +1 -1
- package/dist/components/{submit-button-logic.js → profile-helpers.js} +2 -2
- package/dist/components/profile-helpers.js.map +1 -0
- package/dist/components/profile.js +1 -1
- package/dist/components/profile.js.map +1 -1
- package/dist/components/raw-field.js.map +1 -1
- package/dist/components/spinner.js +2 -2
- package/dist/components/spinner.js.map +1 -1
- package/dist/components/submit-button.js +26 -45
- package/dist/components/submit-button.js.map +1 -1
- package/dist/components/u-config.js +1 -1
- package/dist/components/u-config.js.map +1 -1
- package/dist/components/u-email-field.js +7 -5
- package/dist/components/u-email-field.js.map +1 -1
- package/dist/components/u-full-profile.js +1 -1
- package/dist/components/u-full-profile.js.map +1 -1
- package/dist/components/u-magic-code-field.js +2 -2
- package/dist/components/u-magic-code-field.js.map +1 -1
- package/dist/components/u-missing-fields-submit-button.js +1 -1
- package/dist/components/u-missing-fields-submit-button.js.map +1 -1
- package/dist/components/u-newsletter-root.js +14 -7
- package/dist/components/u-newsletter-root.js.map +1 -1
- package/dist/components/u-newsletter-toggle-subscription-button.js +1 -1
- package/dist/components/u-pagination-button.js.map +1 -1
- package/dist/components/u-signin-root.js.map +1 -1
- package/dist/components/u-social-login-button.js +1 -1
- package/dist/components/u-social-login-button.js.map +1 -1
- package/dist/components/u-ticketable-list.js +2 -2
- package/dist/components/u-ticketable-list.js.map +1 -1
- package/dist/esm/app-globals-CPU9ZcqZ.js +8 -0
- package/dist/esm/app-globals-CPU9ZcqZ.js.map +1 -0
- package/dist/esm/{auth-C6B1Fl8C.js → auth-DLKPv5Zm.js} +9 -12
- package/dist/esm/{auth-C6B1Fl8C.js.map → auth-DLKPv5Zm.js.map} +1 -1
- package/dist/esm/{auth-store-BXzAv0RK.js → auth-store-BMqUdTpC.js} +4 -4
- package/dist/esm/{auth-store-BXzAv0RK.js.map → auth-store-BMqUdTpC.js.map} +1 -1
- package/dist/esm/{flash-store-CF5vw4w-.js → flash-store-CEvWSG0c.js} +3 -3
- package/dist/esm/{flash-store-CF5vw4w-.js.map → flash-store-CEvWSG0c.js.map} +1 -1
- package/dist/esm/{i18n-CPEM4Hc_.js → i18n-BR-AGAnn.js} +580 -26
- package/dist/esm/i18n-BR-AGAnn.js.map +1 -0
- package/dist/esm/{index-CJnDmBjL.js → index-Bjp1XO-f.js} +3 -3
- package/dist/esm/{index-CJnDmBjL.js.map → index-Bjp1XO-f.js.map} +1 -1
- package/dist/esm/index-Ci3aTmzp.js +12007 -0
- package/dist/esm/index-Ci3aTmzp.js.map +1 -0
- package/dist/esm/{index-CmoCWXkx.js → index-DKaIwo59.js} +12 -11
- package/dist/esm/index-DKaIwo59.js.map +1 -0
- package/dist/esm/index.js +10 -11
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/loader.js +4 -5
- package/dist/esm/loader.js.map +1 -1
- package/dist/esm/{newsletter-helpers-D9OpR1Yd.js → newsletter-helpers-VixG_zoB.js} +9 -9
- package/dist/esm/{newsletter-helpers-D9OpR1Yd.js.map → newsletter-helpers-VixG_zoB.js.map} +1 -1
- package/dist/esm/{newsletter-store-Bx1ysKBb.js → newsletter-store-BYmuLQg8.js} +3 -3
- package/dist/esm/{newsletter-store-Bx1ysKBb.js.map → newsletter-store-BYmuLQg8.js.map} +1 -1
- package/dist/esm/{pagination-store-B-ivWcjb.js → pagination-store-DzdJOp-n.js} +3 -3
- package/dist/esm/{pagination-store-B-ivWcjb.js.map → pagination-store-DzdJOp-n.js.map} +1 -1
- package/dist/esm/{submit-button-logic-CtMezaoG.js → profile-helpers-7onubaoR.js} +4 -4
- package/dist/esm/profile-helpers-7onubaoR.js.map +1 -0
- package/dist/esm/{profile-store-By-nqzr9.js → profile-store-RmZB2PTc.js} +3 -3
- package/dist/esm/{profile-store-By-nqzr9.js.map → profile-store-RmZB2PTc.js.map} +1 -1
- package/dist/esm/sdk.js +4 -5
- package/dist/esm/sdk.js.map +1 -1
- package/dist/esm/u-conditional-render.entry.js +11 -12
- package/dist/esm/u-conditional-render.entry.js.map +1 -1
- package/dist/esm/u-config.entry.js +10 -11
- package/dist/esm/u-config.entry.js.map +1 -1
- package/dist/esm/u-email-field.entry.js +9 -8
- package/dist/esm/u-email-field.entry.js.map +1 -1
- package/dist/esm/u-error-message.entry.js +6 -6
- package/dist/esm/u-field.u-raw-field.entry.js.map +1 -1
- package/dist/esm/u-field_2.entry.js +13 -11
- package/dist/esm/u-flash-message.entry.js +3 -3
- package/dist/esm/u-full-profile.entry.js +6 -6
- package/dist/esm/u-full-profile.entry.js.map +1 -1
- package/dist/esm/u-logout-button.entry.js +9 -10
- package/dist/esm/u-logout-button.entry.js.map +1 -1
- package/dist/esm/u-magic-code-field.entry.js +11 -12
- package/dist/esm/u-magic-code-field.entry.js.map +1 -1
- package/dist/esm/u-missing-field.entry.js +4 -4
- package/dist/esm/u-missing-fields-submit-button.entry.js +8 -9
- package/dist/esm/u-missing-fields-submit-button.entry.js.map +1 -1
- package/dist/esm/u-newsletter-checkbox.entry.js +11 -12
- package/dist/esm/u-newsletter-checkbox.entry.js.map +1 -1
- package/dist/esm/u-newsletter-logout-button.entry.js +11 -12
- package/dist/esm/u-newsletter-logout-button.entry.js.map +1 -1
- package/dist/esm/u-newsletter-preference-checkbox.entry.js +11 -12
- package/dist/esm/u-newsletter-preference-checkbox.entry.js.map +1 -1
- package/dist/esm/u-newsletter-resend-doi-button.entry.js +11 -12
- package/dist/esm/u-newsletter-resend-doi-button.entry.js.map +1 -1
- package/dist/esm/u-newsletter-root.entry.js +20 -14
- package/dist/esm/u-newsletter-root.entry.js.map +1 -1
- package/dist/esm/u-newsletter-toggle-subscription-button.entry.js +11 -12
- package/dist/esm/u-newsletter-toggle-subscription-button.entry.js.map +1 -1
- package/dist/esm/u-pagination-button.entry.js +1 -1
- package/dist/esm/u-pagination-button.entry.js.map +1 -1
- package/dist/esm/u-pagination-page.entry.js +1 -1
- package/dist/esm/u-passkey.entry.js +9 -10
- package/dist/esm/u-passkey.entry.js.map +1 -1
- package/dist/esm/u-password-field.entry.js +5 -5
- package/dist/esm/u-profile.u-submit-button.entry.js.map +1 -1
- package/dist/esm/u-profile_2.entry.js +36 -56
- package/dist/esm/u-registration-button.entry.js +5 -5
- package/dist/esm/u-reset-password-button.entry.js +9 -10
- package/dist/esm/u-reset-password-button.entry.js.map +1 -1
- package/dist/esm/u-send-magic-code-button.entry.js +9 -10
- package/dist/esm/u-send-magic-code-button.entry.js.map +1 -1
- package/dist/esm/u-signed-in.entry.js +4 -4
- package/dist/esm/u-signin-root.entry.js +4 -4
- package/dist/esm/u-signin-root.entry.js.map +1 -1
- package/dist/esm/u-signin-step.entry.js +9 -10
- package/dist/esm/u-signin-step.entry.js.map +1 -1
- package/dist/esm/u-signin-strategy.entry.js +4 -4
- package/dist/esm/u-social-login-button.entry.js +7 -8
- package/dist/esm/u-social-login-button.entry.js.map +1 -1
- package/dist/esm/u-spinner.entry.js +3 -3
- package/dist/esm/u-spinner.entry.js.map +1 -1
- package/dist/esm/u-ticketable-list.entry.js +9 -10
- package/dist/esm/u-ticketable-list.entry.js.map +1 -1
- package/dist/esm/{unidy-store-C2nKKukb.js → unidy-store-BldTAtO0.js} +3 -3
- package/dist/esm/{unidy-store-C2nKKukb.js.map → unidy-store-BldTAtO0.js.map} +1 -1
- package/dist/sdk/index.esm.js +1 -1
- package/dist/sdk/index.esm.js.map +1 -1
- package/dist/sdk/loader.esm.js.map +1 -1
- package/dist/sdk/locales/fr.json +131 -0
- package/dist/sdk/locales/it.json +131 -0
- package/dist/sdk/locales/nl_be.json +131 -0
- package/dist/sdk/locales/ro.json +131 -0
- package/dist/sdk/p-0b47e1be.entry.js +2 -0
- package/dist/sdk/p-0b47e1be.entry.js.map +1 -0
- package/dist/sdk/p-20240b02.entry.js +2 -0
- package/dist/sdk/p-20240b02.entry.js.map +1 -0
- package/dist/sdk/{p-8a472938.entry.js → p-2da4497a.entry.js} +2 -2
- package/dist/sdk/{p-b0307804.entry.js → p-36433853.entry.js} +2 -2
- package/dist/sdk/p-36433853.entry.js.map +1 -0
- package/dist/sdk/p-431ec460.entry.js +2 -0
- package/dist/sdk/p-431ec460.entry.js.map +1 -0
- package/dist/sdk/{p-08ddbde8.entry.js → p-5da49d00.entry.js} +2 -2
- package/dist/sdk/p-67096601.entry.js +2 -0
- package/dist/sdk/p-67096601.entry.js.map +1 -0
- package/dist/sdk/{p-63ff8516.entry.js → p-6893d167.entry.js} +2 -2
- package/dist/sdk/p-7068661a.entry.js +2 -0
- package/dist/sdk/p-7068661a.entry.js.map +1 -0
- package/dist/sdk/p-72dc8aa9.entry.js +2 -0
- package/dist/sdk/p-72dc8aa9.entry.js.map +1 -0
- package/dist/sdk/{p-c2098f5e.entry.js → p-73c2ec89.entry.js} +2 -2
- package/dist/sdk/p-745742f1.entry.js +2 -0
- package/dist/sdk/p-7a7c0db2.entry.js +2 -0
- package/dist/sdk/p-7a7c0db2.entry.js.map +1 -0
- package/dist/sdk/{p-2ed0b79c.entry.js → p-7d6dc110.entry.js} +2 -2
- package/dist/sdk/{p-2ed0b79c.entry.js.map → p-7d6dc110.entry.js.map} +1 -1
- package/dist/sdk/{p-5d859a51.entry.js → p-8d787494.entry.js} +2 -2
- package/dist/sdk/p-94dde7e5.entry.js +2 -0
- package/dist/sdk/p-94dde7e5.entry.js.map +1 -0
- package/dist/sdk/p-97d8ae02.entry.js +2 -0
- package/dist/sdk/p-97d8ae02.entry.js.map +1 -0
- package/dist/sdk/p-9c396daf.entry.js +2 -0
- package/dist/sdk/p-9c396daf.entry.js.map +1 -0
- package/dist/sdk/p-9da4dd6d.entry.js +2 -0
- package/dist/sdk/p-9da4dd6d.entry.js.map +1 -0
- package/dist/sdk/{p-ClhmT9TC.js → p-BZ1kW_eK.js} +2 -2
- package/dist/sdk/{p-ClhmT9TC.js.map → p-BZ1kW_eK.js.map} +1 -1
- package/dist/sdk/p-BlOjABPD.js +2 -0
- package/dist/sdk/{p-DBjPNcZQ.js.map → p-BlOjABPD.js.map} +1 -1
- package/dist/sdk/{p-BvjIpzI-.js → p-C0feI0p8.js} +2 -2
- package/dist/sdk/{p-BvjIpzI-.js.map → p-C0feI0p8.js.map} +1 -1
- package/dist/sdk/{p-BGi6Sl8y.js → p-CDtLILSR.js} +2 -2
- package/dist/sdk/{p-BGi6Sl8y.js.map → p-CDtLILSR.js.map} +1 -1
- package/dist/sdk/p-CFiZLMAA.js +2 -0
- package/dist/sdk/p-CFiZLMAA.js.map +1 -0
- package/dist/sdk/p-CR1oWC4S.js +2 -0
- package/dist/sdk/p-CR1oWC4S.js.map +1 -0
- package/dist/sdk/p-Ce8zGAi1.js +2 -0
- package/dist/sdk/{p-BeGO8MZ-.js.map → p-Ce8zGAi1.js.map} +1 -1
- package/dist/sdk/p-Ci3aTmzp.js +3 -0
- package/dist/sdk/p-Ci3aTmzp.js.map +1 -0
- package/dist/sdk/p-D4B6Zkq_.js +2 -0
- package/dist/sdk/p-D4B6Zkq_.js.map +1 -0
- package/dist/sdk/p-D8RGdjD3.js +2 -0
- package/dist/sdk/{p-CPMAxeLD.js.map → p-D8RGdjD3.js.map} +1 -1
- package/dist/sdk/p-DGqadgLO.js +2 -0
- package/dist/sdk/{p-D6-66bay.js.map → p-DGqadgLO.js.map} +1 -1
- package/dist/sdk/{p-DNP3fccV.js → p-DSwwVdp1.js} +2 -2
- package/dist/sdk/{p-DNP3fccV.js.map → p-DSwwVdp1.js.map} +1 -1
- package/dist/sdk/{p-BLUKsznD.js → p-DYtgart8.js} +2 -2
- package/dist/sdk/{p-BLUKsznD.js.map → p-DYtgart8.js.map} +1 -1
- package/dist/sdk/p-add92871.entry.js +2 -0
- package/dist/sdk/p-add92871.entry.js.map +1 -0
- package/dist/sdk/{p-2ddce950.entry.js → p-bb5ae222.entry.js} +2 -2
- package/dist/sdk/{p-73dc1a32.entry.js → p-bbbec3d4.entry.js} +2 -2
- package/dist/sdk/p-c2b6c674.entry.js +2 -0
- package/dist/sdk/p-c2b6c674.entry.js.map +1 -0
- package/dist/sdk/p-c2fba7c8.entry.js +2 -0
- package/dist/sdk/{p-C-vcnxdk.js → p-cOfRiRUO.js} +2 -2
- package/dist/sdk/{p-C-vcnxdk.js.map → p-cOfRiRUO.js.map} +1 -1
- package/dist/sdk/p-cba5d81e.entry.js +2 -0
- package/dist/sdk/p-cba5d81e.entry.js.map +1 -0
- package/dist/sdk/p-cd516902.entry.js +2 -0
- package/dist/sdk/p-cd516902.entry.js.map +1 -0
- package/dist/sdk/p-d2c6179a.entry.js +2 -0
- package/dist/sdk/p-d2c6179a.entry.js.map +1 -0
- package/dist/sdk/{p-2f8f53ed.entry.js → p-dcd4e8f0.entry.js} +2 -2
- package/dist/sdk/p-de931f46.entry.js +2 -0
- package/dist/sdk/p-de931f46.entry.js.map +1 -0
- package/dist/sdk/p-e0ba330c.entry.js +2 -0
- package/dist/sdk/p-e0ba330c.entry.js.map +1 -0
- package/dist/sdk/p-e363a33c.entry.js +2 -0
- package/dist/sdk/p-e363a33c.entry.js.map +1 -0
- package/dist/sdk/p-fc51c88d.entry.js +2 -0
- package/dist/sdk/p-fc51c88d.entry.js.map +1 -0
- package/dist/sdk/sdk.css +2 -2
- package/dist/sdk/sdk.esm.js +1 -1
- package/dist/sdk/sdk.esm.js.map +1 -1
- package/dist/sdk/u-conditional-render.entry.esm.js.map +1 -1
- package/dist/sdk/u-config.entry.esm.js.map +1 -1
- package/dist/sdk/u-email-field.entry.esm.js.map +1 -1
- package/dist/sdk/u-field.u-raw-field.entry.esm.js.map +1 -1
- package/dist/sdk/u-full-profile.entry.esm.js.map +1 -1
- package/dist/sdk/u-logout-button.entry.esm.js.map +1 -1
- package/dist/sdk/u-magic-code-field.entry.esm.js.map +1 -1
- package/dist/sdk/u-missing-fields-submit-button.entry.esm.js.map +1 -1
- package/dist/sdk/u-newsletter-checkbox.entry.esm.js.map +1 -1
- package/dist/sdk/u-newsletter-logout-button.entry.esm.js.map +1 -1
- package/dist/sdk/u-newsletter-preference-checkbox.entry.esm.js.map +1 -1
- package/dist/sdk/u-newsletter-resend-doi-button.entry.esm.js.map +1 -1
- package/dist/sdk/u-newsletter-root.entry.esm.js.map +1 -1
- package/dist/sdk/u-newsletter-toggle-subscription-button.entry.esm.js.map +1 -1
- package/dist/sdk/u-pagination-button.entry.esm.js.map +1 -1
- package/dist/sdk/u-passkey.entry.esm.js.map +1 -1
- package/dist/sdk/u-profile.u-submit-button.entry.esm.js.map +1 -1
- package/dist/sdk/u-reset-password-button.entry.esm.js.map +1 -1
- package/dist/sdk/u-send-magic-code-button.entry.esm.js.map +1 -1
- package/dist/sdk/u-signin-root.entry.esm.js.map +1 -1
- package/dist/sdk/u-signin-step.entry.esm.js.map +1 -1
- package/dist/sdk/u-social-login-button.entry.esm.js.map +1 -1
- package/dist/sdk/u-spinner.entry.esm.js.map +1 -1
- package/dist/sdk/u-ticketable-list.entry.esm.js.map +1 -1
- package/dist/types/auth/components/submit-button/auth-submit-button.d.ts +1 -6
- package/dist/types/components.d.ts +7 -3
- package/dist/types/newsletter/components/newsletter-root/newsletter-root.d.ts +3 -2
- package/dist/types/newsletter/components/submit-button/newsletter-submit-button.d.ts +2 -6
- package/dist/types/profile/components/submit-button/profile-submit-button.d.ts +0 -3
- package/dist/types/{shared/components/u-fields-submit-button-logic/submit-button-logic.d.ts → profile/profile-helpers.d.ts} +1 -1
- package/dist/types/shared/components/email-field/email-field.d.ts +2 -0
- package/dist/types/shared/components/submit-button/context.d.ts +5 -6
- package/dist/types/shared/components/submit-button/submit-button.d.ts +2 -1
- package/package.json +9 -5
- package/readme.md +2 -1
- package/dist/cjs/app-globals-CBeI09cT.js +0 -5867
- package/dist/cjs/app-globals-CBeI09cT.js.map +0 -1
- package/dist/cjs/exports-BTNx1-cN.js +0 -4174
- package/dist/cjs/exports-BTNx1-cN.js.map +0 -1
- package/dist/cjs/i18n-DNuyTvmJ.js.map +0 -1
- package/dist/cjs/index-BSf3Eyrg.js +0 -2094
- package/dist/cjs/index-BSf3Eyrg.js.map +0 -1
- package/dist/cjs/index-CtJ5meJ7.js.map +0 -1
- package/dist/cjs/submit-button-logic-rhAjEO33.js.map +0 -1
- package/dist/collection/shared/components/u-fields-submit-button-logic/submit-button-logic.js.map +0 -1
- package/dist/components/submit-button-logic.js.map +0 -1
- package/dist/esm/app-globals-DAqFb8zM.js +0 -5865
- package/dist/esm/app-globals-DAqFb8zM.js.map +0 -1
- package/dist/esm/exports-D7pzDSGS.js +0 -4106
- package/dist/esm/exports-D7pzDSGS.js.map +0 -1
- package/dist/esm/i18n-CPEM4Hc_.js.map +0 -1
- package/dist/esm/index-BF13Y4es.js +0 -2078
- package/dist/esm/index-BF13Y4es.js.map +0 -1
- package/dist/esm/index-CmoCWXkx.js.map +0 -1
- package/dist/esm/submit-button-logic-CtMezaoG.js.map +0 -1
- package/dist/sdk/p-0ac36431.entry.js +0 -2
- package/dist/sdk/p-0bb59d95.entry.js +0 -2
- package/dist/sdk/p-1888fa34.entry.js +0 -2
- package/dist/sdk/p-1888fa34.entry.js.map +0 -1
- package/dist/sdk/p-206eaf1a.entry.js +0 -2
- package/dist/sdk/p-206eaf1a.entry.js.map +0 -1
- package/dist/sdk/p-219c8df7.entry.js +0 -2
- package/dist/sdk/p-219c8df7.entry.js.map +0 -1
- package/dist/sdk/p-266ceb9b.entry.js +0 -2
- package/dist/sdk/p-266ceb9b.entry.js.map +0 -1
- package/dist/sdk/p-2c01382e.entry.js +0 -2
- package/dist/sdk/p-2c01382e.entry.js.map +0 -1
- package/dist/sdk/p-3ec7dfe3.entry.js +0 -2
- package/dist/sdk/p-3ec7dfe3.entry.js.map +0 -1
- package/dist/sdk/p-40d9f876.entry.js +0 -2
- package/dist/sdk/p-40d9f876.entry.js.map +0 -1
- package/dist/sdk/p-4dbb57c3.entry.js +0 -2
- package/dist/sdk/p-4dbb57c3.entry.js.map +0 -1
- package/dist/sdk/p-4df06d55.entry.js +0 -2
- package/dist/sdk/p-4df06d55.entry.js.map +0 -1
- package/dist/sdk/p-65ab8315.entry.js +0 -2
- package/dist/sdk/p-65ab8315.entry.js.map +0 -1
- package/dist/sdk/p-88d2b9d6.entry.js +0 -2
- package/dist/sdk/p-88d2b9d6.entry.js.map +0 -1
- package/dist/sdk/p-8969d1ab.entry.js +0 -2
- package/dist/sdk/p-8969d1ab.entry.js.map +0 -1
- package/dist/sdk/p-8970a077.entry.js +0 -2
- package/dist/sdk/p-8970a077.entry.js.map +0 -1
- package/dist/sdk/p-9a5530ad.entry.js +0 -2
- package/dist/sdk/p-9a5530ad.entry.js.map +0 -1
- package/dist/sdk/p-BF13Y4es.js +0 -3
- package/dist/sdk/p-BF13Y4es.js.map +0 -1
- package/dist/sdk/p-BeGO8MZ-.js +0 -2
- package/dist/sdk/p-BsVyUZ6I.js +0 -2
- package/dist/sdk/p-BsVyUZ6I.js.map +0 -1
- package/dist/sdk/p-CPMAxeLD.js +0 -2
- package/dist/sdk/p-D6-66bay.js +0 -2
- package/dist/sdk/p-D7pzDSGS.js +0 -2
- package/dist/sdk/p-D7pzDSGS.js.map +0 -1
- package/dist/sdk/p-DBjPNcZQ.js +0 -2
- package/dist/sdk/p-KnO0pPVa.js +0 -2
- package/dist/sdk/p-KnO0pPVa.js.map +0 -1
- package/dist/sdk/p-PfzIdrPb.js +0 -2
- package/dist/sdk/p-PfzIdrPb.js.map +0 -1
- package/dist/sdk/p-b0307804.entry.js.map +0 -1
- package/dist/sdk/p-b5012f17.entry.js +0 -2
- package/dist/sdk/p-b5012f17.entry.js.map +0 -1
- package/dist/sdk/p-b733cd98.entry.js +0 -2
- package/dist/sdk/p-b733cd98.entry.js.map +0 -1
- package/dist/sdk/p-c723d85a.entry.js +0 -2
- package/dist/sdk/p-c723d85a.entry.js.map +0 -1
- package/dist/sdk/p-cabead0d.entry.js +0 -2
- package/dist/sdk/p-cabead0d.entry.js.map +0 -1
- package/dist/sdk/p-dab61f77.entry.js +0 -2
- package/dist/sdk/p-dab61f77.entry.js.map +0 -1
- package/dist/sdk/p-f38f9c60.entry.js +0 -2
- package/dist/sdk/p-f38f9c60.entry.js.map +0 -1
- /package/dist/sdk/{p-8a472938.entry.js.map → p-2da4497a.entry.js.map} +0 -0
- /package/dist/sdk/{p-08ddbde8.entry.js.map → p-5da49d00.entry.js.map} +0 -0
- /package/dist/sdk/{p-63ff8516.entry.js.map → p-6893d167.entry.js.map} +0 -0
- /package/dist/sdk/{p-c2098f5e.entry.js.map → p-73c2ec89.entry.js.map} +0 -0
- /package/dist/sdk/{p-0bb59d95.entry.js.map → p-745742f1.entry.js.map} +0 -0
- /package/dist/sdk/{p-5d859a51.entry.js.map → p-8d787494.entry.js.map} +0 -0
- /package/dist/sdk/{p-2ddce950.entry.js.map → p-bb5ae222.entry.js.map} +0 -0
- /package/dist/sdk/{p-73dc1a32.entry.js.map → p-bbbec3d4.entry.js.map} +0 -0
- /package/dist/sdk/{p-0ac36431.entry.js.map → p-c2fba7c8.entry.js.map} +0 -0
- /package/dist/sdk/{p-2f8f53ed.entry.js.map → p-dcd4e8f0.entry.js.map} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
3
|
+
var index = require('./index-DLz3FT7T.js');
|
|
4
4
|
|
|
5
5
|
const initialState = {
|
|
6
6
|
mode: "production",
|
|
@@ -36,6 +36,6 @@ function waitForConfig() {
|
|
|
36
36
|
exports.onChange = onChange;
|
|
37
37
|
exports.unidyState = unidyState;
|
|
38
38
|
exports.waitForConfig = waitForConfig;
|
|
39
|
-
//# sourceMappingURL=unidy-store-
|
|
39
|
+
//# sourceMappingURL=unidy-store-7AbWnZ6g.js.map
|
|
40
40
|
|
|
41
|
-
//# sourceMappingURL=unidy-store-
|
|
41
|
+
//# sourceMappingURL=unidy-store-7AbWnZ6g.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unidy-store-
|
|
1
|
+
{"version":3,"file":"unidy-store-7AbWnZ6g.js","sources":["src/shared/store/unidy-store.ts"],"sourcesContent":["import { createStore } from \"@stencil/store\";\n\nexport interface UnidyState {\n mode: \"production\" | \"development\";\n apiKey: string;\n baseUrl: string;\n locale: string;\n\n isConfigured: boolean;\n backendConnected: boolean;\n}\n\nconst initialState: UnidyState = {\n mode: \"production\",\n apiKey: \"\",\n baseUrl: \"\",\n locale: \"en\",\n\n isConfigured: false,\n backendConnected: true,\n};\n\nconst store = createStore<UnidyState>(initialState);\n\nexport const unidyState = store.state;\nexport const reset = store.reset;\nexport const onChange: <K extends keyof UnidyState>(prop: K, cb: (value: UnidyState[K]) => void) => () => void = store.onChange;\n\nconst CONFIG_TIMEOUT_MS = 1000;\n\nexport function waitForConfig(): Promise<void> {\n if (unidyState.isConfigured) {\n return Promise.resolve();\n }\n\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(() => {\n unsubscribe();\n reject(new Error(`Unidy SDK: <u-config> not found or not loaded within ${CONFIG_TIMEOUT_MS}ms`));\n }, CONFIG_TIMEOUT_MS);\n\n const unsubscribe = onChange(\"isConfigured\", (value) => {\n if (value) {\n clearTimeout(timeout);\n unsubscribe();\n resolve();\n }\n });\n });\n}\n"],"names":["createStore"],"mappings":";;;;AAYA,MAAM,YAAY,GAAe;AAC/B,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,MAAM,EAAE,EAAE;AACV,IAAA,OAAO,EAAE,EAAE;AACX,IAAA,MAAM,EAAE,IAAI;AAEZ,IAAA,YAAY,EAAE,KAAK;AACnB,IAAA,gBAAgB,EAAE,IAAI;CACvB;AAED,MAAM,KAAK,GAAGA,iBAAW,CAAa,YAAY,CAAC;AAEtC,MAAA,UAAU,GAAG,KAAK,CAAC;AAEnB,MAAA,QAAQ,GAA4F,KAAK,CAAC;AAEvH,MAAM,iBAAiB,GAAG,IAAI;SAEd,aAAa,GAAA;AAC3B,IAAA,IAAI,UAAU,CAAC,YAAY,EAAE;AAC3B,QAAA,OAAO,OAAO,CAAC,OAAO,EAAE;;IAG1B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACrC,QAAA,MAAM,OAAO,GAAG,UAAU,CAAC,MAAK;AAC9B,YAAA,WAAW,EAAE;YACb,MAAM,CAAC,IAAI,KAAK,CAAC,wDAAwD,iBAAiB,CAAA,EAAA,CAAI,CAAC,CAAC;SACjG,EAAE,iBAAiB,CAAC;QAErB,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC,KAAK,KAAI;YACrD,IAAI,KAAK,EAAE;gBACT,YAAY,CAAC,OAAO,CAAC;AACrB,gBAAA,WAAW,EAAE;AACb,gBAAA,OAAO,EAAE;;AAEb,SAAC,CAAC;AACJ,KAAC,CAAC;AACJ;;;;;;"}
|
|
@@ -40,7 +40,9 @@ export class ApiClient {
|
|
|
40
40
|
mergeHeaders(base, extra) {
|
|
41
41
|
const out = new Headers(base);
|
|
42
42
|
if (extra) {
|
|
43
|
-
new Headers(extra).forEach((v, k) =>
|
|
43
|
+
new Headers(extra).forEach((v, k) => {
|
|
44
|
+
out.set(k, v);
|
|
45
|
+
});
|
|
44
46
|
}
|
|
45
47
|
return out;
|
|
46
48
|
}
|
|
@@ -58,7 +60,7 @@ export class ApiClient {
|
|
|
58
60
|
try {
|
|
59
61
|
data = await res.json();
|
|
60
62
|
}
|
|
61
|
-
catch
|
|
63
|
+
catch {
|
|
62
64
|
data = undefined;
|
|
63
65
|
}
|
|
64
66
|
this.setConnectionStatus(true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,SAAS,CAAC;AAE5B,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAiBzC,MAAM,OAAO,SAAS;IAaX;IACA;IAbD,MAAM,CAAU,yBAAyB,GAAG;QAClD,iBAAiB;QACjB,cAAc;QACd,wBAAwB;QACxB,aAAa;QACb,2BAA2B;KAC5B,CAAC;IAEM,kBAAkB,CAAkC;IACpD,MAAM,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IAE3C,YACS,OAAe,EACf,OAAe,EACtB,kBAAmD;QAF5C,YAAO,GAAP,OAAO,CAAQ;QACf,YAAO,GAAP,OAAO,CAAQ;QAGtB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IAC/C,CAAC;IAEO,iBAAiB,CAAC,KAAc;QACtC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,SAAS,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QACxF,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,mBAAmB,CAAC,WAAoB;QAC9C,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAEO,WAAW;QACjB,MAAM,CAAC,GAAG,IAAI,OAAO,EAAE,CAAC;QACxB,CAAC,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QAC1C,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QACpC,CAAC,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,CAAC;IACX,CAAC;IAEO,YAAY,CAAC,IAAa,EAAE,KAAmB;QACrD,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,KAAK,CAAC,OAAO,CAAI,MAAc,EAAE,QAAgB,EAAE,IAAa,EAAE,OAAqB;QAC7F,IAAI,GAAG,GAAoB,IAAI,CAAC;QAChC,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,EAAE,EAAE;gBAC9C,MAAM;gBACN,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,SAAS;gBACtB,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC;gBACvD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,SAAS;aACxC,CAAC,CAAC;YAEH,IAAI,IAAmB,CAAC;YACxB,IAAI,CAAC;gBACH,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC1B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,GAAG,SAAS,CAAC;YACnB,CAAC;YAED,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAE/B,MAAM,QAAQ,GAAmB;gBAC/B,IAAI;gBACJ,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,OAAO,EAAE,GAAG,CAAC,EAAE;gBACf,eAAe,EAAE,KAAK;aACvB,CAAC;YAEF,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAEvD,IAAI,gBAAgB,EAAE,CAAC;gBACrB,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBAEhC,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE;oBAC7B,IAAI,EAAE,EAAE,UAAU,EAAE,kBAAkB,EAAE;oBACxC,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;iBAC5B,CAAC,CAAC;YACL,CAAC;YAED,MAAM,QAAQ,GAAmB;gBAC/B,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;gBACrD,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC7D,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE;gBAC1C,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,SAAS;gBACf,eAAe,EAAE,gBAAgB;aAClC,CAAC;YAEF,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAI,QAAgB,EAAE,OAAqB;QAClD,OAAO,IAAI,CAAC,OAAO,CAAI,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,IAAI,CAAI,QAAgB,EAAE,IAAY,EAAE,OAAqB;QACjE,OAAO,IAAI,CAAC,OAAO,CAAI,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,KAAK,CAAI,QAAgB,EAAE,IAAY,EAAE,OAAqB;QAClE,OAAO,IAAI,CAAC,OAAO,CAAI,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,MAAM,CAAI,QAAgB,EAAE,OAAqB;QACrD,OAAO,IAAI,CAAC,OAAO,CAAI,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAED,aAAa,CACX,YAAkC,EAClC,UAAmC,EACnC,WAAkC;QAIlC,MAAM,EAAE,GAAG,KAAK,EAAE,IAAW,EAAE,MAAgB,EAAE,EAAE;YACjD,YAAY;YACZ,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YAEjC,iDAAiD;YACjD,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,IAAI,WAAW,IAAI,MAAM,EAAE,CAAC;gBAC1B,MAAM,eAAe,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAClD,WAAW,GAAG,IAAI,IAAI,eAAe,CAAC,eAAyC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;YAChG,CAAC;YAED,MAAM,OAAO,GAAG,GAAG,OAAO,GAAG,WAAW,EAAE,CAAC;YAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAU,OAAO,CAAC,CAAC;YAElD,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACxC,OAAO,QAAgC,CAAC;YAC1C,CAAC;YAED,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAErD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC3D,OAAO;oBACL,GAAG,QAAQ;oBACX,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,CAAC,CAAC,gCAAgC,EAAE;wBACzC,YAAY,EAAE,yBAAyB;qBACxC,CAAC;oBACF,IAAI,EAAE,SAAS;iBAChB,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,GAAG,QAAQ;gBACX,IAAI,EAAE,MAAM,CAAC,IAAI;aAClB,CAAC;QACJ,CAAC,CAAC;QACF,+EAA+E;QAC/E,OAAO,EAAS,CAAC;IACnB,CAAC","sourcesContent":["import * as Sentry from \"@sentry/browser\";\nimport { t } from \"../i18n\";\nimport type * as z from \"zod\";\nimport { createLogger } from \"../logger\";\n\nexport interface ApiResponse<T> {\n data?: T;\n success: boolean;\n status: number;\n headers: Headers;\n error?: Error | string;\n connectionError?: boolean; // when backend is unreachable (network error, connection refused, etc.)\n}\n\nexport type ApiConfig = {\n baseUrl: string;\n apiKey: string;\n onConnectionChange?: (isConnected: boolean) => void;\n};\n\nexport class ApiClient {\n private static readonly CONNECTION_ERROR_MESSAGES = [\n \"Failed to fetch\",\n \"NetworkError\",\n \"ERR_CONNECTION_REFUSED\",\n \"ERR_NETWORK\",\n \"ERR_INTERNET_DISCONNECTED\",\n ];\n\n private onConnectionChange?: (isConnected: boolean) => void;\n private logger = createLogger(\"ApiClient\");\n\n constructor(\n public baseUrl: string,\n public api_key: string,\n onConnectionChange?: (isConnected: boolean) => void,\n ) {\n this.api_key = api_key;\n this.onConnectionChange = onConnectionChange;\n }\n\n private isConnectionError(error: unknown): boolean {\n if (error instanceof Error) {\n return ApiClient.CONNECTION_ERROR_MESSAGES.some((msg) => error.message.includes(msg));\n }\n\n return false;\n }\n\n private setConnectionStatus(isConnected: boolean) {\n if (this.onConnectionChange) {\n this.onConnectionChange(isConnected);\n }\n }\n\n private baseHeaders(): Headers {\n const h = new Headers();\n h.set(\"Content-Type\", \"application/json\");\n h.set(\"Accept\", \"application/json\");\n h.set(\"Authorization\", `Bearer ${this.api_key}`);\n return h;\n }\n\n private mergeHeaders(base: Headers, extra?: HeadersInit): Headers {\n const out = new Headers(base);\n if (extra) {\n new Headers(extra).forEach((v, k) => out.set(k, v));\n }\n return out;\n }\n\n private async request<T>(method: string, endpoint: string, body?: object, headers?: HeadersInit): Promise<ApiResponse<T>> {\n let res: Response | null = null;\n try {\n res = await fetch(`${this.baseUrl}${endpoint}`, {\n method,\n mode: \"cors\",\n credentials: \"include\",\n headers: this.mergeHeaders(this.baseHeaders(), headers),\n body: JSON.stringify(body) || undefined,\n });\n\n let data: T | undefined;\n try {\n data = await res.json();\n } catch (e) {\n data = undefined;\n }\n\n this.setConnectionStatus(true);\n\n const response: ApiResponse<T> = {\n data,\n status: res.status,\n headers: res.headers,\n success: res.ok,\n connectionError: false,\n };\n\n return response;\n } catch (error) {\n const connectionFailed = this.isConnectionError(error);\n\n if (connectionFailed) {\n this.setConnectionStatus(false);\n\n Sentry.captureException(error, {\n tags: { error_type: \"connection_error\" },\n extra: { endpoint, method },\n });\n }\n\n const response: ApiResponse<T> = {\n status: res ? res.status : connectionFailed ? 0 : 500,\n error: error instanceof Error ? error.message : String(error),\n headers: res ? res.headers : new Headers(),\n success: false,\n data: undefined,\n connectionError: connectionFailed,\n };\n\n return response;\n }\n }\n\n async get<T>(endpoint: string, headers?: HeadersInit): Promise<ApiResponse<T>> {\n return this.request<T>(\"GET\", endpoint, undefined, headers);\n }\n\n async post<T>(endpoint: string, body: object, headers?: HeadersInit): Promise<ApiResponse<T>> {\n return this.request<T>(\"POST\", endpoint, body, headers);\n }\n\n async patch<T>(endpoint: string, body: object, headers?: HeadersInit): Promise<ApiResponse<T>> {\n return this.request<T>(\"PATCH\", endpoint, body, headers);\n }\n\n async delete<T>(endpoint: string, headers?: HeadersInit): Promise<ApiResponse<T>> {\n return this.request<T>(\"DELETE\", endpoint, undefined, headers);\n }\n\n getWithSchema<TReturn, TArgs extends object, TParams = undefined>(\n returnSchema: z.ZodSchema<TReturn>,\n urlBuilder: (args: TArgs) => string,\n paramSchema?: z.ZodSchema<TParams>,\n ): TParams extends undefined\n ? (args: TArgs) => Promise<ApiResponse<TReturn>>\n : (args: TArgs, params?: TParams) => Promise<ApiResponse<TReturn>> {\n const fn = async (args: TArgs, params?: TParams) => {\n // Build URL\n const baseUrl = urlBuilder(args);\n\n // Validate and parse params with Zod if provided\n let queryString = \"\";\n if (paramSchema && params) {\n const validatedParams = paramSchema.parse(params);\n queryString = `?${new URLSearchParams(validatedParams as Record<string, string>).toString()}`;\n }\n\n const fullUrl = `${baseUrl}${queryString}`;\n const response = await this.get<unknown>(fullUrl);\n\n if (!response.success || !response.data) {\n return response as ApiResponse<TReturn>;\n }\n\n const parsed = returnSchema.safeParse(response.data);\n\n if (!parsed.success) {\n this.logger.error(\"Invalid response format\", parsed.error);\n return {\n ...response,\n success: false,\n error: t(\"errors.invalid_response_format\", {\n defaultValue: \"Invalid response format\",\n }),\n data: undefined,\n };\n }\n\n return {\n ...response,\n data: parsed.data,\n };\n };\n // biome-ignore lint/suspicious/noExplicitAny: fn can literally be any function\n return fn as any;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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","sourcesContent":["import * as Sentry from \"@sentry/browser\";\nimport { t } from \"../i18n\";\nimport type * as z from \"zod\";\nimport { createLogger } from \"../logger\";\n\nexport interface ApiResponse<T> {\n data?: T;\n success: boolean;\n status: number;\n headers: Headers;\n error?: Error | string;\n connectionError?: boolean; // when backend is unreachable (network error, connection refused, etc.)\n}\n\nexport type ApiConfig = {\n baseUrl: string;\n apiKey: string;\n onConnectionChange?: (isConnected: boolean) => void;\n};\n\nexport class ApiClient {\n private static readonly CONNECTION_ERROR_MESSAGES = [\n \"Failed to fetch\",\n \"NetworkError\",\n \"ERR_CONNECTION_REFUSED\",\n \"ERR_NETWORK\",\n \"ERR_INTERNET_DISCONNECTED\",\n ];\n\n private onConnectionChange?: (isConnected: boolean) => void;\n private logger = createLogger(\"ApiClient\");\n\n constructor(\n public baseUrl: string,\n public api_key: string,\n onConnectionChange?: (isConnected: boolean) => void,\n ) {\n this.api_key = api_key;\n this.onConnectionChange = onConnectionChange;\n }\n\n private isConnectionError(error: unknown): boolean {\n if (error instanceof Error) {\n return ApiClient.CONNECTION_ERROR_MESSAGES.some((msg) => error.message.includes(msg));\n }\n\n return false;\n }\n\n private setConnectionStatus(isConnected: boolean) {\n if (this.onConnectionChange) {\n this.onConnectionChange(isConnected);\n }\n }\n\n private baseHeaders(): Headers {\n const h = new Headers();\n h.set(\"Content-Type\", \"application/json\");\n h.set(\"Accept\", \"application/json\");\n h.set(\"Authorization\", `Bearer ${this.api_key}`);\n return h;\n }\n\n private mergeHeaders(base: Headers, extra?: HeadersInit): Headers {\n const out = new Headers(base);\n if (extra) {\n new Headers(extra).forEach((v, k) => {\n out.set(k, v);\n });\n }\n return out;\n }\n\n private async request<T>(method: string, endpoint: string, body?: object, headers?: HeadersInit): Promise<ApiResponse<T>> {\n let res: Response | null = null;\n try {\n res = await fetch(`${this.baseUrl}${endpoint}`, {\n method,\n mode: \"cors\",\n credentials: \"include\",\n headers: this.mergeHeaders(this.baseHeaders(), headers),\n body: JSON.stringify(body) || undefined,\n });\n\n let data: T | undefined;\n try {\n data = await res.json();\n } catch {\n data = undefined;\n }\n\n this.setConnectionStatus(true);\n\n const response: ApiResponse<T> = {\n data,\n status: res.status,\n headers: res.headers,\n success: res.ok,\n connectionError: false,\n };\n\n return response;\n } catch (error) {\n const connectionFailed = this.isConnectionError(error);\n\n if (connectionFailed) {\n this.setConnectionStatus(false);\n\n Sentry.captureException(error, {\n tags: { error_type: \"connection_error\" },\n extra: { endpoint, method },\n });\n }\n\n const response: ApiResponse<T> = {\n status: res ? res.status : connectionFailed ? 0 : 500,\n error: error instanceof Error ? error.message : String(error),\n headers: res ? res.headers : new Headers(),\n success: false,\n data: undefined,\n connectionError: connectionFailed,\n };\n\n return response;\n }\n }\n\n async get<T>(endpoint: string, headers?: HeadersInit): Promise<ApiResponse<T>> {\n return this.request<T>(\"GET\", endpoint, undefined, headers);\n }\n\n async post<T>(endpoint: string, body: object, headers?: HeadersInit): Promise<ApiResponse<T>> {\n return this.request<T>(\"POST\", endpoint, body, headers);\n }\n\n async patch<T>(endpoint: string, body: object, headers?: HeadersInit): Promise<ApiResponse<T>> {\n return this.request<T>(\"PATCH\", endpoint, body, headers);\n }\n\n async delete<T>(endpoint: string, headers?: HeadersInit): Promise<ApiResponse<T>> {\n return this.request<T>(\"DELETE\", endpoint, undefined, headers);\n }\n\n getWithSchema<TReturn, TArgs extends object, TParams = undefined>(\n returnSchema: z.ZodSchema<TReturn>,\n urlBuilder: (args: TArgs) => string,\n paramSchema?: z.ZodSchema<TParams>,\n ): TParams extends undefined\n ? (args: TArgs) => Promise<ApiResponse<TReturn>>\n : (args: TArgs, params?: TParams) => Promise<ApiResponse<TReturn>> {\n const fn = async (args: TArgs, params?: TParams) => {\n // Build URL\n const baseUrl = urlBuilder(args);\n\n // Validate and parse params with Zod if provided\n let queryString = \"\";\n if (paramSchema && params) {\n const validatedParams = paramSchema.parse(params);\n queryString = `?${new URLSearchParams(validatedParams as Record<string, string>).toString()}`;\n }\n\n const fullUrl = `${baseUrl}${queryString}`;\n const response = await this.get<unknown>(fullUrl);\n\n if (!response.success || !response.data) {\n return response as ApiResponse<TReturn>;\n }\n\n const parsed = returnSchema.safeParse(response.data);\n\n if (!parsed.success) {\n this.logger.error(\"Invalid response format\", parsed.error);\n return {\n ...response,\n success: false,\n error: t(\"errors.invalid_response_format\", {\n defaultValue: \"Invalid response format\",\n }),\n data: undefined,\n };\n }\n\n return {\n ...response,\n data: parsed.data,\n };\n };\n // biome-ignore lint/suspicious/noExplicitAny: fn can literally be any function\n return fn as any;\n }\n}\n"]}
|
|
@@ -123,7 +123,7 @@ export class AuthService {
|
|
|
123
123
|
return [null, TokenResponseSchema.parse(response.data)];
|
|
124
124
|
});
|
|
125
125
|
}
|
|
126
|
-
// biome-ignore lint/suspicious/noExplicitAny:
|
|
126
|
+
// biome-ignore lint/suspicious/noExplicitAny: user fields are dynamic
|
|
127
127
|
async updateMissingFields(signInId, user) {
|
|
128
128
|
const response = await this.client.patch(`/api/sdk/v1/sign_ins/${signInId}/update_required_fields`, {
|
|
129
129
|
user,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/auth/api/auth.ts"],"names":[],"mappings":"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","sourcesContent":["import * as Sentry from \"@sentry/browser\";\nimport * as z from \"zod\";\n\nimport { type ApiClient, type SchemaValidationError, SchemaValidationErrorSchema } from \"../../api\";\nimport { UserProfileSchema } from \"../../profile\";\nimport { unidyState } from \"../../shared/store/unidy-store\";\n\nconst LoginOptionsSchema = z.object({\n magic_link: z.boolean(),\n password: z.boolean(),\n social_logins: z.array(z.string()),\n passkey: z.boolean(),\n});\n\nconst CreateSignInResponseSchema = z.object({\n sid: z.string(),\n status: z.enum([\"pending_verification\", \"authenticated\", \"completed\"]),\n email: z.string(),\n expired: z.boolean(),\n login_options: LoginOptionsSchema,\n});\n\nconst ErrorSchema = z.object({\n error_identifier: z.string(),\n});\n\nconst SendMagicCodeResponseSchema = z.object({\n enable_resend_after: z.number(),\n sid: z.string().optional(),\n});\n\nconst SendMagicCodeErrorSchema = z.object({\n error_identifier: z.string(),\n enable_resend_after: z.number(),\n});\n\nconst TokenResponseSchema = z.object({\n jwt: z.string(),\n sid: z.string().optional(),\n});\n\nconst RequiredFieldsResponseSchema = z.object({\n error_identifier: z.literal(\"missing_required_fields\"),\n fields: UserProfileSchema.omit({ custom_attributes: true }).partial().extend({\n custom_attributes: UserProfileSchema.shape.custom_attributes?.optional(),\n }),\n sid: z.string().optional(),\n});\n\nconst InvalidPasswordResponseSchema = z.object({\n error_details: z.object({\n password: z.array(z.string()),\n }),\n});\n\nexport type ErrorResponse = z.infer<typeof ErrorSchema>;\nexport type LoginOptions = z.infer<typeof LoginOptionsSchema>;\nexport type CreateSignInResponse = z.infer<typeof CreateSignInResponseSchema>;\nexport type TokenResponse = z.infer<typeof TokenResponseSchema>;\nexport type SendMagicCodeResponse = z.infer<typeof SendMagicCodeResponseSchema>;\nexport type RequiredFieldsResponse = z.infer<typeof RequiredFieldsResponseSchema>;\nexport type SendMagicCodeError = z.infer<typeof SendMagicCodeErrorSchema>;\n\ntype CommonErrors = [\"connection_failed\", null] | [\"schema_validation_error\", SchemaValidationError];\n\nexport type CreateSignInResult =\n | CommonErrors\n | [\"account_not_found\", ErrorResponse]\n | [null, CreateSignInResponse]\n | AuthenticateWithPasswordResult\n | SendMagicCodeResult;\n\nexport type AuthenticateResultShared =\n | CommonErrors\n | [\"sign_in_not_found\", ErrorResponse]\n | [\"sign_in_expired\", ErrorResponse]\n | [\"account_locked\", ErrorResponse]\n | [\"missing_required_fields\", RequiredFieldsResponse]\n | [null, TokenResponse];\n\nexport type SendMagicCodeResult =\n | CommonErrors\n | [\"magic_code_recently_created\", SendMagicCodeError]\n | [\"sign_in_not_found\", ErrorResponse]\n | [\"sign_in_expired\", ErrorResponse]\n | [\"account_locked\", ErrorResponse]\n | [null, SendMagicCodeResponse];\n\nexport type AuthenticateWithPasswordResult = [\"invalid_password\", ErrorResponse] | AuthenticateResultShared;\n\nexport type AuthenticateWithMagicCodeResult =\n | [\"not_valid\", ErrorResponse]\n | [\"used\", ErrorResponse]\n | [\"expired\", ErrorResponse]\n | AuthenticateResultShared;\n\nexport type RefreshTokenResult =\n | CommonErrors\n | [\"invalid_refresh_token\", ErrorResponse]\n | [\"refresh_token_revoked\", ErrorResponse]\n | [\"sign_in_not_found\", ErrorResponse]\n | [null, TokenResponse];\n\nexport type SendResetPasswordEmailResult =\n | CommonErrors\n | [\"password_not_set\", ErrorResponse]\n | [\"reset_password_already_sent\", ErrorResponse]\n | [\"sign_in_not_found\", ErrorResponse]\n | [\"invalid_return_to\", ErrorResponse]\n | [\"return_to_required\", ErrorResponse]\n | [null, null];\n\nexport type InvalidPasswordResponse = z.infer<typeof InvalidPasswordResponseSchema>;\n\nexport type ResetPasswordResult =\n | CommonErrors\n | [\"reset_token_missing\", ErrorResponse]\n | [\"invalid_reset_token\", ErrorResponse]\n | [\"reset_token_expired\", ErrorResponse]\n | [\"invalid_password\", InvalidPasswordResponse]\n | [null, null];\n\nexport type ValidateResetPasswordTokenResult =\n | CommonErrors\n | [\"reset_token_missing\", ErrorResponse]\n | [\"invalid_reset_token\", ErrorResponse]\n | [\"reset_token_expired\", ErrorResponse]\n | [null, null];\n\nexport type SignOutResult =\n | CommonErrors\n | [\"sign_in_not_found\", ErrorResponse]\n | [\"missing_id_token\", ErrorResponse]\n | [\"invalid_id_token\", ErrorResponse]\n | [null, null];\n\nconst PasskeyOptionsResponseSchema = z.object({\n challenge: z.string(),\n timeout: z.number(),\n rpId: z.string(),\n userVerification: z.string(),\n allowCredentials: z.array(z.any()),\n});\n\nconst PasskeyCredentialSchema = z.object({\n id: z.string(),\n rawId: z.string(),\n response: z.object({\n authenticatorData: z.string(),\n clientDataJSON: z.string(),\n signature: z.string(),\n }),\n type: z.string(),\n});\n\nexport type PasskeyOptionsResponse = z.infer<typeof PasskeyOptionsResponseSchema>;\nexport type PasskeyCredential = z.infer<typeof PasskeyCredentialSchema>;\n\nexport type GetPasskeyOptionsResult = CommonErrors | [\"bad_request\", ErrorResponse] | [null, PasskeyOptionsResponse];\n\nexport type AuthenticateWithPasskeyResult =\n | CommonErrors\n | [\"invalid_passkey\", ErrorResponse]\n | [\"verification_failed\", ErrorResponse]\n | [\"authentication_failed\", ErrorResponse]\n | [\"bad_request\", ErrorResponse]\n | [null, TokenResponse];\n\nexport class AuthService {\n private client: ApiClient;\n\n constructor(client: ApiClient) {\n this.client = client;\n }\n\n async createSignIn(email: string, password?: string, sendMagicCode?: boolean): Promise<CreateSignInResult> {\n const response = await this.client.post<CreateSignInResponse>(\"/api/sdk/v1/sign_ins\", { email, password, sendMagicCode });\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const missing_fields_check = RequiredFieldsResponseSchema.safeParse(response.data);\n\n if (missing_fields_check.success) {\n return [\"missing_required_fields\", missing_fields_check.data];\n }\n const error_response = ErrorSchema.parse(response.data);\n return [\n error_response.error_identifier as\n | \"account_not_found\"\n | \"sign_in_not_found\"\n | \"sign_in_expired\"\n | \"account_locked\"\n | \"invalid_password\",\n error_response,\n ];\n }\n\n if (password) {\n return [null, TokenResponseSchema.parse(response.data)];\n }\n\n if (sendMagicCode) {\n return [null, SendMagicCodeResponseSchema.parse(response.data)];\n }\n\n return [null, CreateSignInResponseSchema.parse(response.data)];\n });\n }\n\n async sendMagicCode(signInId: string): Promise<SendMagicCodeResult> {\n const response = await this.client.post<SendMagicCodeResponse>(`/api/sdk/v1/sign_ins/${signInId}/send_magic_code`, {});\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n try {\n const error_response = SendMagicCodeErrorSchema.parse(response.data);\n return [\"magic_code_recently_created\", error_response];\n } catch {\n const error_response = ErrorSchema.parse(response.data);\n return [error_response.error_identifier as \"sign_in_not_found\" | \"sign_in_expired\" | \"account_locked\", error_response];\n }\n }\n\n return [null, SendMagicCodeResponseSchema.parse(response.data)];\n });\n }\n\n async authenticateWithPassword(signInId: string, password: string): Promise<AuthenticateWithPasswordResult> {\n const response = await this.client.post<{ password: string }>(`/api/sdk/v1/sign_ins/${signInId}/authenticate`, {\n password,\n });\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const missing_fields_check = RequiredFieldsResponseSchema.safeParse(response.data);\n\n if (missing_fields_check.success) {\n return [\"missing_required_fields\", missing_fields_check.data];\n }\n const error_response = ErrorSchema.parse(response.data);\n\n return [\n error_response.error_identifier as \"sign_in_not_found\" | \"sign_in_expired\" | \"account_locked\" | \"invalid_password\",\n error_response,\n ];\n }\n\n return [null, TokenResponseSchema.parse(response.data)];\n });\n }\n\n // biome-ignore lint/suspicious/noExplicitAny: <explanation>\n async updateMissingFields(signInId: string, user: Record<string, any>): Promise<AuthenticateResultShared> {\n const response = await this.client.patch<unknown>(`/api/sdk/v1/sign_ins/${signInId}/update_required_fields`, {\n user,\n });\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const missing_fields_check = RequiredFieldsResponseSchema.safeParse(response.data);\n if (missing_fields_check.success) {\n return [\"missing_required_fields\", missing_fields_check.data];\n }\n\n const error_response = ErrorSchema.parse(response.data);\n\n return [error_response.error_identifier as \"sign_in_not_found\" | \"sign_in_expired\" | \"account_locked\", error_response];\n }\n\n return [null, TokenResponseSchema.parse(response.data)];\n });\n }\n\n async authenticateWithMagicCode(signInId: string, code: string): Promise<AuthenticateWithMagicCodeResult> {\n const response = await this.client.post<{ code: string }>(`/api/sdk/v1/sign_ins/${signInId}/authenticate`, {\n code,\n });\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const missing_fields_check = RequiredFieldsResponseSchema.safeParse(response.data);\n\n if (missing_fields_check.success) {\n return [\"missing_required_fields\", missing_fields_check.data];\n }\n\n const error_response = ErrorSchema.parse(response.data);\n\n return [\n error_response.error_identifier as \"sign_in_not_found\" | \"sign_in_expired\" | \"account_locked\" | \"not_valid\" | \"used\" | \"expired\",\n error_response,\n ];\n }\n return [null, TokenResponseSchema.parse(response.data)];\n });\n }\n\n async refreshToken(signInId: string): Promise<RefreshTokenResult> {\n const response = await this.client.post<Record<string, never>>(`/api/sdk/v1/sign_ins/${signInId}/refresh_token`, {});\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const error_response = ErrorSchema.parse(response.data);\n\n return [error_response.error_identifier as \"invalid_refresh_token\" | \"refresh_token_revoked\" | \"sign_in_not_found\", error_response];\n }\n\n return [null, TokenResponseSchema.parse(response.data)];\n });\n }\n\n async sendResetPasswordEmail(signInId: string, returnTo: string): Promise<SendResetPasswordEmailResult> {\n const response = await this.client.post<null>(`/api/sdk/v1/sign_ins/${signInId}/password_reset/send`, { return_to: returnTo });\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const error_response = ErrorSchema.parse(response.data);\n\n return [\n error_response.error_identifier as\n | \"password_not_set\"\n | \"reset_password_already_sent\"\n | \"sign_in_not_found\"\n | \"invalid_return_to\"\n | \"return_to_required\",\n error_response,\n ];\n }\n\n return [null, null];\n });\n }\n\n async resetPassword(signInId: string, token: string, password: string, passwordConfirmation: string): Promise<ResetPasswordResult> {\n const response = await this.client.patch<null>(`/api/sdk/v1/sign_ins/${signInId}/password_reset`, {\n token,\n password,\n password_confirmation: passwordConfirmation,\n });\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const error_response = ErrorSchema.parse(response.data);\n\n return [\n error_response.error_identifier as \"reset_token_missing\" | \"invalid_reset_token\" | \"reset_token_expired\" | \"invalid_password\",\n response.data,\n ];\n }\n\n return [null, null];\n });\n }\n\n async validateResetPasswordToken(signInId: string, token: string): Promise<ValidateResetPasswordTokenResult> {\n const response = await this.client.get<{ valid: boolean }>(\n `/api/sdk/v1/sign_ins/${signInId}/password_reset?token=${encodeURIComponent(token)}`,\n );\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const error_response = ErrorSchema.parse(response.data);\n return [error_response.error_identifier as \"reset_token_missing\" | \"invalid_reset_token\" | \"reset_token_expired\", error_response];\n }\n\n return [null, null];\n });\n }\n\n async signOut(signInId: string): Promise<SignOutResult> {\n const response = await this.client.post<null>(`/api/sdk/v1/sign_ins/${signInId}/sign_out`, {});\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const error_response = ErrorSchema.parse(response.data);\n\n return [error_response.error_identifier as \"sign_in_not_found\" | \"missing_id_token\" | \"invalid_id_token\", error_response];\n }\n\n return [null, null];\n });\n }\n\n async getPasskeyOptions(sid?: string): Promise<GetPasskeyOptionsResult> {\n const endpoint = sid ? `/api/sdk/v1/passkeys/new?sid=${encodeURIComponent(sid)}` : \"/api/sdk/v1/passkeys/new\";\n const response = await this.client.get<PasskeyOptionsResponse>(endpoint);\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const error_response = ErrorSchema.parse(response.data);\n return [\"bad_request\", error_response];\n }\n\n return [null, PasskeyOptionsResponseSchema.parse(response.data)];\n });\n }\n\n async authenticateWithPasskey(credential: PasskeyCredential): Promise<AuthenticateWithPasskeyResult> {\n const response = await this.client.post<{ publicKeyCredential: PasskeyCredential }>(\"/api/sdk/v1/passkeys\", {\n publicKeyCredential: credential,\n });\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const error_response = ErrorSchema.parse(response.data);\n return [\n error_response.error_identifier as \"invalid_passkey\" | \"verification_failed\" | \"authentication_failed\" | \"bad_request\",\n error_response,\n ];\n }\n\n return [null, TokenResponseSchema.parse(response.data)];\n });\n }\n\n private handleResponse<T>(\n // biome-ignore lint/suspicious/noExplicitAny: generic handler for all responses\n response: any,\n handler: () => T,\n ): T | [\"connection_failed\", null] | [\"schema_validation_error\", SchemaValidationError] {\n if (response.connectionError) {\n unidyState.backendConnected = false;\n\n return [\"connection_failed\", null];\n }\n\n try {\n return handler();\n } catch (error) {\n Sentry.captureException(error);\n return [\"schema_validation_error\", SchemaValidationErrorSchema.parse(response.data)];\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/auth/api/auth.ts"],"names":[],"mappings":"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","sourcesContent":["import * as Sentry from \"@sentry/browser\";\nimport * as z from \"zod\";\n\nimport { type ApiClient, type SchemaValidationError, SchemaValidationErrorSchema } from \"../../api\";\nimport { UserProfileSchema } from \"../../profile\";\nimport { unidyState } from \"../../shared/store/unidy-store\";\n\nconst LoginOptionsSchema = z.object({\n magic_link: z.boolean(),\n password: z.boolean(),\n social_logins: z.array(z.string()),\n passkey: z.boolean(),\n});\n\nconst CreateSignInResponseSchema = z.object({\n sid: z.string(),\n status: z.enum([\"pending_verification\", \"authenticated\", \"completed\"]),\n email: z.string(),\n expired: z.boolean(),\n login_options: LoginOptionsSchema,\n});\n\nconst ErrorSchema = z.object({\n error_identifier: z.string(),\n});\n\nconst SendMagicCodeResponseSchema = z.object({\n enable_resend_after: z.number(),\n sid: z.string().optional(),\n});\n\nconst SendMagicCodeErrorSchema = z.object({\n error_identifier: z.string(),\n enable_resend_after: z.number(),\n});\n\nconst TokenResponseSchema = z.object({\n jwt: z.string(),\n sid: z.string().optional(),\n});\n\nconst RequiredFieldsResponseSchema = z.object({\n error_identifier: z.literal(\"missing_required_fields\"),\n fields: UserProfileSchema.omit({ custom_attributes: true }).partial().extend({\n custom_attributes: UserProfileSchema.shape.custom_attributes?.optional(),\n }),\n sid: z.string().optional(),\n});\n\nconst InvalidPasswordResponseSchema = z.object({\n error_details: z.object({\n password: z.array(z.string()),\n }),\n});\n\nexport type ErrorResponse = z.infer<typeof ErrorSchema>;\nexport type LoginOptions = z.infer<typeof LoginOptionsSchema>;\nexport type CreateSignInResponse = z.infer<typeof CreateSignInResponseSchema>;\nexport type TokenResponse = z.infer<typeof TokenResponseSchema>;\nexport type SendMagicCodeResponse = z.infer<typeof SendMagicCodeResponseSchema>;\nexport type RequiredFieldsResponse = z.infer<typeof RequiredFieldsResponseSchema>;\nexport type SendMagicCodeError = z.infer<typeof SendMagicCodeErrorSchema>;\n\ntype CommonErrors = [\"connection_failed\", null] | [\"schema_validation_error\", SchemaValidationError];\n\nexport type CreateSignInResult =\n | CommonErrors\n | [\"account_not_found\", ErrorResponse]\n | [null, CreateSignInResponse]\n | AuthenticateWithPasswordResult\n | SendMagicCodeResult;\n\nexport type AuthenticateResultShared =\n | CommonErrors\n | [\"sign_in_not_found\", ErrorResponse]\n | [\"sign_in_expired\", ErrorResponse]\n | [\"account_locked\", ErrorResponse]\n | [\"missing_required_fields\", RequiredFieldsResponse]\n | [null, TokenResponse];\n\nexport type SendMagicCodeResult =\n | CommonErrors\n | [\"magic_code_recently_created\", SendMagicCodeError]\n | [\"sign_in_not_found\", ErrorResponse]\n | [\"sign_in_expired\", ErrorResponse]\n | [\"account_locked\", ErrorResponse]\n | [null, SendMagicCodeResponse];\n\nexport type AuthenticateWithPasswordResult = [\"invalid_password\", ErrorResponse] | AuthenticateResultShared;\n\nexport type AuthenticateWithMagicCodeResult =\n | [\"not_valid\", ErrorResponse]\n | [\"used\", ErrorResponse]\n | [\"expired\", ErrorResponse]\n | AuthenticateResultShared;\n\nexport type RefreshTokenResult =\n | CommonErrors\n | [\"invalid_refresh_token\", ErrorResponse]\n | [\"refresh_token_revoked\", ErrorResponse]\n | [\"sign_in_not_found\", ErrorResponse]\n | [null, TokenResponse];\n\nexport type SendResetPasswordEmailResult =\n | CommonErrors\n | [\"password_not_set\", ErrorResponse]\n | [\"reset_password_already_sent\", ErrorResponse]\n | [\"sign_in_not_found\", ErrorResponse]\n | [\"invalid_return_to\", ErrorResponse]\n | [\"return_to_required\", ErrorResponse]\n | [null, null];\n\nexport type InvalidPasswordResponse = z.infer<typeof InvalidPasswordResponseSchema>;\n\nexport type ResetPasswordResult =\n | CommonErrors\n | [\"reset_token_missing\", ErrorResponse]\n | [\"invalid_reset_token\", ErrorResponse]\n | [\"reset_token_expired\", ErrorResponse]\n | [\"invalid_password\", InvalidPasswordResponse]\n | [null, null];\n\nexport type ValidateResetPasswordTokenResult =\n | CommonErrors\n | [\"reset_token_missing\", ErrorResponse]\n | [\"invalid_reset_token\", ErrorResponse]\n | [\"reset_token_expired\", ErrorResponse]\n | [null, null];\n\nexport type SignOutResult =\n | CommonErrors\n | [\"sign_in_not_found\", ErrorResponse]\n | [\"missing_id_token\", ErrorResponse]\n | [\"invalid_id_token\", ErrorResponse]\n | [null, null];\n\nconst PasskeyOptionsResponseSchema = z.object({\n challenge: z.string(),\n timeout: z.number(),\n rpId: z.string(),\n userVerification: z.string(),\n allowCredentials: z.array(z.any()),\n});\n\nconst PasskeyCredentialSchema = z.object({\n id: z.string(),\n rawId: z.string(),\n response: z.object({\n authenticatorData: z.string(),\n clientDataJSON: z.string(),\n signature: z.string(),\n }),\n type: z.string(),\n});\n\nexport type PasskeyOptionsResponse = z.infer<typeof PasskeyOptionsResponseSchema>;\nexport type PasskeyCredential = z.infer<typeof PasskeyCredentialSchema>;\n\nexport type GetPasskeyOptionsResult = CommonErrors | [\"bad_request\", ErrorResponse] | [null, PasskeyOptionsResponse];\n\nexport type AuthenticateWithPasskeyResult =\n | CommonErrors\n | [\"invalid_passkey\", ErrorResponse]\n | [\"verification_failed\", ErrorResponse]\n | [\"authentication_failed\", ErrorResponse]\n | [\"bad_request\", ErrorResponse]\n | [null, TokenResponse];\n\nexport class AuthService {\n private client: ApiClient;\n\n constructor(client: ApiClient) {\n this.client = client;\n }\n\n async createSignIn(email: string, password?: string, sendMagicCode?: boolean): Promise<CreateSignInResult> {\n const response = await this.client.post<CreateSignInResponse>(\"/api/sdk/v1/sign_ins\", { email, password, sendMagicCode });\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const missing_fields_check = RequiredFieldsResponseSchema.safeParse(response.data);\n\n if (missing_fields_check.success) {\n return [\"missing_required_fields\", missing_fields_check.data];\n }\n const error_response = ErrorSchema.parse(response.data);\n return [\n error_response.error_identifier as\n | \"account_not_found\"\n | \"sign_in_not_found\"\n | \"sign_in_expired\"\n | \"account_locked\"\n | \"invalid_password\",\n error_response,\n ];\n }\n\n if (password) {\n return [null, TokenResponseSchema.parse(response.data)];\n }\n\n if (sendMagicCode) {\n return [null, SendMagicCodeResponseSchema.parse(response.data)];\n }\n\n return [null, CreateSignInResponseSchema.parse(response.data)];\n });\n }\n\n async sendMagicCode(signInId: string): Promise<SendMagicCodeResult> {\n const response = await this.client.post<SendMagicCodeResponse>(`/api/sdk/v1/sign_ins/${signInId}/send_magic_code`, {});\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n try {\n const error_response = SendMagicCodeErrorSchema.parse(response.data);\n return [\"magic_code_recently_created\", error_response];\n } catch {\n const error_response = ErrorSchema.parse(response.data);\n return [error_response.error_identifier as \"sign_in_not_found\" | \"sign_in_expired\" | \"account_locked\", error_response];\n }\n }\n\n return [null, SendMagicCodeResponseSchema.parse(response.data)];\n });\n }\n\n async authenticateWithPassword(signInId: string, password: string): Promise<AuthenticateWithPasswordResult> {\n const response = await this.client.post<{ password: string }>(`/api/sdk/v1/sign_ins/${signInId}/authenticate`, {\n password,\n });\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const missing_fields_check = RequiredFieldsResponseSchema.safeParse(response.data);\n\n if (missing_fields_check.success) {\n return [\"missing_required_fields\", missing_fields_check.data];\n }\n const error_response = ErrorSchema.parse(response.data);\n\n return [\n error_response.error_identifier as \"sign_in_not_found\" | \"sign_in_expired\" | \"account_locked\" | \"invalid_password\",\n error_response,\n ];\n }\n\n return [null, TokenResponseSchema.parse(response.data)];\n });\n }\n\n // biome-ignore lint/suspicious/noExplicitAny: user fields are dynamic\n async updateMissingFields(signInId: string, user: Record<string, any>): Promise<AuthenticateResultShared> {\n const response = await this.client.patch<unknown>(`/api/sdk/v1/sign_ins/${signInId}/update_required_fields`, {\n user,\n });\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const missing_fields_check = RequiredFieldsResponseSchema.safeParse(response.data);\n if (missing_fields_check.success) {\n return [\"missing_required_fields\", missing_fields_check.data];\n }\n\n const error_response = ErrorSchema.parse(response.data);\n\n return [error_response.error_identifier as \"sign_in_not_found\" | \"sign_in_expired\" | \"account_locked\", error_response];\n }\n\n return [null, TokenResponseSchema.parse(response.data)];\n });\n }\n\n async authenticateWithMagicCode(signInId: string, code: string): Promise<AuthenticateWithMagicCodeResult> {\n const response = await this.client.post<{ code: string }>(`/api/sdk/v1/sign_ins/${signInId}/authenticate`, {\n code,\n });\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const missing_fields_check = RequiredFieldsResponseSchema.safeParse(response.data);\n\n if (missing_fields_check.success) {\n return [\"missing_required_fields\", missing_fields_check.data];\n }\n\n const error_response = ErrorSchema.parse(response.data);\n\n return [\n error_response.error_identifier as \"sign_in_not_found\" | \"sign_in_expired\" | \"account_locked\" | \"not_valid\" | \"used\" | \"expired\",\n error_response,\n ];\n }\n return [null, TokenResponseSchema.parse(response.data)];\n });\n }\n\n async refreshToken(signInId: string): Promise<RefreshTokenResult> {\n const response = await this.client.post<Record<string, never>>(`/api/sdk/v1/sign_ins/${signInId}/refresh_token`, {});\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const error_response = ErrorSchema.parse(response.data);\n\n return [error_response.error_identifier as \"invalid_refresh_token\" | \"refresh_token_revoked\" | \"sign_in_not_found\", error_response];\n }\n\n return [null, TokenResponseSchema.parse(response.data)];\n });\n }\n\n async sendResetPasswordEmail(signInId: string, returnTo: string): Promise<SendResetPasswordEmailResult> {\n const response = await this.client.post<null>(`/api/sdk/v1/sign_ins/${signInId}/password_reset/send`, { return_to: returnTo });\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const error_response = ErrorSchema.parse(response.data);\n\n return [\n error_response.error_identifier as\n | \"password_not_set\"\n | \"reset_password_already_sent\"\n | \"sign_in_not_found\"\n | \"invalid_return_to\"\n | \"return_to_required\",\n error_response,\n ];\n }\n\n return [null, null];\n });\n }\n\n async resetPassword(signInId: string, token: string, password: string, passwordConfirmation: string): Promise<ResetPasswordResult> {\n const response = await this.client.patch<null>(`/api/sdk/v1/sign_ins/${signInId}/password_reset`, {\n token,\n password,\n password_confirmation: passwordConfirmation,\n });\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const error_response = ErrorSchema.parse(response.data);\n\n return [\n error_response.error_identifier as \"reset_token_missing\" | \"invalid_reset_token\" | \"reset_token_expired\" | \"invalid_password\",\n response.data,\n ];\n }\n\n return [null, null];\n });\n }\n\n async validateResetPasswordToken(signInId: string, token: string): Promise<ValidateResetPasswordTokenResult> {\n const response = await this.client.get<{ valid: boolean }>(\n `/api/sdk/v1/sign_ins/${signInId}/password_reset?token=${encodeURIComponent(token)}`,\n );\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const error_response = ErrorSchema.parse(response.data);\n return [error_response.error_identifier as \"reset_token_missing\" | \"invalid_reset_token\" | \"reset_token_expired\", error_response];\n }\n\n return [null, null];\n });\n }\n\n async signOut(signInId: string): Promise<SignOutResult> {\n const response = await this.client.post<null>(`/api/sdk/v1/sign_ins/${signInId}/sign_out`, {});\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const error_response = ErrorSchema.parse(response.data);\n\n return [error_response.error_identifier as \"sign_in_not_found\" | \"missing_id_token\" | \"invalid_id_token\", error_response];\n }\n\n return [null, null];\n });\n }\n\n async getPasskeyOptions(sid?: string): Promise<GetPasskeyOptionsResult> {\n const endpoint = sid ? `/api/sdk/v1/passkeys/new?sid=${encodeURIComponent(sid)}` : \"/api/sdk/v1/passkeys/new\";\n const response = await this.client.get<PasskeyOptionsResponse>(endpoint);\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const error_response = ErrorSchema.parse(response.data);\n return [\"bad_request\", error_response];\n }\n\n return [null, PasskeyOptionsResponseSchema.parse(response.data)];\n });\n }\n\n async authenticateWithPasskey(credential: PasskeyCredential): Promise<AuthenticateWithPasskeyResult> {\n const response = await this.client.post<{ publicKeyCredential: PasskeyCredential }>(\"/api/sdk/v1/passkeys\", {\n publicKeyCredential: credential,\n });\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const error_response = ErrorSchema.parse(response.data);\n return [\n error_response.error_identifier as \"invalid_passkey\" | \"verification_failed\" | \"authentication_failed\" | \"bad_request\",\n error_response,\n ];\n }\n\n return [null, TokenResponseSchema.parse(response.data)];\n });\n }\n\n private handleResponse<T>(\n // biome-ignore lint/suspicious/noExplicitAny: generic handler for all responses\n response: any,\n handler: () => T,\n ): T | [\"connection_failed\", null] | [\"schema_validation_error\", SchemaValidationError] {\n if (response.connectionError) {\n unidyState.backendConnected = false;\n\n return [\"connection_failed\", null];\n }\n\n try {\n return handler();\n } catch (error) {\n Sentry.captureException(error);\n return [\"schema_validation_error\", SchemaValidationErrorSchema.parse(response.data)];\n }\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-border-style:solid;--tw-duration:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:host,:root{--u-font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--u-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--u-color-slate-200:oklch(92.9% .013 255.508);--u-spacing:.25rem;--u-text-lg:1.125rem;--u-text-lg--line-height:1.55556;--u-radius-lg:.5rem;--u-default-transition-duration:.15s;--u-default-transition-timing-function:cubic-bezier(.4,0,.2,1);--u-default-font-family:var(--u-font-sans);--u-default-mono-font-family:var(--u-font-mono);--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{border:0 solid;box-sizing:border-box;margin:0;padding:0}::file-selector-button{appearance:button;background-color:#0000;border:0 solid;border-radius:0;box-sizing:border-box;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;margin:0;margin-inline-end:4px;opacity:1;padding:0}:host,html{font-family:var(--u-default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--u-default-font-feature-settings,normal);font-variation-settings:var(--u-default-font-variation-settings,normal);-webkit-text-size-adjust:100%;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);line-height:1.5;tab-size:4;-webkit-tap-highlight-color:transparent}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--u-default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--u-default-mono-font-feature-settings,normal);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-size:1em;font-variation-settings:var(--u-default-mono-font-variation-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal)}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}button,input,optgroup,select,textarea{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex;padding-block:0}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field,::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.u\:flex{display:flex}.u\:h-\[50px\]{height:50px}.u\:w-\[50px\]{width:50px}.u\:w-full{width:100%}.u\:justify-center{justify-content:center}.u\:gap-0\.5{gap:calc(var(--u-spacing)*.5)}.u\:rounded-lg{border-radius:var(--u-radius-lg)}.u\:border-2{border-style:var(--tw-border-style);border-width:2px}.u\:border-solid{--tw-border-style:solid;border-style:solid}.u\:border-slate-200{border-color:var(--u-color-slate-200)}.u\:text-center{text-align:center}.u\:text-lg{font-size:var(--u-text-lg);line-height:var(--tw-leading,var(--u-text-lg--line-height))}.u\:transition-colors{transition-duration:var(--tw-duration,var(--u-default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--u-default-transition-timing-function))}.u\:duration-200{--tw-duration:.2s;transition-duration:.2s}.u\:outline-none{--tw-outline-style:none;outline-style:none}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-duration{syntax:"*";inherits:false} /*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer components;@layer utilities{}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}
|
|
1
|
+
/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-border-style:solid;--tw-duration:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:host,:root{--u-font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--u-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--u-color-slate-200:oklch(92.9% .013 255.508);--u-spacing:.25rem;--u-text-lg:1.125rem;--u-text-lg--line-height:1.55556;--u-radius-lg:.5rem;--u-default-transition-duration:.15s;--u-default-transition-timing-function:cubic-bezier(.4,0,.2,1);--u-default-font-family:var(--u-font-sans);--u-default-mono-font-family:var(--u-font-mono);--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{border:0 solid;box-sizing:border-box;margin:0;padding:0}::file-selector-button{appearance:button;background-color:#0000;border:0 solid;border-radius:0;box-sizing:border-box;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;margin:0;margin-inline-end:4px;opacity:1;padding:0}:host,html{font-family:var(--u-default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--u-default-font-feature-settings,normal);font-variation-settings:var(--u-default-font-variation-settings,normal);-webkit-text-size-adjust:100%;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);line-height:1.5;tab-size:4;-webkit-tap-highlight-color:transparent}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--u-default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--u-default-mono-font-feature-settings,normal);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-size:1em;font-variation-settings:var(--u-default-mono-font-variation-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal)}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}button,input,optgroup,select,textarea{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex;padding-block:0}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field,::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.u\:flex{display:flex}.u\:h-\[50px\]{height:50px}.u\:w-\[50px\]{width:50px}.u\:w-full{width:100%}.u\:justify-center{justify-content:center}.u\:gap-0\.5{gap:calc(var(--u-spacing)*.5)}.u\:rounded-lg{border-radius:var(--u-radius-lg)}.u\:border-2{border-style:var(--tw-border-style);border-width:2px}.u\:border-solid{--tw-border-style:solid;border-style:solid}.u\:border-slate-200{border-color:var(--u-color-slate-200)}.u\:text-center{text-align:center}.u\:text-lg{font-size:var(--u-text-lg);line-height:var(--tw-leading,var(--u-text-lg--line-height))}.u\:transition-colors{transition-duration:var(--tw-duration,var(--u-default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--u-default-transition-timing-function))}.u\:duration-200{--tw-duration:.2s;transition-duration:.2s}.u\:outline-none{--tw-outline-style:none;outline-style:none}.fixed{position:fixed}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-duration{syntax:"*";inherits:false} /*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer components;@layer utilities{}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}
|
|
@@ -62,7 +62,7 @@ export class MagicCodeField {
|
|
|
62
62
|
return null;
|
|
63
63
|
}
|
|
64
64
|
return (h("div", { class: `u:flex u:gap-0.5 u:w-full u:justify-center ${this.componentClassName}` }, this.codeDigits.map((digit, index) => (h("input", {
|
|
65
|
-
// biome-ignore lint/suspicious/noArrayIndexKey:
|
|
65
|
+
// biome-ignore lint/suspicious/noArrayIndexKey: digits are fixed position inputs
|
|
66
66
|
key: index, ref: (el) => {
|
|
67
67
|
if (el)
|
|
68
68
|
this.inputRefs[index] = el;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"magic-code-field.js","sourceRoot":"","sources":["../../../../src/auth/components/magic-code-field/magic-code-field.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"magic-code-field.js","sourceRoot":"","sources":["../../../../src/auth/components/magic-code-field/magic-code-field.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, Prop, State } from \"@stencil/core\";\nimport { authState } from \"../../store/auth-store\";\nimport { Auth } from \"../../auth\";\n\n@Component({\n tag: \"u-magic-code-field\",\n styleUrl: \"magic-code-field.css\",\n shadow: false,\n})\nexport class MagicCodeField {\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n\n @State() codeDigits: string[] = [\"\", \"\", \"\", \"\"];\n\n private inputRefs: HTMLInputElement[] = [];\n\n private handleInput = (event: Event, index: number) => {\n const target = event.target as HTMLInputElement;\n const value = target.value.replace(/[^0-9]/g, \"\");\n const sanitizedDigit = value.slice(-1);\n target.value = sanitizedDigit;\n\n const newDigits = [...this.codeDigits];\n newDigits[index] = sanitizedDigit;\n this.codeDigits = newDigits;\n\n const fullCode = newDigits.join(\"\");\n\n if (value && index < 3) {\n const nextInput = this.inputRefs[index + 1];\n if (nextInput) {\n nextInput.focus();\n }\n }\n\n if (fullCode.length === 4) {\n this.authenticateWithCode(fullCode);\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent, index: number) => {\n if (event.key === \"Backspace\" && !this.codeDigits[index] && index > 0) {\n const prevInput = this.inputRefs[index - 1];\n if (prevInput) {\n prevInput.focus();\n }\n }\n };\n\n private handlePaste = (event: ClipboardEvent) => {\n event.preventDefault();\n const pastedData = event.clipboardData?.getData(\"text\") || \"\";\n const digits = pastedData\n .replace(/[^0-9]/g, \"\")\n .slice(0, 4)\n .split(\"\");\n\n while (digits.length < 4) {\n digits.push(\"\");\n }\n\n this.codeDigits = digits;\n\n const firstEmptyIndex = digits.findIndex((digit) => !digit);\n const targetIndex = firstEmptyIndex !== -1 ? firstEmptyIndex : 3;\n if (this.inputRefs[targetIndex]) {\n this.inputRefs[targetIndex].focus();\n }\n\n const fullCode = digits.join(\"\");\n if (fullCode.length === 4) {\n this.authenticateWithCode(fullCode);\n }\n };\n\n private authenticateWithCode = async (code: string) => {\n const authInstance = await Auth.getInstance();\n\n await authInstance.helpers.authenticateWithMagicCode(code);\n };\n render() {\n if (authState.step !== \"magic-code\") {\n return null;\n }\n\n return (\n <div class={`u:flex u:gap-0.5 u:w-full u:justify-center ${this.componentClassName}`}>\n {this.codeDigits.map((digit, index) => (\n <input\n // biome-ignore lint/suspicious/noArrayIndexKey: digits are fixed position inputs\n key={index}\n ref={(el) => {\n if (el) this.inputRefs[index] = el;\n }}\n id={`digit-input-${index + 1}`}\n type=\"text\"\n inputmode=\"numeric\"\n maxlength=\"1\"\n value={digit}\n disabled={authState.loading}\n onInput={(event) => this.handleInput(event, index)}\n onKeyDown={(event) => this.handleKeyDown(event, index)}\n onPaste={index === 0 ? this.handlePaste : undefined}\n aria-label={`Digit ${index + 1} of ${this.codeDigits.length}`}\n class=\"u:w-[50px] u:h-[50px] u:text-center u:text-lg u:border-2 u:border-solid u:border-slate-200 u:rounded-lg u:outline-none u:transition-colors u:duration-200\"\n part=\"digit-input\"\n />\n ))}\n </div>\n );\n }\n}\n"]}
|
package/dist/collection/auth/components/missing-fields-submit-button/missing-fields-submit-button.js
CHANGED
|
@@ -2,7 +2,7 @@ import { h } from "@stencil/core";
|
|
|
2
2
|
import { getUnidyClient } from "../../../api";
|
|
3
3
|
import { state as profileState } from "../../../profile/store/profile-store";
|
|
4
4
|
import { authState, authStore } from "../../store/auth-store";
|
|
5
|
-
import { validateRequiredFieldsUnchanged, buildPayload } from "../../../
|
|
5
|
+
import { validateRequiredFieldsUnchanged, buildPayload } from "../../../profile/profile-helpers";
|
|
6
6
|
import { hasSlotContent } from "../../../shared/component-utils";
|
|
7
7
|
import { t } from "../../../i18n";
|
|
8
8
|
export class MissingFieldsSubmitButton {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"missing-fields-submit-button.js","sourceRoot":"","sources":["../../../../src/auth/components/missing-fields-submit-button/missing-fields-submit-button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,+BAA+B,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"missing-fields-submit-button.js","sourceRoot":"","sources":["../../../../src/auth/components/missing-fields-submit-button/missing-fields-submit-button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,+BAA+B,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEjG,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAMlC,MAAM,OAAO,yBAAyB;IACzB,EAAE,CAAe;IAEpB,KAAK,CAAC,QAAQ;QACpB,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;QAE5B,MAAM,EAAE,aAAa,EAAE,GAAG,kBAAkB,EAAE,GAAG,YAAY,CAAC;QAE9D,IAAI,CAAC,+BAA+B,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9D,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,MAAM,kBAAkB,GAAG,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACjE,MAAM,GAAG,GAAG,SAAS,CAAC,GAAa,CAAC;QAEpC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,MAAM,cAAc,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;QAEnG,IAAI,KAAK,EAAE,CAAC;YACV,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,MAAM,EAAE,GAAG,EAAE,GAAG,QAAyB,CAAC;QAC1C,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;QAC7B,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAExB,kFAAkF;QAClF,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1G,CAAC;IAED,MAAM;QACJ,IAAI,SAAS,CAAC,IAAI,KAAK,gBAAgB;YAAE,OAAO,IAAI,CAAC;QAErD,OAAO,CACL;YACE,cACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAC9B,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,YAAY,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,YAAY,CAAC,UAAU,KAAK,KAAK,eACzG,QAAQ,IAEjB,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAa,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,eAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CACzF,CACL,CACP,CAAC;IACJ,CAAC;;;;CACF","sourcesContent":["import { Component, Element, h } from \"@stencil/core\";\nimport { getUnidyClient } from \"../../../api\";\nimport { state as profileState } from \"../../../profile/store/profile-store\";\nimport { authState, authStore } from \"../../store/auth-store\";\nimport { validateRequiredFieldsUnchanged, buildPayload } from \"../../../profile/profile-helpers\";\nimport type { TokenResponse } from \"../../api/auth\";\nimport { hasSlotContent } from \"../../../shared/component-utils\";\nimport { t } from \"../../../i18n\";\n\n@Component({\n tag: \"u-missing-fields-submit-button\",\n shadow: true,\n})\nexport class MissingFieldsSubmitButton {\n @Element() el!: HTMLElement;\n\n private async onSubmit() {\n profileState.loading = true;\n\n const { configuration, ...stateWithoutConfig } = profileState;\n\n if (!validateRequiredFieldsUnchanged(stateWithoutConfig.data)) {\n profileState.loading = false;\n return;\n }\n\n const updatedProfileData = buildPayload(stateWithoutConfig.data);\n const sid = authState.sid as string;\n\n const [error, response] = await getUnidyClient().auth.updateMissingFields(sid, updatedProfileData);\n\n if (error) {\n profileState.loading = false;\n return;\n }\n\n const { jwt } = response as TokenResponse;\n profileState.loading = false;\n authStore.setToken(jwt);\n\n // Emit authEvent to allow modal-based logins to close after successful submission\n this.el.dispatchEvent(new CustomEvent(\"authEvent\", { detail: { jwt }, bubbles: true, composed: true }));\n }\n\n render() {\n if (authState.step !== \"missing-fields\") return null;\n\n return (\n <div>\n <button\n type=\"button\"\n onClick={() => this.onSubmit()}\n part=\"button\"\n disabled={(profileState.errors && Object.keys(profileState.errors).length > 0) || profileState.phoneValid === false}\n aria-live=\"polite\"\n >\n {profileState.loading ? <u-spinner /> : hasSlotContent(this.el) ? <slot /> : t(\"buttons.submit\")}\n </button>\n </div>\n );\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signin-root.js","sourceRoot":"","sources":["../../../../src/auth/components/signin-root/signin-root.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"signin-root.js","sourceRoot":"","sources":["../../../../src/auth/components/signin-root/signin-root.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAqB,OAAO,EAAE,MAAM,eAAe,CAAC;AAE5F,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAMnD,MAAM,OAAO,UAAU;IACV,EAAE,CAAe;IAEO,kBAAkB,GAAG,EAAE,CAAC;IAElD,SAAS,CAA+B;IACxC,UAAU,CAAmC;IAEtD,gBAAgB;QACd,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,MAAM,EAAE,CAAC;QACvE,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,IAA4B,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,EAAE,CAAC;YAC1F,SAAS,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,MAAM,CAAC,QAAuB;QAC5B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,CAAC,KAAa;QACnB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,MAAM;QACJ,IAAI,SAAS,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,CACL,EAAC,IAAI,IAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB;YAClC,eAAQ,CACH,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Host, h, Prop, Event, type EventEmitter, Element } from \"@stencil/core\";\nimport type { TokenResponse } from \"../../api/auth\";\nimport { authStore } from \"../../store/auth-store\";\n\n@Component({\n tag: \"u-signin-root\",\n shadow: true,\n})\nexport class SigninRoot {\n @Element() el!: HTMLElement;\n\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n\n @Event() authEvent!: EventEmitter<TokenResponse>;\n @Event() errorEvent!: EventEmitter<{ error: string }>;\n\n componentDidLoad() {\n authStore.setRootComponentRef(this);\n const signInSteps = this.el.querySelectorAll(\"u-signin-step\").values();\n if ([...signInSteps].some((step: HTMLUSigninStepElement) => step.name === \"single-login\")) {\n authStore.setInitialStep(\"single-login\");\n } else {\n authStore.setInitialStep(\"email\");\n }\n }\n\n onAuth(response: TokenResponse) {\n this.authEvent.emit(response);\n }\n\n onError(error: string) {\n this.errorEvent.emit({ error: error });\n }\n\n render() {\n if (authStore.state.authenticated) {\n return null;\n }\n\n return (\n <Host class={this.componentClassName}>\n <slot />\n </Host>\n );\n }\n}\n"]}
|
|
@@ -32,7 +32,7 @@ export class SocialLoginButton extends UnidyComponent {
|
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
get isUnsupportedProvider() {
|
|
35
|
-
return !Object.
|
|
35
|
+
return !Object.hasOwn(ICON_MAP, this.provider) && this.provider !== "unidy";
|
|
36
36
|
}
|
|
37
37
|
get isProviderEnabled() {
|
|
38
38
|
if (authState.step !== "verification") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"social-login-button.js","sourceRoot":"","sources":["../../../../src/auth/components/social-logins/social-login-button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,qBAAqB,GAAG,qBAAqB,CAAC;AAEpD,MAAM,QAAQ,GAAG;IACf,MAAM,EAAE,EAAC,UAAU,IAAC,SAAS,EAAE,qBAAqB,GAAI;IACxD,QAAQ,EAAE,EAAC,YAAY,IAAC,SAAS,EAAE,qBAAqB,GAAI;IAC5D,KAAK,EAAE,EAAC,SAAS,IAAC,SAAS,EAAE,GAAG,qBAAqB,iBAAiB,GAAI;IAC1E,OAAO,EAAE,EAAC,WAAW,IAAC,SAAS,EAAE,GAAG,qBAAqB,iBAAiB,GAAI;IAC9E,QAAQ,EAAE,EAAC,YAAY,IAAC,SAAS,EAAC,qBAAqB,GAAG;CAClD,CAAC;AASX,MAAM,OAAO,iBAAkB,SAAQ,cAAc;;;;IAC3C,QAAQ,GAAwB,QAAQ,CAAC;IACzC,WAAW,GAAW,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC3C,QAAQ,GAAG,KAAK,CAAC;IACjB,KAAK,GAAqB,OAAO,CAAC;IAE1C,iBAAiB;QACf,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,MAAM,CAAC,gBAAgB,CAAC,iDAAiD,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;YAC5F,OAAO;QACT,CAAC;IACH,CAAC;IAED,IAAY,qBAAqB;QAC/B,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"social-login-button.js","sourceRoot":"","sources":["../../../../src/auth/components/social-logins/social-login-button.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as Sentry from \"@sentry/browser\";\nimport { Component, h, Prop } from \"@stencil/core\";\nimport { t } from \"../../../i18n\";\nimport { unidyState } from \"../../../shared/store/unidy-store\";\nimport { authState } from \"../../store/auth-store\";\nimport { GoogleLogo } from \"./logos/google\";\nimport { LinkedInLogo } from \"./logos/linkedin\";\nimport { AppleLogo } from \"./logos/apple\";\nimport { FacebookLogo } from \"./logos/facebook\";\nimport { DiscordLogo } from \"./logos/discord\";\nimport { UnidyComponent } from \"../../../logger\";\n\nconst SHARED_ICON_CLASSNAME = \"u:w-5 u:h-5 u:block\";\n\nconst ICON_MAP = {\n google: <GoogleLogo className={SHARED_ICON_CLASSNAME} />,\n linkedin: <LinkedInLogo className={SHARED_ICON_CLASSNAME} />,\n apple: <AppleLogo className={`${SHARED_ICON_CLASSNAME} u:fill-current`} />,\n discord: <DiscordLogo className={`${SHARED_ICON_CLASSNAME} u:fill-current`} />,\n facebook: <FacebookLogo className=\"u:w-6 u:h-6 u:block\" />,\n} as const;\n\ntype SocialLoginProvider = keyof typeof ICON_MAP | \"unidy\";\n\n@Component({\n tag: \"u-social-login-button\",\n styleUrl: \"social-login-button.css\",\n shadow: true,\n})\nexport class SocialLoginButton extends UnidyComponent {\n @Prop() provider: SocialLoginProvider = \"google\";\n @Prop() redirectUri: string = window.location.href;\n @Prop() iconOnly = false;\n @Prop() theme: \"light\" | \"dark\" = \"light\";\n\n componentWillLoad() {\n if (this.isUnsupportedProvider) {\n Sentry.captureException(`[u-social-login-button] Unsupported provider \"${this.provider}\".`);\n return;\n }\n }\n\n private get isUnsupportedProvider(): boolean {\n return !Object.hasOwn(ICON_MAP, this.provider) && this.provider !== \"unidy\";\n }\n\n private get isProviderEnabled(): boolean {\n if (authState.step !== \"verification\") {\n return true; // TODO: for now we show all providers on the email step since we don't have registration flow in place yet\n }\n\n if (!authState.availableLoginOptions?.social_logins) {\n return false;\n }\n\n return authState.availableLoginOptions.social_logins.some((enabled) => enabled.startsWith(this.provider) || enabled === this.provider);\n }\n\n private getAuthUrl(): string {\n const baseUrl = unidyState.baseUrl;\n const redirectUri = this.redirectUri ? encodeURIComponent(this.redirectUri) : baseUrl;\n\n return `${baseUrl}/api/sdk/v1/sign_ins/auth/omniauth/${this.provider}?sdk_redirect_uri=${redirectUri}`;\n }\n\n private onClick = async () => {\n if (!unidyState.baseUrl) {\n this.logger.error(\"baseUrl is not set. Make sure <u-config> is rendered with a valid base-url.\");\n return;\n }\n\n window.location.href = this.getAuthUrl();\n };\n\n private renderIcon() {\n if (this.isUnsupportedProvider || this.provider === \"unidy\") {\n return null;\n }\n\n return ICON_MAP[this.provider];\n }\n\n private getButtonClasses(): string {\n const baseClasses = \"u:w-full u:h-10 u:border u:border-solid u:rounded-md u:text-base u:font-medium\";\n const cursorClass = this.isUnsupportedProvider ? \"u:cursor-not-allowed\" : \"u:cursor-pointer\";\n const themeClasses =\n this.theme === \"dark\"\n ? \"u:bg-[#131314] u:text-white u:border-gray-600 u:hover:bg-[#1f1f20]\"\n : \"u:bg-white u:text-[#1f1f1f] u:border-gray-300 u:hover:bg-gray-100\";\n\n return `${baseClasses} ${cursorClass} ${themeClasses}`;\n }\n\n render() {\n if (!this.isProviderEnabled) {\n return null;\n }\n\n const providerName = this.provider.charAt(0).toUpperCase() + this.provider.slice(1);\n const text = t(\"auth.socialLogin.button_text\", {\n defaultValue: \"Continue with {{provider}}\",\n provider: providerName,\n });\n\n // TODO: allow users to customize already used providers with custom text and icon\n return (\n <button type=\"button\" class={this.getButtonClasses()} onClick={this.onClick} part=\"social-login-button\">\n <div class=\"u:flex u:items-center u:justify-center\" part=\"social-login-button-content\">\n <slot name=\"icon\">\n <span aria-hidden=\"true\">{this.renderIcon()}</span>\n </slot>\n\n {this.iconOnly ? (\n // Render the hidden text for accessibility.\n <span class=\"u:sr-only\">{text}</span>\n ) : (\n <span class={!this.isUnsupportedProvider ? \"u:ml-4\" : \"\"} part=\"social-login-button-text\">\n {text}\n </span>\n )}\n </div>\n </button>\n );\n }\n}\n"]}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
+
import { t } from "../../../i18n";
|
|
1
2
|
import { authState } from "../../store/auth-store";
|
|
2
3
|
import { getParentSigninStep } from "../helpers";
|
|
3
|
-
import { t } from "../../../i18n";
|
|
4
|
-
export const AuthSubmitButton = (_props, children) => {
|
|
5
|
-
return children;
|
|
6
|
-
};
|
|
7
4
|
export const authContext = {
|
|
8
|
-
handleClick: async (event, el) => {
|
|
5
|
+
handleClick: async (event, el, _forProp) => {
|
|
9
6
|
event.preventDefault();
|
|
10
7
|
await getParentSigninStep(el)?.submit();
|
|
11
8
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-submit-button.js","sourceRoot":"","sources":["../../../../src/auth/components/submit-button/auth-submit-button.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth-submit-button.js","sourceRoot":"","sources":["../../../../src/auth/components/submit-button/auth-submit-button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAElC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAIjD,MAAM,CAAC,MAAM,WAAW,GAAuC;IAC7D,WAAW,EAAE,KAAK,EAAE,KAAiB,EAAE,EAAe,EAAE,QAAwB,EAAE,EAAE;QAClF,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,MAAM,mBAAmB,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1C,CAAC;IAED,UAAU,CAAC,OAAuB,EAAE,QAAkB;QACpD,IAAI,QAAQ,IAAI,SAAS,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE/C,IAAI,SAAS,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACtD,OAAO,SAAS,CAAC,KAAK,KAAK,EAAE,CAAC;QAChC,CAAC;QAED,IAAI,SAAS,CAAC,IAAI,KAAK,cAAc,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;YAChE,OAAO,SAAS,CAAC,QAAQ,KAAK,EAAE,CAAC;QACnC,CAAC;QAED,IAAI,SAAS,CAAC,IAAI,KAAK,gBAAgB,IAAI,OAAO,KAAK,eAAe,EAAE,CAAC;YACvE,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,oBAAoB,CAAC;QAC/F,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,SAAS;QACP,OAAO,SAAS,CAAC,OAAO,CAAC;IAC3B,CAAC;IAED,aAAa,CAAC,OAAuB,EAAE,IAAa;QAClD,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QAEtB,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;YACvB,KAAK,OAAO;gBACV,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC;YAC/B,KAAK,cAAc;gBACjB,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;oBAC3B,OAAO,CAAC,CAAC,2BAA2B,EAAE,EAAE,YAAY,EAAE,uBAAuB,EAAE,CAAC,CAAC;gBACnF,CAAC;gBACD,OAAO,CAAC,CAAC,gBAAgB,CAAC,CAAC;YAC7B,KAAK,gBAAgB;gBACnB,IAAI,OAAO,KAAK,eAAe,EAAE,CAAC;oBAChC,OAAO,CAAC,CAAC,oCAAoC,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC;gBACnF,CAAC;gBACD,OAAO,CAAC,CAAC,gBAAgB,CAAC,CAAC;YAC7B;gBACE,OAAO,CAAC,CAAC,gBAAgB,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,YAAY,CAAC,OAAuB;QAClC,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,QAAQ,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;YACzE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,SAAS,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC/B,OAAO,OAAO,KAAK,OAAO,CAAC;QAC7B,CAAC;QAED,IAAI,SAAS,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACtC,OAAO,OAAO,KAAK,UAAU,IAAI,SAAS,CAAC,aAAa,KAAK,MAAM,CAAC;QACtE,CAAC;QAED,IAAI,SAAS,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACxC,OAAO,OAAO,KAAK,eAAe,CAAC;QACrC,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAC","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"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { authStore, authState } from "./store/auth-store";
|
|
2
1
|
import { jwtDecode } from "jwt-decode";
|
|
3
2
|
import { createLogger } from "../logger";
|
|
3
|
+
import { authState, authStore } from "./store/auth-store";
|
|
4
4
|
const logger = createLogger("PasskeyAuth");
|
|
5
5
|
const PASSKEY_ERRORS = {
|
|
6
6
|
NotSupportedError: "passkey_not_supported",
|
|
@@ -39,9 +39,7 @@ function formatCredentialForServer(credential) {
|
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
41
|
function extractAndSetSignInId(tokenResponse) {
|
|
42
|
-
// @ts-ignore - sid may exist on response
|
|
43
42
|
if (tokenResponse.sid) {
|
|
44
|
-
// @ts-ignore
|
|
45
43
|
authStore.setSignInId(tokenResponse.sid);
|
|
46
44
|
return;
|
|
47
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"passkey-auth.js","sourceRoot":"","sources":["../../src/auth/passkey-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"passkey-auth.js","sourceRoot":"","sources":["../../src/auth/passkey-auth.ts"],"names":[],"mappings":"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","sourcesContent":["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.setGlobalError(\"auth\", 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.setGlobalError(\"auth\", \"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.setGlobalError(\"auth\", 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.setGlobalError(\"auth\", \"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"]}
|
|
@@ -3,6 +3,7 @@ import * as Sentry from "@sentry/browser";
|
|
|
3
3
|
import { createLogger } from "./logger";
|
|
4
4
|
const logger = createLogger("globalScript");
|
|
5
5
|
export default function () {
|
|
6
|
+
// or export default async function()
|
|
6
7
|
logger.info("Logger initialized. You can set the log level in the browser console, e.g., setLogLevel('debug').");
|
|
7
8
|
if (!Build.isDev) {
|
|
8
9
|
logger.info("Initializing Sentry...");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"globalScript.js","sourceRoot":"","sources":["../src/globalScript.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,MAAM,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;AAE5C,MAAM,CAAC,OAAO;IACZ,MAAM,CAAC,IAAI,CAAC,mGAAmG,CAAC,CAAC;IACjH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC;YACV,GAAG,EAAE,iGAAiG;YACtG,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ;YACjC,cAAc,EAAE,IAAI;YACpB,gBAAgB,EAAE,KAAK;SACxB,CAAC,CAAC;IACL,CAAC;AACH,CAAC","sourcesContent":["import { Build } from \"@stencil/core\";\nimport * as Sentry from \"@sentry/browser\";\nimport { createLogger } from \"./logger\";\n\nconst logger = createLogger(\"globalScript\");\n\nexport default function() {
|
|
1
|
+
{"version":3,"file":"globalScript.js","sourceRoot":"","sources":["../src/globalScript.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,MAAM,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;AAE5C,MAAM,CAAC,OAAO;IACZ,qCAAqC;IACrC,MAAM,CAAC,IAAI,CAAC,mGAAmG,CAAC,CAAC;IACjH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC;YACV,GAAG,EAAE,iGAAiG;YACtG,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ;YACjC,cAAc,EAAE,IAAI;YACpB,gBAAgB,EAAE,KAAK;SACxB,CAAC,CAAC;IACL,CAAC;AACH,CAAC","sourcesContent":["import { Build } from \"@stencil/core\";\nimport * as Sentry from \"@sentry/browser\";\nimport { createLogger } from \"./logger\";\n\nconst logger = createLogger(\"globalScript\");\n\nexport default function () {\n // or export default async function()\n logger.info(\"Logger initialized. You can set the log level in the browser console, e.g., setLogLevel('debug').\");\n if (!Build.isDev) {\n logger.info(\"Initializing Sentry...\");\n Sentry.init({\n dsn: \"https://d4cc4e5f6d985e61c56330dd27d104d6@o4507882295132160.ingest.de.sentry.io/4510443854037072\",\n environment: process.env.NODE_ENV,\n sendDefaultPii: true,\n tracesSampleRate: 0.005,\n });\n }\n}\n"]}
|