@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 +1 @@
1
- {"version":3,"file":"index.headless.cjs","sources":["../../../core/src/HeadlessClients/HeadlessUserClient.ts","../../../core/src/HeadlessClients/HeadlessSessionClient.ts","../../../core/src/HeadlessClients/HeadlessOTPClient.ts","../../../core/src/HeadlessClients/HeadlessOAuthClient.ts","../../../core/src/HeadlessClients/HeadlessTOTPClient.ts","../../../../node_modules/@github/webauthn-json/dist/esm/webauthn-json.js","../../../core/src/HeadlessClients/HeadlessWebAuthnClient.ts","../../../core/src/HeadlessClients/HeadlessImpersonationClient.ts","../../../core/src/HeadlessClients/HeadlessRBACClient.ts","../../../core/src/HeadlessClients/HeadlessIDPClient.ts","../../../web/src/HeadlessOAuthClient.ts","../../../web/src/StytchClient.ts","../../../web/src/index.headless.ts"],"sourcesContent":["import {\n IHeadlessUserClient,\n User,\n ResponseCommon,\n UpdateResponse,\n UserUpdateOptions,\n UserUpdateResponse,\n UserOnChangeCallback,\n ConsumerState,\n UserInfo,\n StytchProjectConfigurationInput,\n UserGetConnectedAppsResponse,\n UnsubscribeFunction,\n} from '../public';\nimport { INetworkClient } from '../NetworkClient';\nimport { IConsumerSubscriptionService } from '../SubscriptionService';\nimport { omitUser, removeResponseCommon, WithUser } from '../utils';\nimport { validateInDev } from '../utils/dev';\n\nexport class HeadlessUserClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessUserClient\n{\n constructor(\n private _networkClient: INetworkClient,\n private _subscriptionService: IConsumerSubscriptionService<TProjectConfiguration>,\n ) {}\n\n get = async (): Promise<User> => {\n const resp = await this._networkClient.fetchSDK<User & ResponseCommon>({\n url: '/users/me',\n method: 'GET',\n });\n const user = removeResponseCommon(resp);\n this._subscriptionService.updateUser(user);\n return user;\n };\n\n getSync = (): User | null => {\n return this._subscriptionService.getUser();\n };\n\n getInfo = (): UserInfo => ({\n user: this.getSync(),\n fromCache: this._subscriptionService.getFromCache(),\n });\n\n update = async (options: UserUpdateOptions) => {\n validateInDev('stytch.user.update', options, {\n untrusted_metadata: 'optionalObject',\n });\n const resp = await this._networkClient.fetchSDK<WithUser<UserUpdateResponse>>({\n url: '/users/me',\n body: options,\n method: 'PUT',\n });\n const user = removeResponseCommon(resp.__user);\n this._subscriptionService.updateUser(user);\n return omitUser(resp);\n };\n\n deleteEmail = async (emailId: string) => {\n const resp = await this._networkClient.fetchSDK<WithUser<UpdateResponse>>({\n url: `/users/emails/${emailId}`,\n method: 'DELETE',\n });\n const user = removeResponseCommon(resp.__user);\n this._subscriptionService.updateUser(user);\n return omitUser(resp);\n };\n\n deletePhoneNumber = async (phoneId: string) => {\n const resp = await this._networkClient.fetchSDK<WithUser<UpdateResponse>>({\n url: `/users/phone_numbers/${phoneId}`,\n method: 'DELETE',\n });\n const user = removeResponseCommon(resp.__user);\n this._subscriptionService.updateUser(user);\n return omitUser(resp);\n };\n\n deleteTOTP = async (totpId: string) => {\n const resp = await this._networkClient.fetchSDK<WithUser<UpdateResponse>>({\n url: `/users/totps/${totpId}`,\n method: 'DELETE',\n });\n const user = removeResponseCommon(resp.__user);\n this._subscriptionService.updateUser(user);\n return omitUser(resp);\n };\n\n deleteCryptoWallet = async (cryptoWalletId: string) => {\n const resp = await this._networkClient.fetchSDK<WithUser<UpdateResponse>>({\n url: `/users/crypto_wallets/${cryptoWalletId}`,\n method: 'DELETE',\n });\n const user = removeResponseCommon(resp.__user);\n this._subscriptionService.updateUser(user);\n return omitUser(resp);\n };\n\n deleteOAuthRegistration = async (oauthUserRegistrationId: string) => {\n const resp = await this._networkClient.fetchSDK<WithUser<UpdateResponse>>({\n url: `/users/oauth/${oauthUserRegistrationId}`,\n method: 'DELETE',\n });\n const user = removeResponseCommon(resp.__user);\n this._subscriptionService.updateUser(user);\n return omitUser(resp);\n };\n\n deleteWebauthnRegistration = async (webAuthnId: string) => {\n const resp = await this._networkClient.fetchSDK<WithUser<UpdateResponse>>({\n url: `/users/webauthn_registrations/${webAuthnId}`,\n method: 'DELETE',\n });\n const user = removeResponseCommon(resp.__user);\n this._subscriptionService.updateUser(user);\n return omitUser(resp);\n };\n\n deleteBiometricRegistration = async (biometricRegistrationId: string) => {\n const resp = await this._networkClient.fetchSDK<WithUser<UpdateResponse>>({\n url: `/users/biometric_registrations/${biometricRegistrationId}`,\n method: 'DELETE',\n });\n const user = removeResponseCommon(resp.__user);\n this._subscriptionService.updateUser(user);\n return omitUser(resp);\n };\n\n onChange = (callback: UserOnChangeCallback): UnsubscribeFunction => {\n let lastVal = this._subscriptionService.getUser();\n const listener = (state: ConsumerState | null) => {\n if (state?.user !== lastVal) {\n lastVal = state?.user ?? null;\n callback(lastVal);\n }\n };\n return this._subscriptionService.subscribeToState(listener);\n };\n\n getConnectedApps = async () => {\n return await this._networkClient.fetchSDK<UserGetConnectedAppsResponse>({\n url: '/users/connected_apps',\n method: 'GET',\n });\n };\n\n revokedConnectedApp = async (connectedAppId: string) => {\n return await this._networkClient.fetchSDK<ResponseCommon>({\n url: `/users/connected_apps/${connectedAppId}/revoke`,\n method: 'POST',\n });\n };\n}\n","import {\n IHeadlessSessionClient,\n SessionOnChangeCallback,\n SessionRevokeResponse,\n SessionAuthenticateOptions,\n SessionAuthenticateResponse,\n SessionAccessTokenExchangeOptions,\n SessionAccessTokenExchangeResponse,\n SessionTokens,\n UNRECOVERABLE_ERROR_TYPES,\n SessionRevokeOptions,\n ConsumerState,\n SessionTokensUpdate,\n SessionInfo,\n StytchProjectConfigurationInput,\n SessionAttestOptions,\n SessionAttestResponse,\n} from '../public';\nimport { IConsumerSubscriptionService, INetworkClient } from '..';\nimport { ExtractOpaqueTokens, IfOpaqueTokens } from '../typeConfig';\nimport { omitUser, WithUser } from '../utils';\nimport { validateInDev } from '../utils/dev';\n\nexport class HeadlessSessionClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessSessionClient<TProjectConfiguration>\n{\n authenticate: (options?: SessionAuthenticateOptions) => Promise<SessionAuthenticateResponse<TProjectConfiguration>>;\n\n exchangeAccessToken: (\n data: SessionAccessTokenExchangeOptions,\n ) => Promise<SessionAccessTokenExchangeResponse<TProjectConfiguration>>;\n\n attest: (data: SessionAttestOptions) => Promise<SessionAttestResponse<TProjectConfiguration>>;\n\n constructor(\n private _networkClient: INetworkClient,\n private _subscriptionService: IConsumerSubscriptionService<TProjectConfiguration>,\n ) {\n this.authenticate = this._subscriptionService.withUpdateSession(this._authenticate);\n\n this.exchangeAccessToken = this._subscriptionService.withUpdateSession(\n async (data: SessionAccessTokenExchangeOptions) => {\n validateInDev('stytch.session.exchangeAccessToken', data, {\n access_token: 'string',\n session_duration_minutes: 'number',\n });\n const resp = await this._networkClient.fetchSDK<\n WithUser<SessionAccessTokenExchangeResponse<TProjectConfiguration>>\n >({\n url: '/sessions/exchange_access_token',\n body: data,\n method: 'POST',\n });\n\n return omitUser(resp);\n },\n );\n\n this.attest = this._subscriptionService.withUpdateSession(async (data: SessionAttestOptions) => {\n validateInDev('stytch.session.attest', data, {\n profile_id: 'string',\n token: 'string',\n session_duration_minutes: 'optionalNumber',\n });\n\n return this._networkClient.fetchSDK<SessionAttestResponse<TProjectConfiguration>>({\n url: '/sessions/attest',\n body: data,\n method: 'POST',\n });\n });\n }\n\n getSync = () => {\n return this._subscriptionService.getSession();\n };\n\n getInfo = (): SessionInfo => {\n const session = this.getSync();\n const fromCache = this._subscriptionService.getFromCache();\n return { session, fromCache };\n };\n\n onChange = (callback: SessionOnChangeCallback) => {\n let lastVal = this._subscriptionService.getSession();\n const listener = (state: ConsumerState | null) => {\n if (state?.session !== lastVal) {\n lastVal = state?.session ?? null;\n callback(lastVal);\n }\n };\n return this._subscriptionService.subscribeToState(listener);\n };\n\n revoke = async (options?: SessionRevokeOptions) => {\n /**\n * Revoke destroys the local state if the API request is successful\n * or if we return an unrecoverable error (user is unauthenticated)\n * or if the developer passses in a forceClear option.\n * If the API request returns a recoverable error (the user is offline),\n * we do not destroy the local state to let the developer manually add retry\n * logic to call revoke again.\n */\n\n try {\n const resp = await this._networkClient.fetchSDK<SessionRevokeResponse>({\n url: `/sessions/revoke`,\n method: 'POST',\n });\n\n this._subscriptionService.destroyState();\n\n return resp;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: any) {\n if (options?.forceClear) {\n this._subscriptionService.destroyState();\n } else if (UNRECOVERABLE_ERROR_TYPES.includes(error.error_type)) {\n this._subscriptionService.destroyState();\n }\n throw error;\n }\n };\n\n private _authenticate = async (\n options?: SessionAuthenticateOptions,\n ): Promise<SessionAuthenticateResponse<TProjectConfiguration>> => {\n const initialSession = this._subscriptionService.getSession();\n const isSessionStale = () => initialSession?.session_id !== this._subscriptionService.getSession()?.session_id;\n\n try {\n const requestBody = {\n session_duration_minutes: options?.session_duration_minutes,\n };\n const resp = await this._networkClient.fetchSDK<WithUser<SessionAuthenticateResponse<TProjectConfiguration>>>({\n url: '/sessions/authenticate',\n body: requestBody,\n method: 'POST',\n });\n\n if (isSessionStale()) {\n // [SDK-1336] The session was updated out from under us while the\n // request was in flight; discard the response and retry\n return this._authenticate(options);\n }\n\n return omitUser(resp);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: any) {\n if (isSessionStale()) {\n // [SDK-1336] The session was updated out from under us while the\n // request was in flight; discard the response and retry\n return this._authenticate(options);\n }\n\n if (UNRECOVERABLE_ERROR_TYPES.includes(error.error_type)) {\n this._subscriptionService.destroySession();\n }\n throw error;\n }\n };\n\n getTokens() {\n return this._subscriptionService.getTokens() as IfOpaqueTokens<\n ExtractOpaqueTokens<TProjectConfiguration>,\n never,\n SessionTokens | null\n >;\n }\n\n updateSession(tokens: SessionTokensUpdate): void {\n validateInDev('stytch.session.updateSession', tokens, {\n session_token: 'string',\n session_jwt: 'optionalString',\n });\n this._subscriptionService.updateTokens(tokens);\n }\n}\n","import { IConsumerSubscriptionService, IDFPProtectedAuthProvider, INetworkClient } from '..';\nimport {\n IHeadlessOTPsClient,\n OTPAuthenticateOptions,\n OTPCodeEmailOptions,\n OTPCodeOptions,\n OTPCodeSMSOptions,\n OTPsAuthenticateResponse,\n OTPsLoginOrCreateResponse,\n OTPsSendResponse,\n StytchProjectConfigurationInput,\n} from '../public';\nimport { WithUser, omitUser } from '../utils';\nimport { validateInDev } from '../utils/dev';\n\nexport class HeadlessOTPClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessOTPsClient<TProjectConfiguration>\n{\n authenticate: (\n code: string,\n method_id: string,\n options: OTPAuthenticateOptions,\n ) => Promise<OTPsAuthenticateResponse<TProjectConfiguration>>;\n\n constructor(\n private _networkClient: INetworkClient,\n private _subscriptionService: IConsumerSubscriptionService<TProjectConfiguration>,\n private executeRecaptcha: () => Promise<string | undefined> = () => Promise.resolve(undefined),\n private dfpProtectedAuth: IDFPProtectedAuthProvider,\n ) {\n this.authenticate = this._subscriptionService.withUpdateSession(\n async (code: string, method_id: string, options: OTPAuthenticateOptions) => {\n validateInDev(\n 'stytch.otps.authenticate',\n { code, ...options },\n {\n code: 'string',\n session_duration_minutes: 'number',\n },\n );\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n\n const requestBody = {\n token: code,\n method_id,\n dfp_telemetry_id,\n captcha_token,\n ...options,\n };\n const resp = await this._networkClient.retriableFetchSDK<\n WithUser<OTPsAuthenticateResponse<TProjectConfiguration>>\n >({\n url: '/otps/authenticate',\n body: requestBody,\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n\n return omitUser(resp);\n },\n );\n }\n\n sms = {\n loginOrCreate: async (phone_number: string, options: OTPCodeSMSOptions): Promise<OTPsLoginOrCreateResponse> => {\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n const requestBody = { ...options, phone_number, captcha_token, dfp_telemetry_id };\n return this._networkClient.retriableFetchSDK<OTPsLoginOrCreateResponse>({\n url: '/otps/sms/login_or_create',\n body: requestBody,\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n },\n send: async (phone_number: string, options: OTPCodeSMSOptions): Promise<OTPsSendResponse> => {\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n const requestBody = { ...options, phone_number, captcha_token, dfp_telemetry_id };\n\n const isLoggedIn = !!this._subscriptionService.getSession();\n\n const endpoint = isLoggedIn ? '/otps/sms/send/secondary' : '/otps/sms/send/primary';\n\n return this._networkClient.retriableFetchSDK<OTPsSendResponse>({\n url: endpoint,\n body: requestBody,\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n },\n };\n\n whatsapp = {\n loginOrCreate: async (phone_number: string, options: OTPCodeOptions): Promise<OTPsLoginOrCreateResponse> => {\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n const requestBody = { ...options, phone_number, dfp_telemetry_id, captcha_token };\n return this._networkClient.retriableFetchSDK<OTPsLoginOrCreateResponse>({\n url: '/otps/whatsapp/login_or_create',\n body: requestBody,\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n },\n send: async (phone_number: string, options: OTPCodeOptions): Promise<OTPsSendResponse> => {\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n const requestBody = { ...options, phone_number, captcha_token, dfp_telemetry_id };\n\n const isLoggedIn = !!this._subscriptionService.getSession();\n\n const endpoint = isLoggedIn ? '/otps/whatsapp/send/secondary' : '/otps/whatsapp/send/primary';\n\n return this._networkClient.retriableFetchSDK<OTPsSendResponse>({\n url: endpoint,\n body: requestBody,\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n },\n };\n\n email = {\n loginOrCreate: async (email: string, options: OTPCodeEmailOptions): Promise<OTPsLoginOrCreateResponse> => {\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n const requestBody = { ...options, email, captcha_token, dfp_telemetry_id };\n return this._networkClient.retriableFetchSDK<OTPsLoginOrCreateResponse>({\n url: '/otps/email/login_or_create',\n body: requestBody,\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n },\n send: async (email: string, options: OTPCodeEmailOptions): Promise<OTPsSendResponse> => {\n const captcha_token = await this.executeRecaptcha();\n const requestBody = { ...options, email, captcha_token };\n\n const isLoggedIn = !!this._subscriptionService.getSession();\n\n const endpoint = isLoggedIn ? '/otps/email/send/secondary' : '/otps/email/send/primary';\n\n return this._networkClient.fetchSDK<OTPsSendResponse>({\n url: endpoint,\n body: requestBody,\n method: 'POST',\n });\n },\n };\n}\n","import {\n IHeadlessOAuthClient,\n OAuthAttachResponse,\n OAuthAuthenticateOptions,\n OAuthAuthenticateResponse,\n OAuthGetURLOptions,\n OAuthProviders,\n StytchProjectConfigurationInput,\n} from '../public';\nimport { INetworkClient, IPKCEManager, IConsumerSubscriptionService } from '..';\nimport { WithUser, omitUser, logger, isTestPublicToken } from '../utils';\nimport { validateInDev } from '../utils/dev';\n\ntype DynamicConfig = Promise<{\n cnameDomain: null | string;\n pkceRequiredForOAuth: boolean;\n}>;\ntype Config = {\n publicToken: string;\n testAPIURL: string;\n liveAPIURL: string;\n};\n\nexport class HeadlessOAuthClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessOAuthClient<TProjectConfiguration>\n{\n authenticate: (\n token: string,\n options: OAuthAuthenticateOptions,\n ) => Promise<OAuthAuthenticateResponse<TProjectConfiguration>>;\n\n constructor(\n private _networkClient: INetworkClient,\n private _subscriptionService: IConsumerSubscriptionService<TProjectConfiguration>,\n private _pkceManager: IPKCEManager,\n private _dynamicConfig: DynamicConfig,\n private _config: Config,\n ) {\n this.authenticate = this._subscriptionService.withUpdateSession(\n async (token: string, options: OAuthAuthenticateOptions) => {\n validateInDev(\n 'stytch.oauth.authenticate',\n { token, ...options },\n {\n token: 'string',\n session_duration_minutes: 'number',\n },\n );\n\n const keyPair = await this._pkceManager.getPKPair();\n\n if (!keyPair) {\n logger.warn(\n 'No code verifier found in local storage for OAuth flow.\\n' +\n 'Consider using stytch.oauth.$provider.start() to add PKCE to your OAuth flows for added security.\\n' +\n 'See https://stytch.com/docs/oauth#guides_pkce for more information.',\n );\n }\n\n const resp = await this._networkClient.fetchSDK<WithUser<OAuthAuthenticateResponse<TProjectConfiguration>>>({\n url: '/oauth/authenticate',\n method: 'POST',\n body: {\n token,\n code_verifier: keyPair?.code_verifier,\n ...options,\n },\n });\n\n this._pkceManager.clearPKPair();\n\n return omitUser(resp);\n },\n );\n }\n\n google = {\n start: this.startOAuthFlow(OAuthProviders.Google),\n };\n\n apple = {\n start: this.startOAuthFlow(OAuthProviders.Apple),\n };\n\n microsoft = {\n start: this.startOAuthFlow(OAuthProviders.Microsoft),\n };\n\n github = {\n start: this.startOAuthFlow(OAuthProviders.Github),\n };\n\n gitlab = {\n start: this.startOAuthFlow(OAuthProviders.GitLab),\n };\n\n facebook = {\n start: this.startOAuthFlow(OAuthProviders.Facebook),\n };\n\n discord = {\n start: this.startOAuthFlow(OAuthProviders.Discord),\n };\n\n salesforce = {\n start: this.startOAuthFlow(OAuthProviders.Salesforce),\n };\n\n slack = {\n start: this.startOAuthFlow(OAuthProviders.Slack),\n };\n\n amazon = {\n start: this.startOAuthFlow(OAuthProviders.Amazon),\n };\n\n bitbucket = {\n start: this.startOAuthFlow(OAuthProviders.Bitbucket),\n };\n\n linkedin = {\n start: this.startOAuthFlow(OAuthProviders.LinkedIn),\n };\n\n coinbase = {\n start: this.startOAuthFlow(OAuthProviders.Coinbase),\n };\n\n twitch = {\n start: this.startOAuthFlow(OAuthProviders.Twitch),\n };\n\n twitter = {\n start: this.startOAuthFlow(OAuthProviders.Twitter),\n };\n\n tiktok = {\n start: this.startOAuthFlow(OAuthProviders.TikTok),\n };\n\n snapchat = {\n start: this.startOAuthFlow(OAuthProviders.Snapchat),\n };\n\n figma = {\n start: this.startOAuthFlow(OAuthProviders.Figma),\n };\n\n yahoo = {\n start: this.startOAuthFlow(OAuthProviders.Yahoo),\n };\n\n async attach(provider: string): Promise<OAuthAttachResponse> {\n validateInDev('stytch.oauth.attach', { provider }, { provider: 'string' });\n return await this._networkClient.fetchSDK<OAuthAttachResponse>({\n url: '/oauth/attach',\n method: 'POST',\n body: { provider },\n });\n }\n\n private async getBaseApiUrl() {\n const { cnameDomain } = await this._dynamicConfig;\n if (cnameDomain) {\n // The API returns cname domains without a protocol - assume HTTPS\n return `https://${cnameDomain}`;\n }\n // Our TestAPIURL and LiveAPIURL should have the HTTPS protocol already attached\n // Don't add it twice!\n if (isTestPublicToken(this._config.publicToken)) {\n return this._config.testAPIURL;\n }\n return this._config.liveAPIURL;\n }\n\n private startOAuthFlow(providerType: OAuthProviders) {\n return async ({\n login_redirect_url,\n signup_redirect_url,\n custom_scopes,\n provider_params,\n oauth_attach_token,\n }: OAuthGetURLOptions = {}): Promise<void> => {\n const { cnameDomain, pkceRequiredForOAuth } = await this._dynamicConfig;\n const baseURL = await this.getBaseApiUrl();\n\n this._networkClient.logEvent({\n name: 'start_oauth_flow',\n details: {\n provider_type: providerType,\n custom_scopes,\n cname_domain: cnameDomain,\n pkce: pkceRequiredForOAuth,\n provider_params,\n },\n });\n\n const oauthUrl = new URL(`${baseURL}/v1/public/oauth/${providerType}/start`);\n oauthUrl.searchParams.set('public_token', this._config.publicToken);\n\n if (pkceRequiredForOAuth) {\n const keyPair = await this._pkceManager.startPKCETransaction();\n oauthUrl.searchParams.set('code_challenge', keyPair.code_challenge);\n } else {\n this._pkceManager.clearPKPair();\n }\n\n if (custom_scopes) {\n validateInDev(\n 'startOAuthFlow',\n { custom_scopes },\n {\n custom_scopes: 'stringArray',\n },\n );\n oauthUrl.searchParams.set('custom_scopes', custom_scopes.join(' '));\n }\n if (provider_params) {\n validateInDev(\n 'startOAuthFlow',\n { provider_params },\n {\n provider_params: 'optionalObject',\n },\n );\n for (const key in provider_params) {\n oauthUrl.searchParams.set('provider_' + key, provider_params[key]);\n }\n }\n if (login_redirect_url) oauthUrl.searchParams.set('login_redirect_url', login_redirect_url);\n if (signup_redirect_url) oauthUrl.searchParams.set('signup_redirect_url', signup_redirect_url);\n if (oauth_attach_token) oauthUrl.searchParams.set('oauth_attach_token', oauth_attach_token);\n\n this.navigate(oauthUrl);\n };\n }\n\n // Public so it can be mocked in tests\n navigate(url: URL) {\n window.location.href = url.toString();\n }\n}\n","import {\n IHeadlessTOTPClient,\n TOTPAuthenticateOptions,\n TOTPAuthenticateResponse,\n TOTPCreateOptions,\n TOTPCreateResponse,\n TOTPRecoverOptions,\n TOTPRecoverResponse,\n TOTPRecoveryCodesResponse,\n StytchProjectConfigurationInput,\n} from '../public';\n\nimport { IConsumerSubscriptionService, IDFPProtectedAuthProvider, INetworkClient } from '..';\nimport { omitUser, WithUser } from '../utils';\nimport { validateInDev } from '../utils/dev';\n\nexport class HeadlessTOTPClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessTOTPClient<TProjectConfiguration>\n{\n authenticate: (options: TOTPAuthenticateOptions) => Promise<TOTPAuthenticateResponse<TProjectConfiguration>>;\n\n recover: (options: TOTPRecoverOptions) => Promise<TOTPRecoverResponse<TProjectConfiguration>>;\n\n constructor(\n private _networkClient: INetworkClient,\n private _subscriptionService: IConsumerSubscriptionService<TProjectConfiguration>,\n private dfpProtectedAuth: IDFPProtectedAuthProvider,\n ) {\n this.authenticate = this._subscriptionService.withUpdateSession(\n async (options: TOTPAuthenticateOptions): Promise<TOTPAuthenticateResponse<TProjectConfiguration>> => {\n validateInDev('stytch.totps.authenticate', options, {\n session_duration_minutes: 'number',\n totp_code: 'string',\n });\n\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n\n const resp = await this._networkClient.retriableFetchSDK<\n WithUser<TOTPAuthenticateResponse<TProjectConfiguration>>\n >({\n url: '/totps/authenticate',\n method: 'POST',\n body: {\n session_duration_minutes: options.session_duration_minutes,\n totp_code: options.totp_code,\n captcha_token,\n dfp_telemetry_id,\n },\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n\n return omitUser(resp);\n },\n );\n\n this.recover = this._subscriptionService.withUpdateSession(\n async (options: TOTPRecoverOptions): Promise<TOTPRecoverResponse<TProjectConfiguration>> => {\n validateInDev('stytch.totps.recover', options, {\n session_duration_minutes: 'number',\n recovery_code: 'string',\n });\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n\n const resp = await this._networkClient.retriableFetchSDK<WithUser<TOTPRecoverResponse<TProjectConfiguration>>>({\n url: '/totps/recover',\n method: 'POST',\n body: {\n session_duration_minutes: options.session_duration_minutes,\n recovery_code: options.recovery_code,\n captcha_token,\n dfp_telemetry_id,\n },\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n\n return omitUser(resp);\n },\n );\n }\n\n async create(options: TOTPCreateOptions): Promise<TOTPCreateResponse> {\n validateInDev('stytch.totps.create', options, {\n expiration_minutes: 'number',\n });\n\n const resp = await this._networkClient.fetchSDK<WithUser<TOTPCreateResponse>>({\n url: '/totps',\n method: 'POST',\n body: {\n expiration_minutes: options.expiration_minutes,\n },\n });\n\n this._subscriptionService.updateUser(resp.__user);\n\n return omitUser(resp);\n }\n\n async recoveryCodes(): Promise<TOTPRecoveryCodesResponse> {\n return this._networkClient.fetchSDK<TOTPRecoveryCodesResponse>({\n url: '/totps/recovery_codes',\n method: 'POST',\n });\n }\n}\n","// src/webauthn-json/base64url.ts\nfunction base64urlToBuffer(baseurl64String) {\n const padding = \"==\".slice(0, (4 - baseurl64String.length % 4) % 4);\n const base64String = baseurl64String.replace(/-/g, \"+\").replace(/_/g, \"/\") + padding;\n const str = atob(base64String);\n const buffer = new ArrayBuffer(str.length);\n const byteView = new Uint8Array(buffer);\n for (let i = 0; i < str.length; i++) {\n byteView[i] = str.charCodeAt(i);\n }\n return buffer;\n}\nfunction bufferToBase64url(buffer) {\n const byteView = new Uint8Array(buffer);\n let str = \"\";\n for (const charCode of byteView) {\n str += String.fromCharCode(charCode);\n }\n const base64String = btoa(str);\n const base64urlString = base64String.replace(/\\+/g, \"-\").replace(\n /\\//g,\n \"_\"\n ).replace(/=/g, \"\");\n return base64urlString;\n}\n\n// src/webauthn-json/convert.ts\nvar copyValue = \"copy\";\nvar convertValue = \"convert\";\nfunction convert(conversionFn, schema2, input) {\n if (schema2 === copyValue) {\n return input;\n }\n if (schema2 === convertValue) {\n return conversionFn(input);\n }\n if (schema2 instanceof Array) {\n return input.map((v) => convert(conversionFn, schema2[0], v));\n }\n if (schema2 instanceof Object) {\n const output = {};\n for (const [key, schemaField] of Object.entries(schema2)) {\n if (schemaField.derive) {\n const v = schemaField.derive(input);\n if (v !== void 0) {\n input[key] = v;\n }\n }\n if (!(key in input)) {\n if (schemaField.required) {\n throw new Error(`Missing key: ${key}`);\n }\n continue;\n }\n if (input[key] == null) {\n output[key] = null;\n continue;\n }\n output[key] = convert(\n conversionFn,\n schemaField.schema,\n input[key]\n );\n }\n return output;\n }\n}\nfunction derived(schema2, derive) {\n return {\n required: true,\n schema: schema2,\n derive\n };\n}\nfunction required(schema2) {\n return {\n required: true,\n schema: schema2\n };\n}\nfunction optional(schema2) {\n return {\n required: false,\n schema: schema2\n };\n}\n\n// src/webauthn-json/basic/schema.ts\nvar publicKeyCredentialDescriptorSchema = {\n type: required(copyValue),\n id: required(convertValue),\n transports: optional(copyValue)\n};\nvar simplifiedExtensionsSchema = {\n appid: optional(copyValue),\n appidExclude: optional(copyValue),\n credProps: optional(copyValue)\n};\nvar simplifiedClientExtensionResultsSchema = {\n appid: optional(copyValue),\n appidExclude: optional(copyValue),\n credProps: optional(copyValue)\n};\nvar credentialCreationOptions = {\n publicKey: required({\n rp: required(copyValue),\n user: required({\n id: required(convertValue),\n name: required(copyValue),\n displayName: required(copyValue)\n }),\n challenge: required(convertValue),\n pubKeyCredParams: required(copyValue),\n timeout: optional(copyValue),\n excludeCredentials: optional([publicKeyCredentialDescriptorSchema]),\n authenticatorSelection: optional(copyValue),\n attestation: optional(copyValue),\n extensions: optional(simplifiedExtensionsSchema)\n }),\n signal: optional(copyValue)\n};\nvar publicKeyCredentialWithAttestation = {\n type: required(copyValue),\n id: required(copyValue),\n rawId: required(convertValue),\n authenticatorAttachment: optional(copyValue),\n response: required({\n clientDataJSON: required(convertValue),\n attestationObject: required(convertValue),\n transports: derived(\n copyValue,\n (response) => {\n var _a;\n return ((_a = response.getTransports) == null ? void 0 : _a.call(response)) || [];\n }\n )\n }),\n clientExtensionResults: derived(\n simplifiedClientExtensionResultsSchema,\n (pkc) => pkc.getClientExtensionResults()\n )\n};\nvar credentialRequestOptions = {\n mediation: optional(copyValue),\n publicKey: required({\n challenge: required(convertValue),\n timeout: optional(copyValue),\n rpId: optional(copyValue),\n allowCredentials: optional([publicKeyCredentialDescriptorSchema]),\n userVerification: optional(copyValue),\n extensions: optional(simplifiedExtensionsSchema)\n }),\n signal: optional(copyValue)\n};\nvar publicKeyCredentialWithAssertion = {\n type: required(copyValue),\n id: required(copyValue),\n rawId: required(convertValue),\n authenticatorAttachment: optional(copyValue),\n response: required({\n clientDataJSON: required(convertValue),\n authenticatorData: required(convertValue),\n signature: required(convertValue),\n userHandle: required(convertValue)\n }),\n clientExtensionResults: derived(\n simplifiedClientExtensionResultsSchema,\n (pkc) => pkc.getClientExtensionResults()\n )\n};\nvar schema = {\n credentialCreationOptions,\n publicKeyCredentialWithAttestation,\n credentialRequestOptions,\n publicKeyCredentialWithAssertion\n};\n\n// src/webauthn-json/basic/api.ts\nfunction createRequestFromJSON(requestJSON) {\n return convert(base64urlToBuffer, credentialCreationOptions, requestJSON);\n}\nfunction createResponseToJSON(credential) {\n return convert(\n bufferToBase64url,\n publicKeyCredentialWithAttestation,\n credential\n );\n}\nasync function create(requestJSON) {\n const credential = await navigator.credentials.create(\n createRequestFromJSON(requestJSON)\n );\n return createResponseToJSON(credential);\n}\nfunction getRequestFromJSON(requestJSON) {\n return convert(base64urlToBuffer, credentialRequestOptions, requestJSON);\n}\nfunction getResponseToJSON(credential) {\n return convert(\n bufferToBase64url,\n publicKeyCredentialWithAssertion,\n credential\n );\n}\nasync function get(requestJSON) {\n const credential = await navigator.credentials.get(\n getRequestFromJSON(requestJSON)\n );\n return getResponseToJSON(credential);\n}\n\n// src/webauthn-json/basic/supported.ts\nfunction supported() {\n return !!(navigator.credentials && navigator.credentials.create && navigator.credentials.get && window.PublicKeyCredential);\n}\nexport {\n create,\n get,\n schema,\n supported\n};\n//# sourceMappingURL=webauthn-json.js.map\n","import * as webauthnJson from '@github/webauthn-json';\nimport {\n IHeadlessWebAuthnClient,\n StytchProjectConfigurationInput,\n WebAuthnAuthenticateResponse,\n WebAuthnAuthenticateStartOptions,\n WebAuthnAuthenticateStartResponse,\n WebAuthnRegisterResponse,\n WebAuthnRegisterStartOptions,\n WebAuthnRegisterStartResponse,\n WebAuthnUpdateOptions,\n WebAuthnUpdateResponse,\n} from '../public';\n\nimport { IConsumerSubscriptionService, IDFPProtectedAuthProvider, INetworkClient } from '..';\nimport { logger, omitUser, WithUser } from '../utils';\nimport { validateInDev } from '../utils/dev';\n\nexport class HeadlessWebAuthnClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessWebAuthnClient<TProjectConfiguration>\n{\n register: (options: WebAuthnRegisterStartOptions) => Promise<WebAuthnRegisterResponse<TProjectConfiguration>>;\n\n authenticate: (\n options: WebAuthnAuthenticateStartOptions,\n ) => Promise<WebAuthnAuthenticateResponse<TProjectConfiguration> | null>;\n\n constructor(\n public _networkClient: INetworkClient,\n private _subscriptionService: IConsumerSubscriptionService<TProjectConfiguration>,\n private dfpProtectedAuth: IDFPProtectedAuthProvider,\n ) {\n this.register = this._subscriptionService.withUpdateSession(\n async (options?: WebAuthnRegisterStartOptions): Promise<WebAuthnRegisterResponse<TProjectConfiguration>> => {\n if (options) {\n validateInDev('stytch.webauthn.register', options, {\n domain: 'optionalString',\n authenticator_type: 'optionalString',\n is_passkey: 'optionalBoolean',\n session_duration_minutes: 'number',\n override_id: 'optionalString',\n override_name: 'optionalString',\n override_display_name: 'optionalString',\n use_base64_url_encoding: 'optionalBoolean',\n });\n }\n\n const startResp = await this._networkClient.fetchSDK<WebAuthnRegisterStartResponse>({\n url: '/webauthn/register/start',\n method: 'POST',\n body: {\n domain: options?.domain ?? window.location.hostname,\n authenticator_type: options?.authenticator_type ?? undefined,\n return_passkey_credential_options: options?.is_passkey,\n override_id: options?.override_id,\n override_name: options?.override_name,\n override_display_name: options?.override_display_name,\n user_agent: navigator.userAgent,\n use_base64_url_encoding: options?.use_base64_url_encoding,\n },\n });\n\n const publicKeyCredentialCreationOptions = startResp.public_key_credential_creation_options;\n const publicKey = JSON.parse(publicKeyCredentialCreationOptions);\n\n const credential = await webauthnJson.create({\n publicKey: publicKey,\n });\n\n const resp = await this._networkClient.fetchSDK<WithUser<WebAuthnRegisterResponse<TProjectConfiguration>>>({\n url: '/webauthn/register',\n method: 'POST',\n body: {\n public_key_credential: JSON.stringify(credential),\n session_duration_minutes: options?.session_duration_minutes,\n },\n });\n\n return omitUser(resp);\n },\n );\n\n this.authenticate = this._subscriptionService.withUpdateSession(\n async (\n options: WebAuthnAuthenticateStartOptions,\n ): Promise<WebAuthnAuthenticateResponse<TProjectConfiguration> | null> => {\n validateInDev('stytch.webauthn.authenticate', options, {\n domain: 'optionalString',\n session_duration_minutes: 'number',\n is_passkey: 'optionalBoolean',\n signal: 'optionalObject',\n conditional_mediation: 'optionalBoolean',\n disable_input_check: 'optionalBoolean',\n });\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n\n if (options.conditional_mediation) {\n if (!(await this.browserSupportsAutofill())) {\n logger.error('Browser does not support WebAuthn autofill');\n return null;\n }\n\n if (!options.disable_input_check && !this.checkEligibleInputs()) {\n return null;\n }\n }\n\n const isLoggedIn = !!this._subscriptionService.getSession();\n\n const endpoint = isLoggedIn ? '/webauthn/authenticate/start/secondary' : '/webauthn/authenticate/start/primary';\n\n const startResp = await this._networkClient.fetchSDK<WebAuthnAuthenticateStartResponse>({\n url: endpoint,\n method: 'POST',\n body: {\n domain: options.domain ?? window.location.hostname,\n return_passkey_credential_options: options?.is_passkey,\n },\n });\n\n const publicKeyCredentialRequestOptions = startResp.public_key_credential_request_options;\n const abortController = new AbortController();\n const credReqOptions = {\n publicKey: JSON.parse(publicKeyCredentialRequestOptions),\n signal: options.signal ?? abortController.signal,\n };\n const conditionalMediationCredReqOption = {\n ...credReqOptions,\n mediation: 'conditional' as CredentialMediationRequirement,\n };\n const credential = await webauthnJson.get(\n options.conditional_mediation ? conditionalMediationCredReqOption : credReqOptions,\n );\n\n const authenticationData = await this._networkClient.retriableFetchSDK<\n WithUser<WebAuthnAuthenticateResponse<TProjectConfiguration>>\n >({\n url: '/webauthn/authenticate',\n method: 'POST',\n body: {\n public_key_credential: JSON.stringify(credential),\n session_duration_minutes: options.session_duration_minutes,\n dfp_telemetry_id,\n captcha_token,\n },\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n\n return omitUser(authenticationData);\n },\n );\n }\n\n async update(options: WebAuthnUpdateOptions): Promise<WebAuthnUpdateResponse> {\n validateInDev('stytch.webauthn.update', options, {\n webauthn_registration_id: 'string',\n name: 'string',\n });\n\n const url = '/webauthn/update/' + options.webauthn_registration_id;\n return await this._networkClient.fetchSDK<WebAuthnUpdateResponse>({\n url: url,\n method: 'PUT',\n body: {\n name: options.name,\n },\n });\n }\n\n async browserSupportsAutofill(): Promise<boolean> {\n return (await window.PublicKeyCredential?.isConditionalMediationAvailable?.()) ?? false;\n }\n\n private checkEligibleInputs = (): boolean => {\n // Check for an <input> with \"webauthn\" in its `autocomplete` attribute\n const eligibleInputs = document.querySelectorAll(\"input[autocomplete*='webauthn']\");\n // WebAuthn autofill requires at least one valid input\n if (eligibleInputs.length < 1) {\n logger.error('No <input> with `\"webauthn\"` in its `autocomplete` attribute was detected');\n return false;\n }\n return true;\n };\n}\n","import { IDFPProtectedAuthProvider } from '../DFPProtectedAuthProvider';\nimport { INetworkClient } from '../NetworkClient';\nimport {\n ImpersonationAuthenticateOptions,\n ImpersonationAuthenticateResponse,\n IHeadlessImpersonationClient,\n} from '../public/impersonation';\nimport { StytchProjectConfigurationInput } from '../public/typeConfig';\nimport { IConsumerSubscriptionService } from '../SubscriptionService';\nimport { validateInDev } from '../utils/dev';\n\nexport class HeadlessImpersonationClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessImpersonationClient<TProjectConfiguration>\n{\n authenticate: (\n data: ImpersonationAuthenticateOptions,\n ) => Promise<ImpersonationAuthenticateResponse<TProjectConfiguration>>;\n\n constructor(\n private _networkClient: INetworkClient,\n private _subscriptionService: IConsumerSubscriptionService<TProjectConfiguration>,\n private dfpProtectedAuth: IDFPProtectedAuthProvider,\n ) {\n this.authenticate = this._subscriptionService.withUpdateSession(async (data: ImpersonationAuthenticateOptions) => {\n validateInDev('stytch.impersonation.authenticate', data, {\n impersonation_token: 'string',\n });\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n return this._networkClient.retriableFetchSDK<ImpersonationAuthenticateResponse<TProjectConfiguration>>({\n url: '/impersonation/authenticate',\n body: {\n ...data,\n dfp_telemetry_id,\n captcha_token,\n },\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n });\n }\n}\n","import { IConsumerSubscriptionService } from '../SubscriptionService';\nimport { logger } from '../utils';\nimport { RBACPolicy, RBACPolicyRaw } from '../rbac';\nimport { IHeadlessRBACClient, ConsumerPermissionsMap } from '../public/rbac';\nimport { StytchProjectConfigurationInput } from '../public/typeConfig';\n\ntype CachedConfig = {\n rbacPolicy: RBACPolicyRaw | null;\n};\n\ntype DynamicConfig = Promise<CachedConfig>;\n\nexport class HeadlessRBACClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessRBACClient\n{\n private cachedPolicy: RBACPolicy | null;\n private policyPromise: Promise<RBACPolicy>;\n constructor(\n cachedConfig: CachedConfig,\n dynamicConfig: DynamicConfig,\n private _subscriptionService: IConsumerSubscriptionService<TProjectConfiguration>,\n ) {\n this.cachedPolicy = cachedConfig.rbacPolicy ? RBACPolicy.fromJSON(cachedConfig.rbacPolicy) : null;\n this.policyPromise = dynamicConfig.then((data) => {\n if (!data.rbacPolicy) {\n logger.error('Unable to retrieve RBAC policy from servers. Assuming caller has no permissions.');\n return new RBACPolicy([], []);\n }\n // Update the existing policy too, so isAuthorizedSync will be up-to-date\n this.cachedPolicy = RBACPolicy.fromJSON(data.rbacPolicy);\n return this.cachedPolicy;\n });\n }\n\n allPermissions<Permissions extends Record<string, string>>() {\n return this.policyPromise.then(\n (policy) => policy.allPermissionsForCaller(this.roleIds()) as ConsumerPermissionsMap<Permissions>,\n );\n }\n\n isAuthorizedSync: IHeadlessRBACClient['isAuthorizedSync'] = (resourceId, action) => {\n return !!this.cachedPolicy?.callerIsAuthorized(this.roleIds(), resourceId as string, action as unknown as string);\n };\n\n isAuthorized: IHeadlessRBACClient['isAuthorized'] = (resourceId, action) => {\n return this.policyPromise.then((policy) =>\n policy.callerIsAuthorized(this.roleIds(), resourceId as string, action as unknown as string),\n );\n };\n\n private roleIds() {\n const user = this._subscriptionService.getUser();\n\n if (!user) {\n return [];\n }\n\n // Although user.roles is guaranteed to exist for fresh data, there is a chance\n // that the user stored in localstorage clientside comes from before roles were added to\n // the API response - in which case user.roles will be undefined and this will crash\n // TODO: [AUTH-2294] We can safely remove this ~3mos after RBAC is released\n return user.roles ?? [];\n }\n}\n","import { INetworkClient } from '../NetworkClient';\nimport {\n IHeadlessIDPClient,\n OAuthAuthorizeStartOptions,\n OAuthAuthorizeStartResponse,\n OAuthAuthorizeSubmitOptions,\n OAuthAuthorizeSubmitResponse,\n OAuthLogoutStartOptions,\n OAuthLogoutStartResponse,\n} from '../public/idp';\n\nexport class HeadlessIDPClient implements IHeadlessIDPClient {\n constructor(private _networkClient: INetworkClient) {}\n\n oauthAuthorizeStart = async (data: OAuthAuthorizeStartOptions): Promise<OAuthAuthorizeStartResponse> =>\n this._networkClient.fetchSDK<OAuthAuthorizeStartResponse>({\n url: '/idp/oauth/authorize/start',\n method: 'POST',\n body: data,\n });\n\n oauthAuthorizeSubmit = async (data: OAuthAuthorizeSubmitOptions): Promise<OAuthAuthorizeSubmitResponse> =>\n this._networkClient.fetchSDK<OAuthAuthorizeSubmitResponse>({\n url: '/idp/oauth/authorize/submit',\n method: 'POST',\n body: data,\n });\n\n oauthLogoutStart = async (data: OAuthLogoutStartOptions): Promise<OAuthLogoutStartResponse> =>\n this._networkClient.fetchSDK<OAuthLogoutStartResponse>({\n url: `/oauth/logout/start`,\n method: 'POST',\n body: data,\n });\n}\n","import { IHeadlessOAuthClient, OneTapPositions, StytchProjectConfigurationInput } from '@stytch/core/public';\nimport {\n HeadlessOAuthClient as BaseHeadlessOAuthClient,\n INetworkClient,\n IPKCEManager,\n IConsumerSubscriptionService,\n} from '@stytch/core';\nimport { OneTapProvider } from './oneTap/OneTapProvider';\nimport { OneTapRenderResult } from './oneTap/GoogleOneTapClient';\n\nexport type GoogleOneTapOAuthOptions = {\n /**\n * The URL that Stytch redirects to after the OAuth flow is completed for a user that already exists.\n * This URL should be an endpoint in the backend server that verifies the request by querying Stytch's /oauth/authenticate endpoint and finishes the login.\n * The URL should be configured as a Login URL in the Stytch Dashboard's Redirect URL page.\n * If the field is not specified, the default in the Dashboard is used.\n */\n login_redirect_url?: string;\n /**\n * The URL that Stytch redirects to after the OAuth flow is completed for a user that does not yet exist.\n * This URL should be an endpoint in the backend server that verifies the request by querying Stytch's /oauth/authenticate endpoint and finishes the login.\n * The URL should be configured as a Sign Up URL in the Stytch Dashboard's Redirect URL page.\n * If the field is not specified, the default in the Dashboard is used.\n */\n signup_redirect_url?: string;\n /**\n * An optional callback function that runs when a user explicitly cancels out of the one tap flow.\n * This callback may not be invoked immediately or at all depending on the behavior of the browser and Google's SDK.\n */\n onOneTapCancelled?: () => void;\n /**\n * Controls whether clicking outside the One Tap prompt dismisses the prompt.\n * Defaults to true.\n */\n cancel_on_tap_outside?: boolean;\n};\n\ninterface IGoogleOneTapOAuthProvider {\n /**\n * Start an OAuth flow by showing the Google one tap prompt in the top right corner of the user's browser.\n * You can configure this to be started by a user action (i.e Button click) or on load/render.\n * @example\n * const showGoogleOneTap = useCallback(()=> {\n * stytch.oauth.googleOneTap.start({\n * login_redirect_url: 'https://example.com/oauth/callback',\n * signup_redirect_url: 'https://example.com/oauth/callback',\n * })\n * }, [stytch]);\n * return (\n * <Button onClick={showGoogleOneTap}> Show Google one tap </Button>\n * );\n *\n * @param options - An {@link GoogleOneTapOAuthOptions} object\n *\n * @returns A {@link OneTapRenderResult} object. The result object includes if the one-tap prompt\n * was rendered, and a reason if it couldn't be rendered.\n *\n * @throws An Error if the one tap client cannot be created.\n */\n start(options?: GoogleOneTapOAuthOptions): Promise<OneTapRenderResult>;\n}\n\ntype DynamicConfig = Promise<{\n cnameDomain: null | string;\n pkceRequiredForOAuth: boolean;\n}>;\ntype Config = {\n publicToken: string;\n testAPIURL: string;\n liveAPIURL: string;\n};\n\nexport interface IWebOAuthClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n extends IHeadlessOAuthClient<TProjectConfiguration> {\n googleOneTap: IGoogleOneTapOAuthProvider;\n}\n\nexport class HeadlessOAuthClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n extends BaseHeadlessOAuthClient<TProjectConfiguration>\n implements IWebOAuthClient<TProjectConfiguration>\n{\n constructor(\n _networkClient: INetworkClient,\n _subscriptionService: IConsumerSubscriptionService<TProjectConfiguration>,\n _pkceManager: IPKCEManager,\n _dynamicConfig: DynamicConfig,\n _config: Config,\n private _oneTap: OneTapProvider,\n ) {\n super(_networkClient, _subscriptionService, _pkceManager, _dynamicConfig, _config);\n }\n\n private startOneTap = async (options: GoogleOneTapOAuthOptions): Promise<OneTapRenderResult> => {\n const clientResult = await this._oneTap.createOneTapClient();\n if (!clientResult.success) {\n throw new Error(`One Tap could not load: ${clientResult.reason}`);\n }\n\n const { client } = clientResult;\n\n const onSuccessCallback = this._oneTap.createOnSuccessHandler({\n signupRedirectUrl: options.signup_redirect_url,\n loginRedirectUrl: options.login_redirect_url,\n onSuccess: this._oneTap.redirectOnSuccess,\n });\n\n return client.render({\n style: {\n position: OneTapPositions.floating,\n },\n onOneTapCancelled: options.onOneTapCancelled,\n callback: onSuccessCallback,\n cancelOnTapOutside: options.cancel_on_tap_outside,\n });\n };\n\n googleOneTap: IGoogleOneTapOAuthProvider = {\n start: this.startOneTap,\n };\n}\n","import {\n checkNotSSR,\n checkPublicToken,\n DFPProtectedAuthProvider,\n HeadlessCryptoWalletClient,\n HeadlessMagicLinksClient,\n HeadlessOTPClient,\n HeadlessPasswordClient,\n HeadlessImpersonationClient,\n HeadlessSessionClient,\n HeadlessTOTPClient,\n HeadlessUserClient,\n HeadlessWebAuthnClient,\n INetworkClient,\n SearchDataManager,\n SessionManager,\n StateChangeClient,\n StateChangeRegisterFunction,\n VERTICAL_B2B,\n logger,\n HeadlessRBACClient,\n HeadlessIDPClient,\n} from '@stytch/core';\nimport {\n ConsumerState,\n IHeadlessCryptoWalletClient,\n IHeadlessMagicLinksClient,\n IHeadlessOTPsClient,\n IHeadlessPasswordClient,\n IHeadlessSessionClient,\n IHeadlessTOTPClient,\n IHeadlessUserClient,\n IHeadlessWebAuthnClient,\n IHeadlessImpersonationClient,\n StytchClientOptions,\n StytchProjectConfigurationInput,\n IHeadlessRBACClient,\n} from '@stytch/core/public';\nimport { BootstrapDataManager } from './BootstrapDataManager';\nimport { CaptchaProvider } from './CaptchaProvider';\nimport { ClientsideServicesProvider } from './ClientsideServicesProvider';\nimport { HeadlessOAuthClient, IWebOAuthClient } from './HeadlessOAuthClient';\nimport { NetworkClient } from './NetworkClient';\nimport { OneTapProvider } from './oneTap/OneTapProvider';\nimport { PKCEManager } from './PKCEManager';\nimport {\n ConsumerSubscriptionDataLayer,\n ConsumerSubscriptionService,\n getConsumerDataLayer,\n} from './SubscriptionService';\nimport { writeB2CInternals } from './utils/internal';\nimport { buildFinalConfig, hasCustomApiEndpoint } from './utils/config';\nimport { createAuthUrlHandler, AuthenticateByUrl, ParseAuthenticateUrl } from './utils/createAuthUrlHandler';\n\nexport type HandledTokenType = 'magic_links' | 'oauth' | 'impersonation';\n\n/**\n * A headless client used for invoking the Stytch API.\n * The Stytch Headless Client can be used as a drop-in solution for authentication and session management.\n * Full documentation can be found {@link https://stytch.com/docs/sdks/javascript-sdk online}.\n * @example\n * const stytch = new StytchClient('public-token-<find yours in the stytch dashboard>');\n * stytch.magicLinks.email.loginOrCreate('sandbox@stytch.com', {\n * login_magic_link_url: 'https://example.com/authenticate',\n * login_expiration_minutes: 60,\n * signup_magic_link_url: 'https://example.com/authenticate',\n * signup_expiration_minutes: 60,\n * });\n */\nexport class StytchClient<\n TProjectConfiguration extends StytchProjectConfigurationInput = Stytch.DefaultProjectConfiguration,\n> {\n private readonly _subscriptionService: ConsumerSubscriptionService<TProjectConfiguration>;\n private readonly _sessionManager: SessionManager<TProjectConfiguration>;\n private readonly _networkClient: INetworkClient;\n private readonly _dataLayer: ConsumerSubscriptionDataLayer;\n private readonly _stateChangeClient: StateChangeClient<ConsumerState>;\n\n // External API Clients\n user: IHeadlessUserClient;\n magicLinks: IHeadlessMagicLinksClient<TProjectConfiguration>;\n session: IHeadlessSessionClient<TProjectConfiguration>;\n otps: IHeadlessOTPsClient<TProjectConfiguration>;\n oauth: IWebOAuthClient<TProjectConfiguration>;\n cryptoWallets: IHeadlessCryptoWalletClient<TProjectConfiguration>;\n totps: IHeadlessTOTPClient<TProjectConfiguration>;\n webauthn: IHeadlessWebAuthnClient<TProjectConfiguration>;\n passwords: IHeadlessPasswordClient<TProjectConfiguration>;\n impersonation: IHeadlessImpersonationClient<TProjectConfiguration>;\n rbac: IHeadlessRBACClient;\n idp: HeadlessIDPClient;\n\n // External methods\n /**\n * Register a callback function to be invoked whenever certain state changes\n * occur, like a user or session object being updated.\n *\n * This is an alternative to more specific methods like `user.onChange` and\n * `session.onChange`. It can be helpful if you want to be notified of related\n * changes to different parts of state at once.\n *\n * If you are only interested in specific state changes, consider using more\n * specific methods like `user.onChange` and `session.onChange` instead.\n */\n onStateChange: StateChangeRegisterFunction<ConsumerState>;\n\n /**\n * Extracts token and token type from the current page URL's query parameters.\n * If the current URL do not have the required query params, this will return null.\n * Otherwise, returns an object { handled: boolean, tokenType: string, token: string }\n */\n parseAuthenticateUrl: ParseAuthenticateUrl<HandledTokenType>;\n\n /**\n * Call this method to authenticate the user when the user has been redirected\n * to this page with a token in the query parameters, such as after OAuth\n * or through an email magic link. This method currently supports\n *\n * - Magic links\n * - OAuth\n * - Impersonation\n *\n * Returns null if token or stytch_token_type query parameters are not present,\n * or returns an unhandled result if the token type is not recognized.\n */\n authenticateByUrl: AuthenticateByUrl<HandledTokenType>;\n\n constructor(publicTokenRaw: string, options?: StytchClientOptions) {\n checkNotSSR();\n\n // Intentionally check the raw public token so that we can log a correct error message,\n // but then coalesce to an empty string so that the UI components don't fail to render.\n checkPublicToken(publicTokenRaw);\n const _PUBLIC_TOKEN = publicTokenRaw ?? '';\n\n // Not casting to InternalStytchClientOptions since InternalStytchClientOptions is currently a superset\n const config = buildFinalConfig(this.constructor.name, options);\n const usingCustomApiEndpoint = hasCustomApiEndpoint(_PUBLIC_TOKEN, options);\n\n this._dataLayer = getConsumerDataLayer(_PUBLIC_TOKEN, config);\n this._subscriptionService = new ConsumerSubscriptionService(_PUBLIC_TOKEN, this._dataLayer, {\n usingCustomApiEndpoint,\n });\n this._stateChangeClient = new StateChangeClient(this._subscriptionService, {});\n this.onStateChange = (...args) => this._stateChangeClient.onStateChange(...args);\n\n const additionalTelemetryDataFn = () => ({\n stytch_user_id: this._dataLayer.state?.user?.user_id,\n stytch_session_id: this._dataLayer.state?.session?.session_id,\n });\n\n const passwordsPKCEManager = new PKCEManager(this._dataLayer, 'passwords');\n const networkClient = new NetworkClient(\n _PUBLIC_TOKEN,\n this._dataLayer,\n config.endpoints.liveAPIURL,\n config.endpoints.testAPIURL,\n additionalTelemetryDataFn,\n );\n this._networkClient = networkClient;\n\n const bootstrap = new BootstrapDataManager(_PUBLIC_TOKEN, this._networkClient, this._dataLayer);\n const captcha = new CaptchaProvider(bootstrap.getAsync());\n const dfpProtectedAuth = new DFPProtectedAuthProvider(\n _PUBLIC_TOKEN,\n config.endpoints.dfpBackendURL,\n config.endpoints.dfpCdnURL,\n bootstrap.getAsync(),\n captcha.executeRecaptcha,\n );\n const clientsideServices = new ClientsideServicesProvider(config.endpoints.clientsideServicesIframeURL);\n const oneTap = new OneTapProvider(_PUBLIC_TOKEN, clientsideServices);\n const searchManager = new SearchDataManager(this._networkClient, dfpProtectedAuth);\n\n this.user = new HeadlessUserClient(this._networkClient, this._subscriptionService);\n this.session = new HeadlessSessionClient(this._networkClient, this._subscriptionService);\n this.magicLinks = new HeadlessMagicLinksClient(\n this._networkClient,\n this._subscriptionService,\n new PKCEManager(this._dataLayer, 'magic_links'),\n passwordsPKCEManager,\n bootstrap.getAsync(),\n dfpProtectedAuth,\n );\n this.otps = new HeadlessOTPClient(\n this._networkClient,\n this._subscriptionService,\n captcha.executeRecaptcha,\n dfpProtectedAuth,\n );\n this.oauth = new HeadlessOAuthClient(\n this._networkClient,\n this._subscriptionService,\n new PKCEManager(this._dataLayer, 'oauth'),\n bootstrap.getAsync(),\n {\n publicToken: _PUBLIC_TOKEN,\n testAPIURL: config.endpoints.testAPIURL,\n liveAPIURL: config.endpoints.liveAPIURL,\n },\n oneTap,\n );\n this.cryptoWallets = new HeadlessCryptoWalletClient(\n this._networkClient,\n this._networkClient,\n this._subscriptionService,\n captcha.executeRecaptcha,\n dfpProtectedAuth,\n bootstrap.getAsync(),\n );\n this.totps = new HeadlessTOTPClient(this._networkClient, this._subscriptionService, dfpProtectedAuth);\n this.webauthn = new HeadlessWebAuthnClient(this._networkClient, this._subscriptionService, dfpProtectedAuth);\n this.passwords = new HeadlessPasswordClient(\n this._networkClient,\n this._subscriptionService,\n passwordsPKCEManager,\n bootstrap.getAsync(),\n dfpProtectedAuth,\n );\n this.impersonation = new HeadlessImpersonationClient(\n this._networkClient,\n this._subscriptionService,\n dfpProtectedAuth,\n );\n\n this.rbac = new HeadlessRBACClient(bootstrap.getSync(), bootstrap.getAsync(), this._subscriptionService);\n this.idp = new HeadlessIDPClient(this._networkClient);\n this._sessionManager = new SessionManager(this._subscriptionService, this.session, _PUBLIC_TOKEN, {\n keepSessionAlive: config.keepSessionAlive,\n });\n\n // If the session does not exist in localstorage (like if we are in an iframe)\n // then the cookie might still be set and we can retrieve the session via an API call.\n // If a custom API endpoint is being used, the session may be being managed by\n // HttpOnly cookies, which we can't detect.\n if (usingCustomApiEndpoint || this._dataLayer.readSessionCookie().session_token) {\n this._sessionManager.performBackgroundRefresh();\n }\n\n this._networkClient.logEvent({\n name: 'sdk_instance_instantiated',\n details: {\n event_callback_registered: false,\n error_callback_registered: false,\n success_callback_registered: false,\n },\n });\n\n bootstrap.getAsync().then((bootstrapData) => {\n if (bootstrapData.vertical === VERTICAL_B2B) {\n logger.error(\n 'This application is using a Stytch client for Consumer projects, but the public token is for a Stytch B2B project. Use a B2B Stytch client instead, or verify that the public token is correct.',\n );\n }\n });\n\n const { authenticateByUrl, parseAuthenticateUrl } = createAuthUrlHandler({\n magic_links: (token, options) => this.magicLinks.authenticate(token, options),\n oauth: (token, options) => this.oauth.authenticate(token, options),\n impersonation: (token: string) => this.impersonation.authenticate({ impersonation_token: token }),\n });\n\n this.authenticateByUrl = authenticateByUrl;\n this.parseAuthenticateUrl = parseAuthenticateUrl;\n\n writeB2CInternals(this, {\n bootstrap,\n clientsideServices,\n captcha,\n oneTap,\n searchManager,\n publicToken: _PUBLIC_TOKEN,\n dataLayer: this._dataLayer,\n networkClient: this._networkClient,\n });\n }\n}\n","import { StytchClient } from './StytchClient';\nimport { ssrSafeClientFactory } from './ui/react/bindings/StytchSSRProxy';\n\n/**\n * Creates a Headless Stytch client object to call the stytch APIs.\n * The Stytch client is not available serverside.\n * @example\n * const stytch = createStytchClient('public-token-<find yours in the stytch dashboard>')\n *\n * return (\n * <StytchProvider stytch={stytch}>\n * <App />\n * </StytchProvider>\n * )\n * @returns A {@link StytchClient}\n */\nexport const createStytchClient = ssrSafeClientFactory(StytchClient);\n\n/**\n * @deprecated Use createStytchClient instead\n */\nexport const createStytchHeadlessClient = createStytchClient;\n\n/**\n * @deprecated Use StytchClient instead\n */\nexport const StytchHeadlessClient = StytchClient;\n\nexport { StytchClient };\n\nexport { parseOAuthAuthorizeParams, parseOAuthLogoutParams } from './utils/idpHelpers';\nexport type { OAuthAuthorizeParams, OAuthLogoutParams } from './utils/idpHelpers';\n\nexport * from '@stytch/core/public';\n"],"names":["HeadlessUserClient","constructor","_subscriptionService","_networkClient","get","resp","fetchSDK","url","method","user","removeResponseCommon","updateUser","getSync","getUser","getInfo","fromCache","getFromCache","update","options","validateInDev","untrusted_metadata","body","__user","omitUser","deleteEmail","emailId","deletePhoneNumber","phoneId","deleteTOTP","totpId","deleteCryptoWallet","cryptoWalletId","deleteOAuthRegistration","oauthUserRegistrationId","deleteWebauthnRegistration","webAuthnId","deleteBiometricRegistration","biometricRegistrationId","onChange","callback","lastVal","listener","state","subscribeToState","getConnectedApps","revokedConnectedApp","connectedAppId","HeadlessSessionClient","authenticate","exchangeAccessToken","attest","getSession","session","revoke","destroyState","error","forceClear","UNRECOVERABLE_ERROR_TYPES","includes","error_type","_authenticate","initialSession","isSessionStale","session_id","requestBody","session_duration_minutes","destroySession","withUpdateSession","data","access_token","profile_id","token","getTokens","updateSession","tokens","session_token","session_jwt","updateTokens","HeadlessOTPClient","executeRecaptcha","Promise","resolve","undefined","dfpProtectedAuth","sms","loginOrCreate","phone_number","dfp_telemetry_id","captcha_token","getDFPTelemetryIDAndCaptcha","retriableFetchSDK","retryCallback","retryWithCaptchaAndDFP","send","isLoggedIn","endpoint","whatsapp","email","code","method_id","HeadlessOAuthClient","_pkceManager","_config","_dynamicConfig","google","start","startOAuthFlow","OAuthProviders","Google","apple","Apple","microsoft","Microsoft","github","Github","gitlab","GitLab","facebook","Facebook","discord","Discord","salesforce","Salesforce","slack","Slack","amazon","Amazon","bitbucket","Bitbucket","linkedin","LinkedIn","coinbase","Coinbase","twitch","Twitch","twitter","Twitter","tiktok","TikTok","snapchat","Snapchat","figma","Figma","yahoo","Yahoo","keyPair","getPKPair","logger","warn","code_verifier","clearPKPair","attach","provider","getBaseApiUrl","cnameDomain","isTestPublicToken","publicToken","testAPIURL","liveAPIURL","providerType","login_redirect_url","signup_redirect_url","custom_scopes","provider_params","oauth_attach_token","pkceRequiredForOAuth","baseURL","logEvent","name","details","provider_type","cname_domain","pkce","oauthUrl","URL","searchParams","set","startPKCETransaction","code_challenge","join","key","navigate","window","location","href","toString","HeadlessTOTPClient","recover","totp_code","recovery_code","create","expiration_minutes","recoveryCodes","HeadlessWebAuthnClient","register","checkEligibleInputs","eligibleInputs","document","querySelectorAll","length","domain","authenticator_type","is_passkey","override_id","override_name","override_display_name","use_base64_url_encoding","startResp","hostname","return_passkey_credential_options","user_agent","navigator","userAgent","publicKeyCredentialCreationOptions","public_key_credential_creation_options","publicKey","JSON","parse","credential","webauthnJson","public_key_credential","stringify","signal","conditional_mediation","disable_input_check","browserSupportsAutofill","publicKeyCredentialRequestOptions","public_key_credential_request_options","abortController","AbortController","credReqOptions","conditionalMediationCredReqOption","mediation","authenticationData","webauthn_registration_id","PublicKeyCredential","isConditionalMediationAvailable","HeadlessImpersonationClient","impersonation_token","HeadlessRBACClient","cachedPolicy","policyPromise","cachedConfig","dynamicConfig","isAuthorizedSync","resourceId","action","callerIsAuthorized","roleIds","isAuthorized","then","policy","rbacPolicy","RBACPolicy","fromJSON","allPermissions","allPermissionsForCaller","roles","HeadlessIDPClient","oauthAuthorizeStart","oauthAuthorizeSubmit","oauthLogoutStart","BaseHeadlessOAuthClient","_oneTap","startOneTap","clientResult","createOneTapClient","success","Error","reason","client","onSuccessCallback","createOnSuccessHandler","signupRedirectUrl","loginRedirectUrl","onSuccess","redirectOnSuccess","render","style","position","OneTapPositions","floating","onOneTapCancelled","cancelOnTapOutside","cancel_on_tap_outside","googleOneTap","StytchClient","_sessionManager","_dataLayer","_stateChangeClient","magicLinks","otps","oauth","cryptoWallets","totps","webauthn","passwords","impersonation","rbac","idp","onStateChange","parseAuthenticateUrl","authenticateByUrl","publicTokenRaw","checkNotSSR","checkPublicToken","_PUBLIC_TOKEN","config","buildFinalConfig","usingCustomApiEndpoint","hasCustomApiEndpoint","getConsumerDataLayer","ConsumerSubscriptionService","StateChangeClient","args","additionalTelemetryDataFn","stytch_user_id","user_id","stytch_session_id","passwordsPKCEManager","PKCEManager","networkClient","NetworkClient","endpoints","bootstrap","BootstrapDataManager","captcha","CaptchaProvider","getAsync","DFPProtectedAuthProvider","dfpBackendURL","dfpCdnURL","clientsideServices","ClientsideServicesProvider","clientsideServicesIframeURL","oneTap","OneTapProvider","searchManager","SearchDataManager","HeadlessMagicLinksClient","HeadlessCryptoWalletClient","HeadlessPasswordClient","SessionManager","keepSessionAlive","readSessionCookie","performBackgroundRefresh","event_callback_registered","error_callback_registered","success_callback_registered","bootstrapData","vertical","VERTICAL_B2B","createAuthUrlHandler","magic_links","writeB2CInternals","dataLayer","createStytchClient","ssrSafeClientFactory","createStytchHeadlessClient","StytchHeadlessClient"],"mappings":"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","x_google_ignoreList":[5]}
1
+ {"version":3,"file":"index.headless.cjs","sources":["../../../core/src/HeadlessClients/HeadlessUserClient.ts","../../../core/src/HeadlessClients/HeadlessSessionClient.ts","../../../core/src/HeadlessClients/HeadlessOTPClient.ts","../../../core/src/HeadlessClients/HeadlessOAuthClient.ts","../../../core/src/HeadlessClients/HeadlessTOTPClient.ts","../../../../node_modules/@github/webauthn-json/dist/esm/webauthn-json.js","../../../core/src/HeadlessClients/HeadlessWebAuthnClient.ts","../../../core/src/HeadlessClients/HeadlessImpersonationClient.ts","../../../core/src/HeadlessClients/HeadlessRBACClient.ts","../../../core/src/HeadlessClients/HeadlessIDPClient.ts","../../../web/src/HeadlessOAuthClient.ts","../../../web/src/StytchClient.ts","../../../web/src/index.headless.ts"],"sourcesContent":["import {\n IHeadlessUserClient,\n User,\n ResponseCommon,\n UpdateResponse,\n UserUpdateOptions,\n UserUpdateResponse,\n UserOnChangeCallback,\n ConsumerState,\n UserInfo,\n StytchProjectConfigurationInput,\n UserGetConnectedAppsResponse,\n UnsubscribeFunction,\n} from '../public';\nimport { INetworkClient } from '../NetworkClient';\nimport { IConsumerSubscriptionService } from '../SubscriptionService';\nimport { omitUser, removeResponseCommon, WithUser } from '../utils';\nimport { validateInDev } from '../utils/dev';\n\nexport class HeadlessUserClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessUserClient\n{\n constructor(\n private _networkClient: INetworkClient,\n private _subscriptionService: IConsumerSubscriptionService<TProjectConfiguration>,\n ) {}\n\n get = async (): Promise<User> => {\n const resp = await this._networkClient.fetchSDK<User & ResponseCommon>({\n url: '/users/me',\n method: 'GET',\n });\n const user = removeResponseCommon(resp);\n this._subscriptionService.updateUser(user);\n return user;\n };\n\n getSync = (): User | null => {\n return this._subscriptionService.getUser();\n };\n\n getInfo = (): UserInfo => ({\n user: this.getSync(),\n fromCache: this._subscriptionService.getFromCache(),\n });\n\n update = async (options: UserUpdateOptions) => {\n validateInDev('stytch.user.update', options, {\n untrusted_metadata: 'optionalObject',\n });\n const resp = await this._networkClient.fetchSDK<WithUser<UserUpdateResponse>>({\n url: '/users/me',\n body: options,\n method: 'PUT',\n });\n const user = removeResponseCommon(resp.__user);\n this._subscriptionService.updateUser(user);\n return omitUser(resp);\n };\n\n deleteEmail = async (emailId: string) => {\n const resp = await this._networkClient.fetchSDK<WithUser<UpdateResponse>>({\n url: `/users/emails/${emailId}`,\n method: 'DELETE',\n });\n const user = removeResponseCommon(resp.__user);\n this._subscriptionService.updateUser(user);\n return omitUser(resp);\n };\n\n deletePhoneNumber = async (phoneId: string) => {\n const resp = await this._networkClient.fetchSDK<WithUser<UpdateResponse>>({\n url: `/users/phone_numbers/${phoneId}`,\n method: 'DELETE',\n });\n const user = removeResponseCommon(resp.__user);\n this._subscriptionService.updateUser(user);\n return omitUser(resp);\n };\n\n deleteTOTP = async (totpId: string) => {\n const resp = await this._networkClient.fetchSDK<WithUser<UpdateResponse>>({\n url: `/users/totps/${totpId}`,\n method: 'DELETE',\n });\n const user = removeResponseCommon(resp.__user);\n this._subscriptionService.updateUser(user);\n return omitUser(resp);\n };\n\n deleteCryptoWallet = async (cryptoWalletId: string) => {\n const resp = await this._networkClient.fetchSDK<WithUser<UpdateResponse>>({\n url: `/users/crypto_wallets/${cryptoWalletId}`,\n method: 'DELETE',\n });\n const user = removeResponseCommon(resp.__user);\n this._subscriptionService.updateUser(user);\n return omitUser(resp);\n };\n\n deleteOAuthRegistration = async (oauthUserRegistrationId: string) => {\n const resp = await this._networkClient.fetchSDK<WithUser<UpdateResponse>>({\n url: `/users/oauth/${oauthUserRegistrationId}`,\n method: 'DELETE',\n });\n const user = removeResponseCommon(resp.__user);\n this._subscriptionService.updateUser(user);\n return omitUser(resp);\n };\n\n deleteWebauthnRegistration = async (webAuthnId: string) => {\n const resp = await this._networkClient.fetchSDK<WithUser<UpdateResponse>>({\n url: `/users/webauthn_registrations/${webAuthnId}`,\n method: 'DELETE',\n });\n const user = removeResponseCommon(resp.__user);\n this._subscriptionService.updateUser(user);\n return omitUser(resp);\n };\n\n deleteBiometricRegistration = async (biometricRegistrationId: string) => {\n const resp = await this._networkClient.fetchSDK<WithUser<UpdateResponse>>({\n url: `/users/biometric_registrations/${biometricRegistrationId}`,\n method: 'DELETE',\n });\n const user = removeResponseCommon(resp.__user);\n this._subscriptionService.updateUser(user);\n return omitUser(resp);\n };\n\n onChange = (callback: UserOnChangeCallback): UnsubscribeFunction => {\n let lastVal = this._subscriptionService.getUser();\n const listener = (state: ConsumerState | null) => {\n if (state?.user !== lastVal) {\n lastVal = state?.user ?? null;\n callback(lastVal);\n }\n };\n return this._subscriptionService.subscribeToState(listener);\n };\n\n getConnectedApps = async () => {\n return await this._networkClient.fetchSDK<UserGetConnectedAppsResponse>({\n url: '/users/connected_apps',\n method: 'GET',\n });\n };\n\n revokedConnectedApp = async (connectedAppId: string) => {\n return await this._networkClient.fetchSDK<ResponseCommon>({\n url: `/users/connected_apps/${connectedAppId}/revoke`,\n method: 'POST',\n });\n };\n}\n","import {\n IHeadlessSessionClient,\n SessionOnChangeCallback,\n SessionRevokeResponse,\n SessionAuthenticateOptions,\n SessionAuthenticateResponse,\n SessionAccessTokenExchangeOptions,\n SessionAccessTokenExchangeResponse,\n SessionTokens,\n UNRECOVERABLE_ERROR_TYPES,\n SessionRevokeOptions,\n ConsumerState,\n SessionTokensUpdate,\n SessionInfo,\n StytchProjectConfigurationInput,\n SessionAttestOptions,\n SessionAttestResponse,\n} from '../public';\nimport { IConsumerSubscriptionService, INetworkClient } from '..';\nimport { ExtractOpaqueTokens, IfOpaqueTokens } from '../typeConfig';\nimport { omitUser, WithUser } from '../utils';\nimport { validateInDev } from '../utils/dev';\n\nexport class HeadlessSessionClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessSessionClient<TProjectConfiguration>\n{\n authenticate: (options?: SessionAuthenticateOptions) => Promise<SessionAuthenticateResponse<TProjectConfiguration>>;\n\n exchangeAccessToken: (\n data: SessionAccessTokenExchangeOptions,\n ) => Promise<SessionAccessTokenExchangeResponse<TProjectConfiguration>>;\n\n attest: (data: SessionAttestOptions) => Promise<SessionAttestResponse<TProjectConfiguration>>;\n\n constructor(\n private _networkClient: INetworkClient,\n private _subscriptionService: IConsumerSubscriptionService<TProjectConfiguration>,\n ) {\n this.authenticate = this._subscriptionService.withUpdateSession(this._authenticate);\n\n this.exchangeAccessToken = this._subscriptionService.withUpdateSession(\n async (data: SessionAccessTokenExchangeOptions) => {\n validateInDev('stytch.session.exchangeAccessToken', data, {\n access_token: 'string',\n session_duration_minutes: 'number',\n });\n const resp = await this._networkClient.fetchSDK<\n WithUser<SessionAccessTokenExchangeResponse<TProjectConfiguration>>\n >({\n url: '/sessions/exchange_access_token',\n body: data,\n method: 'POST',\n });\n\n return omitUser(resp);\n },\n );\n\n this.attest = this._subscriptionService.withUpdateSession(async (data: SessionAttestOptions) => {\n validateInDev('stytch.session.attest', data, {\n profile_id: 'string',\n token: 'string',\n session_duration_minutes: 'optionalNumber',\n });\n\n return this._networkClient.fetchSDK<SessionAttestResponse<TProjectConfiguration>>({\n url: '/sessions/attest',\n body: data,\n method: 'POST',\n });\n });\n }\n\n getSync = () => {\n return this._subscriptionService.getSession();\n };\n\n getInfo = (): SessionInfo => {\n const session = this.getSync();\n const fromCache = this._subscriptionService.getFromCache();\n return { session, fromCache };\n };\n\n onChange = (callback: SessionOnChangeCallback) => {\n let lastVal = this._subscriptionService.getSession();\n const listener = (state: ConsumerState | null) => {\n if (state?.session !== lastVal) {\n lastVal = state?.session ?? null;\n callback(lastVal);\n }\n };\n return this._subscriptionService.subscribeToState(listener);\n };\n\n revoke = async (options?: SessionRevokeOptions) => {\n /**\n * Revoke destroys the local state if the API request is successful\n * or if we return an unrecoverable error (user is unauthenticated)\n * or if the developer passses in a forceClear option.\n * If the API request returns a recoverable error (the user is offline),\n * we do not destroy the local state to let the developer manually add retry\n * logic to call revoke again.\n */\n\n try {\n const resp = await this._networkClient.fetchSDK<SessionRevokeResponse>({\n url: `/sessions/revoke`,\n method: 'POST',\n });\n\n this._subscriptionService.destroyState();\n\n return resp;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: any) {\n if (options?.forceClear) {\n this._subscriptionService.destroyState();\n } else if (UNRECOVERABLE_ERROR_TYPES.includes(error.error_type)) {\n this._subscriptionService.destroyState();\n }\n throw error;\n }\n };\n\n private _authenticate = async (\n options?: SessionAuthenticateOptions,\n ): Promise<SessionAuthenticateResponse<TProjectConfiguration>> => {\n const initialSession = this._subscriptionService.getSession();\n const isSessionStale = () => initialSession?.session_id !== this._subscriptionService.getSession()?.session_id;\n\n try {\n const requestBody = {\n session_duration_minutes: options?.session_duration_minutes,\n };\n const resp = await this._networkClient.fetchSDK<WithUser<SessionAuthenticateResponse<TProjectConfiguration>>>({\n url: '/sessions/authenticate',\n body: requestBody,\n method: 'POST',\n });\n\n if (isSessionStale()) {\n // [SDK-1336] The session was updated out from under us while the\n // request was in flight; discard the response and retry\n return this._authenticate(options);\n }\n\n return omitUser(resp);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: any) {\n if (isSessionStale()) {\n // [SDK-1336] The session was updated out from under us while the\n // request was in flight; discard the response and retry\n return this._authenticate(options);\n }\n\n if (UNRECOVERABLE_ERROR_TYPES.includes(error.error_type)) {\n this._subscriptionService.destroySession();\n }\n throw error;\n }\n };\n\n getTokens() {\n return this._subscriptionService.getTokens() as IfOpaqueTokens<\n ExtractOpaqueTokens<TProjectConfiguration>,\n never,\n SessionTokens | null\n >;\n }\n\n updateSession(tokens: SessionTokensUpdate): void {\n validateInDev('stytch.session.updateSession', tokens, {\n session_token: 'string',\n session_jwt: 'optionalString',\n });\n this._subscriptionService.updateTokens(tokens);\n }\n}\n","import { IConsumerSubscriptionService, IDFPProtectedAuthProvider, INetworkClient } from '..';\nimport {\n IHeadlessOTPsClient,\n OTPAuthenticateOptions,\n OTPCodeEmailOptions,\n OTPCodeOptions,\n OTPCodeSMSOptions,\n OTPsAuthenticateResponse,\n OTPsLoginOrCreateResponse,\n OTPsSendResponse,\n StytchProjectConfigurationInput,\n} from '../public';\nimport { WithUser, omitUser } from '../utils';\nimport { validateInDev } from '../utils/dev';\n\nexport class HeadlessOTPClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessOTPsClient<TProjectConfiguration>\n{\n authenticate: (\n code: string,\n method_id: string,\n options: OTPAuthenticateOptions,\n ) => Promise<OTPsAuthenticateResponse<TProjectConfiguration>>;\n\n constructor(\n private _networkClient: INetworkClient,\n private _subscriptionService: IConsumerSubscriptionService<TProjectConfiguration>,\n private executeRecaptcha: () => Promise<string | undefined> = () => Promise.resolve(undefined),\n private dfpProtectedAuth: IDFPProtectedAuthProvider,\n ) {\n this.authenticate = this._subscriptionService.withUpdateSession(\n async (code: string, method_id: string, options: OTPAuthenticateOptions) => {\n validateInDev(\n 'stytch.otps.authenticate',\n { code, ...options },\n {\n code: 'string',\n session_duration_minutes: 'number',\n },\n );\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n\n const requestBody = {\n token: code,\n method_id,\n dfp_telemetry_id,\n captcha_token,\n ...options,\n };\n const resp = await this._networkClient.retriableFetchSDK<\n WithUser<OTPsAuthenticateResponse<TProjectConfiguration>>\n >({\n url: '/otps/authenticate',\n body: requestBody,\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n\n return omitUser(resp);\n },\n );\n }\n\n sms = {\n loginOrCreate: async (phone_number: string, options: OTPCodeSMSOptions): Promise<OTPsLoginOrCreateResponse> => {\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n const requestBody = { ...options, phone_number, captcha_token, dfp_telemetry_id };\n return this._networkClient.retriableFetchSDK<OTPsLoginOrCreateResponse>({\n url: '/otps/sms/login_or_create',\n body: requestBody,\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n },\n send: async (phone_number: string, options: OTPCodeSMSOptions): Promise<OTPsSendResponse> => {\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n const requestBody = { ...options, phone_number, captcha_token, dfp_telemetry_id };\n\n const isLoggedIn = !!this._subscriptionService.getSession();\n\n const endpoint = isLoggedIn ? '/otps/sms/send/secondary' : '/otps/sms/send/primary';\n\n return this._networkClient.retriableFetchSDK<OTPsSendResponse>({\n url: endpoint,\n body: requestBody,\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n },\n };\n\n whatsapp = {\n loginOrCreate: async (phone_number: string, options: OTPCodeOptions): Promise<OTPsLoginOrCreateResponse> => {\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n const requestBody = { ...options, phone_number, dfp_telemetry_id, captcha_token };\n return this._networkClient.retriableFetchSDK<OTPsLoginOrCreateResponse>({\n url: '/otps/whatsapp/login_or_create',\n body: requestBody,\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n },\n send: async (phone_number: string, options: OTPCodeOptions): Promise<OTPsSendResponse> => {\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n const requestBody = { ...options, phone_number, captcha_token, dfp_telemetry_id };\n\n const isLoggedIn = !!this._subscriptionService.getSession();\n\n const endpoint = isLoggedIn ? '/otps/whatsapp/send/secondary' : '/otps/whatsapp/send/primary';\n\n return this._networkClient.retriableFetchSDK<OTPsSendResponse>({\n url: endpoint,\n body: requestBody,\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n },\n };\n\n email = {\n loginOrCreate: async (email: string, options: OTPCodeEmailOptions): Promise<OTPsLoginOrCreateResponse> => {\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n const requestBody = { ...options, email, captcha_token, dfp_telemetry_id };\n return this._networkClient.retriableFetchSDK<OTPsLoginOrCreateResponse>({\n url: '/otps/email/login_or_create',\n body: requestBody,\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n },\n send: async (email: string, options: OTPCodeEmailOptions): Promise<OTPsSendResponse> => {\n const captcha_token = await this.executeRecaptcha();\n const requestBody = { ...options, email, captcha_token };\n\n const isLoggedIn = !!this._subscriptionService.getSession();\n\n const endpoint = isLoggedIn ? '/otps/email/send/secondary' : '/otps/email/send/primary';\n\n return this._networkClient.fetchSDK<OTPsSendResponse>({\n url: endpoint,\n body: requestBody,\n method: 'POST',\n });\n },\n };\n}\n","import {\n IHeadlessOAuthClient,\n OAuthAttachResponse,\n OAuthAuthenticateOptions,\n OAuthAuthenticateResponse,\n OAuthGetURLOptions,\n OAuthProviders,\n StytchProjectConfigurationInput,\n} from '../public';\nimport { INetworkClient, IPKCEManager, IConsumerSubscriptionService } from '..';\nimport { WithUser, omitUser, logger, isTestPublicToken } from '../utils';\nimport { validateInDev } from '../utils/dev';\n\ntype DynamicConfig = Promise<{\n cnameDomain: null | string;\n pkceRequiredForOAuth: boolean;\n}>;\ntype Config = {\n publicToken: string;\n testAPIURL: string;\n liveAPIURL: string;\n};\n\nexport class HeadlessOAuthClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessOAuthClient<TProjectConfiguration>\n{\n authenticate: (\n token: string,\n options: OAuthAuthenticateOptions,\n ) => Promise<OAuthAuthenticateResponse<TProjectConfiguration>>;\n\n constructor(\n private _networkClient: INetworkClient,\n private _subscriptionService: IConsumerSubscriptionService<TProjectConfiguration>,\n private _pkceManager: IPKCEManager,\n private _dynamicConfig: DynamicConfig,\n private _config: Config,\n ) {\n this.authenticate = this._subscriptionService.withUpdateSession(\n async (token: string, options: OAuthAuthenticateOptions) => {\n validateInDev(\n 'stytch.oauth.authenticate',\n { token, ...options },\n {\n token: 'string',\n session_duration_minutes: 'number',\n },\n );\n\n const keyPair = await this._pkceManager.getPKPair();\n\n if (!keyPair) {\n logger.warn(\n 'No code verifier found in local storage for OAuth flow.\\n' +\n 'Consider using stytch.oauth.$provider.start() to add PKCE to your OAuth flows for added security.\\n' +\n 'See https://stytch.com/docs/oauth#guides_pkce for more information.',\n );\n }\n\n const resp = await this._networkClient.fetchSDK<WithUser<OAuthAuthenticateResponse<TProjectConfiguration>>>({\n url: '/oauth/authenticate',\n method: 'POST',\n body: {\n token,\n code_verifier: keyPair?.code_verifier,\n ...options,\n },\n });\n\n this._pkceManager.clearPKPair();\n\n return omitUser(resp);\n },\n );\n }\n\n google = {\n start: this.startOAuthFlow(OAuthProviders.Google),\n };\n\n apple = {\n start: this.startOAuthFlow(OAuthProviders.Apple),\n };\n\n microsoft = {\n start: this.startOAuthFlow(OAuthProviders.Microsoft),\n };\n\n github = {\n start: this.startOAuthFlow(OAuthProviders.Github),\n };\n\n gitlab = {\n start: this.startOAuthFlow(OAuthProviders.GitLab),\n };\n\n facebook = {\n start: this.startOAuthFlow(OAuthProviders.Facebook),\n };\n\n discord = {\n start: this.startOAuthFlow(OAuthProviders.Discord),\n };\n\n salesforce = {\n start: this.startOAuthFlow(OAuthProviders.Salesforce),\n };\n\n slack = {\n start: this.startOAuthFlow(OAuthProviders.Slack),\n };\n\n amazon = {\n start: this.startOAuthFlow(OAuthProviders.Amazon),\n };\n\n bitbucket = {\n start: this.startOAuthFlow(OAuthProviders.Bitbucket),\n };\n\n linkedin = {\n start: this.startOAuthFlow(OAuthProviders.LinkedIn),\n };\n\n coinbase = {\n start: this.startOAuthFlow(OAuthProviders.Coinbase),\n };\n\n twitch = {\n start: this.startOAuthFlow(OAuthProviders.Twitch),\n };\n\n twitter = {\n start: this.startOAuthFlow(OAuthProviders.Twitter),\n };\n\n tiktok = {\n start: this.startOAuthFlow(OAuthProviders.TikTok),\n };\n\n snapchat = {\n start: this.startOAuthFlow(OAuthProviders.Snapchat),\n };\n\n figma = {\n start: this.startOAuthFlow(OAuthProviders.Figma),\n };\n\n yahoo = {\n start: this.startOAuthFlow(OAuthProviders.Yahoo),\n };\n\n async attach(provider: string): Promise<OAuthAttachResponse> {\n validateInDev('stytch.oauth.attach', { provider }, { provider: 'string' });\n return await this._networkClient.fetchSDK<OAuthAttachResponse>({\n url: '/oauth/attach',\n method: 'POST',\n body: { provider },\n });\n }\n\n private async getBaseApiUrl() {\n const { cnameDomain } = await this._dynamicConfig;\n if (cnameDomain) {\n // The API returns cname domains without a protocol - assume HTTPS\n return `https://${cnameDomain}`;\n }\n // Our TestAPIURL and LiveAPIURL should have the HTTPS protocol already attached\n // Don't add it twice!\n if (isTestPublicToken(this._config.publicToken)) {\n return this._config.testAPIURL;\n }\n return this._config.liveAPIURL;\n }\n\n private startOAuthFlow(providerType: OAuthProviders) {\n return async ({\n login_redirect_url,\n signup_redirect_url,\n custom_scopes,\n provider_params,\n oauth_attach_token,\n }: OAuthGetURLOptions = {}): Promise<void> => {\n const { cnameDomain, pkceRequiredForOAuth } = await this._dynamicConfig;\n const baseURL = await this.getBaseApiUrl();\n\n this._networkClient.logEvent({\n name: 'start_oauth_flow',\n details: {\n provider_type: providerType,\n custom_scopes,\n cname_domain: cnameDomain,\n pkce: pkceRequiredForOAuth,\n provider_params,\n },\n });\n\n const oauthUrl = new URL(`${baseURL}/v1/public/oauth/${providerType}/start`);\n oauthUrl.searchParams.set('public_token', this._config.publicToken);\n\n if (pkceRequiredForOAuth) {\n const keyPair = await this._pkceManager.startPKCETransaction();\n oauthUrl.searchParams.set('code_challenge', keyPair.code_challenge);\n } else {\n this._pkceManager.clearPKPair();\n }\n\n if (custom_scopes) {\n validateInDev(\n 'startOAuthFlow',\n { custom_scopes },\n {\n custom_scopes: 'stringArray',\n },\n );\n oauthUrl.searchParams.set('custom_scopes', custom_scopes.join(' '));\n }\n if (provider_params) {\n validateInDev(\n 'startOAuthFlow',\n { provider_params },\n {\n provider_params: 'optionalObject',\n },\n );\n for (const key in provider_params) {\n oauthUrl.searchParams.set('provider_' + key, provider_params[key]);\n }\n }\n if (login_redirect_url) oauthUrl.searchParams.set('login_redirect_url', login_redirect_url);\n if (signup_redirect_url) oauthUrl.searchParams.set('signup_redirect_url', signup_redirect_url);\n if (oauth_attach_token) oauthUrl.searchParams.set('oauth_attach_token', oauth_attach_token);\n\n this.navigate(oauthUrl);\n };\n }\n\n // Public so it can be mocked in tests\n navigate(url: URL) {\n window.location.href = url.toString();\n }\n}\n","import {\n IHeadlessTOTPClient,\n TOTPAuthenticateOptions,\n TOTPAuthenticateResponse,\n TOTPCreateOptions,\n TOTPCreateResponse,\n TOTPRecoverOptions,\n TOTPRecoverResponse,\n TOTPRecoveryCodesResponse,\n StytchProjectConfigurationInput,\n} from '../public';\n\nimport { IConsumerSubscriptionService, IDFPProtectedAuthProvider, INetworkClient } from '..';\nimport { omitUser, WithUser } from '../utils';\nimport { validateInDev } from '../utils/dev';\n\nexport class HeadlessTOTPClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessTOTPClient<TProjectConfiguration>\n{\n authenticate: (options: TOTPAuthenticateOptions) => Promise<TOTPAuthenticateResponse<TProjectConfiguration>>;\n\n recover: (options: TOTPRecoverOptions) => Promise<TOTPRecoverResponse<TProjectConfiguration>>;\n\n constructor(\n private _networkClient: INetworkClient,\n private _subscriptionService: IConsumerSubscriptionService<TProjectConfiguration>,\n private dfpProtectedAuth: IDFPProtectedAuthProvider,\n ) {\n this.authenticate = this._subscriptionService.withUpdateSession(\n async (options: TOTPAuthenticateOptions): Promise<TOTPAuthenticateResponse<TProjectConfiguration>> => {\n validateInDev('stytch.totps.authenticate', options, {\n session_duration_minutes: 'number',\n totp_code: 'string',\n });\n\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n\n const resp = await this._networkClient.retriableFetchSDK<\n WithUser<TOTPAuthenticateResponse<TProjectConfiguration>>\n >({\n url: '/totps/authenticate',\n method: 'POST',\n body: {\n session_duration_minutes: options.session_duration_minutes,\n totp_code: options.totp_code,\n captcha_token,\n dfp_telemetry_id,\n },\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n\n return omitUser(resp);\n },\n );\n\n this.recover = this._subscriptionService.withUpdateSession(\n async (options: TOTPRecoverOptions): Promise<TOTPRecoverResponse<TProjectConfiguration>> => {\n validateInDev('stytch.totps.recover', options, {\n session_duration_minutes: 'number',\n recovery_code: 'string',\n });\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n\n const resp = await this._networkClient.retriableFetchSDK<WithUser<TOTPRecoverResponse<TProjectConfiguration>>>({\n url: '/totps/recover',\n method: 'POST',\n body: {\n session_duration_minutes: options.session_duration_minutes,\n recovery_code: options.recovery_code,\n captcha_token,\n dfp_telemetry_id,\n },\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n\n return omitUser(resp);\n },\n );\n }\n\n async create(options: TOTPCreateOptions): Promise<TOTPCreateResponse> {\n validateInDev('stytch.totps.create', options, {\n expiration_minutes: 'number',\n });\n\n const resp = await this._networkClient.fetchSDK<WithUser<TOTPCreateResponse>>({\n url: '/totps',\n method: 'POST',\n body: {\n expiration_minutes: options.expiration_minutes,\n },\n });\n\n this._subscriptionService.updateUser(resp.__user);\n\n return omitUser(resp);\n }\n\n async recoveryCodes(): Promise<TOTPRecoveryCodesResponse> {\n return this._networkClient.fetchSDK<TOTPRecoveryCodesResponse>({\n url: '/totps/recovery_codes',\n method: 'POST',\n });\n }\n}\n","// src/webauthn-json/base64url.ts\nfunction base64urlToBuffer(baseurl64String) {\n const padding = \"==\".slice(0, (4 - baseurl64String.length % 4) % 4);\n const base64String = baseurl64String.replace(/-/g, \"+\").replace(/_/g, \"/\") + padding;\n const str = atob(base64String);\n const buffer = new ArrayBuffer(str.length);\n const byteView = new Uint8Array(buffer);\n for (let i = 0; i < str.length; i++) {\n byteView[i] = str.charCodeAt(i);\n }\n return buffer;\n}\nfunction bufferToBase64url(buffer) {\n const byteView = new Uint8Array(buffer);\n let str = \"\";\n for (const charCode of byteView) {\n str += String.fromCharCode(charCode);\n }\n const base64String = btoa(str);\n const base64urlString = base64String.replace(/\\+/g, \"-\").replace(\n /\\//g,\n \"_\"\n ).replace(/=/g, \"\");\n return base64urlString;\n}\n\n// src/webauthn-json/convert.ts\nvar copyValue = \"copy\";\nvar convertValue = \"convert\";\nfunction convert(conversionFn, schema2, input) {\n if (schema2 === copyValue) {\n return input;\n }\n if (schema2 === convertValue) {\n return conversionFn(input);\n }\n if (schema2 instanceof Array) {\n return input.map((v) => convert(conversionFn, schema2[0], v));\n }\n if (schema2 instanceof Object) {\n const output = {};\n for (const [key, schemaField] of Object.entries(schema2)) {\n if (schemaField.derive) {\n const v = schemaField.derive(input);\n if (v !== void 0) {\n input[key] = v;\n }\n }\n if (!(key in input)) {\n if (schemaField.required) {\n throw new Error(`Missing key: ${key}`);\n }\n continue;\n }\n if (input[key] == null) {\n output[key] = null;\n continue;\n }\n output[key] = convert(\n conversionFn,\n schemaField.schema,\n input[key]\n );\n }\n return output;\n }\n}\nfunction derived(schema2, derive) {\n return {\n required: true,\n schema: schema2,\n derive\n };\n}\nfunction required(schema2) {\n return {\n required: true,\n schema: schema2\n };\n}\nfunction optional(schema2) {\n return {\n required: false,\n schema: schema2\n };\n}\n\n// src/webauthn-json/basic/schema.ts\nvar publicKeyCredentialDescriptorSchema = {\n type: required(copyValue),\n id: required(convertValue),\n transports: optional(copyValue)\n};\nvar simplifiedExtensionsSchema = {\n appid: optional(copyValue),\n appidExclude: optional(copyValue),\n credProps: optional(copyValue)\n};\nvar simplifiedClientExtensionResultsSchema = {\n appid: optional(copyValue),\n appidExclude: optional(copyValue),\n credProps: optional(copyValue)\n};\nvar credentialCreationOptions = {\n publicKey: required({\n rp: required(copyValue),\n user: required({\n id: required(convertValue),\n name: required(copyValue),\n displayName: required(copyValue)\n }),\n challenge: required(convertValue),\n pubKeyCredParams: required(copyValue),\n timeout: optional(copyValue),\n excludeCredentials: optional([publicKeyCredentialDescriptorSchema]),\n authenticatorSelection: optional(copyValue),\n attestation: optional(copyValue),\n extensions: optional(simplifiedExtensionsSchema)\n }),\n signal: optional(copyValue)\n};\nvar publicKeyCredentialWithAttestation = {\n type: required(copyValue),\n id: required(copyValue),\n rawId: required(convertValue),\n authenticatorAttachment: optional(copyValue),\n response: required({\n clientDataJSON: required(convertValue),\n attestationObject: required(convertValue),\n transports: derived(\n copyValue,\n (response) => {\n var _a;\n return ((_a = response.getTransports) == null ? void 0 : _a.call(response)) || [];\n }\n )\n }),\n clientExtensionResults: derived(\n simplifiedClientExtensionResultsSchema,\n (pkc) => pkc.getClientExtensionResults()\n )\n};\nvar credentialRequestOptions = {\n mediation: optional(copyValue),\n publicKey: required({\n challenge: required(convertValue),\n timeout: optional(copyValue),\n rpId: optional(copyValue),\n allowCredentials: optional([publicKeyCredentialDescriptorSchema]),\n userVerification: optional(copyValue),\n extensions: optional(simplifiedExtensionsSchema)\n }),\n signal: optional(copyValue)\n};\nvar publicKeyCredentialWithAssertion = {\n type: required(copyValue),\n id: required(copyValue),\n rawId: required(convertValue),\n authenticatorAttachment: optional(copyValue),\n response: required({\n clientDataJSON: required(convertValue),\n authenticatorData: required(convertValue),\n signature: required(convertValue),\n userHandle: required(convertValue)\n }),\n clientExtensionResults: derived(\n simplifiedClientExtensionResultsSchema,\n (pkc) => pkc.getClientExtensionResults()\n )\n};\nvar schema = {\n credentialCreationOptions,\n publicKeyCredentialWithAttestation,\n credentialRequestOptions,\n publicKeyCredentialWithAssertion\n};\n\n// src/webauthn-json/basic/api.ts\nfunction createRequestFromJSON(requestJSON) {\n return convert(base64urlToBuffer, credentialCreationOptions, requestJSON);\n}\nfunction createResponseToJSON(credential) {\n return convert(\n bufferToBase64url,\n publicKeyCredentialWithAttestation,\n credential\n );\n}\nasync function create(requestJSON) {\n const credential = await navigator.credentials.create(\n createRequestFromJSON(requestJSON)\n );\n return createResponseToJSON(credential);\n}\nfunction getRequestFromJSON(requestJSON) {\n return convert(base64urlToBuffer, credentialRequestOptions, requestJSON);\n}\nfunction getResponseToJSON(credential) {\n return convert(\n bufferToBase64url,\n publicKeyCredentialWithAssertion,\n credential\n );\n}\nasync function get(requestJSON) {\n const credential = await navigator.credentials.get(\n getRequestFromJSON(requestJSON)\n );\n return getResponseToJSON(credential);\n}\n\n// src/webauthn-json/basic/supported.ts\nfunction supported() {\n return !!(navigator.credentials && navigator.credentials.create && navigator.credentials.get && window.PublicKeyCredential);\n}\nexport {\n create,\n get,\n schema,\n supported\n};\n//# sourceMappingURL=webauthn-json.js.map\n","import * as webauthnJson from '@github/webauthn-json';\nimport {\n IHeadlessWebAuthnClient,\n StytchProjectConfigurationInput,\n WebAuthnAuthenticateResponse,\n WebAuthnAuthenticateStartOptions,\n WebAuthnAuthenticateStartResponse,\n WebAuthnRegisterResponse,\n WebAuthnRegisterStartOptions,\n WebAuthnRegisterStartResponse,\n WebAuthnUpdateOptions,\n WebAuthnUpdateResponse,\n} from '../public';\n\nimport { IConsumerSubscriptionService, IDFPProtectedAuthProvider, INetworkClient } from '..';\nimport { logger, omitUser, WithUser } from '../utils';\nimport { validateInDev } from '../utils/dev';\n\nexport class HeadlessWebAuthnClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessWebAuthnClient<TProjectConfiguration>\n{\n register: (options: WebAuthnRegisterStartOptions) => Promise<WebAuthnRegisterResponse<TProjectConfiguration>>;\n\n authenticate: (\n options: WebAuthnAuthenticateStartOptions,\n ) => Promise<WebAuthnAuthenticateResponse<TProjectConfiguration> | null>;\n\n constructor(\n public _networkClient: INetworkClient,\n private _subscriptionService: IConsumerSubscriptionService<TProjectConfiguration>,\n private dfpProtectedAuth: IDFPProtectedAuthProvider,\n ) {\n this.register = this._subscriptionService.withUpdateSession(\n async (options?: WebAuthnRegisterStartOptions): Promise<WebAuthnRegisterResponse<TProjectConfiguration>> => {\n if (options) {\n validateInDev('stytch.webauthn.register', options, {\n domain: 'optionalString',\n authenticator_type: 'optionalString',\n is_passkey: 'optionalBoolean',\n session_duration_minutes: 'number',\n override_id: 'optionalString',\n override_name: 'optionalString',\n override_display_name: 'optionalString',\n use_base64_url_encoding: 'optionalBoolean',\n });\n }\n\n const startResp = await this._networkClient.fetchSDK<WebAuthnRegisterStartResponse>({\n url: '/webauthn/register/start',\n method: 'POST',\n body: {\n domain: options?.domain ?? window.location.hostname,\n authenticator_type: options?.authenticator_type ?? undefined,\n return_passkey_credential_options: options?.is_passkey,\n override_id: options?.override_id,\n override_name: options?.override_name,\n override_display_name: options?.override_display_name,\n user_agent: navigator.userAgent,\n use_base64_url_encoding: options?.use_base64_url_encoding,\n },\n });\n\n const publicKeyCredentialCreationOptions = startResp.public_key_credential_creation_options;\n const publicKey = JSON.parse(publicKeyCredentialCreationOptions);\n\n const credential = await webauthnJson.create({\n publicKey: publicKey,\n });\n\n const resp = await this._networkClient.fetchSDK<WithUser<WebAuthnRegisterResponse<TProjectConfiguration>>>({\n url: '/webauthn/register',\n method: 'POST',\n body: {\n public_key_credential: JSON.stringify(credential),\n session_duration_minutes: options?.session_duration_minutes,\n },\n });\n\n return omitUser(resp);\n },\n );\n\n this.authenticate = this._subscriptionService.withUpdateSession(\n async (\n options: WebAuthnAuthenticateStartOptions,\n ): Promise<WebAuthnAuthenticateResponse<TProjectConfiguration> | null> => {\n validateInDev('stytch.webauthn.authenticate', options, {\n domain: 'optionalString',\n session_duration_minutes: 'number',\n is_passkey: 'optionalBoolean',\n signal: 'optionalObject',\n conditional_mediation: 'optionalBoolean',\n disable_input_check: 'optionalBoolean',\n });\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n\n if (options.conditional_mediation) {\n if (!(await this.browserSupportsAutofill())) {\n logger.error('Browser does not support WebAuthn autofill');\n return null;\n }\n\n if (!options.disable_input_check && !this.checkEligibleInputs()) {\n return null;\n }\n }\n\n const isLoggedIn = !!this._subscriptionService.getSession();\n\n const endpoint = isLoggedIn ? '/webauthn/authenticate/start/secondary' : '/webauthn/authenticate/start/primary';\n\n const startResp = await this._networkClient.fetchSDK<WebAuthnAuthenticateStartResponse>({\n url: endpoint,\n method: 'POST',\n body: {\n domain: options.domain ?? window.location.hostname,\n return_passkey_credential_options: options?.is_passkey,\n },\n });\n\n const publicKeyCredentialRequestOptions = startResp.public_key_credential_request_options;\n const abortController = new AbortController();\n const credReqOptions = {\n publicKey: JSON.parse(publicKeyCredentialRequestOptions),\n signal: options.signal ?? abortController.signal,\n };\n const conditionalMediationCredReqOption = {\n ...credReqOptions,\n mediation: 'conditional' as CredentialMediationRequirement,\n };\n const credential = await webauthnJson.get(\n options.conditional_mediation ? conditionalMediationCredReqOption : credReqOptions,\n );\n\n const authenticationData = await this._networkClient.retriableFetchSDK<\n WithUser<WebAuthnAuthenticateResponse<TProjectConfiguration>>\n >({\n url: '/webauthn/authenticate',\n method: 'POST',\n body: {\n public_key_credential: JSON.stringify(credential),\n session_duration_minutes: options.session_duration_minutes,\n dfp_telemetry_id,\n captcha_token,\n },\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n\n return omitUser(authenticationData);\n },\n );\n }\n\n async update(options: WebAuthnUpdateOptions): Promise<WebAuthnUpdateResponse> {\n validateInDev('stytch.webauthn.update', options, {\n webauthn_registration_id: 'string',\n name: 'string',\n });\n\n const url = '/webauthn/update/' + options.webauthn_registration_id;\n return await this._networkClient.fetchSDK<WebAuthnUpdateResponse>({\n url: url,\n method: 'PUT',\n body: {\n name: options.name,\n },\n });\n }\n\n async browserSupportsAutofill(): Promise<boolean> {\n return (await window.PublicKeyCredential?.isConditionalMediationAvailable?.()) ?? false;\n }\n\n private checkEligibleInputs = (): boolean => {\n // Check for an <input> with \"webauthn\" in its `autocomplete` attribute\n const eligibleInputs = document.querySelectorAll(\"input[autocomplete*='webauthn']\");\n // WebAuthn autofill requires at least one valid input\n if (eligibleInputs.length < 1) {\n logger.error('No <input> with `\"webauthn\"` in its `autocomplete` attribute was detected');\n return false;\n }\n return true;\n };\n}\n","import { IDFPProtectedAuthProvider } from '../DFPProtectedAuthProvider';\nimport { INetworkClient } from '../NetworkClient';\nimport {\n ImpersonationAuthenticateOptions,\n ImpersonationAuthenticateResponse,\n IHeadlessImpersonationClient,\n} from '../public/impersonation';\nimport { StytchProjectConfigurationInput } from '../public/typeConfig';\nimport { IConsumerSubscriptionService } from '../SubscriptionService';\nimport { validateInDev } from '../utils/dev';\n\nexport class HeadlessImpersonationClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessImpersonationClient<TProjectConfiguration>\n{\n authenticate: (\n data: ImpersonationAuthenticateOptions,\n ) => Promise<ImpersonationAuthenticateResponse<TProjectConfiguration>>;\n\n constructor(\n private _networkClient: INetworkClient,\n private _subscriptionService: IConsumerSubscriptionService<TProjectConfiguration>,\n private dfpProtectedAuth: IDFPProtectedAuthProvider,\n ) {\n this.authenticate = this._subscriptionService.withUpdateSession(async (data: ImpersonationAuthenticateOptions) => {\n validateInDev('stytch.impersonation.authenticate', data, {\n impersonation_token: 'string',\n });\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n return this._networkClient.retriableFetchSDK<ImpersonationAuthenticateResponse<TProjectConfiguration>>({\n url: '/impersonation/authenticate',\n body: {\n ...data,\n dfp_telemetry_id,\n captcha_token,\n },\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n });\n }\n}\n","import { IConsumerSubscriptionService } from '../SubscriptionService';\nimport { logger } from '../utils';\nimport { RBACPolicy, RBACPolicyRaw } from '../rbac';\nimport { IHeadlessRBACClient, ConsumerPermissionsMap } from '../public/rbac';\nimport { StytchProjectConfigurationInput } from '../public/typeConfig';\n\ntype CachedConfig = {\n rbacPolicy: RBACPolicyRaw | null;\n};\n\ntype DynamicConfig = Promise<CachedConfig>;\n\nexport class HeadlessRBACClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessRBACClient\n{\n private cachedPolicy: RBACPolicy | null;\n private policyPromise: Promise<RBACPolicy>;\n constructor(\n cachedConfig: CachedConfig,\n dynamicConfig: DynamicConfig,\n private _subscriptionService: IConsumerSubscriptionService<TProjectConfiguration>,\n ) {\n this.cachedPolicy = cachedConfig.rbacPolicy ? RBACPolicy.fromJSON(cachedConfig.rbacPolicy) : null;\n this.policyPromise = dynamicConfig.then((data) => {\n if (!data.rbacPolicy) {\n logger.error('Unable to retrieve RBAC policy from servers. Assuming caller has no permissions.');\n return new RBACPolicy([], []);\n }\n // Update the existing policy too, so isAuthorizedSync will be up-to-date\n this.cachedPolicy = RBACPolicy.fromJSON(data.rbacPolicy);\n return this.cachedPolicy;\n });\n }\n\n allPermissions<Permissions extends Record<string, string>>() {\n return this.policyPromise.then(\n (policy) => policy.allPermissionsForCaller(this.roleIds()) as ConsumerPermissionsMap<Permissions>,\n );\n }\n\n isAuthorizedSync: IHeadlessRBACClient['isAuthorizedSync'] = (resourceId, action) => {\n return !!this.cachedPolicy?.callerIsAuthorized(this.roleIds(), resourceId as string, action as unknown as string);\n };\n\n isAuthorized: IHeadlessRBACClient['isAuthorized'] = (resourceId, action) => {\n return this.policyPromise.then((policy) =>\n policy.callerIsAuthorized(this.roleIds(), resourceId as string, action as unknown as string),\n );\n };\n\n private roleIds() {\n const user = this._subscriptionService.getUser();\n\n if (!user) {\n return [];\n }\n\n // Although user.roles is guaranteed to exist for fresh data, there is a chance\n // that the user stored in localstorage clientside comes from before roles were added to\n // the API response - in which case user.roles will be undefined and this will crash\n // TODO: [AUTH-2294] We can safely remove this ~3mos after RBAC is released\n return user.roles ?? [];\n }\n}\n","import { INetworkClient } from '../NetworkClient';\nimport {\n IHeadlessIDPClient,\n OAuthAuthorizeStartOptions,\n OAuthAuthorizeStartResponse,\n OAuthAuthorizeSubmitOptions,\n OAuthAuthorizeSubmitResponse,\n OAuthLogoutStartOptions,\n OAuthLogoutStartResponse,\n} from '../public/idp';\n\nexport class HeadlessIDPClient implements IHeadlessIDPClient {\n constructor(private _networkClient: INetworkClient) {}\n\n oauthAuthorizeStart = async (data: OAuthAuthorizeStartOptions): Promise<OAuthAuthorizeStartResponse> =>\n this._networkClient.fetchSDK<OAuthAuthorizeStartResponse>({\n url: '/idp/oauth/authorize/start',\n method: 'POST',\n body: data,\n });\n\n oauthAuthorizeSubmit = async (data: OAuthAuthorizeSubmitOptions): Promise<OAuthAuthorizeSubmitResponse> =>\n this._networkClient.fetchSDK<OAuthAuthorizeSubmitResponse>({\n url: '/idp/oauth/authorize/submit',\n method: 'POST',\n body: data,\n });\n\n oauthLogoutStart = async (data: OAuthLogoutStartOptions): Promise<OAuthLogoutStartResponse> =>\n this._networkClient.fetchSDK<OAuthLogoutStartResponse>({\n url: `/oauth/logout/start`,\n method: 'POST',\n body: data,\n });\n}\n","import { IHeadlessOAuthClient, OneTapPositions, StytchProjectConfigurationInput } from '@stytch/core/public';\nimport {\n HeadlessOAuthClient as BaseHeadlessOAuthClient,\n INetworkClient,\n IPKCEManager,\n IConsumerSubscriptionService,\n} from '@stytch/core';\nimport { OneTapProvider } from './oneTap/OneTapProvider';\nimport { OneTapRenderResult } from './oneTap/GoogleOneTapClient';\n\nexport type GoogleOneTapOAuthOptions = {\n /**\n * The URL that Stytch redirects to after the OAuth flow is completed for a user that already exists.\n * This URL should be an endpoint in the backend server that verifies the request by querying Stytch's /oauth/authenticate endpoint and finishes the login.\n * The URL should be configured as a Login URL in the Stytch Dashboard's Redirect URL page.\n * If the field is not specified, the default in the Dashboard is used.\n */\n login_redirect_url?: string;\n /**\n * The URL that Stytch redirects to after the OAuth flow is completed for a user that does not yet exist.\n * This URL should be an endpoint in the backend server that verifies the request by querying Stytch's /oauth/authenticate endpoint and finishes the login.\n * The URL should be configured as a Sign Up URL in the Stytch Dashboard's Redirect URL page.\n * If the field is not specified, the default in the Dashboard is used.\n */\n signup_redirect_url?: string;\n /**\n * An optional callback function that runs when a user explicitly cancels out of the one tap flow.\n * This callback may not be invoked immediately or at all depending on the behavior of the browser and Google's SDK.\n */\n onOneTapCancelled?: () => void;\n /**\n * Controls whether clicking outside the One Tap prompt dismisses the prompt.\n * Defaults to true.\n */\n cancel_on_tap_outside?: boolean;\n};\n\ninterface IGoogleOneTapOAuthProvider {\n /**\n * Start an OAuth flow by showing the Google one tap prompt in the top right corner of the user's browser.\n * You can configure this to be started by a user action (i.e Button click) or on load/render.\n * @example\n * const showGoogleOneTap = useCallback(()=> {\n * stytch.oauth.googleOneTap.start({\n * login_redirect_url: 'https://example.com/oauth/callback',\n * signup_redirect_url: 'https://example.com/oauth/callback',\n * })\n * }, [stytch]);\n * return (\n * <Button onClick={showGoogleOneTap}> Show Google one tap </Button>\n * );\n *\n * @param options - An {@link GoogleOneTapOAuthOptions} object\n *\n * @returns A {@link OneTapRenderResult} object. The result object includes if the one-tap prompt\n * was rendered, and a reason if it couldn't be rendered.\n *\n * @throws An Error if the one tap client cannot be created.\n */\n start(options?: GoogleOneTapOAuthOptions): Promise<OneTapRenderResult>;\n}\n\ntype DynamicConfig = Promise<{\n cnameDomain: null | string;\n pkceRequiredForOAuth: boolean;\n}>;\ntype Config = {\n publicToken: string;\n testAPIURL: string;\n liveAPIURL: string;\n};\n\nexport interface IWebOAuthClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n extends IHeadlessOAuthClient<TProjectConfiguration> {\n googleOneTap: IGoogleOneTapOAuthProvider;\n}\n\nexport class HeadlessOAuthClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n extends BaseHeadlessOAuthClient<TProjectConfiguration>\n implements IWebOAuthClient<TProjectConfiguration>\n{\n constructor(\n _networkClient: INetworkClient,\n _subscriptionService: IConsumerSubscriptionService<TProjectConfiguration>,\n _pkceManager: IPKCEManager,\n _dynamicConfig: DynamicConfig,\n _config: Config,\n private _oneTap: OneTapProvider,\n ) {\n super(_networkClient, _subscriptionService, _pkceManager, _dynamicConfig, _config);\n }\n\n private startOneTap = async (options: GoogleOneTapOAuthOptions): Promise<OneTapRenderResult> => {\n const clientResult = await this._oneTap.createOneTapClient();\n if (!clientResult.success) {\n throw new Error(`One Tap could not load: ${clientResult.reason}`);\n }\n\n const { client } = clientResult;\n\n const onSuccessCallback = this._oneTap.createOnSuccessHandler({\n signupRedirectUrl: options.signup_redirect_url,\n loginRedirectUrl: options.login_redirect_url,\n onSuccess: this._oneTap.redirectOnSuccess,\n });\n\n return client.render({\n style: {\n position: OneTapPositions.floating,\n },\n onOneTapCancelled: options.onOneTapCancelled,\n callback: onSuccessCallback,\n cancelOnTapOutside: options.cancel_on_tap_outside,\n });\n };\n\n googleOneTap: IGoogleOneTapOAuthProvider = {\n start: this.startOneTap,\n };\n}\n","import {\n checkNotSSR,\n checkPublicToken,\n DFPProtectedAuthProvider,\n HeadlessCryptoWalletClient,\n HeadlessMagicLinksClient,\n HeadlessOTPClient,\n HeadlessPasswordClient,\n HeadlessImpersonationClient,\n HeadlessSessionClient,\n HeadlessTOTPClient,\n HeadlessUserClient,\n HeadlessWebAuthnClient,\n INetworkClient,\n SearchDataManager,\n SessionManager,\n StateChangeClient,\n StateChangeRegisterFunction,\n VERTICAL_B2B,\n logger,\n HeadlessRBACClient,\n HeadlessIDPClient,\n} from '@stytch/core';\nimport {\n ConsumerState,\n IHeadlessCryptoWalletClient,\n IHeadlessMagicLinksClient,\n IHeadlessOTPsClient,\n IHeadlessPasswordClient,\n IHeadlessSessionClient,\n IHeadlessTOTPClient,\n IHeadlessUserClient,\n IHeadlessWebAuthnClient,\n IHeadlessImpersonationClient,\n StytchClientOptions,\n StytchProjectConfigurationInput,\n IHeadlessRBACClient,\n} from '@stytch/core/public';\nimport { BootstrapDataManager } from './BootstrapDataManager';\nimport { CaptchaProvider } from './CaptchaProvider';\nimport { ClientsideServicesProvider } from './ClientsideServicesProvider';\nimport { HeadlessOAuthClient, IWebOAuthClient } from './HeadlessOAuthClient';\nimport { NetworkClient } from './NetworkClient';\nimport { OneTapProvider } from './oneTap/OneTapProvider';\nimport { PKCEManager } from './PKCEManager';\nimport {\n ConsumerSubscriptionDataLayer,\n ConsumerSubscriptionService,\n getConsumerDataLayer,\n} from './SubscriptionService';\nimport { writeB2CInternals } from './utils/internal';\nimport { buildFinalConfig, hasCustomApiEndpoint } from './utils/config';\nimport { createAuthUrlHandler, AuthenticateByUrl, ParseAuthenticateUrl } from './utils/createAuthUrlHandler';\n\nexport type HandledTokenType = 'magic_links' | 'oauth' | 'impersonation';\n\n/**\n * A headless client used for invoking the Stytch API.\n * The Stytch Headless Client can be used as a drop-in solution for authentication and session management.\n * Full documentation can be found {@link https://stytch.com/docs/sdks/javascript-sdk online}.\n * @example\n * const stytch = new StytchClient('public-token-<find yours in the stytch dashboard>');\n * stytch.magicLinks.email.loginOrCreate('sandbox@stytch.com', {\n * login_magic_link_url: 'https://example.com/authenticate',\n * login_expiration_minutes: 60,\n * signup_magic_link_url: 'https://example.com/authenticate',\n * signup_expiration_minutes: 60,\n * });\n */\nexport class StytchClient<\n TProjectConfiguration extends StytchProjectConfigurationInput = Stytch.DefaultProjectConfiguration,\n> {\n private readonly _subscriptionService: ConsumerSubscriptionService<TProjectConfiguration>;\n private readonly _sessionManager: SessionManager<TProjectConfiguration>;\n private readonly _networkClient: INetworkClient;\n private readonly _dataLayer: ConsumerSubscriptionDataLayer;\n private readonly _stateChangeClient: StateChangeClient<ConsumerState>;\n\n // External API Clients\n user: IHeadlessUserClient;\n magicLinks: IHeadlessMagicLinksClient<TProjectConfiguration>;\n session: IHeadlessSessionClient<TProjectConfiguration>;\n otps: IHeadlessOTPsClient<TProjectConfiguration>;\n oauth: IWebOAuthClient<TProjectConfiguration>;\n cryptoWallets: IHeadlessCryptoWalletClient<TProjectConfiguration>;\n totps: IHeadlessTOTPClient<TProjectConfiguration>;\n webauthn: IHeadlessWebAuthnClient<TProjectConfiguration>;\n passwords: IHeadlessPasswordClient<TProjectConfiguration>;\n impersonation: IHeadlessImpersonationClient<TProjectConfiguration>;\n rbac: IHeadlessRBACClient;\n idp: HeadlessIDPClient;\n\n // External methods\n /**\n * Register a callback function to be invoked whenever certain state changes\n * occur, like a user or session object being updated.\n *\n * This is an alternative to more specific methods like `user.onChange` and\n * `session.onChange`. It can be helpful if you want to be notified of related\n * changes to different parts of state at once.\n *\n * If you are only interested in specific state changes, consider using more\n * specific methods like `user.onChange` and `session.onChange` instead.\n */\n onStateChange: StateChangeRegisterFunction<ConsumerState>;\n\n /**\n * Extracts token and token type from the current page URL's query parameters.\n * If the current URL do not have the required query params, this will return null.\n * Otherwise, returns an object { handled: boolean, tokenType: string, token: string }\n */\n parseAuthenticateUrl: ParseAuthenticateUrl<HandledTokenType>;\n\n /**\n * Call this method to authenticate the user when the user has been redirected\n * to this page with a token in the query parameters, such as after OAuth\n * or through an email magic link. This method currently supports\n *\n * - Magic links\n * - OAuth\n * - Impersonation\n *\n * Returns null if token or stytch_token_type query parameters are not present,\n * or returns an unhandled result if the token type is not recognized.\n */\n authenticateByUrl: AuthenticateByUrl<HandledTokenType>;\n\n constructor(publicTokenRaw: string, options?: StytchClientOptions) {\n checkNotSSR();\n\n // Intentionally check the raw public token so that we can log a correct error message,\n // but then coalesce to an empty string so that the UI components don't fail to render.\n checkPublicToken(publicTokenRaw);\n const _PUBLIC_TOKEN = publicTokenRaw ?? '';\n\n // Not casting to InternalStytchClientOptions since InternalStytchClientOptions is currently a superset\n const config = buildFinalConfig(this.constructor.name, options);\n const usingCustomApiEndpoint = hasCustomApiEndpoint(_PUBLIC_TOKEN, options);\n\n this._dataLayer = getConsumerDataLayer(_PUBLIC_TOKEN, config);\n this._subscriptionService = new ConsumerSubscriptionService(_PUBLIC_TOKEN, this._dataLayer, {\n usingCustomApiEndpoint,\n });\n this._stateChangeClient = new StateChangeClient(this._subscriptionService, {});\n this.onStateChange = (...args) => this._stateChangeClient.onStateChange(...args);\n\n const additionalTelemetryDataFn = () => ({\n stytch_user_id: this._dataLayer.state?.user?.user_id,\n stytch_session_id: this._dataLayer.state?.session?.session_id,\n });\n\n const passwordsPKCEManager = new PKCEManager(this._dataLayer, 'passwords');\n const networkClient = new NetworkClient(\n _PUBLIC_TOKEN,\n this._dataLayer,\n config.endpoints.liveAPIURL,\n config.endpoints.testAPIURL,\n additionalTelemetryDataFn,\n );\n this._networkClient = networkClient;\n\n const bootstrap = new BootstrapDataManager(_PUBLIC_TOKEN, this._networkClient, this._dataLayer);\n const captcha = new CaptchaProvider(bootstrap.getAsync());\n const dfpProtectedAuth = new DFPProtectedAuthProvider(\n _PUBLIC_TOKEN,\n config.endpoints.dfpBackendURL,\n config.endpoints.dfpCdnURL,\n bootstrap.getAsync(),\n captcha.executeRecaptcha,\n );\n const clientsideServices = new ClientsideServicesProvider(config.endpoints.clientsideServicesIframeURL);\n const oneTap = new OneTapProvider(_PUBLIC_TOKEN, clientsideServices);\n const searchManager = new SearchDataManager(this._networkClient, dfpProtectedAuth);\n\n this.user = new HeadlessUserClient(this._networkClient, this._subscriptionService);\n this.session = new HeadlessSessionClient(this._networkClient, this._subscriptionService);\n this.magicLinks = new HeadlessMagicLinksClient(\n this._networkClient,\n this._subscriptionService,\n new PKCEManager(this._dataLayer, 'magic_links'),\n passwordsPKCEManager,\n bootstrap.getAsync(),\n dfpProtectedAuth,\n );\n this.otps = new HeadlessOTPClient(\n this._networkClient,\n this._subscriptionService,\n captcha.executeRecaptcha,\n dfpProtectedAuth,\n );\n this.oauth = new HeadlessOAuthClient(\n this._networkClient,\n this._subscriptionService,\n new PKCEManager(this._dataLayer, 'oauth'),\n bootstrap.getAsync(),\n {\n publicToken: _PUBLIC_TOKEN,\n testAPIURL: config.endpoints.testAPIURL,\n liveAPIURL: config.endpoints.liveAPIURL,\n },\n oneTap,\n );\n this.cryptoWallets = new HeadlessCryptoWalletClient(\n this._networkClient,\n this._networkClient,\n this._subscriptionService,\n captcha.executeRecaptcha,\n dfpProtectedAuth,\n bootstrap.getAsync(),\n );\n this.totps = new HeadlessTOTPClient(this._networkClient, this._subscriptionService, dfpProtectedAuth);\n this.webauthn = new HeadlessWebAuthnClient(this._networkClient, this._subscriptionService, dfpProtectedAuth);\n this.passwords = new HeadlessPasswordClient(\n this._networkClient,\n this._subscriptionService,\n passwordsPKCEManager,\n bootstrap.getAsync(),\n dfpProtectedAuth,\n );\n this.impersonation = new HeadlessImpersonationClient(\n this._networkClient,\n this._subscriptionService,\n dfpProtectedAuth,\n );\n\n this.rbac = new HeadlessRBACClient(bootstrap.getSync(), bootstrap.getAsync(), this._subscriptionService);\n this.idp = new HeadlessIDPClient(this._networkClient);\n this._sessionManager = new SessionManager(this._subscriptionService, this.session, _PUBLIC_TOKEN, {\n keepSessionAlive: config.keepSessionAlive,\n });\n\n // If the session does not exist in localstorage (like if we are in an iframe)\n // then the cookie might still be set and we can retrieve the session via an API call.\n // If a custom API endpoint is being used, the session may be being managed by\n // HttpOnly cookies, which we can't detect.\n if (usingCustomApiEndpoint || this._dataLayer.readSessionCookie().session_token) {\n this._sessionManager.performBackgroundRefresh();\n }\n\n this._networkClient.logEvent({\n name: 'sdk_instance_instantiated',\n details: {\n event_callback_registered: false,\n error_callback_registered: false,\n success_callback_registered: false,\n },\n });\n\n bootstrap.getAsync().then((bootstrapData) => {\n if (bootstrapData.vertical === VERTICAL_B2B) {\n logger.error(\n 'This application is using a Stytch client for Consumer projects, but the public token is for a Stytch B2B project. Use a B2B Stytch client instead, or verify that the public token is correct.',\n );\n }\n });\n\n const { authenticateByUrl, parseAuthenticateUrl } = createAuthUrlHandler({\n magic_links: (token, options) => this.magicLinks.authenticate(token, options),\n oauth: (token, options) => this.oauth.authenticate(token, options),\n impersonation: (token: string) => this.impersonation.authenticate({ impersonation_token: token }),\n });\n\n this.authenticateByUrl = authenticateByUrl;\n this.parseAuthenticateUrl = parseAuthenticateUrl;\n\n writeB2CInternals(this, {\n bootstrap,\n clientsideServices,\n captcha,\n oneTap,\n searchManager,\n publicToken: _PUBLIC_TOKEN,\n dataLayer: this._dataLayer,\n networkClient: this._networkClient,\n });\n }\n}\n","import { StytchClient } from './StytchClient';\nimport { ssrSafeClientFactory } from './ui/react/bindings/StytchSSRProxy';\n\n/**\n * Creates a Headless Stytch client object to call the stytch APIs.\n * The Stytch client is not available serverside.\n * @example\n * const stytch = createStytchClient('public-token-<find yours in the stytch dashboard>')\n *\n * return (\n * <StytchProvider stytch={stytch}>\n * <App />\n * </StytchProvider>\n * )\n * @returns A {@link StytchClient}\n */\nexport const createStytchClient = ssrSafeClientFactory(StytchClient);\n\n/**\n * @deprecated Use createStytchClient instead\n */\nexport const createStytchHeadlessClient = createStytchClient;\n\n/**\n * @deprecated Use StytchClient instead\n */\nexport const StytchHeadlessClient = StytchClient;\n\nexport { StytchClient };\n\nexport { parseOAuthAuthorizeParams, parseOAuthLogoutParams } from './utils/idpHelpers';\nexport type { OAuthAuthorizeParams, OAuthLogoutParams } from './utils/idpHelpers';\n\nexport * from '@stytch/core/public';\n"],"names":["HeadlessUserClient","constructor","_subscriptionService","_networkClient","get","resp","fetchSDK","url","method","user","removeResponseCommon","updateUser","getSync","getUser","getInfo","fromCache","getFromCache","update","options","validateInDev","untrusted_metadata","body","__user","omitUser","deleteEmail","emailId","deletePhoneNumber","phoneId","deleteTOTP","totpId","deleteCryptoWallet","cryptoWalletId","deleteOAuthRegistration","oauthUserRegistrationId","deleteWebauthnRegistration","webAuthnId","deleteBiometricRegistration","biometricRegistrationId","onChange","callback","lastVal","listener","state","subscribeToState","getConnectedApps","revokedConnectedApp","connectedAppId","HeadlessSessionClient","authenticate","exchangeAccessToken","attest","getSession","session","revoke","destroyState","error","forceClear","UNRECOVERABLE_ERROR_TYPES","includes","error_type","_authenticate","initialSession","isSessionStale","session_id","requestBody","session_duration_minutes","destroySession","withUpdateSession","data","access_token","profile_id","token","getTokens","updateSession","tokens","session_token","session_jwt","updateTokens","HeadlessOTPClient","executeRecaptcha","Promise","resolve","undefined","dfpProtectedAuth","sms","loginOrCreate","phone_number","dfp_telemetry_id","captcha_token","getDFPTelemetryIDAndCaptcha","retriableFetchSDK","retryCallback","retryWithCaptchaAndDFP","send","isLoggedIn","endpoint","whatsapp","email","code","method_id","HeadlessOAuthClient","_pkceManager","_config","_dynamicConfig","google","start","startOAuthFlow","OAuthProviders","Google","apple","Apple","microsoft","Microsoft","github","Github","gitlab","GitLab","facebook","Facebook","discord","Discord","salesforce","Salesforce","slack","Slack","amazon","Amazon","bitbucket","Bitbucket","linkedin","LinkedIn","coinbase","Coinbase","twitch","Twitch","twitter","Twitter","tiktok","TikTok","snapchat","Snapchat","figma","Figma","yahoo","Yahoo","keyPair","getPKPair","logger","warn","code_verifier","clearPKPair","attach","provider","getBaseApiUrl","cnameDomain","isTestPublicToken","publicToken","testAPIURL","liveAPIURL","providerType","login_redirect_url","signup_redirect_url","custom_scopes","provider_params","oauth_attach_token","pkceRequiredForOAuth","baseURL","logEvent","name","details","provider_type","cname_domain","pkce","oauthUrl","URL","searchParams","set","startPKCETransaction","code_challenge","join","key","navigate","window","location","href","toString","HeadlessTOTPClient","recover","totp_code","recovery_code","create","expiration_minutes","recoveryCodes","HeadlessWebAuthnClient","register","checkEligibleInputs","eligibleInputs","document","querySelectorAll","length","domain","authenticator_type","is_passkey","override_id","override_name","override_display_name","use_base64_url_encoding","startResp","hostname","return_passkey_credential_options","user_agent","navigator","userAgent","publicKeyCredentialCreationOptions","public_key_credential_creation_options","publicKey","JSON","parse","credential","webauthnJson","public_key_credential","stringify","signal","conditional_mediation","disable_input_check","browserSupportsAutofill","publicKeyCredentialRequestOptions","public_key_credential_request_options","abortController","AbortController","credReqOptions","conditionalMediationCredReqOption","mediation","authenticationData","webauthn_registration_id","PublicKeyCredential","isConditionalMediationAvailable","HeadlessImpersonationClient","impersonation_token","HeadlessRBACClient","cachedPolicy","policyPromise","cachedConfig","dynamicConfig","isAuthorizedSync","resourceId","action","callerIsAuthorized","roleIds","isAuthorized","then","policy","rbacPolicy","RBACPolicy","fromJSON","allPermissions","allPermissionsForCaller","roles","HeadlessIDPClient","oauthAuthorizeStart","oauthAuthorizeSubmit","oauthLogoutStart","BaseHeadlessOAuthClient","_oneTap","startOneTap","clientResult","createOneTapClient","success","Error","reason","client","onSuccessCallback","createOnSuccessHandler","signupRedirectUrl","loginRedirectUrl","onSuccess","redirectOnSuccess","render","style","position","OneTapPositions","floating","onOneTapCancelled","cancelOnTapOutside","cancel_on_tap_outside","googleOneTap","StytchClient","_sessionManager","_dataLayer","_stateChangeClient","magicLinks","otps","oauth","cryptoWallets","totps","webauthn","passwords","impersonation","rbac","idp","onStateChange","parseAuthenticateUrl","authenticateByUrl","publicTokenRaw","checkNotSSR","checkPublicToken","_PUBLIC_TOKEN","config","buildFinalConfig","usingCustomApiEndpoint","hasCustomApiEndpoint","getConsumerDataLayer","ConsumerSubscriptionService","StateChangeClient","args","additionalTelemetryDataFn","stytch_user_id","user_id","stytch_session_id","passwordsPKCEManager","PKCEManager","networkClient","NetworkClient","endpoints","bootstrap","BootstrapDataManager","captcha","CaptchaProvider","getAsync","DFPProtectedAuthProvider","dfpBackendURL","dfpCdnURL","clientsideServices","ClientsideServicesProvider","clientsideServicesIframeURL","oneTap","OneTapProvider","searchManager","SearchDataManager","HeadlessMagicLinksClient","HeadlessCryptoWalletClient","HeadlessPasswordClient","SessionManager","keepSessionAlive","readSessionCookie","performBackgroundRefresh","event_callback_registered","error_callback_registered","success_callback_registered","bootstrapData","vertical","VERTICAL_B2B","createAuthUrlHandler","magic_links","writeB2CInternals","dataLayer","createStytchClient","ssrSafeClientFactory","createStytchHeadlessClient","StytchHeadlessClient"],"mappings":"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","x_google_ignoreList":[5]}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var StytchSSRProxy = require('./StytchSSRProxy-CxXsyme4.js');
3
+ var StytchSSRProxy = require('./StytchSSRProxy-d553KgcY.js');
4
4
  var React = require('react');
5
5
 
6
6
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
@@ -2178,4 +2178,4 @@ exports.passwordManagerDisableAutofillProps = passwordManagerDisableAutofillProp
2178
2178
  exports.useAsyncState = useAsyncState;
2179
2179
  exports.useLingui = useLingui;
2180
2180
  exports.useUniqueId = useUniqueId;
2181
- //# sourceMappingURL=passwordManagerDisableAutofillProps-D70WyvIu.js.map
2181
+ //# sourceMappingURL=passwordManagerDisableAutofillProps-CgiK2M_U.js.map