@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
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var idpHelpers = require('./idpHelpers-Bj_7pbfW.js');
3
+ var idpHelpers = require('./idpHelpers-UZaYQqT8.js');
4
4
  var StytchSSRProxy = require('./StytchSSRProxy-Bz6LNYdq.js');
5
5
 
6
6
  class HeadlessUserClient {
@@ -9,132 +9,118 @@ class HeadlessUserClient {
9
9
  constructor(_networkClient, _subscriptionService){
10
10
  this._networkClient = _networkClient;
11
11
  this._subscriptionService = _subscriptionService;
12
- this.get = async ()=>{
13
- const resp = await this._networkClient.fetchSDK({
14
- url: '/users/me',
15
- method: 'GET'
16
- });
17
- const user = idpHelpers.removeResponseCommon(resp);
18
- this._subscriptionService.updateUser(user);
19
- return user;
20
- };
21
- this.getSync = ()=>{
22
- return this._subscriptionService.getUser();
23
- };
24
- this.getInfo = ()=>({
25
- user: this.getSync(),
26
- fromCache: this._subscriptionService.getFromCache()
27
- });
28
- this.update = async (options)=>{
29
- const resp = await this._networkClient.fetchSDK({
30
- url: '/users/me',
31
- body: options,
32
- method: 'PUT'
33
- });
34
- const user = idpHelpers.removeResponseCommon(resp.__user);
35
- this._subscriptionService.updateUser(user);
36
- return idpHelpers.omitUser(resp);
37
- };
38
- this.deleteEmail = async (emailId)=>{
39
- const resp = await this._networkClient.fetchSDK({
40
- url: `/users/emails/${emailId}`,
41
- method: 'DELETE'
42
- });
43
- const user = idpHelpers.removeResponseCommon(resp.__user);
44
- this._subscriptionService.updateUser(user);
45
- return idpHelpers.omitUser(resp);
46
- };
47
- this.deletePhoneNumber = async (phoneId)=>{
48
- const resp = await this._networkClient.fetchSDK({
49
- url: `/users/phone_numbers/${phoneId}`,
50
- method: 'DELETE'
51
- });
52
- const user = idpHelpers.removeResponseCommon(resp.__user);
53
- this._subscriptionService.updateUser(user);
54
- return idpHelpers.omitUser(resp);
55
- };
56
- this.deleteTOTP = async (totpId)=>{
57
- const resp = await this._networkClient.fetchSDK({
58
- url: `/users/totps/${totpId}`,
59
- method: 'DELETE'
60
- });
61
- const user = idpHelpers.removeResponseCommon(resp.__user);
62
- this._subscriptionService.updateUser(user);
63
- return idpHelpers.omitUser(resp);
64
- };
65
- this.deleteCryptoWallet = async (cryptoWalletId)=>{
66
- const resp = await this._networkClient.fetchSDK({
67
- url: `/users/crypto_wallets/${cryptoWalletId}`,
68
- method: 'DELETE'
69
- });
70
- const user = idpHelpers.removeResponseCommon(resp.__user);
71
- this._subscriptionService.updateUser(user);
72
- return idpHelpers.omitUser(resp);
73
- };
74
- this.deleteOAuthRegistration = async (oauthUserRegistrationId)=>{
75
- const resp = await this._networkClient.fetchSDK({
76
- url: `/users/oauth/${oauthUserRegistrationId}`,
77
- method: 'DELETE'
78
- });
79
- const user = idpHelpers.removeResponseCommon(resp.__user);
80
- this._subscriptionService.updateUser(user);
81
- return idpHelpers.omitUser(resp);
82
- };
83
- this.deleteWebauthnRegistration = async (webAuthnId)=>{
84
- const resp = await this._networkClient.fetchSDK({
85
- url: `/users/webauthn_registrations/${webAuthnId}`,
86
- method: 'DELETE'
87
- });
88
- const user = idpHelpers.removeResponseCommon(resp.__user);
89
- this._subscriptionService.updateUser(user);
90
- return idpHelpers.omitUser(resp);
91
- };
92
- this.deleteBiometricRegistration = async (biometricRegistrationId)=>{
93
- const resp = await this._networkClient.fetchSDK({
94
- url: `/users/biometric_registrations/${biometricRegistrationId}`,
95
- method: 'DELETE'
96
- });
97
- const user = idpHelpers.removeResponseCommon(resp.__user);
98
- this._subscriptionService.updateUser(user);
99
- return idpHelpers.omitUser(resp);
100
- };
101
- this.onChange = (callback)=>{
102
- let lastVal = this._subscriptionService.getUser();
103
- const listener = (state)=>{
104
- if (state?.user !== lastVal) {
105
- lastVal = state?.user ?? null;
106
- callback(lastVal);
107
- }
108
- };
109
- return this._subscriptionService.subscribeToState(listener);
110
- };
111
- this.getConnectedApps = async ()=>{
112
- return await this._networkClient.fetchSDK({
113
- url: '/users/connected_apps',
114
- method: 'GET'
115
- });
116
- };
117
- this.revokedConnectedApp = async (connectedAppId)=>{
118
- return await this._networkClient.fetchSDK({
119
- url: `/users/connected_apps/${connectedAppId}/revoke`,
120
- method: 'POST'
121
- });
122
- };
123
12
  }
124
- get;
125
- getSync;
126
- getInfo;
127
- update;
128
- deleteEmail;
129
- deletePhoneNumber;
130
- deleteTOTP;
131
- deleteCryptoWallet;
132
- deleteOAuthRegistration;
133
- deleteWebauthnRegistration;
134
- deleteBiometricRegistration;
135
- onChange;
136
- getConnectedApps;
137
- revokedConnectedApp;
13
+ get = async ()=>{
14
+ const resp = await this._networkClient.fetchSDK({
15
+ url: '/users/me',
16
+ method: 'GET'
17
+ });
18
+ const user = idpHelpers.removeResponseCommon(resp);
19
+ this._subscriptionService.updateUser(user);
20
+ return user;
21
+ };
22
+ getSync = ()=>{
23
+ return this._subscriptionService.getUser();
24
+ };
25
+ getInfo = ()=>({
26
+ user: this.getSync(),
27
+ fromCache: this._subscriptionService.getFromCache()
28
+ });
29
+ update = async (options)=>{
30
+ const resp = await this._networkClient.fetchSDK({
31
+ url: '/users/me',
32
+ body: options,
33
+ method: 'PUT'
34
+ });
35
+ const user = idpHelpers.removeResponseCommon(resp.__user);
36
+ this._subscriptionService.updateUser(user);
37
+ return idpHelpers.omitUser(resp);
38
+ };
39
+ deleteEmail = async (emailId)=>{
40
+ const resp = await this._networkClient.fetchSDK({
41
+ url: `/users/emails/${emailId}`,
42
+ method: 'DELETE'
43
+ });
44
+ const user = idpHelpers.removeResponseCommon(resp.__user);
45
+ this._subscriptionService.updateUser(user);
46
+ return idpHelpers.omitUser(resp);
47
+ };
48
+ deletePhoneNumber = async (phoneId)=>{
49
+ const resp = await this._networkClient.fetchSDK({
50
+ url: `/users/phone_numbers/${phoneId}`,
51
+ method: 'DELETE'
52
+ });
53
+ const user = idpHelpers.removeResponseCommon(resp.__user);
54
+ this._subscriptionService.updateUser(user);
55
+ return idpHelpers.omitUser(resp);
56
+ };
57
+ deleteTOTP = async (totpId)=>{
58
+ const resp = await this._networkClient.fetchSDK({
59
+ url: `/users/totps/${totpId}`,
60
+ method: 'DELETE'
61
+ });
62
+ const user = idpHelpers.removeResponseCommon(resp.__user);
63
+ this._subscriptionService.updateUser(user);
64
+ return idpHelpers.omitUser(resp);
65
+ };
66
+ deleteCryptoWallet = async (cryptoWalletId)=>{
67
+ const resp = await this._networkClient.fetchSDK({
68
+ url: `/users/crypto_wallets/${cryptoWalletId}`,
69
+ method: 'DELETE'
70
+ });
71
+ const user = idpHelpers.removeResponseCommon(resp.__user);
72
+ this._subscriptionService.updateUser(user);
73
+ return idpHelpers.omitUser(resp);
74
+ };
75
+ deleteOAuthRegistration = async (oauthUserRegistrationId)=>{
76
+ const resp = await this._networkClient.fetchSDK({
77
+ url: `/users/oauth/${oauthUserRegistrationId}`,
78
+ method: 'DELETE'
79
+ });
80
+ const user = idpHelpers.removeResponseCommon(resp.__user);
81
+ this._subscriptionService.updateUser(user);
82
+ return idpHelpers.omitUser(resp);
83
+ };
84
+ deleteWebauthnRegistration = async (webAuthnId)=>{
85
+ const resp = await this._networkClient.fetchSDK({
86
+ url: `/users/webauthn_registrations/${webAuthnId}`,
87
+ method: 'DELETE'
88
+ });
89
+ const user = idpHelpers.removeResponseCommon(resp.__user);
90
+ this._subscriptionService.updateUser(user);
91
+ return idpHelpers.omitUser(resp);
92
+ };
93
+ deleteBiometricRegistration = async (biometricRegistrationId)=>{
94
+ const resp = await this._networkClient.fetchSDK({
95
+ url: `/users/biometric_registrations/${biometricRegistrationId}`,
96
+ method: 'DELETE'
97
+ });
98
+ const user = idpHelpers.removeResponseCommon(resp.__user);
99
+ this._subscriptionService.updateUser(user);
100
+ return idpHelpers.omitUser(resp);
101
+ };
102
+ onChange = (callback)=>{
103
+ let lastVal = this._subscriptionService.getUser();
104
+ const listener = (state)=>{
105
+ if (state?.user !== lastVal) {
106
+ lastVal = state?.user ?? null;
107
+ callback(lastVal);
108
+ }
109
+ };
110
+ return this._subscriptionService.subscribeToState(listener);
111
+ };
112
+ getConnectedApps = async ()=>{
113
+ return await this._networkClient.fetchSDK({
114
+ url: '/users/connected_apps',
115
+ method: 'GET'
116
+ });
117
+ };
118
+ revokedConnectedApp = async (connectedAppId)=>{
119
+ return await this._networkClient.fetchSDK({
120
+ url: `/users/connected_apps/${connectedAppId}/revoke`,
121
+ method: 'POST'
122
+ });
123
+ };
138
124
  }
139
125
 
140
126
  class HeadlessSessionClient {
@@ -146,83 +132,6 @@ class HeadlessSessionClient {
146
132
  constructor(_networkClient, _subscriptionService){
147
133
  this._networkClient = _networkClient;
148
134
  this._subscriptionService = _subscriptionService;
149
- this.getSync = ()=>{
150
- return this._subscriptionService.getSession();
151
- };
152
- this.getInfo = ()=>{
153
- const session = this.getSync();
154
- const fromCache = this._subscriptionService.getFromCache();
155
- return {
156
- session,
157
- fromCache
158
- };
159
- };
160
- this.onChange = (callback)=>{
161
- let lastVal = this._subscriptionService.getSession();
162
- const listener = (state)=>{
163
- if (state?.session !== lastVal) {
164
- lastVal = state?.session ?? null;
165
- callback(lastVal);
166
- }
167
- };
168
- return this._subscriptionService.subscribeToState(listener);
169
- };
170
- this.revoke = async (options)=>{
171
- /**
172
- * Revoke destroys the local state if the API request is successful
173
- * or if we return an unrecoverable error (user is unauthenticated)
174
- * or if the developer passses in a forceClear option.
175
- * If the API request returns a recoverable error (the user is offline),
176
- * we do not destroy the local state to let the developer manually add retry
177
- * logic to call revoke again.
178
- */ try {
179
- const resp = await this._networkClient.fetchSDK({
180
- url: `/sessions/revoke`,
181
- method: 'POST'
182
- });
183
- this._subscriptionService.destroyState();
184
- return resp;
185
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
186
- } catch (error) {
187
- if (options?.forceClear) {
188
- this._subscriptionService.destroyState();
189
- } else if (StytchSSRProxy.UNRECOVERABLE_ERROR_TYPES.includes(error.error_type)) {
190
- this._subscriptionService.destroyState();
191
- }
192
- throw error;
193
- }
194
- };
195
- this._authenticate = async (options)=>{
196
- const initialSession = this._subscriptionService.getSession();
197
- const isSessionStale = ()=>initialSession?.session_id !== this._subscriptionService.getSession()?.session_id;
198
- try {
199
- const requestBody = {
200
- session_duration_minutes: options?.session_duration_minutes
201
- };
202
- const resp = await this._networkClient.fetchSDK({
203
- url: '/sessions/authenticate',
204
- body: requestBody,
205
- method: 'POST'
206
- });
207
- if (isSessionStale()) {
208
- // [SDK-1336] The session was updated out from under us while the
209
- // request was in flight; discard the response and retry
210
- return this._authenticate(options);
211
- }
212
- return idpHelpers.omitUser(resp);
213
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
214
- } catch (error) {
215
- if (isSessionStale()) {
216
- // [SDK-1336] The session was updated out from under us while the
217
- // request was in flight; discard the response and retry
218
- return this._authenticate(options);
219
- }
220
- if (StytchSSRProxy.UNRECOVERABLE_ERROR_TYPES.includes(error.error_type)) {
221
- this._subscriptionService.destroySession();
222
- }
223
- throw error;
224
- }
225
- };
226
135
  this.authenticate = this._subscriptionService.withUpdateSession(this._authenticate);
227
136
  this.exchangeAccessToken = this._subscriptionService.withUpdateSession(async (data)=>{
228
137
  const resp = await this._networkClient.fetchSDK({
@@ -240,11 +149,83 @@ class HeadlessSessionClient {
240
149
  });
241
150
  });
242
151
  }
243
- getSync;
244
- getInfo;
245
- onChange;
246
- revoke;
247
- _authenticate;
152
+ getSync = ()=>{
153
+ return this._subscriptionService.getSession();
154
+ };
155
+ getInfo = ()=>{
156
+ const session = this.getSync();
157
+ const fromCache = this._subscriptionService.getFromCache();
158
+ return {
159
+ session,
160
+ fromCache
161
+ };
162
+ };
163
+ onChange = (callback)=>{
164
+ let lastVal = this._subscriptionService.getSession();
165
+ const listener = (state)=>{
166
+ if (state?.session !== lastVal) {
167
+ lastVal = state?.session ?? null;
168
+ callback(lastVal);
169
+ }
170
+ };
171
+ return this._subscriptionService.subscribeToState(listener);
172
+ };
173
+ revoke = async (options)=>{
174
+ /**
175
+ * Revoke destroys the local state if the API request is successful
176
+ * or if we return an unrecoverable error (user is unauthenticated)
177
+ * or if the developer passses in a forceClear option.
178
+ * If the API request returns a recoverable error (the user is offline),
179
+ * we do not destroy the local state to let the developer manually add retry
180
+ * logic to call revoke again.
181
+ */ try {
182
+ const resp = await this._networkClient.fetchSDK({
183
+ url: `/sessions/revoke`,
184
+ method: 'POST'
185
+ });
186
+ this._subscriptionService.destroyState();
187
+ return resp;
188
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
189
+ } catch (error) {
190
+ if (options?.forceClear) {
191
+ this._subscriptionService.destroyState();
192
+ } else if (StytchSSRProxy.UNRECOVERABLE_ERROR_TYPES.includes(error.error_type)) {
193
+ this._subscriptionService.destroyState();
194
+ }
195
+ throw error;
196
+ }
197
+ };
198
+ _authenticate = async (options)=>{
199
+ const initialSession = this._subscriptionService.getSession();
200
+ const isSessionStale = ()=>initialSession?.session_id !== this._subscriptionService.getSession()?.session_id;
201
+ try {
202
+ const requestBody = {
203
+ session_duration_minutes: options?.session_duration_minutes
204
+ };
205
+ const resp = await this._networkClient.fetchSDK({
206
+ url: '/sessions/authenticate',
207
+ body: requestBody,
208
+ method: 'POST'
209
+ });
210
+ if (isSessionStale()) {
211
+ // [SDK-1336] The session was updated out from under us while the
212
+ // request was in flight; discard the response and retry
213
+ return this._authenticate(options);
214
+ }
215
+ return idpHelpers.omitUser(resp);
216
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
217
+ } catch (error) {
218
+ if (isSessionStale()) {
219
+ // [SDK-1336] The session was updated out from under us while the
220
+ // request was in flight; discard the response and retry
221
+ return this._authenticate(options);
222
+ }
223
+ if (StytchSSRProxy.UNRECOVERABLE_ERROR_TYPES.includes(error.error_type)) {
224
+ this._subscriptionService.destroySession();
225
+ }
226
+ throw error;
227
+ }
228
+ };
248
229
  getTokens() {
249
230
  return this._subscriptionService.getTokens();
250
231
  }
@@ -264,106 +245,6 @@ class HeadlessOTPClient {
264
245
  this._subscriptionService = _subscriptionService;
265
246
  this.executeRecaptcha = executeRecaptcha;
266
247
  this.dfpProtectedAuth = dfpProtectedAuth;
267
- this.sms = {
268
- loginOrCreate: async (phone_number, options)=>{
269
- const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();
270
- const requestBody = {
271
- ...options,
272
- phone_number,
273
- captcha_token,
274
- dfp_telemetry_id
275
- };
276
- return this._networkClient.retriableFetchSDK({
277
- url: '/otps/sms/login_or_create',
278
- body: requestBody,
279
- method: 'POST',
280
- retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP
281
- });
282
- },
283
- send: async (phone_number, options)=>{
284
- const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();
285
- const requestBody = {
286
- ...options,
287
- phone_number,
288
- captcha_token,
289
- dfp_telemetry_id
290
- };
291
- const isLoggedIn = !!this._subscriptionService.getSession();
292
- const endpoint = isLoggedIn ? '/otps/sms/send/secondary' : '/otps/sms/send/primary';
293
- return this._networkClient.retriableFetchSDK({
294
- url: endpoint,
295
- body: requestBody,
296
- method: 'POST',
297
- retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP
298
- });
299
- }
300
- };
301
- this.whatsapp = {
302
- loginOrCreate: async (phone_number, options)=>{
303
- const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();
304
- const requestBody = {
305
- ...options,
306
- phone_number,
307
- dfp_telemetry_id,
308
- captcha_token
309
- };
310
- return this._networkClient.retriableFetchSDK({
311
- url: '/otps/whatsapp/login_or_create',
312
- body: requestBody,
313
- method: 'POST',
314
- retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP
315
- });
316
- },
317
- send: async (phone_number, options)=>{
318
- const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();
319
- const requestBody = {
320
- ...options,
321
- phone_number,
322
- captcha_token,
323
- dfp_telemetry_id
324
- };
325
- const isLoggedIn = !!this._subscriptionService.getSession();
326
- const endpoint = isLoggedIn ? '/otps/whatsapp/send/secondary' : '/otps/whatsapp/send/primary';
327
- return this._networkClient.retriableFetchSDK({
328
- url: endpoint,
329
- body: requestBody,
330
- method: 'POST',
331
- retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP
332
- });
333
- }
334
- };
335
- this.email = {
336
- loginOrCreate: async (email, options)=>{
337
- const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();
338
- const requestBody = {
339
- ...options,
340
- email,
341
- captcha_token,
342
- dfp_telemetry_id
343
- };
344
- return this._networkClient.retriableFetchSDK({
345
- url: '/otps/email/login_or_create',
346
- body: requestBody,
347
- method: 'POST',
348
- retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP
349
- });
350
- },
351
- send: async (email, options)=>{
352
- const captcha_token = await this.executeRecaptcha();
353
- const requestBody = {
354
- ...options,
355
- email,
356
- captcha_token
357
- };
358
- const isLoggedIn = !!this._subscriptionService.getSession();
359
- const endpoint = isLoggedIn ? '/otps/email/send/secondary' : '/otps/email/send/primary';
360
- return this._networkClient.fetchSDK({
361
- url: endpoint,
362
- body: requestBody,
363
- method: 'POST'
364
- });
365
- }
366
- };
367
248
  this.authenticate = this._subscriptionService.withUpdateSession(async (code, method_id, options)=>{
368
249
  const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();
369
250
  const requestBody = {
@@ -382,9 +263,106 @@ class HeadlessOTPClient {
382
263
  return idpHelpers.omitUser(resp);
383
264
  });
384
265
  }
385
- sms;
386
- whatsapp;
387
- email;
266
+ sms = {
267
+ loginOrCreate: async (phone_number, options)=>{
268
+ const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();
269
+ const requestBody = {
270
+ ...options,
271
+ phone_number,
272
+ captcha_token,
273
+ dfp_telemetry_id
274
+ };
275
+ return this._networkClient.retriableFetchSDK({
276
+ url: '/otps/sms/login_or_create',
277
+ body: requestBody,
278
+ method: 'POST',
279
+ retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP
280
+ });
281
+ },
282
+ send: async (phone_number, options)=>{
283
+ const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();
284
+ const requestBody = {
285
+ ...options,
286
+ phone_number,
287
+ captcha_token,
288
+ dfp_telemetry_id
289
+ };
290
+ const isLoggedIn = !!this._subscriptionService.getSession();
291
+ const endpoint = isLoggedIn ? '/otps/sms/send/secondary' : '/otps/sms/send/primary';
292
+ return this._networkClient.retriableFetchSDK({
293
+ url: endpoint,
294
+ body: requestBody,
295
+ method: 'POST',
296
+ retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP
297
+ });
298
+ }
299
+ };
300
+ whatsapp = {
301
+ loginOrCreate: async (phone_number, options)=>{
302
+ const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();
303
+ const requestBody = {
304
+ ...options,
305
+ phone_number,
306
+ dfp_telemetry_id,
307
+ captcha_token
308
+ };
309
+ return this._networkClient.retriableFetchSDK({
310
+ url: '/otps/whatsapp/login_or_create',
311
+ body: requestBody,
312
+ method: 'POST',
313
+ retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP
314
+ });
315
+ },
316
+ send: async (phone_number, options)=>{
317
+ const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();
318
+ const requestBody = {
319
+ ...options,
320
+ phone_number,
321
+ captcha_token,
322
+ dfp_telemetry_id
323
+ };
324
+ const isLoggedIn = !!this._subscriptionService.getSession();
325
+ const endpoint = isLoggedIn ? '/otps/whatsapp/send/secondary' : '/otps/whatsapp/send/primary';
326
+ return this._networkClient.retriableFetchSDK({
327
+ url: endpoint,
328
+ body: requestBody,
329
+ method: 'POST',
330
+ retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP
331
+ });
332
+ }
333
+ };
334
+ email = {
335
+ loginOrCreate: async (email, options)=>{
336
+ const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();
337
+ const requestBody = {
338
+ ...options,
339
+ email,
340
+ captcha_token,
341
+ dfp_telemetry_id
342
+ };
343
+ return this._networkClient.retriableFetchSDK({
344
+ url: '/otps/email/login_or_create',
345
+ body: requestBody,
346
+ method: 'POST',
347
+ retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP
348
+ });
349
+ },
350
+ send: async (email, options)=>{
351
+ const captcha_token = await this.executeRecaptcha();
352
+ const requestBody = {
353
+ ...options,
354
+ email,
355
+ captcha_token
356
+ };
357
+ const isLoggedIn = !!this._subscriptionService.getSession();
358
+ const endpoint = isLoggedIn ? '/otps/email/send/secondary' : '/otps/email/send/primary';
359
+ return this._networkClient.fetchSDK({
360
+ url: endpoint,
361
+ body: requestBody,
362
+ method: 'POST'
363
+ });
364
+ }
365
+ };
388
366
  }
389
367
 
390
368
  let HeadlessOAuthClient$1 = class HeadlessOAuthClient {
@@ -400,63 +378,6 @@ let HeadlessOAuthClient$1 = class HeadlessOAuthClient {
400
378
  this._pkceManager = _pkceManager;
401
379
  this._dynamicConfig = _dynamicConfig;
402
380
  this._config = _config;
403
- this.google = {
404
- start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.Google)
405
- };
406
- this.apple = {
407
- start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.Apple)
408
- };
409
- this.microsoft = {
410
- start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.Microsoft)
411
- };
412
- this.github = {
413
- start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.Github)
414
- };
415
- this.gitlab = {
416
- start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.GitLab)
417
- };
418
- this.facebook = {
419
- start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.Facebook)
420
- };
421
- this.discord = {
422
- start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.Discord)
423
- };
424
- this.salesforce = {
425
- start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.Salesforce)
426
- };
427
- this.slack = {
428
- start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.Slack)
429
- };
430
- this.amazon = {
431
- start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.Amazon)
432
- };
433
- this.bitbucket = {
434
- start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.Bitbucket)
435
- };
436
- this.linkedin = {
437
- start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.LinkedIn)
438
- };
439
- this.coinbase = {
440
- start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.Coinbase)
441
- };
442
- this.twitch = {
443
- start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.Twitch)
444
- };
445
- this.twitter = {
446
- start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.Twitter)
447
- };
448
- this.tiktok = {
449
- start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.TikTok)
450
- };
451
- this.snapchat = {
452
- start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.Snapchat)
453
- };
454
- this.figma = {
455
- start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.Figma)
456
- };
457
- this.yahoo = {
458
- start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.Yahoo)
459
- };
460
381
  this.authenticate = this._subscriptionService.withUpdateSession(async (token, options)=>{
461
382
  const keyPair = await this._pkceManager.getPKPair();
462
383
  if (!keyPair) {
@@ -475,25 +396,63 @@ let HeadlessOAuthClient$1 = class HeadlessOAuthClient {
475
396
  return idpHelpers.omitUser(resp);
476
397
  });
477
398
  }
478
- google;
479
- apple;
480
- microsoft;
481
- github;
482
- gitlab;
483
- facebook;
484
- discord;
485
- salesforce;
486
- slack;
487
- amazon;
488
- bitbucket;
489
- linkedin;
490
- coinbase;
491
- twitch;
492
- twitter;
493
- tiktok;
494
- snapchat;
495
- figma;
496
- yahoo;
399
+ google = {
400
+ start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.Google)
401
+ };
402
+ apple = {
403
+ start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.Apple)
404
+ };
405
+ microsoft = {
406
+ start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.Microsoft)
407
+ };
408
+ github = {
409
+ start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.Github)
410
+ };
411
+ gitlab = {
412
+ start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.GitLab)
413
+ };
414
+ facebook = {
415
+ start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.Facebook)
416
+ };
417
+ discord = {
418
+ start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.Discord)
419
+ };
420
+ salesforce = {
421
+ start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.Salesforce)
422
+ };
423
+ slack = {
424
+ start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.Slack)
425
+ };
426
+ amazon = {
427
+ start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.Amazon)
428
+ };
429
+ bitbucket = {
430
+ start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.Bitbucket)
431
+ };
432
+ linkedin = {
433
+ start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.LinkedIn)
434
+ };
435
+ coinbase = {
436
+ start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.Coinbase)
437
+ };
438
+ twitch = {
439
+ start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.Twitch)
440
+ };
441
+ twitter = {
442
+ start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.Twitter)
443
+ };
444
+ tiktok = {
445
+ start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.TikTok)
446
+ };
447
+ snapchat = {
448
+ start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.Snapchat)
449
+ };
450
+ figma = {
451
+ start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.Figma)
452
+ };
453
+ yahoo = {
454
+ start: this.startOAuthFlow(StytchSSRProxy.OAuthProviders.Yahoo)
455
+ };
497
456
  async attach(provider) {
498
457
  return await this._networkClient.fetchSDK({
499
458
  url: '/oauth/attach',
@@ -833,16 +792,6 @@ class HeadlessWebAuthnClient {
833
792
  this._networkClient = _networkClient;
834
793
  this._subscriptionService = _subscriptionService;
835
794
  this.dfpProtectedAuth = dfpProtectedAuth;
836
- this.checkEligibleInputs = ()=>{
837
- // Check for an <input> with "webauthn" in its `autocomplete` attribute
838
- const eligibleInputs = document.querySelectorAll("input[autocomplete*='webauthn']");
839
- // WebAuthn autofill requires at least one valid input
840
- if (eligibleInputs.length < 1) {
841
- idpHelpers.logger.error('No <input> with `"webauthn"` in its `autocomplete` attribute was detected');
842
- return false;
843
- }
844
- return true;
845
- };
846
795
  this.register = this._subscriptionService.withUpdateSession(async (options)=>{
847
796
  const startResp = await this._networkClient.fetchSDK({
848
797
  url: '/webauthn/register/start',
@@ -932,7 +881,16 @@ class HeadlessWebAuthnClient {
932
881
  async browserSupportsAutofill() {
933
882
  return await window.PublicKeyCredential?.isConditionalMediationAvailable?.() ?? false;
934
883
  }
935
- checkEligibleInputs;
884
+ checkEligibleInputs = ()=>{
885
+ // Check for an <input> with "webauthn" in its `autocomplete` attribute
886
+ const eligibleInputs = document.querySelectorAll("input[autocomplete*='webauthn']");
887
+ // WebAuthn autofill requires at least one valid input
888
+ if (eligibleInputs.length < 1) {
889
+ idpHelpers.logger.error('No <input> with `"webauthn"` in its `autocomplete` attribute was detected');
890
+ return false;
891
+ }
892
+ return true;
893
+ };
936
894
  }
937
895
 
938
896
  class HeadlessImpersonationClient {
@@ -966,12 +924,6 @@ class HeadlessRBACClient {
966
924
  policyPromise;
967
925
  constructor(cachedConfig, dynamicConfig, _subscriptionService){
968
926
  this._subscriptionService = _subscriptionService;
969
- this.isAuthorizedSync = (resourceId, action)=>{
970
- return !!this.cachedPolicy?.callerIsAuthorized(this.roleIds(), resourceId, action);
971
- };
972
- this.isAuthorized = (resourceId, action)=>{
973
- return this.policyPromise.then((policy)=>policy.callerIsAuthorized(this.roleIds(), resourceId, action));
974
- };
975
927
  this.cachedPolicy = cachedConfig.rbacPolicy ? idpHelpers.RBACPolicy.fromJSON(cachedConfig.rbacPolicy) : null;
976
928
  this.policyPromise = dynamicConfig.then((data)=>{
977
929
  if (!data.rbacPolicy) {
@@ -986,8 +938,12 @@ class HeadlessRBACClient {
986
938
  allPermissions() {
987
939
  return this.policyPromise.then((policy)=>policy.allPermissionsForCaller(this.roleIds()));
988
940
  }
989
- isAuthorizedSync;
990
- isAuthorized;
941
+ isAuthorizedSync = (resourceId, action)=>{
942
+ return !!this.cachedPolicy?.callerIsAuthorized(this.roleIds(), resourceId, action);
943
+ };
944
+ isAuthorized = (resourceId, action)=>{
945
+ return this.policyPromise.then((policy)=>policy.callerIsAuthorized(this.roleIds(), resourceId, action));
946
+ };
991
947
  roleIds() {
992
948
  const user = this._subscriptionService.getUser();
993
949
  if (!user) {
@@ -1005,55 +961,52 @@ class HeadlessIDPClient {
1005
961
  _networkClient;
1006
962
  constructor(_networkClient){
1007
963
  this._networkClient = _networkClient;
1008
- this.oauthAuthorizeStart = async (data)=>this._networkClient.fetchSDK({
1009
- url: '/idp/oauth/authorize/start',
1010
- method: 'POST',
1011
- body: data
1012
- });
1013
- this.oauthAuthorizeSubmit = async (data)=>this._networkClient.fetchSDK({
1014
- url: '/idp/oauth/authorize/submit',
1015
- method: 'POST',
1016
- body: data
1017
- });
1018
- this.oauthLogoutStart = async (data)=>this._networkClient.fetchSDK({
1019
- url: `/oauth/logout/start`,
1020
- method: 'POST',
1021
- body: data
1022
- });
1023
964
  }
1024
- oauthAuthorizeStart;
1025
- oauthAuthorizeSubmit;
1026
- oauthLogoutStart;
965
+ oauthAuthorizeStart = async (data)=>this._networkClient.fetchSDK({
966
+ url: '/idp/oauth/authorize/start',
967
+ method: 'POST',
968
+ body: data
969
+ });
970
+ oauthAuthorizeSubmit = async (data)=>this._networkClient.fetchSDK({
971
+ url: '/idp/oauth/authorize/submit',
972
+ method: 'POST',
973
+ body: data
974
+ });
975
+ oauthLogoutStart = async (data)=>this._networkClient.fetchSDK({
976
+ url: `/oauth/logout/start`,
977
+ method: 'POST',
978
+ body: data
979
+ });
1027
980
  }
1028
981
 
1029
982
  class HeadlessOAuthClient extends HeadlessOAuthClient$1 {
1030
983
  _oneTap;
1031
984
  constructor(_networkClient, _subscriptionService, _pkceManager, _dynamicConfig, _config, _oneTap){
1032
- super(_networkClient, _subscriptionService, _pkceManager, _dynamicConfig, _config), this._oneTap = _oneTap, this.startOneTap = async (options)=>{
1033
- const clientResult = await this._oneTap.createOneTapClient();
1034
- if (!clientResult.success) {
1035
- throw new Error(`One Tap could not load: ${clientResult.reason}`);
1036
- }
1037
- const { client } = clientResult;
1038
- const onSuccessCallback = this._oneTap.createOnSuccessHandler({
1039
- signupRedirectUrl: options.signup_redirect_url,
1040
- loginRedirectUrl: options.login_redirect_url,
1041
- onSuccess: this._oneTap.redirectOnSuccess
1042
- });
1043
- return client.render({
1044
- style: {
1045
- position: StytchSSRProxy.OneTapPositions.floating
1046
- },
1047
- onOneTapCancelled: options.onOneTapCancelled,
1048
- callback: onSuccessCallback,
1049
- cancelOnTapOutside: options.cancel_on_tap_outside
1050
- });
1051
- }, this.googleOneTap = {
1052
- start: this.startOneTap
1053
- };
985
+ super(_networkClient, _subscriptionService, _pkceManager, _dynamicConfig, _config), this._oneTap = _oneTap;
1054
986
  }
1055
- startOneTap;
1056
- googleOneTap;
987
+ startOneTap = async (options)=>{
988
+ const clientResult = await this._oneTap.createOneTapClient();
989
+ if (!clientResult.success) {
990
+ throw new Error(`One Tap could not load: ${clientResult.reason}`);
991
+ }
992
+ const { client } = clientResult;
993
+ const onSuccessCallback = this._oneTap.createOnSuccessHandler({
994
+ signupRedirectUrl: options.signup_redirect_url,
995
+ loginRedirectUrl: options.login_redirect_url,
996
+ onSuccess: this._oneTap.redirectOnSuccess
997
+ });
998
+ return client.render({
999
+ style: {
1000
+ position: StytchSSRProxy.OneTapPositions.floating
1001
+ },
1002
+ onOneTapCancelled: options.onOneTapCancelled,
1003
+ callback: onSuccessCallback,
1004
+ cancelOnTapOutside: options.cancel_on_tap_outside
1005
+ });
1006
+ };
1007
+ googleOneTap = {
1008
+ start: this.startOneTap
1009
+ };
1057
1010
  }
1058
1011
 
1059
1012
  /**