@frontegg/redux-store 7.93.0 → 7.94.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.
@@ -37,32 +37,45 @@ export default ((store, api, sharedActions) => {
37
37
  const {
38
38
  shouldLoadRoles = true,
39
39
  shouldLoadApps,
40
+ shouldLoadEmails = false,
40
41
  retryConfig
41
42
  } = options;
42
43
 
43
- // Get user IDs for fetching roles and groups
44
+ // Get user IDs for fetching roles and groups and emails
44
45
  const userIds = users.map(user => user.id);
45
46
 
46
- // Fetch roles, permissions, user roles, user groups, and all groups in parallel
47
+ // Fetch roles, permissions, user roles, user groups, user emails, and all groups in parallel
47
48
  const [{
48
49
  items: userUsernames
50
+ }, {
51
+ items: userPhoneNumbers
49
52
  }, {
50
53
  items: roles
51
- }, permissions, userRoles, userGroups, groups] = await Promise.all([userIds.length > 0 ? api.users.getUsersUsernames({
54
+ }, permissions, userRoles, userGroups, {
55
+ items: userEmails
56
+ }, groups] = await Promise.all([userIds.length > 0 ? api.users.getUsersUsernames({
52
57
  userIds
53
58
  }) : {
54
59
  items: []
60
+ }, userIds.length > 0 ? api.userPhoneNumbers.getUsersPhoneNumberV2({
61
+ userIds: userIds.join(',')
62
+ }) : {
63
+ items: []
55
64
  }, api.teams.loadAvailableRoles(), api.teams.loadAvailablePermissions(), userIds.length > 0 ? api.users.getUsersRoles({
56
65
  ids: userIds
57
66
  }) : [], userIds.length > 0 ? api.users.getUsersGroups({
58
67
  ids: userIds
59
- }) : [], __getGroupsForUsers(retryConfig), shouldLoadRoles ? loadRoles({
68
+ }) : [], shouldLoadEmails && userIds.length > 0 ? api.usersEmails.getUsersEmailsV1({
69
+ userIds: userIds.join(',')
70
+ }) : {
71
+ items: []
72
+ }, __getGroupsForUsers(retryConfig), shouldLoadRoles ? loadRoles({
60
73
  retryConfig
61
74
  }) : undefined]);
62
75
 
63
76
  // Map user roles and groups to users
64
77
  const usersWithRolesAndGroups = users.map(user => {
65
- var _userUsernames$find;
78
+ var _userUsernames$find, _userPhoneNumbers$fin, _userEmailsForUser$fi;
66
79
  // Find user's role IDs
67
80
  const userRoleData = userRoles.find(ur => ur.userId === user.id);
68
81
  const userRoleIds = (userRoleData == null ? void 0 : userRoleData.roleIds) || [];
@@ -75,12 +88,28 @@ export default ((store, api, sharedActions) => {
75
88
 
76
89
  // Find user's username
77
90
  const userUsername = userUsernames == null ? void 0 : (_userUsernames$find = userUsernames.find(username => username.userId === user.id)) == null ? void 0 : _userUsernames$find.username;
91
+ // Find user's phone number
92
+ const userPhoneNumber = userPhoneNumbers == null ? void 0 : (_userPhoneNumbers$fin = userPhoneNumbers.find(phone => phone.userId === user.id)) == null ? void 0 : _userPhoneNumbers$fin.phoneNumber;
93
+ // Find user's emails - get all emails for the user and identify primary
94
+ const userEmailsForUser = (userEmails == null ? void 0 : userEmails.filter(email => email.userId === user.id)) || [];
95
+ const primaryEmail = (_userEmailsForUser$fi = userEmailsForUser.find(email => email.isPrimary)) == null ? void 0 : _userEmailsForUser$fi.email;
96
+ const allEmails = userEmailsForUser.map(email => ({
97
+ email: email.email,
98
+ isPrimary: email.isPrimary
99
+ }));
78
100
  if (!user.name) {
79
101
  user.name = userUsername;
80
102
  }
81
103
 
82
104
  //@ts-ignore
83
105
  return _extends({}, user, {
106
+ username: userUsername,
107
+ phoneNumber: userPhoneNumber
108
+ }, shouldLoadEmails && primaryEmail ? {
109
+ email: primaryEmail
110
+ } : {}, shouldLoadEmails && allEmails.length > 0 ? {
111
+ emails: allEmails
112
+ } : {}, {
84
113
  roles: userRolesFull,
85
114
  roleIds: userRoleIds,
86
115
  groups: userGroupsFull,
@@ -152,6 +181,7 @@ export default ((store, api, sharedActions) => {
152
181
  const {
153
182
  silentLoading,
154
183
  callback,
184
+ shouldLoadEmails = false,
155
185
  retryConfig
156
186
  } = payload;
157
187
  const teamState = store.auth.teamState;
@@ -201,6 +231,7 @@ export default ((store, api, sharedActions) => {
201
231
  } = await __enrichUsersWithRolesGroupsAndPermissions(users, {
202
232
  shouldLoadRoles,
203
233
  shouldLoadApps,
234
+ shouldLoadEmails,
204
235
  retryConfig
205
236
  });
206
237
  __setUsersStateAndCallback(enrichedUsers, roles, permissions, response._metadata.totalPages, response._metadata.totalItems, callback);
@@ -400,6 +431,7 @@ export default ((store, api, sharedActions) => {
400
431
  callback,
401
432
  shouldLoadRoles = true,
402
433
  shouldLoadApps,
434
+ shouldLoadEmails = false,
403
435
  retryConfig
404
436
  } = payload;
405
437
  const teamState = store.auth.teamState;
@@ -441,6 +473,7 @@ export default ((store, api, sharedActions) => {
441
473
  } = await __enrichUsersWithRolesGroupsAndPermissions(users, {
442
474
  shouldLoadRoles,
443
475
  shouldLoadApps,
476
+ shouldLoadEmails,
444
477
  retryConfig
445
478
  });
446
479
  __setUsersStateAndCallback(enrichedUsers, roles, permissions, totalPages, totalItems, callback);
@@ -832,7 +865,8 @@ export default ((store, api, sharedActions) => {
832
865
  const {
833
866
  _phoneNumber,
834
867
  shouldLoadRoles = true,
835
- shouldLoadApps
868
+ shouldLoadApps,
869
+ shouldLoadEmails = false
836
870
  } = payload;
837
871
  return __loadUsersBySearchCriteria(payload, (pageOffset, pageSize) => api.userPhoneNumbers.getUsersPhoneNumberV2({
838
872
  _phoneNumber,
@@ -844,7 +878,8 @@ export default ((store, api, sharedActions) => {
844
878
  const {
845
879
  _usernamePrefix,
846
880
  shouldLoadRoles = true,
847
- shouldLoadApps
881
+ shouldLoadApps,
882
+ shouldLoadEmails = false
848
883
  } = payload;
849
884
  return __loadUsersBySearchCriteria(payload, (pageOffset, pageSize) => api.usernames.getUsernamesV1({
850
885
  _usernamePrefix,
@@ -856,7 +891,8 @@ export default ((store, api, sharedActions) => {
856
891
  const {
857
892
  _email,
858
893
  shouldLoadRoles = true,
859
- shouldLoadApps
894
+ shouldLoadApps,
895
+ shouldLoadEmails = false
860
896
  } = payload;
861
897
  return __loadUsersBySearchCriteria(payload, (pageOffset, pageSize) => api.usersEmails.getUsersEmailsV1({
862
898
  _email,
@@ -49,6 +49,10 @@ export type LoadRolesAndPermissionsPayload = WithCallback<{}, {
49
49
  export interface ITeamStateUser extends ITeamUser {
50
50
  groups?: GroupsState['groups'];
51
51
  applications?: ApplicationsState['userApplications'];
52
+ emails?: Array<{
53
+ email: string;
54
+ isPrimary: boolean;
55
+ }>;
52
56
  }
53
57
  export interface TeamState {
54
58
  loaders: LoaderIndicatorState<TeamStateKeys>;
@@ -123,6 +127,7 @@ export interface IGetUsersV3Payload {
123
127
  shouldShowSubTenantUsersIfReseller?: ISearchUserQueryParamsV3['_includeSubTenants'];
124
128
  shouldLoadApps?: boolean;
125
129
  shouldLoadRoles?: boolean;
130
+ shouldLoadEmails?: boolean;
126
131
  identifier?: ISearchUserQueryParamsV3['_identifier'];
127
132
  identifierType?: ISearchUserQueryParamsV3['_identifierType'];
128
133
  }
@@ -131,6 +136,7 @@ export interface IBaseUserSearchPayload {
131
136
  _offset?: number;
132
137
  shouldLoadApps?: boolean;
133
138
  shouldLoadRoles?: boolean;
139
+ shouldLoadEmails?: boolean;
134
140
  shouldShowSubTenantUsersIfReseller?: boolean;
135
141
  }
136
142
  export interface ILoadUsersByGetPhoneNumberV2Payload extends IBaseUserSearchPayload {
package/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license Frontegg v7.93.0
1
+ /** @license Frontegg v7.94.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.
@@ -44,32 +44,45 @@ var _default = (store, api, sharedActions) => {
44
44
  const {
45
45
  shouldLoadRoles = true,
46
46
  shouldLoadApps,
47
+ shouldLoadEmails = false,
47
48
  retryConfig
48
49
  } = options;
49
50
 
50
- // Get user IDs for fetching roles and groups
51
+ // Get user IDs for fetching roles and groups and emails
51
52
  const userIds = users.map(user => user.id);
52
53
 
53
- // Fetch roles, permissions, user roles, user groups, and all groups in parallel
54
+ // Fetch roles, permissions, user roles, user groups, user emails, and all groups in parallel
54
55
  const [{
55
56
  items: userUsernames
57
+ }, {
58
+ items: userPhoneNumbers
56
59
  }, {
57
60
  items: roles
58
- }, permissions, userRoles, userGroups, groups] = await Promise.all([userIds.length > 0 ? api.users.getUsersUsernames({
61
+ }, permissions, userRoles, userGroups, {
62
+ items: userEmails
63
+ }, groups] = await Promise.all([userIds.length > 0 ? api.users.getUsersUsernames({
59
64
  userIds
60
65
  }) : {
61
66
  items: []
67
+ }, userIds.length > 0 ? api.userPhoneNumbers.getUsersPhoneNumberV2({
68
+ userIds: userIds.join(',')
69
+ }) : {
70
+ items: []
62
71
  }, api.teams.loadAvailableRoles(), api.teams.loadAvailablePermissions(), userIds.length > 0 ? api.users.getUsersRoles({
63
72
  ids: userIds
64
73
  }) : [], userIds.length > 0 ? api.users.getUsersGroups({
65
74
  ids: userIds
66
- }) : [], __getGroupsForUsers(retryConfig), shouldLoadRoles ? loadRoles({
75
+ }) : [], shouldLoadEmails && userIds.length > 0 ? api.usersEmails.getUsersEmailsV1({
76
+ userIds: userIds.join(',')
77
+ }) : {
78
+ items: []
79
+ }, __getGroupsForUsers(retryConfig), shouldLoadRoles ? loadRoles({
67
80
  retryConfig
68
81
  }) : undefined]);
69
82
 
70
83
  // Map user roles and groups to users
71
84
  const usersWithRolesAndGroups = users.map(user => {
72
- var _userUsernames$find;
85
+ var _userUsernames$find, _userPhoneNumbers$fin, _userEmailsForUser$fi;
73
86
  // Find user's role IDs
74
87
  const userRoleData = userRoles.find(ur => ur.userId === user.id);
75
88
  const userRoleIds = (userRoleData == null ? void 0 : userRoleData.roleIds) || [];
@@ -82,12 +95,28 @@ var _default = (store, api, sharedActions) => {
82
95
 
83
96
  // Find user's username
84
97
  const userUsername = userUsernames == null ? void 0 : (_userUsernames$find = userUsernames.find(username => username.userId === user.id)) == null ? void 0 : _userUsernames$find.username;
98
+ // Find user's phone number
99
+ const userPhoneNumber = userPhoneNumbers == null ? void 0 : (_userPhoneNumbers$fin = userPhoneNumbers.find(phone => phone.userId === user.id)) == null ? void 0 : _userPhoneNumbers$fin.phoneNumber;
100
+ // Find user's emails - get all emails for the user and identify primary
101
+ const userEmailsForUser = (userEmails == null ? void 0 : userEmails.filter(email => email.userId === user.id)) || [];
102
+ const primaryEmail = (_userEmailsForUser$fi = userEmailsForUser.find(email => email.isPrimary)) == null ? void 0 : _userEmailsForUser$fi.email;
103
+ const allEmails = userEmailsForUser.map(email => ({
104
+ email: email.email,
105
+ isPrimary: email.isPrimary
106
+ }));
85
107
  if (!user.name) {
86
108
  user.name = userUsername;
87
109
  }
88
110
 
89
111
  //@ts-ignore
90
112
  return (0, _extends2.default)({}, user, {
113
+ username: userUsername,
114
+ phoneNumber: userPhoneNumber
115
+ }, shouldLoadEmails && primaryEmail ? {
116
+ email: primaryEmail
117
+ } : {}, shouldLoadEmails && allEmails.length > 0 ? {
118
+ emails: allEmails
119
+ } : {}, {
91
120
  roles: userRolesFull,
92
121
  roleIds: userRoleIds,
93
122
  groups: userGroupsFull,
@@ -159,6 +188,7 @@ var _default = (store, api, sharedActions) => {
159
188
  const {
160
189
  silentLoading,
161
190
  callback,
191
+ shouldLoadEmails = false,
162
192
  retryConfig
163
193
  } = payload;
164
194
  const teamState = store.auth.teamState;
@@ -208,6 +238,7 @@ var _default = (store, api, sharedActions) => {
208
238
  } = await __enrichUsersWithRolesGroupsAndPermissions(users, {
209
239
  shouldLoadRoles,
210
240
  shouldLoadApps,
241
+ shouldLoadEmails,
211
242
  retryConfig
212
243
  });
213
244
  __setUsersStateAndCallback(enrichedUsers, roles, permissions, response._metadata.totalPages, response._metadata.totalItems, callback);
@@ -407,6 +438,7 @@ var _default = (store, api, sharedActions) => {
407
438
  callback,
408
439
  shouldLoadRoles = true,
409
440
  shouldLoadApps,
441
+ shouldLoadEmails = false,
410
442
  retryConfig
411
443
  } = payload;
412
444
  const teamState = store.auth.teamState;
@@ -448,6 +480,7 @@ var _default = (store, api, sharedActions) => {
448
480
  } = await __enrichUsersWithRolesGroupsAndPermissions(users, {
449
481
  shouldLoadRoles,
450
482
  shouldLoadApps,
483
+ shouldLoadEmails,
451
484
  retryConfig
452
485
  });
453
486
  __setUsersStateAndCallback(enrichedUsers, roles, permissions, totalPages, totalItems, callback);
@@ -839,7 +872,8 @@ var _default = (store, api, sharedActions) => {
839
872
  const {
840
873
  _phoneNumber,
841
874
  shouldLoadRoles = true,
842
- shouldLoadApps
875
+ shouldLoadApps,
876
+ shouldLoadEmails = false
843
877
  } = payload;
844
878
  return __loadUsersBySearchCriteria(payload, (pageOffset, pageSize) => api.userPhoneNumbers.getUsersPhoneNumberV2({
845
879
  _phoneNumber,
@@ -851,7 +885,8 @@ var _default = (store, api, sharedActions) => {
851
885
  const {
852
886
  _usernamePrefix,
853
887
  shouldLoadRoles = true,
854
- shouldLoadApps
888
+ shouldLoadApps,
889
+ shouldLoadEmails = false
855
890
  } = payload;
856
891
  return __loadUsersBySearchCriteria(payload, (pageOffset, pageSize) => api.usernames.getUsernamesV1({
857
892
  _usernamePrefix,
@@ -863,7 +898,8 @@ var _default = (store, api, sharedActions) => {
863
898
  const {
864
899
  _email,
865
900
  shouldLoadRoles = true,
866
- shouldLoadApps
901
+ shouldLoadApps,
902
+ shouldLoadEmails = false
867
903
  } = payload;
868
904
  return __loadUsersBySearchCriteria(payload, (pageOffset, pageSize) => api.usersEmails.getUsersEmailsV1({
869
905
  _email,
package/node/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license Frontegg v7.93.0
1
+ /** @license Frontegg v7.94.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.
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@frontegg/redux-store",
3
- "version": "7.93.0",
3
+ "version": "7.94.0-alpha.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.93.0",
10
+ "@frontegg/rest-api": "7.94.0-alpha.0",
11
11
  "fast-deep-equal": "3.1.3",
12
12
  "get-value": "^3.0.1",
13
13
  "proxy-compare": "^3.0.0",