@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,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var shadcn = require('../shadcn-DnwRqCY0.js');
3
+ var shadcn = require('../shadcn-Ds1x7jpl.js');
4
4
  var uniqueId = require('../uniqueId-D9puNTGE.js');
5
5
  var storage = require('../storage-MqgW9SGA.js');
6
6
  var index$1 = require('../index-Co6H7mej.js');
7
- var StytchSSRProxy = require('../StytchSSRProxy-DjO95TII.js');
7
+ var StytchSSRProxy = require('../StytchSSRProxy-BG8v1Uf6.js');
8
8
  var b2b_index_headless = require('./index.headless.cjs');
9
9
 
10
10
  const SSOIcon = ({ size = shadcn.DEFAULT_ICON_SIZE, ...props })=>/*#__PURE__*/ uniqueId.wn.createElement("svg", {
@@ -1731,7 +1731,9 @@ const JIT_PROVISIONING_ERRORS = [
1731
1731
  'email_jit_provisioning_not_allowed',
1732
1732
  'invalid_email_for_jit_provisioning'
1733
1733
  ];
1734
- const useParseErrorMessage = ()=>{
1734
+ /**
1735
+ * Translates error message to user friendlier format including handling for JIT errors
1736
+ */ const useParseErrorMessage = ()=>{
1735
1737
  const { i18n: $__i18n, _: $__ } = uniqueId.useLingui();
1736
1738
  return (error, { email, org: organizationName })=>{
1737
1739
  if (JIT_PROVISIONING_ERRORS.includes(error.error_type)) {
@@ -1747,6 +1749,7 @@ const useParseErrorMessage = ()=>{
1747
1749
  return shadcn.getTranslatedError(error, $__);
1748
1750
  };
1749
1751
  };
1752
+
1750
1753
  const EmailForm = ({ showPasswordButton })=>{
1751
1754
  const [state, dispatch] = shadcn.useGlobalReducer();
1752
1755
  const [emailInput, setEmailInput] = uniqueId.h(state.formState.passwordState.email);
@@ -2328,48 +2331,52 @@ const PasswordsAuthenticate = ()=>{
2328
2331
  const PasswordsEmailForm = ()=>{
2329
2332
  const [, dispatch] = shadcn.useGlobalReducer();
2330
2333
  const { i18n: $__i18n, _: $__ } = uniqueId.useLingui();
2334
+ const parseErrorMessages = useParseErrorMessage();
2331
2335
  const { stytch, email, setEmail, password, setPassword, organization, errorMessage, setErrorMessage, isSubmitting, setIsSubmitting, submitPassword, submitDiscoveryPassword, handleNonMemberReset } = usePasswordInput();
2332
2336
  const [hideInput, setHideInput] = uniqueId.h(!!organization && !email);
2333
2337
  const handleSubmit = async (e)=>{
2334
2338
  e.preventDefault();
2335
- if (organization) {
2336
- const organization_id = organization.organization_id;
2337
- // If we have processed the email, submit the password field
2338
- if (!hideInput) {
2339
- submitPassword(organization_id);
2340
- return;
2341
- }
2342
- // Validate we have a member with a password. Otherwise, check if we can jit
2343
- // provision and kickoff verification and session reset
2344
- if (!email.match(storage.EMAIL_REGEX)) {
2345
- setErrorMessage($__i18n._({
2346
- id: "error.invalidEmailAddress",
2347
- message: "Invalid email address"
2348
- }));
2349
- return;
2350
- }
2351
- setErrorMessage('');
2352
- setIsSubmitting(true);
2353
- storage.readB2BInternals(stytch).searchManager.searchMember(email, organization.organization_id).then(({ member })=>{
2354
- if (member) {
2355
- setHideInput(false);
2356
- setIsSubmitting(false);
2357
- dispatch({
2358
- type: 'set_password_state',
2359
- email
2360
- });
2361
- return;
2362
- }
2363
- // No member password flow: verify email and use reset by session
2364
- handleNonMemberReset();
2365
- }).catch((err)=>{
2366
- setIsSubmitting(false);
2367
- setErrorMessage(shadcn.getTranslatedError(err, $__));
2368
- });
2369
- } else {
2339
+ if (!organization) {
2370
2340
  // Discovery flow
2371
2341
  submitDiscoveryPassword();
2342
+ return;
2372
2343
  }
2344
+ const organization_id = organization.organization_id;
2345
+ // If we have processed the email, submit the password field
2346
+ if (!hideInput) {
2347
+ submitPassword(organization_id);
2348
+ return;
2349
+ }
2350
+ // Validate we have a member with a password. Otherwise, check if we can jit
2351
+ // provision and kickoff verification and session reset
2352
+ if (!email.match(storage.EMAIL_REGEX)) {
2353
+ setErrorMessage($__i18n._({
2354
+ id: "error.invalidEmailAddress",
2355
+ message: "Invalid email address"
2356
+ }));
2357
+ return;
2358
+ }
2359
+ setErrorMessage('');
2360
+ setIsSubmitting(true);
2361
+ storage.readB2BInternals(stytch).searchManager.searchMember(email, organization.organization_id).then(({ member })=>{
2362
+ if (member) {
2363
+ setHideInput(false);
2364
+ setIsSubmitting(false);
2365
+ dispatch({
2366
+ type: 'set_password_state',
2367
+ email
2368
+ });
2369
+ return;
2370
+ }
2371
+ // No member password flow: verify email and use reset by session
2372
+ handleNonMemberReset();
2373
+ }).catch((err)=>{
2374
+ setIsSubmitting(false);
2375
+ setErrorMessage(parseErrorMessages(err, {
2376
+ email,
2377
+ org: organization_id
2378
+ }));
2379
+ });
2373
2380
  };
2374
2381
  const onGetHelp = ()=>{
2375
2382
  dispatch({
@@ -2387,7 +2394,8 @@ const PasswordsEmailForm = ()=>{
2387
2394
  gap: 2
2388
2395
  }, /*#__PURE__*/ uniqueId.wn.createElement(shadcn.EmailInput, {
2389
2396
  email: email,
2390
- setEmail: setEmail
2397
+ setEmail: setEmail,
2398
+ error: hideInput ? errorMessage : undefined
2391
2399
  }), !hideInput && /*#__PURE__*/ uniqueId.wn.createElement(shadcn.PasswordInput, {
2392
2400
  password: password,
2393
2401
  setPassword: setPassword,