@stytch/react 20.0.0-next.4 → 20.0.0-next.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (316) 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 +2 -2
  4. package/dist/cjs/b2b/index.cjs +11 -8
  5. package/dist/cjs/b2b/index.cjs.map +1 -1
  6. package/dist/cjs/b2b/index.headless.cjs +456 -496
  7. package/dist/cjs/b2b/index.headless.cjs.map +1 -1
  8. package/dist/cjs/{idpHelpers-Bj_7pbfW.js → idpHelpers-UZaYQqT8.js} +111 -129
  9. package/dist/cjs/{idpHelpers-Bj_7pbfW.js.map → idpHelpers-UZaYQqT8.js.map} +1 -1
  10. package/dist/cjs/{index-BIjXBvf_.js → index-MDH3lelI.js} +2 -2
  11. package/dist/cjs/{index-BIjXBvf_.js.map → index-MDH3lelI.js.map} +1 -1
  12. package/dist/cjs/index.cjs +18 -14
  13. package/dist/cjs/index.cjs.map +1 -1
  14. package/dist/cjs/index.headless.cjs +401 -448
  15. package/dist/cjs/index.headless.cjs.map +1 -1
  16. package/dist/cjs/{passwordManagerDisableAutofillProps-DV31RTL_.js → passwordManagerDisableAutofillProps-BzR1GTDj.js} +42 -33
  17. package/dist/cjs/passwordManagerDisableAutofillProps-BzR1GTDj.js.map +1 -0
  18. package/dist/cjs/{shadcn-aVU6Lm9q.js → shadcn-BNtf3uZr.js} +7 -6
  19. package/dist/cjs/shadcn-BNtf3uZr.js.map +1 -0
  20. package/dist/cjs-dev/adminPortal/index.cjs +2 -2
  21. package/dist/cjs-dev/b2b/index.cjs +11 -8
  22. package/dist/cjs-dev/b2b/index.cjs.map +1 -1
  23. package/dist/cjs-dev/b2b/index.headless.cjs +468 -508
  24. package/dist/cjs-dev/b2b/index.headless.cjs.map +1 -1
  25. package/dist/cjs-dev/dev-DaCGDI6V.js.map +1 -1
  26. package/dist/cjs-dev/{idpHelpers-DOYYSxsX.js → idpHelpers-CVk39K69.js} +111 -129
  27. package/dist/cjs-dev/{idpHelpers-DOYYSxsX.js.map → idpHelpers-CVk39K69.js.map} +1 -1
  28. package/dist/cjs-dev/{index-rquGmIlv.js → index-BDTK8QN0.js} +2 -2
  29. package/dist/cjs-dev/{index-rquGmIlv.js.map → index-BDTK8QN0.js.map} +1 -1
  30. package/dist/cjs-dev/index.cjs +18 -14
  31. package/dist/cjs-dev/index.cjs.map +1 -1
  32. package/dist/cjs-dev/index.headless.cjs +405 -452
  33. package/dist/cjs-dev/index.headless.cjs.map +1 -1
  34. package/dist/cjs-dev/{passwordManagerDisableAutofillProps-CgiK2M_U.js → passwordManagerDisableAutofillProps--FLcEDiY.js} +42 -33
  35. package/dist/cjs-dev/passwordManagerDisableAutofillProps--FLcEDiY.js.map +1 -0
  36. package/dist/cjs-dev/{shadcn-DMk6ZSoD.js → shadcn-CvmoCuzj.js} +9 -8
  37. package/dist/cjs-dev/shadcn-CvmoCuzj.js.map +1 -0
  38. package/dist/esm/_virtual/index3.mjs +3 -5
  39. package/dist/esm/_virtual/index3.mjs.map +1 -1
  40. package/dist/esm/_virtual/index4.mjs +5 -3
  41. package/dist/esm/_virtual/index4.mjs.map +1 -1
  42. package/dist/esm/node_modules/@lingui/react/dist/index.mjs +14 -13
  43. package/dist/esm/node_modules/@lingui/react/dist/index.mjs.map +1 -1
  44. package/dist/esm/node_modules/@lingui/react/dist/shared/{react.31c3b5fa.mjs → react.8970326b.mjs} +32 -23
  45. package/dist/esm/node_modules/@lingui/react/dist/shared/react.8970326b.mjs.map +1 -0
  46. package/dist/esm/packages/core/src/DFPProtectedAuthProvider.mjs +39 -43
  47. package/dist/esm/packages/core/src/DFPProtectedAuthProvider.mjs.map +1 -1
  48. package/dist/esm/packages/core/src/EventLogger.mjs.map +1 -1
  49. package/dist/esm/packages/core/src/HeadlessClients/HeadlessCryptoWalletClient.mjs.map +1 -1
  50. package/dist/esm/packages/core/src/HeadlessClients/HeadlessIDPClient.mjs +15 -18
  51. package/dist/esm/packages/core/src/HeadlessClients/HeadlessIDPClient.mjs.map +1 -1
  52. package/dist/esm/packages/core/src/HeadlessClients/HeadlessImpersonationClient.mjs.map +1 -1
  53. package/dist/esm/packages/core/src/HeadlessClients/HeadlessMagicLinkClient.mjs.map +1 -1
  54. package/dist/esm/packages/core/src/HeadlessClients/HeadlessOAuthClient.mjs +58 -77
  55. package/dist/esm/packages/core/src/HeadlessClients/HeadlessOAuthClient.mjs.map +1 -1
  56. package/dist/esm/packages/core/src/HeadlessClients/HeadlessOTPClient.mjs +100 -103
  57. package/dist/esm/packages/core/src/HeadlessClients/HeadlessOTPClient.mjs.map +1 -1
  58. package/dist/esm/packages/core/src/HeadlessClients/HeadlessPasswordClient.mjs.map +1 -1
  59. package/dist/esm/packages/core/src/HeadlessClients/HeadlessRBACClient.mjs +6 -8
  60. package/dist/esm/packages/core/src/HeadlessClients/HeadlessRBACClient.mjs.map +1 -1
  61. package/dist/esm/packages/core/src/HeadlessClients/HeadlessSessionClient.mjs +77 -82
  62. package/dist/esm/packages/core/src/HeadlessClients/HeadlessSessionClient.mjs.map +1 -1
  63. package/dist/esm/packages/core/src/HeadlessClients/HeadlessTOTPClient.mjs.map +1 -1
  64. package/dist/esm/packages/core/src/HeadlessClients/HeadlessUserClient.mjs +111 -125
  65. package/dist/esm/packages/core/src/HeadlessClients/HeadlessUserClient.mjs.map +1 -1
  66. package/dist/esm/packages/core/src/HeadlessClients/HeadlessWebAuthnClient.mjs +10 -11
  67. package/dist/esm/packages/core/src/HeadlessClients/HeadlessWebAuthnClient.mjs.map +1 -1
  68. package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BDiscoveryClient.mjs.map +1 -1
  69. package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BIDPClient.mjs +16 -19
  70. package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BIDPClient.mjs.map +1 -1
  71. package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BImpersonationClient.mjs.map +1 -1
  72. package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BMagicLinkClient.mjs.map +1 -1
  73. package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BOAuthClient.mjs.map +1 -1
  74. package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BOTPsClient.mjs.map +1 -1
  75. package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BOrganizationClient.mjs +142 -153
  76. package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BOrganizationClient.mjs.map +1 -1
  77. package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BPasswordsClient.mjs.map +1 -1
  78. package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BRBACClient.mjs +7 -9
  79. package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BRBACClient.mjs.map +1 -1
  80. package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BRecoveryCodesClient.mjs.map +1 -1
  81. package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BSCIMClient.mjs.map +1 -1
  82. package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BSSOClient.mjs +67 -70
  83. package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BSSOClient.mjs.map +1 -1
  84. package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BSelfClient.mjs +81 -93
  85. package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BSelfClient.mjs.map +1 -1
  86. package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BSessionClient.mjs +67 -73
  87. package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BSessionClient.mjs.map +1 -1
  88. package/dist/esm/packages/core/src/HeadlessClients/b2b/HeadlessB2BTOTPsClient.mjs.map +1 -1
  89. package/dist/esm/packages/core/src/NetworkClient.mjs.map +1 -1
  90. package/dist/esm/packages/core/src/SearchManager.mjs.map +1 -1
  91. package/dist/esm/packages/core/src/SessionManager.mjs +28 -31
  92. package/dist/esm/packages/core/src/SessionManager.mjs.map +1 -1
  93. package/dist/esm/packages/core/src/StateChangeClient.mjs +5 -6
  94. package/dist/esm/packages/core/src/StateChangeClient.mjs.map +1 -1
  95. package/dist/esm/packages/core/src/public/SDKErrors.mjs.map +1 -1
  96. package/dist/esm/packages/core/src/rbac.mjs.map +1 -1
  97. package/dist/esm/packages/core/src/rpc/FrameClient.mjs.map +1 -1
  98. package/dist/esm/packages/web/src/BootstrapDataManager.mjs.map +1 -1
  99. package/dist/esm/packages/web/src/CaptchaProvider.mjs +10 -11
  100. package/dist/esm/packages/web/src/CaptchaProvider.mjs.map +1 -1
  101. package/dist/esm/packages/web/src/ClientsideServicesProvider.mjs +4 -8
  102. package/dist/esm/packages/web/src/ClientsideServicesProvider.mjs.map +1 -1
  103. package/dist/esm/packages/web/src/HeadlessOAuthClient.mjs +24 -24
  104. package/dist/esm/packages/web/src/HeadlessOAuthClient.mjs.map +1 -1
  105. package/dist/esm/packages/web/src/NetworkClient.mjs +4 -5
  106. package/dist/esm/packages/web/src/NetworkClient.mjs.map +1 -1
  107. package/dist/esm/packages/web/src/PKCEManager.mjs.map +1 -1
  108. package/dist/esm/packages/web/src/StytchClient.mjs.map +1 -1
  109. package/dist/esm/packages/web/src/SubscriptionService.mjs +8 -10
  110. package/dist/esm/packages/web/src/SubscriptionService.mjs.map +1 -1
  111. package/dist/esm/packages/web/src/adminPortal/utils/theme.mjs +1 -1
  112. package/dist/esm/packages/web/src/b2b/HeadlessB2BOAuthClient.mjs +48 -48
  113. package/dist/esm/packages/web/src/b2b/HeadlessB2BOAuthClient.mjs.map +1 -1
  114. package/dist/esm/packages/web/src/b2b/StytchB2BClient.mjs.map +1 -1
  115. package/dist/esm/packages/web/src/b2b/oneTap/B2BOneTapProvider.mjs +27 -30
  116. package/dist/esm/packages/web/src/b2b/oneTap/B2BOneTapProvider.mjs.map +1 -1
  117. package/dist/esm/packages/web/src/oneTap/GoogleOneTapClient.mjs.map +1 -1
  118. package/dist/esm/packages/web/src/oneTap/OneTapProvider.mjs +12 -14
  119. package/dist/esm/packages/web/src/oneTap/OneTapProvider.mjs.map +1 -1
  120. package/dist/esm/packages/web/src/ui/b2b/App.mjs +3 -1
  121. package/dist/esm/packages/web/src/ui/b2b/App.mjs.map +1 -1
  122. package/dist/esm/packages/web/src/ui/b2b/InternalAppContainer.mjs +1 -1
  123. package/dist/esm/packages/web/src/ui/b2b/InternalAppContainer.mjs.map +1 -1
  124. package/dist/esm/packages/web/src/ui/b2b/components/OAuthB2BButton.mjs +1 -1
  125. package/dist/esm/packages/web/src/ui/b2b/components/OAuthB2BButton.mjs.map +1 -1
  126. package/dist/esm/packages/web/src/ui/b2b/screens/SMSOTPEnrollScreen.mjs.map +1 -1
  127. package/dist/esm/packages/web/src/ui/b2c/AppContainer.mjs +1 -1
  128. package/dist/esm/packages/web/src/ui/b2c/AppContainer.mjs.map +1 -1
  129. package/dist/esm/packages/web/src/ui/b2c/IDPContainer.mjs +3 -1
  130. package/dist/esm/packages/web/src/ui/b2c/IDPContainer.mjs.map +1 -1
  131. package/dist/esm/packages/web/src/ui/b2c/PasskeyRegistrationContainer.mjs +1 -1
  132. package/dist/esm/packages/web/src/ui/b2c/PasskeyRegistrationContainer.mjs.map +1 -1
  133. package/dist/esm/packages/web/src/ui/b2c/ResetPasswordContainer.mjs +1 -1
  134. package/dist/esm/packages/web/src/ui/b2c/ResetPasswordContainer.mjs.map +1 -1
  135. package/dist/esm/packages/web/src/ui/b2c/components/GoogleOneTap.mjs +4 -2
  136. package/dist/esm/packages/web/src/ui/b2c/components/GoogleOneTap.mjs.map +1 -1
  137. package/dist/esm/packages/web/src/ui/b2c/screens/Main/index.mjs +2 -1
  138. package/dist/esm/packages/web/src/ui/b2c/screens/Main/index.mjs.map +1 -1
  139. package/dist/esm/packages/web/src/ui/components/PresentationConfig.mjs +2 -1
  140. package/dist/esm/packages/web/src/ui/components/PresentationConfig.mjs.map +1 -1
  141. package/dist/esm/packages/web/src/ui/components/mixins/Root.module.css.mjs +1 -1
  142. package/dist/esm/packages/web/src/ui/components/molecules/MainContainer.module.css.mjs +1 -1
  143. package/dist/esm/packages/web/src/ui/hooks/usePromptPasskey.mjs +3 -3
  144. package/dist/esm/packages/web/src/ui/hooks/usePromptPasskey.mjs.map +1 -1
  145. package/dist/esm/packages/web/src/ui/react/bindings/createB2BComponent.mjs +2 -2
  146. package/dist/esm/packages/web/src/ui/react/bindings/createB2BComponent.mjs.map +1 -1
  147. package/dist/esm/packages/web/src/ui/react/bindings/createB2CComponent.mjs +2 -2
  148. package/dist/esm/packages/web/src/ui/react/bindings/createB2CComponent.mjs.map +1 -1
  149. package/dist/esm/packages/web/src/utils/crypto.mjs +1 -1
  150. package/dist/esm-dev/_virtual/index.mjs +3 -5
  151. package/dist/esm-dev/_virtual/index.mjs.map +1 -1
  152. package/dist/esm-dev/_virtual/index2.mjs +5 -3
  153. package/dist/esm-dev/_virtual/index2.mjs.map +1 -1
  154. package/dist/esm-dev/_virtual/index3.mjs +5 -3
  155. package/dist/esm-dev/_virtual/index3.mjs.map +1 -1
  156. package/dist/esm-dev/_virtual/index4.mjs +3 -5
  157. package/dist/esm-dev/_virtual/index4.mjs.map +1 -1
  158. package/dist/esm-dev/node_modules/@lingui/react/dist/index.mjs +14 -13
  159. package/dist/esm-dev/node_modules/@lingui/react/dist/index.mjs.map +1 -1
  160. package/dist/esm-dev/node_modules/@lingui/react/dist/shared/{react.31c3b5fa.mjs → react.8970326b.mjs} +32 -23
  161. package/dist/esm-dev/node_modules/@lingui/react/dist/shared/react.8970326b.mjs.map +1 -0
  162. package/dist/esm-dev/node_modules/swr/core/dist/index.mjs +1 -1
  163. package/dist/esm-dev/node_modules/swr/infinite/dist/index.mjs +1 -1
  164. package/dist/esm-dev/packages/core/src/DFPProtectedAuthProvider.mjs +39 -43
  165. package/dist/esm-dev/packages/core/src/DFPProtectedAuthProvider.mjs.map +1 -1
  166. package/dist/esm-dev/packages/core/src/EventLogger.mjs.map +1 -1
  167. package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessCryptoWalletClient.mjs.map +1 -1
  168. package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessIDPClient.mjs +15 -18
  169. package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessIDPClient.mjs.map +1 -1
  170. package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessImpersonationClient.mjs.map +1 -1
  171. package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessMagicLinkClient.mjs.map +1 -1
  172. package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessOAuthClient.mjs +58 -77
  173. package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessOAuthClient.mjs.map +1 -1
  174. package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessOTPClient.mjs +100 -103
  175. package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessOTPClient.mjs.map +1 -1
  176. package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessPasswordClient.mjs.map +1 -1
  177. package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessRBACClient.mjs +6 -8
  178. package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessRBACClient.mjs.map +1 -1
  179. package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessSessionClient.mjs +77 -82
  180. package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessSessionClient.mjs.map +1 -1
  181. package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessTOTPClient.mjs.map +1 -1
  182. package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessUserClient.mjs +114 -128
  183. package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessUserClient.mjs.map +1 -1
  184. package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessWebAuthnClient.mjs +10 -11
  185. package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessWebAuthnClient.mjs.map +1 -1
  186. package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BDiscoveryClient.mjs.map +1 -1
  187. package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BIDPClient.mjs +16 -19
  188. package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BIDPClient.mjs.map +1 -1
  189. package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BImpersonationClient.mjs.map +1 -1
  190. package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BMagicLinkClient.mjs.map +1 -1
  191. package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BOAuthClient.mjs.map +1 -1
  192. package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BOTPsClient.mjs.map +1 -1
  193. package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BOrganizationClient.mjs +144 -155
  194. package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BOrganizationClient.mjs.map +1 -1
  195. package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BPasswordsClient.mjs.map +1 -1
  196. package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BRBACClient.mjs +7 -9
  197. package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BRBACClient.mjs.map +1 -1
  198. package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BRecoveryCodesClient.mjs.map +1 -1
  199. package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BSCIMClient.mjs.map +1 -1
  200. package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BSSOClient.mjs +67 -70
  201. package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BSSOClient.mjs.map +1 -1
  202. package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BSelfClient.mjs +88 -100
  203. package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BSelfClient.mjs.map +1 -1
  204. package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BSessionClient.mjs +70 -76
  205. package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BSessionClient.mjs.map +1 -1
  206. package/dist/esm-dev/packages/core/src/HeadlessClients/b2b/HeadlessB2BTOTPsClient.mjs.map +1 -1
  207. package/dist/esm-dev/packages/core/src/NetworkClient.mjs.map +1 -1
  208. package/dist/esm-dev/packages/core/src/SearchManager.mjs.map +1 -1
  209. package/dist/esm-dev/packages/core/src/SessionManager.mjs +28 -31
  210. package/dist/esm-dev/packages/core/src/SessionManager.mjs.map +1 -1
  211. package/dist/esm-dev/packages/core/src/StateChangeClient.mjs +5 -6
  212. package/dist/esm-dev/packages/core/src/StateChangeClient.mjs.map +1 -1
  213. package/dist/esm-dev/packages/core/src/public/SDKErrors.mjs.map +1 -1
  214. package/dist/esm-dev/packages/core/src/rbac.mjs.map +1 -1
  215. package/dist/esm-dev/packages/core/src/rpc/FrameClient.mjs.map +1 -1
  216. package/dist/esm-dev/packages/web/src/BootstrapDataManager.mjs.map +1 -1
  217. package/dist/esm-dev/packages/web/src/CaptchaProvider.mjs +10 -11
  218. package/dist/esm-dev/packages/web/src/CaptchaProvider.mjs.map +1 -1
  219. package/dist/esm-dev/packages/web/src/ClientsideServicesProvider.mjs +4 -8
  220. package/dist/esm-dev/packages/web/src/ClientsideServicesProvider.mjs.map +1 -1
  221. package/dist/esm-dev/packages/web/src/HeadlessOAuthClient.mjs +24 -24
  222. package/dist/esm-dev/packages/web/src/HeadlessOAuthClient.mjs.map +1 -1
  223. package/dist/esm-dev/packages/web/src/NetworkClient.mjs +4 -5
  224. package/dist/esm-dev/packages/web/src/NetworkClient.mjs.map +1 -1
  225. package/dist/esm-dev/packages/web/src/PKCEManager.mjs.map +1 -1
  226. package/dist/esm-dev/packages/web/src/StytchClient.mjs.map +1 -1
  227. package/dist/esm-dev/packages/web/src/SubscriptionService.mjs +8 -10
  228. package/dist/esm-dev/packages/web/src/SubscriptionService.mjs.map +1 -1
  229. package/dist/esm-dev/packages/web/src/adminPortal/memberManagement/AuthManagementSection.mjs +1 -1
  230. package/dist/esm-dev/packages/web/src/adminPortal/memberManagement/useMemberActivation.mjs +1 -1
  231. package/dist/esm-dev/packages/web/src/adminPortal/scim/SCIMConnectionDangerZoneSection.mjs +1 -1
  232. package/dist/esm-dev/packages/web/src/adminPortal/scim/SCIMConnectionTokenRotationSection.mjs +1 -1
  233. package/dist/esm-dev/packages/web/src/adminPortal/scim/SCIMNewConnectionScreen.mjs +1 -1
  234. package/dist/esm-dev/packages/web/src/adminPortal/sso/SSONewConnectionScreen.mjs +1 -1
  235. package/dist/esm-dev/packages/web/src/adminPortal/utils/theme.mjs +1 -1
  236. package/dist/esm-dev/packages/web/src/adminPortal/utils/useMutateMember.mjs +1 -1
  237. package/dist/esm-dev/packages/web/src/adminPortal/utils/useMutateOrganization.mjs +1 -1
  238. package/dist/esm-dev/packages/web/src/adminPortal/utils/useMutateScimConnection.mjs +1 -1
  239. package/dist/esm-dev/packages/web/src/adminPortal/utils/useMutateSsoConnection.mjs +1 -1
  240. package/dist/esm-dev/packages/web/src/adminPortal/utils/useRevalidateConnectionList.mjs +1 -1
  241. package/dist/esm-dev/packages/web/src/b2b/HeadlessB2BOAuthClient.mjs +48 -48
  242. package/dist/esm-dev/packages/web/src/b2b/HeadlessB2BOAuthClient.mjs.map +1 -1
  243. package/dist/esm-dev/packages/web/src/b2b/StytchB2BClient.mjs.map +1 -1
  244. package/dist/esm-dev/packages/web/src/b2b/oneTap/B2BOneTapProvider.mjs +27 -30
  245. package/dist/esm-dev/packages/web/src/b2b/oneTap/B2BOneTapProvider.mjs.map +1 -1
  246. package/dist/esm-dev/packages/web/src/oneTap/GoogleOneTapClient.mjs.map +1 -1
  247. package/dist/esm-dev/packages/web/src/oneTap/OneTapProvider.mjs +12 -14
  248. package/dist/esm-dev/packages/web/src/oneTap/OneTapProvider.mjs.map +1 -1
  249. package/dist/esm-dev/packages/web/src/ui/b2b/App.mjs +3 -1
  250. package/dist/esm-dev/packages/web/src/ui/b2b/App.mjs.map +1 -1
  251. package/dist/esm-dev/packages/web/src/ui/b2b/Container.mjs +1 -1
  252. package/dist/esm-dev/packages/web/src/ui/b2b/InternalAppContainer.mjs +1 -1
  253. package/dist/esm-dev/packages/web/src/ui/b2b/InternalAppContainer.mjs.map +1 -1
  254. package/dist/esm-dev/packages/web/src/ui/b2b/components/OAuthB2BButton.mjs +1 -1
  255. package/dist/esm-dev/packages/web/src/ui/b2b/components/OAuthB2BButton.mjs.map +1 -1
  256. package/dist/esm-dev/packages/web/src/ui/b2b/components/OrganizationRow.mjs +1 -1
  257. package/dist/esm-dev/packages/web/src/ui/b2b/screens/SMSOTPEnrollScreen.mjs.map +1 -1
  258. package/dist/esm-dev/packages/web/src/ui/b2c/AppContainer.mjs +1 -1
  259. package/dist/esm-dev/packages/web/src/ui/b2c/AppContainer.mjs.map +1 -1
  260. package/dist/esm-dev/packages/web/src/ui/b2c/IDPContainer.mjs +3 -1
  261. package/dist/esm-dev/packages/web/src/ui/b2c/IDPContainer.mjs.map +1 -1
  262. package/dist/esm-dev/packages/web/src/ui/b2c/PasskeyRegistrationContainer.mjs +1 -1
  263. package/dist/esm-dev/packages/web/src/ui/b2c/PasskeyRegistrationContainer.mjs.map +1 -1
  264. package/dist/esm-dev/packages/web/src/ui/b2c/ResetPasswordContainer.mjs +1 -1
  265. package/dist/esm-dev/packages/web/src/ui/b2c/ResetPasswordContainer.mjs.map +1 -1
  266. package/dist/esm-dev/packages/web/src/ui/b2c/components/GoogleOneTap.mjs +5 -3
  267. package/dist/esm-dev/packages/web/src/ui/b2c/components/GoogleOneTap.mjs.map +1 -1
  268. package/dist/esm-dev/packages/web/src/ui/b2c/screens/Main/LoginForm/index.mjs +1 -1
  269. package/dist/esm-dev/packages/web/src/ui/b2c/screens/Main/index.mjs +2 -1
  270. package/dist/esm-dev/packages/web/src/ui/b2c/screens/Main/index.mjs.map +1 -1
  271. package/dist/esm-dev/packages/web/src/ui/b2c/screens/Passkey/EditableRow.mjs +1 -1
  272. package/dist/esm-dev/packages/web/src/ui/components/PresentationConfig.mjs +2 -1
  273. package/dist/esm-dev/packages/web/src/ui/components/PresentationConfig.mjs.map +1 -1
  274. package/dist/esm-dev/packages/web/src/ui/components/atoms/AnimatedContainer.mjs +1 -1
  275. package/dist/esm-dev/packages/web/src/ui/components/atoms/Button.mjs +1 -1
  276. package/dist/esm-dev/packages/web/src/ui/components/atoms/CodeContainer.mjs +1 -1
  277. package/dist/esm-dev/packages/web/src/ui/components/atoms/Column.mjs +1 -1
  278. package/dist/esm-dev/packages/web/src/ui/components/atoms/Typography.mjs +1 -1
  279. package/dist/esm-dev/packages/web/src/ui/components/atoms/VerticalTransition.mjs +1 -1
  280. package/dist/esm-dev/packages/web/src/ui/components/atoms/VisuallyHidden.mjs +1 -1
  281. package/dist/esm-dev/packages/web/src/ui/components/mixins/Root.module.css.mjs +1 -1
  282. package/dist/esm-dev/packages/web/src/ui/components/molecules/Badge.mjs +1 -1
  283. package/dist/esm-dev/packages/web/src/ui/components/molecules/Input.mjs +1 -1
  284. package/dist/esm-dev/packages/web/src/ui/components/molecules/MainContainer.mjs +1 -1
  285. package/dist/esm-dev/packages/web/src/ui/components/molecules/MainContainer.module.css.mjs +1 -1
  286. package/dist/esm-dev/packages/web/src/ui/components/molecules/OtpInput.mjs +1 -1
  287. package/dist/esm-dev/packages/web/src/ui/components/molecules/PasswordStrengthCheck.mjs +1 -1
  288. package/dist/esm-dev/packages/web/src/ui/components/organisms/IDPConsentManifest.mjs +1 -1
  289. package/dist/esm-dev/packages/web/src/ui/components/organisms/OneTapError.mjs +2 -2
  290. package/dist/esm-dev/packages/web/src/ui/components/organisms/OneTapError.mjs.map +1 -1
  291. package/dist/esm-dev/packages/web/src/ui/hooks/usePromptPasskey.mjs +3 -3
  292. package/dist/esm-dev/packages/web/src/ui/hooks/usePromptPasskey.mjs.map +1 -1
  293. package/dist/esm-dev/packages/web/src/ui/react/bindings/createB2BComponent.mjs +2 -2
  294. package/dist/esm-dev/packages/web/src/ui/react/bindings/createB2BComponent.mjs.map +1 -1
  295. package/dist/esm-dev/packages/web/src/ui/react/bindings/createB2CComponent.mjs +2 -2
  296. package/dist/esm-dev/packages/web/src/ui/react/bindings/createB2CComponent.mjs.map +1 -1
  297. package/dist/esm-dev/packages/web/src/utils/crypto.mjs +1 -1
  298. package/dist/types/{PresentationConfig-B2jX85oV.d.ts → PresentationConfig-CdAymT0c.d.ts} +5 -0
  299. package/dist/types/{StytchB2BClient-D16e_lp1.d.ts → StytchB2BClient-DYF9xGAB.d.ts} +1 -1
  300. package/dist/types/{StytchClient-BwQdJzdj.d.ts → StytchClient-IyY7-cpI.d.ts} +1 -1
  301. package/dist/types/adminPortal/index.d.ts +3 -3
  302. package/dist/types/b2b/index.d.ts +7 -7
  303. package/dist/types/b2b/index.headless.d.ts +2 -2
  304. package/dist/types/compat.d.ts +1 -1
  305. package/dist/types/{createAuthUrlHandler-R1kNNQD_.d.ts → createAuthUrlHandler-CFZ0DGWC.d.ts} +6 -2
  306. package/dist/types/index.d.ts +7 -7
  307. package/dist/types/index.headless.d.ts +2 -2
  308. package/dist/types/{shadcn-CGdmyIUF.d.ts → shadcn-USiNERNw.d.ts} +4 -4
  309. package/messages/en.po +3 -3
  310. package/package.json +1 -1
  311. package/dist/cjs/passwordManagerDisableAutofillProps-DV31RTL_.js.map +0 -1
  312. package/dist/cjs/shadcn-aVU6Lm9q.js.map +0 -1
  313. package/dist/cjs-dev/passwordManagerDisableAutofillProps-CgiK2M_U.js.map +0 -1
  314. package/dist/cjs-dev/shadcn-DMk6ZSoD.js.map +0 -1
  315. package/dist/esm/node_modules/@lingui/react/dist/shared/react.31c3b5fa.mjs.map +0 -1
  316. package/dist/esm-dev/node_modules/@lingui/react/dist/shared/react.31c3b5fa.mjs.map +0 -1
