@northern.tech/store 0.3.2 → 0.3.4
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/BillingProfile-ChP2_Sqw.d.cts +45 -0
- package/dist/BillingProfile-ChP2_Sqw.d.ts +45 -0
- package/dist/actions.cjs +22 -23
- package/dist/actions.cjs.map +1 -1
- package/dist/actions.js +12 -12
- package/dist/api/general-api.cjs.map +1 -1
- package/dist/api/general-api.js +5 -5
- package/dist/api/types/Tenant.ts +17 -12
- package/dist/api/users-api.cjs.map +1 -1
- package/dist/api/users-api.js +6 -6
- package/dist/appSlice/constants.cjs +18 -10
- package/dist/appSlice/constants.cjs.map +1 -1
- package/dist/appSlice/constants.d.cts +41 -84
- package/dist/appSlice/constants.d.ts +41 -84
- package/dist/appSlice/constants.js +1 -1
- package/dist/appSlice/index.cjs +1 -3
- package/dist/appSlice/index.cjs.map +1 -1
- package/dist/appSlice/index.js +4 -4
- package/dist/appSlice/thunks.cjs +153 -120
- package/dist/appSlice/thunks.cjs.map +1 -1
- package/dist/appSlice/thunks.js +28 -27
- package/dist/auth.cjs.map +1 -1
- package/dist/auth.js +4 -4
- package/dist/{chunk-NI4SZOCF.js → chunk-4RWZR3BN.js} +23 -25
- package/dist/{chunk-NI4SZOCF.js.map → chunk-4RWZR3BN.js.map} +1 -1
- package/dist/{chunk-YGBFDXXA.js → chunk-7YZCUAXZ.js} +2 -2
- package/dist/{chunk-7PVGDMNM.js → chunk-AFICTIVU.js} +3 -5
- package/dist/{chunk-7PVGDMNM.js.map → chunk-AFICTIVU.js.map} +1 -1
- package/dist/{chunk-YT73QWCN.js → chunk-AUBJUUP3.js} +3 -3
- package/dist/{chunk-UEP36GCI.js → chunk-AVX7VVOK.js} +3 -3
- package/dist/{chunk-4B3IMP4I.js → chunk-BSN2TOQC.js} +1 -1
- package/dist/{chunk-4B3IMP4I.js.map → chunk-BSN2TOQC.js.map} +1 -1
- package/dist/{chunk-VOCOFE4I.js → chunk-DCEKU6UV.js} +2 -2
- package/dist/{chunk-E5LEU5PF.js → chunk-DGQKXSRI.js} +3 -3
- package/dist/{chunk-74OJIKXF.js → chunk-EQLHIPPR.js} +182 -142
- package/dist/chunk-EQLHIPPR.js.map +1 -0
- package/dist/{chunk-MDC7Y3EX.js → chunk-EYCORLYU.js} +44 -40
- package/dist/chunk-EYCORLYU.js.map +1 -0
- package/dist/{chunk-KAQJH2YL.js → chunk-FQDSV3NK.js} +13 -5
- package/dist/chunk-FQDSV3NK.js.map +1 -0
- package/dist/{chunk-XTRPX7JZ.js → chunk-FRSA2YB5.js} +3 -3
- package/dist/chunk-FRSA2YB5.js.map +1 -0
- package/dist/{chunk-ANB5BM5J.js → chunk-FVCYB5OP.js} +37 -32
- package/dist/chunk-FVCYB5OP.js.map +1 -0
- package/dist/{chunk-AMGWP7A4.js → chunk-GAI4VYRZ.js} +2 -2
- package/dist/{chunk-YETZPQFR.js → chunk-GWJIY56H.js} +19 -20
- package/dist/chunk-GWJIY56H.js.map +1 -0
- package/dist/{chunk-Q6M5TTDQ.js → chunk-JO33IORF.js} +2 -2
- package/dist/chunk-JO33IORF.js.map +1 -0
- package/dist/chunk-K4MMUDYT.js +391 -0
- package/dist/chunk-K4MMUDYT.js.map +1 -0
- package/dist/{chunk-XXHONFSQ.js → chunk-L3SY3J5M.js} +4 -4
- package/dist/{chunk-XXHONFSQ.js.map → chunk-L3SY3J5M.js.map} +1 -1
- package/dist/{chunk-JAROCU6M.js → chunk-NCSKCF2S.js} +3 -3
- package/dist/{chunk-CYV6632F.js → chunk-NOQR3TE7.js} +2 -2
- package/dist/{chunk-A6CT6GTI.js → chunk-OEP2D6QL.js} +18 -12
- package/dist/chunk-OEP2D6QL.js.map +1 -0
- package/dist/{chunk-2RJIDREZ.js → chunk-PAIB5V27.js} +32 -23
- package/dist/chunk-PAIB5V27.js.map +1 -0
- package/dist/{chunk-FGKMJS3B.js → chunk-RX32WLVJ.js} +2 -4
- package/dist/chunk-RX32WLVJ.js.map +1 -0
- package/dist/{chunk-YTQUNAZP.js → chunk-X3GZILYD.js} +3 -3
- package/dist/{chunk-25AKG5HH.js → chunk-Y575RZHR.js} +19 -11
- package/dist/chunk-Y575RZHR.js.map +1 -0
- package/dist/{chunk-RX55KAKX.js → chunk-ZWOAFHAR.js} +2 -2
- package/dist/{chunk-NNADGHSL.js → chunk-ZZMFXRQK.js} +14 -14
- package/dist/commonConstants.cjs.map +1 -1
- package/dist/commonConstants.d.cts +1 -1
- package/dist/commonConstants.d.ts +1 -1
- package/dist/commonConstants.js +1 -1
- package/dist/commonSelectors.cjs +47 -29
- package/dist/commonSelectors.cjs.map +1 -1
- package/dist/commonSelectors.d.cts +55 -46
- package/dist/commonSelectors.d.ts +55 -46
- package/dist/commonSelectors.js +11 -11
- package/dist/constants.cjs +35 -19
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +3 -3
- package/dist/constants.d.ts +3 -3
- package/dist/constants.js +7 -3
- package/dist/deploymentdevicehook.cjs +159 -125
- package/dist/deploymentdevicehook.cjs.map +1 -1
- package/dist/deploymentdevicehook.d.cts +1 -1
- package/dist/deploymentdevicehook.d.ts +1 -1
- package/dist/deploymentdevicehook.js +34 -31
- package/dist/deploymentdevicehook.js.map +1 -1
- package/dist/deploymentsSlice/constants.cjs +8 -8
- package/dist/deploymentsSlice/constants.cjs.map +1 -1
- package/dist/deploymentsSlice/constants.js +3 -3
- package/dist/deploymentsSlice/index.cjs +8 -8
- package/dist/deploymentsSlice/index.cjs.map +1 -1
- package/dist/deploymentsSlice/index.js +4 -4
- package/dist/deploymentsSlice/selectors.cjs +8 -8
- package/dist/deploymentsSlice/selectors.cjs.map +1 -1
- package/dist/deploymentsSlice/selectors.js +4 -4
- package/dist/deploymentsSlice/thunks.cjs +153 -120
- package/dist/deploymentsSlice/thunks.cjs.map +1 -1
- package/dist/deploymentsSlice/thunks.js +28 -27
- package/dist/devicesSlice/constants.cjs +11 -8
- package/dist/devicesSlice/constants.cjs.map +1 -1
- package/dist/devicesSlice/constants.d.cts +2 -1
- package/dist/devicesSlice/constants.d.ts +2 -1
- package/dist/devicesSlice/constants.js +5 -3
- package/dist/devicesSlice/index.cjs +8 -8
- package/dist/devicesSlice/index.cjs.map +1 -1
- package/dist/devicesSlice/index.js +4 -4
- package/dist/devicesSlice/selectors.cjs +9 -9
- package/dist/devicesSlice/selectors.cjs.map +1 -1
- package/dist/devicesSlice/selectors.js +4 -4
- package/dist/devicesSlice/thunks.cjs +155 -120
- package/dist/devicesSlice/thunks.cjs.map +1 -1
- package/dist/devicesSlice/thunks.d.cts +12 -2
- package/dist/devicesSlice/thunks.d.ts +12 -2
- package/dist/devicesSlice/thunks.js +30 -27
- package/dist/flag-eu-5477R2P4.svg +130 -0
- package/dist/flag-us-HNQAF66I.svg +63 -0
- package/dist/liststatehook.cjs +971 -0
- package/dist/liststatehook.cjs.map +1 -0
- package/dist/liststatehook.d.cts +246 -0
- package/dist/liststatehook.d.ts +246 -0
- package/dist/liststatehook.js +88 -0
- package/dist/liststatehook.js.map +1 -0
- package/dist/locationutils.cjs +942 -0
- package/dist/locationutils.cjs.map +1 -0
- package/dist/locationutils.d.cts +113 -0
- package/dist/locationutils.d.ts +113 -0
- package/dist/locationutils.js +46 -0
- package/dist/locationutils.js.map +1 -0
- package/dist/monitorSlice/constants.cjs +8 -8
- package/dist/monitorSlice/constants.cjs.map +1 -1
- package/dist/monitorSlice/constants.js +3 -3
- package/dist/monitorSlice/index.cjs +8 -8
- package/dist/monitorSlice/index.cjs.map +1 -1
- package/dist/monitorSlice/index.js +4 -4
- package/dist/monitorSlice/thunks.cjs +74 -62
- package/dist/monitorSlice/thunks.cjs.map +1 -1
- package/dist/monitorSlice/thunks.js +24 -24
- package/dist/onboardingSlice/index.cjs +1 -3
- package/dist/onboardingSlice/index.cjs.map +1 -1
- package/dist/onboardingSlice/index.js +1 -1
- package/dist/onboardingSlice/thunks.cjs +157 -124
- package/dist/onboardingSlice/thunks.cjs.map +1 -1
- package/dist/onboardingSlice/thunks.d.cts +2 -34
- package/dist/onboardingSlice/thunks.d.ts +2 -34
- package/dist/onboardingSlice/thunks.js +28 -29
- package/dist/organizationSlice/constants.cjs +22 -17
- package/dist/organizationSlice/constants.cjs.map +1 -1
- package/dist/organizationSlice/constants.d.cts +33 -1
- package/dist/organizationSlice/constants.d.ts +33 -1
- package/dist/organizationSlice/constants.js +5 -3
- package/dist/organizationSlice/index.cjs +18 -15
- package/dist/organizationSlice/index.cjs.map +1 -1
- package/dist/organizationSlice/index.d.cts +27 -1012
- package/dist/organizationSlice/index.d.ts +27 -1012
- package/dist/organizationSlice/index.js +4 -4
- package/dist/organizationSlice/selectors.cjs.map +1 -1
- package/dist/organizationSlice/selectors.d.cts +10 -1
- package/dist/organizationSlice/selectors.d.ts +10 -1
- package/dist/organizationSlice/selectors.js +4 -4
- package/dist/organizationSlice/thunks.cjs +1619 -1559
- package/dist/organizationSlice/thunks.cjs.map +1 -1
- package/dist/organizationSlice/thunks.d.cts +62 -37
- package/dist/organizationSlice/thunks.d.ts +62 -37
- package/dist/organizationSlice/thunks.js +28 -27
- package/dist/organizationSlice/types.cjs +19 -0
- package/dist/organizationSlice/types.cjs.map +1 -0
- package/dist/organizationSlice/types.d.cts +5 -0
- package/dist/organizationSlice/types.d.ts +5 -0
- package/dist/organizationSlice/types.js +1 -0
- package/dist/organizationSlice/types.js.map +1 -0
- package/dist/releasesSlice/index.cjs.map +1 -1
- package/dist/releasesSlice/index.js +4 -4
- package/dist/releasesSlice/selectors.cjs +17 -8
- package/dist/releasesSlice/selectors.cjs.map +1 -1
- package/dist/releasesSlice/selectors.js +5 -5
- package/dist/releasesSlice/thunks.cjs +123 -94
- package/dist/releasesSlice/thunks.cjs.map +1 -1
- package/dist/releasesSlice/thunks.d.cts +1 -4
- package/dist/releasesSlice/thunks.d.ts +1 -4
- package/dist/releasesSlice/thunks.js +25 -24
- package/dist/selectors.cjs +53 -29
- package/dist/selectors.cjs.map +1 -1
- package/dist/selectors.d.cts +10 -1
- package/dist/selectors.d.ts +10 -1
- package/dist/selectors.js +49 -43
- package/dist/sockethook.cjs +529 -0
- package/dist/sockethook.cjs.map +1 -0
- package/dist/sockethook.d.cts +10 -0
- package/dist/sockethook.d.ts +10 -0
- package/dist/sockethook.js +141 -0
- package/dist/sockethook.js.map +1 -0
- package/dist/store.cjs +38 -29
- package/dist/store.cjs.map +1 -1
- package/dist/store.d.cts +13 -231
- package/dist/store.d.ts +13 -231
- package/dist/store.js +18 -16
- package/dist/storehooks.cjs +273 -198
- package/dist/storehooks.cjs.map +1 -1
- package/dist/storehooks.js +38 -37
- package/dist/storehooks.js.map +1 -1
- package/dist/thunks.cjs +259 -184
- package/dist/thunks.cjs.map +1 -1
- package/dist/thunks.d.cts +6 -2
- package/dist/thunks.d.ts +6 -2
- package/dist/thunks.js +30 -29
- package/dist/types-DBj17FZO.d.cts +135 -0
- package/dist/types-DnfZa6xd.d.ts +135 -0
- package/dist/usersSlice/constants.cjs +10 -10
- package/dist/usersSlice/constants.cjs.map +1 -1
- package/dist/usersSlice/constants.d.cts +6 -6
- package/dist/usersSlice/constants.d.ts +6 -6
- package/dist/usersSlice/constants.js +3 -3
- package/dist/usersSlice/index.cjs +10 -10
- package/dist/usersSlice/index.cjs.map +1 -1
- package/dist/usersSlice/index.js +4 -4
- package/dist/usersSlice/selectors.cjs +35 -13
- package/dist/usersSlice/selectors.cjs.map +1 -1
- package/dist/usersSlice/selectors.d.cts +44 -1
- package/dist/usersSlice/selectors.d.ts +44 -1
- package/dist/usersSlice/selectors.js +13 -7
- package/dist/usersSlice/thunks.cjs +151 -120
- package/dist/usersSlice/thunks.cjs.map +1 -1
- package/dist/usersSlice/thunks.d.cts +10 -9
- package/dist/usersSlice/thunks.d.ts +10 -9
- package/dist/usersSlice/thunks.js +28 -27
- package/dist/utils.cjs +23 -24
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.js +4 -4
- package/package.json +7 -6
- package/dist/chunk-25AKG5HH.js.map +0 -1
- package/dist/chunk-2RJIDREZ.js.map +0 -1
- package/dist/chunk-74OJIKXF.js.map +0 -1
- package/dist/chunk-A6CT6GTI.js.map +0 -1
- package/dist/chunk-ANB5BM5J.js.map +0 -1
- package/dist/chunk-FGKMJS3B.js.map +0 -1
- package/dist/chunk-KAQJH2YL.js.map +0 -1
- package/dist/chunk-MDC7Y3EX.js.map +0 -1
- package/dist/chunk-Q6M5TTDQ.js.map +0 -1
- package/dist/chunk-XTRPX7JZ.js.map +0 -1
- package/dist/chunk-YETZPQFR.js.map +0 -1
- /package/dist/{chunk-YGBFDXXA.js.map → chunk-7YZCUAXZ.js.map} +0 -0
- /package/dist/{chunk-YT73QWCN.js.map → chunk-AUBJUUP3.js.map} +0 -0
- /package/dist/{chunk-UEP36GCI.js.map → chunk-AVX7VVOK.js.map} +0 -0
- /package/dist/{chunk-VOCOFE4I.js.map → chunk-DCEKU6UV.js.map} +0 -0
- /package/dist/{chunk-E5LEU5PF.js.map → chunk-DGQKXSRI.js.map} +0 -0
- /package/dist/{chunk-AMGWP7A4.js.map → chunk-GAI4VYRZ.js.map} +0 -0
- /package/dist/{chunk-JAROCU6M.js.map → chunk-NCSKCF2S.js.map} +0 -0
- /package/dist/{chunk-CYV6632F.js.map → chunk-NOQR3TE7.js.map} +0 -0
- /package/dist/{chunk-YTQUNAZP.js.map → chunk-X3GZILYD.js.map} +0 -0
- /package/dist/{chunk-RX55KAKX.js.map → chunk-ZWOAFHAR.js.map} +0 -0
- /package/dist/{chunk-NNADGHSL.js.map → chunk-ZZMFXRQK.js.map} +0 -0
|
@@ -1,47 +1,49 @@
|
|
|
1
1
|
import {
|
|
2
2
|
general_api_default
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import {
|
|
5
|
-
getSearchEndpoint
|
|
6
|
-
} from "./chunk-ANB5BM5J.js";
|
|
7
|
-
import {
|
|
8
|
-
getReleasesById
|
|
9
|
-
} from "./chunk-VOCOFE4I.js";
|
|
10
|
-
import {
|
|
11
|
-
convertDeviceListStateToFilters,
|
|
12
|
-
progress
|
|
13
|
-
} from "./chunk-YETZPQFR.js";
|
|
3
|
+
} from "./chunk-AUBJUUP3.js";
|
|
14
4
|
import {
|
|
15
5
|
commonErrorFallback,
|
|
16
6
|
commonErrorHandler
|
|
17
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-PAIB5V27.js";
|
|
18
8
|
import {
|
|
19
9
|
actions_default
|
|
20
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-ZZMFXRQK.js";
|
|
21
11
|
import {
|
|
22
12
|
actions,
|
|
23
13
|
sliceName
|
|
24
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-NOQR3TE7.js";
|
|
15
|
+
import {
|
|
16
|
+
getSearchEndpoint
|
|
17
|
+
} from "./chunk-FVCYB5OP.js";
|
|
18
|
+
import {
|
|
19
|
+
getReleasesById
|
|
20
|
+
} from "./chunk-DCEKU6UV.js";
|
|
21
|
+
import {
|
|
22
|
+
convertDeviceListStateToFilters,
|
|
23
|
+
progress
|
|
24
|
+
} from "./chunk-GWJIY56H.js";
|
|
25
|
+
import {
|
|
26
|
+
formatReleases
|
|
27
|
+
} from "./chunk-K4MMUDYT.js";
|
|
25
28
|
import {
|
|
26
29
|
deploymentsApiUrl,
|
|
27
30
|
deploymentsApiUrlV2,
|
|
28
31
|
emptyFilter
|
|
29
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-OEP2D6QL.js";
|
|
30
33
|
import {
|
|
31
34
|
ARTIFACT_GENERATION_TYPE
|
|
32
35
|
} from "./chunk-CK6YE6AN.js";
|
|
33
36
|
import {
|
|
34
37
|
headerNames
|
|
35
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-Y575RZHR.js";
|
|
36
39
|
import {
|
|
37
40
|
DEVICE_LIST_DEFAULTS,
|
|
38
41
|
SORTING_OPTIONS,
|
|
39
42
|
TIMEOUTS
|
|
40
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-BSN2TOQC.js";
|
|
41
44
|
|
|
42
45
|
// src/releasesSlice/thunks.ts
|
|
43
46
|
import { customSort, deepCompare, duplicateFilter, extractSoftwareItem } from "@northern.tech/utils/helpers";
|
|
44
|
-
import { formatReleases } from "@northern.tech/utils/locationutils";
|
|
45
47
|
import { createAsyncThunk } from "@reduxjs/toolkit";
|
|
46
48
|
import { isCancel } from "axios";
|
|
47
49
|
import { v4 as uuid } from "uuid";
|
|
@@ -49,7 +51,7 @@ var { setSnackbar, initUpload, uploadProgress, cleanUpUpload } = actions_default
|
|
|
49
51
|
var { page: defaultPage, perPage: defaultPerPage } = DEVICE_LIST_DEFAULTS;
|
|
50
52
|
var sortingDefaults = { direction: SORTING_OPTIONS.desc, key: "modified" };
|
|
51
53
|
var flattenRelease = (release, stateRelease) => {
|
|
52
|
-
const updatedArtifacts = release.artifacts?.sort(customSort(
|
|
54
|
+
const updatedArtifacts = release.artifacts?.sort(customSort(true, "modified")) || [];
|
|
53
55
|
const { artifacts, deviceTypes, modified } = updatedArtifacts.reduce(
|
|
54
56
|
(accu, item) => {
|
|
55
57
|
accu.deviceTypes.push(...item.device_types_compatible);
|
|
@@ -205,9 +207,12 @@ var editArtifact = createAsyncThunk(
|
|
|
205
207
|
if (!release || index === -1) {
|
|
206
208
|
return dispatch(getReleases());
|
|
207
209
|
}
|
|
208
|
-
|
|
210
|
+
const updatedRelease = {
|
|
211
|
+
...release,
|
|
212
|
+
artifacts: release.artifacts.map((artifact, i) => i === index ? { ...artifact, description: body.description } : artifact)
|
|
213
|
+
};
|
|
209
214
|
return Promise.all([
|
|
210
|
-
dispatch(actions.receiveRelease(
|
|
215
|
+
dispatch(actions.receiveRelease(updatedRelease)),
|
|
211
216
|
dispatch(setSnackbar("Artifact details were updated successfully.", TIMEOUTS.fiveSeconds, "")),
|
|
212
217
|
dispatch(getRelease(release.name)),
|
|
213
218
|
dispatch(selectRelease(release.name))
|
|
@@ -308,33 +313,32 @@ var getReleases = createAsyncThunk(`${sliceName}/getReleases`, (passedConfig = {
|
|
|
308
313
|
return Promise.all(tasks);
|
|
309
314
|
}).catch((err) => commonErrorHandler(err, `Please check your connection`, dispatch));
|
|
310
315
|
});
|
|
311
|
-
var getRelease = createAsyncThunk(
|
|
312
|
-
`${
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
);
|
|
316
|
+
var getRelease = createAsyncThunk(`${sliceName}/getReleases`, async (name, { dispatch, getState }) => {
|
|
317
|
+
const releaseResponse = await general_api_default.get(`${deploymentsApiUrlV2}/deployments/releases/${name}`);
|
|
318
|
+
const { data: release } = releaseResponse;
|
|
319
|
+
if (release) {
|
|
320
|
+
const stateRelease = getReleasesById(getState())[release.name] || {};
|
|
321
|
+
await dispatch(actions.receiveRelease(flattenRelease(release, stateRelease)));
|
|
322
|
+
}
|
|
323
|
+
return Promise.resolve(null);
|
|
324
|
+
});
|
|
321
325
|
var updateReleaseInfo = createAsyncThunk(
|
|
322
326
|
`${sliceName}/updateReleaseInfo`,
|
|
323
|
-
({ name, info }, { dispatch, getState }) => general_api_default.patch(`${deploymentsApiUrlV2}/deployments/releases/${name}`, info).catch((err) => commonErrorHandler(err, `Release details couldn't be updated.`, dispatch)).then(
|
|
324
|
-
|
|
327
|
+
({ name, info }, { dispatch, getState }) => general_api_default.patch(`${deploymentsApiUrlV2}/deployments/releases/${name}`, info).catch((err) => commonErrorHandler(err, `Release details couldn't be updated.`, dispatch)).then(
|
|
328
|
+
() => Promise.all([
|
|
325
329
|
dispatch(actions.receiveRelease({ ...getReleasesById(getState())[name], ...info, name })),
|
|
326
330
|
dispatch(setSnackbar("Release details were updated successfully.", TIMEOUTS.fiveSeconds, ""))
|
|
327
|
-
])
|
|
328
|
-
|
|
331
|
+
])
|
|
332
|
+
)
|
|
329
333
|
);
|
|
330
334
|
var setReleaseTags = createAsyncThunk(
|
|
331
335
|
`${sliceName}/setReleaseTags`,
|
|
332
|
-
({ name, tags = [] }, { dispatch, getState }) => general_api_default.put(`${deploymentsApiUrlV2}/deployments/releases/${name}/tags`, tags).catch((err) => commonErrorHandler(err, `Release tags couldn't be set.`, dispatch)).then(
|
|
333
|
-
|
|
336
|
+
({ name, tags = [] }, { dispatch, getState }) => general_api_default.put(`${deploymentsApiUrlV2}/deployments/releases/${name}/tags`, tags).catch((err) => commonErrorHandler(err, `Release tags couldn't be set.`, dispatch)).then(
|
|
337
|
+
() => Promise.all([
|
|
334
338
|
dispatch(actions.receiveRelease({ ...getReleasesById(getState())[name], name, tags })),
|
|
335
339
|
dispatch(setSnackbar("Release tags were set successfully.", TIMEOUTS.fiveSeconds, ""))
|
|
336
|
-
])
|
|
337
|
-
|
|
340
|
+
])
|
|
341
|
+
)
|
|
338
342
|
);
|
|
339
343
|
var getExistingReleaseTags = createAsyncThunk(
|
|
340
344
|
`${sliceName}/getReleaseTags`,
|
|
@@ -363,4 +367,4 @@ export {
|
|
|
363
367
|
getExistingReleaseTags,
|
|
364
368
|
getUpdateTypes
|
|
365
369
|
};
|
|
366
|
-
//# sourceMappingURL=chunk-
|
|
370
|
+
//# sourceMappingURL=chunk-EYCORLYU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/releasesSlice/thunks.ts"],"sourcesContent":["// Copyright 2019 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.\n// @ts-nocheck\nimport storeActions from '@northern.tech/store/actions';\nimport GeneralApi from '@northern.tech/store/api/general-api';\nimport {\n DEVICE_LIST_DEFAULTS,\n SORTING_OPTIONS,\n TIMEOUTS,\n deploymentsApiUrl,\n deploymentsApiUrlV2,\n emptyFilter,\n headerNames\n} from '@northern.tech/store/constants';\nimport { formatReleases } from '@northern.tech/store/locationutils';\nimport { getSearchEndpoint } from '@northern.tech/store/selectors';\nimport { commonErrorFallback, commonErrorHandler } from '@northern.tech/store/store';\nimport { convertDeviceListStateToFilters, progress } from '@northern.tech/store/utils';\nimport { customSort, deepCompare, duplicateFilter, extractSoftwareItem } from '@northern.tech/utils/helpers';\nimport { createAsyncThunk } from '@reduxjs/toolkit';\nimport { isCancel } from 'axios';\nimport { v4 as uuid } from 'uuid';\n\nimport { actions, sliceName } from '.';\nimport { ARTIFACT_GENERATION_TYPE } from './constants';\nimport { getReleasesById } from './selectors';\n\nconst { setSnackbar, initUpload, uploadProgress, cleanUpUpload } = storeActions;\nconst { page: defaultPage, perPage: defaultPerPage } = DEVICE_LIST_DEFAULTS;\n\nconst sortingDefaults = { direction: SORTING_OPTIONS.desc, key: 'modified' };\n\nconst flattenRelease = (release, stateRelease) => {\n const updatedArtifacts = release.artifacts?.sort(customSort(true, 'modified')) || [];\n const { artifacts, deviceTypes, modified } = updatedArtifacts.reduce(\n (accu, item) => {\n accu.deviceTypes.push(...item.device_types_compatible);\n const stateArtifact = stateRelease.artifacts?.find(releaseArtifact => releaseArtifact.id === item.id) || {};\n accu.modified = accu.modified ? accu.modified : item.modified;\n accu.artifacts.push({\n ...stateArtifact,\n ...item\n });\n return accu;\n },\n { artifacts: [], deviceTypes: [], modified: undefined }\n );\n return { ...stateRelease, ...release, artifacts, device_types_compatible: deviceTypes.filter(duplicateFilter), modified };\n};\n\nconst reduceReceivedReleases = (releases, stateReleasesById) =>\n releases.reduce((accu, release) => {\n const stateRelease = stateReleasesById[release.name] || {};\n accu[release.name] = flattenRelease(release, stateRelease);\n return accu;\n }, {});\n\nconst findArtifactIndexInRelease = (releases, id) =>\n Object.values(releases).reduce(\n (accu, item) => {\n let index = item.artifacts.findIndex(releaseArtifact => releaseArtifact.id === id);\n if (index > -1) {\n accu = { release: item, index };\n }\n return accu;\n },\n { release: null, index: -1 }\n );\n\n/* Artifacts */\nexport const getArtifactInstallCount = createAsyncThunk(`${sliceName}/getArtifactInstallCount`, (id, { dispatch, getState }) => {\n let { release, index } = findArtifactIndexInRelease(getReleasesById(getState()), id);\n if (!release || index === -1) {\n return;\n }\n const releaseArtifacts = [...release.artifacts];\n const artifact = releaseArtifacts[index];\n const { key, name, version } = extractSoftwareItem(artifact.artifact_provides) ?? {};\n const attribute = `${key}${name ? `.${name}` : ''}.version`;\n const { filterTerms } = convertDeviceListStateToFilters({\n filters: [{ ...emptyFilter, key: attribute, value: version, scope: 'inventory' }]\n });\n return GeneralApi.post(getSearchEndpoint(getState()), {\n page: 1,\n per_page: 1,\n filters: filterTerms,\n attributes: [{ scope: 'identity', attribute: 'status' }]\n })\n .catch(err => commonErrorHandler(err, `Retrieving artifact installation count failed:`, dispatch, commonErrorFallback))\n .then(({ headers }) => {\n let { release, index } = findArtifactIndexInRelease(getReleasesById(getState()), id);\n if (!release || index === -1) {\n return;\n }\n const installCount = Number(headers[headerNames.total]);\n const releaseArtifacts = [...release.artifacts];\n releaseArtifacts[index] = { ...releaseArtifacts[index], installCount };\n release = {\n ...release,\n artifacts: releaseArtifacts\n };\n return dispatch(actions.receiveRelease(release));\n });\n});\n\nexport const getArtifactUrl = createAsyncThunk(`${sliceName}/getArtifactUrl`, (id, { dispatch, getState }) =>\n GeneralApi.get(`${deploymentsApiUrl}/artifacts/${id}/download`).then(response => {\n let { release, index } = findArtifactIndexInRelease(getReleasesById(getState()), id);\n if (!release || index === -1) {\n return dispatch(getReleases());\n }\n const releaseArtifacts = [...release.artifacts];\n releaseArtifacts[index] = {\n ...releaseArtifacts[index],\n url: response.data.uri\n };\n release = {\n ...release,\n artifacts: releaseArtifacts\n };\n return dispatch(actions.receiveRelease(release));\n })\n);\n\nexport const createArtifact = createAsyncThunk(`${sliceName}/createArtifact`, ({ file, meta }, { dispatch }) => {\n let formData = Object.entries(meta).reduce((accu, [key, value]) => {\n if (Array.isArray(value)) {\n accu.append(key, value.join(','));\n } else if (value instanceof Object) {\n accu.append(key, JSON.stringify(value));\n } else {\n accu.append(key, value);\n }\n return accu;\n }, new FormData());\n formData.append('type', ARTIFACT_GENERATION_TYPE.SINGLE_FILE);\n formData.append('file', file);\n const uploadId = uuid();\n const cancelSource = new AbortController();\n return Promise.all([\n dispatch(setSnackbar('Generating artifact')),\n dispatch(initUpload({ id: uploadId, upload: { name: file.name, size: file.size, uploadProgress: 0, cancelSource } })),\n GeneralApi.upload(\n `${deploymentsApiUrl}/artifacts/generate`,\n formData,\n e => dispatch(uploadProgress({ id: uploadId, progress: progress(e) })),\n cancelSource.signal\n )\n ])\n .then(() => {\n setTimeout(() => {\n dispatch(getReleases());\n dispatch(selectRelease(file.name));\n }, TIMEOUTS.oneSecond);\n return Promise.resolve(dispatch(setSnackbar('Upload successful', TIMEOUTS.fiveSeconds)));\n })\n .catch(err => {\n if (isCancel(err)) {\n return dispatch(setSnackbar('The artifact generation has been cancelled', TIMEOUTS.fiveSeconds));\n }\n return commonErrorHandler(err, `Artifact couldn't be generated.`, dispatch);\n })\n .finally(() => dispatch(cleanUpUpload(uploadId)));\n});\n\nexport const uploadArtifact = createAsyncThunk(`${sliceName}/uploadArtifact`, ({ file, meta }, { dispatch }) => {\n let formData = new FormData();\n formData.append('size', file.size);\n formData.append('description', meta.description);\n formData.append('artifact', file);\n const uploadId = uuid();\n const cancelSource = new AbortController();\n return Promise.all([\n dispatch(setSnackbar('Uploading artifact')),\n dispatch(initUpload({ id: uploadId, upload: { name: file.name, size: file.size, uploadProgress: 0, cancelSource } })),\n GeneralApi.upload(`${deploymentsApiUrl}/artifacts`, formData, e => dispatch(uploadProgress({ id: uploadId, progress: progress(e) })), cancelSource.signal)\n ])\n .then(() => {\n const tasks = [dispatch(setSnackbar('Upload successful', TIMEOUTS.fiveSeconds)), dispatch(getReleases())];\n if (meta.name) {\n tasks.push(dispatch(selectRelease(meta.name)));\n }\n return Promise.all(tasks);\n })\n .catch(err => {\n if (isCancel(err)) {\n return dispatch(setSnackbar('The upload has been cancelled', TIMEOUTS.fiveSeconds));\n }\n return commonErrorHandler(err, `Artifact couldn't be uploaded.`, dispatch);\n })\n .finally(() => dispatch(cleanUpUpload(uploadId)));\n});\n\nexport const cancelFileUpload = createAsyncThunk(`${sliceName}/cancelFileUpload`, (id, { dispatch, getState }) => {\n const { [id]: current } = getState().app.uploadsById;\n current.cancelSource.abort();\n return Promise.resolve(dispatch(cleanUpUpload(id)));\n});\n\nexport const editArtifact = createAsyncThunk(`${sliceName}/editArtifact`, ({ id, body }, { dispatch, getState }) =>\n GeneralApi.put(`${deploymentsApiUrl}/artifacts/${id}`, body)\n .catch(err => commonErrorHandler(err, `Artifact details couldn't be updated.`, dispatch))\n .then(() => {\n const state = getState();\n let { release, index } = findArtifactIndexInRelease(getReleasesById(state), id);\n if (!release || index === -1) {\n return dispatch(getReleases());\n }\n const updatedRelease = {\n ...release,\n artifacts: release.artifacts.map((artifact, i) => (i === index ? { ...artifact, description: body.description } : artifact))\n };\n return Promise.all([\n dispatch(actions.receiveRelease(updatedRelease)),\n dispatch(setSnackbar('Artifact details were updated successfully.', TIMEOUTS.fiveSeconds, '')),\n dispatch(getRelease(release.name)),\n dispatch(selectRelease(release.name))\n ]);\n })\n);\n\nexport const removeArtifact = createAsyncThunk(`${sliceName}/removeArtifact`, (id, { dispatch, getState }) =>\n GeneralApi.delete(`${deploymentsApiUrl}/artifacts/${id}`)\n .then(() => {\n const state = getState();\n let { release, index } = findArtifactIndexInRelease(getReleasesById(state), id);\n const releaseArtifacts = [...release.artifacts];\n releaseArtifacts.splice(index, 1);\n if (!releaseArtifacts.length) {\n const { releasesList } = state.releases;\n const releaseIds = releasesList.releaseIds.filter(id => release.name !== id);\n return Promise.all([\n dispatch(actions.removeRelease(release.name)),\n dispatch(\n setReleasesListState({\n releaseIds,\n searchTotal: releasesList.searchTerm ? releasesList.searchTotal - 1 : releasesList.searchTotal,\n total: releasesList.total - 1\n })\n )\n ]);\n }\n return Promise.all([dispatch(setSnackbar('Artifact was removed', TIMEOUTS.fiveSeconds, '')), dispatch(actions.receiveRelease(release))]);\n })\n .catch(err => commonErrorHandler(err, `Error removing artifact:`, dispatch))\n);\n\nexport const removeRelease = createAsyncThunk(`${sliceName}/removeRelease`, (releaseId, { dispatch, getState }) =>\n Promise.all(getReleasesById(getState())[releaseId].artifacts.map(({ id }) => dispatch(removeArtifact(id)))).then(() => dispatch(selectRelease()))\n);\n\nexport const selectRelease = createAsyncThunk(`${sliceName}/selectRelease`, (release, { dispatch }) => {\n const name = release ? release.name || release : null;\n let tasks = [dispatch(actions.selectedRelease(name))];\n if (name) {\n tasks.push(dispatch(getRelease(name)));\n }\n return Promise.all(tasks);\n});\n\nexport const setReleasesListState = createAsyncThunk(`${sliceName}/setReleasesListState`, (selectionState, { dispatch, getState }) => {\n const currentState = getState().releases.releasesList;\n let nextState = {\n ...currentState,\n ...selectionState,\n sort: { ...currentState.sort, ...selectionState.sort }\n };\n let tasks = [];\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { isLoading: currentLoading, ...currentRequestState } = currentState;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { isLoading: selectionLoading, ...selectionRequestState } = nextState;\n if (!deepCompare(currentRequestState, selectionRequestState)) {\n nextState.isLoading = true;\n tasks.push(dispatch(getReleases(nextState)).finally(() => dispatch(setReleasesListState({ isLoading: false }))));\n }\n tasks.push(dispatch(actions.setReleaseListState(nextState)));\n return Promise.all(tasks);\n});\n\n/* Releases */\n\nconst releaseListRetrieval = config => {\n const { searchTerm = '', page = defaultPage, perPage = defaultPerPage, sort = sortingDefaults, selectedTags = [], type = '' } = config;\n const { key: attribute, direction } = sort;\n const filterQuery = formatReleases({ pageState: { searchTerm, selectedTags } });\n const updateType = type ? `update_type=${type}` : '';\n const sorting = attribute ? `sort=${attribute}:${direction}`.toLowerCase() : '';\n return GeneralApi.get(\n `${deploymentsApiUrlV2}/deployments/releases?${[`page=${page}`, `per_page=${perPage}`, filterQuery, updateType, sorting].filter(i => i).join('&')}`\n );\n};\n\nconst deductSearchState = (receivedReleases, config, total, state) => {\n let releaseListState = { ...state.releasesList };\n const { searchTerm, searchOnly, sort = {}, selectedTags = [], type } = config;\n const flattenedReleases = Object.values(receivedReleases).sort(customSort(sort.direction === SORTING_OPTIONS.desc, sort.key));\n const releaseIds = flattenedReleases.map(item => item.name);\n const isFiltering = !!(selectedTags.length || type || searchTerm);\n if (searchOnly) {\n releaseListState = { ...releaseListState, searchedIds: releaseIds };\n } else {\n releaseListState = {\n ...releaseListState,\n releaseIds,\n searchTotal: isFiltering ? total : state.releasesList.searchTotal,\n total: !isFiltering ? total : state.releasesList.total\n };\n }\n return releaseListState;\n};\n\nexport const getReleases = createAsyncThunk(`${sliceName}/getReleases`, (passedConfig = {}, { dispatch, getState }) => {\n const config = { ...getState().releases.releasesList, ...passedConfig };\n return releaseListRetrieval(config)\n .then(({ data: receivedReleases = [], headers = {} }) => {\n const total = headers[headerNames.total] ? Number(headers[headerNames.total]) : 0;\n const state = getState().releases;\n const flatReleases = reduceReceivedReleases(receivedReleases, state.byId);\n const combinedReleases = { ...state.byId, ...flatReleases };\n let tasks = [dispatch(actions.receiveReleases(combinedReleases))];\n const releaseListState = deductSearchState(receivedReleases, config, total, state);\n tasks.push(dispatch(actions.setReleaseListState(releaseListState)));\n return Promise.all(tasks);\n })\n .catch(err => commonErrorHandler(err, `Please check your connection`, dispatch));\n});\n\nexport const getRelease = createAsyncThunk(`${sliceName}/getReleases`, async (name, { dispatch, getState }) => {\n const releaseResponse = await GeneralApi.get(`${deploymentsApiUrlV2}/deployments/releases/${name}`);\n const { data: release } = releaseResponse;\n if (release) {\n const stateRelease = getReleasesById(getState())[release.name] || {};\n await dispatch(actions.receiveRelease(flattenRelease(release, stateRelease)));\n }\n return Promise.resolve(null);\n});\n\nexport const updateReleaseInfo = createAsyncThunk(`${sliceName}/updateReleaseInfo`, ({ name, info }, { dispatch, getState }) =>\n GeneralApi.patch(`${deploymentsApiUrlV2}/deployments/releases/${name}`, info)\n .catch(err => commonErrorHandler(err, `Release details couldn't be updated.`, dispatch))\n .then(() =>\n Promise.all([\n dispatch(actions.receiveRelease({ ...getReleasesById(getState())[name], ...info, name })),\n dispatch(setSnackbar('Release details were updated successfully.', TIMEOUTS.fiveSeconds, ''))\n ])\n )\n);\n\nexport const setReleaseTags = createAsyncThunk(`${sliceName}/setReleaseTags`, ({ name, tags = [] }, { dispatch, getState }) =>\n GeneralApi.put(`${deploymentsApiUrlV2}/deployments/releases/${name}/tags`, tags)\n .catch(err => commonErrorHandler(err, `Release tags couldn't be set.`, dispatch))\n .then(() =>\n Promise.all([\n dispatch(actions.receiveRelease({ ...getReleasesById(getState())[name], name, tags })),\n dispatch(setSnackbar('Release tags were set successfully.', TIMEOUTS.fiveSeconds, ''))\n ])\n )\n);\n\nexport const getExistingReleaseTags = createAsyncThunk(`${sliceName}/getReleaseTags`, (_, { dispatch }) =>\n GeneralApi.get(`${deploymentsApiUrlV2}/releases/all/tags`)\n .catch(err => commonErrorHandler(err, `Existing release tags couldn't be retrieved.`, dispatch))\n .then(({ data: tags }) => Promise.resolve(dispatch(actions.receiveReleaseTags(tags))))\n);\n\nexport const getUpdateTypes = createAsyncThunk(`${sliceName}/getReleaseTypes`, (_, { dispatch }) =>\n GeneralApi.get(`${deploymentsApiUrlV2}/releases/all/types`)\n .catch(err => commonErrorHandler(err, `Existing update types couldn't be retrieved.`, dispatch))\n .then(({ data: types }) => Promise.resolve(dispatch(actions.receiveReleaseTypes(types))))\n);\n"],"mappings":"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","names":["release","index","releaseArtifacts","id"]}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isDarkMode
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-GWJIY56H.js";
|
|
4
4
|
import {
|
|
5
5
|
READ_STATES,
|
|
6
6
|
twoFAStates
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-OEP2D6QL.js";
|
|
8
8
|
import {
|
|
9
9
|
DEVICE_ONLINE_CUTOFF,
|
|
10
10
|
defaultIdAttribute
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-BSN2TOQC.js";
|
|
12
12
|
|
|
13
13
|
// src/usersSlice/selectors.ts
|
|
14
14
|
import { createSelector } from "@reduxjs/toolkit";
|
|
@@ -17,8 +17,13 @@ var getTooltipsById = (state) => state.users.tooltips.byId;
|
|
|
17
17
|
var getGlobalSettings = (state) => state.users.globalSettings;
|
|
18
18
|
var getCurrentUserId = (state) => state.users.currentUser;
|
|
19
19
|
var getUsersById = (state) => state.users.byId;
|
|
20
|
+
var getUsersList = createSelector([getUsersById], (usersById) => Object.values(usersById));
|
|
20
21
|
var getCurrentUser = createSelector([getUsersById, getCurrentUserId], (usersById, userId) => usersById[userId] ?? {});
|
|
21
22
|
var getUserSettings = (state) => state.users.userSettings;
|
|
23
|
+
var getSelectedDeviceAttribute = createSelector(
|
|
24
|
+
[getUserSettings],
|
|
25
|
+
({ columnSelection }) => columnSelection.map((attribute) => ({ attribute: attribute.key, scope: attribute.scope }))
|
|
26
|
+
);
|
|
22
27
|
var getIsDarkMode = createSelector([getUserSettings], ({ mode }) => isDarkMode(mode));
|
|
23
28
|
var getShowHelptips = createSelector(
|
|
24
29
|
[getTooltipsById],
|
|
@@ -43,15 +48,18 @@ var getOfflineThresholdSettings = createSelector([getGlobalSettings], ({ offline
|
|
|
43
48
|
interval: offlineThreshold?.interval || DEVICE_ONLINE_CUTOFF.interval,
|
|
44
49
|
intervalUnit: offlineThreshold?.intervalUnit || DEVICE_ONLINE_CUTOFF.intervalName
|
|
45
50
|
}));
|
|
46
|
-
var getRolesList = createSelector([getRolesById], (rolesById) => Object.entries(rolesById).map(([
|
|
51
|
+
var getRolesList = createSelector([getRolesById], (rolesById) => Object.entries(rolesById).map(([value, role]) => ({ value, ...role })));
|
|
47
52
|
var getCurrentSession = (state) => state.users.currentSession;
|
|
48
53
|
|
|
49
54
|
export {
|
|
50
55
|
getRolesById,
|
|
51
56
|
getTooltipsById,
|
|
52
57
|
getGlobalSettings,
|
|
58
|
+
getUsersById,
|
|
59
|
+
getUsersList,
|
|
53
60
|
getCurrentUser,
|
|
54
61
|
getUserSettings,
|
|
62
|
+
getSelectedDeviceAttribute,
|
|
55
63
|
getIsDarkMode,
|
|
56
64
|
getShowHelptips,
|
|
57
65
|
getTooltipsState,
|
|
@@ -61,4 +69,4 @@ export {
|
|
|
61
69
|
getRolesList,
|
|
62
70
|
getCurrentSession
|
|
63
71
|
};
|
|
64
|
-
//# sourceMappingURL=chunk-
|
|
72
|
+
//# sourceMappingURL=chunk-FQDSV3NK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/usersSlice/selectors.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.\n// @ts-nocheck\nimport { DEVICE_ONLINE_CUTOFF, defaultIdAttribute } from '@northern.tech/store/constants';\nimport { isDarkMode } from '@northern.tech/store/utils';\nimport { createSelector } from '@reduxjs/toolkit';\n\nimport { READ_STATES, twoFAStates } from './constants';\n\nexport const getRolesById = state => state.users.rolesById;\nexport const getTooltipsById = state => state.users.tooltips.byId;\nexport const getGlobalSettings = state => state.users.globalSettings;\n\nconst getCurrentUserId = state => state.users.currentUser;\nexport const getUsersById = state => state.users.byId;\nexport const getUsersList = createSelector([getUsersById], usersById => Object.values(usersById));\nexport const getCurrentUser = createSelector([getUsersById, getCurrentUserId], (usersById, userId) => usersById[userId] ?? {});\nexport const getUserSettings = state => state.users.userSettings;\nexport const getSelectedDeviceAttribute = createSelector([getUserSettings], ({ columnSelection }) =>\n columnSelection.map(attribute => ({ attribute: attribute.key, scope: attribute.scope }))\n);\nexport const getIsDarkMode = createSelector([getUserSettings], ({ mode }) => isDarkMode(mode));\n\nexport const getShowHelptips = createSelector([getTooltipsById], tooltips =>\n Object.values(tooltips).reduce((accu, { readState }) => accu || readState === READ_STATES.unread, false)\n);\n\nexport const getTooltipsState = createSelector([getTooltipsById, getUserSettings], (byId, { tooltips = {} }) =>\n Object.entries(byId).reduce(\n (accu, [id, value]) => {\n accu[id] = { ...accu[id], ...value };\n return accu;\n },\n { ...tooltips }\n )\n);\n\nexport const getHas2FA = createSelector(\n [getCurrentUser],\n currentUser => currentUser.hasOwnProperty('tfa_status') && currentUser.tfa_status === twoFAStates.enabled\n);\n\nexport const getIdAttribute = createSelector([getGlobalSettings], ({ id_attribute = { ...defaultIdAttribute } }) => id_attribute);\n\nexport const getOfflineThresholdSettings = createSelector([getGlobalSettings], ({ offlineThreshold }) => ({\n interval: offlineThreshold?.interval || DEVICE_ONLINE_CUTOFF.interval,\n intervalUnit: offlineThreshold?.intervalUnit || DEVICE_ONLINE_CUTOFF.intervalName\n}));\n\nexport const getRolesList = createSelector([getRolesById], rolesById => Object.entries(rolesById).map(([value, role]) => ({ value, ...role })));\n\nexport const getCurrentSession = state => state.users.currentSession;\n"],"mappings":";;;;;;;;;;;;;AAgBA,SAAS,sBAAsB;AAIxB,IAAM,eAAe,WAAS,MAAM,MAAM;AAC1C,IAAM,kBAAkB,WAAS,MAAM,MAAM,SAAS;AACtD,IAAM,oBAAoB,WAAS,MAAM,MAAM;AAEtD,IAAM,mBAAmB,WAAS,MAAM,MAAM;AACvC,IAAM,eAAe,WAAS,MAAM,MAAM;AAC1C,IAAM,eAAe,eAAe,CAAC,YAAY,GAAG,eAAa,OAAO,OAAO,SAAS,CAAC;AACzF,IAAM,iBAAiB,eAAe,CAAC,cAAc,gBAAgB,GAAG,CAAC,WAAW,WAAW,UAAU,MAAM,KAAK,CAAC,CAAC;AACtH,IAAM,kBAAkB,WAAS,MAAM,MAAM;AAC7C,IAAM,6BAA6B;AAAA,EAAe,CAAC,eAAe;AAAA,EAAG,CAAC,EAAE,gBAAgB,MAC7F,gBAAgB,IAAI,gBAAc,EAAE,WAAW,UAAU,KAAK,OAAO,UAAU,MAAM,EAAE;AACzF;AACO,IAAM,gBAAgB,eAAe,CAAC,eAAe,GAAG,CAAC,EAAE,KAAK,MAAM,WAAW,IAAI,CAAC;AAEtF,IAAM,kBAAkB;AAAA,EAAe,CAAC,eAAe;AAAA,EAAG,cAC/D,OAAO,OAAO,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,MAAM,QAAQ,cAAc,YAAY,QAAQ,KAAK;AACzG;AAEO,IAAM,mBAAmB;AAAA,EAAe,CAAC,iBAAiB,eAAe;AAAA,EAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,MACxG,OAAO,QAAQ,IAAI,EAAE;AAAA,IACnB,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM;AACrB,WAAK,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,GAAG,GAAG,MAAM;AACnC,aAAO;AAAA,IACT;AAAA,IACA,EAAE,GAAG,SAAS;AAAA,EAChB;AACF;AAEO,IAAM,YAAY;AAAA,EACvB,CAAC,cAAc;AAAA,EACf,iBAAe,YAAY,eAAe,YAAY,KAAK,YAAY,eAAe,YAAY;AACpG;AAEO,IAAM,iBAAiB,eAAe,CAAC,iBAAiB,GAAG,CAAC,EAAE,eAAe,EAAE,GAAG,mBAAmB,EAAE,MAAM,YAAY;AAEzH,IAAM,8BAA8B,eAAe,CAAC,iBAAiB,GAAG,CAAC,EAAE,iBAAiB,OAAO;AAAA,EACxG,UAAU,kBAAkB,YAAY,qBAAqB;AAAA,EAC7D,cAAc,kBAAkB,gBAAgB,qBAAqB;AACvE,EAAE;AAEK,IAAM,eAAe,eAAe,CAAC,YAAY,GAAG,eAAa,OAAO,QAAQ,SAAS,EAAE,IAAI,CAAC,CAAC,OAAO,IAAI,OAAO,EAAE,OAAO,GAAG,KAAK,EAAE,CAAC;AAEvI,IAAM,oBAAoB,WAAS,MAAM,MAAM;","names":[]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
TENANT_LIST_DEFAULT
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-OEP2D6QL.js";
|
|
4
4
|
import {
|
|
5
5
|
DEVICE_LIST_DEFAULTS,
|
|
6
6
|
SORTING_OPTIONS
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-BSN2TOQC.js";
|
|
8
8
|
|
|
9
9
|
// src/organizationSlice/index.ts
|
|
10
10
|
import { createSlice } from "@reduxjs/toolkit";
|
|
@@ -104,4 +104,4 @@ export {
|
|
|
104
104
|
actions,
|
|
105
105
|
organizationSlice_default
|
|
106
106
|
};
|
|
107
|
-
//# sourceMappingURL=chunk-
|
|
107
|
+
//# sourceMappingURL=chunk-FRSA2YB5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/organizationSlice/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.\n//@ts-nocheck\nimport { DEVICE_LIST_DEFAULTS, SORTING_OPTIONS, TENANT_LIST_DEFAULT } from '@northern.tech/store/constants';\nimport { OrganizationState } from '@northern.tech/store/organizationSlice/types';\nimport { createSlice } from '@reduxjs/toolkit';\n\nexport const sliceName = 'organization';\n\nexport const initialState: OrganizationState = {\n card: {\n last4: '',\n expiration: { month: 1, year: 2020 },\n brand: ''\n },\n intentId: null,\n tenantList: {\n ...TENANT_LIST_DEFAULT,\n total: 0,\n tenants: [],\n selectedTenant: null,\n sort: {\n direction: SORTING_OPTIONS.desc,\n key: 'name'\n }\n },\n organization: {\n // id, name, status, tenant_token, plan\n },\n auditlog: {\n events: [],\n selectionState: {\n ...DEVICE_LIST_DEFAULTS,\n detail: undefined,\n endDate: undefined,\n selectedIssue: undefined,\n sort: { direction: SORTING_OPTIONS.desc },\n startDate: undefined,\n total: 0,\n type: undefined,\n user: undefined\n }\n },\n externalDeviceIntegrations: [\n // { <connection_string|x509|...>, id, provider }\n ],\n ssoConfigs: [],\n webhooks: {\n // [id]: { events: [] }\n // for now:\n events: [],\n eventsTotal: 0\n }\n};\n\nexport const organizationSlice = createSlice({\n name: sliceName,\n initialState,\n reducers: {\n receiveAuditLogs: (state, action) => {\n const { events, total } = action.payload;\n state.auditlog.events = events;\n state.auditlog.selectionState.total = total;\n },\n setAuditLogState: (state, action) => {\n state.auditlog.selectionState = {\n ...state.auditlog.selectionState,\n ...action.payload\n };\n },\n receiveCurrentCard: (state, action) => {\n state.card = action.payload;\n },\n receiveSetupIntent: (state, action) => {\n state.intentId = action.payload;\n },\n setOrganization: (state, action) => {\n state.organization = { ...state.organization, ...action.payload };\n },\n setTenantListState: (state, action) => {\n state.tenantList = action.payload;\n },\n receiveExternalDeviceIntegrations: (state, action) => {\n state.externalDeviceIntegrations = action.payload;\n },\n receiveSsoConfigs: (state, action) => {\n state.ssoConfigs = action.payload;\n },\n receiveWebhookEvents: (state, action) => {\n const { value, total } = action.payload;\n state.webhooks.events = value;\n state.webhooks.eventsTotal = total;\n }\n }\n});\n\nexport const actions = organizationSlice.actions;\nexport default organizationSlice.reducer;\n"],"mappings":";;;;;;;;;AAgBA,SAAS,mBAAmB;AAErB,IAAM,YAAY;AAElB,IAAM,eAAkC;AAAA,EAC7C,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,YAAY,EAAE,OAAO,GAAG,MAAM,KAAK;AAAA,IACnC,OAAO;AAAA,EACT;AAAA,EACA,UAAU;AAAA,EACV,YAAY;AAAA,IACV,GAAG;AAAA,IACH,OAAO;AAAA,IACP,SAAS,CAAC;AAAA,IACV,gBAAgB;AAAA,IAChB,MAAM;AAAA,MACJ,WAAW,gBAAgB;AAAA,MAC3B,KAAK;AAAA,IACP;AAAA,EACF;AAAA,EACA,cAAc;AAAA;AAAA,EAEd;AAAA,EACA,UAAU;AAAA,IACR,QAAQ,CAAC;AAAA,IACT,gBAAgB;AAAA,MACd,GAAG;AAAA,MACH,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,eAAe;AAAA,MACf,MAAM,EAAE,WAAW,gBAAgB,KAAK;AAAA,MACxC,WAAW;AAAA,MACX,OAAO;AAAA,MACP,MAAM;AAAA,MACN,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,4BAA4B;AAAA;AAAA,EAE5B;AAAA,EACA,YAAY,CAAC;AAAA,EACb,UAAU;AAAA;AAAA;AAAA,IAGR,QAAQ,CAAC;AAAA,IACT,aAAa;AAAA,EACf;AACF;AAEO,IAAM,oBAAoB,YAAY;AAAA,EAC3C,MAAM;AAAA,EACN;AAAA,EACA,UAAU;AAAA,IACR,kBAAkB,CAAC,OAAO,WAAW;AACnC,YAAM,EAAE,QAAQ,MAAM,IAAI,OAAO;AACjC,YAAM,SAAS,SAAS;AACxB,YAAM,SAAS,eAAe,QAAQ;AAAA,IACxC;AAAA,IACA,kBAAkB,CAAC,OAAO,WAAW;AACnC,YAAM,SAAS,iBAAiB;AAAA,QAC9B,GAAG,MAAM,SAAS;AAAA,QAClB,GAAG,OAAO;AAAA,MACZ;AAAA,IACF;AAAA,IACA,oBAAoB,CAAC,OAAO,WAAW;AACrC,YAAM,OAAO,OAAO;AAAA,IACtB;AAAA,IACA,oBAAoB,CAAC,OAAO,WAAW;AACrC,YAAM,WAAW,OAAO;AAAA,IAC1B;AAAA,IACA,iBAAiB,CAAC,OAAO,WAAW;AAClC,YAAM,eAAe,EAAE,GAAG,MAAM,cAAc,GAAG,OAAO,QAAQ;AAAA,IAClE;AAAA,IACA,oBAAoB,CAAC,OAAO,WAAW;AACrC,YAAM,aAAa,OAAO;AAAA,IAC5B;AAAA,IACA,mCAAmC,CAAC,OAAO,WAAW;AACpD,YAAM,6BAA6B,OAAO;AAAA,IAC5C;AAAA,IACA,mBAAmB,CAAC,OAAO,WAAW;AACpC,YAAM,aAAa,OAAO;AAAA,IAC5B;AAAA,IACA,sBAAsB,CAAC,OAAO,WAAW;AACvC,YAAM,EAAE,OAAO,MAAM,IAAI,OAAO;AAChC,YAAM,SAAS,SAAS;AACxB,YAAM,SAAS,cAAc;AAAA,IAC/B;AAAA,EACF;AACF,CAAC;AAEM,IAAM,UAAU,kBAAkB;AACzC,IAAO,4BAAQ,kBAAkB;","names":[]}
|
|
@@ -1,44 +1,44 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getDeploymentsById,
|
|
3
|
+
getDeploymentsSelectionState,
|
|
4
|
+
getSelectedDeploymentDeviceIds
|
|
5
|
+
} from "./chunk-ZWOAFHAR.js";
|
|
1
6
|
import {
|
|
2
7
|
getCurrentUser,
|
|
3
8
|
getGlobalSettings,
|
|
4
9
|
getRolesById,
|
|
5
10
|
getRolesList,
|
|
6
11
|
getUserSettings
|
|
7
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-FQDSV3NK.js";
|
|
13
|
+
import {
|
|
14
|
+
getAuditLogEntry,
|
|
15
|
+
getIsServiceProvider,
|
|
16
|
+
getOrganization
|
|
17
|
+
} from "./chunk-JO33IORF.js";
|
|
8
18
|
import {
|
|
9
19
|
getReleasesById
|
|
10
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-DCEKU6UV.js";
|
|
11
21
|
import {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
getSelectedDeploymentDeviceIds
|
|
15
|
-
} from "./chunk-RX55KAKX.js";
|
|
22
|
+
getIssueCountsByType
|
|
23
|
+
} from "./chunk-YO22XLHI.js";
|
|
16
24
|
import {
|
|
17
25
|
getOnboarding
|
|
18
26
|
} from "./chunk-JIS4PA3R.js";
|
|
19
27
|
import {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
} from "./chunk-Q6M5TTDQ.js";
|
|
28
|
+
getFeatures,
|
|
29
|
+
getSearchedDevices
|
|
30
|
+
} from "./chunk-LIJIIRON.js";
|
|
24
31
|
import {
|
|
25
32
|
getDeviceById,
|
|
26
33
|
getDevicesById,
|
|
27
34
|
getFilteringAttributes,
|
|
28
35
|
getGroupsById,
|
|
29
36
|
getListedDevices
|
|
30
|
-
} from "./chunk-
|
|
31
|
-
import {
|
|
32
|
-
getIssueCountsByType
|
|
33
|
-
} from "./chunk-YO22XLHI.js";
|
|
37
|
+
} from "./chunk-L3SY3J5M.js";
|
|
34
38
|
import {
|
|
35
39
|
listItemMapper,
|
|
36
40
|
mapUserRolesToUiPermissions
|
|
37
|
-
} from "./chunk-
|
|
38
|
-
import {
|
|
39
|
-
getFeatures,
|
|
40
|
-
getSearchedDevices
|
|
41
|
-
} from "./chunk-LIJIIRON.js";
|
|
41
|
+
} from "./chunk-GWJIY56H.js";
|
|
42
42
|
import {
|
|
43
43
|
inventoryApiUrlV2,
|
|
44
44
|
reportingApiUrl,
|
|
@@ -46,21 +46,22 @@ import {
|
|
|
46
46
|
rolesByName,
|
|
47
47
|
serviceProviderRolesById,
|
|
48
48
|
uiPermissionsById
|
|
49
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-OEP2D6QL.js";
|
|
50
50
|
import {
|
|
51
51
|
onboardingSteps
|
|
52
52
|
} from "./chunk-MRCFLG45.js";
|
|
53
53
|
import {
|
|
54
|
+
ADDONS,
|
|
54
55
|
PLANS,
|
|
55
56
|
defaultReports
|
|
56
|
-
} from "./chunk-
|
|
57
|
+
} from "./chunk-Y575RZHR.js";
|
|
57
58
|
import {
|
|
58
59
|
ALL_DEVICES,
|
|
59
60
|
ATTRIBUTE_SCOPES,
|
|
60
61
|
DEVICE_ISSUE_OPTIONS,
|
|
61
62
|
DEVICE_LIST_MAXIMUM_LENGTH,
|
|
62
63
|
UNGROUPED_GROUP
|
|
63
|
-
} from "./chunk-
|
|
64
|
+
} from "./chunk-BSN2TOQC.js";
|
|
64
65
|
|
|
65
66
|
// src/commonSelectors.ts
|
|
66
67
|
import { attributeDuplicateFilter, getDemoDeviceAddress as getDemoDeviceAddressHelper } from "@northern.tech/utils/helpers";
|
|
@@ -123,12 +124,18 @@ var getUserCapabilities = createSelector([getUserRoles, getIsServiceProvider], (
|
|
|
123
124
|
});
|
|
124
125
|
var getTenantCapabilities = createSelector(
|
|
125
126
|
[getFeatures, getOrganization, getIsEnterprise],
|
|
126
|
-
({
|
|
127
|
+
({
|
|
128
|
+
hasAuditlogs: isAuditlogEnabled,
|
|
129
|
+
hasDeviceConfig: isDeviceConfigEnabled,
|
|
130
|
+
hasDeviceConnect: isDeviceConnectEnabled,
|
|
131
|
+
hasMonitor: isMonitorEnabled,
|
|
132
|
+
isHosted
|
|
133
|
+
}, { addons = [], plan = PLANS.os.id }, isEnterprise) => {
|
|
127
134
|
const canDelta = isEnterprise || plan === PLANS.professional.id;
|
|
128
135
|
const hasAuditlogs = isAuditlogEnabled && isEnterprise;
|
|
129
|
-
const hasDeviceConfig =
|
|
130
|
-
const hasDeviceConnect =
|
|
131
|
-
const hasMonitor = isMonitorEnabled && addons.some((addon) => addon.name ===
|
|
136
|
+
const hasDeviceConfig = addons.some((addon) => addon.name === ADDONS.configure.id && addon.enabled) || isDeviceConfigEnabled && !isHosted;
|
|
137
|
+
const hasDeviceConnect = addons.some((addon) => addon.name === ADDONS.troubleshoot.id && addon.enabled) || isDeviceConnectEnabled && !isHosted;
|
|
138
|
+
const hasMonitor = isMonitorEnabled && addons.some((addon) => addon.name === ADDONS.monitor.id && addon.enabled);
|
|
132
139
|
return {
|
|
133
140
|
canDelta,
|
|
134
141
|
canRetry: canDelta,
|
|
@@ -232,9 +239,7 @@ var getGroupNames = createSelector([getGroupsById, getUserRoles, (_, options = {
|
|
|
232
239
|
});
|
|
233
240
|
var getDeviceReportsForUser = createSelector(
|
|
234
241
|
[getUserSettings, getCurrentUser, getGlobalSettings, getDevicesById],
|
|
235
|
-
({ reports }, { id: currentUserId }, globalSettings, devicesById) => {
|
|
236
|
-
return reports || globalSettings[`${currentUserId}-reports`] || (Object.keys(devicesById).length ? defaultReports : []);
|
|
237
|
-
}
|
|
242
|
+
({ reports }, { id: currentUserId }, globalSettings, devicesById) => reports || globalSettings[`${currentUserId}-reports`] || (Object.keys(devicesById).length ? defaultReports : [])
|
|
238
243
|
);
|
|
239
244
|
var listTypeDeviceIdMap = {
|
|
240
245
|
deviceList: getListedDevices,
|
|
@@ -258,7 +263,7 @@ var getAuditlogDevice = createSelector([getAuditLogEntry, getDevicesById], (audi
|
|
|
258
263
|
var getRelevantRoles = createSelector([getOrganization, getRolesList], ({ service_provider }, roles) => {
|
|
259
264
|
if (service_provider) {
|
|
260
265
|
return roles.reduce((accu, role) => {
|
|
261
|
-
if (rolesById[role.
|
|
266
|
+
if (rolesById[role.value]) {
|
|
262
267
|
return accu;
|
|
263
268
|
}
|
|
264
269
|
accu.push(role);
|
|
@@ -266,7 +271,7 @@ var getRelevantRoles = createSelector([getOrganization, getRolesList], ({ servic
|
|
|
266
271
|
}, Object.values(serviceProviderRolesById));
|
|
267
272
|
}
|
|
268
273
|
return Object.keys(rolesById).reverse().reduce((accu, key) => {
|
|
269
|
-
const index = accu.findIndex(({
|
|
274
|
+
const index = accu.findIndex(({ value }) => value === key);
|
|
270
275
|
accu = [accu[index], ...accu.filter((item, itemIndex) => index !== itemIndex)];
|
|
271
276
|
return accu;
|
|
272
277
|
}, roles);
|
|
@@ -292,4 +297,4 @@ export {
|
|
|
292
297
|
getAuditlogDevice,
|
|
293
298
|
getRelevantRoles
|
|
294
299
|
};
|
|
295
|
-
//# sourceMappingURL=chunk-
|
|
300
|
+
//# sourceMappingURL=chunk-FVCYB5OP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commonSelectors.ts"],"sourcesContent":["// Copyright 2024 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// @ts-nocheck\nimport { attributeDuplicateFilter, getDemoDeviceAddress as getDemoDeviceAddressHelper } from '@northern.tech/utils/helpers';\nimport { createSelector } from '@reduxjs/toolkit';\n\nimport { ADDONS, PLANS, defaultReports } from './appSlice/constants';\nimport { getFeatures, getSearchedDevices } from './appSlice/selectors';\nimport { ALL_DEVICES, ATTRIBUTE_SCOPES, DEVICE_ISSUE_OPTIONS, DEVICE_LIST_MAXIMUM_LENGTH, UNGROUPED_GROUP } from './commonConstants';\nimport { getDeploymentsById, getDeploymentsSelectionState, getSelectedDeploymentDeviceIds } from './deploymentsSlice/selectors';\nimport { inventoryApiUrlV2, reportingApiUrl } from './devicesSlice/constants';\nimport { getDeviceById, getDevicesById, getFilteringAttributes, getGroupsById, getListedDevices } from './devicesSlice/selectors';\nimport { getIssueCountsByType } from './monitorSlice/selectors';\nimport { onboardingSteps } from './onboardingSlice/constants';\nimport { getOnboarding } from './onboardingSlice/selectors';\nimport { getAuditLogEntry, getIsServiceProvider, getOrganization } from './organizationSlice/selectors';\nimport { getReleasesById } from './releasesSlice/selectors';\nimport { rolesById, rolesByName, serviceProviderRolesById, uiPermissionsById } from './usersSlice/constants';\nimport { getCurrentUser, getGlobalSettings, getRolesById, getRolesList, getUserSettings } from './usersSlice/selectors';\nimport { listItemMapper, mapUserRolesToUiPermissions } from './utils';\n\nexport const getIsEnterprise = createSelector(\n [getOrganization, getFeatures],\n ({ plan = PLANS.os.id }, { isEnterprise, isHosted }) => isEnterprise || (isHosted && plan === PLANS.enterprise.id)\n);\n\nexport const getAttrsEndpoint = createSelector([getFeatures], ({ hasReporting }) =>\n hasReporting ? `${reportingApiUrl}/devices/search/attributes` : `${inventoryApiUrlV2}/filters/attributes`\n);\nexport const getSearchEndpoint = createSelector([getFeatures], ({ hasReporting }) =>\n hasReporting ? `${reportingApiUrl}/devices/search` : `${inventoryApiUrlV2}/filters/search`\n);\n\nexport const getUserRoles = createSelector(\n [getCurrentUser, getRolesById, getIsEnterprise, getFeatures, getOrganization],\n (currentUser, rolesById, isEnterprise, { isHosted, hasMultitenancy }, { plan = PLANS.os.id }) => {\n const isAdmin = currentUser.roles?.length\n ? currentUser.roles.some(role => role === rolesByName.admin)\n : !(hasMultitenancy || isEnterprise || (isHosted && plan !== PLANS.os.id));\n const uiPermissions = isAdmin\n ? mapUserRolesToUiPermissions([rolesByName.admin], rolesById)\n : mapUserRolesToUiPermissions(currentUser.roles || [], rolesById);\n return { isAdmin, uiPermissions };\n }\n);\n\nconst hasPermission = (thing, permission) => Object.values(thing).some(permissions => permissions.includes(permission));\n\nexport const getUserCapabilities = createSelector([getUserRoles, getIsServiceProvider], ({ uiPermissions }, isServiceProvider) => {\n const canManageReleases = hasPermission(uiPermissions.releases, uiPermissionsById.manage.value);\n const canReadReleases = canManageReleases || hasPermission(uiPermissions.releases, uiPermissionsById.read.value);\n const canUploadReleases = canManageReleases || hasPermission(uiPermissions.releases, uiPermissionsById.upload.value);\n\n const canAuditlog = uiPermissions.auditlog.includes(uiPermissionsById.read.value);\n\n const canReadUsers = uiPermissions.userManagement.includes(uiPermissionsById.read.value);\n const canManageUsers = uiPermissions.userManagement.includes(uiPermissionsById.manage.value);\n\n const canReadDevices = hasPermission(uiPermissions.groups, uiPermissionsById.read.value);\n const canWriteDevices = Object.values(uiPermissions.groups).some(\n groupPermissions => groupPermissions.includes(uiPermissionsById.read.value) && groupPermissions.length > 1\n );\n const canTroubleshoot = hasPermission(uiPermissions.groups, uiPermissionsById.connect.value);\n const canManageDevices = hasPermission(uiPermissions.groups, uiPermissionsById.manage.value);\n const canConfigure = hasPermission(uiPermissions.groups, uiPermissionsById.configure.value);\n\n const canDeploy = uiPermissions.deployments.includes(uiPermissionsById.deploy.value) || hasPermission(uiPermissions.groups, uiPermissionsById.deploy.value);\n const canReadDeployments = uiPermissions.deployments.includes(uiPermissionsById.read.value);\n\n return {\n canAuditlog,\n canConfigure,\n canDeploy,\n canManageDevices,\n canManageReleases,\n canManageUsers,\n canReadDeployments,\n canReadDevices,\n canReadReleases,\n canReadUsers,\n canTroubleshoot,\n canUploadReleases,\n canWriteDevices,\n groupsPermissions: uiPermissions.groups,\n releasesPermissions: uiPermissions.releases,\n SPTenant: isServiceProvider\n };\n});\n\nexport const getTenantCapabilities = createSelector(\n [getFeatures, getOrganization, getIsEnterprise],\n (\n {\n hasAuditlogs: isAuditlogEnabled,\n hasDeviceConfig: isDeviceConfigEnabled,\n hasDeviceConnect: isDeviceConnectEnabled,\n hasMonitor: isMonitorEnabled,\n isHosted\n },\n { addons = [], plan = PLANS.os.id },\n isEnterprise\n ) => {\n const canDelta = isEnterprise || plan === PLANS.professional.id;\n const hasAuditlogs = isAuditlogEnabled && isEnterprise;\n const hasDeviceConfig = addons.some(addon => addon.name === ADDONS.configure.id && addon.enabled) || (isDeviceConfigEnabled && !isHosted);\n const hasDeviceConnect = addons.some(addon => addon.name === ADDONS.troubleshoot.id && addon.enabled) || (isDeviceConnectEnabled && !isHosted);\n const hasMonitor = isMonitorEnabled && addons.some(addon => addon.name === ADDONS.monitor.id && addon.enabled);\n return {\n canDelta,\n canRetry: canDelta,\n canSchedule: canDelta,\n hasAuditlogs,\n hasDeviceConfig,\n hasDeviceConnect,\n hasFullFiltering: canDelta,\n hasMonitor,\n isEnterprise,\n plan\n };\n }\n);\n\nexport const getFilterAttributes = createSelector(\n [getGlobalSettings, getFilteringAttributes],\n ({ previousFilters }, { identityAttributes, inventoryAttributes, systemAttributes, tagAttributes }) => {\n const deviceNameAttribute = { key: 'name', value: 'Name', scope: ATTRIBUTE_SCOPES.tags, category: ATTRIBUTE_SCOPES.tags, priority: 1 };\n const deviceIdAttribute = { key: 'id', value: 'Device ID', scope: ATTRIBUTE_SCOPES.identity, category: ATTRIBUTE_SCOPES.identity, priority: 1 };\n const checkInAttribute = { key: 'check_in_time', value: 'Latest activity', scope: ATTRIBUTE_SCOPES.system, category: ATTRIBUTE_SCOPES.system, priority: 4 };\n const updateAttribute = { ...checkInAttribute, key: 'updated_ts', value: 'Last inventory update' };\n const firstRequestAttribute = { key: 'created_ts', value: 'First request', scope: ATTRIBUTE_SCOPES.system, category: ATTRIBUTE_SCOPES.system, priority: 4 };\n const attributes = [\n ...previousFilters.map(item => ({\n ...item,\n value: deviceIdAttribute.key === item.key ? deviceIdAttribute.value : item.key,\n category: 'recently used',\n priority: 0\n })),\n deviceNameAttribute,\n deviceIdAttribute,\n ...identityAttributes.map(item => ({ key: item, value: item, scope: ATTRIBUTE_SCOPES.identity, category: ATTRIBUTE_SCOPES.identity, priority: 1 })),\n ...inventoryAttributes.map(item => ({ key: item, value: item, scope: ATTRIBUTE_SCOPES.inventory, category: ATTRIBUTE_SCOPES.inventory, priority: 2 })),\n ...tagAttributes.map(item => ({ key: item, value: item, scope: ATTRIBUTE_SCOPES.tags, category: ATTRIBUTE_SCOPES.tags, priority: 3 })),\n checkInAttribute,\n updateAttribute,\n firstRequestAttribute,\n ...systemAttributes.map(item => ({ key: item, value: item, scope: ATTRIBUTE_SCOPES.system, category: ATTRIBUTE_SCOPES.system, priority: 4 }))\n ];\n return attributeDuplicateFilter(attributes, 'key');\n }\n);\n\nexport const getOnboardingState = createSelector([getOnboarding, getUserSettings], ({ complete, progress, showTips, ...remainder }, { onboarding = {} }) => ({\n ...remainder,\n ...onboarding,\n complete: onboarding.complete || complete,\n progress:\n Object.keys(onboardingSteps).findIndex(step => step === progress) > Object.keys(onboardingSteps).findIndex(step => step === onboarding.progress)\n ? progress\n : onboarding.progress,\n showTips: !onboarding.showTips ? onboarding.showTips : showTips\n}));\n\nexport const getDemoDeviceAddress = createSelector([getDevicesById, getOnboarding], (devicesById, { approach, demoArtifactPort }) => {\n const demoDeviceAddress = `http://${getDemoDeviceAddressHelper(Object.values(devicesById), approach)}`;\n return demoArtifactPort ? `${demoDeviceAddress}:${demoArtifactPort}` : demoDeviceAddress;\n});\n\nexport const getDeviceConfigDeployment = createSelector([getDeviceById, getDeploymentsById], (device, deploymentsById) => {\n const { config = {} } = device;\n const { deployment_id: configDeploymentId } = config;\n const deviceConfigDeployment = deploymentsById[configDeploymentId] || {};\n return { device, deviceConfigDeployment };\n});\n\nexport const getDeploymentRelease = createSelector(\n [getDeploymentsById, getDeploymentsSelectionState, getReleasesById],\n (deploymentsById, { selectedId }, releasesById) => {\n const deployment = deploymentsById[selectedId] || {};\n return deployment.artifact_name && releasesById[deployment.artifact_name] ? releasesById[deployment.artifact_name] : { device_types_compatible: [] };\n }\n);\n\nexport const getSelectedDeploymentData = createSelector(\n [getDeploymentsById, getDeploymentsSelectionState, getDevicesById, getSelectedDeploymentDeviceIds],\n (deploymentsById, { selectedId }, devicesById, selectedDeviceIds) => {\n const deployment = deploymentsById[selectedId] ?? {};\n const { devices = {} } = deployment;\n return {\n deployment,\n selectedDevices: selectedDeviceIds.map(deviceId => ({ ...devicesById[deviceId], ...devices[deviceId] }))\n };\n }\n);\n\nexport const getAvailableIssueOptionsByType = createSelector(\n [getFeatures, getTenantCapabilities, getIssueCountsByType],\n ({ hasReporting }, { hasFullFiltering, hasMonitor }, issueCounts) =>\n Object.values(DEVICE_ISSUE_OPTIONS).reduce((accu, { isCategory, key, needsFullFiltering, needsMonitor, needsReporting, title }) => {\n if (isCategory || (needsReporting && !hasReporting) || (needsFullFiltering && !hasFullFiltering) || (needsMonitor && !hasMonitor)) {\n return accu;\n }\n accu[key] = { count: issueCounts[key].filtered, key, title };\n return accu;\n }, {})\n);\n\nexport const getGroupNames = createSelector([getGroupsById, getUserRoles, (_, options = {}) => options], (groupsById, { uiPermissions }, { staticOnly }) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [UNGROUPED_GROUP.id]: ungrouped, ...groups } = groupsById;\n if (staticOnly) {\n return Object.keys(uiPermissions.groups).sort();\n }\n return Object.keys(\n Object.entries(groups).reduce((accu, [groupName, group]) => {\n if (group.filterId || uiPermissions.groups[ALL_DEVICES]) {\n accu[groupName] = group;\n }\n return accu;\n }, uiPermissions.groups)\n ).sort();\n});\n\nexport const getDeviceReportsForUser = createSelector(\n [getUserSettings, getCurrentUser, getGlobalSettings, getDevicesById],\n ({ reports }, { id: currentUserId }, globalSettings, devicesById) =>\n reports || globalSettings[`${currentUserId}-reports`] || (Object.keys(devicesById).length ? defaultReports : [])\n);\n\nconst listTypeDeviceIdMap = {\n deviceList: getListedDevices,\n search: getSearchedDevices\n};\nconst deviceMapDefault = { defaultObject: { auth_sets: [] }, cutOffSize: DEVICE_LIST_MAXIMUM_LENGTH };\nconst getDeviceMappingDefaults = () => deviceMapDefault;\n\nexport const getMappedDevicesList = createSelector(\n [getDevicesById, (state, listType) => listTypeDeviceIdMap[listType](state), getDeviceMappingDefaults],\n listItemMapper\n);\n\nexport const getAuditlogDevice = createSelector([getAuditLogEntry, getDevicesById], (auditlogEvent, devicesById) => {\n let auditlogDevice = {};\n if (auditlogEvent) {\n const { object = {} } = auditlogEvent;\n const { device = {}, id, type } = object;\n auditlogDevice = type === 'device' ? { id, ...device } : auditlogDevice;\n }\n return { ...auditlogDevice, ...devicesById[auditlogDevice.id] };\n});\n\nexport const getRelevantRoles = createSelector([getOrganization, getRolesList], ({ service_provider }, roles) => {\n if (service_provider) {\n return roles.reduce((accu, role) => {\n if (rolesById[role.value]) {\n return accu;\n }\n accu.push(role);\n return accu;\n }, Object.values(serviceProviderRolesById));\n }\n return Object.keys(rolesById)\n .reverse()\n .reduce((accu, key) => {\n const index = accu.findIndex(({ value }) => value === key);\n accu = [accu[index], ...accu.filter((item, itemIndex) => index !== itemIndex)];\n return accu;\n }, roles);\n});\n"],"mappings":"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","names":["rolesById"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
TIMEOUTS
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-BSN2TOQC.js";
|
|
4
4
|
|
|
5
5
|
// src/auth.ts
|
|
6
6
|
import Cookies from "universal-cookie";
|
|
@@ -68,4 +68,4 @@ export {
|
|
|
68
68
|
maxSessionAge,
|
|
69
69
|
updateMaxAge
|
|
70
70
|
};
|
|
71
|
-
//# sourceMappingURL=chunk-
|
|
71
|
+
//# sourceMappingURL=chunk-GAI4VYRZ.js.map
|
|
@@ -5,29 +5,30 @@ import {
|
|
|
5
5
|
deploymentStatesToSubstates,
|
|
6
6
|
deploymentStatesToSubstatesWithSkipped,
|
|
7
7
|
emptyFilter
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-OEP2D6QL.js";
|
|
9
9
|
import {
|
|
10
10
|
DARK_MODE
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-Y575RZHR.js";
|
|
12
12
|
import {
|
|
13
13
|
ATTRIBUTE_SCOPES,
|
|
14
14
|
DEVICE_FILTERING_OPTIONS,
|
|
15
15
|
DEVICE_ISSUE_OPTIONS,
|
|
16
16
|
DEVICE_LIST_MAXIMUM_LENGTH,
|
|
17
17
|
emptyUiPermissions
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-BSN2TOQC.js";
|
|
19
19
|
|
|
20
20
|
// src/utils.ts
|
|
21
21
|
import { duplicateFilter, yes } from "@northern.tech/utils/helpers";
|
|
22
22
|
var filterProcessors = {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
23
|
+
[DEVICE_FILTERING_OPTIONS.$gt.key]: (val) => Number(val) || val,
|
|
24
|
+
[DEVICE_FILTERING_OPTIONS.$gte.key]: (val) => Number(val) || val,
|
|
25
|
+
[DEVICE_FILTERING_OPTIONS.$lt.key]: (val) => Number(val) || val,
|
|
26
|
+
[DEVICE_FILTERING_OPTIONS.$lte.key]: (val) => Number(val) || val,
|
|
27
|
+
[DEVICE_FILTERING_OPTIONS.$ltne.key]: (val) => Number(val) || val,
|
|
28
|
+
[DEVICE_FILTERING_OPTIONS.$in.key]: (val) => ("" + val).split(",").map((i) => i.trim()),
|
|
29
|
+
[DEVICE_FILTERING_OPTIONS.$nin.key]: (val) => ("" + val).split(",").map((i) => i.trim()),
|
|
30
|
+
[DEVICE_FILTERING_OPTIONS.$exists.key]: yes,
|
|
31
|
+
[DEVICE_FILTERING_OPTIONS.$nexists.key]: () => false
|
|
31
32
|
};
|
|
32
33
|
var filterAliases = {
|
|
33
34
|
$nexists: { alias: DEVICE_FILTERING_OPTIONS.$exists.key, value: false }
|
|
@@ -71,14 +72,12 @@ var filtersFilter = (item, index, array) => {
|
|
|
71
72
|
const firstIndex = array.findIndex((filter) => filterCompare(filter, item));
|
|
72
73
|
return firstIndex === index;
|
|
73
74
|
};
|
|
74
|
-
var listItemMapper = (byId, ids, { defaultObject = {}, cutOffSize = DEVICE_LIST_MAXIMUM_LENGTH }) => {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
}, []);
|
|
81
|
-
};
|
|
75
|
+
var listItemMapper = (byId, ids, { defaultObject = {}, cutOffSize = DEVICE_LIST_MAXIMUM_LENGTH }) => ids.slice(0, cutOffSize).reduce((accu, id) => {
|
|
76
|
+
if (id && byId[id]) {
|
|
77
|
+
accu.push({ ...defaultObject, ...byId[id] });
|
|
78
|
+
}
|
|
79
|
+
return accu;
|
|
80
|
+
}, []);
|
|
82
81
|
var mergePermissions = (existingPermissions = { ...emptyUiPermissions }, addedPermissions) => Object.entries(existingPermissions).reduce(
|
|
83
82
|
(accu, [key, value]) => {
|
|
84
83
|
let values;
|
|
@@ -209,4 +208,4 @@ export {
|
|
|
209
208
|
mapDeviceAttributes,
|
|
210
209
|
isDarkMode
|
|
211
210
|
};
|
|
212
|
-
//# sourceMappingURL=chunk-
|
|
211
|
+
//# sourceMappingURL=chunk-GWJIY56H.js.map
|