@frontegg/redux-store 7.11.0-alpha.0 → 7.12.0-alpha.0

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 (57) hide show
  1. package/auth/ActivateAccountState/actions.js +1 -4
  2. package/auth/LoginState/actions/afterAuthNavigation.actions.js +12 -10
  3. package/auth/LoginState/actions/handleVerifyMFAResponse.actions.js +1 -2
  4. package/auth/LoginState/actions/hostedLoginAuthorize.actions.js +10 -10
  5. package/auth/LoginState/actions/index.js +24 -23
  6. package/auth/LoginState/actions/mfaRequiredState.actions.js +1 -2
  7. package/auth/LoginState/actions/mfaWithAuthenticator.actions.js +1 -2
  8. package/auth/LoginState/helpers.js +4 -5
  9. package/auth/PasskeysState/actions.js +2 -3
  10. package/auth/SocialLoginState/actions.js +3 -4
  11. package/auth/StepUpState/actions/generateStepUpSession.actions.js +1 -3
  12. package/auth/StepUpState/actions/stepUpHostedLogin.actions.js +2 -3
  13. package/auth/StepUpState/helpers.d.ts +2 -2
  14. package/auth/StepUpState/helpers.js +6 -7
  15. package/helpers/gtm.js +2 -4
  16. package/helpers/index.d.ts +1 -0
  17. package/helpers/index.js +2 -1
  18. package/helpers/random.js +1 -2
  19. package/index.d.ts +1 -0
  20. package/index.js +2 -1
  21. package/interfaces.d.ts +11 -0
  22. package/node/auth/ActivateAccountState/actions.js +1 -4
  23. package/node/auth/LoginState/actions/afterAuthNavigation.actions.js +12 -10
  24. package/node/auth/LoginState/actions/handleVerifyMFAResponse.actions.js +1 -2
  25. package/node/auth/LoginState/actions/hostedLoginAuthorize.actions.js +10 -10
  26. package/node/auth/LoginState/actions/index.js +22 -21
  27. package/node/auth/LoginState/actions/mfaRequiredState.actions.js +1 -2
  28. package/node/auth/LoginState/actions/mfaWithAuthenticator.actions.js +1 -2
  29. package/node/auth/LoginState/helpers.js +4 -5
  30. package/node/auth/PasskeysState/actions.js +2 -3
  31. package/node/auth/SocialLoginState/actions.js +3 -4
  32. package/node/auth/StepUpState/actions/generateStepUpSession.actions.js +1 -2
  33. package/node/auth/StepUpState/actions/stepUpHostedLogin.actions.js +2 -3
  34. package/node/auth/StepUpState/helpers.js +6 -7
  35. package/node/helpers/gtm.js +2 -4
  36. package/node/helpers/index.js +11 -0
  37. package/node/helpers/random.js +1 -2
  38. package/node/index.js +12 -1
  39. package/node/toolkit/FronteggNativeModule.js +4 -10
  40. package/node/toolkit/index.js +2 -26
  41. package/node/toolkit/store.js +3 -1
  42. package/node/valtio/utils/devtools.js +1 -1
  43. package/package.json +1 -1
  44. package/toolkit/FronteggNativeModule.js +4 -10
  45. package/toolkit/index.d.ts +0 -3
  46. package/toolkit/index.js +1 -4
  47. package/toolkit/store.js +3 -1
  48. package/valtio/utils/devtools.js +1 -1
  49. package/node/toolkit/LocalStorage.js +0 -84
  50. package/node/toolkit/SessionStorage.js +0 -84
  51. package/node/toolkit/WindowLocation.js +0 -291
  52. package/toolkit/LocalStorage.d.ts +0 -45
  53. package/toolkit/LocalStorage.js +0 -77
  54. package/toolkit/SessionStorage.d.ts +0 -45
  55. package/toolkit/SessionStorage.js +0 -77
  56. package/toolkit/WindowLocation.d.ts +0 -160
  57. package/toolkit/WindowLocation.js +0 -284
@@ -10,7 +10,6 @@ var _helpers = require("../helpers");
10
10
  var _constants = require("../../../constants");
11
11
  var _consts = require("../../StepUpState/consts");
12
12
  var _helpers2 = require("../../../helpers");
13
- var _toolkit = require("../../../toolkit");
14
13
  var _helpers3 = require("../../StepUpState/helpers");
