@northern.tech/store 0.36.1 → 0.36.3
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/actions.cjs.map +1 -1
- package/dist/actions.d.cts +123 -134
- package/dist/actions.d.ts +123 -134
- package/dist/actions.js.map +1 -1
- package/dist/api/general-api.cjs +3 -3
- package/dist/api/general-api.cjs.map +1 -1
- package/dist/api/general-api.d.cts +9 -10
- package/dist/api/general-api.d.ts +9 -10
- package/dist/api/general-api.js.map +1 -1
- package/dist/api/users-api.cjs +2 -2
- package/dist/api/users-api.cjs.map +1 -1
- package/dist/api/users-api.d.cts +1 -2
- package/dist/api/users-api.d.ts +1 -2
- package/dist/api/users-api.js.map +1 -1
- package/dist/appSlice/constants.cjs +0 -1
- package/dist/appSlice/constants.cjs.map +1 -1
- package/dist/appSlice/constants.d.cts +1 -1
- package/dist/appSlice/constants.d.ts +1 -1
- package/dist/appSlice/constants.js.map +1 -1
- package/dist/appSlice/index.cjs +2 -4
- package/dist/appSlice/index.cjs.map +1 -1
- package/dist/appSlice/index.d.cts +2 -2
- package/dist/appSlice/index.d.ts +2 -2
- package/dist/appSlice/index.js +2 -3
- package/dist/appSlice/index.js.map +1 -1
- package/dist/appSlice/mocks.cjs.map +1 -1
- package/dist/appSlice/mocks.d.cts +1 -1
- package/dist/appSlice/mocks.d.ts +1 -1
- package/dist/appSlice/mocks.js.map +1 -1
- package/dist/appSlice/selectors.cjs +2 -6
- package/dist/appSlice/selectors.cjs.map +1 -1
- package/dist/appSlice/selectors.d.cts +35 -128
- package/dist/appSlice/selectors.d.ts +35 -128
- package/dist/appSlice/selectors.js +2 -5
- package/dist/appSlice/selectors.js.map +1 -1
- package/dist/appSlice/thunks.cjs +0 -1
- package/dist/appSlice/thunks.d.cts +6 -31
- package/dist/appSlice/thunks.d.ts +6 -31
- package/dist/appSlice/thunks.js +2 -2
- package/dist/auth.cjs +2 -2
- package/dist/auth.cjs.map +1 -1
- package/dist/auth.d.cts +1 -1
- package/dist/auth.d.ts +1 -1
- package/dist/auth.js.map +1 -1
- package/dist/commonConstants.d.cts +1 -1
- package/dist/commonConstants.d.ts +1 -1
- package/dist/commonSelectors.cjs +2 -2
- package/dist/commonSelectors.cjs.map +1 -1
- package/dist/commonSelectors.d.cts +164 -166
- package/dist/commonSelectors.d.ts +164 -166
- package/dist/commonSelectors.js.map +1 -1
- package/dist/{constants-CIx3fnBv.d.cts → constants-6kYRTdox.d.cts} +1 -1
- package/dist/{constants-BciiayPt.d.ts → constants-6kYRTdox.d.ts} +1 -1
- package/dist/{constants-BIIEMVoG.d.ts → constants-B_7FCJQX.d.cts} +3 -6
- package/dist/{constants-BFTS6mge.d.cts → constants-B_7FCJQX.d.ts} +3 -6
- package/dist/{constants-D41U_jbR.d.cts → constants-BwKiHHaB.d.cts} +1 -1
- package/dist/{constants-5cdwz1iH.d.ts → constants-BwKiHHaB.d.ts} +1 -1
- package/dist/{constants-DK7fI3Rh.d.cts → constants-Db_RBdlV.d.cts} +1 -1
- package/dist/{constants-BWEsNG5c.d.ts → constants-Db_RBdlV.d.ts} +1 -1
- package/dist/{constants-CNhpIMME.d.cts → constants-OZiiFKiA.d.cts} +1 -1
- package/dist/{constants-y2XVLQWf.d.ts → constants-OZiiFKiA.d.ts} +1 -1
- package/dist/{constants-CjO3_FOH.d.ts → constants-OcdoVk6f.d.ts} +3 -4
- package/dist/{constants-G3wymKIl.d.cts → constants-Sn4gnNA3.d.cts} +1 -1
- package/dist/{constants-Cpgyuy_r.d.ts → constants-Sn4gnNA3.d.ts} +1 -1
- package/dist/{constants-BrGIx40B.d.cts → constants-_p6w8uEp.d.cts} +3 -4
- package/dist/constants.cjs +0 -1
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +8 -8
- package/dist/constants.d.ts +8 -8
- package/dist/constants.js.map +1 -1
- package/dist/deploymentsSlice/constants.d.cts +1 -1
- package/dist/deploymentsSlice/constants.d.ts +1 -1
- package/dist/deploymentsSlice/index.cjs +0 -1
- package/dist/deploymentsSlice/index.cjs.map +1 -1
- package/dist/deploymentsSlice/index.d.cts +1 -1
- package/dist/deploymentsSlice/index.d.ts +1 -1
- package/dist/deploymentsSlice/index.js.map +1 -1
- package/dist/deploymentsSlice/mocks.cjs.map +1 -1
- package/dist/deploymentsSlice/mocks.d.cts +1 -1
- package/dist/deploymentsSlice/mocks.d.ts +1 -1
- package/dist/deploymentsSlice/mocks.js.map +1 -1
- package/dist/deploymentsSlice/selectors.cjs +0 -1
- package/dist/deploymentsSlice/selectors.cjs.map +1 -1
- package/dist/deploymentsSlice/selectors.d.cts +15 -16
- package/dist/deploymentsSlice/selectors.d.ts +15 -16
- package/dist/deploymentsSlice/selectors.js.map +1 -1
- package/dist/deploymentsSlice/thunks.d.cts +21 -22
- package/dist/deploymentsSlice/thunks.d.ts +21 -22
- package/dist/devicesSlice/constants.d.cts +1 -1
- package/dist/devicesSlice/constants.d.ts +1 -1
- package/dist/devicesSlice/index.cjs +0 -1
- package/dist/devicesSlice/index.cjs.map +1 -1
- package/dist/devicesSlice/index.d.cts +1 -1
- package/dist/devicesSlice/index.d.ts +1 -1
- package/dist/devicesSlice/index.js.map +1 -1
- package/dist/devicesSlice/mocks.cjs +0 -1
- package/dist/devicesSlice/mocks.cjs.map +1 -1
- package/dist/devicesSlice/mocks.js.map +1 -1
- package/dist/devicesSlice/selectors.cjs +0 -1
- package/dist/devicesSlice/selectors.cjs.map +1 -1
- package/dist/devicesSlice/selectors.d.cts +79 -81
- package/dist/devicesSlice/selectors.d.ts +79 -81
- package/dist/devicesSlice/selectors.js.map +1 -1
- package/dist/devicesSlice/thunks.d.cts +67 -69
- package/dist/devicesSlice/thunks.d.ts +67 -69
- package/dist/{index-DUvrw_Ed.d.ts → index-5Q-iI4EB.d.cts} +17 -20
- package/dist/index-BBsUj1a8.d.ts +68 -0
- package/dist/index-BLvjQfGj.d.ts +119 -0
- package/dist/{index-BP0uAq36.d.cts → index-Bb4yvvgG.d.ts} +25 -28
- package/dist/index-Bj3OArhr.d.cts +68 -0
- package/dist/{index-CT5hgXm9.d.cts → index-ByfjrTdH.d.ts} +16 -19
- package/dist/index-C8QadAm7.d.cts +119 -0
- package/dist/{index-BI9O8JWe.d.ts → index-CPdMUfRr.d.ts} +41 -44
- package/dist/index-CSk4ENmk.d.cts +149 -0
- package/dist/index-Cf81vLTi.d.ts +149 -0
- package/dist/index-DBUt8xVc.d.cts +61 -0
- package/dist/index-DBUt8xVc.d.ts +61 -0
- package/dist/index-DLDY7bNT.d.ts +165 -0
- package/dist/{index-B64X5ozM.d.cts → index-DbfM03Gj.d.cts} +42 -45
- package/dist/{index-CkwVnIqd.d.ts → index-EPmsL6Lb.d.cts} +26 -29
- package/dist/index-Zs9RnVoR.d.cts +165 -0
- package/dist/liststatehook.cjs +5 -6
- package/dist/liststatehook.cjs.map +1 -1
- package/dist/liststatehook.d.cts +1 -1
- package/dist/liststatehook.d.ts +1 -1
- package/dist/liststatehook.js +1 -1
- package/dist/liststatehook.js.map +1 -1
- package/dist/locationutils.cjs +0 -1
- package/dist/locationutils.cjs.map +1 -1
- package/dist/locationutils.d.cts +3 -3
- package/dist/locationutils.d.ts +3 -3
- package/dist/locationutils.js.map +1 -1
- package/dist/monitorSlice/constants.d.cts +1 -1
- package/dist/monitorSlice/constants.d.ts +1 -1
- package/dist/monitorSlice/index.cjs +0 -1
- package/dist/monitorSlice/index.cjs.map +1 -1
- package/dist/monitorSlice/index.d.cts +1 -1
- package/dist/monitorSlice/index.d.ts +1 -1
- package/dist/monitorSlice/index.js.map +1 -1
- package/dist/monitorSlice/mocks.cjs +0 -1
- package/dist/monitorSlice/mocks.cjs.map +1 -1
- package/dist/monitorSlice/mocks.d.cts +1 -1
- package/dist/monitorSlice/mocks.d.ts +1 -1
- package/dist/monitorSlice/mocks.js.map +1 -1
- package/dist/monitorSlice/selectors.d.cts +1 -1
- package/dist/monitorSlice/selectors.d.ts +1 -1
- package/dist/monitorSlice/thunks.cjs +1 -3
- package/dist/monitorSlice/thunks.cjs.map +1 -1
- package/dist/monitorSlice/thunks.d.cts +11 -13
- package/dist/monitorSlice/thunks.d.ts +11 -13
- package/dist/monitorSlice/thunks.js +1 -2
- package/dist/monitorSlice/thunks.js.map +1 -1
- package/dist/onboardingSlice/constants.cjs.map +1 -1
- package/dist/onboardingSlice/constants.d.cts +1 -1
- package/dist/onboardingSlice/constants.d.ts +1 -1
- package/dist/onboardingSlice/constants.js.map +1 -1
- package/dist/onboardingSlice/index.cjs +0 -1
- package/dist/onboardingSlice/index.cjs.map +1 -1
- package/dist/onboardingSlice/index.d.cts +1 -1
- package/dist/onboardingSlice/index.d.ts +1 -1
- package/dist/onboardingSlice/index.js.map +1 -1
- package/dist/onboardingSlice/mocks.cjs.map +1 -1
- package/dist/onboardingSlice/mocks.d.cts +1 -1
- package/dist/onboardingSlice/mocks.d.ts +1 -1
- package/dist/onboardingSlice/mocks.js.map +1 -1
- package/dist/onboardingSlice/selectors.d.cts +2 -2
- package/dist/onboardingSlice/selectors.d.ts +2 -2
- package/dist/onboardingSlice/thunks.d.cts +22 -23
- package/dist/onboardingSlice/thunks.d.ts +22 -23
- package/dist/organizationSlice/constants.d.cts +1 -1
- package/dist/organizationSlice/constants.d.ts +1 -1
- package/dist/organizationSlice/index.cjs +0 -1
- package/dist/organizationSlice/index.cjs.map +1 -1
- package/dist/organizationSlice/index.d.cts +1 -1
- package/dist/organizationSlice/index.d.ts +1 -1
- package/dist/organizationSlice/index.js.map +1 -1
- package/dist/organizationSlice/mocks.cjs +0 -1
- package/dist/organizationSlice/mocks.cjs.map +1 -1
- package/dist/organizationSlice/mocks.d.cts +3 -4
- package/dist/organizationSlice/mocks.d.ts +3 -4
- package/dist/organizationSlice/mocks.js.map +1 -1
- package/dist/organizationSlice/selectors.cjs +0 -1
- package/dist/organizationSlice/selectors.cjs.map +1 -1
- package/dist/organizationSlice/selectors.d.cts +78 -81
- package/dist/organizationSlice/selectors.d.ts +78 -81
- package/dist/organizationSlice/selectors.js.map +1 -1
- package/dist/organizationSlice/thunks.d.cts +65 -105
- package/dist/organizationSlice/thunks.d.ts +65 -105
- package/dist/organizationSlice/types.d.cts +1 -1
- package/dist/organizationSlice/types.d.ts +1 -1
- package/dist/releasesSlice/constants.cjs.map +1 -1
- package/dist/releasesSlice/constants.d.cts +1 -1
- package/dist/releasesSlice/constants.d.ts +1 -1
- package/dist/releasesSlice/constants.js.map +1 -1
- package/dist/releasesSlice/index.cjs +0 -1
- package/dist/releasesSlice/index.cjs.map +1 -1
- package/dist/releasesSlice/index.d.cts +1 -1
- package/dist/releasesSlice/index.d.ts +1 -1
- package/dist/releasesSlice/index.js.map +1 -1
- package/dist/releasesSlice/mocks.cjs +0 -1
- package/dist/releasesSlice/mocks.cjs.map +1 -1
- package/dist/releasesSlice/mocks.d.cts +3 -6
- package/dist/releasesSlice/mocks.d.ts +3 -6
- package/dist/releasesSlice/mocks.js.map +1 -1
- package/dist/releasesSlice/selectors.cjs +0 -1
- package/dist/releasesSlice/selectors.cjs.map +1 -1
- package/dist/releasesSlice/selectors.d.cts +107 -110
- package/dist/releasesSlice/selectors.d.ts +107 -110
- package/dist/releasesSlice/selectors.js.map +1 -1
- package/dist/releasesSlice/thunks.cjs +39 -16
- package/dist/releasesSlice/thunks.cjs.map +1 -1
- package/dist/releasesSlice/thunks.d.cts +52 -61
- package/dist/releasesSlice/thunks.d.ts +52 -61
- package/dist/releasesSlice/thunks.js +38 -15
- package/dist/releasesSlice/thunks.js.map +1 -1
- package/dist/sockethook.cjs +3 -3
- package/dist/sockethook.cjs.map +1 -1
- package/dist/sockethook.js.map +1 -1
- package/dist/{store-BhRxVhtL.d.cts → store-DBUTT4FF.d.cts} +139 -36
- package/dist/{store-BZo47jc-.d.ts → store-gkY5P9Uz.d.ts} +139 -36
- package/dist/store.cjs +0 -1
- package/dist/store.cjs.map +1 -1
- package/dist/store.d.cts +2 -3
- package/dist/store.d.ts +2 -3
- package/dist/store.js.map +1 -1
- package/dist/storehooks.cjs +9 -17
- package/dist/storehooks.cjs.map +1 -1
- package/dist/storehooks.d.cts +6 -43
- package/dist/storehooks.d.ts +6 -43
- package/dist/storehooks.js +7 -15
- package/dist/storehooks.js.map +1 -1
- package/dist/thunks.cjs +51 -67
- package/dist/thunks.cjs.map +1 -1
- package/dist/thunks.d.cts +2 -2
- package/dist/thunks.d.ts +2 -2
- package/dist/thunks.js +45 -60
- package/dist/thunks.js.map +1 -1
- package/dist/{types-COdPU2QQ.d.cts → types-B33vKVhi.d.cts} +4 -4
- package/dist/{types-BPyM8Inu.d.ts → types-BjtmX60L.d.ts} +4 -4
- package/dist/useDeploymentDevice.cjs +2 -2
- package/dist/useDeploymentDevice.cjs.map +1 -1
- package/dist/useDeploymentDevice.js.map +1 -1
- package/dist/usersSlice/constants.d.cts +1 -1
- package/dist/usersSlice/constants.d.ts +1 -1
- package/dist/usersSlice/index.cjs +0 -1
- package/dist/usersSlice/index.cjs.map +1 -1
- package/dist/usersSlice/index.d.cts +1 -1
- package/dist/usersSlice/index.d.ts +1 -1
- package/dist/usersSlice/index.js.map +1 -1
- package/dist/usersSlice/mocks.cjs +0 -1
- package/dist/usersSlice/mocks.cjs.map +1 -1
- package/dist/usersSlice/mocks.d.cts +4 -6
- package/dist/usersSlice/mocks.d.ts +4 -6
- package/dist/usersSlice/mocks.js.map +1 -1
- package/dist/usersSlice/selectors.cjs +0 -1
- package/dist/usersSlice/selectors.cjs.map +1 -1
- package/dist/usersSlice/selectors.d.cts +44 -47
- package/dist/usersSlice/selectors.d.ts +44 -47
- package/dist/usersSlice/selectors.js.map +1 -1
- package/dist/usersSlice/thunks.d.cts +92 -95
- package/dist/usersSlice/thunks.d.ts +92 -95
- package/dist/utils.cjs +2 -3
- 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 +3 -3
- package/dist/utils.js.map +1 -1
- package/package.json +8 -8
- package/dist/index-B3IF6ur9.d.cts +0 -168
- package/dist/index-BFlHWzjv.d.cts +0 -152
- package/dist/index-BbaS7MzW.d.cts +0 -71
- package/dist/index-Bp1WpATs.d.ts +0 -154
- package/dist/index-C6wNUfiV.d.ts +0 -71
- package/dist/index-CJkrL0oA.d.ts +0 -64
- package/dist/index-DaD3yorF.d.ts +0 -168
- package/dist/index-DwACbyUg.d.cts +0 -154
- package/dist/index-UPc3wvVd.d.cts +0 -64
- package/dist/index-ez3oxfRo.d.ts +0 -152
- package/dist/utils-CHBWS_tH.d.ts +0 -105
- package/dist/utils-Do9z5TL1.d.cts +0 -105
- /package/dist/{chunk-CKQMccvm.cjs → rolldown-runtime-D6vf50IK.cjs} +0 -0
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { T as SortOptions } from "../constants-
|
|
2
|
-
import { c as SelectionListState, i as DeploymentConfig, l as SelectionState, r as DeploymentByStatusKey, t as Deployment } from "../index-
|
|
3
|
-
import { t as Device$1 } from "../index-
|
|
4
|
-
import {
|
|
5
|
-
import { r as RootState, t as AppDispatch } from "../store-
|
|
6
|
-
import * as _$_reduxjs_toolkit0 from "@reduxjs/toolkit";
|
|
1
|
+
import { T as SortOptions } from "../constants-_p6w8uEp.cjs";
|
|
2
|
+
import { c as SelectionListState, i as DeploymentConfig, l as SelectionState, r as DeploymentByStatusKey, t as Deployment } from "../index-EPmsL6Lb.cjs";
|
|
3
|
+
import { t as Device$1 } from "../index-DbfM03Gj.cjs";
|
|
4
|
+
import { i as SnackbarContent } from "../index-C8QadAm7.cjs";
|
|
5
|
+
import { r as RootState, t as AppDispatch } from "../store-DBUTT4FF.cjs";
|
|
7
6
|
import { DeploymentV1, NewDeploymentForGroup, NewDeploymentTypeManagement, NewDeploymentV2TypeManagement } from "@northern.tech/types/MenderTypes";
|
|
8
7
|
|
|
9
8
|
//#region src/deploymentsSlice/thunks.d.ts
|
|
@@ -19,7 +18,7 @@ type GetDeploymentsByStatusPayload = Partial<SelectionListState> & {
|
|
|
19
18
|
sort?: SortOptions;
|
|
20
19
|
status: DeploymentByStatusKey;
|
|
21
20
|
};
|
|
22
|
-
declare const getDeploymentsByStatus:
|
|
21
|
+
declare const getDeploymentsByStatus: import("@reduxjs/toolkit").AsyncThunk<unknown[], GetDeploymentsByStatusPayload, {
|
|
23
22
|
dispatch: AppDispatch;
|
|
24
23
|
state: RootState;
|
|
25
24
|
extra?: unknown;
|
|
@@ -29,7 +28,7 @@ declare const getDeploymentsByStatus: _$_reduxjs_toolkit0.AsyncThunk<unknown[],
|
|
|
29
28
|
fulfilledMeta?: unknown;
|
|
30
29
|
rejectedMeta?: unknown;
|
|
31
30
|
}>;
|
|
32
|
-
declare const createDeployment:
|
|
31
|
+
declare const createDeployment: import("@reduxjs/toolkit").AsyncThunk<any, {
|
|
33
32
|
newDeployment: NewDeploymentTypeManagement | (NewDeploymentForGroup & {
|
|
34
33
|
group: string;
|
|
35
34
|
}) | NewDeploymentV2TypeManagement;
|
|
@@ -43,7 +42,7 @@ declare const createDeployment: _$_reduxjs_toolkit0.AsyncThunk<any, {
|
|
|
43
42
|
fulfilledMeta?: unknown;
|
|
44
43
|
rejectedMeta?: unknown;
|
|
45
44
|
}>;
|
|
46
|
-
declare const getDeploymentDevices:
|
|
45
|
+
declare const getDeploymentDevices: import("@reduxjs/toolkit").AsyncThunk<unknown[], {
|
|
47
46
|
id: string;
|
|
48
47
|
page?: number;
|
|
49
48
|
perPage?: number;
|
|
@@ -63,7 +62,7 @@ type GetDeviceDeploymentsPayload = {
|
|
|
63
62
|
page?: number;
|
|
64
63
|
perPage?: number;
|
|
65
64
|
};
|
|
66
|
-
declare const getDeviceDeployments:
|
|
65
|
+
declare const getDeviceDeployments: import("@reduxjs/toolkit").AsyncThunk<{
|
|
67
66
|
payload: {
|
|
68
67
|
id: string;
|
|
69
68
|
} & Partial<Device$1>;
|
|
@@ -78,7 +77,7 @@ declare const getDeviceDeployments: _$_reduxjs_toolkit0.AsyncThunk<{
|
|
|
78
77
|
fulfilledMeta?: unknown;
|
|
79
78
|
rejectedMeta?: unknown;
|
|
80
79
|
}>;
|
|
81
|
-
declare const resetDeviceDeployments:
|
|
80
|
+
declare const resetDeviceDeployments: import("@reduxjs/toolkit").AsyncThunk<import("@reduxjs/toolkit").PayloadAction<{
|
|
82
81
|
payload: {
|
|
83
82
|
id: string;
|
|
84
83
|
} & Partial<Device$1>;
|
|
@@ -87,7 +86,7 @@ declare const resetDeviceDeployments: _$_reduxjs_toolkit0.AsyncThunk<_$_reduxjs_
|
|
|
87
86
|
arg: GetDeviceDeploymentsPayload;
|
|
88
87
|
requestId: string;
|
|
89
88
|
requestStatus: "fulfilled";
|
|
90
|
-
}, never> |
|
|
89
|
+
}, never> | import("@reduxjs/toolkit").PayloadAction<unknown, string, {
|
|
91
90
|
arg: GetDeviceDeploymentsPayload;
|
|
92
91
|
requestId: string;
|
|
93
92
|
requestStatus: "rejected";
|
|
@@ -97,7 +96,7 @@ declare const resetDeviceDeployments: _$_reduxjs_toolkit0.AsyncThunk<_$_reduxjs_
|
|
|
97
96
|
rejectedWithValue: true;
|
|
98
97
|
} | ({
|
|
99
98
|
rejectedWithValue: false;
|
|
100
|
-
} & {})),
|
|
99
|
+
} & {})), import("@reduxjs/toolkit").SerializedError>, string, {
|
|
101
100
|
dispatch: AppDispatch;
|
|
102
101
|
state: RootState;
|
|
103
102
|
extra?: unknown;
|
|
@@ -107,7 +106,7 @@ declare const resetDeviceDeployments: _$_reduxjs_toolkit0.AsyncThunk<_$_reduxjs_
|
|
|
107
106
|
fulfilledMeta?: unknown;
|
|
108
107
|
rejectedMeta?: unknown;
|
|
109
108
|
}>;
|
|
110
|
-
declare const getSingleDeployment:
|
|
109
|
+
declare const getSingleDeployment: import("@reduxjs/toolkit").AsyncThunk<{
|
|
111
110
|
payload: Deployment;
|
|
112
111
|
type: "deployments/receivedDeployment";
|
|
113
112
|
}, string, {
|
|
@@ -120,7 +119,7 @@ declare const getSingleDeployment: _$_reduxjs_toolkit0.AsyncThunk<{
|
|
|
120
119
|
fulfilledMeta?: unknown;
|
|
121
120
|
rejectedMeta?: unknown;
|
|
122
121
|
}>;
|
|
123
|
-
declare const getDeviceLog:
|
|
122
|
+
declare const getDeviceLog: import("@reduxjs/toolkit").AsyncThunk<[{
|
|
124
123
|
payload: {
|
|
125
124
|
deviceId: string;
|
|
126
125
|
id: string;
|
|
@@ -140,7 +139,7 @@ declare const getDeviceLog: _$_reduxjs_toolkit0.AsyncThunk<[{
|
|
|
140
139
|
fulfilledMeta?: unknown;
|
|
141
140
|
rejectedMeta?: unknown;
|
|
142
141
|
}>;
|
|
143
|
-
declare const abortDeployment:
|
|
142
|
+
declare const abortDeployment: import("@reduxjs/toolkit").AsyncThunk<[{
|
|
144
143
|
payload: Record<string, Deployment>;
|
|
145
144
|
type: "deployments/receivedDeployments";
|
|
146
145
|
}, {
|
|
@@ -166,7 +165,7 @@ declare const abortDeployment: _$_reduxjs_toolkit0.AsyncThunk<[{
|
|
|
166
165
|
fulfilledMeta?: unknown;
|
|
167
166
|
rejectedMeta?: unknown;
|
|
168
167
|
}>;
|
|
169
|
-
declare const updateDeploymentControlMap:
|
|
168
|
+
declare const updateDeploymentControlMap: import("@reduxjs/toolkit").AsyncThunk<import("@reduxjs/toolkit").PayloadAction<unknown, string, {
|
|
170
169
|
arg: string;
|
|
171
170
|
requestId: string;
|
|
172
171
|
requestStatus: "rejected";
|
|
@@ -176,7 +175,7 @@ declare const updateDeploymentControlMap: _$_reduxjs_toolkit0.AsyncThunk<_$_redu
|
|
|
176
175
|
rejectedWithValue: true;
|
|
177
176
|
} | ({
|
|
178
177
|
rejectedWithValue: false;
|
|
179
|
-
} & {})),
|
|
178
|
+
} & {})), import("@reduxjs/toolkit").SerializedError> | import("@reduxjs/toolkit").PayloadAction<{
|
|
180
179
|
payload: Deployment;
|
|
181
180
|
type: "deployments/receivedDeployment";
|
|
182
181
|
}, string, {
|
|
@@ -201,7 +200,7 @@ type SetDeploymentsStatePayload = DeepPartial<SelectionState> & {
|
|
|
201
200
|
page?: number;
|
|
202
201
|
perPage?: number;
|
|
203
202
|
};
|
|
204
|
-
declare const setDeploymentsState:
|
|
203
|
+
declare const setDeploymentsState: import("@reduxjs/toolkit").AsyncThunk<unknown[], SetDeploymentsStatePayload, {
|
|
205
204
|
dispatch: AppDispatch;
|
|
206
205
|
state: RootState;
|
|
207
206
|
extra?: unknown;
|
|
@@ -211,7 +210,7 @@ declare const setDeploymentsState: _$_reduxjs_toolkit0.AsyncThunk<unknown[], Set
|
|
|
211
210
|
fulfilledMeta?: unknown;
|
|
212
211
|
rejectedMeta?: unknown;
|
|
213
212
|
}>;
|
|
214
|
-
declare const getDeploymentsConfig:
|
|
213
|
+
declare const getDeploymentsConfig: import("@reduxjs/toolkit").AsyncThunk<{
|
|
215
214
|
payload: DeploymentConfig;
|
|
216
215
|
type: "deployments/setDeploymentsConfig";
|
|
217
216
|
}, void, {
|
|
@@ -224,7 +223,7 @@ declare const getDeploymentsConfig: _$_reduxjs_toolkit0.AsyncThunk<{
|
|
|
224
223
|
fulfilledMeta?: unknown;
|
|
225
224
|
rejectedMeta?: unknown;
|
|
226
225
|
}>;
|
|
227
|
-
declare const saveDeltaDeploymentsConfig:
|
|
226
|
+
declare const saveDeltaDeploymentsConfig: import("@reduxjs/toolkit").AsyncThunk<unknown, {
|
|
228
227
|
compressionLevel: number;
|
|
229
228
|
disableChecksum: boolean;
|
|
230
229
|
disableDecompression: boolean;
|
|
@@ -243,7 +242,7 @@ declare const saveDeltaDeploymentsConfig: _$_reduxjs_toolkit0.AsyncThunk<unknown
|
|
|
243
242
|
fulfilledMeta?: unknown;
|
|
244
243
|
rejectedMeta?: unknown;
|
|
245
244
|
}>;
|
|
246
|
-
declare const generateDeploymentLogAnalysis:
|
|
245
|
+
declare const generateDeploymentLogAnalysis: import("@reduxjs/toolkit").AsyncThunk<string | undefined, {
|
|
247
246
|
deploymentId: string;
|
|
248
247
|
deviceId: string;
|
|
249
248
|
}, {
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { T as SortOptions } from "../constants-
|
|
2
|
-
import { c as SelectionListState, i as DeploymentConfig, l as SelectionState, r as DeploymentByStatusKey, t as Deployment } from "../index-
|
|
3
|
-
import { t as Device$1 } from "../index-
|
|
4
|
-
import {
|
|
5
|
-
import { r as RootState, t as AppDispatch } from "../store-
|
|
6
|
-
import * as _$_reduxjs_toolkit0 from "@reduxjs/toolkit";
|
|
1
|
+
import { T as SortOptions } from "../constants-OcdoVk6f.js";
|
|
2
|
+
import { c as SelectionListState, i as DeploymentConfig, l as SelectionState, r as DeploymentByStatusKey, t as Deployment } from "../index-Bb4yvvgG.js";
|
|
3
|
+
import { t as Device$1 } from "../index-CPdMUfRr.js";
|
|
4
|
+
import { i as SnackbarContent } from "../index-BLvjQfGj.js";
|
|
5
|
+
import { r as RootState, t as AppDispatch } from "../store-gkY5P9Uz.js";
|
|
7
6
|
import { DeploymentV1, NewDeploymentForGroup, NewDeploymentTypeManagement, NewDeploymentV2TypeManagement } from "@northern.tech/types/MenderTypes";
|
|
8
7
|
|
|
9
8
|
//#region src/deploymentsSlice/thunks.d.ts
|
|
@@ -19,7 +18,7 @@ type GetDeploymentsByStatusPayload = Partial<SelectionListState> & {
|
|
|
19
18
|
sort?: SortOptions;
|
|
20
19
|
status: DeploymentByStatusKey;
|
|
21
20
|
};
|
|
22
|
-
declare const getDeploymentsByStatus:
|
|
21
|
+
declare const getDeploymentsByStatus: import("@reduxjs/toolkit").AsyncThunk<unknown[], GetDeploymentsByStatusPayload, {
|
|
23
22
|
dispatch: AppDispatch;
|
|
24
23
|
state: RootState;
|
|
25
24
|
extra?: unknown;
|
|
@@ -29,7 +28,7 @@ declare const getDeploymentsByStatus: _$_reduxjs_toolkit0.AsyncThunk<unknown[],
|
|
|
29
28
|
fulfilledMeta?: unknown;
|
|
30
29
|
rejectedMeta?: unknown;
|
|
31
30
|
}>;
|
|
32
|
-
declare const createDeployment:
|
|
31
|
+
declare const createDeployment: import("@reduxjs/toolkit").AsyncThunk<any, {
|
|
33
32
|
newDeployment: NewDeploymentTypeManagement | (NewDeploymentForGroup & {
|
|
34
33
|
group: string;
|
|
35
34
|
}) | NewDeploymentV2TypeManagement;
|
|
@@ -43,7 +42,7 @@ declare const createDeployment: _$_reduxjs_toolkit0.AsyncThunk<any, {
|
|
|
43
42
|
fulfilledMeta?: unknown;
|
|
44
43
|
rejectedMeta?: unknown;
|
|
45
44
|
}>;
|
|
46
|
-
declare const getDeploymentDevices:
|
|
45
|
+
declare const getDeploymentDevices: import("@reduxjs/toolkit").AsyncThunk<unknown[], {
|
|
47
46
|
id: string;
|
|
48
47
|
page?: number;
|
|
49
48
|
perPage?: number;
|
|
@@ -63,7 +62,7 @@ type GetDeviceDeploymentsPayload = {
|
|
|
63
62
|
page?: number;
|
|
64
63
|
perPage?: number;
|
|
65
64
|
};
|
|
66
|
-
declare const getDeviceDeployments:
|
|
65
|
+
declare const getDeviceDeployments: import("@reduxjs/toolkit").AsyncThunk<{
|
|
67
66
|
payload: {
|
|
68
67
|
id: string;
|
|
69
68
|
} & Partial<Device$1>;
|
|
@@ -78,7 +77,7 @@ declare const getDeviceDeployments: _$_reduxjs_toolkit0.AsyncThunk<{
|
|
|
78
77
|
fulfilledMeta?: unknown;
|
|
79
78
|
rejectedMeta?: unknown;
|
|
80
79
|
}>;
|
|
81
|
-
declare const resetDeviceDeployments:
|
|
80
|
+
declare const resetDeviceDeployments: import("@reduxjs/toolkit").AsyncThunk<import("@reduxjs/toolkit").PayloadAction<{
|
|
82
81
|
payload: {
|
|
83
82
|
id: string;
|
|
84
83
|
} & Partial<Device$1>;
|
|
@@ -87,7 +86,7 @@ declare const resetDeviceDeployments: _$_reduxjs_toolkit0.AsyncThunk<_$_reduxjs_
|
|
|
87
86
|
arg: GetDeviceDeploymentsPayload;
|
|
88
87
|
requestId: string;
|
|
89
88
|
requestStatus: "fulfilled";
|
|
90
|
-
}, never> |
|
|
89
|
+
}, never> | import("@reduxjs/toolkit").PayloadAction<unknown, string, {
|
|
91
90
|
arg: GetDeviceDeploymentsPayload;
|
|
92
91
|
requestId: string;
|
|
93
92
|
requestStatus: "rejected";
|
|
@@ -97,7 +96,7 @@ declare const resetDeviceDeployments: _$_reduxjs_toolkit0.AsyncThunk<_$_reduxjs_
|
|
|
97
96
|
rejectedWithValue: true;
|
|
98
97
|
} | ({
|
|
99
98
|
rejectedWithValue: false;
|
|
100
|
-
} & {})),
|
|
99
|
+
} & {})), import("@reduxjs/toolkit").SerializedError>, string, {
|
|
101
100
|
dispatch: AppDispatch;
|
|
102
101
|
state: RootState;
|
|
103
102
|
extra?: unknown;
|
|
@@ -107,7 +106,7 @@ declare const resetDeviceDeployments: _$_reduxjs_toolkit0.AsyncThunk<_$_reduxjs_
|
|
|
107
106
|
fulfilledMeta?: unknown;
|
|
108
107
|
rejectedMeta?: unknown;
|
|
109
108
|
}>;
|
|
110
|
-
declare const getSingleDeployment:
|
|
109
|
+
declare const getSingleDeployment: import("@reduxjs/toolkit").AsyncThunk<{
|
|
111
110
|
payload: Deployment;
|
|
112
111
|
type: "deployments/receivedDeployment";
|
|
113
112
|
}, string, {
|
|
@@ -120,7 +119,7 @@ declare const getSingleDeployment: _$_reduxjs_toolkit0.AsyncThunk<{
|
|
|
120
119
|
fulfilledMeta?: unknown;
|
|
121
120
|
rejectedMeta?: unknown;
|
|
122
121
|
}>;
|
|
123
|
-
declare const getDeviceLog:
|
|
122
|
+
declare const getDeviceLog: import("@reduxjs/toolkit").AsyncThunk<[{
|
|
124
123
|
payload: {
|
|
125
124
|
deviceId: string;
|
|
126
125
|
id: string;
|
|
@@ -140,7 +139,7 @@ declare const getDeviceLog: _$_reduxjs_toolkit0.AsyncThunk<[{
|
|
|
140
139
|
fulfilledMeta?: unknown;
|
|
141
140
|
rejectedMeta?: unknown;
|
|
142
141
|
}>;
|
|
143
|
-
declare const abortDeployment:
|
|
142
|
+
declare const abortDeployment: import("@reduxjs/toolkit").AsyncThunk<[{
|
|
144
143
|
payload: Record<string, Deployment>;
|
|
145
144
|
type: "deployments/receivedDeployments";
|
|
146
145
|
}, {
|
|
@@ -166,7 +165,7 @@ declare const abortDeployment: _$_reduxjs_toolkit0.AsyncThunk<[{
|
|
|
166
165
|
fulfilledMeta?: unknown;
|
|
167
166
|
rejectedMeta?: unknown;
|
|
168
167
|
}>;
|
|
169
|
-
declare const updateDeploymentControlMap:
|
|
168
|
+
declare const updateDeploymentControlMap: import("@reduxjs/toolkit").AsyncThunk<import("@reduxjs/toolkit").PayloadAction<unknown, string, {
|
|
170
169
|
arg: string;
|
|
171
170
|
requestId: string;
|
|
172
171
|
requestStatus: "rejected";
|
|
@@ -176,7 +175,7 @@ declare const updateDeploymentControlMap: _$_reduxjs_toolkit0.AsyncThunk<_$_redu
|
|
|
176
175
|
rejectedWithValue: true;
|
|
177
176
|
} | ({
|
|
178
177
|
rejectedWithValue: false;
|
|
179
|
-
} & {})),
|
|
178
|
+
} & {})), import("@reduxjs/toolkit").SerializedError> | import("@reduxjs/toolkit").PayloadAction<{
|
|
180
179
|
payload: Deployment;
|
|
181
180
|
type: "deployments/receivedDeployment";
|
|
182
181
|
}, string, {
|
|
@@ -201,7 +200,7 @@ type SetDeploymentsStatePayload = DeepPartial<SelectionState> & {
|
|
|
201
200
|
page?: number;
|
|
202
201
|
perPage?: number;
|
|
203
202
|
};
|
|
204
|
-
declare const setDeploymentsState:
|
|
203
|
+
declare const setDeploymentsState: import("@reduxjs/toolkit").AsyncThunk<unknown[], SetDeploymentsStatePayload, {
|
|
205
204
|
dispatch: AppDispatch;
|
|
206
205
|
state: RootState;
|
|
207
206
|
extra?: unknown;
|
|
@@ -211,7 +210,7 @@ declare const setDeploymentsState: _$_reduxjs_toolkit0.AsyncThunk<unknown[], Set
|
|
|
211
210
|
fulfilledMeta?: unknown;
|
|
212
211
|
rejectedMeta?: unknown;
|
|
213
212
|
}>;
|
|
214
|
-
declare const getDeploymentsConfig:
|
|
213
|
+
declare const getDeploymentsConfig: import("@reduxjs/toolkit").AsyncThunk<{
|
|
215
214
|
payload: DeploymentConfig;
|
|
216
215
|
type: "deployments/setDeploymentsConfig";
|
|
217
216
|
}, void, {
|
|
@@ -224,7 +223,7 @@ declare const getDeploymentsConfig: _$_reduxjs_toolkit0.AsyncThunk<{
|
|
|
224
223
|
fulfilledMeta?: unknown;
|
|
225
224
|
rejectedMeta?: unknown;
|
|
226
225
|
}>;
|
|
227
|
-
declare const saveDeltaDeploymentsConfig:
|
|
226
|
+
declare const saveDeltaDeploymentsConfig: import("@reduxjs/toolkit").AsyncThunk<unknown, {
|
|
228
227
|
compressionLevel: number;
|
|
229
228
|
disableChecksum: boolean;
|
|
230
229
|
disableDecompression: boolean;
|
|
@@ -243,7 +242,7 @@ declare const saveDeltaDeploymentsConfig: _$_reduxjs_toolkit0.AsyncThunk<unknown
|
|
|
243
242
|
fulfilledMeta?: unknown;
|
|
244
243
|
rejectedMeta?: unknown;
|
|
245
244
|
}>;
|
|
246
|
-
declare const generateDeploymentLogAnalysis:
|
|
245
|
+
declare const generateDeploymentLogAnalysis: import("@reduxjs/toolkit").AsyncThunk<string | undefined, {
|
|
247
246
|
deploymentId: string;
|
|
248
247
|
deviceId: string;
|
|
249
248
|
}, {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { _t as geoAttributes, dt as DEVICE_DISMISSAL_STATE, ft as DEVICE_MESSAGE_PROTOCOLS, gt as emptyFilter, ht as REPORT_CHART_SIZE_LIMIT, mt as DeviceAuthState, pt as DEVICE_MESSAGE_TYPES, ut as DEVICE_CONNECT_STATES } from "../constants-
|
|
1
|
+
import { _t as geoAttributes, dt as DEVICE_DISMISSAL_STATE, ft as DEVICE_MESSAGE_PROTOCOLS, gt as emptyFilter, ht as REPORT_CHART_SIZE_LIMIT, mt as DeviceAuthState, pt as DEVICE_MESSAGE_TYPES, ut as DEVICE_CONNECT_STATES } from "../constants-_p6w8uEp.cjs";
|
|
2
2
|
export { DEVICE_CONNECT_STATES, DEVICE_DISMISSAL_STATE, DEVICE_MESSAGE_PROTOCOLS, DEVICE_MESSAGE_TYPES, DeviceAuthState, REPORT_CHART_SIZE_LIMIT, emptyFilter, geoAttributes };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { _t as geoAttributes, dt as DEVICE_DISMISSAL_STATE, ft as DEVICE_MESSAGE_PROTOCOLS, gt as emptyFilter, ht as REPORT_CHART_SIZE_LIMIT, mt as DeviceAuthState, pt as DEVICE_MESSAGE_TYPES, ut as DEVICE_CONNECT_STATES } from "../constants-
|
|
1
|
+
import { _t as geoAttributes, dt as DEVICE_DISMISSAL_STATE, ft as DEVICE_MESSAGE_PROTOCOLS, gt as emptyFilter, ht as REPORT_CHART_SIZE_LIMIT, mt as DeviceAuthState, pt as DEVICE_MESSAGE_TYPES, ut as DEVICE_CONNECT_STATES } from "../constants-OcdoVk6f.js";
|
|
2
2
|
export { DEVICE_CONNECT_STATES, DEVICE_DISMISSAL_STATE, DEVICE_MESSAGE_PROTOCOLS, DEVICE_MESSAGE_TYPES, DeviceAuthState, REPORT_CHART_SIZE_LIMIT, emptyFilter, geoAttributes };
|
|
@@ -2,7 +2,6 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
require("../chunk-CKQMccvm.cjs");
|
|
6
5
|
let _reduxjs_toolkit = require("@reduxjs/toolkit");
|
|
7
6
|
let _northern_tech_utils_helpers = require("@northern.tech/utils/helpers");
|
|
8
7
|
let _northern_tech_utils_constants = require("@northern.tech/utils/constants");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":["DEVICE_STATES","DEVICE_LIST_DEFAULTS","SORTING_OPTIONS","duplicateFilter"],"sources":["../../src/devicesSlice/index.ts"],"sourcesContent":["// Copyright 2023 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 {\n Device as BackendDeviceAuth,\n ConnectionState,\n DeviceConfiguration,\n DeviceState,\n DeviceTierLimits,\n MonitorConfiguration,\n Scope,\n SortCriteria,\n Status\n} from '@northern.tech/types/MenderTypes';\n// @ts-nocheck\nimport { deepCompare, duplicateFilter } from '@northern.tech/utils/helpers';\nimport type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\n\nimport type { ALL_DEVICE_STATES, DeviceIssueOptionKey, FilterOperator, SortOptions } from '../constants';\nimport { DEVICE_LIST_DEFAULTS, DEVICE_STATES, SORTING_OPTIONS } from '../constants';\nimport type { DeviceDeployment } from '../deploymentsSlice';\nimport type { DeviceAuthState } from './constants';\n\nexport const sliceName = 'devices';\nexport type DeviceSelectedAttribute = { attribute: string; scope: string };\nexport type DeviceListState = {\n detailsTab: string;\n deviceIds: string[];\n isLoading: boolean;\n open?: boolean;\n page: number;\n perPage: number;\n refreshTrigger: boolean;\n selectedAttributes: DeviceSelectedAttribute[];\n selectedId?: string;\n selectedIssues: DeviceIssueOptionKey[];\n selection: number[];\n setOnly?: boolean;\n sort: SortOptions & Partial<SortCriteria>;\n state?: DeviceAuthState | typeof ALL_DEVICE_STATES;\n total: number;\n};\ntype DeviceReport = {\n items: { count: number; key: string }[];\n otherCount: number;\n total: number;\n};\nexport type DeviceGroup = { deviceIds?: string[]; filters?: DeviceFilter[]; id?: string; total?: number };\nexport type InventoryAttributes = {\n [key: string]: string | string[];\n artifact_name: string;\n device_type: string[];\n};\n\n// based on the api docs the Record values might be even: \"Supported types: number, string, array of numbers, array of strings\" - but I guess \"string\" or \"string | sting[]\" should be good enough\ntype UiDeviceAttributes = {\n attributes: InventoryAttributes;\n identity?: Record<string, string>;\n monitor?: Record<string, string>;\n system: Record<string, string>;\n tags?: Record<string, string>;\n};\n\nexport type Device = BackendDeviceAuth &\n UiDeviceAttributes & {\n check_in_time_exact?: string;\n check_in_time_rounded?: string;\n config?: DeviceConfiguration;\n connect_status?: ConnectionState['status'];\n connect_updated_ts?: string;\n deploymentsCount?: number;\n deviceDeployments?: DeviceDeployment;\n etag?: string;\n gatewayIds?: string[];\n group?: string;\n id: string;\n isNew?: boolean;\n isOffline?: boolean;\n monitors?: MonitorConfiguration[];\n status: Status;\n twinsByIntegration?: Record<string, DeviceState & { twinError?: string }>;\n };\nexport type DeviceFilter = {\n key: string;\n operator: FilterOperator;\n scope: Scope;\n value: string | string[];\n};\ntype FilteringAttributes = {\n identityAttributes: string[];\n inventoryAttributes: string[];\n systemAttributes: string[];\n tagAttributes: string[];\n};\ntype FilteringAttributesConfig = {\n attributes: Record<string, string[]>;\n count: number;\n limit: number;\n};\n\nexport type DeviceGroups = {\n byId: Record<string, DeviceGroup>;\n selectedGroup?: string;\n};\nexport type DeviceSliceType = {\n byId: Record<string, Device>;\n byStatus: Record<DeviceAuthState, { counts: DeviceTierLimits & { total: number }; deviceIds: string[] }>;\n deviceList: DeviceListState;\n filteringAttributes: FilteringAttributes;\n filteringAttributesConfig: FilteringAttributesConfig;\n filteringAttributesLimit: number;\n filters: DeviceFilter[];\n groups: DeviceGroups;\n limits: DeviceTierLimits;\n reports: DeviceReport[];\n total: number;\n};\nexport const initialState: DeviceSliceType = {\n byId: {\n // [deviceId]: {\n // ...,\n // twinsByIntegration: { [external.provider.id]: twinData }\n // }\n },\n byStatus: {\n [DEVICE_STATES.accepted]: { deviceIds: [], counts: { standard: 0, micro: 0, system: 0, total: 0 } },\n [DEVICE_STATES.pending]: { deviceIds: [], counts: { standard: 0, micro: 0, system: 0, total: 0 } },\n [DEVICE_STATES.preauth]: { deviceIds: [], counts: { standard: 0, micro: 0, system: 0, total: 0 } },\n [DEVICE_STATES.rejected]: { deviceIds: [], counts: { standard: 0, micro: 0, system: 0, total: 0 } }\n },\n deviceList: {\n deviceIds: [],\n ...DEVICE_LIST_DEFAULTS,\n selectedAttributes: [],\n selectedIssues: [],\n selection: [],\n sort: {\n direction: SORTING_OPTIONS.desc\n // key: null,\n // scope: null\n },\n state: DEVICE_STATES.accepted,\n total: 0,\n refreshTrigger: false,\n isLoading: false,\n detailsTab: '',\n open: false\n },\n filters: [\n // { key: 'device_type', value: 'raspberry', operator: '$eq', scope: 'inventory' }\n ],\n filteringAttributes: { identityAttributes: [], inventoryAttributes: [], systemAttributes: [], tagAttributes: [] },\n filteringAttributesLimit: 10,\n filteringAttributesConfig: {\n attributes: {\n // inventory: ['some_attribute']\n },\n count: 0,\n limit: 100\n },\n reports: [\n // { items: [{ key: \"someKey\", count: 42 }], otherCount: 123, total: <otherCount + itemsCount> }\n ],\n total: 0,\n limits: {\n standard: 0,\n micro: 0,\n system: 0\n },\n groups: {\n byId: {\n // groupName: { deviceIds: [], total: 0, filters: [] },\n // dynamo: { deviceIds: [], total: 3, filters: [{ a: 1 }] }\n },\n selectedGroup: undefined\n }\n};\n\nexport const devicesSlice = createSlice({\n name: sliceName,\n initialState,\n reducers: {\n receivedGroups: (state, action: PayloadAction<Record<string, DeviceGroup>>) => {\n state.groups.byId = action.payload;\n },\n addToGroup: (state, action: PayloadAction<{ deviceIds: string[]; group: string }>) => {\n const { group, deviceIds } = action.payload;\n const maybeExistingGroup = {\n filters: [],\n deviceIds: [],\n ...state.groups.byId[group]\n };\n state.groups.byId[group] = {\n ...maybeExistingGroup,\n deviceIds: [...maybeExistingGroup.deviceIds, ...deviceIds].filter(duplicateFilter),\n total: (maybeExistingGroup.total || 0) + 1\n };\n },\n removeFromGroup: (state, action: PayloadAction<{ deviceIds: string[]; group: string }>) => {\n const { group, deviceIds: removedIds } = action.payload;\n const { deviceIds = [], total = 0, ...maybeExistingGroup } = state.groups.byId[group] || {};\n const changedGroup = {\n ...maybeExistingGroup,\n deviceIds: deviceIds.filter(id => !removedIds.includes(id)),\n total: Math.max(total - removedIds.length, 0)\n };\n if (changedGroup.total || changedGroup.deviceIds.length) {\n state.groups.byId[group] = changedGroup;\n return;\n } else if (state.groups.selectedGroup === group) {\n state.groups.selectedGroup = undefined;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [group]: removal, ...remainingById } = state.groups.byId;\n state.groups.byId = remainingById;\n },\n addGroup: (state, action: PayloadAction<{ group: DeviceGroup; groupName: string }>) => {\n const { groupName, group } = action.payload;\n state.groups.byId[groupName] = {\n ...state.groups.byId[groupName],\n ...group\n };\n },\n selectGroup: (state, { payload: group }: PayloadAction<string | undefined>) => {\n state.deviceList.deviceIds =\n group && state.groups.byId[group] && state.groups.byId[group].deviceIds && state.groups.byId[group].deviceIds.length > 0\n ? state.groups.byId[group].deviceIds\n : [];\n state.groups.selectedGroup = group;\n },\n removeGroup: (state, action: PayloadAction<string>) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [action.payload]: removal, ...remainingById } = state.groups.byId;\n state.groups.byId = remainingById;\n state.groups.selectedGroup = state.groups.selectedGroup === action.payload ? undefined : state.groups.selectedGroup;\n },\n setDeviceListState: (state, action: PayloadAction<Partial<DeviceListState>>) => {\n state.deviceList = {\n ...state.deviceList,\n ...action.payload,\n sort: {\n ...state.deviceList.sort,\n ...action.payload.sort\n }\n };\n },\n setFilterAttributes: (state, action: PayloadAction<FilteringAttributes>) => {\n state.filteringAttributes = action.payload;\n },\n setFilterablesConfig: (state, action: PayloadAction<FilteringAttributesConfig>) => {\n state.filteringAttributesConfig = action.payload;\n },\n receivedDevices: (state, action: PayloadAction<Record<string, Device>>) => {\n state.byId = {\n ...state.byId,\n ...action.payload\n };\n },\n setDeviceFilters: (state, action: PayloadAction<DeviceFilter[]>) => {\n if (deepCompare(action.payload, state.filters)) {\n return;\n }\n state.filters = action.payload.filter(filter => filter.key && filter.operator && filter.scope && typeof filter.value !== 'undefined');\n },\n setDeviceReports: (state, action: PayloadAction<DeviceReport[]>) => {\n state.reports = action.payload;\n },\n setDevicesByStatus: (state, action: PayloadAction<{ deviceIds: string[]; status: DeviceAuthState; total: number }>) => {\n const { status, total, deviceIds } = action.payload;\n if (total) {\n state.byStatus[status].deviceIds = deviceIds;\n state.byStatus[status].counts.total = total;\n }\n },\n setDevicesCountByStatus: (state, action: PayloadAction<{ countsPerTier: DeviceTierLimits; status: DeviceAuthState }>) => {\n const { countsPerTier, status } = action.payload;\n state.byStatus[status].counts = { ...countsPerTier, total: Object.values(countsPerTier).reduce((accu, tieredCount) => (accu += tieredCount), 0) };\n },\n setDeviceLimits: (state, action: PayloadAction<DeviceTierLimits>) => {\n state.limits = action.payload;\n },\n receivedDevice: (state, action: PayloadAction<{ id: string } & Partial<Device>>) => {\n state.byId[action.payload.id] = {\n ...state.byId[action.payload.id],\n ...action.payload\n };\n },\n maybeUpdateDevicesByStatus: (state, action: PayloadAction<{ authId?: string; deviceId: string }>) => {\n const { deviceId, authId } = action.payload;\n const device = state.byId[deviceId];\n const hasMultipleAuthSets = authId && device.auth_sets ? device.auth_sets.filter(authset => authset.id !== authId).length > 0 : false;\n if (!hasMultipleAuthSets && (Object.values(DEVICE_STATES) as string[]).includes(device.status)) {\n const deviceIds = state.byStatus[device.status].deviceIds.filter(id => id !== deviceId);\n const deviceTier = (device.attributes.tier as string) || 'standard';\n state.byStatus[device.status] = {\n deviceIds,\n counts: {\n ...state.byStatus[device.status].counts,\n [deviceTier]: Math.max(0, state.byStatus[device.status].counts[deviceTier] - 1),\n total: Math.max(0, state.byStatus[device.status].counts.total - 1)\n }\n };\n }\n }\n }\n});\n\nexport const actions = devicesSlice.actions;\nexport default devicesSlice.reducer;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["DEVICE_STATES","DEVICE_LIST_DEFAULTS","SORTING_OPTIONS","duplicateFilter"],"sources":["../../src/devicesSlice/index.ts"],"sourcesContent":["// Copyright 2023 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 {\n Device as BackendDeviceAuth,\n ConnectionState,\n DeviceConfiguration,\n DeviceState,\n DeviceTierLimits,\n MonitorConfiguration,\n Scope,\n SortCriteria,\n Status\n} from '@northern.tech/types/MenderTypes';\n// @ts-nocheck\nimport { deepCompare, duplicateFilter } from '@northern.tech/utils/helpers';\nimport type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\n\nimport type { ALL_DEVICE_STATES, DeviceIssueOptionKey, FilterOperator, SortOptions } from '../constants';\nimport { DEVICE_LIST_DEFAULTS, DEVICE_STATES, SORTING_OPTIONS } from '../constants';\nimport type { DeviceDeployment } from '../deploymentsSlice';\nimport type { DeviceAuthState } from './constants';\n\nexport const sliceName = 'devices';\nexport type DeviceSelectedAttribute = { attribute: string; scope: string };\nexport type DeviceListState = {\n detailsTab: string;\n deviceIds: string[];\n isLoading: boolean;\n open?: boolean;\n page: number;\n perPage: number;\n refreshTrigger: boolean;\n selectedAttributes: DeviceSelectedAttribute[];\n selectedId?: string;\n selectedIssues: DeviceIssueOptionKey[];\n selection: number[];\n setOnly?: boolean;\n sort: SortOptions & Partial<SortCriteria>;\n state?: DeviceAuthState | typeof ALL_DEVICE_STATES;\n total: number;\n};\ntype DeviceReport = {\n items: { count: number; key: string }[];\n otherCount: number;\n total: number;\n};\nexport type DeviceGroup = { deviceIds?: string[]; filters?: DeviceFilter[]; id?: string; total?: number };\nexport type InventoryAttributes = {\n [key: string]: string | string[];\n artifact_name: string;\n device_type: string[];\n};\n\n// based on the api docs the Record values might be even: \"Supported types: number, string, array of numbers, array of strings\" - but I guess \"string\" or \"string | sting[]\" should be good enough\ntype UiDeviceAttributes = {\n attributes: InventoryAttributes;\n identity?: Record<string, string>;\n monitor?: Record<string, string>;\n system: Record<string, string>;\n tags?: Record<string, string>;\n};\n\nexport type Device = BackendDeviceAuth &\n UiDeviceAttributes & {\n check_in_time_exact?: string;\n check_in_time_rounded?: string;\n config?: DeviceConfiguration;\n connect_status?: ConnectionState['status'];\n connect_updated_ts?: string;\n deploymentsCount?: number;\n deviceDeployments?: DeviceDeployment;\n etag?: string;\n gatewayIds?: string[];\n group?: string;\n id: string;\n isNew?: boolean;\n isOffline?: boolean;\n monitors?: MonitorConfiguration[];\n status: Status;\n twinsByIntegration?: Record<string, DeviceState & { twinError?: string }>;\n };\nexport type DeviceFilter = {\n key: string;\n operator: FilterOperator;\n scope: Scope;\n value: string | string[];\n};\ntype FilteringAttributes = {\n identityAttributes: string[];\n inventoryAttributes: string[];\n systemAttributes: string[];\n tagAttributes: string[];\n};\ntype FilteringAttributesConfig = {\n attributes: Record<string, string[]>;\n count: number;\n limit: number;\n};\n\nexport type DeviceGroups = {\n byId: Record<string, DeviceGroup>;\n selectedGroup?: string;\n};\nexport type DeviceSliceType = {\n byId: Record<string, Device>;\n byStatus: Record<DeviceAuthState, { counts: DeviceTierLimits & { total: number }; deviceIds: string[] }>;\n deviceList: DeviceListState;\n filteringAttributes: FilteringAttributes;\n filteringAttributesConfig: FilteringAttributesConfig;\n filteringAttributesLimit: number;\n filters: DeviceFilter[];\n groups: DeviceGroups;\n limits: DeviceTierLimits;\n reports: DeviceReport[];\n total: number;\n};\nexport const initialState: DeviceSliceType = {\n byId: {\n // [deviceId]: {\n // ...,\n // twinsByIntegration: { [external.provider.id]: twinData }\n // }\n },\n byStatus: {\n [DEVICE_STATES.accepted]: { deviceIds: [], counts: { standard: 0, micro: 0, system: 0, total: 0 } },\n [DEVICE_STATES.pending]: { deviceIds: [], counts: { standard: 0, micro: 0, system: 0, total: 0 } },\n [DEVICE_STATES.preauth]: { deviceIds: [], counts: { standard: 0, micro: 0, system: 0, total: 0 } },\n [DEVICE_STATES.rejected]: { deviceIds: [], counts: { standard: 0, micro: 0, system: 0, total: 0 } }\n },\n deviceList: {\n deviceIds: [],\n ...DEVICE_LIST_DEFAULTS,\n selectedAttributes: [],\n selectedIssues: [],\n selection: [],\n sort: {\n direction: SORTING_OPTIONS.desc\n // key: null,\n // scope: null\n },\n state: DEVICE_STATES.accepted,\n total: 0,\n refreshTrigger: false,\n isLoading: false,\n detailsTab: '',\n open: false\n },\n filters: [\n // { key: 'device_type', value: 'raspberry', operator: '$eq', scope: 'inventory' }\n ],\n filteringAttributes: { identityAttributes: [], inventoryAttributes: [], systemAttributes: [], tagAttributes: [] },\n filteringAttributesLimit: 10,\n filteringAttributesConfig: {\n attributes: {\n // inventory: ['some_attribute']\n },\n count: 0,\n limit: 100\n },\n reports: [\n // { items: [{ key: \"someKey\", count: 42 }], otherCount: 123, total: <otherCount + itemsCount> }\n ],\n total: 0,\n limits: {\n standard: 0,\n micro: 0,\n system: 0\n },\n groups: {\n byId: {\n // groupName: { deviceIds: [], total: 0, filters: [] },\n // dynamo: { deviceIds: [], total: 3, filters: [{ a: 1 }] }\n },\n selectedGroup: undefined\n }\n};\n\nexport const devicesSlice = createSlice({\n name: sliceName,\n initialState,\n reducers: {\n receivedGroups: (state, action: PayloadAction<Record<string, DeviceGroup>>) => {\n state.groups.byId = action.payload;\n },\n addToGroup: (state, action: PayloadAction<{ deviceIds: string[]; group: string }>) => {\n const { group, deviceIds } = action.payload;\n const maybeExistingGroup = {\n filters: [],\n deviceIds: [],\n ...state.groups.byId[group]\n };\n state.groups.byId[group] = {\n ...maybeExistingGroup,\n deviceIds: [...maybeExistingGroup.deviceIds, ...deviceIds].filter(duplicateFilter),\n total: (maybeExistingGroup.total || 0) + 1\n };\n },\n removeFromGroup: (state, action: PayloadAction<{ deviceIds: string[]; group: string }>) => {\n const { group, deviceIds: removedIds } = action.payload;\n const { deviceIds = [], total = 0, ...maybeExistingGroup } = state.groups.byId[group] || {};\n const changedGroup = {\n ...maybeExistingGroup,\n deviceIds: deviceIds.filter(id => !removedIds.includes(id)),\n total: Math.max(total - removedIds.length, 0)\n };\n if (changedGroup.total || changedGroup.deviceIds.length) {\n state.groups.byId[group] = changedGroup;\n return;\n } else if (state.groups.selectedGroup === group) {\n state.groups.selectedGroup = undefined;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [group]: removal, ...remainingById } = state.groups.byId;\n state.groups.byId = remainingById;\n },\n addGroup: (state, action: PayloadAction<{ group: DeviceGroup; groupName: string }>) => {\n const { groupName, group } = action.payload;\n state.groups.byId[groupName] = {\n ...state.groups.byId[groupName],\n ...group\n };\n },\n selectGroup: (state, { payload: group }: PayloadAction<string | undefined>) => {\n state.deviceList.deviceIds =\n group && state.groups.byId[group] && state.groups.byId[group].deviceIds && state.groups.byId[group].deviceIds.length > 0\n ? state.groups.byId[group].deviceIds\n : [];\n state.groups.selectedGroup = group;\n },\n removeGroup: (state, action: PayloadAction<string>) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [action.payload]: removal, ...remainingById } = state.groups.byId;\n state.groups.byId = remainingById;\n state.groups.selectedGroup = state.groups.selectedGroup === action.payload ? undefined : state.groups.selectedGroup;\n },\n setDeviceListState: (state, action: PayloadAction<Partial<DeviceListState>>) => {\n state.deviceList = {\n ...state.deviceList,\n ...action.payload,\n sort: {\n ...state.deviceList.sort,\n ...action.payload.sort\n }\n };\n },\n setFilterAttributes: (state, action: PayloadAction<FilteringAttributes>) => {\n state.filteringAttributes = action.payload;\n },\n setFilterablesConfig: (state, action: PayloadAction<FilteringAttributesConfig>) => {\n state.filteringAttributesConfig = action.payload;\n },\n receivedDevices: (state, action: PayloadAction<Record<string, Device>>) => {\n state.byId = {\n ...state.byId,\n ...action.payload\n };\n },\n setDeviceFilters: (state, action: PayloadAction<DeviceFilter[]>) => {\n if (deepCompare(action.payload, state.filters)) {\n return;\n }\n state.filters = action.payload.filter(filter => filter.key && filter.operator && filter.scope && typeof filter.value !== 'undefined');\n },\n setDeviceReports: (state, action: PayloadAction<DeviceReport[]>) => {\n state.reports = action.payload;\n },\n setDevicesByStatus: (state, action: PayloadAction<{ deviceIds: string[]; status: DeviceAuthState; total: number }>) => {\n const { status, total, deviceIds } = action.payload;\n if (total) {\n state.byStatus[status].deviceIds = deviceIds;\n state.byStatus[status].counts.total = total;\n }\n },\n setDevicesCountByStatus: (state, action: PayloadAction<{ countsPerTier: DeviceTierLimits; status: DeviceAuthState }>) => {\n const { countsPerTier, status } = action.payload;\n state.byStatus[status].counts = { ...countsPerTier, total: Object.values(countsPerTier).reduce((accu, tieredCount) => (accu += tieredCount), 0) };\n },\n setDeviceLimits: (state, action: PayloadAction<DeviceTierLimits>) => {\n state.limits = action.payload;\n },\n receivedDevice: (state, action: PayloadAction<{ id: string } & Partial<Device>>) => {\n state.byId[action.payload.id] = {\n ...state.byId[action.payload.id],\n ...action.payload\n };\n },\n maybeUpdateDevicesByStatus: (state, action: PayloadAction<{ authId?: string; deviceId: string }>) => {\n const { deviceId, authId } = action.payload;\n const device = state.byId[deviceId];\n const hasMultipleAuthSets = authId && device.auth_sets ? device.auth_sets.filter(authset => authset.id !== authId).length > 0 : false;\n if (!hasMultipleAuthSets && (Object.values(DEVICE_STATES) as string[]).includes(device.status)) {\n const deviceIds = state.byStatus[device.status].deviceIds.filter(id => id !== deviceId);\n const deviceTier = (device.attributes.tier as string) || 'standard';\n state.byStatus[device.status] = {\n deviceIds,\n counts: {\n ...state.byStatus[device.status].counts,\n [deviceTier]: Math.max(0, state.byStatus[device.status].counts[deviceTier] - 1),\n total: Math.max(0, state.byStatus[device.status].counts.total - 1)\n }\n };\n }\n }\n }\n});\n\nexport const actions = devicesSlice.actions;\nexport default devicesSlice.reducer;\n"],"mappings":";;;;;;;;AAkCA,MAAa,YAAY;AA8FzB,MAAa,eAAgC;CAC3C,MAAM,CAKN;CACA,UAAU;GACPA,+BAAAA,cAAc,WAAW;GAAE,WAAW,CAAC;GAAG,QAAQ;IAAE,UAAU;IAAG,OAAO;IAAG,QAAQ;IAAG,OAAO;GAAE;EAAE;GACjGA,+BAAAA,cAAc,UAAU;GAAE,WAAW,CAAC;GAAG,QAAQ;IAAE,UAAU;IAAG,OAAO;IAAG,QAAQ;IAAG,OAAO;GAAE;EAAE;GAChGA,+BAAAA,cAAc,UAAU;GAAE,WAAW,CAAC;GAAG,QAAQ;IAAE,UAAU;IAAG,OAAO;IAAG,QAAQ;IAAG,OAAO;GAAE;EAAE;GAChGA,+BAAAA,cAAc,WAAW;GAAE,WAAW,CAAC;GAAG,QAAQ;IAAE,UAAU;IAAG,OAAO;IAAG,QAAQ;IAAG,OAAO;GAAE;EAAE;CACpG;CACA,YAAY;EACV,WAAW,CAAC;EACZ,GAAGC,+BAAAA;EACH,oBAAoB,CAAC;EACrB,gBAAgB,CAAC;EACjB,WAAW,CAAC;EACZ,MAAM,EACJ,WAAWC,+BAAAA,gBAAgB,KAG7B;EACA,OAAOF,+BAAAA,cAAc;EACrB,OAAO;EACP,gBAAgB;EAChB,WAAW;EACX,YAAY;EACZ,MAAM;CACR;CACA,SAAS,CAET;CACA,qBAAqB;EAAE,oBAAoB,CAAC;EAAG,qBAAqB,CAAC;EAAG,kBAAkB,CAAC;EAAG,eAAe,CAAC;CAAE;CAChH,0BAA0B;CAC1B,2BAA2B;EACzB,YAAY,CAEZ;EACA,OAAO;EACP,OAAO;CACT;CACA,SAAS,CAET;CACA,OAAO;CACP,QAAQ;EACN,UAAU;EACV,OAAO;EACP,QAAQ;CACV;CACA,QAAQ;EACN,MAAM,CAGN;EACA,eAAe,KAAA;CACjB;AACF;AAEA,MAAa,gBAAA,GAAA,iBAAA,YAAA,CAA2B;CACtC,MAAM;CACN;CACA,UAAU;EACR,iBAAiB,OAAO,WAAuD;GAC7E,MAAM,OAAO,OAAO,OAAO;EAC7B;EACA,aAAa,OAAO,WAAkE;GACpF,MAAM,EAAE,OAAO,cAAc,OAAO;GACpC,MAAM,qBAAqB;IACzB,SAAS,CAAC;IACV,WAAW,CAAC;IACZ,GAAG,MAAM,OAAO,KAAK;GACvB;GACA,MAAM,OAAO,KAAK,SAAS;IACzB,GAAG;IACH,WAAW,CAAC,GAAG,mBAAmB,WAAW,GAAG,SAAS,CAAC,CAAC,OAAOG,6BAAAA,eAAe;IACjF,QAAQ,mBAAmB,SAAS,KAAK;GAC3C;EACF;EACA,kBAAkB,OAAO,WAAkE;GACzF,MAAM,EAAE,OAAO,WAAW,eAAe,OAAO;GAChD,MAAM,EAAE,YAAY,CAAC,GAAG,QAAQ,GAAG,GAAG,uBAAuB,MAAM,OAAO,KAAK,UAAU,CAAC;GAC1F,MAAM,eAAe;IACnB,GAAG;IACH,WAAW,UAAU,QAAO,OAAM,CAAC,WAAW,SAAS,EAAE,CAAC;IAC1D,OAAO,KAAK,IAAI,QAAQ,WAAW,QAAQ,CAAC;GAC9C;GACA,IAAI,aAAa,SAAS,aAAa,UAAU,QAAQ;IACvD,MAAM,OAAO,KAAK,SAAS;IAC3B;GACF,OAAO,IAAI,MAAM,OAAO,kBAAkB,OACxC,MAAM,OAAO,gBAAgB,KAAA;GAG/B,MAAM,GAAG,QAAQ,SAAS,GAAG,kBAAkB,MAAM,OAAO;GAC5D,MAAM,OAAO,OAAO;EACtB;EACA,WAAW,OAAO,WAAqE;GACrF,MAAM,EAAE,WAAW,UAAU,OAAO;GACpC,MAAM,OAAO,KAAK,aAAa;IAC7B,GAAG,MAAM,OAAO,KAAK;IACrB,GAAG;GACL;EACF;EACA,cAAc,OAAO,EAAE,SAAS,YAA+C;GAC7E,MAAM,WAAW,YACf,SAAS,MAAM,OAAO,KAAK,UAAU,MAAM,OAAO,KAAK,MAAM,CAAC,aAAa,MAAM,OAAO,KAAK,MAAM,CAAC,UAAU,SAAS,IACnH,MAAM,OAAO,KAAK,MAAM,CAAC,YACzB,CAAC;GACP,MAAM,OAAO,gBAAgB;EAC/B;EACA,cAAc,OAAO,WAAkC;GAErD,MAAM,GAAG,OAAO,UAAU,SAAS,GAAG,kBAAkB,MAAM,OAAO;GACrE,MAAM,OAAO,OAAO;GACpB,MAAM,OAAO,gBAAgB,MAAM,OAAO,kBAAkB,OAAO,UAAU,KAAA,IAAY,MAAM,OAAO;EACxG;EACA,qBAAqB,OAAO,WAAoD;GAC9E,MAAM,aAAa;IACjB,GAAG,MAAM;IACT,GAAG,OAAO;IACV,MAAM;KACJ,GAAG,MAAM,WAAW;KACpB,GAAG,OAAO,QAAQ;IACpB;GACF;EACF;EACA,sBAAsB,OAAO,WAA+C;GAC1E,MAAM,sBAAsB,OAAO;EACrC;EACA,uBAAuB,OAAO,WAAqD;GACjF,MAAM,4BAA4B,OAAO;EAC3C;EACA,kBAAkB,OAAO,WAAkD;GACzE,MAAM,OAAO;IACX,GAAG,MAAM;IACT,GAAG,OAAO;GACZ;EACF;EACA,mBAAmB,OAAO,WAA0C;GAClE,KAAA,GAAA,6BAAA,YAAA,CAAgB,OAAO,SAAS,MAAM,OAAO,GAC3C;GAEF,MAAM,UAAU,OAAO,QAAQ,QAAO,WAAU,OAAO,OAAO,OAAO,YAAY,OAAO,SAAS,OAAO,OAAO,UAAU,WAAW;EACtI;EACA,mBAAmB,OAAO,WAA0C;GAClE,MAAM,UAAU,OAAO;EACzB;EACA,qBAAqB,OAAO,WAA2F;GACrH,MAAM,EAAE,QAAQ,OAAO,cAAc,OAAO;GAC5C,IAAI,OAAO;IACT,MAAM,SAAS,OAAO,CAAC,YAAY;IACnC,MAAM,SAAS,OAAO,CAAC,OAAO,QAAQ;GACxC;EACF;EACA,0BAA0B,OAAO,WAAwF;GACvH,MAAM,EAAE,eAAe,WAAW,OAAO;GACzC,MAAM,SAAS,OAAO,CAAC,SAAS;IAAE,GAAG;IAAe,OAAO,OAAO,OAAO,aAAa,CAAC,CAAC,QAAQ,MAAM,gBAAiB,QAAQ,aAAc,CAAC;GAAE;EAClJ;EACA,kBAAkB,OAAO,WAA4C;GACnE,MAAM,SAAS,OAAO;EACxB;EACA,iBAAiB,OAAO,WAA4D;GAClF,MAAM,KAAK,OAAO,QAAQ,MAAM;IAC9B,GAAG,MAAM,KAAK,OAAO,QAAQ;IAC7B,GAAG,OAAO;GACZ;EACF;EACA,6BAA6B,OAAO,WAAiE;GACnG,MAAM,EAAE,UAAU,WAAW,OAAO;GACpC,MAAM,SAAS,MAAM,KAAK;GAE1B,IAAI,EADwB,UAAU,OAAO,YAAY,OAAO,UAAU,QAAO,YAAW,QAAQ,OAAO,MAAM,CAAC,CAAC,SAAS,IAAI,UACnG,OAAO,OAAOH,+BAAAA,aAAa,CAAC,CAAc,SAAS,OAAO,MAAM,GAAG;IAC9F,MAAM,YAAY,MAAM,SAAS,OAAO,OAAO,CAAC,UAAU,QAAO,OAAM,OAAO,QAAQ;IACtF,MAAM,aAAc,OAAO,WAAW,QAAmB;IACzD,MAAM,SAAS,OAAO,UAAU;KAC9B;KACA,QAAQ;MACN,GAAG,MAAM,SAAS,OAAO,OAAO,CAAC;OAChC,aAAa,KAAK,IAAI,GAAG,MAAM,SAAS,OAAO,OAAO,CAAC,OAAO,cAAc,CAAC;MAC9E,OAAO,KAAK,IAAI,GAAG,MAAM,SAAS,OAAO,OAAO,CAAC,OAAO,QAAQ,CAAC;KACnE;IACF;GACF;EACF;CACF;AACF,CAAC;AAED,MAAa,UAAU,aAAa;AACpC,IAAA,uBAAe,aAAa"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as DeviceListState, c as InventoryAttributes, d as devicesSlice, f as initialState, i as DeviceGroups, l as _default, n as DeviceFilter, o as DeviceSelectedAttribute, p as sliceName, r as DeviceGroup, s as DeviceSliceType, t as Device, u as actions } from "../index-
|
|
1
|
+
import { a as DeviceListState, c as InventoryAttributes, d as devicesSlice, f as initialState, i as DeviceGroups, l as _default, n as DeviceFilter, o as DeviceSelectedAttribute, p as sliceName, r as DeviceGroup, s as DeviceSliceType, t as Device, u as actions } from "../index-DbfM03Gj.cjs";
|
|
2
2
|
export { Device, DeviceFilter, DeviceGroup, DeviceGroups, DeviceListState, DeviceSelectedAttribute, DeviceSliceType, InventoryAttributes, actions, _default as default, devicesSlice, initialState, sliceName };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as DeviceListState, c as InventoryAttributes, d as devicesSlice, f as initialState, i as DeviceGroups, l as _default, n as DeviceFilter, o as DeviceSelectedAttribute, p as sliceName, r as DeviceGroup, s as DeviceSliceType, t as Device, u as actions } from "../index-
|
|
1
|
+
import { a as DeviceListState, c as InventoryAttributes, d as devicesSlice, f as initialState, i as DeviceGroups, l as _default, n as DeviceFilter, o as DeviceSelectedAttribute, p as sliceName, r as DeviceGroup, s as DeviceSliceType, t as Device, u as actions } from "../index-CPdMUfRr.js";
|
|
2
2
|
export { Device, DeviceFilter, DeviceGroup, DeviceGroups, DeviceListState, DeviceSelectedAttribute, DeviceSliceType, InventoryAttributes, actions, _default as default, devicesSlice, initialState, sliceName };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/devicesSlice/index.ts"],"sourcesContent":["// Copyright 2023 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 {\n Device as BackendDeviceAuth,\n ConnectionState,\n DeviceConfiguration,\n DeviceState,\n DeviceTierLimits,\n MonitorConfiguration,\n Scope,\n SortCriteria,\n Status\n} from '@northern.tech/types/MenderTypes';\n// @ts-nocheck\nimport { deepCompare, duplicateFilter } from '@northern.tech/utils/helpers';\nimport type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\n\nimport type { ALL_DEVICE_STATES, DeviceIssueOptionKey, FilterOperator, SortOptions } from '../constants';\nimport { DEVICE_LIST_DEFAULTS, DEVICE_STATES, SORTING_OPTIONS } from '../constants';\nimport type { DeviceDeployment } from '../deploymentsSlice';\nimport type { DeviceAuthState } from './constants';\n\nexport const sliceName = 'devices';\nexport type DeviceSelectedAttribute = { attribute: string; scope: string };\nexport type DeviceListState = {\n detailsTab: string;\n deviceIds: string[];\n isLoading: boolean;\n open?: boolean;\n page: number;\n perPage: number;\n refreshTrigger: boolean;\n selectedAttributes: DeviceSelectedAttribute[];\n selectedId?: string;\n selectedIssues: DeviceIssueOptionKey[];\n selection: number[];\n setOnly?: boolean;\n sort: SortOptions & Partial<SortCriteria>;\n state?: DeviceAuthState | typeof ALL_DEVICE_STATES;\n total: number;\n};\ntype DeviceReport = {\n items: { count: number; key: string }[];\n otherCount: number;\n total: number;\n};\nexport type DeviceGroup = { deviceIds?: string[]; filters?: DeviceFilter[]; id?: string; total?: number };\nexport type InventoryAttributes = {\n [key: string]: string | string[];\n artifact_name: string;\n device_type: string[];\n};\n\n// based on the api docs the Record values might be even: \"Supported types: number, string, array of numbers, array of strings\" - but I guess \"string\" or \"string | sting[]\" should be good enough\ntype UiDeviceAttributes = {\n attributes: InventoryAttributes;\n identity?: Record<string, string>;\n monitor?: Record<string, string>;\n system: Record<string, string>;\n tags?: Record<string, string>;\n};\n\nexport type Device = BackendDeviceAuth &\n UiDeviceAttributes & {\n check_in_time_exact?: string;\n check_in_time_rounded?: string;\n config?: DeviceConfiguration;\n connect_status?: ConnectionState['status'];\n connect_updated_ts?: string;\n deploymentsCount?: number;\n deviceDeployments?: DeviceDeployment;\n etag?: string;\n gatewayIds?: string[];\n group?: string;\n id: string;\n isNew?: boolean;\n isOffline?: boolean;\n monitors?: MonitorConfiguration[];\n status: Status;\n twinsByIntegration?: Record<string, DeviceState & { twinError?: string }>;\n };\nexport type DeviceFilter = {\n key: string;\n operator: FilterOperator;\n scope: Scope;\n value: string | string[];\n};\ntype FilteringAttributes = {\n identityAttributes: string[];\n inventoryAttributes: string[];\n systemAttributes: string[];\n tagAttributes: string[];\n};\ntype FilteringAttributesConfig = {\n attributes: Record<string, string[]>;\n count: number;\n limit: number;\n};\n\nexport type DeviceGroups = {\n byId: Record<string, DeviceGroup>;\n selectedGroup?: string;\n};\nexport type DeviceSliceType = {\n byId: Record<string, Device>;\n byStatus: Record<DeviceAuthState, { counts: DeviceTierLimits & { total: number }; deviceIds: string[] }>;\n deviceList: DeviceListState;\n filteringAttributes: FilteringAttributes;\n filteringAttributesConfig: FilteringAttributesConfig;\n filteringAttributesLimit: number;\n filters: DeviceFilter[];\n groups: DeviceGroups;\n limits: DeviceTierLimits;\n reports: DeviceReport[];\n total: number;\n};\nexport const initialState: DeviceSliceType = {\n byId: {\n // [deviceId]: {\n // ...,\n // twinsByIntegration: { [external.provider.id]: twinData }\n // }\n },\n byStatus: {\n [DEVICE_STATES.accepted]: { deviceIds: [], counts: { standard: 0, micro: 0, system: 0, total: 0 } },\n [DEVICE_STATES.pending]: { deviceIds: [], counts: { standard: 0, micro: 0, system: 0, total: 0 } },\n [DEVICE_STATES.preauth]: { deviceIds: [], counts: { standard: 0, micro: 0, system: 0, total: 0 } },\n [DEVICE_STATES.rejected]: { deviceIds: [], counts: { standard: 0, micro: 0, system: 0, total: 0 } }\n },\n deviceList: {\n deviceIds: [],\n ...DEVICE_LIST_DEFAULTS,\n selectedAttributes: [],\n selectedIssues: [],\n selection: [],\n sort: {\n direction: SORTING_OPTIONS.desc\n // key: null,\n // scope: null\n },\n state: DEVICE_STATES.accepted,\n total: 0,\n refreshTrigger: false,\n isLoading: false,\n detailsTab: '',\n open: false\n },\n filters: [\n // { key: 'device_type', value: 'raspberry', operator: '$eq', scope: 'inventory' }\n ],\n filteringAttributes: { identityAttributes: [], inventoryAttributes: [], systemAttributes: [], tagAttributes: [] },\n filteringAttributesLimit: 10,\n filteringAttributesConfig: {\n attributes: {\n // inventory: ['some_attribute']\n },\n count: 0,\n limit: 100\n },\n reports: [\n // { items: [{ key: \"someKey\", count: 42 }], otherCount: 123, total: <otherCount + itemsCount> }\n ],\n total: 0,\n limits: {\n standard: 0,\n micro: 0,\n system: 0\n },\n groups: {\n byId: {\n // groupName: { deviceIds: [], total: 0, filters: [] },\n // dynamo: { deviceIds: [], total: 3, filters: [{ a: 1 }] }\n },\n selectedGroup: undefined\n }\n};\n\nexport const devicesSlice = createSlice({\n name: sliceName,\n initialState,\n reducers: {\n receivedGroups: (state, action: PayloadAction<Record<string, DeviceGroup>>) => {\n state.groups.byId = action.payload;\n },\n addToGroup: (state, action: PayloadAction<{ deviceIds: string[]; group: string }>) => {\n const { group, deviceIds } = action.payload;\n const maybeExistingGroup = {\n filters: [],\n deviceIds: [],\n ...state.groups.byId[group]\n };\n state.groups.byId[group] = {\n ...maybeExistingGroup,\n deviceIds: [...maybeExistingGroup.deviceIds, ...deviceIds].filter(duplicateFilter),\n total: (maybeExistingGroup.total || 0) + 1\n };\n },\n removeFromGroup: (state, action: PayloadAction<{ deviceIds: string[]; group: string }>) => {\n const { group, deviceIds: removedIds } = action.payload;\n const { deviceIds = [], total = 0, ...maybeExistingGroup } = state.groups.byId[group] || {};\n const changedGroup = {\n ...maybeExistingGroup,\n deviceIds: deviceIds.filter(id => !removedIds.includes(id)),\n total: Math.max(total - removedIds.length, 0)\n };\n if (changedGroup.total || changedGroup.deviceIds.length) {\n state.groups.byId[group] = changedGroup;\n return;\n } else if (state.groups.selectedGroup === group) {\n state.groups.selectedGroup = undefined;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [group]: removal, ...remainingById } = state.groups.byId;\n state.groups.byId = remainingById;\n },\n addGroup: (state, action: PayloadAction<{ group: DeviceGroup; groupName: string }>) => {\n const { groupName, group } = action.payload;\n state.groups.byId[groupName] = {\n ...state.groups.byId[groupName],\n ...group\n };\n },\n selectGroup: (state, { payload: group }: PayloadAction<string | undefined>) => {\n state.deviceList.deviceIds =\n group && state.groups.byId[group] && state.groups.byId[group].deviceIds && state.groups.byId[group].deviceIds.length > 0\n ? state.groups.byId[group].deviceIds\n : [];\n state.groups.selectedGroup = group;\n },\n removeGroup: (state, action: PayloadAction<string>) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [action.payload]: removal, ...remainingById } = state.groups.byId;\n state.groups.byId = remainingById;\n state.groups.selectedGroup = state.groups.selectedGroup === action.payload ? undefined : state.groups.selectedGroup;\n },\n setDeviceListState: (state, action: PayloadAction<Partial<DeviceListState>>) => {\n state.deviceList = {\n ...state.deviceList,\n ...action.payload,\n sort: {\n ...state.deviceList.sort,\n ...action.payload.sort\n }\n };\n },\n setFilterAttributes: (state, action: PayloadAction<FilteringAttributes>) => {\n state.filteringAttributes = action.payload;\n },\n setFilterablesConfig: (state, action: PayloadAction<FilteringAttributesConfig>) => {\n state.filteringAttributesConfig = action.payload;\n },\n receivedDevices: (state, action: PayloadAction<Record<string, Device>>) => {\n state.byId = {\n ...state.byId,\n ...action.payload\n };\n },\n setDeviceFilters: (state, action: PayloadAction<DeviceFilter[]>) => {\n if (deepCompare(action.payload, state.filters)) {\n return;\n }\n state.filters = action.payload.filter(filter => filter.key && filter.operator && filter.scope && typeof filter.value !== 'undefined');\n },\n setDeviceReports: (state, action: PayloadAction<DeviceReport[]>) => {\n state.reports = action.payload;\n },\n setDevicesByStatus: (state, action: PayloadAction<{ deviceIds: string[]; status: DeviceAuthState; total: number }>) => {\n const { status, total, deviceIds } = action.payload;\n if (total) {\n state.byStatus[status].deviceIds = deviceIds;\n state.byStatus[status].counts.total = total;\n }\n },\n setDevicesCountByStatus: (state, action: PayloadAction<{ countsPerTier: DeviceTierLimits; status: DeviceAuthState }>) => {\n const { countsPerTier, status } = action.payload;\n state.byStatus[status].counts = { ...countsPerTier, total: Object.values(countsPerTier).reduce((accu, tieredCount) => (accu += tieredCount), 0) };\n },\n setDeviceLimits: (state, action: PayloadAction<DeviceTierLimits>) => {\n state.limits = action.payload;\n },\n receivedDevice: (state, action: PayloadAction<{ id: string } & Partial<Device>>) => {\n state.byId[action.payload.id] = {\n ...state.byId[action.payload.id],\n ...action.payload\n };\n },\n maybeUpdateDevicesByStatus: (state, action: PayloadAction<{ authId?: string; deviceId: string }>) => {\n const { deviceId, authId } = action.payload;\n const device = state.byId[deviceId];\n const hasMultipleAuthSets = authId && device.auth_sets ? device.auth_sets.filter(authset => authset.id !== authId).length > 0 : false;\n if (!hasMultipleAuthSets && (Object.values(DEVICE_STATES) as string[]).includes(device.status)) {\n const deviceIds = state.byStatus[device.status].deviceIds.filter(id => id !== deviceId);\n const deviceTier = (device.attributes.tier as string) || 'standard';\n state.byStatus[device.status] = {\n deviceIds,\n counts: {\n ...state.byStatus[device.status].counts,\n [deviceTier]: Math.max(0, state.byStatus[device.status].counts[deviceTier] - 1),\n total: Math.max(0, state.byStatus[device.status].counts.total - 1)\n }\n };\n }\n }\n }\n});\n\nexport const actions = devicesSlice.actions;\nexport default devicesSlice.reducer;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/devicesSlice/index.ts"],"sourcesContent":["// Copyright 2023 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 {\n Device as BackendDeviceAuth,\n ConnectionState,\n DeviceConfiguration,\n DeviceState,\n DeviceTierLimits,\n MonitorConfiguration,\n Scope,\n SortCriteria,\n Status\n} from '@northern.tech/types/MenderTypes';\n// @ts-nocheck\nimport { deepCompare, duplicateFilter } from '@northern.tech/utils/helpers';\nimport type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\n\nimport type { ALL_DEVICE_STATES, DeviceIssueOptionKey, FilterOperator, SortOptions } from '../constants';\nimport { DEVICE_LIST_DEFAULTS, DEVICE_STATES, SORTING_OPTIONS } from '../constants';\nimport type { DeviceDeployment } from '../deploymentsSlice';\nimport type { DeviceAuthState } from './constants';\n\nexport const sliceName = 'devices';\nexport type DeviceSelectedAttribute = { attribute: string; scope: string };\nexport type DeviceListState = {\n detailsTab: string;\n deviceIds: string[];\n isLoading: boolean;\n open?: boolean;\n page: number;\n perPage: number;\n refreshTrigger: boolean;\n selectedAttributes: DeviceSelectedAttribute[];\n selectedId?: string;\n selectedIssues: DeviceIssueOptionKey[];\n selection: number[];\n setOnly?: boolean;\n sort: SortOptions & Partial<SortCriteria>;\n state?: DeviceAuthState | typeof ALL_DEVICE_STATES;\n total: number;\n};\ntype DeviceReport = {\n items: { count: number; key: string }[];\n otherCount: number;\n total: number;\n};\nexport type DeviceGroup = { deviceIds?: string[]; filters?: DeviceFilter[]; id?: string; total?: number };\nexport type InventoryAttributes = {\n [key: string]: string | string[];\n artifact_name: string;\n device_type: string[];\n};\n\n// based on the api docs the Record values might be even: \"Supported types: number, string, array of numbers, array of strings\" - but I guess \"string\" or \"string | sting[]\" should be good enough\ntype UiDeviceAttributes = {\n attributes: InventoryAttributes;\n identity?: Record<string, string>;\n monitor?: Record<string, string>;\n system: Record<string, string>;\n tags?: Record<string, string>;\n};\n\nexport type Device = BackendDeviceAuth &\n UiDeviceAttributes & {\n check_in_time_exact?: string;\n check_in_time_rounded?: string;\n config?: DeviceConfiguration;\n connect_status?: ConnectionState['status'];\n connect_updated_ts?: string;\n deploymentsCount?: number;\n deviceDeployments?: DeviceDeployment;\n etag?: string;\n gatewayIds?: string[];\n group?: string;\n id: string;\n isNew?: boolean;\n isOffline?: boolean;\n monitors?: MonitorConfiguration[];\n status: Status;\n twinsByIntegration?: Record<string, DeviceState & { twinError?: string }>;\n };\nexport type DeviceFilter = {\n key: string;\n operator: FilterOperator;\n scope: Scope;\n value: string | string[];\n};\ntype FilteringAttributes = {\n identityAttributes: string[];\n inventoryAttributes: string[];\n systemAttributes: string[];\n tagAttributes: string[];\n};\ntype FilteringAttributesConfig = {\n attributes: Record<string, string[]>;\n count: number;\n limit: number;\n};\n\nexport type DeviceGroups = {\n byId: Record<string, DeviceGroup>;\n selectedGroup?: string;\n};\nexport type DeviceSliceType = {\n byId: Record<string, Device>;\n byStatus: Record<DeviceAuthState, { counts: DeviceTierLimits & { total: number }; deviceIds: string[] }>;\n deviceList: DeviceListState;\n filteringAttributes: FilteringAttributes;\n filteringAttributesConfig: FilteringAttributesConfig;\n filteringAttributesLimit: number;\n filters: DeviceFilter[];\n groups: DeviceGroups;\n limits: DeviceTierLimits;\n reports: DeviceReport[];\n total: number;\n};\nexport const initialState: DeviceSliceType = {\n byId: {\n // [deviceId]: {\n // ...,\n // twinsByIntegration: { [external.provider.id]: twinData }\n // }\n },\n byStatus: {\n [DEVICE_STATES.accepted]: { deviceIds: [], counts: { standard: 0, micro: 0, system: 0, total: 0 } },\n [DEVICE_STATES.pending]: { deviceIds: [], counts: { standard: 0, micro: 0, system: 0, total: 0 } },\n [DEVICE_STATES.preauth]: { deviceIds: [], counts: { standard: 0, micro: 0, system: 0, total: 0 } },\n [DEVICE_STATES.rejected]: { deviceIds: [], counts: { standard: 0, micro: 0, system: 0, total: 0 } }\n },\n deviceList: {\n deviceIds: [],\n ...DEVICE_LIST_DEFAULTS,\n selectedAttributes: [],\n selectedIssues: [],\n selection: [],\n sort: {\n direction: SORTING_OPTIONS.desc\n // key: null,\n // scope: null\n },\n state: DEVICE_STATES.accepted,\n total: 0,\n refreshTrigger: false,\n isLoading: false,\n detailsTab: '',\n open: false\n },\n filters: [\n // { key: 'device_type', value: 'raspberry', operator: '$eq', scope: 'inventory' }\n ],\n filteringAttributes: { identityAttributes: [], inventoryAttributes: [], systemAttributes: [], tagAttributes: [] },\n filteringAttributesLimit: 10,\n filteringAttributesConfig: {\n attributes: {\n // inventory: ['some_attribute']\n },\n count: 0,\n limit: 100\n },\n reports: [\n // { items: [{ key: \"someKey\", count: 42 }], otherCount: 123, total: <otherCount + itemsCount> }\n ],\n total: 0,\n limits: {\n standard: 0,\n micro: 0,\n system: 0\n },\n groups: {\n byId: {\n // groupName: { deviceIds: [], total: 0, filters: [] },\n // dynamo: { deviceIds: [], total: 3, filters: [{ a: 1 }] }\n },\n selectedGroup: undefined\n }\n};\n\nexport const devicesSlice = createSlice({\n name: sliceName,\n initialState,\n reducers: {\n receivedGroups: (state, action: PayloadAction<Record<string, DeviceGroup>>) => {\n state.groups.byId = action.payload;\n },\n addToGroup: (state, action: PayloadAction<{ deviceIds: string[]; group: string }>) => {\n const { group, deviceIds } = action.payload;\n const maybeExistingGroup = {\n filters: [],\n deviceIds: [],\n ...state.groups.byId[group]\n };\n state.groups.byId[group] = {\n ...maybeExistingGroup,\n deviceIds: [...maybeExistingGroup.deviceIds, ...deviceIds].filter(duplicateFilter),\n total: (maybeExistingGroup.total || 0) + 1\n };\n },\n removeFromGroup: (state, action: PayloadAction<{ deviceIds: string[]; group: string }>) => {\n const { group, deviceIds: removedIds } = action.payload;\n const { deviceIds = [], total = 0, ...maybeExistingGroup } = state.groups.byId[group] || {};\n const changedGroup = {\n ...maybeExistingGroup,\n deviceIds: deviceIds.filter(id => !removedIds.includes(id)),\n total: Math.max(total - removedIds.length, 0)\n };\n if (changedGroup.total || changedGroup.deviceIds.length) {\n state.groups.byId[group] = changedGroup;\n return;\n } else if (state.groups.selectedGroup === group) {\n state.groups.selectedGroup = undefined;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [group]: removal, ...remainingById } = state.groups.byId;\n state.groups.byId = remainingById;\n },\n addGroup: (state, action: PayloadAction<{ group: DeviceGroup; groupName: string }>) => {\n const { groupName, group } = action.payload;\n state.groups.byId[groupName] = {\n ...state.groups.byId[groupName],\n ...group\n };\n },\n selectGroup: (state, { payload: group }: PayloadAction<string | undefined>) => {\n state.deviceList.deviceIds =\n group && state.groups.byId[group] && state.groups.byId[group].deviceIds && state.groups.byId[group].deviceIds.length > 0\n ? state.groups.byId[group].deviceIds\n : [];\n state.groups.selectedGroup = group;\n },\n removeGroup: (state, action: PayloadAction<string>) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [action.payload]: removal, ...remainingById } = state.groups.byId;\n state.groups.byId = remainingById;\n state.groups.selectedGroup = state.groups.selectedGroup === action.payload ? undefined : state.groups.selectedGroup;\n },\n setDeviceListState: (state, action: PayloadAction<Partial<DeviceListState>>) => {\n state.deviceList = {\n ...state.deviceList,\n ...action.payload,\n sort: {\n ...state.deviceList.sort,\n ...action.payload.sort\n }\n };\n },\n setFilterAttributes: (state, action: PayloadAction<FilteringAttributes>) => {\n state.filteringAttributes = action.payload;\n },\n setFilterablesConfig: (state, action: PayloadAction<FilteringAttributesConfig>) => {\n state.filteringAttributesConfig = action.payload;\n },\n receivedDevices: (state, action: PayloadAction<Record<string, Device>>) => {\n state.byId = {\n ...state.byId,\n ...action.payload\n };\n },\n setDeviceFilters: (state, action: PayloadAction<DeviceFilter[]>) => {\n if (deepCompare(action.payload, state.filters)) {\n return;\n }\n state.filters = action.payload.filter(filter => filter.key && filter.operator && filter.scope && typeof filter.value !== 'undefined');\n },\n setDeviceReports: (state, action: PayloadAction<DeviceReport[]>) => {\n state.reports = action.payload;\n },\n setDevicesByStatus: (state, action: PayloadAction<{ deviceIds: string[]; status: DeviceAuthState; total: number }>) => {\n const { status, total, deviceIds } = action.payload;\n if (total) {\n state.byStatus[status].deviceIds = deviceIds;\n state.byStatus[status].counts.total = total;\n }\n },\n setDevicesCountByStatus: (state, action: PayloadAction<{ countsPerTier: DeviceTierLimits; status: DeviceAuthState }>) => {\n const { countsPerTier, status } = action.payload;\n state.byStatus[status].counts = { ...countsPerTier, total: Object.values(countsPerTier).reduce((accu, tieredCount) => (accu += tieredCount), 0) };\n },\n setDeviceLimits: (state, action: PayloadAction<DeviceTierLimits>) => {\n state.limits = action.payload;\n },\n receivedDevice: (state, action: PayloadAction<{ id: string } & Partial<Device>>) => {\n state.byId[action.payload.id] = {\n ...state.byId[action.payload.id],\n ...action.payload\n };\n },\n maybeUpdateDevicesByStatus: (state, action: PayloadAction<{ authId?: string; deviceId: string }>) => {\n const { deviceId, authId } = action.payload;\n const device = state.byId[deviceId];\n const hasMultipleAuthSets = authId && device.auth_sets ? device.auth_sets.filter(authset => authset.id !== authId).length > 0 : false;\n if (!hasMultipleAuthSets && (Object.values(DEVICE_STATES) as string[]).includes(device.status)) {\n const deviceIds = state.byStatus[device.status].deviceIds.filter(id => id !== deviceId);\n const deviceTier = (device.attributes.tier as string) || 'standard';\n state.byStatus[device.status] = {\n deviceIds,\n counts: {\n ...state.byStatus[device.status].counts,\n [deviceTier]: Math.max(0, state.byStatus[device.status].counts[deviceTier] - 1),\n total: Math.max(0, state.byStatus[device.status].counts.total - 1)\n }\n };\n }\n }\n }\n});\n\nexport const actions = devicesSlice.actions;\nexport default devicesSlice.reducer;\n"],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
require("../chunk-CKQMccvm.cjs");
|
|
3
2
|
const require_devicesSlice_index = require("./index.cjs");
|
|
4
3
|
let _northern_tech_utils_constants = require("@northern.tech/utils/constants");
|
|
5
4
|
//#region src/devicesSlice/mocks.ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mocks.cjs","names":["initialState","DEVICE_STATES","SORTING_OPTIONS"],"sources":["../../src/devicesSlice/mocks.ts"],"sourcesContent":["// Copyright 2025 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 { DEVICE_STATES, SORTING_OPTIONS } from '../constants';\nimport { initialState } from './index';\n\nconst deviceTypes = { qemu: 'qemux86-64' };\nconst checkInTimeRounded = '2019-01-01T00:00:00.000Z';\nconst checkInTimeExact = '2019-01-01T10:25:00.000Z';\nconst defaultMacAddress = 'dc:a6:32:12:ad:bf';\nconst defaultCreationDate = '2019-01-13T06:25:00.000Z';\n\nexport const mockState = {\n ...initialState,\n byId: {\n a1: {\n id: 'a1',\n attributes: {\n device_type: ['raspberrypi4'],\n ipv4_wlan0: '192.168.10.141/24'\n },\n system: {\n check_in_time: checkInTimeRounded\n },\n check_in_time: checkInTimeExact,\n check_in_time_exact: checkInTimeExact,\n check_in_time_rounded: checkInTimeRounded,\n identity_data: { mac: defaultMacAddress },\n status: DEVICE_STATES.accepted,\n decommissioning: false,\n created_ts: defaultCreationDate,\n updated_ts: '2019-01-01T09:25:00.000Z',\n auth_sets: [\n {\n id: 'auth1',\n identity_data: { mac: defaultMacAddress },\n pubkey: '-----BEGIN PUBLIC KEY-----\\nMIIBojWELzgJ62hcXIhAfqfoNiaB1326XZByZwcnHr5BuSPAgMBAAE=\\n-----END PUBLIC KEY-----\\n',\n ts: defaultCreationDate,\n status: DEVICE_STATES.accepted\n }\n ]\n },\n b1: {\n id: 'b1',\n attributes: {\n ipv4_wlan0: '192.168.10.141/24',\n device_type: [deviceTypes.qemu]\n },\n system: {\n check_in_time: checkInTimeRounded\n },\n check_in_time: checkInTimeExact,\n check_in_time_exact: checkInTimeExact,\n check_in_time_rounded: checkInTimeRounded,\n identity_data: { mac: defaultMacAddress },\n status: DEVICE_STATES.accepted,\n decommissioning: false,\n created_ts: defaultCreationDate,\n updated_ts: '2019-01-01T09:25:00.000Z',\n auth_sets: [\n {\n id: 'auth1',\n identity_data: { mac: defaultMacAddress },\n pubkey: '-----BEGIN PUBLIC KEY-----\\nMIIBojWELzgJ62hcXIhAfqfoNiaB1326XZByZwcnHr5BuSPAgMBAAE=\\n-----END PUBLIC KEY-----\\n',\n ts: defaultCreationDate,\n status: DEVICE_STATES.accepted\n }\n ]\n },\n c1: {\n id: 'c1',\n auth_sets: [],\n attributes: {\n device_type: ['qemux86-128']\n }\n }\n },\n byStatus: {\n accepted: { deviceIds: ['a1', 'b1'], counts: { micro: 0, standard: 2, system: 0 } },\n pending: { deviceIds: ['c1'], counts: { micro: 0, standard: 1, system: 0 } },\n preauthorized: { deviceIds: [], counts: { micro: 0, standard: 0, system: 0 } },\n rejected: { deviceIds: [], counts: { micro: 0, standard: 0, system: 0 } }\n },\n deviceList: {\n deviceIds: [],\n isLoading: false,\n page: 1,\n perPage: 20,\n selectedAttributes: [],\n selectedIssues: [],\n selection: [],\n sort: {\n direction: SORTING_OPTIONS.desc\n // key: null,\n // scope: null\n },\n state: DEVICE_STATES.accepted,\n total: 0\n },\n filteringAttributes: {\n identityAttributes: ['mac'],\n inventoryAttributes: ['artifact_name'],\n systemAttributes: [],\n tagAttributes: []\n },\n filteringAttributesLimit: 10,\n filters: [],\n groups: {\n byId: {\n testGroup: {\n deviceIds: ['a1', 'b1'],\n filters: [],\n total: 2\n },\n testGroupDynamic: {\n id: 'filter1',\n name: 'filter1',\n filters: [{ scope: 'system', key: 'group', operator: '$eq', value: 'things' }]\n } as const\n },\n selectedGroup: undefined\n },\n limits: { standard: 500, micro: 0, system: 0 }\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"mocks.cjs","names":["initialState","DEVICE_STATES","SORTING_OPTIONS"],"sources":["../../src/devicesSlice/mocks.ts"],"sourcesContent":["// Copyright 2025 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 { DEVICE_STATES, SORTING_OPTIONS } from '../constants';\nimport { initialState } from './index';\n\nconst deviceTypes = { qemu: 'qemux86-64' };\nconst checkInTimeRounded = '2019-01-01T00:00:00.000Z';\nconst checkInTimeExact = '2019-01-01T10:25:00.000Z';\nconst defaultMacAddress = 'dc:a6:32:12:ad:bf';\nconst defaultCreationDate = '2019-01-13T06:25:00.000Z';\n\nexport const mockState = {\n ...initialState,\n byId: {\n a1: {\n id: 'a1',\n attributes: {\n device_type: ['raspberrypi4'],\n ipv4_wlan0: '192.168.10.141/24'\n },\n system: {\n check_in_time: checkInTimeRounded\n },\n check_in_time: checkInTimeExact,\n check_in_time_exact: checkInTimeExact,\n check_in_time_rounded: checkInTimeRounded,\n identity_data: { mac: defaultMacAddress },\n status: DEVICE_STATES.accepted,\n decommissioning: false,\n created_ts: defaultCreationDate,\n updated_ts: '2019-01-01T09:25:00.000Z',\n auth_sets: [\n {\n id: 'auth1',\n identity_data: { mac: defaultMacAddress },\n pubkey: '-----BEGIN PUBLIC KEY-----\\nMIIBojWELzgJ62hcXIhAfqfoNiaB1326XZByZwcnHr5BuSPAgMBAAE=\\n-----END PUBLIC KEY-----\\n',\n ts: defaultCreationDate,\n status: DEVICE_STATES.accepted\n }\n ]\n },\n b1: {\n id: 'b1',\n attributes: {\n ipv4_wlan0: '192.168.10.141/24',\n device_type: [deviceTypes.qemu]\n },\n system: {\n check_in_time: checkInTimeRounded\n },\n check_in_time: checkInTimeExact,\n check_in_time_exact: checkInTimeExact,\n check_in_time_rounded: checkInTimeRounded,\n identity_data: { mac: defaultMacAddress },\n status: DEVICE_STATES.accepted,\n decommissioning: false,\n created_ts: defaultCreationDate,\n updated_ts: '2019-01-01T09:25:00.000Z',\n auth_sets: [\n {\n id: 'auth1',\n identity_data: { mac: defaultMacAddress },\n pubkey: '-----BEGIN PUBLIC KEY-----\\nMIIBojWELzgJ62hcXIhAfqfoNiaB1326XZByZwcnHr5BuSPAgMBAAE=\\n-----END PUBLIC KEY-----\\n',\n ts: defaultCreationDate,\n status: DEVICE_STATES.accepted\n }\n ]\n },\n c1: {\n id: 'c1',\n auth_sets: [],\n attributes: {\n device_type: ['qemux86-128']\n }\n }\n },\n byStatus: {\n accepted: { deviceIds: ['a1', 'b1'], counts: { micro: 0, standard: 2, system: 0 } },\n pending: { deviceIds: ['c1'], counts: { micro: 0, standard: 1, system: 0 } },\n preauthorized: { deviceIds: [], counts: { micro: 0, standard: 0, system: 0 } },\n rejected: { deviceIds: [], counts: { micro: 0, standard: 0, system: 0 } }\n },\n deviceList: {\n deviceIds: [],\n isLoading: false,\n page: 1,\n perPage: 20,\n selectedAttributes: [],\n selectedIssues: [],\n selection: [],\n sort: {\n direction: SORTING_OPTIONS.desc\n // key: null,\n // scope: null\n },\n state: DEVICE_STATES.accepted,\n total: 0\n },\n filteringAttributes: {\n identityAttributes: ['mac'],\n inventoryAttributes: ['artifact_name'],\n systemAttributes: [],\n tagAttributes: []\n },\n filteringAttributesLimit: 10,\n filters: [],\n groups: {\n byId: {\n testGroup: {\n deviceIds: ['a1', 'b1'],\n filters: [],\n total: 2\n },\n testGroupDynamic: {\n id: 'filter1',\n name: 'filter1',\n filters: [{ scope: 'system', key: 'group', operator: '$eq', value: 'things' }]\n } as const\n },\n selectedGroup: undefined\n },\n limits: { standard: 500, micro: 0, system: 0 }\n};\n"],"mappings":";;;;AAgBA,MAAM,cAAc,EAAE,MAAM,aAAa;AACzC,MAAM,qBAAqB;AAC3B,MAAM,mBAAmB;AACzB,MAAM,oBAAoB;AAC1B,MAAM,sBAAsB;AAE5B,MAAa,YAAY;CACvB,GAAGA,2BAAAA;CACH,MAAM;EACJ,IAAI;GACF,IAAI;GACJ,YAAY;IACV,aAAa,CAAC,cAAc;IAC5B,YAAY;GACd;GACA,QAAQ,EACN,eAAe,mBACjB;GACA,eAAe;GACf,qBAAqB;GACrB,uBAAuB;GACvB,eAAe,EAAE,KAAK,kBAAkB;GACxC,QAAQC,+BAAAA,cAAc;GACtB,iBAAiB;GACjB,YAAY;GACZ,YAAY;GACZ,WAAW,CACT;IACE,IAAI;IACJ,eAAe,EAAE,KAAK,kBAAkB;IACxC,QAAQ;IACR,IAAI;IACJ,QAAQA,+BAAAA,cAAc;GACxB,CACF;EACF;EACA,IAAI;GACF,IAAI;GACJ,YAAY;IACV,YAAY;IACZ,aAAa,CAAC,YAAY,IAAI;GAChC;GACA,QAAQ,EACN,eAAe,mBACjB;GACA,eAAe;GACf,qBAAqB;GACrB,uBAAuB;GACvB,eAAe,EAAE,KAAK,kBAAkB;GACxC,QAAQA,+BAAAA,cAAc;GACtB,iBAAiB;GACjB,YAAY;GACZ,YAAY;GACZ,WAAW,CACT;IACE,IAAI;IACJ,eAAe,EAAE,KAAK,kBAAkB;IACxC,QAAQ;IACR,IAAI;IACJ,QAAQA,+BAAAA,cAAc;GACxB,CACF;EACF;EACA,IAAI;GACF,IAAI;GACJ,WAAW,CAAC;GACZ,YAAY,EACV,aAAa,CAAC,aAAa,EAC7B;EACF;CACF;CACA,UAAU;EACR,UAAU;GAAE,WAAW,CAAC,MAAM,IAAI;GAAG,QAAQ;IAAE,OAAO;IAAG,UAAU;IAAG,QAAQ;GAAE;EAAE;EAClF,SAAS;GAAE,WAAW,CAAC,IAAI;GAAG,QAAQ;IAAE,OAAO;IAAG,UAAU;IAAG,QAAQ;GAAE;EAAE;EAC3E,eAAe;GAAE,WAAW,CAAC;GAAG,QAAQ;IAAE,OAAO;IAAG,UAAU;IAAG,QAAQ;GAAE;EAAE;EAC7E,UAAU;GAAE,WAAW,CAAC;GAAG,QAAQ;IAAE,OAAO;IAAG,UAAU;IAAG,QAAQ;GAAE;EAAE;CAC1E;CACA,YAAY;EACV,WAAW,CAAC;EACZ,WAAW;EACX,MAAM;EACN,SAAS;EACT,oBAAoB,CAAC;EACrB,gBAAgB,CAAC;EACjB,WAAW,CAAC;EACZ,MAAM,EACJ,WAAWC,+BAAAA,gBAAgB,KAG7B;EACA,OAAOD,+BAAAA,cAAc;EACrB,OAAO;CACT;CACA,qBAAqB;EACnB,oBAAoB,CAAC,KAAK;EAC1B,qBAAqB,CAAC,eAAe;EACrC,kBAAkB,CAAC;EACnB,eAAe,CAAC;CAClB;CACA,0BAA0B;CAC1B,SAAS,CAAC;CACV,QAAQ;EACN,MAAM;GACJ,WAAW;IACT,WAAW,CAAC,MAAM,IAAI;IACtB,SAAS,CAAC;IACV,OAAO;GACT;GACA,kBAAkB;IAChB,IAAI;IACJ,MAAM;IACN,SAAS,CAAC;KAAE,OAAO;KAAU,KAAK;KAAS,UAAU;KAAO,OAAO;IAAS,CAAC;GAC/E;EACF;EACA,eAAe,KAAA;CACjB;CACA,QAAQ;EAAE,UAAU;EAAK,OAAO;EAAG,QAAQ;CAAE;AAC/C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mocks.js","names":[],"sources":["../../src/devicesSlice/mocks.ts"],"sourcesContent":["// Copyright 2025 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 { DEVICE_STATES, SORTING_OPTIONS } from '../constants';\nimport { initialState } from './index';\n\nconst deviceTypes = { qemu: 'qemux86-64' };\nconst checkInTimeRounded = '2019-01-01T00:00:00.000Z';\nconst checkInTimeExact = '2019-01-01T10:25:00.000Z';\nconst defaultMacAddress = 'dc:a6:32:12:ad:bf';\nconst defaultCreationDate = '2019-01-13T06:25:00.000Z';\n\nexport const mockState = {\n ...initialState,\n byId: {\n a1: {\n id: 'a1',\n attributes: {\n device_type: ['raspberrypi4'],\n ipv4_wlan0: '192.168.10.141/24'\n },\n system: {\n check_in_time: checkInTimeRounded\n },\n check_in_time: checkInTimeExact,\n check_in_time_exact: checkInTimeExact,\n check_in_time_rounded: checkInTimeRounded,\n identity_data: { mac: defaultMacAddress },\n status: DEVICE_STATES.accepted,\n decommissioning: false,\n created_ts: defaultCreationDate,\n updated_ts: '2019-01-01T09:25:00.000Z',\n auth_sets: [\n {\n id: 'auth1',\n identity_data: { mac: defaultMacAddress },\n pubkey: '-----BEGIN PUBLIC KEY-----\\nMIIBojWELzgJ62hcXIhAfqfoNiaB1326XZByZwcnHr5BuSPAgMBAAE=\\n-----END PUBLIC KEY-----\\n',\n ts: defaultCreationDate,\n status: DEVICE_STATES.accepted\n }\n ]\n },\n b1: {\n id: 'b1',\n attributes: {\n ipv4_wlan0: '192.168.10.141/24',\n device_type: [deviceTypes.qemu]\n },\n system: {\n check_in_time: checkInTimeRounded\n },\n check_in_time: checkInTimeExact,\n check_in_time_exact: checkInTimeExact,\n check_in_time_rounded: checkInTimeRounded,\n identity_data: { mac: defaultMacAddress },\n status: DEVICE_STATES.accepted,\n decommissioning: false,\n created_ts: defaultCreationDate,\n updated_ts: '2019-01-01T09:25:00.000Z',\n auth_sets: [\n {\n id: 'auth1',\n identity_data: { mac: defaultMacAddress },\n pubkey: '-----BEGIN PUBLIC KEY-----\\nMIIBojWELzgJ62hcXIhAfqfoNiaB1326XZByZwcnHr5BuSPAgMBAAE=\\n-----END PUBLIC KEY-----\\n',\n ts: defaultCreationDate,\n status: DEVICE_STATES.accepted\n }\n ]\n },\n c1: {\n id: 'c1',\n auth_sets: [],\n attributes: {\n device_type: ['qemux86-128']\n }\n }\n },\n byStatus: {\n accepted: { deviceIds: ['a1', 'b1'], counts: { micro: 0, standard: 2, system: 0 } },\n pending: { deviceIds: ['c1'], counts: { micro: 0, standard: 1, system: 0 } },\n preauthorized: { deviceIds: [], counts: { micro: 0, standard: 0, system: 0 } },\n rejected: { deviceIds: [], counts: { micro: 0, standard: 0, system: 0 } }\n },\n deviceList: {\n deviceIds: [],\n isLoading: false,\n page: 1,\n perPage: 20,\n selectedAttributes: [],\n selectedIssues: [],\n selection: [],\n sort: {\n direction: SORTING_OPTIONS.desc\n // key: null,\n // scope: null\n },\n state: DEVICE_STATES.accepted,\n total: 0\n },\n filteringAttributes: {\n identityAttributes: ['mac'],\n inventoryAttributes: ['artifact_name'],\n systemAttributes: [],\n tagAttributes: []\n },\n filteringAttributesLimit: 10,\n filters: [],\n groups: {\n byId: {\n testGroup: {\n deviceIds: ['a1', 'b1'],\n filters: [],\n total: 2\n },\n testGroupDynamic: {\n id: 'filter1',\n name: 'filter1',\n filters: [{ scope: 'system', key: 'group', operator: '$eq', value: 'things' }]\n } as const\n },\n selectedGroup: undefined\n },\n limits: { standard: 500, micro: 0, system: 0 }\n};\n"],"mappings":";;;AAgBA,MAAM,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"mocks.js","names":[],"sources":["../../src/devicesSlice/mocks.ts"],"sourcesContent":["// Copyright 2025 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 { DEVICE_STATES, SORTING_OPTIONS } from '../constants';\nimport { initialState } from './index';\n\nconst deviceTypes = { qemu: 'qemux86-64' };\nconst checkInTimeRounded = '2019-01-01T00:00:00.000Z';\nconst checkInTimeExact = '2019-01-01T10:25:00.000Z';\nconst defaultMacAddress = 'dc:a6:32:12:ad:bf';\nconst defaultCreationDate = '2019-01-13T06:25:00.000Z';\n\nexport const mockState = {\n ...initialState,\n byId: {\n a1: {\n id: 'a1',\n attributes: {\n device_type: ['raspberrypi4'],\n ipv4_wlan0: '192.168.10.141/24'\n },\n system: {\n check_in_time: checkInTimeRounded\n },\n check_in_time: checkInTimeExact,\n check_in_time_exact: checkInTimeExact,\n check_in_time_rounded: checkInTimeRounded,\n identity_data: { mac: defaultMacAddress },\n status: DEVICE_STATES.accepted,\n decommissioning: false,\n created_ts: defaultCreationDate,\n updated_ts: '2019-01-01T09:25:00.000Z',\n auth_sets: [\n {\n id: 'auth1',\n identity_data: { mac: defaultMacAddress },\n pubkey: '-----BEGIN PUBLIC KEY-----\\nMIIBojWELzgJ62hcXIhAfqfoNiaB1326XZByZwcnHr5BuSPAgMBAAE=\\n-----END PUBLIC KEY-----\\n',\n ts: defaultCreationDate,\n status: DEVICE_STATES.accepted\n }\n ]\n },\n b1: {\n id: 'b1',\n attributes: {\n ipv4_wlan0: '192.168.10.141/24',\n device_type: [deviceTypes.qemu]\n },\n system: {\n check_in_time: checkInTimeRounded\n },\n check_in_time: checkInTimeExact,\n check_in_time_exact: checkInTimeExact,\n check_in_time_rounded: checkInTimeRounded,\n identity_data: { mac: defaultMacAddress },\n status: DEVICE_STATES.accepted,\n decommissioning: false,\n created_ts: defaultCreationDate,\n updated_ts: '2019-01-01T09:25:00.000Z',\n auth_sets: [\n {\n id: 'auth1',\n identity_data: { mac: defaultMacAddress },\n pubkey: '-----BEGIN PUBLIC KEY-----\\nMIIBojWELzgJ62hcXIhAfqfoNiaB1326XZByZwcnHr5BuSPAgMBAAE=\\n-----END PUBLIC KEY-----\\n',\n ts: defaultCreationDate,\n status: DEVICE_STATES.accepted\n }\n ]\n },\n c1: {\n id: 'c1',\n auth_sets: [],\n attributes: {\n device_type: ['qemux86-128']\n }\n }\n },\n byStatus: {\n accepted: { deviceIds: ['a1', 'b1'], counts: { micro: 0, standard: 2, system: 0 } },\n pending: { deviceIds: ['c1'], counts: { micro: 0, standard: 1, system: 0 } },\n preauthorized: { deviceIds: [], counts: { micro: 0, standard: 0, system: 0 } },\n rejected: { deviceIds: [], counts: { micro: 0, standard: 0, system: 0 } }\n },\n deviceList: {\n deviceIds: [],\n isLoading: false,\n page: 1,\n perPage: 20,\n selectedAttributes: [],\n selectedIssues: [],\n selection: [],\n sort: {\n direction: SORTING_OPTIONS.desc\n // key: null,\n // scope: null\n },\n state: DEVICE_STATES.accepted,\n total: 0\n },\n filteringAttributes: {\n identityAttributes: ['mac'],\n inventoryAttributes: ['artifact_name'],\n systemAttributes: [],\n tagAttributes: []\n },\n filteringAttributesLimit: 10,\n filters: [],\n groups: {\n byId: {\n testGroup: {\n deviceIds: ['a1', 'b1'],\n filters: [],\n total: 2\n },\n testGroupDynamic: {\n id: 'filter1',\n name: 'filter1',\n filters: [{ scope: 'system', key: 'group', operator: '$eq', value: 'things' }]\n } as const\n },\n selectedGroup: undefined\n },\n limits: { standard: 500, micro: 0, system: 0 }\n};\n"],"mappings":";;;AAgBA,MAAM,cAAc,EAAE,MAAM,aAAa;AACzC,MAAM,qBAAqB;AAC3B,MAAM,mBAAmB;AACzB,MAAM,oBAAoB;AAC1B,MAAM,sBAAsB;AAE5B,MAAa,YAAY;CACvB,GAAG;CACH,MAAM;EACJ,IAAI;GACF,IAAI;GACJ,YAAY;IACV,aAAa,CAAC,cAAc;IAC5B,YAAY;GACd;GACA,QAAQ,EACN,eAAe,mBACjB;GACA,eAAe;GACf,qBAAqB;GACrB,uBAAuB;GACvB,eAAe,EAAE,KAAK,kBAAkB;GACxC,QAAQ,cAAc;GACtB,iBAAiB;GACjB,YAAY;GACZ,YAAY;GACZ,WAAW,CACT;IACE,IAAI;IACJ,eAAe,EAAE,KAAK,kBAAkB;IACxC,QAAQ;IACR,IAAI;IACJ,QAAQ,cAAc;GACxB,CACF;EACF;EACA,IAAI;GACF,IAAI;GACJ,YAAY;IACV,YAAY;IACZ,aAAa,CAAC,YAAY,IAAI;GAChC;GACA,QAAQ,EACN,eAAe,mBACjB;GACA,eAAe;GACf,qBAAqB;GACrB,uBAAuB;GACvB,eAAe,EAAE,KAAK,kBAAkB;GACxC,QAAQ,cAAc;GACtB,iBAAiB;GACjB,YAAY;GACZ,YAAY;GACZ,WAAW,CACT;IACE,IAAI;IACJ,eAAe,EAAE,KAAK,kBAAkB;IACxC,QAAQ;IACR,IAAI;IACJ,QAAQ,cAAc;GACxB,CACF;EACF;EACA,IAAI;GACF,IAAI;GACJ,WAAW,CAAC;GACZ,YAAY,EACV,aAAa,CAAC,aAAa,EAC7B;EACF;CACF;CACA,UAAU;EACR,UAAU;GAAE,WAAW,CAAC,MAAM,IAAI;GAAG,QAAQ;IAAE,OAAO;IAAG,UAAU;IAAG,QAAQ;GAAE;EAAE;EAClF,SAAS;GAAE,WAAW,CAAC,IAAI;GAAG,QAAQ;IAAE,OAAO;IAAG,UAAU;IAAG,QAAQ;GAAE;EAAE;EAC3E,eAAe;GAAE,WAAW,CAAC;GAAG,QAAQ;IAAE,OAAO;IAAG,UAAU;IAAG,QAAQ;GAAE;EAAE;EAC7E,UAAU;GAAE,WAAW,CAAC;GAAG,QAAQ;IAAE,OAAO;IAAG,UAAU;IAAG,QAAQ;GAAE;EAAE;CAC1E;CACA,YAAY;EACV,WAAW,CAAC;EACZ,WAAW;EACX,MAAM;EACN,SAAS;EACT,oBAAoB,CAAC;EACrB,gBAAgB,CAAC;EACjB,WAAW,CAAC;EACZ,MAAM,EACJ,WAAW,gBAAgB,KAG7B;EACA,OAAO,cAAc;EACrB,OAAO;CACT;CACA,qBAAqB;EACnB,oBAAoB,CAAC,KAAK;EAC1B,qBAAqB,CAAC,eAAe;EACrC,kBAAkB,CAAC;EACnB,eAAe,CAAC;CAClB;CACA,0BAA0B;CAC1B,SAAS,CAAC;CACV,QAAQ;EACN,MAAM;GACJ,WAAW;IACT,WAAW,CAAC,MAAM,IAAI;IACtB,SAAS,CAAC;IACV,OAAO;GACT;GACA,kBAAkB;IAChB,IAAI;IACJ,MAAM;IACN,SAAS,CAAC;KAAE,OAAO;KAAU,KAAK;KAAS,UAAU;KAAO,OAAO;IAAS,CAAC;GAC/E;EACF;EACA,eAAe,KAAA;CACjB;CACA,QAAQ;EAAE,UAAU;EAAK,OAAO;EAAG,QAAQ;CAAE;AAC/C"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
require("../chunk-CKQMccvm.cjs");
|
|
3
2
|
const require_constants = require("../constants.cjs");
|
|
4
3
|
let _reduxjs_toolkit = require("@reduxjs/toolkit");
|
|
5
4
|
let _northern_tech_utils_helpers = require("@northern.tech/utils/helpers");
|