@stytch/vanilla-js 6.0.9 → 6.0.11

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 (61) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/cjs/{StytchSSRProxy-DjO95TII.js → StytchSSRProxy-BG8v1Uf6.js} +19 -23
  3. package/dist/cjs/StytchSSRProxy-BG8v1Uf6.js.map +1 -0
  4. package/dist/cjs/b2b/index.cjs +47 -39
  5. package/dist/cjs/b2b/index.cjs.map +1 -1
  6. package/dist/cjs/b2b/index.headless.cjs +1 -1
  7. package/dist/cjs/index.cjs +2 -2
  8. package/dist/cjs/index.headless.cjs +1 -1
  9. package/dist/cjs/{shadcn-DnwRqCY0.js → shadcn-Ds1x7jpl.js} +2 -2
  10. package/dist/cjs/{shadcn-DnwRqCY0.js.map → shadcn-Ds1x7jpl.js.map} +1 -1
  11. package/dist/cjs-dev/{StytchSSRProxy-t6BtsVJa.js → StytchSSRProxy-CCpBazSd.js} +19 -23
  12. package/dist/cjs-dev/StytchSSRProxy-CCpBazSd.js.map +1 -0
  13. package/dist/cjs-dev/b2b/index.cjs +47 -39
  14. package/dist/cjs-dev/b2b/index.cjs.map +1 -1
  15. package/dist/cjs-dev/b2b/index.headless.cjs +1 -1
  16. package/dist/cjs-dev/index.cjs +2 -2
  17. package/dist/cjs-dev/index.headless.cjs +1 -1
  18. package/dist/cjs-dev/{shadcn-C7p3HE31.js → shadcn-YlPYvF-0.js} +2 -2
  19. package/dist/cjs-dev/{shadcn-C7p3HE31.js.map → shadcn-YlPYvF-0.js.map} +1 -1
  20. package/dist/esm/node_modules/js-cookie/dist/js.cookie.mjs +17 -21
  21. package/dist/esm/node_modules/js-cookie/dist/js.cookie.mjs.map +1 -1
  22. package/dist/esm/packages/web/src/NetworkClient.mjs +1 -1
  23. package/dist/esm/packages/web/src/ui/b2b/screens/EmailForm.mjs +1 -20
  24. package/dist/esm/packages/web/src/ui/b2b/screens/EmailForm.mjs.map +1 -1
  25. package/dist/esm/packages/web/src/ui/b2b/screens/PasswordEmailForm.mjs +42 -37
  26. package/dist/esm/packages/web/src/ui/b2b/screens/PasswordEmailForm.mjs.map +1 -1
  27. package/dist/esm/packages/web/src/ui/b2b/screens/useParseErrorMessage.mjs +28 -0
  28. package/dist/esm/packages/web/src/ui/b2b/screens/useParseErrorMessage.mjs.map +1 -0
  29. package/dist/esm-dev/node_modules/js-cookie/dist/js.cookie.mjs +17 -21
  30. package/dist/esm-dev/node_modules/js-cookie/dist/js.cookie.mjs.map +1 -1
  31. package/dist/esm-dev/packages/web/src/NetworkClient.mjs +1 -1
  32. package/dist/esm-dev/packages/web/src/ui/b2b/screens/EmailForm.mjs +1 -20
  33. package/dist/esm-dev/packages/web/src/ui/b2b/screens/EmailForm.mjs.map +1 -1
  34. package/dist/esm-dev/packages/web/src/ui/b2b/screens/PasswordEmailForm.mjs +42 -37
  35. package/dist/esm-dev/packages/web/src/ui/b2b/screens/PasswordEmailForm.mjs.map +1 -1
  36. package/dist/esm-dev/packages/web/src/ui/b2b/screens/useParseErrorMessage.mjs +28 -0
  37. package/dist/esm-dev/packages/web/src/ui/b2b/screens/useParseErrorMessage.mjs.map +1 -0
  38. package/dist/iife/b2b/index.headless.js +1 -1
  39. package/dist/iife/b2b/index.headless.js.map +1 -1
  40. package/dist/iife/b2b/index.js +3 -3
  41. package/dist/iife/b2b/index.js.map +1 -1
  42. package/dist/iife/index.headless.js +1 -1
  43. package/dist/iife/index.headless.js.map +1 -1
  44. package/dist/iife/index.js +1 -1
  45. package/dist/iife/index.js.map +1 -1
  46. package/dist/types/{DFPProtectedAuthProvider-Cg2QSi2l.d.ts → DFPProtectedAuthProvider-DQV4qHPT.d.ts} +1 -1
  47. package/dist/types/{GoogleOneTapClient-iv3nb_kU.d.ts → GoogleOneTapClient-BITSM9oM.d.ts} +1 -1
  48. package/dist/types/{PresentationConfig-CxQiKzO8.d.ts → PresentationConfig-BjjsTM1r.d.ts} +1 -1
  49. package/dist/types/{StytchB2BClient-C-2u87oo.d.ts → StytchB2BClient-DkrU-AQy.d.ts} +2 -2
  50. package/dist/types/{StytchClient-CCLs7DV6.d.ts → StytchClient-CUz_XnTa.d.ts} +2 -2
  51. package/dist/types/adminPortal/index.d.ts +5 -5
  52. package/dist/types/b2b/index.d.ts +9 -9
  53. package/dist/types/b2b/index.headless.d.ts +5 -5
  54. package/dist/types/compat.d.ts +2 -2
  55. package/dist/types/{idpHelpers-CxSGKrN9.d.ts → idpHelpers-DsFYR_P9.d.ts} +1 -1
  56. package/dist/types/index.d.ts +9 -9
  57. package/dist/types/index.headless.d.ts +5 -5
  58. package/dist/types/{themes-MdCoynbd.d.ts → themes-LfxL9FBW.d.ts} +5 -5
  59. package/package.json +1 -1
  60. package/dist/cjs/StytchSSRProxy-DjO95TII.js.map +0 -1
  61. package/dist/cjs-dev/StytchSSRProxy-t6BtsVJa.js.map +0 -1
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var shadcn = require('../shadcn-C7p3HE31.js');
3
+ var shadcn = require('../shadcn-YlPYvF-0.js');
4
4
  var uniqueId = require('../uniqueId-WccE1cND.js');