15
14
  var _default = (store, api, sharedActions) => {
16
15
  const actions = sharedActions;
@@ -23,10 +22,11 @@ var _default = (store, api, sharedActions) => {
23
22
  * In case the url is equal to the window.location.origin, it will return an empty string
24
23
  */
25
24
  function cleanUrlIfSameOrigin(url) {
26
- if (!url.startsWith(_toolkit.WindowLocation.origin)) {
25
+ var _window, _window2;
26
+ if (!url.startsWith((_window = window) == null ? void 0 : _window.location.origin)) {
27
27
  return url;
28
28
  }
29
- return url.replace(_toolkit.WindowLocation.origin, '');
29
+ return url.replace((_window2 = window) == null ? void 0 : _window2.location.origin, '');
30
30
  }
31
31
 
32
32
  /**
@@ -77,11 +77,11 @@ var _default = (store, api, sharedActions) => {
77
77
  socialLoginCallbackUrl,
78
78
  activateUrl
79
79
  } = routes;
80
- let finalUrl = await _toolkit.LocalStorage.getItem(_constants.FRONTEGG_AFTER_AUTH_REDIRECT_URL);
80
+ let finalUrl = window.localStorage.getItem(_constants.FRONTEGG_AFTER_AUTH_REDIRECT_URL);
81
81
  if (!finalUrl || [loginUrl, logoutUrl, socialLoginCallbackUrl, activateUrl].includes(finalUrl)) {
82
82
  finalUrl = authenticatedUrl;
83
83
  }
84
- const redirectUrl = await (0, _helpers.getRedirectUrl)({
84
+ const redirectUrl = (0, _helpers.getRedirectUrl)({
85
85
  authenticatedUrl: finalUrl,
86
86
  includeQueryParam,
87
87
  enforceRedirectToSameSite,
@@ -115,10 +115,11 @@ var _default = (store, api, sharedActions) => {
115
115
  // we don't want to remove the FRONTEGG_AFTER_AUTH_REDIRECT_URL when we are in the step up flow
116
116
  redirectUrl = forceStepUpUrl;
117
117
  } else {
118
+ var _window3;
118
119
  if (shouldStepUpDuringLogin) {
119
120
  // getUrlForAfterAuthNavigation give priority to the redirectUrl
120
121
  // avoiding use of getUrlForAfterAuthNavigation because we don't want to use the redirectUrl for magic link for example
121
- const localStorageRedirectUrl = await _toolkit.LocalStorage.getItem(_constants.FRONTEGG_AFTER_AUTH_REDIRECT_URL);
122
+ const localStorageRedirectUrl = window.localStorage.getItem(_constants.FRONTEGG_AFTER_AUTH_REDIRECT_URL);
122
123
  if (localStorageRedirectUrl && !(0, _helpers.isAbsoluteUrl)(localStorageRedirectUrl)) {
123
124
  redirectUrl = localStorageRedirectUrl;
124
125
  }
@@ -129,7 +130,7 @@ var _default = (store, api, sharedActions) => {
129
130
  preventRedirectUrlOriginCleaning
130
131
  });
131
132
  }
132
- await _toolkit.LocalStorage.removeItem(_constants.FRONTEGG_AFTER_AUTH_REDIRECT_URL);
133
+ (_window3 = window) == null ? void 0 : _window3.localStorage.removeItem(_constants.FRONTEGG_AFTER_AUTH_REDIRECT_URL);
133
134
  }
134
135
  await (0, _helpers2.delay)(200);
135
136
  await resetStateAction();
@@ -143,17 +144,18 @@ var _default = (store, api, sharedActions) => {
143
144
  * Handling also step up scenario when user silently logout to continue to step up
144
145
  */
145
146
  const afterAuthNavigation = async payload => {
146
- var _payload$preventRedir;
147
+ var _window4, _payload$preventRedir;
147
148
  const {
148
149
  customLoginAuthenticatedUrl,
149
150
  stepUpUrl
150
151
  } = store.auth.routes;
151
152
 
152
153
  // login with magic code, try to step up, no other mfa, invalid max age, force_enroll -> logout, login with first factor, not-stepped up jwt -> navigate to step up
153
- const shouldStepUp = await _toolkit.LocalStorage.getItem(_consts.SHOULD_STEP_UP_KEY);
154
+ const shouldStepUp = (_window4 = window) == null ? void 0 : _window4.localStorage.getItem(_consts.SHOULD_STEP_UP_KEY);
154
155
  const user = store.auth.user;
155
156
  if (shouldStepUp) {
156
- await _toolkit.LocalStorage.removeItem(_consts.SHOULD_STEP_UP_KEY);
157
+ var _window5;
158
+ (_window5 = window) == null ? void 0 : _window5.localStorage.removeItem(_consts.SHOULD_STEP_UP_KEY);
157
159
  }
158
160
  if (stepUpUrl && shouldStepUp && !(0, _helpers3.isSteppedUp)(user)) {
159
161
  return afterAuthNavigationUtil(actions.resetLoginState, {
@@ -7,7 +7,6 @@ exports.default = _default;
7
7
  var _restApi = require("@frontegg/rest-api");
8
8
  var _interfaces = require("../../MfaState/interfaces");
9
9
  var _interfaces2 = require("../interfaces");
10
- var _toolkit = require("../../../toolkit");
11
10
  function _default(store, api, sharedActions) {
12
11
  const actions = sharedActions;
13
12
 
@@ -79,7 +78,7 @@ function _default(store, api, sharedActions) {
79
78
  loading: false
80
79
  });
81
80
  if (user.id) {
82
- await _toolkit.LocalStorage.setItem('userId', user.id);
81
+ localStorage.setItem('userId', user.id);
83
82
  }
84
83
  const isAuthenticated = !!user.accessToken;
85
84
  actions.setAuthState({
@@ -11,7 +11,6 @@ var _constants = require("../../../constants");
11
11
  var _helpers2 = require("../helpers");
12
12
  var _helpers3 = require("../../helpers");
13
13
  var _consts = require("../../StepUpState/consts");
14
- var _toolkit = require("../../../toolkit");
15
14
  var _default = (store, api, sharedActions) => {
16
15
  const actions = sharedActions;
17
16
 
@@ -53,9 +52,9 @@ var _default = (store, api, sharedActions) => {
53
52
  const code_challenge = await (0, _helpers.generateCodeChallenge)(code_verifier);
54
53
 
55
54
  // We are saving the verifier in session storage to be able to validate the response
56
- await _toolkit.LocalStorage.setItem(_constants.HOSTED_LOGIN_VERIFIER_KEY, code_verifier);
55
+ localStorage.setItem(_constants.HOSTED_LOGIN_VERIFIER_KEY, code_verifier);
57
56
  const basename = (0, _helpers2.getBaseNameWithoutSlashSuffix)(store);
58
- let redirectUrl = `${_toolkit.WindowLocation.origin}${urlStrategy === 'path' ? '' : '#'}${basename != null ? basename : ''}${routes.hostedLoginRedirectUrl}`;
57
+ let redirectUrl = `${window.location.origin}${urlStrategy === 'path' ? '' : '#'}${basename != null ? basename : ''}${routes.hostedLoginRedirectUrl}`;
59
58
  await actions.loadCustomLoginRoutes();
60
59
  const customLoginSearchParam = (_store$auth$customLog = store.auth.customLoginState) == null ? void 0 : _store$auth$customLog.customLoginSearchParams;
61
60
  if (customLoginSearchParam) {
@@ -94,8 +93,9 @@ var _default = (store, api, sharedActions) => {
94
93
  });
95
94
  };
96
95
  const refreshOrRequestHostedLoginAuthorize = async additionalParams => {
96
+ var _localStorage;
97
97
  // when the user pause the step up flow we may still have the key in the local storage in hosted - Remove it
98
- await _toolkit.LocalStorage.removeItem(_consts.SHOULD_STEP_UP_KEY);
98
+ (_localStorage = localStorage) == null ? void 0 : _localStorage.removeItem(_consts.SHOULD_STEP_UP_KEY);
99
99
  const disableSilentRefresh = store.auth.disableSilentRefresh;
100
100
  if ((additionalParams == null ? void 0 : additionalParams['prompt']) === 'login') {
101
101
  return await requestHostedLoginAuthorize(additionalParams);
@@ -110,7 +110,7 @@ var _default = (store, api, sharedActions) => {
110
110
  }
111
111
  };
112
112
  const refreshOrRequestHostedLoginAuthorizeV2 = async payload => {
113
- var _additionalParams;
113
+ var _localStorage2, _additionalParams;
114
114
  const {
115
115
  shouldRedirectToLogin,
116
116
  firstTime,
@@ -120,7 +120,7 @@ var _default = (store, api, sharedActions) => {
120
120
  additionalParams
121
121
  } = payload != null ? payload : {};
122
122
  // when the user pause the step up flow we may still have the key in the local storage in hosted - Remove it
123
- await _toolkit.LocalStorage.removeItem(_consts.SHOULD_STEP_UP_KEY);
123
+ (_localStorage2 = localStorage) == null ? void 0 : _localStorage2.removeItem(_consts.SHOULD_STEP_UP_KEY);
124
124
  if (firstTime) {
125
125
  const urlStrategy = store.root.urlStrategy;
126
126
  const activeUri = (0, _helpers3.getUri)(urlStrategy);
@@ -157,11 +157,11 @@ var _default = (store, api, sharedActions) => {
157
157
  const handleHostedLoginCallback = async payload => {
158
158
  var _store$auth$customLog2;
159
159
  // Hard coded for now
160
- const code_verifier = (await _toolkit.LocalStorage.getItem(_constants.HOSTED_LOGIN_VERIFIER_KEY)) || 'INVALID-CODE-VERIFIER';
160
+ const code_verifier = localStorage.getItem(_constants.HOSTED_LOGIN_VERIFIER_KEY) || 'INVALID-CODE-VERIFIER';
161
161
  const routes = store.auth.routes;
162
162
  const urlStrategy = store.root.urlStrategy;
163
163
  const basename = (0, _helpers2.getBaseNameWithoutSlashSuffix)(store);
164
- let redirectUrl = `${_toolkit.WindowLocation.origin}${urlStrategy === 'path' ? '' : '#'}${basename != null ? basename : ''}${routes.hostedLoginRedirectUrl}`;
164
+ let redirectUrl = `${window.location.origin}${urlStrategy === 'path' ? '' : '#'}${basename != null ? basename : ''}${routes.hostedLoginRedirectUrl}`;
165
165
  await actions.loadCustomLoginRoutes();
166
166
  const customLoginSearchParam = (_store$auth$customLog2 = store.auth.customLoginState) == null ? void 0 : _store$auth$customLog2.customLoginSearchParams;
167
167
  if (customLoginSearchParam) {
@@ -189,8 +189,8 @@ var _default = (store, api, sharedActions) => {
189
189
  console.error('Failed to exchangeOAuthTokens', e);
190
190
  } finally {
191
191
  const user = store.auth.user;
192
- const isStepUpFlow = await _toolkit.LocalStorage.getItem(_consts.SHOULD_STEP_UP_KEY);
193
- await _toolkit.LocalStorage.removeItem(_consts.SHOULD_STEP_UP_KEY);
192
+ const isStepUpFlow = window.localStorage.getItem(_consts.SHOULD_STEP_UP_KEY);
193
+ window.localStorage.removeItem(_consts.SHOULD_STEP_UP_KEY);
194
194
 
195
195
  // when the user pause the step up flow we may still have the key in the local storage in hosted. Ignore it.
196
196
  if (isStepUpFlow && (0, _helpers3.isSteppedUp)(user)) {
@@ -77,14 +77,14 @@ var _default = (store, api, sharedActions) => {
77
77
  });
78
78
  }
79
79
  };
80
- const __shouldNevigateToRegisterQuickLogin = async user => {
80
+ const __shouldNevigateToRegisterQuickLogin = user => {
81
81
  var _ref;
82
82
  const {
83
83
  routes,
84
84
  loginState
85
85
  } = store.auth;
86
- const quickLoginToRegister = (_ref = await _toolkit.LocalStorage.getItem('register-quick-login')) != null ? _ref : loginState.quickLoginToRegister;
87
- return quickLoginToRegister && (await _toolkit.LocalStorage.getItem(`${user.id}-${quickLoginToRegister}`)) !== 'true' && !window.location.pathname.endsWith(routes.logoutUrl);
86
+ const quickLoginToRegister = (_ref = localStorage.getItem('register-quick-login')) != null ? _ref : loginState.quickLoginToRegister;
87
+ return quickLoginToRegister && localStorage.getItem(`${user.id}-${quickLoginToRegister}`) !== 'true' && !window.location.pathname.endsWith(routes.logoutUrl);
88
88
  };
89
89
 
90
90
  /** @private */
@@ -109,10 +109,10 @@ var _default = (store, api, sharedActions) => {
109
109
  } else {
110
110
  var _ref2;
111
111
  if (user.id) {
112
- await _toolkit.LocalStorage.setItem('userId', user.id);
112
+ localStorage.setItem('userId', user.id);
113
113
  }
114
- const quickLoginToRegister = (_ref2 = await _toolkit.LocalStorage.getItem('register-quick-login')) != null ? _ref2 : loginState.quickLoginToRegister;
115
- const shouldNavigateToRegisterQuickLogin = await __shouldNevigateToRegisterQuickLogin(user);
114
+ const quickLoginToRegister = (_ref2 = localStorage.getItem('register-quick-login')) != null ? _ref2 : loginState.quickLoginToRegister;
115
+ const shouldNavigateToRegisterQuickLogin = __shouldNevigateToRegisterQuickLogin(user);
116
116
  const updatedUser = await __handleUnnecessaryEntitlementsUpdate(user);
117
117
  actions.afterAuthenticationStateUpdate({
118
118
  user: updatedUser,
@@ -171,7 +171,8 @@ var _default = (store, api, sharedActions) => {
171
171
 
172
172
  /** @private */
173
173
  const __handleRedirectRefreshToken = async shouldNavigateToRegisterQuickLogin => {
174
- const url = new URL(_toolkit.WindowLocation.href);
174
+ var _window;
175
+ const url = new URL((_window = window) == null ? void 0 : _window.location.href);
175
176
  const {
176
177
  routes,
177
178
  loginState,
@@ -184,8 +185,8 @@ var _default = (store, api, sharedActions) => {
184
185
  }
185
186
  if (shouldNavigateToRegisterQuickLogin) {
186
187
  onRedirectTo(routes.loginUrl);
187
- } else if (redirectRoutes.some(url => url && _toolkit.WindowLocation.pathname.endsWith(url))) {
188
- if (loginState.isNewUser && routes.signUpSuccessUrl && routes.socialLoginCallbackUrl === _toolkit.WindowLocation.pathname) {
188
+ } else if (redirectRoutes.some(url => url && window.location.pathname.endsWith(url))) {
189
+ if (loginState.isNewUser && routes.signUpSuccessUrl && routes.socialLoginCallbackUrl === window.location.pathname) {
189
190
  onRedirectTo(routes.signUpSuccessUrl, {
190
191
  refresh: routes.signUpSuccessUrl.startsWith('http')
191
192
  });
@@ -354,7 +355,7 @@ var _default = (store, api, sharedActions) => {
354
355
  const {
355
356
  oidcRedirectUrl
356
357
  } = store.auth.routes;
357
- ssoRedirectUrl += `&redirect_uri=${_toolkit.WindowLocation.origin}${oidcRedirectUrl}`;
358
+ ssoRedirectUrl += `&redirect_uri=${window.location.origin}${oidcRedirectUrl}`;
358
359
  }
359
360
  if (_toolkit.FronteggNativeModule.isLoginWithSSOAvailable()) {
360
361
  _toolkit.FronteggNativeModule.loginWithSSO(email);
@@ -452,7 +453,7 @@ var _default = (store, api, sharedActions) => {
452
453
  const loginState = store.auth.loginState;
453
454
  const isAuthenticated = !!user.accessToken;
454
455
  if (user.id) {
455
- await _toolkit.LocalStorage.setItem('userId', user.id);
456
+ localStorage.setItem('userId', user.id);
456
457
  }
457
458
  actions.afterAuthenticationStateUpdate({
458
459
  user,
@@ -500,7 +501,7 @@ var _default = (store, api, sharedActions) => {
500
501
  }
501
502
 
502
503
  // TODO: extract item name to constants
503
- await _toolkit.LocalStorage.removeItem('register-quick-login');
504
+ localStorage.removeItem('register-quick-login');
504
505
  callback == null ? void 0 : callback(true);
505
506
  } catch (e) {
506
507
  contextHolder.setAccessToken(null);
@@ -528,7 +529,7 @@ var _default = (store, api, sharedActions) => {
528
529
  /* empty */
529
530
  }
530
531
  if (contextHolder.isSessionPerTenantEnabled()) {
531
- await _toolkit.SessionStorage.removeItem(_restApi.FRONTEGG_SEPARATE_TABS_BY_TENANT);
532
+ (0, _restApi.removeTabTenantFromSessionStorage)();
532
533
  }
533
534
  actions.resetAuthState();
534
535
  await actions.requestAuthorize(true);
@@ -542,7 +543,7 @@ var _default = (store, api, sharedActions) => {
542
543
  /* empty */
543
544
  }
544
545
  if (contextHolder.isSessionPerTenantEnabled()) {
545
- await _toolkit.SessionStorage.removeItem(_restApi.FRONTEGG_SEPARATE_TABS_BY_TENANT);
546
+ (0, _restApi.removeTabTenantFromSessionStorage)();
546
547
  }
547
548
  setTimeout(() => {
548
549
  var _payload$callback;
@@ -726,7 +727,7 @@ var _default = (store, api, sharedActions) => {
726
727
  (0, _helpers.reportGTMEvent)(_helpers.GTMEventAction.USER_VERIFIED, userVerifiedPayload);
727
728
  }
728
729
  if (user.id) {
729
- await _toolkit.LocalStorage.setItem('userId', user.id);
730
+ localStorage.setItem('userId', user.id);
730
731
  }
731
732
  actions.afterAuthenticationStateUpdate({
732
733
  user,
@@ -760,7 +761,7 @@ var _default = (store, api, sharedActions) => {
760
761
  preserveQueryParams: true
761
762
  });
762
763
  }
763
- await _toolkit.LocalStorage.removeItem('register-quick-login');
764
+ localStorage.removeItem('register-quick-login');
764
765
  callback == null ? void 0 : callback(true);
765
766
  }
766
767
  } catch (e) {
@@ -874,7 +875,7 @@ var _default = (store, api, sharedActions) => {
874
875
  });
875
876
  } else {
876
877
  if (user.id) {
877
- await _toolkit.LocalStorage.setItem('userId', user.id);
878
+ localStorage.setItem('userId', user.id);
878
879
  }
879
880
  actions.afterAuthenticationStateUpdate((0, _extends2.default)({
880
881
  user
@@ -1132,7 +1133,7 @@ var _default = (store, api, sharedActions) => {
1132
1133
  loading: false
1133
1134
  });
1134
1135
  if (user.id) {
1135
- await _toolkit.LocalStorage.setItem('userId', user.id);
1136
+ localStorage.setItem('userId', user.id);
1136
1137
  }
1137
1138
  };
1138
1139
  const resetBreachedPassword = async payload => {
@@ -1232,10 +1233,10 @@ var _default = (store, api, sharedActions) => {
1232
1233
  } else {
1233
1234
  var _ref4;
1234
1235
  if (user.id) {
1235
- await _toolkit.LocalStorage.setItem('userId', user.id);
1236
+ localStorage.setItem('userId', user.id);
1236
1237
  }
1237
- const quickLoginToRegister = (_ref4 = await _toolkit.LocalStorage.getItem('register-quick-login')) != null ? _ref4 : loginState.quickLoginToRegister;
1238
- const shouldNavigateToRegisterQuickLogin = await __shouldNevigateToRegisterQuickLogin(user);
1238
+ const quickLoginToRegister = (_ref4 = localStorage.getItem('register-quick-login')) != null ? _ref4 : loginState.quickLoginToRegister;
1239
+ const shouldNavigateToRegisterQuickLogin = __shouldNevigateToRegisterQuickLogin(user);
1239
1240
  actions.afterAuthenticationStateUpdate({
1240
1241
  user: updatedUser,
1241
1242
  tenants,
@@ -9,7 +9,6 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
9
9
  var _helpers = require("../helpers");
10
10
  var _interfaces = require("../interfaces");
11
11
  var _interfaces2 = require("../../MfaState/interfaces");
12
- var _toolkit = require("../../../toolkit");
13
12
  var _default = (store, api, sharedActions) => {
14
13
  const actions = sharedActions;
15
14
  const getMfaRequiredState = async user => {
@@ -42,7 +41,7 @@ var _default = (store, api, sharedActions) => {
42
41
  step = _interfaces.LoginStep.forceTwoFactor;
43
42
  }
44
43
  let quickLoginState = {};
45
- const quickLoginToRegister = await _toolkit.LocalStorage.getItem('register-quick-login');
44
+ const quickLoginToRegister = localStorage.getItem('register-quick-login');
46
45
  if (quickLoginToRegister) {
47
46
  quickLoginState = {
48
47
  quickLoginToRegister,
@@ -9,7 +9,6 @@ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runt
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _interfaces = require("../interfaces");
11
11
  var _helpers = require("../../../helpers");
12
- var _toolkit = require("../../../toolkit");
13
12
  const _excluded = ["callback"];
14
13
  var _default = (store, api, sharedActions) => {
15
14
  const actions = sharedActions;
@@ -108,7 +107,7 @@ var _default = (store, api, sharedActions) => {
108
107
  activeTenant
109
108
  }, additionalUpdate);
110
109
  if (user.id) {
111
- await _toolkit.LocalStorage.setItem('userId', user.id);
110
+ localStorage.setItem('userId', user.id);
112
111
  }
113
112
  setLoadingAction({
114
113
  loading: false,
@@ -8,7 +8,6 @@ exports.isEmailPayload = isEmailPayload;
8
8
  exports.isOauthCallbackRoute = void 0;
9
9
  var _restApi = require("@frontegg/rest-api");
10
10
  var _interfaces = require("../MfaState/interfaces");
11
- var _toolkit = require("../../toolkit");
12
11
  const isAbsoluteUrl = path => {
13
12
  try {
14
13
  new URL(path);
@@ -19,7 +18,7 @@ const isAbsoluteUrl = path => {
19
18
  };
20
19
  exports.isAbsoluteUrl = isAbsoluteUrl;
21
20
  const isValidRedirectUrl = (redirectUrl, allowedRedirectOrigins) => {
22
- const currentUrl = new URL(_toolkit.WindowLocation.href);
21
+ const currentUrl = new URL(window.location.href);
23
22
  const redirectURL = new URL(redirectUrl);
24
23
  const isSameSite = redirectURL.origin === currentUrl.origin;
25
24
  const isOriginInWhiteList = allowedRedirectOrigins.includes(redirectURL.origin);
@@ -31,7 +30,7 @@ const getRedirectUrl = ({
31
30
  allowedRedirectOrigins,
32
31
  includeQueryParam
33
32
  }) => {
34
- const currentUrl = new URL(_toolkit.WindowLocation.href);
33
+ const currentUrl = new URL(window.location.href);
35
34
  let redirectUrl = authenticatedUrl;
36
35
  const redirectUrlQueryParam = currentUrl.searchParams.get('redirectUrl');
37
36
  if (redirectUrlQueryParam) {
@@ -45,7 +44,7 @@ const getRedirectUrl = ({
45
44
  }
46
45
  }
47
46
  } else if (includeQueryParam) {
48
- redirectUrl += _toolkit.WindowLocation.search;
47
+ redirectUrl += window.location.search;
49
48
  }
50
49
  return redirectUrl;
51
50
  };
@@ -79,7 +78,7 @@ const getPathAndSearchParamsFromUrl = url => {
79
78
  */
80
79
  exports.getPathAndSearchParamsFromUrl = getPathAndSearchParamsFromUrl;
81
80
  const getSearchParam = key => {
82
- const params = new URLSearchParams(_toolkit.WindowLocation.search);
81
+ const params = new URLSearchParams(window.location.search);
83
82
  const param = params.get(key);
84
83
  return param != null ? param : undefined;
85
84
  };
@@ -7,7 +7,6 @@ exports.default = void 0;
7
7
  var _helpers = require("../../helpers");
8
8
  var _state = require("./state");
9
9
  var _restApi = require("@frontegg/rest-api");
10
- var _toolkit = require("../../toolkit");
11
10
  var _default = (store, api, sharedActions) => {
12
11
  const actions = sharedActions;
13
12
  const setPasskeysState = payload => {
@@ -83,8 +82,8 @@ var _default = (store, api, sharedActions) => {
83
82
  policy
84
83
  } = publicAuthStrategyPolicy;
85
84
  const isPasskeysEnabledByVendor = await getPasskeysVendorPolicy(policy);
86
- const isLoggedInWithPasskeys = (await _toolkit.LocalStorage.getItem('preferred-login-method')) === 'Passkeys';
87
- const isMarkedDontShowAgainPrompt = (await _toolkit.LocalStorage.getItem('dont-show-again-prompt-passkeys')) === 'true';
85
+ const isLoggedInWithPasskeys = localStorage.getItem('preferred-login-method') === 'Passkeys';
86
+ const isMarkedDontShowAgainPrompt = localStorage.getItem('dont-show-again-prompt-passkeys') === 'true';
88
87
  const [showPasskeys] = await actions.getFeatureFlags(['show-passkeys-new']);
89
88
  if (!showPasskeys || !isPasskeysEnabledByVendor || isLoggedInWithPasskeys || isMarkedDontShowAgainPrompt) {
90
89
  return false;
@@ -11,7 +11,6 @@ var _helpers = require("../../helpers");
11
11
  var _state = require("./state");
12
12
  var _interfaces = require("../interfaces");
13
13
  var _gtm = require("../../helpers/gtm");
14
- var _toolkit = require("../../toolkit");
15
14
  const _excluded = ["authorizationUrl"],
16
15
  _excluded2 = ["events", "url"];
17
16
  var _default = (store, api, sharedActions) => {
@@ -141,14 +140,14 @@ var _default = (store, api, sharedActions) => {
141
140
  (0, _gtm.reportGTMEvent)(_gtm.GTMEventAction.USER_VERIFIED, userVerifiedPayload);
142
141
  }
143
142
  if (userId) {
144
- await _toolkit.LocalStorage.setItem('userId', userId);
143
+ localStorage.setItem('userId', userId);
145
144
  }
146
145
  actions.setLoginState({
147
146
  email,
148
147
  isNewUser
149
148
  });
150
- await actions.refreshTokenForSocialLogins();
151
- await _toolkit.LocalStorage.removeItem('register-quick-login');
149
+ actions.refreshTokenForSocialLogins();
150
+ localStorage.removeItem('register-quick-login');
152
151
  setSocialLoginsState({
153
152
  loading: false
154
153
  });
@@ -8,7 +8,6 @@ var _restApi = require("@frontegg/rest-api");
8
8
  var _helpers = require("../../LoginState/helpers");
9
9
  var _interfaces = require("../../MfaState/interfaces");
10
10
  var _consts = require("../consts");
11
- var _toolkit = require("../../../toolkit");
12
11
  /**
13
12
  * Error returned from the BE when the user is not enrolled to MFA and logged in with email magic code/link
14
13
  */
@@ -66,7 +65,7 @@ var _default = (store, api, sharedActions) => {
66
65
  });
67
66
  return;
68
67
  }
69
- await _toolkit.LocalStorage.setItem(_consts.SHOULD_STEP_UP_KEY, 'true');
68
+ window.localStorage.setItem(_consts.SHOULD_STEP_UP_KEY, 'true');
70
69
  const routes = store.auth.routes;
71
70
  _restApi.ContextHolder.for(store.root.appName).onRedirectTo(routes.logoutUrl, {
72
71
  preserveQueryParams: true
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _consts = require("../consts");
8
8
  var _helpers = require("../helpers");
9
- var _toolkit = require("../../../toolkit");
10
9
  var _default = (store, api, sharedActions) => {
11
10
  const actions = sharedActions;
12
11
 
@@ -29,8 +28,8 @@ var _default = (store, api, sharedActions) => {
29
28
  if (alias) {
30
29
  params['organization'] = alias;
31
30
  }
32
- await (0, _helpers.setAfterAuthRedirectUrlForStepUp)();
33
- await _toolkit.LocalStorage.setItem(_consts.SHOULD_STEP_UP_KEY, 'true');
31
+ (0, _helpers.setAfterAuthRedirectUrlForStepUp)();
32
+ window.localStorage.setItem(_consts.SHOULD_STEP_UP_KEY, 'true');
34
33
  await actions.__requestHostedLoginAuthorize(params);
35
34
  };
36
35
  return {
@@ -7,7 +7,6 @@ exports.redirectByStepUpUrl = exports.isSteppedUp = void 0;
7
7
  exports.setAfterAuthRedirectUrlForStepUp = setAfterAuthRedirectUrlForStepUp;
8
8
  var _constants = require("../../constants");
9
9
  var _consts = require("./consts");
10
- var _toolkit = require("../../toolkit");
11
10
  /**
12
11
  * @param options.amr
13
12
  * @param options.acr
@@ -39,9 +38,9 @@ const isSteppedUp = (user, {
39
38
  * Set the url and query params in the local storage FRONTEGG_AFTER_AUTH_REDIRECT_URL value
40
39
  */
41
40
  exports.isSteppedUp = isSteppedUp;
42
- async function setAfterAuthRedirectUrlForStepUp() {
43
- const encodedRedirectUrl = _toolkit.WindowLocation.pathname + _toolkit.WindowLocation.search;
44
- await _toolkit.LocalStorage.setItem(_constants.FRONTEGG_AFTER_AUTH_REDIRECT_URL, encodedRedirectUrl);
41
+ function setAfterAuthRedirectUrlForStepUp() {
42
+ const encodedRedirectUrl = window.location.pathname + window.location.search;
43
+ window.localStorage.setItem(_constants.FRONTEGG_AFTER_AUTH_REDIRECT_URL, encodedRedirectUrl);
45
44
  }
46
45
 
47
46
  /**
@@ -51,9 +50,9 @@ async function setAfterAuthRedirectUrlForStepUp() {
51
50
  * @param onRedirectTo - redirect to function
52
51
  * @param maxAge - max age of step up
53
52
  */
54
- const redirectByStepUpUrl = async (stepUpUrl, onRedirectTo, maxAge) => {
55
- await setAfterAuthRedirectUrlForStepUp();
56
- const searchParams = new URLSearchParams(_toolkit.WindowLocation.search);
53
+ const redirectByStepUpUrl = (stepUpUrl, onRedirectTo, maxAge) => {
54
+ setAfterAuthRedirectUrlForStepUp();
55
+ const searchParams = new URLSearchParams(window.location.search);
57
56
  if (maxAge) {
58
57
  searchParams.set(_consts.STEP_UP_MAX_AGE_PARAM_NAME, maxAge.toString());
59
58
  }
@@ -26,8 +26,6 @@ exports.GTMEventAction = GTMEventAction;
26
26
  * @param payload
27
27
  */
28
28
  function reportGTMEvent(action, payload) {
29
- if (typeof window !== 'undefined') {
30
- var _window$onFronteggEve, _window;
31
- (_window$onFronteggEve = (_window = window).onFronteggEvent) == null ? void 0 : _window$onFronteggEve.call(_window, action, payload);
32
- }
29
+ var _window$onFronteggEve, _window;
30
+ (_window$onFronteggEve = (_window = window).onFronteggEvent) == null ? void 0 : _window$onFronteggEve.call(_window, action, payload);
33
31
  }
@@ -68,4 +68,15 @@ Object.keys(_gtm).forEach(function (key) {
68
68
  return _gtm[key];
69
69
  }
70
70
  });
71
+ });
72
+ var _sha = require("./sha256");
73
+ Object.keys(_sha).forEach(function (key) {
74
+ if (key === "default" || key === "__esModule") return;
75
+ if (key in exports && exports[key] === _sha[key]) return;
76
+ Object.defineProperty(exports, key, {
77
+ enumerable: true,
78
+ get: function () {
79
+ return _sha[key];
80
+ }
81
+ });
71
82
  });
@@ -8,7 +8,6 @@ exports.generateCodeChallenge = generateCodeChallenge;
8
8
  exports.generateCodeChallengeNative = generateCodeChallengeNative;
9
9
  exports.generateCodeChallengePureJs = generateCodeChallengePureJs;
10
10
  var _sha = require("./sha256");
11
- var _toolkit = require("../toolkit");
12
11
  async function generateCodeChallengePureJs(codeVerifier) {
13
12
  // noinspection TypeScriptValidateJSTypes pure sha256 recevie single params alg name
14
13
  const digest = _sha.sha256.digest(new TextEncoder().encode(codeVerifier));
@@ -24,7 +23,7 @@ async function generateCodeChallenge(codeVerifier) {
24
23
  if ((_window$crypto = window.crypto) != null && (_window$crypto$subtle = _window$crypto.subtle) != null && _window$crypto$subtle.digest) {
25
24
  return generateCodeChallengeNative(codeVerifier);
26
25
  } else {
27
- console.warn('Generating CodeChallenge in non-secure domain:', _toolkit.WindowLocation.origin);
26
+ console.warn('Generating CodeChallenge in non-secure domain:', window.location.origin);
28
27
  return generateCodeChallengePureJs(codeVerifier);
29
28
  }
30
29
  }
package/node/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license Frontegg v7.11.0-alpha.0
1
+ /** @license Frontegg v7.12.0-alpha.0
2
2
  *
3
3
  * This source code is licensed under the MIT license found in the
4
4
  * LICENSE file in the root directory of this source tree.
@@ -172,4 +172,15 @@ Object.keys(_interfaces6).forEach(function (key) {
172
172
  return _interfaces6[key];
173
173
  }
174
174
  });
175
+ });
176
+ var _helpers3 = require("./helpers/");
177
+ Object.keys(_helpers3).forEach(function (key) {
178
+ if (key === "default" || key === "__esModule") return;
179
+ if (key in exports && exports[key] === _helpers3[key]) return;
180
+ Object.defineProperty(exports, key, {
181
+ enumerable: true,
182
+ get: function () {
183
+ return _helpers3[key];
184
+ }
185
+ });
175
186
  });
@@ -7,9 +7,6 @@ exports.default = void 0;
7
7
  class FronteggNativeModule {
8
8
  constructor() {
9
9
  this.loginWithSSO = email => {
10
- if (typeof window == 'undefined') {
11
- throw new Error('FronteggNativeBridge is not available');
12
- }
13
10
  if (this.isWebkitAvailable()) {
14
11
  var _window$webkit, _window$webkit$messag, _window$webkit$messag2;
15
12
  (_window$webkit = window.webkit) == null ? void 0 : (_window$webkit$messag = _window$webkit.messageHandlers) == null ? void 0 : (_window$webkit$messag2 = _window$webkit$messag.FronteggNativeBridge) == null ? void 0 : _window$webkit$messag2.postMessage(JSON.stringify({
@@ -24,9 +21,6 @@ class FronteggNativeModule {
24
21
  }
25
22
  };
26
23
  this.loginWithSocialLogin = url => {
27
- if (typeof window == 'undefined') {
28
- throw new Error('FronteggNativeBridge is not available');
29
- }
30
24
  if (this.isWebkitAvailable()) {
31
25
  var _window$webkit2, _window$webkit2$messa, _window$webkit2$messa2;
32
26
  (_window$webkit2 = window.webkit) == null ? void 0 : (_window$webkit2$messa = _window$webkit2.messageHandlers) == null ? void 0 : (_window$webkit2$messa2 = _window$webkit2$messa.FronteggNativeBridge) == null ? void 0 : _window$webkit2$messa2.postMessage(JSON.stringify({
@@ -42,15 +36,15 @@ class FronteggNativeModule {
42
36
  };
43
37
  this.promptSocialLoginConsent = () => {
44
38
  var _window$FronteggNativ3, _window$FronteggNativ4;
45
- return typeof window != 'undefined' && ((_window$FronteggNativ3 = (_window$FronteggNativ4 = window.FronteggNativeBridgeFunctions) == null ? void 0 : _window$FronteggNativ4['shouldPromptSocialLoginConsent']) != null ? _window$FronteggNativ3 : false);
39
+ return (_window$FronteggNativ3 = (_window$FronteggNativ4 = window.FronteggNativeBridgeFunctions) == null ? void 0 : _window$FronteggNativ4['shouldPromptSocialLoginConsent']) != null ? _window$FronteggNativ3 : false;
46
40
  };
47
41
  }
48
42
  isWebkitAvailable() {
49
43
  var _window$webkit3, _window$webkit3$messa;
50
- return typeof window != 'undefined' && ((_window$webkit3 = window.webkit) == null ? void 0 : (_window$webkit3$messa = _window$webkit3.messageHandlers) == null ? void 0 : _window$webkit3$messa.FronteggNativeBridge) != null;
44
+ return ((_window$webkit3 = window.webkit) == null ? void 0 : (_window$webkit3$messa = _window$webkit3.messageHandlers) == null ? void 0 : _window$webkit3$messa.FronteggNativeBridge) != null;
51
45
  }
52
46
  isJsInterfaceAvailable() {
53
- return typeof window != 'undefined' && window.FronteggNativeBridge != null;
47
+ return window.FronteggNativeBridge != null;
54
48
  }
55
49
  isSocialLoginAvailable() {
56
50
  return this.isAvailable('loginWithSocialLogin');
@@ -59,7 +53,7 @@ class FronteggNativeModule {
59
53
  return this.isAvailable('loginWithSSO');
60
54
  }
61
55
  isAvailable(method) {
62
- if (typeof window != 'undefined' && (this.isWebkitAvailable() || this.isJsInterfaceAvailable())) {
56
+ if (this.isWebkitAvailable() || this.isJsInterfaceAvailable()) {
63
57
  var _window$FronteggNativ5, _window$FronteggNativ6;
64
58
  return (_window$FronteggNativ5 = (_window$FronteggNativ6 = window.FronteggNativeBridgeFunctions) == null ? void 0 : _window$FronteggNativ6[method]) != null ? _window$FronteggNativ5 : false;
65
59
  }