@@ -8,107 +8,95 @@ class HeadlessB2BSelfClient {
8
8
  this._networkClient = _networkClient;
9
9
  this._apiNetworkClient = _apiNetworkClient;
10
10
  this._subscriptionService = _subscriptionService;
11
- this.get = async ()=>{
12
- const resp = await this._networkClient.fetchSDK({
13
- url: `/b2b/organizations/members/me`,
14
- method: 'GET'
15
- });
16
- this._subscriptionService.updateMember(resp.member);
17
- return resp.member;
18
- };
19
- this.getSync = ()=>{
20
- return this._subscriptionService.getMember();
21
- };
22
- this.getInfo = ()=>({
23
- member: this.getSync(),
24
- fromCache: this._subscriptionService.getFromCache()
25
- });
26
- this.onChange = (callback)=>{
27
- return this._subscriptionService.subscribeToState((state)=>callback(state?.member ?? null));
28
- };
29
- this.update = async (data)=>{
30
- validateInDev('stytch.self.update', data, {
31
- name: 'optionalString',
32
- untrusted_metadata: 'optionalObject',
33
- mfa_enrolled: 'optionalBoolean',
34
- mfa_phone_number: 'optionalString',
35
- default_mfa_method: 'optionalString'
36
- });
37
- const resp = await this._networkClient.fetchSDK({
38
- url: '/b2b/organizations/members/update',
39
- body: data,
40
- method: 'PUT'
41
- });
42
- this._subscriptionService.updateMember(resp.member);
43
- return resp;
44
- };
45
- this.deleteMFAPhoneNumber = async ()=>{
46
- const resp = await this._networkClient.fetchSDK({
47
- url: '/b2b/organizations/members/deletePhoneNumber',
48
- method: 'DELETE'
49
- });
50
- this._subscriptionService.updateMember(resp.member);
51
- return resp;
52
- };
53
- this.deleteMFATOTP = async ()=>{
54
- const resp = await this._networkClient.fetchSDK({
55
- url: `/b2b/organizations/members/deleteTOTP`,
56
- method: 'DELETE'
57
- });
58
- this._subscriptionService.updateMember(resp.member);
59
- return resp;
60
- };
61
- this.deletePassword = async (passwordId)=>{
62
- const resp = await this._networkClient.fetchSDK({
63
- url: `/b2b/organizations/members/passwords/${passwordId}`,
64
- method: 'DELETE'
65
- });
66
- this._subscriptionService.updateMember(resp.member);
67
- return resp;
68
- };
69
- this.unlinkRetiredEmail = async (data)=>{
70
- const resp = await this._apiNetworkClient.fetchSDK({
71
- url: '/b2b/organizations/members/unlink_retired_email',
72
- method: 'POST',
73
- body: data
74
- });
75
- this._subscriptionService.updateMember(resp.member);
76
- return resp;
77
- };
78
- this.startEmailUpdate = async (data)=>{
79
- const resp = await this._apiNetworkClient.fetchSDK({
80
- url: '/b2b/organizations/members/start_email_update',
81
- method: 'POST',
82
- body: data
83
- });
84
- this._subscriptionService.updateMember(resp.member);
85
- return resp;
86
- };
87
- this.getConnectedApps = async ()=>{
88
- return this._networkClient.fetchSDK({
89
- url: '/b2b/organizations/members/connected_apps',
90
- method: 'GET'
91
- });
92
- };
93
- this.revokeConnectedApp = async (data)=>{
94
- return this._networkClient.fetchSDK({
95
- url: `/b2b/organizations/members/connected_apps/${data.connected_app_id}/revoke`,
96
- method: 'POST'
97
- });
98
- };
99
11
  }
