@frontegg/redux-store 7.83.0-alpha.6 → 7.83.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.
@@ -116,7 +116,8 @@ export type SetLoadingAction = ({ loading, error }: {
116
116
  export declare enum LoginActionTypes {
117
117
  'social-login' = "social-login",
118
118
  'custom-social-login' = "custom-social-login",
119
- direct = "direct"
119
+ direct = "direct",
120
+ signup = "signup"
120
121
  }
121
122
  export interface LoginDirectAction {
122
123
  type: keyof typeof LoginActionTypes;
@@ -38,4 +38,5 @@ export let LoginActionTypes;
38
38
  LoginActionTypes["social-login"] = "social-login";
39
39
  LoginActionTypes["custom-social-login"] = "custom-social-login";
40
40
  LoginActionTypes["direct"] = "direct";
41
+ LoginActionTypes["signup"] = "signup";
41
42
  })(LoginActionTypes || (LoginActionTypes = {}));
@@ -6,6 +6,7 @@ declare const _default: (store: FronteggState, api: RestApi, sharedActions: Shar
6
6
  resetSignUpState: () => void;
7
7
  resetSignUpStateSoft: () => void;
8
8
  signUpUser: (_payload: ISignUpUserPayload) => Promise<void>;
9
+ signUpUserWithPhoneNumber: (_payload: ISignUpUserPayload) => Promise<void>;
9
10
  loadAllowSignUps: (payload?: WithCallback<WithRetryConfig<{}>, IVendorConfig>) => Promise<void>;
10
11
  loadSignUpStrategies: () => Promise<void>;
11
12
  };
@@ -1,8 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  const _excluded = ["events", "url"],
4
- _excluded2 = ["events", "url"],
5
- _excluded3 = ["events", "url"];
4
+ _excluded2 = ["events", "url"];
6
5
  import { SignUpStage } from './interfaces';
7
6
  import { deepResetState, errorHandler, retryIfNeeded } from '../../helpers';
8
7
  import { initialState } from './state';
@@ -115,83 +114,11 @@ export default ((store, api, sharedActions) => {
115
114
  });
116
115
  }
117
116
  };
