@stytch/react 20.0.0-next.5 → 20.0.0-next.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/cjs/StytchSSRProxy-Bz6LNYdq.js.map +1 -1
- package/dist/cjs/adminPortal/index.cjs +2 -2
- package/dist/cjs/b2b/index.cjs +10 -7
- package/dist/cjs/b2b/index.cjs.map +1 -1
- package/dist/cjs/b2b/index.headless.cjs +456 -496
- package/dist/cjs/b2b/index.headless.cjs.map +1 -1
- package/dist/cjs/{idpHelpers-Bj_7pbfW.js → idpHelpers-UZaYQqT8.js} +111 -129
- package/dist/cjs/{idpHelpers-Bj_7pbfW.js.map → idpHelpers-UZaYQqT8.js.map} +1 -1
- package/dist/cjs/{index-BIjXBvf_.js → index-MDH3lelI.js} +2 -2
- package/dist/cjs/{index-BIjXBvf_.js.map → index-MDH3lelI.js.map} +1 -1
- package/dist/cjs/index.cjs +18 -14
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.headless.cjs +401 -448
- package/dist/cjs/index.headless.cjs.map +1 -1
- package/dist/cjs/{passwordManagerDisableAutofillProps-DV31RTL_.js → passwordManagerDisableAutofillProps-BzR1GTDj.js} +42 -33
- package/dist/cjs/passwordManagerDisableAutofillProps-BzR1GTDj.js.map +1 -0
- package/dist/cjs/{shadcn-aVU6Lm9q.js → shadcn-BNtf3uZr.js} +7 -6
- package/dist/cjs/shadcn-BNtf3uZr.js.map +1 -0
- package/dist/cjs-dev/adminPortal/index.cjs +2 -2
- package/dist/cjs-dev/b2b/index.cjs +10 -7
- package/dist/cjs-dev/b2b/index.cjs.map +1 -1
- package/dist/cjs-dev/b2b/index.headless.cjs +468 -508
- package/dist/cjs-dev/b2b/index.headless.cjs.map +1 -1
- package/dist/cjs-dev/dev-DaCGDI6V.js.map +1 -1
- package/dist/cjs-dev/{idpHelpers-DOYYSxsX.js → idpHelpers-CVk39K69.js} +111 -129
- package/dist/cjs-dev/{idpHelpers-DOYYSxsX.js.map → idpHelpers-CVk39K69.js.map} +1 -1
- package/dist/cjs-dev/{index-rquGmIlv.js → index-BDTK8QN0.js} +2 -2
- package/dist/cjs-dev/{index-rquGmIlv.js.map → index-BDTK8QN0.js.map} +1 -1
- package/dist/cjs-dev/index.cjs +18 -14
- package/dist/cjs-dev/index.cjs.map +1 -1
- package/dist/cjs-dev/index.headless.cjs +405 -452
- package/dist/cjs-dev/index.headless.cjs.map +1 -1
- package/dist/cjs-dev/{passwordManagerDisableAutofillProps-CgiK2M_U.js → passwordManagerDisableAutofillProps--FLcEDiY.js} +42 -33
- package/dist/cjs-dev/passwordManagerDisableAutofillProps--FLcEDiY.js.map +1 -0
- package/dist/cjs-dev/{shadcn-DMk6ZSoD.js → shadcn-CvmoCuzj.js} +9 -8
- package/dist/cjs-dev/shadcn-CvmoCuzj.js.map +1 -0
- package/dist/esm/_virtual/index3.mjs +3 -5
- package/dist/esm/_virtual/index3.mjs.map +1 -1
- package/dist/esm/_virtual/index4.mjs +5 -3
- package/dist/esm/_virtual/index4.mjs.map +1 -1
- package/dist/esm/node_modules/@lingui/react/dist/index.mjs +14 -13
- package/dist/esm/node_modules/@lingui/react/dist/index.mjs.map +1 -1
- package/dist/esm/node_modules/@lingui/react/dist/shared/{react.31c3b5fa.mjs → react.8970326b.mjs} +32 -23
- package/dist/esm/node_modules/@lingui/react/dist/shared/react.8970326b.mjs.map +1 -0
- package/dist/esm/packages/core/src/DFPProtectedAuthProvider.mjs +39 -43
- package/dist/esm/packages/core/src/DFPProtectedAuthProvider.mjs.map +1 -1
- package/dist/esm/packages/core/src/EventLogger.mjs.map +1 -1
- package/dist/esm/packages/core/src/HeadlessClients/HeadlessCryptoWalletClient.mjs.map +1 -1
- package/dist/esm/packages/core/src/HeadlessClients/HeadlessIDPClient.mjs +15 -18
- package/dist/esm/packages/core/src/HeadlessClients/HeadlessIDPClient.mjs.map +1 -1
- package/dist/esm/packages/core/src/HeadlessClients/HeadlessImpersonationClient.mjs.map +1 -1
- package/dist/esm/packages/core/src/HeadlessClients/HeadlessMagicLinkClient.mjs.map +1 -1
- package/dist/esm/packages/core/src/HeadlessClients/HeadlessOAuthClient.mjs +58 -77
- package/dist/esm/packages/core/src/HeadlessClients/HeadlessOAuthClient.mjs.map +1 -1
- package/dist/esm/packages/core/src/HeadlessClients/HeadlessOTPClient.mjs +100 -103
- package/dist/esm/packages/core/src/HeadlessClients/HeadlessOTPClient.mjs.map +1 -1
- package/dist/esm/packages/core/src/HeadlessClients/HeadlessPasswordClient.mjs.map +1 -1
- package/dist/esm/packages/core/src/HeadlessClients/HeadlessRBACClient.mjs +6 -8
- package/dist/esm/packages/core/src/HeadlessClients/HeadlessRBACClient.mjs.map +1 -1
- package/dist/esm/packages/core/src/HeadlessClients/HeadlessSessionClient.mjs +77 -82
- package/dist/esm/packages/core/src/HeadlessClients/HeadlessSessionClient.mjs.map +1 -1
- package/dist/esm/packages/core/src/HeadlessClients/HeadlessTOTPClient.mjs.map +1 -1
- package/dist/esm/packages/core/src/HeadlessClients/HeadlessUserClient.mjs +111 -125
- package/dist/esm/packages/core/src/HeadlessClients/HeadlessUserClient.mjs.map +1 -1
- package/dist/esm/packages/core/src/HeadlessClients/HeadlessWebAuthnClient.mjs +10 -11
- package/dist/esm/packages/core/src/HeadlessClients/HeadlessWebAuthnClient.mjs.map +1 -1
- package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BDiscoveryClient.mjs.map +1 -1
- package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BIDPClient.mjs +16 -19
- package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BIDPClient.mjs.map +1 -1
- package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BImpersonationClient.mjs.map +1 -1
- package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BMagicLinkClient.mjs.map +1 -1
- package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BOAuthClient.mjs.map +1 -1
- package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BOTPsClient.mjs.map +1 -1
- package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BOrganizationClient.mjs +142 -153
- package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BOrganizationClient.mjs.map +1 -1
- package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BPasswordsClient.mjs.map +1 -1
- package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BRBACClient.mjs +7 -9
- package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BRBACClient.mjs.map +1 -1
- package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BRecoveryCodesClient.mjs.map +1 -1
- package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BSCIMClient.mjs.map +1 -1
- package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BSSOClient.mjs +67 -70
- package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BSSOClient.mjs.map +1 -1
- package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BSelfClient.mjs +81 -93
- package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BSelfClient.mjs.map +1 -1
- package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BSessionClient.mjs +67 -73
- package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BSessionClient.mjs.map +1 -1
- package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BTOTPsClient.mjs.map +1 -1
- package/dist/esm/packages/core/src/NetworkClient.mjs.map +1 -1
- package/dist/esm/packages/core/src/SearchManager.mjs.map +1 -1
- package/dist/esm/packages/core/src/SessionManager.mjs +28 -31
- package/dist/esm/packages/core/src/SessionManager.mjs.map +1 -1
- package/dist/esm/packages/core/src/StateChangeClient.mjs +5 -6
- package/dist/esm/packages/core/src/StateChangeClient.mjs.map +1 -1
- package/dist/esm/packages/core/src/public/SDKErrors.mjs.map +1 -1
- package/dist/esm/packages/core/src/rbac.mjs.map +1 -1
- package/dist/esm/packages/core/src/rpc/FrameClient.mjs.map +1 -1
- package/dist/esm/packages/web/src/BootstrapDataManager.mjs.map +1 -1
- package/dist/esm/packages/web/src/CaptchaProvider.mjs +10 -11
- package/dist/esm/packages/web/src/CaptchaProvider.mjs.map +1 -1
- package/dist/esm/packages/web/src/ClientsideServicesProvider.mjs +4 -8
- package/dist/esm/packages/web/src/ClientsideServicesProvider.mjs.map +1 -1
- package/dist/esm/packages/web/src/HeadlessOAuthClient.mjs +24 -24
- package/dist/esm/packages/web/src/HeadlessOAuthClient.mjs.map +1 -1
- package/dist/esm/packages/web/src/NetworkClient.mjs +4 -5
- package/dist/esm/packages/web/src/NetworkClient.mjs.map +1 -1
- package/dist/esm/packages/web/src/PKCEManager.mjs.map +1 -1
- package/dist/esm/packages/web/src/StytchClient.mjs.map +1 -1
- package/dist/esm/packages/web/src/SubscriptionService.mjs +8 -10
- package/dist/esm/packages/web/src/SubscriptionService.mjs.map +1 -1
- package/dist/esm/packages/web/src/adminPortal/utils/theme.mjs +1 -1
- package/dist/esm/packages/web/src/b2b/HeadlessB2BOAuthClient.mjs +48 -48
- package/dist/esm/packages/web/src/b2b/HeadlessB2BOAuthClient.mjs.map +1 -1
- package/dist/esm/packages/web/src/b2b/StytchB2BClient.mjs.map +1 -1
- package/dist/esm/packages/web/src/b2b/oneTap/B2BOneTapProvider.mjs +27 -30
- package/dist/esm/packages/web/src/b2b/oneTap/B2BOneTapProvider.mjs.map +1 -1
- package/dist/esm/packages/web/src/oneTap/GoogleOneTapClient.mjs.map +1 -1
- package/dist/esm/packages/web/src/oneTap/OneTapProvider.mjs +12 -14
- package/dist/esm/packages/web/src/oneTap/OneTapProvider.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/b2b/App.mjs +3 -1
- package/dist/esm/packages/web/src/ui/b2b/App.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/b2b/InternalAppContainer.mjs +1 -1
- package/dist/esm/packages/web/src/ui/b2b/InternalAppContainer.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/b2b/screens/SMSOTPEnrollScreen.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/b2c/AppContainer.mjs +1 -1
- package/dist/esm/packages/web/src/ui/b2c/AppContainer.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/b2c/IDPContainer.mjs +3 -1
- package/dist/esm/packages/web/src/ui/b2c/IDPContainer.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/b2c/PasskeyRegistrationContainer.mjs +1 -1
- package/dist/esm/packages/web/src/ui/b2c/PasskeyRegistrationContainer.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/b2c/ResetPasswordContainer.mjs +1 -1
- package/dist/esm/packages/web/src/ui/b2c/ResetPasswordContainer.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/b2c/components/GoogleOneTap.mjs +4 -2
- package/dist/esm/packages/web/src/ui/b2c/components/GoogleOneTap.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/b2c/screens/Main/index.mjs +2 -1
- package/dist/esm/packages/web/src/ui/b2c/screens/Main/index.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/components/PresentationConfig.mjs +2 -1
- package/dist/esm/packages/web/src/ui/components/PresentationConfig.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/components/mixins/Root.module.css.mjs +1 -1
- package/dist/esm/packages/web/src/ui/components/molecules/MainContainer.module.css.mjs +1 -1
- package/dist/esm/packages/web/src/ui/hooks/usePromptPasskey.mjs +3 -3
- package/dist/esm/packages/web/src/ui/hooks/usePromptPasskey.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/react/bindings/createB2BComponent.mjs +2 -2
- package/dist/esm/packages/web/src/ui/react/bindings/createB2BComponent.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/react/bindings/createB2CComponent.mjs +2 -2
- package/dist/esm/packages/web/src/ui/react/bindings/createB2CComponent.mjs.map +1 -1
- package/dist/esm/packages/web/src/utils/crypto.mjs +1 -1
- package/dist/esm-dev/_virtual/index.mjs +3 -5
- package/dist/esm-dev/_virtual/index.mjs.map +1 -1
- package/dist/esm-dev/_virtual/index2.mjs +5 -3
- package/dist/esm-dev/_virtual/index2.mjs.map +1 -1
- package/dist/esm-dev/_virtual/index3.mjs +5 -3
- package/dist/esm-dev/_virtual/index3.mjs.map +1 -1
- package/dist/esm-dev/_virtual/index4.mjs +3 -5
- package/dist/esm-dev/_virtual/index4.mjs.map +1 -1
- package/dist/esm-dev/node_modules/@lingui/react/dist/index.mjs +14 -13
- package/dist/esm-dev/node_modules/@lingui/react/dist/index.mjs.map +1 -1
- package/dist/esm-dev/node_modules/@lingui/react/dist/shared/{react.31c3b5fa.mjs → react.8970326b.mjs} +32 -23
- package/dist/esm-dev/node_modules/@lingui/react/dist/shared/react.8970326b.mjs.map +1 -0
- package/dist/esm-dev/node_modules/swr/core/dist/index.mjs +1 -1
- package/dist/esm-dev/node_modules/swr/infinite/dist/index.mjs +1 -1
- package/dist/esm-dev/packages/core/src/DFPProtectedAuthProvider.mjs +39 -43
- package/dist/esm-dev/packages/core/src/DFPProtectedAuthProvider.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/EventLogger.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessCryptoWalletClient.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessIDPClient.mjs +15 -18
- package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessIDPClient.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessImpersonationClient.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessMagicLinkClient.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessOAuthClient.mjs +58 -77
- package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessOAuthClient.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessOTPClient.mjs +100 -103
- package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessOTPClient.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessPasswordClient.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessRBACClient.mjs +6 -8
- package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessRBACClient.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessSessionClient.mjs +77 -82
- package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessSessionClient.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessTOTPClient.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessUserClient.mjs +114 -128
- package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessUserClient.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessWebAuthnClient.mjs +10 -11
- package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessWebAuthnClient.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BDiscoveryClient.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BIDPClient.mjs +16 -19
- package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BIDPClient.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BImpersonationClient.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BMagicLinkClient.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BOAuthClient.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BOTPsClient.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BOrganizationClient.mjs +144 -155
- package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BOrganizationClient.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BPasswordsClient.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BRBACClient.mjs +7 -9
- package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BRBACClient.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BRecoveryCodesClient.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BSCIMClient.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BSSOClient.mjs +67 -70
- package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BSSOClient.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BSelfClient.mjs +88 -100
- package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BSelfClient.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BSessionClient.mjs +70 -76
- package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BSessionClient.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BTOTPsClient.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/NetworkClient.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/SearchManager.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/SessionManager.mjs +28 -31
- package/dist/esm-dev/packages/core/src/SessionManager.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/StateChangeClient.mjs +5 -6
- package/dist/esm-dev/packages/core/src/StateChangeClient.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/public/SDKErrors.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/rbac.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/rpc/FrameClient.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/BootstrapDataManager.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/CaptchaProvider.mjs +10 -11
- package/dist/esm-dev/packages/web/src/CaptchaProvider.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ClientsideServicesProvider.mjs +4 -8
- package/dist/esm-dev/packages/web/src/ClientsideServicesProvider.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/HeadlessOAuthClient.mjs +24 -24
- package/dist/esm-dev/packages/web/src/HeadlessOAuthClient.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/NetworkClient.mjs +4 -5
- package/dist/esm-dev/packages/web/src/NetworkClient.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/PKCEManager.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/StytchClient.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/SubscriptionService.mjs +8 -10
- package/dist/esm-dev/packages/web/src/SubscriptionService.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/memberManagement/AuthManagementSection.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/memberManagement/useMemberActivation.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/scim/SCIMConnectionDangerZoneSection.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/scim/SCIMConnectionTokenRotationSection.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/scim/SCIMNewConnectionScreen.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/sso/SSONewConnectionScreen.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/utils/theme.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/utils/useMutateMember.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/utils/useMutateOrganization.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/utils/useMutateScimConnection.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/utils/useMutateSsoConnection.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/utils/useRevalidateConnectionList.mjs +1 -1
- package/dist/esm-dev/packages/web/src/b2b/HeadlessB2BOAuthClient.mjs +48 -48
- package/dist/esm-dev/packages/web/src/b2b/HeadlessB2BOAuthClient.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/b2b/StytchB2BClient.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/b2b/oneTap/B2BOneTapProvider.mjs +27 -30
- package/dist/esm-dev/packages/web/src/b2b/oneTap/B2BOneTapProvider.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/oneTap/GoogleOneTapClient.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/oneTap/OneTapProvider.mjs +12 -14
- package/dist/esm-dev/packages/web/src/oneTap/OneTapProvider.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2b/App.mjs +3 -1
- package/dist/esm-dev/packages/web/src/ui/b2b/App.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2b/Container.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2b/InternalAppContainer.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2b/InternalAppContainer.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2b/components/OrganizationRow.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2b/screens/SMSOTPEnrollScreen.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/AppContainer.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/AppContainer.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/IDPContainer.mjs +3 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/IDPContainer.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/PasskeyRegistrationContainer.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/PasskeyRegistrationContainer.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/ResetPasswordContainer.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/ResetPasswordContainer.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/components/GoogleOneTap.mjs +5 -3
- package/dist/esm-dev/packages/web/src/ui/b2c/components/GoogleOneTap.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/screens/Main/LoginForm/index.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/screens/Main/index.mjs +2 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/screens/Main/index.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/screens/Passkey/EditableRow.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/components/PresentationConfig.mjs +2 -1
- package/dist/esm-dev/packages/web/src/ui/components/PresentationConfig.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/components/atoms/AnimatedContainer.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/components/atoms/Button.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/components/atoms/CodeContainer.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/components/atoms/Column.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/components/atoms/Typography.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/components/atoms/VerticalTransition.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/components/atoms/VisuallyHidden.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/components/mixins/Root.module.css.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/components/molecules/Badge.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/components/molecules/Input.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/components/molecules/MainContainer.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/components/molecules/MainContainer.module.css.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/components/molecules/OtpInput.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/components/molecules/PasswordStrengthCheck.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/components/organisms/IDPConsentManifest.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/components/organisms/OneTapError.mjs +2 -2
- package/dist/esm-dev/packages/web/src/ui/components/organisms/OneTapError.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/hooks/usePromptPasskey.mjs +3 -3
- package/dist/esm-dev/packages/web/src/ui/hooks/usePromptPasskey.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/react/bindings/createB2BComponent.mjs +2 -2
- package/dist/esm-dev/packages/web/src/ui/react/bindings/createB2BComponent.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/react/bindings/createB2CComponent.mjs +2 -2
- package/dist/esm-dev/packages/web/src/ui/react/bindings/createB2CComponent.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/utils/crypto.mjs +1 -1
- package/dist/types/{PresentationConfig-B2jX85oV.d.ts → PresentationConfig-CdAymT0c.d.ts} +5 -0
- package/dist/types/{StytchB2BClient-D16e_lp1.d.ts → StytchB2BClient-DYF9xGAB.d.ts} +1 -1
- package/dist/types/{StytchClient-BwQdJzdj.d.ts → StytchClient-IyY7-cpI.d.ts} +1 -1
- package/dist/types/adminPortal/index.d.ts +3 -3
- package/dist/types/b2b/index.d.ts +7 -7
- package/dist/types/b2b/index.headless.d.ts +2 -2
- package/dist/types/compat.d.ts +1 -1
- package/dist/types/{createAuthUrlHandler-R1kNNQD_.d.ts → createAuthUrlHandler-CFZ0DGWC.d.ts} +6 -2
- package/dist/types/index.d.ts +7 -7
- package/dist/types/index.headless.d.ts +2 -2
- package/dist/types/{shadcn-CGdmyIUF.d.ts → shadcn-USiNERNw.d.ts} +4 -4
- package/messages/en.po +3 -3
- package/package.json +1 -1
- package/dist/cjs/passwordManagerDisableAutofillProps-DV31RTL_.js.map +0 -1
- package/dist/cjs/shadcn-aVU6Lm9q.js.map +0 -1
- package/dist/cjs-dev/passwordManagerDisableAutofillProps-CgiK2M_U.js.map +0 -1
- package/dist/cjs-dev/shadcn-DMk6ZSoD.js.map +0 -1
- package/dist/esm/node_modules/@lingui/react/dist/shared/react.31c3b5fa.mjs.map +0 -1
- package/dist/esm-dev/node_modules/@lingui/react/dist/shared/react.31c3b5fa.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeadlessB2BSCIMClient.mjs","sources":["../../../../../../../../core/src/HeadlessClients/b2b/HeadlessB2BSCIMClient.ts"],"sourcesContent":["import {\n B2BSCIMCreateConnectionOptions,\n B2BSCIMCreateConnectionResponse,\n B2BSCIMDeleteConnectionResponse,\n B2BSCIMGetConnectionGroupsOptions,\n B2BSCIMGetConnectionGroupsResponse,\n B2BSCIMGetConnectionResponse,\n B2BSCIMRotateCancelResponse,\n B2BSCIMRotateCompleteResponse,\n B2BSCIMRotateStartResponse,\n B2BSCIMUpdateConnectionOptions,\n B2BSCIMUpdateConnectionResponse,\n IHeadlessB2BSCIMClient,\n} from '../../public/b2b/scim';\nimport { IB2BSubscriptionService, INetworkClient } from '../..';\nimport { StytchProjectConfigurationInput } from '../../public/typeConfig';\nimport { validateInDev } from '../../utils/dev';\n\nexport class HeadlessB2BSCIMClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessB2BSCIMClient\n{\n constructor(\n protected _networkClient: INetworkClient,\n protected _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n ) {}\n\n async createConnection(data: B2BSCIMCreateConnectionOptions): Promise<B2BSCIMCreateConnectionResponse> {\n validateInDev('stytch.scim.createConnection', data, {\n display_name: 'optionalString',\n identity_provider: 'optionalString',\n });\n\n return await this._networkClient.fetchSDK<B2BSCIMCreateConnectionResponse>({\n url: '/b2b/scim',\n method: 'POST',\n body: data,\n });\n }\n\n async updateConnection(data: B2BSCIMUpdateConnectionOptions): Promise<B2BSCIMUpdateConnectionResponse> {\n validateInDev('stytch.scim.updateConnection', data, {\n connection_id: 'string',\n display_name: 'optionalString',\n identity_provider: 'optionalString',\n });\n\n return await this._networkClient.fetchSDK<B2BSCIMUpdateConnectionResponse>({\n url: `/b2b/scim/${data.connection_id}`,\n method: 'PUT',\n body: data,\n });\n }\n\n async deleteConnection(connectionId: string): Promise<B2BSCIMDeleteConnectionResponse> {\n validateInDev(\n 'stytch.scim.deleteConnection',\n { connection_id: connectionId },\n {\n connection_id: 'string',\n },\n );\n\n return await this._networkClient.fetchSDK<B2BSCIMDeleteConnectionResponse>({\n url: `/b2b/scim/${connectionId}`,\n method: 'DELETE',\n });\n }\n\n async getConnection(): Promise<B2BSCIMGetConnectionResponse> {\n return await this._networkClient.fetchSDK<B2BSCIMGetConnectionResponse>({\n url: '/b2b/scim',\n method: 'GET',\n });\n }\n\n async getConnectionGroups(data: B2BSCIMGetConnectionGroupsOptions): Promise<B2BSCIMGetConnectionGroupsResponse> {\n validateInDev('stytch.scim.getConnectionGroups', data, {\n limit: 'optionalNumber',\n cursor: 'optionalString',\n });\n\n return await this._networkClient.fetchSDK<B2BSCIMGetConnectionGroupsResponse>({\n url: '/b2b/scim/groups',\n method: 'POST',\n body: data,\n });\n }\n\n async rotateStart(connectionId: string): Promise<B2BSCIMRotateStartResponse> {\n validateInDev(\n 'stytch.scim.rotateStart',\n { connectionId },\n {\n connectionId: 'string',\n },\n );\n return await this._networkClient.fetchSDK<B2BSCIMRotateStartResponse>({\n url: `/b2b/scim/rotate/start`,\n method: 'POST',\n body: { connection_id: connectionId },\n });\n }\n\n async rotateComplete(connectionId: string): Promise<B2BSCIMRotateCompleteResponse> {\n validateInDev(\n 'stytch.scim.rotateComplete',\n { connectionId },\n {\n connectionId: 'string',\n },\n );\n\n return await this._networkClient.fetchSDK<B2BSCIMRotateCompleteResponse>({\n url: `/b2b/scim/rotate/complete`,\n method: 'POST',\n body: { connection_id: connectionId },\n });\n }\n\n async rotateCancel(connectionId: string): Promise<B2BSCIMRotateCancelResponse> {\n validateInDev(\n 'stytch.scim.rotateCancel',\n { connectionId },\n {\n connectionId: 'string',\n },\n );\n\n return await this._networkClient.fetchSDK<B2BSCIMRotateCancelResponse>({\n url: `/b2b/scim/rotate/cancel`,\n method: 'POST',\n body: { connection_id: connectionId },\n });\n }\n}\n"],"names":["HeadlessB2BSCIMClient","
|
|
1
|
+
{"version":3,"file":"HeadlessB2BSCIMClient.mjs","sources":["../../../../../../../../core/src/HeadlessClients/b2b/HeadlessB2BSCIMClient.ts"],"sourcesContent":["import {\n B2BSCIMCreateConnectionOptions,\n B2BSCIMCreateConnectionResponse,\n B2BSCIMDeleteConnectionResponse,\n B2BSCIMGetConnectionGroupsOptions,\n B2BSCIMGetConnectionGroupsResponse,\n B2BSCIMGetConnectionResponse,\n B2BSCIMRotateCancelResponse,\n B2BSCIMRotateCompleteResponse,\n B2BSCIMRotateStartResponse,\n B2BSCIMUpdateConnectionOptions,\n B2BSCIMUpdateConnectionResponse,\n IHeadlessB2BSCIMClient,\n} from '../../public/b2b/scim';\nimport { IB2BSubscriptionService, INetworkClient } from '../..';\nimport { StytchProjectConfigurationInput } from '../../public/typeConfig';\nimport { validateInDev } from '../../utils/dev';\n\nexport class HeadlessB2BSCIMClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessB2BSCIMClient\n{\n constructor(\n protected _networkClient: INetworkClient,\n protected _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n ) {}\n\n async createConnection(data: B2BSCIMCreateConnectionOptions): Promise<B2BSCIMCreateConnectionResponse> {\n validateInDev('stytch.scim.createConnection', data, {\n display_name: 'optionalString',\n identity_provider: 'optionalString',\n });\n\n return await this._networkClient.fetchSDK<B2BSCIMCreateConnectionResponse>({\n url: '/b2b/scim',\n method: 'POST',\n body: data,\n });\n }\n\n async updateConnection(data: B2BSCIMUpdateConnectionOptions): Promise<B2BSCIMUpdateConnectionResponse> {\n validateInDev('stytch.scim.updateConnection', data, {\n connection_id: 'string',\n display_name: 'optionalString',\n identity_provider: 'optionalString',\n });\n\n return await this._networkClient.fetchSDK<B2BSCIMUpdateConnectionResponse>({\n url: `/b2b/scim/${data.connection_id}`,\n method: 'PUT',\n body: data,\n });\n }\n\n async deleteConnection(connectionId: string): Promise<B2BSCIMDeleteConnectionResponse> {\n validateInDev(\n 'stytch.scim.deleteConnection',\n { connection_id: connectionId },\n {\n connection_id: 'string',\n },\n );\n\n return await this._networkClient.fetchSDK<B2BSCIMDeleteConnectionResponse>({\n url: `/b2b/scim/${connectionId}`,\n method: 'DELETE',\n });\n }\n\n async getConnection(): Promise<B2BSCIMGetConnectionResponse> {\n return await this._networkClient.fetchSDK<B2BSCIMGetConnectionResponse>({\n url: '/b2b/scim',\n method: 'GET',\n });\n }\n\n async getConnectionGroups(data: B2BSCIMGetConnectionGroupsOptions): Promise<B2BSCIMGetConnectionGroupsResponse> {\n validateInDev('stytch.scim.getConnectionGroups', data, {\n limit: 'optionalNumber',\n cursor: 'optionalString',\n });\n\n return await this._networkClient.fetchSDK<B2BSCIMGetConnectionGroupsResponse>({\n url: '/b2b/scim/groups',\n method: 'POST',\n body: data,\n });\n }\n\n async rotateStart(connectionId: string): Promise<B2BSCIMRotateStartResponse> {\n validateInDev(\n 'stytch.scim.rotateStart',\n { connectionId },\n {\n connectionId: 'string',\n },\n );\n return await this._networkClient.fetchSDK<B2BSCIMRotateStartResponse>({\n url: `/b2b/scim/rotate/start`,\n method: 'POST',\n body: { connection_id: connectionId },\n });\n }\n\n async rotateComplete(connectionId: string): Promise<B2BSCIMRotateCompleteResponse> {\n validateInDev(\n 'stytch.scim.rotateComplete',\n { connectionId },\n {\n connectionId: 'string',\n },\n );\n\n return await this._networkClient.fetchSDK<B2BSCIMRotateCompleteResponse>({\n url: `/b2b/scim/rotate/complete`,\n method: 'POST',\n body: { connection_id: connectionId },\n });\n }\n\n async rotateCancel(connectionId: string): Promise<B2BSCIMRotateCancelResponse> {\n validateInDev(\n 'stytch.scim.rotateCancel',\n { connectionId },\n {\n connectionId: 'string',\n },\n );\n\n return await this._networkClient.fetchSDK<B2BSCIMRotateCancelResponse>({\n url: `/b2b/scim/rotate/cancel`,\n method: 'POST',\n body: { connection_id: connectionId },\n });\n }\n}\n"],"names":["HeadlessB2BSCIMClient","_subscriptionService","_networkClient","createConnection","data","fetchSDK","url","method","body","updateConnection","connection_id","deleteConnection","connectionId","getConnection","getConnectionGroups","rotateStart","rotateComplete","rotateCancel"],"mappings":"AAkBO,MAAMA,qBAAAA,CAAAA;;;AAGX,IAAA,WAAA,CACE,cAAwC,EAC9BC,oBAAoE,CAC9E;aAFUC,cAAAA,GAAAA,cAAAA;aACAD,oBAAAA,GAAAA,oBAAAA;AACT,IAAA;IAEH,MAAME,gBAAAA,CAAiBC,IAAoC,EAA4C;AAMrG,QAAA,OAAO,MAAM,IAAI,CAACF,cAAc,CAACG,QAAQ,CAAkC;YACzEC,GAAAA,EAAK,WAAA;YACLC,MAAAA,EAAQ,MAAA;YACRC,IAAAA,EAAMJ;AACR,SAAA,CAAA;AACF,IAAA;IAEA,MAAMK,gBAAAA,CAAiBL,IAAoC,EAA4C;AAOrG,QAAA,OAAO,MAAM,IAAI,CAACF,cAAc,CAACG,QAAQ,CAAkC;AACzEC,YAAAA,GAAAA,EAAK,CAAC,UAAU,EAAEF,IAAAA,CAAKM,aAAa,CAAA,CAAE;YACtCH,MAAAA,EAAQ,KAAA;YACRC,IAAAA,EAAMJ;AACR,SAAA,CAAA;AACF,IAAA;IAEA,MAAMO,gBAAAA,CAAiBC,YAAoB,EAA4C;AASrF,QAAA,OAAO,MAAM,IAAI,CAACV,cAAc,CAACG,QAAQ,CAAkC;YACzEC,GAAAA,EAAK,CAAC,UAAU,EAAEM,YAAAA,CAAAA,CAAc;YAChCL,MAAAA,EAAQ;AACV,SAAA,CAAA;AACF,IAAA;AAEA,IAAA,MAAMM,aAAAA,GAAuD;AAC3D,QAAA,OAAO,MAAM,IAAI,CAACX,cAAc,CAACG,QAAQ,CAA+B;YACtEC,GAAAA,EAAK,WAAA;YACLC,MAAAA,EAAQ;AACV,SAAA,CAAA;AACF,IAAA;IAEA,MAAMO,mBAAAA,CAAoBV,IAAuC,EAA+C;AAM9G,QAAA,OAAO,MAAM,IAAI,CAACF,cAAc,CAACG,QAAQ,CAAqC;YAC5EC,GAAAA,EAAK,kBAAA;YACLC,MAAAA,EAAQ,MAAA;YACRC,IAAAA,EAAMJ;AACR,SAAA,CAAA;AACF,IAAA;IAEA,MAAMW,WAAAA,CAAYH,YAAoB,EAAuC;AAQ3E,QAAA,OAAO,MAAM,IAAI,CAACV,cAAc,CAACG,QAAQ,CAA6B;YACpEC,GAAAA,EAAK,CAAC,sBAAsB,CAAC;YAC7BC,MAAAA,EAAQ,MAAA;YACRC,IAAAA,EAAM;gBAAEE,aAAAA,EAAeE;AAAa;AACtC,SAAA,CAAA;AACF,IAAA;IAEA,MAAMI,cAAAA,CAAeJ,YAAoB,EAA0C;AASjF,QAAA,OAAO,MAAM,IAAI,CAACV,cAAc,CAACG,QAAQ,CAAgC;YACvEC,GAAAA,EAAK,CAAC,yBAAyB,CAAC;YAChCC,MAAAA,EAAQ,MAAA;YACRC,IAAAA,EAAM;gBAAEE,aAAAA,EAAeE;AAAa;AACtC,SAAA,CAAA;AACF,IAAA;IAEA,MAAMK,YAAAA,CAAaL,YAAoB,EAAwC;AAS7E,QAAA,OAAO,MAAM,IAAI,CAACV,cAAc,CAACG,QAAQ,CAA8B;YACrEC,GAAAA,EAAK,CAAC,uBAAuB,CAAC;YAC9BC,MAAAA,EAAQ,MAAA;YACRC,IAAAA,EAAM;gBAAEE,aAAAA,EAAeE;AAAa;AACtC,SAAA,CAAA;AACF,IAAA;AACF;;;;"}
|
|
@@ -16,73 +16,6 @@ class HeadlessB2BSSOClient {
|
|
|
16
16
|
this._dynamicConfig = _dynamicConfig;
|
|
17
17
|
this._config = _config;
|
|
18
18
|
this.dfpProtectedAuth = dfpProtectedAuth;
|
|
19
|
-
this.saml = {
|
|
20
|
-
createConnection: async (data)=>{
|
|
21
|
-
return await this._networkClient.fetchSDK({
|
|
22
|
-
url: '/b2b/sso/saml',
|
|
23
|
-
method: 'POST',
|
|
24
|
-
body: data
|
|
25
|
-
});
|
|
26
|
-
},
|
|
27
|
-
updateConnection: async (data)=>{
|
|
28
|
-
return await this._networkClient.fetchSDK({
|
|
29
|
-
url: `/b2b/sso/saml/${data.connection_id}`,
|
|
30
|
-
method: 'PUT',
|
|
31
|
-
body: data
|
|
32
|
-
});
|
|
33
|
-
},
|
|
34
|
-
updateConnectionByURL: async (data)=>{
|
|
35
|
-
return await this._networkClient.fetchSDK({
|
|
36
|
-
url: `/b2b/sso/saml/${data.connection_id}/url`,
|
|
37
|
-
method: 'PUT',
|
|
38
|
-
body: data
|
|
39
|
-
});
|
|
40
|
-
},
|
|
41
|
-
deleteVerificationCertificate: async (data)=>{
|
|
42
|
-
return await this._networkClient.fetchSDK({
|
|
43
|
-
url: `/b2b/sso/saml/${data.connection_id}/verification_certificates/${data.certificate_id}`,
|
|
44
|
-
method: 'DELETE'
|
|
45
|
-
});
|
|
46
|
-
},
|
|
47
|
-
deleteEncryptionPrivateKey: async (data)=>{
|
|
48
|
-
return await this._networkClient.fetchSDK({
|
|
49
|
-
url: `/b2b/sso/saml/${data.connection_id}/encryption_private_key/${data.private_key_id}`,
|
|
50
|
-
method: 'DELETE'
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
this.oidc = {
|
|
55
|
-
createConnection: async (data)=>{
|
|
56
|
-
return await this._networkClient.fetchSDK({
|
|
57
|
-
url: '/b2b/sso/oidc',
|
|
58
|
-
method: 'POST',
|
|
59
|
-
body: data
|
|
60
|
-
});
|
|
61
|
-
},
|
|
62
|
-
updateConnection: async (data)=>{
|
|
63
|
-
return await this._networkClient.fetchSDK({
|
|
64
|
-
url: `/b2b/sso/oidc/${data.connection_id}`,
|
|
65
|
-
method: 'PUT',
|
|
66
|
-
body: data
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
};
|
|
70
|
-
this.external = {
|
|
71
|
-
createConnection: async (data)=>{
|
|
72
|
-
return await this._networkClient.fetchSDK({
|
|
73
|
-
url: '/b2b/sso/external',
|
|
74
|
-
method: 'POST',
|
|
75
|
-
body: data
|
|
76
|
-
});
|
|
77
|
-
},
|
|
78
|
-
updateConnection: async (data)=>{
|
|
79
|
-
return await this._networkClient.fetchSDK({
|
|
80
|
-
url: `/b2b/sso/external/${data.connection_id}`,
|
|
81
|
-
method: 'PUT',
|
|
82
|
-
body: data
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
};
|
|
86
19
|
this.authenticate = this._subscriptionService.withUpdateSession(async (options)=>{
|
|
87
20
|
const keyPair = await this._pkceManager.getPKPair();
|
|
88
21
|
if (!keyPair) {
|
|
@@ -151,9 +84,73 @@ class HeadlessB2BSSOClient {
|
|
|
151
84
|
method: 'DELETE'
|
|
152
85
|
});
|
|
153
86
|
}
|
|
154
|
-
saml
|
|
155
|
-
|
|
156
|
-
|
|
87
|
+
saml = {
|
|
88
|
+
createConnection: async (data)=>{
|
|
89
|
+
return await this._networkClient.fetchSDK({
|
|
90
|
+
url: '/b2b/sso/saml',
|
|
91
|
+
method: 'POST',
|
|
92
|
+
body: data
|
|
93
|
+
});
|
|
94
|
+
},
|
|
95
|
+
updateConnection: async (data)=>{
|
|
96
|
+
return await this._networkClient.fetchSDK({
|
|
97
|
+
url: `/b2b/sso/saml/${data.connection_id}`,
|
|
98
|
+
method: 'PUT',
|
|
99
|
+
body: data
|
|
100
|
+
});
|
|
101
|
+
},
|
|
102
|
+
updateConnectionByURL: async (data)=>{
|
|
103
|
+
return await this._networkClient.fetchSDK({
|
|
104
|
+
url: `/b2b/sso/saml/${data.connection_id}/url`,
|
|
105
|
+
method: 'PUT',
|
|
106
|
+
body: data
|
|
107
|
+
});
|
|
108
|
+
},
|
|
109
|
+
deleteVerificationCertificate: async (data)=>{
|
|
110
|
+
return await this._networkClient.fetchSDK({
|
|
111
|
+
url: `/b2b/sso/saml/${data.connection_id}/verification_certificates/${data.certificate_id}`,
|
|
112
|
+
method: 'DELETE'
|
|
113
|
+
});
|
|
114
|
+
},
|
|
115
|
+
deleteEncryptionPrivateKey: async (data)=>{
|
|
116
|
+
return await this._networkClient.fetchSDK({
|
|
117
|
+
url: `/b2b/sso/saml/${data.connection_id}/encryption_private_key/${data.private_key_id}`,
|
|
118
|
+
method: 'DELETE'
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
oidc = {
|
|
123
|
+
createConnection: async (data)=>{
|
|
124
|
+
return await this._networkClient.fetchSDK({
|
|
125
|
+
url: '/b2b/sso/oidc',
|
|
126
|
+
method: 'POST',
|
|
127
|
+
body: data
|
|
128
|
+
});
|
|
129
|
+
},
|
|
130
|
+
updateConnection: async (data)=>{
|
|
131
|
+
return await this._networkClient.fetchSDK({
|
|
132
|
+
url: `/b2b/sso/oidc/${data.connection_id}`,
|
|
133
|
+
method: 'PUT',
|
|
134
|
+
body: data
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
external = {
|
|
139
|
+
createConnection: async (data)=>{
|
|
140
|
+
return await this._networkClient.fetchSDK({
|
|
141
|
+
url: '/b2b/sso/external',
|
|
142
|
+
method: 'POST',
|
|
143
|
+
body: data
|
|
144
|
+
});
|
|
145
|
+
},
|
|
146
|
+
updateConnection: async (data)=>{
|
|
147
|
+
return await this._networkClient.fetchSDK({
|
|
148
|
+
url: `/b2b/sso/external/${data.connection_id}`,
|
|
149
|
+
method: 'PUT',
|
|
150
|
+
body: data
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
};
|
|
157
154
|
}
|
|
158
155
|
|
|
159
156
|
export { HeadlessB2BSSOClient };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeadlessB2BSSOClient.mjs","sources":["../../../../../../../../core/src/HeadlessClients/b2b/HeadlessB2BSSOClient.ts"],"sourcesContent":["import { IB2BSubscriptionService, IDFPProtectedAuthProvider, INetworkClient, IPKCEManager } from '../..';\nimport {\n B2BSSOCreateExternalConnectionOptions,\n B2BSSOCreateExternalConnectionResponse,\n B2BSSODeleteConnectionResponse,\n B2BSSODiscoverConnectionsResponse,\n B2BSSOGetConnectionsResponse,\n B2BSSOOIDCCreateConnectionOptions,\n B2BSSOOIDCCreateConnectionResponse,\n B2BSSOOIDCUpdateConnectionOptions,\n B2BSSOOIDCUpdateConnectionResponse,\n B2BSSOSAMLCreateConnectionOptions,\n B2BSSOSAMLCreateConnectionResponse,\n B2BSSOSAMLDeleteEncryptionPrivateKeyOptions,\n B2BSSOSAMLDeleteEncryptionPrivateKeyResponse,\n B2BSSOSAMLDeleteVerificationCertificateOptions,\n B2BSSOSAMLDeleteVerificationCertificateResponse,\n B2BSSOSAMLUpdateConnectionByURLOptions,\n B2BSSOSAMLUpdateConnectionByURLResponse,\n B2BSSOSAMLUpdateConnectionOptions,\n B2BSSOSAMLUpdateConnectionResponse,\n B2BSSOUpdateExternalConnectionOptions,\n B2BSSOUpdateExternalConnectionResponse,\n IHeadlessB2BSSOClient,\n SSOAuthenticateOptions,\n SSOAuthenticateResponse,\n SSOStartOptions,\n} from '../../public';\nimport { StytchProjectConfigurationInput } from '../../public/typeConfig';\nimport { isTestPublicToken, logger } from '../../utils';\nimport { validateInDev } from '../../utils/dev';\n\ntype DynamicConfig = Promise<{\n pkceRequiredForSso: boolean;\n}>;\ntype Config = {\n publicToken: string;\n testAPIURL: string;\n liveAPIURL: string;\n};\n\nexport class HeadlessB2BSSOClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessB2BSSOClient<TProjectConfiguration>\n{\n authenticate: (options: SSOAuthenticateOptions) => Promise<SSOAuthenticateResponse<TProjectConfiguration>>;\n\n constructor(\n protected _networkClient: INetworkClient,\n protected _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n protected _pkceManager: IPKCEManager,\n protected _dynamicConfig: DynamicConfig,\n protected _config: Config,\n protected dfpProtectedAuth: IDFPProtectedAuthProvider,\n ) {\n this.authenticate = this._subscriptionService.withUpdateSession(async (options: SSOAuthenticateOptions) => {\n validateInDev('stytch.sso.authenticate', options, {\n sso_token: 'string',\n session_duration_minutes: 'number',\n locale: 'optionalString',\n });\n\n const keyPair = await this._pkceManager.getPKPair();\n\n if (!keyPair) {\n logger.warn(\n 'No code verifier found in local storage for SSO flow.\\n' +\n 'Consider using stytch.sso.start() to add PKCE to your SSO flows for added security.\\n' +\n 'See https://stytch.com/docs/oauth#guides_pkce for more information.',\n );\n }\n\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n\n const resp = await this._networkClient.retriableFetchSDK<SSOAuthenticateResponse<TProjectConfiguration>>({\n url: '/b2b/sso/authenticate',\n method: 'POST',\n body: {\n pkce_code_verifier: keyPair?.code_verifier,\n ...options,\n dfp_telemetry_id,\n captcha_token,\n intermediate_session_token: this._subscriptionService.getIntermediateSessionToken() || undefined,\n },\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n\n this._pkceManager.clearPKPair();\n\n return resp;\n });\n }\n\n protected async getBaseApiUrl() {\n // Our TestAPIURL and LiveAPIURL should have the HTTPS protocol already attached\n // Don't add it twice!\n if (isTestPublicToken(this._config.publicToken)) {\n return this._config.testAPIURL;\n }\n return this._config.liveAPIURL;\n }\n\n async start({ connection_id, login_redirect_url, signup_redirect_url }: SSOStartOptions): Promise<void> {\n const { pkceRequiredForSso } = await this._dynamicConfig;\n const baseURL = await this.getBaseApiUrl();\n\n const startUrl = new URL(`${baseURL}/v1/public/sso/start`);\n startUrl.searchParams.set('public_token', this._config.publicToken);\n startUrl.searchParams.set('connection_id', connection_id);\n\n if (pkceRequiredForSso) {\n const keyPair = await this._pkceManager.startPKCETransaction();\n startUrl.searchParams.set('pkce_code_challenge', keyPair.code_challenge);\n } else {\n this._pkceManager.clearPKPair();\n }\n\n if (login_redirect_url) startUrl.searchParams.set('login_redirect_url', login_redirect_url);\n if (signup_redirect_url) startUrl.searchParams.set('signup_redirect_url', signup_redirect_url);\n\n this.navigate(startUrl);\n }\n\n // Public so it can be mocked in tests\n navigate(url: URL) {\n window.location.href = url.toString();\n }\n\n async getConnections(): Promise<B2BSSOGetConnectionsResponse> {\n return await this._networkClient.fetchSDK<B2BSSOGetConnectionsResponse>({\n url: '/b2b/sso',\n method: 'GET',\n });\n }\n\n async discoverConnections(emailAddress: string): Promise<B2BSSODiscoverConnectionsResponse> {\n return await this._networkClient.fetchSDK<B2BSSODiscoverConnectionsResponse>({\n url: `/b2b/sso/discovery/connections?email_address=${encodeURIComponent(emailAddress)}`,\n method: 'GET',\n });\n }\n\n async deleteConnection(connectionId: string): Promise<B2BSSODeleteConnectionResponse> {\n return this._networkClient.fetchSDK<B2BSSODeleteConnectionResponse>({\n url: `/b2b/sso/${connectionId}`,\n method: 'DELETE',\n });\n }\n\n saml = {\n createConnection: async (data: B2BSSOSAMLCreateConnectionOptions): Promise<B2BSSOSAMLCreateConnectionResponse> => {\n return await this._networkClient.fetchSDK<B2BSSOSAMLCreateConnectionResponse>({\n url: '/b2b/sso/saml',\n method: 'POST',\n body: data,\n });\n },\n updateConnection: async (data: B2BSSOSAMLUpdateConnectionOptions): Promise<B2BSSOSAMLUpdateConnectionResponse> => {\n return await this._networkClient.fetchSDK<B2BSSOSAMLUpdateConnectionResponse>({\n url: `/b2b/sso/saml/${data.connection_id}`,\n method: 'PUT',\n body: data,\n });\n },\n updateConnectionByURL: async (\n data: B2BSSOSAMLUpdateConnectionByURLOptions,\n ): Promise<B2BSSOSAMLUpdateConnectionByURLResponse> => {\n return await this._networkClient.fetchSDK<B2BSSOSAMLUpdateConnectionResponse>({\n url: `/b2b/sso/saml/${data.connection_id}/url`,\n method: 'PUT',\n body: data,\n });\n },\n deleteVerificationCertificate: async (\n data: B2BSSOSAMLDeleteVerificationCertificateOptions,\n ): Promise<B2BSSOSAMLDeleteVerificationCertificateResponse> => {\n return await this._networkClient.fetchSDK<B2BSSOSAMLDeleteVerificationCertificateResponse>({\n url: `/b2b/sso/saml/${data.connection_id}/verification_certificates/${data.certificate_id}`,\n method: 'DELETE',\n });\n },\n deleteEncryptionPrivateKey: async (\n data: B2BSSOSAMLDeleteEncryptionPrivateKeyOptions,\n ): Promise<B2BSSOSAMLDeleteEncryptionPrivateKeyResponse> => {\n return await this._networkClient.fetchSDK<B2BSSOSAMLDeleteEncryptionPrivateKeyResponse>({\n url: `/b2b/sso/saml/${data.connection_id}/encryption_private_key/${data.private_key_id}`,\n method: 'DELETE',\n });\n },\n };\n\n oidc = {\n createConnection: async (data: B2BSSOOIDCCreateConnectionOptions): Promise<B2BSSOOIDCCreateConnectionResponse> => {\n return await this._networkClient.fetchSDK<B2BSSOOIDCCreateConnectionResponse>({\n url: '/b2b/sso/oidc',\n method: 'POST',\n body: data,\n });\n },\n updateConnection: async (data: B2BSSOOIDCUpdateConnectionOptions): Promise<B2BSSOOIDCUpdateConnectionResponse> => {\n return await this._networkClient.fetchSDK<B2BSSOOIDCUpdateConnectionResponse>({\n url: `/b2b/sso/oidc/${data.connection_id}`,\n method: 'PUT',\n body: data,\n });\n },\n };\n\n external = {\n createConnection: async (\n data: B2BSSOCreateExternalConnectionOptions,\n ): Promise<B2BSSOCreateExternalConnectionResponse> => {\n return await this._networkClient.fetchSDK<B2BSSOCreateExternalConnectionResponse>({\n url: '/b2b/sso/external',\n method: 'POST',\n body: data,\n });\n },\n updateConnection: async (\n data: B2BSSOUpdateExternalConnectionOptions,\n ): Promise<B2BSSOUpdateExternalConnectionResponse> => {\n return await this._networkClient.fetchSDK<B2BSSOUpdateExternalConnectionResponse>({\n url: `/b2b/sso/external/${data.connection_id}`,\n method: 'PUT',\n body: data,\n });\n },\n };\n}\n"],"names":["HeadlessB2BSSOClient","authenticate","constructor","_dynamicConfig","_config","dfpProtectedAuth","_networkClient","_subscriptionService","_pkceManager","saml","createConnection","data","fetchSDK","url","method","body","updateConnection","connection_id","updateConnectionByURL","deleteVerificationCertificate","certificate_id","deleteEncryptionPrivateKey","private_key_id","oidc","external","withUpdateSession","options","keyPair","getPKPair","logger","warn","dfp_telemetry_id","captcha_token","getDFPTelemetryIDAndCaptcha","resp","retriableFetchSDK","pkce_code_verifier","code_verifier","intermediate_session_token","getIntermediateSessionToken","undefined","retryCallback","retryWithCaptchaAndDFP","clearPKPair","getBaseApiUrl","isTestPublicToken","publicToken","testAPIURL","liveAPIURL","start","login_redirect_url","signup_redirect_url","pkceRequiredForSso","baseURL","startUrl","URL","searchParams","set","startPKCETransaction","code_challenge","navigate","window","location","href","toString","getConnections","discoverConnections","emailAddress","encodeURIComponent","deleteConnection","connectionId"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HeadlessB2BSSOClient.mjs","sources":["../../../../../../../../core/src/HeadlessClients/b2b/HeadlessB2BSSOClient.ts"],"sourcesContent":["import { IB2BSubscriptionService, IDFPProtectedAuthProvider, INetworkClient, IPKCEManager } from '../..';\nimport {\n B2BSSOCreateExternalConnectionOptions,\n B2BSSOCreateExternalConnectionResponse,\n B2BSSODeleteConnectionResponse,\n B2BSSODiscoverConnectionsResponse,\n B2BSSOGetConnectionsResponse,\n B2BSSOOIDCCreateConnectionOptions,\n B2BSSOOIDCCreateConnectionResponse,\n B2BSSOOIDCUpdateConnectionOptions,\n B2BSSOOIDCUpdateConnectionResponse,\n B2BSSOSAMLCreateConnectionOptions,\n B2BSSOSAMLCreateConnectionResponse,\n B2BSSOSAMLDeleteEncryptionPrivateKeyOptions,\n B2BSSOSAMLDeleteEncryptionPrivateKeyResponse,\n B2BSSOSAMLDeleteVerificationCertificateOptions,\n B2BSSOSAMLDeleteVerificationCertificateResponse,\n B2BSSOSAMLUpdateConnectionByURLOptions,\n B2BSSOSAMLUpdateConnectionByURLResponse,\n B2BSSOSAMLUpdateConnectionOptions,\n B2BSSOSAMLUpdateConnectionResponse,\n B2BSSOUpdateExternalConnectionOptions,\n B2BSSOUpdateExternalConnectionResponse,\n IHeadlessB2BSSOClient,\n SSOAuthenticateOptions,\n SSOAuthenticateResponse,\n SSOStartOptions,\n} from '../../public';\nimport { StytchProjectConfigurationInput } from '../../public/typeConfig';\nimport { isTestPublicToken, logger } from '../../utils';\nimport { validateInDev } from '../../utils/dev';\n\ntype DynamicConfig = Promise<{\n pkceRequiredForSso: boolean;\n}>;\ntype Config = {\n publicToken: string;\n testAPIURL: string;\n liveAPIURL: string;\n};\n\nexport class HeadlessB2BSSOClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessB2BSSOClient<TProjectConfiguration>\n{\n authenticate: (options: SSOAuthenticateOptions) => Promise<SSOAuthenticateResponse<TProjectConfiguration>>;\n\n constructor(\n protected _networkClient: INetworkClient,\n protected _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n protected _pkceManager: IPKCEManager,\n protected _dynamicConfig: DynamicConfig,\n protected _config: Config,\n protected dfpProtectedAuth: IDFPProtectedAuthProvider,\n ) {\n this.authenticate = this._subscriptionService.withUpdateSession(async (options: SSOAuthenticateOptions) => {\n validateInDev('stytch.sso.authenticate', options, {\n sso_token: 'string',\n session_duration_minutes: 'number',\n locale: 'optionalString',\n });\n\n const keyPair = await this._pkceManager.getPKPair();\n\n if (!keyPair) {\n logger.warn(\n 'No code verifier found in local storage for SSO flow.\\n' +\n 'Consider using stytch.sso.start() to add PKCE to your SSO flows for added security.\\n' +\n 'See https://stytch.com/docs/oauth#guides_pkce for more information.',\n );\n }\n\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n\n const resp = await this._networkClient.retriableFetchSDK<SSOAuthenticateResponse<TProjectConfiguration>>({\n url: '/b2b/sso/authenticate',\n method: 'POST',\n body: {\n pkce_code_verifier: keyPair?.code_verifier,\n ...options,\n dfp_telemetry_id,\n captcha_token,\n intermediate_session_token: this._subscriptionService.getIntermediateSessionToken() || undefined,\n },\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n\n this._pkceManager.clearPKPair();\n\n return resp;\n });\n }\n\n protected async getBaseApiUrl() {\n // Our TestAPIURL and LiveAPIURL should have the HTTPS protocol already attached\n // Don't add it twice!\n if (isTestPublicToken(this._config.publicToken)) {\n return this._config.testAPIURL;\n }\n return this._config.liveAPIURL;\n }\n\n async start({ connection_id, login_redirect_url, signup_redirect_url }: SSOStartOptions): Promise<void> {\n const { pkceRequiredForSso } = await this._dynamicConfig;\n const baseURL = await this.getBaseApiUrl();\n\n const startUrl = new URL(`${baseURL}/v1/public/sso/start`);\n startUrl.searchParams.set('public_token', this._config.publicToken);\n startUrl.searchParams.set('connection_id', connection_id);\n\n if (pkceRequiredForSso) {\n const keyPair = await this._pkceManager.startPKCETransaction();\n startUrl.searchParams.set('pkce_code_challenge', keyPair.code_challenge);\n } else {\n this._pkceManager.clearPKPair();\n }\n\n if (login_redirect_url) startUrl.searchParams.set('login_redirect_url', login_redirect_url);\n if (signup_redirect_url) startUrl.searchParams.set('signup_redirect_url', signup_redirect_url);\n\n this.navigate(startUrl);\n }\n\n // Public so it can be mocked in tests\n navigate(url: URL) {\n window.location.href = url.toString();\n }\n\n async getConnections(): Promise<B2BSSOGetConnectionsResponse> {\n return await this._networkClient.fetchSDK<B2BSSOGetConnectionsResponse>({\n url: '/b2b/sso',\n method: 'GET',\n });\n }\n\n async discoverConnections(emailAddress: string): Promise<B2BSSODiscoverConnectionsResponse> {\n return await this._networkClient.fetchSDK<B2BSSODiscoverConnectionsResponse>({\n url: `/b2b/sso/discovery/connections?email_address=${encodeURIComponent(emailAddress)}`,\n method: 'GET',\n });\n }\n\n async deleteConnection(connectionId: string): Promise<B2BSSODeleteConnectionResponse> {\n return this._networkClient.fetchSDK<B2BSSODeleteConnectionResponse>({\n url: `/b2b/sso/${connectionId}`,\n method: 'DELETE',\n });\n }\n\n saml = {\n createConnection: async (data: B2BSSOSAMLCreateConnectionOptions): Promise<B2BSSOSAMLCreateConnectionResponse> => {\n return await this._networkClient.fetchSDK<B2BSSOSAMLCreateConnectionResponse>({\n url: '/b2b/sso/saml',\n method: 'POST',\n body: data,\n });\n },\n updateConnection: async (data: B2BSSOSAMLUpdateConnectionOptions): Promise<B2BSSOSAMLUpdateConnectionResponse> => {\n return await this._networkClient.fetchSDK<B2BSSOSAMLUpdateConnectionResponse>({\n url: `/b2b/sso/saml/${data.connection_id}`,\n method: 'PUT',\n body: data,\n });\n },\n updateConnectionByURL: async (\n data: B2BSSOSAMLUpdateConnectionByURLOptions,\n ): Promise<B2BSSOSAMLUpdateConnectionByURLResponse> => {\n return await this._networkClient.fetchSDK<B2BSSOSAMLUpdateConnectionResponse>({\n url: `/b2b/sso/saml/${data.connection_id}/url`,\n method: 'PUT',\n body: data,\n });\n },\n deleteVerificationCertificate: async (\n data: B2BSSOSAMLDeleteVerificationCertificateOptions,\n ): Promise<B2BSSOSAMLDeleteVerificationCertificateResponse> => {\n return await this._networkClient.fetchSDK<B2BSSOSAMLDeleteVerificationCertificateResponse>({\n url: `/b2b/sso/saml/${data.connection_id}/verification_certificates/${data.certificate_id}`,\n method: 'DELETE',\n });\n },\n deleteEncryptionPrivateKey: async (\n data: B2BSSOSAMLDeleteEncryptionPrivateKeyOptions,\n ): Promise<B2BSSOSAMLDeleteEncryptionPrivateKeyResponse> => {\n return await this._networkClient.fetchSDK<B2BSSOSAMLDeleteEncryptionPrivateKeyResponse>({\n url: `/b2b/sso/saml/${data.connection_id}/encryption_private_key/${data.private_key_id}`,\n method: 'DELETE',\n });\n },\n };\n\n oidc = {\n createConnection: async (data: B2BSSOOIDCCreateConnectionOptions): Promise<B2BSSOOIDCCreateConnectionResponse> => {\n return await this._networkClient.fetchSDK<B2BSSOOIDCCreateConnectionResponse>({\n url: '/b2b/sso/oidc',\n method: 'POST',\n body: data,\n });\n },\n updateConnection: async (data: B2BSSOOIDCUpdateConnectionOptions): Promise<B2BSSOOIDCUpdateConnectionResponse> => {\n return await this._networkClient.fetchSDK<B2BSSOOIDCUpdateConnectionResponse>({\n url: `/b2b/sso/oidc/${data.connection_id}`,\n method: 'PUT',\n body: data,\n });\n },\n };\n\n external = {\n createConnection: async (\n data: B2BSSOCreateExternalConnectionOptions,\n ): Promise<B2BSSOCreateExternalConnectionResponse> => {\n return await this._networkClient.fetchSDK<B2BSSOCreateExternalConnectionResponse>({\n url: '/b2b/sso/external',\n method: 'POST',\n body: data,\n });\n },\n updateConnection: async (\n data: B2BSSOUpdateExternalConnectionOptions,\n ): Promise<B2BSSOUpdateExternalConnectionResponse> => {\n return await this._networkClient.fetchSDK<B2BSSOUpdateExternalConnectionResponse>({\n url: `/b2b/sso/external/${data.connection_id}`,\n method: 'PUT',\n body: data,\n });\n },\n };\n}\n"],"names":["HeadlessB2BSSOClient","authenticate","_dynamicConfig","_config","dfpProtectedAuth","_networkClient","_subscriptionService","_pkceManager","withUpdateSession","options","keyPair","getPKPair","logger","warn","dfp_telemetry_id","captcha_token","getDFPTelemetryIDAndCaptcha","resp","retriableFetchSDK","url","method","body","pkce_code_verifier","code_verifier","intermediate_session_token","getIntermediateSessionToken","undefined","retryCallback","retryWithCaptchaAndDFP","clearPKPair","getBaseApiUrl","isTestPublicToken","publicToken","testAPIURL","liveAPIURL","start","connection_id","login_redirect_url","signup_redirect_url","pkceRequiredForSso","baseURL","startUrl","URL","searchParams","set","startPKCETransaction","code_challenge","navigate","window","location","href","toString","getConnections","fetchSDK","discoverConnections","emailAddress","encodeURIComponent","deleteConnection","connectionId","saml","createConnection","data","updateConnection","updateConnectionByURL","deleteVerificationCertificate","certificate_id","deleteEncryptionPrivateKey","private_key_id","oidc","external"],"mappings":"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"}
|
|
@@ -6,100 +6,88 @@ class HeadlessB2BSelfClient {
|
|
|
6
6
|
this._networkClient = _networkClient;
|
|
7
7
|
this._apiNetworkClient = _apiNetworkClient;
|
|
8
8
|
this._subscriptionService = _subscriptionService;
|
|
9
|
-
this.get = async ()=>{
|
|
10
|
-
const resp = await this._networkClient.fetchSDK({
|
|
11
|
-
url: `/b2b/organizations/members/me`,
|
|
12
|
-
method: 'GET'
|
|
13
|
-
});
|
|
14
|
-
this._subscriptionService.updateMember(resp.member);
|
|
15
|
-
return resp.member;
|
|
16
|
-
};
|
|
17
|
-
this.getSync = ()=>{
|
|
18
|
-
return this._subscriptionService.getMember();
|
|
19
|
-
};
|
|
20
|
-
this.getInfo = ()=>({
|
|
21
|
-
member: this.getSync(),
|
|
22
|
-
fromCache: this._subscriptionService.getFromCache()
|
|
23
|
-
});
|
|
24
|
-
this.onChange = (callback)=>{
|
|
25
|
-
return this._subscriptionService.subscribeToState((state)=>callback(state?.member ?? null));
|
|
26
|
-
};
|
|
27
|
-
this.update = async (data)=>{
|
|
28
|
-
const resp = await this._networkClient.fetchSDK({
|
|
29
|
-
url: '/b2b/organizations/members/update',
|
|
30
|
-
body: data,
|
|
31
|
-
method: 'PUT'
|
|
32
|
-
});
|
|
33
|
-
this._subscriptionService.updateMember(resp.member);
|
|
34
|
-
return resp;
|
|
35
|
-
};
|
|
36
|
-
this.deleteMFAPhoneNumber = async ()=>{
|
|
37
|
-
const resp = await this._networkClient.fetchSDK({
|
|
38
|
-
url: '/b2b/organizations/members/deletePhoneNumber',
|
|
39
|
-
method: 'DELETE'
|
|
40
|
-
});
|
|
41
|
-
this._subscriptionService.updateMember(resp.member);
|
|
42
|
-
return resp;
|
|
43
|
-
};
|
|
44
|
-
this.deleteMFATOTP = async ()=>{
|
|
45
|
-
const resp = await this._networkClient.fetchSDK({
|
|
46
|
-
url: `/b2b/organizations/members/deleteTOTP`,
|
|
47
|
-
method: 'DELETE'
|
|
48
|
-
});
|
|
49
|
-
this._subscriptionService.updateMember(resp.member);
|
|
50
|
-
return resp;
|
|
51
|
-
};
|
|
52
|
-
this.deletePassword = async (passwordId)=>{
|
|
53
|
-
const resp = await this._networkClient.fetchSDK({
|
|
54
|
-
url: `/b2b/organizations/members/passwords/${passwordId}`,
|
|
55
|
-
method: 'DELETE'
|
|
56
|
-
});
|
|
57
|
-
this._subscriptionService.updateMember(resp.member);
|
|
58
|
-
return resp;
|
|
59
|
-
};
|
|
60
|
-
this.unlinkRetiredEmail = async (data)=>{
|
|
61
|
-
const resp = await this._apiNetworkClient.fetchSDK({
|
|
62
|
-
url: '/b2b/organizations/members/unlink_retired_email',
|
|
63
|
-
method: 'POST',
|
|
64
|
-
body: data
|
|
65
|
-
});
|
|
66
|
-
this._subscriptionService.updateMember(resp.member);
|
|
67
|
-
return resp;
|
|
68
|
-
};
|
|
69
|
-
this.startEmailUpdate = async (data)=>{
|
|
70
|
-
const resp = await this._apiNetworkClient.fetchSDK({
|
|
71
|
-
url: '/b2b/organizations/members/start_email_update',
|
|
72
|
-
method: 'POST',
|
|
73
|
-
body: data
|
|
74
|
-
});
|
|
75
|
-
this._subscriptionService.updateMember(resp.member);
|
|
76
|
-
return resp;
|
|
77
|
-
};
|
|
78
|
-
this.getConnectedApps = async ()=>{
|
|
79
|
-
return this._networkClient.fetchSDK({
|
|
80
|
-
url: '/b2b/organizations/members/connected_apps',
|
|
81
|
-
method: 'GET'
|
|
82
|
-
});
|
|
83
|
-
};
|
|
84
|
-
this.revokeConnectedApp = async (data)=>{
|
|
85
|
-
return this._networkClient.fetchSDK({
|
|
86
|
-
url: `/b2b/organizations/members/connected_apps/${data.connected_app_id}/revoke`,
|
|
87
|
-
method: 'POST'
|
|
88
|
-
});
|
|
89
|
-
};
|
|
90
9
|
}
|
|
91
|
-
get
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
10
|
+
get = async ()=>{
|
|
11
|
+
const resp = await this._networkClient.fetchSDK({
|
|
12
|
+
url: `/b2b/organizations/members/me`,
|
|
13
|
+
method: 'GET'
|
|
14
|
+
});
|
|
15
|
+
this._subscriptionService.updateMember(resp.member);
|
|
16
|
+
return resp.member;
|
|
17
|
+
};
|
|
18
|
+
getSync = ()=>{
|
|
19
|
+
return this._subscriptionService.getMember();
|
|
20
|
+
};
|
|
21
|
+
getInfo = ()=>({
|
|
22
|
+
member: this.getSync(),
|
|
23
|
+
fromCache: this._subscriptionService.getFromCache()
|
|
24
|
+
});
|
|
25
|
+
onChange = (callback)=>{
|
|
26
|
+
return this._subscriptionService.subscribeToState((state)=>callback(state?.member ?? null));
|
|
27
|
+
};
|
|
28
|
+
update = async (data)=>{
|
|
29
|
+
const resp = await this._networkClient.fetchSDK({
|
|
30
|
+
url: '/b2b/organizations/members/update',
|
|
31
|
+
body: data,
|
|
32
|
+
method: 'PUT'
|
|
33
|
+
});
|
|
34
|
+
this._subscriptionService.updateMember(resp.member);
|
|
35
|
+
return resp;
|
|
36
|
+
};
|
|
37
|
+
deleteMFAPhoneNumber = async ()=>{
|
|
38
|
+
const resp = await this._networkClient.fetchSDK({
|
|
39
|
+
url: '/b2b/organizations/members/deletePhoneNumber',
|
|
40
|
+
method: 'DELETE'
|
|
41
|
+
});
|
|
42
|
+
this._subscriptionService.updateMember(resp.member);
|
|
43
|
+
return resp;
|
|
44
|
+
};
|
|
45
|
+
deleteMFATOTP = async ()=>{
|
|
46
|
+
const resp = await this._networkClient.fetchSDK({
|
|
47
|
+
url: `/b2b/organizations/members/deleteTOTP`,
|
|
48
|
+
method: 'DELETE'
|
|
49
|
+
});
|
|
50
|
+
this._subscriptionService.updateMember(resp.member);
|
|
51
|
+
return resp;
|
|
52
|
+
};
|
|
53
|
+
deletePassword = async (passwordId)=>{
|
|
54
|
+
const resp = await this._networkClient.fetchSDK({
|
|
55
|
+
url: `/b2b/organizations/members/passwords/${passwordId}`,
|
|
56
|
+
method: 'DELETE'
|
|
57
|
+
});
|
|
58
|
+
this._subscriptionService.updateMember(resp.member);
|
|
59
|
+
return resp;
|
|
60
|
+
};
|
|
61
|
+
unlinkRetiredEmail = async (data)=>{
|
|
62
|
+
const resp = await this._apiNetworkClient.fetchSDK({
|
|
63
|
+
url: '/b2b/organizations/members/unlink_retired_email',
|
|
64
|
+
method: 'POST',
|
|
65
|
+
body: data
|
|
66
|
+
});
|
|
67
|
+
this._subscriptionService.updateMember(resp.member);
|
|
68
|
+
return resp;
|
|
69
|
+
};
|
|
70
|
+
startEmailUpdate = async (data)=>{
|
|
71
|
+
const resp = await this._apiNetworkClient.fetchSDK({
|
|
72
|
+
url: '/b2b/organizations/members/start_email_update',
|
|
73
|
+
method: 'POST',
|
|
74
|
+
body: data
|
|
75
|
+
});
|
|
76
|
+
this._subscriptionService.updateMember(resp.member);
|
|
77
|
+
return resp;
|
|
78
|
+
};
|
|
79
|
+
getConnectedApps = async ()=>{
|
|
80
|
+
return this._networkClient.fetchSDK({
|
|
81
|
+
url: '/b2b/organizations/members/connected_apps',
|
|
82
|
+
method: 'GET'
|
|
83
|
+
});
|
|
84
|
+
};
|
|
85
|
+
revokeConnectedApp = async (data)=>{
|
|
86
|
+
return this._networkClient.fetchSDK({
|
|
87
|
+
url: `/b2b/organizations/members/connected_apps/${data.connected_app_id}/revoke`,
|
|
88
|
+
method: 'POST'
|
|
89
|
+
});
|
|
90
|
+
};
|
|
103
91
|
}
|
|
104
92
|
|
|
105
93
|
export { HeadlessB2BSelfClient };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeadlessB2BSelfClient.mjs","sources":["../../../../../../../../core/src/HeadlessClients/b2b/HeadlessB2BSelfClient.ts"],"sourcesContent":["import {\n ResponseCommon,\n Member,\n IHeadlessB2BSelfClient,\n B2BMemberOnChangeCallback,\n B2BMemberUpdateOptions,\n B2BMemberUpdateResponse,\n B2BMemberDeleteMFAPhoneNumberResponse,\n B2BMemberDeletePasswordResponse,\n MemberInfo,\n B2BMemberUnlinkRetiredEmailRequest,\n B2BMemberUnlinkRetiredEmailResponse,\n B2BMemberStartEmailUpdateRequest,\n B2BMemberStartEmailUpdateResponse,\n StytchProjectConfigurationInput,\n B2BMemberGetConnectedAppsResponse,\n B2BMemberRevokeConnectedAppOptions,\n B2BMemberRevokeConnectedAppResponse,\n} from '../../public';\nimport { INetworkClient } from '../../NetworkClient';\nimport { IB2BSubscriptionService } from '../../SubscriptionService';\nimport { validateInDev } from '../../utils/dev';\n\nexport class HeadlessB2BSelfClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessB2BSelfClient\n{\n constructor(\n private _networkClient: INetworkClient,\n private _apiNetworkClient: INetworkClient,\n private _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n ) {}\n\n get = async (): Promise<Member | null> => {\n const resp = await this._networkClient.fetchSDK<{ member: Member } & ResponseCommon>({\n url: `/b2b/organizations/members/me`,\n method: 'GET',\n });\n this._subscriptionService.updateMember(resp.member);\n return resp.member;\n };\n\n getSync = (): Member | null => {\n return this._subscriptionService.getMember();\n };\n\n getInfo = (): MemberInfo => ({\n member: this.getSync(),\n fromCache: this._subscriptionService.getFromCache(),\n });\n\n onChange = (callback: B2BMemberOnChangeCallback) => {\n return this._subscriptionService.subscribeToState((state) => callback(state?.member ?? null));\n };\n\n update = async (data: B2BMemberUpdateOptions): Promise<B2BMemberUpdateResponse> => {\n validateInDev('stytch.self.update', data, {\n name: 'optionalString',\n untrusted_metadata: 'optionalObject',\n mfa_enrolled: 'optionalBoolean',\n mfa_phone_number: 'optionalString',\n default_mfa_method: 'optionalString',\n });\n\n const resp = await this._networkClient.fetchSDK<B2BMemberUpdateResponse>({\n url: '/b2b/organizations/members/update',\n body: data,\n method: 'PUT',\n });\n this._subscriptionService.updateMember(resp.member);\n return resp;\n };\n\n deleteMFAPhoneNumber = async (): Promise<B2BMemberDeleteMFAPhoneNumberResponse> => {\n const resp = await this._networkClient.fetchSDK<B2BMemberDeleteMFAPhoneNumberResponse>({\n url: '/b2b/organizations/members/deletePhoneNumber',\n method: 'DELETE',\n });\n this._subscriptionService.updateMember(resp.member);\n return resp;\n };\n\n deleteMFATOTP = async (): Promise<B2BMemberDeletePasswordResponse> => {\n const resp = await this._networkClient.fetchSDK<B2BMemberDeletePasswordResponse>({\n url: `/b2b/organizations/members/deleteTOTP`,\n method: 'DELETE',\n });\n this._subscriptionService.updateMember(resp.member);\n return resp;\n };\n\n deletePassword = async (passwordId: string): Promise<B2BMemberDeletePasswordResponse> => {\n const resp = await this._networkClient.fetchSDK<B2BMemberDeletePasswordResponse>({\n url: `/b2b/organizations/members/passwords/${passwordId}`,\n method: 'DELETE',\n });\n this._subscriptionService.updateMember(resp.member);\n return resp;\n };\n\n unlinkRetiredEmail = async (\n data: B2BMemberUnlinkRetiredEmailRequest,\n ): Promise<B2BMemberUnlinkRetiredEmailResponse> => {\n const resp = await this._apiNetworkClient.fetchSDK<B2BMemberUnlinkRetiredEmailResponse>({\n url: '/b2b/organizations/members/unlink_retired_email',\n method: 'POST',\n body: data,\n });\n this._subscriptionService.updateMember(resp.member);\n return resp;\n };\n\n startEmailUpdate = async (data: B2BMemberStartEmailUpdateRequest): Promise<B2BMemberStartEmailUpdateResponse> => {\n const resp = await this._apiNetworkClient.fetchSDK<B2BMemberStartEmailUpdateResponse>({\n url: '/b2b/organizations/members/start_email_update',\n method: 'POST',\n body: data,\n });\n this._subscriptionService.updateMember(resp.member);\n return resp;\n };\n\n getConnectedApps = async (): Promise<B2BMemberGetConnectedAppsResponse> => {\n return this._networkClient.fetchSDK<B2BMemberGetConnectedAppsResponse>({\n url: '/b2b/organizations/members/connected_apps',\n method: 'GET',\n });\n };\n\n revokeConnectedApp = async (\n data: B2BMemberRevokeConnectedAppOptions,\n ): Promise<B2BMemberRevokeConnectedAppResponse> => {\n return this._networkClient.fetchSDK<B2BMemberRevokeConnectedAppResponse>({\n url: `/b2b/organizations/members/connected_apps/${data.connected_app_id}/revoke`,\n method: 'POST',\n });\n };\n}\n"],"names":["HeadlessB2BSelfClient","
|
|
1
|
+
{"version":3,"file":"HeadlessB2BSelfClient.mjs","sources":["../../../../../../../../core/src/HeadlessClients/b2b/HeadlessB2BSelfClient.ts"],"sourcesContent":["import {\n ResponseCommon,\n Member,\n IHeadlessB2BSelfClient,\n B2BMemberOnChangeCallback,\n B2BMemberUpdateOptions,\n B2BMemberUpdateResponse,\n B2BMemberDeleteMFAPhoneNumberResponse,\n B2BMemberDeletePasswordResponse,\n MemberInfo,\n B2BMemberUnlinkRetiredEmailRequest,\n B2BMemberUnlinkRetiredEmailResponse,\n B2BMemberStartEmailUpdateRequest,\n B2BMemberStartEmailUpdateResponse,\n StytchProjectConfigurationInput,\n B2BMemberGetConnectedAppsResponse,\n B2BMemberRevokeConnectedAppOptions,\n B2BMemberRevokeConnectedAppResponse,\n} from '../../public';\nimport { INetworkClient } from '../../NetworkClient';\nimport { IB2BSubscriptionService } from '../../SubscriptionService';\nimport { validateInDev } from '../../utils/dev';\n\nexport class HeadlessB2BSelfClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessB2BSelfClient\n{\n constructor(\n private _networkClient: INetworkClient,\n private _apiNetworkClient: INetworkClient,\n private _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n ) {}\n\n get = async (): Promise<Member | null> => {\n const resp = await this._networkClient.fetchSDK<{ member: Member } & ResponseCommon>({\n url: `/b2b/organizations/members/me`,\n method: 'GET',\n });\n this._subscriptionService.updateMember(resp.member);\n return resp.member;\n };\n\n getSync = (): Member | null => {\n return this._subscriptionService.getMember();\n };\n\n getInfo = (): MemberInfo => ({\n member: this.getSync(),\n fromCache: this._subscriptionService.getFromCache(),\n });\n\n onChange = (callback: B2BMemberOnChangeCallback) => {\n return this._subscriptionService.subscribeToState((state) => callback(state?.member ?? null));\n };\n\n update = async (data: B2BMemberUpdateOptions): Promise<B2BMemberUpdateResponse> => {\n validateInDev('stytch.self.update', data, {\n name: 'optionalString',\n untrusted_metadata: 'optionalObject',\n mfa_enrolled: 'optionalBoolean',\n mfa_phone_number: 'optionalString',\n default_mfa_method: 'optionalString',\n });\n\n const resp = await this._networkClient.fetchSDK<B2BMemberUpdateResponse>({\n url: '/b2b/organizations/members/update',\n body: data,\n method: 'PUT',\n });\n this._subscriptionService.updateMember(resp.member);\n return resp;\n };\n\n deleteMFAPhoneNumber = async (): Promise<B2BMemberDeleteMFAPhoneNumberResponse> => {\n const resp = await this._networkClient.fetchSDK<B2BMemberDeleteMFAPhoneNumberResponse>({\n url: '/b2b/organizations/members/deletePhoneNumber',\n method: 'DELETE',\n });\n this._subscriptionService.updateMember(resp.member);\n return resp;\n };\n\n deleteMFATOTP = async (): Promise<B2BMemberDeletePasswordResponse> => {\n const resp = await this._networkClient.fetchSDK<B2BMemberDeletePasswordResponse>({\n url: `/b2b/organizations/members/deleteTOTP`,\n method: 'DELETE',\n });\n this._subscriptionService.updateMember(resp.member);\n return resp;\n };\n\n deletePassword = async (passwordId: string): Promise<B2BMemberDeletePasswordResponse> => {\n const resp = await this._networkClient.fetchSDK<B2BMemberDeletePasswordResponse>({\n url: `/b2b/organizations/members/passwords/${passwordId}`,\n method: 'DELETE',\n });\n this._subscriptionService.updateMember(resp.member);\n return resp;\n };\n\n unlinkRetiredEmail = async (\n data: B2BMemberUnlinkRetiredEmailRequest,\n ): Promise<B2BMemberUnlinkRetiredEmailResponse> => {\n const resp = await this._apiNetworkClient.fetchSDK<B2BMemberUnlinkRetiredEmailResponse>({\n url: '/b2b/organizations/members/unlink_retired_email',\n method: 'POST',\n body: data,\n });\n this._subscriptionService.updateMember(resp.member);\n return resp;\n };\n\n startEmailUpdate = async (data: B2BMemberStartEmailUpdateRequest): Promise<B2BMemberStartEmailUpdateResponse> => {\n const resp = await this._apiNetworkClient.fetchSDK<B2BMemberStartEmailUpdateResponse>({\n url: '/b2b/organizations/members/start_email_update',\n method: 'POST',\n body: data,\n });\n this._subscriptionService.updateMember(resp.member);\n return resp;\n };\n\n getConnectedApps = async (): Promise<B2BMemberGetConnectedAppsResponse> => {\n return this._networkClient.fetchSDK<B2BMemberGetConnectedAppsResponse>({\n url: '/b2b/organizations/members/connected_apps',\n method: 'GET',\n });\n };\n\n revokeConnectedApp = async (\n data: B2BMemberRevokeConnectedAppOptions,\n ): Promise<B2BMemberRevokeConnectedAppResponse> => {\n return this._networkClient.fetchSDK<B2BMemberRevokeConnectedAppResponse>({\n url: `/b2b/organizations/members/connected_apps/${data.connected_app_id}/revoke`,\n method: 'POST',\n });\n };\n}\n"],"names":["HeadlessB2BSelfClient","_networkClient","_apiNetworkClient","_subscriptionService","get","resp","fetchSDK","url","method","updateMember","member","getSync","getMember","getInfo","fromCache","getFromCache","onChange","callback","subscribeToState","state","update","data","body","deleteMFAPhoneNumber","deleteMFATOTP","deletePassword","passwordId","unlinkRetiredEmail","startEmailUpdate","getConnectedApps","revokeConnectedApp","connected_app_id"],"mappings":"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"}
|