@frontegg/redux-store 6.66.0 → 6.67.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.
@@ -120,8 +120,8 @@ declare const actions: {
120
120
  callback?: ((data: boolean | null, error?: string | undefined) => void) | undefined;
121
121
  }> | undefined, string, never, never>;
122
122
  initApiTokensData: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[ApiTokenType], ApiTokenType, string, never, never>;
123
- addTenantApiToken: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[WithCallback<Pick<import("./interfaces").ITenantApiTokensData, "description" | "roleIds">, boolean>], WithCallback<Pick<import("./interfaces").ITenantApiTokensData, "description" | "roleIds">, boolean>, string, never, never>;
124
- addUserApiToken: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[WithCallback<Pick<import("./interfaces").IApiTokensData, "description">, boolean>], WithCallback<Pick<import("./interfaces").IApiTokensData, "description">, boolean>, string, never, never>;
123
+ addTenantApiToken: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[WithCallback<Pick<import("./interfaces").ITenantApiTokensData, "description" | "roleIds" | "expires">, boolean>], WithCallback<Pick<import("./interfaces").ITenantApiTokensData, "description" | "roleIds" | "expires">, boolean>, string, never, never>;
124
+ addUserApiToken: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[WithCallback<Pick<import("./interfaces").IApiTokensData, "description" | "expires">, boolean>], WithCallback<Pick<import("./interfaces").IApiTokensData, "description" | "expires">, boolean>, string, never, never>;
125
125
  deleteUserApiToken: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[string], string, string, never, never>;
126
126
  deleteTenantApiToken: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[string], string, string, never, never>;
127
127
  };