118
- const signUpUserWithUsername = async _payload => {
119
- const {
120
- events
121
- } = _payload,
122
- payload = _objectWithoutPropertiesLoose(_payload, _excluded2);
123
- setSignUpState({
124
- loading: true
125
- });
126
- if (!payload.username) {
127
- throw new Error('Username is required for username signup');
128
- }
129
- try {
130
- const {
131
- routes,
132
- onRedirectTo
133
- } = store.auth;
134
- const {
135
- shouldActivate,
136
- user,
137
- tenantId,
138
- userId,
139
- tenants = [],
140
- activeTenant,
141
- activationToken
142
- } = await api.auth.signUpUserWithUsername(prepareIdentifiersForSignup(payload));
143
- if (!payload.invitationToken) {
144
- reportSignupCompletion(payload, userId, tenantId, activationToken, events, AuthenticationTypes.USERNAME);
145
- }
146
- if (!shouldActivate && user && isMfaRequired(user, store.root.appName)) {
147
- const mfaRequiredState = await actions.getMfaRequiredState(user, DEFAULT_RETRY_CONFIG, true, payload.email);
148
- actions.setAuthState(mfaRequiredState);
149
- onRedirectTo(routes.loginUrl);
150
- } else if (shouldActivate && activationToken) {
151
- const searchParams = new URLSearchParams({
152
- userId: userId || '',
153
- token: activationToken || ''
154
- });
155
- const url = `${routes.activateWithOTCUrl}?${searchParams.toString()}`;
156
- setSignUpState({
157
- loading: false,
158
- shouldActivate,
159
- stage: SignUpStage.SignUpSuccess
160
- });
161
- onRedirectTo(url);
162
- } else {
163
- const tenantsState = store.auth.tenantsState;
164
- setSignUpState({
165
- loading: false,
166
- shouldActivate,
167
- stage: SignUpStage.SignUpSuccess
168
- });
169
- actions.setAuthState({
170
- user,
171
- isAuthenticated: !!(user != null && user.accessToken),
172
- tenantsState: _extends({}, tenantsState, {
173
- tenants,
174
- activeTenant
175
- })
176
- });
177
- }
178
- } catch (e) {
179
- contextHolder.setAccessToken(null);
180
- contextHolder.setUser(null);
181
- setSignUpState({
182
- error: errorHandler(e)
183
- });
184
- } finally {
185
- setSignUpState({
186
- loading: false
187
- });
188
- }
189
- };
190
117
  const signUpUser = async _payload => {
191
118
  const {
192
119
  events
193
120
  } = _payload,
194
- payload = _objectWithoutPropertiesLoose(_payload, _excluded3);
121
+ payload = _objectWithoutPropertiesLoose(_payload, _excluded2);
195
122
  setSignUpState({
196
123
  loading: true
197
124
  });
@@ -199,10 +126,6 @@ export default ((store, api, sharedActions) => {
199
126
  if (phoneNumberStrategy != null && phoneNumberStrategy.required && phoneNumberStrategy != null && phoneNumberStrategy.enabled && payload.phoneNumber) {
200
127
  return signUpUserWithPhoneNumber(_payload);
201
128
  }
202
- const usernameStrategy = store.auth.signUpState.strategies.username;
203
- if (usernameStrategy != null && usernameStrategy.required && usernameStrategy != null && usernameStrategy.enabled && payload.username) {
204
- return signUpUserWithUsername(_payload);
205
- }
206
129
  try {
207
130
  const {
208
131
  routes,
@@ -320,6 +243,7 @@ export default ((store, api, sharedActions) => {
320
243
  resetSignUpState,
321
244
  resetSignUpStateSoft,
322
245
  signUpUser,
246
+ signUpUserWithPhoneNumber,
323
247
  loadAllowSignUps,
324
248
  loadSignUpStrategies
325
249
  };
@@ -15,10 +15,6 @@ export const initialState = {
15
15
  [SignUpStrategyEnum.PhoneNumber]: {
16
16
  enabled: false,
17
17
  required: false
18
- },
19
- [SignUpStrategyEnum.Username]: {
20
- enabled: false,
21
- required: false
22
18
  }
23
19
  }
24
20
  };
@@ -46,7 +46,9 @@ export default ((store, api, sharedActions) => {
46
46
  };
47
47
  const createInvitationLink = async payload => {
48
48
  const {
49
- callback
49
+ callback,
50
+ expiresInMinutes,
51
+ shouldSendEmail
50
52
  } = payload;
51
53
  actions.setTeamError({
52
54
  key: TeamStateKeys.CREATE_TOKEN_LINK,
@@ -56,9 +58,18 @@ export default ((store, api, sharedActions) => {
56
58
  inviteTokenState
57
59
  } = store.auth.teamState;
58
60
  try {
59
- const data = await api.teams.createInviteUserLink({
60
- expiresInMinutes: 43200
61
- });
61
+ const [enhancedInviteUserModalFlag] = await actions.getFeatureFlags(['invite_user_modal_enhancements_frontend']);
62
+ let data;
63
+ if (enhancedInviteUserModalFlag) {
64
+ data = await api.teams.createInviteUserLink({
65
+ expiresInMinutes: expiresInMinutes != null ? expiresInMinutes : 43200,
66
+ shouldSendEmail: shouldSendEmail != null ? shouldSendEmail : true
67
+ });
68
+ } else {
69
+ data = await api.teams.createInviteUserLink({
70
+ expiresInMinutes: 43200
71
+ });
72
+ }
62
73
  actions.setTeamState({
63
74
  inviteTokenState: _extends({}, inviteTokenState, data)
64
75
  });
package/auth/helpers.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["phoneNumber", "email", "username"],
3
+ const _excluded = ["phoneNumber", "email"],
4
4
  _excluded2 = ["authenticatedUrl"];
5
5
  import { ContextHolder } from '@frontegg/rest-api';
6
6
  import { defaultFronteggRoutes } from './LoginState/consts';
@@ -56,8 +56,7 @@ export const getUri = urlStrategy => {
56
56
  export const prepareIdentifiersForSignup = payload => {
57
57
  const {
58
58
  phoneNumber,
59
- email,
60
- username
59
+ email
61
60
  } = payload,
62
61
  finalDto = _objectWithoutPropertiesLoose(payload, _excluded);
63
62
  if (email != null && email.length) {
@@ -70,11 +69,6 @@ export const prepareIdentifiersForSignup = payload => {
70
69
  phoneNumber
71
70
  });
72
71
  }
73
- if (username != null && username.length) {
74
- Object.assign(finalDto, {
75
- username
76
- });
77
- }
78
72
  return finalDto;
79
73
  };
80
74
  export const isAuthRoute = (path, routes) => {
@@ -262,8 +262,7 @@ export declare enum UserVerifiedOriginTypes {
262
262
  export declare enum AuthenticationTypes {
263
263
  SOCIAL_LOGIN = "SOCIAL_LOGIN",
264
264
  PASSWORD = "PASSWORD",
265
- PHONE_NUMBER = "PHONE_NUMBER",
266
- USERNAME = "USERNAME"
265
+ PHONE_NUMBER = "PHONE_NUMBER"
267
266
  }
268
267
  export declare enum AdminPortalPagesForEvents {
269
268
  profile = "profile",
@@ -19,7 +19,6 @@ export let AuthenticationTypes;
19
19
  AuthenticationTypes["SOCIAL_LOGIN"] = "SOCIAL_LOGIN";
20
20
  AuthenticationTypes["PASSWORD"] = "PASSWORD";
21
21
  AuthenticationTypes["PHONE_NUMBER"] = "PHONE_NUMBER";
22
- AuthenticationTypes["USERNAME"] = "USERNAME";
23
22
  })(AuthenticationTypes || (AuthenticationTypes = {}));
24
23
  export let AdminPortalPagesForEvents;
25
24
 
package/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license Frontegg v7.83.0-alpha.6
1
+ /** @license Frontegg v7.83.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.
@@ -4,6 +4,7 @@ declare const _default: (store: FronteggState, api: RestApi, actions: SharedActi
4
4
  resetSignUpState: () => void;
5
5
  resetSignUpStateSoft: () => void;
6
6
  signUpUser: (_payload: import("../..").ISignUpUserPayload) => Promise<void>;
7
+ signUpUserWithPhoneNumber: (_payload: import("../..").ISignUpUserPayload) => Promise<void>;
7
8
  loadAllowSignUps: (payload?: import("../../interfaces").WithCallback<import("../../interfaces").WithRetryConfig<{}>, import("dist/@frontegg/rest-api").IVendorConfig>) => Promise<void>;
8
9
  loadSignUpStrategies: () => Promise<void>;
9
10
  };
@@ -53,4 +53,5 @@ exports.LoginActionTypes = LoginActionTypes;
53
53
  LoginActionTypes["social-login"] = "social-login";
54
54
  LoginActionTypes["custom-social-login"] = "custom-social-login";
55
55
  LoginActionTypes["direct"] = "direct";
56
+ LoginActionTypes["signup"] = "signup";
56
57
  })(LoginActionTypes || (exports.LoginActionTypes = LoginActionTypes = {}));
@@ -17,8 +17,7 @@ var _gtm = require("../../helpers/gtm");
17
17
  var _constants = require("../../constants");
18
18
  var _toolkit = require("../../toolkit");
19
19
  const _excluded = ["events", "url"],
20
- _excluded2 = ["events", "url"],
21
- _excluded3 = ["events", "url"];
20
+ _excluded2 = ["events", "url"];
22
21
  var _default = (store, api, sharedActions) => {
23
22
  const actions = sharedActions;
24
23
  const contextHolder = _restApi.ContextHolder.for(store.root.appName);
@@ -122,83 +121,11 @@ var _default = (store, api, sharedActions) => {
122
121
  });
123
122
  }
124
123
  };
125
- const signUpUserWithUsername = async _payload => {
126
- const {
127
- events
128
- } = _payload,
129
- payload = (0, _objectWithoutPropertiesLoose2.default)(_payload, _excluded2);
130
- setSignUpState({
131
- loading: true
132
- });
133
- if (!payload.username) {
134
- throw new Error('Username is required for username signup');
135
- }
136
- try {
137
- const {
138
- routes,
139
- onRedirectTo
140
- } = store.auth;
141
- const {
142
- shouldActivate,
143
- user,
144
- tenantId,
145
- userId,
146
- tenants = [],
147
- activeTenant,
148
- activationToken
149
- } = await api.auth.signUpUserWithUsername((0, _helpers2.prepareIdentifiersForSignup)(payload));
150
- if (!payload.invitationToken) {
151
- reportSignupCompletion(payload, userId, tenantId, activationToken, events, _interfaces2.AuthenticationTypes.USERNAME);
152
- }
153
- if (!shouldActivate && user && (0, _helpers2.isMfaRequired)(user, store.root.appName)) {
154
- const mfaRequiredState = await actions.getMfaRequiredState(user, _constants.DEFAULT_RETRY_CONFIG, true, payload.email);
155
- actions.setAuthState(mfaRequiredState);
156
- onRedirectTo(routes.loginUrl);
157
- } else if (shouldActivate && activationToken) {
158
- const searchParams = new URLSearchParams({
159
- userId: userId || '',
160
- token: activationToken || ''
161
- });
162
- const url = `${routes.activateWithOTCUrl}?${searchParams.toString()}`;
163
- setSignUpState({
164
- loading: false,
165
- shouldActivate,
166
- stage: _interfaces.SignUpStage.SignUpSuccess
167
- });
168
- onRedirectTo(url);
169
- } else {
170
- const tenantsState = store.auth.tenantsState;
171
- setSignUpState({
172
- loading: false,
173
- shouldActivate,
174
- stage: _interfaces.SignUpStage.SignUpSuccess
175
- });
176
- actions.setAuthState({
177
- user,
178
- isAuthenticated: !!(user != null && user.accessToken),
179
- tenantsState: (0, _extends2.default)({}, tenantsState, {
180
- tenants,
181
- activeTenant
182
- })
183
- });
184
- }
185
- } catch (e) {
186
- contextHolder.setAccessToken(null);
187
- contextHolder.setUser(null);
188
- setSignUpState({
189
- error: (0, _helpers.errorHandler)(e)
190
- });
191
- } finally {
192
- setSignUpState({
193
- loading: false
194
- });
195
- }
196
- };
197
124
  const signUpUser = async _payload => {
198
125
  const {
199
126
  events
200
127
  } = _payload,
201
- payload = (0, _objectWithoutPropertiesLoose2.default)(_payload, _excluded3);
128
+ payload = (0, _objectWithoutPropertiesLoose2.default)(_payload, _excluded2);
202
129
  setSignUpState({
203
130
  loading: true
204
131
  });
@@ -206,10 +133,6 @@ var _default = (store, api, sharedActions) => {
206
133
  if (phoneNumberStrategy != null && phoneNumberStrategy.required && phoneNumberStrategy != null && phoneNumberStrategy.enabled && payload.phoneNumber) {
207
134
  return signUpUserWithPhoneNumber(_payload);
208
135
  }
209
- const usernameStrategy = store.auth.signUpState.strategies.username;
210
- if (usernameStrategy != null && usernameStrategy.required && usernameStrategy != null && usernameStrategy.enabled && payload.username) {
211
- return signUpUserWithUsername(_payload);
212
- }
213
136
  try {
214
137
  const {
215
138
  routes,
@@ -327,6 +250,7 @@ var _default = (store, api, sharedActions) => {
327
250
  resetSignUpState,
328
251
  resetSignUpStateSoft,
329
252
  signUpUser,
253
+ signUpUserWithPhoneNumber,
330
254
  loadAllowSignUps,
331
255
  loadSignUpStrategies
332
256
  };
@@ -21,10 +21,6 @@ const initialState = {
21
21
  [_restApi.SignUpStrategyEnum.PhoneNumber]: {
22
22
  enabled: false,
23
23
  required: false
24
- },
25
- [_restApi.SignUpStrategyEnum.Username]: {
26
- enabled: false,
27
- required: false
28
24
  }
29
25
  }
30
26
  };
@@ -53,7 +53,9 @@ var _default = (store, api, sharedActions) => {
53
53
  };
54
54
  const createInvitationLink = async payload => {
55
55
  const {
56
- callback
56
+ callback,
57
+ expiresInMinutes,
58
+ shouldSendEmail
57
59
  } = payload;
58
60
  actions.setTeamError({
59
61
  key: _interfaces.TeamStateKeys.CREATE_TOKEN_LINK,
@@ -63,9 +65,18 @@ var _default = (store, api, sharedActions) => {
63
65
  inviteTokenState
64
66
  } = store.auth.teamState;
65
67
  try {
66
- const data = await api.teams.createInviteUserLink({
67
- expiresInMinutes: 43200
68
- });
68
+ const [enhancedInviteUserModalFlag] = await actions.getFeatureFlags(['invite_user_modal_enhancements_frontend']);
69
+ let data;
70
+ if (enhancedInviteUserModalFlag) {
71
+ data = await api.teams.createInviteUserLink({
72
+ expiresInMinutes: expiresInMinutes != null ? expiresInMinutes : 43200,
73
+ shouldSendEmail: shouldSendEmail != null ? shouldSendEmail : true
74
+ });
75
+ } else {
76
+ data = await api.teams.createInviteUserLink({
77
+ expiresInMinutes: 43200
78
+ });
79
+ }
69
80
  actions.setTeamState({
70
81
  inviteTokenState: (0, _extends2.default)({}, inviteTokenState, data)
71
82
  });
@@ -53,7 +53,7 @@ Object.keys(_helpers3).forEach(function (key) {
53
53
  }
54
54
  });
55
55
  });
56
- const _excluded = ["phoneNumber", "email", "username"],
56
+ const _excluded = ["phoneNumber", "email"],
57
57
  _excluded2 = ["authenticatedUrl"];
58
58
  const isMfaRequired = (user, appName) => {
59
59
  const contextHolder = _restApi.ContextHolder.for(appName);
@@ -108,8 +108,7 @@ exports.getUri = getUri;
108
108
  const prepareIdentifiersForSignup = payload => {
109
109
  const {
110
110
  phoneNumber,
111
- email,
112
- username
111
+ email
113
112
  } = payload,
114
113
  finalDto = (0, _objectWithoutPropertiesLoose2.default)(payload, _excluded);
115
114
  if (email != null && email.length) {
@@ -122,11 +121,6 @@ const prepareIdentifiersForSignup = payload => {
122
121
  phoneNumber
123
122
  });
124
123
  }
125
- if (username != null && username.length) {
126
- Object.assign(finalDto, {
127
- username
128
- });
129
- }
130
124
  return finalDto;
131
125
  };
132
126
  exports.prepareIdentifiersForSignup = prepareIdentifiersForSignup;
@@ -28,7 +28,6 @@ exports.AuthenticationTypes = AuthenticationTypes;
28
28
  AuthenticationTypes["SOCIAL_LOGIN"] = "SOCIAL_LOGIN";
29
29
  AuthenticationTypes["PASSWORD"] = "PASSWORD";
30
30
  AuthenticationTypes["PHONE_NUMBER"] = "PHONE_NUMBER";
31
- AuthenticationTypes["USERNAME"] = "USERNAME";
32
31
  })(AuthenticationTypes || (exports.AuthenticationTypes = AuthenticationTypes = {}));
33
32
  let AdminPortalPagesForEvents; // noinspection JSUnusedGlobalSymbols
34
33
  exports.AdminPortalPagesForEvents = AdminPortalPagesForEvents;
package/node/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license Frontegg v7.83.0-alpha.6
1
+ /** @license Frontegg v7.83.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.
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@frontegg/redux-store",
3
- "version": "7.83.0-alpha.6",
3
+ "version": "7.83.0",
4
4
  "main": "./node/index.js",
5
5
  "license": "MIT",
6
6
  "author": "Frontegg LTD",
7
7
  "dependencies": {
8
8
  "@babel/runtime": "^7.18.6",
9
9
  "@frontegg/entitlements-javascript-commons": "1.1.2",
10
- "@frontegg/rest-api": "7.83.0-alpha.6",
10
+ "@frontegg/rest-api": "7.83.0",
11
11
  "fast-deep-equal": "3.1.3",
12
12
  "get-value": "^3.0.1",
13
13
  "proxy-compare": "^3.0.0",