@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.
Files changed (190) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/StytchSSRProxy-Bz6LNYdq.js.map +1 -1
  3. package/dist/cjs/adminPortal/index.cjs +1 -1
  4. package/dist/cjs/b2b/index.cjs +28 -20
  5. package/dist/cjs/b2b/index.cjs.map +1 -1
  6. package/dist/cjs/compat.cjs +2 -0
  7. package/dist/cjs/compat.cjs.map +1 -1
  8. package/dist/cjs/{index-Ni_dyEsz.js → index-BIjXBvf_.js} +2 -2
  9. package/dist/cjs/index-BIjXBvf_.js.map +1 -0
  10. package/dist/cjs/index.cjs +521 -542
  11. package/dist/cjs/index.cjs.map +1 -1
  12. package/dist/cjs/{shadcn-B8TEzQMT.js → shadcn-aVU6Lm9q.js} +255 -235
  13. package/dist/cjs/shadcn-aVU6Lm9q.js.map +1 -0
  14. package/dist/cjs-dev/StytchSSRProxy-d553KgcY.js +438 -0
  15. package/dist/cjs-dev/StytchSSRProxy-d553KgcY.js.map +1 -0
  16. package/dist/cjs-dev/adminPortal/index.cjs +54 -53
  17. package/dist/cjs-dev/adminPortal/index.cjs.map +1 -1
  18. package/dist/cjs-dev/b2b/index.cjs +94 -75
  19. package/dist/cjs-dev/b2b/index.cjs.map +1 -1
  20. package/dist/cjs-dev/b2b/index.headless.cjs +89 -88
  21. package/dist/cjs-dev/b2b/index.headless.cjs.map +1 -1
  22. package/dist/cjs-dev/compat.cjs +15 -14
  23. package/dist/cjs-dev/compat.cjs.map +1 -1
  24. package/dist/cjs-dev/{StytchSSRProxy-CxXsyme4.js → dev-DaCGDI6V.js} +60 -426
  25. package/dist/cjs-dev/dev-DaCGDI6V.js.map +1 -0
  26. package/dist/cjs-dev/{idpHelpers-BVMUYvt1.js → idpHelpers-DOYYSxsX.js} +45 -102
  27. package/dist/cjs-dev/idpHelpers-DOYYSxsX.js.map +1 -0
  28. package/dist/cjs-dev/{index-DdK3Jt4u.js → index-rquGmIlv.js} +4 -4
  29. package/dist/cjs-dev/index-rquGmIlv.js.map +1 -0
  30. package/dist/cjs-dev/index.cjs +667 -667
  31. package/dist/cjs-dev/index.cjs.map +1 -1
  32. package/dist/cjs-dev/index.headless.cjs +70 -69
  33. package/dist/cjs-dev/index.headless.cjs.map +1 -1
  34. package/dist/cjs-dev/{passwordManagerDisableAutofillProps-D70WyvIu.js → passwordManagerDisableAutofillProps-CgiK2M_U.js} +2 -2
  35. package/dist/cjs-dev/{passwordManagerDisableAutofillProps-D70WyvIu.js.map → passwordManagerDisableAutofillProps-CgiK2M_U.js.map} +1 -1
  36. package/dist/cjs-dev/{shadcn-C9ClUju1.js → shadcn-DMk6ZSoD.js} +265 -244
  37. package/dist/cjs-dev/shadcn-DMk6ZSoD.js.map +1 -0
  38. package/dist/esm/_virtual/index3.mjs +5 -3
  39. package/dist/esm/_virtual/index3.mjs.map +1 -1
  40. package/dist/esm/_virtual/index4.mjs +3 -5
  41. package/dist/esm/_virtual/index4.mjs.map +1 -1
  42. package/dist/esm/b2b/StytchB2BContext.mjs +5 -5
  43. package/dist/esm/b2b/StytchB2BContext.mjs.map +1 -1
  44. package/dist/esm/packages/core/src/public/b2b/ui.mjs.map +1 -1
  45. package/dist/esm/packages/web/src/adminPortal/utils/theme.mjs +1 -1
  46. package/dist/esm/packages/web/src/ui/b2b/App.mjs +2 -2
  47. package/dist/esm/packages/web/src/ui/b2b/App.mjs.map +1 -1
  48. package/dist/esm/packages/web/src/ui/b2b/components/Icons.mjs +3 -1
  49. package/dist/esm/packages/web/src/ui/b2b/components/Icons.mjs.map +1 -1
  50. package/dist/esm/packages/web/src/ui/b2b/components/OAuthB2BButton.mjs +6 -3
  51. package/dist/esm/packages/web/src/ui/b2b/components/OAuthB2BButton.mjs.map +1 -1
  52. package/dist/esm/packages/web/src/ui/b2b/components/SSOButton.mjs +5 -3
  53. package/dist/esm/packages/web/src/ui/b2b/components/SSOButton.mjs.map +1 -1
  54. package/dist/esm/packages/web/src/ui/b2b/screens/SsoAndOAuthButtons.mjs +6 -3
  55. package/dist/esm/packages/web/src/ui/b2b/screens/SsoAndOAuthButtons.mjs.map +1 -1
  56. package/dist/esm/packages/web/src/ui/b2b/types/authMethodKeys.mjs +2 -2
  57. package/dist/esm/packages/web/src/ui/b2b/types/authMethodKeys.mjs.map +1 -1
  58. package/dist/esm/packages/web/src/ui/b2c/AppContainer.mjs +1 -1
  59. package/dist/esm/packages/web/src/ui/b2c/AppContainer.mjs.map +1 -1
  60. package/dist/esm/packages/web/src/ui/b2c/IDPContainer.mjs +1 -1
  61. package/dist/esm/packages/web/src/ui/b2c/IDPContainer.mjs.map +1 -1
  62. package/dist/esm/packages/web/src/ui/b2c/PasskeyRegistrationContainer.mjs +1 -1
  63. package/dist/esm/packages/web/src/ui/b2c/PasskeyRegistrationContainer.mjs.map +1 -1
  64. package/dist/esm/packages/web/src/ui/b2c/ResetPasswordContainer.mjs +1 -1
  65. package/dist/esm/packages/web/src/ui/b2c/ResetPasswordContainer.mjs.map +1 -1
  66. package/dist/esm/packages/web/src/ui/b2c/components/OAuthButton.mjs +6 -3
  67. package/dist/esm/packages/web/src/ui/b2c/components/OAuthButton.mjs.map +1 -1
  68. package/dist/esm/packages/web/src/ui/b2c/screens/Crypto/SetupNewWallet.mjs +20 -39
  69. package/dist/esm/packages/web/src/ui/b2c/screens/Crypto/SetupNewWallet.mjs.map +1 -1
  70. package/dist/esm/packages/web/src/ui/b2c/screens/Crypto/WalletButtons.mjs +15 -15
  71. package/dist/esm/packages/web/src/ui/b2c/screens/Crypto/WalletButtons.mjs.map +1 -1
  72. package/dist/esm/packages/web/src/ui/compat/styleToTheme.mjs +2 -0
  73. package/dist/esm/packages/web/src/ui/compat/styleToTheme.mjs.map +1 -1
  74. package/dist/esm/packages/web/src/ui/components/PresentationConfig.mjs +6 -1
  75. package/dist/esm/packages/web/src/ui/components/PresentationConfig.mjs.map +1 -1
  76. package/dist/esm/packages/web/src/ui/components/atoms/Button.mjs.map +1 -1
  77. package/dist/esm/packages/web/src/ui/components/atoms/Typography.module.css.mjs +2 -2
  78. package/dist/esm/packages/web/src/ui/components/molecules/EmailInput.mjs +1 -1
  79. package/dist/esm/packages/web/src/ui/components/molecules/EmailInput.mjs.map +1 -1
  80. package/dist/esm/packages/web/src/ui/components/molecules/Input.mjs +1 -1
  81. package/dist/esm/packages/web/src/ui/components/molecules/Input.mjs.map +1 -1
  82. package/dist/esm/packages/web/src/ui/react/b2b/B2BIdentityProvider.mjs +1 -1
  83. package/dist/esm/packages/web/src/ui/react/b2b/B2BIdentityProvider.mjs.map +1 -1
  84. package/dist/esm/packages/web/src/ui/react/b2b/Stytch.mjs +1 -1
  85. package/dist/esm/packages/web/src/ui/react/b2b/Stytch.mjs.map +1 -1
  86. package/dist/esm/packages/web/src/ui/react/b2b/StytchB2BContext.mjs +1 -1
  87. package/dist/esm/packages/web/src/ui/react/b2b/StytchB2BContext.mjs.map +1 -1
  88. package/dist/esm/packages/web/src/ui/react/b2c/IdentityProvider.mjs +1 -1
  89. package/dist/esm/packages/web/src/ui/react/b2c/IdentityProvider.mjs.map +1 -1
  90. package/dist/esm/packages/web/src/ui/react/b2c/StytchContext.mjs +1 -1
  91. package/dist/esm/packages/web/src/ui/react/b2c/StytchContext.mjs.map +1 -1
  92. package/dist/esm/packages/web/src/ui/react/b2c/StytchLogin.mjs +1 -1
  93. package/dist/esm/packages/web/src/ui/react/b2c/StytchLogin.mjs.map +1 -1
  94. package/dist/esm/packages/web/src/ui/react/b2c/StytchPasskeyRegistration.mjs +1 -1
  95. package/dist/esm/packages/web/src/ui/react/b2c/StytchPasskeyRegistration.mjs.map +1 -1
  96. package/dist/esm/packages/web/src/ui/react/b2c/StytchPasswordReset.mjs +1 -1
  97. package/dist/esm/packages/web/src/ui/react/b2c/StytchPasswordReset.mjs.map +1 -1
  98. package/dist/esm/packages/web/src/ui/react/utils/errors.mjs.map +1 -1
  99. package/dist/esm/packages/web/src/utils/crypto.mjs +19 -14
  100. package/dist/esm/packages/web/src/utils/crypto.mjs.map +1 -1
  101. package/dist/esm/packages/web/src/utils/oauthProviderType.mjs +1 -1
  102. package/dist/esm/packages/web/src/utils/oauthProviderType.mjs.map +1 -1
  103. package/dist/esm-dev/_virtual/index3.mjs +3 -5
  104. package/dist/esm-dev/_virtual/index3.mjs.map +1 -1
  105. package/dist/esm-dev/_virtual/index4.mjs +5 -3
  106. package/dist/esm-dev/_virtual/index4.mjs.map +1 -1
  107. package/dist/esm-dev/b2b/StytchB2BContext.mjs +5 -5
  108. package/dist/esm-dev/b2b/StytchB2BContext.mjs.map +1 -1
  109. package/dist/esm-dev/packages/core/src/public/b2b/ui.mjs.map +1 -1
  110. package/dist/esm-dev/packages/core/src/utils/dev.mjs +7 -1
  111. package/dist/esm-dev/packages/core/src/utils/dev.mjs.map +1 -1
  112. package/dist/esm-dev/packages/web/src/adminPortal/utils/theme.mjs +1 -1
  113. package/dist/esm-dev/packages/web/src/ui/b2b/App.mjs +14 -2
  114. package/dist/esm-dev/packages/web/src/ui/b2b/App.mjs.map +1 -1
  115. package/dist/esm-dev/packages/web/src/ui/b2b/components/Icons.mjs +3 -1
  116. package/dist/esm-dev/packages/web/src/ui/b2b/components/Icons.mjs.map +1 -1
  117. package/dist/esm-dev/packages/web/src/ui/b2b/components/OAuthB2BButton.mjs +6 -3
  118. package/dist/esm-dev/packages/web/src/ui/b2b/components/OAuthB2BButton.mjs.map +1 -1
  119. package/dist/esm-dev/packages/web/src/ui/b2b/components/SSOButton.mjs +5 -3
  120. package/dist/esm-dev/packages/web/src/ui/b2b/components/SSOButton.mjs.map +1 -1
  121. package/dist/esm-dev/packages/web/src/ui/b2b/screens/SsoAndOAuthButtons.mjs +6 -3
  122. package/dist/esm-dev/packages/web/src/ui/b2b/screens/SsoAndOAuthButtons.mjs.map +1 -1
  123. package/dist/esm-dev/packages/web/src/ui/b2b/types/authMethodKeys.mjs +2 -2
  124. package/dist/esm-dev/packages/web/src/ui/b2b/types/authMethodKeys.mjs.map +1 -1
  125. package/dist/esm-dev/packages/web/src/ui/b2c/AppContainer.mjs +8 -1
  126. package/dist/esm-dev/packages/web/src/ui/b2c/AppContainer.mjs.map +1 -1
  127. package/dist/esm-dev/packages/web/src/ui/b2c/IDPContainer.mjs +8 -1
  128. package/dist/esm-dev/packages/web/src/ui/b2c/IDPContainer.mjs.map +1 -1
  129. package/dist/esm-dev/packages/web/src/ui/b2c/PasskeyRegistrationContainer.mjs +8 -1
  130. package/dist/esm-dev/packages/web/src/ui/b2c/PasskeyRegistrationContainer.mjs.map +1 -1
  131. package/dist/esm-dev/packages/web/src/ui/b2c/ResetPasswordContainer.mjs +8 -1
  132. package/dist/esm-dev/packages/web/src/ui/b2c/ResetPasswordContainer.mjs.map +1 -1
  133. package/dist/esm-dev/packages/web/src/ui/b2c/components/OAuthButton.mjs +6 -3
  134. package/dist/esm-dev/packages/web/src/ui/b2c/components/OAuthButton.mjs.map +1 -1
  135. package/dist/esm-dev/packages/web/src/ui/b2c/screens/Crypto/SetupNewWallet.mjs +20 -39
  136. package/dist/esm-dev/packages/web/src/ui/b2c/screens/Crypto/SetupNewWallet.mjs.map +1 -1
  137. package/dist/esm-dev/packages/web/src/ui/b2c/screens/Crypto/WalletButtons.mjs +15 -15
  138. package/dist/esm-dev/packages/web/src/ui/b2c/screens/Crypto/WalletButtons.mjs.map +1 -1
  139. package/dist/esm-dev/packages/web/src/ui/compat/styleToTheme.mjs +15 -14
  140. package/dist/esm-dev/packages/web/src/ui/compat/styleToTheme.mjs.map +1 -1
  141. package/dist/esm-dev/packages/web/src/ui/components/PresentationConfig.mjs +9 -3
  142. package/dist/esm-dev/packages/web/src/ui/components/PresentationConfig.mjs.map +1 -1
  143. package/dist/esm-dev/packages/web/src/ui/components/atoms/Button.mjs.map +1 -1
  144. package/dist/esm-dev/packages/web/src/ui/components/atoms/Typography.module.css.mjs +2 -2
  145. package/dist/esm-dev/packages/web/src/ui/components/molecules/EmailInput.mjs +1 -1
  146. package/dist/esm-dev/packages/web/src/ui/components/molecules/EmailInput.mjs.map +1 -1
  147. package/dist/esm-dev/packages/web/src/ui/components/molecules/Input.mjs +1 -1
  148. package/dist/esm-dev/packages/web/src/ui/components/molecules/Input.mjs.map +1 -1
  149. package/dist/esm-dev/packages/web/src/ui/react/b2b/B2BIdentityProvider.mjs +1 -1
  150. package/dist/esm-dev/packages/web/src/ui/react/b2b/B2BIdentityProvider.mjs.map +1 -1
  151. package/dist/esm-dev/packages/web/src/ui/react/b2b/Stytch.mjs +1 -1
  152. package/dist/esm-dev/packages/web/src/ui/react/b2b/Stytch.mjs.map +1 -1
  153. package/dist/esm-dev/packages/web/src/ui/react/b2b/StytchB2BContext.mjs +1 -1
  154. package/dist/esm-dev/packages/web/src/ui/react/b2b/StytchB2BContext.mjs.map +1 -1
  155. package/dist/esm-dev/packages/web/src/ui/react/b2c/IdentityProvider.mjs +1 -1
  156. package/dist/esm-dev/packages/web/src/ui/react/b2c/IdentityProvider.mjs.map +1 -1
  157. package/dist/esm-dev/packages/web/src/ui/react/b2c/StytchContext.mjs +1 -1
  158. package/dist/esm-dev/packages/web/src/ui/react/b2c/StytchContext.mjs.map +1 -1
  159. package/dist/esm-dev/packages/web/src/ui/react/b2c/StytchLogin.mjs +1 -1
  160. package/dist/esm-dev/packages/web/src/ui/react/b2c/StytchLogin.mjs.map +1 -1
  161. package/dist/esm-dev/packages/web/src/ui/react/b2c/StytchPasskeyRegistration.mjs +1 -1
  162. package/dist/esm-dev/packages/web/src/ui/react/b2c/StytchPasskeyRegistration.mjs.map +1 -1
  163. package/dist/esm-dev/packages/web/src/ui/react/b2c/StytchPasswordReset.mjs +1 -1
  164. package/dist/esm-dev/packages/web/src/ui/react/b2c/StytchPasswordReset.mjs.map +1 -1
  165. package/dist/esm-dev/packages/web/src/ui/react/utils/errors.mjs +8 -4
  166. package/dist/esm-dev/packages/web/src/ui/react/utils/errors.mjs.map +1 -1
  167. package/dist/esm-dev/packages/web/src/utils/crypto.mjs +19 -14
  168. package/dist/esm-dev/packages/web/src/utils/crypto.mjs.map +1 -1
  169. package/dist/esm-dev/packages/web/src/utils/oauthProviderType.mjs +1 -1
  170. package/dist/esm-dev/packages/web/src/utils/oauthProviderType.mjs.map +1 -1
  171. package/dist/types/{PresentationConfig-Bqzf8zr3.d.ts → PresentationConfig-B2jX85oV.d.ts} +13 -2
  172. package/dist/types/{StytchB2BClient-CsY7ZNKh.d.ts → StytchB2BClient-D16e_lp1.d.ts} +2 -2
  173. package/dist/types/{StytchClient-DZRM_fM4.d.ts → StytchClient-BwQdJzdj.d.ts} +2 -2
  174. package/dist/types/adminPortal/index.d.ts +5 -5
  175. package/dist/types/b2b/index.d.ts +27 -19
  176. package/dist/types/b2b/index.headless.d.ts +5 -5
  177. package/dist/types/compat.d.ts +2 -2
  178. package/dist/types/{createAuthUrlHandler-BZoD2LDF.d.ts → createAuthUrlHandler-R1kNNQD_.d.ts} +2 -2
  179. package/dist/types/{idpHelpers-CD5sSDzA.d.ts → idpHelpers-BQP76WgZ.d.ts} +1 -1
  180. package/dist/types/index.d.ts +36 -16
  181. package/dist/types/index.headless.d.ts +5 -5
  182. package/dist/types/{shadcn-4-5byj93.d.ts → shadcn-CGdmyIUF.d.ts} +9 -6
  183. package/dist/types/{ui-DXrQ-gA8.d.ts → ui-B7IvSGQf.d.ts} +1 -1
  184. package/package.json +1 -1
  185. package/dist/cjs/index-Ni_dyEsz.js.map +0 -1
  186. package/dist/cjs/shadcn-B8TEzQMT.js.map +0 -1
  187. package/dist/cjs-dev/StytchSSRProxy-CxXsyme4.js.map +0 -1
  188. package/dist/cjs-dev/idpHelpers-BVMUYvt1.js.map +0 -1
  189. package/dist/cjs-dev/index-DdK3Jt4u.js.map +0 -1
  190. package/dist/cjs-dev/shadcn-C9ClUju1.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"StytchSSRProxy-CxXsyme4.js","sources":["../../../core/src/public/ui.ts","../../../core/src/public/SDKErrors.ts","../../../core/src/public/b2b/ui.ts","../../../js-utils/src/createDeepEqual.ts","../../../web/src/utils/index.ts","../../../web/src/utils/storage.ts","../../../web/src/utils/internal.ts","../../../web/src/ui/react/utils/errors.ts","../../../web/src/ui/react/bindings/StytchSSRProxy.ts"],"sourcesContent":["import { OTPsAuthenticateResponse, OTPsLoginOrCreateResponse } from './otps';\nimport { MagicLinksLoginOrCreateResponse } from './magicLinks';\nimport { CryptoWalletAuthenticateResponse, CryptoWalletAuthenticateStartResponse } from './cryptoWallets';\nimport {\n PasswordAuthenticateResponse,\n PasswordCreateResponse,\n PasswordResetByEmailResponse,\n PasswordResetByEmailStartResponse,\n} from './passwords';\nimport {\n B2BDiscoveryIntermediateSessionsExchangeResponse,\n B2BDiscoveryOrganizationsCreateResponse,\n B2BDiscoveryOTPEmailAuthenticateResponse,\n B2BDiscoveryOTPEmailSendResponse,\n B2BImpersonationAuthenticateResponse,\n B2BMagicLinkLoginOrSignupResponse,\n B2BMagicLinksAuthenticateResponse,\n B2BMagicLinksDiscoveryAuthenticateResponse,\n B2BMagicLinksEmailDiscoverySendResponse,\n B2BOAuthAuthenticateResponse,\n B2BOAuthDiscoveryAuthenticateResponse,\n B2BOrganizationsGetBySlugResponse,\n B2BOTPsEmailAuthenticateResponse,\n B2BOTPsEmailLoginOrSignupResponse,\n B2BPasswordAuthenticateResponse,\n B2BPasswordDiscoveryAuthenticateResponse,\n B2BPasswordDiscoveryResetByEmailResponse,\n B2BPasswordDiscoveryResetByEmailStartResponse,\n B2BPasswordResetByEmailResponse,\n B2BPasswordResetByEmailStartResponse,\n B2BPasswordResetBySessionResponse,\n B2BSMSAuthenticateResponse,\n B2BSMSSendResponse,\n B2BSSODiscoverConnectionsResponse,\n B2BTOTPAuthenticateResponse,\n B2BTOTPCreateResponse,\n RecoveryCodeRecoverResponse,\n SSOAuthenticateResponse,\n} from './b2b';\nimport { WebAuthnAuthenticateResponse, WebAuthnRegisterResponse } from './webauthn';\nimport { StytchSDKUIError } from './SDKErrors';\nimport { StytchProjectConfigurationInput } from './typeConfig';\nimport type { Values } from '../utils';\n\ntype DeepPartial<K> = {\n [attr in keyof K]?: K[attr] extends object ? DeepPartial<K[attr]> : K[attr];\n};\n\n/**\n * The options for email magic links. This is used if you've enabled the `emailMagicLinks` product\n * in your configuration.\n */\n\nexport type EmailMagicLinksOptions = {\n loginRedirectURL?: string;\n loginExpirationMinutes?: number;\n signupRedirectURL?: string;\n signupExpirationMinutes?: number;\n loginTemplateId?: string;\n signupTemplateId?: string;\n createUserAsPending?: boolean;\n /**\n * @param domainHint - An optional hint indicating what domain the email will be sent from.\n * This field is only required if your project uses more than one custom domain to send emails.\n */\n domainHint?: string;\n locale?: string;\n};\n\n/**\n * The OAuth providers we support in our OAuth product.\n * Currently we support `Amazon`, `Apple`, `Bitbucket`, `Discord`, `Facebook`, `Figma`, `Google`, `GitLab`,\n * `LinkedIn`, `Microsoft`, `Salesforce`, `Slack`, `Snapchat`, `TikTok`, `Twitch`, `Twitter`, and `Yahoo`.\n */\n\nexport const OAuthProviders = {\n Google: 'google',\n Microsoft: 'microsoft',\n Apple: 'apple',\n Github: 'github',\n GitLab: 'gitlab',\n Facebook: 'facebook',\n Discord: 'discord',\n Salesforce: 'salesforce',\n Slack: 'slack',\n Amazon: 'amazon',\n Bitbucket: 'bitbucket',\n LinkedIn: 'linkedin',\n Coinbase: 'coinbase',\n Twitch: 'twitch',\n Twitter: 'twitter',\n TikTok: 'tiktok',\n Snapchat: 'snapchat',\n Figma: 'figma',\n Yahoo: 'yahoo',\n} as const;\n\nexport type OAuthProviders = Values<typeof OAuthProviders>;\n\n/**\n * The Crypto Wallets we support in our crypto product.\n * Currently we support all ethereum and solana wallets.\n * We additionally detect and show popular wallets as distinct options.\n * The list of poular wallets include `Binance`, `Coinbase`, `Metamask`, and `Phantom`\n */\n\nexport const Wallets = {\n Phantom: 'Phantom',\n Metamask: 'Metamask',\n Coinbase: 'Coinbase',\n Binance: 'Binance',\n GenericEthereumWallet: 'GenericEthereumWallet',\n GenericSolanaWallet: 'GenericSolanaWallet',\n} as const;\n\nexport type Wallets = Values<typeof Wallets>;\n\n/**\n * Supported behaviors for positioning Google One Tap. The actual behavior\n * depends on browser support and Google's One Tap implementation.\n */\n\nexport const OneTapPositions = {\n /**\n * Display Google One Tap using a native browser prompt if available, or\n * embedded in the existing SDK login form otherwise.\n * @deprecated This option has been renamed to `floatingOrEmbedded`\n */\n embedded: 'embedded',\n /**\n * Display the One Tap prompt using a native browser prompt if available, or\n * in the top right corner otherwise. This is the default option.\n */\n floating: 'floating',\n /**\n * Display the One Tap prompt embedded in the existing SDK login form if a\n * native browser prompt is not available, or not at all otherwise. This\n * option is not recommended for new applications.\n */\n embeddedOnly: 'embeddedOnly',\n /**\n * Display the One Tap prompt using a native browser prompt if available, or\n * embedded in the existing SDK login form otherwise.\n */\n floatingOrEmbedded: 'floatingOrEmbedded',\n /**\n * Attempt to display the One Tap prompt embedded in the existing SDK login\n * form, even if a native browser prompt is supported. This option is not\n * recommended. It disables native browser FedCM support even where it is\n * available, and will stop being honored by Google in the future.\n */\n forceLegacyEmbedded: 'forceLegacyEmbedded',\n} as const;\n\nexport type OneTapPositions = Values<typeof OneTapPositions>;\n\nexport type ProviderOptions = {\n type: OAuthProviders;\n one_tap?: boolean;\n position?: OneTapPositions;\n /**\n * Whether to cancel the One Tap prompt when the user taps outside of it.\n * This is only applicable if one_tap is true.\n */\n cancel_on_tap_outside?: boolean;\n custom_scopes?: string[];\n provider_params?: Record<string, string>;\n};\n\n/**\n * An array of OAuth providers you wish to use. Each Provider is an object with a type key that\n * determines the type of provider. Each Provider accepts an optional custom_scopes array of\n * scopes that Stytch will request for your application in addition to the base set of scopes\n * required for login. The order of the providers in the array determines the order of the\n * rendered buttons.\n */\nexport type ProvidersOptions = ProviderOptions[];\n\n/**\n * The options for oAuth. This is required if you've enabled the `oauth` product\n * in your configuration.\n */\n\nexport type OAuthOptions = {\n loginRedirectURL?: string;\n signupRedirectURL?: string;\n providers: ProvidersOptions;\n};\n\n/**\n * The methods array allows you to specify the authentication methods that you would like to expose\n * to your users. The order of the products that you include here will also be the order in which\n * they appear in the login form, with the first product specified appearing at the top of the login\n * form. We currently support passcodes on `email`, `sms` and `whatsapp`\n */\n\nexport const OTPMethods = {\n SMS: 'sms',\n WhatsApp: 'whatsapp',\n Email: 'email',\n} as const;\n\nexport type OTPMethods = Values<typeof OTPMethods>;\n\n/**\n * The options for One Time Passcodes. This is required if you've enabled the `otp` product\n * in your configuration.\n */\n\nexport type OtpOptions = {\n methods: OTPMethods[];\n expirationMinutes: number;\n loginTemplateId?: string;\n signupTemplateId?: string;\n locale?: string;\n};\n\n/**\n * The options for passwords. This is used if you've enabled the `passwords` product\n * in your configuration.\n */\n\nexport type PasswordOptions = {\n loginRedirectURL?: string;\n loginExpirationMinutes?: number;\n resetPasswordRedirectURL?: string;\n resetPasswordExpirationMinutes?: number;\n resetPasswordTemplateId?: string;\n locale?: string;\n};\n\n/**\n * The options for Session Management. If you are using the UI components,\n * we also create a session for users when they log in.\n */\n\nexport type SessionOptions = {\n sessionDurationMinutes: number;\n};\n\nexport type PasskeyOptions = {\n /**\n * Sets the domain option for both webauthn registration and authentication.\n * @default window.location.hostname\n */\n domain?: string;\n};\n\nexport type StringsOptions = {\n /**\n * Specify custom strings to be used in the prebuilt UI. Consult the message\n * catalog (`messages/en.po` or `messages/b2b/en.po`) for the list of\n * available strings. Each value should be specified using ICU MessageFormat.\n *\n * Strings that are not defined will use the default English value as a\n * fallback.\n */\n strings?: Record<string, string>;\n};\n\n/**\n * The style configuration allows you to customize the look of the SDK. You can specify some of\n * them or none at all.\n */\nexport type StyleConfig = DeepPartial<{\n /**\n * The configuration object for the Stytch UI container.\n */\n container: {\n /**\n * The background color of the SDK container.\n */\n backgroundColor: string;\n /**\n * The border color of the SDK container.\n */\n borderColor: string;\n /**\n * The border radius of the SDK container.\n */\n borderRadius: string;\n /**\n * The width of the SDK container.\n */\n width: string;\n };\n\n /**\n * The configuration object for colors used in the Stytch UI.\n */\n colors: {\n /**\n * Your primary brand color. This will be applied to most of the text in the SDK.\n */\n primary: string;\n /**\n * Your secondary brand color. This will be applied to text disclaimers and other visual elements.\n */\n secondary: string;\n /**\n * Your accent brand color. This will be applied to backgrounds of messages to draw user's attention.\n * This should have strong contrast with the primary text color for accessibility.\n */\n accent: string;\n /**\n * A success color to be used in visual elements.\n */\n success: string;\n /**\n * A warning color to be used in visual elements.\n */\n warning: string;\n /**\n * An error color to be used in visual elements.\n */\n error: string;\n };\n\n /**\n * The configuration object for buttons in the Stytch UI components.\n */\n buttons: {\n /**\n * The configuration object for primary buttons. These buttons are used in primary actions\n * including magic links, one-time passcodes and passwords products.\n */\n primary: {\n /**\n * The background color of the primary button.\n */\n backgroundColor: string;\n /**\n * The text color of the primary button.\n */\n textColor: string;\n /**\n * The border color of the primary button.\n */\n borderColor: string;\n /**\n * The border radius of the primary button.\n */\n borderRadius: string;\n };\n\n /**\n * The configuration object for secondary buttons.\n */\n secondary: {\n /**\n * The background color of the secondary button. These buttons are used in secondary actions\n * including but not limited OAuth and crypto wallets.\n */\n backgroundColor: string;\n /**\n * The text color of the secondary button.\n */\n textColor: string;\n /**\n * The border color of the secondary button.\n */\n borderColor: string;\n /**\n * The border radius of the secondary button.\n */\n borderRadius: string;\n };\n\n /**\n * The configuration object for disabled buttons.\n */\n disabled: {\n /**\n * The background color of the disabled button.\n */\n backgroundColor: string;\n /**\n * The text color of the disabled button.\n */\n textColor: string;\n /**\n * The border color of the disabled button.\n */\n borderColor: string;\n /**\n * The border radius of the disabled button.\n */\n borderRadius: string;\n };\n };\n\n /**\n * The configuration object for text inputs in the Stytch UI components.\n */\n inputs: {\n /**\n * The background color of the text inputs.\n */\n backgroundColor: string;\n /**\n * The text color of the text inputs.\n */\n textColor: string;\n /**\n * The color of the placeholder text in the text inputs.\n */\n placeholderColor: string;\n /**\n * The border color of the text inputs.\n */\n borderColor: string;\n /**\n * The border radius of the text inputs.\n */\n borderRadius: string;\n };\n\n /**\n * The font family that will apply to all text in the SDK.\n */\n fontFamily: string;\n\n /**\n * When this value is false, the title and description text will not show in the SDK.\n */\n hideHeaderText: boolean;\n\n /**\n * The configuration object for your custom logo.\n */\n logo: {\n /**\n * The URL of your custom logo.\n */\n logoImageUrl: string;\n };\n}>;\n\nexport type IDPConsentItem =\n | string\n | {\n /**\n * A one liner description of access being requested\n * @example\n * 'View content and info about you'\n */\n text: string;\n /**\n * A detailed list of access being requested for a line item\n * Each item in the array will be displayed as a separate bullet point\n * @example\n * [\n * 'View content you have added to the platform, including videos and comments',\n * 'View information shared on the platform, including your name, and email'\n * ]\n */\n details?: string[];\n };\n\nexport type IDPConsentSection = {\n /**\n * A top-level header for a section of the consent screen\n * @example\n * '$Application is requesting to edit'\n */\n header: string;\n /**\n * A collection of {@link IDPConsentItem} rows to render with the supplied header\n */\n items: IDPConsentItem[];\n};\n\n/**\n * An IDP Consent Screen Manifest defines the text to be shown to the end user during\n * a consent flow. Manifests can be used to customize grouping of access controls.\n * For example, an application can choose to group access controls by action being performed,\n * by resource being accessed, or by something else entirely.\n * @example\n * // A simple list will be rendered as a list of bullet points\n * [\n * { text: 'Content and info about you' },\n * { text: 'Content and info about your workspace' },\n * { text: 'Create and delete new items in your workspace' },\n * ]\n * @example\n * // Items can have nested details\n * [\n * {\n * text: 'Content and info about you'\n * details: [\n * 'View content you have added to the platform, including videos and comments',\n * 'View information shared on the platform, including your name, and email'\n * ]\n * }\n * ]\n * @example\n * // Items can be grouped with headers\n * [\n * {\n * header: '$Application is requesting to view:',\n * items: [\n * { text: 'Content and info about you' },\n * { text: 'Content and info about your workspace' },\n * ]\n * },\n * {\n * header: '$Application is requesting to edit:',\n * items: [\n * { text: 'Your workspace items' }\n * ]\n * }\n * ]\n */\nexport type IDPConsentScreenManifest = IDPConsentSection[] | IDPConsentItem[];\n\nexport enum StytchEventType {\n MagicLinkLoginOrCreateEvent = 'MAGIC_LINK_LOGIN_OR_CREATE',\n OTPsLoginOrCreateEvent = 'OTP_LOGIN_OR_CREATE',\n OTPsAuthenticate = 'OTP_AUTHENTICATE',\n CryptoWalletAuthenticateStart = 'CRYPTO_WALLET_AUTHENTICATE_START',\n CryptoWalletAuthenticate = 'CRYPTO_WALLET_AUTHENTICATE',\n PasswordCreate = 'PASSWORD_CREATE',\n PasswordAuthenticate = 'PASSWORD_AUTHENTICATE',\n PasswordResetByEmailStart = 'PASSWORD_RESET_BY_EMAIL_START',\n PasswordResetByEmail = 'PASSWORD_RESET_BY_EMAIL',\n PasskeyRegister = 'PASSKEY_REGISTER',\n PasskeyAuthenticate = 'PASSKEY_AUTHENTICATE',\n PasskeySkip = 'PASSKEY_SKIP',\n PasskeyDone = 'PASSKEY_DONE',\n /**\n * The authentication UI flow has completed successfully, including any steps\n * that take place after obtaining a valid session (such as saving recovery\n * codes).\n */\n AuthenticateFlowComplete = 'AUTHENTICATE_FLOW_COMPLETE',\n /**\n * An OAuth Authorization flow has been initiated by a Connected Application.\n * The end-user may be prompted for consent to continue depending on the application\n * that is requesting access.\n */\n OAuthAuthorizeFlowStart = 'OAUTH_AUTHORIZE_FLOW_START',\n /**\n * The end-user has completed the Authorization flow and is about to be redirected\n * back to the Connected Application\n */\n OAuthAuthorizeFlowComplete = 'OAUTH_AUTHORIZE_FLOW_COMPLETE',\n /**\n * The end-user has denied the Authorization flow and is about to be redirected\n * back to the Connected Application with an error message\n */\n OAuthAuthorizeFlowConsentDenied = 'OAUTH_AUTHORIZE_FLOW_CONSENT_DENIED',\n // More Events will go here ...\n // B2B Events\n B2BMagicLinkEmailLoginOrSignup = 'B2B_MAGIC_LINK_EMAIL_LOGIN_OR_SIGNUP',\n B2BMagicLinkAuthenticate = 'B2B_MAGIC_LINK_AUTHENTICATE',\n B2BMagicLinkEmailDiscoverySend = 'B2B_MAGIC_LINK_EMAIL_DISCOVERY_SEND',\n B2BMagicLinkDiscoveryAuthenticate = 'B2B_MAGIC_LINK_DISCOVERY_AUTHENTICATE',\n B2BSSOStart = 'B2B_SSO_START',\n B2BSSOAuthenticate = 'B2B_SSO_AUTHENTICATE',\n B2BSSODiscoverConnections = 'B2B_SSO_DISCOVER_CONNECTIONS',\n B2BOAuthAuthenticate = 'B2B_OAUTH_AUTHENTICATE',\n B2BOAuthDiscoveryAuthenticate = 'B2B_OAUTH_DISCOVERY_AUTHENTICATE',\n B2BDiscoveryOrganizationsCreate = 'B2B_DISCOVERY_ORGANIZATIONS_CREATE',\n B2BDiscoveryIntermediateSessionExchange = 'B2B_DISCOVERY_INTERMEDIATE_SESSION_EXCHANGE',\n B2BPasswordAuthenticate = 'B2B_PASSWORD_AUTHENTICATE',\n B2BPasswordDiscoveryAuthenticate = 'B2B_PASSWORD_DISCOVERY_AUTHENTICATE',\n B2BPasswordResetByEmailStart = 'B2B_PASSWORD_RESET_BY_EMAIL_START',\n B2BPasswordResetByEmail = 'B2B_PASSWORD_RESET_BY_EMAIL',\n B2BPasswordResetBySession = 'B2B_PASSWORD_RESET_BY_SESSION',\n B2BSMSOTPSend = 'B2B_SMS_OTP_SEND',\n B2BSMSOTPAuthenticate = 'B2B_SMS_OTP_AUTHENTICATE',\n B2BTOTPCreate = 'B2B_TOTP_CREATE',\n B2BTOTPAuthenticate = 'B2B_TOTP_AUTHENTICATE',\n B2BRecoveryCodesRecover = 'B2B_RECOVERY_CODES_RECOVER',\n B2BPasswordDiscoveryResetStart = 'B2B_PASSWORD_DISCOVERY_RESET_BY_EMAIL_START',\n B2BDiscoveryPasswordReset = 'B2B_PASSWORD_DISCOVERY_RESET_BY_EMAIL',\n B2BImpersonationAuthenticate = 'B2B_IMPERSONATION_AUTHENTICATE',\n B2BOTPsEmailAuthenticate = 'B2B_OTPS_EMAIL_AUTHENTICATE',\n B2BOTPsEmailDiscoveryAuthenticate = 'B2B_OTPS_EMAIL_DISCOVERY_AUTHENTICATE',\n B2BOTPsEmailDiscoverySend = 'B2B_OTPS_EMAIL_DISCOVERY_SEND',\n B2BOTPsEmailLoginOrSignup = 'B2B_OTPS_EMAIL_LOGIN_OR_SIGNUP',\n B2BOrganizationsGetBySlug = 'B2B_ORGANIZATIONS_GET_BY_SLUG',\n}\n\ntype StytchEventMap<TProjectConfiguration extends StytchProjectConfigurationInput> = {\n [StytchEventType.MagicLinkLoginOrCreateEvent]: MagicLinksLoginOrCreateResponse & { email: string };\n [StytchEventType.OTPsLoginOrCreateEvent]: OTPsLoginOrCreateResponse;\n [StytchEventType.OTPsAuthenticate]: OTPsAuthenticateResponse<TProjectConfiguration>;\n [StytchEventType.CryptoWalletAuthenticateStart]: CryptoWalletAuthenticateStartResponse;\n [StytchEventType.CryptoWalletAuthenticate]: CryptoWalletAuthenticateResponse<TProjectConfiguration>;\n [StytchEventType.PasswordCreate]: PasswordCreateResponse<TProjectConfiguration>;\n [StytchEventType.PasswordAuthenticate]: PasswordAuthenticateResponse<TProjectConfiguration>;\n [StytchEventType.B2BPasswordDiscoveryAuthenticate]: B2BPasswordDiscoveryAuthenticateResponse<TProjectConfiguration>;\n [StytchEventType.PasswordResetByEmailStart]: PasswordResetByEmailStartResponse;\n [StytchEventType.PasswordResetByEmail]: PasswordResetByEmailResponse<TProjectConfiguration>;\n [StytchEventType.AuthenticateFlowComplete]: Record<string, never>;\n [StytchEventType.B2BMagicLinkEmailLoginOrSignup]: B2BMagicLinkLoginOrSignupResponse & { email: string };\n [StytchEventType.B2BMagicLinkAuthenticate]: B2BMagicLinksAuthenticateResponse<TProjectConfiguration>;\n [StytchEventType.B2BMagicLinkEmailDiscoverySend]: B2BMagicLinksEmailDiscoverySendResponse;\n [StytchEventType.B2BMagicLinkDiscoveryAuthenticate]: B2BMagicLinksDiscoveryAuthenticateResponse<TProjectConfiguration>;\n [StytchEventType.B2BSSOStart]: Record<string, never>;\n [StytchEventType.B2BSSOAuthenticate]: SSOAuthenticateResponse<TProjectConfiguration>;\n [StytchEventType.B2BSSODiscoverConnections]: B2BSSODiscoverConnectionsResponse;\n [StytchEventType.B2BDiscoveryOrganizationsCreate]: B2BDiscoveryOrganizationsCreateResponse<TProjectConfiguration>;\n [StytchEventType.B2BPasswordAuthenticate]: B2BPasswordAuthenticateResponse<TProjectConfiguration>;\n [StytchEventType.B2BPasswordResetByEmailStart]: B2BPasswordResetByEmailStartResponse;\n [StytchEventType.B2BPasswordResetByEmail]: B2BPasswordResetByEmailResponse<TProjectConfiguration>;\n [StytchEventType.B2BPasswordResetBySession]: B2BPasswordResetBySessionResponse<TProjectConfiguration>;\n [StytchEventType.B2BDiscoveryIntermediateSessionExchange]: B2BDiscoveryIntermediateSessionsExchangeResponse<TProjectConfiguration>;\n [StytchEventType.B2BOAuthAuthenticate]: B2BOAuthAuthenticateResponse<TProjectConfiguration>;\n [StytchEventType.B2BOAuthDiscoveryAuthenticate]: B2BOAuthDiscoveryAuthenticateResponse<TProjectConfiguration>;\n [StytchEventType.PasskeySkip]: Record<string, never>;\n [StytchEventType.PasskeyDone]: Record<string, never>;\n [StytchEventType.PasskeyRegister]: WebAuthnRegisterResponse<TProjectConfiguration>;\n [StytchEventType.PasskeyAuthenticate]: WebAuthnAuthenticateResponse<TProjectConfiguration>;\n [StytchEventType.B2BSMSOTPSend]: B2BSMSSendResponse;\n [StytchEventType.B2BSMSOTPAuthenticate]: B2BSMSAuthenticateResponse<TProjectConfiguration>;\n [StytchEventType.B2BTOTPCreate]: B2BTOTPCreateResponse;\n [StytchEventType.B2BTOTPAuthenticate]: B2BTOTPAuthenticateResponse<TProjectConfiguration>;\n [StytchEventType.B2BRecoveryCodesRecover]: RecoveryCodeRecoverResponse<TProjectConfiguration>;\n [StytchEventType.B2BDiscoveryPasswordReset]: B2BPasswordDiscoveryResetByEmailResponse<TProjectConfiguration>;\n [StytchEventType.B2BPasswordDiscoveryResetStart]: B2BPasswordDiscoveryResetByEmailStartResponse;\n [StytchEventType.B2BImpersonationAuthenticate]: B2BImpersonationAuthenticateResponse<TProjectConfiguration>;\n [StytchEventType.B2BOTPsEmailDiscoverySend]: B2BDiscoveryOTPEmailSendResponse;\n [StytchEventType.B2BOTPsEmailAuthenticate]: B2BOTPsEmailAuthenticateResponse<TProjectConfiguration>;\n [StytchEventType.B2BOTPsEmailDiscoveryAuthenticate]: B2BDiscoveryOTPEmailAuthenticateResponse<TProjectConfiguration>;\n [StytchEventType.B2BOTPsEmailLoginOrSignup]: B2BOTPsEmailLoginOrSignupResponse;\n [StytchEventType.B2BOrganizationsGetBySlug]: B2BOrganizationsGetBySlugResponse;\n [StytchEventType.OAuthAuthorizeFlowStart]: { client_id: string; redirect_uri: string; scope: string };\n [StytchEventType.OAuthAuthorizeFlowComplete]: Record<string, never>;\n [StytchEventType.OAuthAuthorizeFlowConsentDenied]: Record<string, never>;\n // More Events will go here ...\n};\n\nexport type StytchEvent<\n TProjectConfiguration extends StytchProjectConfigurationInput = Stytch.DefaultProjectConfiguration,\n> = {\n [K in StytchEventType]: { type: K; data: StytchEventMap<TProjectConfiguration>[K] };\n}[keyof StytchEventMap<TProjectConfiguration>];\n\n/**\n * Optional callbacks that are triggered by various events in the SDK. See more details about the callbacks\n * {@link https://stytch.com/docs/sdks/javascript-sdk#resources_ui-callbacks here}.\n */\nexport type Callbacks<\n TProjectConfiguration extends StytchProjectConfigurationInput = Stytch.DefaultProjectConfiguration,\n> = {\n /**\n * A callback function that responds to errors in the SDK. It is useful for debugging during development\n * and error handling in production.\n *\n * @param error - the error from the SDK with an additional error message\n */\n onError?(error: StytchSDKUIError): void;\n /**\n * A callback function that responds to events sent from the SDK. For the full list of events see the\n * {@link StytchEvent StytchEvent}\n *\n * @param event - the event fired by the SDK\n */\n onEvent?(event: StytchEvent<TProjectConfiguration>): void;\n};\n\nexport type OneTapStyleConfig = {\n position?: OneTapPositions;\n};\n\nexport enum RNUIProducts {\n emailMagicLinks,\n oauth,\n otp,\n passwords,\n}\n\nexport type RNUIEmailMagicLinksOptions = {\n loginExpirationMinutes?: number;\n signupExpirationMinutes?: number;\n loginTemplateId?: string;\n signupTemplateId?: string;\n locale?: string;\n};\n\nexport type RNUIOAuthOptions = {\n providers: OAuthProviders[] | ProvidersOptions;\n /** @deprecated Use custom_scopes in ProvidersOptions instead */\n customScopes?: string[];\n /** @deprecated Use provider_params in ProvidersOptions instead */\n providerParams?: Record<string, string>;\n};\n\nexport type RNUIOTPOptions = {\n methods: OTPMethods[];\n expirationMinutes: number;\n loginTemplateId?: string;\n signupTemplateId?: string;\n locale?: string;\n};\n\nexport type RNUIPasswordOptions = {\n loginExpirationMinutes?: number;\n resetPasswordExpirationMinutes?: number;\n resetPasswordTemplateId?: string;\n locale?: string;\n};\n\nexport type RNUIProductConfig = {\n products: RNUIProducts[];\n emailMagicLinksOptions: RNUIEmailMagicLinksOptions;\n oAuthOptions: RNUIOAuthOptions;\n otpOptions: RNUIOTPOptions;\n sessionOptions: SessionOptions;\n passwordOptions: RNUIPasswordOptions;\n};\n","/* 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 { Values } from '../../utils';\n\n/**\n * The authentication methods we support through our UI.\n * Currently we support `emailMagicLinks`, `emailOtp`, `sso`, `passwords`, and `oauth`.\n */\n\nexport const AuthFlowType = {\n Discovery: 'Discovery',\n Organization: 'Organization',\n PasswordReset: 'PasswordReset',\n} as const;\n\nexport type AuthFlowType = Values<typeof AuthFlowType>;\n\nexport const RedirectURLType = {\n ResetPassword: 'reset_password',\n} as const;\n\nexport type RedirectURLType = Values<typeof RedirectURLType>;\n\n/**\n * The OAuth providers we support in our B2B OAuth product.\n */\nexport const B2BOAuthProviders = {\n Google: 'google',\n Microsoft: 'microsoft',\n HubSpot: 'hubspot',\n Slack: 'slack',\n GitHub: 'github',\n} as const;\nexport type B2BOAuthProviders = Values<typeof B2BOAuthProviders>;\n\n/**\n * The options for email magic links. This is used if you've enabled the `emailMagicLinks` product\n * in your configuration.\n */\n\nexport type B2BEmailMagicLinksOptions = {\n loginRedirectURL?: string;\n signupRedirectURL?: string;\n discoveryRedirectURL?: string;\n loginTemplateId?: string;\n signupTemplateId?: string;\n /**\n * @param domainHint - An optional hint indicating what domain the email will be sent from.\n * This field is only required if your project uses more than one custom domain to send emails.\n */\n domainHint?: string;\n locale?: string;\n};\n\n/**\n * The options for SSO. This is used if you've enabled the `sso` product\n * in your configuration.\n */\n\nexport type B2BSSOOptions = {\n loginRedirectURL?: string;\n signupRedirectURL?: string;\n};\n\n/**\n * The options for OAuth. This is required if you've enabled the `oauth` product\n * in your configuration.\n */\n\nexport type B2BOAuthOptions = {\n loginRedirectURL?: string;\n signupRedirectURL?: string;\n discoveryRedirectURL?: string;\n /** @deprecated Use customScopes in B2BOAuthProviderConfig instead */\n customScopes?: string[];\n providers: B2BOAuthProviderConfig[];\n /** @deprecated Use providerParams in B2BOAuthProviderConfig instead */\n providerParams?: Record<string, string>;\n locale?: string;\n};\n\n/**\n * Details about the OAuth provider you wish to use. Each B2BOAuthProviderConfig object can be either a plain\n * B2BOAuthProviders string (e.g. 'google'), or an object with a type key that determines the type of provider. For\n * Google OAuth, you can optionally specify the one_tap property to display Google One Tap.\n */\nexport type B2BOAuthProviderConfig =\n | B2BOAuthProviders\n | {\n type: typeof B2BOAuthProviders.Google;\n customScopes?: string[];\n providerParams?: Record<string, string>;\n\n one_tap: boolean;\n /**\n * Whether to cancel the One Tap prompt when the user taps outside of it.\n * This is only applicable if one_tap is true.\n */\n cancel_on_tap_outside?: boolean;\n }\n | {\n type: Exclude<B2BOAuthProviders, typeof B2BOAuthProviders.Google>;\n customScopes?: string[];\n providerParams?: Record<string, string>;\n };\n\n/**\n * The options for Passwords. This is used if you've enabled the `passwords` product\n * in your configuration.\n */\n\nexport type B2BPasswordOptions = {\n loginRedirectURL?: string;\n resetPasswordRedirectURL?: string;\n resetPasswordExpirationMinutes?: number;\n resetPasswordTemplateId?: string;\n discoveryRedirectURL?: string;\n verifyEmailTemplateId?: string;\n locale?: string;\n};\n\nexport type B2BEmailOTPOptions = {\n loginTemplateId?: string;\n signupTemplateId?: string;\n locale?: string;\n};\n\nexport type B2BSMSOTPOptions = {\n locale?: string;\n};\n\nexport type DirectLoginForSingleMembershipConfig = {\n /**\n * Whether or not direct login for single membership is enabled.\n */\n status: boolean;\n /**\n * If enabled, logs user in directly even if they have pending invite to a different organization\n */\n ignoreInvites: boolean;\n /**\n * If enabled, logs user in directly even if they have organizations they could join via JIT provisioning\n */\n ignoreJitProvisioning: boolean;\n};\n\nexport const B2BMFAProducts = {\n smsOtp: 'smsOtp',\n totp: 'totp',\n} as const;\nexport type B2BMFAProducts = Values<typeof B2BMFAProducts>;\n","type DeepEqualOpts = {\n KEYS_TO_EXCLUDE?: string[];\n};\n\nexport const createDeepEqual = ({ KEYS_TO_EXCLUDE = [] }: DeepEqualOpts = {}) => {\n // If comparing functions, this may need some work. Not sure the\n // best path for this: compare instance (what it currently does),\n // stringify and compare, etc.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const deepEqual = (a: any, b: any): boolean => {\n // Ensures type is the same\n if (typeof a !== typeof b) return false;\n // arrays, null, and objects all have type 'object'\n if (a === null || b === null) return a === b;\n if (typeof a === 'object') {\n if (Object.keys(a).length !== Object.keys(b).length || Object.keys(a).some((k) => !(k in b))) return false;\n return Object.entries(a)\n .filter(([k]) => !KEYS_TO_EXCLUDE.includes(k))\n .every(([k, v]) => deepEqual(v, b[k]));\n }\n // boolean, string, number, undefined\n return a === b;\n };\n\n return deepEqual;\n};\n","import {\n EmailMagicLinksOptions,\n MagicLinksLoginOrCreateOptions,\n PasswordOptions,\n PasswordResetByEmailStartOptions,\n} from '@stytch/core/public';\n\n// You can't actually validate email just from regex. RFC 5322 is pretty complex and there are some *wild*\n// rules that we would never really expect to handle, but are technically valid like:\n// 1. Emails can contain comments -> cursed(comment)@example.com\n// 2. Emails can contain symbols -> cursed{email}@example.com != cursedemail@example.com\n// 3. Dots are allowed, but not consecutively -> ab.cd@example.com is okay, but not ab..cd@example.com\n// 4. ... unless quoted -> \"ab..cd\"@example.com is okay\n// because yes, emails can also contain quotes\n// but then they *can't* contain comments\n// 5. Emails can also consist of spaces and tabs if you use quoting\n//\n// TL;DR: it's really complicated. I once heard a joke that the only real way to validate an email is to check\n// for the presence of an @ symbol and then see if you can send an email without it bouncing. Anyway, the below\n// regex *attempts* to make some limitations on the regex to help end-users while not being overly constrained.\n// We relaxed it as part of https://linear.app/stytch/issue/OBACK-583/email-pattern-bug-in-fe-sdk if you want some\n// historical context here.\nexport const EMAIL_REGEX = /^[a-zA-Z0-9!#$%&'*+/=?^_`{|}~.-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;\n\nexport const convertMagicLinkOptions = (options: EmailMagicLinksOptions = {}): MagicLinksLoginOrCreateOptions => ({\n signup_magic_link_url: options.signupRedirectURL,\n signup_expiration_minutes: options.signupExpirationMinutes,\n login_magic_link_url: options.loginRedirectURL,\n login_expiration_minutes: options.loginExpirationMinutes,\n login_template_id: options.loginTemplateId,\n signup_template_id: options.signupTemplateId,\n locale: options.locale,\n});\n\nexport const convertPasswordResetOptions = (\n email: string,\n options: PasswordOptions = {},\n): PasswordResetByEmailStartOptions => ({\n email: email,\n login_redirect_url: options.loginRedirectURL,\n login_expiration_minutes: options.loginExpirationMinutes,\n reset_password_redirect_url: options.resetPasswordRedirectURL,\n reset_password_expiration_minutes: options.resetPasswordExpirationMinutes,\n reset_password_template_id: options.resetPasswordTemplateId,\n locale: options.locale,\n});\n\nexport const debounce = <F extends (...args: Parameters<F>) => ReturnType<F>>(func: F, waitFor = 500) => {\n let timeout: number | undefined;\n return (...args: Parameters<F>) => {\n clearTimeout(timeout);\n timeout = window.setTimeout(() => func(...args), waitFor);\n };\n};\n\n// Borrowed from Create React App's service worker registration logic\nexport const isLocalhost = () =>\n Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/),\n );\n\nexport type DeepRequired<T> = { [K in keyof T]: DeepRequired<T[K]> } & Required<T>;\n\nexport const hasMultipleCookies = (cookieName: string) => {\n const cookiePairs = document.cookie ? document.cookie.split('; ') : [];\n const matchedCookies = cookiePairs.filter((pair) => {\n const [name] = pair.split('=');\n return cookieName === name;\n });\n\n return matchedCookies.length > 1;\n};\n\nexport const noop = () => {\n // Noop\n};\n","const PERSISTENT_STORAGE_KEY_PREFIX = 'stytch_sdk_state_';\n\n// Declare all keys to use with storage here. These storage are global so re-using the same key will cause collision\n// Do not remove values from here when the caller is removed since these will still be persisted on user's browsers.\nexport type StorageKey =\n // SubscriptionService\n | ''\n | 'seen_domains'\n // Bootstrap\n | 'bootstrap'\n // PKCE manager\n | `PKCE_VERIFIER:${string}`\n // Admin portal\n | `${string}_itemsPerPage`\n | `${string}_filter_${string}`\n // B2B\n | 'reset-email-value'\n | `b2b_last_used_method`\n // B2C\n | `b2c_last_used_oauth`;\n\nexport const getPersistentStorageKey = (publicToken: string, key: StorageKey): string => {\n return `${PERSISTENT_STORAGE_KEY_PREFIX}${publicToken}${key ? `::${key}` : ''}`;\n};\n\nexport interface IStorage {\n getItem(publicKey: string, key: StorageKey): string | null;\n removeItem(publicKey: string, key: StorageKey): void;\n setItem(publicKey: string, key: StorageKey, value: string): void;\n}\n\nexport interface IKeyBoundStorage {\n getItem(key: StorageKey): string | null;\n setItem(key: StorageKey, value: string): void;\n removeItem(key: StorageKey): void;\n}\n\nfunction makeSafeStorage(storage: Storage | undefined): IStorage {\n if (storage == null) {\n return {\n getItem() {\n return null;\n },\n removeItem() {\n // Noop\n },\n setItem() {\n // Noop\n },\n };\n }\n\n return {\n getItem(publicKey: string, key: StorageKey): string | null {\n const persistentStorageKey = getPersistentStorageKey(publicKey, key);\n try {\n return storage.getItem(persistentStorageKey);\n } catch {\n // Swallow error\n return null;\n }\n },\n setItem(publicKey: string, key: StorageKey, value: string): void {\n const persistentStorageKey = getPersistentStorageKey(publicKey, key);\n try {\n if (value) storage.setItem(persistentStorageKey, value);\n } catch {\n // Swallow error\n }\n },\n removeItem(publicKey: string, key: StorageKey): void {\n const persistentStorageKey = getPersistentStorageKey(publicKey, key);\n try {\n storage.removeItem(persistentStorageKey);\n } catch {\n // Swallow error\n }\n },\n };\n}\n\nexport const safeLocalStorage = makeSafeStorage(globalThis.localStorage);\nexport const safeSessionStorage = makeSafeStorage(globalThis.sessionStorage);\n\nexport function getKeyBoundStorage(storage: IStorage, publicToken: string): IKeyBoundStorage {\n return {\n getItem(key: StorageKey) {\n return storage.getItem(publicToken, key);\n },\n setItem(key: StorageKey, value: string): void {\n storage.setItem(publicToken, key, value);\n },\n removeItem(key: StorageKey) {\n storage.removeItem(publicToken, key);\n },\n };\n}\n","import { IBootstrapData } from '../BootstrapDataManager';\nimport { SearchDataManager } from '@stytch/core';\nimport { CaptchaProvider } from '../CaptchaProvider';\nimport { OneTapProvider } from '../oneTap/OneTapProvider';\nimport { ClientsideServicesProvider } from '../ClientsideServicesProvider';\nimport { SubscriptionDataLayer } from '../SubscriptionService';\nimport { B2BState, ConsumerState, StytchProjectConfigurationInput } from '@stytch/core/public';\nimport { INetworkClient } from '@stytch/core';\nimport { B2BOneTapProvider } from '../b2b/oneTap/B2BOneTapProvider';\nimport type { StytchClient } from '../StytchClient';\nimport type { StytchB2BClient } from '../b2b/StytchB2BClient';\n\ntype Internals = {\n // Internal Utilities\n bootstrap: IBootstrapData;\n publicToken: string;\n searchManager: SearchDataManager;\n networkClient: INetworkClient;\n clientsideServices: ClientsideServicesProvider;\n};\n\nexport type B2BInternals = Internals & {\n dataLayer: SubscriptionDataLayer<B2BState>;\n networkClient: INetworkClient;\n oneTap: B2BOneTapProvider;\n};\n\nexport type B2CInternals = Internals & {\n captcha: CaptchaProvider;\n oneTap: OneTapProvider;\n dataLayer: SubscriptionDataLayer<ConsumerState>;\n};\n\nexport const internalSymB2B = Symbol.for('stytch__internal_b2b');\nexport const internalSymB2C = Symbol.for('stytch__internal_b2c');\n\nexport const writeB2BInternals = (obj: StytchB2BClient<StytchProjectConfigurationInput>, internals: B2BInternals) => {\n Object.assign(obj, {\n [internalSymB2B]: internals,\n });\n};\n\nexport const readB2BInternals = (obj: StytchB2BClient<StytchProjectConfigurationInput>): B2BInternals => {\n const casted = obj as { [internalSymB2B]?: B2BInternals };\n if (!casted[internalSymB2B]) {\n throw Error('Internals not found!');\n }\n return casted[internalSymB2B];\n};\n\nexport const writeB2CInternals = (obj: StytchClient<StytchProjectConfigurationInput>, internals: B2CInternals) => {\n Object.assign(obj, {\n [internalSymB2C]: internals,\n });\n};\n\nexport const readB2CInternals = (obj: StytchClient<StytchProjectConfigurationInput>): B2CInternals => {\n const casted = obj as { [internalSymB2C]?: B2CInternals };\n if (!casted[internalSymB2C]) {\n throw Error('Internals not found!');\n }\n return casted[internalSymB2C];\n};\n","// The strings in this file are only for developers\n/* eslint-disable lingui/no-unlocalized-strings */\n\nexport function serverRenderError(name: string) {\n if (process.env.NODE_ENV !== 'production' && typeof window === 'undefined') {\n throw new Error(\n `<${name} /> cannot be rendered on the server. If you are using Next.js, use the @stytch/nextjs package or 'use client' directives`,\n );\n }\n}\n\nexport const noProviderError = (item: string, provider = 'StytchProvider'): string =>\n `${item} can only be used inside <${provider}>.`;\n\nexport const providerMustBeUniqueError = 'You cannot render a <StytchProvider> inside another <StytchProvider>.';\n\nexport const cannotInvokeMethodOnServerError = (path: string) =>\n process.env.NODE_ENV === 'production'\n ? `[Stytch] Invalid server-side function call to ${path}`\n : `[Stytch] Invalid server-side function call to ${path}.\nThe Stytch JavaScript SDK is intended to only be used on the client side.\nMake sure to wrap your API calls in a hook to ensure they are executed on the client.\n\n\\`\\`\\`\nconst myComponent = () => {\n const stytch = useStytch();\n // This will error out on the server.\n stytch.magicLinks.authenticate(...);\n useEffect(() => {\n // This will work well\n stytch.magicLinks.authenticate(...);\n }, []);\n}\n\\`\\`\\`\n\nIf you want to make API calls from server environments, please use the Stytch Node Library\nhttps://www.npmjs.com/package/stytch.`;\n","import { cannotInvokeMethodOnServerError } from '../utils/errors';\n\nconst SSRStubKey = Symbol('__stytch_SSRStubKey');\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const isStytchSSRProxy = (proxy: any): boolean => {\n return !!proxy[SSRStubKey];\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst createProxy = (path: string): any => {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n const noop = () => {};\n return new Proxy(noop, {\n get(target, p) {\n if ((p as symbol) === SSRStubKey) {\n return true;\n }\n return createProxy(path + '.' + String(p));\n },\n apply() {\n throw new Error(cannotInvokeMethodOnServerError(path));\n },\n });\n};\n\n// Exported for testing\nexport const createStytchSSRProxy = () => createProxy('stytch');\n\nexport function ssrSafeClientFactory<Args extends unknown[], T>(ClientConstructor: new (...args: Args) => T) {\n return (...args: Args): T => {\n if (typeof window === 'undefined') {\n return createStytchSSRProxy();\n }\n\n return new ClientConstructor(...args);\n };\n}\n"],"names":["OAuthProviders","Google","Microsoft","Apple","Github","GitLab","Facebook","Discord","Salesforce","Slack","Amazon","Bitbucket","LinkedIn","Coinbase","Twitch","Twitter","TikTok","Snapchat","Figma","Yahoo","Wallets","Phantom","Metamask","Binance","GenericEthereumWallet","GenericSolanaWallet","OneTapPositions","embedded","floating","embeddedOnly","floatingOrEmbedded","forceLegacyEmbedded","OTPMethods","SMS","WhatsApp","Email","StytchEventType","RNUIProducts","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","AuthFlowType","Discovery","Organization","PasswordReset","RedirectURLType","ResetPassword","B2BOAuthProviders","HubSpot","GitHub","B2BMFAProducts","smsOtp","totp","createDeepEqual","KEYS_TO_EXCLUDE","deepEqual","a","b","keys","length","some","k","entries","filter","includes","every","v","EMAIL_REGEX","convertMagicLinkOptions","signup_magic_link_url","signupRedirectURL","signup_expiration_minutes","signupExpirationMinutes","login_magic_link_url","loginRedirectURL","login_expiration_minutes","loginExpirationMinutes","login_template_id","loginTemplateId","signup_template_id","signupTemplateId","locale","convertPasswordResetOptions","email","login_redirect_url","reset_password_redirect_url","resetPasswordRedirectURL","reset_password_expiration_minutes","resetPasswordExpirationMinutes","reset_password_template_id","resetPasswordTemplateId","debounce","func","waitFor","timeout","args","clearTimeout","window","setTimeout","isLocalhost","Boolean","location","hostname","match","hasMultipleCookies","cookieName","cookiePairs","document","cookie","split","matchedCookies","pair","noop","PERSISTENT_STORAGE_KEY_PREFIX","getPersistentStorageKey","publicToken","key","makeSafeStorage","storage","getItem","removeItem","setItem","publicKey","persistentStorageKey","value","safeLocalStorage","globalThis","localStorage","safeSessionStorage","sessionStorage","getKeyBoundStorage","internalSymB2B","Symbol","for","internalSymB2C","writeB2BInternals","obj","internals","assign","readB2BInternals","casted","writeB2CInternals","readB2CInternals","serverRenderError","noProviderError","item","provider","providerMustBeUniqueError","cannotInvokeMethodOnServerError","path","SSRStubKey","isStytchSSRProxy","proxy","createProxy","Proxy","get","target","p","apply","createStytchSSRProxy","ssrSafeClientFactory","ClientConstructor"],"mappings":"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"}