100
- get;
101
- getSync;
102
- getInfo;
103
- onChange;
104
- update;
105
- deleteMFAPhoneNumber;
106
- deleteMFATOTP;
107
- deletePassword;
108
- unlinkRetiredEmail;
109
- startEmailUpdate;
110
- getConnectedApps;
111
- revokeConnectedApp;
12
+ get = async ()=>{
13
+ const resp = await this._networkClient.fetchSDK({
14
+ url: `/b2b/organizations/members/me`,
15
+ method: 'GET'
16
+ });
17
+ this._subscriptionService.updateMember(resp.member);
18
+ return resp.member;
19
+ };
20
+ getSync = ()=>{
21
+ return this._subscriptionService.getMember();
22
+ };
23
+ getInfo = ()=>({
24
+ member: this.getSync(),
25
+ fromCache: this._subscriptionService.getFromCache()
26
+ });
27
+ onChange = (callback)=>{
28
+ return this._subscriptionService.subscribeToState((state)=>callback(state?.member ?? null));
29
+ };
30
+ update = async (data)=>{
31
+ validateInDev('stytch.self.update', data, {
32
+ name: 'optionalString',
33
+ untrusted_metadata: 'optionalObject',
34
+ mfa_enrolled: 'optionalBoolean',
35
+ mfa_phone_number: 'optionalString',
36
+ default_mfa_method: 'optionalString'
37
+ });
38
+ const resp = await this._networkClient.fetchSDK({
39
+ url: '/b2b/organizations/members/update',
40
+ body: data,
41
+ method: 'PUT'
42
+ });
43
+ this._subscriptionService.updateMember(resp.member);
44
+ return resp;
45
+ };
46
+ deleteMFAPhoneNumber = async ()=>{
47
+ const resp = await this._networkClient.fetchSDK({
48
+ url: '/b2b/organizations/members/deletePhoneNumber',
49
+ method: 'DELETE'
50
+ });
51
+ this._subscriptionService.updateMember(resp.member);
52
+ return resp;
53
+ };
54
+ deleteMFATOTP = async ()=>{
55
+ const resp = await this._networkClient.fetchSDK({
56
+ url: `/b2b/organizations/members/deleteTOTP`,
57
+ method: 'DELETE'
58
+ });
59
+ this._subscriptionService.updateMember(resp.member);
60
+ return resp;
61
+ };
62
+ deletePassword = async (passwordId)=>{
63
+ const resp = await this._networkClient.fetchSDK({
64
+ url: `/b2b/organizations/members/passwords/${passwordId}`,
65
+ method: 'DELETE'
66
+ });
67
+ this._subscriptionService.updateMember(resp.member);
68
+ return resp;
69
+ };
70
+ unlinkRetiredEmail = async (data)=>{
71
+ const resp = await this._apiNetworkClient.fetchSDK({
72
+ url: '/b2b/organizations/members/unlink_retired_email',
73
+ method: 'POST',
74
+ body: data
75
+ });
76
+ this._subscriptionService.updateMember(resp.member);
77
+ return resp;
78
+ };
79
+ startEmailUpdate = async (data)=>{
80
+ const resp = await this._apiNetworkClient.fetchSDK({
81
+ url: '/b2b/organizations/members/start_email_update',
82
+ method: 'POST',
83
+ body: data
84
+ });
85
+ this._subscriptionService.updateMember(resp.member);
86
+ return resp;
87
+ };
88
+ getConnectedApps = async ()=>{
89
+ return this._networkClient.fetchSDK({
90
+ url: '/b2b/organizations/members/connected_apps',
91
+ method: 'GET'
92
+ });
93
+ };
94
+ revokeConnectedApp = async (data)=>{
95
+ return this._networkClient.fetchSDK({
96
+ url: `/b2b/organizations/members/connected_apps/${data.connected_app_id}/revoke`,
97
+ method: 'POST'
98
+ });
99
+ };
112
100
  }
113
101
 
114
102
  export { HeadlessB2BSelfClient };
