@northern.tech/store 0.30.1 → 0.30.2
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.
- package/dist/deploymentsSlice/thunks.d.cts +9 -9
- package/dist/deploymentsSlice/thunks.d.ts +9 -9
- package/dist/store.d.cts +1 -1
- package/dist/store.d.ts +1 -1
- package/dist/storehooks.d.cts +12 -12
- package/dist/storehooks.d.ts +12 -12
- package/dist/thunks.cjs +51 -9
- package/dist/thunks.cjs.map +1 -1
- package/dist/thunks.js +52 -10
- package/dist/thunks.js.map +1 -1
- package/dist/usersSlice/thunks.d.cts +75 -75
- package/dist/usersSlice/thunks.d.ts +75 -75
- package/dist/{utils-DNnSR4S_.d.ts → utils-CO_CpGFP.d.ts} +3 -2
- package/dist/{utils-B4I595rf.d.cts → utils-CpPfqW0Q.d.cts} +3 -2
- package/dist/utils.cjs +2 -0
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +2 -2
- package/dist/utils.d.ts +2 -2
- package/dist/utils.js +2 -1
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -118,17 +118,7 @@ declare const verifyEmailComplete: _$_reduxjs_toolkit0.AsyncThunk<_$axios.AxiosR
|
|
|
118
118
|
fulfilledMeta?: unknown;
|
|
119
119
|
rejectedMeta?: unknown;
|
|
120
120
|
}>;
|
|
121
|
-
declare const verify2FA: _$_reduxjs_toolkit0.AsyncThunk<_$_reduxjs_toolkit0.PayloadAction<
|
|
122
|
-
arg: string;
|
|
123
|
-
requestId: string;
|
|
124
|
-
requestStatus: "rejected";
|
|
125
|
-
aborted: boolean;
|
|
126
|
-
condition: boolean;
|
|
127
|
-
} & ({
|
|
128
|
-
rejectedWithValue: true;
|
|
129
|
-
} | ({
|
|
130
|
-
rejectedWithValue: false;
|
|
131
|
-
} & {})), _$_reduxjs_toolkit0.SerializedError> | _$_reduxjs_toolkit0.PayloadAction<[{
|
|
121
|
+
declare const verify2FA: _$_reduxjs_toolkit0.AsyncThunk<_$_reduxjs_toolkit0.PayloadAction<[{
|
|
132
122
|
payload: User$1;
|
|
133
123
|
type: "users/receivedUser";
|
|
134
124
|
}, _$_reduxjs_toolkit0.PayloadAction<void, string, {
|
|
@@ -172,7 +162,17 @@ declare const verify2FA: _$_reduxjs_toolkit0.AsyncThunk<_$_reduxjs_toolkit0.Payl
|
|
|
172
162
|
arg: string;
|
|
173
163
|
requestId: string;
|
|
174
164
|
requestStatus: "fulfilled";
|
|
175
|
-
}, never
|
|
165
|
+
}, never> | _$_reduxjs_toolkit0.PayloadAction<unknown, string, {
|
|
166
|
+
arg: string;
|
|
167
|
+
requestId: string;
|
|
168
|
+
requestStatus: "rejected";
|
|
169
|
+
aborted: boolean;
|
|
170
|
+
condition: boolean;
|
|
171
|
+
} & ({
|
|
172
|
+
rejectedWithValue: true;
|
|
173
|
+
} | ({
|
|
174
|
+
rejectedWithValue: false;
|
|
175
|
+
} & {})), _$_reduxjs_toolkit0.SerializedError>, {
|
|
176
176
|
token2fa: string;
|
|
177
177
|
}, {
|
|
178
178
|
dispatch: AppDispatch;
|
|
@@ -247,17 +247,7 @@ declare const getUser: _$_reduxjs_toolkit0.AsyncThunk<[{
|
|
|
247
247
|
fulfilledMeta?: unknown;
|
|
248
248
|
rejectedMeta?: unknown;
|
|
249
249
|
}>;
|
|
250
|
-
declare const initializeSelf: _$_reduxjs_toolkit0.AsyncThunk<_$_reduxjs_toolkit0.PayloadAction<
|
|
251
|
-
arg: string;
|
|
252
|
-
requestId: string;
|
|
253
|
-
requestStatus: "rejected";
|
|
254
|
-
aborted: boolean;
|
|
255
|
-
condition: boolean;
|
|
256
|
-
} & ({
|
|
257
|
-
rejectedWithValue: true;
|
|
258
|
-
} | ({
|
|
259
|
-
rejectedWithValue: false;
|
|
260
|
-
} & {})), _$_reduxjs_toolkit0.SerializedError> | _$_reduxjs_toolkit0.PayloadAction<[{
|
|
250
|
+
declare const initializeSelf: _$_reduxjs_toolkit0.AsyncThunk<_$_reduxjs_toolkit0.PayloadAction<[{
|
|
261
251
|
payload: User$1;
|
|
262
252
|
type: "users/receivedUser";
|
|
263
253
|
}, _$_reduxjs_toolkit0.PayloadAction<void, string, {
|
|
@@ -301,7 +291,17 @@ declare const initializeSelf: _$_reduxjs_toolkit0.AsyncThunk<_$_reduxjs_toolkit0
|
|
|
301
291
|
arg: string;
|
|
302
292
|
requestId: string;
|
|
303
293
|
requestStatus: "fulfilled";
|
|
304
|
-
}, never
|
|
294
|
+
}, never> | _$_reduxjs_toolkit0.PayloadAction<unknown, string, {
|
|
295
|
+
arg: string;
|
|
296
|
+
requestId: string;
|
|
297
|
+
requestStatus: "rejected";
|
|
298
|
+
aborted: boolean;
|
|
299
|
+
condition: boolean;
|
|
300
|
+
} & ({
|
|
301
|
+
rejectedWithValue: true;
|
|
302
|
+
} | ({
|
|
303
|
+
rejectedWithValue: false;
|
|
304
|
+
} & {})), _$_reduxjs_toolkit0.SerializedError>, void, {
|
|
305
305
|
dispatch: AppDispatch;
|
|
306
306
|
state: RootState;
|
|
307
307
|
extra?: unknown;
|
|
@@ -334,7 +334,14 @@ interface CreateUserPayload {
|
|
|
334
334
|
shouldResetPassword?: boolean;
|
|
335
335
|
sso?: boolean;
|
|
336
336
|
}
|
|
337
|
-
declare const createUser: _$_reduxjs_toolkit0.AsyncThunk<[_$_reduxjs_toolkit0.PayloadAction<
|
|
337
|
+
declare const createUser: _$_reduxjs_toolkit0.AsyncThunk<[_$_reduxjs_toolkit0.PayloadAction<{
|
|
338
|
+
payload: Record<string, User$1>;
|
|
339
|
+
type: "users/receivedUserList";
|
|
340
|
+
}, string, {
|
|
341
|
+
arg: void;
|
|
342
|
+
requestId: string;
|
|
343
|
+
requestStatus: "fulfilled";
|
|
344
|
+
}, never> | _$_reduxjs_toolkit0.PayloadAction<unknown, string, {
|
|
338
345
|
arg: void;
|
|
339
346
|
requestId: string;
|
|
340
347
|
requestStatus: "rejected";
|
|
@@ -344,14 +351,7 @@ declare const createUser: _$_reduxjs_toolkit0.AsyncThunk<[_$_reduxjs_toolkit0.Pa
|
|
|
344
351
|
rejectedWithValue: true;
|
|
345
352
|
} | ({
|
|
346
353
|
rejectedWithValue: false;
|
|
347
|
-
} & {})), _$_reduxjs_toolkit0.SerializedError
|
|
348
|
-
payload: Record<string, User$1>;
|
|
349
|
-
type: "users/receivedUserList";
|
|
350
|
-
}, string, {
|
|
351
|
-
arg: void;
|
|
352
|
-
requestId: string;
|
|
353
|
-
requestStatus: "fulfilled";
|
|
354
|
-
}, never>, {
|
|
354
|
+
} & {})), _$_reduxjs_toolkit0.SerializedError>, {
|
|
355
355
|
payload: string | SnackbarContent;
|
|
356
356
|
type: "app/setSnackbar";
|
|
357
357
|
}], CreateUserPayload, {
|
|
@@ -367,7 +367,14 @@ declare const createUser: _$_reduxjs_toolkit0.AsyncThunk<[_$_reduxjs_toolkit0.Pa
|
|
|
367
367
|
declare const removeUser: _$_reduxjs_toolkit0.AsyncThunk<[{
|
|
368
368
|
payload: string;
|
|
369
369
|
type: "users/removedUser";
|
|
370
|
-
}, _$_reduxjs_toolkit0.PayloadAction<
|
|
370
|
+
}, _$_reduxjs_toolkit0.PayloadAction<{
|
|
371
|
+
payload: Record<string, User$1>;
|
|
372
|
+
type: "users/receivedUserList";
|
|
373
|
+
}, string, {
|
|
374
|
+
arg: void;
|
|
375
|
+
requestId: string;
|
|
376
|
+
requestStatus: "fulfilled";
|
|
377
|
+
}, never> | _$_reduxjs_toolkit0.PayloadAction<unknown, string, {
|
|
371
378
|
arg: void;
|
|
372
379
|
requestId: string;
|
|
373
380
|
requestStatus: "rejected";
|
|
@@ -377,14 +384,7 @@ declare const removeUser: _$_reduxjs_toolkit0.AsyncThunk<[{
|
|
|
377
384
|
rejectedWithValue: true;
|
|
378
385
|
} | ({
|
|
379
386
|
rejectedWithValue: false;
|
|
380
|
-
} & {})), _$_reduxjs_toolkit0.SerializedError
|
|
381
|
-
payload: Record<string, User$1>;
|
|
382
|
-
type: "users/receivedUserList";
|
|
383
|
-
}, string, {
|
|
384
|
-
arg: void;
|
|
385
|
-
requestId: string;
|
|
386
|
-
requestStatus: "fulfilled";
|
|
387
|
-
}, never>, {
|
|
387
|
+
} & {})), _$_reduxjs_toolkit0.SerializedError>, {
|
|
388
388
|
payload: string | SnackbarContent;
|
|
389
389
|
type: "app/setSnackbar";
|
|
390
390
|
}], string, {
|
|
@@ -435,7 +435,14 @@ declare const checkEmailExists: _$_reduxjs_toolkit0.AsyncThunk<boolean | undefin
|
|
|
435
435
|
declare const addUserToCurrentTenant: _$_reduxjs_toolkit0.AsyncThunk<[{
|
|
436
436
|
payload: string | SnackbarContent;
|
|
437
437
|
type: "app/setSnackbar";
|
|
438
|
-
}, _$_reduxjs_toolkit0.PayloadAction<
|
|
438
|
+
}, _$_reduxjs_toolkit0.PayloadAction<{
|
|
439
|
+
payload: Record<string, User$1>;
|
|
440
|
+
type: "users/receivedUserList";
|
|
441
|
+
}, string, {
|
|
442
|
+
arg: void;
|
|
443
|
+
requestId: string;
|
|
444
|
+
requestStatus: "fulfilled";
|
|
445
|
+
}, never> | _$_reduxjs_toolkit0.PayloadAction<unknown, string, {
|
|
439
446
|
arg: void;
|
|
440
447
|
requestId: string;
|
|
441
448
|
requestStatus: "rejected";
|
|
@@ -445,14 +452,7 @@ declare const addUserToCurrentTenant: _$_reduxjs_toolkit0.AsyncThunk<[{
|
|
|
445
452
|
rejectedWithValue: true;
|
|
446
453
|
} | ({
|
|
447
454
|
rejectedWithValue: false;
|
|
448
|
-
} & {})), _$_reduxjs_toolkit0.SerializedError>
|
|
449
|
-
payload: Record<string, User$1>;
|
|
450
|
-
type: "users/receivedUserList";
|
|
451
|
-
}, string, {
|
|
452
|
-
arg: void;
|
|
453
|
-
requestId: string;
|
|
454
|
-
requestStatus: "fulfilled";
|
|
455
|
-
}, never>], string, {
|
|
455
|
+
} & {})), _$_reduxjs_toolkit0.SerializedError>], string, {
|
|
456
456
|
dispatch: AppDispatch;
|
|
457
457
|
state: RootState;
|
|
458
458
|
extra?: unknown;
|
|
@@ -462,17 +462,7 @@ declare const addUserToCurrentTenant: _$_reduxjs_toolkit0.AsyncThunk<[{
|
|
|
462
462
|
fulfilledMeta?: unknown;
|
|
463
463
|
rejectedMeta?: unknown;
|
|
464
464
|
}>;
|
|
465
|
-
declare const enableUser2fa: _$_reduxjs_toolkit0.AsyncThunk<_$_reduxjs_toolkit0.PayloadAction<
|
|
466
|
-
arg: string;
|
|
467
|
-
requestId: string;
|
|
468
|
-
requestStatus: "rejected";
|
|
469
|
-
aborted: boolean;
|
|
470
|
-
condition: boolean;
|
|
471
|
-
} & ({
|
|
472
|
-
rejectedWithValue: true;
|
|
473
|
-
} | ({
|
|
474
|
-
rejectedWithValue: false;
|
|
475
|
-
} & {})), _$_reduxjs_toolkit0.SerializedError> | _$_reduxjs_toolkit0.PayloadAction<[{
|
|
465
|
+
declare const enableUser2fa: _$_reduxjs_toolkit0.AsyncThunk<_$_reduxjs_toolkit0.PayloadAction<[{
|
|
476
466
|
payload: User$1;
|
|
477
467
|
type: "users/receivedUser";
|
|
478
468
|
}, _$_reduxjs_toolkit0.PayloadAction<void, string, {
|
|
@@ -516,17 +506,7 @@ declare const enableUser2fa: _$_reduxjs_toolkit0.AsyncThunk<_$_reduxjs_toolkit0.
|
|
|
516
506
|
arg: string;
|
|
517
507
|
requestId: string;
|
|
518
508
|
requestStatus: "fulfilled";
|
|
519
|
-
}, never
|
|
520
|
-
dispatch: AppDispatch;
|
|
521
|
-
state: RootState;
|
|
522
|
-
extra?: unknown;
|
|
523
|
-
rejectValue?: unknown;
|
|
524
|
-
serializedErrorType?: unknown;
|
|
525
|
-
pendingMeta?: unknown;
|
|
526
|
-
fulfilledMeta?: unknown;
|
|
527
|
-
rejectedMeta?: unknown;
|
|
528
|
-
}>;
|
|
529
|
-
declare const disableUser2fa: _$_reduxjs_toolkit0.AsyncThunk<[_$_reduxjs_toolkit0.PayloadAction<unknown, string, {
|
|
509
|
+
}, never> | _$_reduxjs_toolkit0.PayloadAction<unknown, string, {
|
|
530
510
|
arg: string;
|
|
531
511
|
requestId: string;
|
|
532
512
|
requestStatus: "rejected";
|
|
@@ -536,7 +516,17 @@ declare const disableUser2fa: _$_reduxjs_toolkit0.AsyncThunk<[_$_reduxjs_toolkit
|
|
|
536
516
|
rejectedWithValue: true;
|
|
537
517
|
} | ({
|
|
538
518
|
rejectedWithValue: false;
|
|
539
|
-
} & {})), _$_reduxjs_toolkit0.SerializedError
|
|
519
|
+
} & {})), _$_reduxjs_toolkit0.SerializedError>, string, {
|
|
520
|
+
dispatch: AppDispatch;
|
|
521
|
+
state: RootState;
|
|
522
|
+
extra?: unknown;
|
|
523
|
+
rejectValue?: unknown;
|
|
524
|
+
serializedErrorType?: unknown;
|
|
525
|
+
pendingMeta?: unknown;
|
|
526
|
+
fulfilledMeta?: unknown;
|
|
527
|
+
rejectedMeta?: unknown;
|
|
528
|
+
}>;
|
|
529
|
+
declare const disableUser2fa: _$_reduxjs_toolkit0.AsyncThunk<[_$_reduxjs_toolkit0.PayloadAction<[{
|
|
540
530
|
payload: User$1;
|
|
541
531
|
type: "users/receivedUser";
|
|
542
532
|
}, _$_reduxjs_toolkit0.PayloadAction<void, string, {
|
|
@@ -580,7 +570,17 @@ declare const disableUser2fa: _$_reduxjs_toolkit0.AsyncThunk<[_$_reduxjs_toolkit
|
|
|
580
570
|
arg: string;
|
|
581
571
|
requestId: string;
|
|
582
572
|
requestStatus: "fulfilled";
|
|
583
|
-
}, never
|
|
573
|
+
}, never> | _$_reduxjs_toolkit0.PayloadAction<unknown, string, {
|
|
574
|
+
arg: string;
|
|
575
|
+
requestId: string;
|
|
576
|
+
requestStatus: "rejected";
|
|
577
|
+
aborted: boolean;
|
|
578
|
+
condition: boolean;
|
|
579
|
+
} & ({
|
|
580
|
+
rejectedWithValue: true;
|
|
581
|
+
} | ({
|
|
582
|
+
rejectedWithValue: false;
|
|
583
|
+
} & {})), _$_reduxjs_toolkit0.SerializedError>, {
|
|
584
584
|
payload: string | null;
|
|
585
585
|
type: "users/receivedQrCode";
|
|
586
586
|
}], string, {
|
|
@@ -118,17 +118,7 @@ declare const verifyEmailComplete: _$_reduxjs_toolkit0.AsyncThunk<_$axios.AxiosR
|
|
|
118
118
|
fulfilledMeta?: unknown;
|
|
119
119
|
rejectedMeta?: unknown;
|
|
120
120
|
}>;
|
|
121
|
-
declare const verify2FA: _$_reduxjs_toolkit0.AsyncThunk<_$_reduxjs_toolkit0.PayloadAction<
|
|
122
|
-
arg: string;
|
|
123
|
-
requestId: string;
|
|
124
|
-
requestStatus: "rejected";
|
|
125
|
-
aborted: boolean;
|
|
126
|
-
condition: boolean;
|
|
127
|
-
} & ({
|
|
128
|
-
rejectedWithValue: true;
|
|
129
|
-
} | ({
|
|
130
|
-
rejectedWithValue: false;
|
|
131
|
-
} & {})), _$_reduxjs_toolkit0.SerializedError> | _$_reduxjs_toolkit0.PayloadAction<[{
|
|
121
|
+
declare const verify2FA: _$_reduxjs_toolkit0.AsyncThunk<_$_reduxjs_toolkit0.PayloadAction<[{
|
|
132
122
|
payload: User$1;
|
|
133
123
|
type: "users/receivedUser";
|
|
134
124
|
}, _$_reduxjs_toolkit0.PayloadAction<void, string, {
|
|
@@ -172,7 +162,17 @@ declare const verify2FA: _$_reduxjs_toolkit0.AsyncThunk<_$_reduxjs_toolkit0.Payl
|
|
|
172
162
|
arg: string;
|
|
173
163
|
requestId: string;
|
|
174
164
|
requestStatus: "fulfilled";
|
|
175
|
-
}, never
|
|
165
|
+
}, never> | _$_reduxjs_toolkit0.PayloadAction<unknown, string, {
|
|
166
|
+
arg: string;
|
|
167
|
+
requestId: string;
|
|
168
|
+
requestStatus: "rejected";
|
|
169
|
+
aborted: boolean;
|
|
170
|
+
condition: boolean;
|
|
171
|
+
} & ({
|
|
172
|
+
rejectedWithValue: true;
|
|
173
|
+
} | ({
|
|
174
|
+
rejectedWithValue: false;
|
|
175
|
+
} & {})), _$_reduxjs_toolkit0.SerializedError>, {
|
|
176
176
|
token2fa: string;
|
|
177
177
|
}, {
|
|
178
178
|
dispatch: AppDispatch;
|
|
@@ -247,17 +247,7 @@ declare const getUser: _$_reduxjs_toolkit0.AsyncThunk<[{
|
|
|
247
247
|
fulfilledMeta?: unknown;
|
|
248
248
|
rejectedMeta?: unknown;
|
|
249
249
|
}>;
|
|
250
|
-
declare const initializeSelf: _$_reduxjs_toolkit0.AsyncThunk<_$_reduxjs_toolkit0.PayloadAction<
|
|
251
|
-
arg: string;
|
|
252
|
-
requestId: string;
|
|
253
|
-
requestStatus: "rejected";
|
|
254
|
-
aborted: boolean;
|
|
255
|
-
condition: boolean;
|
|
256
|
-
} & ({
|
|
257
|
-
rejectedWithValue: true;
|
|
258
|
-
} | ({
|
|
259
|
-
rejectedWithValue: false;
|
|
260
|
-
} & {})), _$_reduxjs_toolkit0.SerializedError> | _$_reduxjs_toolkit0.PayloadAction<[{
|
|
250
|
+
declare const initializeSelf: _$_reduxjs_toolkit0.AsyncThunk<_$_reduxjs_toolkit0.PayloadAction<[{
|
|
261
251
|
payload: User$1;
|
|
262
252
|
type: "users/receivedUser";
|
|
263
253
|
}, _$_reduxjs_toolkit0.PayloadAction<void, string, {
|
|
@@ -301,7 +291,17 @@ declare const initializeSelf: _$_reduxjs_toolkit0.AsyncThunk<_$_reduxjs_toolkit0
|
|
|
301
291
|
arg: string;
|
|
302
292
|
requestId: string;
|
|
303
293
|
requestStatus: "fulfilled";
|
|
304
|
-
}, never
|
|
294
|
+
}, never> | _$_reduxjs_toolkit0.PayloadAction<unknown, string, {
|
|
295
|
+
arg: string;
|
|
296
|
+
requestId: string;
|
|
297
|
+
requestStatus: "rejected";
|
|
298
|
+
aborted: boolean;
|
|
299
|
+
condition: boolean;
|
|
300
|
+
} & ({
|
|
301
|
+
rejectedWithValue: true;
|
|
302
|
+
} | ({
|
|
303
|
+
rejectedWithValue: false;
|
|
304
|
+
} & {})), _$_reduxjs_toolkit0.SerializedError>, void, {
|
|
305
305
|
dispatch: AppDispatch;
|
|
306
306
|
state: RootState;
|
|
307
307
|
extra?: unknown;
|
|
@@ -334,7 +334,14 @@ interface CreateUserPayload {
|
|
|
334
334
|
shouldResetPassword?: boolean;
|
|
335
335
|
sso?: boolean;
|
|
336
336
|
}
|
|
337
|
-
declare const createUser: _$_reduxjs_toolkit0.AsyncThunk<[_$_reduxjs_toolkit0.PayloadAction<
|
|
337
|
+
declare const createUser: _$_reduxjs_toolkit0.AsyncThunk<[_$_reduxjs_toolkit0.PayloadAction<{
|
|
338
|
+
payload: Record<string, User$1>;
|
|
339
|
+
type: "users/receivedUserList";
|
|
340
|
+
}, string, {
|
|
341
|
+
arg: void;
|
|
342
|
+
requestId: string;
|
|
343
|
+
requestStatus: "fulfilled";
|
|
344
|
+
}, never> | _$_reduxjs_toolkit0.PayloadAction<unknown, string, {
|
|
338
345
|
arg: void;
|
|
339
346
|
requestId: string;
|
|
340
347
|
requestStatus: "rejected";
|
|
@@ -344,14 +351,7 @@ declare const createUser: _$_reduxjs_toolkit0.AsyncThunk<[_$_reduxjs_toolkit0.Pa
|
|
|
344
351
|
rejectedWithValue: true;
|
|
345
352
|
} | ({
|
|
346
353
|
rejectedWithValue: false;
|
|
347
|
-
} & {})), _$_reduxjs_toolkit0.SerializedError
|
|
348
|
-
payload: Record<string, User$1>;
|
|
349
|
-
type: "users/receivedUserList";
|
|
350
|
-
}, string, {
|
|
351
|
-
arg: void;
|
|
352
|
-
requestId: string;
|
|
353
|
-
requestStatus: "fulfilled";
|
|
354
|
-
}, never>, {
|
|
354
|
+
} & {})), _$_reduxjs_toolkit0.SerializedError>, {
|
|
355
355
|
payload: string | SnackbarContent;
|
|
356
356
|
type: "app/setSnackbar";
|
|
357
357
|
}], CreateUserPayload, {
|
|
@@ -367,7 +367,14 @@ declare const createUser: _$_reduxjs_toolkit0.AsyncThunk<[_$_reduxjs_toolkit0.Pa
|
|
|
367
367
|
declare const removeUser: _$_reduxjs_toolkit0.AsyncThunk<[{
|
|
368
368
|
payload: string;
|
|
369
369
|
type: "users/removedUser";
|
|
370
|
-
}, _$_reduxjs_toolkit0.PayloadAction<
|
|
370
|
+
}, _$_reduxjs_toolkit0.PayloadAction<{
|
|
371
|
+
payload: Record<string, User$1>;
|
|
372
|
+
type: "users/receivedUserList";
|
|
373
|
+
}, string, {
|
|
374
|
+
arg: void;
|
|
375
|
+
requestId: string;
|
|
376
|
+
requestStatus: "fulfilled";
|
|
377
|
+
}, never> | _$_reduxjs_toolkit0.PayloadAction<unknown, string, {
|
|
371
378
|
arg: void;
|
|
372
379
|
requestId: string;
|
|
373
380
|
requestStatus: "rejected";
|
|
@@ -377,14 +384,7 @@ declare const removeUser: _$_reduxjs_toolkit0.AsyncThunk<[{
|
|
|
377
384
|
rejectedWithValue: true;
|
|
378
385
|
} | ({
|
|
379
386
|
rejectedWithValue: false;
|
|
380
|
-
} & {})), _$_reduxjs_toolkit0.SerializedError
|
|
381
|
-
payload: Record<string, User$1>;
|
|
382
|
-
type: "users/receivedUserList";
|
|
383
|
-
}, string, {
|
|
384
|
-
arg: void;
|
|
385
|
-
requestId: string;
|
|
386
|
-
requestStatus: "fulfilled";
|
|
387
|
-
}, never>, {
|
|
387
|
+
} & {})), _$_reduxjs_toolkit0.SerializedError>, {
|
|
388
388
|
payload: string | SnackbarContent;
|
|
389
389
|
type: "app/setSnackbar";
|
|
390
390
|
}], string, {
|
|
@@ -435,7 +435,14 @@ declare const checkEmailExists: _$_reduxjs_toolkit0.AsyncThunk<boolean | undefin
|
|
|
435
435
|
declare const addUserToCurrentTenant: _$_reduxjs_toolkit0.AsyncThunk<[{
|
|
436
436
|
payload: string | SnackbarContent;
|
|
437
437
|
type: "app/setSnackbar";
|
|
438
|
-
}, _$_reduxjs_toolkit0.PayloadAction<
|
|
438
|
+
}, _$_reduxjs_toolkit0.PayloadAction<{
|
|
439
|
+
payload: Record<string, User$1>;
|
|
440
|
+
type: "users/receivedUserList";
|
|
441
|
+
}, string, {
|
|
442
|
+
arg: void;
|
|
443
|
+
requestId: string;
|
|
444
|
+
requestStatus: "fulfilled";
|
|
445
|
+
}, never> | _$_reduxjs_toolkit0.PayloadAction<unknown, string, {
|
|
439
446
|
arg: void;
|
|
440
447
|
requestId: string;
|
|
441
448
|
requestStatus: "rejected";
|
|
@@ -445,14 +452,7 @@ declare const addUserToCurrentTenant: _$_reduxjs_toolkit0.AsyncThunk<[{
|
|
|
445
452
|
rejectedWithValue: true;
|
|
446
453
|
} | ({
|
|
447
454
|
rejectedWithValue: false;
|
|
448
|
-
} & {})), _$_reduxjs_toolkit0.SerializedError>
|
|
449
|
-
payload: Record<string, User$1>;
|
|
450
|
-
type: "users/receivedUserList";
|
|
451
|
-
}, string, {
|
|
452
|
-
arg: void;
|
|
453
|
-
requestId: string;
|
|
454
|
-
requestStatus: "fulfilled";
|
|
455
|
-
}, never>], string, {
|
|
455
|
+
} & {})), _$_reduxjs_toolkit0.SerializedError>], string, {
|
|
456
456
|
dispatch: AppDispatch;
|
|
457
457
|
state: RootState;
|
|
458
458
|
extra?: unknown;
|
|
@@ -462,17 +462,7 @@ declare const addUserToCurrentTenant: _$_reduxjs_toolkit0.AsyncThunk<[{
|
|
|
462
462
|
fulfilledMeta?: unknown;
|
|
463
463
|
rejectedMeta?: unknown;
|
|
464
464
|
}>;
|
|
465
|
-
declare const enableUser2fa: _$_reduxjs_toolkit0.AsyncThunk<_$_reduxjs_toolkit0.PayloadAction<
|
|
466
|
-
arg: string;
|
|
467
|
-
requestId: string;
|
|
468
|
-
requestStatus: "rejected";
|
|
469
|
-
aborted: boolean;
|
|
470
|
-
condition: boolean;
|
|
471
|
-
} & ({
|
|
472
|
-
rejectedWithValue: true;
|
|
473
|
-
} | ({
|
|
474
|
-
rejectedWithValue: false;
|
|
475
|
-
} & {})), _$_reduxjs_toolkit0.SerializedError> | _$_reduxjs_toolkit0.PayloadAction<[{
|
|
465
|
+
declare const enableUser2fa: _$_reduxjs_toolkit0.AsyncThunk<_$_reduxjs_toolkit0.PayloadAction<[{
|
|
476
466
|
payload: User$1;
|
|
477
467
|
type: "users/receivedUser";
|
|
478
468
|
}, _$_reduxjs_toolkit0.PayloadAction<void, string, {
|
|
@@ -516,17 +506,7 @@ declare const enableUser2fa: _$_reduxjs_toolkit0.AsyncThunk<_$_reduxjs_toolkit0.
|
|
|
516
506
|
arg: string;
|
|
517
507
|
requestId: string;
|
|
518
508
|
requestStatus: "fulfilled";
|
|
519
|
-
}, never
|
|
520
|
-
dispatch: AppDispatch;
|
|
521
|
-
state: RootState;
|
|
522
|
-
extra?: unknown;
|
|
523
|
-
rejectValue?: unknown;
|
|
524
|
-
serializedErrorType?: unknown;
|
|
525
|
-
pendingMeta?: unknown;
|
|
526
|
-
fulfilledMeta?: unknown;
|
|
527
|
-
rejectedMeta?: unknown;
|
|
528
|
-
}>;
|
|
529
|
-
declare const disableUser2fa: _$_reduxjs_toolkit0.AsyncThunk<[_$_reduxjs_toolkit0.PayloadAction<unknown, string, {
|
|
509
|
+
}, never> | _$_reduxjs_toolkit0.PayloadAction<unknown, string, {
|
|
530
510
|
arg: string;
|
|
531
511
|
requestId: string;
|
|
532
512
|
requestStatus: "rejected";
|
|
@@ -536,7 +516,17 @@ declare const disableUser2fa: _$_reduxjs_toolkit0.AsyncThunk<[_$_reduxjs_toolkit
|
|
|
536
516
|
rejectedWithValue: true;
|
|
537
517
|
} | ({
|
|
538
518
|
rejectedWithValue: false;
|
|
539
|
-
} & {})), _$_reduxjs_toolkit0.SerializedError
|
|
519
|
+
} & {})), _$_reduxjs_toolkit0.SerializedError>, string, {
|
|
520
|
+
dispatch: AppDispatch;
|
|
521
|
+
state: RootState;
|
|
522
|
+
extra?: unknown;
|
|
523
|
+
rejectValue?: unknown;
|
|
524
|
+
serializedErrorType?: unknown;
|
|
525
|
+
pendingMeta?: unknown;
|
|
526
|
+
fulfilledMeta?: unknown;
|
|
527
|
+
rejectedMeta?: unknown;
|
|
528
|
+
}>;
|
|
529
|
+
declare const disableUser2fa: _$_reduxjs_toolkit0.AsyncThunk<[_$_reduxjs_toolkit0.PayloadAction<[{
|
|
540
530
|
payload: User$1;
|
|
541
531
|
type: "users/receivedUser";
|
|
542
532
|
}, _$_reduxjs_toolkit0.PayloadAction<void, string, {
|
|
@@ -580,7 +570,17 @@ declare const disableUser2fa: _$_reduxjs_toolkit0.AsyncThunk<[_$_reduxjs_toolkit
|
|
|
580
570
|
arg: string;
|
|
581
571
|
requestId: string;
|
|
582
572
|
requestStatus: "fulfilled";
|
|
583
|
-
}, never
|
|
573
|
+
}, never> | _$_reduxjs_toolkit0.PayloadAction<unknown, string, {
|
|
574
|
+
arg: string;
|
|
575
|
+
requestId: string;
|
|
576
|
+
requestStatus: "rejected";
|
|
577
|
+
aborted: boolean;
|
|
578
|
+
condition: boolean;
|
|
579
|
+
} & ({
|
|
580
|
+
rejectedWithValue: true;
|
|
581
|
+
} | ({
|
|
582
|
+
rejectedWithValue: false;
|
|
583
|
+
} & {})), _$_reduxjs_toolkit0.SerializedError>, {
|
|
584
584
|
payload: string | null;
|
|
585
585
|
type: "users/receivedQrCode";
|
|
586
586
|
}], string, {
|
|
@@ -36,6 +36,7 @@ declare const convertDeviceListStateToFilters: ({
|
|
|
36
36
|
filterTerms: FilterTerm[];
|
|
37
37
|
};
|
|
38
38
|
declare const filtersFilter: (item: DeviceFilter, index: number, array: DeviceFilter[]) => boolean;
|
|
39
|
+
declare const stripUndefined: <T extends Record<string, unknown>>(obj: T) => Partial<T>;
|
|
39
40
|
declare const listItemMapper: <T extends object>(byId: Record<string, T>, ids: string[], {
|
|
40
41
|
cutOffSize,
|
|
41
42
|
defaultObject
|
|
@@ -100,5 +101,5 @@ declare const convertToBackendSPLimits: (limits: Record<string, number | string>
|
|
|
100
101
|
value: number;
|
|
101
102
|
}>;
|
|
102
103
|
//#endregion
|
|
103
|
-
export { statCollector as C, progress as S, mapFiltersToTerms as _, convertToBackendSPLimits as a, mergePermissions as b, filtersFilter as c, getDeploymentState as d, groupDeploymentDevicesStats as f, mapDeviceAttributes as g, listItemMapper as h, convertDeviceListStateToFilters as i, generateDeploymentGroupDetails as l, isDarkMode as m, ErrorWithResponse as n, ensureVersionString as o, groupDeploymentStats as p, FilterTerm as r, extractErrorMessage as s, DeploymentStats as t, getComparisonCompatibleVersion as u, mapTermsToFilters as v, stringToBoolean as w, parseSubscriptionPreview as x, mapUserRolesToUiPermissions as y };
|
|
104
|
-
//# sourceMappingURL=utils-
|
|
104
|
+
export { statCollector as C, progress as S, stripUndefined as T, mapFiltersToTerms as _, convertToBackendSPLimits as a, mergePermissions as b, filtersFilter as c, getDeploymentState as d, groupDeploymentDevicesStats as f, mapDeviceAttributes as g, listItemMapper as h, convertDeviceListStateToFilters as i, generateDeploymentGroupDetails as l, isDarkMode as m, ErrorWithResponse as n, ensureVersionString as o, groupDeploymentStats as p, FilterTerm as r, extractErrorMessage as s, DeploymentStats as t, getComparisonCompatibleVersion as u, mapTermsToFilters as v, stringToBoolean as w, parseSubscriptionPreview as x, mapUserRolesToUiPermissions as y };
|
|
105
|
+
//# sourceMappingURL=utils-CO_CpGFP.d.ts.map
|
|
@@ -36,6 +36,7 @@ declare const convertDeviceListStateToFilters: ({
|
|
|
36
36
|
filterTerms: FilterTerm[];
|
|
37
37
|
};
|
|
38
38
|
declare const filtersFilter: (item: DeviceFilter, index: number, array: DeviceFilter[]) => boolean;
|
|
39
|
+
declare const stripUndefined: <T extends Record<string, unknown>>(obj: T) => Partial<T>;
|
|
39
40
|
declare const listItemMapper: <T extends object>(byId: Record<string, T>, ids: string[], {
|
|
40
41
|
cutOffSize,
|
|
41
42
|
defaultObject
|
|
@@ -100,5 +101,5 @@ declare const convertToBackendSPLimits: (limits: Record<string, number | string>
|
|
|
100
101
|
value: number;
|
|
101
102
|
}>;
|
|
102
103
|
//#endregion
|
|
103
|
-
export { statCollector as C, progress as S, mapFiltersToTerms as _, convertToBackendSPLimits as a, mergePermissions as b, filtersFilter as c, getDeploymentState as d, groupDeploymentDevicesStats as f, mapDeviceAttributes as g, listItemMapper as h, convertDeviceListStateToFilters as i, generateDeploymentGroupDetails as l, isDarkMode as m, ErrorWithResponse as n, ensureVersionString as o, groupDeploymentStats as p, FilterTerm as r, extractErrorMessage as s, DeploymentStats as t, getComparisonCompatibleVersion as u, mapTermsToFilters as v, stringToBoolean as w, parseSubscriptionPreview as x, mapUserRolesToUiPermissions as y };
|
|
104
|
-
//# sourceMappingURL=utils-
|
|
104
|
+
export { statCollector as C, progress as S, stripUndefined as T, mapFiltersToTerms as _, convertToBackendSPLimits as a, mergePermissions as b, filtersFilter as c, getDeploymentState as d, groupDeploymentDevicesStats as f, mapDeviceAttributes as g, listItemMapper as h, convertDeviceListStateToFilters as i, generateDeploymentGroupDetails as l, isDarkMode as m, ErrorWithResponse as n, ensureVersionString as o, groupDeploymentStats as p, FilterTerm as r, extractErrorMessage as s, DeploymentStats as t, getComparisonCompatibleVersion as u, mapTermsToFilters as v, stringToBoolean as w, parseSubscriptionPreview as x, mapUserRolesToUiPermissions as y };
|
|
105
|
+
//# sourceMappingURL=utils-CpPfqW0Q.d.cts.map
|
package/dist/utils.cjs
CHANGED
|
@@ -75,6 +75,7 @@ const filterCompare = (filter, item) => Object.keys(require_constants.emptyFilte
|
|
|
75
75
|
const filtersFilter = (item, index, array) => {
|
|
76
76
|
return array.findIndex((filter) => filterCompare(filter, item)) === index;
|
|
77
77
|
};
|
|
78
|
+
const stripUndefined = (obj) => Object.fromEntries(Object.entries(obj).filter(([, v]) => v !== void 0));
|
|
78
79
|
const listItemMapper = (byId, ids, { cutOffSize = 50, defaultObject = {} }) => ids.slice(0, cutOffSize).reduce((accu, id) => {
|
|
79
80
|
if (id && byId[id]) accu.push({
|
|
80
81
|
...defaultObject,
|
|
@@ -231,5 +232,6 @@ exports.parseSubscriptionPreview = parseSubscriptionPreview;
|
|
|
231
232
|
exports.progress = progress;
|
|
232
233
|
exports.statCollector = statCollector;
|
|
233
234
|
exports.stringToBoolean = stringToBoolean;
|
|
235
|
+
exports.stripUndefined = stripUndefined;
|
|
234
236
|
|
|
235
237
|
//# sourceMappingURL=utils.cjs.map
|
package/dist/utils.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.cjs","names":["DEVICE_FILTERING_OPTIONS","yes","DEVICE_ISSUE_OPTIONS","ATTRIBUTE_SCOPES","emptyFilter","emptyUiPermissions","duplicateFilter","softwareIndicator","deploymentStatesToSubstates","defaultStats","deploymentStatesToSubstatesWithSkipped","DEPLOYMENT_STATES","deploymentDisplayStates","DARK_MODE"],"sources":["../src/utils.ts"],"sourcesContent":["// Copyright 2024 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport type { AttributeFilterPredicate, AttributeV2, DeviceWithImage, FilterV2, InvoiceLineItem, Scope } from '@northern.tech/types/MenderTypes';\nimport { duplicateFilter, yes } from '@northern.tech/utils/helpers';\nimport type { AxiosError } from 'axios';\n\nimport type { DeviceIssueOptionKey, FilterOperator, Role } from './constants';\nimport {\n ATTRIBUTE_SCOPES,\n DARK_MODE,\n DEPLOYMENT_STATES,\n DEVICE_FILTERING_OPTIONS,\n DEVICE_ISSUE_OPTIONS,\n DEVICE_LIST_MAXIMUM_LENGTH,\n defaultStats,\n deploymentDisplayStates,\n deploymentStatesToSubstates,\n deploymentStatesToSubstatesWithSkipped,\n emptyFilter,\n emptyUiPermissions,\n softwareIndicator\n} from './constants';\nimport type { Deployment } from './deploymentsSlice';\nimport type { DeviceFilter, DeviceGroup, InventoryAttributes } from './devicesSlice';\nimport type { PricePreview } from './organizationSlice/types';\n\ntype FilterProcessorValue = string | string[] | number | boolean; // this aligns with a API compatible `FilterPredicate.value`\ntype FilterProcessor = (val: string) => FilterProcessorValue;\n\n// for some reason these functions can not be stored in the deviceConstants...\nconst filterProcessors: Record<string, FilterProcessor> = {\n [DEVICE_FILTERING_OPTIONS.$gt.key]: (val: string) => Number(val) || val,\n [DEVICE_FILTERING_OPTIONS.$gte.key]: (val: string) => Number(val) || val,\n [DEVICE_FILTERING_OPTIONS.$lt.key]: (val: string) => Number(val) || val,\n [DEVICE_FILTERING_OPTIONS.$lte.key]: (val: string) => Number(val) || val,\n [DEVICE_FILTERING_OPTIONS.$ltne.key]: (val: string) => Number(val) || val,\n [DEVICE_FILTERING_OPTIONS.$in.key]: (val: string) => ('' + val).split(',').map(i => i.trim()),\n [DEVICE_FILTERING_OPTIONS.$nin.key]: (val: string) => ('' + val).split(',').map(i => i.trim()),\n [DEVICE_FILTERING_OPTIONS.$exists.key]: yes,\n [DEVICE_FILTERING_OPTIONS.$nexists.key]: () => false\n};\n\ntype FilterAlias = { alias: FilterOperator; value: boolean };\nconst filterAliases: Record<string, FilterAlias> = {\n $nexists: { alias: DEVICE_FILTERING_OPTIONS.$exists.key, value: false }\n};\n\nexport type FilterTerm = {\n attribute: string;\n scope: Scope;\n type: FilterOperator;\n value: FilterProcessorValue;\n};\n\nexport const mapFiltersToTerms = (filters: DeviceFilter[]): FilterTerm[] =>\n filters.map(filter => ({\n scope: filter.scope,\n attribute: filter.key,\n type: filterAliases[filter.operator]?.alias || filter.operator,\n value: Object.hasOwn(filterProcessors, filter.operator) ? filterProcessors[filter.operator](filter.value as string) : filter.value\n }));\nexport const mapTermsToFilters = (terms: FilterTerm[]): DeviceFilter[] =>\n terms.map(term => {\n const aliasedFilter = Object.entries(filterAliases).find(\n aliasDefinition => aliasDefinition[1].alias === term.type && aliasDefinition[1].value === term.value\n );\n const operator = (aliasedFilter ? aliasedFilter[0] : term.type) as FilterOperator;\n return { scope: term.scope as Scope, key: term.attribute, operator, value: term.value } as DeviceFilter;\n });\n\ntype IssueFilterState = { offlineThreshold?: string };\n\ntype IssueFilterRule = {\n key: string;\n operator: FilterOperator;\n scope: Scope;\n value: string | string[] | ((state: IssueFilterState) => string);\n};\n\nconst convertIssueOptionsToFilters = (issuesSelection: DeviceIssueOptionKey[], filtersState: IssueFilterState = {}): DeviceFilter[] =>\n issuesSelection.map(item => {\n const filterRule = DEVICE_ISSUE_OPTIONS[item].filterRule as IssueFilterRule;\n const value = typeof filterRule.value === 'function' ? filterRule.value(filtersState) : filterRule.value;\n return { key: filterRule.key, operator: filterRule.operator, scope: filterRule.scope, value } as DeviceFilter;\n });\n\nexport const convertDeviceListStateToFilters = ({\n filters = [],\n group,\n groups = { byId: {} },\n offlineThreshold,\n selectedIssues = [],\n status\n}: {\n filters?: DeviceFilter[];\n group?: string;\n groups?: { byId: Record<string, DeviceGroup> };\n offlineThreshold?: string;\n selectedIssues?: DeviceIssueOptionKey[];\n status?: string;\n}) => {\n let applicableFilters = [...filters];\n if (typeof group === 'string' && !(groups.byId[group]?.filters || applicableFilters).length) {\n applicableFilters.push({ key: 'group', value: group, operator: DEVICE_FILTERING_OPTIONS.$eq.key, scope: 'system' });\n }\n const nonMonitorFilters = applicableFilters.filter(\n filter =>\n !Object.values(DEVICE_ISSUE_OPTIONS).some(({ filterRule }) => {\n const { key = '', scope = '' } = filterRule as IssueFilterRule;\n return filter.scope !== 'inventory' && scope === filter.scope && key === filter.key;\n })\n );\n const deviceIssueFilters = convertIssueOptionsToFilters(selectedIssues, { offlineThreshold });\n applicableFilters = [...nonMonitorFilters, ...deviceIssueFilters];\n const effectiveFilters = status\n ? [...applicableFilters, { key: 'status', value: status, operator: DEVICE_FILTERING_OPTIONS.$eq.key, scope: ATTRIBUTE_SCOPES.identity }]\n : applicableFilters;\n return { applicableFilters: nonMonitorFilters, filterTerms: mapFiltersToTerms(effectiveFilters) };\n};\n\nconst filterCompare = (filter: DeviceFilter, item: DeviceFilter): boolean =>\n Object.keys(emptyFilter).every(key => item[key as keyof DeviceFilter]?.toString() === filter[key as keyof DeviceFilter]?.toString());\n\nexport const filtersFilter = (item: DeviceFilter, index: number, array: DeviceFilter[]): boolean => {\n const firstIndex = array.findIndex(filter => filterCompare(filter, item));\n return firstIndex === index;\n};\n\nexport const listItemMapper = <T extends object>(\n byId: Record<string, T>,\n ids: string[],\n { cutOffSize = DEVICE_LIST_MAXIMUM_LENGTH, defaultObject = {} as Partial<T> }: { cutOffSize?: number; defaultObject?: Partial<T> }\n): T[] =>\n ids.slice(0, cutOffSize).reduce<T[]>((accu, id) => {\n if (id && byId[id]) {\n accu.push({ ...defaultObject, ...byId[id] });\n }\n return accu;\n }, []);\n\ntype UiPermissions = typeof emptyUiPermissions;\ntype PermissionValue = string[] | Record<string, string[]>; // this would ideally be `PermissionValue = string[] | Record<string, PermissionValue>`\n\nexport const mergePermissions = (existingPermissions: UiPermissions = { ...emptyUiPermissions }, addedPermissions: UiPermissions): UiPermissions =>\n Object.entries(existingPermissions).reduce<UiPermissions>(\n (accu, [key, value]) => {\n let values;\n if (!accu[key]) {\n accu[key] = value;\n return accu;\n }\n if (Array.isArray(value)) {\n values = [...value, ...(accu[key] as string[])].filter(duplicateFilter);\n } else {\n values = mergePermissions(accu[key], { ...value } as unknown as UiPermissions) as unknown as PermissionValue;\n }\n accu[key] = values;\n return accu;\n },\n { ...addedPermissions }\n );\n\nexport const mapUserRolesToUiPermissions = (userRoles: string[], roles: Record<string, Role>): UiPermissions =>\n userRoles.reduce(\n (accu, roleId) => {\n if (!(roleId && roles[roleId])) {\n return accu;\n }\n return mergePermissions(accu, roles[roleId].uiPermissions);\n },\n { ...emptyUiPermissions }\n );\n\nexport const progress = ({ loaded, total }: { loaded: number; total?: number }): number => {\n if (!total) return 0;\n let uploadProgress = (loaded / total) * 100;\n return (uploadProgress = uploadProgress < 50 ? Math.ceil(uploadProgress) : Math.round(uploadProgress));\n};\n\nexport type ErrorWithResponse = AxiosError<{ error?: { message?: string } | string }> & { error?: string };\n\nexport const extractErrorMessage = (err: ErrorWithResponse, fallback = ''): string =>\n (typeof err.response?.data?.error === 'object' ? err.response?.data?.error?.message : err.response?.data?.error) || err.error || err.message || fallback;\n\nexport const ensureVersionString = (software: string, fallback: string): string =>\n software.length && software !== 'artifact_name' ? (software.endsWith(softwareIndicator) ? software : `${software}${softwareIndicator}`) : fallback;\n\nexport const getComparisonCompatibleVersion = (version: string): string => (isNaN(parseInt(version.charAt(0))) && version !== 'next' ? 'master' : version);\n\nexport const stringToBoolean = (content: string | number | undefined): boolean => {\n if (!content) {\n return false;\n }\n const string = content + '';\n switch (string.trim().toLowerCase()) {\n case 'true':\n case 'yes':\n case '1':\n return true;\n case 'false':\n case 'no':\n case '0':\n case null:\n return false;\n default:\n return Boolean(string);\n }\n};\n\nexport type DeploymentStats = {\n failures: number;\n inprogress: number;\n paused: number;\n pending: number;\n skipped?: number;\n successes: number;\n};\n\nexport const groupDeploymentDevicesStats = (deployment: Pick<Deployment, 'devices'>): DeploymentStats => {\n const deviceStatCollector = (deploymentStates: string[], devices: Record<string, DeviceWithImage>): number =>\n Object.values(devices).reduce<number>((accu, device) => (deploymentStates.includes(device.status ?? '') ? accu + 1 : accu), 0);\n\n const inprogress = deviceStatCollector(deploymentStatesToSubstates.inprogress, deployment.devices);\n const pending = deviceStatCollector(deploymentStatesToSubstates.pending, deployment.devices);\n const successes = deviceStatCollector(deploymentStatesToSubstates.successes, deployment.devices);\n const failures = deviceStatCollector(deploymentStatesToSubstates.failures, deployment.devices);\n const paused = deviceStatCollector(deploymentStatesToSubstates.paused, deployment.devices);\n return { inprogress, paused, pending, successes, failures };\n};\n\nexport const statCollector = (items: string[], statistics: Record<string, number>): number =>\n items.reduce((accu, property) => accu + Number(statistics[property] || 0), 0);\n\nexport const groupDeploymentStats = (deployment: Partial<Deployment>, withSkipped?: boolean): DeploymentStats => {\n const { statistics = {} } = deployment;\n const { status = {} } = statistics;\n const stats = { ...defaultStats, ...status };\n let result: DeploymentStats = { inprogress: 0, paused: 0, pending: 0, successes: 0, failures: 0 };\n let groupStates = deploymentStatesToSubstates;\n if (withSkipped) {\n groupStates = deploymentStatesToSubstatesWithSkipped;\n result.skipped = statCollector(groupStates.skipped!, stats);\n }\n result = {\n ...result,\n // don't include 'pending' as inprogress, as all remaining devices will be pending - we don't discriminate based on phase membership\n inprogress: statCollector(groupStates.inprogress, stats),\n pending: statCollector(groupStates.pending, stats),\n successes: statCollector(groupStates.successes, stats),\n failures: statCollector(groupStates.failures, stats),\n paused: statCollector(groupStates.paused, stats)\n };\n return result;\n};\n\nexport const getDeploymentState = (deployment: Partial<Deployment>): string => {\n const { status: deploymentStatus = DEPLOYMENT_STATES.pending } = deployment;\n const { inprogress: currentProgressCount, paused } = groupDeploymentStats(deployment);\n\n let status = deploymentDisplayStates[deploymentStatus];\n if (deploymentStatus === DEPLOYMENT_STATES.pending && currentProgressCount === 0) {\n status = 'queued';\n } else if (paused > 0) {\n status = deploymentDisplayStates.paused;\n }\n return status;\n};\n\ntype DeploymentFilter =\n | FilterV2\n | {\n terms?: Array<AttributeFilterPredicate | { key: string }>;\n };\n\nexport const generateDeploymentGroupDetails = (filter: DeploymentFilter | undefined, groupName: string): string =>\n filter && filter.terms?.length\n ? `${groupName} (${filter.terms\n .map(\n filter =>\n `${filter.attribute || filter.key} ${DEVICE_FILTERING_OPTIONS[filter.type || filter.operator || DEVICE_FILTERING_OPTIONS.$eq.key].shortform} ${filter.value}`\n )\n .join(', ')})`\n : groupName;\n\ntype DeviceAttributeMap = {\n identity: Record<string, string>;\n inventory: InventoryAttributes;\n monitor: Record<string, string>;\n system: Record<string, string>;\n tags: Record<string, string>;\n};\n\nexport const mapDeviceAttributes = (attributes: AttributeV2[] = []): DeviceAttributeMap =>\n attributes.reduce<DeviceAttributeMap>(\n (accu, attribute) => {\n if (!(attribute.value && attribute.name) && attribute.scope === ATTRIBUTE_SCOPES.inventory) {\n return accu;\n }\n const scope = (attribute.scope || ATTRIBUTE_SCOPES.inventory) as keyof DeviceAttributeMap;\n (accu[scope] as Record<string, unknown>) = {\n ...accu[scope],\n [attribute.name]: attribute.value\n };\n if (attribute.name === 'device_type' && attribute.scope === ATTRIBUTE_SCOPES.inventory) {\n accu.inventory.device_type = ([] as string[]).concat(attribute.value as string | string[]);\n }\n return accu;\n },\n { inventory: { device_type: [] as string[], artifact_name: '' }, identity: {}, monitor: {}, system: {}, tags: {} }\n );\n\nexport const isDarkMode = (mode: string): boolean => mode === DARK_MODE;\n\ntype Line = InvoiceLineItem & { product: 'mender_standard' | 'mender_micro' };\nexport const parseSubscriptionPreview = (lines: Line[]): PricePreview['items'] =>\n lines.reduce((acc, { addon, amount, product }) => {\n const tier = product.replace('mender_', '');\n if (!acc[tier]) {\n acc[tier] = {\n amount: 0,\n addons: {}\n };\n }\n if (!addon) {\n acc[tier].amount += amount;\n } else {\n acc[tier].addons[addon] = (acc[tier].addons[addon] ?? 0) + amount;\n }\n return acc;\n }, {});\n\nexport const convertToBackendSPLimits = (\n limits: Record<string, number | string>,\n spLimits: Record<string, object>\n): Record<string, { Name: string; value: number }> =>\n Object.fromEntries(\n Object.entries(limits)\n .filter(([key]) => !!spLimits[key])\n .map(([key, limit]) => {\n const backendId = (spLimits[key] as { backendId: string }).backendId;\n return [backendId, { Name: backendId, value: Number(limit) || 0 }];\n })\n );\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.cjs","names":["DEVICE_FILTERING_OPTIONS","yes","DEVICE_ISSUE_OPTIONS","ATTRIBUTE_SCOPES","emptyFilter","emptyUiPermissions","duplicateFilter","softwareIndicator","deploymentStatesToSubstates","defaultStats","deploymentStatesToSubstatesWithSkipped","DEPLOYMENT_STATES","deploymentDisplayStates","DARK_MODE"],"sources":["../src/utils.ts"],"sourcesContent":["// Copyright 2024 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport type { AttributeFilterPredicate, AttributeV2, DeviceWithImage, FilterV2, InvoiceLineItem, Scope } from '@northern.tech/types/MenderTypes';\nimport { duplicateFilter, yes } from '@northern.tech/utils/helpers';\nimport type { AxiosError } from 'axios';\n\nimport type { DeviceIssueOptionKey, FilterOperator, Role } from './constants';\nimport {\n ATTRIBUTE_SCOPES,\n DARK_MODE,\n DEPLOYMENT_STATES,\n DEVICE_FILTERING_OPTIONS,\n DEVICE_ISSUE_OPTIONS,\n DEVICE_LIST_MAXIMUM_LENGTH,\n defaultStats,\n deploymentDisplayStates,\n deploymentStatesToSubstates,\n deploymentStatesToSubstatesWithSkipped,\n emptyFilter,\n emptyUiPermissions,\n softwareIndicator\n} from './constants';\nimport type { Deployment } from './deploymentsSlice';\nimport type { DeviceFilter, DeviceGroup, InventoryAttributes } from './devicesSlice';\nimport type { PricePreview } from './organizationSlice/types';\n\ntype FilterProcessorValue = string | string[] | number | boolean; // this aligns with a API compatible `FilterPredicate.value`\ntype FilterProcessor = (val: string) => FilterProcessorValue;\n\n// for some reason these functions can not be stored in the deviceConstants...\nconst filterProcessors: Record<string, FilterProcessor> = {\n [DEVICE_FILTERING_OPTIONS.$gt.key]: (val: string) => Number(val) || val,\n [DEVICE_FILTERING_OPTIONS.$gte.key]: (val: string) => Number(val) || val,\n [DEVICE_FILTERING_OPTIONS.$lt.key]: (val: string) => Number(val) || val,\n [DEVICE_FILTERING_OPTIONS.$lte.key]: (val: string) => Number(val) || val,\n [DEVICE_FILTERING_OPTIONS.$ltne.key]: (val: string) => Number(val) || val,\n [DEVICE_FILTERING_OPTIONS.$in.key]: (val: string) => ('' + val).split(',').map(i => i.trim()),\n [DEVICE_FILTERING_OPTIONS.$nin.key]: (val: string) => ('' + val).split(',').map(i => i.trim()),\n [DEVICE_FILTERING_OPTIONS.$exists.key]: yes,\n [DEVICE_FILTERING_OPTIONS.$nexists.key]: () => false\n};\n\ntype FilterAlias = { alias: FilterOperator; value: boolean };\nconst filterAliases: Record<string, FilterAlias> = {\n $nexists: { alias: DEVICE_FILTERING_OPTIONS.$exists.key, value: false }\n};\n\nexport type FilterTerm = {\n attribute: string;\n scope: Scope;\n type: FilterOperator;\n value: FilterProcessorValue;\n};\n\nexport const mapFiltersToTerms = (filters: DeviceFilter[]): FilterTerm[] =>\n filters.map(filter => ({\n scope: filter.scope,\n attribute: filter.key,\n type: filterAliases[filter.operator]?.alias || filter.operator,\n value: Object.hasOwn(filterProcessors, filter.operator) ? filterProcessors[filter.operator](filter.value as string) : filter.value\n }));\nexport const mapTermsToFilters = (terms: FilterTerm[]): DeviceFilter[] =>\n terms.map(term => {\n const aliasedFilter = Object.entries(filterAliases).find(\n aliasDefinition => aliasDefinition[1].alias === term.type && aliasDefinition[1].value === term.value\n );\n const operator = (aliasedFilter ? aliasedFilter[0] : term.type) as FilterOperator;\n return { scope: term.scope as Scope, key: term.attribute, operator, value: term.value } as DeviceFilter;\n });\n\ntype IssueFilterState = { offlineThreshold?: string };\n\ntype IssueFilterRule = {\n key: string;\n operator: FilterOperator;\n scope: Scope;\n value: string | string[] | ((state: IssueFilterState) => string);\n};\n\nconst convertIssueOptionsToFilters = (issuesSelection: DeviceIssueOptionKey[], filtersState: IssueFilterState = {}): DeviceFilter[] =>\n issuesSelection.map(item => {\n const filterRule = DEVICE_ISSUE_OPTIONS[item].filterRule as IssueFilterRule;\n const value = typeof filterRule.value === 'function' ? filterRule.value(filtersState) : filterRule.value;\n return { key: filterRule.key, operator: filterRule.operator, scope: filterRule.scope, value } as DeviceFilter;\n });\n\nexport const convertDeviceListStateToFilters = ({\n filters = [],\n group,\n groups = { byId: {} },\n offlineThreshold,\n selectedIssues = [],\n status\n}: {\n filters?: DeviceFilter[];\n group?: string;\n groups?: { byId: Record<string, DeviceGroup> };\n offlineThreshold?: string;\n selectedIssues?: DeviceIssueOptionKey[];\n status?: string;\n}) => {\n let applicableFilters = [...filters];\n if (typeof group === 'string' && !(groups.byId[group]?.filters || applicableFilters).length) {\n applicableFilters.push({ key: 'group', value: group, operator: DEVICE_FILTERING_OPTIONS.$eq.key, scope: 'system' });\n }\n const nonMonitorFilters = applicableFilters.filter(\n filter =>\n !Object.values(DEVICE_ISSUE_OPTIONS).some(({ filterRule }) => {\n const { key = '', scope = '' } = filterRule as IssueFilterRule;\n return filter.scope !== 'inventory' && scope === filter.scope && key === filter.key;\n })\n );\n const deviceIssueFilters = convertIssueOptionsToFilters(selectedIssues, { offlineThreshold });\n applicableFilters = [...nonMonitorFilters, ...deviceIssueFilters];\n const effectiveFilters = status\n ? [...applicableFilters, { key: 'status', value: status, operator: DEVICE_FILTERING_OPTIONS.$eq.key, scope: ATTRIBUTE_SCOPES.identity }]\n : applicableFilters;\n return { applicableFilters: nonMonitorFilters, filterTerms: mapFiltersToTerms(effectiveFilters) };\n};\n\nconst filterCompare = (filter: DeviceFilter, item: DeviceFilter): boolean =>\n Object.keys(emptyFilter).every(key => item[key as keyof DeviceFilter]?.toString() === filter[key as keyof DeviceFilter]?.toString());\n\nexport const filtersFilter = (item: DeviceFilter, index: number, array: DeviceFilter[]): boolean => {\n const firstIndex = array.findIndex(filter => filterCompare(filter, item));\n return firstIndex === index;\n};\n\nexport const stripUndefined = <T extends Record<string, unknown>>(obj: T): Partial<T> =>\n Object.fromEntries(Object.entries(obj).filter(([, v]) => v !== undefined)) as Partial<T>;\n\nexport const listItemMapper = <T extends object>(\n byId: Record<string, T>,\n ids: string[],\n { cutOffSize = DEVICE_LIST_MAXIMUM_LENGTH, defaultObject = {} as Partial<T> }: { cutOffSize?: number; defaultObject?: Partial<T> }\n): T[] =>\n ids.slice(0, cutOffSize).reduce<T[]>((accu, id) => {\n if (id && byId[id]) {\n accu.push({ ...defaultObject, ...byId[id] });\n }\n return accu;\n }, []);\n\ntype UiPermissions = typeof emptyUiPermissions;\ntype PermissionValue = string[] | Record<string, string[]>; // this would ideally be `PermissionValue = string[] | Record<string, PermissionValue>`\n\nexport const mergePermissions = (existingPermissions: UiPermissions = { ...emptyUiPermissions }, addedPermissions: UiPermissions): UiPermissions =>\n Object.entries(existingPermissions).reduce<UiPermissions>(\n (accu, [key, value]) => {\n let values;\n if (!accu[key]) {\n accu[key] = value;\n return accu;\n }\n if (Array.isArray(value)) {\n values = [...value, ...(accu[key] as string[])].filter(duplicateFilter);\n } else {\n values = mergePermissions(accu[key], { ...value } as unknown as UiPermissions) as unknown as PermissionValue;\n }\n accu[key] = values;\n return accu;\n },\n { ...addedPermissions }\n );\n\nexport const mapUserRolesToUiPermissions = (userRoles: string[], roles: Record<string, Role>): UiPermissions =>\n userRoles.reduce(\n (accu, roleId) => {\n if (!(roleId && roles[roleId])) {\n return accu;\n }\n return mergePermissions(accu, roles[roleId].uiPermissions);\n },\n { ...emptyUiPermissions }\n );\n\nexport const progress = ({ loaded, total }: { loaded: number; total?: number }): number => {\n if (!total) return 0;\n let uploadProgress = (loaded / total) * 100;\n return (uploadProgress = uploadProgress < 50 ? Math.ceil(uploadProgress) : Math.round(uploadProgress));\n};\n\nexport type ErrorWithResponse = AxiosError<{ error?: { message?: string } | string }> & { error?: string };\n\nexport const extractErrorMessage = (err: ErrorWithResponse, fallback = ''): string =>\n (typeof err.response?.data?.error === 'object' ? err.response?.data?.error?.message : err.response?.data?.error) || err.error || err.message || fallback;\n\nexport const ensureVersionString = (software: string, fallback: string): string =>\n software.length && software !== 'artifact_name' ? (software.endsWith(softwareIndicator) ? software : `${software}${softwareIndicator}`) : fallback;\n\nexport const getComparisonCompatibleVersion = (version: string): string => (isNaN(parseInt(version.charAt(0))) && version !== 'next' ? 'master' : version);\n\nexport const stringToBoolean = (content: string | number | undefined): boolean => {\n if (!content) {\n return false;\n }\n const string = content + '';\n switch (string.trim().toLowerCase()) {\n case 'true':\n case 'yes':\n case '1':\n return true;\n case 'false':\n case 'no':\n case '0':\n case null:\n return false;\n default:\n return Boolean(string);\n }\n};\n\nexport type DeploymentStats = {\n failures: number;\n inprogress: number;\n paused: number;\n pending: number;\n skipped?: number;\n successes: number;\n};\n\nexport const groupDeploymentDevicesStats = (deployment: Pick<Deployment, 'devices'>): DeploymentStats => {\n const deviceStatCollector = (deploymentStates: string[], devices: Record<string, DeviceWithImage>): number =>\n Object.values(devices).reduce<number>((accu, device) => (deploymentStates.includes(device.status ?? '') ? accu + 1 : accu), 0);\n\n const inprogress = deviceStatCollector(deploymentStatesToSubstates.inprogress, deployment.devices);\n const pending = deviceStatCollector(deploymentStatesToSubstates.pending, deployment.devices);\n const successes = deviceStatCollector(deploymentStatesToSubstates.successes, deployment.devices);\n const failures = deviceStatCollector(deploymentStatesToSubstates.failures, deployment.devices);\n const paused = deviceStatCollector(deploymentStatesToSubstates.paused, deployment.devices);\n return { inprogress, paused, pending, successes, failures };\n};\n\nexport const statCollector = (items: string[], statistics: Record<string, number>): number =>\n items.reduce((accu, property) => accu + Number(statistics[property] || 0), 0);\n\nexport const groupDeploymentStats = (deployment: Partial<Deployment>, withSkipped?: boolean): DeploymentStats => {\n const { statistics = {} } = deployment;\n const { status = {} } = statistics;\n const stats = { ...defaultStats, ...status };\n let result: DeploymentStats = { inprogress: 0, paused: 0, pending: 0, successes: 0, failures: 0 };\n let groupStates = deploymentStatesToSubstates;\n if (withSkipped) {\n groupStates = deploymentStatesToSubstatesWithSkipped;\n result.skipped = statCollector(groupStates.skipped!, stats);\n }\n result = {\n ...result,\n // don't include 'pending' as inprogress, as all remaining devices will be pending - we don't discriminate based on phase membership\n inprogress: statCollector(groupStates.inprogress, stats),\n pending: statCollector(groupStates.pending, stats),\n successes: statCollector(groupStates.successes, stats),\n failures: statCollector(groupStates.failures, stats),\n paused: statCollector(groupStates.paused, stats)\n };\n return result;\n};\n\nexport const getDeploymentState = (deployment: Partial<Deployment>): string => {\n const { status: deploymentStatus = DEPLOYMENT_STATES.pending } = deployment;\n const { inprogress: currentProgressCount, paused } = groupDeploymentStats(deployment);\n\n let status = deploymentDisplayStates[deploymentStatus];\n if (deploymentStatus === DEPLOYMENT_STATES.pending && currentProgressCount === 0) {\n status = 'queued';\n } else if (paused > 0) {\n status = deploymentDisplayStates.paused;\n }\n return status;\n};\n\ntype DeploymentFilter =\n | FilterV2\n | {\n terms?: Array<AttributeFilterPredicate | { key: string }>;\n };\n\nexport const generateDeploymentGroupDetails = (filter: DeploymentFilter | undefined, groupName: string): string =>\n filter && filter.terms?.length\n ? `${groupName} (${filter.terms\n .map(\n filter =>\n `${filter.attribute || filter.key} ${DEVICE_FILTERING_OPTIONS[filter.type || filter.operator || DEVICE_FILTERING_OPTIONS.$eq.key].shortform} ${filter.value}`\n )\n .join(', ')})`\n : groupName;\n\ntype DeviceAttributeMap = {\n identity: Record<string, string>;\n inventory: InventoryAttributes;\n monitor: Record<string, string>;\n system: Record<string, string>;\n tags: Record<string, string>;\n};\n\nexport const mapDeviceAttributes = (attributes: AttributeV2[] = []): DeviceAttributeMap =>\n attributes.reduce<DeviceAttributeMap>(\n (accu, attribute) => {\n if (!(attribute.value && attribute.name) && attribute.scope === ATTRIBUTE_SCOPES.inventory) {\n return accu;\n }\n const scope = (attribute.scope || ATTRIBUTE_SCOPES.inventory) as keyof DeviceAttributeMap;\n (accu[scope] as Record<string, unknown>) = {\n ...accu[scope],\n [attribute.name]: attribute.value\n };\n if (attribute.name === 'device_type' && attribute.scope === ATTRIBUTE_SCOPES.inventory) {\n accu.inventory.device_type = ([] as string[]).concat(attribute.value as string | string[]);\n }\n return accu;\n },\n { inventory: { device_type: [] as string[], artifact_name: '' }, identity: {}, monitor: {}, system: {}, tags: {} }\n );\n\nexport const isDarkMode = (mode: string): boolean => mode === DARK_MODE;\n\ntype Line = InvoiceLineItem & { product: 'mender_standard' | 'mender_micro' };\nexport const parseSubscriptionPreview = (lines: Line[]): PricePreview['items'] =>\n lines.reduce((acc, { addon, amount, product }) => {\n const tier = product.replace('mender_', '');\n if (!acc[tier]) {\n acc[tier] = {\n amount: 0,\n addons: {}\n };\n }\n if (!addon) {\n acc[tier].amount += amount;\n } else {\n acc[tier].addons[addon] = (acc[tier].addons[addon] ?? 0) + amount;\n }\n return acc;\n }, {});\n\nexport const convertToBackendSPLimits = (\n limits: Record<string, number | string>,\n spLimits: Record<string, object>\n): Record<string, { Name: string; value: number }> =>\n Object.fromEntries(\n Object.entries(limits)\n .filter(([key]) => !!spLimits[key])\n .map(([key, limit]) => {\n const backendId = (spLimits[key] as { backendId: string }).backendId;\n return [backendId, { Name: backendId, value: Number(limit) || 0 }];\n })\n );\n"],"mappings":"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"}
|
package/dist/utils.d.cts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { C as statCollector, S as progress, _ as mapFiltersToTerms, a as convertToBackendSPLimits, b as mergePermissions, c as filtersFilter, d as getDeploymentState, f as groupDeploymentDevicesStats, g as mapDeviceAttributes, h as listItemMapper, i as convertDeviceListStateToFilters, l as generateDeploymentGroupDetails, m as isDarkMode, n as ErrorWithResponse, o as ensureVersionString, p as groupDeploymentStats, r as FilterTerm, s as extractErrorMessage, t as DeploymentStats, u as getComparisonCompatibleVersion, v as mapTermsToFilters, w as stringToBoolean, x as parseSubscriptionPreview, y as mapUserRolesToUiPermissions } from "./utils-
|
|
2
|
-
export { DeploymentStats, ErrorWithResponse, FilterTerm, convertDeviceListStateToFilters, convertToBackendSPLimits, ensureVersionString, extractErrorMessage, filtersFilter, generateDeploymentGroupDetails, getComparisonCompatibleVersion, getDeploymentState, groupDeploymentDevicesStats, groupDeploymentStats, isDarkMode, listItemMapper, mapDeviceAttributes, mapFiltersToTerms, mapTermsToFilters, mapUserRolesToUiPermissions, mergePermissions, parseSubscriptionPreview, progress, statCollector, stringToBoolean };
|
|
1
|
+
import { C as statCollector, S as progress, T as stripUndefined, _ as mapFiltersToTerms, a as convertToBackendSPLimits, b as mergePermissions, c as filtersFilter, d as getDeploymentState, f as groupDeploymentDevicesStats, g as mapDeviceAttributes, h as listItemMapper, i as convertDeviceListStateToFilters, l as generateDeploymentGroupDetails, m as isDarkMode, n as ErrorWithResponse, o as ensureVersionString, p as groupDeploymentStats, r as FilterTerm, s as extractErrorMessage, t as DeploymentStats, u as getComparisonCompatibleVersion, v as mapTermsToFilters, w as stringToBoolean, x as parseSubscriptionPreview, y as mapUserRolesToUiPermissions } from "./utils-CpPfqW0Q.cjs";
|
|
2
|
+
export { DeploymentStats, ErrorWithResponse, FilterTerm, convertDeviceListStateToFilters, convertToBackendSPLimits, ensureVersionString, extractErrorMessage, filtersFilter, generateDeploymentGroupDetails, getComparisonCompatibleVersion, getDeploymentState, groupDeploymentDevicesStats, groupDeploymentStats, isDarkMode, listItemMapper, mapDeviceAttributes, mapFiltersToTerms, mapTermsToFilters, mapUserRolesToUiPermissions, mergePermissions, parseSubscriptionPreview, progress, statCollector, stringToBoolean, stripUndefined };
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { C as statCollector, S as progress, _ as mapFiltersToTerms, a as convertToBackendSPLimits, b as mergePermissions, c as filtersFilter, d as getDeploymentState, f as groupDeploymentDevicesStats, g as mapDeviceAttributes, h as listItemMapper, i as convertDeviceListStateToFilters, l as generateDeploymentGroupDetails, m as isDarkMode, n as ErrorWithResponse, o as ensureVersionString, p as groupDeploymentStats, r as FilterTerm, s as extractErrorMessage, t as DeploymentStats, u as getComparisonCompatibleVersion, v as mapTermsToFilters, w as stringToBoolean, x as parseSubscriptionPreview, y as mapUserRolesToUiPermissions } from "./utils-
|
|
2
|
-
export { DeploymentStats, ErrorWithResponse, FilterTerm, convertDeviceListStateToFilters, convertToBackendSPLimits, ensureVersionString, extractErrorMessage, filtersFilter, generateDeploymentGroupDetails, getComparisonCompatibleVersion, getDeploymentState, groupDeploymentDevicesStats, groupDeploymentStats, isDarkMode, listItemMapper, mapDeviceAttributes, mapFiltersToTerms, mapTermsToFilters, mapUserRolesToUiPermissions, mergePermissions, parseSubscriptionPreview, progress, statCollector, stringToBoolean };
|
|
1
|
+
import { C as statCollector, S as progress, T as stripUndefined, _ as mapFiltersToTerms, a as convertToBackendSPLimits, b as mergePermissions, c as filtersFilter, d as getDeploymentState, f as groupDeploymentDevicesStats, g as mapDeviceAttributes, h as listItemMapper, i as convertDeviceListStateToFilters, l as generateDeploymentGroupDetails, m as isDarkMode, n as ErrorWithResponse, o as ensureVersionString, p as groupDeploymentStats, r as FilterTerm, s as extractErrorMessage, t as DeploymentStats, u as getComparisonCompatibleVersion, v as mapTermsToFilters, w as stringToBoolean, x as parseSubscriptionPreview, y as mapUserRolesToUiPermissions } from "./utils-CO_CpGFP.js";
|
|
2
|
+
export { DeploymentStats, ErrorWithResponse, FilterTerm, convertDeviceListStateToFilters, convertToBackendSPLimits, ensureVersionString, extractErrorMessage, filtersFilter, generateDeploymentGroupDetails, getComparisonCompatibleVersion, getDeploymentState, groupDeploymentDevicesStats, groupDeploymentStats, isDarkMode, listItemMapper, mapDeviceAttributes, mapFiltersToTerms, mapTermsToFilters, mapUserRolesToUiPermissions, mergePermissions, parseSubscriptionPreview, progress, statCollector, stringToBoolean, stripUndefined };
|