@stytch/react 20.0.0-next.2 → 20.0.0-next.4
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 +12 -0
- package/dist/cjs/StytchSSRProxy-Bz6LNYdq.js.map +1 -1
- package/dist/cjs/adminPortal/index.cjs +1 -1
- package/dist/cjs/b2b/index.cjs +28 -20
- package/dist/cjs/b2b/index.cjs.map +1 -1
- package/dist/cjs/compat.cjs +2 -0
- package/dist/cjs/compat.cjs.map +1 -1
- package/dist/cjs/{index-Ni_dyEsz.js → index-BIjXBvf_.js} +2 -2
- package/dist/cjs/index-BIjXBvf_.js.map +1 -0
- package/dist/cjs/index.cjs +521 -542
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/{shadcn-B8TEzQMT.js → shadcn-aVU6Lm9q.js} +255 -235
- package/dist/cjs/shadcn-aVU6Lm9q.js.map +1 -0
- package/dist/cjs-dev/StytchSSRProxy-d553KgcY.js +438 -0
- package/dist/cjs-dev/StytchSSRProxy-d553KgcY.js.map +1 -0
- package/dist/cjs-dev/adminPortal/index.cjs +54 -53
- package/dist/cjs-dev/adminPortal/index.cjs.map +1 -1
- package/dist/cjs-dev/b2b/index.cjs +94 -75
- package/dist/cjs-dev/b2b/index.cjs.map +1 -1
- package/dist/cjs-dev/b2b/index.headless.cjs +89 -88
- package/dist/cjs-dev/b2b/index.headless.cjs.map +1 -1
- package/dist/cjs-dev/compat.cjs +15 -14
- package/dist/cjs-dev/compat.cjs.map +1 -1
- package/dist/cjs-dev/{StytchSSRProxy-CxXsyme4.js → dev-DaCGDI6V.js} +60 -426
- package/dist/cjs-dev/dev-DaCGDI6V.js.map +1 -0
- package/dist/cjs-dev/{idpHelpers-BVMUYvt1.js → idpHelpers-DOYYSxsX.js} +45 -102
- package/dist/cjs-dev/idpHelpers-DOYYSxsX.js.map +1 -0
- package/dist/cjs-dev/{index-DdK3Jt4u.js → index-rquGmIlv.js} +4 -4
- package/dist/cjs-dev/index-rquGmIlv.js.map +1 -0
- package/dist/cjs-dev/index.cjs +667 -667
- package/dist/cjs-dev/index.cjs.map +1 -1
- package/dist/cjs-dev/index.headless.cjs +70 -69
- package/dist/cjs-dev/index.headless.cjs.map +1 -1
- package/dist/cjs-dev/{passwordManagerDisableAutofillProps-D70WyvIu.js → passwordManagerDisableAutofillProps-CgiK2M_U.js} +2 -2
- package/dist/cjs-dev/{passwordManagerDisableAutofillProps-D70WyvIu.js.map → passwordManagerDisableAutofillProps-CgiK2M_U.js.map} +1 -1
- package/dist/cjs-dev/{shadcn-C9ClUju1.js → shadcn-DMk6ZSoD.js} +265 -244
- package/dist/cjs-dev/shadcn-DMk6ZSoD.js.map +1 -0
- package/dist/esm/_virtual/index3.mjs +5 -3
- package/dist/esm/_virtual/index3.mjs.map +1 -1
- package/dist/esm/_virtual/index4.mjs +3 -5
- package/dist/esm/_virtual/index4.mjs.map +1 -1
- package/dist/esm/b2b/StytchB2BContext.mjs +5 -5
- package/dist/esm/b2b/StytchB2BContext.mjs.map +1 -1
- package/dist/esm/packages/core/src/public/b2b/ui.mjs.map +1 -1
- package/dist/esm/packages/web/src/adminPortal/utils/theme.mjs +1 -1
- package/dist/esm/packages/web/src/ui/b2b/App.mjs +2 -2
- package/dist/esm/packages/web/src/ui/b2b/App.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/b2b/components/Icons.mjs +3 -1
- package/dist/esm/packages/web/src/ui/b2b/components/Icons.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/b2b/components/OAuthB2BButton.mjs +6 -3
- package/dist/esm/packages/web/src/ui/b2b/components/OAuthB2BButton.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/b2b/components/SSOButton.mjs +5 -3
- package/dist/esm/packages/web/src/ui/b2b/components/SSOButton.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/b2b/screens/SsoAndOAuthButtons.mjs +6 -3
- package/dist/esm/packages/web/src/ui/b2b/screens/SsoAndOAuthButtons.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/b2b/types/authMethodKeys.mjs +2 -2
- package/dist/esm/packages/web/src/ui/b2b/types/authMethodKeys.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 +1 -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/OAuthButton.mjs +6 -3
- package/dist/esm/packages/web/src/ui/b2c/components/OAuthButton.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/b2c/screens/Crypto/SetupNewWallet.mjs +20 -39
- package/dist/esm/packages/web/src/ui/b2c/screens/Crypto/SetupNewWallet.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/b2c/screens/Crypto/WalletButtons.mjs +15 -15
- package/dist/esm/packages/web/src/ui/b2c/screens/Crypto/WalletButtons.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/compat/styleToTheme.mjs +2 -0
- package/dist/esm/packages/web/src/ui/compat/styleToTheme.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/components/PresentationConfig.mjs +6 -1
- package/dist/esm/packages/web/src/ui/components/PresentationConfig.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/components/atoms/Button.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/components/atoms/Typography.module.css.mjs +2 -2
- package/dist/esm/packages/web/src/ui/components/molecules/EmailInput.mjs +1 -1
- package/dist/esm/packages/web/src/ui/components/molecules/EmailInput.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/components/molecules/Input.mjs +1 -1
- package/dist/esm/packages/web/src/ui/components/molecules/Input.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/react/b2b/B2BIdentityProvider.mjs +1 -1
- package/dist/esm/packages/web/src/ui/react/b2b/B2BIdentityProvider.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/react/b2b/Stytch.mjs +1 -1
- package/dist/esm/packages/web/src/ui/react/b2b/Stytch.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/react/b2b/StytchB2BContext.mjs +1 -1
- package/dist/esm/packages/web/src/ui/react/b2b/StytchB2BContext.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/react/b2c/IdentityProvider.mjs +1 -1
- package/dist/esm/packages/web/src/ui/react/b2c/IdentityProvider.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/react/b2c/StytchContext.mjs +1 -1
- package/dist/esm/packages/web/src/ui/react/b2c/StytchContext.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/react/b2c/StytchLogin.mjs +1 -1
- package/dist/esm/packages/web/src/ui/react/b2c/StytchLogin.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/react/b2c/StytchPasskeyRegistration.mjs +1 -1
- package/dist/esm/packages/web/src/ui/react/b2c/StytchPasskeyRegistration.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/react/b2c/StytchPasswordReset.mjs +1 -1
- package/dist/esm/packages/web/src/ui/react/b2c/StytchPasswordReset.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/react/utils/errors.mjs.map +1 -1
- package/dist/esm/packages/web/src/utils/crypto.mjs +19 -14
- package/dist/esm/packages/web/src/utils/crypto.mjs.map +1 -1
- package/dist/esm/packages/web/src/utils/oauthProviderType.mjs +1 -1
- package/dist/esm/packages/web/src/utils/oauthProviderType.mjs.map +1 -1
- package/dist/esm-dev/_virtual/index3.mjs +3 -5
- package/dist/esm-dev/_virtual/index3.mjs.map +1 -1
- package/dist/esm-dev/_virtual/index4.mjs +5 -3
- package/dist/esm-dev/_virtual/index4.mjs.map +1 -1
- package/dist/esm-dev/b2b/StytchB2BContext.mjs +5 -5
- package/dist/esm-dev/b2b/StytchB2BContext.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/public/b2b/ui.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/utils/dev.mjs +7 -1
- package/dist/esm-dev/packages/core/src/utils/dev.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/utils/theme.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2b/App.mjs +14 -2
- package/dist/esm-dev/packages/web/src/ui/b2b/App.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2b/components/Icons.mjs +3 -1
- package/dist/esm-dev/packages/web/src/ui/b2b/components/Icons.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2b/components/OAuthB2BButton.mjs +6 -3
- package/dist/esm-dev/packages/web/src/ui/b2b/components/OAuthB2BButton.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2b/components/SSOButton.mjs +5 -3
- package/dist/esm-dev/packages/web/src/ui/b2b/components/SSOButton.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2b/screens/SsoAndOAuthButtons.mjs +6 -3
- package/dist/esm-dev/packages/web/src/ui/b2b/screens/SsoAndOAuthButtons.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2b/types/authMethodKeys.mjs +2 -2
- package/dist/esm-dev/packages/web/src/ui/b2b/types/authMethodKeys.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/AppContainer.mjs +8 -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 +8 -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 +8 -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 +8 -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/OAuthButton.mjs +6 -3
- package/dist/esm-dev/packages/web/src/ui/b2c/components/OAuthButton.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/screens/Crypto/SetupNewWallet.mjs +20 -39
- package/dist/esm-dev/packages/web/src/ui/b2c/screens/Crypto/SetupNewWallet.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/screens/Crypto/WalletButtons.mjs +15 -15
- package/dist/esm-dev/packages/web/src/ui/b2c/screens/Crypto/WalletButtons.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/compat/styleToTheme.mjs +15 -14
- package/dist/esm-dev/packages/web/src/ui/compat/styleToTheme.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/components/PresentationConfig.mjs +9 -3
- package/dist/esm-dev/packages/web/src/ui/components/PresentationConfig.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/components/atoms/Button.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/components/atoms/Typography.module.css.mjs +2 -2
- package/dist/esm-dev/packages/web/src/ui/components/molecules/EmailInput.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/components/molecules/EmailInput.mjs.map +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/Input.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/react/b2b/B2BIdentityProvider.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/react/b2b/B2BIdentityProvider.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/react/b2b/Stytch.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/react/b2b/Stytch.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/react/b2b/StytchB2BContext.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/react/b2b/StytchB2BContext.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/react/b2c/IdentityProvider.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/react/b2c/IdentityProvider.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/react/b2c/StytchContext.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/react/b2c/StytchContext.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/react/b2c/StytchLogin.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/react/b2c/StytchLogin.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/react/b2c/StytchPasskeyRegistration.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/react/b2c/StytchPasskeyRegistration.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/react/b2c/StytchPasswordReset.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/react/b2c/StytchPasswordReset.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/react/utils/errors.mjs +8 -4
- package/dist/esm-dev/packages/web/src/ui/react/utils/errors.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/utils/crypto.mjs +19 -14
- package/dist/esm-dev/packages/web/src/utils/crypto.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/utils/oauthProviderType.mjs +1 -1
- package/dist/esm-dev/packages/web/src/utils/oauthProviderType.mjs.map +1 -1
- package/dist/types/{PresentationConfig-Bqzf8zr3.d.ts → PresentationConfig-B2jX85oV.d.ts} +13 -2
- package/dist/types/{StytchB2BClient-CsY7ZNKh.d.ts → StytchB2BClient-D16e_lp1.d.ts} +2 -2
- package/dist/types/{StytchClient-DZRM_fM4.d.ts → StytchClient-BwQdJzdj.d.ts} +2 -2
- package/dist/types/adminPortal/index.d.ts +5 -5
- package/dist/types/b2b/index.d.ts +27 -19
- package/dist/types/b2b/index.headless.d.ts +5 -5
- package/dist/types/compat.d.ts +2 -2
- package/dist/types/{createAuthUrlHandler-BZoD2LDF.d.ts → createAuthUrlHandler-R1kNNQD_.d.ts} +2 -2
- package/dist/types/{idpHelpers-CD5sSDzA.d.ts → idpHelpers-BQP76WgZ.d.ts} +1 -1
- package/dist/types/index.d.ts +36 -16
- package/dist/types/index.headless.d.ts +5 -5
- package/dist/types/{shadcn-4-5byj93.d.ts → shadcn-CGdmyIUF.d.ts} +9 -6
- package/dist/types/{ui-DXrQ-gA8.d.ts → ui-B7IvSGQf.d.ts} +1 -1
- package/package.json +1 -1
- package/dist/cjs/index-Ni_dyEsz.js.map +0 -1
- package/dist/cjs/shadcn-B8TEzQMT.js.map +0 -1
- package/dist/cjs-dev/StytchSSRProxy-CxXsyme4.js.map +0 -1
- package/dist/cjs-dev/idpHelpers-BVMUYvt1.js.map +0 -1
- package/dist/cjs-dev/index-DdK3Jt4u.js.map +0 -1
- package/dist/cjs-dev/shadcn-C9ClUju1.js.map +0 -1
|
@@ -1,155 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
/**
|
|
4
|
-
* The OAuth providers we support in our OAuth product.
|
|
5
|
-
* Currently we support `Amazon`, `Apple`, `Bitbucket`, `Discord`, `Facebook`, `Figma`, `Google`, `GitLab`,
|
|
6
|
-
* `LinkedIn`, `Microsoft`, `Salesforce`, `Slack`, `Snapchat`, `TikTok`, `Twitch`, `Twitter`, and `Yahoo`.
|
|
7
|
-
*/ const OAuthProviders = {
|
|
8
|
-
Google: 'google',
|
|
9
|
-
Microsoft: 'microsoft',
|
|
10
|
-
Apple: 'apple',
|
|
11
|
-
Github: 'github',
|
|
12
|
-
GitLab: 'gitlab',
|
|
13
|
-
Facebook: 'facebook',
|
|
14
|
-
Discord: 'discord',
|
|
15
|
-
Salesforce: 'salesforce',
|
|
16
|
-
Slack: 'slack',
|
|
17
|
-
Amazon: 'amazon',
|
|
18
|
-
Bitbucket: 'bitbucket',
|
|
19
|
-
LinkedIn: 'linkedin',
|
|
20
|
-
Coinbase: 'coinbase',
|
|
21
|
-
Twitch: 'twitch',
|
|
22
|
-
Twitter: 'twitter',
|
|
23
|
-
TikTok: 'tiktok',
|
|
24
|
-
Snapchat: 'snapchat',
|
|
25
|
-
Figma: 'figma',
|
|
26
|
-
Yahoo: 'yahoo'
|
|
27
|
-
};
|
|
28
|
-
/**
|
|
29
|
-
* The Crypto Wallets we support in our crypto product.
|
|
30
|
-
* Currently we support all ethereum and solana wallets.
|
|
31
|
-
* We additionally detect and show popular wallets as distinct options.
|
|
32
|
-
* The list of poular wallets include `Binance`, `Coinbase`, `Metamask`, and `Phantom`
|
|
33
|
-
*/ const Wallets = {
|
|
34
|
-
Phantom: 'Phantom',
|
|
35
|
-
Metamask: 'Metamask',
|
|
36
|
-
Coinbase: 'Coinbase',
|
|
37
|
-
Binance: 'Binance',
|
|
38
|
-
GenericEthereumWallet: 'GenericEthereumWallet',
|
|
39
|
-
GenericSolanaWallet: 'GenericSolanaWallet'
|
|
40
|
-
};
|
|
41
|
-
/**
|
|
42
|
-
* Supported behaviors for positioning Google One Tap. The actual behavior
|
|
43
|
-
* depends on browser support and Google's One Tap implementation.
|
|
44
|
-
*/ const OneTapPositions = {
|
|
45
|
-
/**
|
|
46
|
-
* Display Google One Tap using a native browser prompt if available, or
|
|
47
|
-
* embedded in the existing SDK login form otherwise.
|
|
48
|
-
* @deprecated This option has been renamed to `floatingOrEmbedded`
|
|
49
|
-
*/ embedded: 'embedded',
|
|
50
|
-
/**
|
|
51
|
-
* Display the One Tap prompt using a native browser prompt if available, or
|
|
52
|
-
* in the top right corner otherwise. This is the default option.
|
|
53
|
-
*/ floating: 'floating',
|
|
54
|
-
/**
|
|
55
|
-
* Display the One Tap prompt embedded in the existing SDK login form if a
|
|
56
|
-
* native browser prompt is not available, or not at all otherwise. This
|
|
57
|
-
* option is not recommended for new applications.
|
|
58
|
-
*/ embeddedOnly: 'embeddedOnly',
|
|
59
|
-
/**
|
|
60
|
-
* Display the One Tap prompt using a native browser prompt if available, or
|
|
61
|
-
* embedded in the existing SDK login form otherwise.
|
|
62
|
-
*/ floatingOrEmbedded: 'floatingOrEmbedded',
|
|
63
|
-
/**
|
|
64
|
-
* Attempt to display the One Tap prompt embedded in the existing SDK login
|
|
65
|
-
* form, even if a native browser prompt is supported. This option is not
|
|
66
|
-
* recommended. It disables native browser FedCM support even where it is
|
|
67
|
-
* available, and will stop being honored by Google in the future.
|
|
68
|
-
*/ forceLegacyEmbedded: 'forceLegacyEmbedded'
|
|
69
|
-
};
|
|
70
|
-
/**
|
|
71
|
-
* The methods array allows you to specify the authentication methods that you would like to expose
|
|
72
|
-
* to your users. The order of the products that you include here will also be the order in which
|
|
73
|
-
* they appear in the login form, with the first product specified appearing at the top of the login
|
|
74
|
-
* form. We currently support passcodes on `email`, `sms` and `whatsapp`
|
|
75
|
-
*/ const OTPMethods = {
|
|
76
|
-
SMS: 'sms',
|
|
77
|
-
WhatsApp: 'whatsapp',
|
|
78
|
-
Email: 'email'
|
|
79
|
-
};
|
|
80
|
-
var StytchEventType = /*#__PURE__*/ function(StytchEventType) {
|
|
81
|
-
StytchEventType["MagicLinkLoginOrCreateEvent"] = "MAGIC_LINK_LOGIN_OR_CREATE";
|
|
82
|
-
StytchEventType["OTPsLoginOrCreateEvent"] = "OTP_LOGIN_OR_CREATE";
|
|
83
|
-
StytchEventType["OTPsAuthenticate"] = "OTP_AUTHENTICATE";
|
|
84
|
-
StytchEventType["CryptoWalletAuthenticateStart"] = "CRYPTO_WALLET_AUTHENTICATE_START";
|
|
85
|
-
StytchEventType["CryptoWalletAuthenticate"] = "CRYPTO_WALLET_AUTHENTICATE";
|
|
86
|
-
StytchEventType["PasswordCreate"] = "PASSWORD_CREATE";
|
|
87
|
-
StytchEventType["PasswordAuthenticate"] = "PASSWORD_AUTHENTICATE";
|
|
88
|
-
StytchEventType["PasswordResetByEmailStart"] = "PASSWORD_RESET_BY_EMAIL_START";
|
|
89
|
-
StytchEventType["PasswordResetByEmail"] = "PASSWORD_RESET_BY_EMAIL";
|
|
90
|
-
StytchEventType["PasskeyRegister"] = "PASSKEY_REGISTER";
|
|
91
|
-
StytchEventType["PasskeyAuthenticate"] = "PASSKEY_AUTHENTICATE";
|
|
92
|
-
StytchEventType["PasskeySkip"] = "PASSKEY_SKIP";
|
|
93
|
-
StytchEventType["PasskeyDone"] = "PASSKEY_DONE";
|
|
94
|
-
/**
|
|
95
|
-
* The authentication UI flow has completed successfully, including any steps
|
|
96
|
-
* that take place after obtaining a valid session (such as saving recovery
|
|
97
|
-
* codes).
|
|
98
|
-
*/ StytchEventType["AuthenticateFlowComplete"] = "AUTHENTICATE_FLOW_COMPLETE";
|
|
99
|
-
/**
|
|
100
|
-
* An OAuth Authorization flow has been initiated by a Connected Application.
|
|
101
|
-
* The end-user may be prompted for consent to continue depending on the application
|
|
102
|
-
* that is requesting access.
|
|
103
|
-
*/ StytchEventType["OAuthAuthorizeFlowStart"] = "OAUTH_AUTHORIZE_FLOW_START";
|
|
104
|
-
/**
|
|
105
|
-
* The end-user has completed the Authorization flow and is about to be redirected
|
|
106
|
-
* back to the Connected Application
|
|
107
|
-
*/ StytchEventType["OAuthAuthorizeFlowComplete"] = "OAUTH_AUTHORIZE_FLOW_COMPLETE";
|
|
108
|
-
/**
|
|
109
|
-
* The end-user has denied the Authorization flow and is about to be redirected
|
|
110
|
-
* back to the Connected Application with an error message
|
|
111
|
-
*/ StytchEventType["OAuthAuthorizeFlowConsentDenied"] = "OAUTH_AUTHORIZE_FLOW_CONSENT_DENIED";
|
|
112
|
-
// More Events will go here ...
|
|
113
|
-
// B2B Events
|
|
114
|
-
StytchEventType["B2BMagicLinkEmailLoginOrSignup"] = "B2B_MAGIC_LINK_EMAIL_LOGIN_OR_SIGNUP";
|
|
115
|
-
StytchEventType["B2BMagicLinkAuthenticate"] = "B2B_MAGIC_LINK_AUTHENTICATE";
|
|
116
|
-
StytchEventType["B2BMagicLinkEmailDiscoverySend"] = "B2B_MAGIC_LINK_EMAIL_DISCOVERY_SEND";
|
|
117
|
-
StytchEventType["B2BMagicLinkDiscoveryAuthenticate"] = "B2B_MAGIC_LINK_DISCOVERY_AUTHENTICATE";
|
|
118
|
-
StytchEventType["B2BSSOStart"] = "B2B_SSO_START";
|
|
119
|
-
StytchEventType["B2BSSOAuthenticate"] = "B2B_SSO_AUTHENTICATE";
|
|
120
|
-
StytchEventType["B2BSSODiscoverConnections"] = "B2B_SSO_DISCOVER_CONNECTIONS";
|
|
121
|
-
StytchEventType["B2BOAuthAuthenticate"] = "B2B_OAUTH_AUTHENTICATE";
|
|
122
|
-
StytchEventType["B2BOAuthDiscoveryAuthenticate"] = "B2B_OAUTH_DISCOVERY_AUTHENTICATE";
|
|
123
|
-
StytchEventType["B2BDiscoveryOrganizationsCreate"] = "B2B_DISCOVERY_ORGANIZATIONS_CREATE";
|
|
124
|
-
StytchEventType["B2BDiscoveryIntermediateSessionExchange"] = "B2B_DISCOVERY_INTERMEDIATE_SESSION_EXCHANGE";
|
|
125
|
-
StytchEventType["B2BPasswordAuthenticate"] = "B2B_PASSWORD_AUTHENTICATE";
|
|
126
|
-
StytchEventType["B2BPasswordDiscoveryAuthenticate"] = "B2B_PASSWORD_DISCOVERY_AUTHENTICATE";
|
|
127
|
-
StytchEventType["B2BPasswordResetByEmailStart"] = "B2B_PASSWORD_RESET_BY_EMAIL_START";
|
|
128
|
-
StytchEventType["B2BPasswordResetByEmail"] = "B2B_PASSWORD_RESET_BY_EMAIL";
|
|
129
|
-
StytchEventType["B2BPasswordResetBySession"] = "B2B_PASSWORD_RESET_BY_SESSION";
|
|
130
|
-
StytchEventType["B2BSMSOTPSend"] = "B2B_SMS_OTP_SEND";
|
|
131
|
-
StytchEventType["B2BSMSOTPAuthenticate"] = "B2B_SMS_OTP_AUTHENTICATE";
|
|
132
|
-
StytchEventType["B2BTOTPCreate"] = "B2B_TOTP_CREATE";
|
|
133
|
-
StytchEventType["B2BTOTPAuthenticate"] = "B2B_TOTP_AUTHENTICATE";
|
|
134
|
-
StytchEventType["B2BRecoveryCodesRecover"] = "B2B_RECOVERY_CODES_RECOVER";
|
|
135
|
-
StytchEventType["B2BPasswordDiscoveryResetStart"] = "B2B_PASSWORD_DISCOVERY_RESET_BY_EMAIL_START";
|
|
136
|
-
StytchEventType["B2BDiscoveryPasswordReset"] = "B2B_PASSWORD_DISCOVERY_RESET_BY_EMAIL";
|
|
137
|
-
StytchEventType["B2BImpersonationAuthenticate"] = "B2B_IMPERSONATION_AUTHENTICATE";
|
|
138
|
-
StytchEventType["B2BOTPsEmailAuthenticate"] = "B2B_OTPS_EMAIL_AUTHENTICATE";
|
|
139
|
-
StytchEventType["B2BOTPsEmailDiscoveryAuthenticate"] = "B2B_OTPS_EMAIL_DISCOVERY_AUTHENTICATE";
|
|
140
|
-
StytchEventType["B2BOTPsEmailDiscoverySend"] = "B2B_OTPS_EMAIL_DISCOVERY_SEND";
|
|
141
|
-
StytchEventType["B2BOTPsEmailLoginOrSignup"] = "B2B_OTPS_EMAIL_LOGIN_OR_SIGNUP";
|
|
142
|
-
StytchEventType["B2BOrganizationsGetBySlug"] = "B2B_ORGANIZATIONS_GET_BY_SLUG";
|
|
143
|
-
return StytchEventType;
|
|
144
|
-
}({});
|
|
145
|
-
var RNUIProducts = /*#__PURE__*/ function(RNUIProducts) {
|
|
146
|
-
RNUIProducts[RNUIProducts["emailMagicLinks"] = 0] = "emailMagicLinks";
|
|
147
|
-
RNUIProducts[RNUIProducts["oauth"] = 1] = "oauth";
|
|
148
|
-
RNUIProducts[RNUIProducts["otp"] = 2] = "otp";
|
|
149
|
-
RNUIProducts[RNUIProducts["passwords"] = 3] = "passwords";
|
|
150
|
-
return RNUIProducts;
|
|
151
|
-
}({});
|
|
152
|
-
|
|
153
3
|
/* eslint-disable @typescript-eslint/no-explicit-any */ /**
|
|
154
4
|
* An Error class thrown when the SDK is unable to reach the Stytch servers,
|
|
155
5
|
* or when the Stytch servers return a value the SDK cannot understand.
|
|
@@ -654,266 +504,75 @@ function errorToStytchError(error) {
|
|
|
654
504
|
}
|
|
655
505
|
|
|
656
506
|
/**
|
|
657
|
-
*
|
|
658
|
-
*
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
}
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
};
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
}
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
// because yes, emails can also contain quotes
|
|
708
|
-
// but then they *can't* contain comments
|
|
709
|
-
// 5. Emails can also consist of spaces and tabs if you use quoting
|
|
710
|
-
//
|
|
711
|
-
// TL;DR: it's really complicated. I once heard a joke that the only real way to validate an email is to check
|
|
712
|
-
// for the presence of an @ symbol and then see if you can send an email without it bouncing. Anyway, the below
|
|
713
|
-
// regex *attempts* to make some limitations on the regex to help end-users while not being overly constrained.
|
|
714
|
-
// We relaxed it as part of https://linear.app/stytch/issue/OBACK-583/email-pattern-bug-in-fe-sdk if you want some
|
|
715
|
-
// historical context here.
|
|
716
|
-
const EMAIL_REGEX = /^[a-zA-Z0-9!#$%&'*+/=?^_`{|}~.-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
|
|
717
|
-
const convertMagicLinkOptions = (options = {})=>({
|
|
718
|
-
signup_magic_link_url: options.signupRedirectURL,
|
|
719
|
-
signup_expiration_minutes: options.signupExpirationMinutes,
|
|
720
|
-
login_magic_link_url: options.loginRedirectURL,
|
|
721
|
-
login_expiration_minutes: options.loginExpirationMinutes,
|
|
722
|
-
login_template_id: options.loginTemplateId,
|
|
723
|
-
signup_template_id: options.signupTemplateId,
|
|
724
|
-
locale: options.locale
|
|
725
|
-
});
|
|
726
|
-
const convertPasswordResetOptions = (email, options = {})=>({
|
|
727
|
-
email: email,
|
|
728
|
-
login_redirect_url: options.loginRedirectURL,
|
|
729
|
-
login_expiration_minutes: options.loginExpirationMinutes,
|
|
730
|
-
reset_password_redirect_url: options.resetPasswordRedirectURL,
|
|
731
|
-
reset_password_expiration_minutes: options.resetPasswordExpirationMinutes,
|
|
732
|
-
reset_password_template_id: options.resetPasswordTemplateId,
|
|
733
|
-
locale: options.locale
|
|
734
|
-
});
|
|
735
|
-
const debounce = (func, waitFor = 500)=>{
|
|
736
|
-
let timeout;
|
|
737
|
-
return (...args)=>{
|
|
738
|
-
clearTimeout(timeout);
|
|
739
|
-
timeout = window.setTimeout(()=>func(...args), waitFor);
|
|
740
|
-
};
|
|
741
|
-
};
|
|
742
|
-
// Borrowed from Create React App's service worker registration logic
|
|
743
|
-
const isLocalhost = ()=>Boolean(window.location.hostname === 'localhost' || // [::1] is the IPv6 localhost address.
|
|
744
|
-
window.location.hostname === '[::1]' || // 127.0.0.1/8 is considered localhost for IPv4.
|
|
745
|
-
window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));
|
|
746
|
-
const hasMultipleCookies = (cookieName)=>{
|
|
747
|
-
const cookiePairs = document.cookie ? document.cookie.split('; ') : [];
|
|
748
|
-
const matchedCookies = cookiePairs.filter((pair)=>{
|
|
749
|
-
const [name] = pair.split('=');
|
|
750
|
-
return cookieName === name;
|
|
751
|
-
});
|
|
752
|
-
return matchedCookies.length > 1;
|
|
753
|
-
};
|
|
754
|
-
const noop = ()=>{
|
|
755
|
-
// Noop
|
|
756
|
-
};
|
|
757
|
-
|
|
758
|
-
const PERSISTENT_STORAGE_KEY_PREFIX = 'stytch_sdk_state_';
|
|
759
|
-
const getPersistentStorageKey = (publicToken, key)=>{
|
|
760
|
-
return `${PERSISTENT_STORAGE_KEY_PREFIX}${publicToken}${key ? `::${key}` : ''}`;
|
|
761
|
-
};
|
|
762
|
-
function makeSafeStorage(storage) {
|
|
763
|
-
if (storage == null) {
|
|
764
|
-
return {
|
|
765
|
-
getItem () {
|
|
766
|
-
return null;
|
|
767
|
-
},
|
|
768
|
-
removeItem () {
|
|
769
|
-
// Noop
|
|
770
|
-
},
|
|
771
|
-
setItem () {
|
|
772
|
-
// Noop
|
|
773
|
-
}
|
|
774
|
-
};
|
|
775
|
-
}
|
|
776
|
-
return {
|
|
777
|
-
getItem (publicKey, key) {
|
|
778
|
-
const persistentStorageKey = getPersistentStorageKey(publicKey, key);
|
|
779
|
-
try {
|
|
780
|
-
return storage.getItem(persistentStorageKey);
|
|
781
|
-
} catch {
|
|
782
|
-
// Swallow error
|
|
783
|
-
return null;
|
|
784
|
-
}
|
|
785
|
-
},
|
|
786
|
-
setItem (publicKey, key, value) {
|
|
787
|
-
const persistentStorageKey = getPersistentStorageKey(publicKey, key);
|
|
788
|
-
try {
|
|
789
|
-
if (value) storage.setItem(persistentStorageKey, value);
|
|
790
|
-
} catch {
|
|
791
|
-
// Swallow error
|
|
792
|
-
}
|
|
793
|
-
},
|
|
794
|
-
removeItem (publicKey, key) {
|
|
795
|
-
const persistentStorageKey = getPersistentStorageKey(publicKey, key);
|
|
796
|
-
try {
|
|
797
|
-
storage.removeItem(persistentStorageKey);
|
|
798
|
-
} catch {
|
|
799
|
-
// Swallow error
|
|
800
|
-
}
|
|
801
|
-
}
|
|
802
|
-
};
|
|
803
|
-
}
|
|
804
|
-
const safeLocalStorage = makeSafeStorage(globalThis.localStorage);
|
|
805
|
-
const safeSessionStorage = makeSafeStorage(globalThis.sessionStorage);
|
|
806
|
-
function getKeyBoundStorage(storage, publicToken) {
|
|
807
|
-
return {
|
|
808
|
-
getItem (key) {
|
|
809
|
-
return storage.getItem(publicToken, key);
|
|
810
|
-
},
|
|
811
|
-
setItem (key, value) {
|
|
812
|
-
storage.setItem(publicToken, key, value);
|
|
813
|
-
},
|
|
814
|
-
removeItem (key) {
|
|
815
|
-
storage.removeItem(publicToken, key);
|
|
507
|
+
* This function and its parameter is stripped in production builds using rollup plugin.
|
|
508
|
+
* NOTE: Be careful when wrapping render function return values. React before v18 do not allow undefined
|
|
509
|
+
* to be returned, so wrapping the entire return value will crash those runtimes.
|
|
510
|
+
*/ const DEV = (input)=>input;
|
|
511
|
+
/**
|
|
512
|
+
* This function is stripped in production builds using rollup plugin. Useful for adding
|
|
513
|
+
* logging or validation in dev only
|
|
514
|
+
*/ function RUN_IN_DEV(callback) {
|
|
515
|
+
callback();
|
|
516
|
+
}
|
|
517
|
+
const validateInDev = (methodName, obj, rules)=>{
|
|
518
|
+
const errors = [];
|
|
519
|
+
for (const [key, rule] of Object.entries(rules)){
|
|
520
|
+
if (rule == null) continue;
|
|
521
|
+
const val = obj[key];
|
|
522
|
+
if (rule.startsWith('optional') && val == null) continue;
|
|
523
|
+
switch(rule){
|
|
524
|
+
case 'object':
|
|
525
|
+
case 'optionalObject':
|
|
526
|
+
{
|
|
527
|
+
const isObject = typeof val === 'object' && !Array.isArray(val) && val !== null;
|
|
528
|
+
if (!isObject) {
|
|
529
|
+
errors.push(new StytchSDKUsageError(methodName, `${key} must be an object.`));
|
|
530
|
+
}
|
|
531
|
+
break;
|
|
532
|
+
}
|
|
533
|
+
case 'string':
|
|
534
|
+
case 'optionalString':
|
|
535
|
+
if (typeof val !== 'string') {
|
|
536
|
+
errors.push(new StytchSDKUsageError(methodName, `${key} must be a string.`));
|
|
537
|
+
}
|
|
538
|
+
break;
|
|
539
|
+
case 'number':
|
|
540
|
+
case 'optionalNumber':
|
|
541
|
+
if (typeof val !== 'number') {
|
|
542
|
+
errors.push(new StytchSDKUsageError(methodName, `${key} must be a number.`));
|
|
543
|
+
}
|
|
544
|
+
break;
|
|
545
|
+
case 'stringArray':
|
|
546
|
+
case 'optionalStringArray':
|
|
547
|
+
if (!Array.isArray(val) || !val.every((str)=>typeof str === 'string')) {
|
|
548
|
+
errors.push(new StytchSDKUsageError(methodName, `${key} must be an array of strings.`));
|
|
549
|
+
}
|
|
550
|
+
break;
|
|
551
|
+
case 'boolean':
|
|
552
|
+
case 'optionalBoolean':
|
|
553
|
+
if (typeof val !== 'boolean') {
|
|
554
|
+
errors.push(new StytchSDKUsageError(methodName, `${key} must be a boolean.`));
|
|
555
|
+
}
|
|
556
|
+
break;
|
|
816
557
|
}
|
|
817
|
-
};
|
|
818
|
-
}
|
|
819
|
-
|
|
820
|
-
const internalSymB2B = Symbol.for('stytch__internal_b2b');
|
|
821
|
-
const internalSymB2C = Symbol.for('stytch__internal_b2c');
|
|
822
|
-
const writeB2BInternals = (obj, internals)=>{
|
|
823
|
-
Object.assign(obj, {
|
|
824
|
-
[internalSymB2B]: internals
|
|
825
|
-
});
|
|
826
|
-
};
|
|
827
|
-
const readB2BInternals = (obj)=>{
|
|
828
|
-
const casted = obj;
|
|
829
|
-
if (!casted[internalSymB2B]) {
|
|
830
|
-
throw Error('Internals not found!');
|
|
831
|
-
}
|
|
832
|
-
return casted[internalSymB2B];
|
|
833
|
-
};
|
|
834
|
-
const writeB2CInternals = (obj, internals)=>{
|
|
835
|
-
Object.assign(obj, {
|
|
836
|
-
[internalSymB2C]: internals
|
|
837
|
-
});
|
|
838
|
-
};
|
|
839
|
-
const readB2CInternals = (obj)=>{
|
|
840
|
-
const casted = obj;
|
|
841
|
-
if (!casted[internalSymB2C]) {
|
|
842
|
-
throw Error('Internals not found!');
|
|
843
558
|
}
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
if (typeof window === 'undefined') {
|
|
850
|
-
throw new Error(`<${name} /> cannot be rendered on the server. If you are using Next.js, use the @stytch/nextjs package or 'use client' directives`);
|
|
851
|
-
}
|
|
852
|
-
}
|
|
853
|
-
const noProviderError = (item, provider = 'StytchProvider')=>`${item} can only be used inside <${provider}>.`;
|
|
854
|
-
const providerMustBeUniqueError = 'You cannot render a <StytchProvider> inside another <StytchProvider>.';
|
|
855
|
-
const cannotInvokeMethodOnServerError = (path)=>`[Stytch] Invalid server-side function call to ${path}.
|
|
856
|
-
The Stytch JavaScript SDK is intended to only be used on the client side.
|
|
857
|
-
Make sure to wrap your API calls in a hook to ensure they are executed on the client.
|
|
858
|
-
|
|
859
|
-
\`\`\`
|
|
860
|
-
const myComponent = () => {
|
|
861
|
-
const stytch = useStytch();
|
|
862
|
-
// This will error out on the server.
|
|
863
|
-
stytch.magicLinks.authenticate(...);
|
|
864
|
-
useEffect(() => {
|
|
865
|
-
// This will work well
|
|
866
|
-
stytch.magicLinks.authenticate(...);
|
|
867
|
-
}, []);
|
|
868
|
-
}
|
|
869
|
-
\`\`\`
|
|
870
|
-
|
|
871
|
-
If you want to make API calls from server environments, please use the Stytch Node Library
|
|
872
|
-
https://www.npmjs.com/package/stytch.`;
|
|
873
|
-
|
|
874
|
-
const SSRStubKey = Symbol('__stytch_SSRStubKey');
|
|
875
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
876
|
-
const isStytchSSRProxy = (proxy)=>{
|
|
877
|
-
return !!proxy[SSRStubKey];
|
|
878
|
-
};
|
|
879
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
880
|
-
const createProxy = (path)=>{
|
|
881
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
882
|
-
const noop = ()=>{};
|
|
883
|
-
return new Proxy(noop, {
|
|
884
|
-
get (target, p) {
|
|
885
|
-
if (p === SSRStubKey) {
|
|
886
|
-
return true;
|
|
887
|
-
}
|
|
888
|
-
return createProxy(path + '.' + String(p));
|
|
889
|
-
},
|
|
890
|
-
apply () {
|
|
891
|
-
throw new Error(cannotInvokeMethodOnServerError(path));
|
|
559
|
+
if (errors.length > 0) {
|
|
560
|
+
if (errors.length === 1) {
|
|
561
|
+
throw errors[0];
|
|
562
|
+
} else {
|
|
563
|
+
throw new AggregateError(errors);
|
|
892
564
|
}
|
|
893
|
-
}
|
|
565
|
+
}
|
|
894
566
|
};
|
|
895
|
-
// Exported for testing
|
|
896
|
-
const createStytchSSRProxy = ()=>createProxy('stytch');
|
|
897
|
-
function ssrSafeClientFactory(ClientConstructor) {
|
|
898
|
-
return (...args)=>{
|
|
899
|
-
if (typeof window === 'undefined') {
|
|
900
|
-
return createStytchSSRProxy();
|
|
901
|
-
}
|
|
902
|
-
return new ClientConstructor(...args);
|
|
903
|
-
};
|
|
904
|
-
}
|
|
905
567
|
|
|
906
|
-
exports.AuthFlowType = AuthFlowType;
|
|
907
|
-
exports.B2BMFAProducts = B2BMFAProducts;
|
|
908
|
-
exports.B2BOAuthProviders = B2BOAuthProviders;
|
|
909
568
|
exports.BiometricRegistrationIdIsNullOrBlank = BiometricRegistrationIdIsNullOrBlank;
|
|
910
569
|
exports.BiometricsAlreadyEnrolledError = BiometricsAlreadyEnrolledError;
|
|
911
570
|
exports.BiometricsFailedError = BiometricsFailedError;
|
|
912
571
|
exports.BiometricsUnavailableError = BiometricsUnavailableError;
|
|
913
572
|
exports.ChallengeSigningFailedError = ChallengeSigningFailedError;
|
|
573
|
+
exports.DEV = DEV;
|
|
914
574
|
exports.DFPNotConfigured = DFPNotConfigured;
|
|
915
575
|
exports.DeviceCredentialsNotAllowedError = DeviceCredentialsNotAllowedError;
|
|
916
|
-
exports.EMAIL_REGEX = EMAIL_REGEX;
|
|
917
576
|
exports.FailedCodeChallengeError = FailedCodeChallengeError;
|
|
918
577
|
exports.FailedToDecryptDataError = FailedToDecryptDataError;
|
|
919
578
|
exports.IDPOAuthFlowMissingParamError = IDPOAuthFlowMissingParamError;
|
|
@@ -937,15 +596,11 @@ exports.NoBiometricsEnrolledError = NoBiometricsEnrolledError;
|
|
|
937
596
|
exports.NoBiometricsRegistrationError = NoBiometricsRegistrationError;
|
|
938
597
|
exports.NoCredentialsPresentError = NoCredentialsPresentError;
|
|
939
598
|
exports.NoCurrentSessionError = NoCurrentSessionError;
|
|
940
|
-
exports.OAuthProviders = OAuthProviders;
|
|
941
|
-
exports.OTPMethods = OTPMethods;
|
|
942
|
-
exports.OneTapPositions = OneTapPositions;
|
|
943
599
|
exports.PasskeysInvalidEncoding = PasskeysInvalidEncoding;
|
|
944
600
|
exports.PasskeysMisconfigured = PasskeysMisconfigured;
|
|
945
601
|
exports.PasskeysUnsupportedError = PasskeysUnsupportedError;
|
|
946
|
-
exports.
|
|
602
|
+
exports.RUN_IN_DEV = RUN_IN_DEV;
|
|
947
603
|
exports.RandomNumberGenerationFailed = RandomNumberGenerationFailed;
|
|
948
|
-
exports.RedirectURLType = RedirectURLType;
|
|
949
604
|
exports.SDKAPIUnreachableError = SDKAPIUnreachableError;
|
|
950
605
|
exports.SDKNotConfiguredError = SDKNotConfiguredError;
|
|
951
606
|
exports.SignInWithAppleMisconfigured = SignInWithAppleMisconfigured;
|
|
@@ -953,7 +608,6 @@ exports.StytchAPIError = StytchAPIError;
|
|
|
953
608
|
exports.StytchAPISchemaError = StytchAPISchemaError;
|
|
954
609
|
exports.StytchAPIUnreachableError = StytchAPIUnreachableError;
|
|
955
610
|
exports.StytchError = StytchError;
|
|
956
|
-
exports.StytchEventType = StytchEventType;
|
|
957
611
|
exports.StytchSDKAPIError = StytchSDKAPIError;
|
|
958
612
|
exports.StytchSDKError = StytchSDKError;
|
|
959
613
|
exports.StytchSDKSchemaError = StytchSDKSchemaError;
|
|
@@ -961,26 +615,6 @@ exports.StytchSDKUsageError = StytchSDKUsageError;
|
|
|
961
615
|
exports.UNRECOVERABLE_ERROR_TYPES = UNRECOVERABLE_ERROR_TYPES;
|
|
962
616
|
exports.UserCancellationError = UserCancellationError;
|
|
963
617
|
exports.UserLockedOutError = UserLockedOutError;
|
|
964
|
-
exports.Wallets = Wallets;
|
|
965
|
-
exports.convertMagicLinkOptions = convertMagicLinkOptions;
|
|
966
|
-
exports.convertPasswordResetOptions = convertPasswordResetOptions;
|
|
967
|
-
exports.createDeepEqual = createDeepEqual;
|
|
968
|
-
exports.debounce = debounce;
|
|
969
618
|
exports.errorToStytchError = errorToStytchError;
|
|
970
|
-
exports.
|
|
971
|
-
|
|
972
|
-
exports.hasMultipleCookies = hasMultipleCookies;
|
|
973
|
-
exports.isLocalhost = isLocalhost;
|
|
974
|
-
exports.isStytchSSRProxy = isStytchSSRProxy;
|
|
975
|
-
exports.noProviderError = noProviderError;
|
|
976
|
-
exports.noop = noop;
|
|
977
|
-
exports.providerMustBeUniqueError = providerMustBeUniqueError;
|
|
978
|
-
exports.readB2BInternals = readB2BInternals;
|
|
979
|
-
exports.readB2CInternals = readB2CInternals;
|
|
980
|
-
exports.safeLocalStorage = safeLocalStorage;
|
|
981
|
-
exports.safeSessionStorage = safeSessionStorage;
|
|
982
|
-
exports.serverRenderError = serverRenderError;
|
|
983
|
-
exports.ssrSafeClientFactory = ssrSafeClientFactory;
|
|
984
|
-
exports.writeB2BInternals = writeB2BInternals;
|
|
985
|
-
exports.writeB2CInternals = writeB2CInternals;
|
|
986
|
-
//# sourceMappingURL=StytchSSRProxy-CxXsyme4.js.map
|
|
619
|
+
exports.validateInDev = validateInDev;
|
|
620
|
+
//# sourceMappingURL=dev-DaCGDI6V.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev-DaCGDI6V.js","sources":["../../../core/src/public/SDKErrors.ts","../../../core/src/utils/dev.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { StytchAPIErrorType } from './StytchAPIErrorType';\n\n/**\n * An Error class thrown when the SDK is unable to reach the Stytch servers,\n * or when the Stytch servers return a value the SDK cannot understand.\n * Usually - it means that you're offline!\n */\nexport class SDKAPIUnreachableError extends Error {\n details: string;\n\n constructor(message: string, details: string) {\n super(message + '\\n' + details);\n this.message = message + '\\n' + details;\n this.name = 'SDKAPIUnreachableError';\n this.details = details;\n Object.setPrototypeOf(this, SDKAPIUnreachableError.prototype);\n }\n}\n\n/**\n * An Error class thrown when the provided input fails client-side validation -\n * for example if a field that was expected to be a number is instead a string.\n */\nexport class StytchSDKUsageError extends Error {\n constructor(methodName: string, message: string) {\n super();\n this.name = 'StytchSDKUsageError';\n this.message = `Invalid call to ${methodName}\\n` + message;\n }\n}\n\n// Example invalid schema error\n// {\n// body: [\n// {\n// keyword: 'type',\n// dataPath: '.session_duration_minutes',\n// schemaPath: '#/properties/session_duration_minutes/type',\n// params: { type: 'number' },\n// message: 'should be number',\n// },\n// ],\n// };\n// Taken from ajv/lib/ajv.d.ts\ninterface ErrorObject {\n keyword: string;\n dataPath: string;\n schemaPath: string;\n message?: string;\n}\n\n/**\n * An Error class thrown when the provided input does not adhere to the Stytch API schema -\n * for example if a field that was expected to be a number is instead a string.\n */\nexport class StytchSDKSchemaError extends Error {\n constructor(schemaError: { body?: ErrorObject[] }) {\n super();\n this.name = 'StytchSDKSchemaError';\n\n const messages = schemaError.body?.map((err) => `${err.dataPath}: ${err.message}`).join('\\n');\n\n this.message = `[400] Request does not match expected schema\\n${messages}`;\n }\n}\n\ninterface APIError {\n status_code: number;\n request_id?: string;\n error_type: StytchAPIErrorType;\n error_message: string;\n error_url: string;\n error_details?: object;\n}\n\n/**\n * An Error class wrapping a well-formed JSON error from the Stytch API.\n * The Stytch error should match one listed at {@link https://stytch.com/docs/api/errors}\n */\nexport class StytchSDKAPIError extends Error {\n error_type: StytchAPIErrorType;\n error_message: string;\n error_url: string;\n request_id?: string;\n status_code: number;\n error_details?: object;\n\n constructor(details: APIError) {\n super();\n this.name = 'StytchSDKAPIError';\n\n const { status_code, error_type, error_message, error_url, request_id, error_details } = details;\n this.error_type = error_type;\n this.error_message = error_message;\n this.error_url = error_url;\n this.request_id = request_id;\n this.status_code = status_code;\n this.error_details = error_details;\n\n this.message =\n `[${status_code}] ${error_type}\\n` +\n `${error_message}\\n` +\n `See ${error_url} for more information.\\n` +\n // Web-Backend doesn't have request IDs yet, so if a request fails there it won't have one.\n // We should figure out how returning tracing info should work\n (request_id ? `request_id: ${request_id}\\n` : '') +\n (this.error_details ? `Details: \\n` + JSON.stringify(this.error_details) + '\\n' : '');\n }\n}\n\n/**\n * If the SDK throws an error with an error type included in this array, the local session and\n * user state will be cleared locally.\n */\nexport const UNRECOVERABLE_ERROR_TYPES: StytchAPIErrorType[] = [\n 'unauthorized_credentials',\n 'user_unauthenticated',\n 'invalid_secret_authentication',\n 'session_not_found',\n];\n\n/**\n * An Error class representing an error within Stytch.\n */\nexport class StytchError extends Error {\n constructor(name: string, message: string) {\n super(message);\n this.name = name;\n }\n}\n\n/**\n * An Error class thrown when the SDK is unable to reach the Stytch servers,\n * or when the Stytch servers return a value the SDK cannot understand.\n * Usually - it means that you're offline!\n */\nexport class StytchAPIUnreachableError extends StytchError {\n constructor(details: string) {\n super('StytchAPIUnreachableError', details);\n Object.setPrototypeOf(this, StytchAPIUnreachableError.prototype);\n }\n}\n\n/**\n * An Error class thrown when the provided input does not adhere to the Stytch API schema -\n * for example if a field that was expected to be a number is instead a string.\n */\nexport class StytchAPISchemaError extends StytchError {\n constructor(schemaError: { body?: ErrorObject[] }) {\n const messages = schemaError.body?.map((err) => `${err.dataPath}: ${err.message}`).join('\\n');\n super('StytchAPISchemaError', `Request does not match expected schema\\n${messages}`);\n }\n}\n\n/**\n * An Error class wrapping a well-formed JSON error from the Stytch API.\n * The Stytch error should match one listed at {@link https://stytch.com/docs/api/errors}\n */\nexport class StytchAPIError extends StytchError {\n error_type: string;\n error_message: string;\n error_url: string;\n request_id?: string;\n status_code: number;\n error_details?: object;\n\n constructor(details: APIError) {\n const { status_code, error_type, error_message, error_url, request_id, error_details } = details;\n super(\n 'StytchAPIError',\n `[${status_code}] ${error_type}\\n` +\n `${error_message}\\n` +\n `See ${error_url} for more information.\\n` +\n // Web-Backend doesn't have request IDs yet, so if a request fails there it won't have one.\n // We should figure out how returning tracing info should work\n (request_id ? `request_id: ${request_id}\\n` : '') +\n (error_details ? `Details: \\n` + JSON.stringify(error_details) + '\\n' : ''),\n );\n this.error_type = error_type;\n this.error_message = error_message;\n this.error_url = error_url;\n this.request_id = request_id;\n this.status_code = status_code;\n this.error_details = error_details;\n }\n\n static from(err: unknown): StytchAPIError {\n if (err instanceof StytchAPIError) {\n return err;\n }\n if (err && typeof err === 'object') {\n const maybe = err as Partial<APIError>;\n if (\n typeof maybe.status_code === 'number' &&\n typeof maybe.error_type === 'string' &&\n typeof maybe.error_message === 'string' &&\n typeof maybe.error_url === 'string'\n ) {\n return new StytchAPIError({\n status_code: maybe.status_code,\n error_type: maybe.error_type,\n error_message: maybe.error_message,\n error_url: maybe.error_url,\n request_id: typeof maybe.request_id === 'string' ? maybe.request_id : undefined,\n error_details: typeof maybe.error_details === 'object' ? maybe.error_details : undefined,\n });\n }\n }\n const message = err instanceof Error ? err.message : 'Unknown error: ' + String(err);\n return new StytchAPIError({\n status_code: 400,\n error_type: 'unknown_error',\n error_message: message,\n error_url: '',\n request_id: undefined,\n error_details: undefined,\n });\n }\n}\n\nexport type StytchSDKErrorOptions = {\n url?: string;\n};\n\n/**\n * An Error class used in the Stytch SDK.\n */\nexport class StytchSDKError extends StytchError {\n options?: StytchSDKErrorOptions;\n\n constructor(name: string, description: string, options?: StytchSDKErrorOptions) {\n super(name, description);\n this.options = options;\n }\n}\n\nexport type StytchSDKUIError = {\n message: string;\n};\n\n/**\n * Thrown when you attempt to perform an action that requires a session, but no local session exists\n */\nexport class NoCurrentSessionError extends StytchSDKError {\n constructor() {\n super(\n 'NoCurrentSessionError',\n 'There is no session currently available. Make sure the user is authenticated with a valid session.',\n );\n }\n}\n\n/**\n * Thrown when an unrecognized error is thrown\n */\nexport class InternalError extends StytchSDKError {\n nativeStack?: unknown;\n\n constructor(error: any) {\n super(\n error.name ? error.name : 'Internal Error',\n error.message ? error.message : 'An internal error has occurred. Please contact Stytch if this occurs.',\n );\n this.nativeStack = error.nativeStackAndroid || error.nativeStackIOS;\n }\n}\n\n/**\n * Thrown when no biometric registration exists\n */\nexport class NoBiometricsRegistrationError extends StytchSDKError {\n constructor() {\n super(\n 'NoBiometricsRegistrationError',\n 'There is no biometric registration available. Authenticate with another method and add a new biometric registration first.',\n );\n }\n}\n\n/**\n * Thrown when biometrics are unavailable on the device\n */\nexport class BiometricsUnavailableError extends StytchSDKError {\n constructor() {\n super('BiometricsUnavailableError', 'Biometrics is not available on the device.');\n }\n}\n\n/**\n * Thrown when the biometrics enrollment has changed, and the underlying key is no longer usable\n */\nexport class KeyInvalidatedError extends StytchSDKError {\n constructor() {\n super('KeyInvalidatedError', 'The biometrics enrollment on the device has changed.');\n }\n}\n\n/**\n * Thrown when the Keystore is determined to be unavailable\n */\nexport class KeystoreUnavailableError extends StytchSDKError {\n constructor() {\n super(\n 'KeystoreUnavailableError',\n 'The Android keystore is unavailable on the device. Consider setting allowFallbackToCleartext to true.',\n );\n }\n}\n\n/**\n * Thrown when there is no biometric factor enrolled on device\n */\nexport class NoBiometricsEnrolledError extends StytchSDKError {\n constructor() {\n super(\n 'NoBiometricsEnrolledError',\n 'There is no biometric factor enrolled on the device. Add a biometric factor in the device settings.',\n );\n }\n}\n\n/**\n * Thrown when there is no biometric factor enrolled on device\n */\nexport class BiometricsAlreadyEnrolledError extends StytchSDKError {\n constructor() {\n super(\n 'BiometricsAlreadyEnrolledError',\n 'There is already a biometric factor enrolled on this device. Fully authenticate with all factors and remove the existing registration before attempting to register again.',\n );\n }\n}\n\n/**\n * Thrown when the user has cancelled the prompt\n */\nexport class UserCancellationError extends StytchSDKError {\n constructor() {\n super('UserCancellationError', 'The user canceled the prompt. Ask the user to try again.');\n }\n}\n\n/**\n * Thrown when the user has been locked out of biometrics\n */\nexport class UserLockedOutError extends StytchSDKError {\n constructor() {\n super(\n 'UserLockedOutError',\n 'The user has been locked out due to too many failed attempts. Ask the user to try again later.',\n );\n }\n}\n\n/**\n * Thrown when biometrics register/authenticate calls are made with mismatched `allowDeviceCredentials` parameter\n */\nexport class DeviceCredentialsNotAllowedError extends StytchSDKError {\n constructor() {\n super(\n 'DeviceCredentialsNotAllowedError',\n 'The device credentials allowment is mismatched. Change the allowDeviceCredentials parameter to be the same in both the register and authenticate methods.',\n );\n }\n}\n\n/**\n * Thrown when no Google client ID is found for the project\n */\nexport class MissingGoogleClientIDError extends StytchSDKError {\n constructor() {\n super('MissingGoogleClientIDError', 'No Google client ID was found in the project.');\n }\n}\n\n/**\n * Thrown when there was an error generating or retrieving a PKCE keypair\n */\nexport class MissingPKCEError extends StytchSDKError {\n constructor() {\n super('MissingPKCEError', 'Make sure this flow is completed on the same device on which it was started.');\n }\n}\n\n/**\n * Thrown when a native OAuth flow is missing the id_token\n */\nexport class MissingAuthorizationCredentialIDTokenError extends StytchSDKError {\n constructor() {\n super('MissingAuthorizationCredentialIDTokenError', 'The authorization credential is missing an ID token.');\n }\n}\n\n/**\n * Thrown when a native OAuth flow returns an invalid credential\n */\nexport class InvalidAuthorizationCredentialError extends StytchSDKError {\n constructor() {\n super(\n 'InvalidAuthorizationCredentialError',\n 'The authorization credential is invalid. Verify that OAuth is set up correctly in the developer console, and call the start flow method.',\n );\n }\n}\n\n/**\n * Thrown when a Google OneTap flow is not completed successfully\n */\nexport class NoCredentialsPresentError extends StytchSDKError {\n constructor() {\n super('NoCredentialsPresentError', 'The user did not provide credentials for a Google OneTap attempt');\n }\n}\n\n/**\n * Thrown when a public key was not found\n */\nexport class MissingPublicKeyError extends StytchSDKError {\n constructor() {\n super('MissingPublicKeyError', 'Failed to retrieve the public key. Add a new biometric registration.');\n }\n}\n\n/**\n * Thrown when the challenge string failed to be signed\n */\nexport class ChallengeSigningFailedError extends StytchSDKError {\n constructor() {\n super('ChallengeSigningFailedError', 'Failed to sign the challenge with the key.');\n }\n}\n\n/**\n * Thrown when the SDK has not been configured\n */\nexport class SDKNotConfiguredError extends StytchSDKError {\n constructor() {\n super(\n 'SDKNotConfiguredError',\n 'Stytch client is not confiured. You must call the configure method before using the SDK',\n );\n }\n}\n\n/**\n * Thrown when the code challenge failed to be generated\n */\nexport class FailedCodeChallengeError extends StytchSDKError {\n constructor() {\n super('FailedCodeChallengeError', 'Failed to create a code challenge');\n }\n}\n\n/**\n * Thrown when Passkeys are unsupported on a device\n */\nexport class PasskeysUnsupportedError extends StytchSDKError {\n constructor() {\n super('PasskeysUnsupportedError', 'Passkeys are not supported on this device');\n }\n}\n\n/**\n * Thrown when user data failed to be decrypted\n */\nexport class FailedToDecryptDataError extends StytchSDKError {\n constructor() {\n super('FailedToDecryptDataError', 'Failed to decrypt user data');\n }\n}\n\n/**\n * Thrown when Biometrics failed\n */\nexport class BiometricsFailedError extends StytchSDKError {\n constructor() {\n super('BiometricsFailedError', 'Biometric authentication failed');\n }\n}\n\n/**\n * Thrown when a start URL was invalid\n */\nexport class InvalidStartUrlError extends StytchSDKError {\n constructor() {\n super('InvalidStartUrlError', 'The start URL was invalid or improperly formatted.');\n }\n}\n\n/**\n * Thrown when a redirect url was invalid\n */\nexport class InvalidRedirectSchemeError extends StytchSDKError {\n constructor() {\n super(\n 'InvalidRedirectSchemeError',\n 'The scheme from the given redirect urls was invalid. Possible reasons include: nil scheme, non-custom scheme (using http or https), or differing schemes for login/signup urls.',\n );\n }\n}\n\n/**\n * Thrown when the underlying web authentication service failed to return a URL.\n */\nexport class MissingUrlError extends StytchSDKError {\n constructor() {\n super('MissingUrlError', 'The underlying web authentication service failed to return a URL.');\n }\n}\n\n/**\n * Thrown when the public key credential type was not of the expected type.\n */\nexport class InvalidCredentialTypeError extends StytchSDKError {\n constructor() {\n super('InvalidCredentialTypeError', 'The public key credential type was not of the expected type.');\n }\n}\n\n/**\n * Thrown when the public key credential is missing the attestation object\n */\nexport class MissingAttestationObjectError extends StytchSDKError {\n constructor() {\n super('MissingAttestationObjectError', 'The public key credential is missing the attestation object.');\n }\n}\n\n/**\n * Thrown when we received JSON data that could not be converted to a string\n */\nexport class JSONDataNotConvertibleToStringError extends StytchSDKError {\n constructor() {\n super('JSONDataNotConvertibleToStringError', 'JSON data unable to be converted to String type.');\n }\n}\n\n/**\n * Thrown when RNG fails\n */\nexport class RandomNumberGenerationFailed extends StytchSDKError {\n constructor() {\n super('RandomNumberGenerationFailed', 'Random number generation failed');\n }\n}\n\n/**\n * Thrown when there was an invalid encoding used for a Passkeys request\n */\nexport class PasskeysInvalidEncoding extends StytchSDKError {\n constructor() {\n super('PasskeysInvalidEncoding', 'Invalid passkey encoding');\n }\n}\n\n/**\n * Thrown when Passkeys support is misconfigured\n */\nexport class PasskeysMisconfigured extends StytchSDKError {\n constructor() {\n super(\n 'PasskeysMisconfigured',\n 'Passkeys are misconfigured. Verify that you have added the correct associated domain for your application, and that the signing information is correct.',\n );\n }\n}\n\n/**\n * Thrown when there was an invalid encoding used for a Passkeys request\n */\nexport class SignInWithAppleMisconfigured extends StytchSDKError {\n constructor() {\n super(\n 'SignInWithAppleMisconfigured',\n 'Sign In With Apple is misconfigured. Verify that you have correctly configured Apple OAuth in the Stytch Dashboard and added the Sign In With Apple capability to your project.',\n );\n }\n}\n\nexport class MissingCipherIv extends StytchSDKError {\n constructor() {\n super(\n 'MissingCipherIv',\n 'The expected cipher Iv was not found when attempting to decrypt an existing biometric key.',\n );\n }\n}\n\nexport class InvalidPrivateKeyLength extends StytchSDKError {\n constructor() {\n super('InvalidPrivateKeyLength', `The private key was of an incorrect length.`);\n }\n}\n\nexport class BiometricRegistrationIdIsNullOrBlank extends StytchSDKError {\n constructor() {\n super(\n 'BiometricRegistrationIdIsNullOrBlank',\n 'Attempted to set a blank or null biometric registration ID. This is not allowed, and indicates no registration was created on the server. Consider deleting any local keys that may have been generated.',\n );\n }\n}\n\nexport class DFPNotConfigured extends StytchSDKError {\n constructor() {\n super(\n 'DFPNotConfigured',\n 'You have attempted to retrieve a telemetry ID before the DFP client has been configured.',\n );\n }\n}\n\n/**\n * Thrown when a client attempts to start an OAuth flow but does not pass all required fields\n */\nexport class IDPOAuthFlowMissingParamError extends StytchSDKError {\n constructor(details: string) {\n super('IDPOAuthFlowMissingParamError', details);\n }\n}\n\nexport function errorToStytchError(error: any): StytchSDKError {\n if (error instanceof StytchSDKError) return error;\n\n switch (error.message) {\n case 'no_current_session':\n return new NoCurrentSessionError();\n case 'no_biometrics_registration':\n return new NoBiometricsRegistrationError();\n case 'biometrics_unavailable':\n return new BiometricsUnavailableError();\n case 'key_invalidated':\n return new KeyInvalidatedError();\n case 'device_hardware_error':\n return new BiometricsUnavailableError();\n case 'biometrics_not_available':\n return new BiometricsUnavailableError();\n case 'no_biometrics_enrolled':\n return new NoBiometricsEnrolledError();\n case 'keystore_unavailable':\n return new KeystoreUnavailableError();\n case 'no_biometric_key':\n return new KeyInvalidatedError();\n case 'device_credentials_not_allowed':\n return new DeviceCredentialsNotAllowedError();\n case 'user_cancellation':\n return new UserCancellationError();\n case 'user_locked_out':\n return new UserLockedOutError();\n case 'google_onetap_missing_id_token':\n return new MissingAuthorizationCredentialIDTokenError();\n case 'google_onetap_missing_member':\n return new InvalidAuthorizationCredentialError();\n case 'oauth_apple_missing_id_token':\n return new MissingAuthorizationCredentialIDTokenError();\n case 'oauth_apple_credential_invalid':\n return new InvalidAuthorizationCredentialError();\n case 'missing_public_key':\n return new MissingPublicKeyError();\n case 'challenge_signing_failed':\n return new ChallengeSigningFailedError();\n case 'missing_authorization_credential_id_token':\n return new MissingAuthorizationCredentialIDTokenError();\n case 'invalid_authorization_credential':\n return new InvalidAuthorizationCredentialError();\n case 'no_credentials_present':\n return new NoCredentialsPresentError();\n case 'sdk_not_configured':\n return new SDKNotConfiguredError();\n case 'failed_code_challenge':\n return new FailedCodeChallengeError();\n case 'passkeys_unsupported':\n return new PasskeysUnsupportedError();\n case 'failed_to_decrypt_data':\n return new FailedToDecryptDataError();\n case 'biometrics_failed':\n return new BiometricsFailedError();\n case 'invalid_start_url':\n return new InvalidStartUrlError();\n case 'invalid_redirect_scheme':\n return new InvalidRedirectSchemeError();\n case 'missing_url':\n return new MissingUrlError();\n case 'invalid_credential_type':\n return new InvalidCredentialTypeError();\n case 'missing_attestation_object':\n return new MissingAttestationObjectError();\n case 'json_data_not_convertible_to_string':\n return new JSONDataNotConvertibleToStringError();\n case 'random_number_generation_failed':\n return new RandomNumberGenerationFailed();\n case 'passkeys_invalid_encoding':\n return new PasskeysInvalidEncoding();\n case 'passkeys_misconfigured':\n return new PasskeysMisconfigured();\n case 'signinwithapple_misconfigured':\n return new SignInWithAppleMisconfigured();\n case 'missing_cipher_iv':\n return new MissingCipherIv();\n case 'invalid_private_key_length':\n return new InvalidPrivateKeyLength();\n case 'biometric_registration_id_is_null_or_blank':\n return new BiometricRegistrationIdIsNullOrBlank();\n case 'dfp_not_configured':\n return new DFPNotConfigured();\n default:\n return new InternalError(error);\n }\n}\n","import { StytchSDKUsageError } from '../public';\n\n/**\n * This function and its parameter is stripped in production builds using rollup plugin.\n * NOTE: Be careful when wrapping render function return values. React before v18 do not allow undefined\n * to be returned, so wrapping the entire return value will crash those runtimes.\n */\nexport const DEV = <T>(input: T): T | undefined => input;\n\n/**\n * This function is stripped in production builds using rollup plugin. Useful for adding\n * logging or validation in dev only\n */\nexport function RUN_IN_DEV(callback: () => void) {\n callback();\n}\n\nexport type ValidateRule =\n | 'object'\n | 'optionalObject'\n | 'string'\n | 'optionalString'\n | 'number'\n | 'optionalNumber'\n | 'stringArray'\n | 'optionalStringArray'\n | 'boolean'\n | 'optionalBoolean';\n\nexport const validateInDev = <T extends Record<string, unknown>>(\n methodName: string,\n obj: T,\n rules: Partial<Record<keyof T, ValidateRule>>,\n) => {\n const errors: StytchSDKUsageError[] = [];\n for (const [key, rule] of Object.entries(rules)) {\n if (rule == null) continue;\n\n const val = obj[key];\n if (rule.startsWith('optional') && val == null) continue;\n\n switch (rule) {\n case 'object':\n case 'optionalObject': {\n const isObject = typeof val === 'object' && !Array.isArray(val) && val !== null;\n if (!isObject) {\n errors.push(new StytchSDKUsageError(methodName, `${key} must be an object.`));\n }\n break;\n }\n\n case 'string':\n case 'optionalString':\n if (typeof val !== 'string') {\n errors.push(new StytchSDKUsageError(methodName, `${key} must be a string.`));\n }\n break;\n\n case 'number':\n case 'optionalNumber':\n if (typeof val !== 'number') {\n errors.push(new StytchSDKUsageError(methodName, `${key} must be a number.`));\n }\n break;\n\n case 'stringArray':\n case 'optionalStringArray':\n if (!Array.isArray(val) || !val.every((str) => typeof str === 'string')) {\n errors.push(new StytchSDKUsageError(methodName, `${key} must be an array of strings.`));\n }\n break;\n\n case 'boolean':\n case 'optionalBoolean':\n if (typeof val !== 'boolean') {\n errors.push(new StytchSDKUsageError(methodName, `${key} must be a boolean.`));\n }\n break;\n }\n }\n\n if (errors.length > 0) {\n if (errors.length === 1) {\n throw errors[0];\n } else {\n throw new AggregateError(errors);\n }\n }\n};\n"],"names":["SDKAPIUnreachableError","Error","details","constructor","message","name","Object","setPrototypeOf","prototype","StytchSDKUsageError","methodName","StytchSDKSchemaError","schemaError","messages","body","map","err","dataPath","join","StytchSDKAPIError","error_type","error_message","error_url","request_id","status_code","error_details","JSON","stringify","UNRECOVERABLE_ERROR_TYPES","StytchError","StytchAPIUnreachableError","StytchAPISchemaError","StytchAPIError","from","maybe","undefined","String","StytchSDKError","options","description","NoCurrentSessionError","InternalError","nativeStack","error","nativeStackAndroid","nativeStackIOS","NoBiometricsRegistrationError","BiometricsUnavailableError","KeyInvalidatedError","KeystoreUnavailableError","NoBiometricsEnrolledError","BiometricsAlreadyEnrolledError","UserCancellationError","UserLockedOutError","DeviceCredentialsNotAllowedError","MissingGoogleClientIDError","MissingPKCEError","MissingAuthorizationCredentialIDTokenError","InvalidAuthorizationCredentialError","NoCredentialsPresentError","MissingPublicKeyError","ChallengeSigningFailedError","SDKNotConfiguredError","FailedCodeChallengeError","PasskeysUnsupportedError","FailedToDecryptDataError","BiometricsFailedError","InvalidStartUrlError","InvalidRedirectSchemeError","MissingUrlError","InvalidCredentialTypeError","MissingAttestationObjectError","JSONDataNotConvertibleToStringError","RandomNumberGenerationFailed","PasskeysInvalidEncoding","PasskeysMisconfigured","SignInWithAppleMisconfigured","MissingCipherIv","InvalidPrivateKeyLength","BiometricRegistrationIdIsNullOrBlank","DFPNotConfigured","IDPOAuthFlowMissingParamError","errorToStytchError","DEV","input","RUN_IN_DEV","callback","validateInDev","obj","rules","errors","key","rule","entries","val","startsWith","isObject","Array","isArray","push","every","str","length","AggregateError"],"mappings":"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"}
|