@@ -1 +1 @@
1
- {"version":3,"file":"HeadlessB2BSelfClient.mjs","sources":["../../../../../../../../core/src/HeadlessClients/b2b/HeadlessB2BSelfClient.ts"],"sourcesContent":["import {\n ResponseCommon,\n Member,\n IHeadlessB2BSelfClient,\n B2BMemberOnChangeCallback,\n B2BMemberUpdateOptions,\n B2BMemberUpdateResponse,\n B2BMemberDeleteMFAPhoneNumberResponse,\n B2BMemberDeletePasswordResponse,\n MemberInfo,\n B2BMemberUnlinkRetiredEmailRequest,\n B2BMemberUnlinkRetiredEmailResponse,\n B2BMemberStartEmailUpdateRequest,\n B2BMemberStartEmailUpdateResponse,\n StytchProjectConfigurationInput,\n B2BMemberGetConnectedAppsResponse,\n B2BMemberRevokeConnectedAppOptions,\n B2BMemberRevokeConnectedAppResponse,\n} from '../../public';\nimport { INetworkClient } from '../../NetworkClient';\nimport { IB2BSubscriptionService } from '../../SubscriptionService';\nimport { validateInDev } from '../../utils/dev';\n\nexport class HeadlessB2BSelfClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessB2BSelfClient\n{\n constructor(\n private _networkClient: INetworkClient,\n private _apiNetworkClient: INetworkClient,\n private _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n ) {}\n\n get = async (): Promise<Member | null> => {\n const resp = await this._networkClient.fetchSDK<{ member: Member } & ResponseCommon>({\n url: `/b2b/organizations/members/me`,\n method: 'GET',\n });\n this._subscriptionService.updateMember(resp.member);\n return resp.member;\n };\n\n getSync = (): Member | null => {\n return this._subscriptionService.getMember();\n };\n\n getInfo = (): MemberInfo => ({\n member: this.getSync(),\n fromCache: this._subscriptionService.getFromCache(),\n });\n\n onChange = (callback: B2BMemberOnChangeCallback) => {\n return this._subscriptionService.subscribeToState((state) => callback(state?.member ?? null));\n };\n\n update = async (data: B2BMemberUpdateOptions): Promise<B2BMemberUpdateResponse> => {\n validateInDev('stytch.self.update', data, {\n name: 'optionalString',\n untrusted_metadata: 'optionalObject',\n mfa_enrolled: 'optionalBoolean',\n mfa_phone_number: 'optionalString',\n default_mfa_method: 'optionalString',\n });\n\n const resp = await this._networkClient.fetchSDK<B2BMemberUpdateResponse>({\n url: '/b2b/organizations/members/update',\n body: data,\n method: 'PUT',\n });\n this._subscriptionService.updateMember(resp.member);\n return resp;\n };\n\n deleteMFAPhoneNumber = async (): Promise<B2BMemberDeleteMFAPhoneNumberResponse> => {\n const resp = await this._networkClient.fetchSDK<B2BMemberDeleteMFAPhoneNumberResponse>({\n url: '/b2b/organizations/members/deletePhoneNumber',\n method: 'DELETE',\n });\n this._subscriptionService.updateMember(resp.member);\n return resp;\n };\n\n deleteMFATOTP = async (): Promise<B2BMemberDeletePasswordResponse> => {\n const resp = await this._networkClient.fetchSDK<B2BMemberDeletePasswordResponse>({\n url: `/b2b/organizations/members/deleteTOTP`,\n method: 'DELETE',\n });\n this._subscriptionService.updateMember(resp.member);\n return resp;\n };\n\n deletePassword = async (passwordId: string): Promise<B2BMemberDeletePasswordResponse> => {\n const resp = await this._networkClient.fetchSDK<B2BMemberDeletePasswordResponse>({\n url: `/b2b/organizations/members/passwords/${passwordId}`,\n method: 'DELETE',\n });\n this._subscriptionService.updateMember(resp.member);\n return resp;\n };\n\n unlinkRetiredEmail = async (\n data: B2BMemberUnlinkRetiredEmailRequest,\n ): Promise<B2BMemberUnlinkRetiredEmailResponse> => {\n const resp = await this._apiNetworkClient.fetchSDK<B2BMemberUnlinkRetiredEmailResponse>({\n url: '/b2b/organizations/members/unlink_retired_email',\n method: 'POST',\n body: data,\n });\n this._subscriptionService.updateMember(resp.member);\n return resp;\n };\n\n startEmailUpdate = async (data: B2BMemberStartEmailUpdateRequest): Promise<B2BMemberStartEmailUpdateResponse> => {\n const resp = await this._apiNetworkClient.fetchSDK<B2BMemberStartEmailUpdateResponse>({\n url: '/b2b/organizations/members/start_email_update',\n method: 'POST',\n body: data,\n });\n this._subscriptionService.updateMember(resp.member);\n return resp;\n };\n\n getConnectedApps = async (): Promise<B2BMemberGetConnectedAppsResponse> => {\n return this._networkClient.fetchSDK<B2BMemberGetConnectedAppsResponse>({\n url: '/b2b/organizations/members/connected_apps',\n method: 'GET',\n });\n };\n\n revokeConnectedApp = async (\n data: B2BMemberRevokeConnectedAppOptions,\n ): Promise<B2BMemberRevokeConnectedAppResponse> => {\n return this._networkClient.fetchSDK<B2BMemberRevokeConnectedAppResponse>({\n url: `/b2b/organizations/members/connected_apps/${data.connected_app_id}/revoke`,\n method: 'POST',\n });\n };\n}\n"],"names":["HeadlessB2BSelfClient","constructor","_networkClient","_apiNetworkClient","_subscriptionService","get","resp","fetchSDK","url","method","updateMember","member","getSync","getMember","getInfo","fromCache","getFromCache","onChange","callback","subscribeToState","state","update","data","validateInDev","name","untrusted_metadata","mfa_enrolled","mfa_phone_number","default_mfa_method","body","deleteMFAPhoneNumber","deleteMFATOTP","deletePassword","passwordId","unlinkRetiredEmail","startEmailUpdate","getConnectedApps","revokeConnectedApp","connected_app_id"],"mappings":"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"}
1
+ {"version":3,"file":"HeadlessB2BSelfClient.mjs","sources":["../../../../../../../../core/src/HeadlessClients/b2b/HeadlessB2BSelfClient.ts"],"sourcesContent":["import {\n ResponseCommon,\n Member,\n IHeadlessB2BSelfClient,\n B2BMemberOnChangeCallback,\n B2BMemberUpdateOptions,\n B2BMemberUpdateResponse,\n B2BMemberDeleteMFAPhoneNumberResponse,\n B2BMemberDeletePasswordResponse,\n MemberInfo,\n B2BMemberUnlinkRetiredEmailRequest,\n B2BMemberUnlinkRetiredEmailResponse,\n B2BMemberStartEmailUpdateRequest,\n B2BMemberStartEmailUpdateResponse,\n StytchProjectConfigurationInput,\n B2BMemberGetConnectedAppsResponse,\n B2BMemberRevokeConnectedAppOptions,\n B2BMemberRevokeConnectedAppResponse,\n} from '../../public';\nimport { INetworkClient } from '../../NetworkClient';\nimport { IB2BSubscriptionService } from '../../SubscriptionService';\nimport { validateInDev } from '../../utils/dev';\n\nexport class HeadlessB2BSelfClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessB2BSelfClient\n{\n constructor(\n private _networkClient: INetworkClient,\n private _apiNetworkClient: INetworkClient,\n private _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n ) {}\n\n get = async (): Promise<Member | null> => {\n const resp = await this._networkClient.fetchSDK<{ member: Member } & ResponseCommon>({\n url: `/b2b/organizations/members/me`,\n method: 'GET',\n });\n this._subscriptionService.updateMember(resp.member);\n return resp.member;\n };\n\n getSync = (): Member | null => {\n return this._subscriptionService.getMember();\n };\n\n getInfo = (): MemberInfo => ({\n member: this.getSync(),\n fromCache: this._subscriptionService.getFromCache(),\n });\n\n onChange = (callback: B2BMemberOnChangeCallback) => {\n return this._subscriptionService.subscribeToState((state) => callback(state?.member ?? null));\n };\n\n update = async (data: B2BMemberUpdateOptions): Promise<B2BMemberUpdateResponse> => {\n validateInDev('stytch.self.update', data, {\n name: 'optionalString',\n untrusted_metadata: 'optionalObject',\n mfa_enrolled: 'optionalBoolean',\n mfa_phone_number: 'optionalString',\n default_mfa_method: 'optionalString',\n });\n\n const resp = await this._networkClient.fetchSDK<B2BMemberUpdateResponse>({\n url: '/b2b/organizations/members/update',\n body: data,\n method: 'PUT',\n });\n this._subscriptionService.updateMember(resp.member);\n return resp;\n };\n\n deleteMFAPhoneNumber = async (): Promise<B2BMemberDeleteMFAPhoneNumberResponse> => {\n const resp = await this._networkClient.fetchSDK<B2BMemberDeleteMFAPhoneNumberResponse>({\n url: '/b2b/organizations/members/deletePhoneNumber',\n method: 'DELETE',\n });\n this._subscriptionService.updateMember(resp.member);\n return resp;\n };\n\n deleteMFATOTP = async (): Promise<B2BMemberDeletePasswordResponse> => {\n const resp = await this._networkClient.fetchSDK<B2BMemberDeletePasswordResponse>({\n url: `/b2b/organizations/members/deleteTOTP`,\n method: 'DELETE',\n });\n this._subscriptionService.updateMember(resp.member);\n return resp;\n };\n\n deletePassword = async (passwordId: string): Promise<B2BMemberDeletePasswordResponse> => {\n const resp = await this._networkClient.fetchSDK<B2BMemberDeletePasswordResponse>({\n url: `/b2b/organizations/members/passwords/${passwordId}`,\n method: 'DELETE',\n });\n this._subscriptionService.updateMember(resp.member);\n return resp;\n };\n\n unlinkRetiredEmail = async (\n data: B2BMemberUnlinkRetiredEmailRequest,\n ): Promise<B2BMemberUnlinkRetiredEmailResponse> => {\n const resp = await this._apiNetworkClient.fetchSDK<B2BMemberUnlinkRetiredEmailResponse>({\n url: '/b2b/organizations/members/unlink_retired_email',\n method: 'POST',\n body: data,\n });\n this._subscriptionService.updateMember(resp.member);\n return resp;\n };\n\n startEmailUpdate = async (data: B2BMemberStartEmailUpdateRequest): Promise<B2BMemberStartEmailUpdateResponse> => {\n const resp = await this._apiNetworkClient.fetchSDK<B2BMemberStartEmailUpdateResponse>({\n url: '/b2b/organizations/members/start_email_update',\n method: 'POST',\n body: data,\n });\n this._subscriptionService.updateMember(resp.member);\n return resp;\n };\n\n getConnectedApps = async (): Promise<B2BMemberGetConnectedAppsResponse> => {\n return this._networkClient.fetchSDK<B2BMemberGetConnectedAppsResponse>({\n url: '/b2b/organizations/members/connected_apps',\n method: 'GET',\n });\n };\n\n revokeConnectedApp = async (\n data: B2BMemberRevokeConnectedAppOptions,\n ): Promise<B2BMemberRevokeConnectedAppResponse> => {\n return this._networkClient.fetchSDK<B2BMemberRevokeConnectedAppResponse>({\n url: `/b2b/organizations/members/connected_apps/${data.connected_app_id}/revoke`,\n method: 'POST',\n });\n };\n}\n"],"names":["HeadlessB2BSelfClient","_networkClient","_apiNetworkClient","_subscriptionService","get","resp","fetchSDK","url","method","updateMember","member","getSync","getMember","getInfo","fromCache","getFromCache","onChange","callback","subscribeToState","state","update","data","validateInDev","name","untrusted_metadata","mfa_enrolled","mfa_phone_number","default_mfa_method","body","deleteMFAPhoneNumber","deleteMFATOTP","deletePassword","passwordId","unlinkRetiredEmail","startEmailUpdate","getConnectedApps","revokeConnectedApp","connected_app_id"],"mappings":"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"}
@@ -4,31 +4,18 @@ import { UNRECOVERABLE_ERROR_TYPES } from '../../public/SDKErrors.mjs';
4
4
  class HeadlessB2BSessionClient {
5
5
  _networkClient;
6
6
  _subscriptionService;
7
- getSync;
8
- getInfo;
9
- onChange;
10
- revoke;
11
- revokeForMember;
12
- _authenticate;
13
- authenticate;
14
- exchange;
15
- exchangeAccessToken;
16
- attest;
17
- constructor(_networkClient, _subscriptionService){
18
- this._networkClient = _networkClient;
19
- this._subscriptionService = _subscriptionService;
20
- this.getSync = ()=>{
21
- return this._subscriptionService.getSession();
22
- };
23
- this.getInfo = ()=>({
24
- session: this.getSync(),
25
- fromCache: this._subscriptionService.getFromCache()
26
- });
27
- this.onChange = (callback)=>{
28
- return this._subscriptionService.subscribeToState((state)=>callback(state?.session ?? null));
29
- };
30
- this.revoke = async (options)=>{
31
- /**
7
+ getSync = ()=>{
8
+ return this._subscriptionService.getSession();
9
+ };
10
+ getInfo = ()=>({
11
+ session: this.getSync(),
12
+ fromCache: this._subscriptionService.getFromCache()
13
+ });
14
+ onChange = (callback)=>{
15
+ return this._subscriptionService.subscribeToState((state)=>callback(state?.session ?? null));
16
+ };
17
+ revoke = async (options)=>{
18
+ /**
32
19
  * Revoke destroys the local state if the API request is successful
33
20
  * or if we return an unrecoverable error (user is unauthenticated)
34
21
  * or if the developer passes in a forceClear option.
@@ -36,62 +23,69 @@ class HeadlessB2BSessionClient {
36
23
  * we do not destroy the local state to let the developer manually add retry
37
24
  * logic to call revoke again.
38
25
  */ try {
39
- const resp = await this._networkClient.fetchSDK({
40
- url: `/b2b/sessions/revoke`,
41
- method: 'POST'
42
- });
26
+ const resp = await this._networkClient.fetchSDK({
27
+ url: `/b2b/sessions/revoke`,
28
+ method: 'POST'
29
+ });
30
+ this._subscriptionService.destroyState();
31
+ return resp;
32
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
33
+ } catch (error) {
34
+ if (options?.forceClear) {
35
+ this._subscriptionService.destroyState();
36
+ } else if (UNRECOVERABLE_ERROR_TYPES.includes(error.error_type)) {
43
37
  this._subscriptionService.destroyState();
44
- return resp;
45
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
46
- } catch (error) {
47
- if (options?.forceClear) {
48
- this._subscriptionService.destroyState();
49
- } else if (UNRECOVERABLE_ERROR_TYPES.includes(error.error_type)) {
50
- this._subscriptionService.destroyState();
51
- }
52
- throw error;
53
38
  }
54
- };
55
- this.revokeForMember = async (options)=>{
56
- validateInDev('stytch.session.revokeForMember', options, {
57
- member_id: 'string'
58
- });
59
- return await this._networkClient.fetchSDK({
60
- url: `/b2b/sessions/revoke/${options.member_id}`,
39
+ throw error;
40
+ }
41
+ };
42
+ revokeForMember = async (options)=>{
43
+ validateInDev('stytch.session.revokeForMember', options, {
44
+ member_id: 'string'
45
+ });
46
+ return await this._networkClient.fetchSDK({
47
+ url: `/b2b/sessions/revoke/${options.member_id}`,
48
+ method: 'POST'
49
+ });
50
+ };
51
+ _authenticate = async (options)=>{
52
+ const initialSession = this._subscriptionService.getSession();
53
+ const isSessionStale = ()=>initialSession?.member_session_id !== this._subscriptionService.getSession()?.member_session_id;
54
+ try {
55
+ const requestBody = {
56
+ session_duration_minutes: options?.session_duration_minutes
57
+ };
58
+ const resp = await this._networkClient.fetchSDK({
59
+ url: '/b2b/sessions/authenticate',
60
+ body: requestBody,
61
61
  method: 'POST'
62
62
  });
63
- };
64
- this._authenticate = async (options)=>{
65
- const initialSession = this._subscriptionService.getSession();
66
- const isSessionStale = ()=>initialSession?.member_session_id !== this._subscriptionService.getSession()?.member_session_id;
67
- try {
68
- const requestBody = {
69
- session_duration_minutes: options?.session_duration_minutes
70
- };
71
- const resp = await this._networkClient.fetchSDK({
72
- url: '/b2b/sessions/authenticate',
73
- body: requestBody,
74
- method: 'POST'
75
- });
76
- if (isSessionStale()) {
77
- // [SDK-1336] The session was updated out from under us while the
78
- // request was in flight; discard the response and retry
79
- return this._authenticate(options);
80
- }
81
- return resp;
82
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
83
- } catch (error) {
84
- if (isSessionStale()) {
85
- // [SDK-1336] The session was updated out from under us while the
86
- // request was in flight; discard the response and retry
87
- return this._authenticate(options);
88
- }
89
- if (UNRECOVERABLE_ERROR_TYPES.includes(error.error_type)) {
90
- this._subscriptionService.destroySession();
91
- }
92
- throw error;
63
+ if (isSessionStale()) {
64
+ // [SDK-1336] The session was updated out from under us while the
65
+ // request was in flight; discard the response and retry
66
+ return this._authenticate(options);
93
67
  }
94
- };
68
+ return resp;
69
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
70
+ } catch (error) {
71
+ if (isSessionStale()) {
72
+ // [SDK-1336] The session was updated out from under us while the
73
+ // request was in flight; discard the response and retry
74
+ return this._authenticate(options);
75
+ }
76
+ if (UNRECOVERABLE_ERROR_TYPES.includes(error.error_type)) {
77
+ this._subscriptionService.destroySession();
78
+ }
79
+ throw error;
80
+ }
81
+ };
82
+ authenticate;
83
+ exchange;
84
+ exchangeAccessToken;
85
+ attest;
86
+ constructor(_networkClient, _subscriptionService){
87
+ this._networkClient = _networkClient;
88
+ this._subscriptionService = _subscriptionService;
95
89
  this.authenticate = this._subscriptionService.withUpdateSession(this._authenticate);
96
90
  this.exchange = this._subscriptionService.withUpdateSession(async (data)=>{
97
91
  validateInDev('stytch.session.exchange', data, {
@@ -1 +1 @@
1
- {"version":3,"file":"HeadlessB2BSessionClient.mjs","sources":["../../../../../../../../core/src/HeadlessClients/b2b/HeadlessB2BSessionClient.ts"],"sourcesContent":["import {\n IHeadlessB2BSessionClient,\n B2BSessionOnChangeCallback,\n SessionRevokeResponse,\n SessionAuthenticateOptions,\n B2BSessionAuthenticateResponse,\n B2BSessionRevokeOptions,\n SessionTokensUpdate,\n UNRECOVERABLE_ERROR_TYPES,\n B2BSessionExchangeOptions,\n B2BSessionExchangeResponse,\n MemberSessionInfo,\n StytchProjectConfigurationInput,\n SessionTokens,\n B2BSessionAccessTokenExchangeOptions,\n B2BSessionAccessTokenExchangeResponse,\n B2BSessionAttestResponse,\n B2BSessionAttestOptions,\n} from '../../public';\nimport { INetworkClient, IB2BSubscriptionService, IfOpaqueTokens, ExtractOpaqueTokens } from '../..';\nimport { validateInDev } from '../../utils/dev';\n\nexport class HeadlessB2BSessionClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessB2BSessionClient<TProjectConfiguration>\n{\n getSync = () => {\n return this._subscriptionService.getSession();\n };\n\n getInfo = (): MemberSessionInfo => ({\n session: this.getSync(),\n fromCache: this._subscriptionService.getFromCache(),\n });\n\n onChange = (callback: B2BSessionOnChangeCallback) => {\n return this._subscriptionService.subscribeToState((state) => callback(state?.session ?? null));\n };\n\n revoke = async (options?: B2BSessionRevokeOptions) => {\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 passes 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 try {\n const resp = await this._networkClient.fetchSDK<SessionRevokeResponse>({\n url: `/b2b/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 revokeForMember = async (options: { member_id: string }) => {\n validateInDev('stytch.session.revokeForMember', options, {\n member_id: 'string',\n });\n\n return await this._networkClient.fetchSDK<SessionRevokeResponse>({\n url: `/b2b/sessions/revoke/${options.member_id}`,\n method: 'POST',\n });\n };\n\n private _authenticate = async (\n options?: SessionAuthenticateOptions,\n ): Promise<B2BSessionAuthenticateResponse<TProjectConfiguration>> => {\n const initialSession = this._subscriptionService.getSession();\n const isSessionStale = () =>\n initialSession?.member_session_id !== this._subscriptionService.getSession()?.member_session_id;\n\n try {\n const requestBody = {\n session_duration_minutes: options?.session_duration_minutes,\n };\n const resp = await this._networkClient.fetchSDK<B2BSessionAuthenticateResponse<TProjectConfiguration>>({\n url: '/b2b/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 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 authenticate: (\n options?: SessionAuthenticateOptions,\n ) => Promise<B2BSessionAuthenticateResponse<TProjectConfiguration>>;\n\n exchange: (data: B2BSessionExchangeOptions) => Promise<B2BSessionExchangeResponse<TProjectConfiguration>>;\n\n exchangeAccessToken: (\n data: B2BSessionAccessTokenExchangeOptions,\n ) => Promise<B2BSessionAccessTokenExchangeResponse<TProjectConfiguration>>;\n\n attest: (data: B2BSessionAttestOptions) => Promise<B2BSessionAttestResponse<TProjectConfiguration>>;\n\n constructor(\n private _networkClient: INetworkClient,\n private _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n ) {\n this.authenticate = this._subscriptionService.withUpdateSession(this._authenticate);\n\n this.exchange = this._subscriptionService.withUpdateSession(async (data: B2BSessionExchangeOptions) => {\n validateInDev('stytch.session.exchange', data, {\n organization_id: 'string',\n session_duration_minutes: 'number',\n locale: 'optionalString',\n });\n\n return this._networkClient.fetchSDK<B2BSessionExchangeResponse<TProjectConfiguration>>({\n url: '/b2b/sessions/exchange',\n body: data,\n method: 'POST',\n });\n });\n\n this.exchangeAccessToken = this._subscriptionService.withUpdateSession(\n async (data: B2BSessionAccessTokenExchangeOptions) => {\n validateInDev('stytch.session.exchange', data, {\n access_token: 'string',\n session_duration_minutes: 'number',\n });\n return this._networkClient.fetchSDK<B2BSessionAccessTokenExchangeResponse<TProjectConfiguration>>({\n url: '/b2b/sessions/exchange_access_token',\n body: data,\n method: 'POST',\n });\n },\n );\n\n this.attest = this._subscriptionService.withUpdateSession(async (data: B2BSessionAttestOptions) => {\n validateInDev('stytch.session.attest', data, {\n organization_id: 'optionalString',\n profile_id: 'string',\n token: 'string',\n session_duration_minutes: 'optionalNumber',\n });\n\n return this._networkClient.fetchSDK<B2BSessionAttestResponse<TProjectConfiguration>>({\n url: '/b2b/sessions/attest',\n body: data,\n method: 'POST',\n });\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"],"names":["HeadlessB2BSessionClient","getSync","getInfo","onChange","revoke","revokeForMember","_authenticate","authenticate","exchange","exchangeAccessToken","attest","constructor","_subscriptionService","_networkClient","getSession","session","fromCache","getFromCache","callback","subscribeToState","state","options","resp","fetchSDK","url","method","destroyState","error","forceClear","UNRECOVERABLE_ERROR_TYPES","includes","error_type","validateInDev","member_id","initialSession","isSessionStale","member_session_id","requestBody","session_duration_minutes","body","destroySession","withUpdateSession","data","organization_id","locale","access_token","profile_id","token","getTokens","updateSession","tokens","session_token","session_jwt","updateTokens"],"mappings":"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"}
1
+ {"version":3,"file":"HeadlessB2BSessionClient.mjs","sources":["../../../../../../../../core/src/HeadlessClients/b2b/HeadlessB2BSessionClient.ts"],"sourcesContent":["import {\n IHeadlessB2BSessionClient,\n B2BSessionOnChangeCallback,\n SessionRevokeResponse,\n SessionAuthenticateOptions,\n B2BSessionAuthenticateResponse,\n B2BSessionRevokeOptions,\n SessionTokensUpdate,\n UNRECOVERABLE_ERROR_TYPES,\n B2BSessionExchangeOptions,\n B2BSessionExchangeResponse,\n MemberSessionInfo,\n StytchProjectConfigurationInput,\n SessionTokens,\n B2BSessionAccessTokenExchangeOptions,\n B2BSessionAccessTokenExchangeResponse,\n B2BSessionAttestResponse,\n B2BSessionAttestOptions,\n} from '../../public';\nimport { INetworkClient, IB2BSubscriptionService, IfOpaqueTokens, ExtractOpaqueTokens } from '../..';\nimport { validateInDev } from '../../utils/dev';\n\nexport class HeadlessB2BSessionClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessB2BSessionClient<TProjectConfiguration>\n{\n getSync = () => {\n return this._subscriptionService.getSession();\n };\n\n getInfo = (): MemberSessionInfo => ({\n session: this.getSync(),\n fromCache: this._subscriptionService.getFromCache(),\n });\n\n onChange = (callback: B2BSessionOnChangeCallback) => {\n return this._subscriptionService.subscribeToState((state) => callback(state?.session ?? null));\n };\n\n revoke = async (options?: B2BSessionRevokeOptions) => {\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 passes 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 try {\n const resp = await this._networkClient.fetchSDK<SessionRevokeResponse>({\n url: `/b2b/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 revokeForMember = async (options: { member_id: string }) => {\n validateInDev('stytch.session.revokeForMember', options, {\n member_id: 'string',\n });\n\n return await this._networkClient.fetchSDK<SessionRevokeResponse>({\n url: `/b2b/sessions/revoke/${options.member_id}`,\n method: 'POST',\n });\n };\n\n private _authenticate = async (\n options?: SessionAuthenticateOptions,\n ): Promise<B2BSessionAuthenticateResponse<TProjectConfiguration>> => {\n const initialSession = this._subscriptionService.getSession();\n const isSessionStale = () =>\n initialSession?.member_session_id !== this._subscriptionService.getSession()?.member_session_id;\n\n try {\n const requestBody = {\n session_duration_minutes: options?.session_duration_minutes,\n };\n const resp = await this._networkClient.fetchSDK<B2BSessionAuthenticateResponse<TProjectConfiguration>>({\n url: '/b2b/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 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 authenticate: (\n options?: SessionAuthenticateOptions,\n ) => Promise<B2BSessionAuthenticateResponse<TProjectConfiguration>>;\n\n exchange: (data: B2BSessionExchangeOptions) => Promise<B2BSessionExchangeResponse<TProjectConfiguration>>;\n\n exchangeAccessToken: (\n data: B2BSessionAccessTokenExchangeOptions,\n ) => Promise<B2BSessionAccessTokenExchangeResponse<TProjectConfiguration>>;\n\n attest: (data: B2BSessionAttestOptions) => Promise<B2BSessionAttestResponse<TProjectConfiguration>>;\n\n constructor(\n private _networkClient: INetworkClient,\n private _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n ) {\n this.authenticate = this._subscriptionService.withUpdateSession(this._authenticate);\n\n this.exchange = this._subscriptionService.withUpdateSession(async (data: B2BSessionExchangeOptions) => {\n validateInDev('stytch.session.exchange', data, {\n organization_id: 'string',\n session_duration_minutes: 'number',\n locale: 'optionalString',\n });\n\n return this._networkClient.fetchSDK<B2BSessionExchangeResponse<TProjectConfiguration>>({\n url: '/b2b/sessions/exchange',\n body: data,\n method: 'POST',\n });\n });\n\n this.exchangeAccessToken = this._subscriptionService.withUpdateSession(\n async (data: B2BSessionAccessTokenExchangeOptions) => {\n validateInDev('stytch.session.exchange', data, {\n access_token: 'string',\n session_duration_minutes: 'number',\n });\n return this._networkClient.fetchSDK<B2BSessionAccessTokenExchangeResponse<TProjectConfiguration>>({\n url: '/b2b/sessions/exchange_access_token',\n body: data,\n method: 'POST',\n });\n },\n );\n\n this.attest = this._subscriptionService.withUpdateSession(async (data: B2BSessionAttestOptions) => {\n validateInDev('stytch.session.attest', data, {\n organization_id: 'optionalString',\n profile_id: 'string',\n token: 'string',\n session_duration_minutes: 'optionalNumber',\n });\n\n return this._networkClient.fetchSDK<B2BSessionAttestResponse<TProjectConfiguration>>({\n url: '/b2b/sessions/attest',\n body: data,\n method: 'POST',\n });\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"],"names":["HeadlessB2BSessionClient","getSync","_subscriptionService","getSession","getInfo","session","fromCache","getFromCache","onChange","callback","subscribeToState","state","revoke","options","resp","_networkClient","fetchSDK","url","method","destroyState","error","forceClear","UNRECOVERABLE_ERROR_TYPES","includes","error_type","revokeForMember","validateInDev","member_id","_authenticate","initialSession","isSessionStale","member_session_id","requestBody","session_duration_minutes","body","destroySession","authenticate","exchange","exchangeAccessToken","attest","withUpdateSession","data","organization_id","locale","access_token","profile_id","token","getTokens","updateSession","tokens","session_token","session_jwt","updateTokens"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"HeadlessB2BTOTPsClient.mjs","sources":["../../../../../../../../core/src/HeadlessClients/b2b/HeadlessB2BTOTPsClient.ts"],"sourcesContent":["import { IB2BSubscriptionService, IDFPProtectedAuthProvider, INetworkClient } from '../..';\nimport {\n B2BTOTPAuthenticateOptions,\n B2BTOTPAuthenticateResponse,\n B2BTOTPCreateOptions,\n B2BTOTPCreateResponse,\n IHeadlessB2BTOTPsClient,\n} from '../../public/b2b/totp';\nimport { StytchProjectConfigurationInput } from '../../public/typeConfig';\nimport { validateInDev } from '../../utils/dev';\n\nexport class HeadlessB2BTOTPsClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessB2BTOTPsClient<TProjectConfiguration>\n{\n authenticate: (data: B2BTOTPAuthenticateOptions) => Promise<B2BTOTPAuthenticateResponse<TProjectConfiguration>>;\n\n constructor(\n private _networkClient: INetworkClient,\n private _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n private dfpProtectedAuth: IDFPProtectedAuthProvider,\n ) {\n this.authenticate = this._subscriptionService.withUpdateSession(\n async (data: B2BTOTPAuthenticateOptions): Promise<B2BTOTPAuthenticateResponse<TProjectConfiguration>> => {\n validateInDev('stytch.totp.authenticate', data, {\n organization_id: 'string',\n member_id: 'string',\n code: 'string',\n session_duration_minutes: 'number',\n set_mfa_enrollment: 'optionalString',\n set_default_mfa: 'optionalBoolean',\n });\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n const requestBody = {\n ...data,\n dfp_telemetry_id,\n captcha_token,\n intermediate_session_token: this._subscriptionService.getIntermediateSessionToken() || undefined,\n };\n\n return this._networkClient.retriableFetchSDK<B2BTOTPAuthenticateResponse<TProjectConfiguration>>({\n url: '/b2b/totp/authenticate',\n body: requestBody,\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n },\n );\n }\n\n async create(data: B2BTOTPCreateOptions): Promise<B2BTOTPCreateResponse> {\n validateInDev('stytch.totp.create', data, {\n organization_id: 'string',\n member_id: 'string',\n expiration_minutes: 'optionalNumber',\n });\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n const response = await this._networkClient.retriableFetchSDK<B2BTOTPCreateResponse>({\n url: '/b2b/totp',\n body: {\n ...data,\n dfp_telemetry_id,\n captcha_token,\n intermediate_session_token: (await this._subscriptionService.getIntermediateSessionToken()) || undefined,\n },\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n\n if (response.member_id === this._subscriptionService.getMember()?.member_id) {\n this._subscriptionService.updateMember(response.member);\n }\n\n return response;\n }\n}\n"],"names":["HeadlessB2BTOTPsClient","authenticate","constructor","_networkClient","_subscriptionService","dfpProtectedAuth","withUpdateSession","data","validateInDev","organization_id","member_id","code","session_duration_minutes","set_mfa_enrollment","set_default_mfa","dfp_telemetry_id","captcha_token","getDFPTelemetryIDAndCaptcha","requestBody","intermediate_session_token","getIntermediateSessionToken","undefined","retriableFetchSDK","url","body","method","retryCallback","retryWithCaptchaAndDFP","create","expiration_minutes","response","getMember","updateMember","member"],"mappings":";;AAWO,MAAMA,sBAAAA,CAAAA;;;;IAGXC,YAAAA;IAEAC,WAAAA,CACUC,cAA8B,EAC9BC,oBAAoE,EACpEC,gBAA2C,CACnD;aAHQF,cAAAA,GAAAA,cAAAA;aACAC,oBAAAA,GAAAA,oBAAAA;aACAC,gBAAAA,GAAAA,gBAAAA;QAER,IAAI,CAACJ,YAAY,GAAG,IAAI,CAACG,oBAAoB,CAACE,iBAAiB,CAC7D,OAAOC,IAAAA,GAAAA;AACLC,YAAAA,aAAAA,CAAc,4BAA4BD,IAAAA,EAAM;gBAC9CE,eAAAA,EAAiB,QAAA;gBACjBC,SAAAA,EAAW,QAAA;gBACXC,IAAAA,EAAM,QAAA;gBACNC,wBAAAA,EAA0B,QAAA;gBAC1BC,kBAAAA,EAAoB,gBAAA;gBACpBC,eAAAA,EAAiB;AACnB,aAAA,CAAA;YACA,MAAM,EAAEC,gBAAgB,EAAEC,aAAa,EAAE,GAAG,MAAM,IAAI,CAACX,gBAAgB,CAACY,2BAA2B,EAAA;AACnG,YAAA,MAAMC,WAAAA,GAAc;AAClB,gBAAA,GAAGX,IAAI;AACPQ,gBAAAA,gBAAAA;AACAC,gBAAAA,aAAAA;AACAG,gBAAAA,0BAAAA,EAA4B,IAAI,CAACf,oBAAoB,CAACgB,2BAA2B,EAAA,IAAMC;AACzF,aAAA;AAEA,YAAA,OAAO,IAAI,CAAClB,cAAc,CAACmB,iBAAiB,CAAqD;gBAC/FC,GAAAA,EAAK,wBAAA;gBACLC,IAAAA,EAAMN,WAAAA;gBACNO,MAAAA,EAAQ,MAAA;AACRC,gBAAAA,aAAAA,EAAe,IAAI,CAACrB,gBAAgB,CAACsB;AACvC,aAAA,CAAA;AACF,QAAA,CAAA,CAAA;AAEJ,IAAA;IAEA,MAAMC,MAAAA,CAAOrB,IAA0B,EAAkC;AACvEC,QAAAA,aAAAA,CAAc,sBAAsBD,IAAAA,EAAM;YACxCE,eAAAA,EAAiB,QAAA;YACjBC,SAAAA,EAAW,QAAA;YACXmB,kBAAAA,EAAoB;AACtB,SAAA,CAAA;QACA,MAAM,EAAEd,gBAAgB,EAAEC,aAAa,EAAE,GAAG,MAAM,IAAI,CAACX,gBAAgB,CAACY,2BAA2B,EAAA;AACnG,QAAA,MAAMa,WAAW,MAAM,IAAI,CAAC3B,cAAc,CAACmB,iBAAiB,CAAwB;YAClFC,GAAAA,EAAK,WAAA;YACLC,IAAAA,EAAM;AACJ,gBAAA,GAAGjB,IAAI;AACPQ,gBAAAA,gBAAAA;AACAC,gBAAAA,aAAAA;AACAG,gBAAAA,0BAAAA,EAA4B,MAAO,IAAI,CAACf,oBAAoB,CAACgB,2BAA2B,EAAA,IAAOC;AACjG,aAAA;YACAI,MAAAA,EAAQ,MAAA;AACRC,YAAAA,aAAAA,EAAe,IAAI,CAACrB,gBAAgB,CAACsB;AACvC,SAAA,CAAA;QAEA,IAAIG,QAAAA,CAASpB,SAAS,KAAK,IAAI,CAACN,oBAAoB,CAAC2B,SAAS,EAAA,EAAIrB,SAAAA,EAAW;AAC3E,YAAA,IAAI,CAACN,oBAAoB,CAAC4B,YAAY,CAACF,SAASG,MAAM,CAAA;AACxD,QAAA;QAEA,OAAOH,QAAAA;AACT,IAAA;AACF;;;;"}
1
+ {"version":3,"file":"HeadlessB2BTOTPsClient.mjs","sources":["../../../../../../../../core/src/HeadlessClients/b2b/HeadlessB2BTOTPsClient.ts"],"sourcesContent":["import { IB2BSubscriptionService, IDFPProtectedAuthProvider, INetworkClient } from '../..';\nimport {\n B2BTOTPAuthenticateOptions,\n B2BTOTPAuthenticateResponse,\n B2BTOTPCreateOptions,\n B2BTOTPCreateResponse,\n IHeadlessB2BTOTPsClient,\n} from '../../public/b2b/totp';\nimport { StytchProjectConfigurationInput } from '../../public/typeConfig';\nimport { validateInDev } from '../../utils/dev';\n\nexport class HeadlessB2BTOTPsClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessB2BTOTPsClient<TProjectConfiguration>\n{\n authenticate: (data: B2BTOTPAuthenticateOptions) => Promise<B2BTOTPAuthenticateResponse<TProjectConfiguration>>;\n\n constructor(\n private _networkClient: INetworkClient,\n private _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n private dfpProtectedAuth: IDFPProtectedAuthProvider,\n ) {\n this.authenticate = this._subscriptionService.withUpdateSession(\n async (data: B2BTOTPAuthenticateOptions): Promise<B2BTOTPAuthenticateResponse<TProjectConfiguration>> => {\n validateInDev('stytch.totp.authenticate', data, {\n organization_id: 'string',\n member_id: 'string',\n code: 'string',\n session_duration_minutes: 'number',\n set_mfa_enrollment: 'optionalString',\n set_default_mfa: 'optionalBoolean',\n });\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n const requestBody = {\n ...data,\n dfp_telemetry_id,\n captcha_token,\n intermediate_session_token: this._subscriptionService.getIntermediateSessionToken() || undefined,\n };\n\n return this._networkClient.retriableFetchSDK<B2BTOTPAuthenticateResponse<TProjectConfiguration>>({\n url: '/b2b/totp/authenticate',\n body: requestBody,\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n },\n );\n }\n\n async create(data: B2BTOTPCreateOptions): Promise<B2BTOTPCreateResponse> {\n validateInDev('stytch.totp.create', data, {\n organization_id: 'string',\n member_id: 'string',\n expiration_minutes: 'optionalNumber',\n });\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n const response = await this._networkClient.retriableFetchSDK<B2BTOTPCreateResponse>({\n url: '/b2b/totp',\n body: {\n ...data,\n dfp_telemetry_id,\n captcha_token,\n intermediate_session_token: (await this._subscriptionService.getIntermediateSessionToken()) || undefined,\n },\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n\n if (response.member_id === this._subscriptionService.getMember()?.member_id) {\n this._subscriptionService.updateMember(response.member);\n }\n\n return response;\n }\n}\n"],"names":["HeadlessB2BTOTPsClient","authenticate","_networkClient","_subscriptionService","dfpProtectedAuth","withUpdateSession","data","validateInDev","organization_id","member_id","code","session_duration_minutes","set_mfa_enrollment","set_default_mfa","dfp_telemetry_id","captcha_token","getDFPTelemetryIDAndCaptcha","requestBody","intermediate_session_token","getIntermediateSessionToken","undefined","retriableFetchSDK","url","body","method","retryCallback","retryWithCaptchaAndDFP","create","expiration_minutes","response","getMember","updateMember","member"],"mappings":";;AAWO,MAAMA,sBAAAA,CAAAA;;;;IAGXC,YAAAA;IAEA,WAAA,CACUC,cAA8B,EAC9BC,oBAAoE,EACpEC,gBAA2C,CACnD;aAHQF,cAAAA,GAAAA,cAAAA;aACAC,oBAAAA,GAAAA,oBAAAA;aACAC,gBAAAA,GAAAA,gBAAAA;QAER,IAAI,CAACH,YAAY,GAAG,IAAI,CAACE,oBAAoB,CAACE,iBAAiB,CAC7D,OAAOC,IAAAA,GAAAA;AACLC,YAAAA,aAAAA,CAAc,4BAA4BD,IAAAA,EAAM;gBAC9CE,eAAAA,EAAiB,QAAA;gBACjBC,SAAAA,EAAW,QAAA;gBACXC,IAAAA,EAAM,QAAA;gBACNC,wBAAAA,EAA0B,QAAA;gBAC1BC,kBAAAA,EAAoB,gBAAA;gBACpBC,eAAAA,EAAiB;AACnB,aAAA,CAAA;YACA,MAAM,EAAEC,gBAAgB,EAAEC,aAAa,EAAE,GAAG,MAAM,IAAI,CAACX,gBAAgB,CAACY,2BAA2B,EAAA;AACnG,YAAA,MAAMC,WAAAA,GAAc;AAClB,gBAAA,GAAGX,IAAI;AACPQ,gBAAAA,gBAAAA;AACAC,gBAAAA,aAAAA;AACAG,gBAAAA,0BAAAA,EAA4B,IAAI,CAACf,oBAAoB,CAACgB,2BAA2B,EAAA,IAAMC;AACzF,aAAA;AAEA,YAAA,OAAO,IAAI,CAAClB,cAAc,CAACmB,iBAAiB,CAAqD;gBAC/FC,GAAAA,EAAK,wBAAA;gBACLC,IAAAA,EAAMN,WAAAA;gBACNO,MAAAA,EAAQ,MAAA;AACRC,gBAAAA,aAAAA,EAAe,IAAI,CAACrB,gBAAgB,CAACsB;AACvC,aAAA,CAAA;AACF,QAAA,CAAA,CAAA;AAEJ,IAAA;IAEA,MAAMC,MAAAA,CAAOrB,IAA0B,EAAkC;AACvEC,QAAAA,aAAAA,CAAc,sBAAsBD,IAAAA,EAAM;YACxCE,eAAAA,EAAiB,QAAA;YACjBC,SAAAA,EAAW,QAAA;YACXmB,kBAAAA,EAAoB;AACtB,SAAA,CAAA;QACA,MAAM,EAAEd,gBAAgB,EAAEC,aAAa,EAAE,GAAG,MAAM,IAAI,CAACX,gBAAgB,CAACY,2BAA2B,EAAA;AACnG,QAAA,MAAMa,WAAW,MAAM,IAAI,CAAC3B,cAAc,CAACmB,iBAAiB,CAAwB;YAClFC,GAAAA,EAAK,WAAA;YACLC,IAAAA,EAAM;AACJ,gBAAA,GAAGjB,IAAI;AACPQ,gBAAAA,gBAAAA;AACAC,gBAAAA,aAAAA;AACAG,gBAAAA,0BAAAA,EAA4B,MAAO,IAAI,CAACf,oBAAoB,CAACgB,2BAA2B,EAAA,IAAOC;AACjG,aAAA;YACAI,MAAAA,EAAQ,MAAA;AACRC,YAAAA,aAAAA,EAAe,IAAI,CAACrB,gBAAgB,CAACsB;AACvC,SAAA,CAAA;QAEA,IAAIG,QAAAA,CAASpB,SAAS,KAAK,IAAI,CAACN,oBAAoB,CAAC2B,SAAS,EAAA,EAAIrB,SAAAA,EAAW;AAC3E,YAAA,IAAI,CAACN,oBAAoB,CAAC4B,YAAY,CAACF,SAASG,MAAM,CAAA;AACxD,QAAA;QAEA,OAAOH,QAAAA;AACT,IAAA;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"NetworkClient.mjs","sources":["../../../../../../core/src/NetworkClient.ts"],"sourcesContent":["import { AnalyticsEvent } from './Events';\nimport { ResponseCommon, StytchAPIUnreachableError, StytchAPIError, StytchAPISchemaError } from './public';\n\ntype SDKRequestMethodAndBody =\n | {\n method: 'GET' | 'DELETE';\n body?: null;\n }\n | {\n method: 'POST' | 'PUT';\n body?: Record<string, unknown>;\n };\n\nexport type SDKRequestInfo = SDKRequestMethodAndBody & {\n url: string;\n additionalMetadata?: Record<string, string>;\n};\n\nexport interface SDKTelemetry {\n event_id: string;\n app_session_id: string;\n persistent_id: string;\n client_sent_at: string;\n timezone: string;\n\n // Logged in user data\n // Why don't we generate this from the session_token in the auth header?\n // - We don't want to tie analytics ingest to session validation. There's no need to put\n // that kind of pressure on API, and ingest could be moved to somewhere that doesn't\n // have the ability to validate tokens\n // - For bulk event batches, we want to keep track of whether or not a user was logged\n // in at each event. If we have 10 events, the user logs in at event 5, then they'll have\n // a token when they log the batch, but we want to know that they were not logged in for the\n // first 4 events\n\n // Versioning\n app: {\n identifier: string;\n version?: string;\n };\n os?: {\n identifier?: string;\n version?: string;\n };\n device?: {\n model?: string;\n screen_size?: string;\n };\n sdk: {\n identifier: string;\n version: string;\n };\n}\n\nexport type AdditionalTelemetryData =\n | { stytch_user_id?: string; stytch_session_id?: string }\n | { stytch_member_id?: string; stytch_member_session_id?: string };\n\nexport interface INetworkClient {\n createTelemetryBlob(additionalMetadata?: SDKRequestInfo['additionalMetadata']): SDKTelemetry;\n\n fetchSDK: <T extends ResponseCommon>(info: SDKRequestInfo) => Promise<T>;\n\n retriableFetchSDK: <T extends ResponseCommon>(info: RetriableSDKRequestInfo) => Promise<T>;\n\n logEvent<E extends AnalyticsEvent>({\n name,\n details,\n error,\n }: {\n name: E['name'];\n details: E['details'];\n error?: { error_code?: string; error_description?: string; http_status_code?: string };\n }): void;\n\n // @deprecated Use the new sessions.updateSession() method instead\n updateSessionToken: (sessionToken: string | null) => void;\n}\n\nexport type RetriableSDKRequestInfo = SDKRequestInfo & {\n retryCallback: (e: RetriableError, info: SDKBaseRequestInfo) => Promise<SDKBaseRequestInfo>;\n};\n\nexport type RetriableSDKBaseRequestInfo = SDKBaseRequestInfo & {\n retryCallback: (e: RetriableError, info: SDKBaseRequestInfo) => Promise<SDKBaseRequestInfo>;\n};\n\nexport enum RetriableErrorType {\n RequiredCaptcha = 'CAPTCHA required',\n}\n\nexport class RetriableError extends Error {\n type: RetriableErrorType;\n\n constructor(type: RetriableErrorType) {\n super(type);\n this.type = type;\n }\n}\n\nexport async function retriableFetchSDK<T extends ResponseCommon>({\n method,\n finalURL,\n basicAuthHeader,\n xSDKClientHeader,\n xSDKParentHostHeader,\n body,\n retryCallback,\n}: RetriableSDKBaseRequestInfo): Promise<T> {\n let req: SDKBaseRequestInfo = {\n method,\n finalURL,\n basicAuthHeader,\n xSDKClientHeader,\n xSDKParentHostHeader,\n body,\n };\n\n try {\n return await baseFetchSDK<T>(req);\n } catch (err) {\n if (err instanceof RetriableError) {\n req = await retryCallback(err, req);\n return await baseFetchSDK<T>(req);\n }\n throw err;\n }\n}\n\nexport type SDKBaseRequestInfo = {\n basicAuthHeader: string;\n xSDKClientHeader: string;\n xSDKParentHostHeader?: string;\n body: SDKRequestInfo['body'];\n method: SDKRequestInfo['method'];\n finalURL: string;\n};\n\nexport async function baseFetchSDK<T extends ResponseCommon>({\n method,\n finalURL,\n basicAuthHeader,\n xSDKClientHeader,\n xSDKParentHostHeader,\n body,\n}: SDKBaseRequestInfo): Promise<T> {\n const headers: Record<string, string> = {\n Authorization: basicAuthHeader,\n 'Content-Type': 'application/json',\n 'X-SDK-Client': xSDKClientHeader,\n };\n\n if (xSDKParentHostHeader) {\n headers['X-SDK-Parent-Host'] = xSDKParentHostHeader;\n }\n\n const fetchOpts: RequestInit = {\n method,\n headers,\n body: body && JSON.stringify(body),\n credentials: 'include',\n };\n\n let resp;\n try {\n resp = await fetch(finalURL, fetchOpts);\n /* eslint-disable @typescript-eslint/no-explicit-any */\n } catch (e: any) {\n if (e.message === 'Failed to fetch') {\n throw new StytchAPIUnreachableError('Unable to contact our servers.');\n }\n throw e;\n }\n\n // We only return 200 from WB endpoints, but just in case let's accept all 2xx errors\n if (resp.status <= 299) {\n try {\n const respData = await resp.json();\n return respData.data;\n } catch {\n throw new StytchAPIUnreachableError('Invalid JSON response from our servers.');\n }\n }\n\n // 99% of errors will be well-formed JSON errors with an appropriate content-type set\n if (resp.status !== 200 && resp.headers.get('content-type')?.includes('application/json')) {\n let respError;\n try {\n respError = await resp.json();\n } catch {\n // Error was not JSON- but the content type said it was! This means the server lied to us, which it should never do...\n throw new StytchAPIUnreachableError('Invalid or no response from server');\n }\n // If this looks like a JSONSchema validation error, it probably means the caller isn't using\n // typescript and gave us a bad type.\n if ('body' in respError || 'params' in respError || 'query' in respError) {\n throw new StytchAPISchemaError(respError);\n }\n throw new StytchAPIError(respError);\n }\n\n // Finally handle the other 1% of errors (Captcha errors, network errors, 503s, etc.)\n let respData;\n try {\n respData = await resp.text();\n } catch {\n throw new StytchAPIUnreachableError('Invalid response from our servers.');\n }\n if (respData.includes('Captcha required')) {\n throw new RetriableError(RetriableErrorType.RequiredCaptcha);\n }\n throw new StytchAPIUnreachableError('Invalid response from our servers.');\n}\n\nexport async function baseSubmitFormSDK({\n method,\n finalURL,\n basicAuthHeader,\n xSDKClientHeader,\n xSDKParentHostHeader,\n body,\n}: SDKBaseRequestInfo): Promise<void> {\n const bodyParams = (body || {}) as Record<string, string>;\n const finalBody: Record<string, string> = {\n ...bodyParams,\n __Authorization: basicAuthHeader,\n '__X-SDK-Client': xSDKClientHeader,\n };\n\n if (xSDKParentHostHeader) {\n finalBody['__X-SDK-Parent-Host'] = xSDKParentHostHeader;\n }\n\n const children: HTMLInputElement[] = Object.entries(finalBody).map(([key, value]) => {\n const input = document.createElement('input');\n input.type = 'hidden';\n input.name = key;\n input.value = value;\n return input;\n });\n\n const form = document.createElement('form');\n form.method = method;\n form.action = finalURL;\n form.append(...children);\n\n document.body.appendChild(form);\n form.submit();\n}\n"],"names":["RetriableErrorType","RetriableError","Error","type","constructor","retriableFetchSDK","method","finalURL","basicAuthHeader","xSDKClientHeader","xSDKParentHostHeader","body","retryCallback","req","baseFetchSDK","err","headers","Authorization","fetchOpts","JSON","stringify","credentials","resp","fetch","e","message","StytchAPIUnreachableError","status","respData","json","data","get","includes","respError","StytchAPISchemaError","StytchAPIError","text","baseSubmitFormSDK","bodyParams","finalBody","__Authorization","children","Object","entries","map","key","value","input","document","createElement","name","form","action","append","appendChild","submit"],"mappings":"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"}
1
+ {"version":3,"file":"NetworkClient.mjs","sources":["../../../../../../core/src/NetworkClient.ts"],"sourcesContent":["import { AnalyticsEvent } from './Events';\nimport { ResponseCommon, StytchAPIUnreachableError, StytchAPIError, StytchAPISchemaError } from './public';\n\ntype SDKRequestMethodAndBody =\n | {\n method: 'GET' | 'DELETE';\n body?: null;\n }\n | {\n method: 'POST' | 'PUT';\n body?: Record<string, unknown>;\n };\n\nexport type SDKRequestInfo = SDKRequestMethodAndBody & {\n url: string;\n additionalMetadata?: Record<string, string>;\n};\n\nexport interface SDKTelemetry {\n event_id: string;\n app_session_id: string;\n persistent_id: string;\n client_sent_at: string;\n timezone: string;\n\n // Logged in user data\n // Why don't we generate this from the session_token in the auth header?\n // - We don't want to tie analytics ingest to session validation. There's no need to put\n // that kind of pressure on API, and ingest could be moved to somewhere that doesn't\n // have the ability to validate tokens\n // - For bulk event batches, we want to keep track of whether or not a user was logged\n // in at each event. If we have 10 events, the user logs in at event 5, then they'll have\n // a token when they log the batch, but we want to know that they were not logged in for the\n // first 4 events\n\n // Versioning\n app: {\n identifier: string;\n version?: string;\n };\n os?: {\n identifier?: string;\n version?: string;\n };\n device?: {\n model?: string;\n screen_size?: string;\n };\n sdk: {\n identifier: string;\n version: string;\n };\n}\n\nexport type AdditionalTelemetryData =\n | { stytch_user_id?: string; stytch_session_id?: string }\n | { stytch_member_id?: string; stytch_member_session_id?: string };\n\nexport interface INetworkClient {\n createTelemetryBlob(additionalMetadata?: SDKRequestInfo['additionalMetadata']): SDKTelemetry;\n\n fetchSDK: <T extends ResponseCommon>(info: SDKRequestInfo) => Promise<T>;\n\n retriableFetchSDK: <T extends ResponseCommon>(info: RetriableSDKRequestInfo) => Promise<T>;\n\n logEvent<E extends AnalyticsEvent>({\n name,\n details,\n error,\n }: {\n name: E['name'];\n details: E['details'];\n error?: { error_code?: string; error_description?: string; http_status_code?: string };\n }): void;\n\n // @deprecated Use the new sessions.updateSession() method instead\n updateSessionToken: (sessionToken: string | null) => void;\n}\n\nexport type RetriableSDKRequestInfo = SDKRequestInfo & {\n retryCallback: (e: RetriableError, info: SDKBaseRequestInfo) => Promise<SDKBaseRequestInfo>;\n};\n\nexport type RetriableSDKBaseRequestInfo = SDKBaseRequestInfo & {\n retryCallback: (e: RetriableError, info: SDKBaseRequestInfo) => Promise<SDKBaseRequestInfo>;\n};\n\nexport enum RetriableErrorType {\n RequiredCaptcha = 'CAPTCHA required',\n}\n\nexport class RetriableError extends Error {\n type: RetriableErrorType;\n\n constructor(type: RetriableErrorType) {\n super(type);\n this.type = type;\n }\n}\n\nexport async function retriableFetchSDK<T extends ResponseCommon>({\n method,\n finalURL,\n basicAuthHeader,\n xSDKClientHeader,\n xSDKParentHostHeader,\n body,\n retryCallback,\n}: RetriableSDKBaseRequestInfo): Promise<T> {\n let req: SDKBaseRequestInfo = {\n method,\n finalURL,\n basicAuthHeader,\n xSDKClientHeader,\n xSDKParentHostHeader,\n body,\n };\n\n try {\n return await baseFetchSDK<T>(req);\n } catch (err) {\n if (err instanceof RetriableError) {\n req = await retryCallback(err, req);\n return await baseFetchSDK<T>(req);\n }\n throw err;\n }\n}\n\nexport type SDKBaseRequestInfo = {\n basicAuthHeader: string;\n xSDKClientHeader: string;\n xSDKParentHostHeader?: string;\n body: SDKRequestInfo['body'];\n method: SDKRequestInfo['method'];\n finalURL: string;\n};\n\nexport async function baseFetchSDK<T extends ResponseCommon>({\n method,\n finalURL,\n basicAuthHeader,\n xSDKClientHeader,\n xSDKParentHostHeader,\n body,\n}: SDKBaseRequestInfo): Promise<T> {\n const headers: Record<string, string> = {\n Authorization: basicAuthHeader,\n 'Content-Type': 'application/json',\n 'X-SDK-Client': xSDKClientHeader,\n };\n\n if (xSDKParentHostHeader) {\n headers['X-SDK-Parent-Host'] = xSDKParentHostHeader;\n }\n\n const fetchOpts: RequestInit = {\n method,\n headers,\n body: body && JSON.stringify(body),\n credentials: 'include',\n };\n\n let resp;\n try {\n resp = await fetch(finalURL, fetchOpts);\n /* eslint-disable @typescript-eslint/no-explicit-any */\n } catch (e: any) {\n if (e.message === 'Failed to fetch') {\n throw new StytchAPIUnreachableError('Unable to contact our servers.');\n }\n throw e;\n }\n\n // We only return 200 from WB endpoints, but just in case let's accept all 2xx errors\n if (resp.status <= 299) {\n try {\n const respData = await resp.json();\n return respData.data;\n } catch {\n throw new StytchAPIUnreachableError('Invalid JSON response from our servers.');\n }\n }\n\n // 99% of errors will be well-formed JSON errors with an appropriate content-type set\n if (resp.status !== 200 && resp.headers.get('content-type')?.includes('application/json')) {\n let respError;\n try {\n respError = await resp.json();\n } catch {\n // Error was not JSON- but the content type said it was! This means the server lied to us, which it should never do...\n throw new StytchAPIUnreachableError('Invalid or no response from server');\n }\n // If this looks like a JSONSchema validation error, it probably means the caller isn't using\n // typescript and gave us a bad type.\n if ('body' in respError || 'params' in respError || 'query' in respError) {\n throw new StytchAPISchemaError(respError);\n }\n throw new StytchAPIError(respError);\n }\n\n // Finally handle the other 1% of errors (Captcha errors, network errors, 503s, etc.)\n let respData;\n try {\n respData = await resp.text();\n } catch {\n throw new StytchAPIUnreachableError('Invalid response from our servers.');\n }\n if (respData.includes('Captcha required')) {\n throw new RetriableError(RetriableErrorType.RequiredCaptcha);\n }\n throw new StytchAPIUnreachableError('Invalid response from our servers.');\n}\n\nexport async function baseSubmitFormSDK({\n method,\n finalURL,\n basicAuthHeader,\n xSDKClientHeader,\n xSDKParentHostHeader,\n body,\n}: SDKBaseRequestInfo): Promise<void> {\n const bodyParams = (body || {}) as Record<string, string>;\n const finalBody: Record<string, string> = {\n ...bodyParams,\n __Authorization: basicAuthHeader,\n '__X-SDK-Client': xSDKClientHeader,\n };\n\n if (xSDKParentHostHeader) {\n finalBody['__X-SDK-Parent-Host'] = xSDKParentHostHeader;\n }\n\n const children: HTMLInputElement[] = Object.entries(finalBody).map(([key, value]) => {\n const input = document.createElement('input');\n input.type = 'hidden';\n input.name = key;\n input.value = value;\n return input;\n });\n\n const form = document.createElement('form');\n form.method = method;\n form.action = finalURL;\n form.append(...children);\n\n document.body.appendChild(form);\n form.submit();\n}\n"],"names":["RetriableErrorType","RetriableError","Error","type","retriableFetchSDK","method","finalURL","basicAuthHeader","xSDKClientHeader","xSDKParentHostHeader","body","retryCallback","req","baseFetchSDK","err","headers","Authorization","fetchOpts","JSON","stringify","credentials","resp","fetch","e","message","StytchAPIUnreachableError","status","respData","json","data","get","includes","respError","StytchAPISchemaError","StytchAPIError","text","baseSubmitFormSDK","bodyParams","finalBody","__Authorization","children","Object","entries","map","key","value","input","document","createElement","name","form","action","append","appendChild","submit"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SearchManager.mjs","sources":["../../../../../../core/src/SearchManager.ts"],"sourcesContent":["import { INetworkClient } from './NetworkClient';\nimport { Member, ResponseCommon } from './public';\nimport { IDFPProtectedAuthProvider } from './DFPProtectedAuthProvider';\n\ntype UserSearchData = ResponseCommon & {\n userType: 'new' | 'passwordless' | 'password';\n};\n\nexport type InternalMember = Pick<Member, 'status' | 'name' | 'member_password_id'>;\n\nexport type MemberSearchData = ResponseCommon & { member: InternalMember | null };\n\nexport interface ISearchData {\n searchUser: (email: string) => Promise<UserSearchData>;\n searchMember: (email: string, organization_id: string) => Promise<MemberSearchData>;\n}\n\nexport class SearchDataManager implements ISearchData {\n constructor(\n private _networkClient: INetworkClient,\n private dfpProtectedAuth: IDFPProtectedAuthProvider,\n ) {}\n\n searchUser(email: string): Promise<UserSearchData> {\n return this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha().then(({ dfp_telemetry_id, captcha_token }) => {\n return this._networkClient.fetchSDK<UserSearchData>({\n url: `/users/search`,\n method: 'POST',\n body: { email, dfp_telemetry_id, captcha_token },\n });\n });\n }\n\n searchMember(email: string, organization_id: string): Promise<MemberSearchData> {\n return this._networkClient.fetchSDK<MemberSearchData>({\n url: `/b2b/organizations/members/search`,\n method: 'POST',\n body: { email_address: email, organization_id },\n });\n }\n}\n"],"names":["SearchDataManager","constructor","dfpProtectedAuth","_networkClient","searchUser","email","getDFPTelemetryIDAndCaptcha","then","dfp_telemetry_id","captcha_token","fetchSDK","url","method","body","searchMember","organization_id","email_address"],"mappings":"AAiBO,MAAMA,iBAAAA,CAAAA;;;AACXC,IAAAA,WAAAA,CACE,cAAsC,EAC9BC,gBAA2C,CACnD;aAFQC,cAAAA,GAAAA,cAAAA;aACAD,gBAAAA,GAAAA,gBAAAA;AACP,IAAA;AAEHE,IAAAA,UAAAA,CAAWC,KAAa,EAA2B;AACjD,QAAA,OAAO,IAAI,CAACH,gBAAgB,CAACI,2BAA2B,EAAA,CAAGC,IAAI,CAAC,CAAC,EAAEC,gBAAgB,EAAEC,aAAa,EAAE,GAAA;AAClG,YAAA,OAAO,IAAI,CAACN,cAAc,CAACO,QAAQ,CAAiB;gBAClDC,GAAAA,EAAK,CAAC,aAAa,CAAC;gBACpBC,MAAAA,EAAQ,MAAA;gBACRC,IAAAA,EAAM;AAAER,oBAAAA,KAAAA;AAAOG,oBAAAA,gBAAAA;AAAkBC,oBAAAA;AAAc;AACjD,aAAA,CAAA;AACF,QAAA,CAAA,CAAA;AACF,IAAA;IAEAK,YAAAA,CAAaT,KAAa,EAAEU,eAAuB,EAA6B;AAC9E,QAAA,OAAO,IAAI,CAACZ,cAAc,CAACO,QAAQ,CAAmB;YACpDC,GAAAA,EAAK,CAAC,iCAAiC,CAAC;YACxCC,MAAAA,EAAQ,MAAA;YACRC,IAAAA,EAAM;gBAAEG,aAAAA,EAAeX,KAAAA;AAAOU,gBAAAA;AAAgB;AAChD,SAAA,CAAA;AACF,IAAA;AACF;;;;"}
1
+ {"version":3,"file":"SearchManager.mjs","sources":["../../../../../../core/src/SearchManager.ts"],"sourcesContent":["import { INetworkClient } from './NetworkClient';\nimport { Member, ResponseCommon } from './public';\nimport { IDFPProtectedAuthProvider } from './DFPProtectedAuthProvider';\n\ntype UserSearchData = ResponseCommon & {\n userType: 'new' | 'passwordless' | 'password';\n};\n\nexport type InternalMember = Pick<Member, 'status' | 'name' | 'member_password_id'>;\n\nexport type MemberSearchData = ResponseCommon & { member: InternalMember | null };\n\nexport interface ISearchData {\n searchUser: (email: string) => Promise<UserSearchData>;\n searchMember: (email: string, organization_id: string) => Promise<MemberSearchData>;\n}\n\nexport class SearchDataManager implements ISearchData {\n constructor(\n private _networkClient: INetworkClient,\n private dfpProtectedAuth: IDFPProtectedAuthProvider,\n ) {}\n\n searchUser(email: string): Promise<UserSearchData> {\n return this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha().then(({ dfp_telemetry_id, captcha_token }) => {\n return this._networkClient.fetchSDK<UserSearchData>({\n url: `/users/search`,\n method: 'POST',\n body: { email, dfp_telemetry_id, captcha_token },\n });\n });\n }\n\n searchMember(email: string, organization_id: string): Promise<MemberSearchData> {\n return this._networkClient.fetchSDK<MemberSearchData>({\n url: `/b2b/organizations/members/search`,\n method: 'POST',\n body: { email_address: email, organization_id },\n });\n }\n}\n"],"names":["SearchDataManager","dfpProtectedAuth","_networkClient","searchUser","email","getDFPTelemetryIDAndCaptcha","then","dfp_telemetry_id","captcha_token","fetchSDK","url","method","body","searchMember","organization_id","email_address"],"mappings":"AAiBO,MAAMA,iBAAAA,CAAAA;;;AACX,IAAA,WAAA,CACE,cAAsC,EAC9BC,gBAA2C,CACnD;aAFQC,cAAAA,GAAAA,cAAAA;aACAD,gBAAAA,GAAAA,gBAAAA;AACP,IAAA;AAEHE,IAAAA,UAAAA,CAAWC,KAAa,EAA2B;AACjD,QAAA,OAAO,IAAI,CAACH,gBAAgB,CAACI,2BAA2B,EAAA,CAAGC,IAAI,CAAC,CAAC,EAAEC,gBAAgB,EAAEC,aAAa,EAAE,GAAA;AAClG,YAAA,OAAO,IAAI,CAACN,cAAc,CAACO,QAAQ,CAAiB;gBAClDC,GAAAA,EAAK,CAAC,aAAa,CAAC;gBACpBC,MAAAA,EAAQ,MAAA;gBACRC,IAAAA,EAAM;AAAER,oBAAAA,KAAAA;AAAOG,oBAAAA,gBAAAA;AAAkBC,oBAAAA;AAAc;AACjD,aAAA,CAAA;AACF,QAAA,CAAA,CAAA;AACF,IAAA;IAEAK,YAAAA,CAAaT,KAAa,EAAEU,eAAuB,EAA6B;AAC9E,QAAA,OAAO,IAAI,CAACZ,cAAc,CAACO,QAAQ,CAAmB;YACpDC,GAAAA,EAAK,CAAC,iCAAiC,CAAC;YACxCC,MAAAA,EAAQ,MAAA;YACRC,IAAAA,EAAM;gBAAEG,aAAAA,EAAeX,KAAAA;AAAOU,gBAAAA;AAAgB;AAChD,SAAA,CAAA;AACF,IAAA;AACF;;;;"}