@frontegg/redux-store 5.19.0 → 5.22.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 (39) hide show
  1. package/auth/AcceptInvitationState/index.d.ts +2 -0
  2. package/auth/AccountSettingsState/index.d.ts +10 -0
  3. package/auth/ActivateState/index.d.ts +6 -1
  4. package/auth/ActivateState/interfaces.d.ts +6 -1
  5. package/auth/ApiTokensState/index.d.ts +2 -0
  6. package/auth/ForgotPasswordState/index.d.ts +2 -0
  7. package/auth/LoginState/index.d.ts +2 -0
  8. package/auth/LoginState/interfaces.d.ts +2 -0
  9. package/auth/LoginState/saga.d.ts +2 -0
  10. package/auth/MfaState/index.d.ts +6 -6
  11. package/auth/ProfileState/index.d.ts +2 -0
  12. package/auth/ResetPhoneNumberState/index.d.ts +96 -0
  13. package/auth/ResetPhoneNumberState/interfaces.d.ts +18 -0
  14. package/auth/ResetPhoneNumberState/saga.d.ts +17 -0
  15. package/auth/RolesState/index.d.ts +2 -0
  16. package/auth/SSOState/index.d.ts +2 -0
  17. package/auth/SecurityPolicyState/index.d.ts +9 -0
  18. package/auth/SignUp/index.d.ts +2 -0
  19. package/auth/SocialLogins/index.d.ts +2 -8
  20. package/auth/TeamState/index.d.ts +2 -0
  21. package/auth/TenantsState/index.d.ts +2 -8
  22. package/auth/index.d.ts +14 -0
  23. package/auth/index.js +127 -17
  24. package/auth/interfaces.d.ts +15 -1
  25. package/auth/reducer.d.ts +14 -1
  26. package/auth/utils.d.ts +4 -0
  27. package/index.js +2 -2
  28. package/node/auth/index.js +137 -24
  29. package/node/index.js +15 -0
  30. package/node/subscriptions/index.js +167 -127
  31. package/package.json +2 -2
  32. package/subscriptions/ManagedSubscriptions/index.d.ts +10 -0
  33. package/subscriptions/ManagedSubscriptions/interfaces.d.ts +28 -0
  34. package/subscriptions/ManagedSubscriptions/saga.d.ts +1 -0
  35. package/subscriptions/index.d.ts +7 -0
  36. package/subscriptions/index.js +168 -128
  37. package/subscriptions/interfaces.d.ts +4 -0
  38. package/subscriptions/reducer.d.ts +7 -0
  39. package/toolkit/index.d.ts +1 -1
package/auth/index.d.ts CHANGED
@@ -11,6 +11,8 @@ export * from './AcceptInvitationState/interfaces';
11
11
  export * from './AcceptInvitationState';
12
12
  export * from './ForgotPasswordState/interfaces';
13
13
  export * from './ForgotPasswordState';
14
+ export * from './ResetPhoneNumberState/interfaces';
15
+ export * from './ResetPhoneNumberState';
14
16
  export * from './SSOState/interfaces';
15
17
  export * from './SSOState';
16
18
  export * from './MfaState/interfaces';