5
5
  var storage = require('../storage-oBuQ7FjD.js');
6
6
  var index$1 = require('../index-BqBnZFEu.js');
7
7
  var dev = require('../dev-DSQ2JLWy.js');
8
- var StytchSSRProxy = require('../StytchSSRProxy-t6BtsVJa.js');
8
+ var StytchSSRProxy = require('../StytchSSRProxy-CCpBazSd.js');
9
9
  var SDKErrors = require('../SDKErrors-CyFa69Ys.js');
10
10
  var b2b_index_headless = require('./index.headless.cjs');
11
11
 
@@ -1735,7 +1735,9 @@ const JIT_PROVISIONING_ERRORS = [
1735
1735
  'email_jit_provisioning_not_allowed',
1736
1736
  'invalid_email_for_jit_provisioning'
1737
1737
  ];
1738
- const useParseErrorMessage = ()=>{
1738
+ /**
1739
+ * Translates error message to user friendlier format including handling for JIT errors
1740
+ */ const useParseErrorMessage = ()=>{
1739
1741
  const { i18n: $__i18n, _: $__ } = uniqueId.useLingui();
1740
1742
  return (error, { email, org: organizationName })=>{
1741
1743
  if (JIT_PROVISIONING_ERRORS.includes(error.error_type)) {
@@ -1751,6 +1753,7 @@ const useParseErrorMessage = ()=>{
1751
1753
  return shadcn.getTranslatedError(error, $__);
1752
1754
  };
1753
1755
  };
1756
+
1754
1757
  const EmailForm = ({ showPasswordButton })=>{
1755
1758
  const [state, dispatch] = shadcn.useGlobalReducer();
1756
1759
  const [emailInput, setEmailInput] = uniqueId.h(state.formState.passwordState.email);
@@ -2332,48 +2335,52 @@ const PasswordsAuthenticate = ()=>{
2332
2335
  const PasswordsEmailForm = ()=>{
2333
2336
  const [, dispatch] = shadcn.useGlobalReducer();
2334
2337
  const { i18n: $__i18n, _: $__ } = uniqueId.useLingui();
2338
+ const parseErrorMessages = useParseErrorMessage();
2335
2339
  const { stytch, email, setEmail, password, setPassword, organization, errorMessage, setErrorMessage, isSubmitting, setIsSubmitting, submitPassword, submitDiscoveryPassword, handleNonMemberReset } = usePasswordInput();
2336
2340
  const [hideInput, setHideInput] = uniqueId.h(!!organization && !email);
2337
2341
  const handleSubmit = async (e)=>{
2338
2342
  e.preventDefault();
2339
- if (organization) {
2340
- const organization_id = organization.organization_id;
2341
- // If we have processed the email, submit the password field
2342
- if (!hideInput) {
2343
- submitPassword(organization_id);
2344
- return;
2345
- }
2346
- // Validate we have a member with a password. Otherwise, check if we can jit
2347
- // provision and kickoff verification and session reset
2348
- if (!email.match(storage.EMAIL_REGEX)) {
2349
- setErrorMessage($__i18n._({
2350
- id: "error.invalidEmailAddress",
2351
- message: "Invalid email address"
2352
- }));
2353
- return;
2354
- }
2355
- setErrorMessage('');
2356
- setIsSubmitting(true);
2357
- storage.readB2BInternals(stytch).searchManager.searchMember(email, organization.organization_id).then(({ member })=>{
2358
- if (member) {
2359
- setHideInput(false);
2360
- setIsSubmitting(false);
2361
- dispatch({
2362
- type: 'set_password_state',
2363
- email
2364
- });
2365
- return;
2366
- }
2367
- // No member password flow: verify email and use reset by session
2368
- handleNonMemberReset();
2369
- }).catch((err)=>{
2370
- setIsSubmitting(false);
2371
- setErrorMessage(shadcn.getTranslatedError(err, $__));
2372
- });
2373
- } else {
2343
+ if (!organization) {
2374
2344
  // Discovery flow
2375
2345
  submitDiscoveryPassword();
2346
+ return;
2376
2347
  }
2348
+ const organization_id = organization.organization_id;
2349
+ // If we have processed the email, submit the password field
2350
+ if (!hideInput) {
2351
+ submitPassword(organization_id);
2352
+ return;
2353
+ }
2354
+ // Validate we have a member with a password. Otherwise, check if we can jit
2355
+ // provision and kickoff verification and session reset
2356
+ if (!email.match(storage.EMAIL_REGEX)) {
2357
+ setErrorMessage($__i18n._({
2358
+ id: "error.invalidEmailAddress",
2359
+ message: "Invalid email address"
2360
+ }));
2361
+ return;
2362
+ }
2363
+ setErrorMessage('');
2364
+ setIsSubmitting(true);
2365
+ storage.readB2BInternals(stytch).searchManager.searchMember(email, organization.organization_id).then(({ member })=>{
2366
+ if (member) {
2367
+ setHideInput(false);
2368
+ setIsSubmitting(false);
2369
+ dispatch({
2370
+ type: 'set_password_state',
2371
+ email
2372
+ });
2373
+ return;
2374
+ }
2375
+ // No member password flow: verify email and use reset by session
2376
+ handleNonMemberReset();
2377
+ }).catch((err)=>{
2378
+ setIsSubmitting(false);
2379
+ setErrorMessage(parseErrorMessages(err, {
2380
+ email,
2381
+ org: organization_id
2382
+ }));
2383
+ });
2377
2384
  };
2378
2385
  const onGetHelp = ()=>{
2379
2386
  dispatch({
@@ -2391,7 +2398,8 @@ const PasswordsEmailForm = ()=>{
2391
2398
  gap: 2
2392
2399
  }, /*#__PURE__*/ uniqueId.wn.createElement(shadcn.EmailInput, {
2393
2400
  email: email,
2394
- setEmail: setEmail
2401
+ setEmail: setEmail,
2402
+ error: hideInput ? errorMessage : undefined
2395
2403
  }), !hideInput && /*#__PURE__*/ uniqueId.wn.createElement(shadcn.PasswordInput, {
2396
2404
  password: password,
2397
2405
  setPassword: setPassword,