@northern.tech/store 0.21.0 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actions.cjs +1 -2
- package/dist/actions.cjs.map +1 -1
- package/dist/actions.js +3 -3
- package/dist/appSlice/index.cjs +1 -2
- package/dist/appSlice/index.cjs.map +1 -1
- package/dist/appSlice/index.js +1 -1
- package/dist/appSlice/mocks.cjs +1 -2
- package/dist/appSlice/mocks.cjs.map +1 -1
- package/dist/appSlice/mocks.js +1 -1
- package/dist/appSlice/selectors.d.cts +1 -1
- package/dist/appSlice/selectors.d.ts +1 -1
- package/dist/appSlice/thunks.cjs +17 -7
- package/dist/appSlice/thunks.cjs.map +1 -1
- package/dist/appSlice/thunks.js +10 -10
- package/dist/{chunk-6PYYMAFS.js → chunk-73JXR6WS.js} +4 -4
- package/dist/{chunk-ZVE23XXF.js → chunk-AROYP5V5.js} +6 -6
- package/dist/{chunk-7VFPMJCH.js → chunk-DDY7IFSE.js} +5 -5
- package/dist/{chunk-6WJI4MOP.js → chunk-DYUOBPAI.js} +2 -3
- package/dist/chunk-DYUOBPAI.js.map +1 -0
- package/dist/{chunk-7KSKENLP.js → chunk-FQ6CCYUU.js} +7 -7
- package/dist/{chunk-53W2NRSL.js → chunk-ML5CUAQD.js} +7 -3
- package/dist/chunk-ML5CUAQD.js.map +1 -0
- package/dist/{chunk-GHATCG2U.js → chunk-SVSHXLCN.js} +6 -6
- package/dist/{chunk-4UV7ZJXY.js → chunk-Y54UJUE4.js} +55 -40
- package/dist/chunk-Y54UJUE4.js.map +1 -0
- package/dist/commonSelectors.d.cts +18 -14
- package/dist/commonSelectors.d.ts +18 -14
- package/dist/commonSelectors.js +2 -2
- package/dist/deploymentsSlice/thunks.cjs +17 -7
- package/dist/deploymentsSlice/thunks.cjs.map +1 -1
- package/dist/deploymentsSlice/thunks.d.cts +4 -4
- package/dist/deploymentsSlice/thunks.d.ts +4 -4
- package/dist/deploymentsSlice/thunks.js +10 -10
- package/dist/devicesSlice/selectors.d.cts +1 -1
- package/dist/devicesSlice/selectors.d.ts +1 -1
- package/dist/devicesSlice/thunks.cjs +19 -7
- package/dist/devicesSlice/thunks.cjs.map +1 -1
- package/dist/devicesSlice/thunks.d.cts +14 -3
- package/dist/devicesSlice/thunks.d.ts +14 -3
- package/dist/devicesSlice/thunks.js +12 -10
- package/dist/liststatehook.cjs +6 -2
- package/dist/liststatehook.cjs.map +1 -1
- package/dist/liststatehook.d.cts +8 -2
- package/dist/liststatehook.d.ts +8 -2
- package/dist/liststatehook.js +1 -1
- package/dist/locationutils.cjs +6 -2
- package/dist/locationutils.cjs.map +1 -1
- package/dist/locationutils.d.cts +4 -1
- package/dist/locationutils.d.ts +4 -1
- package/dist/locationutils.js +1 -1
- package/dist/monitorSlice/thunks.cjs +1 -2
- package/dist/monitorSlice/thunks.cjs.map +1 -1
- package/dist/monitorSlice/thunks.d.cts +1 -1
- package/dist/monitorSlice/thunks.d.ts +1 -1
- package/dist/monitorSlice/thunks.js +7 -7
- package/dist/onboardingSlice/thunks.cjs +17 -7
- package/dist/onboardingSlice/thunks.cjs.map +1 -1
- package/dist/onboardingSlice/thunks.js +10 -10
- package/dist/organizationSlice/selectors.d.cts +1 -1
- package/dist/organizationSlice/selectors.d.ts +1 -1
- package/dist/organizationSlice/thunks.cjs +39 -26
- package/dist/organizationSlice/thunks.cjs.map +1 -1
- package/dist/organizationSlice/thunks.d.cts +4 -4
- package/dist/organizationSlice/thunks.d.ts +4 -4
- package/dist/organizationSlice/thunks.js +10 -10
- package/dist/releasesSlice/selectors.d.cts +1 -1
- package/dist/releasesSlice/selectors.d.ts +1 -1
- package/dist/releasesSlice/thunks.cjs +1 -2
- package/dist/releasesSlice/thunks.cjs.map +1 -1
- package/dist/releasesSlice/thunks.d.cts +2 -2
- package/dist/releasesSlice/thunks.d.ts +2 -2
- package/dist/releasesSlice/thunks.js +8 -8
- package/dist/selectors.js +11 -11
- package/dist/store.cjs +1 -2
- package/dist/store.cjs.map +1 -1
- package/dist/store.js +4 -4
- package/dist/storehooks.cjs +41 -37
- package/dist/storehooks.cjs.map +1 -1
- package/dist/storehooks.js +12 -21
- package/dist/storehooks.js.map +1 -1
- package/dist/thunks.cjs +41 -26
- 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 +12 -10
- package/dist/useDeploymentDevice.cjs +17 -7
- package/dist/useDeploymentDevice.cjs.map +1 -1
- package/dist/useDeploymentDevice.js +10 -10
- package/dist/usersSlice/selectors.d.cts +5 -5
- package/dist/usersSlice/selectors.d.ts +5 -5
- package/dist/usersSlice/thunks.cjs +17 -7
- package/dist/usersSlice/thunks.cjs.map +1 -1
- package/dist/usersSlice/thunks.d.cts +5 -2
- package/dist/usersSlice/thunks.d.ts +5 -2
- package/dist/usersSlice/thunks.js +10 -10
- package/package.json +7 -6
- package/dist/chunk-4UV7ZJXY.js.map +0 -1
- package/dist/chunk-53W2NRSL.js.map +0 -1
- package/dist/chunk-6WJI4MOP.js.map +0 -1
- /package/dist/{chunk-6PYYMAFS.js.map → chunk-73JXR6WS.js.map} +0 -0
- /package/dist/{chunk-ZVE23XXF.js.map → chunk-AROYP5V5.js.map} +0 -0
- /package/dist/{chunk-7VFPMJCH.js.map → chunk-DDY7IFSE.js.map} +0 -0
- /package/dist/{chunk-7KSKENLP.js.map → chunk-FQ6CCYUU.js.map} +0 -0
- /package/dist/{chunk-GHATCG2U.js.map → chunk-SVSHXLCN.js.map} +0 -0
package/dist/appSlice/thunks.js
CHANGED
|
@@ -3,32 +3,32 @@ import {
|
|
|
3
3
|
setFirstLoginAfterSignup,
|
|
4
4
|
setOfflineThreshold,
|
|
5
5
|
setSearchState
|
|
6
|
-
} from "../chunk-
|
|
7
|
-
import "../chunk-
|
|
8
|
-
import "../chunk-
|
|
9
|
-
import "../chunk-
|
|
6
|
+
} from "../chunk-Y54UJUE4.js";
|
|
7
|
+
import "../chunk-DDY7IFSE.js";
|
|
8
|
+
import "../chunk-73JXR6WS.js";
|
|
9
|
+
import "../chunk-FQ6CCYUU.js";
|
|
10
10
|
import "../chunk-XJLZK4QY.js";
|
|
11
11
|
import "../chunk-IRQRV552.js";
|
|
12
|
-
import "../chunk-
|
|
12
|
+
import "../chunk-SVSHXLCN.js";
|
|
13
13
|
import "../chunk-TRKA7XYU.js";
|
|
14
14
|
import "../chunk-YR65C62H.js";
|
|
15
15
|
import "../chunk-TIL2S3JA.js";
|
|
16
16
|
import "../chunk-PVCHKW35.js";
|
|
17
17
|
import "../chunk-CQXDAXQF.js";
|
|
18
|
-
import "../chunk-VODRLEDP.js";
|
|
19
|
-
import "../chunk-6WJI4MOP.js";
|
|
20
18
|
import "../chunk-OLKM53RL.js";
|
|
19
|
+
import "../chunk-DYUOBPAI.js";
|
|
20
|
+
import "../chunk-VODRLEDP.js";
|
|
21
21
|
import "../chunk-UVTLZV34.js";
|
|
22
|
-
import "../chunk-
|
|
22
|
+
import "../chunk-ML5CUAQD.js";
|
|
23
23
|
import "../chunk-NMAXZ3ZY.js";
|
|
24
|
-
import "../chunk-
|
|
24
|
+
import "../chunk-AROYP5V5.js";
|
|
25
25
|
import "../chunk-PL6RIFD5.js";
|
|
26
26
|
import "../chunk-4ZYLGBJU.js";
|
|
27
27
|
import "../chunk-ZZQJWNQT.js";
|
|
28
28
|
import "../chunk-YO22XLHI.js";
|
|
29
29
|
import "../chunk-JIS4PA3R.js";
|
|
30
|
-
import "../chunk-WR6RQKF5.js";
|
|
31
30
|
import "../chunk-ZGRY42BZ.js";
|
|
31
|
+
import "../chunk-WR6RQKF5.js";
|
|
32
32
|
import "../chunk-4BHM6WVX.js";
|
|
33
33
|
import "../chunk-7WIISD2N.js";
|
|
34
34
|
import "../chunk-WWED74SG.js";
|
|
@@ -2,20 +2,20 @@ import {
|
|
|
2
2
|
commonErrorFallback,
|
|
3
3
|
commonErrorHandler,
|
|
4
4
|
createAppAsyncThunk
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-FQ6CCYUU.js";
|
|
6
6
|
import {
|
|
7
7
|
general_api_default
|
|
8
8
|
} from "./chunk-IRQRV552.js";
|
|
9
9
|
import {
|
|
10
10
|
actions_default
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-SVSHXLCN.js";
|
|
12
12
|
import {
|
|
13
13
|
actions,
|
|
14
14
|
sliceName
|
|
15
15
|
} from "./chunk-PVCHKW35.js";
|
|
16
16
|
import {
|
|
17
17
|
getSearchEndpoint
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-AROYP5V5.js";
|
|
19
19
|
import {
|
|
20
20
|
getDeviceFilters
|
|
21
21
|
} from "./chunk-ZGRY42BZ.js";
|
|
@@ -107,4 +107,4 @@ export {
|
|
|
107
107
|
getDeviceMonitorConfig,
|
|
108
108
|
changeNotificationSetting
|
|
109
109
|
};
|
|
110
|
-
//# sourceMappingURL=chunk-
|
|
110
|
+
//# sourceMappingURL=chunk-73JXR6WS.js.map
|
|
@@ -22,11 +22,6 @@ import {
|
|
|
22
22
|
import {
|
|
23
23
|
getOnboarding
|
|
24
24
|
} from "./chunk-JIS4PA3R.js";
|
|
25
|
-
import {
|
|
26
|
-
getDeploymentsById,
|
|
27
|
-
getDeploymentsSelectionState,
|
|
28
|
-
getSelectedDeploymentDeviceIds
|
|
29
|
-
} from "./chunk-WR6RQKF5.js";
|
|
30
25
|
import {
|
|
31
26
|
getDeviceById,
|
|
32
27
|
getDevicesById,
|
|
@@ -34,6 +29,11 @@ import {
|
|
|
34
29
|
getGroupsById,
|
|
35
30
|
getListedDevices
|
|
36
31
|
} from "./chunk-ZGRY42BZ.js";
|
|
32
|
+
import {
|
|
33
|
+
getDeploymentsById,
|
|
34
|
+
getDeploymentsSelectionState,
|
|
35
|
+
getSelectedDeploymentDeviceIds
|
|
36
|
+
} from "./chunk-WR6RQKF5.js";
|
|
37
37
|
import {
|
|
38
38
|
getFeatures,
|
|
39
39
|
getSearchedDevices
|
|
@@ -310,4 +310,4 @@ export {
|
|
|
310
310
|
getRelevantRoles,
|
|
311
311
|
getShowSecurityAlert
|
|
312
312
|
};
|
|
313
|
-
//# sourceMappingURL=chunk-
|
|
313
|
+
//# sourceMappingURL=chunk-AROYP5V5.js.map
|
|
@@ -2,23 +2,23 @@ import {
|
|
|
2
2
|
commonErrorFallback,
|
|
3
3
|
commonErrorHandler,
|
|
4
4
|
createAppAsyncThunk
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-FQ6CCYUU.js";
|
|
6
6
|
import {
|
|
7
7
|
general_api_default
|
|
8
8
|
} from "./chunk-IRQRV552.js";
|
|
9
9
|
import {
|
|
10
10
|
actions_default
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-SVSHXLCN.js";
|
|
12
12
|
import {
|
|
13
13
|
actions,
|
|
14
14
|
sliceName
|
|
15
15
|
} from "./chunk-TRKA7XYU.js";
|
|
16
16
|
import {
|
|
17
17
|
formatReleases
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-ML5CUAQD.js";
|
|
19
19
|
import {
|
|
20
20
|
getSearchEndpoint
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-AROYP5V5.js";
|
|
22
22
|
import {
|
|
23
23
|
getReleasesById
|
|
24
24
|
} from "./chunk-PL6RIFD5.js";
|
|
@@ -442,4 +442,4 @@ export {
|
|
|
442
442
|
getDeltaGenerationJobs,
|
|
443
443
|
getDeltaGenerationJobDetails
|
|
444
444
|
};
|
|
445
|
-
//# sourceMappingURL=chunk-
|
|
445
|
+
//# sourceMappingURL=chunk-DDY7IFSE.js.map
|
|
@@ -32,9 +32,9 @@ var initialState = {
|
|
|
32
32
|
hasDeviceConfig: false,
|
|
33
33
|
hasDeviceConnect: false,
|
|
34
34
|
hasFeedbackEnabled: false,
|
|
35
|
+
hasManifestsEnabled: false,
|
|
35
36
|
hasMonitor: false,
|
|
36
37
|
hasMCUEnabled: false,
|
|
37
|
-
hasOldTheme: false,
|
|
38
38
|
hasReporting: false,
|
|
39
39
|
isHosted: true,
|
|
40
40
|
isEnterprise: false
|
|
@@ -69,7 +69,6 @@ var initialState = {
|
|
|
69
69
|
offlineThreshold: getYesterday(),
|
|
70
70
|
versionInformation: {
|
|
71
71
|
Integration: "",
|
|
72
|
-
"Mender-Client": "",
|
|
73
72
|
"Mender-Artifact": "",
|
|
74
73
|
"Meta-Mender": ""
|
|
75
74
|
},
|
|
@@ -155,4 +154,4 @@ export {
|
|
|
155
154
|
actions,
|
|
156
155
|
appSlice_default
|
|
157
156
|
};
|
|
158
|
-
//# sourceMappingURL=chunk-
|
|
157
|
+
//# sourceMappingURL=chunk-DYUOBPAI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/appSlice/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 { SnackbarProps } from '@mui/material';\n\nimport type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\n\nimport type { SortOptions } from '../constants';\nimport { SORTING_OPTIONS } from '../constants';\n\nexport const sliceName = 'app';\n\nconst getYesterday = () => {\n const today = new Date();\n today.setDate(today.getDate() - 1);\n return today.toISOString();\n};\n\nexport type Repository = {\n name: string;\n version: string;\n};\n\nexport type VersionRelease = Partial<{ [versionInfo: string]: VersionRelease }> & {\n release?: string;\n release_date?: string;\n repos?: Repository[];\n supported_until?: string;\n};\n\nexport type SaasVersion = {\n date: string;\n tag: string;\n};\n\nexport type ReleaseData = {\n lts: string[];\n releases: {\n [version: string]: VersionRelease;\n };\n saas: SaasVersion[];\n};\nexport type TagData = { name: string }[];\n\nexport interface SnackbarContent extends Pick<SnackbarProps, 'action' | 'autoHideDuration' | 'message' | 'open'> {\n preventClickToCopy?: boolean;\n}\n\nexport interface SearchState {\n deviceIds: string[];\n isSearching: boolean;\n page?: number;\n perPage?: number;\n searchTerm: string;\n searchTotal: number;\n sort: SortOptions;\n}\n\nexport interface Upload {\n cancelSource: any;\n inprogress?: boolean;\n name?: string;\n progress: number;\n size?: number;\n}\n\ntype UILatestRelease = {\n releaseDate: string;\n repos: Record<string, string>;\n};\n\ntype VersionInformation = {\n [key: string]: string | UILatestRelease | undefined;\n backend?: string;\n GUI?: string;\n latestRelease?: UILatestRelease;\n};\n\nexport type SentryConfig = {\n isReduxEnabled?: string; // no parsing done here as this has to be accessed outside of the store\n location: string;\n replaysSessionSampleRate?: number;\n tracesSampleRate?: number;\n};\n\nexport type AppSliceType = {\n appInitDone: boolean;\n cancelSource: any;\n commit: string;\n demoArtifactLink: string;\n docsVersion: string;\n features: Record<string, boolean>;\n feedbackProbability: number;\n firstLoginAfterSignup: boolean;\n hostAddress: string | null;\n hostedAnnouncement: string;\n newThreshold: string;\n offlineThreshold: string;\n recaptchaSiteKey: string;\n searchState: SearchState;\n sentry: SentryConfig;\n snackbar: SnackbarContent;\n stripeAPIKey: string;\n trackerCode: string;\n uploadsById: Record<string, Upload>;\n versionInformation: VersionInformation;\n yesterday?: string;\n};\n\nexport const initialState: AppSliceType = {\n appInitDone: false,\n cancelSource: undefined,\n commit: '',\n demoArtifactLink: 'https://dgsbl4vditpls.cloudfront.net/mender-demo-artifact.mender',\n hostAddress: null,\n snackbar: {\n action: undefined,\n autoHideDuration: undefined,\n message: '',\n open: false,\n preventClickToCopy: false\n },\n // return boolean rather than organization details\n features: {\n hasAiEnabled: false,\n hasAuditlogs: false,\n hasDeltaProgress: false,\n hasMultitenancy: false,\n hasDeviceConfig: false,\n hasDeviceConnect: false,\n hasFeedbackEnabled: false,\n hasManifestsEnabled: false,\n hasMonitor: false,\n hasMCUEnabled: false,\n hasReporting: false,\n isHosted: true,\n isEnterprise: false\n },\n feedbackProbability: 0.3,\n firstLoginAfterSignup: false,\n hostedAnnouncement: '',\n docsVersion: '',\n recaptchaSiteKey: '',\n searchState: {\n deviceIds: [],\n searchTerm: '',\n searchTotal: 0,\n isSearching: false,\n sort: {\n direction: SORTING_OPTIONS.desc\n // key: null,\n // scope: null\n }\n },\n sentry: {\n location: '',\n replaysSessionSampleRate: 0.1,\n tracesSampleRate: 1.0\n },\n stripeAPIKey: '',\n trackerCode: '',\n uploadsById: {\n // id: { progress: 0, cancelSource: undefined }\n },\n newThreshold: getYesterday(),\n offlineThreshold: getYesterday(),\n versionInformation: {\n Integration: '',\n 'Mender-Artifact': '',\n 'Meta-Mender': ''\n },\n yesterday: undefined\n};\n\nexport const appSlice = createSlice({\n name: sliceName,\n initialState,\n reducers: {\n setFeatures: (state, action: PayloadAction<Record<string, boolean>>) => {\n state.features = {\n ...state.features,\n ...action.payload\n };\n },\n setSnackbar: (state, { payload }: PayloadAction<SnackbarContent | string>) => {\n if (typeof payload === 'string' || payload instanceof String) {\n state.snackbar = {\n ...initialState.snackbar,\n message: payload,\n open: !!payload\n };\n return;\n }\n const { message, autoHideDuration, action, preventClickToCopy = false } = payload;\n state.snackbar = {\n message,\n autoHideDuration,\n action,\n preventClickToCopy,\n open: !!message\n };\n },\n setFirstLoginAfterSignup: (state, action: PayloadAction<boolean>) => {\n state.firstLoginAfterSignup = action.payload;\n },\n setAnnouncement: (state, action: PayloadAction<string>) => {\n state.hostedAnnouncement = action.payload;\n },\n setSearchState: (state, action) => {\n state.searchState = {\n ...state.searchState,\n ...action.payload\n };\n },\n setOfflineThreshold: (state, action: PayloadAction<string>) => {\n state.offlineThreshold = action.payload;\n },\n initUpload: (state, action: PayloadAction<{ id: string; upload: Upload }>) => {\n const { id, upload } = action.payload;\n state.uploadsById[id] = upload;\n },\n uploadProgress: (state, action: PayloadAction<{ id: string; progress: number }>) => {\n const { id, progress } = action.payload;\n state.uploadsById[id] = {\n ...state.uploadsById[id],\n progress\n };\n },\n cleanUpUpload: (state, action: PayloadAction<string>) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [action.payload]: current, ...remainder } = state.uploadsById;\n state.uploadsById = remainder;\n },\n setVersionInformation: (state, action: PayloadAction<VersionInformation>) => {\n state.versionInformation = {\n ...state.versionInformation,\n ...action.payload\n };\n },\n setEnvironmentData: (state, action) => ({ ...state, ...action.payload }),\n setAppInitDone: state => {\n state.appInitDone = true;\n }\n }\n});\n\nexport const actions = appSlice.actions;\nexport default appSlice.reducer;\n"],"mappings":"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","names":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
actions_default
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-SVSHXLCN.js";
|
|
4
4
|
import {
|
|
5
5
|
releasesSlice_default
|
|
6
6
|
} from "./chunk-TRKA7XYU.js";
|
|
@@ -19,14 +19,14 @@ import {
|
|
|
19
19
|
onboardingSlice_default
|
|
20
20
|
} from "./chunk-CQXDAXQF.js";
|
|
21
21
|
import {
|
|
22
|
-
|
|
23
|
-
} from "./chunk-
|
|
22
|
+
deploymentsSlice_default
|
|
23
|
+
} from "./chunk-OLKM53RL.js";
|
|
24
24
|
import {
|
|
25
25
|
appSlice_default
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-DYUOBPAI.js";
|
|
27
27
|
import {
|
|
28
|
-
|
|
29
|
-
} from "./chunk-
|
|
28
|
+
devicesSlice_default
|
|
29
|
+
} from "./chunk-VODRLEDP.js";
|
|
30
30
|
import {
|
|
31
31
|
getToken
|
|
32
32
|
} from "./chunk-UVTLZV34.js";
|
|
@@ -139,4 +139,4 @@ export {
|
|
|
139
139
|
useAppDispatch,
|
|
140
140
|
createAppAsyncThunk
|
|
141
141
|
};
|
|
142
|
-
//# sourceMappingURL=chunk-
|
|
142
|
+
//# sourceMappingURL=chunk-FQ6CCYUU.js.map
|
|
@@ -123,7 +123,8 @@ var parseDeviceQuery = (searchParams, extraProps = {}) => {
|
|
|
123
123
|
scopedFilters.inventory.splice(groupFilterIndex, 1);
|
|
124
124
|
}
|
|
125
125
|
const detailsTab = queryParams.has("tab") ? queryParams.get("tab") : "";
|
|
126
|
-
|
|
126
|
+
const groupId = queryParams.has("groupId") ? queryParams.get("groupId") : "";
|
|
127
|
+
return { detailsTab, filters: Object.values(scopedFilters).flat(), groupName, ...pageStateExtension, groupId };
|
|
127
128
|
};
|
|
128
129
|
var formatSorting = (sort, { sort: sortDefault }) => {
|
|
129
130
|
if (!sort || deepCompare(sort, sortDefault)) {
|
|
@@ -161,7 +162,7 @@ var formatFilters = (filters) => {
|
|
|
161
162
|
);
|
|
162
163
|
return Object.values(result).map((filterSet) => [...filterSet]).flat();
|
|
163
164
|
};
|
|
164
|
-
var formatDeviceSearch = ({ pageState, filters, selectedGroup }) => {
|
|
165
|
+
var formatDeviceSearch = ({ pageState, filters, selectedGroup, groupId }) => {
|
|
165
166
|
let activeFilters = [...filters];
|
|
166
167
|
if (selectedGroup && selectedGroup !== ALL_DEVICES) {
|
|
167
168
|
const isUngroupedGroup = selectedGroup === UNGROUPED_GROUP.id;
|
|
@@ -175,6 +176,9 @@ var formatDeviceSearch = ({ pageState, filters, selectedGroup }) => {
|
|
|
175
176
|
if (pageState.detailsTab && pageState.selectedId) {
|
|
176
177
|
formattedFilters.push(`tab=${pageState.detailsTab}`);
|
|
177
178
|
}
|
|
179
|
+
if (groupId) {
|
|
180
|
+
formattedFilters.push(`groupId=${groupId}`);
|
|
181
|
+
}
|
|
178
182
|
return formattedFilters.join("&");
|
|
179
183
|
};
|
|
180
184
|
var generateDevicePath = ({ pageState }) => {
|
|
@@ -389,4 +393,4 @@ export {
|
|
|
389
393
|
parseTenantsQuery,
|
|
390
394
|
formatTenants
|
|
391
395
|
};
|
|
392
|
-
//# sourceMappingURL=chunk-
|
|
396
|
+
//# sourceMappingURL=chunk-ML5CUAQD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/locationutils.ts"],"sourcesContent":["// Copyright 2022 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 { deepCompare, getISOStringBoundaries } from '@northern.tech/utils/helpers';\n\nimport {\n ALL_DEVICES,\n ATTRIBUTE_SCOPES,\n AUDIT_LOGS_TYPES,\n DEPLOYMENT_ROUTES,\n DEPLOYMENT_STATES,\n DEPLOYMENT_TYPES,\n DEVICE_FILTERING_OPTIONS,\n DEVICE_LIST_DEFAULTS,\n UNGROUPED_GROUP,\n emptyFilter\n} from './constants';\n\nconst SEPARATOR = ':';\n\nconst defaultSelector = result => result[0];\n\nconst commonFields = {\n ...Object.keys(DEVICE_LIST_DEFAULTS).reduce((accu, key) => ({ ...accu, [key]: { parse: Number, select: defaultSelector, target: key } }), {}),\n id: { parse: String, select: i => i, target: 'id' },\n issues: { parse: undefined, select: defaultSelector, target: 'selectedIssues' },\n open: { parse: Boolean, select: defaultSelector, target: 'open' }\n};\n\nconst scopes = {\n identity: { delimiter: 'identity', filters: [] },\n inventory: { delimiter: 'inventory', filters: [] },\n monitor: { delimiter: 'monitor', filters: [] },\n system: { delimiter: 'system', filters: [] },\n tags: { delimiter: 'tags', filters: [] }\n};\n\nexport const commonProcessor = searchParams => {\n const params = new URLSearchParams(searchParams);\n const pageState = Object.entries(commonFields).reduce((accu, [key, { parse, select, target }]) => {\n const values = params.getAll(key);\n if (!values.length) {\n return accu;\n }\n if (!parse) {\n accu[target] = values;\n } else {\n try {\n accu[target] = select(values.map(parse));\n } catch (error) {\n console.log('encountered faulty url param, continue...', error);\n }\n }\n return accu;\n }, {});\n Object.keys(commonFields).map(key => params.delete(key));\n const sort = params.has('sort')\n ? params.getAll('sort').reduce((sortAccu, scopedQuery) => {\n const items = scopedQuery.split(SEPARATOR).reverse();\n return ['direction', 'key', 'scope'].reduce((accu, key, index) => {\n if (items[index]) {\n accu[key] = items[index];\n }\n return accu;\n }, sortAccu);\n }, {})\n : undefined;\n params.delete('sort');\n return { pageState, params, sort };\n};\n\nconst legacyDeviceQueryParse = (searchParams, filteringAttributes) => {\n const params = new URLSearchParams(searchParams);\n const result = Object.keys(scopes).reduce((accu, scope) => ({ ...accu, [scope]: [] }), {});\n if (params.get('group')) {\n result.inventory.push({ ...emptyFilter, key: 'group', scope: 'inventory', operator: DEVICE_FILTERING_OPTIONS.$eq.key, value: params.get('group') });\n params.delete('group');\n }\n const filters = [...params.keys()].reduce(\n (accu, key) =>\n params.getAll(key).reduce((innerAccu, value) => {\n const scope =\n Object.entries(filteringAttributes).reduce((foundScope, [currentScope, attributes]) => {\n if (foundScope) {\n return foundScope;\n }\n return attributes.includes(key) ? currentScope.substring(0, currentScope.indexOf('Attributes')) : foundScope;\n }, undefined) ?? ATTRIBUTE_SCOPES.inventory;\n innerAccu[scope].push({ ...emptyFilter, scope, key, operator: DEVICE_FILTERING_OPTIONS.$eq.key, value });\n return innerAccu;\n }, accu),\n result\n );\n [...params.keys()].map(key => params.delete(key));\n return { filters, params };\n};\n\nconst scopedFilterParse = searchParams => {\n const params = new URLSearchParams(searchParams);\n const filters = Object.keys(scopes).reduce(\n (accu, scope) => {\n accu[scope] = [];\n if (!params.has(scope)) {\n return accu;\n }\n accu[scope] = params.getAll(scope).map(scopedQuery => {\n const items = scopedQuery.split(SEPARATOR);\n // URLSearchParams will automatically decode any URI encoding present in the query string, thus we have to also handle queries with a SEPARATOR separately\n return { ...emptyFilter, scope, key: items[0], operator: `$${items[1]}`, value: items.slice(2).join(SEPARATOR) };\n });\n return accu;\n },\n { ...scopes }\n );\n Object.keys(scopes).map(scope => params.delete(scope));\n return { filters, params };\n};\n\n// filters, selectedGroup\nexport const parseDeviceQuery = (searchParams, extraProps = {}) => {\n let queryParams = new URLSearchParams(searchParams);\n const { filteringAttributes = {}, pageState = {} } = extraProps;\n const pageStateExtension = pageState.id?.length === 1 ? { open: true } : {};\n\n let scopedFilters;\n const refersOldStyleAttributes = Object.values(filteringAttributes).some(scopeValues => scopeValues.some(scopedValue => queryParams.get(scopedValue)));\n if ((refersOldStyleAttributes && !Object.keys(scopes).some(scope => queryParams.get(scope))) || queryParams.get('group')) {\n const { filters, params } = legacyDeviceQueryParse(queryParams, filteringAttributes);\n scopedFilters = filters;\n queryParams = params;\n } else {\n const { filters, params } = scopedFilterParse(queryParams);\n scopedFilters = filters;\n queryParams = params;\n }\n\n let groupName = '';\n const groupFilterIndex = scopedFilters.inventory.findIndex(filter => filter.key === 'group' && filter.operator === DEVICE_FILTERING_OPTIONS.$eq.key);\n if (groupFilterIndex > -1) {\n groupName = scopedFilters.inventory[groupFilterIndex].value;\n scopedFilters.inventory.splice(groupFilterIndex, 1);\n }\n\n const detailsTab = queryParams.has('tab') ? queryParams.get('tab') : '';\n const groupId = queryParams.has('groupId') ? queryParams.get('groupId') : '';\n return { detailsTab, filters: Object.values(scopedFilters).flat(), groupName, ...pageStateExtension, groupId };\n};\n\nconst formatSorting = (sort, { sort: sortDefault }) => {\n if (!sort || deepCompare(sort, sortDefault)) {\n return '';\n }\n const sortQuery = ['scope', 'key', 'direction']\n .reduce((accu, key) => {\n if (!sort[key]) {\n return accu;\n }\n accu.push(sort[key]);\n return accu;\n }, [])\n .join(SEPARATOR);\n return `sort=${sortQuery}`;\n};\n\nexport const formatPageState = ({ selectedId, selectedIssues, page, perPage, sort }, { defaults }) =>\n Object.entries({ page, perPage, id: selectedId, issues: selectedIssues, open: selectedId ? true : undefined })\n .reduce(\n (accu, [key, value]) => {\n if (Array.isArray(value)) {\n accu.push(...value.map(item => `${key}=${encodeURIComponent(item)}`));\n } else if ((DEVICE_LIST_DEFAULTS[key] != value || !DEVICE_LIST_DEFAULTS.hasOwnProperty(key)) && value) {\n accu.push(`${key}=${encodeURIComponent(value)}`);\n }\n return accu;\n },\n [formatSorting(sort, defaults)]\n )\n .filter(i => i)\n .join('&');\n\nconst stripFilterOperator = operator => operator.replaceAll('$', '');\n\nconst formatFilters = filters => {\n const result = filters\n // group all filters by their scope to get a more organized result\n .reduce(\n (accu, filter) => {\n const { scope = ATTRIBUTE_SCOPES.inventory, operator = '$eq' } = filter;\n accu[scope].add(`${scopes[scope].delimiter}=${filter.key}${SEPARATOR}${stripFilterOperator(operator)}${SEPARATOR}${encodeURIComponent(filter.value)}`);\n return accu;\n },\n Object.keys(scopes).reduce((accu, item) => ({ ...accu, [item]: new Set() }), {})\n );\n // boil it all down to a single line containing all filters\n return Object.values(result)\n .map(filterSet => [...filterSet])\n .flat();\n};\n\nexport const formatDeviceSearch = ({ pageState, filters, selectedGroup, groupId }) => {\n let activeFilters = [...filters];\n if (selectedGroup && selectedGroup !== ALL_DEVICES) {\n const isUngroupedGroup = selectedGroup === UNGROUPED_GROUP.id;\n activeFilters = isUngroupedGroup\n ? activeFilters.filter(\n filter => !(filter.key === 'group' && filter.scope === ATTRIBUTE_SCOPES.system && filter.operator === DEVICE_FILTERING_OPTIONS.$nin.key)\n )\n : activeFilters;\n const groupName = isUngroupedGroup ? UNGROUPED_GROUP.name : selectedGroup;\n activeFilters.push({ scope: ATTRIBUTE_SCOPES.inventory, key: 'group', operator: DEVICE_FILTERING_OPTIONS.$eq.key, value: groupName });\n }\n const formattedFilters = formatFilters(activeFilters).filter(i => i);\n if (pageState.detailsTab && pageState.selectedId) {\n formattedFilters.push(`tab=${pageState.detailsTab}`);\n }\n if (groupId) {\n formattedFilters.push(`groupId=${groupId}`);\n }\n return formattedFilters.join('&');\n};\n\nexport const generateDevicePath = ({ pageState }) => {\n const { state: selectedState } = pageState;\n const path = ['/devices'];\n if (selectedState !== '') {\n path.push(selectedState);\n }\n return path.join('/');\n};\n\nconst formatDates = ({ endDate, params, startDate, today, tonight }) => {\n if (endDate && endDate !== tonight) {\n params.set('endDate', endDate.split('T')[0]);\n }\n if (startDate && startDate !== today) {\n params.set('startDate', startDate.split('T')[0]);\n }\n return params;\n};\n\nconst paramReducer = (accu, [key, value]) => {\n if (value) {\n accu.set(key, value);\n }\n return accu;\n};\n\nexport const formatAuditlogs = ({ pageState }, { today, tonight }) => {\n const { detail, endDate, startDate, type, user } = pageState;\n let params = new URLSearchParams();\n let userId = user;\n if (user?.id) {\n userId = user.id;\n }\n params = Object.entries({ objectId: detail, userId }).reduce(paramReducer, params);\n if (type) {\n params.set('objectType', type.value ?? type);\n }\n params = formatDates({ endDate, params, startDate, today, tonight });\n return params.toString();\n};\n\nexport const parseDateParams = (params, today, tonight) => {\n let endDate = tonight;\n if (params.get('endDate')) {\n endDate = getISOStringBoundaries(new Date(params.get('endDate'))).end;\n }\n let startDate = today;\n if (params.get('startDate')) {\n startDate = getISOStringBoundaries(new Date(params.get('startDate'))).start;\n }\n return { endDate, startDate };\n};\n\nexport const parseAuditlogsQuery = (params, { today, tonight }) => {\n const type = AUDIT_LOGS_TYPES.find(typeObject => typeObject.value === params.get('objectType'));\n const { endDate, startDate } = parseDateParams(params, today, tonight);\n return {\n detail: params.get('objectId'),\n endDate,\n startDate,\n type,\n user: params.get('userId')\n };\n};\n\nconst formatActiveDeployments = (pageState, { defaults }) =>\n [DEPLOYMENT_STATES.inprogress, DEPLOYMENT_STATES.pending]\n .reduce((accu, state) => {\n const { page, perPage } = pageState[state] ?? {};\n const stateDefaults = defaults[state] ?? {};\n const items = Object.entries({ page, perPage })\n .reverse()\n .reduce((keyAccu, [key, value]) => {\n if ((value && value !== stateDefaults[key]) || keyAccu.length) {\n keyAccu.unshift(value || stateDefaults[key]);\n }\n return keyAccu;\n }, []);\n if (items.length) {\n accu.push(`${state}=${items.join(SEPARATOR)}`);\n }\n return accu;\n }, [])\n .filter(i => i)\n .join('&');\n\nexport const formatDeployments = ({ deploymentObject, pageState }, { defaults, today, tonight }) => {\n const { state: selectedState, showCreationDialog } = pageState.general;\n let params = new URLSearchParams();\n if (showCreationDialog) {\n params.set('open', true);\n if (deploymentObject.release) {\n params.set('release', deploymentObject.release.name);\n }\n if (deploymentObject.devices?.length) {\n deploymentObject.devices.map(({ id }) => params.append('deviceId', id));\n }\n }\n let pageStateQuery;\n if (selectedState === DEPLOYMENT_ROUTES.finished.key) {\n const { endDate, search, startDate, type } = pageState[selectedState];\n params = formatDates({ endDate, params, startDate, today, tonight });\n params = Object.entries({ search, type }).reduce(paramReducer, params);\n pageStateQuery = formatPageState(pageState[selectedState], { defaults });\n } else if (selectedState === DEPLOYMENT_ROUTES.scheduled.key) {\n pageStateQuery = formatPageState(pageState[selectedState], { defaults });\n } else {\n pageStateQuery = formatActiveDeployments(pageState, { defaults });\n }\n return [pageStateQuery, params.toString()].filter(i => i).join('&');\n};\n\nconst deploymentsPath = 'deployments/';\nconst parseDeploymentsPath = path => {\n const parts = path.split(deploymentsPath);\n if (parts.length > 1 && Object.keys(DEPLOYMENT_ROUTES).includes(parts[1])) {\n return parts[1];\n }\n return '';\n};\n\nconst parseActiveDeployments = params =>\n [DEPLOYMENT_STATES.inprogress, DEPLOYMENT_STATES.pending].reduce((accu, state) => {\n if (!params.has(state)) {\n return accu;\n }\n const items = params.get(state).split(SEPARATOR);\n accu[state] = ['page', 'perPage'].reduce((stateAccu, key, index) => (items[index] ? { ...stateAccu, [key]: Number(items[index]) } : stateAccu), {});\n return accu;\n }, {});\n\nconst deploymentFields = {\n deviceId: { attribute: 'devices', parse: id => ({ id }), select: i => i },\n release: { attribute: 'release', parse: String, select: defaultSelector }\n};\n\nexport const parseDeploymentsQuery = (params, { pageState, location, tonight }) => {\n // for deployments we get a startDate implicitly from a list of retrieved deployments if none is set, thus we're not defaulting to today\n const { endDate, startDate } = parseDateParams(params, '', tonight);\n const deploymentObject = Object.entries(deploymentFields).reduce(\n (accu, [key, { attribute, parse, select }]) => (params.has(key) ? { ...accu, [attribute]: select(params.getAll(key).map(parse)) } : accu),\n {}\n );\n const { state: selectedState, id, open, ...remainingPageState } = pageState;\n const tab = parseDeploymentsPath(location.pathname);\n const deploymentsTab = tab || selectedState || DEPLOYMENT_ROUTES.active.key;\n\n let state = {\n deploymentObject,\n general: {\n showCreationDialog: Boolean(open && !id),\n showReportDialog: Boolean(open && id),\n state: deploymentsTab\n }\n };\n if (deploymentsTab === DEPLOYMENT_ROUTES.finished.key) {\n const type = DEPLOYMENT_TYPES[params.get('type')] || '';\n const search = params.get('search') || '';\n state[deploymentsTab] = { ...remainingPageState, endDate, search, startDate, type };\n } else if (deploymentsTab === DEPLOYMENT_ROUTES.scheduled.key) {\n state[deploymentsTab] = { ...remainingPageState };\n } else {\n state = {\n ...state,\n ...parseActiveDeployments(params)\n };\n }\n return state;\n};\n\nexport const generateDeploymentsPath = ({ pageState }) => {\n const { state: selectedState = DEPLOYMENT_ROUTES.active.key } = pageState.general;\n return `/deployments/${selectedState}`;\n};\n\nexport interface FormatReleasesParams {\n pageState: {\n id?: string;\n searchTerm?: string;\n selectedTags?: string[];\n tab?: string;\n type?: string;\n };\n}\nconst releasesRoot = '/releases';\nexport const formatReleases = ({ pageState: { id, searchTerm, selectedTags = [], tab, type } }: FormatReleasesParams) =>\n Object.entries({ name: searchTerm, tab, type, id })\n .reduce(\n (accu, [key, value]) => (value ? [...accu, `${key}=${value}`] : accu),\n selectedTags.map(tag => `tag=${tag}`)\n )\n .join('&');\n\nexport const generateReleasesPath = ({ pageState: { selectedRelease } }) =>\n `${releasesRoot}${selectedRelease ? `/${encodeURIComponent(selectedRelease)}` : ''}`;\n\nexport const parseReleasesQuery = (queryParams, extraProps) => {\n const name = queryParams.has('name') ? queryParams.get('name') : '';\n const tab = queryParams.has('tab') ? queryParams.get('tab') : undefined;\n const tags = queryParams.has('tag') ? queryParams.getAll('tag') : [];\n const type = queryParams.has('type') ? queryParams.get('type') : '';\n let selectedRelease = decodeURIComponent(extraProps.location.pathname.substring(releasesRoot.length + 1));\n let selectedJob;\n if (extraProps.pageState?.id?.length && tab === 'delta') {\n selectedJob = extraProps.pageState.id[0];\n } else if (!selectedRelease && extraProps.pageState?.id?.length) {\n selectedRelease = extraProps.pageState.id[0];\n }\n return { searchTerm: name, selectedJob, selectedRelease, tab, tags, type };\n};\n\nconst tenantsRoot = '/tenants';\n\nexport const generateTenantPath = ({ pageState: { selectedTenant } }) => {\n if (selectedTenant) {\n return `${tenantsRoot}/${encodeURIComponent(selectedTenant)}`;\n } else {\n return tenantsRoot;\n }\n};\nexport const generateTenantPathById = id => (id ? `${tenantsRoot}/${encodeURIComponent(id)}` : tenantsRoot);\n\nexport const parseTenantsQuery = (queryParams, extraProps) => {\n const name = queryParams.has('name') ? queryParams.get('name') : '';\n let selectedTenant = extraProps.location.pathname.substring(tenantsRoot.length + 1);\n if (!selectedTenant && extraProps.pageState.id?.length) {\n selectedTenant = extraProps.pageState.id[0];\n }\n return { name, selectedTenant };\n};\n\nexport const formatTenants = () => '';\n"],"mappings":"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","names":[]}
|
|
@@ -14,14 +14,14 @@ import {
|
|
|
14
14
|
actions as actions5
|
|
15
15
|
} from "./chunk-CQXDAXQF.js";
|
|
16
16
|
import {
|
|
17
|
-
actions as
|
|
18
|
-
} from "./chunk-
|
|
17
|
+
actions as actions2
|
|
18
|
+
} from "./chunk-OLKM53RL.js";
|
|
19
19
|
import {
|
|
20
20
|
actions
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-DYUOBPAI.js";
|
|
22
22
|
import {
|
|
23
|
-
actions as
|
|
24
|
-
} from "./chunk-
|
|
23
|
+
actions as actions3
|
|
24
|
+
} from "./chunk-VODRLEDP.js";
|
|
25
25
|
|
|
26
26
|
// src/actions.ts
|
|
27
27
|
var actions_default = {
|
|
@@ -38,4 +38,4 @@ var actions_default = {
|
|
|
38
38
|
export {
|
|
39
39
|
actions_default
|
|
40
40
|
};
|
|
41
|
-
//# sourceMappingURL=chunk-
|
|
41
|
+
//# sourceMappingURL=chunk-SVSHXLCN.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getDeviceMonitorConfig,
|
|
3
3
|
getLatestDeviceAlerts
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-73JXR6WS.js";
|
|
5
5
|
import {
|
|
6
6
|
commonErrorFallback,
|
|
7
7
|
commonErrorHandler,
|
|
8
8
|
createAppAsyncThunk
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-FQ6CCYUU.js";
|
|
10
10
|
import {
|
|
11
11
|
users_api_default
|
|
12
12
|
} from "./chunk-XJLZK4QY.js";
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
} from "./chunk-IRQRV552.js";
|
|
16
16
|
import {
|
|
17
17
|
actions_default
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-SVSHXLCN.js";
|
|
19
19
|
import {
|
|
20
20
|
actions as actions6,
|
|
21
21
|
sliceName as sliceName6
|
|
@@ -29,17 +29,17 @@ import {
|
|
|
29
29
|
sliceName as sliceName4
|
|
30
30
|
} from "./chunk-CQXDAXQF.js";
|
|
31
31
|
import {
|
|
32
|
-
actions as
|
|
33
|
-
sliceName as
|
|
34
|
-
} from "./chunk-
|
|
32
|
+
actions as actions2,
|
|
33
|
+
sliceName as sliceName2
|
|
34
|
+
} from "./chunk-OLKM53RL.js";
|
|
35
35
|
import {
|
|
36
36
|
actions,
|
|
37
37
|
sliceName
|
|
38
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-DYUOBPAI.js";
|
|
39
39
|
import {
|
|
40
|
-
actions as
|
|
41
|
-
sliceName as
|
|
42
|
-
} from "./chunk-
|
|
40
|
+
actions as actions3,
|
|
41
|
+
sliceName as sliceName3
|
|
42
|
+
} from "./chunk-VODRLEDP.js";
|
|
43
43
|
import {
|
|
44
44
|
cleanUp,
|
|
45
45
|
getSessionInfo,
|
|
@@ -52,7 +52,7 @@ import {
|
|
|
52
52
|
getSearchEndpoint,
|
|
53
53
|
getTenantCapabilities,
|
|
54
54
|
getUserCapabilities
|
|
55
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-AROYP5V5.js";
|
|
56
56
|
import {
|
|
57
57
|
getCurrentSession,
|
|
58
58
|
getCurrentUser,
|
|
@@ -71,10 +71,6 @@ import {
|
|
|
71
71
|
getOrganization,
|
|
72
72
|
getTenantsList
|
|
73
73
|
} from "./chunk-ZZQJWNQT.js";
|
|
74
|
-
import {
|
|
75
|
-
getDeploymentsById,
|
|
76
|
-
getDeploymentsByStatus
|
|
77
|
-
} from "./chunk-WR6RQKF5.js";
|
|
78
74
|
import {
|
|
79
75
|
getAcceptedDevices,
|
|
80
76
|
getDeviceById,
|
|
@@ -86,6 +82,10 @@ import {
|
|
|
86
82
|
getGroupsById,
|
|
87
83
|
getSelectedGroup
|
|
88
84
|
} from "./chunk-ZGRY42BZ.js";
|
|
85
|
+
import {
|
|
86
|
+
getDeploymentsById,
|
|
87
|
+
getDeploymentsByStatus
|
|
88
|
+
} from "./chunk-WR6RQKF5.js";
|
|
89
89
|
import {
|
|
90
90
|
getFeatures,
|
|
91
91
|
getSearchState
|
|
@@ -204,10 +204,10 @@ var getDeploymentsByStatus2 = createAppAsyncThunk(
|
|
|
204
204
|
const { status, page = defaultPage, perPage = defaultPerPage, startDate, endDate, group, type, shouldSelect = true, sort = SORTING_OPTIONS.desc } = options;
|
|
205
205
|
const created_after = startDate ? `&created_after=${startDate}` : "";
|
|
206
206
|
const created_before = endDate ? `&created_before=${endDate}` : "";
|
|
207
|
-
const search = group ? `&
|
|
207
|
+
const search = group ? `&name=${group}` : "";
|
|
208
208
|
const typeFilter = type ? `&type=${type}` : "";
|
|
209
209
|
return general_api_default.get(
|
|
210
|
-
`${
|
|
210
|
+
`${deploymentsApiUrlV2}/deployments?status=${status}&per_page=${perPage}&page=${page}${created_after}${created_before}${search}${typeFilter}&sort=${sort}`
|
|
211
211
|
).then((res) => {
|
|
212
212
|
const { deployments, deploymentIds } = transformDeployments(res.data, getState().deployments.byId);
|
|
213
213
|
const total = Number(res.headers[headerNames.total]);
|
|
@@ -671,6 +671,15 @@ var removeStaticGroup = createAppAsyncThunk(
|
|
|
671
671
|
])
|
|
672
672
|
)
|
|
673
673
|
);
|
|
674
|
+
var getDynamicGroup = createAppAsyncThunk(
|
|
675
|
+
`${sliceName3}/getDynamicGroupById`,
|
|
676
|
+
(id, { dispatch }) => general_api_default.get(`${inventoryApiUrlV2}/filters/${id}`).catch((err) => {
|
|
677
|
+
if (err.response && err.response.status === 404) {
|
|
678
|
+
throw new Error("Request failed with status code 404");
|
|
679
|
+
}
|
|
680
|
+
return commonErrorHandler(err, `Error retrieving the group: `, dispatch, commonErrorFallback);
|
|
681
|
+
})
|
|
682
|
+
);
|
|
674
683
|
var getDynamicGroups = createAppAsyncThunk(
|
|
675
684
|
`${sliceName3}/getDynamicGroups`,
|
|
676
685
|
(_, { dispatch, getState }) => general_api_default.get(`${inventoryApiUrlV2}/filters?per_page=${MAX_PAGE_SIZE}`).then(({ data: filters }) => {
|
|
@@ -1553,25 +1562,28 @@ var cancelRequest = createAppAsyncThunk(`${sliceName5}/cancelRequest`, (reason,
|
|
|
1553
1562
|
);
|
|
1554
1563
|
});
|
|
1555
1564
|
var getTierId = (tierName) => tierName.replace("mender_", "");
|
|
1556
|
-
var getProductPlans = (products) =>
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1565
|
+
var getProductPlans = (products) => {
|
|
1566
|
+
const backendPlansById = products.reduce(
|
|
1567
|
+
(plansById, product) => {
|
|
1568
|
+
const { name, prices } = product;
|
|
1569
|
+
const tierId = getTierId(name);
|
|
1570
|
+
prices.forEach((price) => {
|
|
1571
|
+
const existing = plansById[price.plan] ?? { ...PLANS[price.plan], tierLimitsConstrains: {} };
|
|
1572
|
+
const tierConstraints = price.constraints ? { [tierId]: { min: price.constraints.min, max: price.constraints.max, div: price.constraints.div } } : {};
|
|
1573
|
+
plansById[price.plan] = {
|
|
1574
|
+
...existing,
|
|
1575
|
+
tierLimitsConstrains: {
|
|
1576
|
+
...existing.tierLimitsConstrains,
|
|
1577
|
+
...tierConstraints
|
|
1578
|
+
}
|
|
1579
|
+
};
|
|
1580
|
+
});
|
|
1581
|
+
return plansById;
|
|
1582
|
+
},
|
|
1583
|
+
{}
|
|
1584
|
+
);
|
|
1585
|
+
return { ...backendPlansById, enterprise: { ...PLANS.enterprise } };
|
|
1586
|
+
};
|
|
1575
1587
|
var getProductAddons = (products) => products.reduce((accu, product) => {
|
|
1576
1588
|
const { addons = [] } = product;
|
|
1577
1589
|
addons.forEach((addon) => {
|
|
@@ -2043,7 +2055,7 @@ var verifyEmailStart = createAppAsyncThunk(
|
|
|
2043
2055
|
);
|
|
2044
2056
|
var verifyEmailComplete = createAppAsyncThunk(
|
|
2045
2057
|
`${sliceName6}/verifyEmailComplete`,
|
|
2046
|
-
(secret_hash, { dispatch }) => general_api_default.post(`${useradmApiUrl}/auth/verify-email/complete`, { secret_hash }).catch((err) => commonErrorHandler(err, "An error occured completing the email verification process:", dispatch)).finally(() => Promise.resolve(dispatch(getUser(OWN_USER_ID))))
|
|
2058
|
+
(secret_hash, { dispatch }) => general_api_default.post(`${useradmApiUrl}/auth/verify-email/complete`, { secret_hash }).then(() => dispatch(actions6.receivedActivationCode(""))).catch((err) => commonErrorHandler(err, "An error occured completing the email verification process:", dispatch)).finally(() => Promise.resolve(dispatch(getUser(OWN_USER_ID))))
|
|
2047
2059
|
);
|
|
2048
2060
|
var verify2FA = createAppAsyncThunk(
|
|
2049
2061
|
`${sliceName6}/verify2FA`,
|
|
@@ -2219,6 +2231,9 @@ var isEmptyPermissionSet = (permissionSet) => !Object.values(permissionSet).redu
|
|
|
2219
2231
|
var parseRolePermissions = ({ permission_sets_with_scope = [], permissions = [] }, permissionSets) => {
|
|
2220
2232
|
const preliminaryResult = permission_sets_with_scope.reduce(
|
|
2221
2233
|
(accu, permissionSet) => {
|
|
2234
|
+
if (!permissionSet.name) {
|
|
2235
|
+
return accu;
|
|
2236
|
+
}
|
|
2222
2237
|
const processor = permissionSets[permissionSet.name];
|
|
2223
2238
|
if (!processor) {
|
|
2224
2239
|
return accu;
|
|
@@ -2227,7 +2242,7 @@ var parseRolePermissions = ({ permission_sets_with_scope = [], permissions = []
|
|
|
2227
2242
|
if (scope) {
|
|
2228
2243
|
const result = mapPermissionSet(
|
|
2229
2244
|
permissionSet.name,
|
|
2230
|
-
permissionSet.scope
|
|
2245
|
+
permissionSet.scope?.value ?? [],
|
|
2231
2246
|
scope,
|
|
2232
2247
|
accu.uiPermissions[scope]
|
|
2233
2248
|
);
|
|
@@ -2625,7 +2640,6 @@ var getLatestRelease = (thing) => {
|
|
|
2625
2640
|
};
|
|
2626
2641
|
var repoKeyMap = {
|
|
2627
2642
|
integration: "Integration",
|
|
2628
|
-
mender: "Mender-Client",
|
|
2629
2643
|
"mender-artifact": "Mender-Artifact"
|
|
2630
2644
|
};
|
|
2631
2645
|
var deductSaasState = (latestRelease, guiTags) => {
|
|
@@ -2721,6 +2735,7 @@ export {
|
|
|
2721
2735
|
addStaticGroup,
|
|
2722
2736
|
removeReportsByGroupName,
|
|
2723
2737
|
removeStaticGroup,
|
|
2738
|
+
getDynamicGroup,
|
|
2724
2739
|
getDynamicGroups,
|
|
2725
2740
|
addDynamicGroup,
|
|
2726
2741
|
updateDynamicGroup,
|
|
@@ -2845,4 +2860,4 @@ export {
|
|
|
2845
2860
|
setAllTooltipsReadState,
|
|
2846
2861
|
submitUserFeedback
|
|
2847
2862
|
};
|
|
2848
|
-
//# sourceMappingURL=chunk-
|
|
2863
|
+
//# sourceMappingURL=chunk-Y54UJUE4.js.map
|