@@ -218,11 +220,21 @@ declare const _default: {
218
220
  changePassword: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[import("../interfaces").WithCallback<import("@frontegg/rest-api").IChangePassword, boolean>], import("../interfaces").WithCallback<import("@frontegg/rest-api").IChangePassword, boolean>, string, never, never>;
219
221
  signUpUser: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[import("@frontegg/rest-api").ISignUpUser], import("@frontegg/rest-api").ISignUpUser, string, never, never>;
220
222
  resetSignUpStateSoft: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
223
+ resetPhoneNumber: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[import("../interfaces").WithCallback<import("@frontegg/rest-api").IResetPhoneNumber, boolean>], import("../interfaces").WithCallback<import("@frontegg/rest-api").IResetPhoneNumber, boolean>, string, never, never>;
224
+ verifyResetPhoneNumber: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[import("../interfaces").WithCallback<import("@frontegg/rest-api").IVerifyResetPhoneNumber, boolean>], import("../interfaces").WithCallback<import("@frontegg/rest-api").IVerifyResetPhoneNumber, boolean>, string, never, never>;
225
+ changePhoneNumber: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[import("../interfaces").WithCallback<import("@frontegg/rest-api").IChangePhoneNumber & {
226
+ recaptchaToken: string;
227
+ email: string;
228
+ }, boolean>], import("../interfaces").WithCallback<import("@frontegg/rest-api").IChangePhoneNumber & {
229
+ recaptchaToken: string;
230
+ email: string;
231
+ }, boolean>, string, never, never>;
221
232
  forgotPassword: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[import("@frontegg/rest-api").IForgotPassword], import("@frontegg/rest-api").IForgotPassword, string, never, never>;
222
233
  resetPassword: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[import("../interfaces").WithCallback<import("@frontegg/rest-api").IResetPassword, boolean>], import("../interfaces").WithCallback<import("@frontegg/rest-api").IResetPassword, boolean>, string, never, never>;
223
234
  loadPasswordConfig: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[(import("@frontegg/rest-api").IGetUserPasswordConfig | undefined)?], import("@frontegg/rest-api").IGetUserPasswordConfig | undefined, string, never, never>;
224
235
  acceptInvitation: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[import("@frontegg/rest-api").IAcceptInvitation], import("@frontegg/rest-api").IAcceptInvitation, string, never, never>;
225
236
  activateAccount: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[import("../interfaces").WithCallback<import("@frontegg/rest-api").IActivateAccount, boolean>], import("../interfaces").WithCallback<import("@frontegg/rest-api").IActivateAccount, boolean>, string, never, never>;
237
+ preActivateAccount: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[import("./ActivateState/interfaces").IPreActivateAccount], import("./ActivateState/interfaces").IPreActivateAccount, string, never, never>;
226
238
  getActivateAccountStrategy: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[import("../interfaces").WithCallback<import("@frontegg/rest-api").IGetActivateAccountStrategy, import("@frontegg/rest-api").IGetActivateAccountStrategyResponse>], import("../interfaces").WithCallback<import("@frontegg/rest-api").IGetActivateAccountStrategy, import("@frontegg/rest-api").IGetActivateAccountStrategyResponse>, string, never, never>;
227
239
  resendActivationEmail: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[import("@frontegg/rest-api").IResendActivationEmail], import("@frontegg/rest-api").IResendActivationEmail, string, never, never>;
228
240
  loadSocialLoginsConfiguration: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
@@ -315,6 +327,8 @@ declare const _default: {
315
327
  resetProfileState: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
316
328
  setSignUpState: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[Partial<import("./SignUp/interfaces").SignUpState>], Partial<import("./SignUp/interfaces").SignUpState>, string, never, never>;
317
329
  resetSignUpState: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
330
+ setResetPhoneNumberState: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[Partial<import("./ResetPhoneNumberState/interfaces").ResetPhoneNumberState>], Partial<import("./ResetPhoneNumberState/interfaces").ResetPhoneNumberState>, string, never, never>;
331
+ resetResetPhoneNumberState: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
318
332
  setForgotPasswordState: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[Partial<import("./ForgotPasswordState/interfaces").ForgotPasswordState>], Partial<import("./ForgotPasswordState/interfaces").ForgotPasswordState>, string, never, never>;
319
333
  resetForgotPasswordState: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
320
334
  setAcceptInvitationState: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[Partial<import("./AcceptInvitationState/interfaces").AcceptInvitationState>], Partial<import("./AcceptInvitationState/interfaces").AcceptInvitationState>, string, never, never>;
package/auth/index.js CHANGED
@@ -43,6 +43,7 @@ var LoginStep;
43
43
  (function (LoginStep) {
44
44
  LoginStep["preLogin"] = "preLogin";
45
45
  LoginStep["magicLinkPreLoginSuccess"] = "magicLinkPreLoginSuccess";
46
+ LoginStep["loginWithSmsOtc"] = "loginWithSmsOtc";
46
47
  LoginStep["loginWithOtc"] = "loginWithOtc";
47
48
  LoginStep["loginWithPassword"] = "loginWithPassword";
48
49
  LoginStep["loginWithTwoFactor"] = "loginWithTwoFactor";
@@ -59,11 +60,11 @@ const loginState = {
59
60
  email: '',
60
61
  tenants: [],
61
62
  };
62
- const reducers$e = {
63
+ const reducers$f = {
63
64
  setLoginState: typeReducerForKey('loginState'),
64
65
  resetLoginState: resetStateByKey('loginState', { loginState }),
65
66
  };
66
- const actions$f = {
67
+ const actions$g = {
67
68
  requestAuthorize: createAction(`${authStoreName}/requestAuthorize`, (payload = false) => ({ payload })),
68
69
  requestHostedLoginAuthorize: createAction(`${authStoreName}/requestHostedLoginAuthorize`),
69
70
  handleHostedLoginCallback: createAction(`${authStoreName}/handleHostedLoginCallback`, (payload) => ({ payload })),
@@ -86,6 +87,7 @@ var ActivateAccountStep;
86
87
  ActivateAccountStep["activating"] = "activating";
87
88
  ActivateAccountStep["success"] = "success";
88
89
  ActivateAccountStep["resend"] = "resend";
90
+ ActivateAccountStep["activatingForm"] = "activatingForm";
89
91
  })(ActivateAccountStep || (ActivateAccountStep = {}));
90
92
 
91
93
  const activateState = {
@@ -96,13 +98,14 @@ const activateState = {
96
98
  loading: false,
97
99
  },
98
100
  };
99
- const reducers$d = {
101
+ const reducers$e = {
100
102
  setActivateState: typeReducerForKey('activateState'),
101
103
  resetActivateState: resetStateByKey('activateState', { activateState }),
102
104
  setActivateStrategyState: typeReducerNestedKey('activateState', 'activationStrategy'),
103
105
  };
104
- const actions$e = {
106
+ const actions$f = {
105
107
  activateAccount: createAction(`${authStoreName}/activateAccount`, (payload) => ({ payload })),
108
+ preActivateAccount: createAction(`${authStoreName}/preActivateAccount`, (payload) => ({ payload })),
106
109
  getActivateAccountStrategy: createAction(`${authStoreName}/getActivateAccountStrategy`, (payload) => ({ payload })),
107
110
  resendActivationEmail: createAction(`${authStoreName}/resendActivationEmail`, (payload) => ({
108
111
  payload,
@@ -121,13 +124,13 @@ var AcceptInvitationStep;
121
124
  const acceptInvitationState = {
122
125
  step: AcceptInvitationStep.validate,
123
126
  };
124
- const reducers$c = {
127
+ const reducers$d = {
125
128
  setAcceptInvitationState: typeReducerForKey('acceptInvitationState'),
126
129
  resetAcceptInvitationState: resetStateByKey('acceptInvitationState', {
127
130
  acceptInvitationState,
128
131
  }),
129
132
  };
130
- const actions$d = {
133
+ const actions$e = {
131
134
  acceptInvitation: createAction(`${authStoreName}/acceptInvitation`, (payload) => ({ payload })),
132
135
  };
133
136
 
@@ -143,11 +146,11 @@ const forgotPasswordState = {
143
146
  email: '',
144
147
  passwordConfig: null,
145
148
  };
146
- const reducers$b = {
149
+ const reducers$c = {
147
150
  setForgotPasswordState: typeReducerForKey('forgotPasswordState'),
148
151
  resetForgotPasswordState: resetStateByKey('forgotPasswordState', { forgotPasswordState }),
149
152
  };
150
- const actions$c = {
153
+ const actions$d = {
151
154
  forgotPassword: createAction(`${authStoreName}/forgotPassword`, (payload) => ({ payload })),
152
155
  resetPassword: createAction(`${authStoreName}/resetPassword`, (payload) => ({ payload })),
153
156
  loadPasswordConfig: createAction(`${authStoreName}/loadPasswordConfig`, (payload) => ({
@@ -155,6 +158,27 @@ const actions$c = {
155
158
  })),
156
159
  };
157
160
 
161
+ var ResetPhoneNumberStep;
162
+ (function (ResetPhoneNumberStep) {
163
+ ResetPhoneNumberStep["ResetPhoneNumber"] = "ResetPhoneNumber";
164
+ ResetPhoneNumberStep["VerifyResetPhoneNumber"] = "VerifyResetPhoneNumber";
165
+ ResetPhoneNumberStep["ChangePhoneNumber"] = "ChangePhoneNumber";
166
+ })(ResetPhoneNumberStep || (ResetPhoneNumberStep = {}));
167
+
168
+ const resetPhoneNumberState = {
169
+ step: ResetPhoneNumberStep.ResetPhoneNumber,
170
+ loading: false,
171
+ };
172
+ const reducers$b = {
173
+ setResetPhoneNumberState: typeReducerForKey('resetPhoneNumberState'),
174
+ resetResetPhoneNumberState: resetStateByKey('resetPhoneNumberState', { resetPhoneNumberState }),
175
+ };
176
+ const actions$c = {
177
+ resetPhoneNumber: createAction(`${authStoreName}/resetPhoneNumber`, (payload) => ({ payload })),
178
+ verifyResetPhoneNumber: createAction(`${authStoreName}/verifyResetPhoneNumber`, (payload) => ({ payload })),
179
+ changePhoneNumber: createAction(`${authStoreName}/changePhoneNumber`, (payload) => ({ payload })),
180
+ };
181
+
158
182
  const ssoState = {
159
183
  firstLoad: true,
160
184
  loading: true,
@@ -486,6 +510,7 @@ const reinitializeState = {
486
510
  accountSettingsState,
487
511
  tenantsState,
488
512
  rolesState,
513
+ resetPhoneNumberState
489
514
  };
490
515
  const initialState = Object.assign({ routes: {
491
516
  authenticatedUrl: '/',
@@ -494,6 +519,7 @@ const initialState = Object.assign({ routes: {
494
519
  activateUrl: '/account/activate',
495
520
  acceptInvitationUrl: '/account/invitation/accept',
496
521
  forgetPasswordUrl: '/account/forget-password',
522
+ resetPhoneNumberUrl: '/account/reset-phone-number',
497
523
  resetPasswordUrl: '/account/reset-password',
498
524
  socialLoginCallbackUrl: '/account/social/success',
499
525
  signUpUrl: '/account/sign-up',
@@ -506,9 +532,9 @@ const initialState = Object.assign({ routes: {
506
532
  const { reducer, actions: sliceActions } = createSlice({
507
533
  name: authStoreName,
508
534
  initialState,
509
- reducers: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ resetState: (state) => (Object.assign(Object.assign({}, state), reinitializeState)), setState: (state, { payload }) => (Object.assign(Object.assign({}, state), payload)), setUser: typeReducer('user') }, reducers$e), reducers$6), reducers$d), reducers$c), reducers$b), reducers$5), reducers$9), reducers$a), reducers$8), reducers$7), reducers$4), reducers$3), reducers$2), reducers$1), reducers),
535
+ reducers: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ resetState: (state) => (Object.assign(Object.assign({}, state), reinitializeState)), setState: (state, { payload }) => (Object.assign(Object.assign({}, state), payload)), setUser: typeReducer('user') }, reducers$f), reducers$6), reducers$e), reducers$d), reducers$c), reducers$b), reducers$5), reducers$9), reducers$a), reducers$8), reducers$7), reducers$4), reducers$3), reducers$2), reducers$1), reducers),
510
536
  });