@@ -9,7 +9,8 @@ export interface ApiTokensState {
9
9
  createdByUserIdColumn?: createdByUserIdColumn;
10
10
  deleteTokenDialog: {
11
11
  open: boolean;
12
- clientId: string;
12
+ clientId?: string;
13
+ id?: string;
13
14
  };
14
15
  successDialog: {
15
16
  open: boolean;
@@ -24,18 +25,26 @@ export interface ApiTokensState {
24
25
  export declare type ApiTokenType = 'user' | 'tenant' | null;
25
26
  export declare type createdByUserIdColumn = 'show' | 'hide' | undefined;
26
27
  export interface IApiTokensData {
27
- clientId: string;
28
+ clientId?: string;
28
29
  createdAt: string;
29
30
  secret?: string;
30
31
  description: string;
31
32
  metadata?: {};
33
+ expires?: any;
34
+ id?: string;
32
35
  }
33
36
  export declare type IUserApiTokensData = IApiTokensData;
37
+ export interface IUserApiAccessTokensData {
38
+ accessTokens: IUserApiTokensData[];
39
+ }
34
40
  export interface ITenantApiTokensData extends IApiTokensData {
35
41
  roleIds: string[];
36
42
  tenantId: string;
37
43
  createdByUserId: string;
38
44
  }
45
+ export interface ITenantApiAccessTokensData {
46
+ accessTokens: ITenantApiTokensData[];
47
+ }
39
48
  export declare type ApiStateIndicator = {
40
49
  key: ApiStateKeys;
41
50
  value: string | boolean;
@@ -45,5 +54,5 @@ export declare enum ApiStateKeys {
45
54
  ADD_API_TOKEN = "ADD_API_TOKEN",
46
55
  DELETE_API_TOKEN = "DELETE_API_TOKEN"
47
56
  }
48
- export declare type AddTenantApiTokenPayload = WithCallback<Pick<ITenantApiTokensData, 'description' | 'roleIds'>>;
49
- export declare type AddUserApiTokenPayload = WithCallback<Pick<IApiTokensData, 'description'>>;
57
+ export declare type AddTenantApiTokenPayload = WithCallback<Pick<ITenantApiTokensData, 'description' | 'roleIds' | 'expires'>>;
58
+ export declare type AddUserApiTokenPayload = WithCallback<Pick<IApiTokensData, 'description' | 'expires'>>;
@@ -3,63 +3,15 @@ import { call, put, takeLeading, select, takeEvery, takeLatest, delay, all } fro
3
3
  import { api } from '@frontegg/rest-api';
4
4
  import { actions } from '../reducer';
5
5
  import { ApiStateKeys } from './interfaces';
6
- import { apiTokensDataDemo, apiTokensDataTenantDemo, rolesDemo, permissionsDemo } from '../dummy';
6
+ import { apiTokensDataDemo, apiTokensDataTenantDemo } from '../dummy';
7
7
  import { v4 as uuidv4 } from 'uuid';
8
8
 
9
- function* loadApiTokensData({
10
- payload: apiTokenType
11
- }) {
12
- yield put(actions.setApiTokensState({
13
- apiTokenType
14
- }));
15
-
16
- try {
17
- yield put(actions.setApiTokensLoader({
18
- key: ApiStateKeys.LOAD_API_TOKENS,
19
- value: true
20
- }));
21
-
22
- if (apiTokenType === 'user') {
23
- const apiTokensData = yield call(api.auth.getUserApiTokensData);
24
- yield put(actions.setApiTokensState({
25
- apiTokensDataUser: apiTokensData != null ? apiTokensData : []
26
- }));
27
- } else {
28
- const apiTenantTokensData = yield call(api.auth.getTenantApiTokensData);
29
- const {
30
- items: roles
31
- } = yield call(api.teams.loadAvailableRoles);
32
- const {
33
- items: permissions
34
- } = yield call(api.teams.loadAvailablePermissions);
35
- yield put(actions.setApiTokensState({
36
- apiTokensDataTenant: apiTenantTokensData != null ? apiTenantTokensData : [],
37
- roles: roles != null ? roles : [],
38
- permissions: permissions != null ? permissions : []
39
- }));
40
- }
41
-
42
- yield put(actions.setApiTokensLoader({
43
- key: ApiStateKeys.LOAD_API_TOKENS,
44
- value: false
45
- }));
46
- } catch (e) {
47
- yield put(actions.setApiTokensError({
48
- key: ApiStateKeys.LOAD_API_TOKENS,
49
- value: e.message
50
- }));
51
- yield put(actions.setApiTokensLoader({
52
- key: ApiStateKeys.LOAD_API_TOKENS,
53
- value: false
54
- }));
55
- }
56
- }
57
-
58
9
  function* addUserApiToken({
59
10
  payload
60
11
  }) {
61
12
  const {
62
13
  description,
14
+ expires,
63
15
  callback
64
16
  } = payload;
65
17
  const {
@@ -71,9 +23,26 @@ function* addUserApiToken({
71
23
  key: ApiStateKeys.ADD_API_TOKEN,
72
24
  value: true
73
25
  }));
74
- const data = yield call(api.auth.updateUserApiTokensData, {
75
- description
76
- });
26
+ let data;
27
+ let expiresInMinutes;
28
+
29
+ if (expires !== undefined) {
30
+ if (expires === null) {
31
+ expiresInMinutes = null;
32
+ } else {
33
+ expiresInMinutes = expires * 1440;
34
+ }
35
+
36
+ data = yield call(api.auth.createUserAccessToken, {
37
+ description,
38
+ expiresInMinutes
39
+ });
40
+ } else {
41
+ data = yield call(api.auth.updateUserApiTokensData, {
42
+ description
43
+ });
44
+ }
45
+
77
46
  yield put(actions.setApiTokensState({
78
47
  showAddTokenDialog: false
79
48
  }));
@@ -83,7 +52,7 @@ function* addUserApiToken({
83
52
  successDialog: {
84
53
  open: true,
85
54
  secret: data.secret,
86
- clientId: data.clientId
55
+ clientId: expires !== undefined ? data.clientId : undefined
87
56
  }
88
57
  }));
89
58
  yield put(actions.setApiTokensLoader({
@@ -110,6 +79,7 @@ function* addTenantApiToken({
110
79
  const {
111
80
  description,
112
81
  roleIds,
82
+ expires,
113
83
  callback
114
84
  } = payload;
115
85
  const {
@@ -121,10 +91,28 @@ function* addTenantApiToken({
121
91
  key: ApiStateKeys.ADD_API_TOKEN,
122
92
  value: true
123
93
  }));
124
- const data = yield call(api.auth.updateTenantApiTokensData, {
125
- description,
126
- roleIds
127
- });
94
+ let data;
95
+ let expiresInMinutes;
96
+
97
+ if (expires !== undefined) {
98
+ if (expires === null) {
99
+ expiresInMinutes = null;
100
+ } else {
101
+ expiresInMinutes = expires * 1440;
102
+ }
103
+
104
+ data = yield call(api.auth.createTenantAccessToken, {
105
+ description,
106
+ expiresInMinutes,
107
+ roleIds
108
+ });
109
+ } else {
110
+ data = yield call(api.auth.updateTenantApiTokensData, {
111
+ description,
112
+ roleIds
113
+ });
114
+ }
115
+
128
116
  yield put(actions.setApiTokensState({
129
117
  showAddTokenDialog: false
130
118
  }));
@@ -134,7 +122,7 @@ function* addTenantApiToken({
134
122
  successDialog: {
135
123
  open: true,
136
124
  secret: data.secret,
137
- clientId: data.clientId
125
+ clientId: expires !== undefined ? data.clientId : undefined
138
126
  }
139
127
  }));
140
128
  yield put(actions.setApiTokensLoader({
@@ -161,22 +149,38 @@ function* deleteUserApiToken({
161
149
  const {
162
150
  apiTokensDataUser
163
151
  } = yield select(state => state.auth.apiTokensState);
152
+ const isAccessToken = apiTokensDataUser.some(token => token.id === payload);
164
153
 
165
154
  try {
166
155
  yield put(actions.setApiTokensLoader({
167
156
  key: ApiStateKeys.DELETE_API_TOKEN,
168
157
  value: true
169
158
  }));
170
- yield call(api.auth.deleteUserApiToken, {
171
- tokenId: payload
172
- });
173
- yield put(actions.setApiTokensState({
174
- apiTokensDataUser: apiTokensDataUser.filter(i => i.clientId !== payload),
175
- deleteTokenDialog: {
176
- open: false,
177
- clientId: payload
178
- }
179
- }));
159
+
160
+ if (isAccessToken) {
161
+ yield call(api.auth.deleteUserAccessToken, {
162
+ id: payload
163
+ });
164
+ yield put(actions.setApiTokensState({
165
+ apiTokensDataUser: apiTokensDataUser.filter(token => token.id !== payload),
166
+ deleteTokenDialog: {
167
+ open: false,
168
+ id: payload
169
+ }
170
+ }));
171
+ } else {
172
+ yield call(api.auth.deleteUserApiToken, {
173
+ tokenId: payload
174
+ });
175
+ yield put(actions.setApiTokensState({
176
+ apiTokensDataUser: apiTokensDataUser.filter(token => token.clientId !== payload),
177
+ deleteTokenDialog: {
178
+ open: false,
179
+ clientId: payload
180
+ }
181
+ }));
182
+ }
183
+
180
184
  yield put(actions.setApiTokensLoader({
181
185
  key: ApiStateKeys.DELETE_API_TOKEN,
182
186
  value: false
@@ -199,20 +203,32 @@ function* deleteTenantApiToken({
199
203
  const {
200
204
  apiTokensDataTenant
201
205
  } = yield select(state => state.auth.apiTokensState);
206
+ const isAccessToken = apiTokensDataTenant.some(token => token.id === payload);
207
+ let filteredApiTokensDataTenant = apiTokensDataTenant;
202
208
 
203
209
  try {
204
210
  yield put(actions.setApiTokensLoader({
205
211
  key: ApiStateKeys.DELETE_API_TOKEN,
206
212
  value: true
207
213
  }));
208
- yield call(api.auth.deleteTenantApiToken, {
209
- tokenId: payload
210
- });
214
+
215
+ if (isAccessToken) {
216
+ yield call(api.auth.deleteTenantAccessToken, {
217
+ id: payload
218
+ });
219
+ filteredApiTokensDataTenant = apiTokensDataTenant.filter(token => token.id !== payload);
220
+ } else {
221
+ yield call(api.auth.deleteTenantApiToken, {
222
+ tokenId: payload
223
+ });
224
+ filteredApiTokensDataTenant = apiTokensDataTenant.filter(token => token.clientId !== payload);
225
+ }
226
+
211
227
  yield put(actions.setApiTokensState({
212
- apiTokensDataTenant: apiTokensDataTenant.filter(i => i.clientId !== payload),
228
+ apiTokensDataTenant: filteredApiTokensDataTenant,
213
229
  deleteTokenDialog: {
214
230
  open: false,
215
- clientId: payload
231
+ id: payload
216
232
  }
217
233
  }));
218
234
  yield put(actions.setApiTokensLoader({
@@ -280,11 +296,15 @@ function* loadUserApiTokens({
280
296
  }
281
297
 
282
298
  try {
283
- var _payload$callback3;
299
+ var _call, _call2, _accessTokensData$acc, _payload$callback3;
284
300
 
285
- const apiTokensData = yield call(api.auth.getUserApiTokensData);
301
+ const apiTokensData = yield (_call = call(api.auth.getUserApiTokensData)) != null ? _call : [];
302
+ const accessTokensData = yield (_call2 = call(api.auth.getUserAccessTokensData)) != null ? _call2 : [];
303
+ const accessTokens = (_accessTokensData$acc = accessTokensData.accessTokens) != null ? _accessTokensData$acc : [];
304
+ const allTokens = accessTokens.concat(apiTokensData);
305
+ const sortedTokensByDate = allTokens.sort((date1, date2) => new Date(date2.createdAt) - new Date(date1.createdAt));
286
306
  yield put(actions.setApiTokensState({
287
- apiTokensDataUser: apiTokensData != null ? apiTokensData : []
307
+ apiTokensDataUser: sortedTokensByDate != null ? sortedTokensByDate : []
288
308
  }));
289
309
  yield put(actions.setApiTokensLoader({
290
310
  key: ApiStateKeys.LOAD_API_TOKENS,
@@ -317,11 +337,15 @@ function* loadTenantApiTokens({
317
337
  }
318
338
 
319
339
  try {
320
- var _payload$callback5;
340
+ var _call3, _call4, _accessTokensData$acc2, _payload$callback5;
321
341
 
322
- const apiTokensData = yield call(api.auth.getTenantApiTokensData);
342
+ const apiTokensData = yield (_call3 = call(api.auth.getTenantApiTokensData)) != null ? _call3 : [];
343
+ const accessTokensData = yield (_call4 = call(api.auth.getTenantAccessTokensData)) != null ? _call4 : [];
344
+ const accessTokens = (_accessTokensData$acc2 = accessTokensData == null ? void 0 : accessTokensData.accessTokens) != null ? _accessTokensData$acc2 : [];
345
+ const allTokens = accessTokens.concat(apiTokensData);
346
+ const sortedTokensByDate = allTokens.sort((date1, date2) => new Date(date2.createdAt) - new Date(date1.createdAt));
323
347
  yield put(actions.setApiTokensState({
324
- apiTokensDataTenant: apiTokensData != null ? apiTokensData : []
348
+ apiTokensDataTenant: sortedTokensByDate != null ? sortedTokensByDate : []
325
349
  }));
326
350
  yield put(actions.setApiTokensLoader({
327
351
  key: ApiStateKeys.LOAD_API_TOKENS,
@@ -347,7 +371,6 @@ export function* apiTokensSaga() {
347
371
  yield takeLeading(actions.loadApiTokens, loadApiTokens);
348
372
  yield takeLeading(actions.loadUserApiTokens, loadUserApiTokens);
349
373
  yield takeLeading(actions.loadTenantApiTokens, loadTenantApiTokens);
350
- yield takeLeading(actions.initApiTokensData, loadApiTokensData);
351
374
  yield takeEvery(actions.addUserApiToken, addUserApiToken);
352
375
  yield takeEvery(actions.addTenantApiToken, addTenantApiToken);
353
376
  yield takeLatest(actions.deleteTenantApiToken, deleteTenantApiToken);
@@ -357,40 +380,6 @@ export function* apiTokensSaga() {
357
380
  * Preview Sagas
358
381
  *********************************/
359
382
 
360
- function* loadApiTokensDataMock({
361
- payload: apiTokenType
362
- }) {
363
- yield put(actions.setApiTokensState({
364
- apiTokenType
365
- }));
366
- yield put(actions.setApiTokensLoader({
367
- key: ApiStateKeys.LOAD_API_TOKENS,
368
- value: true
369
- }));
370
-
371
- if (apiTokenType === 'user') {
372
- yield delay(200);
373
- const apiTokensData = [apiTokensDataDemo];
374
- yield put(actions.setApiTokensState({
375
- apiTokensDataUser: apiTokensData != null ? apiTokensData : []
376
- }));
377
- } else {
378
- var _ref;
379
-
380
- yield delay(200);
381
- yield put(actions.setApiTokensState({
382
- apiTokensDataTenant: (_ref = [apiTokensDataTenantDemo]) != null ? _ref : [],
383
- roles: rolesDemo != null ? rolesDemo : [],
384
- permissions: permissionsDemo != null ? permissionsDemo : []
385
- }));
386
- }
387
-
388
- yield put(actions.setApiTokensLoader({
389
- key: ApiStateKeys.LOAD_API_TOKENS,
390
- value: false
391
- }));
392
- }
393
-
394
383
  function* addTenantApiTokenMock({
395
384
  payload
396
385
  }) {
@@ -533,7 +522,6 @@ export function* apiTokensSagaMock() {
533
522
  yield takeLeading(actions.loadApiTokens, loadApiTokensMock);
534
523
  yield takeLeading(actions.loadUserApiTokens, loadUserApiTokensMock);
535
524
  yield takeLeading(actions.loadTenantApiTokens, loadTenantApiTokensMock);
536
- yield takeLeading(actions.initApiTokensData, loadApiTokensDataMock);
537
525
  yield takeEvery(actions.addTenantApiToken, addTenantApiTokenMock);
538
526
  yield takeLatest(actions.deleteTenantApiToken, deleteTenantApiTokenMock);
539
527
  }
package/auth/index.d.ts CHANGED
@@ -162,8 +162,8 @@ declare const _default: {
162
162
  callback?: ((data: boolean | null, error?: string | undefined) => void) | undefined;
163
163
  }> | undefined, string, never, never>;
164
164
  initApiTokensData: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[import("./ApiTokensState/interfaces").ApiTokenType], import("./ApiTokensState/interfaces").ApiTokenType, string, never, never>;
165
- addTenantApiToken: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[import("..").WithCallback<Pick<import("./ApiTokensState/interfaces").ITenantApiTokensData, "description" | "roleIds">, boolean>], import("..").WithCallback<Pick<import("./ApiTokensState/interfaces").ITenantApiTokensData, "description" | "roleIds">, boolean>, string, never, never>;
166
- addUserApiToken: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[import("..").WithCallback<Pick<import("./ApiTokensState/interfaces").IApiTokensData, "description">, boolean>], import("..").WithCallback<Pick<import("./ApiTokensState/interfaces").IApiTokensData, "description">, boolean>, string, never, never>;
165
+ addTenantApiToken: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[import("..").WithCallback<Pick<import("./ApiTokensState/interfaces").ITenantApiTokensData, "description" | "roleIds" | "expires">, boolean>], import("..").WithCallback<Pick<import("./ApiTokensState/interfaces").ITenantApiTokensData, "description" | "roleIds" | "expires">, boolean>, string, never, never>;
166
+ addUserApiToken: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[import("..").WithCallback<Pick<import("./ApiTokensState/interfaces").IApiTokensData, "description" | "expires">, boolean>], import("..").WithCallback<Pick<import("./ApiTokensState/interfaces").IApiTokensData, "description" | "expires">, boolean>, string, never, never>;
167
167
  deleteUserApiToken: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[string], string, string, never, never>;
168
168
  deleteTenantApiToken: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[string], string, string, never, never>;
169
169
  loadUsers: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[import("..").WithCallback<import("..").WithSilentLoad<import("@frontegg/rest-api").ILoadUsers>, import("@frontegg/rest-api").ITeamUser[]>], import("..").WithCallback<import("..").WithSilentLoad<import("@frontegg/rest-api").ILoadUsers>, import("@frontegg/rest-api").ITeamUser[]>, string, never, never>;
package/auth/reducer.d.ts CHANGED
@@ -129,8 +129,8 @@ declare const actions: {
129
129
  callback?: ((data: boolean | null, error?: string | undefined) => void) | undefined;
130
130
  }> | undefined, string, never, never>;
131
131
  initApiTokensData: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[import(".").ApiTokenType], import(".").ApiTokenType, string, never, never>;
132
- addTenantApiToken: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[import("..").WithCallback<Pick<import(".").ITenantApiTokensData, "description" | "roleIds">, boolean>], import("..").WithCallback<Pick<import(".").ITenantApiTokensData, "description" | "roleIds">, boolean>, string, never, never>;
133
- addUserApiToken: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[import("..").WithCallback<Pick<import(".").IApiTokensData, "description">, boolean>], import("..").WithCallback<Pick<import(".").IApiTokensData, "description">, boolean>, string, never, never>;
132
+ addTenantApiToken: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[import("..").WithCallback<Pick<import(".").ITenantApiTokensData, "description" | "roleIds" | "expires">, boolean>], import("..").WithCallback<Pick<import(".").ITenantApiTokensData, "description" | "roleIds" | "expires">, boolean>, string, never, never>;
133
+ addUserApiToken: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[import("..").WithCallback<Pick<import(".").IApiTokensData, "description" | "expires">, boolean>], import("..").WithCallback<Pick<import(".").IApiTokensData, "description" | "expires">, boolean>, string, never, never>;
134
134
  deleteUserApiToken: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[string], string, string, never, never>;
135
135
  deleteTenantApiToken: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[string], string, string, never, never>;
136
136
  loadUsers: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[import("..").WithCallback<import("..").WithSilentLoad<import("@frontegg/rest-api").ILoadUsers>, import("@frontegg/rest-api").ITeamUser[]>], import("..").WithCallback<import("..").WithSilentLoad<import("@frontegg/rest-api").ILoadUsers>, import("@frontegg/rest-api").ITeamUser[]>, string, never, never>;
package/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license Frontegg v6.66.0
1
+ /** @license Frontegg v6.67.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.
@@ -22,60 +22,12 @@ var _dummy = require("../dummy");
22
22
 
23
23
  var _uuid = require("uuid");
24
24
 
25
- function* loadApiTokensData({
26
- payload: apiTokenType
27
- }) {
28
- yield (0, _effects.put)(_reducer.actions.setApiTokensState({
29
- apiTokenType
30
- }));
31
-
32
- try {
33
- yield (0, _effects.put)(_reducer.actions.setApiTokensLoader({
34
- key: _interfaces.ApiStateKeys.LOAD_API_TOKENS,
35
- value: true
36
- }));
37
-
38
- if (apiTokenType === 'user') {
39
- const apiTokensData = yield (0, _effects.call)(_restApi.api.auth.getUserApiTokensData);
40
- yield (0, _effects.put)(_reducer.actions.setApiTokensState({
41
- apiTokensDataUser: apiTokensData != null ? apiTokensData : []
42
- }));
43
- } else {
44
- const apiTenantTokensData = yield (0, _effects.call)(_restApi.api.auth.getTenantApiTokensData);
45
- const {
46
- items: roles
47
- } = yield (0, _effects.call)(_restApi.api.teams.loadAvailableRoles);
48
- const {
49
- items: permissions
50
- } = yield (0, _effects.call)(_restApi.api.teams.loadAvailablePermissions);
51
- yield (0, _effects.put)(_reducer.actions.setApiTokensState({
52
- apiTokensDataTenant: apiTenantTokensData != null ? apiTenantTokensData : [],
53
- roles: roles != null ? roles : [],
54
- permissions: permissions != null ? permissions : []
55
- }));
56
- }
57
-
58
- yield (0, _effects.put)(_reducer.actions.setApiTokensLoader({
59
- key: _interfaces.ApiStateKeys.LOAD_API_TOKENS,
60
- value: false
61
- }));
62
- } catch (e) {
63
- yield (0, _effects.put)(_reducer.actions.setApiTokensError({
64
- key: _interfaces.ApiStateKeys.LOAD_API_TOKENS,
65
- value: e.message
66
- }));
67
- yield (0, _effects.put)(_reducer.actions.setApiTokensLoader({
68
- key: _interfaces.ApiStateKeys.LOAD_API_TOKENS,
69
- value: false
70
- }));
71
- }
72
- }
73
-
74
25
  function* addUserApiToken({
75
26
  payload
76
27
  }) {
77
28
  const {
78
29
  description,
30
+ expires,
79
31
  callback
80
32
  } = payload;
81
33
  const {
@@ -87,9 +39,26 @@ function* addUserApiToken({
87
39
  key: _interfaces.ApiStateKeys.ADD_API_TOKEN,
88
40
  value: true
89
41
  }));
90
- const data = yield (0, _effects.call)(_restApi.api.auth.updateUserApiTokensData, {
91
- description
92
- });
42
+ let data;
43
+ let expiresInMinutes;
44
+
45
+ if (expires !== undefined) {
46
+ if (expires === null) {
47
+ expiresInMinutes = null;
48
+ } else {
49
+ expiresInMinutes = expires * 1440;
50
+ }
51
+
52
+ data = yield (0, _effects.call)(_restApi.api.auth.createUserAccessToken, {
53
+ description,
54
+ expiresInMinutes
55
+ });
56
+ } else {
57
+ data = yield (0, _effects.call)(_restApi.api.auth.updateUserApiTokensData, {
58
+ description
59
+ });
60
+ }
61
+
93
62
  yield (0, _effects.put)(_reducer.actions.setApiTokensState({
94
63
  showAddTokenDialog: false
95
64
  }));
@@ -99,7 +68,7 @@ function* addUserApiToken({
99
68
  successDialog: {
100
69
  open: true,
101
70
  secret: data.secret,
102
- clientId: data.clientId
71
+ clientId: expires !== undefined ? data.clientId : undefined
103
72
  }
104
73
  }));
105
74
  yield (0, _effects.put)(_reducer.actions.setApiTokensLoader({
@@ -126,6 +95,7 @@ function* addTenantApiToken({
126
95
  const {
127
96
  description,
128
97
  roleIds,
98
+ expires,
129
99
  callback
130
100
  } = payload;
131
101
  const {
@@ -137,10 +107,28 @@ function* addTenantApiToken({
137
107
  key: _interfaces.ApiStateKeys.ADD_API_TOKEN,
138
108
  value: true
139
109
  }));
140
- const data = yield (0, _effects.call)(_restApi.api.auth.updateTenantApiTokensData, {
141
- description,
142
- roleIds
143
- });
110
+ let data;
111
+ let expiresInMinutes;
112
+
113
+ if (expires !== undefined) {
114
+ if (expires === null) {
115
+ expiresInMinutes = null;
116
+ } else {
117
+ expiresInMinutes = expires * 1440;
118
+ }
119
+
120
+ data = yield (0, _effects.call)(_restApi.api.auth.createTenantAccessToken, {
121
+ description,
122
+ expiresInMinutes,
123
+ roleIds
124
+ });
125
+ } else {
126
+ data = yield (0, _effects.call)(_restApi.api.auth.updateTenantApiTokensData, {
127
+ description,
128
+ roleIds
129
+ });
130
+ }
131
+
144
132
  yield (0, _effects.put)(_reducer.actions.setApiTokensState({
145
133
  showAddTokenDialog: false
146
134
  }));
@@ -150,7 +138,7 @@ function* addTenantApiToken({
150
138
  successDialog: {
151
139
  open: true,
152
140
  secret: data.secret,
153
- clientId: data.clientId
141
+ clientId: expires !== undefined ? data.clientId : undefined
154
142
  }
155
143
  }));
156
144
  yield (0, _effects.put)(_reducer.actions.setApiTokensLoader({
@@ -177,22 +165,38 @@ function* deleteUserApiToken({
177
165
  const {
178
166
  apiTokensDataUser
179
167
  } = yield (0, _effects.select)(state => state.auth.apiTokensState);
168
+ const isAccessToken = apiTokensDataUser.some(token => token.id === payload);
180
169
 
181
170
  try {
182
171
  yield (0, _effects.put)(_reducer.actions.setApiTokensLoader({
183
172
  key: _interfaces.ApiStateKeys.DELETE_API_TOKEN,
184
173
  value: true
185
174
  }));
186
- yield (0, _effects.call)(_restApi.api.auth.deleteUserApiToken, {
187
- tokenId: payload
188
- });
189
- yield (0, _effects.put)(_reducer.actions.setApiTokensState({
190
- apiTokensDataUser: apiTokensDataUser.filter(i => i.clientId !== payload),
191
- deleteTokenDialog: {
192
- open: false,
193
- clientId: payload
194
- }
195
- }));
175
+
176
+ if (isAccessToken) {
177
+ yield (0, _effects.call)(_restApi.api.auth.deleteUserAccessToken, {
178
+ id: payload
179
+ });
180
+ yield (0, _effects.put)(_reducer.actions.setApiTokensState({
181
+ apiTokensDataUser: apiTokensDataUser.filter(token => token.id !== payload),
182
+ deleteTokenDialog: {
183
+ open: false,
184
+ id: payload
185
+ }
186
+ }));
187
+ } else {
188
+ yield (0, _effects.call)(_restApi.api.auth.deleteUserApiToken, {
189
+ tokenId: payload
190
+ });
191
+ yield (0, _effects.put)(_reducer.actions.setApiTokensState({
192
+ apiTokensDataUser: apiTokensDataUser.filter(token => token.clientId !== payload),
193
+ deleteTokenDialog: {
194
+ open: false,
195
+ clientId: payload
196
+ }
197
+ }));
198
+ }
199
+
196
200
  yield (0, _effects.put)(_reducer.actions.setApiTokensLoader({
197
201
  key: _interfaces.ApiStateKeys.DELETE_API_TOKEN,
198
202
  value: false
@@ -215,20 +219,32 @@ function* deleteTenantApiToken({
215
219
  const {
216
220
  apiTokensDataTenant
217
221
  } = yield (0, _effects.select)(state => state.auth.apiTokensState);
222
+ const isAccessToken = apiTokensDataTenant.some(token => token.id === payload);
223
+ let filteredApiTokensDataTenant = apiTokensDataTenant;
218
224
 
219
225
  try {
220
226
  yield (0, _effects.put)(_reducer.actions.setApiTokensLoader({
221
227
  key: _interfaces.ApiStateKeys.DELETE_API_TOKEN,
222
228
  value: true
223
229
  }));
224
- yield (0, _effects.call)(_restApi.api.auth.deleteTenantApiToken, {
225
- tokenId: payload
226
- });
230
+
231
+ if (isAccessToken) {
232
+ yield (0, _effects.call)(_restApi.api.auth.deleteTenantAccessToken, {
233
+ id: payload
234
+ });
235
+ filteredApiTokensDataTenant = apiTokensDataTenant.filter(token => token.id !== payload);
236
+ } else {
237
+ yield (0, _effects.call)(_restApi.api.auth.deleteTenantApiToken, {
238
+ tokenId: payload
239
+ });
240
+ filteredApiTokensDataTenant = apiTokensDataTenant.filter(token => token.clientId !== payload);
241
+ }
242
+
227
243
  yield (0, _effects.put)(_reducer.actions.setApiTokensState({
228
- apiTokensDataTenant: apiTokensDataTenant.filter(i => i.clientId !== payload),
244
+ apiTokensDataTenant: filteredApiTokensDataTenant,
229
245
  deleteTokenDialog: {
230
246
  open: false,
231
- clientId: payload
247
+ id: payload
232
248
  }
233
249
  }));
234
250
  yield (0, _effects.put)(_reducer.actions.setApiTokensLoader({
@@ -296,11 +312,15 @@ function* loadUserApiTokens({
296
312
  }
297
313
 
298
314
  try {
299
- var _payload$callback3;
315
+ var _call, _call2, _accessTokensData$acc, _payload$callback3;
300
316
 
301
- const apiTokensData = yield (0, _effects.call)(_restApi.api.auth.getUserApiTokensData);
317
+ const apiTokensData = yield (_call = (0, _effects.call)(_restApi.api.auth.getUserApiTokensData)) != null ? _call : [];
318
+ const accessTokensData = yield (_call2 = (0, _effects.call)(_restApi.api.auth.getUserAccessTokensData)) != null ? _call2 : [];
319
+ const accessTokens = (_accessTokensData$acc = accessTokensData.accessTokens) != null ? _accessTokensData$acc : [];
320
+ const allTokens = accessTokens.concat(apiTokensData);
321
+ const sortedTokensByDate = allTokens.sort((date1, date2) => new Date(date2.createdAt) - new Date(date1.createdAt));
302
322
  yield (0, _effects.put)(_reducer.actions.setApiTokensState({
303
- apiTokensDataUser: apiTokensData != null ? apiTokensData : []
323
+ apiTokensDataUser: sortedTokensByDate != null ? sortedTokensByDate : []
304
324
  }));
305
325
  yield (0, _effects.put)(_reducer.actions.setApiTokensLoader({
306
326
  key: _interfaces.ApiStateKeys.LOAD_API_TOKENS,
@@ -333,11 +353,15 @@ function* loadTenantApiTokens({
333
353
  }
334
354
 
335
355
  try {
336
- var _payload$callback5;
356
+ var _call3, _call4, _accessTokensData$acc2, _payload$callback5;
337
357
 
338
- const apiTokensData = yield (0, _effects.call)(_restApi.api.auth.getTenantApiTokensData);
358
+ const apiTokensData = yield (_call3 = (0, _effects.call)(_restApi.api.auth.getTenantApiTokensData)) != null ? _call3 : [];
359
+ const accessTokensData = yield (_call4 = (0, _effects.call)(_restApi.api.auth.getTenantAccessTokensData)) != null ? _call4 : [];
360
+ const accessTokens = (_accessTokensData$acc2 = accessTokensData == null ? void 0 : accessTokensData.accessTokens) != null ? _accessTokensData$acc2 : [];
361
+ const allTokens = accessTokens.concat(apiTokensData);
362
+ const sortedTokensByDate = allTokens.sort((date1, date2) => new Date(date2.createdAt) - new Date(date1.createdAt));
339
363
  yield (0, _effects.put)(_reducer.actions.setApiTokensState({
340
- apiTokensDataTenant: apiTokensData != null ? apiTokensData : []
364
+ apiTokensDataTenant: sortedTokensByDate != null ? sortedTokensByDate : []
341
365
  }));
342
366
  yield (0, _effects.put)(_reducer.actions.setApiTokensLoader({
343
367
  key: _interfaces.ApiStateKeys.LOAD_API_TOKENS,
@@ -363,7 +387,6 @@ function* apiTokensSaga() {
363
387
  yield (0, _effects.takeLeading)(_reducer.actions.loadApiTokens, loadApiTokens);
364
388
  yield (0, _effects.takeLeading)(_reducer.actions.loadUserApiTokens, loadUserApiTokens);
365
389
  yield (0, _effects.takeLeading)(_reducer.actions.loadTenantApiTokens, loadTenantApiTokens);
366
- yield (0, _effects.takeLeading)(_reducer.actions.initApiTokensData, loadApiTokensData);
367
390
  yield (0, _effects.takeEvery)(_reducer.actions.addUserApiToken, addUserApiToken);
368
391
  yield (0, _effects.takeEvery)(_reducer.actions.addTenantApiToken, addTenantApiToken);
369
392
  yield (0, _effects.takeLatest)(_reducer.actions.deleteTenantApiToken, deleteTenantApiToken);
@@ -374,40 +397,6 @@ function* apiTokensSaga() {
374
397
  *********************************/
375
398
 
376
399
 
377
- function* loadApiTokensDataMock({
378
- payload: apiTokenType
379
- }) {
380
- yield (0, _effects.put)(_reducer.actions.setApiTokensState({
381
- apiTokenType
382
- }));
383
- yield (0, _effects.put)(_reducer.actions.setApiTokensLoader({
384
- key: _interfaces.ApiStateKeys.LOAD_API_TOKENS,
385
- value: true
386
- }));
387
-
388
- if (apiTokenType === 'user') {
389
- yield (0, _effects.delay)(200);
390
- const apiTokensData = [_dummy.apiTokensDataDemo];
391
- yield (0, _effects.put)(_reducer.actions.setApiTokensState({
392
- apiTokensDataUser: apiTokensData != null ? apiTokensData : []
393
- }));
394
- } else {
395
- var _ref;
396
-
397
- yield (0, _effects.delay)(200);
398
- yield (0, _effects.put)(_reducer.actions.setApiTokensState({
399
- apiTokensDataTenant: (_ref = [_dummy.apiTokensDataTenantDemo]) != null ? _ref : [],
400
- roles: _dummy.rolesDemo != null ? _dummy.rolesDemo : [],
401
- permissions: _dummy.permissionsDemo != null ? _dummy.permissionsDemo : []
402
- }));
403
- }
404
-
405
- yield (0, _effects.put)(_reducer.actions.setApiTokensLoader({
406
- key: _interfaces.ApiStateKeys.LOAD_API_TOKENS,
407
- value: false
408
- }));
409
- }
410
-
411
400
  function* addTenantApiTokenMock({
412
401
  payload
413
402
  }) {
@@ -548,7 +537,6 @@ function* apiTokensSagaMock() {
548
537
  yield (0, _effects.takeLeading)(_reducer.actions.loadApiTokens, loadApiTokensMock);
549
538
  yield (0, _effects.takeLeading)(_reducer.actions.loadUserApiTokens, loadUserApiTokensMock);
550
539
  yield (0, _effects.takeLeading)(_reducer.actions.loadTenantApiTokens, loadTenantApiTokensMock);
551
- yield (0, _effects.takeLeading)(_reducer.actions.initApiTokensData, loadApiTokensDataMock);
552
540
  yield (0, _effects.takeEvery)(_reducer.actions.addTenantApiToken, addTenantApiTokenMock);
553
541
  yield (0, _effects.takeLatest)(_reducer.actions.deleteTenantApiToken, deleteTenantApiTokenMock);
554
542
  }
package/node/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license Frontegg v6.66.0
1
+ /** @license Frontegg v6.67.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,12 +1,12 @@
1
1
  {
2
2
  "name": "@frontegg/redux-store",
3
- "version": "6.66.0",
3
+ "version": "6.67.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
- "@frontegg/rest-api": "3.0.70",
9
+ "@frontegg/rest-api": "3.0.71",
10
10
  "@reduxjs/toolkit": "^1.8.5",
11
11
  "redux-saga": "^1.2.1",
12
12
  "uuid": "^8.3.2"