@stytch/react 20.0.0-next.0 → 20.0.0-next.2

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 (695) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/{StytchSSRProxy-CUOvjF03.js → StytchSSRProxy-Bz6LNYdq.js} +186 -1
  3. package/dist/cjs/StytchSSRProxy-Bz6LNYdq.js.map +1 -0
  4. package/dist/cjs/adminPortal/index.cjs +102 -26
  5. package/dist/cjs/adminPortal/index.cjs.map +1 -1
  6. package/dist/cjs/b2b/index.cjs +176 -138
  7. package/dist/cjs/b2b/index.cjs.map +1 -1
  8. package/dist/cjs/b2b/index.headless.cjs +24 -24
  9. package/dist/cjs/b2b/index.headless.cjs.map +1 -1
  10. package/dist/cjs/compat.cjs +3645 -0
  11. package/dist/cjs/compat.cjs.map +1 -0
  12. package/dist/cjs/{idpHelpers-eUP8j58U.js → idpHelpers-Bj_7pbfW.js} +7 -191
  13. package/dist/cjs/idpHelpers-Bj_7pbfW.js.map +1 -0
  14. package/dist/cjs/{index-DfiRrtK8.js → index-Ni_dyEsz.js} +3 -3
  15. package/dist/cjs/{index-DfiRrtK8.js.map → index-Ni_dyEsz.js.map} +1 -1
  16. package/dist/cjs/index.cjs +220 -198
  17. package/dist/cjs/index.cjs.map +1 -1
  18. package/dist/cjs/index.headless.cjs +32 -32
  19. package/dist/cjs/index.headless.cjs.map +1 -1
  20. package/dist/cjs/{passwordManagerDisableAutofillProps-C0akDAKd.js → passwordManagerDisableAutofillProps-DV31RTL_.js} +2 -2
  21. package/dist/cjs/{passwordManagerDisableAutofillProps-C0akDAKd.js.map → passwordManagerDisableAutofillProps-DV31RTL_.js.map} +1 -1
  22. package/dist/cjs/{shadcn-Bbv2Hk3P.js → shadcn-B8TEzQMT.js} +99 -81
  23. package/dist/cjs/shadcn-B8TEzQMT.js.map +1 -0
  24. package/dist/cjs-dev/{StytchSSRProxy-D0B5PuT0.js → StytchSSRProxy-CxXsyme4.js} +186 -1
  25. package/dist/cjs-dev/StytchSSRProxy-CxXsyme4.js.map +1 -0
  26. package/dist/cjs-dev/adminPortal/index.cjs +102 -26
  27. package/dist/cjs-dev/adminPortal/index.cjs.map +1 -1
  28. package/dist/cjs-dev/b2b/index.cjs +180 -141
  29. package/dist/cjs-dev/b2b/index.cjs.map +1 -1
  30. package/dist/cjs-dev/b2b/index.headless.cjs +29 -28
  31. package/dist/cjs-dev/b2b/index.headless.cjs.map +1 -1
  32. package/dist/cjs-dev/compat.cjs +3693 -0
  33. package/dist/cjs-dev/compat.cjs.map +1 -0
  34. package/dist/cjs-dev/{idpHelpers-DOOVv6dT.js → idpHelpers-BVMUYvt1.js} +22 -230
  35. package/dist/cjs-dev/idpHelpers-BVMUYvt1.js.map +1 -0
  36. package/dist/cjs-dev/{index-paeFcHjf.js → index-DdK3Jt4u.js} +3 -3
  37. package/dist/cjs-dev/{index-paeFcHjf.js.map → index-DdK3Jt4u.js.map} +1 -1
  38. package/dist/cjs-dev/index.cjs +225 -202
  39. package/dist/cjs-dev/index.cjs.map +1 -1
  40. package/dist/cjs-dev/index.headless.cjs +38 -37
  41. package/dist/cjs-dev/index.headless.cjs.map +1 -1
  42. package/dist/cjs-dev/logger-CvOATP4R.js +28 -0
  43. package/dist/cjs-dev/logger-CvOATP4R.js.map +1 -0
  44. package/dist/cjs-dev/{passwordManagerDisableAutofillProps-CnLBAXyr.js → passwordManagerDisableAutofillProps-D70WyvIu.js} +2 -2
  45. package/dist/cjs-dev/{passwordManagerDisableAutofillProps-CnLBAXyr.js.map → passwordManagerDisableAutofillProps-D70WyvIu.js.map} +1 -1
  46. package/dist/cjs-dev/{shadcn-CdbmlhdF.js → shadcn-C9ClUju1.js} +103 -84
  47. package/dist/cjs-dev/shadcn-C9ClUju1.js.map +1 -0
  48. package/dist/esm/_virtual/index.mjs +4 -4
  49. package/dist/esm/_virtual/index3.mjs +3 -5
  50. package/dist/esm/_virtual/index3.mjs.map +1 -1
  51. package/dist/esm/_virtual/index4.mjs +5 -3
  52. package/dist/esm/_virtual/index4.mjs.map +1 -1
  53. package/dist/esm/_virtual/index6.mjs +2 -2
  54. package/dist/esm/_virtual/index7.mjs +2 -2
  55. package/dist/esm/adminPortal/index.mjs +4 -1
  56. package/dist/esm/adminPortal/index.mjs.map +1 -1
  57. package/dist/esm/b2b/index.mjs.map +1 -1
  58. package/dist/esm/compat.mjs +3 -0
  59. package/dist/esm/compat.mjs.map +1 -0
  60. package/dist/esm/node_modules/chroma-js/index.mjs +85 -0
  61. package/dist/esm/node_modules/chroma-js/index.mjs.map +1 -0
  62. package/dist/esm/node_modules/chroma-js/src/Color.mjs +53 -0
  63. package/dist/esm/node_modules/chroma-js/src/Color.mjs.map +1 -0
  64. package/dist/esm/node_modules/chroma-js/src/chroma.mjs +11 -0
  65. package/dist/esm/node_modules/chroma-js/src/chroma.mjs.map +1 -0
  66. package/dist/esm/node_modules/chroma-js/src/colors/colorbrewer.mjs +82 -0
  67. package/dist/esm/node_modules/chroma-js/src/colors/colorbrewer.mjs.map +1 -0
  68. package/dist/esm/node_modules/chroma-js/src/colors/w3cx11.mjs +165 -0
  69. package/dist/esm/node_modules/chroma-js/src/colors/w3cx11.mjs.map +1 -0
  70. package/dist/esm/node_modules/chroma-js/src/generator/average.mjs +92 -0
  71. package/dist/esm/node_modules/chroma-js/src/generator/average.mjs.map +1 -0
  72. package/dist/esm/node_modules/chroma-js/src/generator/bezier.mjs +89 -0
  73. package/dist/esm/node_modules/chroma-js/src/generator/bezier.mjs.map +1 -0
  74. package/dist/esm/node_modules/chroma-js/src/generator/blend.mjs +58 -0
  75. package/dist/esm/node_modules/chroma-js/src/generator/blend.mjs.map +1 -0
  76. package/dist/esm/node_modules/chroma-js/src/generator/cubehelix.mjs +93 -0
  77. package/dist/esm/node_modules/chroma-js/src/generator/cubehelix.mjs.map +1 -0
  78. package/dist/esm/node_modules/chroma-js/src/generator/mix.mjs +22 -0
  79. package/dist/esm/node_modules/chroma-js/src/generator/mix.mjs.map +1 -0
  80. package/dist/esm/node_modules/chroma-js/src/generator/random.mjs +16 -0
  81. package/dist/esm/node_modules/chroma-js/src/generator/random.mjs.map +1 -0
  82. package/dist/esm/node_modules/chroma-js/src/generator/scale.mjs +398 -0
  83. package/dist/esm/node_modules/chroma-js/src/generator/scale.mjs.map +1 -0
  84. package/dist/esm/node_modules/chroma-js/src/interpolator/_hsx.mjs +62 -0
  85. package/dist/esm/node_modules/chroma-js/src/interpolator/_hsx.mjs.map +1 -0
  86. package/dist/esm/node_modules/chroma-js/src/interpolator/hcg.mjs +13 -0
  87. package/dist/esm/node_modules/chroma-js/src/interpolator/hcg.mjs.map +1 -0
  88. package/dist/esm/node_modules/chroma-js/src/interpolator/hsi.mjs +13 -0
  89. package/dist/esm/node_modules/chroma-js/src/interpolator/hsi.mjs.map +1 -0
  90. package/dist/esm/node_modules/chroma-js/src/interpolator/hsl.mjs +13 -0
  91. package/dist/esm/node_modules/chroma-js/src/interpolator/hsl.mjs.map +1 -0
  92. package/dist/esm/node_modules/chroma-js/src/interpolator/hsv.mjs +13 -0
  93. package/dist/esm/node_modules/chroma-js/src/interpolator/hsv.mjs.map +1 -0
  94. package/dist/esm/node_modules/chroma-js/src/interpolator/index.mjs +4 -0
  95. package/dist/esm/node_modules/chroma-js/src/interpolator/index.mjs.map +1 -0
  96. package/dist/esm/node_modules/chroma-js/src/interpolator/lab.mjs +20 -0
  97. package/dist/esm/node_modules/chroma-js/src/interpolator/lab.mjs.map +1 -0
  98. package/dist/esm/node_modules/chroma-js/src/interpolator/lch.mjs +14 -0
  99. package/dist/esm/node_modules/chroma-js/src/interpolator/lch.mjs.map +1 -0
  100. package/dist/esm/node_modules/chroma-js/src/interpolator/lrgb.mjs +21 -0
  101. package/dist/esm/node_modules/chroma-js/src/interpolator/lrgb.mjs.map +1 -0
  102. package/dist/esm/node_modules/chroma-js/src/interpolator/num.mjs +15 -0
  103. package/dist/esm/node_modules/chroma-js/src/interpolator/num.mjs.map +1 -0
  104. package/dist/esm/node_modules/chroma-js/src/interpolator/oklab.mjs +20 -0
  105. package/dist/esm/node_modules/chroma-js/src/interpolator/oklab.mjs.map +1 -0
  106. package/dist/esm/node_modules/chroma-js/src/interpolator/oklch.mjs +13 -0
  107. package/dist/esm/node_modules/chroma-js/src/interpolator/oklch.mjs.map +1 -0
  108. package/dist/esm/node_modules/chroma-js/src/interpolator/rgb.mjs +19 -0
  109. package/dist/esm/node_modules/chroma-js/src/interpolator/rgb.mjs.map +1 -0
  110. package/dist/esm/node_modules/chroma-js/src/io/cmyk/cmyk2rgb.mjs +18 -0
  111. package/dist/esm/node_modules/chroma-js/src/io/cmyk/cmyk2rgb.mjs.map +1 -0
  112. package/dist/esm/node_modules/chroma-js/src/io/cmyk/index.mjs +29 -0
  113. package/dist/esm/node_modules/chroma-js/src/io/cmyk/index.mjs.map +1 -0
  114. package/dist/esm/node_modules/chroma-js/src/io/cmyk/rgb2cmyk.mjs +20 -0
  115. package/dist/esm/node_modules/chroma-js/src/io/cmyk/rgb2cmyk.mjs.map +1 -0
  116. package/dist/esm/node_modules/chroma-js/src/io/css/css2rgb.mjs +239 -0
  117. package/dist/esm/node_modules/chroma-js/src/io/css/css2rgb.mjs.map +1 -0
  118. package/dist/esm/node_modules/chroma-js/src/io/css/hsl2css.mjs +29 -0
  119. package/dist/esm/node_modules/chroma-js/src/io/css/hsl2css.mjs.map +1 -0
  120. package/dist/esm/node_modules/chroma-js/src/io/css/index.mjs +27 -0
  121. package/dist/esm/node_modules/chroma-js/src/io/css/index.mjs.map +1 -0
  122. package/dist/esm/node_modules/chroma-js/src/io/css/lab2css.mjs +27 -0
  123. package/dist/esm/node_modules/chroma-js/src/io/css/lab2css.mjs.map +1 -0
  124. package/dist/esm/node_modules/chroma-js/src/io/css/lch2css.mjs +27 -0
  125. package/dist/esm/node_modules/chroma-js/src/io/css/lch2css.mjs.map +1 -0
  126. package/dist/esm/node_modules/chroma-js/src/io/css/oklab2css.mjs +18 -0
  127. package/dist/esm/node_modules/chroma-js/src/io/css/oklab2css.mjs.map +1 -0
  128. package/dist/esm/node_modules/chroma-js/src/io/css/oklch2css.mjs +18 -0
  129. package/dist/esm/node_modules/chroma-js/src/io/css/oklch2css.mjs.map +1 -0
  130. package/dist/esm/node_modules/chroma-js/src/io/css/rgb2css.mjs +65 -0
  131. package/dist/esm/node_modules/chroma-js/src/io/css/rgb2css.mjs.map +1 -0
  132. package/dist/esm/node_modules/chroma-js/src/io/gl/index.mjs +24 -0
  133. package/dist/esm/node_modules/chroma-js/src/io/gl/index.mjs.map +1 -0
  134. package/dist/esm/node_modules/chroma-js/src/io/hcg/hcg2rgb.mjs +58 -0
  135. package/dist/esm/node_modules/chroma-js/src/io/hcg/hcg2rgb.mjs.map +1 -0
  136. package/dist/esm/node_modules/chroma-js/src/io/hcg/index.mjs +29 -0
  137. package/dist/esm/node_modules/chroma-js/src/io/hcg/index.mjs.map +1 -0
  138. package/dist/esm/node_modules/chroma-js/src/io/hcg/rgb2hcg.mjs +25 -0
  139. package/dist/esm/node_modules/chroma-js/src/io/hcg/rgb2hcg.mjs.map +1 -0
  140. package/dist/esm/node_modules/chroma-js/src/io/hex/hex2rgb.mjs +57 -0
  141. package/dist/esm/node_modules/chroma-js/src/io/hex/hex2rgb.mjs.map +1 -0
  142. package/dist/esm/node_modules/chroma-js/src/io/hex/index.mjs +30 -0
  143. package/dist/esm/node_modules/chroma-js/src/io/hex/index.mjs.map +1 -0
  144. package/dist/esm/node_modules/chroma-js/src/io/hex/rgb2hex.mjs +33 -0
  145. package/dist/esm/node_modules/chroma-js/src/io/hex/rgb2hex.mjs.map +1 -0
  146. package/dist/esm/node_modules/chroma-js/src/io/hsi/hsi2rgb.mjs +49 -0
  147. package/dist/esm/node_modules/chroma-js/src/io/hsi/hsi2rgb.mjs.map +1 -0
  148. package/dist/esm/node_modules/chroma-js/src/io/hsi/index.mjs +29 -0
  149. package/dist/esm/node_modules/chroma-js/src/io/hsi/index.mjs.map +1 -0
  150. package/dist/esm/node_modules/chroma-js/src/io/hsi/rgb2hsi.mjs +34 -0
  151. package/dist/esm/node_modules/chroma-js/src/io/hsi/rgb2hsi.mjs.map +1 -0
  152. package/dist/esm/node_modules/chroma-js/src/io/hsl/hsl2rgb.mjs +37 -0
  153. package/dist/esm/node_modules/chroma-js/src/io/hsl/hsl2rgb.mjs.map +1 -0
  154. package/dist/esm/node_modules/chroma-js/src/io/hsl/index.mjs +29 -0
  155. package/dist/esm/node_modules/chroma-js/src/io/hsl/index.mjs.map +1 -0
  156. package/dist/esm/node_modules/chroma-js/src/io/hsl/rgb2hsl.mjs +47 -0
  157. package/dist/esm/node_modules/chroma-js/src/io/hsl/rgb2hsl.mjs.map +1 -0
  158. package/dist/esm/node_modules/chroma-js/src/io/hsv/hsv2rgb.mjs +50 -0
  159. package/dist/esm/node_modules/chroma-js/src/io/hsv/hsv2rgb.mjs.map +1 -0
  160. package/dist/esm/node_modules/chroma-js/src/io/hsv/index.mjs +29 -0
  161. package/dist/esm/node_modules/chroma-js/src/io/hsv/index.mjs.map +1 -0
  162. package/dist/esm/node_modules/chroma-js/src/io/hsv/rgb2hsv.mjs +35 -0
  163. package/dist/esm/node_modules/chroma-js/src/io/hsv/rgb2hsv.mjs.map +1 -0
  164. package/dist/esm/node_modules/chroma-js/src/io/input.mjs +7 -0
  165. package/dist/esm/node_modules/chroma-js/src/io/input.mjs.map +1 -0
  166. package/dist/esm/node_modules/chroma-js/src/io/lab/index.mjs +30 -0
  167. package/dist/esm/node_modules/chroma-js/src/io/lab/index.mjs.map +1 -0
  168. package/dist/esm/node_modules/chroma-js/src/io/lab/lab-constants.mjs +116 -0
  169. package/dist/esm/node_modules/chroma-js/src/io/lab/lab-constants.mjs.map +1 -0
  170. package/dist/esm/node_modules/chroma-js/src/io/lab/lab2rgb.mjs +102 -0
  171. package/dist/esm/node_modules/chroma-js/src/io/lab/lab2rgb.mjs.map +1 -0
  172. package/dist/esm/node_modules/chroma-js/src/io/lab/rgb2lab.mjs +68 -0
  173. package/dist/esm/node_modules/chroma-js/src/io/lab/rgb2lab.mjs.map +1 -0
  174. package/dist/esm/node_modules/chroma-js/src/io/lch/hcl2rgb.mjs +11 -0
  175. package/dist/esm/node_modules/chroma-js/src/io/lch/hcl2rgb.mjs.map +1 -0
  176. package/dist/esm/node_modules/chroma-js/src/io/lch/index.mjs +38 -0
  177. package/dist/esm/node_modules/chroma-js/src/io/lch/index.mjs.map +1 -0
  178. package/dist/esm/node_modules/chroma-js/src/io/lch/lab2lch.mjs +15 -0
  179. package/dist/esm/node_modules/chroma-js/src/io/lch/lab2lch.mjs.map +1 -0
  180. package/dist/esm/node_modules/chroma-js/src/io/lch/lch2lab.mjs +21 -0
  181. package/dist/esm/node_modules/chroma-js/src/io/lch/lch2lab.mjs.map +1 -0
  182. package/dist/esm/node_modules/chroma-js/src/io/lch/lch2rgb.mjs +15 -0
  183. package/dist/esm/node_modules/chroma-js/src/io/lch/lch2rgb.mjs.map +1 -0
  184. package/dist/esm/node_modules/chroma-js/src/io/lch/rgb2lch.mjs +14 -0
  185. package/dist/esm/node_modules/chroma-js/src/io/lch/rgb2lch.mjs.map +1 -0
  186. package/dist/esm/node_modules/chroma-js/src/io/named/index.mjs +30 -0
  187. package/dist/esm/node_modules/chroma-js/src/io/named/index.mjs.map +1 -0
  188. package/dist/esm/node_modules/chroma-js/src/io/num/index.mjs +33 -0
  189. package/dist/esm/node_modules/chroma-js/src/io/num/index.mjs.map +1 -0
  190. package/dist/esm/node_modules/chroma-js/src/io/num/num2rgb.mjs +14 -0
  191. package/dist/esm/node_modules/chroma-js/src/io/num/num2rgb.mjs.map +1 -0
  192. package/dist/esm/node_modules/chroma-js/src/io/num/rgb2num.mjs +10 -0
  193. package/dist/esm/node_modules/chroma-js/src/io/num/rgb2num.mjs.map +1 -0
  194. package/dist/esm/node_modules/chroma-js/src/io/oklab/index.mjs +29 -0
  195. package/dist/esm/node_modules/chroma-js/src/io/oklab/index.mjs.map +1 -0
  196. package/dist/esm/node_modules/chroma-js/src/io/oklab/oklab2rgb.mjs +36 -0
  197. package/dist/esm/node_modules/chroma-js/src/io/oklab/oklab2rgb.mjs.map +1 -0
  198. package/dist/esm/node_modules/chroma-js/src/io/oklab/rgb2oklab.mjs +39 -0
  199. package/dist/esm/node_modules/chroma-js/src/io/oklab/rgb2oklab.mjs.map +1 -0
  200. package/dist/esm/node_modules/chroma-js/src/io/oklch/index.mjs +29 -0
  201. package/dist/esm/node_modules/chroma-js/src/io/oklch/index.mjs.map +1 -0
  202. package/dist/esm/node_modules/chroma-js/src/io/oklch/oklch2rgb.mjs +15 -0
  203. package/dist/esm/node_modules/chroma-js/src/io/oklch/oklch2rgb.mjs.map +1 -0
  204. package/dist/esm/node_modules/chroma-js/src/io/oklch/rgb2oklch.mjs +14 -0
  205. package/dist/esm/node_modules/chroma-js/src/io/oklch/rgb2oklch.mjs.map +1 -0
  206. package/dist/esm/node_modules/chroma-js/src/io/rgb/index.mjs +47 -0
  207. package/dist/esm/node_modules/chroma-js/src/io/rgb/index.mjs.map +1 -0
  208. package/dist/esm/node_modules/chroma-js/src/io/temp/index.mjs +23 -0
  209. package/dist/esm/node_modules/chroma-js/src/io/temp/index.mjs.map +1 -0
  210. package/dist/esm/node_modules/chroma-js/src/io/temp/rgb2temperature.mjs +33 -0
  211. package/dist/esm/node_modules/chroma-js/src/io/temp/rgb2temperature.mjs.map +1 -0
  212. package/dist/esm/node_modules/chroma-js/src/io/temp/temperature2rgb.mjs +40 -0
  213. package/dist/esm/node_modules/chroma-js/src/io/temp/temperature2rgb.mjs.map +1 -0
  214. package/dist/esm/node_modules/chroma-js/src/ops/alpha.mjs +14 -0
  215. package/dist/esm/node_modules/chroma-js/src/ops/alpha.mjs.map +1 -0
  216. package/dist/esm/node_modules/chroma-js/src/ops/clipped.mjs +6 -0
  217. package/dist/esm/node_modules/chroma-js/src/ops/clipped.mjs.map +1 -0
  218. package/dist/esm/node_modules/chroma-js/src/ops/darken.mjs +18 -0
  219. package/dist/esm/node_modules/chroma-js/src/ops/darken.mjs.map +1 -0
  220. package/dist/esm/node_modules/chroma-js/src/ops/get.mjs +14 -0
  221. package/dist/esm/node_modules/chroma-js/src/ops/get.mjs.map +1 -0
  222. package/dist/esm/node_modules/chroma-js/src/ops/luminance.mjs +56 -0
  223. package/dist/esm/node_modules/chroma-js/src/ops/luminance.mjs.map +1 -0
  224. package/dist/esm/node_modules/chroma-js/src/ops/mix.mjs +11 -0
  225. package/dist/esm/node_modules/chroma-js/src/ops/mix.mjs.map +1 -0
  226. package/dist/esm/node_modules/chroma-js/src/ops/premultiply.mjs +13 -0
  227. package/dist/esm/node_modules/chroma-js/src/ops/premultiply.mjs.map +1 -0
  228. package/dist/esm/node_modules/chroma-js/src/ops/saturate.mjs +16 -0
  229. package/dist/esm/node_modules/chroma-js/src/ops/saturate.mjs.map +1 -0
  230. package/dist/esm/node_modules/chroma-js/src/ops/set.mjs +44 -0
  231. package/dist/esm/node_modules/chroma-js/src/ops/set.mjs.map +1 -0
  232. package/dist/esm/node_modules/chroma-js/src/ops/shade.mjs +12 -0
  233. package/dist/esm/node_modules/chroma-js/src/ops/shade.mjs.map +1 -0
  234. package/dist/esm/node_modules/chroma-js/src/utils/analyze.mjs +194 -0
  235. package/dist/esm/node_modules/chroma-js/src/utils/analyze.mjs.map +1 -0
  236. package/dist/esm/node_modules/chroma-js/src/utils/clip_rgb.mjs +18 -0
  237. package/dist/esm/node_modules/chroma-js/src/utils/clip_rgb.mjs.map +1 -0
  238. package/dist/esm/node_modules/chroma-js/src/utils/contrast.mjs +15 -0
  239. package/dist/esm/node_modules/chroma-js/src/utils/contrast.mjs.map +1 -0
  240. package/dist/esm/node_modules/chroma-js/src/utils/contrastAPCA.mjs +71 -0
  241. package/dist/esm/node_modules/chroma-js/src/utils/contrastAPCA.mjs.map +1 -0
  242. package/dist/esm/node_modules/chroma-js/src/utils/delta-e.mjs +66 -0
  243. package/dist/esm/node_modules/chroma-js/src/utils/delta-e.mjs.map +1 -0
  244. package/dist/esm/node_modules/chroma-js/src/utils/distance.mjs +20 -0
  245. package/dist/esm/node_modules/chroma-js/src/utils/distance.mjs.map +1 -0
  246. package/dist/esm/node_modules/chroma-js/src/utils/index.mjs +24 -0
  247. package/dist/esm/node_modules/chroma-js/src/utils/index.mjs.map +1 -0
  248. package/dist/esm/node_modules/chroma-js/src/utils/last.mjs +11 -0
  249. package/dist/esm/node_modules/chroma-js/src/utils/last.mjs.map +1 -0
  250. package/dist/esm/node_modules/chroma-js/src/utils/limit.mjs +8 -0
  251. package/dist/esm/node_modules/chroma-js/src/utils/limit.mjs.map +1 -0
  252. package/dist/esm/node_modules/chroma-js/src/utils/multiply-matrices.mjs +39 -0
  253. package/dist/esm/node_modules/chroma-js/src/utils/multiply-matrices.mjs.map +1 -0
  254. package/dist/esm/node_modules/chroma-js/src/utils/scales.mjs +19 -0
  255. package/dist/esm/node_modules/chroma-js/src/utils/scales.mjs.map +1 -0
  256. package/dist/esm/node_modules/chroma-js/src/utils/type.mjs +21 -0
  257. package/dist/esm/node_modules/chroma-js/src/utils/type.mjs.map +1 -0
  258. package/dist/esm/node_modules/chroma-js/src/utils/unpack.mjs +20 -0
  259. package/dist/esm/node_modules/chroma-js/src/utils/unpack.mjs.map +1 -0
  260. package/dist/esm/node_modules/chroma-js/src/utils/valid.mjs +14 -0
  261. package/dist/esm/node_modules/chroma-js/src/utils/valid.mjs.map +1 -0
  262. package/dist/esm/node_modules/chroma-js/src/version.mjs +5 -0
  263. package/dist/esm/node_modules/chroma-js/src/version.mjs.map +1 -0
  264. package/dist/esm/node_modules/lodash.merge/index.mjs +1 -1
  265. package/dist/esm/node_modules/use-sync-external-store/shim/index.mjs +1 -1
  266. package/dist/esm/packages/core/src/rpc/FrameClient.mjs +1 -0
  267. package/dist/esm/packages/core/src/rpc/FrameClient.mjs.map +1 -1
  268. package/dist/esm/packages/web/messages/b2b/en.json.mjs +10 -3
  269. package/dist/esm/packages/web/messages/b2b/en.json.mjs.map +1 -1
  270. package/dist/esm/packages/web/messages/en.json.mjs +10 -3
  271. package/dist/esm/packages/web/messages/en.json.mjs.map +1 -1
  272. package/dist/esm/packages/web/src/adminPortal/memberManagement/AccessSection.mjs +6 -3
  273. package/dist/esm/packages/web/src/adminPortal/memberManagement/AccessSection.mjs.map +1 -1
  274. package/dist/esm/packages/web/src/adminPortal/memberManagement/InviteModal.mjs +4 -1
  275. package/dist/esm/packages/web/src/adminPortal/memberManagement/InviteModal.mjs.map +1 -1
  276. package/dist/esm/packages/web/src/adminPortal/memberManagement/MemberListScreen.mjs +3 -1
  277. package/dist/esm/packages/web/src/adminPortal/memberManagement/MemberListScreen.mjs.map +1 -1
  278. package/dist/esm/packages/web/src/adminPortal/scim/SCIMConnectionRoleAssignmentsSection.mjs +6 -2
  279. package/dist/esm/packages/web/src/adminPortal/scim/SCIMConnectionRoleAssignmentsSection.mjs.map +1 -1
  280. package/dist/esm/packages/web/src/adminPortal/settings/OrgSettingsRoleAssignmentsSection.mjs +7 -3
  281. package/dist/esm/packages/web/src/adminPortal/settings/OrgSettingsRoleAssignmentsSection.mjs.map +1 -1
  282. package/dist/esm/packages/web/src/adminPortal/sso/RoleAssignmentsSection.mjs +5 -1
  283. package/dist/esm/packages/web/src/adminPortal/sso/RoleAssignmentsSection.mjs.map +1 -1
  284. package/dist/esm/packages/web/src/adminPortal/utils/theme.mjs +1 -1
  285. package/dist/esm/packages/web/src/adminPortal/utils/useRbac.mjs.map +1 -1
  286. package/dist/esm/packages/web/src/adminPortal/utils/useRoleAutocomplete.mjs +3 -3
  287. package/dist/esm/packages/web/src/adminPortal/utils/useRoleAutocomplete.mjs.map +1 -1
  288. package/dist/esm/packages/web/src/adminPortal/utils/useRoleDisplayInfo.mjs +2 -2
  289. package/dist/esm/packages/web/src/adminPortal/utils/useRoleDisplayInfo.mjs.map +1 -1
  290. package/dist/esm/packages/web/src/adminPortal/utils/useRoles.mjs +7 -2
  291. package/dist/esm/packages/web/src/adminPortal/utils/useRoles.mjs.map +1 -1
  292. package/dist/esm/packages/web/src/ui/b2b/components/OrganizationRow.mjs +1 -1
  293. package/dist/esm/packages/web/src/ui/b2b/screens/EmailConfirmation.mjs +27 -3
  294. package/dist/esm/packages/web/src/ui/b2b/screens/EmailConfirmation.mjs.map +1 -1
  295. package/dist/esm/packages/web/src/ui/b2b/screens/RecoveryCodeEntryScreen.mjs +2 -0
  296. package/dist/esm/packages/web/src/ui/b2b/screens/RecoveryCodeEntryScreen.mjs.map +1 -1
  297. package/dist/esm/packages/web/src/ui/b2b/screens/SMSOTPEntryScreen.mjs +2 -0
  298. package/dist/esm/packages/web/src/ui/b2b/screens/SMSOTPEntryScreen.mjs.map +1 -1
  299. package/dist/esm/packages/web/src/ui/b2b/utils.mjs +8 -1
  300. package/dist/esm/packages/web/src/ui/b2b/utils.mjs.map +1 -1
  301. package/dist/esm/packages/web/src/ui/b2c/components/GoogleOneTap.mjs +1 -1
  302. package/dist/esm/packages/web/src/ui/b2c/screens/Main/LoginForm/index.mjs +1 -1
  303. package/dist/esm/packages/web/src/ui/b2c/screens/Passkey/EditableRow.mjs +1 -1
  304. package/dist/esm/packages/web/src/ui/b2c/screens/Secondary/EmailConfirmation.mjs +10 -4
  305. package/dist/esm/packages/web/src/ui/b2c/screens/Secondary/EmailConfirmation.mjs.map +1 -1
  306. package/dist/esm/packages/web/src/ui/b2c/screens/Secondary/PasswordCreateAuthenticate.mjs +2 -1
  307. package/dist/esm/packages/web/src/ui/b2c/screens/Secondary/PasswordCreateAuthenticate.mjs.map +1 -1
  308. package/dist/esm/packages/web/src/ui/b2c/screens/Secondary/PasswordlessAuthenticate.mjs +11 -70
  309. package/dist/esm/packages/web/src/ui/b2c/screens/Secondary/PasswordlessAuthenticate.mjs.map +1 -1
  310. package/dist/esm/packages/web/src/ui/b2c/screens/Secondary/usePasswordlessAuthenticate.mjs +81 -0
  311. package/dist/esm/packages/web/src/ui/b2c/screens/Secondary/usePasswordlessAuthenticate.mjs.map +1 -0
  312. package/dist/esm/packages/web/src/ui/compat/generateColorFallback.mjs +63 -0
  313. package/dist/esm/packages/web/src/ui/compat/generateColorFallback.mjs.map +1 -0
  314. package/dist/esm/packages/web/src/ui/compat/styleToTheme.mjs +117 -0
  315. package/dist/esm/packages/web/src/ui/compat/styleToTheme.mjs.map +1 -0
  316. package/dist/esm/packages/web/src/ui/components/atoms/AnimatedContainer.mjs +1 -1
  317. package/dist/esm/packages/web/src/ui/components/atoms/Button.mjs +1 -1
  318. package/dist/esm/packages/web/src/ui/components/atoms/CircularProgress.mjs +4 -5
  319. package/dist/esm/packages/web/src/ui/components/atoms/CircularProgress.mjs.map +1 -1
  320. package/dist/esm/packages/web/src/ui/components/atoms/CodeContainer.mjs +1 -1
  321. package/dist/esm/packages/web/src/ui/components/atoms/Column.mjs +1 -1
  322. package/dist/esm/packages/web/src/ui/components/atoms/Typography.mjs +1 -1
  323. package/dist/esm/packages/web/src/ui/components/atoms/VerticalTransition.mjs +1 -1
  324. package/dist/esm/packages/web/src/ui/components/atoms/VisuallyHidden.mjs +1 -1
  325. package/dist/esm/packages/web/src/ui/components/atoms/Watermark.mjs +14 -23
  326. package/dist/esm/packages/web/src/ui/components/atoms/Watermark.mjs.map +1 -1
  327. package/dist/esm/packages/web/src/ui/components/atoms/Watermark.module.css.mjs +2 -2
  328. package/dist/esm/packages/web/src/ui/components/molecules/Badge.mjs +1 -1
  329. package/dist/esm/packages/web/src/ui/components/molecules/EmailInput.mjs +1 -1
  330. package/dist/esm/packages/web/src/ui/components/molecules/EmailInput.mjs.map +1 -1
  331. package/dist/esm/packages/web/src/ui/components/molecules/ErrorText.mjs +12 -4
  332. package/dist/esm/packages/web/src/ui/components/molecules/ErrorText.mjs.map +1 -1
  333. package/dist/esm/packages/web/src/ui/components/molecules/Input.mjs +3 -2
  334. package/dist/esm/packages/web/src/ui/components/molecules/Input.mjs.map +1 -1
  335. package/dist/esm/packages/web/src/ui/components/molecules/MainContainer.mjs +6 -6
  336. package/dist/esm/packages/web/src/ui/components/molecules/MainContainer.mjs.map +1 -1
  337. package/dist/esm/packages/web/src/ui/components/molecules/MainContainer.module.css.mjs +2 -2
  338. package/dist/esm/packages/web/src/ui/components/molecules/OtpInput.mjs +1 -1
  339. package/dist/esm/packages/web/src/ui/components/molecules/PasswordStrengthCheck.mjs +1 -1
  340. package/dist/esm/packages/web/src/ui/components/molecules/PhoneInput.mjs +3 -4
  341. package/dist/esm/packages/web/src/ui/components/molecules/PhoneInput.mjs.map +1 -1
  342. package/dist/esm/packages/web/src/ui/components/organisms/EmailConfirmationView.mjs +26 -3
  343. package/dist/esm/packages/web/src/ui/components/organisms/EmailConfirmationView.mjs.map +1 -1
  344. package/dist/esm/packages/web/src/ui/components/organisms/IDPConsentManifest.mjs +1 -1
  345. package/dist/esm/packages/web/src/ui/components/organisms/OneTapError.mjs +1 -1
  346. package/dist/esm/packages/web/src/ui/components/organisms/ResendOTPButton.mjs +2 -2
  347. package/dist/esm/packages/web/src/ui/components/organisms/ResendOTPButton.mjs.map +1 -1
  348. package/dist/esm/packages/web/src/ui/react/adminPortal/AdminPortalMemberManagement.mjs +0 -42
  349. package/dist/esm/packages/web/src/ui/react/adminPortal/AdminPortalMemberManagement.mjs.map +1 -1
  350. package/dist/esm/packages/web/src/ui/react/adminPortal/AdminPortalOrgSettings.mjs +0 -40
  351. package/dist/esm/packages/web/src/ui/react/adminPortal/AdminPortalOrgSettings.mjs.map +1 -1
  352. package/dist/esm/packages/web/src/ui/react/adminPortal/AdminPortalSCIM.mjs +0 -43
  353. package/dist/esm/packages/web/src/ui/react/adminPortal/AdminPortalSCIM.mjs.map +1 -1
  354. package/dist/esm/packages/web/src/ui/react/adminPortal/AdminPortalSSO.mjs +0 -36
  355. package/dist/esm/packages/web/src/ui/react/adminPortal/AdminPortalSSO.mjs.map +1 -1
  356. package/dist/esm/packages/web/src/ui/react/b2b/Stytch.mjs.map +1 -1
  357. package/dist/esm/packages/web/src/ui/react/bindings/createB2BComponent.mjs.map +1 -1
  358. package/dist/esm/packages/web/src/utils/crypto.mjs +1 -1
  359. package/dist/esm-dev/_virtual/index.mjs +4 -4
  360. package/dist/esm-dev/_virtual/index3.mjs +4 -4
  361. package/dist/esm-dev/_virtual/index6.mjs +2 -2
  362. package/dist/esm-dev/_virtual/index7.mjs +2 -2
  363. package/dist/esm-dev/adminPortal/index.mjs +4 -1
  364. package/dist/esm-dev/adminPortal/index.mjs.map +1 -1
  365. package/dist/esm-dev/b2b/index.mjs.map +1 -1
  366. package/dist/esm-dev/compat.mjs +3 -0
  367. package/dist/esm-dev/compat.mjs.map +1 -0
  368. package/dist/esm-dev/node_modules/chroma-js/index.mjs +85 -0
  369. package/dist/esm-dev/node_modules/chroma-js/index.mjs.map +1 -0
  370. package/dist/esm-dev/node_modules/chroma-js/src/Color.mjs +53 -0
  371. package/dist/esm-dev/node_modules/chroma-js/src/Color.mjs.map +1 -0
  372. package/dist/esm-dev/node_modules/chroma-js/src/chroma.mjs +11 -0
  373. package/dist/esm-dev/node_modules/chroma-js/src/chroma.mjs.map +1 -0
  374. package/dist/esm-dev/node_modules/chroma-js/src/colors/colorbrewer.mjs +82 -0
  375. package/dist/esm-dev/node_modules/chroma-js/src/colors/colorbrewer.mjs.map +1 -0
  376. package/dist/esm-dev/node_modules/chroma-js/src/colors/w3cx11.mjs +165 -0
  377. package/dist/esm-dev/node_modules/chroma-js/src/colors/w3cx11.mjs.map +1 -0
  378. package/dist/esm-dev/node_modules/chroma-js/src/generator/average.mjs +92 -0
  379. package/dist/esm-dev/node_modules/chroma-js/src/generator/average.mjs.map +1 -0
  380. package/dist/esm-dev/node_modules/chroma-js/src/generator/bezier.mjs +89 -0
  381. package/dist/esm-dev/node_modules/chroma-js/src/generator/bezier.mjs.map +1 -0
  382. package/dist/esm-dev/node_modules/chroma-js/src/generator/blend.mjs +58 -0
  383. package/dist/esm-dev/node_modules/chroma-js/src/generator/blend.mjs.map +1 -0
  384. package/dist/esm-dev/node_modules/chroma-js/src/generator/cubehelix.mjs +93 -0
  385. package/dist/esm-dev/node_modules/chroma-js/src/generator/cubehelix.mjs.map +1 -0
  386. package/dist/esm-dev/node_modules/chroma-js/src/generator/mix.mjs +22 -0
  387. package/dist/esm-dev/node_modules/chroma-js/src/generator/mix.mjs.map +1 -0
  388. package/dist/esm-dev/node_modules/chroma-js/src/generator/random.mjs +16 -0
  389. package/dist/esm-dev/node_modules/chroma-js/src/generator/random.mjs.map +1 -0
  390. package/dist/esm-dev/node_modules/chroma-js/src/generator/scale.mjs +398 -0
  391. package/dist/esm-dev/node_modules/chroma-js/src/generator/scale.mjs.map +1 -0
  392. package/dist/esm-dev/node_modules/chroma-js/src/interpolator/_hsx.mjs +62 -0
  393. package/dist/esm-dev/node_modules/chroma-js/src/interpolator/_hsx.mjs.map +1 -0
  394. package/dist/esm-dev/node_modules/chroma-js/src/interpolator/hcg.mjs +13 -0
  395. package/dist/esm-dev/node_modules/chroma-js/src/interpolator/hcg.mjs.map +1 -0
  396. package/dist/esm-dev/node_modules/chroma-js/src/interpolator/hsi.mjs +13 -0
  397. package/dist/esm-dev/node_modules/chroma-js/src/interpolator/hsi.mjs.map +1 -0
  398. package/dist/esm-dev/node_modules/chroma-js/src/interpolator/hsl.mjs +13 -0
  399. package/dist/esm-dev/node_modules/chroma-js/src/interpolator/hsl.mjs.map +1 -0
  400. package/dist/esm-dev/node_modules/chroma-js/src/interpolator/hsv.mjs +13 -0
  401. package/dist/esm-dev/node_modules/chroma-js/src/interpolator/hsv.mjs.map +1 -0
  402. package/dist/esm-dev/node_modules/chroma-js/src/interpolator/index.mjs +4 -0
  403. package/dist/esm-dev/node_modules/chroma-js/src/interpolator/index.mjs.map +1 -0
  404. package/dist/esm-dev/node_modules/chroma-js/src/interpolator/lab.mjs +20 -0
  405. package/dist/esm-dev/node_modules/chroma-js/src/interpolator/lab.mjs.map +1 -0
  406. package/dist/esm-dev/node_modules/chroma-js/src/interpolator/lch.mjs +14 -0
  407. package/dist/esm-dev/node_modules/chroma-js/src/interpolator/lch.mjs.map +1 -0
  408. package/dist/esm-dev/node_modules/chroma-js/src/interpolator/lrgb.mjs +21 -0
  409. package/dist/esm-dev/node_modules/chroma-js/src/interpolator/lrgb.mjs.map +1 -0
  410. package/dist/esm-dev/node_modules/chroma-js/src/interpolator/num.mjs +15 -0
  411. package/dist/esm-dev/node_modules/chroma-js/src/interpolator/num.mjs.map +1 -0
  412. package/dist/esm-dev/node_modules/chroma-js/src/interpolator/oklab.mjs +20 -0
  413. package/dist/esm-dev/node_modules/chroma-js/src/interpolator/oklab.mjs.map +1 -0
  414. package/dist/esm-dev/node_modules/chroma-js/src/interpolator/oklch.mjs +13 -0
  415. package/dist/esm-dev/node_modules/chroma-js/src/interpolator/oklch.mjs.map +1 -0
  416. package/dist/esm-dev/node_modules/chroma-js/src/interpolator/rgb.mjs +19 -0
  417. package/dist/esm-dev/node_modules/chroma-js/src/interpolator/rgb.mjs.map +1 -0
  418. package/dist/esm-dev/node_modules/chroma-js/src/io/cmyk/cmyk2rgb.mjs +18 -0
  419. package/dist/esm-dev/node_modules/chroma-js/src/io/cmyk/cmyk2rgb.mjs.map +1 -0
  420. package/dist/esm-dev/node_modules/chroma-js/src/io/cmyk/index.mjs +29 -0
  421. package/dist/esm-dev/node_modules/chroma-js/src/io/cmyk/index.mjs.map +1 -0
  422. package/dist/esm-dev/node_modules/chroma-js/src/io/cmyk/rgb2cmyk.mjs +20 -0
  423. package/dist/esm-dev/node_modules/chroma-js/src/io/cmyk/rgb2cmyk.mjs.map +1 -0
  424. package/dist/esm-dev/node_modules/chroma-js/src/io/css/css2rgb.mjs +239 -0
  425. package/dist/esm-dev/node_modules/chroma-js/src/io/css/css2rgb.mjs.map +1 -0
  426. package/dist/esm-dev/node_modules/chroma-js/src/io/css/hsl2css.mjs +29 -0
  427. package/dist/esm-dev/node_modules/chroma-js/src/io/css/hsl2css.mjs.map +1 -0
  428. package/dist/esm-dev/node_modules/chroma-js/src/io/css/index.mjs +27 -0
  429. package/dist/esm-dev/node_modules/chroma-js/src/io/css/index.mjs.map +1 -0
  430. package/dist/esm-dev/node_modules/chroma-js/src/io/css/lab2css.mjs +27 -0
  431. package/dist/esm-dev/node_modules/chroma-js/src/io/css/lab2css.mjs.map +1 -0
  432. package/dist/esm-dev/node_modules/chroma-js/src/io/css/lch2css.mjs +27 -0
  433. package/dist/esm-dev/node_modules/chroma-js/src/io/css/lch2css.mjs.map +1 -0
  434. package/dist/esm-dev/node_modules/chroma-js/src/io/css/oklab2css.mjs +18 -0
  435. package/dist/esm-dev/node_modules/chroma-js/src/io/css/oklab2css.mjs.map +1 -0
  436. package/dist/esm-dev/node_modules/chroma-js/src/io/css/oklch2css.mjs +18 -0
  437. package/dist/esm-dev/node_modules/chroma-js/src/io/css/oklch2css.mjs.map +1 -0
  438. package/dist/esm-dev/node_modules/chroma-js/src/io/css/rgb2css.mjs +65 -0
  439. package/dist/esm-dev/node_modules/chroma-js/src/io/css/rgb2css.mjs.map +1 -0
  440. package/dist/esm-dev/node_modules/chroma-js/src/io/gl/index.mjs +24 -0
  441. package/dist/esm-dev/node_modules/chroma-js/src/io/gl/index.mjs.map +1 -0
  442. package/dist/esm-dev/node_modules/chroma-js/src/io/hcg/hcg2rgb.mjs +58 -0
  443. package/dist/esm-dev/node_modules/chroma-js/src/io/hcg/hcg2rgb.mjs.map +1 -0
  444. package/dist/esm-dev/node_modules/chroma-js/src/io/hcg/index.mjs +29 -0
  445. package/dist/esm-dev/node_modules/chroma-js/src/io/hcg/index.mjs.map +1 -0
  446. package/dist/esm-dev/node_modules/chroma-js/src/io/hcg/rgb2hcg.mjs +25 -0
  447. package/dist/esm-dev/node_modules/chroma-js/src/io/hcg/rgb2hcg.mjs.map +1 -0
  448. package/dist/esm-dev/node_modules/chroma-js/src/io/hex/hex2rgb.mjs +57 -0
  449. package/dist/esm-dev/node_modules/chroma-js/src/io/hex/hex2rgb.mjs.map +1 -0
  450. package/dist/esm-dev/node_modules/chroma-js/src/io/hex/index.mjs +30 -0
  451. package/dist/esm-dev/node_modules/chroma-js/src/io/hex/index.mjs.map +1 -0
  452. package/dist/esm-dev/node_modules/chroma-js/src/io/hex/rgb2hex.mjs +33 -0
  453. package/dist/esm-dev/node_modules/chroma-js/src/io/hex/rgb2hex.mjs.map +1 -0
  454. package/dist/esm-dev/node_modules/chroma-js/src/io/hsi/hsi2rgb.mjs +49 -0
  455. package/dist/esm-dev/node_modules/chroma-js/src/io/hsi/hsi2rgb.mjs.map +1 -0
  456. package/dist/esm-dev/node_modules/chroma-js/src/io/hsi/index.mjs +29 -0
  457. package/dist/esm-dev/node_modules/chroma-js/src/io/hsi/index.mjs.map +1 -0
  458. package/dist/esm-dev/node_modules/chroma-js/src/io/hsi/rgb2hsi.mjs +34 -0
  459. package/dist/esm-dev/node_modules/chroma-js/src/io/hsi/rgb2hsi.mjs.map +1 -0
  460. package/dist/esm-dev/node_modules/chroma-js/src/io/hsl/hsl2rgb.mjs +37 -0
  461. package/dist/esm-dev/node_modules/chroma-js/src/io/hsl/hsl2rgb.mjs.map +1 -0
  462. package/dist/esm-dev/node_modules/chroma-js/src/io/hsl/index.mjs +29 -0
  463. package/dist/esm-dev/node_modules/chroma-js/src/io/hsl/index.mjs.map +1 -0
  464. package/dist/esm-dev/node_modules/chroma-js/src/io/hsl/rgb2hsl.mjs +47 -0
  465. package/dist/esm-dev/node_modules/chroma-js/src/io/hsl/rgb2hsl.mjs.map +1 -0
  466. package/dist/esm-dev/node_modules/chroma-js/src/io/hsv/hsv2rgb.mjs +50 -0
  467. package/dist/esm-dev/node_modules/chroma-js/src/io/hsv/hsv2rgb.mjs.map +1 -0
  468. package/dist/esm-dev/node_modules/chroma-js/src/io/hsv/index.mjs +29 -0
  469. package/dist/esm-dev/node_modules/chroma-js/src/io/hsv/index.mjs.map +1 -0
  470. package/dist/esm-dev/node_modules/chroma-js/src/io/hsv/rgb2hsv.mjs +35 -0
  471. package/dist/esm-dev/node_modules/chroma-js/src/io/hsv/rgb2hsv.mjs.map +1 -0
  472. package/dist/esm-dev/node_modules/chroma-js/src/io/input.mjs +7 -0
  473. package/dist/esm-dev/node_modules/chroma-js/src/io/input.mjs.map +1 -0
  474. package/dist/esm-dev/node_modules/chroma-js/src/io/lab/index.mjs +30 -0
  475. package/dist/esm-dev/node_modules/chroma-js/src/io/lab/index.mjs.map +1 -0
  476. package/dist/esm-dev/node_modules/chroma-js/src/io/lab/lab-constants.mjs +116 -0
  477. package/dist/esm-dev/node_modules/chroma-js/src/io/lab/lab-constants.mjs.map +1 -0
  478. package/dist/esm-dev/node_modules/chroma-js/src/io/lab/lab2rgb.mjs +102 -0
  479. package/dist/esm-dev/node_modules/chroma-js/src/io/lab/lab2rgb.mjs.map +1 -0
  480. package/dist/esm-dev/node_modules/chroma-js/src/io/lab/rgb2lab.mjs +68 -0
  481. package/dist/esm-dev/node_modules/chroma-js/src/io/lab/rgb2lab.mjs.map +1 -0
  482. package/dist/esm-dev/node_modules/chroma-js/src/io/lch/hcl2rgb.mjs +11 -0
  483. package/dist/esm-dev/node_modules/chroma-js/src/io/lch/hcl2rgb.mjs.map +1 -0
  484. package/dist/esm-dev/node_modules/chroma-js/src/io/lch/index.mjs +38 -0
  485. package/dist/esm-dev/node_modules/chroma-js/src/io/lch/index.mjs.map +1 -0
  486. package/dist/esm-dev/node_modules/chroma-js/src/io/lch/lab2lch.mjs +15 -0
  487. package/dist/esm-dev/node_modules/chroma-js/src/io/lch/lab2lch.mjs.map +1 -0
  488. package/dist/esm-dev/node_modules/chroma-js/src/io/lch/lch2lab.mjs +21 -0
  489. package/dist/esm-dev/node_modules/chroma-js/src/io/lch/lch2lab.mjs.map +1 -0
  490. package/dist/esm-dev/node_modules/chroma-js/src/io/lch/lch2rgb.mjs +15 -0
  491. package/dist/esm-dev/node_modules/chroma-js/src/io/lch/lch2rgb.mjs.map +1 -0
  492. package/dist/esm-dev/node_modules/chroma-js/src/io/lch/rgb2lch.mjs +14 -0
  493. package/dist/esm-dev/node_modules/chroma-js/src/io/lch/rgb2lch.mjs.map +1 -0
  494. package/dist/esm-dev/node_modules/chroma-js/src/io/named/index.mjs +30 -0
  495. package/dist/esm-dev/node_modules/chroma-js/src/io/named/index.mjs.map +1 -0
  496. package/dist/esm-dev/node_modules/chroma-js/src/io/num/index.mjs +33 -0
  497. package/dist/esm-dev/node_modules/chroma-js/src/io/num/index.mjs.map +1 -0
  498. package/dist/esm-dev/node_modules/chroma-js/src/io/num/num2rgb.mjs +14 -0
  499. package/dist/esm-dev/node_modules/chroma-js/src/io/num/num2rgb.mjs.map +1 -0
  500. package/dist/esm-dev/node_modules/chroma-js/src/io/num/rgb2num.mjs +10 -0
  501. package/dist/esm-dev/node_modules/chroma-js/src/io/num/rgb2num.mjs.map +1 -0
  502. package/dist/esm-dev/node_modules/chroma-js/src/io/oklab/index.mjs +29 -0
  503. package/dist/esm-dev/node_modules/chroma-js/src/io/oklab/index.mjs.map +1 -0
  504. package/dist/esm-dev/node_modules/chroma-js/src/io/oklab/oklab2rgb.mjs +36 -0
  505. package/dist/esm-dev/node_modules/chroma-js/src/io/oklab/oklab2rgb.mjs.map +1 -0
  506. package/dist/esm-dev/node_modules/chroma-js/src/io/oklab/rgb2oklab.mjs +39 -0
  507. package/dist/esm-dev/node_modules/chroma-js/src/io/oklab/rgb2oklab.mjs.map +1 -0
  508. package/dist/esm-dev/node_modules/chroma-js/src/io/oklch/index.mjs +29 -0
  509. package/dist/esm-dev/node_modules/chroma-js/src/io/oklch/index.mjs.map +1 -0
  510. package/dist/esm-dev/node_modules/chroma-js/src/io/oklch/oklch2rgb.mjs +15 -0
  511. package/dist/esm-dev/node_modules/chroma-js/src/io/oklch/oklch2rgb.mjs.map +1 -0
  512. package/dist/esm-dev/node_modules/chroma-js/src/io/oklch/rgb2oklch.mjs +14 -0
  513. package/dist/esm-dev/node_modules/chroma-js/src/io/oklch/rgb2oklch.mjs.map +1 -0
  514. package/dist/esm-dev/node_modules/chroma-js/src/io/rgb/index.mjs +47 -0
  515. package/dist/esm-dev/node_modules/chroma-js/src/io/rgb/index.mjs.map +1 -0
  516. package/dist/esm-dev/node_modules/chroma-js/src/io/temp/index.mjs +23 -0
  517. package/dist/esm-dev/node_modules/chroma-js/src/io/temp/index.mjs.map +1 -0
  518. package/dist/esm-dev/node_modules/chroma-js/src/io/temp/rgb2temperature.mjs +33 -0
  519. package/dist/esm-dev/node_modules/chroma-js/src/io/temp/rgb2temperature.mjs.map +1 -0
  520. package/dist/esm-dev/node_modules/chroma-js/src/io/temp/temperature2rgb.mjs +40 -0
  521. package/dist/esm-dev/node_modules/chroma-js/src/io/temp/temperature2rgb.mjs.map +1 -0
  522. package/dist/esm-dev/node_modules/chroma-js/src/ops/alpha.mjs +14 -0
  523. package/dist/esm-dev/node_modules/chroma-js/src/ops/alpha.mjs.map +1 -0
  524. package/dist/esm-dev/node_modules/chroma-js/src/ops/clipped.mjs +6 -0
  525. package/dist/esm-dev/node_modules/chroma-js/src/ops/clipped.mjs.map +1 -0
  526. package/dist/esm-dev/node_modules/chroma-js/src/ops/darken.mjs +18 -0
  527. package/dist/esm-dev/node_modules/chroma-js/src/ops/darken.mjs.map +1 -0
  528. package/dist/esm-dev/node_modules/chroma-js/src/ops/get.mjs +14 -0
  529. package/dist/esm-dev/node_modules/chroma-js/src/ops/get.mjs.map +1 -0
  530. package/dist/esm-dev/node_modules/chroma-js/src/ops/luminance.mjs +56 -0
  531. package/dist/esm-dev/node_modules/chroma-js/src/ops/luminance.mjs.map +1 -0
  532. package/dist/esm-dev/node_modules/chroma-js/src/ops/mix.mjs +11 -0
  533. package/dist/esm-dev/node_modules/chroma-js/src/ops/mix.mjs.map +1 -0
  534. package/dist/esm-dev/node_modules/chroma-js/src/ops/premultiply.mjs +13 -0
  535. package/dist/esm-dev/node_modules/chroma-js/src/ops/premultiply.mjs.map +1 -0
  536. package/dist/esm-dev/node_modules/chroma-js/src/ops/saturate.mjs +16 -0
  537. package/dist/esm-dev/node_modules/chroma-js/src/ops/saturate.mjs.map +1 -0
  538. package/dist/esm-dev/node_modules/chroma-js/src/ops/set.mjs +44 -0
  539. package/dist/esm-dev/node_modules/chroma-js/src/ops/set.mjs.map +1 -0
  540. package/dist/esm-dev/node_modules/chroma-js/src/ops/shade.mjs +12 -0
  541. package/dist/esm-dev/node_modules/chroma-js/src/ops/shade.mjs.map +1 -0
  542. package/dist/esm-dev/node_modules/chroma-js/src/utils/analyze.mjs +194 -0
  543. package/dist/esm-dev/node_modules/chroma-js/src/utils/analyze.mjs.map +1 -0
  544. package/dist/esm-dev/node_modules/chroma-js/src/utils/clip_rgb.mjs +18 -0
  545. package/dist/esm-dev/node_modules/chroma-js/src/utils/clip_rgb.mjs.map +1 -0
  546. package/dist/esm-dev/node_modules/chroma-js/src/utils/contrast.mjs +15 -0
  547. package/dist/esm-dev/node_modules/chroma-js/src/utils/contrast.mjs.map +1 -0
  548. package/dist/esm-dev/node_modules/chroma-js/src/utils/contrastAPCA.mjs +71 -0
  549. package/dist/esm-dev/node_modules/chroma-js/src/utils/contrastAPCA.mjs.map +1 -0
  550. package/dist/esm-dev/node_modules/chroma-js/src/utils/delta-e.mjs +66 -0
  551. package/dist/esm-dev/node_modules/chroma-js/src/utils/delta-e.mjs.map +1 -0
  552. package/dist/esm-dev/node_modules/chroma-js/src/utils/distance.mjs +20 -0
  553. package/dist/esm-dev/node_modules/chroma-js/src/utils/distance.mjs.map +1 -0
  554. package/dist/esm-dev/node_modules/chroma-js/src/utils/index.mjs +24 -0
  555. package/dist/esm-dev/node_modules/chroma-js/src/utils/index.mjs.map +1 -0
  556. package/dist/esm-dev/node_modules/chroma-js/src/utils/last.mjs +11 -0
  557. package/dist/esm-dev/node_modules/chroma-js/src/utils/last.mjs.map +1 -0
  558. package/dist/esm-dev/node_modules/chroma-js/src/utils/limit.mjs +8 -0
  559. package/dist/esm-dev/node_modules/chroma-js/src/utils/limit.mjs.map +1 -0
  560. package/dist/esm-dev/node_modules/chroma-js/src/utils/multiply-matrices.mjs +39 -0
  561. package/dist/esm-dev/node_modules/chroma-js/src/utils/multiply-matrices.mjs.map +1 -0
  562. package/dist/esm-dev/node_modules/chroma-js/src/utils/scales.mjs +19 -0
  563. package/dist/esm-dev/node_modules/chroma-js/src/utils/scales.mjs.map +1 -0
  564. package/dist/esm-dev/node_modules/chroma-js/src/utils/type.mjs +21 -0
  565. package/dist/esm-dev/node_modules/chroma-js/src/utils/type.mjs.map +1 -0
  566. package/dist/esm-dev/node_modules/chroma-js/src/utils/unpack.mjs +20 -0
  567. package/dist/esm-dev/node_modules/chroma-js/src/utils/unpack.mjs.map +1 -0
  568. package/dist/esm-dev/node_modules/chroma-js/src/utils/valid.mjs +14 -0
  569. package/dist/esm-dev/node_modules/chroma-js/src/utils/valid.mjs.map +1 -0
  570. package/dist/esm-dev/node_modules/chroma-js/src/version.mjs +5 -0
  571. package/dist/esm-dev/node_modules/chroma-js/src/version.mjs.map +1 -0
  572. package/dist/esm-dev/node_modules/lodash.merge/index.mjs +1 -1
  573. package/dist/esm-dev/node_modules/use-sync-external-store/shim/index.mjs +1 -1
  574. package/dist/esm-dev/packages/core/src/rpc/FrameClient.mjs +1 -0
  575. package/dist/esm-dev/packages/core/src/rpc/FrameClient.mjs.map +1 -1
  576. package/dist/esm-dev/packages/web/messages/b2b/en.json.mjs +10 -3
  577. package/dist/esm-dev/packages/web/messages/b2b/en.json.mjs.map +1 -1
  578. package/dist/esm-dev/packages/web/messages/en.json.mjs +10 -3
  579. package/dist/esm-dev/packages/web/messages/en.json.mjs.map +1 -1
  580. package/dist/esm-dev/packages/web/src/adminPortal/memberManagement/AccessSection.mjs +6 -3
  581. package/dist/esm-dev/packages/web/src/adminPortal/memberManagement/AccessSection.mjs.map +1 -1
  582. package/dist/esm-dev/packages/web/src/adminPortal/memberManagement/InviteModal.mjs +4 -1
  583. package/dist/esm-dev/packages/web/src/adminPortal/memberManagement/InviteModal.mjs.map +1 -1
  584. package/dist/esm-dev/packages/web/src/adminPortal/memberManagement/MemberListScreen.mjs +3 -1
  585. package/dist/esm-dev/packages/web/src/adminPortal/memberManagement/MemberListScreen.mjs.map +1 -1
  586. package/dist/esm-dev/packages/web/src/adminPortal/scim/SCIMConnectionRoleAssignmentsSection.mjs +6 -2
  587. package/dist/esm-dev/packages/web/src/adminPortal/scim/SCIMConnectionRoleAssignmentsSection.mjs.map +1 -1
  588. package/dist/esm-dev/packages/web/src/adminPortal/settings/OrgSettingsRoleAssignmentsSection.mjs +7 -3
  589. package/dist/esm-dev/packages/web/src/adminPortal/settings/OrgSettingsRoleAssignmentsSection.mjs.map +1 -1
  590. package/dist/esm-dev/packages/web/src/adminPortal/sso/RoleAssignmentsSection.mjs +5 -1
  591. package/dist/esm-dev/packages/web/src/adminPortal/sso/RoleAssignmentsSection.mjs.map +1 -1
  592. package/dist/esm-dev/packages/web/src/adminPortal/utils/theme.mjs +1 -1
  593. package/dist/esm-dev/packages/web/src/adminPortal/utils/useRbac.mjs.map +1 -1
  594. package/dist/esm-dev/packages/web/src/adminPortal/utils/useRoleAutocomplete.mjs +3 -3
  595. package/dist/esm-dev/packages/web/src/adminPortal/utils/useRoleAutocomplete.mjs.map +1 -1
  596. package/dist/esm-dev/packages/web/src/adminPortal/utils/useRoleDisplayInfo.mjs +2 -2
  597. package/dist/esm-dev/packages/web/src/adminPortal/utils/useRoleDisplayInfo.mjs.map +1 -1
  598. package/dist/esm-dev/packages/web/src/adminPortal/utils/useRoles.mjs +7 -2
  599. package/dist/esm-dev/packages/web/src/adminPortal/utils/useRoles.mjs.map +1 -1
  600. package/dist/esm-dev/packages/web/src/ui/b2b/components/OrganizationRow.mjs +1 -1
  601. package/dist/esm-dev/packages/web/src/ui/b2b/screens/EmailConfirmation.mjs +27 -3
  602. package/dist/esm-dev/packages/web/src/ui/b2b/screens/EmailConfirmation.mjs.map +1 -1
  603. package/dist/esm-dev/packages/web/src/ui/b2b/screens/RecoveryCodeEntryScreen.mjs +2 -0
  604. package/dist/esm-dev/packages/web/src/ui/b2b/screens/RecoveryCodeEntryScreen.mjs.map +1 -1
  605. package/dist/esm-dev/packages/web/src/ui/b2b/screens/SMSOTPEntryScreen.mjs +2 -0
  606. package/dist/esm-dev/packages/web/src/ui/b2b/screens/SMSOTPEntryScreen.mjs.map +1 -1
  607. package/dist/esm-dev/packages/web/src/ui/b2b/utils.mjs +8 -1
  608. package/dist/esm-dev/packages/web/src/ui/b2b/utils.mjs.map +1 -1
  609. package/dist/esm-dev/packages/web/src/ui/b2c/components/GoogleOneTap.mjs +1 -1
  610. package/dist/esm-dev/packages/web/src/ui/b2c/screens/Main/LoginForm/index.mjs +1 -1
  611. package/dist/esm-dev/packages/web/src/ui/b2c/screens/Passkey/EditableRow.mjs +1 -1
  612. package/dist/esm-dev/packages/web/src/ui/b2c/screens/Secondary/EmailConfirmation.mjs +10 -4
  613. package/dist/esm-dev/packages/web/src/ui/b2c/screens/Secondary/EmailConfirmation.mjs.map +1 -1
  614. package/dist/esm-dev/packages/web/src/ui/b2c/screens/Secondary/PasswordCreateAuthenticate.mjs +2 -1
  615. package/dist/esm-dev/packages/web/src/ui/b2c/screens/Secondary/PasswordCreateAuthenticate.mjs.map +1 -1
  616. package/dist/esm-dev/packages/web/src/ui/b2c/screens/Secondary/PasswordlessAuthenticate.mjs +11 -70
  617. package/dist/esm-dev/packages/web/src/ui/b2c/screens/Secondary/PasswordlessAuthenticate.mjs.map +1 -1
  618. package/dist/esm-dev/packages/web/src/ui/b2c/screens/Secondary/usePasswordlessAuthenticate.mjs +81 -0
  619. package/dist/esm-dev/packages/web/src/ui/b2c/screens/Secondary/usePasswordlessAuthenticate.mjs.map +1 -0
  620. package/dist/esm-dev/packages/web/src/ui/compat/generateColorFallback.mjs +63 -0
  621. package/dist/esm-dev/packages/web/src/ui/compat/generateColorFallback.mjs.map +1 -0
  622. package/dist/esm-dev/packages/web/src/ui/compat/styleToTheme.mjs +165 -0
  623. package/dist/esm-dev/packages/web/src/ui/compat/styleToTheme.mjs.map +1 -0
  624. package/dist/esm-dev/packages/web/src/ui/components/atoms/AnimatedContainer.mjs +1 -1
  625. package/dist/esm-dev/packages/web/src/ui/components/atoms/Button.mjs +1 -1
  626. package/dist/esm-dev/packages/web/src/ui/components/atoms/CircularProgress.mjs +4 -5
  627. package/dist/esm-dev/packages/web/src/ui/components/atoms/CircularProgress.mjs.map +1 -1
  628. package/dist/esm-dev/packages/web/src/ui/components/atoms/CodeContainer.mjs +1 -1
  629. package/dist/esm-dev/packages/web/src/ui/components/atoms/Column.mjs +1 -1
  630. package/dist/esm-dev/packages/web/src/ui/components/atoms/Typography.mjs +1 -1
  631. package/dist/esm-dev/packages/web/src/ui/components/atoms/VerticalTransition.mjs +1 -1
  632. package/dist/esm-dev/packages/web/src/ui/components/atoms/VisuallyHidden.mjs +1 -1
  633. package/dist/esm-dev/packages/web/src/ui/components/atoms/Watermark.mjs +14 -23
  634. package/dist/esm-dev/packages/web/src/ui/components/atoms/Watermark.mjs.map +1 -1
  635. package/dist/esm-dev/packages/web/src/ui/components/atoms/Watermark.module.css.mjs +2 -2
  636. package/dist/esm-dev/packages/web/src/ui/components/molecules/Badge.mjs +1 -1
  637. package/dist/esm-dev/packages/web/src/ui/components/molecules/EmailInput.mjs +1 -1
  638. package/dist/esm-dev/packages/web/src/ui/components/molecules/EmailInput.mjs.map +1 -1
  639. package/dist/esm-dev/packages/web/src/ui/components/molecules/ErrorText.mjs +12 -4
  640. package/dist/esm-dev/packages/web/src/ui/components/molecules/ErrorText.mjs.map +1 -1
  641. package/dist/esm-dev/packages/web/src/ui/components/molecules/Input.mjs +3 -2
  642. package/dist/esm-dev/packages/web/src/ui/components/molecules/Input.mjs.map +1 -1
  643. package/dist/esm-dev/packages/web/src/ui/components/molecules/MainContainer.mjs +6 -6
  644. package/dist/esm-dev/packages/web/src/ui/components/molecules/MainContainer.mjs.map +1 -1
  645. package/dist/esm-dev/packages/web/src/ui/components/molecules/MainContainer.module.css.mjs +2 -2
  646. package/dist/esm-dev/packages/web/src/ui/components/molecules/OtpInput.mjs +1 -1
  647. package/dist/esm-dev/packages/web/src/ui/components/molecules/PasswordStrengthCheck.mjs +1 -1
  648. package/dist/esm-dev/packages/web/src/ui/components/molecules/PhoneInput.mjs +3 -4
  649. package/dist/esm-dev/packages/web/src/ui/components/molecules/PhoneInput.mjs.map +1 -1
  650. package/dist/esm-dev/packages/web/src/ui/components/organisms/EmailConfirmationView.mjs +26 -3
  651. package/dist/esm-dev/packages/web/src/ui/components/organisms/EmailConfirmationView.mjs.map +1 -1
  652. package/dist/esm-dev/packages/web/src/ui/components/organisms/IDPConsentManifest.mjs +1 -1
  653. package/dist/esm-dev/packages/web/src/ui/components/organisms/ResendOTPButton.mjs +2 -2
  654. package/dist/esm-dev/packages/web/src/ui/components/organisms/ResendOTPButton.mjs.map +1 -1
  655. package/dist/esm-dev/packages/web/src/ui/react/adminPortal/AdminPortalMemberManagement.mjs +0 -42
  656. package/dist/esm-dev/packages/web/src/ui/react/adminPortal/AdminPortalMemberManagement.mjs.map +1 -1
  657. package/dist/esm-dev/packages/web/src/ui/react/adminPortal/AdminPortalOrgSettings.mjs +0 -40
  658. package/dist/esm-dev/packages/web/src/ui/react/adminPortal/AdminPortalOrgSettings.mjs.map +1 -1
  659. package/dist/esm-dev/packages/web/src/ui/react/adminPortal/AdminPortalSCIM.mjs +0 -43
  660. package/dist/esm-dev/packages/web/src/ui/react/adminPortal/AdminPortalSCIM.mjs.map +1 -1
  661. package/dist/esm-dev/packages/web/src/ui/react/adminPortal/AdminPortalSSO.mjs +0 -36
  662. package/dist/esm-dev/packages/web/src/ui/react/adminPortal/AdminPortalSSO.mjs.map +1 -1
  663. package/dist/esm-dev/packages/web/src/ui/react/b2b/Stytch.mjs.map +1 -1
  664. package/dist/esm-dev/packages/web/src/ui/react/bindings/createB2BComponent.mjs.map +1 -1
  665. package/dist/types/PresentationConfig-Bqzf8zr3.d.ts +168 -0
  666. package/dist/types/{StytchB2BClient-Dq-ITB7Q.d.ts → StytchB2BClient-CsY7ZNKh.d.ts} +2 -1
  667. package/dist/types/{StytchClient-BV0sT3Ox.d.ts → StytchClient-DZRM_fM4.d.ts} +2 -2
  668. package/dist/types/adminPortal/index.d.ts +7 -4
  669. package/dist/types/b2b/index.d.ts +14 -11
  670. package/dist/types/b2b/index.headless.d.ts +5 -4
  671. package/dist/types/compat.d.ts +46 -0
  672. package/dist/types/createAuthUrlHandler-BZoD2LDF.d.ts +2406 -0
  673. package/dist/types/idpHelpers-CD5sSDzA.d.ts +36 -0
  674. package/dist/types/index.d.ts +11 -8
  675. package/dist/types/index.headless.d.ts +5 -4
  676. package/dist/types/{shadcn-CFz8Asq0.d.ts → shadcn-4-5byj93.d.ts} +9 -171
  677. package/dist/types/{createAuthUrlHandler-Ck5TyB9J.d.ts → ui-DXrQ-gA8.d.ts} +41 -1543
  678. package/messages/b2b/en.po +6 -3
  679. package/messages/en.po +6 -3
  680. package/package.json +1 -1
  681. package/dist/cjs/StytchSSRProxy-CUOvjF03.js.map +0 -1
  682. package/dist/cjs/idpHelpers-eUP8j58U.js.map +0 -1
  683. package/dist/cjs/shadcn-Bbv2Hk3P.js.map +0 -1
  684. package/dist/cjs-dev/StytchSSRProxy-D0B5PuT0.js.map +0 -1
  685. package/dist/cjs-dev/idpHelpers-DOOVv6dT.js.map +0 -1
  686. package/dist/cjs-dev/shadcn-CdbmlhdF.js.map +0 -1
  687. package/dist/esm/packages/web/src/adminPortal/MuiClassNameSetup.mjs +0 -5
  688. package/dist/esm/packages/web/src/adminPortal/MuiClassNameSetup.mjs.map +0 -1
  689. package/dist/esm/packages/web/src/adminPortal/classNameSeed.mjs +0 -5
  690. package/dist/esm/packages/web/src/adminPortal/classNameSeed.mjs.map +0 -1
  691. package/dist/esm-dev/packages/web/src/adminPortal/MuiClassNameSetup.mjs +0 -5
  692. package/dist/esm-dev/packages/web/src/adminPortal/MuiClassNameSetup.mjs.map +0 -1
  693. package/dist/esm-dev/packages/web/src/adminPortal/classNameSeed.mjs +0 -5
  694. package/dist/esm-dev/packages/web/src/adminPortal/classNameSeed.mjs.map +0 -1
  695. package/dist/types/idpHelpers-hBhPCtAC.d.ts +0 -936
@@ -1 +1 @@
1
- {"version":3,"file":"index.headless.cjs","sources":["../../../../core/src/HeadlessClients/b2b/HeadlessB2BSelfClient.ts","../../../../core/src/HeadlessClients/b2b/HeadlessB2BSSOClient.ts","../../../../core/src/HeadlessClients/b2b/HeadlessB2BSCIMClient.ts","../../../../core/src/HeadlessClients/b2b/HeadlessB2BOrganizationClient.ts","../../../../core/src/HeadlessClients/b2b/HeadlessB2BOAuthClient.ts","../../../../core/src/HeadlessClients/b2b/HeadlessB2BSessionClient.ts","../../../../core/src/HeadlessClients/b2b/HeadlessB2BDiscoveryClient.ts","../../../../core/src/HeadlessClients/b2b/HeadlessB2BOTPsClient.ts","../../../../core/src/HeadlessClients/b2b/HeadlessB2BTOTPsClient.ts","../../../../core/src/HeadlessClients/b2b/HeadlessB2BRecoveryCodesClient.ts","../../../../core/src/HeadlessClients/b2b/HeadlessB2BRBACClient.ts","../../../../core/src/HeadlessClients/b2b/HeadlessB2BImpersonationClient.ts","../../../../core/src/HeadlessClients/b2b/HeadlessB2BIDPClient.ts","../../../../web/src/b2b/HeadlessB2BOAuthClient.ts","../../../../web/src/b2b/oneTap/B2BOneTapProvider.ts","../../../../web/src/b2b/StytchB2BClient.ts","../../../../web/src/b2b/index.headless.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","import { IB2BSubscriptionService, IDFPProtectedAuthProvider, INetworkClient, IPKCEManager } from '../..';\nimport {\n B2BSSOCreateExternalConnectionOptions,\n B2BSSOCreateExternalConnectionResponse,\n B2BSSODeleteConnectionResponse,\n B2BSSODiscoverConnectionsResponse,\n B2BSSOGetConnectionsResponse,\n B2BSSOOIDCCreateConnectionOptions,\n B2BSSOOIDCCreateConnectionResponse,\n B2BSSOOIDCUpdateConnectionOptions,\n B2BSSOOIDCUpdateConnectionResponse,\n B2BSSOSAMLCreateConnectionOptions,\n B2BSSOSAMLCreateConnectionResponse,\n B2BSSOSAMLDeleteEncryptionPrivateKeyOptions,\n B2BSSOSAMLDeleteEncryptionPrivateKeyResponse,\n B2BSSOSAMLDeleteVerificationCertificateOptions,\n B2BSSOSAMLDeleteVerificationCertificateResponse,\n B2BSSOSAMLUpdateConnectionByURLOptions,\n B2BSSOSAMLUpdateConnectionByURLResponse,\n B2BSSOSAMLUpdateConnectionOptions,\n B2BSSOSAMLUpdateConnectionResponse,\n B2BSSOUpdateExternalConnectionOptions,\n B2BSSOUpdateExternalConnectionResponse,\n IHeadlessB2BSSOClient,\n SSOAuthenticateOptions,\n SSOAuthenticateResponse,\n SSOStartOptions,\n} from '../../public';\nimport { StytchProjectConfigurationInput } from '../../public/typeConfig';\nimport { isTestPublicToken, logger } from '../../utils';\nimport { validateInDev } from '../../utils/dev';\n\ntype DynamicConfig = Promise<{\n pkceRequiredForSso: boolean;\n}>;\ntype Config = {\n publicToken: string;\n testAPIURL: string;\n liveAPIURL: string;\n};\n\nexport class HeadlessB2BSSOClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessB2BSSOClient<TProjectConfiguration>\n{\n authenticate: (options: SSOAuthenticateOptions) => Promise<SSOAuthenticateResponse<TProjectConfiguration>>;\n\n constructor(\n protected _networkClient: INetworkClient,\n protected _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n protected _pkceManager: IPKCEManager,\n protected _dynamicConfig: DynamicConfig,\n protected _config: Config,\n protected dfpProtectedAuth: IDFPProtectedAuthProvider,\n ) {\n this.authenticate = this._subscriptionService.withUpdateSession(async (options: SSOAuthenticateOptions) => {\n validateInDev('stytch.sso.authenticate', options, {\n sso_token: 'string',\n session_duration_minutes: 'number',\n locale: 'optionalString',\n });\n\n const keyPair = await this._pkceManager.getPKPair();\n\n if (!keyPair) {\n logger.warn(\n 'No code verifier found in local storage for SSO flow.\\n' +\n 'Consider using stytch.sso.start() to add PKCE to your SSO flows for added security.\\n' +\n 'See https://stytch.com/docs/oauth#guides_pkce for more information.',\n );\n }\n\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n\n const resp = await this._networkClient.retriableFetchSDK<SSOAuthenticateResponse<TProjectConfiguration>>({\n url: '/b2b/sso/authenticate',\n method: 'POST',\n body: {\n pkce_code_verifier: keyPair?.code_verifier,\n ...options,\n dfp_telemetry_id,\n captcha_token,\n intermediate_session_token: this._subscriptionService.getIntermediateSessionToken() || undefined,\n },\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n\n this._pkceManager.clearPKPair();\n\n return resp;\n });\n }\n\n protected async getBaseApiUrl() {\n // Our TestAPIURL and LiveAPIURL should have the HTTPS protocol already attached\n // Don't add it twice!\n if (isTestPublicToken(this._config.publicToken)) {\n return this._config.testAPIURL;\n }\n return this._config.liveAPIURL;\n }\n\n async start({ connection_id, login_redirect_url, signup_redirect_url }: SSOStartOptions): Promise<void> {\n const { pkceRequiredForSso } = await this._dynamicConfig;\n const baseURL = await this.getBaseApiUrl();\n\n const startUrl = new URL(`${baseURL}/v1/public/sso/start`);\n startUrl.searchParams.set('public_token', this._config.publicToken);\n startUrl.searchParams.set('connection_id', connection_id);\n\n if (pkceRequiredForSso) {\n const keyPair = await this._pkceManager.startPKCETransaction();\n startUrl.searchParams.set('pkce_code_challenge', keyPair.code_challenge);\n } else {\n this._pkceManager.clearPKPair();\n }\n\n if (login_redirect_url) startUrl.searchParams.set('login_redirect_url', login_redirect_url);\n if (signup_redirect_url) startUrl.searchParams.set('signup_redirect_url', signup_redirect_url);\n\n this.navigate(startUrl);\n }\n\n // Public so it can be mocked in tests\n navigate(url: URL) {\n window.location.href = url.toString();\n }\n\n async getConnections(): Promise<B2BSSOGetConnectionsResponse> {\n return await this._networkClient.fetchSDK<B2BSSOGetConnectionsResponse>({\n url: '/b2b/sso',\n method: 'GET',\n });\n }\n\n async discoverConnections(emailAddress: string): Promise<B2BSSODiscoverConnectionsResponse> {\n return await this._networkClient.fetchSDK<B2BSSODiscoverConnectionsResponse>({\n url: `/b2b/sso/discovery/connections?email_address=${encodeURIComponent(emailAddress)}`,\n method: 'GET',\n });\n }\n\n async deleteConnection(connectionId: string): Promise<B2BSSODeleteConnectionResponse> {\n return this._networkClient.fetchSDK<B2BSSODeleteConnectionResponse>({\n url: `/b2b/sso/${connectionId}`,\n method: 'DELETE',\n });\n }\n\n saml = {\n createConnection: async (data: B2BSSOSAMLCreateConnectionOptions): Promise<B2BSSOSAMLCreateConnectionResponse> => {\n return await this._networkClient.fetchSDK<B2BSSOSAMLCreateConnectionResponse>({\n url: '/b2b/sso/saml',\n method: 'POST',\n body: data,\n });\n },\n updateConnection: async (data: B2BSSOSAMLUpdateConnectionOptions): Promise<B2BSSOSAMLUpdateConnectionResponse> => {\n return await this._networkClient.fetchSDK<B2BSSOSAMLUpdateConnectionResponse>({\n url: `/b2b/sso/saml/${data.connection_id}`,\n method: 'PUT',\n body: data,\n });\n },\n updateConnectionByURL: async (\n data: B2BSSOSAMLUpdateConnectionByURLOptions,\n ): Promise<B2BSSOSAMLUpdateConnectionByURLResponse> => {\n return await this._networkClient.fetchSDK<B2BSSOSAMLUpdateConnectionResponse>({\n url: `/b2b/sso/saml/${data.connection_id}/url`,\n method: 'PUT',\n body: data,\n });\n },\n deleteVerificationCertificate: async (\n data: B2BSSOSAMLDeleteVerificationCertificateOptions,\n ): Promise<B2BSSOSAMLDeleteVerificationCertificateResponse> => {\n return await this._networkClient.fetchSDK<B2BSSOSAMLDeleteVerificationCertificateResponse>({\n url: `/b2b/sso/saml/${data.connection_id}/verification_certificates/${data.certificate_id}`,\n method: 'DELETE',\n });\n },\n deleteEncryptionPrivateKey: async (\n data: B2BSSOSAMLDeleteEncryptionPrivateKeyOptions,\n ): Promise<B2BSSOSAMLDeleteEncryptionPrivateKeyResponse> => {\n return await this._networkClient.fetchSDK<B2BSSOSAMLDeleteEncryptionPrivateKeyResponse>({\n url: `/b2b/sso/saml/${data.connection_id}/encryption_private_key/${data.private_key_id}`,\n method: 'DELETE',\n });\n },\n };\n\n oidc = {\n createConnection: async (data: B2BSSOOIDCCreateConnectionOptions): Promise<B2BSSOOIDCCreateConnectionResponse> => {\n return await this._networkClient.fetchSDK<B2BSSOOIDCCreateConnectionResponse>({\n url: '/b2b/sso/oidc',\n method: 'POST',\n body: data,\n });\n },\n updateConnection: async (data: B2BSSOOIDCUpdateConnectionOptions): Promise<B2BSSOOIDCUpdateConnectionResponse> => {\n return await this._networkClient.fetchSDK<B2BSSOOIDCUpdateConnectionResponse>({\n url: `/b2b/sso/oidc/${data.connection_id}`,\n method: 'PUT',\n body: data,\n });\n },\n };\n\n external = {\n createConnection: async (\n data: B2BSSOCreateExternalConnectionOptions,\n ): Promise<B2BSSOCreateExternalConnectionResponse> => {\n return await this._networkClient.fetchSDK<B2BSSOCreateExternalConnectionResponse>({\n url: '/b2b/sso/external',\n method: 'POST',\n body: data,\n });\n },\n updateConnection: async (\n data: B2BSSOUpdateExternalConnectionOptions,\n ): Promise<B2BSSOUpdateExternalConnectionResponse> => {\n return await this._networkClient.fetchSDK<B2BSSOUpdateExternalConnectionResponse>({\n url: `/b2b/sso/external/${data.connection_id}`,\n method: 'PUT',\n body: data,\n });\n },\n };\n}\n","import {\n B2BSCIMCreateConnectionOptions,\n B2BSCIMCreateConnectionResponse,\n B2BSCIMDeleteConnectionResponse,\n B2BSCIMGetConnectionGroupsOptions,\n B2BSCIMGetConnectionGroupsResponse,\n B2BSCIMGetConnectionResponse,\n B2BSCIMRotateCancelResponse,\n B2BSCIMRotateCompleteResponse,\n B2BSCIMRotateStartResponse,\n B2BSCIMUpdateConnectionOptions,\n B2BSCIMUpdateConnectionResponse,\n IHeadlessB2BSCIMClient,\n} from '../../public/b2b/scim';\nimport { IB2BSubscriptionService, INetworkClient } from '../..';\nimport { StytchProjectConfigurationInput } from '../../public/typeConfig';\nimport { validateInDev } from '../../utils/dev';\n\nexport class HeadlessB2BSCIMClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessB2BSCIMClient\n{\n constructor(\n protected _networkClient: INetworkClient,\n protected _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n ) {}\n\n async createConnection(data: B2BSCIMCreateConnectionOptions): Promise<B2BSCIMCreateConnectionResponse> {\n validateInDev('stytch.scim.createConnection', data, {\n display_name: 'optionalString',\n identity_provider: 'optionalString',\n });\n\n return await this._networkClient.fetchSDK<B2BSCIMCreateConnectionResponse>({\n url: '/b2b/scim',\n method: 'POST',\n body: data,\n });\n }\n\n async updateConnection(data: B2BSCIMUpdateConnectionOptions): Promise<B2BSCIMUpdateConnectionResponse> {\n validateInDev('stytch.scim.updateConnection', data, {\n connection_id: 'string',\n display_name: 'optionalString',\n identity_provider: 'optionalString',\n });\n\n return await this._networkClient.fetchSDK<B2BSCIMUpdateConnectionResponse>({\n url: `/b2b/scim/${data.connection_id}`,\n method: 'PUT',\n body: data,\n });\n }\n\n async deleteConnection(connectionId: string): Promise<B2BSCIMDeleteConnectionResponse> {\n validateInDev(\n 'stytch.scim.deleteConnection',\n { connection_id: connectionId },\n {\n connection_id: 'string',\n },\n );\n\n return await this._networkClient.fetchSDK<B2BSCIMDeleteConnectionResponse>({\n url: `/b2b/scim/${connectionId}`,\n method: 'DELETE',\n });\n }\n\n async getConnection(): Promise<B2BSCIMGetConnectionResponse> {\n return await this._networkClient.fetchSDK<B2BSCIMGetConnectionResponse>({\n url: '/b2b/scim',\n method: 'GET',\n });\n }\n\n async getConnectionGroups(data: B2BSCIMGetConnectionGroupsOptions): Promise<B2BSCIMGetConnectionGroupsResponse> {\n validateInDev('stytch.scim.getConnectionGroups', data, {\n limit: 'optionalNumber',\n cursor: 'optionalString',\n });\n\n return await this._networkClient.fetchSDK<B2BSCIMGetConnectionGroupsResponse>({\n url: '/b2b/scim/groups',\n method: 'POST',\n body: data,\n });\n }\n\n async rotateStart(connectionId: string): Promise<B2BSCIMRotateStartResponse> {\n validateInDev(\n 'stytch.scim.rotateStart',\n { connectionId },\n {\n connectionId: 'string',\n },\n );\n return await this._networkClient.fetchSDK<B2BSCIMRotateStartResponse>({\n url: `/b2b/scim/rotate/start`,\n method: 'POST',\n body: { connection_id: connectionId },\n });\n }\n\n async rotateComplete(connectionId: string): Promise<B2BSCIMRotateCompleteResponse> {\n validateInDev(\n 'stytch.scim.rotateComplete',\n { connectionId },\n {\n connectionId: 'string',\n },\n );\n\n return await this._networkClient.fetchSDK<B2BSCIMRotateCompleteResponse>({\n url: `/b2b/scim/rotate/complete`,\n method: 'POST',\n body: { connection_id: connectionId },\n });\n }\n\n async rotateCancel(connectionId: string): Promise<B2BSCIMRotateCancelResponse> {\n validateInDev(\n 'stytch.scim.rotateCancel',\n { connectionId },\n {\n connectionId: 'string',\n },\n );\n\n return await this._networkClient.fetchSDK<B2BSCIMRotateCancelResponse>({\n url: `/b2b/scim/rotate/cancel`,\n method: 'POST',\n body: { connection_id: connectionId },\n });\n }\n}\n","import { INetworkClient } from '../../NetworkClient';\nimport { IB2BSubscriptionService } from '../../SubscriptionService';\nimport {\n ResponseCommon,\n Organization,\n IHeadlessB2BOrganizationClient,\n B2BOrganizationsUpdateResponse,\n B2BOrganizationsUpdateOptions,\n B2BOrganizationsDeleteResponse,\n B2BOrganizationsMembersCreateOptions,\n B2BOrganizationsMembersCreateResponse,\n B2BOrganizationsMembersDeleteResponse,\n B2BOrganizationsMembersReactivateResponse,\n B2BOrganizationsMemberDeletePasswordResponse,\n B2BOrganizationsMemberDeleteMFAPhoneNumberResponse,\n B2BOrganizationsMembersUpdateOptions,\n B2BOrganizationsMembersUpdateResponse,\n B2BOrganizationsMembersSearchResponse,\n B2BOrganizationsMembersSearchOptions,\n B2BOrganizationsMemberDeleteMFATOTPResponse,\n OrganizationInfo,\n B2BOrganizationsGetBySlugResponse,\n B2BOrganizationsGetBySlugOptions,\n B2BOrganizationsMemberUnlinkRetiredEmailOptions,\n B2BOrganizationsMemberUnlinkRetiredEmailResponse,\n B2BOrganizationsMemberStartEmailUpdateOptions,\n B2BOrganizationsMemberStartEmailUpdateResponse,\n StytchProjectConfigurationInput,\n MemberResponseCommon,\n B2BOrganizationsGetConnectedAppsResponse,\n B2BOrganizationsGetConnectedAppResponse,\n B2BOrganizationsGetConnectedAppOptions,\n B2BOrganizationsMemberGetConnectedAppsOptions,\n B2BOrganizationsMemberGetConnectedAppsResponse,\n B2BOrganizationsMemberRevokeConnectedAppOptions,\n B2BOrganizationsMemberRevokeConnectedAppResponse,\n} from '../../public';\nimport { validateInDev } from '../../utils/dev';\n\nexport class HeadlessB2BOrganizationClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessB2BOrganizationClient\n{\n constructor(\n private _networkClient: INetworkClient,\n private _apiNetworkClient: INetworkClient,\n private _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n ) {}\n\n get = async (): Promise<Organization | null> => {\n const resp = await this._networkClient.fetchSDK<{ organization: Organization } & ResponseCommon>({\n url: `/b2b/organizations/me`,\n method: 'GET',\n });\n this._subscriptionService.updateOrganization(resp.organization);\n return resp.organization;\n };\n\n getSync = (): Organization | null => {\n return this._subscriptionService.getOrganization();\n };\n\n getInfo = (): OrganizationInfo => ({\n organization: this.getSync(),\n fromCache: this._subscriptionService.getFromCache(),\n });\n\n onChange = (callback: (organization: Organization | null) => void) => {\n return this._subscriptionService.subscribeToState((state) => callback(state?.organization ?? null));\n };\n\n update = async (data: B2BOrganizationsUpdateOptions): Promise<B2BOrganizationsUpdateResponse> => {\n const resp = await this._networkClient.fetchSDK<B2BOrganizationsUpdateResponse>({\n url: `/b2b/organizations/me`,\n method: 'PUT',\n body: data,\n });\n\n this._subscriptionService.updateOrganization(resp.organization);\n return resp;\n };\n\n delete = async (): Promise<B2BOrganizationsDeleteResponse> => {\n const resp = await this._networkClient.fetchSDK<B2BOrganizationsDeleteResponse>({\n url: `/b2b/organizations/me`,\n method: 'DELETE',\n });\n\n this._subscriptionService.destroyState();\n\n return resp;\n };\n\n getBySlug = async (data: B2BOrganizationsGetBySlugOptions): Promise<B2BOrganizationsGetBySlugResponse> => {\n validateInDev('stytch.organization.getBySlug', data, {\n organization_slug: 'string',\n });\n\n return this._networkClient.fetchSDK<B2BOrganizationsGetBySlugResponse>({\n url: `/b2b/organizations/search`,\n method: 'POST',\n body: data,\n });\n };\n\n getConnectedApps = async (): Promise<B2BOrganizationsGetConnectedAppsResponse> => {\n return this._networkClient.fetchSDK<B2BOrganizationsGetConnectedAppsResponse>({\n url: '/b2b/organizations/connected_apps',\n method: 'GET',\n });\n };\n\n getConnectedApp = async (\n data: B2BOrganizationsGetConnectedAppOptions,\n ): Promise<B2BOrganizationsGetConnectedAppResponse> => {\n return this._networkClient.fetchSDK<B2BOrganizationsGetConnectedAppResponse>({\n url: `/b2b/organizations/connected_apps/${data.connected_app_id}`,\n method: 'GET',\n });\n };\n\n members = {\n create: async (data: B2BOrganizationsMembersCreateOptions): Promise<B2BOrganizationsMembersCreateResponse> => {\n return this._networkClient.fetchSDK<B2BOrganizationsMembersCreateResponse>({\n url: `/b2b/organizations/members`,\n method: 'POST',\n body: data,\n });\n },\n search: async (data: B2BOrganizationsMembersSearchOptions): Promise<B2BOrganizationsMembersSearchResponse> => {\n return this._networkClient.fetchSDK<B2BOrganizationsMembersSearchResponse>({\n url: `/b2b/organizations/me/members/search`,\n method: 'POST',\n body: data,\n });\n },\n update: async (data: B2BOrganizationsMembersUpdateOptions): Promise<B2BOrganizationsMembersUpdateResponse> => {\n const response = await this._networkClient.fetchSDK<B2BOrganizationsMembersUpdateResponse>({\n url: `/b2b/organizations/members/${data.member_id}`,\n method: 'PUT',\n body: data,\n });\n\n this.updateMemberIfSelf(response);\n return response;\n },\n deletePassword: async (passwordId: string): Promise<B2BOrganizationsMemberDeletePasswordResponse> => {\n const response = await this._networkClient.fetchSDK<B2BOrganizationsMemberDeletePasswordResponse>({\n url: `/b2b/organizations/members/passwords/${passwordId}`,\n method: 'DELETE',\n });\n\n this.updateMemberIfSelf(response);\n return response;\n },\n deleteMFAPhoneNumber: async (memberId: string): Promise<B2BOrganizationsMemberDeleteMFAPhoneNumberResponse> => {\n const response = await this._networkClient.fetchSDK<B2BOrganizationsMemberDeleteMFAPhoneNumberResponse>({\n url: `/b2b/organizations/members/mfa_phone_numbers/${memberId}`,\n method: 'DELETE',\n });\n\n this.updateMemberIfSelf(response);\n return response;\n },\n deleteMFATOTP: async (memberId: string): Promise<B2BOrganizationsMemberDeleteMFATOTPResponse> => {\n const response = await this._networkClient.fetchSDK<B2BOrganizationsMemberDeleteMFATOTPResponse>({\n url: `/b2b/organizations/members/totp/${memberId}`,\n method: 'DELETE',\n });\n\n this.updateMemberIfSelf(response);\n return response;\n },\n delete: async (memberId: string): Promise<B2BOrganizationsMembersDeleteResponse> => {\n const response = await this._networkClient.fetchSDK<B2BOrganizationsMembersDeleteResponse>({\n url: `/b2b/organizations/members/${memberId}`,\n method: 'DELETE',\n });\n\n if (memberId === this._subscriptionService.getMember()?.member_id) {\n this._subscriptionService.destroyState();\n }\n\n return response;\n },\n reactivate: async (memberId: string): Promise<B2BOrganizationsMembersReactivateResponse> => {\n return this._networkClient.fetchSDK<B2BOrganizationsMembersReactivateResponse>({\n url: `/b2b/organizations/members/${memberId}/reactivate`,\n method: 'PUT',\n });\n },\n unlinkRetiredEmail: async (\n data: B2BOrganizationsMemberUnlinkRetiredEmailOptions,\n ): Promise<B2BOrganizationsMemberUnlinkRetiredEmailResponse> => {\n const { member_id, ...body } = data;\n const response = await this._apiNetworkClient.fetchSDK<B2BOrganizationsMemberUnlinkRetiredEmailResponse>({\n url: `/b2b/organizations/members/${member_id}/unlink_retired_email`,\n method: 'POST',\n body,\n });\n\n this.updateMemberIfSelf(response);\n return response;\n },\n startEmailUpdate: async (\n data: B2BOrganizationsMemberStartEmailUpdateOptions,\n ): Promise<B2BOrganizationsMemberStartEmailUpdateResponse> => {\n const { member_id, ...body } = data;\n const response = await this._apiNetworkClient.fetchSDK<B2BOrganizationsMemberStartEmailUpdateResponse>({\n url: `/b2b/organizations/members/${member_id}/start_email_update`,\n method: 'POST',\n body,\n });\n\n this.updateMemberIfSelf(response);\n return response;\n },\n getConnectedApps: async (\n data: B2BOrganizationsMemberGetConnectedAppsOptions,\n ): Promise<B2BOrganizationsMemberGetConnectedAppsResponse> => {\n return this._networkClient.fetchSDK<B2BOrganizationsMemberGetConnectedAppsResponse>({\n url: `b2b/organizations/members/${data.member_id}/connected_apps`,\n method: 'GET',\n });\n },\n revokeConnectedApp: async (\n data: B2BOrganizationsMemberRevokeConnectedAppOptions,\n ): Promise<B2BOrganizationsMemberRevokeConnectedAppResponse> => {\n return this._networkClient.fetchSDK<B2BOrganizationsMemberRevokeConnectedAppResponse>({\n url: `/b2b/organizations/members/${data.member_id}/connected_apps/${data.connected_app_id}/revoke`,\n method: 'POST',\n });\n },\n };\n\n private updateMemberIfSelf = (response: MemberResponseCommon) => {\n if (response.member_id === this._subscriptionService.getMember()?.member_id) {\n this._subscriptionService.updateMember(response.member);\n }\n };\n}\n","import { IB2BSubscriptionService, IDFPProtectedAuthProvider, INetworkClient, IPKCEManager } from '../..';\nimport { StytchProjectConfigurationInput } from '../../public/typeConfig';\nimport {\n B2BOAuthAuthenticateOptions,\n B2BOAuthAuthenticateResponse,\n B2BOAuthDiscoveryAuthenticateResponse,\n B2BOAuthDiscoveryStartOptions,\n IHeadlessB2BOAuthClient,\n OAuthDiscoveryAuthenticateOptions,\n OAuthStartOptions,\n} from '../../public/b2b/oauth';\nimport { B2BOAuthProviders } from '../../public/b2b/ui';\nimport { isTestPublicToken, logger } from '../../utils';\nimport { validateInDev } from '../../utils/dev';\n\ntype DynamicConfig = Promise<{\n cnameDomain: null | string;\n pkceRequiredForOAuth: boolean;\n}>;\ntype Config = {\n publicToken: string;\n testAPIURL: string;\n liveAPIURL: string;\n};\n\nexport class HeadlessB2BOAuthClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessB2BOAuthClient<TProjectConfiguration>\n{\n authenticate: (options: B2BOAuthAuthenticateOptions) => Promise<B2BOAuthAuthenticateResponse<TProjectConfiguration>>;\n\n discovery: {\n authenticate: (\n data: OAuthDiscoveryAuthenticateOptions,\n ) => Promise<B2BOAuthDiscoveryAuthenticateResponse<TProjectConfiguration>>;\n };\n\n google: {\n start: (options: OAuthStartOptions) => Promise<void>;\n discovery: {\n start: (options: B2BOAuthDiscoveryStartOptions) => Promise<void>;\n };\n };\n\n microsoft: {\n start: (options: OAuthStartOptions) => Promise<void>;\n discovery: {\n start: (options: B2BOAuthDiscoveryStartOptions) => Promise<void>;\n };\n };\n\n hubspot: {\n start: (options: OAuthStartOptions) => Promise<void>;\n discovery: {\n start: (options: B2BOAuthDiscoveryStartOptions) => Promise<void>;\n };\n };\n\n slack: {\n start: (options: OAuthStartOptions) => Promise<void>;\n discovery: {\n start: (options: B2BOAuthDiscoveryStartOptions) => Promise<void>;\n };\n };\n\n github: {\n start: (options: OAuthStartOptions) => Promise<void>;\n discovery: {\n start: (options: B2BOAuthDiscoveryStartOptions) => Promise<void>;\n };\n };\n\n constructor(\n protected _networkClient: INetworkClient,\n protected _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n protected _pkceManager: IPKCEManager,\n protected _dynamicConfig: DynamicConfig,\n protected _config: Config,\n protected dfpProtectedAuth: IDFPProtectedAuthProvider,\n ) {\n this.authenticate = this._subscriptionService.withUpdateSession(async (options: B2BOAuthAuthenticateOptions) => {\n validateInDev('stytch.oauth.authenticate', options, {\n oauth_token: 'string',\n session_duration_minutes: 'number',\n locale: 'optionalString',\n });\n\n const keyPair = await this._pkceManager.getPKPair();\n\n if (!keyPair) {\n logger.warn(\n 'No code verifier found in local storage for OAuth flow.\\n' +\n 'Consider using stytch.oauth.$provider.start() to add PKCE to your OAuth flows for added security.\\n' +\n 'See https://stytch.com/docs/oauth#guides_pkce for more information.',\n );\n }\n\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n const resp = await this._networkClient.retriableFetchSDK<B2BOAuthAuthenticateResponse<TProjectConfiguration>>({\n url: '/b2b/oauth/authenticate',\n method: 'POST',\n body: {\n pkce_code_verifier: keyPair?.code_verifier,\n dfp_telemetry_id,\n captcha_token,\n intermediate_session_token: (await this._subscriptionService.getIntermediateSessionToken()) || undefined,\n ...options,\n },\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n\n this._pkceManager.clearPKPair();\n\n return resp;\n });\n\n this.discovery = {\n authenticate: this._subscriptionService.withUpdateSession(\n async (\n data: OAuthDiscoveryAuthenticateOptions,\n ): Promise<B2BOAuthDiscoveryAuthenticateResponse<TProjectConfiguration>> => {\n validateInDev('stytch.oauth.discovery.authenticate', data, {\n discovery_oauth_token: 'string',\n });\n\n const pkPair = await this._pkceManager.getPKPair();\n\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n\n const requestBody = {\n pkce_code_verifier: pkPair?.code_verifier,\n dfp_telemetry_id,\n captcha_token,\n ...data,\n };\n const resp = await this._networkClient.retriableFetchSDK<\n B2BOAuthDiscoveryAuthenticateResponse<TProjectConfiguration>\n >({\n url: '/b2b/oauth/discovery/authenticate',\n body: requestBody,\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n\n this._pkceManager.clearPKPair();\n\n return resp;\n },\n ),\n };\n\n this.google = {\n start: this.startOAuthFlow(B2BOAuthProviders.Google),\n discovery: {\n start: this.startDiscoveryOAuthFlow(B2BOAuthProviders.Google),\n },\n };\n\n this.microsoft = {\n start: this.startOAuthFlow(B2BOAuthProviders.Microsoft),\n discovery: {\n start: this.startDiscoveryOAuthFlow(B2BOAuthProviders.Microsoft),\n },\n };\n\n this.hubspot = {\n start: this.startOAuthFlow(B2BOAuthProviders.HubSpot),\n discovery: {\n start: this.startDiscoveryOAuthFlow(B2BOAuthProviders.HubSpot),\n },\n };\n\n this.slack = {\n start: this.startOAuthFlow(B2BOAuthProviders.Slack),\n discovery: {\n start: this.startDiscoveryOAuthFlow(B2BOAuthProviders.Slack),\n },\n };\n\n this.github = {\n start: this.startOAuthFlow(B2BOAuthProviders.GitHub),\n discovery: {\n start: this.startDiscoveryOAuthFlow(B2BOAuthProviders.GitHub),\n },\n };\n }\n\n protected async getBaseApiUrl() {\n const { cnameDomain } = await this._dynamicConfig;\n if (cnameDomain) {\n // The API returns cname domains without a protocol - assume HTTPS\n return `https://${cnameDomain}`;\n }\n // Our TestAPIURL and LiveAPIURL should have the HTTPS protocol already attached\n // Don't add it twice!\n if (isTestPublicToken(this._config.publicToken)) {\n return this._config.testAPIURL;\n }\n return this._config.liveAPIURL;\n }\n\n protected startOAuthFlow(providerType: B2BOAuthProviders) {\n return async (options: OAuthStartOptions): Promise<void> => {\n const {\n organization_id,\n organization_slug,\n login_redirect_url,\n signup_redirect_url,\n custom_scopes,\n provider_params,\n } = options;\n const { pkceRequiredForOAuth } = await this._dynamicConfig;\n const baseURL = await this.getBaseApiUrl();\n\n const startUrl = new URL(`${baseURL}/v1/b2b/public/oauth/${providerType}/start`);\n startUrl.searchParams.set('public_token', this._config.publicToken);\n if (organization_id && organization_id != '') {\n startUrl.searchParams.set('organization_id', organization_id);\n }\n\n if (organization_slug && organization_slug != '') {\n startUrl.searchParams.set('slug', organization_slug);\n }\n\n if (custom_scopes) {\n validateInDev(\n 'startOAuthFlow',\n { custom_scopes },\n {\n custom_scopes: 'stringArray',\n },\n );\n startUrl.searchParams.set('custom_scopes', custom_scopes.join(' '));\n }\n if (provider_params) {\n validateInDev(\n 'startOAuthFlow',\n { provider_params },\n {\n provider_params: 'optionalObject',\n },\n );\n for (const key in provider_params) {\n startUrl.searchParams.set('provider_' + key, provider_params[key]);\n }\n }\n\n if (pkceRequiredForOAuth) {\n const keyPair = await this._pkceManager.startPKCETransaction();\n startUrl.searchParams.set('pkce_code_challenge', keyPair.code_challenge);\n } else {\n this._pkceManager.clearPKPair();\n }\n\n if (login_redirect_url) startUrl.searchParams.set('login_redirect_url', login_redirect_url);\n if (signup_redirect_url) startUrl.searchParams.set('signup_redirect_url', signup_redirect_url);\n\n this.navigate(startUrl);\n };\n }\n\n protected startDiscoveryOAuthFlow(providerType: B2BOAuthProviders) {\n return async (options: B2BOAuthDiscoveryStartOptions): Promise<void> => {\n const { discovery_redirect_url, custom_scopes, provider_params } = options;\n const { pkceRequiredForOAuth } = await this._dynamicConfig;\n const baseURL = await this.getBaseApiUrl();\n\n const startUrl = new URL(`${baseURL}/v1/b2b/public/oauth/${providerType}/discovery/start`);\n startUrl.searchParams.set('public_token', this._config.publicToken);\n if (custom_scopes) {\n validateInDev(\n 'startOAuthFlow',\n { custom_scopes },\n {\n custom_scopes: 'stringArray',\n },\n );\n startUrl.searchParams.set('custom_scopes', custom_scopes.join(' '));\n }\n if (provider_params) {\n validateInDev(\n 'startOAuthFlow',\n { provider_params },\n {\n provider_params: 'optionalObject',\n },\n );\n for (const key in provider_params) {\n startUrl.searchParams.set('provider_' + key, provider_params[key]);\n }\n }\n\n if (pkceRequiredForOAuth) {\n const keyPair = await this._pkceManager.startPKCETransaction();\n startUrl.searchParams.set('pkce_code_challenge', keyPair.code_challenge);\n } else {\n this._pkceManager.clearPKPair();\n }\n\n if (discovery_redirect_url) {\n startUrl.searchParams.set('discovery_redirect_url', discovery_redirect_url);\n }\n\n this.navigate(startUrl);\n };\n }\n\n // Public so it can be mocked in tests\n navigate(url: URL) {\n window.location.href = url.toString();\n }\n}\n","import {\n 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","import {\n B2BDiscoveryIntermediateSessionsExchangeOptions,\n B2BDiscoveryIntermediateSessionsExchangeResponse,\n B2BDiscoveryOrganizationsCreateOptions,\n B2BDiscoveryOrganizationsCreateResponse,\n B2BDiscoveryOrganizationsResponse,\n IHeadlessB2BDiscoveryClient,\n StytchProjectConfigurationInput,\n} from '../../public';\nimport { INetworkClient } from '../..';\nimport { IB2BSubscriptionService } from '../..';\nimport { validateInDev } from '../../utils/dev';\n\nexport class HeadlessB2BDiscoveryClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessB2BDiscoveryClient<TProjectConfiguration>\n{\n organizations: {\n list: () => Promise<B2BDiscoveryOrganizationsResponse>;\n create: (\n data: B2BDiscoveryOrganizationsCreateOptions,\n ) => Promise<B2BDiscoveryOrganizationsCreateResponse<TProjectConfiguration>>;\n };\n\n intermediateSessions: {\n exchange: (\n data: B2BDiscoveryIntermediateSessionsExchangeOptions,\n ) => Promise<B2BDiscoveryIntermediateSessionsExchangeResponse<TProjectConfiguration>>;\n };\n\n constructor(\n private _networkClient: INetworkClient,\n private _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n ) {\n this.organizations = {\n list: async () =>\n this._networkClient.fetchSDK<B2BDiscoveryOrganizationsResponse>({\n url: '/b2b/discovery/organizations',\n body: {\n intermediate_session_token: (await this._subscriptionService.getIntermediateSessionToken()) || undefined,\n },\n method: 'POST',\n }),\n create: this._subscriptionService.withUpdateSession(\n async (\n data: B2BDiscoveryOrganizationsCreateOptions,\n ): Promise<B2BDiscoveryOrganizationsCreateResponse<TProjectConfiguration>> => {\n validateInDev('stytch.discovery.organizations.create', data, {\n session_duration_minutes: 'number',\n organization_name: 'optionalString',\n organization_slug: 'optionalString',\n organization_logo_url: 'optionalString',\n sso_jit_provisioning: 'optionalString',\n email_allowed_domains: 'optionalStringArray',\n email_invites: 'optionalString',\n auth_methods: 'optionalString',\n allowed_auth_methods: 'optionalStringArray',\n mfa_policy: 'optionalString',\n });\n\n const requestBody = {\n ...data,\n intermediate_session_token: (await this._subscriptionService.getIntermediateSessionToken()) || undefined,\n };\n\n return this._networkClient.fetchSDK<B2BDiscoveryOrganizationsCreateResponse<TProjectConfiguration>>({\n url: '/b2b/discovery/organizations/create',\n body: requestBody,\n method: 'POST',\n });\n },\n ),\n };\n\n this.intermediateSessions = {\n exchange: this._subscriptionService.withUpdateSession(\n async (\n data: B2BDiscoveryIntermediateSessionsExchangeOptions,\n ): Promise<B2BDiscoveryIntermediateSessionsExchangeResponse<TProjectConfiguration>> => {\n validateInDev('stytch.discovery.intermediateSessions.exchange', data, {\n organization_id: 'string',\n session_duration_minutes: 'number',\n locale: 'optionalString',\n });\n\n const requestBody = {\n ...data,\n intermediate_session_token: this._subscriptionService.getIntermediateSessionToken() || undefined,\n };\n return this._networkClient.fetchSDK<B2BDiscoveryIntermediateSessionsExchangeResponse<TProjectConfiguration>>({\n url: '/b2b/discovery/intermediate_sessions/exchange',\n body: requestBody,\n method: 'POST',\n });\n },\n ),\n };\n }\n}\n","import { IB2BSubscriptionService, IDFPProtectedAuthProvider, INetworkClient } from '../..';\nimport {\n B2BOTPsEmailLoginOrSignupOptions,\n B2BOTPsEmailLoginOrSignupResponse,\n B2BOTPsEmailAuthenticateOptions,\n B2BOTPsEmailAuthenticateResponse,\n B2BSMSAuthenticateOptions,\n B2BSMSAuthenticateResponse,\n B2BSMSSendOptions,\n B2BSMSSendResponse,\n IHeadlessB2BOTPsClient,\n B2BDiscoveryOTPEmailSendOptions,\n B2BDiscoveryOTPEmailSendResponse,\n B2BDiscoveryOTPEmailAuthenticateOptions,\n B2BDiscoveryOTPEmailAuthenticateResponse,\n} from '../../public/b2b/otps';\nimport { StytchProjectConfigurationInput } from '../../public/typeConfig';\n\nimport { validateInDev } from '../../utils/dev';\n\nexport class HeadlessB2BOTPsClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessB2BOTPsClient<TProjectConfiguration>\n{\n sms: {\n send: (data: B2BSMSSendOptions) => Promise<B2BSMSSendResponse>;\n authenticate: (data: B2BSMSAuthenticateOptions) => Promise<B2BSMSAuthenticateResponse<TProjectConfiguration>>;\n };\n\n email: {\n loginOrSignup: (data: B2BOTPsEmailLoginOrSignupOptions) => Promise<B2BOTPsEmailLoginOrSignupResponse>;\n authenticate: (\n data: B2BOTPsEmailAuthenticateOptions,\n ) => Promise<B2BOTPsEmailAuthenticateResponse<TProjectConfiguration>>;\n discovery: {\n send: (data: B2BDiscoveryOTPEmailSendOptions) => Promise<B2BDiscoveryOTPEmailSendResponse>;\n authenticate: (\n data: B2BDiscoveryOTPEmailAuthenticateOptions,\n ) => Promise<B2BDiscoveryOTPEmailAuthenticateResponse<TProjectConfiguration>>;\n };\n };\n\n constructor(\n private _networkClient: INetworkClient,\n private _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n private dfpProtectedAuth: IDFPProtectedAuthProvider,\n ) {\n this.sms = {\n send: async (data: B2BSMSSendOptions): Promise<B2BSMSSendResponse> => {\n validateInDev('stytch.otps.sms.send', data, {\n organization_id: 'string',\n member_id: 'string',\n mfa_phone_number: 'optionalString',\n locale: 'optionalString',\n });\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n return this._networkClient.retriableFetchSDK<B2BSMSSendResponse>({\n url: '/b2b/otps/sms/send',\n body: {\n ...data,\n dfp_telemetry_id,\n captcha_token,\n intermediate_session_token: this._subscriptionService.getIntermediateSessionToken() || undefined,\n },\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n },\n authenticate: this._subscriptionService.withUpdateSession(\n async (data: B2BSMSAuthenticateOptions): Promise<B2BSMSAuthenticateResponse<TProjectConfiguration>> => {\n validateInDev('stytch.otps.sms.authenticate', data, {\n session_duration_minutes: 'number',\n organization_id: 'string',\n member_id: 'string',\n code: 'string',\n set_mfa_enrollment: 'optionalString',\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 return this._networkClient.retriableFetchSDK<B2BSMSAuthenticateResponse<TProjectConfiguration>>({\n url: '/b2b/otps/sms/authenticate',\n body: requestBody,\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n },\n ),\n };\n\n this.email = {\n loginOrSignup: async (data: B2BOTPsEmailLoginOrSignupOptions): Promise<B2BOTPsEmailLoginOrSignupResponse> => {\n validateInDev('stytch.otps.email.loginOrSignup', data, {\n organization_id: 'string',\n email_address: 'string',\n login_template_id: 'optionalString',\n signup_template_id: 'optionalString',\n locale: 'optionalString',\n login_expiration_minutes: 'optionalNumber',\n signup_expiration_minutes: 'optionalNumber',\n });\n\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n return this._networkClient.retriableFetchSDK<B2BOTPsEmailLoginOrSignupResponse>({\n url: '/b2b/otps/email/login_or_signup',\n body: {\n ...data,\n dfp_telemetry_id,\n captcha_token,\n },\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n },\n authenticate: this._subscriptionService.withUpdateSession(\n async (\n data: B2BOTPsEmailAuthenticateOptions,\n ): Promise<B2BOTPsEmailAuthenticateResponse<TProjectConfiguration>> => {\n validateInDev('stytch.otps.email.authenticate', data, {\n code: 'string',\n email_address: 'string',\n organization_id: 'string',\n session_duration_minutes: 'number',\n locale: 'optionalString',\n });\n\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n return this._networkClient.retriableFetchSDK<B2BOTPsEmailAuthenticateResponse<TProjectConfiguration>>({\n url: '/b2b/otps/email/authenticate',\n body: {\n ...data,\n intermediate_session_token: this._subscriptionService.getIntermediateSessionToken() || undefined,\n dfp_telemetry_id,\n captcha_token,\n },\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n },\n ),\n discovery: {\n send: async (data: B2BDiscoveryOTPEmailSendOptions): Promise<B2BDiscoveryOTPEmailSendResponse> => {\n validateInDev('stytch.otps.email.discovery.send', data, {\n email_address: 'string',\n login_template_id: 'optionalString',\n locale: 'optionalString',\n discovery_expiration_minutes: 'optionalNumber',\n });\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 };\n return this._networkClient.retriableFetchSDK<B2BDiscoveryOTPEmailSendResponse>({\n url: '/b2b/otps/email/discovery/send',\n body: requestBody,\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n },\n authenticate: this._subscriptionService.withUpdateSession(\n async (\n data: B2BDiscoveryOTPEmailAuthenticateOptions,\n ): Promise<B2BDiscoveryOTPEmailAuthenticateResponse<TProjectConfiguration>> => {\n validateInDev('stytch.otps.email.discovery.authenticate', data, {\n code: 'string',\n email_address: 'string',\n });\n\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n const requestBody = {\n dfp_telemetry_id,\n captcha_token,\n ...data,\n };\n\n return this._networkClient.retriableFetchSDK<\n B2BDiscoveryOTPEmailAuthenticateResponse<TProjectConfiguration>\n >({\n url: '/b2b/otps/email/discovery/authenticate',\n body: requestBody,\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n },\n ),\n },\n };\n }\n}\n","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","import {\n IHeadlessB2BRecoveryCodesClient,\n RecoveryCodeGetResponse,\n RecoveryCodeRecoverOptions,\n RecoveryCodeRecoverResponse,\n RecoveryCodeRotateResponse,\n} from '../../public/b2b/recoveryCodes';\nimport { StytchProjectConfigurationInput } from '../../public/typeConfig';\nimport { IB2BSubscriptionService, IDFPProtectedAuthProvider, INetworkClient } from '../..';\n\nimport { validateInDev } from '../../utils/dev';\n\nexport class HeadlessB2BRecoveryCodesClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessB2BRecoveryCodesClient<TProjectConfiguration>\n{\n recover: (data: RecoveryCodeRecoverOptions) => Promise<RecoveryCodeRecoverResponse<TProjectConfiguration>>;\n\n constructor(\n private _networkClient: INetworkClient,\n private _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n private dfpProtectedAuth: IDFPProtectedAuthProvider,\n ) {\n this.recover = this._subscriptionService.withUpdateSession(\n async (data: RecoveryCodeRecoverOptions): Promise<RecoveryCodeRecoverResponse<TProjectConfiguration>> => {\n validateInDev('stytch.recoveryCodes.recover', data, {\n organization_id: 'string',\n member_id: 'string',\n recovery_code: 'string',\n session_duration_minutes: 'number',\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 return this._networkClient.retriableFetchSDK<RecoveryCodeRecoverResponse<TProjectConfiguration>>({\n url: '/b2b/recovery_codes/recover',\n body: requestBody,\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n },\n );\n }\n\n async rotate(): Promise<RecoveryCodeRotateResponse> {\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n return this._networkClient.retriableFetchSDK<RecoveryCodeRotateResponse>({\n url: '/b2b/recovery_codes/rotate',\n body: {\n dfp_telemetry_id,\n captcha_token,\n },\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n }\n\n async get(): Promise<RecoveryCodeGetResponse> {\n return this._networkClient.fetchSDK<RecoveryCodeGetResponse>({\n url: '/b2b/recovery_codes',\n method: 'GET',\n });\n }\n}\n","import { IB2BSubscriptionService } from '../../SubscriptionService';\nimport { logger } from '../../utils';\nimport { RBACPolicy, RBACPolicyRaw } from '../../rbac';\nimport { IHeadlessB2BRBACClient, PermissionsMap } from '../../public/b2b/rbac';\nimport { StytchProjectConfigurationInput } from '../../public/typeConfig';\n\ntype CachedConfig = {\n rbacPolicy: RBACPolicyRaw | null;\n};\n\ntype DynamicConfig = Promise<CachedConfig>;\n\nexport class HeadlessB2BRBACClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessB2BRBACClient\n{\n private cachedPolicy: RBACPolicy | null;\n private policyPromise: Promise<RBACPolicy>;\n constructor(\n cachedConfig: CachedConfig,\n dynamicConfig: DynamicConfig,\n private _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n ) {\n this.cachedPolicy = cachedConfig.rbacPolicy ? RBACPolicy.fromJSON(cachedConfig.rbacPolicy) : null;\n this.policyPromise = dynamicConfig.then((data) => {\n if (!data.rbacPolicy) {\n logger.error('Unable to retrieve RBAC policy from servers. Assuming caller has no permissions.');\n return new RBACPolicy([], []);\n }\n // Update the existing policy too, so isAuthorizedSync will be up-to-date\n this.cachedPolicy = RBACPolicy.fromJSON(data.rbacPolicy);\n return this.cachedPolicy;\n });\n }\n\n /**\n * Gets the effective policy for the current session by merging project policy with org custom roles\n */\n private async getEffectivePolicy(): Promise<RBACPolicy> {\n const projectPolicy = await this.policyPromise;\n const organization = this._subscriptionService.getOrganization();\n\n // If no org or no custom roles, just return project policy\n if (!organization?.custom_roles?.length) {\n return projectPolicy;\n }\n\n return projectPolicy.mergeWithCustomRoles(organization.custom_roles);\n }\n\n /**\n * Gets the effective policy synchronously for the current session\n * Uses cached policies only\n */\n private getEffectivePolicySync(): RBACPolicy | null {\n if (!this.cachedPolicy) {\n return null;\n }\n\n const organization = this._subscriptionService.getOrganization();\n\n // If no custom roles, just return project policy\n if (!organization?.custom_roles?.length) {\n return this.cachedPolicy;\n }\n\n return this.cachedPolicy.mergeWithCustomRoles(organization.custom_roles);\n }\n\n allPermissions<Permissions extends Record<string, string>>() {\n return this.getEffectivePolicy().then(\n (policy) => policy.allPermissionsForCaller(this.roleIds()) as PermissionsMap<Permissions>,\n );\n }\n\n isAuthorizedSync: IHeadlessB2BRBACClient['isAuthorizedSync'] = (resourceId, action) => {\n const effectivePolicy = this.getEffectivePolicySync();\n return !!effectivePolicy?.callerIsAuthorized(this.roleIds(), resourceId as string, action as unknown as string);\n };\n\n isAuthorized: IHeadlessB2BRBACClient['isAuthorized'] = (resourceId, action) => {\n return this.getEffectivePolicy().then((policy) =>\n policy.callerIsAuthorized(this.roleIds(), resourceId as string, action as unknown as string),\n );\n };\n\n private roleIds() {\n const session = this._subscriptionService.getSession();\n if (!session) {\n return [];\n }\n // Although session.roles is guaranteed to exist for fresh data, there is a minuscule chance\n // that the member session stored in localstorage clientside comes from before roles were added to\n // the API response - in which case session.roles will be undefined and this will crash\n // TODO: [AUTH-2294] We can safely remove this ~3mos after RBAC is released\n return session.roles ?? [];\n }\n}\n","import { IB2BSubscriptionService, IDFPProtectedAuthProvider, INetworkClient } from '../..';\nimport {\n B2BImpersonationAuthenticateOptions,\n B2BImpersonationAuthenticateResponse,\n IHeadlessB2BImpersonationClient,\n} from '../../public/b2b/impersonation';\nimport { StytchProjectConfigurationInput } from '../../public/typeConfig';\n\nimport { validateInDev } from '../../utils/dev';\n\nexport class HeadlessB2BImpersonationClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessB2BImpersonationClient<TProjectConfiguration>\n{\n authenticate: (\n data: B2BImpersonationAuthenticateOptions,\n ) => Promise<B2BImpersonationAuthenticateResponse<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: B2BImpersonationAuthenticateOptions) => {\n validateInDev('stytch.impersonation.authenticate', data, {\n impersonation_token: 'string',\n });\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n\n return this._networkClient.retriableFetchSDK<B2BImpersonationAuthenticateResponse<TProjectConfiguration>>({\n url: '/b2b/impersonation/authenticate',\n body: {\n ...data,\n dfp_telemetry_id,\n captcha_token,\n },\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n },\n );\n }\n}\n","import { INetworkClient } from '../../NetworkClient';\nimport {\n B2BOAuthAuthorizeStartOptions,\n B2BOAuthAuthorizeStartResponse,\n B2BOAuthAuthorizeSubmitOptions,\n B2BOAuthAuthorizeSubmitResponse,\n IHeadlessB2BIDPClient,\n B2BOAuthLogoutStartOptions,\n B2BOAuthLogoutStartResponse,\n} from '../../public/b2b/idp';\n\nexport class HeadlessB2BIDPClient implements IHeadlessB2BIDPClient {\n constructor(private _networkClient: INetworkClient) {}\n\n /**\n * Initiates a request for authorization of a Connected App to access a Member's account.\n *\n * Call this endpoint using the query parameters from an OAuth Authorization request. This endpoint validates various fields (scope, client_id, redirect_uri, prompt, etc...) are correct and returns relevant information for rendering an OAuth Consent Screen.\n *\n * @example\n * const response = await stytch.idp.oauthAuthorizeStart({\n * client_id: 'client_123',\n * redirect_uri: 'https://example.com/callback',\n * scope: 'openid email profile',\n * });\n */\n oauthAuthorizeStart = async (data: B2BOAuthAuthorizeStartOptions): Promise<B2BOAuthAuthorizeStartResponse> =>\n this._networkClient.fetchSDK<B2BOAuthAuthorizeStartResponse>({\n url: '/idp/b2b/oauth/authorize/start',\n method: 'POST',\n body: data,\n });\n\n /**\n * Completes a request for authorization of a Connected App to access a Member's account.\n *\n * Call this endpoint using the query parameters from an OAuth Authorization request, after previously validating those parameters using the Preflight Check API. Note that this endpoint takes in a few additional parameters the preflight check does not- state, nonce, and code_challenge.\n *\n * If the authorization was successful, the redirect_uri will contain a valid authorization_code embedded as a query parameter. If the authorization was unsuccessful, the redirect_uri will contain an OAuth2.1 error_code. In both cases, redirect the Member to the location for the response to be consumed by the Connected App.\n *\n * Exactly one of the following must be provided to identify the Member granting authorization:\n * organization_id + member_id\n * session_token\n * session_jwt\n *\n * If a session_token or session_jwt is passed, the OAuth Authorization will be linked to the Member's session for tracking purposes. One of these fields must be used if the Connected App intends to complete the Exchange Access Token flow.\n *\n * @example\n * const response = await stytch.idp.oauthAuthorizeSubmit({\n * client_id: 'client_123',\n * redirect_uri: 'https://example.com/callback',\n * scope: 'openid email profile',\n * });\n */\n oauthAuthorizeSubmit = async (data: B2BOAuthAuthorizeSubmitOptions): Promise<B2BOAuthAuthorizeSubmitResponse> =>\n this._networkClient.fetchSDK<B2BOAuthAuthorizeSubmitResponse>({\n url: '/idp/b2b/oauth/authorize/submit',\n method: 'POST',\n body: data,\n });\n\n oauthLogoutStart = async (data: B2BOAuthLogoutStartOptions): Promise<B2BOAuthLogoutStartResponse> =>\n this._networkClient.fetchSDK<B2BOAuthLogoutStartResponse>({\n url: `/b2b/oauth/logout/start`,\n method: 'POST',\n body: data,\n });\n}\n","import { OneTapRenderResult } from '../oneTap/GoogleOneTapClient';\nimport {\n IHeadlessB2BOAuthClient,\n OneTapPositions,\n StytchProjectConfigurationInput,\n StytchSDKUsageError,\n} from '@stytch/core/public';\nimport {\n HeadlessB2BOAuthClient as BaseHeadlessB2BOAuthClient,\n DisabledDFPProtectedAuthProvider,\n IDFPProtectedAuthProvider,\n INetworkClient,\n IPKCEManager,\n IB2BSubscriptionService,\n} from '@stytch/core';\nimport { B2BOneTapProvider } from './oneTap/B2BOneTapProvider';\n\nexport type B2BGoogleOneTapDiscoveryOAuthOptions = {\n /**\n * The URL that Stytch redirects to after the Google One Tap discovery flow is completed.\n * This should be a URL that verifies the request by querying Stytch's /oauth/discovery/authenticate endpoint.\n * If this value is not passed, the default discovery redirect URL that you set in your Dashboard is used.\n * If you have not set a default discovery redirect URL, an error is returned.\n */\n discovery_redirect_url?: string;\n /**\n * Controls whether clicking outside the One Tap prompt dismisses the prompt.\n * Defaults to true.\n */\n cancel_on_tap_outside?: boolean;\n};\n\nexport type B2BGoogleOneTapOAuthOptions = {\n /**\n * The ID of the organization that the end user is logging in to.\n */\n organization_id: string;\n\n /**\n * The URL that Stytch redirects to after the Google One Tap flow is completed for a member who already exists.\n * This should be a URL that verifies the request by querying Stytch's /oauth/authenticate endpoint.\n * If this value is not passed, the default login redirect URL that you set in your Dashboard is used.\n * If you have not set a default login redirect URL, an error is returned.\n */\n login_redirect_url?: string;\n\n /**\n * The URL that Stytch redirects to after the Google One Tap flow is completed for a member who does not yet exist.\n * This should be a URL that verifies the request by querying Stytch's /oauth/authenticate endpoint.\n * If this value is not passed, the default signup redirect URL that you set in your Dashboard is used.\n * If you have not set a default signup redirect URL, an error is returned.\n */\n signup_redirect_url?: string;\n /**\n * Controls whether clicking outside the One Tap prompt dismisses the prompt.\n * Defaults to true.\n */\n cancel_on_tap_outside?: boolean;\n};\n\ninterface IB2BGoogleOneTapOAuthProvider {\n discovery: {\n /**\n * Start a discovery OAuth flow by showing the Google one tap prompt in the top right corner of the user's browser.\n * You can configure this to be started by a user action (i.e Button click) or on load/render.\n * @example\n * const showGoogleOneTap = useCallback(()=> {\n * stytch.oauth.googleOneTap.discovery.start({\n * discovery_redirect_url: 'https://example.com/oauth/callback',\n * })\n * }, [stytch]);\n * return (\n * <Button onClick={showGoogleOneTap}> Show Google one tap </Button>\n * );\n *\n * @param options - A {@link B2BGoogleOneTapDiscoveryOAuthOptions} object\n *\n * @returns A {@link OneTapRenderResult} object. The result object includes if the one-tap prompt\n * was rendered, and a reason if it couldn't be rendered.\n *\n * @throws An Error if the one tap client cannot be created.\n */\n start(options?: B2BGoogleOneTapDiscoveryOAuthOptions): Promise<OneTapRenderResult>;\n };\n /**\n * Start an OAuth flow by showing the Google one tap prompt in the top right corner of the user's browser.\n * You can configure this to be started by a user action (i.e Button click) or on load/render.\n * @example\n * const showGoogleOneTap = useCallback(()=> {\n * stytch.oauth.googleOneTap.start({\n * organization_id: 'organization-test-123',\n * })\n * }, [stytch]);\n * return (\n * <Button onClick={showGoogleOneTap}> Show Google one tap </Button>\n * );\n *\n * @param options - A {@link B2BGoogleOneTapOAuthOptions} object\n *\n * @returns A {@link OneTapRenderResult} object. The result object includes if the one-tap prompt\n * was rendered, and a reason if it couldn't be rendered.\n *\n * @throws An Error if the one tap client cannot be created.\n */\n start(options?: B2BGoogleOneTapOAuthOptions): Promise<OneTapRenderResult>;\n}\n\ntype DynamicConfig = Promise<{\n cnameDomain: null | string;\n pkceRequiredForOAuth: boolean;\n}>;\ntype Config = {\n publicToken: string;\n testAPIURL: string;\n liveAPIURL: string;\n};\n\nexport interface IWebB2BOAuthClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n extends IHeadlessB2BOAuthClient<TProjectConfiguration> {\n googleOneTap: IB2BGoogleOneTapOAuthProvider;\n}\n\nexport class HeadlessB2BOAuthClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n extends BaseHeadlessB2BOAuthClient<TProjectConfiguration>\n implements IWebB2BOAuthClient<TProjectConfiguration>\n{\n constructor(\n _networkClient: INetworkClient,\n _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n _pkceManager: IPKCEManager,\n _dynamicConfig: DynamicConfig,\n _config: Config,\n _dfpProtectedAuth: IDFPProtectedAuthProvider = DisabledDFPProtectedAuthProvider(),\n private _oneTap: B2BOneTapProvider,\n ) {\n super(_networkClient, _subscriptionService, _pkceManager, _dynamicConfig, _config, _dfpProtectedAuth);\n }\n\n private startOneTapDiscovery = async (options: B2BGoogleOneTapDiscoveryOAuthOptions): Promise<OneTapRenderResult> => {\n const clientResult = await this._oneTap.createOneTapClient();\n if (!clientResult.success) {\n throw new Error(`One Tap could not load: ${clientResult.reason}`);\n }\n\n const { client } = clientResult;\n\n const onSuccessCallback = this._oneTap.createOnDiscoverySuccessHandler({\n discoveryRedirectUrl: options.discovery_redirect_url,\n onSuccess: this._oneTap.redirectOnSuccess,\n });\n\n return client.render({\n style: {\n position: OneTapPositions.floating,\n },\n callback: onSuccessCallback,\n cancelOnTapOutside: options.cancel_on_tap_outside,\n });\n };\n\n private startOneTap = async (options: B2BGoogleOneTapOAuthOptions): Promise<OneTapRenderResult> => {\n if (!options.organization_id) {\n throw new StytchSDKUsageError('stytch.oauth.googleOneTap.start', 'organization_id is a required argument');\n }\n const clientResult = await this._oneTap.createOneTapClient();\n if (!clientResult.success) {\n throw new Error(`One Tap could not load: ${clientResult.reason}`);\n }\n\n const { client } = clientResult;\n\n const onSuccessCallback = this._oneTap.createOnSuccessHandler({\n organizationId: options.organization_id,\n signupRedirectUrl: options.signup_redirect_url,\n loginRedirectUrl: options.login_redirect_url,\n onSuccess: this._oneTap.redirectOnSuccess,\n });\n\n return client.render({\n style: {\n position: OneTapPositions.floating,\n },\n callback: onSuccessCallback,\n cancelOnTapOutside: options.cancel_on_tap_outside,\n });\n };\n\n googleOneTap: IB2BGoogleOneTapOAuthProvider = {\n discovery: {\n start: this.startOneTapDiscovery,\n },\n start: this.startOneTap,\n };\n}\n","import type { CredentialResponse } from 'google-one-tap';\nimport { INetworkClient, IPKCEManager } from '@stytch/core';\nimport { ResponseCommon, StytchAPIError } from '@stytch/core/public';\nimport { GoogleOneTapClient } from '../../oneTap/GoogleOneTapClient';\nimport { loadGoogleOneTapClient } from '../../oneTap/OneTapProvider';\n\ntype B2BOneTapStartResponse = ResponseCommon & {\n google_client_id: string;\n};\n\ntype B2BOneTapSubmitResponse = ResponseCommon & {\n redirect_url: string;\n};\n\ntype OneTapNotLoadedReason =\n // These come from the API directly - err.error_type\n | 'oauth_config_not_found'\n | 'default_provider_not_allowed'\n // If we have an unhandled error :$\n | string;\n\ntype OneTapLoadResult =\n | { success: true; client: GoogleOneTapClient }\n | { success: false; reason: OneTapNotLoadedReason };\n\ntype DynamicConfig = Promise<{\n pkceRequiredForOAuth: boolean;\n}>;\n\nconst DefaultDynamicConfig = Promise.resolve({\n pkceRequiredForOAuth: false,\n});\n\n/**\n * Handles loading One Tap config from Stytch API and initializing {@link GoogleOneTapClient}\n */\nexport class B2BOneTapProvider {\n private googleClientID?: string;\n constructor(\n private _networkClient: INetworkClient,\n private _pkceManager: IPKCEManager,\n private _config: DynamicConfig = DefaultDynamicConfig,\n ) {}\n\n private async fetchGoogleStart() {\n if (this.googleClientID) {\n return this.googleClientID;\n }\n const oneTapStartResp = await this._networkClient.fetchSDK<B2BOneTapStartResponse>({\n url: '/b2b/oauth/google/onetap/start',\n method: 'GET',\n });\n this.googleClientID = oneTapStartResp.google_client_id;\n return this.googleClientID;\n }\n\n private async submitGoogleOneTapTokenDiscovery({\n credential,\n discoveryRedirectUrl,\n }: {\n credential: string;\n discoveryRedirectUrl?: string;\n }) {\n let codeChallenge = undefined;\n const { pkceRequiredForOAuth } = await this._config;\n if (pkceRequiredForOAuth) {\n const keyPair = await this._pkceManager.startPKCETransaction();\n codeChallenge = keyPair.code_challenge;\n } else {\n this._pkceManager.clearPKPair();\n }\n return await this._networkClient.fetchSDK<B2BOneTapSubmitResponse>({\n url: '/b2b/oauth/google/onetap/discovery/submit',\n method: 'POST',\n body: {\n id_token: credential,\n discovery_redirect_url: discoveryRedirectUrl,\n pkce_code_challenge: codeChallenge,\n },\n });\n }\n\n private async submitGoogleOneTapToken({\n credential,\n organizationId,\n signupRedirectUrl,\n loginRedirectUrl,\n }: {\n credential: string;\n organizationId: string;\n signupRedirectUrl?: string;\n loginRedirectUrl?: string;\n }) {\n let codeChallenge = undefined;\n const { pkceRequiredForOAuth } = await this._config;\n if (pkceRequiredForOAuth) {\n const keyPair = await this._pkceManager.startPKCETransaction();\n codeChallenge = keyPair.code_challenge;\n } else {\n this._pkceManager.clearPKPair();\n }\n return await this._networkClient.fetchSDK<B2BOneTapSubmitResponse>({\n url: '/b2b/oauth/google/onetap/submit',\n method: 'POST',\n body: {\n id_token: credential,\n organization_id: organizationId,\n signup_redirect_url: signupRedirectUrl,\n login_redirect_url: loginRedirectUrl,\n pkce_code_challenge: codeChallenge,\n },\n });\n }\n\n async createOneTapClient(): Promise<OneTapLoadResult> {\n let googleClientId: string;\n try {\n googleClientId = await this.fetchGoogleStart();\n } catch (e) {\n const err = StytchAPIError.from(e);\n return { success: false, reason: err.error_type };\n }\n\n if (googleClientId === '') {\n return { success: false, reason: 'oauth_config_not_found' };\n }\n const client = new GoogleOneTapClient(await loadGoogleOneTapClient(), googleClientId);\n return { success: true, client };\n }\n\n createOnDiscoverySuccessHandler =\n ({\n discoveryRedirectUrl,\n onSuccess,\n onError,\n }: {\n discoveryRedirectUrl?: string;\n onSuccess: (redirect_url: string) => void;\n onError?: (error: Error) => void;\n }) =>\n async (response: CredentialResponse) => {\n const { credential } = response;\n let submitPromise = this.submitGoogleOneTapTokenDiscovery({\n credential,\n discoveryRedirectUrl,\n }).then((result) => onSuccess(result.redirect_url));\n if (onError) {\n submitPromise = submitPromise.catch((error) => onError(error));\n }\n await submitPromise;\n };\n\n createOnSuccessHandler =\n ({\n organizationId,\n signupRedirectUrl,\n loginRedirectUrl,\n onSuccess,\n onError,\n }: {\n organizationId: string;\n signupRedirectUrl?: string;\n loginRedirectUrl?: string;\n onSuccess: (redirect_url: string) => void;\n onError?: (error: Error) => void;\n }) =>\n async (response: CredentialResponse) => {\n const { credential } = response;\n let submitPromise = this.submitGoogleOneTapToken({\n credential,\n organizationId,\n signupRedirectUrl,\n loginRedirectUrl,\n }).then((result) => onSuccess(result.redirect_url));\n if (onError) {\n submitPromise = submitPromise.catch((error) => onError(error));\n }\n await submitPromise;\n };\n\n redirectOnSuccess = (redirect_url: string) => {\n window.location.href = redirect_url;\n };\n}\n","import {\n checkB2BNotSSR,\n checkPublicToken,\n DFPProtectedAuthProvider,\n HeadlessB2BDiscoveryClient,\n HeadlessB2BIDPClient,\n HeadlessB2BImpersonationClient,\n HeadlessB2BMagicLinksClient,\n HeadlessB2BOrganizationClient,\n HeadlessB2BOTPsClient,\n HeadlessB2BPasswordsClient,\n HeadlessB2BRBACClient,\n HeadlessB2BRecoveryCodesClient,\n HeadlessB2BSCIMClient,\n HeadlessB2BSelfClient,\n HeadlessB2BSessionClient,\n HeadlessB2BSSOClient,\n HeadlessB2BTOTPsClient,\n INetworkClient,\n SearchDataManager,\n SessionManager,\n StateChangeClient,\n StateChangeRegisterFunction,\n VERTICAL_CONSUMER,\n logger,\n} from '@stytch/core';\nimport {\n B2BState,\n IHeadlessB2BDiscoveryClient,\n IHeadlessB2BImpersonationClient,\n IHeadlessB2BMagicLinksClient,\n IHeadlessB2BMemberClient,\n IHeadlessB2BOrganizationClient,\n IHeadlessB2BOTPsClient,\n IHeadlessB2BPasswordClient,\n IHeadlessB2BRBACClient,\n IHeadlessB2BRecoveryCodesClient,\n IHeadlessB2BSCIMClient,\n IHeadlessB2BSelfClient,\n IHeadlessB2BSessionClient,\n IHeadlessB2BSSOClient,\n IHeadlessB2BTOTPsClient,\n StytchClientOptions,\n StytchProjectConfigurationInput,\n} from '@stytch/core/public';\nimport { BootstrapDataManager } from '../BootstrapDataManager';\nimport { CaptchaProvider } from '../CaptchaProvider';\nimport { ClientsideServicesProvider } from '../ClientsideServicesProvider';\nimport { NetworkClient } from '../NetworkClient';\nimport { PKCEManager } from '../PKCEManager';\nimport { B2BSubscriptionDataLayer, B2BSubscriptionService, getB2BDataLayer } from '../SubscriptionService';\nimport { B2BInternals, writeB2BInternals } from '../utils/internal';\nimport { HeadlessB2BOAuthClient, IWebB2BOAuthClient } from './HeadlessB2BOAuthClient';\nimport { B2BOneTapProvider } from './oneTap/B2BOneTapProvider';\nimport { buildFinalConfig, hasCustomApiEndpoint } from '../utils/config';\nimport { createAuthUrlHandler, AuthenticateByUrl, ParseAuthenticateUrl } from '../utils/createAuthUrlHandler';\n\nexport type HandledTokenType =\n | 'discovery'\n | 'discovery_oauth'\n | 'oauth'\n | 'sso'\n | 'multi_tenant_magic_links'\n | 'multi_tenant_impersonation';\n\n/**\n * A headless client used for invoking Stytch's B2B APIs.\n * The Stytch Headless Client can be used as a drop-in solution for authentication and session management.\n * Full documentation can be found {@link https://stytch.com/docs/b2b/sdks/javascript-sdk online}.\n *\n * @example\n * const stytch = new StytchB2BClient('public-token-<find yours in the stytch dashboard>');\n * stytch.magicLinks.email.loginOrCreate({\n * email: 'sandbox@stytch.com',\n * organization_id: 'organization-test-123',\n * });\n */\nexport class StytchB2BClient<\n TProjectConfiguration extends StytchProjectConfigurationInput = Stytch.DefaultProjectConfiguration,\n> {\n private readonly _subscriptionService: B2BSubscriptionService<TProjectConfiguration>;\n private readonly _sessionManager: SessionManager<TProjectConfiguration>;\n private readonly _networkClient: INetworkClient;\n private readonly _dataLayer: B2BSubscriptionDataLayer;\n private readonly _stateChangeClient: StateChangeClient<B2BState>;\n\n // External API Clients\n magicLinks: IHeadlessB2BMagicLinksClient<TProjectConfiguration>;\n session: IHeadlessB2BSessionClient<TProjectConfiguration>;\n /** @deprecated Please use client.self instead. This will be removed in a future release. */\n member: IHeadlessB2BMemberClient;\n self: IHeadlessB2BSelfClient;\n organization: IHeadlessB2BOrganizationClient;\n oauth: IWebB2BOAuthClient<TProjectConfiguration>;\n sso: IHeadlessB2BSSOClient<TProjectConfiguration>;\n discovery: IHeadlessB2BDiscoveryClient<TProjectConfiguration>;\n passwords: IHeadlessB2BPasswordClient<TProjectConfiguration>;\n otps: IHeadlessB2BOTPsClient<TProjectConfiguration>;\n totp: IHeadlessB2BTOTPsClient<TProjectConfiguration>;\n recoveryCodes: IHeadlessB2BRecoveryCodesClient<TProjectConfiguration>;\n rbac: IHeadlessB2BRBACClient;\n scim: IHeadlessB2BSCIMClient;\n impersonation: IHeadlessB2BImpersonationClient;\n idp: HeadlessB2BIDPClient;\n\n // External methods\n /**\n * Register a callback function to be invoked whenever certain state changes\n * occur, like a member or session object being updated.\n *\n * This is an alternative to more specific methods like `self.onChange` and\n * `session.onChange`. It can be helpful if you want to be notified of related\n * changes to different parts of state at once.\n *\n * If you are only interested in specific state changes, consider using more\n * specific methods like `self.onChange` and `session.onChange` instead.\n */\n onStateChange: StateChangeRegisterFunction<B2BState>;\n\n /**\n * Extracts token and token type from the current page URL's query parameters.\n * If the current URL do not have the required query params, this will return null.\n * Otherwise, returns an object { handled: boolean, tokenType: string, token: string }\n */\n parseAuthenticateUrl: ParseAuthenticateUrl<HandledTokenType>;\n\n /**\n * Call this method to authenticate the user when the user has been redirected\n * to this page with a token in the query parameters, such as after OAuth\n * or through an email magic link. This method currently supports\n *\n * - Magic links\n * - OAuth\n * - SSO\n * - Impersonation\n *\n * If the current URL do not have the required query params, the promise returned will resolve to null.\n * If the token type is not supported (e.g. reset_password), the promise returned will resolve to this\n * object allowing you to handle the token.\n * {\n * handled: false,\n * tokenType: 'token_type',\n * token: '<token>'\n * }\n */\n authenticateByUrl: AuthenticateByUrl<HandledTokenType>;\n\n constructor(rawPublicToken: string, options?: StytchClientOptions) {\n checkB2BNotSSR();\n\n // Intentionally check the raw public token so that we can log a correct error message,\n // but then coalesce to an empty string so that the UI components don't fail to render.\n checkPublicToken(rawPublicToken);\n const _PUBLIC_TOKEN = rawPublicToken ?? '';\n\n // Not casting to InternalStytchClientOptions since InternalStytchClientOptions is currently a superset\n const config = buildFinalConfig(this.constructor.name, options);\n const usingCustomApiEndpoint = hasCustomApiEndpoint(_PUBLIC_TOKEN, options);\n\n this._dataLayer = getB2BDataLayer(_PUBLIC_TOKEN, config);\n this._subscriptionService = new B2BSubscriptionService(_PUBLIC_TOKEN, this._dataLayer, { usingCustomApiEndpoint });\n this._stateChangeClient = new StateChangeClient(this._subscriptionService, {});\n this.onStateChange = (...args) => this._stateChangeClient.onStateChange(...args);\n\n const additionalTelemetryDataFn = () => ({\n stytch_member_id: this._dataLayer.state?.member?.member_id,\n stytch_member_session_id: this._dataLayer.state?.session?.member_session_id,\n });\n\n const passwordsPKCEManager = new PKCEManager(this._dataLayer, 'passwords');\n\n const networkClient = new NetworkClient(\n _PUBLIC_TOKEN,\n this._dataLayer,\n config.endpoints.liveAPIURL,\n config.endpoints.testAPIURL,\n additionalTelemetryDataFn,\n );\n this._networkClient = networkClient;\n\n const bootstrap = new BootstrapDataManager(_PUBLIC_TOKEN, networkClient, this._dataLayer);\n const captcha = new CaptchaProvider(bootstrap.getAsync());\n const dfpProtectedAuth = new DFPProtectedAuthProvider(\n _PUBLIC_TOKEN,\n config.endpoints.dfpBackendURL,\n config.endpoints.dfpCdnURL,\n bootstrap.getAsync(),\n captcha.executeRecaptcha,\n );\n const clientsideServices = new ClientsideServicesProvider(config.endpoints.clientsideServicesIframeURL);\n const pkceManagerForOAuth = new PKCEManager(this._dataLayer, 'oauth');\n const oneTap = new B2BOneTapProvider(networkClient, pkceManagerForOAuth, bootstrap.getAsync());\n\n this.organization = new HeadlessB2BOrganizationClient(networkClient, networkClient, this._subscriptionService);\n this.member = new HeadlessB2BSelfClient(networkClient, networkClient, this._subscriptionService);\n this.self = new HeadlessB2BSelfClient(networkClient, networkClient, this._subscriptionService);\n this.session = new HeadlessB2BSessionClient(networkClient, this._subscriptionService);\n this.magicLinks = new HeadlessB2BMagicLinksClient(\n networkClient,\n this._subscriptionService,\n new PKCEManager(this._dataLayer, 'magic_links'),\n passwordsPKCEManager,\n bootstrap.getAsync(),\n dfpProtectedAuth,\n );\n this.oauth = new HeadlessB2BOAuthClient(\n networkClient,\n this._subscriptionService,\n pkceManagerForOAuth,\n bootstrap.getAsync(),\n {\n publicToken: _PUBLIC_TOKEN,\n testAPIURL: config.endpoints.testAPIURL,\n liveAPIURL: config.endpoints.liveAPIURL,\n },\n dfpProtectedAuth,\n oneTap,\n );\n this.sso = new HeadlessB2BSSOClient(\n networkClient,\n this._subscriptionService,\n new PKCEManager(this._dataLayer, 'sso'),\n bootstrap.getAsync(),\n {\n publicToken: _PUBLIC_TOKEN,\n testAPIURL: config.endpoints.testAPIURL,\n liveAPIURL: config.endpoints.liveAPIURL,\n },\n dfpProtectedAuth,\n );\n this.discovery = new HeadlessB2BDiscoveryClient(networkClient, this._subscriptionService);\n this.passwords = new HeadlessB2BPasswordsClient(\n networkClient,\n this._subscriptionService,\n passwordsPKCEManager,\n bootstrap.getAsync(),\n dfpProtectedAuth,\n );\n this.otps = new HeadlessB2BOTPsClient(networkClient, this._subscriptionService, dfpProtectedAuth);\n this.totp = new HeadlessB2BTOTPsClient(networkClient, this._subscriptionService, dfpProtectedAuth);\n this.recoveryCodes = new HeadlessB2BRecoveryCodesClient(networkClient, this._subscriptionService, dfpProtectedAuth);\n this.rbac = new HeadlessB2BRBACClient(bootstrap.getSync(), bootstrap.getAsync(), this._subscriptionService);\n this.scim = new HeadlessB2BSCIMClient(this._networkClient, this._subscriptionService);\n this.impersonation = new HeadlessB2BImpersonationClient(\n this._networkClient,\n this._subscriptionService,\n dfpProtectedAuth,\n );\n this.idp = new HeadlessB2BIDPClient(networkClient);\n this._sessionManager = new SessionManager(this._subscriptionService, this.session, _PUBLIC_TOKEN, {\n keepSessionAlive: config.keepSessionAlive,\n });\n const searchManager = new SearchDataManager(networkClient, dfpProtectedAuth);\n\n // If the session does not exist in localstorage (like if we are in an iframe)\n // then the cookie might still be set and we can retrieve the session via an API call.\n // If a custom API endpoint is being used, the session may be being managed by\n // HttpOnly cookies, which we can't detect.\n if (usingCustomApiEndpoint || this._dataLayer.readSessionCookie().session_token) {\n this._sessionManager.performBackgroundRefresh();\n }\n\n const { authenticateByUrl, parseAuthenticateUrl } = createAuthUrlHandler<HandledTokenType>({\n discovery: (token) => this.magicLinks.discovery.authenticate({ discovery_magic_links_token: token }),\n discovery_oauth: (token) => this.oauth.discovery.authenticate({ discovery_oauth_token: token }),\n oauth: (token, options) => this.oauth.authenticate({ oauth_token: token, ...options }),\n sso: (token, options) => this.sso.authenticate({ sso_token: token, ...options }),\n multi_tenant_magic_links: (token, options) =>\n this.magicLinks.authenticate({ magic_links_token: token, ...options }),\n multi_tenant_impersonation: (token) => this.impersonation.authenticate({ impersonation_token: token }),\n });\n\n this.authenticateByUrl = authenticateByUrl;\n this.parseAuthenticateUrl = parseAuthenticateUrl;\n\n networkClient.logEvent({\n name: 'b2b_sdk_instance_instantiated',\n details: {\n event_callback_registered: false,\n error_callback_registered: false,\n success_callback_registered: false,\n },\n });\n\n bootstrap.getAsync().then((bootstrapData) => {\n if (bootstrapData.vertical === VERTICAL_CONSUMER) {\n logger.error(\n 'This application is using a Stytch client for B2B projects, but the public token is for a Stytch Consumer project. Use a Consumer Stytch client instead, or verify that the public token is correct.',\n );\n }\n });\n\n const internals: B2BInternals = {\n bootstrap,\n clientsideServices,\n publicToken: _PUBLIC_TOKEN,\n searchManager,\n dataLayer: this._dataLayer,\n networkClient: networkClient,\n oneTap,\n };\n\n writeB2BInternals(this, internals);\n }\n}\n","import { StytchB2BClient } from './StytchB2BClient';\nimport { ssrSafeClientFactory } from '../ui/react/bindings/StytchSSRProxy';\n\n/**\n * Creates a Headless Stytch client object to call the stytch B2B APIs.\n * The Stytch client is not available serverside.\n * @example\n * const stytch = createStytchB2BClient('public-token-<find yours in the stytch dashboard>')\n *\n * return (\n * <StytchB2BProvider stytch={stytch}>\n * <App />\n * </StytchB2BProvider>\n * )\n * @returns A {@link StytchB2BClient}\n */\nexport const createStytchB2BClient = ssrSafeClientFactory(StytchB2BClient);\n\n/**\n * @deprecated Use {createStytchB2BClient()} instead\n */\nexport const createStytchB2BHeadlessClient = createStytchB2BClient;\n\n/**\n * @deprecated Use {StytchB2BClient()} instead\n */\nexport const StytchB2BHeadlessClient = StytchB2BClient;\nexport { StytchB2BClient };\n\nexport { parseOAuthAuthorizeParams, parseOAuthLogoutParams } from '../utils/idpHelpers';\nexport type { OAuthAuthorizeParams, OAuthLogoutParams } from '../utils/idpHelpers';\n\nexport * from '@stytch/core/public';\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","HeadlessB2BSSOClient","authenticate","_dynamicConfig","_config","dfpProtectedAuth","_pkceManager","saml","createConnection","updateConnection","connection_id","updateConnectionByURL","deleteVerificationCertificate","certificate_id","deleteEncryptionPrivateKey","private_key_id","oidc","external","withUpdateSession","options","sso_token","session_duration_minutes","locale","keyPair","getPKPair","logger","warn","dfp_telemetry_id","captcha_token","getDFPTelemetryIDAndCaptcha","retriableFetchSDK","pkce_code_verifier","code_verifier","intermediate_session_token","getIntermediateSessionToken","undefined","retryCallback","retryWithCaptchaAndDFP","clearPKPair","getBaseApiUrl","isTestPublicToken","publicToken","testAPIURL","liveAPIURL","start","login_redirect_url","signup_redirect_url","pkceRequiredForSso","baseURL","startUrl","URL","searchParams","set","startPKCETransaction","code_challenge","navigate","window","location","href","toString","getConnections","discoverConnections","emailAddress","encodeURIComponent","deleteConnection","connectionId","HeadlessB2BSCIMClient","display_name","identity_provider","getConnection","getConnectionGroups","limit","cursor","rotateStart","rotateComplete","rotateCancel","HeadlessB2BOrganizationClient","updateOrganization","organization","getOrganization","delete","destroyState","getBySlug","organization_slug","getConnectedApp","members","create","search","response","member_id","updateMemberIfSelf","memberId","reactivate","HeadlessB2BOAuthClient","discovery","google","microsoft","hubspot","slack","github","oauth_token","discovery_oauth_token","pkPair","requestBody","startOAuthFlow","B2BOAuthProviders","Google","startDiscoveryOAuthFlow","Microsoft","HubSpot","Slack","GitHub","cnameDomain","providerType","organization_id","custom_scopes","provider_params","pkceRequiredForOAuth","join","key","discovery_redirect_url","HeadlessB2BSessionClient","revoke","revokeForMember","_authenticate","exchange","exchangeAccessToken","attest","getSession","session","error","forceClear","UNRECOVERABLE_ERROR_TYPES","includes","error_type","initialSession","isSessionStale","member_session_id","destroySession","access_token","profile_id","token","getTokens","updateSession","tokens","session_token","session_jwt","updateTokens","HeadlessB2BDiscoveryClient","organizations","intermediateSessions","list","organization_name","organization_logo_url","sso_jit_provisioning","email_allowed_domains","email_invites","auth_methods","allowed_auth_methods","mfa_policy","HeadlessB2BOTPsClient","sms","email","send","code","set_mfa_enrollment","loginOrSignup","email_address","login_template_id","signup_template_id","login_expiration_minutes","signup_expiration_minutes","discovery_expiration_minutes","HeadlessB2BTOTPsClient","set_default_mfa","expiration_minutes","HeadlessB2BRecoveryCodesClient","recover","recovery_code","rotate","HeadlessB2BRBACClient","cachedPolicy","policyPromise","cachedConfig","dynamicConfig","isAuthorizedSync","resourceId","action","effectivePolicy","getEffectivePolicySync","callerIsAuthorized","roleIds","isAuthorized","getEffectivePolicy","then","policy","rbacPolicy","RBACPolicy","fromJSON","projectPolicy","custom_roles","length","mergeWithCustomRoles","allPermissions","allPermissionsForCaller","roles","HeadlessB2BImpersonationClient","impersonation_token","HeadlessB2BIDPClient","oauthAuthorizeStart","oauthAuthorizeSubmit","oauthLogoutStart","BaseHeadlessB2BOAuthClient","_dfpProtectedAuth","DisabledDFPProtectedAuthProvider","_oneTap","startOneTapDiscovery","clientResult","createOneTapClient","success","Error","reason","client","onSuccessCallback","createOnDiscoverySuccessHandler","discoveryRedirectUrl","onSuccess","redirectOnSuccess","render","style","position","OneTapPositions","floating","cancelOnTapOutside","cancel_on_tap_outside","startOneTap","StytchSDKUsageError","createOnSuccessHandler","organizationId","signupRedirectUrl","loginRedirectUrl","googleOneTap","DefaultDynamicConfig","Promise","resolve","B2BOneTapProvider","googleClientID","onError","credential","submitPromise","submitGoogleOneTapTokenDiscovery","result","redirect_url","catch","submitGoogleOneTapToken","fetchGoogleStart","oneTapStartResp","google_client_id","codeChallenge","id_token","pkce_code_challenge","googleClientId","e","err","StytchAPIError","from","GoogleOneTapClient","loadGoogleOneTapClient","StytchB2BClient","_sessionManager","_dataLayer","_stateChangeClient","magicLinks","self","oauth","sso","passwords","otps","totp","recoveryCodes","rbac","scim","impersonation","idp","onStateChange","parseAuthenticateUrl","authenticateByUrl","rawPublicToken","checkB2BNotSSR","checkPublicToken","_PUBLIC_TOKEN","config","buildFinalConfig","usingCustomApiEndpoint","hasCustomApiEndpoint","getB2BDataLayer","B2BSubscriptionService","StateChangeClient","args","additionalTelemetryDataFn","stytch_member_id","stytch_member_session_id","passwordsPKCEManager","PKCEManager","networkClient","NetworkClient","endpoints","bootstrap","BootstrapDataManager","captcha","CaptchaProvider","getAsync","DFPProtectedAuthProvider","dfpBackendURL","dfpCdnURL","executeRecaptcha","clientsideServices","ClientsideServicesProvider","clientsideServicesIframeURL","pkceManagerForOAuth","oneTap","HeadlessB2BMagicLinksClient","HeadlessB2BPasswordsClient","SessionManager","keepSessionAlive","searchManager","SearchDataManager","readSessionCookie","performBackgroundRefresh","createAuthUrlHandler","discovery_magic_links_token","discovery_oauth","multi_tenant_magic_links","magic_links_token","multi_tenant_impersonation","logEvent","details","event_callback_registered","error_callback_registered","success_callback_registered","bootstrapData","vertical","VERTICAL_CONSUMER","internals","dataLayer","writeB2BInternals","createStytchB2BClient","ssrSafeClientFactory","createStytchB2BHeadlessClient","StytchB2BHeadlessClient"],"mappings":";;;;;AAuBO,MAAMA,qBAAAA,CAAAA;;;;IAGXC,WAAAA,CACUC,cAA8B,EAC9BC,iBAAiC,EACjCC,oBAAoE,CAC5E;aAHQF,cAAAA,GAAAA,cAAAA;aACAC,iBAAAA,GAAAA,iBAAAA;aACAC,oBAAAA,GAAAA,oBAAAA;aAGVC,GAAAA,GAAM,UAAA;AACJ,YAAA,MAAMC,OAAO,MAAM,IAAI,CAACJ,cAAc,CAACK,QAAQ,CAAsC;gBACnFC,GAAAA,EAAK,CAAC,6BAA6B,CAAC;gBACpCC,MAAAA,EAAQ;AACV,aAAA,CAAA;AACA,YAAA,IAAI,CAACL,oBAAoB,CAACM,YAAY,CAACJ,KAAKK,MAAM,CAAA;AAClD,YAAA,OAAOL,KAAKK,MAAM;AACpB,QAAA,CAAA;aAEAC,OAAAA,GAAU,IAAA;AACR,YAAA,OAAO,IAAI,CAACR,oBAAoB,CAACS,SAAS,EAAA;AAC5C,QAAA,CAAA;AAEAC,QAAAA,IAAAA,CAAAA,OAAAA,GAAU,KAAmB;gBAC3BH,MAAAA,EAAQ,IAAI,CAACC,OAAO,EAAA;AACpBG,gBAAAA,SAAAA,EAAW,IAAI,CAACX,oBAAoB,CAACY,YAAY;aACnD,CAAA;AAEAC,QAAAA,IAAAA,CAAAA,QAAAA,GAAW,CAACC,QAAAA,GAAAA;YACV,OAAO,IAAI,CAACd,oBAAoB,CAACe,gBAAgB,CAAC,CAACC,KAAAA,GAAUF,QAAAA,CAASE,KAAAA,EAAOT,MAAAA,IAAU,IAAA,CAAA,CAAA;AACzF,QAAA,CAAA;AAEAU,QAAAA,IAAAA,CAAAA,MAAAA,GAAS,OAAOC,IAAAA,GAAAA;AACdC,YAAAA,wBAAAA,CAAc,sBAAsBD,IAAAA,EAAM;gBACxCE,IAAAA,EAAM,gBAAA;gBACNC,kBAAAA,EAAoB,gBAAA;gBACpBC,YAAAA,EAAc,iBAAA;gBACdC,gBAAAA,EAAkB,gBAAA;gBAClBC,kBAAAA,EAAoB;AACtB,aAAA,CAAA;AAEA,YAAA,MAAMtB,OAAO,MAAM,IAAI,CAACJ,cAAc,CAACK,QAAQ,CAA0B;gBACvEC,GAAAA,EAAK,mCAAA;gBACLqB,IAAAA,EAAMP,IAAAA;gBACNb,MAAAA,EAAQ;AACV,aAAA,CAAA;AACA,YAAA,IAAI,CAACL,oBAAoB,CAACM,YAAY,CAACJ,KAAKK,MAAM,CAAA;YAClD,OAAOL,IAAAA;AACT,QAAA,CAAA;aAEAwB,oBAAAA,GAAuB,UAAA;AACrB,YAAA,MAAMxB,OAAO,MAAM,IAAI,CAACJ,cAAc,CAACK,QAAQ,CAAwC;gBACrFC,GAAAA,EAAK,8CAAA;gBACLC,MAAAA,EAAQ;AACV,aAAA,CAAA;AACA,YAAA,IAAI,CAACL,oBAAoB,CAACM,YAAY,CAACJ,KAAKK,MAAM,CAAA;YAClD,OAAOL,IAAAA;AACT,QAAA,CAAA;aAEAyB,aAAAA,GAAgB,UAAA;AACd,YAAA,MAAMzB,OAAO,MAAM,IAAI,CAACJ,cAAc,CAACK,QAAQ,CAAkC;gBAC/EC,GAAAA,EAAK,CAAC,qCAAqC,CAAC;gBAC5CC,MAAAA,EAAQ;AACV,aAAA,CAAA;AACA,YAAA,IAAI,CAACL,oBAAoB,CAACM,YAAY,CAACJ,KAAKK,MAAM,CAAA;YAClD,OAAOL,IAAAA;AACT,QAAA,CAAA;AAEA0B,QAAAA,IAAAA,CAAAA,cAAAA,GAAiB,OAAOC,UAAAA,GAAAA;AACtB,YAAA,MAAM3B,OAAO,MAAM,IAAI,CAACJ,cAAc,CAACK,QAAQ,CAAkC;gBAC/EC,GAAAA,EAAK,CAAC,qCAAqC,EAAEyB,UAAAA,CAAAA,CAAY;gBACzDxB,MAAAA,EAAQ;AACV,aAAA,CAAA;AACA,YAAA,IAAI,CAACL,oBAAoB,CAACM,YAAY,CAACJ,KAAKK,MAAM,CAAA;YAClD,OAAOL,IAAAA;AACT,QAAA,CAAA;AAEA4B,QAAAA,IAAAA,CAAAA,kBAAAA,GAAqB,OACnBZ,IAAAA,GAAAA;AAEA,YAAA,MAAMhB,OAAO,MAAM,IAAI,CAACH,iBAAiB,CAACI,QAAQ,CAAsC;gBACtFC,GAAAA,EAAK,iDAAA;gBACLC,MAAAA,EAAQ,MAAA;gBACRoB,IAAAA,EAAMP;AACR,aAAA,CAAA;AACA,YAAA,IAAI,CAAClB,oBAAoB,CAACM,YAAY,CAACJ,KAAKK,MAAM,CAAA;YAClD,OAAOL,IAAAA;AACT,QAAA,CAAA;AAEA6B,QAAAA,IAAAA,CAAAA,gBAAAA,GAAmB,OAAOb,IAAAA,GAAAA;AACxB,YAAA,MAAMhB,OAAO,MAAM,IAAI,CAACH,iBAAiB,CAACI,QAAQ,CAAoC;gBACpFC,GAAAA,EAAK,+CAAA;gBACLC,MAAAA,EAAQ,MAAA;gBACRoB,IAAAA,EAAMP;AACR,aAAA,CAAA;AACA,YAAA,IAAI,CAAClB,oBAAoB,CAACM,YAAY,CAACJ,KAAKK,MAAM,CAAA;YAClD,OAAOL,IAAAA;AACT,QAAA,CAAA;aAEA8B,gBAAAA,GAAmB,UAAA;AACjB,YAAA,OAAO,IAAI,CAAClC,cAAc,CAACK,QAAQ,CAAoC;gBACrEC,GAAAA,EAAK,2CAAA;gBACLC,MAAAA,EAAQ;AACV,aAAA,CAAA;AACF,QAAA,CAAA;AAEA4B,QAAAA,IAAAA,CAAAA,kBAAAA,GAAqB,OACnBf,IAAAA,GAAAA;AAEA,YAAA,OAAO,IAAI,CAACpB,cAAc,CAACK,QAAQ,CAAsC;AACvEC,gBAAAA,GAAAA,EAAK,CAAC,0CAA0C,EAAEc,KAAKgB,gBAAgB,CAAC,OAAO,CAAC;gBAChF7B,MAAAA,EAAQ;AACV,aAAA,CAAA;AACF,QAAA,CAAA;AAzGG,IAAA;IAEHJ,GAAAA;IASAO,OAAAA;IAIAE,OAAAA;IAKAG,QAAAA;IAIAI,MAAAA;IAkBAS,oBAAAA;IASAC,aAAAA;IASAC,cAAAA;IASAE,kBAAAA;IAYAC,gBAAAA;IAUAC,gBAAAA;IAOAC,kBAAAA;AAQF;;AC/FO,MAAME,oBAAAA,CAAAA;;;;;;;IAGXC,YAAAA;AAEAvC,IAAAA,WAAAA,CACE,cAAwC,EACxC,oBAA8E,EAC9E,YAAoC,EAC1BwC,cAA6B,EAC7BC,OAAe,EACfC,gBAA2C,CACrD;aANUzC,cAAAA,GAAAA,cAAAA;aACAE,oBAAAA,GAAAA,oBAAAA;aACAwC,YAAAA,GAAAA,YAAAA;aACAH,cAAAA,GAAAA,cAAAA;aACAC,OAAAA,GAAAA,OAAAA;aACAC,gBAAAA,GAAAA,gBAAAA;aAgGZE,IAAAA,GAAO;AACLC,YAAAA,gBAAAA,EAAkB,OAAOxB,IAAAA,GAAAA;AACvB,gBAAA,OAAO,MAAM,IAAI,CAACpB,cAAc,CAACK,QAAQ,CAAqC;oBAC5EC,GAAAA,EAAK,eAAA;oBACLC,MAAAA,EAAQ,MAAA;oBACRoB,IAAAA,EAAMP;AACR,iBAAA,CAAA;AACF,YAAA,CAAA;AACAyB,YAAAA,gBAAAA,EAAkB,OAAOzB,IAAAA,GAAAA;AACvB,gBAAA,OAAO,MAAM,IAAI,CAACpB,cAAc,CAACK,QAAQ,CAAqC;AAC5EC,oBAAAA,GAAAA,EAAK,CAAC,cAAc,EAAEc,IAAAA,CAAK0B,aAAa,CAAA,CAAE;oBAC1CvC,MAAAA,EAAQ,KAAA;oBACRoB,IAAAA,EAAMP;AACR,iBAAA,CAAA;AACF,YAAA,CAAA;AACA2B,YAAAA,qBAAAA,EAAuB,OACrB3B,IAAAA,GAAAA;AAEA,gBAAA,OAAO,MAAM,IAAI,CAACpB,cAAc,CAACK,QAAQ,CAAqC;AAC5EC,oBAAAA,GAAAA,EAAK,CAAC,cAAc,EAAEc,KAAK0B,aAAa,CAAC,IAAI,CAAC;oBAC9CvC,MAAAA,EAAQ,KAAA;oBACRoB,IAAAA,EAAMP;AACR,iBAAA,CAAA;AACF,YAAA,CAAA;AACA4B,YAAAA,6BAAAA,EAA+B,OAC7B5B,IAAAA,GAAAA;AAEA,gBAAA,OAAO,MAAM,IAAI,CAACpB,cAAc,CAACK,QAAQ,CAAkD;oBACzFC,GAAAA,EAAK,CAAC,cAAc,EAAEc,IAAAA,CAAK0B,aAAa,CAAC,2BAA2B,EAAE1B,IAAAA,CAAK6B,cAAc,CAAA,CAAE;oBAC3F1C,MAAAA,EAAQ;AACV,iBAAA,CAAA;AACF,YAAA,CAAA;AACA2C,YAAAA,0BAAAA,EAA4B,OAC1B9B,IAAAA,GAAAA;AAEA,gBAAA,OAAO,MAAM,IAAI,CAACpB,cAAc,CAACK,QAAQ,CAA+C;oBACtFC,GAAAA,EAAK,CAAC,cAAc,EAAEc,IAAAA,CAAK0B,aAAa,CAAC,wBAAwB,EAAE1B,IAAAA,CAAK+B,cAAc,CAAA,CAAE;oBACxF5C,MAAAA,EAAQ;AACV,iBAAA,CAAA;AACF,YAAA;AACF,SAAA;aAEA6C,IAAAA,GAAO;AACLR,YAAAA,gBAAAA,EAAkB,OAAOxB,IAAAA,GAAAA;AACvB,gBAAA,OAAO,MAAM,IAAI,CAACpB,cAAc,CAACK,QAAQ,CAAqC;oBAC5EC,GAAAA,EAAK,eAAA;oBACLC,MAAAA,EAAQ,MAAA;oBACRoB,IAAAA,EAAMP;AACR,iBAAA,CAAA;AACF,YAAA,CAAA;AACAyB,YAAAA,gBAAAA,EAAkB,OAAOzB,IAAAA,GAAAA;AACvB,gBAAA,OAAO,MAAM,IAAI,CAACpB,cAAc,CAACK,QAAQ,CAAqC;AAC5EC,oBAAAA,GAAAA,EAAK,CAAC,cAAc,EAAEc,IAAAA,CAAK0B,aAAa,CAAA,CAAE;oBAC1CvC,MAAAA,EAAQ,KAAA;oBACRoB,IAAAA,EAAMP;AACR,iBAAA,CAAA;AACF,YAAA;AACF,SAAA;aAEAiC,QAAAA,GAAW;AACTT,YAAAA,gBAAAA,EAAkB,OAChBxB,IAAAA,GAAAA;AAEA,gBAAA,OAAO,MAAM,IAAI,CAACpB,cAAc,CAACK,QAAQ,CAAyC;oBAChFC,GAAAA,EAAK,mBAAA;oBACLC,MAAAA,EAAQ,MAAA;oBACRoB,IAAAA,EAAMP;AACR,iBAAA,CAAA;AACF,YAAA,CAAA;AACAyB,YAAAA,gBAAAA,EAAkB,OAChBzB,IAAAA,GAAAA;AAEA,gBAAA,OAAO,MAAM,IAAI,CAACpB,cAAc,CAACK,QAAQ,CAAyC;AAChFC,oBAAAA,GAAAA,EAAK,CAAC,kBAAkB,EAAEc,IAAAA,CAAK0B,aAAa,CAAA,CAAE;oBAC9CvC,MAAAA,EAAQ,KAAA;oBACRoB,IAAAA,EAAMP;AACR,iBAAA,CAAA;AACF,YAAA;AACF,SAAA;QA5KE,IAAI,CAACkB,YAAY,GAAG,IAAI,CAACpC,oBAAoB,CAACoD,iBAAiB,CAAC,OAAOC,OAAAA,GAAAA;AACrElC,YAAAA,wBAAAA,CAAc,2BAA2BkC,OAAAA,EAAS;gBAChDC,SAAAA,EAAW,QAAA;gBACXC,wBAAAA,EAA0B,QAAA;gBAC1BC,MAAAA,EAAQ;AACV,aAAA,CAAA;AAEA,YAAA,MAAMC,UAAU,MAAM,IAAI,CAACjB,YAAY,CAACkB,SAAS,EAAA;AAEjD,YAAA,IAAI,CAACD,OAAAA,EAAS;gBACZE,iBAAAA,CAAOC,IAAI,CACT,yDAAA,GACE,uFAAA,GACA,qEAAA,CAAA;AAEN,YAAA;YAEA,MAAM,EAAEC,gBAAgB,EAAEC,aAAa,EAAE,GAAG,MAAM,IAAI,CAACvB,gBAAgB,CAACwB,2BAA2B,EAAA;AAEnG,YAAA,MAAM7D,OAAO,MAAM,IAAI,CAACJ,cAAc,CAACkE,iBAAiB,CAAiD;gBACvG5D,GAAAA,EAAK,uBAAA;gBACLC,MAAAA,EAAQ,MAAA;gBACRoB,IAAAA,EAAM;AACJwC,oBAAAA,kBAAAA,EAAoBR,OAAAA,EAASS,aAAAA;AAC7B,oBAAA,GAAGb,OAAO;AACVQ,oBAAAA,gBAAAA;AACAC,oBAAAA,aAAAA;AACAK,oBAAAA,0BAAAA,EAA4B,IAAI,CAACnE,oBAAoB,CAACoE,2BAA2B,EAAA,IAAMC;AACzF,iBAAA;AACAC,gBAAAA,aAAAA,EAAe,IAAI,CAAC/B,gBAAgB,CAACgC;AACvC,aAAA,CAAA;YAEA,IAAI,CAAC/B,YAAY,CAACgC,WAAW,EAAA;YAE7B,OAAOtE,IAAAA;AACT,QAAA,CAAA,CAAA;AACF,IAAA;AAEA,IAAA,MAAgBuE,aAAAA,GAAgB;;;AAG9B,QAAA,IAAIC,6BAAkB,IAAI,CAACpC,OAAO,CAACqC,WAAW,CAAA,EAAG;AAC/C,YAAA,OAAO,IAAI,CAACrC,OAAO,CAACsC,UAAU;AAChC,QAAA;AACA,QAAA,OAAO,IAAI,CAACtC,OAAO,CAACuC,UAAU;AAChC,IAAA;IAEA,MAAMC,KAAAA,CAAM,EAAElC,aAAa,EAAEmC,kBAAkB,EAAEC,mBAAmB,EAAmB,EAAiB;AACtG,QAAA,MAAM,EAAEC,kBAAkB,EAAE,GAAG,MAAM,IAAI,CAAC5C,cAAc;AACxD,QAAA,MAAM6C,OAAAA,GAAU,MAAM,IAAI,CAACT,aAAa,EAAA;AAExC,QAAA,MAAMU,WAAW,IAAIC,GAAAA,CAAI,CAAA,EAAGF,OAAAA,CAAQ,oBAAoB,CAAC,CAAA;QACzDC,QAAAA,CAASE,YAAY,CAACC,GAAG,CAAC,gBAAgB,IAAI,CAAChD,OAAO,CAACqC,WAAW,CAAA;AAClEQ,QAAAA,QAAAA,CAASE,YAAY,CAACC,GAAG,CAAC,eAAA,EAAiB1C,aAAAA,CAAAA;AAE3C,QAAA,IAAIqC,kBAAAA,EAAoB;AACtB,YAAA,MAAMxB,UAAU,MAAM,IAAI,CAACjB,YAAY,CAAC+C,oBAAoB,EAAA;AAC5DJ,YAAAA,QAAAA,CAASE,YAAY,CAACC,GAAG,CAAC,qBAAA,EAAuB7B,QAAQ+B,cAAc,CAAA;QACzE,CAAA,MAAO;YACL,IAAI,CAAChD,YAAY,CAACgC,WAAW,EAAA;AAC/B,QAAA;AAEA,QAAA,IAAIO,oBAAoBI,QAAAA,CAASE,YAAY,CAACC,GAAG,CAAC,oBAAA,EAAsBP,kBAAAA,CAAAA;AACxE,QAAA,IAAIC,qBAAqBG,QAAAA,CAASE,YAAY,CAACC,GAAG,CAAC,qBAAA,EAAuBN,mBAAAA,CAAAA;QAE1E,IAAI,CAACS,QAAQ,CAACN,QAAAA,CAAAA;AAChB,IAAA;;AAGAM,IAAAA,QAAAA,CAASrF,GAAQ,EAAE;AACjBsF,QAAAA,MAAAA,CAAOC,QAAQ,CAACC,IAAI,GAAGxF,IAAIyF,QAAQ,EAAA;AACrC,IAAA;AAEA,IAAA,MAAMC,cAAAA,GAAwD;AAC5D,QAAA,OAAO,MAAM,IAAI,CAAChG,cAAc,CAACK,QAAQ,CAA+B;YACtEC,GAAAA,EAAK,UAAA;YACLC,MAAAA,EAAQ;AACV,SAAA,CAAA;AACF,IAAA;IAEA,MAAM0F,mBAAAA,CAAoBC,YAAoB,EAA8C;AAC1F,QAAA,OAAO,MAAM,IAAI,CAAClG,cAAc,CAACK,QAAQ,CAAoC;AAC3EC,YAAAA,GAAAA,EAAK,CAAC,6CAA6C,EAAE6F,kBAAAA,CAAmBD,YAAAA,CAAAA,CAAAA,CAAe;YACvF3F,MAAAA,EAAQ;AACV,SAAA,CAAA;AACF,IAAA;IAEA,MAAM6F,gBAAAA,CAAiBC,YAAoB,EAA2C;AACpF,QAAA,OAAO,IAAI,CAACrG,cAAc,CAACK,QAAQ,CAAiC;YAClEC,GAAAA,EAAK,CAAC,SAAS,EAAE+F,YAAAA,CAAAA,CAAc;YAC/B9F,MAAAA,EAAQ;AACV,SAAA,CAAA;AACF,IAAA;IAEAoC,IAAAA;IA0CAS,IAAAA;IAiBAC,QAAAA;AAoBF;;ACjNO,MAAMiD,qBAAAA,CAAAA;;;AAGXvG,IAAAA,WAAAA,CACE,cAAwC,EAC9BG,oBAAoE,CAC9E;aAFUF,cAAAA,GAAAA,cAAAA;aACAE,oBAAAA,GAAAA,oBAAAA;AACT,IAAA;IAEH,MAAM0C,gBAAAA,CAAiBxB,IAAoC,EAA4C;AACrGC,QAAAA,wBAAAA,CAAc,gCAAgCD,IAAAA,EAAM;YAClDmF,YAAAA,EAAc,gBAAA;YACdC,iBAAAA,EAAmB;AACrB,SAAA,CAAA;AAEA,QAAA,OAAO,MAAM,IAAI,CAACxG,cAAc,CAACK,QAAQ,CAAkC;YACzEC,GAAAA,EAAK,WAAA;YACLC,MAAAA,EAAQ,MAAA;YACRoB,IAAAA,EAAMP;AACR,SAAA,CAAA;AACF,IAAA;IAEA,MAAMyB,gBAAAA,CAAiBzB,IAAoC,EAA4C;AACrGC,QAAAA,wBAAAA,CAAc,gCAAgCD,IAAAA,EAAM;YAClD0B,aAAAA,EAAe,QAAA;YACfyD,YAAAA,EAAc,gBAAA;YACdC,iBAAAA,EAAmB;AACrB,SAAA,CAAA;AAEA,QAAA,OAAO,MAAM,IAAI,CAACxG,cAAc,CAACK,QAAQ,CAAkC;AACzEC,YAAAA,GAAAA,EAAK,CAAC,UAAU,EAAEc,IAAAA,CAAK0B,aAAa,CAAA,CAAE;YACtCvC,MAAAA,EAAQ,KAAA;YACRoB,IAAAA,EAAMP;AACR,SAAA,CAAA;AACF,IAAA;IAEA,MAAMgF,gBAAAA,CAAiBC,YAAoB,EAA4C;AACrFhF,QAAAA,wBAAAA,CACE,8BAAA,EACA;YAAEyB,aAAAA,EAAeuD;SAAa,EAC9B;YACEvD,aAAAA,EAAe;AACjB,SAAA,CAAA;AAGF,QAAA,OAAO,MAAM,IAAI,CAAC9C,cAAc,CAACK,QAAQ,CAAkC;YACzEC,GAAAA,EAAK,CAAC,UAAU,EAAE+F,YAAAA,CAAAA,CAAc;YAChC9F,MAAAA,EAAQ;AACV,SAAA,CAAA;AACF,IAAA;AAEA,IAAA,MAAMkG,aAAAA,GAAuD;AAC3D,QAAA,OAAO,MAAM,IAAI,CAACzG,cAAc,CAACK,QAAQ,CAA+B;YACtEC,GAAAA,EAAK,WAAA;YACLC,MAAAA,EAAQ;AACV,SAAA,CAAA;AACF,IAAA;IAEA,MAAMmG,mBAAAA,CAAoBtF,IAAuC,EAA+C;AAC9GC,QAAAA,wBAAAA,CAAc,mCAAmCD,IAAAA,EAAM;YACrDuF,KAAAA,EAAO,gBAAA;YACPC,MAAAA,EAAQ;AACV,SAAA,CAAA;AAEA,QAAA,OAAO,MAAM,IAAI,CAAC5G,cAAc,CAACK,QAAQ,CAAqC;YAC5EC,GAAAA,EAAK,kBAAA;YACLC,MAAAA,EAAQ,MAAA;YACRoB,IAAAA,EAAMP;AACR,SAAA,CAAA;AACF,IAAA;IAEA,MAAMyF,WAAAA,CAAYR,YAAoB,EAAuC;AAC3EhF,QAAAA,wBAAAA,CACE,yBAAA,EACA;AAAEgF,YAAAA;SAAa,EACf;YACEA,YAAAA,EAAc;AAChB,SAAA,CAAA;AAEF,QAAA,OAAO,MAAM,IAAI,CAACrG,cAAc,CAACK,QAAQ,CAA6B;YACpEC,GAAAA,EAAK,CAAC,sBAAsB,CAAC;YAC7BC,MAAAA,EAAQ,MAAA;YACRoB,IAAAA,EAAM;gBAAEmB,aAAAA,EAAeuD;AAAa;AACtC,SAAA,CAAA;AACF,IAAA;IAEA,MAAMS,cAAAA,CAAeT,YAAoB,EAA0C;AACjFhF,QAAAA,wBAAAA,CACE,4BAAA,EACA;AAAEgF,YAAAA;SAAa,EACf;YACEA,YAAAA,EAAc;AAChB,SAAA,CAAA;AAGF,QAAA,OAAO,MAAM,IAAI,CAACrG,cAAc,CAACK,QAAQ,CAAgC;YACvEC,GAAAA,EAAK,CAAC,yBAAyB,CAAC;YAChCC,MAAAA,EAAQ,MAAA;YACRoB,IAAAA,EAAM;gBAAEmB,aAAAA,EAAeuD;AAAa;AACtC,SAAA,CAAA;AACF,IAAA;IAEA,MAAMU,YAAAA,CAAaV,YAAoB,EAAwC;AAC7EhF,QAAAA,wBAAAA,CACE,0BAAA,EACA;AAAEgF,YAAAA;SAAa,EACf;YACEA,YAAAA,EAAc;AAChB,SAAA,CAAA;AAGF,QAAA,OAAO,MAAM,IAAI,CAACrG,cAAc,CAACK,QAAQ,CAA8B;YACrEC,GAAAA,EAAK,CAAC,uBAAuB,CAAC;YAC9BC,MAAAA,EAAQ,MAAA;YACRoB,IAAAA,EAAM;gBAAEmB,aAAAA,EAAeuD;AAAa;AACtC,SAAA,CAAA;AACF,IAAA;AACF;;AC/FO,MAAMW,6BAAAA,CAAAA;;;;IAGXjH,WAAAA,CACUC,cAA8B,EAC9BC,iBAAiC,EACjCC,oBAAoE,CAC5E;aAHQF,cAAAA,GAAAA,cAAAA;aACAC,iBAAAA,GAAAA,iBAAAA;aACAC,oBAAAA,GAAAA,oBAAAA;aAGVC,GAAAA,GAAM,UAAA;AACJ,YAAA,MAAMC,OAAO,MAAM,IAAI,CAACJ,cAAc,CAACK,QAAQ,CAAkD;gBAC/FC,GAAAA,EAAK,CAAC,qBAAqB,CAAC;gBAC5BC,MAAAA,EAAQ;AACV,aAAA,CAAA;AACA,YAAA,IAAI,CAACL,oBAAoB,CAAC+G,kBAAkB,CAAC7G,KAAK8G,YAAY,CAAA;AAC9D,YAAA,OAAO9G,KAAK8G,YAAY;AAC1B,QAAA,CAAA;aAEAxG,OAAAA,GAAU,IAAA;AACR,YAAA,OAAO,IAAI,CAACR,oBAAoB,CAACiH,eAAe,EAAA;AAClD,QAAA,CAAA;AAEAvG,QAAAA,IAAAA,CAAAA,OAAAA,GAAU,KAAyB;gBACjCsG,YAAAA,EAAc,IAAI,CAACxG,OAAO,EAAA;AAC1BG,gBAAAA,SAAAA,EAAW,IAAI,CAACX,oBAAoB,CAACY,YAAY;aACnD,CAAA;AAEAC,QAAAA,IAAAA,CAAAA,QAAAA,GAAW,CAACC,QAAAA,GAAAA;YACV,OAAO,IAAI,CAACd,oBAAoB,CAACe,gBAAgB,CAAC,CAACC,KAAAA,GAAUF,QAAAA,CAASE,KAAAA,EAAOgG,YAAAA,IAAgB,IAAA,CAAA,CAAA;AAC/F,QAAA,CAAA;AAEA/F,QAAAA,IAAAA,CAAAA,MAAAA,GAAS,OAAOC,IAAAA,GAAAA;AACd,YAAA,MAAMhB,OAAO,MAAM,IAAI,CAACJ,cAAc,CAACK,QAAQ,CAAiC;gBAC9EC,GAAAA,EAAK,CAAC,qBAAqB,CAAC;gBAC5BC,MAAAA,EAAQ,KAAA;gBACRoB,IAAAA,EAAMP;AACR,aAAA,CAAA;AAEA,YAAA,IAAI,CAAClB,oBAAoB,CAAC+G,kBAAkB,CAAC7G,KAAK8G,YAAY,CAAA;YAC9D,OAAO9G,IAAAA;AACT,QAAA,CAAA;aAEAgH,MAAAA,GAAS,UAAA;AACP,YAAA,MAAMhH,OAAO,MAAM,IAAI,CAACJ,cAAc,CAACK,QAAQ,CAAiC;gBAC9EC,GAAAA,EAAK,CAAC,qBAAqB,CAAC;gBAC5BC,MAAAA,EAAQ;AACV,aAAA,CAAA;YAEA,IAAI,CAACL,oBAAoB,CAACmH,YAAY,EAAA;YAEtC,OAAOjH,IAAAA;AACT,QAAA,CAAA;AAEAkH,QAAAA,IAAAA,CAAAA,SAAAA,GAAY,OAAOlG,IAAAA,GAAAA;AACjBC,YAAAA,wBAAAA,CAAc,iCAAiCD,IAAAA,EAAM;gBACnDmG,iBAAAA,EAAmB;AACrB,aAAA,CAAA;AAEA,YAAA,OAAO,IAAI,CAACvH,cAAc,CAACK,QAAQ,CAAoC;gBACrEC,GAAAA,EAAK,CAAC,yBAAyB,CAAC;gBAChCC,MAAAA,EAAQ,MAAA;gBACRoB,IAAAA,EAAMP;AACR,aAAA,CAAA;AACF,QAAA,CAAA;aAEAc,gBAAAA,GAAmB,UAAA;AACjB,YAAA,OAAO,IAAI,CAAClC,cAAc,CAACK,QAAQ,CAA2C;gBAC5EC,GAAAA,EAAK,mCAAA;gBACLC,MAAAA,EAAQ;AACV,aAAA,CAAA;AACF,QAAA,CAAA;AAEAiH,QAAAA,IAAAA,CAAAA,eAAAA,GAAkB,OAChBpG,IAAAA,GAAAA;AAEA,YAAA,OAAO,IAAI,CAACpB,cAAc,CAACK,QAAQ,CAA0C;AAC3EC,gBAAAA,GAAAA,EAAK,CAAC,kCAAkC,EAAEc,IAAAA,CAAKgB,gBAAgB,CAAA,CAAE;gBACjE7B,MAAAA,EAAQ;AACV,aAAA,CAAA;AACF,QAAA,CAAA;aAEAkH,OAAAA,GAAU;AACRC,YAAAA,MAAAA,EAAQ,OAAOtG,IAAAA,GAAAA;AACb,gBAAA,OAAO,IAAI,CAACpB,cAAc,CAACK,QAAQ,CAAwC;oBACzEC,GAAAA,EAAK,CAAC,0BAA0B,CAAC;oBACjCC,MAAAA,EAAQ,MAAA;oBACRoB,IAAAA,EAAMP;AACR,iBAAA,CAAA;AACF,YAAA,CAAA;AACAuG,YAAAA,MAAAA,EAAQ,OAAOvG,IAAAA,GAAAA;AACb,gBAAA,OAAO,IAAI,CAACpB,cAAc,CAACK,QAAQ,CAAwC;oBACzEC,GAAAA,EAAK,CAAC,oCAAoC,CAAC;oBAC3CC,MAAAA,EAAQ,MAAA;oBACRoB,IAAAA,EAAMP;AACR,iBAAA,CAAA;AACF,YAAA,CAAA;AACAD,YAAAA,MAAAA,EAAQ,OAAOC,IAAAA,GAAAA;AACb,gBAAA,MAAMwG,WAAW,MAAM,IAAI,CAAC5H,cAAc,CAACK,QAAQ,CAAwC;AACzFC,oBAAAA,GAAAA,EAAK,CAAC,2BAA2B,EAAEc,IAAAA,CAAKyG,SAAS,CAAA,CAAE;oBACnDtH,MAAAA,EAAQ,KAAA;oBACRoB,IAAAA,EAAMP;AACR,iBAAA,CAAA;gBAEA,IAAI,CAAC0G,kBAAkB,CAACF,QAAAA,CAAAA;gBACxB,OAAOA,QAAAA;AACT,YAAA,CAAA;AACA9F,YAAAA,cAAAA,EAAgB,OAAOC,UAAAA,GAAAA;AACrB,gBAAA,MAAM6F,WAAW,MAAM,IAAI,CAAC5H,cAAc,CAACK,QAAQ,CAA+C;oBAChGC,GAAAA,EAAK,CAAC,qCAAqC,EAAEyB,UAAAA,CAAAA,CAAY;oBACzDxB,MAAAA,EAAQ;AACV,iBAAA,CAAA;gBAEA,IAAI,CAACuH,kBAAkB,CAACF,QAAAA,CAAAA;gBACxB,OAAOA,QAAAA;AACT,YAAA,CAAA;AACAhG,YAAAA,oBAAAA,EAAsB,OAAOmG,QAAAA,GAAAA;AAC3B,gBAAA,MAAMH,WAAW,MAAM,IAAI,CAAC5H,cAAc,CAACK,QAAQ,CAAqD;oBACtGC,GAAAA,EAAK,CAAC,6CAA6C,EAAEyH,QAAAA,CAAAA,CAAU;oBAC/DxH,MAAAA,EAAQ;AACV,iBAAA,CAAA;gBAEA,IAAI,CAACuH,kBAAkB,CAACF,QAAAA,CAAAA;gBACxB,OAAOA,QAAAA;AACT,YAAA,CAAA;AACA/F,YAAAA,aAAAA,EAAe,OAAOkG,QAAAA,GAAAA;AACpB,gBAAA,MAAMH,WAAW,MAAM,IAAI,CAAC5H,cAAc,CAACK,QAAQ,CAA8C;oBAC/FC,GAAAA,EAAK,CAAC,gCAAgC,EAAEyH,QAAAA,CAAAA,CAAU;oBAClDxH,MAAAA,EAAQ;AACV,iBAAA,CAAA;gBAEA,IAAI,CAACuH,kBAAkB,CAACF,QAAAA,CAAAA;gBACxB,OAAOA,QAAAA;AACT,YAAA,CAAA;AACAR,YAAAA,MAAAA,EAAQ,OAAOW,QAAAA,GAAAA;AACb,gBAAA,MAAMH,WAAW,MAAM,IAAI,CAAC5H,cAAc,CAACK,QAAQ,CAAwC;oBACzFC,GAAAA,EAAK,CAAC,2BAA2B,EAAEyH,QAAAA,CAAAA,CAAU;oBAC7CxH,MAAAA,EAAQ;AACV,iBAAA,CAAA;AAEA,gBAAA,IAAIwH,aAAa,IAAI,CAAC7H,oBAAoB,CAACS,SAAS,IAAIkH,SAAAA,EAAW;oBACjE,IAAI,CAAC3H,oBAAoB,CAACmH,YAAY,EAAA;AACxC,gBAAA;gBAEA,OAAOO,QAAAA;AACT,YAAA,CAAA;AACAI,YAAAA,UAAAA,EAAY,OAAOD,QAAAA,GAAAA;AACjB,gBAAA,OAAO,IAAI,CAAC/H,cAAc,CAACK,QAAQ,CAA4C;AAC7EC,oBAAAA,GAAAA,EAAK,CAAC,2BAA2B,EAAEyH,QAAAA,CAAS,WAAW,CAAC;oBACxDxH,MAAAA,EAAQ;AACV,iBAAA,CAAA;AACF,YAAA,CAAA;AACAyB,YAAAA,kBAAAA,EAAoB,OAClBZ,IAAAA,GAAAA;AAEA,gBAAA,MAAM,EAAEyG,SAAS,EAAE,GAAGlG,MAAM,GAAGP,IAAAA;AAC/B,gBAAA,MAAMwG,WAAW,MAAM,IAAI,CAAC3H,iBAAiB,CAACI,QAAQ,CAAmD;AACvGC,oBAAAA,GAAAA,EAAK,CAAC,2BAA2B,EAAEuH,SAAAA,CAAU,qBAAqB,CAAC;oBACnEtH,MAAAA,EAAQ,MAAA;AACRoB,oBAAAA;AACF,iBAAA,CAAA;gBAEA,IAAI,CAACmG,kBAAkB,CAACF,QAAAA,CAAAA;gBACxB,OAAOA,QAAAA;AACT,YAAA,CAAA;AACA3F,YAAAA,gBAAAA,EAAkB,OAChBb,IAAAA,GAAAA;AAEA,gBAAA,MAAM,EAAEyG,SAAS,EAAE,GAAGlG,MAAM,GAAGP,IAAAA;AAC/B,gBAAA,MAAMwG,WAAW,MAAM,IAAI,CAAC3H,iBAAiB,CAACI,QAAQ,CAAiD;AACrGC,oBAAAA,GAAAA,EAAK,CAAC,2BAA2B,EAAEuH,SAAAA,CAAU,mBAAmB,CAAC;oBACjEtH,MAAAA,EAAQ,MAAA;AACRoB,oBAAAA;AACF,iBAAA,CAAA;gBAEA,IAAI,CAACmG,kBAAkB,CAACF,QAAAA,CAAAA;gBACxB,OAAOA,QAAAA;AACT,YAAA,CAAA;AACA1F,YAAAA,gBAAAA,EAAkB,OAChBd,IAAAA,GAAAA;AAEA,gBAAA,OAAO,IAAI,CAACpB,cAAc,CAACK,QAAQ,CAAiD;AAClFC,oBAAAA,GAAAA,EAAK,CAAC,0BAA0B,EAAEc,KAAKyG,SAAS,CAAC,eAAe,CAAC;oBACjEtH,MAAAA,EAAQ;AACV,iBAAA,CAAA;AACF,YAAA,CAAA;AACA4B,YAAAA,kBAAAA,EAAoB,OAClBf,IAAAA,GAAAA;AAEA,gBAAA,OAAO,IAAI,CAACpB,cAAc,CAACK,QAAQ,CAAmD;AACpFC,oBAAAA,GAAAA,EAAK,CAAC,2BAA2B,EAAEc,IAAAA,CAAKyG,SAAS,CAAC,gBAAgB,EAAEzG,IAAAA,CAAKgB,gBAAgB,CAAC,OAAO,CAAC;oBAClG7B,MAAAA,EAAQ;AACV,iBAAA,CAAA;AACF,YAAA;AACF,SAAA;AAEQuH,QAAAA,IAAAA,CAAAA,kBAAAA,GAAqB,CAACF,QAAAA,GAAAA;YAC5B,IAAIA,QAAAA,CAASC,SAAS,KAAK,IAAI,CAAC3H,oBAAoB,CAACS,SAAS,EAAA,EAAIkH,SAAAA,EAAW;AAC3E,gBAAA,IAAI,CAAC3H,oBAAoB,CAACM,YAAY,CAACoH,SAASnH,MAAM,CAAA;AACxD,YAAA;AACF,QAAA,CAAA;AAhMG,IAAA;IAEHN,GAAAA;IASAO,OAAAA;IAIAE,OAAAA;IAKAG,QAAAA;IAIAI,MAAAA;IAWAiG,MAAAA;IAWAE,SAAAA;IAYApF,gBAAAA;IAOAsF,eAAAA;IASAC,OAAAA;IAkHQK,kBAAAA;AAKV;;+BCtNO,MAAMG,sBAAAA,CAAAA;;;;;;;IAGX3F,YAAAA;IAEA4F,SAAAA;IAMAC,MAAAA;IAOAC,SAAAA;IAOAC,OAAAA;IAOAC,KAAAA;IAOAC,MAAAA;AAOAxI,IAAAA,WAAAA,CACE,cAAwC,EACxC,oBAA8E,EAC9E,YAAoC,EAC1BwC,cAA6B,EAC7BC,OAAe,EACfC,gBAA2C,CACrD;aANUzC,cAAAA,GAAAA,cAAAA;aACAE,oBAAAA,GAAAA,oBAAAA;aACAwC,YAAAA,GAAAA,YAAAA;aACAH,cAAAA,GAAAA,cAAAA;aACAC,OAAAA,GAAAA,OAAAA;aACAC,gBAAAA,GAAAA,gBAAAA;QAEV,IAAI,CAACH,YAAY,GAAG,IAAI,CAACpC,oBAAoB,CAACoD,iBAAiB,CAAC,OAAOC,OAAAA,GAAAA;AACrElC,YAAAA,wBAAAA,CAAc,6BAA6BkC,OAAAA,EAAS;gBAClDiF,WAAAA,EAAa,QAAA;gBACb/E,wBAAAA,EAA0B,QAAA;gBAC1BC,MAAAA,EAAQ;AACV,aAAA,CAAA;AAEA,YAAA,MAAMC,UAAU,MAAM,IAAI,CAACjB,YAAY,CAACkB,SAAS,EAAA;AAEjD,YAAA,IAAI,CAACD,OAAAA,EAAS;gBACZE,iBAAAA,CAAOC,IAAI,CACT,2DAAA,GACE,qGAAA,GACA,qEAAA,CAAA;AAEN,YAAA;YAEA,MAAM,EAAEC,gBAAgB,EAAEC,aAAa,EAAE,GAAG,MAAM,IAAI,CAACvB,gBAAgB,CAACwB,2BAA2B,EAAA;AACnG,YAAA,MAAM7D,OAAO,MAAM,IAAI,CAACJ,cAAc,CAACkE,iBAAiB,CAAsD;gBAC5G5D,GAAAA,EAAK,yBAAA;gBACLC,MAAAA,EAAQ,MAAA;gBACRoB,IAAAA,EAAM;AACJwC,oBAAAA,kBAAAA,EAAoBR,OAAAA,EAASS,aAAAA;AAC7BL,oBAAAA,gBAAAA;AACAC,oBAAAA,aAAAA;AACAK,oBAAAA,0BAAAA,EAA4B,MAAO,IAAI,CAACnE,oBAAoB,CAACoE,2BAA2B,EAAA,IAAOC,SAAAA;AAC/F,oBAAA,GAAGhB;AACL,iBAAA;AACAiB,gBAAAA,aAAAA,EAAe,IAAI,CAAC/B,gBAAgB,CAACgC;AACvC,aAAA,CAAA;YAEA,IAAI,CAAC/B,YAAY,CAACgC,WAAW,EAAA;YAE7B,OAAOtE,IAAAA;AACT,QAAA,CAAA,CAAA;QAEA,IAAI,CAAC8H,SAAS,GAAG;AACf5F,YAAAA,YAAAA,EAAc,IAAI,CAACpC,oBAAoB,CAACoD,iBAAiB,CACvD,OACElC,IAAAA,GAAAA;AAEAC,gBAAAA,wBAAAA,CAAc,uCAAuCD,IAAAA,EAAM;oBACzDqH,qBAAAA,EAAuB;AACzB,iBAAA,CAAA;AAEA,gBAAA,MAAMC,SAAS,MAAM,IAAI,CAAChG,YAAY,CAACkB,SAAS,EAAA;gBAEhD,MAAM,EAAEG,gBAAgB,EAAEC,aAAa,EAAE,GAAG,MAAM,IAAI,CAACvB,gBAAgB,CAACwB,2BAA2B,EAAA;AAEnG,gBAAA,MAAM0E,WAAAA,GAAc;AAClBxE,oBAAAA,kBAAAA,EAAoBuE,MAAAA,EAAQtE,aAAAA;AAC5BL,oBAAAA,gBAAAA;AACAC,oBAAAA,aAAAA;AACA,oBAAA,GAAG5C;AACL,iBAAA;AACA,gBAAA,MAAMhB,OAAO,MAAM,IAAI,CAACJ,cAAc,CAACkE,iBAAiB,CAEtD;oBACA5D,GAAAA,EAAK,mCAAA;oBACLqB,IAAAA,EAAMgH,WAAAA;oBACNpI,MAAAA,EAAQ,MAAA;AACRiE,oBAAAA,aAAAA,EAAe,IAAI,CAAC/B,gBAAgB,CAACgC;AACvC,iBAAA,CAAA;gBAEA,IAAI,CAAC/B,YAAY,CAACgC,WAAW,EAAA;gBAE7B,OAAOtE,IAAAA;AACT,YAAA,CAAA;AAEJ,SAAA;QAEA,IAAI,CAAC+H,MAAM,GAAG;AACZnD,YAAAA,KAAAA,EAAO,IAAI,CAAC4D,cAAc,CAACC,6BAAkBC,MAAM,CAAA;YACnDZ,SAAAA,EAAW;AACTlD,gBAAAA,KAAAA,EAAO,IAAI,CAAC+D,uBAAuB,CAACF,6BAAkBC,MAAM;AAC9D;AACF,SAAA;QAEA,IAAI,CAACV,SAAS,GAAG;AACfpD,YAAAA,KAAAA,EAAO,IAAI,CAAC4D,cAAc,CAACC,6BAAkBG,SAAS,CAAA;YACtDd,SAAAA,EAAW;AACTlD,gBAAAA,KAAAA,EAAO,IAAI,CAAC+D,uBAAuB,CAACF,6BAAkBG,SAAS;AACjE;AACF,SAAA;QAEA,IAAI,CAACX,OAAO,GAAG;AACbrD,YAAAA,KAAAA,EAAO,IAAI,CAAC4D,cAAc,CAACC,6BAAkBI,OAAO,CAAA;YACpDf,SAAAA,EAAW;AACTlD,gBAAAA,KAAAA,EAAO,IAAI,CAAC+D,uBAAuB,CAACF,6BAAkBI,OAAO;AAC/D;AACF,SAAA;QAEA,IAAI,CAACX,KAAK,GAAG;AACXtD,YAAAA,KAAAA,EAAO,IAAI,CAAC4D,cAAc,CAACC,6BAAkBK,KAAK,CAAA;YAClDhB,SAAAA,EAAW;AACTlD,gBAAAA,KAAAA,EAAO,IAAI,CAAC+D,uBAAuB,CAACF,6BAAkBK,KAAK;AAC7D;AACF,SAAA;QAEA,IAAI,CAACX,MAAM,GAAG;AACZvD,YAAAA,KAAAA,EAAO,IAAI,CAAC4D,cAAc,CAACC,6BAAkBM,MAAM,CAAA;YACnDjB,SAAAA,EAAW;AACTlD,gBAAAA,KAAAA,EAAO,IAAI,CAAC+D,uBAAuB,CAACF,6BAAkBM,MAAM;AAC9D;AACF,SAAA;AACF,IAAA;AAEA,IAAA,MAAgBxE,aAAAA,GAAgB;AAC9B,QAAA,MAAM,EAAEyE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC7G,cAAc;AACjD,QAAA,IAAI6G,WAAAA,EAAa;;YAEf,OAAO,CAAC,QAAQ,EAAEA,WAAAA,CAAAA,CAAa;AACjC,QAAA;;;AAGA,QAAA,IAAIxE,6BAAkB,IAAI,CAACpC,OAAO,CAACqC,WAAW,CAAA,EAAG;AAC/C,YAAA,OAAO,IAAI,CAACrC,OAAO,CAACsC,UAAU;AAChC,QAAA;AACA,QAAA,OAAO,IAAI,CAACtC,OAAO,CAACuC,UAAU;AAChC,IAAA;AAEU6D,IAAAA,cAAAA,CAAeS,YAA+B,EAAE;AACxD,QAAA,OAAO,OAAO9F,OAAAA,GAAAA;AACZ,YAAA,MAAM,EACJ+F,eAAe,EACf/B,iBAAiB,EACjBtC,kBAAkB,EAClBC,mBAAmB,EACnBqE,aAAa,EACbC,eAAe,EAChB,GAAGjG,OAAAA;AACJ,YAAA,MAAM,EAAEkG,oBAAoB,EAAE,GAAG,MAAM,IAAI,CAAClH,cAAc;AAC1D,YAAA,MAAM6C,OAAAA,GAAU,MAAM,IAAI,CAACT,aAAa,EAAA;YAExC,MAAMU,QAAAA,GAAW,IAAIC,GAAAA,CAAI,CAAA,EAAGF,QAAQ,qBAAqB,EAAEiE,YAAAA,CAAa,MAAM,CAAC,CAAA;YAC/EhE,QAAAA,CAASE,YAAY,CAACC,GAAG,CAAC,gBAAgB,IAAI,CAAChD,OAAO,CAACqC,WAAW,CAAA;YAClE,IAAIyE,eAAAA,IAAmBA,mBAAmB,EAAA,EAAI;AAC5CjE,gBAAAA,QAAAA,CAASE,YAAY,CAACC,GAAG,CAAC,iBAAA,EAAmB8D,eAAAA,CAAAA;AAC/C,YAAA;YAEA,IAAI/B,iBAAAA,IAAqBA,qBAAqB,EAAA,EAAI;AAChDlC,gBAAAA,QAAAA,CAASE,YAAY,CAACC,GAAG,CAAC,MAAA,EAAQ+B,iBAAAA,CAAAA;AACpC,YAAA;AAEA,YAAA,IAAIgC,aAAAA,EAAe;AACjBlI,gBAAAA,wBAAAA,CACE,gBAAA,EACA;AAAEkI,oBAAAA;iBAAc,EAChB;oBACEA,aAAAA,EAAe;AACjB,iBAAA,CAAA;AAEFlE,gBAAAA,QAAAA,CAASE,YAAY,CAACC,GAAG,CAAC,eAAA,EAAiB+D,aAAAA,CAAcG,IAAI,CAAC,GAAA,CAAA,CAAA;AAChE,YAAA;AACA,YAAA,IAAIF,eAAAA,EAAiB;AACnBnI,gBAAAA,wBAAAA,CACE,gBAAA,EACA;AAAEmI,oBAAAA;iBAAgB,EAClB;oBACEA,eAAAA,EAAiB;AACnB,iBAAA,CAAA;gBAEF,IAAK,MAAMG,OAAOH,eAAAA,CAAiB;oBACjCnE,QAAAA,CAASE,YAAY,CAACC,GAAG,CAAC,cAAcmE,GAAAA,EAAKH,eAAe,CAACG,GAAAA,CAAI,CAAA;AACnE,gBAAA;AACF,YAAA;AAEA,YAAA,IAAIF,oBAAAA,EAAsB;AACxB,gBAAA,MAAM9F,UAAU,MAAM,IAAI,CAACjB,YAAY,CAAC+C,oBAAoB,EAAA;AAC5DJ,gBAAAA,QAAAA,CAASE,YAAY,CAACC,GAAG,CAAC,qBAAA,EAAuB7B,QAAQ+B,cAAc,CAAA;YACzE,CAAA,MAAO;gBACL,IAAI,CAAChD,YAAY,CAACgC,WAAW,EAAA;AAC/B,YAAA;AAEA,YAAA,IAAIO,oBAAoBI,QAAAA,CAASE,YAAY,CAACC,GAAG,CAAC,oBAAA,EAAsBP,kBAAAA,CAAAA;AACxE,YAAA,IAAIC,qBAAqBG,QAAAA,CAASE,YAAY,CAACC,GAAG,CAAC,qBAAA,EAAuBN,mBAAAA,CAAAA;YAE1E,IAAI,CAACS,QAAQ,CAACN,QAAAA,CAAAA;AAChB,QAAA,CAAA;AACF,IAAA;AAEU0D,IAAAA,uBAAAA,CAAwBM,YAA+B,EAAE;AACjE,QAAA,OAAO,OAAO9F,OAAAA,GAAAA;AACZ,YAAA,MAAM,EAAEqG,sBAAsB,EAAEL,aAAa,EAAEC,eAAe,EAAE,GAAGjG,OAAAA;AACnE,YAAA,MAAM,EAAEkG,oBAAoB,EAAE,GAAG,MAAM,IAAI,CAAClH,cAAc;AAC1D,YAAA,MAAM6C,OAAAA,GAAU,MAAM,IAAI,CAACT,aAAa,EAAA;YAExC,MAAMU,QAAAA,GAAW,IAAIC,GAAAA,CAAI,CAAA,EAAGF,QAAQ,qBAAqB,EAAEiE,YAAAA,CAAa,gBAAgB,CAAC,CAAA;YACzFhE,QAAAA,CAASE,YAAY,CAACC,GAAG,CAAC,gBAAgB,IAAI,CAAChD,OAAO,CAACqC,WAAW,CAAA;AAClE,YAAA,IAAI0E,aAAAA,EAAe;AACjBlI,gBAAAA,wBAAAA,CACE,gBAAA,EACA;AAAEkI,oBAAAA;iBAAc,EAChB;oBACEA,aAAAA,EAAe;AACjB,iBAAA,CAAA;AAEFlE,gBAAAA,QAAAA,CAASE,YAAY,CAACC,GAAG,CAAC,eAAA,EAAiB+D,aAAAA,CAAcG,IAAI,CAAC,GAAA,CAAA,CAAA;AAChE,YAAA;AACA,YAAA,IAAIF,eAAAA,EAAiB;AACnBnI,gBAAAA,wBAAAA,CACE,gBAAA,EACA;AAAEmI,oBAAAA;iBAAgB,EAClB;oBACEA,eAAAA,EAAiB;AACnB,iBAAA,CAAA;gBAEF,IAAK,MAAMG,OAAOH,eAAAA,CAAiB;oBACjCnE,QAAAA,CAASE,YAAY,CAACC,GAAG,CAAC,cAAcmE,GAAAA,EAAKH,eAAe,CAACG,GAAAA,CAAI,CAAA;AACnE,gBAAA;AACF,YAAA;AAEA,YAAA,IAAIF,oBAAAA,EAAsB;AACxB,gBAAA,MAAM9F,UAAU,MAAM,IAAI,CAACjB,YAAY,CAAC+C,oBAAoB,EAAA;AAC5DJ,gBAAAA,QAAAA,CAASE,YAAY,CAACC,GAAG,CAAC,qBAAA,EAAuB7B,QAAQ+B,cAAc,CAAA;YACzE,CAAA,MAAO;gBACL,IAAI,CAAChD,YAAY,CAACgC,WAAW,EAAA;AAC/B,YAAA;AAEA,YAAA,IAAIkF,sBAAAA,EAAwB;AAC1BvE,gBAAAA,QAAAA,CAASE,YAAY,CAACC,GAAG,CAAC,wBAAA,EAA0BoE,sBAAAA,CAAAA;AACtD,YAAA;YAEA,IAAI,CAACjE,QAAQ,CAACN,QAAAA,CAAAA;AAChB,QAAA,CAAA;AACF,IAAA;;AAGAM,IAAAA,QAAAA,CAASrF,GAAQ,EAAE;AACjBsF,QAAAA,MAAAA,CAAOC,QAAQ,CAACC,IAAI,GAAGxF,IAAIyF,QAAQ,EAAA;AACrC,IAAA;AACF;;AChSO,MAAM8D,wBAAAA,CAAAA;;;IAGXnJ,OAAAA;IAIAE,OAAAA;IAKAG,QAAAA;IAIA+I,MAAAA;IA6BAC,eAAAA;IAWQC,aAAAA;IAuCR1H,YAAAA;IAIA2H,QAAAA;IAEAC,mBAAAA;IAIAC,MAAAA;AAEApK,IAAAA,WAAAA,CACE,cAAsC,EAC9BG,oBAAoE,CAC5E;aAFQF,cAAAA,GAAAA,cAAAA;aACAE,oBAAAA,GAAAA,oBAAAA;aA1GVQ,OAAAA,GAAU,IAAA;AACR,YAAA,OAAO,IAAI,CAACR,oBAAoB,CAACkK,UAAU,EAAA;AAC7C,QAAA,CAAA;AAEAxJ,QAAAA,IAAAA,CAAAA,OAAAA,GAAU,KAA0B;gBAClCyJ,OAAAA,EAAS,IAAI,CAAC3J,OAAO,EAAA;AACrBG,gBAAAA,SAAAA,EAAW,IAAI,CAACX,oBAAoB,CAACY,YAAY;aACnD,CAAA;AAEAC,QAAAA,IAAAA,CAAAA,QAAAA,GAAW,CAACC,QAAAA,GAAAA;YACV,OAAO,IAAI,CAACd,oBAAoB,CAACe,gBAAgB,CAAC,CAACC,KAAAA,GAAUF,QAAAA,CAASE,KAAAA,EAAOmJ,OAAAA,IAAW,IAAA,CAAA,CAAA;AAC1F,QAAA,CAAA;AAEAP,QAAAA,IAAAA,CAAAA,MAAAA,GAAS,OAAOvG,OAAAA,GAAAA;AACd;;;;;;;AAOC,QACD,IAAI;AACF,gBAAA,MAAMnD,OAAO,MAAM,IAAI,CAACJ,cAAc,CAACK,QAAQ,CAAwB;oBACrEC,GAAAA,EAAK,CAAC,oBAAoB,CAAC;oBAC3BC,MAAAA,EAAQ;AACV,iBAAA,CAAA;gBAEA,IAAI,CAACL,oBAAoB,CAACmH,YAAY,EAAA;gBAEtC,OAAOjH,IAAAA;;AAET,YAAA,CAAA,CAAE,OAAOkK,KAAAA,EAAY;AACnB,gBAAA,IAAI/G,SAASgH,UAAAA,EAAY;oBACvB,IAAI,CAACrK,oBAAoB,CAACmH,YAAY,EAAA;AACxC,gBAAA,CAAA,MAAO,IAAImD,wCAAAA,CAA0BC,QAAQ,CAACH,KAAAA,CAAMI,UAAU,CAAA,EAAG;oBAC/D,IAAI,CAACxK,oBAAoB,CAACmH,YAAY,EAAA;AACxC,gBAAA;gBACA,MAAMiD,KAAAA;AACR,YAAA;AACF,QAAA,CAAA;AAEAP,QAAAA,IAAAA,CAAAA,eAAAA,GAAkB,OAAOxG,OAAAA,GAAAA;AACvBlC,YAAAA,wBAAAA,CAAc,kCAAkCkC,OAAAA,EAAS;gBACvDsE,SAAAA,EAAW;AACb,aAAA,CAAA;AAEA,YAAA,OAAO,MAAM,IAAI,CAAC7H,cAAc,CAACK,QAAQ,CAAwB;AAC/DC,gBAAAA,GAAAA,EAAK,CAAC,qBAAqB,EAAEiD,OAAAA,CAAQsE,SAAS,CAAA,CAAE;gBAChDtH,MAAAA,EAAQ;AACV,aAAA,CAAA;AACF,QAAA,CAAA;AAEQyJ,QAAAA,IAAAA,CAAAA,aAAAA,GAAgB,OACtBzG,OAAAA,GAAAA;AAEA,YAAA,MAAMoH,cAAAA,GAAiB,IAAI,CAACzK,oBAAoB,CAACkK,UAAU,EAAA;YAC3D,MAAMQ,cAAAA,GAAiB,IACrBD,cAAAA,EAAgBE,iBAAAA,KAAsB,IAAI,CAAC3K,oBAAoB,CAACkK,UAAU,EAAA,EAAIS,iBAAAA;YAEhF,IAAI;AACF,gBAAA,MAAMlC,WAAAA,GAAc;AAClBlF,oBAAAA,wBAAAA,EAA0BF,OAAAA,EAASE;AACrC,iBAAA;AACA,gBAAA,MAAMrD,OAAO,MAAM,IAAI,CAACJ,cAAc,CAACK,QAAQ,CAAwD;oBACrGC,GAAAA,EAAK,4BAAA;oBACLqB,IAAAA,EAAMgH,WAAAA;oBACNpI,MAAAA,EAAQ;AACV,iBAAA,CAAA;AAEA,gBAAA,IAAIqK,cAAAA,EAAAA,EAAkB;;;oBAGpB,OAAO,IAAI,CAACZ,aAAa,CAACzG,OAAAA,CAAAA;AAC5B,gBAAA;gBAEA,OAAOnD,IAAAA;;AAET,YAAA,CAAA,CAAE,OAAOkK,KAAAA,EAAY;AACnB,gBAAA,IAAIM,cAAAA,EAAAA,EAAkB;;;oBAGpB,OAAO,IAAI,CAACZ,aAAa,CAACzG,OAAAA,CAAAA;AAC5B,gBAAA;AAEA,gBAAA,IAAIiH,wCAAAA,CAA0BC,QAAQ,CAACH,KAAAA,CAAMI,UAAU,CAAA,EAAG;oBACxD,IAAI,CAACxK,oBAAoB,CAAC4K,cAAc,EAAA;AAC1C,gBAAA;gBACA,MAAMR,KAAAA;AACR,YAAA;AACF,QAAA,CAAA;QAkBE,IAAI,CAAChI,YAAY,GAAG,IAAI,CAACpC,oBAAoB,CAACoD,iBAAiB,CAAC,IAAI,CAAC0G,aAAa,CAAA;QAElF,IAAI,CAACC,QAAQ,GAAG,IAAI,CAAC/J,oBAAoB,CAACoD,iBAAiB,CAAC,OAAOlC,IAAAA,GAAAA;AACjEC,YAAAA,wBAAAA,CAAc,2BAA2BD,IAAAA,EAAM;gBAC7CkI,eAAAA,EAAiB,QAAA;gBACjB7F,wBAAAA,EAA0B,QAAA;gBAC1BC,MAAAA,EAAQ;AACV,aAAA,CAAA;AAEA,YAAA,OAAO,IAAI,CAAC1D,cAAc,CAACK,QAAQ,CAAoD;gBACrFC,GAAAA,EAAK,wBAAA;gBACLqB,IAAAA,EAAMP,IAAAA;gBACNb,MAAAA,EAAQ;AACV,aAAA,CAAA;AACF,QAAA,CAAA,CAAA;QAEA,IAAI,CAAC2J,mBAAmB,GAAG,IAAI,CAAChK,oBAAoB,CAACoD,iBAAiB,CACpE,OAAOlC,IAAAA,GAAAA;AACLC,YAAAA,wBAAAA,CAAc,2BAA2BD,IAAAA,EAAM;gBAC7C2J,YAAAA,EAAc,QAAA;gBACdtH,wBAAAA,EAA0B;AAC5B,aAAA,CAAA;AACA,YAAA,OAAO,IAAI,CAACzD,cAAc,CAACK,QAAQ,CAA+D;gBAChGC,GAAAA,EAAK,qCAAA;gBACLqB,IAAAA,EAAMP,IAAAA;gBACNb,MAAAA,EAAQ;AACV,aAAA,CAAA;AACF,QAAA,CAAA,CAAA;QAGF,IAAI,CAAC4J,MAAM,GAAG,IAAI,CAACjK,oBAAoB,CAACoD,iBAAiB,CAAC,OAAOlC,IAAAA,GAAAA;AAC/DC,YAAAA,wBAAAA,CAAc,yBAAyBD,IAAAA,EAAM;gBAC3CkI,eAAAA,EAAiB,gBAAA;gBACjB0B,UAAAA,EAAY,QAAA;gBACZC,KAAAA,EAAO,QAAA;gBACPxH,wBAAAA,EAA0B;AAC5B,aAAA,CAAA;AAEA,YAAA,OAAO,IAAI,CAACzD,cAAc,CAACK,QAAQ,CAAkD;gBACnFC,GAAAA,EAAK,sBAAA;gBACLqB,IAAAA,EAAMP,IAAAA;gBACNb,MAAAA,EAAQ;AACV,aAAA,CAAA;AACF,QAAA,CAAA,CAAA;AACF,IAAA;IAEA2K,SAAAA,GAAY;AACV,QAAA,OAAO,IAAI,CAAChL,oBAAoB,CAACgL,SAAS,EAAA;AAK5C,IAAA;AAEAC,IAAAA,aAAAA,CAAcC,MAA2B,EAAQ;AAC/C/J,QAAAA,wBAAAA,CAAc,gCAAgC+J,MAAAA,EAAQ;YACpDC,aAAAA,EAAe,QAAA;YACfC,WAAAA,EAAa;AACf,SAAA,CAAA;AACA,QAAA,IAAI,CAACpL,oBAAoB,CAACqL,YAAY,CAACH,MAAAA,CAAAA;AACzC,IAAA;AACF;;ACrLO,MAAMI,0BAAAA,CAAAA;;;IAGXC,aAAAA;IAOAC,oBAAAA;AAMA3L,IAAAA,WAAAA,CACE,cAAsC,EAC9BG,oBAAoE,CAC5E;aAFQF,cAAAA,GAAAA,cAAAA;aACAE,oBAAAA,GAAAA,oBAAAA;QAER,IAAI,CAACuL,aAAa,GAAG;AACnBE,YAAAA,IAAAA,EAAM,UACJ,IAAI,CAAC3L,cAAc,CAACK,QAAQ,CAAoC;oBAC9DC,GAAAA,EAAK,8BAAA;oBACLqB,IAAAA,EAAM;AACJ0C,wBAAAA,0BAAAA,EAA4B,MAAO,IAAI,CAACnE,oBAAoB,CAACoE,2BAA2B,EAAA,IAAOC;AACjG,qBAAA;oBACAhE,MAAAA,EAAQ;AACV,iBAAA,CAAA;AACFmH,YAAAA,MAAAA,EAAQ,IAAI,CAACxH,oBAAoB,CAACoD,iBAAiB,CACjD,OACElC,IAAAA,GAAAA;AAEAC,gBAAAA,wBAAAA,CAAc,yCAAyCD,IAAAA,EAAM;oBAC3DqC,wBAAAA,EAA0B,QAAA;oBAC1BmI,iBAAAA,EAAmB,gBAAA;oBACnBrE,iBAAAA,EAAmB,gBAAA;oBACnBsE,qBAAAA,EAAuB,gBAAA;oBACvBC,oBAAAA,EAAsB,gBAAA;oBACtBC,qBAAAA,EAAuB,qBAAA;oBACvBC,aAAAA,EAAe,gBAAA;oBACfC,YAAAA,EAAc,gBAAA;oBACdC,oBAAAA,EAAsB,qBAAA;oBACtBC,UAAAA,EAAY;AACd,iBAAA,CAAA;AAEA,gBAAA,MAAMxD,WAAAA,GAAc;AAClB,oBAAA,GAAGvH,IAAI;AACPiD,oBAAAA,0BAAAA,EAA4B,MAAO,IAAI,CAACnE,oBAAoB,CAACoE,2BAA2B,EAAA,IAAOC;AACjG,iBAAA;AAEA,gBAAA,OAAO,IAAI,CAACvE,cAAc,CAACK,QAAQ,CAAiE;oBAClGC,GAAAA,EAAK,qCAAA;oBACLqB,IAAAA,EAAMgH,WAAAA;oBACNpI,MAAAA,EAAQ;AACV,iBAAA,CAAA;AACF,YAAA,CAAA;AAEJ,SAAA;QAEA,IAAI,CAACmL,oBAAoB,GAAG;AAC1BzB,YAAAA,QAAAA,EAAU,IAAI,CAAC/J,oBAAoB,CAACoD,iBAAiB,CACnD,OACElC,IAAAA,GAAAA;AAEAC,gBAAAA,wBAAAA,CAAc,kDAAkDD,IAAAA,EAAM;oBACpEkI,eAAAA,EAAiB,QAAA;oBACjB7F,wBAAAA,EAA0B,QAAA;oBAC1BC,MAAAA,EAAQ;AACV,iBAAA,CAAA;AAEA,gBAAA,MAAMiF,WAAAA,GAAc;AAClB,oBAAA,GAAGvH,IAAI;AACPiD,oBAAAA,0BAAAA,EAA4B,IAAI,CAACnE,oBAAoB,CAACoE,2BAA2B,EAAA,IAAMC;AACzF,iBAAA;AACA,gBAAA,OAAO,IAAI,CAACvE,cAAc,CAACK,QAAQ,CAA0E;oBAC3GC,GAAAA,EAAK,+CAAA;oBACLqB,IAAAA,EAAMgH,WAAAA;oBACNpI,MAAAA,EAAQ;AACV,iBAAA,CAAA;AACF,YAAA,CAAA;AAEJ,SAAA;AACF,IAAA;AACF;;AC7EO,MAAM6L,qBAAAA,CAAAA;;;;IAGXC,GAAAA;IAKAC,KAAAA;IAaAvM,WAAAA,CACUC,cAA8B,EAC9BE,oBAAoE,EACpEuC,gBAA2C,CACnD;aAHQzC,cAAAA,GAAAA,cAAAA;aACAE,oBAAAA,GAAAA,oBAAAA;aACAuC,gBAAAA,GAAAA,gBAAAA;QAER,IAAI,CAAC4J,GAAG,GAAG;AACTE,YAAAA,IAAAA,EAAM,OAAOnL,IAAAA,GAAAA;AACXC,gBAAAA,wBAAAA,CAAc,wBAAwBD,IAAAA,EAAM;oBAC1CkI,eAAAA,EAAiB,QAAA;oBACjBzB,SAAAA,EAAW,QAAA;oBACXpG,gBAAAA,EAAkB,gBAAA;oBAClBiC,MAAAA,EAAQ;AACV,iBAAA,CAAA;gBACA,MAAM,EAAEK,gBAAgB,EAAEC,aAAa,EAAE,GAAG,MAAM,IAAI,CAACvB,gBAAgB,CAACwB,2BAA2B,EAAA;AACnG,gBAAA,OAAO,IAAI,CAACjE,cAAc,CAACkE,iBAAiB,CAAqB;oBAC/D5D,GAAAA,EAAK,oBAAA;oBACLqB,IAAAA,EAAM;AACJ,wBAAA,GAAGP,IAAI;AACP2C,wBAAAA,gBAAAA;AACAC,wBAAAA,aAAAA;AACAK,wBAAAA,0BAAAA,EAA4B,IAAI,CAACnE,oBAAoB,CAACoE,2BAA2B,EAAA,IAAMC;AACzF,qBAAA;oBACAhE,MAAAA,EAAQ,MAAA;AACRiE,oBAAAA,aAAAA,EAAe,IAAI,CAAC/B,gBAAgB,CAACgC;AACvC,iBAAA,CAAA;AACF,YAAA,CAAA;AACAnC,YAAAA,YAAAA,EAAc,IAAI,CAACpC,oBAAoB,CAACoD,iBAAiB,CACvD,OAAOlC,IAAAA,GAAAA;AACLC,gBAAAA,wBAAAA,CAAc,gCAAgCD,IAAAA,EAAM;oBAClDqC,wBAAAA,EAA0B,QAAA;oBAC1B6F,eAAAA,EAAiB,QAAA;oBACjBzB,SAAAA,EAAW,QAAA;oBACX2E,IAAAA,EAAM,QAAA;oBACNC,kBAAAA,EAAoB;AACtB,iBAAA,CAAA;gBACA,MAAM,EAAE1I,gBAAgB,EAAEC,aAAa,EAAE,GAAG,MAAM,IAAI,CAACvB,gBAAgB,CAACwB,2BAA2B,EAAA;AACnG,gBAAA,MAAM0E,WAAAA,GAAc;AAClB,oBAAA,GAAGvH,IAAI;AACP2C,oBAAAA,gBAAAA;AACAC,oBAAAA,aAAAA;AACAK,oBAAAA,0BAAAA,EAA4B,IAAI,CAACnE,oBAAoB,CAACoE,2BAA2B,EAAA,IAAMC;AACzF,iBAAA;AACA,gBAAA,OAAO,IAAI,CAACvE,cAAc,CAACkE,iBAAiB,CAAoD;oBAC9F5D,GAAAA,EAAK,4BAAA;oBACLqB,IAAAA,EAAMgH,WAAAA;oBACNpI,MAAAA,EAAQ,MAAA;AACRiE,oBAAAA,aAAAA,EAAe,IAAI,CAAC/B,gBAAgB,CAACgC;AACvC,iBAAA,CAAA;AACF,YAAA,CAAA;AAEJ,SAAA;QAEA,IAAI,CAAC6H,KAAK,GAAG;AACXI,YAAAA,aAAAA,EAAe,OAAOtL,IAAAA,GAAAA;AACpBC,gBAAAA,wBAAAA,CAAc,mCAAmCD,IAAAA,EAAM;oBACrDkI,eAAAA,EAAiB,QAAA;oBACjBqD,aAAAA,EAAe,QAAA;oBACfC,iBAAAA,EAAmB,gBAAA;oBACnBC,kBAAAA,EAAoB,gBAAA;oBACpBnJ,MAAAA,EAAQ,gBAAA;oBACRoJ,wBAAAA,EAA0B,gBAAA;oBAC1BC,yBAAAA,EAA2B;AAC7B,iBAAA,CAAA;gBAEA,MAAM,EAAEhJ,gBAAgB,EAAEC,aAAa,EAAE,GAAG,MAAM,IAAI,CAACvB,gBAAgB,CAACwB,2BAA2B,EAAA;AACnG,gBAAA,OAAO,IAAI,CAACjE,cAAc,CAACkE,iBAAiB,CAAoC;oBAC9E5D,GAAAA,EAAK,iCAAA;oBACLqB,IAAAA,EAAM;AACJ,wBAAA,GAAGP,IAAI;AACP2C,wBAAAA,gBAAAA;AACAC,wBAAAA;AACF,qBAAA;oBACAzD,MAAAA,EAAQ,MAAA;AACRiE,oBAAAA,aAAAA,EAAe,IAAI,CAAC/B,gBAAgB,CAACgC;AACvC,iBAAA,CAAA;AACF,YAAA,CAAA;AACAnC,YAAAA,YAAAA,EAAc,IAAI,CAACpC,oBAAoB,CAACoD,iBAAiB,CACvD,OACElC,IAAAA,GAAAA;AAEAC,gBAAAA,wBAAAA,CAAc,kCAAkCD,IAAAA,EAAM;oBACpDoL,IAAAA,EAAM,QAAA;oBACNG,aAAAA,EAAe,QAAA;oBACfrD,eAAAA,EAAiB,QAAA;oBACjB7F,wBAAAA,EAA0B,QAAA;oBAC1BC,MAAAA,EAAQ;AACV,iBAAA,CAAA;gBAEA,MAAM,EAAEK,gBAAgB,EAAEC,aAAa,EAAE,GAAG,MAAM,IAAI,CAACvB,gBAAgB,CAACwB,2BAA2B,EAAA;AACnG,gBAAA,OAAO,IAAI,CAACjE,cAAc,CAACkE,iBAAiB,CAA0D;oBACpG5D,GAAAA,EAAK,8BAAA;oBACLqB,IAAAA,EAAM;AACJ,wBAAA,GAAGP,IAAI;AACPiD,wBAAAA,0BAAAA,EAA4B,IAAI,CAACnE,oBAAoB,CAACoE,2BAA2B,EAAA,IAAMC,SAAAA;AACvFR,wBAAAA,gBAAAA;AACAC,wBAAAA;AACF,qBAAA;oBACAzD,MAAAA,EAAQ,MAAA;AACRiE,oBAAAA,aAAAA,EAAe,IAAI,CAAC/B,gBAAgB,CAACgC;AACvC,iBAAA,CAAA;AACF,YAAA,CAAA,CAAA;YAEFyD,SAAAA,EAAW;AACTqE,gBAAAA,IAAAA,EAAM,OAAOnL,IAAAA,GAAAA;AACXC,oBAAAA,wBAAAA,CAAc,oCAAoCD,IAAAA,EAAM;wBACtDuL,aAAAA,EAAe,QAAA;wBACfC,iBAAAA,EAAmB,gBAAA;wBACnBlJ,MAAAA,EAAQ,gBAAA;wBACRsJ,4BAAAA,EAA8B;AAChC,qBAAA,CAAA;oBAEA,MAAM,EAAEjJ,gBAAgB,EAAEC,aAAa,EAAE,GAAG,MAAM,IAAI,CAACvB,gBAAgB,CAACwB,2BAA2B,EAAA;AACnG,oBAAA,MAAM0E,WAAAA,GAAc;AAClB,wBAAA,GAAGvH,IAAI;AACP2C,wBAAAA,gBAAAA;AACAC,wBAAAA;AACF,qBAAA;AACA,oBAAA,OAAO,IAAI,CAAChE,cAAc,CAACkE,iBAAiB,CAAmC;wBAC7E5D,GAAAA,EAAK,gCAAA;wBACLqB,IAAAA,EAAMgH,WAAAA;wBACNpI,MAAAA,EAAQ,MAAA;AACRiE,wBAAAA,aAAAA,EAAe,IAAI,CAAC/B,gBAAgB,CAACgC;AACvC,qBAAA,CAAA;AACF,gBAAA,CAAA;AACAnC,gBAAAA,YAAAA,EAAc,IAAI,CAACpC,oBAAoB,CAACoD,iBAAiB,CACvD,OACElC,IAAAA,GAAAA;AAEAC,oBAAAA,wBAAAA,CAAc,4CAA4CD,IAAAA,EAAM;wBAC9DoL,IAAAA,EAAM,QAAA;wBACNG,aAAAA,EAAe;AACjB,qBAAA,CAAA;oBAEA,MAAM,EAAE5I,gBAAgB,EAAEC,aAAa,EAAE,GAAG,MAAM,IAAI,CAACvB,gBAAgB,CAACwB,2BAA2B,EAAA;AACnG,oBAAA,MAAM0E,WAAAA,GAAc;AAClB5E,wBAAAA,gBAAAA;AACAC,wBAAAA,aAAAA;AACA,wBAAA,GAAG5C;AACL,qBAAA;AAEA,oBAAA,OAAO,IAAI,CAACpB,cAAc,CAACkE,iBAAiB,CAE1C;wBACA5D,GAAAA,EAAK,wCAAA;wBACLqB,IAAAA,EAAMgH,WAAAA;wBACNpI,MAAAA,EAAQ,MAAA;AACRiE,wBAAAA,aAAAA,EAAe,IAAI,CAAC/B,gBAAgB,CAACgC;AACvC,qBAAA,CAAA;AACF,gBAAA,CAAA;AAEJ;AACF,SAAA;AACF,IAAA;AACF;;ACvLO,MAAMwI,sBAAAA,CAAAA;;;;IAGX3K,YAAAA;IAEAvC,WAAAA,CACUC,cAA8B,EAC9BE,oBAAoE,EACpEuC,gBAA2C,CACnD;aAHQzC,cAAAA,GAAAA,cAAAA;aACAE,oBAAAA,GAAAA,oBAAAA;aACAuC,gBAAAA,GAAAA,gBAAAA;QAER,IAAI,CAACH,YAAY,GAAG,IAAI,CAACpC,oBAAoB,CAACoD,iBAAiB,CAC7D,OAAOlC,IAAAA,GAAAA;AACLC,YAAAA,wBAAAA,CAAc,4BAA4BD,IAAAA,EAAM;gBAC9CkI,eAAAA,EAAiB,QAAA;gBACjBzB,SAAAA,EAAW,QAAA;gBACX2E,IAAAA,EAAM,QAAA;gBACN/I,wBAAAA,EAA0B,QAAA;gBAC1BgJ,kBAAAA,EAAoB,gBAAA;gBACpBS,eAAAA,EAAiB;AACnB,aAAA,CAAA;YACA,MAAM,EAAEnJ,gBAAgB,EAAEC,aAAa,EAAE,GAAG,MAAM,IAAI,CAACvB,gBAAgB,CAACwB,2BAA2B,EAAA;AACnG,YAAA,MAAM0E,WAAAA,GAAc;AAClB,gBAAA,GAAGvH,IAAI;AACP2C,gBAAAA,gBAAAA;AACAC,gBAAAA,aAAAA;AACAK,gBAAAA,0BAAAA,EAA4B,IAAI,CAACnE,oBAAoB,CAACoE,2BAA2B,EAAA,IAAMC;AACzF,aAAA;AAEA,YAAA,OAAO,IAAI,CAACvE,cAAc,CAACkE,iBAAiB,CAAqD;gBAC/F5D,GAAAA,EAAK,wBAAA;gBACLqB,IAAAA,EAAMgH,WAAAA;gBACNpI,MAAAA,EAAQ,MAAA;AACRiE,gBAAAA,aAAAA,EAAe,IAAI,CAAC/B,gBAAgB,CAACgC;AACvC,aAAA,CAAA;AACF,QAAA,CAAA,CAAA;AAEJ,IAAA;IAEA,MAAMiD,MAAAA,CAAOtG,IAA0B,EAAkC;AACvEC,QAAAA,wBAAAA,CAAc,sBAAsBD,IAAAA,EAAM;YACxCkI,eAAAA,EAAiB,QAAA;YACjBzB,SAAAA,EAAW,QAAA;YACXsF,kBAAAA,EAAoB;AACtB,SAAA,CAAA;QACA,MAAM,EAAEpJ,gBAAgB,EAAEC,aAAa,EAAE,GAAG,MAAM,IAAI,CAACvB,gBAAgB,CAACwB,2BAA2B,EAAA;AACnG,QAAA,MAAM2D,WAAW,MAAM,IAAI,CAAC5H,cAAc,CAACkE,iBAAiB,CAAwB;YAClF5D,GAAAA,EAAK,WAAA;YACLqB,IAAAA,EAAM;AACJ,gBAAA,GAAGP,IAAI;AACP2C,gBAAAA,gBAAAA;AACAC,gBAAAA,aAAAA;AACAK,gBAAAA,0BAAAA,EAA4B,MAAO,IAAI,CAACnE,oBAAoB,CAACoE,2BAA2B,EAAA,IAAOC;AACjG,aAAA;YACAhE,MAAAA,EAAQ,MAAA;AACRiE,YAAAA,aAAAA,EAAe,IAAI,CAAC/B,gBAAgB,CAACgC;AACvC,SAAA,CAAA;QAEA,IAAImD,QAAAA,CAASC,SAAS,KAAK,IAAI,CAAC3H,oBAAoB,CAACS,SAAS,EAAA,EAAIkH,SAAAA,EAAW;AAC3E,YAAA,IAAI,CAAC3H,oBAAoB,CAACM,YAAY,CAACoH,SAASnH,MAAM,CAAA;AACxD,QAAA;QAEA,OAAOmH,QAAAA;AACT,IAAA;AACF;;AC9DO,MAAMwF,8BAAAA,CAAAA;;;;IAGXC,OAAAA;IAEAtN,WAAAA,CACUC,cAA8B,EAC9BE,oBAAoE,EACpEuC,gBAA2C,CACnD;aAHQzC,cAAAA,GAAAA,cAAAA;aACAE,oBAAAA,GAAAA,oBAAAA;aACAuC,gBAAAA,GAAAA,gBAAAA;QAER,IAAI,CAAC4K,OAAO,GAAG,IAAI,CAACnN,oBAAoB,CAACoD,iBAAiB,CACxD,OAAOlC,IAAAA,GAAAA;AACLC,YAAAA,wBAAAA,CAAc,gCAAgCD,IAAAA,EAAM;gBAClDkI,eAAAA,EAAiB,QAAA;gBACjBzB,SAAAA,EAAW,QAAA;gBACXyF,aAAAA,EAAe,QAAA;gBACf7J,wBAAAA,EAA0B;AAC5B,aAAA,CAAA;YACA,MAAM,EAAEM,gBAAgB,EAAEC,aAAa,EAAE,GAAG,MAAM,IAAI,CAACvB,gBAAgB,CAACwB,2BAA2B,EAAA;AACnG,YAAA,MAAM0E,WAAAA,GAAc;AAClB,gBAAA,GAAGvH,IAAI;AACP2C,gBAAAA,gBAAAA;AACAC,gBAAAA,aAAAA;AACAK,gBAAAA,0BAAAA,EAA4B,IAAI,CAACnE,oBAAoB,CAACoE,2BAA2B,EAAA,IAAMC;AACzF,aAAA;AACA,YAAA,OAAO,IAAI,CAACvE,cAAc,CAACkE,iBAAiB,CAAqD;gBAC/F5D,GAAAA,EAAK,6BAAA;gBACLqB,IAAAA,EAAMgH,WAAAA;gBACNpI,MAAAA,EAAQ,MAAA;AACRiE,gBAAAA,aAAAA,EAAe,IAAI,CAAC/B,gBAAgB,CAACgC;AACvC,aAAA,CAAA;AACF,QAAA,CAAA,CAAA;AAEJ,IAAA;AAEA,IAAA,MAAM8I,MAAAA,GAA8C;QAClD,MAAM,EAAExJ,gBAAgB,EAAEC,aAAa,EAAE,GAAG,MAAM,IAAI,CAACvB,gBAAgB,CAACwB,2BAA2B,EAAA;AACnG,QAAA,OAAO,IAAI,CAACjE,cAAc,CAACkE,iBAAiB,CAA6B;YACvE5D,GAAAA,EAAK,4BAAA;YACLqB,IAAAA,EAAM;AACJoC,gBAAAA,gBAAAA;AACAC,gBAAAA;AACF,aAAA;YACAzD,MAAAA,EAAQ,MAAA;AACRiE,YAAAA,aAAAA,EAAe,IAAI,CAAC/B,gBAAgB,CAACgC;AACvC,SAAA,CAAA;AACF,IAAA;AAEA,IAAA,MAAMtE,GAAAA,GAAwC;AAC5C,QAAA,OAAO,IAAI,CAACH,cAAc,CAACK,QAAQ,CAA0B;YAC3DC,GAAAA,EAAK,qBAAA;YACLC,MAAAA,EAAQ;AACV,SAAA,CAAA;AACF,IAAA;AACF;;ACtDO,MAAMiN,qBAAAA,CAAAA;;IAGHC,YAAAA;IACAC,aAAAA;AACR3N,IAAAA,WAAAA,CACE4N,YAA0B,EAC1BC,aAA4B,EACpB1N,oBAAoE,CAC5E;aADQA,oBAAAA,GAAAA,oBAAAA;AAsDV2N,QAAAA,IAAAA,CAAAA,gBAAAA,GAA+D,CAACC,UAAAA,EAAYC,MAAAA,GAAAA;YAC1E,MAAMC,eAAAA,GAAkB,IAAI,CAACC,sBAAsB,EAAA;YACnD,OAAO,CAAC,CAACD,eAAAA,EAAiBE,kBAAAA,CAAmB,IAAI,CAACC,OAAO,IAAIL,UAAAA,EAAsBC,MAAAA,CAAAA;AACrF,QAAA,CAAA;AAEAK,QAAAA,IAAAA,CAAAA,YAAAA,GAAuD,CAACN,UAAAA,EAAYC,MAAAA,GAAAA;AAClE,YAAA,OAAO,IAAI,CAACM,kBAAkB,EAAA,CAAGC,IAAI,CAAC,CAACC,MAAAA,GACrCA,MAAAA,CAAOL,kBAAkB,CAAC,IAAI,CAACC,OAAO,IAAIL,UAAAA,EAAsBC,MAAAA,CAAAA,CAAAA;AAEpE,QAAA,CAAA;QA7DE,IAAI,CAACN,YAAY,GAAGE,YAAAA,CAAaa,UAAU,GAAGC,qBAAAA,CAAWC,QAAQ,CAACf,YAAAA,CAAaa,UAAU,CAAA,GAAI,IAAA;AAC7F,QAAA,IAAI,CAACd,aAAa,GAAGE,aAAAA,CAAcU,IAAI,CAAC,CAAClN,IAAAA,GAAAA;YACvC,IAAI,CAACA,IAAAA,CAAKoN,UAAU,EAAE;AACpB3K,gBAAAA,iBAAAA,CAAOyG,KAAK,CAAC,kFAAA,CAAA;AACb,gBAAA,OAAO,IAAImE,qBAAAA,CAAW,EAAE,EAAE,EAAE,CAAA;AAC9B,YAAA;;AAEA,YAAA,IAAI,CAAChB,YAAY,GAAGgB,sBAAWC,QAAQ,CAACtN,KAAKoN,UAAU,CAAA;YACvD,OAAO,IAAI,CAACf,YAAY;AAC1B,QAAA,CAAA,CAAA;AACF,IAAA;AAEA;;AAEC,MACD,MAAcY,kBAAAA,GAA0C;AACtD,QAAA,MAAMM,aAAAA,GAAgB,MAAM,IAAI,CAACjB,aAAa;AAC9C,QAAA,MAAMxG,YAAAA,GAAe,IAAI,CAAChH,oBAAoB,CAACiH,eAAe,EAAA;;QAG9D,IAAI,CAACD,YAAAA,EAAc0H,YAAAA,EAAcC,MAAAA,EAAQ;YACvC,OAAOF,aAAAA;AACT,QAAA;AAEA,QAAA,OAAOA,aAAAA,CAAcG,oBAAoB,CAAC5H,YAAAA,CAAa0H,YAAY,CAAA;AACrE,IAAA;AAEA;;;AAGC,MACD,sBAAQX,GAA4C;AAClD,QAAA,IAAI,CAAC,IAAI,CAACR,YAAY,EAAE;YACtB,OAAO,IAAA;AACT,QAAA;AAEA,QAAA,MAAMvG,YAAAA,GAAe,IAAI,CAAChH,oBAAoB,CAACiH,eAAe,EAAA;;QAG9D,IAAI,CAACD,YAAAA,EAAc0H,YAAAA,EAAcC,MAAAA,EAAQ;YACvC,OAAO,IAAI,CAACpB,YAAY;AAC1B,QAAA;AAEA,QAAA,OAAO,IAAI,CAACA,YAAY,CAACqB,oBAAoB,CAAC5H,aAAa0H,YAAY,CAAA;AACzE,IAAA;IAEAG,cAAAA,GAA6D;AAC3D,QAAA,OAAO,IAAI,CAACV,kBAAkB,EAAA,CAAGC,IAAI,CACnC,CAACC,MAAAA,GAAWA,MAAAA,CAAOS,uBAAuB,CAAC,IAAI,CAACb,OAAO,EAAA,CAAA,CAAA;AAE3D,IAAA;IAEAN,gBAAAA;IAKAO,YAAAA;IAMQD,OAAAA,GAAU;AAChB,QAAA,MAAM9D,OAAAA,GAAU,IAAI,CAACnK,oBAAoB,CAACkK,UAAU,EAAA;AACpD,QAAA,IAAI,CAACC,OAAAA,EAAS;AACZ,YAAA,OAAO,EAAE;AACX,QAAA;;;;;QAKA,OAAOA,OAAAA,CAAQ4E,KAAK,IAAI,EAAE;AAC5B,IAAA;AACF;;ACtFO,MAAMC,8BAAAA,CAAAA;;;;IAGX5M,YAAAA;IAIAvC,WAAAA,CACUC,cAA8B,EAC9BE,oBAAoE,EACpEuC,gBAA2C,CACnD;aAHQzC,cAAAA,GAAAA,cAAAA;aACAE,oBAAAA,GAAAA,oBAAAA;aACAuC,gBAAAA,GAAAA,gBAAAA;QAER,IAAI,CAACH,YAAY,GAAG,IAAI,CAACpC,oBAAoB,CAACoD,iBAAiB,CAC7D,OAAOlC,IAAAA,GAAAA;AACLC,YAAAA,wBAAAA,CAAc,qCAAqCD,IAAAA,EAAM;gBACvD+N,mBAAAA,EAAqB;AACvB,aAAA,CAAA;YACA,MAAM,EAAEpL,gBAAgB,EAAEC,aAAa,EAAE,GAAG,MAAM,IAAI,CAACvB,gBAAgB,CAACwB,2BAA2B,EAAA;AAEnG,YAAA,OAAO,IAAI,CAACjE,cAAc,CAACkE,iBAAiB,CAA8D;gBACxG5D,GAAAA,EAAK,iCAAA;gBACLqB,IAAAA,EAAM;AACJ,oBAAA,GAAGP,IAAI;AACP2C,oBAAAA,gBAAAA;AACAC,oBAAAA;AACF,iBAAA;gBACAzD,MAAAA,EAAQ,MAAA;AACRiE,gBAAAA,aAAAA,EAAe,IAAI,CAAC/B,gBAAgB,CAACgC;AACvC,aAAA,CAAA;AACF,QAAA,CAAA,CAAA;AAEJ,IAAA;AACF;;AC/BO,MAAM2K,oBAAAA,CAAAA;;IACXrP,WAAAA,CAAoBC,cAA8B,CAAE;aAAhCA,cAAAA,GAAAA,cAAAA;AAEpB,QAAA,IAAA;;;;;;;;;;;MAYAqP,mBAAAA,GAAsB,OAAOjO,IAAAA,GAC3B,IAAI,CAACpB,cAAc,CAACK,QAAQ,CAAiC;gBAC3DC,GAAAA,EAAK,gCAAA;gBACLC,MAAAA,EAAQ,MAAA;gBACRoB,IAAAA,EAAMP;AACR,aAAA,CAAA;AAEF,QAAA,IAAA;;;;;;;;;;;;;;;;;;;;MAqBAkO,oBAAAA,GAAuB,OAAOlO,IAAAA,GAC5B,IAAI,CAACpB,cAAc,CAACK,QAAQ,CAAkC;gBAC5DC,GAAAA,EAAK,iCAAA;gBACLC,MAAAA,EAAQ,MAAA;gBACRoB,IAAAA,EAAMP;AACR,aAAA,CAAA;AAEFmO,QAAAA,IAAAA,CAAAA,gBAAAA,GAAmB,OAAOnO,IAAAA,GACxB,IAAI,CAACpB,cAAc,CAACK,QAAQ,CAA8B;gBACxDC,GAAAA,EAAK,CAAC,uBAAuB,CAAC;gBAC9BC,MAAAA,EAAQ,MAAA;gBACRoB,IAAAA,EAAMP;AACR,aAAA,CAAA;AAtDmD,IAAA;IAcrDiO,mBAAAA;IA4BAC,oBAAAA;IAOAC,gBAAAA;AAMF;;ACuDO,MAAMtH,sBAAAA,SACHuH,wBAAAA,CAAAA;;AAGRzP,IAAAA,WAAAA,CACEC,cAA8B,EAC9BE,oBAAoE,EACpEwC,YAA0B,EAC1BH,cAA6B,EAC7BC,OAAe,EACfiN,iBAAAA,GAA+CC,2CAAAA,EAAkC,EACzEC,OAA0B,CAClC;QACA,KAAK,CAAC3P,cAAAA,EAAgBE,oBAAAA,EAAsBwC,YAAAA,EAAcH,cAAAA,EAAgBC,SAASiN,iBAAAA,CAAAA,EAAAA,IAAAA,CAF3EE,OAAAA,GAAAA,OAAAA,EAAAA,IAAAA,CAKFC,oBAAAA,GAAuB,OAAOrM,OAAAA,GAAAA;AACpC,YAAA,MAAMsM,eAAe,MAAM,IAAI,CAACF,OAAO,CAACG,kBAAkB,EAAA;YAC1D,IAAI,CAACD,YAAAA,CAAaE,OAAO,EAAE;AACzB,gBAAA,MAAM,IAAIC,KAAAA,CAAM,CAAC,wBAAwB,EAAEH,YAAAA,CAAaI,MAAM,CAAA,CAAE,CAAA;AAClE,YAAA;YAEA,MAAM,EAAEC,MAAM,EAAE,GAAGL,YAAAA;AAEnB,YAAA,MAAMM,oBAAoB,IAAI,CAACR,OAAO,CAACS,+BAA+B,CAAC;AACrEC,gBAAAA,oBAAAA,EAAsB9M,QAAQqG,sBAAsB;AACpD0G,gBAAAA,SAAAA,EAAW,IAAI,CAACX,OAAO,CAACY;AAC1B,aAAA,CAAA;YAEA,OAAOL,MAAAA,CAAOM,MAAM,CAAC;gBACnBC,KAAAA,EAAO;AACLC,oBAAAA,QAAAA,EAAUC,2BAAgBC;AAC5B,iBAAA;gBACA5P,QAAAA,EAAUmP,iBAAAA;AACVU,gBAAAA,kBAAAA,EAAoBtN,QAAQuN;AAC9B,aAAA,CAAA;AACF,QAAA,CAAA,EAAA,IAAA,CAEQC,cAAc,OAAOxN,OAAAA,GAAAA;YAC3B,IAAI,CAACA,OAAAA,CAAQ+F,eAAe,EAAE;gBAC5B,MAAM,IAAI0H,mCAAoB,iCAAA,EAAmC,wCAAA,CAAA;AACnE,YAAA;AACA,YAAA,MAAMnB,eAAe,MAAM,IAAI,CAACF,OAAO,CAACG,kBAAkB,EAAA;YAC1D,IAAI,CAACD,YAAAA,CAAaE,OAAO,EAAE;AACzB,gBAAA,MAAM,IAAIC,KAAAA,CAAM,CAAC,wBAAwB,EAAEH,YAAAA,CAAaI,MAAM,CAAA,CAAE,CAAA;AAClE,YAAA;YAEA,MAAM,EAAEC,MAAM,EAAE,GAAGL,YAAAA;AAEnB,YAAA,MAAMM,oBAAoB,IAAI,CAACR,OAAO,CAACsB,sBAAsB,CAAC;AAC5DC,gBAAAA,cAAAA,EAAgB3N,QAAQ+F,eAAe;AACvC6H,gBAAAA,iBAAAA,EAAmB5N,QAAQ2B,mBAAmB;AAC9CkM,gBAAAA,gBAAAA,EAAkB7N,QAAQ0B,kBAAkB;AAC5CqL,gBAAAA,SAAAA,EAAW,IAAI,CAACX,OAAO,CAACY;AAC1B,aAAA,CAAA;YAEA,OAAOL,MAAAA,CAAOM,MAAM,CAAC;gBACnBC,KAAAA,EAAO;AACLC,oBAAAA,QAAAA,EAAUC,2BAAgBC;AAC5B,iBAAA;gBACA5P,QAAAA,EAAUmP,iBAAAA;AACVU,gBAAAA,kBAAAA,EAAoBtN,QAAQuN;AAC9B,aAAA,CAAA;AACF,QAAA,CAAA,EAAA,IAAA,CAEAO,YAAAA,GAA8C;YAC5CnJ,SAAAA,EAAW;gBACTlD,KAAAA,EAAO,IAAI,CAAC4K;AACd,aAAA;YACA5K,KAAAA,EAAO,IAAI,CAAC+L;AACd,SAAA;AAxDA,IAAA;IAEQnB,oBAAAA;IAsBAmB,WAAAA;IA2BRM,YAAAA;AAMF;;ACpKA,MAAMC,oBAAAA,GAAuBC,OAAAA,CAAQC,OAAO,CAAC;IAC3C/H,oBAAAA,EAAsB;AACxB,CAAA,CAAA;AAEA;;AAEC,IACM,MAAMgI,iBAAAA,CAAAA;;;;IACHC,cAAAA;IACR3R,WAAAA,CACUC,cAA8B,EAC9B0C,YAA0B,EAC1BF,OAAAA,GAAyB8O,oBAAoB,CACrD;aAHQtR,cAAAA,GAAAA,cAAAA;aACA0C,YAAAA,GAAAA,YAAAA;aACAF,OAAAA,GAAAA,OAAAA;aAyFV4N,+BAAAA,GACE,CAAC,EACCC,oBAAoB,EACpBC,SAAS,EACTqB,OAAO,EAKR,GACD,OAAO/J,QAAAA,GAAAA;gBACL,MAAM,EAAEgK,UAAU,EAAE,GAAGhK,QAAAA;AACvB,gBAAA,IAAIiK,aAAAA,GAAgB,IAAI,CAACC,gCAAgC,CAAC;AACxDF,oBAAAA,UAAAA;AACAvB,oBAAAA;AACF,iBAAA,CAAA,CAAG/B,IAAI,CAAC,CAACyD,MAAAA,GAAWzB,SAAAA,CAAUyB,OAAOC,YAAY,CAAA,CAAA;AACjD,gBAAA,IAAIL,OAAAA,EAAS;AACXE,oBAAAA,aAAAA,GAAgBA,aAAAA,CAAcI,KAAK,CAAC,CAAC3H,QAAUqH,OAAAA,CAAQrH,KAAAA,CAAAA,CAAAA;AACzD,gBAAA;gBACA,MAAMuH,aAAAA;AACR,YAAA,CAAA;AAEFZ,QAAAA,IAAAA,CAAAA,sBAAAA,GACE,CAAC,EACCC,cAAc,EACdC,iBAAiB,EACjBC,gBAAgB,EAChBd,SAAS,EACTqB,OAAO,EAOR,GACD,OAAO/J,QAAAA,GAAAA;gBACL,MAAM,EAAEgK,UAAU,EAAE,GAAGhK,QAAAA;AACvB,gBAAA,IAAIiK,aAAAA,GAAgB,IAAI,CAACK,uBAAuB,CAAC;AAC/CN,oBAAAA,UAAAA;AACAV,oBAAAA,cAAAA;AACAC,oBAAAA,iBAAAA;AACAC,oBAAAA;AACF,iBAAA,CAAA,CAAG9C,IAAI,CAAC,CAACyD,MAAAA,GAAWzB,SAAAA,CAAUyB,OAAOC,YAAY,CAAA,CAAA;AACjD,gBAAA,IAAIL,OAAAA,EAAS;AACXE,oBAAAA,aAAAA,GAAgBA,aAAAA,CAAcI,KAAK,CAAC,CAAC3H,QAAUqH,OAAAA,CAAQrH,KAAAA,CAAAA,CAAAA;AACzD,gBAAA;gBACA,MAAMuH,aAAAA;AACR,YAAA,CAAA;AAEFtB,QAAAA,IAAAA,CAAAA,iBAAAA,GAAoB,CAACyB,YAAAA,GAAAA;YACnBpM,MAAAA,CAAOC,QAAQ,CAACC,IAAI,GAAGkM,YAAAA;AACzB,QAAA,CAAA;AA5IG,IAAA;AAEH,IAAA,MAAcG,gBAAAA,GAAmB;QAC/B,IAAI,IAAI,CAACT,cAAc,EAAE;YACvB,OAAO,IAAI,CAACA,cAAc;AAC5B,QAAA;AACA,QAAA,MAAMU,kBAAkB,MAAM,IAAI,CAACpS,cAAc,CAACK,QAAQ,CAAyB;YACjFC,GAAAA,EAAK,gCAAA;YACLC,MAAAA,EAAQ;AACV,SAAA,CAAA;AACA,QAAA,IAAI,CAACmR,cAAc,GAAGU,eAAAA,CAAgBC,gBAAgB;QACtD,OAAO,IAAI,CAACX,cAAc;AAC5B,IAAA;AAEA,IAAA,MAAcI,iCAAiC,EAC7CF,UAAU,EACVvB,oBAAoB,EAIrB,EAAE;AACD,QAAA,IAAIiC,aAAAA,GAAgB/N,SAAAA;AACpB,QAAA,MAAM,EAAEkF,oBAAoB,EAAE,GAAG,MAAM,IAAI,CAACjH,OAAO;AACnD,QAAA,IAAIiH,oBAAAA,EAAsB;AACxB,YAAA,MAAM9F,UAAU,MAAM,IAAI,CAACjB,YAAY,CAAC+C,oBAAoB,EAAA;AAC5D6M,YAAAA,aAAAA,GAAgB3O,QAAQ+B,cAAc;QACxC,CAAA,MAAO;YACL,IAAI,CAAChD,YAAY,CAACgC,WAAW,EAAA;AAC/B,QAAA;AACA,QAAA,OAAO,MAAM,IAAI,CAAC1E,cAAc,CAACK,QAAQ,CAA0B;YACjEC,GAAAA,EAAK,2CAAA;YACLC,MAAAA,EAAQ,MAAA;YACRoB,IAAAA,EAAM;gBACJ4Q,QAAAA,EAAUX,UAAAA;gBACVhI,sBAAAA,EAAwByG,oBAAAA;gBACxBmC,mBAAAA,EAAqBF;AACvB;AACF,SAAA,CAAA;AACF,IAAA;IAEA,MAAcJ,uBAAAA,CAAwB,EACpCN,UAAU,EACVV,cAAc,EACdC,iBAAiB,EACjBC,gBAAgB,EAMjB,EAAE;AACD,QAAA,IAAIkB,aAAAA,GAAgB/N,SAAAA;AACpB,QAAA,MAAM,EAAEkF,oBAAoB,EAAE,GAAG,MAAM,IAAI,CAACjH,OAAO;AACnD,QAAA,IAAIiH,oBAAAA,EAAsB;AACxB,YAAA,MAAM9F,UAAU,MAAM,IAAI,CAACjB,YAAY,CAAC+C,oBAAoB,EAAA;AAC5D6M,YAAAA,aAAAA,GAAgB3O,QAAQ+B,cAAc;QACxC,CAAA,MAAO;YACL,IAAI,CAAChD,YAAY,CAACgC,WAAW,EAAA;AAC/B,QAAA;AACA,QAAA,OAAO,MAAM,IAAI,CAAC1E,cAAc,CAACK,QAAQ,CAA0B;YACjEC,GAAAA,EAAK,iCAAA;YACLC,MAAAA,EAAQ,MAAA;YACRoB,IAAAA,EAAM;gBACJ4Q,QAAAA,EAAUX,UAAAA;gBACVtI,eAAAA,EAAiB4H,cAAAA;gBACjBhM,mBAAAA,EAAqBiM,iBAAAA;gBACrBlM,kBAAAA,EAAoBmM,gBAAAA;gBACpBoB,mBAAAA,EAAqBF;AACvB;AACF,SAAA,CAAA;AACF,IAAA;AAEA,IAAA,MAAMxC,kBAAAA,GAAgD;QACpD,IAAI2C,cAAAA;QACJ,IAAI;YACFA,cAAAA,GAAiB,MAAM,IAAI,CAACN,gBAAgB,EAAA;AAC9C,QAAA,CAAA,CAAE,OAAOO,CAAAA,EAAG;YACV,MAAMC,GAAAA,GAAMC,6BAAAA,CAAeC,IAAI,CAACH,CAAAA,CAAAA;YAChC,OAAO;gBAAE3C,OAAAA,EAAS,KAAA;AAAOE,gBAAAA,MAAAA,EAAQ0C,IAAIjI;AAAW,aAAA;AAClD,QAAA;AAEA,QAAA,IAAI+H,mBAAmB,EAAA,EAAI;YACzB,OAAO;gBAAE1C,OAAAA,EAAS,KAAA;gBAAOE,MAAAA,EAAQ;AAAyB,aAAA;AAC5D,QAAA;AACA,QAAA,MAAMC,MAAAA,GAAS,IAAI4C,6BAAAA,CAAmB,MAAMC,iCAAAA,EAAAA,EAA0BN,cAAAA,CAAAA;QACtE,OAAO;YAAE1C,OAAAA,EAAS,IAAA;AAAMG,YAAAA;AAAO,SAAA;AACjC,IAAA;IAEAE,+BAAAA;IAsBAa,sBAAAA;IA4BAV,iBAAAA;AAGF;;ACtHA;;;;;;;;;;;AAWC,IACM,MAAMyC,eAAAA,CAAAA;IAGM9S,oBAAAA;IACA+S,eAAAA;IACAjT,cAAAA;IACAkT,UAAAA;IACAC,kBAAAA;;IAGjBC,UAAAA;IACA/I,OAAAA;AACA,iGACA5J,MAAAA;IACA4S,IAAAA;IACAnM,YAAAA;IACAoM,KAAAA;IACAC,GAAAA;IACArL,SAAAA;IACAsL,SAAAA;IACAC,IAAAA;IACAC,IAAAA;IACAC,aAAAA;IACAC,IAAAA;IACAC,IAAAA;IACAC,aAAAA;IACAC,GAAAA;;AAGA;;;;;;;;;;AAUC,MACDC,aAAAA;AAEA;;;;AAIC,MACDC,oBAAAA;AAEA;;;;;;;;;;;;;;;;;;AAkBC,MACDC,iBAAAA;IAEAnU,WAAAA,CAAYoU,cAAsB,EAAE5Q,OAA6B,CAAE;AACjE6Q,QAAAA,yBAAAA,EAAAA;;;QAIAC,2BAAAA,CAAiBF,cAAAA,CAAAA;AACjB,QAAA,MAAMG,gBAAgBH,cAAAA,IAAkB,EAAA;;AAGxC,QAAA,MAAMI,SAASC,2BAAAA,CAAiB,IAAI,CAACzU,WAAW,CAACuB,IAAI,EAAEiC,OAAAA,CAAAA;QACvD,MAAMkR,sBAAAA,GAAyBC,gCAAqBJ,aAAAA,EAAe/Q,OAAAA,CAAAA;AAEnE,QAAA,IAAI,CAAC2P,UAAU,GAAGyB,0BAAAA,CAAgBL,aAAAA,EAAeC,MAAAA,CAAAA;QACjD,IAAI,CAACrU,oBAAoB,GAAG,IAAI0U,kCAAuBN,aAAAA,EAAe,IAAI,CAACpB,UAAU,EAAE;AAAEuB,YAAAA;AAAuB,SAAA,CAAA;QAChH,IAAI,CAACtB,kBAAkB,GAAG,IAAI0B,6BAAkB,IAAI,CAAC3U,oBAAoB,EAAE,EAAC,CAAA;QAC5E,IAAI,CAAC8T,aAAa,GAAG,CAAC,GAAGc,IAAAA,GAAS,IAAI,CAAC3B,kBAAkB,CAACa,aAAa,CAAA,GAAIc,IAAAA,CAAAA;QAE3E,MAAMC,yBAAAA,GAA4B,KAAO;AACvCC,gBAAAA,gBAAAA,EAAkB,IAAI,CAAC9B,UAAU,CAAChS,KAAK,EAAET,MAAAA,EAAQoH,SAAAA;AACjDoN,gBAAAA,wBAAAA,EAA0B,IAAI,CAAC/B,UAAU,CAAChS,KAAK,EAAEmJ,OAAAA,EAASQ;aAC5D,CAAA;AAEA,QAAA,MAAMqK,uBAAuB,IAAIC,sBAAAA,CAAY,IAAI,CAACjC,UAAU,EAAE,WAAA,CAAA;AAE9D,QAAA,MAAMkC,gBAAgB,IAAIC,wBAAAA,CACxBf,aAAAA,EACA,IAAI,CAACpB,UAAU,EACfqB,MAAAA,CAAOe,SAAS,CAACvQ,UAAU,EAC3BwP,OAAOe,SAAS,CAACxQ,UAAU,EAC3BiQ,yBAAAA,CAAAA;QAEF,IAAI,CAAC/U,cAAc,GAAGoV,aAAAA;AAEtB,QAAA,MAAMG,YAAY,IAAIC,+BAAAA,CAAqBlB,eAAec,aAAAA,EAAe,IAAI,CAAClC,UAAU,CAAA;AACxF,QAAA,MAAMuC,OAAAA,GAAU,IAAIC,0BAAAA,CAAgBH,SAAAA,CAAUI,QAAQ,EAAA,CAAA;AACtD,QAAA,MAAMlT,mBAAmB,IAAImT,mCAAAA,CAC3BtB,eACAC,MAAAA,CAAOe,SAAS,CAACO,aAAa,EAC9BtB,MAAAA,CAAOe,SAAS,CAACQ,SAAS,EAC1BP,UAAUI,QAAQ,EAAA,EAClBF,QAAQM,gBAAgB,CAAA;AAE1B,QAAA,MAAMC,qBAAqB,IAAIC,qCAAAA,CAA2B1B,MAAAA,CAAOe,SAAS,CAACY,2BAA2B,CAAA;AACtG,QAAA,MAAMC,sBAAsB,IAAIhB,sBAAAA,CAAY,IAAI,CAACjC,UAAU,EAAE,OAAA,CAAA;AAC7D,QAAA,MAAMkD,SAAS,IAAI3E,iBAAAA,CAAkB2D,aAAAA,EAAee,mBAAAA,EAAqBZ,UAAUI,QAAQ,EAAA,CAAA;QAE3F,IAAI,CAACzO,YAAY,GAAG,IAAIF,8BAA8BoO,aAAAA,EAAeA,aAAAA,EAAe,IAAI,CAAClV,oBAAoB,CAAA;QAC7G,IAAI,CAACO,MAAM,GAAG,IAAIX,sBAAsBsV,aAAAA,EAAeA,aAAAA,EAAe,IAAI,CAAClV,oBAAoB,CAAA;QAC/F,IAAI,CAACmT,IAAI,GAAG,IAAIvT,sBAAsBsV,aAAAA,EAAeA,aAAAA,EAAe,IAAI,CAAClV,oBAAoB,CAAA;QAC7F,IAAI,CAACmK,OAAO,GAAG,IAAIR,yBAAyBuL,aAAAA,EAAe,IAAI,CAAClV,oBAAoB,CAAA;QACpF,IAAI,CAACkT,UAAU,GAAG,IAAIiD,uCACpBjB,aAAAA,EACA,IAAI,CAAClV,oBAAoB,EACzB,IAAIiV,sBAAAA,CAAY,IAAI,CAACjC,UAAU,EAAE,gBACjCgC,oBAAAA,EACAK,SAAAA,CAAUI,QAAQ,EAAA,EAClBlT,gBAAAA,CAAAA;AAEF,QAAA,IAAI,CAAC6Q,KAAK,GAAG,IAAIrL,sBAAAA,CACfmN,aAAAA,EACA,IAAI,CAAClV,oBAAoB,EACzBiW,mBAAAA,EACAZ,SAAAA,CAAUI,QAAQ,EAAA,EAClB;YACE9Q,WAAAA,EAAayP,aAAAA;YACbxP,UAAAA,EAAYyP,MAAAA,CAAOe,SAAS,CAACxQ,UAAU;YACvCC,UAAAA,EAAYwP,MAAAA,CAAOe,SAAS,CAACvQ;AAC/B,SAAA,EACAtC,gBAAAA,EACA2T,MAAAA,CAAAA;AAEF,QAAA,IAAI,CAAC7C,GAAG,GAAG,IAAIlR,oBAAAA,CACb+S,aAAAA,EACA,IAAI,CAAClV,oBAAoB,EACzB,IAAIiV,sBAAAA,CAAY,IAAI,CAACjC,UAAU,EAAE,KAAA,CAAA,EACjCqC,SAAAA,CAAUI,QAAQ,EAAA,EAClB;YACE9Q,WAAAA,EAAayP,aAAAA;YACbxP,UAAAA,EAAYyP,MAAAA,CAAOe,SAAS,CAACxQ,UAAU;YACvCC,UAAAA,EAAYwP,MAAAA,CAAOe,SAAS,CAACvQ;SAC/B,EACAtC,gBAAAA,CAAAA;QAEF,IAAI,CAACyF,SAAS,GAAG,IAAIsD,2BAA2B4J,aAAAA,EAAe,IAAI,CAAClV,oBAAoB,CAAA;AACxF,QAAA,IAAI,CAACsT,SAAS,GAAG,IAAI8C,qCAAAA,CACnBlB,aAAAA,EACA,IAAI,CAAClV,oBAAoB,EACzBgV,oBAAAA,EACAK,SAAAA,CAAUI,QAAQ,EAAA,EAClBlT,gBAAAA,CAAAA;QAEF,IAAI,CAACgR,IAAI,GAAG,IAAIrH,sBAAsBgJ,aAAAA,EAAe,IAAI,CAAClV,oBAAoB,EAAEuC,gBAAAA,CAAAA;QAChF,IAAI,CAACiR,IAAI,GAAG,IAAIzG,uBAAuBmI,aAAAA,EAAe,IAAI,CAAClV,oBAAoB,EAAEuC,gBAAAA,CAAAA;QACjF,IAAI,CAACkR,aAAa,GAAG,IAAIvG,+BAA+BgI,aAAAA,EAAe,IAAI,CAAClV,oBAAoB,EAAEuC,gBAAAA,CAAAA;AAClG,QAAA,IAAI,CAACmR,IAAI,GAAG,IAAIpG,qBAAAA,CAAsB+H,SAAAA,CAAU7U,OAAO,EAAA,EAAI6U,SAAAA,CAAUI,QAAQ,EAAA,EAAI,IAAI,CAACzV,oBAAoB,CAAA;QAC1G,IAAI,CAAC2T,IAAI,GAAG,IAAIvN,qBAAAA,CAAsB,IAAI,CAACtG,cAAc,EAAE,IAAI,CAACE,oBAAoB,CAAA;AACpF,QAAA,IAAI,CAAC4T,aAAa,GAAG,IAAI5E,8BAAAA,CACvB,IAAI,CAAClP,cAAc,EACnB,IAAI,CAACE,oBAAoB,EACzBuC,gBAAAA,CAAAA;AAEF,QAAA,IAAI,CAACsR,GAAG,GAAG,IAAI3E,oBAAAA,CAAqBgG,aAAAA,CAAAA;AACpC,QAAA,IAAI,CAACnC,eAAe,GAAG,IAAIsD,yBAAAA,CAAe,IAAI,CAACrW,oBAAoB,EAAE,IAAI,CAACmK,OAAO,EAAEiK,aAAAA,EAAe;AAChGkC,YAAAA,gBAAAA,EAAkBjC,OAAOiC;AAC3B,SAAA,CAAA;QACA,MAAMC,aAAAA,GAAgB,IAAIC,4BAAAA,CAAkBtB,aAAAA,EAAe3S,gBAAAA,CAAAA;;;;;QAM3D,IAAIgS,sBAAAA,IAA0B,IAAI,CAACvB,UAAU,CAACyD,iBAAiB,EAAA,CAAGtL,aAAa,EAAE;YAC/E,IAAI,CAAC4H,eAAe,CAAC2D,wBAAwB,EAAA;AAC/C,QAAA;AAEA,QAAA,MAAM,EAAE1C,iBAAiB,EAAED,oBAAoB,EAAE,GAAG4C,+BAAAA,CAAuC;YACzF3O,SAAAA,EAAW,CAAC+C,QAAU,IAAI,CAACmI,UAAU,CAAClL,SAAS,CAAC5F,YAAY,CAAC;oBAAEwU,2BAAAA,EAA6B7L;AAAM,iBAAA,CAAA;YAClG8L,eAAAA,EAAiB,CAAC9L,QAAU,IAAI,CAACqI,KAAK,CAACpL,SAAS,CAAC5F,YAAY,CAAC;oBAAEmG,qBAAAA,EAAuBwC;AAAM,iBAAA,CAAA;YAC7FqI,KAAAA,EAAO,CAACrI,OAAO1H,OAAAA,GAAY,IAAI,CAAC+P,KAAK,CAAChR,YAAY,CAAC;oBAAEkG,WAAAA,EAAayC,KAAAA;AAAO,oBAAA,GAAG1H;AAAQ,iBAAA,CAAA;YACpFgQ,GAAAA,EAAK,CAACtI,OAAO1H,OAAAA,GAAY,IAAI,CAACgQ,GAAG,CAACjR,YAAY,CAAC;oBAAEkB,SAAAA,EAAWyH,KAAAA;AAAO,oBAAA,GAAG1H;AAAQ,iBAAA,CAAA;YAC9EyT,wBAAAA,EAA0B,CAAC/L,OAAO1H,OAAAA,GAChC,IAAI,CAAC6P,UAAU,CAAC9Q,YAAY,CAAC;oBAAE2U,iBAAAA,EAAmBhM,KAAAA;AAAO,oBAAA,GAAG1H;AAAQ,iBAAA,CAAA;AACtE2T,YAAAA,0BAAAA,EAA4B,CAACjM,KAAAA,GAAU,IAAI,CAAC6I,aAAa,CAACxR,YAAY,CAAC;oBAAE6M,mBAAAA,EAAqBlE;AAAM,iBAAA;AACtG,SAAA,CAAA;QAEA,IAAI,CAACiJ,iBAAiB,GAAGA,iBAAAA;QACzB,IAAI,CAACD,oBAAoB,GAAGA,oBAAAA;AAE5BmB,QAAAA,aAAAA,CAAc+B,QAAQ,CAAC;YACrB7V,IAAAA,EAAM,+BAAA;YACN8V,OAAAA,EAAS;gBACPC,yBAAAA,EAA2B,KAAA;gBAC3BC,yBAAAA,EAA2B,KAAA;gBAC3BC,2BAAAA,EAA6B;AAC/B;AACF,SAAA,CAAA;AAEAhC,QAAAA,SAAAA,CAAUI,QAAQ,EAAA,CAAGrH,IAAI,CAAC,CAACkJ,aAAAA,GAAAA;YACzB,IAAIA,aAAAA,CAAcC,QAAQ,KAAKC,4BAAAA,EAAmB;AAChD7T,gBAAAA,iBAAAA,CAAOyG,KAAK,CACV,sMAAA,CAAA;AAEJ,YAAA;AACF,QAAA,CAAA,CAAA;AAEA,QAAA,MAAMqN,SAAAA,GAA0B;AAC9BpC,YAAAA,SAAAA;AACAS,YAAAA,kBAAAA;YACAnR,WAAAA,EAAayP,aAAAA;AACbmC,YAAAA,aAAAA;YACAmB,SAAAA,EAAW,IAAI,CAAC1E,UAAU;YAC1BkC,aAAAA,EAAeA,aAAAA;AACfgB,YAAAA;AACF,SAAA;AAEAyB,QAAAA,gCAAAA,CAAkB,IAAI,EAAEF,SAAAA,CAAAA;AAC1B,IAAA;AACF;;AC7SA;;;;;;;;;;;;AAYC,IACM,MAAMG,qBAAAA,GAAwBC,mCAAAA,CAAqB/E,eAAAA;AAE1D;;IAGO,MAAMgF,6BAAAA,GAAgCF;AAE7C;;IAGO,MAAMG,uBAAAA,GAA0BjF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.headless.cjs","sources":["../../../../core/src/HeadlessClients/b2b/HeadlessB2BSelfClient.ts","../../../../core/src/HeadlessClients/b2b/HeadlessB2BSSOClient.ts","../../../../core/src/HeadlessClients/b2b/HeadlessB2BSCIMClient.ts","../../../../core/src/HeadlessClients/b2b/HeadlessB2BOrganizationClient.ts","../../../../core/src/HeadlessClients/b2b/HeadlessB2BOAuthClient.ts","../../../../core/src/HeadlessClients/b2b/HeadlessB2BSessionClient.ts","../../../../core/src/HeadlessClients/b2b/HeadlessB2BDiscoveryClient.ts","../../../../core/src/HeadlessClients/b2b/HeadlessB2BOTPsClient.ts","../../../../core/src/HeadlessClients/b2b/HeadlessB2BTOTPsClient.ts","../../../../core/src/HeadlessClients/b2b/HeadlessB2BRecoveryCodesClient.ts","../../../../core/src/HeadlessClients/b2b/HeadlessB2BRBACClient.ts","../../../../core/src/HeadlessClients/b2b/HeadlessB2BImpersonationClient.ts","../../../../core/src/HeadlessClients/b2b/HeadlessB2BIDPClient.ts","../../../../web/src/b2b/HeadlessB2BOAuthClient.ts","../../../../web/src/b2b/oneTap/B2BOneTapProvider.ts","../../../../web/src/b2b/StytchB2BClient.ts","../../../../web/src/b2b/index.headless.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","import { IB2BSubscriptionService, IDFPProtectedAuthProvider, INetworkClient, IPKCEManager } from '../..';\nimport {\n B2BSSOCreateExternalConnectionOptions,\n B2BSSOCreateExternalConnectionResponse,\n B2BSSODeleteConnectionResponse,\n B2BSSODiscoverConnectionsResponse,\n B2BSSOGetConnectionsResponse,\n B2BSSOOIDCCreateConnectionOptions,\n B2BSSOOIDCCreateConnectionResponse,\n B2BSSOOIDCUpdateConnectionOptions,\n B2BSSOOIDCUpdateConnectionResponse,\n B2BSSOSAMLCreateConnectionOptions,\n B2BSSOSAMLCreateConnectionResponse,\n B2BSSOSAMLDeleteEncryptionPrivateKeyOptions,\n B2BSSOSAMLDeleteEncryptionPrivateKeyResponse,\n B2BSSOSAMLDeleteVerificationCertificateOptions,\n B2BSSOSAMLDeleteVerificationCertificateResponse,\n B2BSSOSAMLUpdateConnectionByURLOptions,\n B2BSSOSAMLUpdateConnectionByURLResponse,\n B2BSSOSAMLUpdateConnectionOptions,\n B2BSSOSAMLUpdateConnectionResponse,\n B2BSSOUpdateExternalConnectionOptions,\n B2BSSOUpdateExternalConnectionResponse,\n IHeadlessB2BSSOClient,\n SSOAuthenticateOptions,\n SSOAuthenticateResponse,\n SSOStartOptions,\n} from '../../public';\nimport { StytchProjectConfigurationInput } from '../../public/typeConfig';\nimport { isTestPublicToken, logger } from '../../utils';\nimport { validateInDev } from '../../utils/dev';\n\ntype DynamicConfig = Promise<{\n pkceRequiredForSso: boolean;\n}>;\ntype Config = {\n publicToken: string;\n testAPIURL: string;\n liveAPIURL: string;\n};\n\nexport class HeadlessB2BSSOClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessB2BSSOClient<TProjectConfiguration>\n{\n authenticate: (options: SSOAuthenticateOptions) => Promise<SSOAuthenticateResponse<TProjectConfiguration>>;\n\n constructor(\n protected _networkClient: INetworkClient,\n protected _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n protected _pkceManager: IPKCEManager,\n protected _dynamicConfig: DynamicConfig,\n protected _config: Config,\n protected dfpProtectedAuth: IDFPProtectedAuthProvider,\n ) {\n this.authenticate = this._subscriptionService.withUpdateSession(async (options: SSOAuthenticateOptions) => {\n validateInDev('stytch.sso.authenticate', options, {\n sso_token: 'string',\n session_duration_minutes: 'number',\n locale: 'optionalString',\n });\n\n const keyPair = await this._pkceManager.getPKPair();\n\n if (!keyPair) {\n logger.warn(\n 'No code verifier found in local storage for SSO flow.\\n' +\n 'Consider using stytch.sso.start() to add PKCE to your SSO flows for added security.\\n' +\n 'See https://stytch.com/docs/oauth#guides_pkce for more information.',\n );\n }\n\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n\n const resp = await this._networkClient.retriableFetchSDK<SSOAuthenticateResponse<TProjectConfiguration>>({\n url: '/b2b/sso/authenticate',\n method: 'POST',\n body: {\n pkce_code_verifier: keyPair?.code_verifier,\n ...options,\n dfp_telemetry_id,\n captcha_token,\n intermediate_session_token: this._subscriptionService.getIntermediateSessionToken() || undefined,\n },\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n\n this._pkceManager.clearPKPair();\n\n return resp;\n });\n }\n\n protected async getBaseApiUrl() {\n // Our TestAPIURL and LiveAPIURL should have the HTTPS protocol already attached\n // Don't add it twice!\n if (isTestPublicToken(this._config.publicToken)) {\n return this._config.testAPIURL;\n }\n return this._config.liveAPIURL;\n }\n\n async start({ connection_id, login_redirect_url, signup_redirect_url }: SSOStartOptions): Promise<void> {\n const { pkceRequiredForSso } = await this._dynamicConfig;\n const baseURL = await this.getBaseApiUrl();\n\n const startUrl = new URL(`${baseURL}/v1/public/sso/start`);\n startUrl.searchParams.set('public_token', this._config.publicToken);\n startUrl.searchParams.set('connection_id', connection_id);\n\n if (pkceRequiredForSso) {\n const keyPair = await this._pkceManager.startPKCETransaction();\n startUrl.searchParams.set('pkce_code_challenge', keyPair.code_challenge);\n } else {\n this._pkceManager.clearPKPair();\n }\n\n if (login_redirect_url) startUrl.searchParams.set('login_redirect_url', login_redirect_url);\n if (signup_redirect_url) startUrl.searchParams.set('signup_redirect_url', signup_redirect_url);\n\n this.navigate(startUrl);\n }\n\n // Public so it can be mocked in tests\n navigate(url: URL) {\n window.location.href = url.toString();\n }\n\n async getConnections(): Promise<B2BSSOGetConnectionsResponse> {\n return await this._networkClient.fetchSDK<B2BSSOGetConnectionsResponse>({\n url: '/b2b/sso',\n method: 'GET',\n });\n }\n\n async discoverConnections(emailAddress: string): Promise<B2BSSODiscoverConnectionsResponse> {\n return await this._networkClient.fetchSDK<B2BSSODiscoverConnectionsResponse>({\n url: `/b2b/sso/discovery/connections?email_address=${encodeURIComponent(emailAddress)}`,\n method: 'GET',\n });\n }\n\n async deleteConnection(connectionId: string): Promise<B2BSSODeleteConnectionResponse> {\n return this._networkClient.fetchSDK<B2BSSODeleteConnectionResponse>({\n url: `/b2b/sso/${connectionId}`,\n method: 'DELETE',\n });\n }\n\n saml = {\n createConnection: async (data: B2BSSOSAMLCreateConnectionOptions): Promise<B2BSSOSAMLCreateConnectionResponse> => {\n return await this._networkClient.fetchSDK<B2BSSOSAMLCreateConnectionResponse>({\n url: '/b2b/sso/saml',\n method: 'POST',\n body: data,\n });\n },\n updateConnection: async (data: B2BSSOSAMLUpdateConnectionOptions): Promise<B2BSSOSAMLUpdateConnectionResponse> => {\n return await this._networkClient.fetchSDK<B2BSSOSAMLUpdateConnectionResponse>({\n url: `/b2b/sso/saml/${data.connection_id}`,\n method: 'PUT',\n body: data,\n });\n },\n updateConnectionByURL: async (\n data: B2BSSOSAMLUpdateConnectionByURLOptions,\n ): Promise<B2BSSOSAMLUpdateConnectionByURLResponse> => {\n return await this._networkClient.fetchSDK<B2BSSOSAMLUpdateConnectionResponse>({\n url: `/b2b/sso/saml/${data.connection_id}/url`,\n method: 'PUT',\n body: data,\n });\n },\n deleteVerificationCertificate: async (\n data: B2BSSOSAMLDeleteVerificationCertificateOptions,\n ): Promise<B2BSSOSAMLDeleteVerificationCertificateResponse> => {\n return await this._networkClient.fetchSDK<B2BSSOSAMLDeleteVerificationCertificateResponse>({\n url: `/b2b/sso/saml/${data.connection_id}/verification_certificates/${data.certificate_id}`,\n method: 'DELETE',\n });\n },\n deleteEncryptionPrivateKey: async (\n data: B2BSSOSAMLDeleteEncryptionPrivateKeyOptions,\n ): Promise<B2BSSOSAMLDeleteEncryptionPrivateKeyResponse> => {\n return await this._networkClient.fetchSDK<B2BSSOSAMLDeleteEncryptionPrivateKeyResponse>({\n url: `/b2b/sso/saml/${data.connection_id}/encryption_private_key/${data.private_key_id}`,\n method: 'DELETE',\n });\n },\n };\n\n oidc = {\n createConnection: async (data: B2BSSOOIDCCreateConnectionOptions): Promise<B2BSSOOIDCCreateConnectionResponse> => {\n return await this._networkClient.fetchSDK<B2BSSOOIDCCreateConnectionResponse>({\n url: '/b2b/sso/oidc',\n method: 'POST',\n body: data,\n });\n },\n updateConnection: async (data: B2BSSOOIDCUpdateConnectionOptions): Promise<B2BSSOOIDCUpdateConnectionResponse> => {\n return await this._networkClient.fetchSDK<B2BSSOOIDCUpdateConnectionResponse>({\n url: `/b2b/sso/oidc/${data.connection_id}`,\n method: 'PUT',\n body: data,\n });\n },\n };\n\n external = {\n createConnection: async (\n data: B2BSSOCreateExternalConnectionOptions,\n ): Promise<B2BSSOCreateExternalConnectionResponse> => {\n return await this._networkClient.fetchSDK<B2BSSOCreateExternalConnectionResponse>({\n url: '/b2b/sso/external',\n method: 'POST',\n body: data,\n });\n },\n updateConnection: async (\n data: B2BSSOUpdateExternalConnectionOptions,\n ): Promise<B2BSSOUpdateExternalConnectionResponse> => {\n return await this._networkClient.fetchSDK<B2BSSOUpdateExternalConnectionResponse>({\n url: `/b2b/sso/external/${data.connection_id}`,\n method: 'PUT',\n body: data,\n });\n },\n };\n}\n","import {\n B2BSCIMCreateConnectionOptions,\n B2BSCIMCreateConnectionResponse,\n B2BSCIMDeleteConnectionResponse,\n B2BSCIMGetConnectionGroupsOptions,\n B2BSCIMGetConnectionGroupsResponse,\n B2BSCIMGetConnectionResponse,\n B2BSCIMRotateCancelResponse,\n B2BSCIMRotateCompleteResponse,\n B2BSCIMRotateStartResponse,\n B2BSCIMUpdateConnectionOptions,\n B2BSCIMUpdateConnectionResponse,\n IHeadlessB2BSCIMClient,\n} from '../../public/b2b/scim';\nimport { IB2BSubscriptionService, INetworkClient } from '../..';\nimport { StytchProjectConfigurationInput } from '../../public/typeConfig';\nimport { validateInDev } from '../../utils/dev';\n\nexport class HeadlessB2BSCIMClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessB2BSCIMClient\n{\n constructor(\n protected _networkClient: INetworkClient,\n protected _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n ) {}\n\n async createConnection(data: B2BSCIMCreateConnectionOptions): Promise<B2BSCIMCreateConnectionResponse> {\n validateInDev('stytch.scim.createConnection', data, {\n display_name: 'optionalString',\n identity_provider: 'optionalString',\n });\n\n return await this._networkClient.fetchSDK<B2BSCIMCreateConnectionResponse>({\n url: '/b2b/scim',\n method: 'POST',\n body: data,\n });\n }\n\n async updateConnection(data: B2BSCIMUpdateConnectionOptions): Promise<B2BSCIMUpdateConnectionResponse> {\n validateInDev('stytch.scim.updateConnection', data, {\n connection_id: 'string',\n display_name: 'optionalString',\n identity_provider: 'optionalString',\n });\n\n return await this._networkClient.fetchSDK<B2BSCIMUpdateConnectionResponse>({\n url: `/b2b/scim/${data.connection_id}`,\n method: 'PUT',\n body: data,\n });\n }\n\n async deleteConnection(connectionId: string): Promise<B2BSCIMDeleteConnectionResponse> {\n validateInDev(\n 'stytch.scim.deleteConnection',\n { connection_id: connectionId },\n {\n connection_id: 'string',\n },\n );\n\n return await this._networkClient.fetchSDK<B2BSCIMDeleteConnectionResponse>({\n url: `/b2b/scim/${connectionId}`,\n method: 'DELETE',\n });\n }\n\n async getConnection(): Promise<B2BSCIMGetConnectionResponse> {\n return await this._networkClient.fetchSDK<B2BSCIMGetConnectionResponse>({\n url: '/b2b/scim',\n method: 'GET',\n });\n }\n\n async getConnectionGroups(data: B2BSCIMGetConnectionGroupsOptions): Promise<B2BSCIMGetConnectionGroupsResponse> {\n validateInDev('stytch.scim.getConnectionGroups', data, {\n limit: 'optionalNumber',\n cursor: 'optionalString',\n });\n\n return await this._networkClient.fetchSDK<B2BSCIMGetConnectionGroupsResponse>({\n url: '/b2b/scim/groups',\n method: 'POST',\n body: data,\n });\n }\n\n async rotateStart(connectionId: string): Promise<B2BSCIMRotateStartResponse> {\n validateInDev(\n 'stytch.scim.rotateStart',\n { connectionId },\n {\n connectionId: 'string',\n },\n );\n return await this._networkClient.fetchSDK<B2BSCIMRotateStartResponse>({\n url: `/b2b/scim/rotate/start`,\n method: 'POST',\n body: { connection_id: connectionId },\n });\n }\n\n async rotateComplete(connectionId: string): Promise<B2BSCIMRotateCompleteResponse> {\n validateInDev(\n 'stytch.scim.rotateComplete',\n { connectionId },\n {\n connectionId: 'string',\n },\n );\n\n return await this._networkClient.fetchSDK<B2BSCIMRotateCompleteResponse>({\n url: `/b2b/scim/rotate/complete`,\n method: 'POST',\n body: { connection_id: connectionId },\n });\n }\n\n async rotateCancel(connectionId: string): Promise<B2BSCIMRotateCancelResponse> {\n validateInDev(\n 'stytch.scim.rotateCancel',\n { connectionId },\n {\n connectionId: 'string',\n },\n );\n\n return await this._networkClient.fetchSDK<B2BSCIMRotateCancelResponse>({\n url: `/b2b/scim/rotate/cancel`,\n method: 'POST',\n body: { connection_id: connectionId },\n });\n }\n}\n","import { INetworkClient } from '../../NetworkClient';\nimport { IB2BSubscriptionService } from '../../SubscriptionService';\nimport {\n ResponseCommon,\n Organization,\n IHeadlessB2BOrganizationClient,\n B2BOrganizationsUpdateResponse,\n B2BOrganizationsUpdateOptions,\n B2BOrganizationsDeleteResponse,\n B2BOrganizationsMembersCreateOptions,\n B2BOrganizationsMembersCreateResponse,\n B2BOrganizationsMembersDeleteResponse,\n B2BOrganizationsMembersReactivateResponse,\n B2BOrganizationsMemberDeletePasswordResponse,\n B2BOrganizationsMemberDeleteMFAPhoneNumberResponse,\n B2BOrganizationsMembersUpdateOptions,\n B2BOrganizationsMembersUpdateResponse,\n B2BOrganizationsMembersSearchResponse,\n B2BOrganizationsMembersSearchOptions,\n B2BOrganizationsMemberDeleteMFATOTPResponse,\n OrganizationInfo,\n B2BOrganizationsGetBySlugResponse,\n B2BOrganizationsGetBySlugOptions,\n B2BOrganizationsMemberUnlinkRetiredEmailOptions,\n B2BOrganizationsMemberUnlinkRetiredEmailResponse,\n B2BOrganizationsMemberStartEmailUpdateOptions,\n B2BOrganizationsMemberStartEmailUpdateResponse,\n StytchProjectConfigurationInput,\n MemberResponseCommon,\n B2BOrganizationsGetConnectedAppsResponse,\n B2BOrganizationsGetConnectedAppResponse,\n B2BOrganizationsGetConnectedAppOptions,\n B2BOrganizationsMemberGetConnectedAppsOptions,\n B2BOrganizationsMemberGetConnectedAppsResponse,\n B2BOrganizationsMemberRevokeConnectedAppOptions,\n B2BOrganizationsMemberRevokeConnectedAppResponse,\n} from '../../public';\nimport { validateInDev } from '../../utils/dev';\n\nexport class HeadlessB2BOrganizationClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessB2BOrganizationClient\n{\n constructor(\n private _networkClient: INetworkClient,\n private _apiNetworkClient: INetworkClient,\n private _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n ) {}\n\n get = async (): Promise<Organization | null> => {\n const resp = await this._networkClient.fetchSDK<{ organization: Organization } & ResponseCommon>({\n url: `/b2b/organizations/me`,\n method: 'GET',\n });\n this._subscriptionService.updateOrganization(resp.organization);\n return resp.organization;\n };\n\n getSync = (): Organization | null => {\n return this._subscriptionService.getOrganization();\n };\n\n getInfo = (): OrganizationInfo => ({\n organization: this.getSync(),\n fromCache: this._subscriptionService.getFromCache(),\n });\n\n onChange = (callback: (organization: Organization | null) => void) => {\n return this._subscriptionService.subscribeToState((state) => callback(state?.organization ?? null));\n };\n\n update = async (data: B2BOrganizationsUpdateOptions): Promise<B2BOrganizationsUpdateResponse> => {\n const resp = await this._networkClient.fetchSDK<B2BOrganizationsUpdateResponse>({\n url: `/b2b/organizations/me`,\n method: 'PUT',\n body: data,\n });\n\n this._subscriptionService.updateOrganization(resp.organization);\n return resp;\n };\n\n delete = async (): Promise<B2BOrganizationsDeleteResponse> => {\n const resp = await this._networkClient.fetchSDK<B2BOrganizationsDeleteResponse>({\n url: `/b2b/organizations/me`,\n method: 'DELETE',\n });\n\n this._subscriptionService.destroyState();\n\n return resp;\n };\n\n getBySlug = async (data: B2BOrganizationsGetBySlugOptions): Promise<B2BOrganizationsGetBySlugResponse> => {\n validateInDev('stytch.organization.getBySlug', data, {\n organization_slug: 'string',\n });\n\n return this._networkClient.fetchSDK<B2BOrganizationsGetBySlugResponse>({\n url: `/b2b/organizations/search`,\n method: 'POST',\n body: data,\n });\n };\n\n getConnectedApps = async (): Promise<B2BOrganizationsGetConnectedAppsResponse> => {\n return this._networkClient.fetchSDK<B2BOrganizationsGetConnectedAppsResponse>({\n url: '/b2b/organizations/connected_apps',\n method: 'GET',\n });\n };\n\n getConnectedApp = async (\n data: B2BOrganizationsGetConnectedAppOptions,\n ): Promise<B2BOrganizationsGetConnectedAppResponse> => {\n return this._networkClient.fetchSDK<B2BOrganizationsGetConnectedAppResponse>({\n url: `/b2b/organizations/connected_apps/${data.connected_app_id}`,\n method: 'GET',\n });\n };\n\n members = {\n create: async (data: B2BOrganizationsMembersCreateOptions): Promise<B2BOrganizationsMembersCreateResponse> => {\n return this._networkClient.fetchSDK<B2BOrganizationsMembersCreateResponse>({\n url: `/b2b/organizations/members`,\n method: 'POST',\n body: data,\n });\n },\n search: async (data: B2BOrganizationsMembersSearchOptions): Promise<B2BOrganizationsMembersSearchResponse> => {\n return this._networkClient.fetchSDK<B2BOrganizationsMembersSearchResponse>({\n url: `/b2b/organizations/me/members/search`,\n method: 'POST',\n body: data,\n });\n },\n update: async (data: B2BOrganizationsMembersUpdateOptions): Promise<B2BOrganizationsMembersUpdateResponse> => {\n const response = await this._networkClient.fetchSDK<B2BOrganizationsMembersUpdateResponse>({\n url: `/b2b/organizations/members/${data.member_id}`,\n method: 'PUT',\n body: data,\n });\n\n this.updateMemberIfSelf(response);\n return response;\n },\n deletePassword: async (passwordId: string): Promise<B2BOrganizationsMemberDeletePasswordResponse> => {\n const response = await this._networkClient.fetchSDK<B2BOrganizationsMemberDeletePasswordResponse>({\n url: `/b2b/organizations/members/passwords/${passwordId}`,\n method: 'DELETE',\n });\n\n this.updateMemberIfSelf(response);\n return response;\n },\n deleteMFAPhoneNumber: async (memberId: string): Promise<B2BOrganizationsMemberDeleteMFAPhoneNumberResponse> => {\n const response = await this._networkClient.fetchSDK<B2BOrganizationsMemberDeleteMFAPhoneNumberResponse>({\n url: `/b2b/organizations/members/mfa_phone_numbers/${memberId}`,\n method: 'DELETE',\n });\n\n this.updateMemberIfSelf(response);\n return response;\n },\n deleteMFATOTP: async (memberId: string): Promise<B2BOrganizationsMemberDeleteMFATOTPResponse> => {\n const response = await this._networkClient.fetchSDK<B2BOrganizationsMemberDeleteMFATOTPResponse>({\n url: `/b2b/organizations/members/totp/${memberId}`,\n method: 'DELETE',\n });\n\n this.updateMemberIfSelf(response);\n return response;\n },\n delete: async (memberId: string): Promise<B2BOrganizationsMembersDeleteResponse> => {\n const response = await this._networkClient.fetchSDK<B2BOrganizationsMembersDeleteResponse>({\n url: `/b2b/organizations/members/${memberId}`,\n method: 'DELETE',\n });\n\n if (memberId === this._subscriptionService.getMember()?.member_id) {\n this._subscriptionService.destroyState();\n }\n\n return response;\n },\n reactivate: async (memberId: string): Promise<B2BOrganizationsMembersReactivateResponse> => {\n return this._networkClient.fetchSDK<B2BOrganizationsMembersReactivateResponse>({\n url: `/b2b/organizations/members/${memberId}/reactivate`,\n method: 'PUT',\n });\n },\n unlinkRetiredEmail: async (\n data: B2BOrganizationsMemberUnlinkRetiredEmailOptions,\n ): Promise<B2BOrganizationsMemberUnlinkRetiredEmailResponse> => {\n const { member_id, ...body } = data;\n const response = await this._apiNetworkClient.fetchSDK<B2BOrganizationsMemberUnlinkRetiredEmailResponse>({\n url: `/b2b/organizations/members/${member_id}/unlink_retired_email`,\n method: 'POST',\n body,\n });\n\n this.updateMemberIfSelf(response);\n return response;\n },\n startEmailUpdate: async (\n data: B2BOrganizationsMemberStartEmailUpdateOptions,\n ): Promise<B2BOrganizationsMemberStartEmailUpdateResponse> => {\n const { member_id, ...body } = data;\n const response = await this._apiNetworkClient.fetchSDK<B2BOrganizationsMemberStartEmailUpdateResponse>({\n url: `/b2b/organizations/members/${member_id}/start_email_update`,\n method: 'POST',\n body,\n });\n\n this.updateMemberIfSelf(response);\n return response;\n },\n getConnectedApps: async (\n data: B2BOrganizationsMemberGetConnectedAppsOptions,\n ): Promise<B2BOrganizationsMemberGetConnectedAppsResponse> => {\n return this._networkClient.fetchSDK<B2BOrganizationsMemberGetConnectedAppsResponse>({\n url: `b2b/organizations/members/${data.member_id}/connected_apps`,\n method: 'GET',\n });\n },\n revokeConnectedApp: async (\n data: B2BOrganizationsMemberRevokeConnectedAppOptions,\n ): Promise<B2BOrganizationsMemberRevokeConnectedAppResponse> => {\n return this._networkClient.fetchSDK<B2BOrganizationsMemberRevokeConnectedAppResponse>({\n url: `/b2b/organizations/members/${data.member_id}/connected_apps/${data.connected_app_id}/revoke`,\n method: 'POST',\n });\n },\n };\n\n private updateMemberIfSelf = (response: MemberResponseCommon) => {\n if (response.member_id === this._subscriptionService.getMember()?.member_id) {\n this._subscriptionService.updateMember(response.member);\n }\n };\n}\n","import { IB2BSubscriptionService, IDFPProtectedAuthProvider, INetworkClient, IPKCEManager } from '../..';\nimport { StytchProjectConfigurationInput } from '../../public/typeConfig';\nimport {\n B2BOAuthAuthenticateOptions,\n B2BOAuthAuthenticateResponse,\n B2BOAuthDiscoveryAuthenticateResponse,\n B2BOAuthDiscoveryStartOptions,\n IHeadlessB2BOAuthClient,\n OAuthDiscoveryAuthenticateOptions,\n OAuthStartOptions,\n} from '../../public/b2b/oauth';\nimport { B2BOAuthProviders } from '../../public/b2b/ui';\nimport { isTestPublicToken, logger } from '../../utils';\nimport { validateInDev } from '../../utils/dev';\n\ntype DynamicConfig = Promise<{\n cnameDomain: null | string;\n pkceRequiredForOAuth: boolean;\n}>;\ntype Config = {\n publicToken: string;\n testAPIURL: string;\n liveAPIURL: string;\n};\n\nexport class HeadlessB2BOAuthClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessB2BOAuthClient<TProjectConfiguration>\n{\n authenticate: (options: B2BOAuthAuthenticateOptions) => Promise<B2BOAuthAuthenticateResponse<TProjectConfiguration>>;\n\n discovery: {\n authenticate: (\n data: OAuthDiscoveryAuthenticateOptions,\n ) => Promise<B2BOAuthDiscoveryAuthenticateResponse<TProjectConfiguration>>;\n };\n\n google: {\n start: (options: OAuthStartOptions) => Promise<void>;\n discovery: {\n start: (options: B2BOAuthDiscoveryStartOptions) => Promise<void>;\n };\n };\n\n microsoft: {\n start: (options: OAuthStartOptions) => Promise<void>;\n discovery: {\n start: (options: B2BOAuthDiscoveryStartOptions) => Promise<void>;\n };\n };\n\n hubspot: {\n start: (options: OAuthStartOptions) => Promise<void>;\n discovery: {\n start: (options: B2BOAuthDiscoveryStartOptions) => Promise<void>;\n };\n };\n\n slack: {\n start: (options: OAuthStartOptions) => Promise<void>;\n discovery: {\n start: (options: B2BOAuthDiscoveryStartOptions) => Promise<void>;\n };\n };\n\n github: {\n start: (options: OAuthStartOptions) => Promise<void>;\n discovery: {\n start: (options: B2BOAuthDiscoveryStartOptions) => Promise<void>;\n };\n };\n\n constructor(\n protected _networkClient: INetworkClient,\n protected _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n protected _pkceManager: IPKCEManager,\n protected _dynamicConfig: DynamicConfig,\n protected _config: Config,\n protected dfpProtectedAuth: IDFPProtectedAuthProvider,\n ) {\n this.authenticate = this._subscriptionService.withUpdateSession(async (options: B2BOAuthAuthenticateOptions) => {\n validateInDev('stytch.oauth.authenticate', options, {\n oauth_token: 'string',\n session_duration_minutes: 'number',\n locale: 'optionalString',\n });\n\n const keyPair = await this._pkceManager.getPKPair();\n\n if (!keyPair) {\n logger.warn(\n 'No code verifier found in local storage for OAuth flow.\\n' +\n 'Consider using stytch.oauth.$provider.start() to add PKCE to your OAuth flows for added security.\\n' +\n 'See https://stytch.com/docs/oauth#guides_pkce for more information.',\n );\n }\n\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n const resp = await this._networkClient.retriableFetchSDK<B2BOAuthAuthenticateResponse<TProjectConfiguration>>({\n url: '/b2b/oauth/authenticate',\n method: 'POST',\n body: {\n pkce_code_verifier: keyPair?.code_verifier,\n dfp_telemetry_id,\n captcha_token,\n intermediate_session_token: (await this._subscriptionService.getIntermediateSessionToken()) || undefined,\n ...options,\n },\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n\n this._pkceManager.clearPKPair();\n\n return resp;\n });\n\n this.discovery = {\n authenticate: this._subscriptionService.withUpdateSession(\n async (\n data: OAuthDiscoveryAuthenticateOptions,\n ): Promise<B2BOAuthDiscoveryAuthenticateResponse<TProjectConfiguration>> => {\n validateInDev('stytch.oauth.discovery.authenticate', data, {\n discovery_oauth_token: 'string',\n });\n\n const pkPair = await this._pkceManager.getPKPair();\n\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n\n const requestBody = {\n pkce_code_verifier: pkPair?.code_verifier,\n dfp_telemetry_id,\n captcha_token,\n ...data,\n };\n const resp = await this._networkClient.retriableFetchSDK<\n B2BOAuthDiscoveryAuthenticateResponse<TProjectConfiguration>\n >({\n url: '/b2b/oauth/discovery/authenticate',\n body: requestBody,\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n\n this._pkceManager.clearPKPair();\n\n return resp;\n },\n ),\n };\n\n this.google = {\n start: this.startOAuthFlow(B2BOAuthProviders.Google),\n discovery: {\n start: this.startDiscoveryOAuthFlow(B2BOAuthProviders.Google),\n },\n };\n\n this.microsoft = {\n start: this.startOAuthFlow(B2BOAuthProviders.Microsoft),\n discovery: {\n start: this.startDiscoveryOAuthFlow(B2BOAuthProviders.Microsoft),\n },\n };\n\n this.hubspot = {\n start: this.startOAuthFlow(B2BOAuthProviders.HubSpot),\n discovery: {\n start: this.startDiscoveryOAuthFlow(B2BOAuthProviders.HubSpot),\n },\n };\n\n this.slack = {\n start: this.startOAuthFlow(B2BOAuthProviders.Slack),\n discovery: {\n start: this.startDiscoveryOAuthFlow(B2BOAuthProviders.Slack),\n },\n };\n\n this.github = {\n start: this.startOAuthFlow(B2BOAuthProviders.GitHub),\n discovery: {\n start: this.startDiscoveryOAuthFlow(B2BOAuthProviders.GitHub),\n },\n };\n }\n\n protected async getBaseApiUrl() {\n const { cnameDomain } = await this._dynamicConfig;\n if (cnameDomain) {\n // The API returns cname domains without a protocol - assume HTTPS\n return `https://${cnameDomain}`;\n }\n // Our TestAPIURL and LiveAPIURL should have the HTTPS protocol already attached\n // Don't add it twice!\n if (isTestPublicToken(this._config.publicToken)) {\n return this._config.testAPIURL;\n }\n return this._config.liveAPIURL;\n }\n\n protected startOAuthFlow(providerType: B2BOAuthProviders) {\n return async (options: OAuthStartOptions): Promise<void> => {\n const {\n organization_id,\n organization_slug,\n login_redirect_url,\n signup_redirect_url,\n custom_scopes,\n provider_params,\n } = options;\n const { pkceRequiredForOAuth } = await this._dynamicConfig;\n const baseURL = await this.getBaseApiUrl();\n\n const startUrl = new URL(`${baseURL}/v1/b2b/public/oauth/${providerType}/start`);\n startUrl.searchParams.set('public_token', this._config.publicToken);\n if (organization_id && organization_id != '') {\n startUrl.searchParams.set('organization_id', organization_id);\n }\n\n if (organization_slug && organization_slug != '') {\n startUrl.searchParams.set('slug', organization_slug);\n }\n\n if (custom_scopes) {\n validateInDev(\n 'startOAuthFlow',\n { custom_scopes },\n {\n custom_scopes: 'stringArray',\n },\n );\n startUrl.searchParams.set('custom_scopes', custom_scopes.join(' '));\n }\n if (provider_params) {\n validateInDev(\n 'startOAuthFlow',\n { provider_params },\n {\n provider_params: 'optionalObject',\n },\n );\n for (const key in provider_params) {\n startUrl.searchParams.set('provider_' + key, provider_params[key]);\n }\n }\n\n if (pkceRequiredForOAuth) {\n const keyPair = await this._pkceManager.startPKCETransaction();\n startUrl.searchParams.set('pkce_code_challenge', keyPair.code_challenge);\n } else {\n this._pkceManager.clearPKPair();\n }\n\n if (login_redirect_url) startUrl.searchParams.set('login_redirect_url', login_redirect_url);\n if (signup_redirect_url) startUrl.searchParams.set('signup_redirect_url', signup_redirect_url);\n\n this.navigate(startUrl);\n };\n }\n\n protected startDiscoveryOAuthFlow(providerType: B2BOAuthProviders) {\n return async (options: B2BOAuthDiscoveryStartOptions): Promise<void> => {\n const { discovery_redirect_url, custom_scopes, provider_params } = options;\n const { pkceRequiredForOAuth } = await this._dynamicConfig;\n const baseURL = await this.getBaseApiUrl();\n\n const startUrl = new URL(`${baseURL}/v1/b2b/public/oauth/${providerType}/discovery/start`);\n startUrl.searchParams.set('public_token', this._config.publicToken);\n if (custom_scopes) {\n validateInDev(\n 'startOAuthFlow',\n { custom_scopes },\n {\n custom_scopes: 'stringArray',\n },\n );\n startUrl.searchParams.set('custom_scopes', custom_scopes.join(' '));\n }\n if (provider_params) {\n validateInDev(\n 'startOAuthFlow',\n { provider_params },\n {\n provider_params: 'optionalObject',\n },\n );\n for (const key in provider_params) {\n startUrl.searchParams.set('provider_' + key, provider_params[key]);\n }\n }\n\n if (pkceRequiredForOAuth) {\n const keyPair = await this._pkceManager.startPKCETransaction();\n startUrl.searchParams.set('pkce_code_challenge', keyPair.code_challenge);\n } else {\n this._pkceManager.clearPKPair();\n }\n\n if (discovery_redirect_url) {\n startUrl.searchParams.set('discovery_redirect_url', discovery_redirect_url);\n }\n\n this.navigate(startUrl);\n };\n }\n\n // Public so it can be mocked in tests\n navigate(url: URL) {\n window.location.href = url.toString();\n }\n}\n","import {\n 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","import {\n B2BDiscoveryIntermediateSessionsExchangeOptions,\n B2BDiscoveryIntermediateSessionsExchangeResponse,\n B2BDiscoveryOrganizationsCreateOptions,\n B2BDiscoveryOrganizationsCreateResponse,\n B2BDiscoveryOrganizationsResponse,\n IHeadlessB2BDiscoveryClient,\n StytchProjectConfigurationInput,\n} from '../../public';\nimport { INetworkClient } from '../..';\nimport { IB2BSubscriptionService } from '../..';\nimport { validateInDev } from '../../utils/dev';\n\nexport class HeadlessB2BDiscoveryClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessB2BDiscoveryClient<TProjectConfiguration>\n{\n organizations: {\n list: () => Promise<B2BDiscoveryOrganizationsResponse>;\n create: (\n data: B2BDiscoveryOrganizationsCreateOptions,\n ) => Promise<B2BDiscoveryOrganizationsCreateResponse<TProjectConfiguration>>;\n };\n\n intermediateSessions: {\n exchange: (\n data: B2BDiscoveryIntermediateSessionsExchangeOptions,\n ) => Promise<B2BDiscoveryIntermediateSessionsExchangeResponse<TProjectConfiguration>>;\n };\n\n constructor(\n private _networkClient: INetworkClient,\n private _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n ) {\n this.organizations = {\n list: async () =>\n this._networkClient.fetchSDK<B2BDiscoveryOrganizationsResponse>({\n url: '/b2b/discovery/organizations',\n body: {\n intermediate_session_token: (await this._subscriptionService.getIntermediateSessionToken()) || undefined,\n },\n method: 'POST',\n }),\n create: this._subscriptionService.withUpdateSession(\n async (\n data: B2BDiscoveryOrganizationsCreateOptions,\n ): Promise<B2BDiscoveryOrganizationsCreateResponse<TProjectConfiguration>> => {\n validateInDev('stytch.discovery.organizations.create', data, {\n session_duration_minutes: 'number',\n organization_name: 'optionalString',\n organization_slug: 'optionalString',\n organization_logo_url: 'optionalString',\n sso_jit_provisioning: 'optionalString',\n email_allowed_domains: 'optionalStringArray',\n email_invites: 'optionalString',\n auth_methods: 'optionalString',\n allowed_auth_methods: 'optionalStringArray',\n mfa_policy: 'optionalString',\n });\n\n const requestBody = {\n ...data,\n intermediate_session_token: (await this._subscriptionService.getIntermediateSessionToken()) || undefined,\n };\n\n return this._networkClient.fetchSDK<B2BDiscoveryOrganizationsCreateResponse<TProjectConfiguration>>({\n url: '/b2b/discovery/organizations/create',\n body: requestBody,\n method: 'POST',\n });\n },\n ),\n };\n\n this.intermediateSessions = {\n exchange: this._subscriptionService.withUpdateSession(\n async (\n data: B2BDiscoveryIntermediateSessionsExchangeOptions,\n ): Promise<B2BDiscoveryIntermediateSessionsExchangeResponse<TProjectConfiguration>> => {\n validateInDev('stytch.discovery.intermediateSessions.exchange', data, {\n organization_id: 'string',\n session_duration_minutes: 'number',\n locale: 'optionalString',\n });\n\n const requestBody = {\n ...data,\n intermediate_session_token: this._subscriptionService.getIntermediateSessionToken() || undefined,\n };\n return this._networkClient.fetchSDK<B2BDiscoveryIntermediateSessionsExchangeResponse<TProjectConfiguration>>({\n url: '/b2b/discovery/intermediate_sessions/exchange',\n body: requestBody,\n method: 'POST',\n });\n },\n ),\n };\n }\n}\n","import { IB2BSubscriptionService, IDFPProtectedAuthProvider, INetworkClient } from '../..';\nimport {\n B2BOTPsEmailLoginOrSignupOptions,\n B2BOTPsEmailLoginOrSignupResponse,\n B2BOTPsEmailAuthenticateOptions,\n B2BOTPsEmailAuthenticateResponse,\n B2BSMSAuthenticateOptions,\n B2BSMSAuthenticateResponse,\n B2BSMSSendOptions,\n B2BSMSSendResponse,\n IHeadlessB2BOTPsClient,\n B2BDiscoveryOTPEmailSendOptions,\n B2BDiscoveryOTPEmailSendResponse,\n B2BDiscoveryOTPEmailAuthenticateOptions,\n B2BDiscoveryOTPEmailAuthenticateResponse,\n} from '../../public/b2b/otps';\nimport { StytchProjectConfigurationInput } from '../../public/typeConfig';\n\nimport { validateInDev } from '../../utils/dev';\n\nexport class HeadlessB2BOTPsClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessB2BOTPsClient<TProjectConfiguration>\n{\n sms: {\n send: (data: B2BSMSSendOptions) => Promise<B2BSMSSendResponse>;\n authenticate: (data: B2BSMSAuthenticateOptions) => Promise<B2BSMSAuthenticateResponse<TProjectConfiguration>>;\n };\n\n email: {\n loginOrSignup: (data: B2BOTPsEmailLoginOrSignupOptions) => Promise<B2BOTPsEmailLoginOrSignupResponse>;\n authenticate: (\n data: B2BOTPsEmailAuthenticateOptions,\n ) => Promise<B2BOTPsEmailAuthenticateResponse<TProjectConfiguration>>;\n discovery: {\n send: (data: B2BDiscoveryOTPEmailSendOptions) => Promise<B2BDiscoveryOTPEmailSendResponse>;\n authenticate: (\n data: B2BDiscoveryOTPEmailAuthenticateOptions,\n ) => Promise<B2BDiscoveryOTPEmailAuthenticateResponse<TProjectConfiguration>>;\n };\n };\n\n constructor(\n private _networkClient: INetworkClient,\n private _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n private dfpProtectedAuth: IDFPProtectedAuthProvider,\n ) {\n this.sms = {\n send: async (data: B2BSMSSendOptions): Promise<B2BSMSSendResponse> => {\n validateInDev('stytch.otps.sms.send', data, {\n organization_id: 'string',\n member_id: 'string',\n mfa_phone_number: 'optionalString',\n locale: 'optionalString',\n });\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n return this._networkClient.retriableFetchSDK<B2BSMSSendResponse>({\n url: '/b2b/otps/sms/send',\n body: {\n ...data,\n dfp_telemetry_id,\n captcha_token,\n intermediate_session_token: this._subscriptionService.getIntermediateSessionToken() || undefined,\n },\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n },\n authenticate: this._subscriptionService.withUpdateSession(\n async (data: B2BSMSAuthenticateOptions): Promise<B2BSMSAuthenticateResponse<TProjectConfiguration>> => {\n validateInDev('stytch.otps.sms.authenticate', data, {\n session_duration_minutes: 'number',\n organization_id: 'string',\n member_id: 'string',\n code: 'string',\n set_mfa_enrollment: 'optionalString',\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 return this._networkClient.retriableFetchSDK<B2BSMSAuthenticateResponse<TProjectConfiguration>>({\n url: '/b2b/otps/sms/authenticate',\n body: requestBody,\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n },\n ),\n };\n\n this.email = {\n loginOrSignup: async (data: B2BOTPsEmailLoginOrSignupOptions): Promise<B2BOTPsEmailLoginOrSignupResponse> => {\n validateInDev('stytch.otps.email.loginOrSignup', data, {\n organization_id: 'string',\n email_address: 'string',\n login_template_id: 'optionalString',\n signup_template_id: 'optionalString',\n locale: 'optionalString',\n login_expiration_minutes: 'optionalNumber',\n signup_expiration_minutes: 'optionalNumber',\n });\n\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n return this._networkClient.retriableFetchSDK<B2BOTPsEmailLoginOrSignupResponse>({\n url: '/b2b/otps/email/login_or_signup',\n body: {\n ...data,\n dfp_telemetry_id,\n captcha_token,\n },\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n },\n authenticate: this._subscriptionService.withUpdateSession(\n async (\n data: B2BOTPsEmailAuthenticateOptions,\n ): Promise<B2BOTPsEmailAuthenticateResponse<TProjectConfiguration>> => {\n validateInDev('stytch.otps.email.authenticate', data, {\n code: 'string',\n email_address: 'string',\n organization_id: 'string',\n session_duration_minutes: 'number',\n locale: 'optionalString',\n });\n\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n return this._networkClient.retriableFetchSDK<B2BOTPsEmailAuthenticateResponse<TProjectConfiguration>>({\n url: '/b2b/otps/email/authenticate',\n body: {\n ...data,\n intermediate_session_token: this._subscriptionService.getIntermediateSessionToken() || undefined,\n dfp_telemetry_id,\n captcha_token,\n },\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n },\n ),\n discovery: {\n send: async (data: B2BDiscoveryOTPEmailSendOptions): Promise<B2BDiscoveryOTPEmailSendResponse> => {\n validateInDev('stytch.otps.email.discovery.send', data, {\n email_address: 'string',\n login_template_id: 'optionalString',\n locale: 'optionalString',\n discovery_expiration_minutes: 'optionalNumber',\n });\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 };\n return this._networkClient.retriableFetchSDK<B2BDiscoveryOTPEmailSendResponse>({\n url: '/b2b/otps/email/discovery/send',\n body: requestBody,\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n },\n authenticate: this._subscriptionService.withUpdateSession(\n async (\n data: B2BDiscoveryOTPEmailAuthenticateOptions,\n ): Promise<B2BDiscoveryOTPEmailAuthenticateResponse<TProjectConfiguration>> => {\n validateInDev('stytch.otps.email.discovery.authenticate', data, {\n code: 'string',\n email_address: 'string',\n });\n\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n const requestBody = {\n dfp_telemetry_id,\n captcha_token,\n ...data,\n };\n\n return this._networkClient.retriableFetchSDK<\n B2BDiscoveryOTPEmailAuthenticateResponse<TProjectConfiguration>\n >({\n url: '/b2b/otps/email/discovery/authenticate',\n body: requestBody,\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n },\n ),\n },\n };\n }\n}\n","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","import {\n IHeadlessB2BRecoveryCodesClient,\n RecoveryCodeGetResponse,\n RecoveryCodeRecoverOptions,\n RecoveryCodeRecoverResponse,\n RecoveryCodeRotateResponse,\n} from '../../public/b2b/recoveryCodes';\nimport { StytchProjectConfigurationInput } from '../../public/typeConfig';\nimport { IB2BSubscriptionService, IDFPProtectedAuthProvider, INetworkClient } from '../..';\n\nimport { validateInDev } from '../../utils/dev';\n\nexport class HeadlessB2BRecoveryCodesClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessB2BRecoveryCodesClient<TProjectConfiguration>\n{\n recover: (data: RecoveryCodeRecoverOptions) => Promise<RecoveryCodeRecoverResponse<TProjectConfiguration>>;\n\n constructor(\n private _networkClient: INetworkClient,\n private _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n private dfpProtectedAuth: IDFPProtectedAuthProvider,\n ) {\n this.recover = this._subscriptionService.withUpdateSession(\n async (data: RecoveryCodeRecoverOptions): Promise<RecoveryCodeRecoverResponse<TProjectConfiguration>> => {\n validateInDev('stytch.recoveryCodes.recover', data, {\n organization_id: 'string',\n member_id: 'string',\n recovery_code: 'string',\n session_duration_minutes: 'number',\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 return this._networkClient.retriableFetchSDK<RecoveryCodeRecoverResponse<TProjectConfiguration>>({\n url: '/b2b/recovery_codes/recover',\n body: requestBody,\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n },\n );\n }\n\n async rotate(): Promise<RecoveryCodeRotateResponse> {\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n return this._networkClient.retriableFetchSDK<RecoveryCodeRotateResponse>({\n url: '/b2b/recovery_codes/rotate',\n body: {\n dfp_telemetry_id,\n captcha_token,\n },\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n }\n\n async get(): Promise<RecoveryCodeGetResponse> {\n return this._networkClient.fetchSDK<RecoveryCodeGetResponse>({\n url: '/b2b/recovery_codes',\n method: 'GET',\n });\n }\n}\n","import { IB2BSubscriptionService } from '../../SubscriptionService';\nimport { logger } from '../../utils';\nimport { RBACPolicy, RBACPolicyRaw } from '../../rbac';\nimport { IHeadlessB2BRBACClient, PermissionsMap } from '../../public/b2b/rbac';\nimport { StytchProjectConfigurationInput } from '../../public/typeConfig';\n\ntype CachedConfig = {\n rbacPolicy: RBACPolicyRaw | null;\n};\n\ntype DynamicConfig = Promise<CachedConfig>;\n\nexport class HeadlessB2BRBACClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessB2BRBACClient\n{\n private cachedPolicy: RBACPolicy | null;\n private policyPromise: Promise<RBACPolicy>;\n constructor(\n cachedConfig: CachedConfig,\n dynamicConfig: DynamicConfig,\n private _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n ) {\n this.cachedPolicy = cachedConfig.rbacPolicy ? RBACPolicy.fromJSON(cachedConfig.rbacPolicy) : null;\n this.policyPromise = dynamicConfig.then((data) => {\n if (!data.rbacPolicy) {\n logger.error('Unable to retrieve RBAC policy from servers. Assuming caller has no permissions.');\n return new RBACPolicy([], []);\n }\n // Update the existing policy too, so isAuthorizedSync will be up-to-date\n this.cachedPolicy = RBACPolicy.fromJSON(data.rbacPolicy);\n return this.cachedPolicy;\n });\n }\n\n /**\n * Gets the effective policy for the current session by merging project policy with org custom roles\n */\n private async getEffectivePolicy(): Promise<RBACPolicy> {\n const projectPolicy = await this.policyPromise;\n const organization = this._subscriptionService.getOrganization();\n\n // If no org or no custom roles, just return project policy\n if (!organization?.custom_roles?.length) {\n return projectPolicy;\n }\n\n return projectPolicy.mergeWithCustomRoles(organization.custom_roles);\n }\n\n /**\n * Gets the effective policy synchronously for the current session\n * Uses cached policies only\n */\n private getEffectivePolicySync(): RBACPolicy | null {\n if (!this.cachedPolicy) {\n return null;\n }\n\n const organization = this._subscriptionService.getOrganization();\n\n // If no custom roles, just return project policy\n if (!organization?.custom_roles?.length) {\n return this.cachedPolicy;\n }\n\n return this.cachedPolicy.mergeWithCustomRoles(organization.custom_roles);\n }\n\n allPermissions<Permissions extends Record<string, string>>() {\n return this.getEffectivePolicy().then(\n (policy) => policy.allPermissionsForCaller(this.roleIds()) as PermissionsMap<Permissions>,\n );\n }\n\n isAuthorizedSync: IHeadlessB2BRBACClient['isAuthorizedSync'] = (resourceId, action) => {\n const effectivePolicy = this.getEffectivePolicySync();\n return !!effectivePolicy?.callerIsAuthorized(this.roleIds(), resourceId as string, action as unknown as string);\n };\n\n isAuthorized: IHeadlessB2BRBACClient['isAuthorized'] = (resourceId, action) => {\n return this.getEffectivePolicy().then((policy) =>\n policy.callerIsAuthorized(this.roleIds(), resourceId as string, action as unknown as string),\n );\n };\n\n private roleIds() {\n const session = this._subscriptionService.getSession();\n if (!session) {\n return [];\n }\n // Although session.roles is guaranteed to exist for fresh data, there is a minuscule chance\n // that the member session stored in localstorage clientside comes from before roles were added to\n // the API response - in which case session.roles will be undefined and this will crash\n // TODO: [AUTH-2294] We can safely remove this ~3mos after RBAC is released\n return session.roles ?? [];\n }\n}\n","import { IB2BSubscriptionService, IDFPProtectedAuthProvider, INetworkClient } from '../..';\nimport {\n B2BImpersonationAuthenticateOptions,\n B2BImpersonationAuthenticateResponse,\n IHeadlessB2BImpersonationClient,\n} from '../../public/b2b/impersonation';\nimport { StytchProjectConfigurationInput } from '../../public/typeConfig';\n\nimport { validateInDev } from '../../utils/dev';\n\nexport class HeadlessB2BImpersonationClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n implements IHeadlessB2BImpersonationClient<TProjectConfiguration>\n{\n authenticate: (\n data: B2BImpersonationAuthenticateOptions,\n ) => Promise<B2BImpersonationAuthenticateResponse<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: B2BImpersonationAuthenticateOptions) => {\n validateInDev('stytch.impersonation.authenticate', data, {\n impersonation_token: 'string',\n });\n const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n\n return this._networkClient.retriableFetchSDK<B2BImpersonationAuthenticateResponse<TProjectConfiguration>>({\n url: '/b2b/impersonation/authenticate',\n body: {\n ...data,\n dfp_telemetry_id,\n captcha_token,\n },\n method: 'POST',\n retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n });\n },\n );\n }\n}\n","import { INetworkClient } from '../../NetworkClient';\nimport {\n B2BOAuthAuthorizeStartOptions,\n B2BOAuthAuthorizeStartResponse,\n B2BOAuthAuthorizeSubmitOptions,\n B2BOAuthAuthorizeSubmitResponse,\n IHeadlessB2BIDPClient,\n B2BOAuthLogoutStartOptions,\n B2BOAuthLogoutStartResponse,\n} from '../../public/b2b/idp';\n\nexport class HeadlessB2BIDPClient implements IHeadlessB2BIDPClient {\n constructor(private _networkClient: INetworkClient) {}\n\n /**\n * Initiates a request for authorization of a Connected App to access a Member's account.\n *\n * Call this endpoint using the query parameters from an OAuth Authorization request. This endpoint validates various fields (scope, client_id, redirect_uri, prompt, etc...) are correct and returns relevant information for rendering an OAuth Consent Screen.\n *\n * @example\n * const response = await stytch.idp.oauthAuthorizeStart({\n * client_id: 'client_123',\n * redirect_uri: 'https://example.com/callback',\n * scope: 'openid email profile',\n * });\n */\n oauthAuthorizeStart = async (data: B2BOAuthAuthorizeStartOptions): Promise<B2BOAuthAuthorizeStartResponse> =>\n this._networkClient.fetchSDK<B2BOAuthAuthorizeStartResponse>({\n url: '/idp/b2b/oauth/authorize/start',\n method: 'POST',\n body: data,\n });\n\n /**\n * Completes a request for authorization of a Connected App to access a Member's account.\n *\n * Call this endpoint using the query parameters from an OAuth Authorization request, after previously validating those parameters using the Preflight Check API. Note that this endpoint takes in a few additional parameters the preflight check does not- state, nonce, and code_challenge.\n *\n * If the authorization was successful, the redirect_uri will contain a valid authorization_code embedded as a query parameter. If the authorization was unsuccessful, the redirect_uri will contain an OAuth2.1 error_code. In both cases, redirect the Member to the location for the response to be consumed by the Connected App.\n *\n * Exactly one of the following must be provided to identify the Member granting authorization:\n * organization_id + member_id\n * session_token\n * session_jwt\n *\n * If a session_token or session_jwt is passed, the OAuth Authorization will be linked to the Member's session for tracking purposes. One of these fields must be used if the Connected App intends to complete the Exchange Access Token flow.\n *\n * @example\n * const response = await stytch.idp.oauthAuthorizeSubmit({\n * client_id: 'client_123',\n * redirect_uri: 'https://example.com/callback',\n * scope: 'openid email profile',\n * });\n */\n oauthAuthorizeSubmit = async (data: B2BOAuthAuthorizeSubmitOptions): Promise<B2BOAuthAuthorizeSubmitResponse> =>\n this._networkClient.fetchSDK<B2BOAuthAuthorizeSubmitResponse>({\n url: '/idp/b2b/oauth/authorize/submit',\n method: 'POST',\n body: data,\n });\n\n oauthLogoutStart = async (data: B2BOAuthLogoutStartOptions): Promise<B2BOAuthLogoutStartResponse> =>\n this._networkClient.fetchSDK<B2BOAuthLogoutStartResponse>({\n url: `/b2b/oauth/logout/start`,\n method: 'POST',\n body: data,\n });\n}\n","import { OneTapRenderResult } from '../oneTap/GoogleOneTapClient';\nimport {\n IHeadlessB2BOAuthClient,\n OneTapPositions,\n StytchProjectConfigurationInput,\n StytchSDKUsageError,\n} from '@stytch/core/public';\nimport {\n HeadlessB2BOAuthClient as BaseHeadlessB2BOAuthClient,\n DisabledDFPProtectedAuthProvider,\n IDFPProtectedAuthProvider,\n INetworkClient,\n IPKCEManager,\n IB2BSubscriptionService,\n} from '@stytch/core';\nimport { B2BOneTapProvider } from './oneTap/B2BOneTapProvider';\n\nexport type B2BGoogleOneTapDiscoveryOAuthOptions = {\n /**\n * The URL that Stytch redirects to after the Google One Tap discovery flow is completed.\n * This should be a URL that verifies the request by querying Stytch's /oauth/discovery/authenticate endpoint.\n * If this value is not passed, the default discovery redirect URL that you set in your Dashboard is used.\n * If you have not set a default discovery redirect URL, an error is returned.\n */\n discovery_redirect_url?: string;\n /**\n * Controls whether clicking outside the One Tap prompt dismisses the prompt.\n * Defaults to true.\n */\n cancel_on_tap_outside?: boolean;\n};\n\nexport type B2BGoogleOneTapOAuthOptions = {\n /**\n * The ID of the organization that the end user is logging in to.\n */\n organization_id: string;\n\n /**\n * The URL that Stytch redirects to after the Google One Tap flow is completed for a member who already exists.\n * This should be a URL that verifies the request by querying Stytch's /oauth/authenticate endpoint.\n * If this value is not passed, the default login redirect URL that you set in your Dashboard is used.\n * If you have not set a default login redirect URL, an error is returned.\n */\n login_redirect_url?: string;\n\n /**\n * The URL that Stytch redirects to after the Google One Tap flow is completed for a member who does not yet exist.\n * This should be a URL that verifies the request by querying Stytch's /oauth/authenticate endpoint.\n * If this value is not passed, the default signup redirect URL that you set in your Dashboard is used.\n * If you have not set a default signup redirect URL, an error is returned.\n */\n signup_redirect_url?: string;\n /**\n * Controls whether clicking outside the One Tap prompt dismisses the prompt.\n * Defaults to true.\n */\n cancel_on_tap_outside?: boolean;\n};\n\ninterface IB2BGoogleOneTapOAuthProvider {\n discovery: {\n /**\n * Start a discovery OAuth flow by showing the Google one tap prompt in the top right corner of the user's browser.\n * You can configure this to be started by a user action (i.e Button click) or on load/render.\n * @example\n * const showGoogleOneTap = useCallback(()=> {\n * stytch.oauth.googleOneTap.discovery.start({\n * discovery_redirect_url: 'https://example.com/oauth/callback',\n * })\n * }, [stytch]);\n * return (\n * <Button onClick={showGoogleOneTap}> Show Google one tap </Button>\n * );\n *\n * @param options - A {@link B2BGoogleOneTapDiscoveryOAuthOptions} object\n *\n * @returns A {@link OneTapRenderResult} object. The result object includes if the one-tap prompt\n * was rendered, and a reason if it couldn't be rendered.\n *\n * @throws An Error if the one tap client cannot be created.\n */\n start(options?: B2BGoogleOneTapDiscoveryOAuthOptions): Promise<OneTapRenderResult>;\n };\n /**\n * Start an OAuth flow by showing the Google one tap prompt in the top right corner of the user's browser.\n * You can configure this to be started by a user action (i.e Button click) or on load/render.\n * @example\n * const showGoogleOneTap = useCallback(()=> {\n * stytch.oauth.googleOneTap.start({\n * organization_id: 'organization-test-123',\n * })\n * }, [stytch]);\n * return (\n * <Button onClick={showGoogleOneTap}> Show Google one tap </Button>\n * );\n *\n * @param options - A {@link B2BGoogleOneTapOAuthOptions} object\n *\n * @returns A {@link OneTapRenderResult} object. The result object includes if the one-tap prompt\n * was rendered, and a reason if it couldn't be rendered.\n *\n * @throws An Error if the one tap client cannot be created.\n */\n start(options?: B2BGoogleOneTapOAuthOptions): Promise<OneTapRenderResult>;\n}\n\ntype DynamicConfig = Promise<{\n cnameDomain: null | string;\n pkceRequiredForOAuth: boolean;\n}>;\ntype Config = {\n publicToken: string;\n testAPIURL: string;\n liveAPIURL: string;\n};\n\nexport interface IWebB2BOAuthClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n extends IHeadlessB2BOAuthClient<TProjectConfiguration> {\n googleOneTap: IB2BGoogleOneTapOAuthProvider;\n}\n\nexport class HeadlessB2BOAuthClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n extends BaseHeadlessB2BOAuthClient<TProjectConfiguration>\n implements IWebB2BOAuthClient<TProjectConfiguration>\n{\n constructor(\n _networkClient: INetworkClient,\n _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n _pkceManager: IPKCEManager,\n _dynamicConfig: DynamicConfig,\n _config: Config,\n _dfpProtectedAuth: IDFPProtectedAuthProvider = DisabledDFPProtectedAuthProvider(),\n private _oneTap: B2BOneTapProvider,\n ) {\n super(_networkClient, _subscriptionService, _pkceManager, _dynamicConfig, _config, _dfpProtectedAuth);\n }\n\n private startOneTapDiscovery = async (options: B2BGoogleOneTapDiscoveryOAuthOptions): Promise<OneTapRenderResult> => {\n const clientResult = await this._oneTap.createOneTapClient();\n if (!clientResult.success) {\n throw new Error(`One Tap could not load: ${clientResult.reason}`);\n }\n\n const { client } = clientResult;\n\n const onSuccessCallback = this._oneTap.createOnDiscoverySuccessHandler({\n discoveryRedirectUrl: options.discovery_redirect_url,\n onSuccess: this._oneTap.redirectOnSuccess,\n });\n\n return client.render({\n style: {\n position: OneTapPositions.floating,\n },\n callback: onSuccessCallback,\n cancelOnTapOutside: options.cancel_on_tap_outside,\n });\n };\n\n private startOneTap = async (options: B2BGoogleOneTapOAuthOptions): Promise<OneTapRenderResult> => {\n if (!options.organization_id) {\n throw new StytchSDKUsageError('stytch.oauth.googleOneTap.start', 'organization_id is a required argument');\n }\n const clientResult = await this._oneTap.createOneTapClient();\n if (!clientResult.success) {\n throw new Error(`One Tap could not load: ${clientResult.reason}`);\n }\n\n const { client } = clientResult;\n\n const onSuccessCallback = this._oneTap.createOnSuccessHandler({\n organizationId: options.organization_id,\n signupRedirectUrl: options.signup_redirect_url,\n loginRedirectUrl: options.login_redirect_url,\n onSuccess: this._oneTap.redirectOnSuccess,\n });\n\n return client.render({\n style: {\n position: OneTapPositions.floating,\n },\n callback: onSuccessCallback,\n cancelOnTapOutside: options.cancel_on_tap_outside,\n });\n };\n\n googleOneTap: IB2BGoogleOneTapOAuthProvider = {\n discovery: {\n start: this.startOneTapDiscovery,\n },\n start: this.startOneTap,\n };\n}\n","import type { CredentialResponse } from 'google-one-tap';\nimport { INetworkClient, IPKCEManager } from '@stytch/core';\nimport { ResponseCommon, StytchAPIError } from '@stytch/core/public';\nimport { GoogleOneTapClient } from '../../oneTap/GoogleOneTapClient';\nimport { loadGoogleOneTapClient } from '../../oneTap/OneTapProvider';\n\ntype B2BOneTapStartResponse = ResponseCommon & {\n google_client_id: string;\n};\n\ntype B2BOneTapSubmitResponse = ResponseCommon & {\n redirect_url: string;\n};\n\ntype OneTapNotLoadedReason =\n // These come from the API directly - err.error_type\n | 'oauth_config_not_found'\n | 'default_provider_not_allowed'\n // If we have an unhandled error :$\n | string;\n\ntype OneTapLoadResult =\n | { success: true; client: GoogleOneTapClient }\n | { success: false; reason: OneTapNotLoadedReason };\n\ntype DynamicConfig = Promise<{\n pkceRequiredForOAuth: boolean;\n}>;\n\nconst DefaultDynamicConfig = Promise.resolve({\n pkceRequiredForOAuth: false,\n});\n\n/**\n * Handles loading One Tap config from Stytch API and initializing {@link GoogleOneTapClient}\n */\nexport class B2BOneTapProvider {\n private googleClientID?: string;\n constructor(\n private _networkClient: INetworkClient,\n private _pkceManager: IPKCEManager,\n private _config: DynamicConfig = DefaultDynamicConfig,\n ) {}\n\n private async fetchGoogleStart() {\n if (this.googleClientID) {\n return this.googleClientID;\n }\n const oneTapStartResp = await this._networkClient.fetchSDK<B2BOneTapStartResponse>({\n url: '/b2b/oauth/google/onetap/start',\n method: 'GET',\n });\n this.googleClientID = oneTapStartResp.google_client_id;\n return this.googleClientID;\n }\n\n private async submitGoogleOneTapTokenDiscovery({\n credential,\n discoveryRedirectUrl,\n }: {\n credential: string;\n discoveryRedirectUrl?: string;\n }) {\n let codeChallenge = undefined;\n const { pkceRequiredForOAuth } = await this._config;\n if (pkceRequiredForOAuth) {\n const keyPair = await this._pkceManager.startPKCETransaction();\n codeChallenge = keyPair.code_challenge;\n } else {\n this._pkceManager.clearPKPair();\n }\n return await this._networkClient.fetchSDK<B2BOneTapSubmitResponse>({\n url: '/b2b/oauth/google/onetap/discovery/submit',\n method: 'POST',\n body: {\n id_token: credential,\n discovery_redirect_url: discoveryRedirectUrl,\n pkce_code_challenge: codeChallenge,\n },\n });\n }\n\n private async submitGoogleOneTapToken({\n credential,\n organizationId,\n signupRedirectUrl,\n loginRedirectUrl,\n }: {\n credential: string;\n organizationId: string;\n signupRedirectUrl?: string;\n loginRedirectUrl?: string;\n }) {\n let codeChallenge = undefined;\n const { pkceRequiredForOAuth } = await this._config;\n if (pkceRequiredForOAuth) {\n const keyPair = await this._pkceManager.startPKCETransaction();\n codeChallenge = keyPair.code_challenge;\n } else {\n this._pkceManager.clearPKPair();\n }\n return await this._networkClient.fetchSDK<B2BOneTapSubmitResponse>({\n url: '/b2b/oauth/google/onetap/submit',\n method: 'POST',\n body: {\n id_token: credential,\n organization_id: organizationId,\n signup_redirect_url: signupRedirectUrl,\n login_redirect_url: loginRedirectUrl,\n pkce_code_challenge: codeChallenge,\n },\n });\n }\n\n async createOneTapClient(): Promise<OneTapLoadResult> {\n let googleClientId: string;\n try {\n googleClientId = await this.fetchGoogleStart();\n } catch (e) {\n const err = StytchAPIError.from(e);\n return { success: false, reason: err.error_type };\n }\n\n if (googleClientId === '') {\n return { success: false, reason: 'oauth_config_not_found' };\n }\n const client = new GoogleOneTapClient(await loadGoogleOneTapClient(), googleClientId);\n return { success: true, client };\n }\n\n createOnDiscoverySuccessHandler =\n ({\n discoveryRedirectUrl,\n onSuccess,\n onError,\n }: {\n discoveryRedirectUrl?: string;\n onSuccess: (redirect_url: string) => void;\n onError?: (error: Error) => void;\n }) =>\n async (response: CredentialResponse) => {\n const { credential } = response;\n let submitPromise = this.submitGoogleOneTapTokenDiscovery({\n credential,\n discoveryRedirectUrl,\n }).then((result) => onSuccess(result.redirect_url));\n if (onError) {\n submitPromise = submitPromise.catch((error) => onError(error));\n }\n await submitPromise;\n };\n\n createOnSuccessHandler =\n ({\n organizationId,\n signupRedirectUrl,\n loginRedirectUrl,\n onSuccess,\n onError,\n }: {\n organizationId: string;\n signupRedirectUrl?: string;\n loginRedirectUrl?: string;\n onSuccess: (redirect_url: string) => void;\n onError?: (error: Error) => void;\n }) =>\n async (response: CredentialResponse) => {\n const { credential } = response;\n let submitPromise = this.submitGoogleOneTapToken({\n credential,\n organizationId,\n signupRedirectUrl,\n loginRedirectUrl,\n }).then((result) => onSuccess(result.redirect_url));\n if (onError) {\n submitPromise = submitPromise.catch((error) => onError(error));\n }\n await submitPromise;\n };\n\n redirectOnSuccess = (redirect_url: string) => {\n window.location.href = redirect_url;\n };\n}\n","import {\n checkB2BNotSSR,\n checkPublicToken,\n DFPProtectedAuthProvider,\n HeadlessB2BDiscoveryClient,\n HeadlessB2BIDPClient,\n HeadlessB2BImpersonationClient,\n HeadlessB2BMagicLinksClient,\n HeadlessB2BOrganizationClient,\n HeadlessB2BOTPsClient,\n HeadlessB2BPasswordsClient,\n HeadlessB2BRBACClient,\n HeadlessB2BRecoveryCodesClient,\n HeadlessB2BSCIMClient,\n HeadlessB2BSelfClient,\n HeadlessB2BSessionClient,\n HeadlessB2BSSOClient,\n HeadlessB2BTOTPsClient,\n INetworkClient,\n SearchDataManager,\n SessionManager,\n StateChangeClient,\n StateChangeRegisterFunction,\n VERTICAL_CONSUMER,\n logger,\n} from '@stytch/core';\nimport {\n B2BState,\n IHeadlessB2BDiscoveryClient,\n IHeadlessB2BImpersonationClient,\n IHeadlessB2BMagicLinksClient,\n IHeadlessB2BMemberClient,\n IHeadlessB2BOrganizationClient,\n IHeadlessB2BOTPsClient,\n IHeadlessB2BPasswordClient,\n IHeadlessB2BRBACClient,\n IHeadlessB2BRecoveryCodesClient,\n IHeadlessB2BSCIMClient,\n IHeadlessB2BSelfClient,\n IHeadlessB2BSessionClient,\n IHeadlessB2BSSOClient,\n IHeadlessB2BTOTPsClient,\n StytchClientOptions,\n StytchProjectConfigurationInput,\n} from '@stytch/core/public';\nimport { BootstrapDataManager } from '../BootstrapDataManager';\nimport { CaptchaProvider } from '../CaptchaProvider';\nimport { ClientsideServicesProvider } from '../ClientsideServicesProvider';\nimport { NetworkClient } from '../NetworkClient';\nimport { PKCEManager } from '../PKCEManager';\nimport { B2BSubscriptionDataLayer, B2BSubscriptionService, getB2BDataLayer } from '../SubscriptionService';\nimport { B2BInternals, writeB2BInternals } from '../utils/internal';\nimport { HeadlessB2BOAuthClient, IWebB2BOAuthClient } from './HeadlessB2BOAuthClient';\nimport { B2BOneTapProvider } from './oneTap/B2BOneTapProvider';\nimport { buildFinalConfig, hasCustomApiEndpoint } from '../utils/config';\nimport { createAuthUrlHandler, AuthenticateByUrl, ParseAuthenticateUrl } from '../utils/createAuthUrlHandler';\n\nexport type HandledTokenType =\n | 'discovery'\n | 'discovery_oauth'\n | 'oauth'\n | 'sso'\n | 'multi_tenant_magic_links'\n | 'multi_tenant_impersonation';\n\n/**\n * A headless client used for invoking Stytch's B2B APIs.\n * The Stytch Headless Client can be used as a drop-in solution for authentication and session management.\n * Full documentation can be found {@link https://stytch.com/docs/b2b/sdks/javascript-sdk online}.\n *\n * @example\n * const stytch = new StytchB2BClient('public-token-<find yours in the stytch dashboard>');\n * stytch.magicLinks.email.loginOrCreate({\n * email: 'sandbox@stytch.com',\n * organization_id: 'organization-test-123',\n * });\n */\nexport class StytchB2BClient<\n TProjectConfiguration extends StytchProjectConfigurationInput = Stytch.DefaultProjectConfiguration,\n> {\n private readonly _subscriptionService: B2BSubscriptionService<TProjectConfiguration>;\n private readonly _sessionManager: SessionManager<TProjectConfiguration>;\n private readonly _networkClient: INetworkClient;\n private readonly _dataLayer: B2BSubscriptionDataLayer;\n private readonly _stateChangeClient: StateChangeClient<B2BState>;\n\n // External API Clients\n magicLinks: IHeadlessB2BMagicLinksClient<TProjectConfiguration>;\n session: IHeadlessB2BSessionClient<TProjectConfiguration>;\n /** @deprecated Please use client.self instead. This will be removed in a future release. */\n member: IHeadlessB2BMemberClient;\n self: IHeadlessB2BSelfClient;\n organization: IHeadlessB2BOrganizationClient;\n oauth: IWebB2BOAuthClient<TProjectConfiguration>;\n sso: IHeadlessB2BSSOClient<TProjectConfiguration>;\n discovery: IHeadlessB2BDiscoveryClient<TProjectConfiguration>;\n passwords: IHeadlessB2BPasswordClient<TProjectConfiguration>;\n otps: IHeadlessB2BOTPsClient<TProjectConfiguration>;\n totp: IHeadlessB2BTOTPsClient<TProjectConfiguration>;\n recoveryCodes: IHeadlessB2BRecoveryCodesClient<TProjectConfiguration>;\n rbac: IHeadlessB2BRBACClient;\n scim: IHeadlessB2BSCIMClient;\n impersonation: IHeadlessB2BImpersonationClient;\n idp: HeadlessB2BIDPClient;\n\n // External methods\n /**\n * Register a callback function to be invoked whenever certain state changes\n * occur, like a member or session object being updated.\n *\n * This is an alternative to more specific methods like `self.onChange` and\n * `session.onChange`. It can be helpful if you want to be notified of related\n * changes to different parts of state at once.\n *\n * If you are only interested in specific state changes, consider using more\n * specific methods like `self.onChange` and `session.onChange` instead.\n */\n onStateChange: StateChangeRegisterFunction<B2BState>;\n\n /**\n * Extracts token and token type from the current page URL's query parameters.\n * If the current URL do not have the required query params, this will return null.\n * Otherwise, returns an object { handled: boolean, tokenType: string, token: string }\n */\n parseAuthenticateUrl: ParseAuthenticateUrl<HandledTokenType>;\n\n /**\n * Call this method to authenticate the user when the user has been redirected\n * to this page with a token in the query parameters, such as after OAuth\n * or through an email magic link. This method currently supports\n *\n * - Magic links\n * - OAuth\n * - SSO\n * - Impersonation\n *\n * If the current URL do not have the required query params, the promise returned will resolve to null.\n * If the token type is not supported (e.g. reset_password), the promise returned will resolve to this\n * object allowing you to handle the token.\n * {\n * handled: false,\n * tokenType: 'token_type',\n * token: '<token>'\n * }\n */\n authenticateByUrl: AuthenticateByUrl<HandledTokenType>;\n\n constructor(rawPublicToken: string, options?: StytchClientOptions) {\n checkB2BNotSSR();\n\n // Intentionally check the raw public token so that we can log a correct error message,\n // but then coalesce to an empty string so that the UI components don't fail to render.\n checkPublicToken(rawPublicToken);\n const _PUBLIC_TOKEN = rawPublicToken ?? '';\n\n // Not casting to InternalStytchClientOptions since InternalStytchClientOptions is currently a superset\n const config = buildFinalConfig(this.constructor.name, options);\n const usingCustomApiEndpoint = hasCustomApiEndpoint(_PUBLIC_TOKEN, options);\n\n this._dataLayer = getB2BDataLayer(_PUBLIC_TOKEN, config);\n this._subscriptionService = new B2BSubscriptionService(_PUBLIC_TOKEN, this._dataLayer, { usingCustomApiEndpoint });\n this._stateChangeClient = new StateChangeClient(this._subscriptionService, {});\n this.onStateChange = (...args) => this._stateChangeClient.onStateChange(...args);\n\n const additionalTelemetryDataFn = () => ({\n stytch_member_id: this._dataLayer.state?.member?.member_id,\n stytch_member_session_id: this._dataLayer.state?.session?.member_session_id,\n });\n\n const passwordsPKCEManager = new PKCEManager(this._dataLayer, 'passwords');\n\n const networkClient = new NetworkClient(\n _PUBLIC_TOKEN,\n this._dataLayer,\n config.endpoints.liveAPIURL,\n config.endpoints.testAPIURL,\n additionalTelemetryDataFn,\n );\n this._networkClient = networkClient;\n\n const bootstrap = new BootstrapDataManager(_PUBLIC_TOKEN, networkClient, this._dataLayer);\n const captcha = new CaptchaProvider(bootstrap.getAsync());\n const dfpProtectedAuth = new DFPProtectedAuthProvider(\n _PUBLIC_TOKEN,\n config.endpoints.dfpBackendURL,\n config.endpoints.dfpCdnURL,\n bootstrap.getAsync(),\n captcha.executeRecaptcha,\n );\n const clientsideServices = new ClientsideServicesProvider(config.endpoints.clientsideServicesIframeURL);\n const pkceManagerForOAuth = new PKCEManager(this._dataLayer, 'oauth');\n const oneTap = new B2BOneTapProvider(networkClient, pkceManagerForOAuth, bootstrap.getAsync());\n\n this.organization = new HeadlessB2BOrganizationClient(networkClient, networkClient, this._subscriptionService);\n this.member = new HeadlessB2BSelfClient(networkClient, networkClient, this._subscriptionService);\n this.self = new HeadlessB2BSelfClient(networkClient, networkClient, this._subscriptionService);\n this.session = new HeadlessB2BSessionClient(networkClient, this._subscriptionService);\n this.magicLinks = new HeadlessB2BMagicLinksClient(\n networkClient,\n this._subscriptionService,\n new PKCEManager(this._dataLayer, 'magic_links'),\n passwordsPKCEManager,\n bootstrap.getAsync(),\n dfpProtectedAuth,\n );\n this.oauth = new HeadlessB2BOAuthClient(\n networkClient,\n this._subscriptionService,\n pkceManagerForOAuth,\n bootstrap.getAsync(),\n {\n publicToken: _PUBLIC_TOKEN,\n testAPIURL: config.endpoints.testAPIURL,\n liveAPIURL: config.endpoints.liveAPIURL,\n },\n dfpProtectedAuth,\n oneTap,\n );\n this.sso = new HeadlessB2BSSOClient(\n networkClient,\n this._subscriptionService,\n new PKCEManager(this._dataLayer, 'sso'),\n bootstrap.getAsync(),\n {\n publicToken: _PUBLIC_TOKEN,\n testAPIURL: config.endpoints.testAPIURL,\n liveAPIURL: config.endpoints.liveAPIURL,\n },\n dfpProtectedAuth,\n );\n this.discovery = new HeadlessB2BDiscoveryClient(networkClient, this._subscriptionService);\n this.passwords = new HeadlessB2BPasswordsClient(\n networkClient,\n this._subscriptionService,\n passwordsPKCEManager,\n bootstrap.getAsync(),\n dfpProtectedAuth,\n );\n this.otps = new HeadlessB2BOTPsClient(networkClient, this._subscriptionService, dfpProtectedAuth);\n this.totp = new HeadlessB2BTOTPsClient(networkClient, this._subscriptionService, dfpProtectedAuth);\n this.recoveryCodes = new HeadlessB2BRecoveryCodesClient(networkClient, this._subscriptionService, dfpProtectedAuth);\n this.rbac = new HeadlessB2BRBACClient(bootstrap.getSync(), bootstrap.getAsync(), this._subscriptionService);\n this.scim = new HeadlessB2BSCIMClient(this._networkClient, this._subscriptionService);\n this.impersonation = new HeadlessB2BImpersonationClient(\n this._networkClient,\n this._subscriptionService,\n dfpProtectedAuth,\n );\n this.idp = new HeadlessB2BIDPClient(networkClient);\n this._sessionManager = new SessionManager(this._subscriptionService, this.session, _PUBLIC_TOKEN, {\n keepSessionAlive: config.keepSessionAlive,\n });\n const searchManager = new SearchDataManager(networkClient, dfpProtectedAuth);\n\n // If the session does not exist in localstorage (like if we are in an iframe)\n // then the cookie might still be set and we can retrieve the session via an API call.\n // If a custom API endpoint is being used, the session may be being managed by\n // HttpOnly cookies, which we can't detect.\n if (usingCustomApiEndpoint || this._dataLayer.readSessionCookie().session_token) {\n this._sessionManager.performBackgroundRefresh();\n }\n\n const { authenticateByUrl, parseAuthenticateUrl } = createAuthUrlHandler<HandledTokenType>({\n discovery: (token) => this.magicLinks.discovery.authenticate({ discovery_magic_links_token: token }),\n discovery_oauth: (token) => this.oauth.discovery.authenticate({ discovery_oauth_token: token }),\n oauth: (token, options) => this.oauth.authenticate({ oauth_token: token, ...options }),\n sso: (token, options) => this.sso.authenticate({ sso_token: token, ...options }),\n multi_tenant_magic_links: (token, options) =>\n this.magicLinks.authenticate({ magic_links_token: token, ...options }),\n multi_tenant_impersonation: (token) => this.impersonation.authenticate({ impersonation_token: token }),\n });\n\n this.authenticateByUrl = authenticateByUrl;\n this.parseAuthenticateUrl = parseAuthenticateUrl;\n\n networkClient.logEvent({\n name: 'b2b_sdk_instance_instantiated',\n details: {\n event_callback_registered: false,\n error_callback_registered: false,\n success_callback_registered: false,\n },\n });\n\n bootstrap.getAsync().then((bootstrapData) => {\n if (bootstrapData.vertical === VERTICAL_CONSUMER) {\n logger.error(\n 'This application is using a Stytch client for B2B projects, but the public token is for a Stytch Consumer project. Use a Consumer Stytch client instead, or verify that the public token is correct.',\n );\n }\n });\n\n const internals: B2BInternals = {\n bootstrap,\n clientsideServices,\n publicToken: _PUBLIC_TOKEN,\n searchManager,\n dataLayer: this._dataLayer,\n networkClient: networkClient,\n oneTap,\n };\n\n writeB2BInternals(this, internals);\n }\n}\n","import { StytchB2BClient } from './StytchB2BClient';\nimport { ssrSafeClientFactory } from '../ui/react/bindings/StytchSSRProxy';\n\n/**\n * Creates a Headless Stytch client object to call the stytch B2B APIs.\n * The Stytch client is not available serverside.\n * @example\n * const stytch = createStytchB2BClient('public-token-<find yours in the stytch dashboard>')\n *\n * return (\n * <StytchB2BProvider stytch={stytch}>\n * <App />\n * </StytchB2BProvider>\n * )\n * @returns A {@link StytchB2BClient}\n */\nexport const createStytchB2BClient = ssrSafeClientFactory(StytchB2BClient);\n\n/**\n * @deprecated Use {createStytchB2BClient()} instead\n */\nexport const createStytchB2BHeadlessClient = createStytchB2BClient;\n\n/**\n * @deprecated Use {StytchB2BClient()} instead\n */\nexport const StytchB2BHeadlessClient = StytchB2BClient;\nexport { StytchB2BClient };\n\nexport { parseOAuthAuthorizeParams, parseOAuthLogoutParams } from '../utils/idpHelpers';\nexport type { OAuthAuthorizeParams, OAuthLogoutParams } from '../utils/idpHelpers';\n\nexport * from '@stytch/core/public';\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","HeadlessB2BSSOClient","authenticate","_dynamicConfig","_config","dfpProtectedAuth","_pkceManager","saml","createConnection","updateConnection","connection_id","updateConnectionByURL","deleteVerificationCertificate","certificate_id","deleteEncryptionPrivateKey","private_key_id","oidc","external","withUpdateSession","options","sso_token","session_duration_minutes","locale","keyPair","getPKPair","logger","warn","dfp_telemetry_id","captcha_token","getDFPTelemetryIDAndCaptcha","retriableFetchSDK","pkce_code_verifier","code_verifier","intermediate_session_token","getIntermediateSessionToken","undefined","retryCallback","retryWithCaptchaAndDFP","clearPKPair","getBaseApiUrl","isTestPublicToken","publicToken","testAPIURL","liveAPIURL","start","login_redirect_url","signup_redirect_url","pkceRequiredForSso","baseURL","startUrl","URL","searchParams","set","startPKCETransaction","code_challenge","navigate","window","location","href","toString","getConnections","discoverConnections","emailAddress","encodeURIComponent","deleteConnection","connectionId","HeadlessB2BSCIMClient","display_name","identity_provider","getConnection","getConnectionGroups","limit","cursor","rotateStart","rotateComplete","rotateCancel","HeadlessB2BOrganizationClient","updateOrganization","organization","getOrganization","delete","destroyState","getBySlug","organization_slug","getConnectedApp","members","create","search","response","member_id","updateMemberIfSelf","memberId","reactivate","HeadlessB2BOAuthClient","discovery","google","microsoft","hubspot","slack","github","oauth_token","discovery_oauth_token","pkPair","requestBody","startOAuthFlow","B2BOAuthProviders","Google","startDiscoveryOAuthFlow","Microsoft","HubSpot","Slack","GitHub","cnameDomain","providerType","organization_id","custom_scopes","provider_params","pkceRequiredForOAuth","join","key","discovery_redirect_url","HeadlessB2BSessionClient","revoke","revokeForMember","_authenticate","exchange","exchangeAccessToken","attest","getSession","session","error","forceClear","UNRECOVERABLE_ERROR_TYPES","includes","error_type","initialSession","isSessionStale","member_session_id","destroySession","access_token","profile_id","token","getTokens","updateSession","tokens","session_token","session_jwt","updateTokens","HeadlessB2BDiscoveryClient","organizations","intermediateSessions","list","organization_name","organization_logo_url","sso_jit_provisioning","email_allowed_domains","email_invites","auth_methods","allowed_auth_methods","mfa_policy","HeadlessB2BOTPsClient","sms","email","send","code","set_mfa_enrollment","loginOrSignup","email_address","login_template_id","signup_template_id","login_expiration_minutes","signup_expiration_minutes","discovery_expiration_minutes","HeadlessB2BTOTPsClient","set_default_mfa","expiration_minutes","HeadlessB2BRecoveryCodesClient","recover","recovery_code","rotate","HeadlessB2BRBACClient","cachedPolicy","policyPromise","cachedConfig","dynamicConfig","isAuthorizedSync","resourceId","action","effectivePolicy","getEffectivePolicySync","callerIsAuthorized","roleIds","isAuthorized","getEffectivePolicy","then","policy","rbacPolicy","RBACPolicy","fromJSON","projectPolicy","custom_roles","length","mergeWithCustomRoles","allPermissions","allPermissionsForCaller","roles","HeadlessB2BImpersonationClient","impersonation_token","HeadlessB2BIDPClient","oauthAuthorizeStart","oauthAuthorizeSubmit","oauthLogoutStart","BaseHeadlessB2BOAuthClient","_dfpProtectedAuth","DisabledDFPProtectedAuthProvider","_oneTap","startOneTapDiscovery","clientResult","createOneTapClient","success","Error","reason","client","onSuccessCallback","createOnDiscoverySuccessHandler","discoveryRedirectUrl","onSuccess","redirectOnSuccess","render","style","position","OneTapPositions","floating","cancelOnTapOutside","cancel_on_tap_outside","startOneTap","StytchSDKUsageError","createOnSuccessHandler","organizationId","signupRedirectUrl","loginRedirectUrl","googleOneTap","DefaultDynamicConfig","Promise","resolve","B2BOneTapProvider","googleClientID","onError","credential","submitPromise","submitGoogleOneTapTokenDiscovery","result","redirect_url","catch","submitGoogleOneTapToken","fetchGoogleStart","oneTapStartResp","google_client_id","codeChallenge","id_token","pkce_code_challenge","googleClientId","e","err","StytchAPIError","from","GoogleOneTapClient","loadGoogleOneTapClient","StytchB2BClient","_sessionManager","_dataLayer","_stateChangeClient","magicLinks","self","oauth","sso","passwords","otps","totp","recoveryCodes","rbac","scim","impersonation","idp","onStateChange","parseAuthenticateUrl","authenticateByUrl","rawPublicToken","checkB2BNotSSR","checkPublicToken","_PUBLIC_TOKEN","config","buildFinalConfig","usingCustomApiEndpoint","hasCustomApiEndpoint","getB2BDataLayer","B2BSubscriptionService","StateChangeClient","args","additionalTelemetryDataFn","stytch_member_id","stytch_member_session_id","passwordsPKCEManager","PKCEManager","networkClient","NetworkClient","endpoints","bootstrap","BootstrapDataManager","captcha","CaptchaProvider","getAsync","DFPProtectedAuthProvider","dfpBackendURL","dfpCdnURL","executeRecaptcha","clientsideServices","ClientsideServicesProvider","clientsideServicesIframeURL","pkceManagerForOAuth","oneTap","HeadlessB2BMagicLinksClient","HeadlessB2BPasswordsClient","SessionManager","keepSessionAlive","searchManager","SearchDataManager","readSessionCookie","performBackgroundRefresh","createAuthUrlHandler","discovery_magic_links_token","discovery_oauth","multi_tenant_magic_links","magic_links_token","multi_tenant_impersonation","logEvent","details","event_callback_registered","error_callback_registered","success_callback_registered","bootstrapData","vertical","VERTICAL_CONSUMER","internals","dataLayer","writeB2BInternals","createStytchB2BClient","ssrSafeClientFactory","createStytchB2BHeadlessClient","StytchB2BHeadlessClient"],"mappings":"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"}