511
- const actions = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, sliceActions), actions$f), actions$7), actions$e), actions$d), actions$c), actions$6), actions$a), actions$b), actions$9), actions$8), actions$5), actions$4), actions$3), actions$2), actions$1);
537
+ const actions = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, sliceActions), actions$g), actions$7), actions$f), actions$e), actions$d), actions$c), actions$6), actions$a), actions$b), actions$9), actions$8), actions$5), actions$4), actions$3), actions$2), actions$1);
512
538
 
513
539
  var SSOStateKeys;
514
540
  (function (SSOStateKeys) {
@@ -828,6 +854,12 @@ function* signUpSaga() {
828
854
  yield takeLeading(actions.resetSignUpStateSoft, resetSignUpStateSoft);
829
855
  }
830
856
 
857
+ const authStrategyLoginStepMap = {
858
+ [AuthStrategyEnum.Code]: LoginStep.loginWithOtc,
859
+ [AuthStrategyEnum.EmailAndPassword]: LoginStep.loginWithPassword,
860
+ [AuthStrategyEnum.MagicLink]: LoginStep.magicLinkPreLoginSuccess,
861
+ [AuthStrategyEnum.SmsCode]: LoginStep.loginWithSmsOtc,
862
+ };
831
863
  function* afterAuthNavigation() {
832
864
  var _a;
833
865
  const onRedirectTo = ContextHolder.onRedirectTo;
@@ -916,8 +948,8 @@ function* refreshToken() {
916
948
  else {
917
949
  yield put(actions.setTenantsState({ tenants, loading: false }));
918
950
  yield put(actions.setState({ user, isAuthenticated: true }));
919
- if ([routes.loginUrl, routes.socialLoginCallbackUrl, routes.signUpUrl, routes.oidcRedirectUrl, routes.samlCallbackUrl].some(url => url && window.location.pathname.endsWith(url)) ||
920
- (window.location.pathname.endsWith(routes.activateUrl) && user.verified)) {
951
+ if ([routes.loginUrl, routes.socialLoginCallbackUrl, routes.signUpUrl, routes.oidcRedirectUrl, routes.samlCallbackUrl]
952
+ .some(url => url && window.location.pathname.endsWith(url))) {
921
953
  if (loginState.isNewUser && routes.signUpSuccessUrl && routes.socialLoginCallbackUrl === window.location.pathname) {
922
954
  onRedirectTo(routes.signUpSuccessUrl, { refresh: routes.signUpSuccessUrl.startsWith('http') });
923
955
  }
@@ -991,10 +1023,16 @@ function* handleHostedLoginCallback({ payload }) {
991
1023
  function* passwordlessPreLogin(_a) {
992
1024
  var _b = _a.payload, { callback } = _b, payload = __rest(_b, ["callback"]);
993
1025
  try {
1026
+ const { onRedirectTo, routes } = yield select(({ auth: { onRedirectTo, routes } }) => ({ onRedirectTo, routes }));
994
1027
  yield put(actions.setLoginState({ loading: true }));
995
- yield call(api.auth.passwordlessPreLogin, payload);
996
- const step = payload.type === AuthStrategyEnum.MagicLink ? LoginStep.magicLinkPreLoginSuccess : LoginStep.loginWithOtc;
997
- yield put(actions.setLoginState({ step, loading: false, email: payload.email }));
1028
+ const preloginRes = yield call(api.auth.passwordlessPreLogin, payload);
1029
+ const step = authStrategyLoginStepMap[payload.type];
1030
+ if (step === LoginStep.loginWithSmsOtc && preloginRes.resetPhoneNumberToken) {
1031
+ yield put(actions.setResetPhoneNumberState({ resetPhoneNumberToken: preloginRes.resetPhoneNumberToken, step: ResetPhoneNumberStep.VerifyResetPhoneNumber }));
1032
+ onRedirectTo(routes.resetPhoneNumberUrl);
1033
+ return;
1034
+ }
1035
+ yield put(actions.setLoginState({ step, loading: false, email: payload.email, phoneNumber: preloginRes === null || preloginRes === void 0 ? void 0 : preloginRes.phoneNumber }));
998
1036
  callback === null || callback === void 0 ? void 0 : callback();
999
1037
  }
1000
1038
  catch (e) {
@@ -1080,7 +1118,7 @@ function* ssoPreloginFailed(_a) {
1080
1118
  yield put(actions.setLoginState({ step: LoginStep.loginWithPassword, loading: false }));
1081
1119
  callback === null || callback === void 0 ? void 0 : callback();
1082
1120
  }
1083
- else if ([AuthStrategyEnum.MagicLink, AuthStrategyEnum.Code].includes(publicPolicy === null || publicPolicy === void 0 ? void 0 : publicPolicy.authStrategy)) {
1121
+ else if ([AuthStrategyEnum.MagicLink, AuthStrategyEnum.Code, AuthStrategyEnum.SmsCode].includes(publicPolicy === null || publicPolicy === void 0 ? void 0 : publicPolicy.authStrategy)) {
1084
1122
  yield put(actions.passwordlessPreLogin(Object.assign(Object.assign({}, body), { type: publicPolicy === null || publicPolicy === void 0 ? void 0 : publicPolicy.authStrategy, callback })));
1085
1123
  }
1086
1124
  else {
@@ -2111,6 +2149,23 @@ function* forgotPasswordSagas() {
2111
2149
  yield takeLeading(actions.loadPasswordConfig, loadPasswordConfig);
2112
2150
  }
2113
2151
 
2152
+ function* preActivateAccount({ payload: { userId, token } }) {
2153
+ yield put(actions.setActivateState({ loading: true, step: ActivateAccountStep.activating }));
2154
+ try {
2155
+ const { isAuthenticated } = yield select((state) => state.auth);
2156
+ if (isAuthenticated) {
2157
+ yield put(actions.silentLogout());
2158
+ }
2159
+ const strategy = yield call(api.auth.getActivateAccountStrategy, { userId, token });
2160
+ yield put(actions.setActivateStrategyState({ strategy, loading: false, error: undefined }));
2161
+ if (strategy.shouldSetPassword) {
2162
+ yield put(actions.setActivateState({ loading: false, step: ActivateAccountStep.activatingForm }));
2163
+ }
2164
+ }
2165
+ catch (e) {
2166
+ yield put(actions.setActivateState({ loading: false, error: e.message }));
2167
+ }
2168
+ }
2114
2169
  function* activateAccount(_a) {
2115
2170
  var _b = _a.payload, { callback } = _b, payload = __rest(_b, ["callback"]);
2116
2171
  yield put(actions.setActivateState({ loading: true }));
@@ -2168,6 +2223,7 @@ function* resendActivationEmailFunction({ payload }) {
2168
2223
  }
2169
2224
  function* activateSagas() {
2170
2225
  yield takeLeading(actions.activateAccount, activateAccount);
2226
+ yield takeLeading(actions.preActivateAccount, preActivateAccount);
2171
2227
  yield takeLeading(actions.getActivateAccountStrategy, getActivateAccountStrategy);
2172
2228
  yield takeLeading(actions.resendActivationEmail, resendActivationEmailFunction);
2173
2229
  }
@@ -3273,12 +3329,66 @@ function* rolesSagas() {
3273
3329
  yield takeEvery(actions.attachPermissionToRoles, attachPermissionToRoles);
3274
3330
  }
3275
3331
 
3332
+ function* resetPhoneNumber(_a) {
3333
+ var _b = _a.payload, { callback } = _b, body = __rest(_b, ["callback"]);
3334
+ yield put(actions.setResetPhoneNumberState({ loading: true }));
3335
+ try {
3336
+ const res = yield call(api.auth.resetPhoneNumber, body);
3337
+ yield put(actions.setResetPhoneNumberState({ loading: false, error: undefined, resetPhoneNumberToken: res.resetPhoneNumberToken, step: ResetPhoneNumberStep.VerifyResetPhoneNumber }));
3338
+ yield put(actions.setLoginState({ email: body.email }));
3339
+ }
3340
+ catch (e) {
3341
+ yield put(actions.setResetPhoneNumberState({ loading: false, error: e.message }));
3342
+ callback === null || callback === void 0 ? void 0 : callback(null, e);
3343
+ }
3344
+ }
3345
+ function* verifyResetPhoneNumber(_a) {
3346
+ var _b = _a.payload, { callback } = _b, body = __rest(_b, ["callback"]);
3347
+ yield put(actions.setResetPhoneNumberState({ loading: true }));
3348
+ try {
3349
+ const res = yield call(api.auth.verifyResetPhoneNumber, body);
3350
+ yield put(actions.setResetPhoneNumberState({ loading: false, error: undefined, changePhoneNumberToken: res.changePhoneNumberToken, step: ResetPhoneNumberStep.ChangePhoneNumber }));
3351
+ callback === null || callback === void 0 ? void 0 : callback(true);
3352
+ }
3353
+ catch (e) {
3354
+ yield put(actions.setResetPhoneNumberState({ loading: false, error: e.message }));
3355
+ callback === null || callback === void 0 ? void 0 : callback(null, e);
3356
+ }
3357
+ }
3358
+ function* changePhoneNumber(_a) {
3359
+ var _b = _a.payload, { callback } = _b, body = __rest(_b, ["callback"]);
3360
+ yield put(actions.setResetPhoneNumberState({ loading: true }));
3361
+ try {
3362
+ const { onRedirectTo, routes } = yield select(({ auth: { onRedirectTo, routes } }) => ({ onRedirectTo, routes }));
3363
+ yield call(api.auth.changePhoneNumber, { phoneNumber: body.phoneNumber, changePhoneNumberToken: body.changePhoneNumberToken });
3364
+ yield put(actions.setLoginState({ step: LoginStep.loginWithSmsOtc }));
3365
+ yield put(actions.passwordlessPreLogin({
3366
+ type: AuthStrategyEnum.SmsCode,
3367
+ email: body.email,
3368
+ recaptchaToken: body.recaptchaToken,
3369
+ }));
3370
+ onRedirectTo(routes.loginUrl);
3371
+ yield put(actions.setResetPhoneNumberState({ loading: false }));
3372
+ callback === null || callback === void 0 ? void 0 : callback(true);
3373
+ }
3374
+ catch (e) {
3375
+ yield put(actions.setResetPhoneNumberState({ loading: false, error: e.message }));
3376
+ callback === null || callback === void 0 ? void 0 : callback(null, e);
3377
+ }
3378
+ }
3379
+ function* resetPhoneNumberSagas() {
3380
+ yield takeLeading(actions.resetPhoneNumber, resetPhoneNumber);
3381
+ yield takeLeading(actions.verifyResetPhoneNumber, verifyResetPhoneNumber);
3382
+ yield takeLeading(actions.changePhoneNumber, changePhoneNumber);
3383
+ }
3384
+
3276
3385
  function* sagas() {
3277
3386
  yield all([
3278
3387
  call(loginSagas),
3279
3388
  call(activateSagas),
3280
3389
  call(acceptInvitationSagas),
3281
3390
  call(forgotPasswordSagas),
3391
+ call(resetPhoneNumberSagas),
3282
3392
  call(ssoSagas$1),
3283
3393
  call(ssoSagas),
3284
3394
  call(profileSagas),
@@ -3322,4 +3432,4 @@ var authStore = {
3322
3432
  actions,
3323
3433
  };
3324
3434
 
3325
- export { AcceptInvitationStep, ActivateAccountStep, ApiStateKeys, ForgotPasswordStep, LoginStep, MFAStep, SSOStateKeys, SamlVendors, SignUpStage, TeamStateKeys, actions$d as acceptInvitationActions, reducers$c as acceptInvitationReducers, acceptInvitationState, actions$3 as accountSettingsActions, reducers$2 as accountSettingsReducers, accountSettingsState, actions$e as activateAccountActions, reducers$d as activateAccountReducers, activateState, actions$5 as apiTokensActions, reducers$4 as apiTokensReducers, apiTokensState, actions as authActions, initialState as authInitialState, mockSagas as authMockSagas, reducer as authReducers, sagas as authSagas, authStore as default, actions$c as forgotPasswordActions, reducers$b as forgotPasswordReducers, forgotPasswordState, actions$f as loginActions, reducers$e as loginReducers, loginState, actions$9 as mfaActions, reducers$8 as mfaReducers, mfaState, actions$a as profileActions, reducers$9 as profileReducers, profileState, actions$1 as rolesActions, reducers as rolesReducers, rolesState, actions$4 as securityPolicyActions, reducers$3 as securityPolicyReducers, securityPolicyState, actions$6 as signUpActions, reducers$5 as signUpReducers, signUpState, socialLoginState, actions$7 as socialLoginsActions, reducers$6 as socialLoginsReducer, actions$b as ssoActions, reducers$a as ssoReducers, ssoState, actions$8 as teamActions, reducers$7 as teamReducers, teamState, actions$2 as tenantsActions, reducers$1 as tenantsReducers, tenantsState };
3435
+ export { AcceptInvitationStep, ActivateAccountStep, ApiStateKeys, ForgotPasswordStep, LoginStep, MFAStep, ResetPhoneNumberStep, SSOStateKeys, SamlVendors, SignUpStage, TeamStateKeys, actions$e as acceptInvitationActions, reducers$d as acceptInvitationReducers, acceptInvitationState, actions$3 as accountSettingsActions, reducers$2 as accountSettingsReducers, accountSettingsState, actions$f as activateAccountActions, reducers$e as activateAccountReducers, activateState, actions$5 as apiTokensActions, reducers$4 as apiTokensReducers, apiTokensState, actions as authActions, initialState as authInitialState, mockSagas as authMockSagas, reducer as authReducers, sagas as authSagas, authStore as default, actions$d as forgotPasswordActions, reducers$c as forgotPasswordReducers, forgotPasswordState, actions$g as loginActions, reducers$f as loginReducers, loginState, actions$9 as mfaActions, reducers$8 as mfaReducers, mfaState, actions$a as profileActions, reducers$9 as profileReducers, profileState, actions$c as resetPhoneNumberActions, reducers$b as resetPhoneNumberReducers, resetPhoneNumberState, actions$1 as rolesActions, reducers as rolesReducers, rolesState, actions$4 as securityPolicyActions, reducers$3 as securityPolicyReducers, securityPolicyState, actions$6 as signUpActions, reducers$5 as signUpReducers, signUpState, socialLoginState, actions$7 as socialLoginsActions, reducers$6 as socialLoginsReducer, actions$b as ssoActions, reducers$a as ssoReducers, ssoState, actions$8 as teamActions, reducers$7 as teamReducers, teamState, actions$2 as tenantsActions, reducers$1 as tenantsReducers, tenantsState };
@@ -14,6 +14,7 @@ import { SecurityPolicyState } from './SecurityPolicyState/interfaces';
14
14
  import { AccountSettingsState } from './AccountSettingsState/interfaces';
15
15
  import { TenantsState } from './TenantsState/interfaces';
16
16
  import { RolesState } from './RolesState/interfaces';
17
+ import { ResetPhoneNumberState } from './ResetPhoneNumberState/interfaces';
17
18
  export interface User extends IUserProfile {
18
19
  accessToken: string;
19
20
  refreshToken: string;
@@ -40,6 +41,7 @@ export interface AuthState extends Routes, PluginOptions {
40
41
  activateState: ActivateAccountState;
41
42
  acceptInvitationState: AcceptInvitationState;
42
43
  forgotPasswordState: ForgotPasswordState;
44
+ resetPhoneNumberState: ResetPhoneNumberState;
43
45
  ssoState: SSOState;
44
46
  profileState: ProfileState;
45
47
  mfaState: MFAState;
@@ -78,6 +80,10 @@ export declare type AuthPageRoutes = {
78
80
  * the page in the case a user forgot his account password
79
81
  */
80
82
  forgetPasswordUrl: string;
83
+ /**
84
+ * the page in the case a user wants to reset his account phone number
85
+ */
86
+ resetPhoneNumberUrl: string;
81
87
  /**
82
88
  * the page whither need to redirect in the case when a user redirected from reset password url
83
89
  */
@@ -103,9 +109,17 @@ export declare type AuthPageRoutes = {
103
109
  */
104
110
  magicLinkCallbackUrl?: string;
105
111
  /**
106
- * after sign up success url
112
+ * after sign up success url, the order of urls read: (accountSignUpSuccessUrl or userSignUpSuccessUrl) / signupSuccessUrl / authenticationUrl
107
113
  */
108
114
  signUpSuccessUrl?: string;
115
+ /**
116
+ * after account sign up success url, the order of urls read: accountSignUpSuccessUrl / signupSuccessUrl / authenticationUrl
117
+ */
118
+ accountSignUpSuccessUrl?: string;
119
+ /**
120
+ * after user (tenant) sign up success url, the order of urls read: userSignUpSuccessUrl / signupSuccessUrl / authenticationUrl
121
+ */
122
+ userSignUpSuccessUrl?: string;
109
123
  /**
110
124
  * hosted login callback redirect url
111
125
  */
package/auth/reducer.d.ts CHANGED
@@ -14,6 +14,7 @@ import { SecurityPolicyActions } from './SecurityPolicyState';
14
14
  import { AccountSettingsActions } from './AccountSettingsState';
15
15
  import { TenantsActions } from './TenantsState';
16
16
  import { RolesActions } from './RolesState';
17
+ import { ResetPhoneNumberActions } from './ResetPhoneNumberState';
17
18
  declare const reducer: import("redux").Reducer<AuthState, import("redux").AnyAction>;
18
19
  declare const actions: {
19
20
  loadRolesAndPermissions: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[({
@@ -192,11 +193,21 @@ declare const actions: {
192
193
  changePassword: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[import("../interfaces").WithCallback<import("@frontegg/rest-api").IChangePassword, boolean>], import("../interfaces").WithCallback<import("@frontegg/rest-api").IChangePassword, boolean>, string, never, never>;
193
194
  signUpUser: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[import("@frontegg/rest-api").ISignUpUser], import("@frontegg/rest-api").ISignUpUser, string, never, never>;
194
195
  resetSignUpStateSoft: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
196
+ resetPhoneNumber: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[import("../interfaces").WithCallback<import("@frontegg/rest-api").IResetPhoneNumber, boolean>], import("../interfaces").WithCallback<import("@frontegg/rest-api").IResetPhoneNumber, boolean>, string, never, never>;
197
+ verifyResetPhoneNumber: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[import("../interfaces").WithCallback<import("@frontegg/rest-api").IVerifyResetPhoneNumber, boolean>], import("../interfaces").WithCallback<import("@frontegg/rest-api").IVerifyResetPhoneNumber, boolean>, string, never, never>;
198
+ changePhoneNumber: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[import("../interfaces").WithCallback<import("@frontegg/rest-api").IChangePhoneNumber & {
199
+ recaptchaToken: string;
200
+ email: string;
201
+ }, boolean>], import("../interfaces").WithCallback<import("@frontegg/rest-api").IChangePhoneNumber & {
202
+ recaptchaToken: string;
203
+ email: string;
204
+ }, boolean>, string, never, never>;
195
205
  forgotPassword: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[import("@frontegg/rest-api").IForgotPassword], import("@frontegg/rest-api").IForgotPassword, string, never, never>;
196
206
  resetPassword: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[import("../interfaces").WithCallback<import("@frontegg/rest-api").IResetPassword, boolean>], import("../interfaces").WithCallback<import("@frontegg/rest-api").IResetPassword, boolean>, string, never, never>;
197
207
  loadPasswordConfig: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[(import("@frontegg/rest-api").IGetUserPasswordConfig | undefined)?], import("@frontegg/rest-api").IGetUserPasswordConfig | undefined, string, never, never>;
198
208
  acceptInvitation: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[import("@frontegg/rest-api").IAcceptInvitation], import("@frontegg/rest-api").IAcceptInvitation, string, never, never>;
199
209
  activateAccount: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[import("../interfaces").WithCallback<import("@frontegg/rest-api").IActivateAccount, boolean>], import("../interfaces").WithCallback<import("@frontegg/rest-api").IActivateAccount, boolean>, string, never, never>;
210
+ preActivateAccount: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[import(".").IPreActivateAccount], import(".").IPreActivateAccount, string, never, never>;
200
211
  getActivateAccountStrategy: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[import("../interfaces").WithCallback<import("@frontegg/rest-api").IGetActivateAccountStrategy, import("@frontegg/rest-api").IGetActivateAccountStrategyResponse>], import("../interfaces").WithCallback<import("@frontegg/rest-api").IGetActivateAccountStrategy, import("@frontegg/rest-api").IGetActivateAccountStrategyResponse>, string, never, never>;
201
212
  resendActivationEmail: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[import("@frontegg/rest-api").IResendActivationEmail], import("@frontegg/rest-api").IResendActivationEmail, string, never, never>;
202
213
  loadSocialLoginsConfiguration: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
@@ -289,6 +300,8 @@ declare const actions: {
289
300
  resetProfileState: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
290
301
  setSignUpState: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[Partial<import(".").SignUpState>], Partial<import(".").SignUpState>, string, never, never>;
291
302
  resetSignUpState: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
303
+ setResetPhoneNumberState: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[Partial<import(".").ResetPhoneNumberState>], Partial<import(".").ResetPhoneNumberState>, string, never, never>;
304
+ resetResetPhoneNumberState: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
292
305
  setForgotPasswordState: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[Partial<import(".").ForgotPasswordState>], Partial<import(".").ForgotPasswordState>, string, never, never>;
293
306
  resetForgotPasswordState: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
294
307
  setAcceptInvitationState: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[Partial<import(".").AcceptInvitationState>], Partial<import(".").AcceptInvitationState>, string, never, never>;
@@ -309,5 +322,5 @@ export declare type RootActions = {
309
322
  resetState: () => void;
310
323
  setUser: (user: User) => void;
311
324
  };
312
- export declare type AuthActions = RootActions & LoginActions & SocialLoginActions & ActivateAccountActions & AcceptInvitationActions & ForgotPasswordActions & SignUpActions & ProfileActions & SSOActions & MfaActions & TeamActions & ApiTokensActions & SecurityPolicyActions & AccountSettingsActions & TenantsActions & RolesActions;
325
+ export declare type AuthActions = RootActions & LoginActions & SocialLoginActions & ActivateAccountActions & AcceptInvitationActions & ForgotPasswordActions & ResetPhoneNumberActions & SignUpActions & ProfileActions & SSOActions & MfaActions & TeamActions & ApiTokensActions & SecurityPolicyActions & AccountSettingsActions & TenantsActions & RolesActions;
313
326
  export { reducer, actions };
package/auth/utils.d.ts CHANGED
@@ -13,6 +13,7 @@ export declare const resetStateByKey: <T>(key: keyof AuthState, initialState: Pa
13
13
  activateState: import(".").ActivateAccountState;
14
14
  acceptInvitationState: import(".").AcceptInvitationState;
15
15
  forgotPasswordState: import(".").ForgotPasswordState;
16
+ resetPhoneNumberState: import(".").ResetPhoneNumberState;
16
17
  ssoState: import(".").SSOState;
17
18
  profileState: import(".").ProfileState;
18
19
  mfaState: import(".").MFAState;
@@ -44,6 +45,7 @@ export declare const typeReducer: <T>(key: keyof AuthState) => (state: AuthState
44
45
  activateState: import(".").ActivateAccountState;
45
46
  acceptInvitationState: import(".").AcceptInvitationState;
46
47
  forgotPasswordState: import(".").ForgotPasswordState;
48
+ resetPhoneNumberState: import(".").ResetPhoneNumberState;
47
49
  ssoState: import(".").SSOState;
48
50
  profileState: import(".").ProfileState;
49
51
  mfaState: import(".").MFAState;
@@ -79,6 +81,7 @@ export declare const typeReducerForKey: <T>(key: keyof AuthState) => {
79
81
  activateState: import(".").ActivateAccountState;
80
82
  acceptInvitationState: import(".").AcceptInvitationState;
81
83
  forgotPasswordState: import(".").ForgotPasswordState;
84
+ resetPhoneNumberState: import(".").ResetPhoneNumberState;
82
85
  ssoState: import(".").SSOState;
83
86
  profileState: import(".").ProfileState;
84
87
  mfaState: import(".").MFAState;
@@ -115,6 +118,7 @@ export declare const typeReducerNestedKey: <T, K>(key: keyof AuthState, nestedKe
115
118
  activateState: import(".").ActivateAccountState;
116
119
  acceptInvitationState: import(".").AcceptInvitationState;
117
120
  forgotPasswordState: import(".").ForgotPasswordState;
121
+ resetPhoneNumberState: import(".").ResetPhoneNumberState;
118
122
  ssoState: import(".").SSOState;
119
123
  profileState: import(".").ProfileState;
120
124
  mfaState: import(".").MFAState;
package/index.js CHANGED
@@ -1,7 +1,7 @@
1
- export { AcceptInvitationStep, ActivateAccountStep, ApiStateKeys, ForgotPasswordStep, LoginStep, MFAStep, SSOStateKeys, SamlVendors, SignUpStage, TeamStateKeys, acceptInvitationActions, acceptInvitationReducers, acceptInvitationState, accountSettingsActions, accountSettingsReducers, accountSettingsState, activateAccountActions, activateAccountReducers, activateState, apiTokensActions, apiTokensReducers, apiTokensState, default as auth, authActions, authInitialState, authMockSagas, authReducers, authSagas, forgotPasswordActions, forgotPasswordReducers, forgotPasswordState, loginActions, loginReducers, loginState, mfaActions, mfaReducers, mfaState, profileActions, profileReducers, profileState, rolesActions, rolesReducers, rolesState, securityPolicyActions, securityPolicyReducers, securityPolicyState, signUpActions, signUpReducers, signUpState, socialLoginState, socialLoginsActions, socialLoginsReducer, ssoActions, ssoReducers, ssoState, teamActions, teamReducers, teamState, tenantsActions, tenantsReducers, tenantsState } from './auth/index.js';
1
+ export { AcceptInvitationStep, ActivateAccountStep, ApiStateKeys, ForgotPasswordStep, LoginStep, MFAStep, ResetPhoneNumberStep, SSOStateKeys, SamlVendors, SignUpStage, TeamStateKeys, acceptInvitationActions, acceptInvitationReducers, acceptInvitationState, accountSettingsActions, accountSettingsReducers, accountSettingsState, activateAccountActions, activateAccountReducers, activateState, apiTokensActions, apiTokensReducers, apiTokensState, default as auth, authActions, authInitialState, authMockSagas, authReducers, authSagas, forgotPasswordActions, forgotPasswordReducers, forgotPasswordState, loginActions, loginReducers, loginState, mfaActions, mfaReducers, mfaState, profileActions, profileReducers, profileState, resetPhoneNumberActions, resetPhoneNumberReducers, resetPhoneNumberState, rolesActions, rolesReducers, rolesState, securityPolicyActions, securityPolicyReducers, securityPolicyState, signUpActions, signUpReducers, signUpState, socialLoginState, socialLoginsActions, socialLoginsReducer, ssoActions, ssoReducers, ssoState, teamActions, teamReducers, teamState, tenantsActions, tenantsReducers, tenantsState } from './auth/index.js';
2
2
  export { auditLogsActions, auditLogsReducers, auditLogsState, default as audits, auditsActions, auditsInitialState, auditsMetadataActions, auditsMetadataReducers, auditsMetadataState, auditsMockSagas, auditsReducers, auditsSagas } from './audits/index.js';
3
3
  export { default as connectivity, connectivityActions, connectivityInitialState, connectivityReducers, connectivitySagas } from './connectivity/index.js';
4
- export { CheckoutEvent, CheckoutStatus, PaymentMethodType, PaymentProvider, SubscriptionCancellationPolicy, SubscriptionStatus, subscriptionActions, subscriptionInitialState, subscriptionReducers, subscriptionSagas, subscriptionSagasMock, default as subscriptions } from './subscriptions/index.js';
4
+ export { CheckoutEvent, CheckoutStatus, ManagedSubscriptionStatus, PaymentMethodType, PaymentProvider, SubscriptionCancellationPolicy, SubscriptionStatus, subscriptionActions, subscriptionInitialState, subscriptionReducers, subscriptionSagas, subscriptionSagasMock, default as subscriptions } from './subscriptions/index.js';
5
5
  export { default as vendor } from './vendor/index.js';
6
6
  export { createFronteggStore } from './toolkit/index.js';
7
7
  export { AuthStrategyEnum } from '@frontegg/rest-api';