@frontegg/redux-store 7.73.0 → 7.74.0-alpha.1

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.
@@ -25,7 +25,7 @@ import mfaWithWebAuthnActions from './mfaWithWebAuthn.actions';
25
25
  import { LoginFlow, LoginStep } from '../interfaces';
26
26
  import { base64urlDecode, deepResetState, delay, errorHandler, errorTraceId, GTMEventAction, publicKeyCredentialToJSON, reportGTMEvent, retryIfNeeded, withRetryConfig } from '../../../helpers';
27
27
  import { initialState } from '../state';
28
- import { getSearchParam, isEmailPayload, shouldShowPasswordRotationPromptFunc, TENANT_ID_PARAM_KEY } from '../helpers';
28
+ import { getSearchParam, isEmailPayload, isUsernamePayload, shouldShowPasswordRotationPromptFunc, TENANT_ID_PARAM_KEY } from '../helpers';
29
29
  import { AuthStrategyEnum, ContextHolder, removeTabTenantFromSessionStorage, WebAuthnDeviceType } from '@frontegg/rest-api';
30
30
  import hostedLoginAuthorizeActions from './hostedLoginAuthorize.actions';
31
31
  import { FronteggNativeModule, isEntitlementsDeeplyEqual } from '../../../toolkit';
@@ -347,6 +347,7 @@ export default ((store, api, sharedActions) => {
347
347
  const preLogin = async payload => {
348
348
  const {
349
349
  email,
350
+ username,
350
351
  recaptchaToken,
351
352
  invitationToken,
352
353
  callback
@@ -357,10 +358,13 @@ export default ((store, api, sharedActions) => {
357
358
  try {
358
359
  const onRedirectTo = store.auth.onRedirectTo;
359
360
  const tenantId = getSearchParam(TENANT_ID_PARAM_KEY);
360
- const preLoginResult = await api.auth.preLoginV2({
361
- email,
361
+ const preLoginResult = await api.auth.preLoginV2(_extends({}, email ? {
362
+ email
363
+ } : {}, username ? {
364
+ username
365
+ } : {}, {
362
366
  tenantId
363
- });
367
+ }));
364
368
  const {
365
369
  address,
366
370
  idpType
@@ -374,7 +378,8 @@ export default ((store, api, sharedActions) => {
374
378
  ssoRedirectUrl += `&redirect_uri=${window.location.origin}${oidcRedirectUrl}`;
375
379
  }
376
380
  if (FronteggNativeModule.isLoginWithSSOAvailable()) {
377
- FronteggNativeModule.loginWithSSO(email);
381
+ var _ref4;
382
+ FronteggNativeModule.loginWithSSO((_ref4 = email != null ? email : username) != null ? _ref4 : '');
378
383
  setLoginState({
379
384
  loading: false
380
385
  });
@@ -392,16 +397,18 @@ export default ((store, api, sharedActions) => {
392
397
  }, 2000);
393
398
  }
394
399
  } else {
400
+ var _ref5;
395
401
  await ssoPreloginFailed({
396
- email,
402
+ email: (_ref5 = email != null ? email : username) != null ? _ref5 : '',
397
403
  recaptchaToken,
398
404
  callback,
399
405
  invitationToken
400
406
  });
401
407
  }
402
408
  } catch (e) {
409
+ var _ref6;
403
410
  await ssoPreloginFailed({
404
- email,
411
+ email: (_ref6 = email != null ? email : username) != null ? _ref6 : '',
405
412
  recaptchaToken,
406
413
  callback,
407
414
  invitationToken,
@@ -437,6 +444,7 @@ export default ((store, api, sharedActions) => {
437
444
  const login = async payload => {
438
445
  const {
439
446
  email,
447
+ username,
440
448
  password,
441
449
  recaptchaToken,
442
450
  invitationToken,
@@ -450,12 +458,15 @@ export default ((store, api, sharedActions) => {
450
458
  user,
451
459
  tenants = [],
452
460
  activeTenant
453
- } = await api.auth.loginv2({
454
- email,
461
+ } = await api.auth.loginv2(_extends({}, email ? {
462
+ email
463
+ } : {}, username ? {
464
+ username
465
+ } : {}, {
455
466
  password,
456
467
  recaptchaToken,
457
468
  invitationToken
458
- });
469
+ }));
459
470
  const {
460
471
  onRedirectTo,
461
472
  routes
@@ -695,6 +706,7 @@ export default ((store, api, sharedActions) => {
695
706
  } = _payload,
696
707
  payload = _objectWithoutPropertiesLoose(_payload, _excluded5);
697
708
  try {
709
+ var _username;
698
710
  setLoginState({
699
711
  loading: true
700
712
  });
@@ -702,9 +714,16 @@ export default ((store, api, sharedActions) => {
702
714
  if (isEmailPayload(payload)) {
703
715
  email = payload.email;
704
716
  }
717
+ let username;
718
+ if (isUsernamePayload(payload)) {
719
+ username = payload.username;
720
+ }
705
721
  // TODO: [Typescript 4.8] fix @frontegg/rest-api return value
706
722
  // @ts-ignore
707
- const preloginRes = await api.auth.passwordlessPreLogin(payload);
723
+ const preloginRes = await api.auth.passwordlessPreLogin(_extends({}, payload, {
724
+ email,
725
+ username: (_username = username) != null ? _username : ''
726
+ }));
708
727
  // @ts-ignore
709
728
  const step = authStrategyLoginStepMap[payload.type];
710
729
  setLoginState({
@@ -1296,11 +1315,11 @@ export default ((store, api, sharedActions) => {
1296
1315
  preserveQueryParams: true
1297
1316
  });
1298
1317
  } else {
1299
- var _ref4;
1318
+ var _ref7;
1300
1319
  if (user.id) {
1301
1320
  localStorage.setItem('userId', user.id);
1302
1321
  }
1303
- const quickLoginToRegister = (_ref4 = localStorage.getItem('register-quick-login')) != null ? _ref4 : loginState.quickLoginToRegister;
1322
+ const quickLoginToRegister = (_ref7 = localStorage.getItem('register-quick-login')) != null ? _ref7 : loginState.quickLoginToRegister;
1304
1323
  const shouldNavigateToRegisterQuickLogin = __shouldNavigateToRegisterQuickLogin(user);
1305
1324
  actions.afterAuthenticationStateUpdate({
1306
1325
  user: updatedUser,
@@ -1,4 +1,4 @@
1
- import { IEmailPasswordlessPreLogin, ILoginResponse, IPasswordlessPreLogin, MFAStrategyEnum, UserMFADevicesResponse } from '@frontegg/rest-api';
1
+ import { IEmailPasswordlessPreLogin, ILoginResponse, IPasswordlessPreLogin, IUsernamePasswordlessPreLogin, MFAStrategyEnum, UserMFADevicesResponse } from '@frontegg/rest-api';
2
2
  import { FronteggState } from '../../interfaces';
3
3
  import { User } from '../interfaces';
4
4
  import { MFAStep } from '../MfaState/interfaces';
@@ -29,5 +29,6 @@ export declare const getMfaStepForEnrolledUsers: (mfaDevices: UserMFADevicesResp
29
29
  export declare const getMfaStepForNotEnrolledUsers: (mfaStrategies: MFAStrategyEnum[]) => MFAStep.verify | MFAStep.authenticatorApp | MFAStep.smsSetPhoneNumber | MFAStep.emailVerifyCode;
30
30
  export declare const isOauthCallbackRoute: (activeUri: string) => boolean;
31
31
  export declare function isEmailPayload(payload: IPasswordlessPreLogin): payload is IEmailPasswordlessPreLogin;
32
+ export declare function isUsernamePayload(payload: IPasswordlessPreLogin): payload is IUsernamePasswordlessPreLogin;
32
33
  export declare const getBaseNameWithoutSlashSuffix: (state: FronteggState) => string | null;
33
34
  export declare const shouldShowPasswordRotationPromptFunc: (user: ILoginResponse | User) => boolean;
@@ -126,6 +126,9 @@ export const isOauthCallbackRoute = activeUri => {
126
126
  export function isEmailPayload(payload) {
127
127
  return 'email' in payload;
128
128
  }
129
+ export function isUsernamePayload(payload) {
130
+ return 'username' in payload;
131
+ }
129
132
  export const getBaseNameWithoutSlashSuffix = state => {
130
133
  const basename = ContextHolder.for(state.root.appName).getBasename();
131
134
  if (basename != null && basename.endsWith('/')) {
package/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license Frontegg v7.73.0
1
+ /** @license Frontegg v7.74.0-alpha.1
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.
@@ -354,6 +354,7 @@ var _default = (store, api, sharedActions) => {
354
354
  const preLogin = async payload => {
355
355
  const {
356
356
  email,
357
+ username,
357
358
  recaptchaToken,
358
359
  invitationToken,
359
360
  callback
@@ -364,10 +365,13 @@ var _default = (store, api, sharedActions) => {
364
365
  try {
365
366
  const onRedirectTo = store.auth.onRedirectTo;
366
367
  const tenantId = (0, _helpers2.getSearchParam)(_helpers2.TENANT_ID_PARAM_KEY);
367
- const preLoginResult = await api.auth.preLoginV2({
368
- email,
368
+ const preLoginResult = await api.auth.preLoginV2((0, _extends2.default)({}, email ? {
369
+ email
370
+ } : {}, username ? {
371
+ username
372
+ } : {}, {
369
373
  tenantId
370
- });
374
+ }));
371
375
  const {
372
376
  address,
373
377
  idpType
@@ -381,7 +385,8 @@ var _default = (store, api, sharedActions) => {
381
385
  ssoRedirectUrl += `&redirect_uri=${window.location.origin}${oidcRedirectUrl}`;
382
386
  }
383
387
  if (_toolkit.FronteggNativeModule.isLoginWithSSOAvailable()) {
384
- _toolkit.FronteggNativeModule.loginWithSSO(email);
388
+ var _ref4;
389
+ _toolkit.FronteggNativeModule.loginWithSSO((_ref4 = email != null ? email : username) != null ? _ref4 : '');
385
390
  setLoginState({
386
391
  loading: false
387
392
  });
@@ -399,16 +404,18 @@ var _default = (store, api, sharedActions) => {
399
404
  }, 2000);
400
405
  }
401
406
  } else {
407
+ var _ref5;
402
408
  await ssoPreloginFailed({
403
- email,
409
+ email: (_ref5 = email != null ? email : username) != null ? _ref5 : '',
404
410
  recaptchaToken,
405
411
  callback,
406
412
  invitationToken
407
413
  });
408
414
  }
409
415
  } catch (e) {
416
+ var _ref6;
410
417
  await ssoPreloginFailed({
411
- email,
418
+ email: (_ref6 = email != null ? email : username) != null ? _ref6 : '',
412
419
  recaptchaToken,
413
420
  callback,
414
421
  invitationToken,
@@ -444,6 +451,7 @@ var _default = (store, api, sharedActions) => {
444
451
  const login = async payload => {
445
452
  const {
446
453
  email,
454
+ username,
447
455
  password,
448
456
  recaptchaToken,
449
457
  invitationToken,
@@ -457,12 +465,15 @@ var _default = (store, api, sharedActions) => {
457
465
  user,
458
466
  tenants = [],
459
467
  activeTenant
460
- } = await api.auth.loginv2({
461
- email,
468
+ } = await api.auth.loginv2((0, _extends2.default)({}, email ? {
469
+ email
470
+ } : {}, username ? {
471
+ username
472
+ } : {}, {
462
473
  password,
463
474
  recaptchaToken,
464
475
  invitationToken
465
- });
476
+ }));
466
477
  const {
467
478
  onRedirectTo,
468
479
  routes
@@ -702,6 +713,7 @@ var _default = (store, api, sharedActions) => {
702
713
  } = _payload,
703
714
  payload = (0, _objectWithoutPropertiesLoose2.default)(_payload, _excluded5);
704
715
  try {
716
+ var _username;
705
717
  setLoginState({
706
718
  loading: true
707
719
  });
@@ -709,9 +721,16 @@ var _default = (store, api, sharedActions) => {
709
721
  if ((0, _helpers2.isEmailPayload)(payload)) {
710
722
  email = payload.email;
711
723
  }
724
+ let username;
725
+ if ((0, _helpers2.isUsernamePayload)(payload)) {
726
+ username = payload.username;
727
+ }
712
728
  // TODO: [Typescript 4.8] fix @frontegg/rest-api return value
713
729
  // @ts-ignore
714
- const preloginRes = await api.auth.passwordlessPreLogin(payload);
730
+ const preloginRes = await api.auth.passwordlessPreLogin((0, _extends2.default)({}, payload, {
731
+ email,
732
+ username: (_username = username) != null ? _username : ''
733
+ }));
715
734
  // @ts-ignore
716
735
  const step = _consts.authStrategyLoginStepMap[payload.type];
717
736
  setLoginState({
@@ -1303,11 +1322,11 @@ var _default = (store, api, sharedActions) => {
1303
1322
  preserveQueryParams: true
1304
1323
  });
1305
1324
  } else {
1306
- var _ref4;
1325
+ var _ref7;
1307
1326
  if (user.id) {
1308
1327
  localStorage.setItem('userId', user.id);
1309
1328
  }
1310
- const quickLoginToRegister = (_ref4 = localStorage.getItem('register-quick-login')) != null ? _ref4 : loginState.quickLoginToRegister;
1329
+ const quickLoginToRegister = (_ref7 = localStorage.getItem('register-quick-login')) != null ? _ref7 : loginState.quickLoginToRegister;
1311
1330
  const shouldNavigateToRegisterQuickLogin = __shouldNavigateToRegisterQuickLogin(user);
1312
1331
  actions.afterAuthenticationStateUpdate({
1313
1332
  user: updatedUser,
@@ -5,7 +5,9 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.isAbsoluteUrl = exports.getSearchParamsFromUrl = exports.getSearchParam = exports.getRedirectUrl = exports.getPathAndSearchParamsFromUrl = exports.getNumberOfMfaDevices = exports.getMfaStepForNotEnrolledUsers = exports.getMfaStepForEnrolledUsers = exports.getBaseNameWithoutSlashSuffix = exports.TENANT_ID_PARAM_KEY = void 0;
7
7
  exports.isEmailPayload = isEmailPayload;
8
- exports.shouldShowPasswordRotationPromptFunc = exports.isOauthCallbackRoute = void 0;
8
+ exports.isOauthCallbackRoute = void 0;
9
+ exports.isUsernamePayload = isUsernamePayload;
10
+ exports.shouldShowPasswordRotationPromptFunc = void 0;
9
11
  var _restApi = require("@frontegg/rest-api");
10
12
  var _interfaces = require("../MfaState/interfaces");
11
13
  const isAbsoluteUrl = path => {
@@ -144,6 +146,9 @@ exports.isOauthCallbackRoute = isOauthCallbackRoute;
144
146
  function isEmailPayload(payload) {
145
147
  return 'email' in payload;
146
148
  }
149
+ function isUsernamePayload(payload) {
150
+ return 'username' in payload;
151
+ }
147
152
  const getBaseNameWithoutSlashSuffix = state => {
148
153
  const basename = _restApi.ContextHolder.for(state.root.appName).getBasename();
149
154
  if (basename != null && basename.endsWith('/')) {
package/node/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license Frontegg v7.73.0
1
+ /** @license Frontegg v7.74.0-alpha.1
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.
@@ -6,16 +6,16 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  class FronteggNativeModule {
8
8
  constructor() {
9
- this.loginWithSSO = email => {
9
+ this.loginWithSSO = identifier => {
10
10
  if (this.isIOSNativeBridgeAvailable()) {
11
11
  var _window$webkit, _window$webkit$messag, _window$webkit$messag2;
12
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({
13
13
  action: 'loginWithSSO',
14
- payload: email
14
+ payload: identifier
15
15
  }));
16
16
  } else if (this.isAndroidNativeBridgeAvailable()) {
17
17
  var _window$FronteggNativ;
18
- (_window$FronteggNativ = window.FronteggNativeBridge) == null ? void 0 : _window$FronteggNativ.loginWithSSO(email);
18
+ (_window$FronteggNativ = window.FronteggNativeBridge) == null ? void 0 : _window$FronteggNativ.loginWithSSO(identifier);
19
19
  } else {
20
20
  throw new Error('FronteggNativeBridge is not available');
21
21
  }
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@frontegg/redux-store",
3
- "version": "7.73.0",
3
+ "version": "7.74.0-alpha.1",
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.73.0",
10
+ "@frontegg/rest-api": "7.74.0-alpha.1",
11
11
  "fast-deep-equal": "3.1.3",
12
12
  "get-value": "^3.0.1",
13
13
  "proxy-compare": "^3.0.0",
@@ -30,7 +30,7 @@ declare class FronteggNativeModule {
30
30
  isLoginWithSSOAvailable(): boolean;
31
31
  isSuggestSavePasswordAvailable(): boolean;
32
32
  isAvailable(method: string): boolean;
33
- loginWithSSO: (email: string) => void;
33
+ loginWithSSO: (identifier: string) => void;
34
34
  /**
35
35
  *
36
36
  * @deprecated use loginWithSocialLoginProvider instead for pkce flow in mobile
@@ -1,15 +1,15 @@
1
1
  class FronteggNativeModule {
2
2
  constructor() {
3
- this.loginWithSSO = email => {
3
+ this.loginWithSSO = identifier => {
4
4
  if (this.isIOSNativeBridgeAvailable()) {
5
5
  var _window$webkit, _window$webkit$messag, _window$webkit$messag2;
6
6
  (_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({
7
7
  action: 'loginWithSSO',
8
- payload: email
8
+ payload: identifier
9
9
  }));
10
10
  } else if (this.isAndroidNativeBridgeAvailable()) {
11
11
  var _window$FronteggNativ;
12
- (_window$FronteggNativ = window.FronteggNativeBridge) == null ? void 0 : _window$FronteggNativ.loginWithSSO(email);
12
+ (_window$FronteggNativ = window.FronteggNativeBridge) == null ? void 0 : _window$FronteggNativ.loginWithSSO(identifier);
13
13
  } else {
14
14
  throw new Error('FronteggNativeBridge is not available');
15
15
  }