@northern.tech/store 0.41.0 → 0.41.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actions.d.cts +6 -6
- package/dist/actions.d.ts +6 -6
- package/dist/api/general-api.cjs +1 -1
- package/dist/api/general-api.js +1 -1
- package/dist/appSlice/index.d.cts +1 -1
- package/dist/appSlice/index.d.ts +1 -1
- package/dist/appSlice/index.js +1 -1
- package/dist/appSlice/mocks.d.cts +1 -1
- package/dist/appSlice/mocks.d.ts +1 -1
- package/dist/appSlice/selectors.d.cts +7 -7
- package/dist/appSlice/selectors.d.ts +7 -7
- package/dist/appSlice/thunks.d.cts +2 -2
- package/dist/appSlice/thunks.d.ts +2 -2
- package/dist/auth.cjs +1 -1
- package/dist/auth.d.cts +1 -1
- package/dist/auth.d.ts +1 -1
- package/dist/auth.js +1 -1
- package/dist/commonConstants.cjs +3 -1
- package/dist/commonConstants.d.cts +2 -2
- package/dist/commonConstants.d.ts +2 -2
- package/dist/commonConstants.js +2 -2
- package/dist/commonSelectors.cjs +18 -12
- package/dist/commonSelectors.cjs.map +1 -1
- package/dist/commonSelectors.d.cts +9 -9
- package/dist/commonSelectors.d.ts +9 -9
- package/dist/commonSelectors.js +19 -13
- package/dist/commonSelectors.js.map +1 -1
- package/dist/{constants-CNZ5L0A0.cjs → constants-C_SC_VKE.cjs} +18 -1
- package/dist/constants-C_SC_VKE.cjs.map +1 -0
- package/dist/{constants-OcdoVk6f.d.ts → constants-CzjK2gV-.d.ts} +7 -2
- package/dist/{constants-_p6w8uEp.d.cts → constants-DAi2zOZN.d.cts} +7 -2
- package/dist/{constants-Cj2kp3Iy.js → constants-xpheFFkA.js} +7 -2
- package/dist/constants-xpheFFkA.js.map +1 -0
- package/dist/constants.cjs +3 -1
- package/dist/constants.d.cts +2 -2
- package/dist/constants.d.ts +2 -2
- package/dist/constants.js +2 -2
- package/dist/deploymentsSlice/constants.cjs +1 -1
- package/dist/deploymentsSlice/constants.js +1 -1
- package/dist/deploymentsSlice/index.cjs +1 -1
- package/dist/deploymentsSlice/index.js +1 -1
- package/dist/deploymentsSlice/selectors.cjs +1 -1
- package/dist/deploymentsSlice/selectors.d.cts +7 -7
- package/dist/deploymentsSlice/selectors.d.ts +7 -7
- package/dist/deploymentsSlice/selectors.js +1 -1
- package/dist/deploymentsSlice/thunks.d.cts +4 -4
- package/dist/deploymentsSlice/thunks.d.ts +4 -4
- package/dist/devicesSlice/constants.cjs +1 -1
- package/dist/devicesSlice/constants.d.cts +1 -1
- package/dist/devicesSlice/constants.d.ts +1 -1
- package/dist/devicesSlice/constants.js +1 -1
- package/dist/devicesSlice/index.d.cts +1 -1
- package/dist/devicesSlice/index.d.ts +1 -1
- package/dist/devicesSlice/index.js +1 -1
- package/dist/devicesSlice/mocks.js +1 -1
- package/dist/devicesSlice/selectors.cjs +1 -1
- package/dist/devicesSlice/selectors.d.cts +7 -7
- package/dist/devicesSlice/selectors.d.ts +7 -7
- package/dist/devicesSlice/selectors.js +1 -1
- package/dist/devicesSlice/thunks.d.cts +4 -4
- package/dist/devicesSlice/thunks.d.ts +4 -4
- package/dist/{index-Cf81vLTi.d.ts → index-BCErsO5h.d.ts} +2 -2
- package/dist/{index-5Q-iI4EB.d.cts → index-BQCnJ5gh.d.cts} +2 -2
- package/dist/{index-BqJuhvO_.d.ts → index-BtGhTFBc.d.ts} +2 -2
- package/dist/{index-ByfjrTdH.d.ts → index-C5oQrJGU.d.ts} +2 -2
- package/dist/{index-Bj3OArhr.d.cts → index-CSOj22xK.d.cts} +2 -2
- package/dist/{index-CSk4ENmk.d.cts → index-CgPgKMve.d.cts} +2 -2
- package/dist/{index-BLvjQfGj.d.ts → index-CnH51JfB.d.ts} +2 -2
- package/dist/{index-C8QadAm7.d.cts → index-Dn1SqQYh.d.cts} +2 -2
- package/dist/{index-BBsUj1a8.d.ts → index-H9zg_3UV.d.ts} +2 -2
- package/dist/{index-Zs9RnVoR.d.cts → index-VEayiYkv.d.cts} +2 -2
- package/dist/{index-DLDY7bNT.d.ts → index-m1c0qk2s.d.ts} +2 -2
- package/dist/{index-Doc_1P_Y.d.cts → index-vXsWdis1.d.cts} +2 -2
- package/dist/locationutils.cjs +29 -37
- package/dist/locationutils.cjs.map +1 -1
- package/dist/locationutils.d.cts +2 -2
- package/dist/locationutils.d.ts +2 -2
- package/dist/locationutils.js +29 -37
- package/dist/locationutils.js.map +1 -1
- package/dist/monitorSlice/constants.d.cts +1 -1
- package/dist/monitorSlice/constants.d.ts +1 -1
- package/dist/monitorSlice/index.d.cts +1 -1
- package/dist/monitorSlice/index.d.ts +1 -1
- package/dist/monitorSlice/index.js +1 -1
- package/dist/monitorSlice/mocks.d.cts +1 -1
- package/dist/monitorSlice/mocks.d.ts +1 -1
- package/dist/monitorSlice/mocks.js +1 -1
- package/dist/monitorSlice/selectors.d.cts +1 -1
- package/dist/monitorSlice/selectors.d.ts +1 -1
- package/dist/monitorSlice/thunks.cjs +1 -1
- package/dist/monitorSlice/thunks.d.cts +4 -4
- package/dist/monitorSlice/thunks.d.ts +4 -4
- package/dist/monitorSlice/thunks.js +1 -1
- package/dist/onboardingSlice/selectors.d.cts +1 -1
- package/dist/onboardingSlice/selectors.d.ts +1 -1
- package/dist/onboardingSlice/thunks.d.cts +2 -2
- package/dist/onboardingSlice/thunks.d.ts +2 -2
- package/dist/organizationSlice/constants.cjs +1 -1
- package/dist/organizationSlice/constants.js +1 -1
- package/dist/organizationSlice/index.cjs +1 -1
- package/dist/organizationSlice/index.d.cts +1 -1
- package/dist/organizationSlice/index.d.ts +1 -1
- package/dist/organizationSlice/index.js +1 -1
- package/dist/organizationSlice/mocks.d.cts +1 -1
- package/dist/organizationSlice/mocks.d.ts +1 -1
- package/dist/organizationSlice/mocks.js +1 -1
- package/dist/organizationSlice/selectors.cjs +1 -1
- package/dist/organizationSlice/selectors.d.cts +8 -8
- package/dist/organizationSlice/selectors.d.ts +8 -8
- package/dist/organizationSlice/selectors.js +1 -1
- package/dist/organizationSlice/thunks.d.cts +4 -4
- package/dist/organizationSlice/thunks.d.ts +4 -4
- package/dist/organizationSlice/types.d.cts +1 -1
- package/dist/organizationSlice/types.d.ts +1 -1
- package/dist/releasesSlice/index.d.cts +1 -1
- package/dist/releasesSlice/index.d.ts +1 -1
- package/dist/releasesSlice/index.js +1 -1
- package/dist/releasesSlice/mocks.js +1 -1
- package/dist/releasesSlice/selectors.d.cts +7 -7
- package/dist/releasesSlice/selectors.d.ts +7 -7
- package/dist/releasesSlice/thunks.cjs +1 -1
- package/dist/releasesSlice/thunks.d.cts +4 -4
- package/dist/releasesSlice/thunks.d.ts +4 -4
- package/dist/releasesSlice/thunks.js +1 -1
- package/dist/sockethook.cjs +8 -6
- package/dist/sockethook.cjs.map +1 -1
- package/dist/sockethook.js +8 -5
- package/dist/sockethook.js.map +1 -1
- package/dist/{store-B5-0USDz.d.cts → store-CGP5pCH8.d.cts} +18 -10
- package/dist/{store-CmiiLjxd.d.ts → store-CkgokFlk.d.ts} +18 -10
- package/dist/store.cjs +1 -1
- package/dist/store.d.cts +1 -1
- package/dist/store.d.ts +1 -1
- package/dist/store.js +1 -1
- package/dist/storehooks.cjs +1 -1
- package/dist/storehooks.d.cts +2 -2
- package/dist/storehooks.d.ts +2 -2
- package/dist/storehooks.js +1 -1
- package/dist/thunks.cjs +7 -2
- package/dist/thunks.cjs.map +1 -1
- package/dist/thunks.js +7 -2
- package/dist/thunks.js.map +1 -1
- package/dist/{types-BjtmX60L.d.ts → types-uHmaedGU.d.ts} +2 -2
- package/dist/{types-B33vKVhi.d.cts → types-yQ0ypHMZ.d.cts} +2 -2
- package/dist/usersSlice/constants.cjs +1 -1
- package/dist/usersSlice/constants.js +1 -1
- package/dist/usersSlice/index.cjs +1 -1
- package/dist/usersSlice/index.d.cts +1 -1
- package/dist/usersSlice/index.d.ts +1 -1
- package/dist/usersSlice/index.js +1 -1
- package/dist/usersSlice/mocks.d.cts +1 -1
- package/dist/usersSlice/mocks.d.ts +1 -1
- package/dist/usersSlice/mocks.js +1 -1
- package/dist/usersSlice/selectors.cjs +1 -1
- package/dist/usersSlice/selectors.d.cts +7 -7
- package/dist/usersSlice/selectors.d.ts +7 -7
- package/dist/usersSlice/selectors.js +1 -1
- package/dist/usersSlice/thunks.d.cts +4 -4
- package/dist/usersSlice/thunks.d.ts +4 -4
- package/dist/utils.cjs +9 -1
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +2 -2
- package/dist/utils.d.ts +2 -2
- package/dist/utils.js +8 -2
- package/dist/utils.js.map +1 -1
- package/package.json +2 -2
- package/dist/constants-CNZ5L0A0.cjs.map +0 -1
- package/dist/constants-Cj2kp3Iy.js.map +0 -1
package/dist/actions.d.cts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { lt as AlertChannelKey, mt as DeviceAuthState } from "./constants-
|
|
1
|
+
import { lt as AlertChannelKey, mt as DeviceAuthState } from "./constants-DAi2zOZN.cjs";
|
|
2
2
|
import { i as ReadState } from "./constants-Sn4gnNA3.cjs";
|
|
3
|
-
import { a as UserSettings, i as UserSession, n as GlobalSettings, r as User, t as CustomColumn } from "./index-
|
|
4
|
-
import { n as ManifestsList, r as Release, s as SoftwareList } from "./index-
|
|
5
|
-
import { d as TenantList, i as Organization, l as SSOConfig, n as AuditLogSelectionState, o as ProductConfig, r as Card } from "./types-
|
|
3
|
+
import { a as UserSettings, i as UserSession, n as GlobalSettings, r as User, t as CustomColumn } from "./index-CgPgKMve.cjs";
|
|
4
|
+
import { n as ManifestsList, r as Release, s as SoftwareList } from "./index-VEayiYkv.cjs";
|
|
5
|
+
import { d as TenantList, i as Organization, l as SSOConfig, n as AuditLogSelectionState, o as ProductConfig, r as Card } from "./types-yQ0ypHMZ.cjs";
|
|
6
6
|
import { n as OnboardingSliceType, t as OnboardingApproach } from "./index-DBUt8xVc.cjs";
|
|
7
7
|
import { i as DeploymentConfig, l as SelectionState, r as DeploymentByStatusKey, t as Deployment } from "./index-EPmsL6Lb.cjs";
|
|
8
|
-
import { a as DeviceListState, n as DeviceFilter, r as DeviceGroup, t as Device } from "./index-
|
|
9
|
-
import { a as Upload, i as SnackbarContent } from "./index-
|
|
8
|
+
import { a as DeviceListState, n as DeviceFilter, r as DeviceGroup, t as Device } from "./index-vXsWdis1.cjs";
|
|
9
|
+
import { a as Upload, i as SnackbarContent } from "./index-Dn1SqQYh.cjs";
|
|
10
10
|
|
|
11
11
|
//#region src/actions.d.ts
|
|
12
12
|
declare const _default: {
|
package/dist/actions.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { lt as AlertChannelKey, mt as DeviceAuthState } from "./constants-
|
|
1
|
+
import { lt as AlertChannelKey, mt as DeviceAuthState } from "./constants-CzjK2gV-.js";
|
|
2
2
|
import { i as ReadState } from "./constants-Sn4gnNA3.js";
|
|
3
|
-
import { a as UserSettings, i as UserSession, n as GlobalSettings, r as User, t as CustomColumn } from "./index-
|
|
4
|
-
import { n as ManifestsList, r as Release, s as SoftwareList } from "./index-
|
|
5
|
-
import { d as TenantList, i as Organization, l as SSOConfig, n as AuditLogSelectionState, o as ProductConfig, r as Card } from "./types-
|
|
3
|
+
import { a as UserSettings, i as UserSession, n as GlobalSettings, r as User, t as CustomColumn } from "./index-BCErsO5h.js";
|
|
4
|
+
import { n as ManifestsList, r as Release, s as SoftwareList } from "./index-m1c0qk2s.js";
|
|
5
|
+
import { d as TenantList, i as Organization, l as SSOConfig, n as AuditLogSelectionState, o as ProductConfig, r as Card } from "./types-uHmaedGU.js";
|
|
6
6
|
import { n as OnboardingSliceType, t as OnboardingApproach } from "./index-DBUt8xVc.js";
|
|
7
7
|
import { i as DeploymentConfig, l as SelectionState, r as DeploymentByStatusKey, t as Deployment } from "./index-Bb4yvvgG.js";
|
|
8
|
-
import { a as DeviceListState, n as DeviceFilter, r as DeviceGroup, t as Device } from "./index-
|
|
9
|
-
import { a as Upload, i as SnackbarContent } from "./index-
|
|
8
|
+
import { a as DeviceListState, n as DeviceFilter, r as DeviceGroup, t as Device } from "./index-BtGhTFBc.js";
|
|
9
|
+
import { a as Upload, i as SnackbarContent } from "./index-CnH51JfB.js";
|
|
10
10
|
|
|
11
11
|
//#region src/actions.d.ts
|
|
12
12
|
declare const _default: {
|
package/dist/api/general-api.cjs
CHANGED
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_rolldown_runtime = require("../rolldown-runtime-D6vf50IK.cjs");
|
|
6
|
-
const require_constants = require("../constants-
|
|
6
|
+
const require_constants = require("../constants-C_SC_VKE.cjs");
|
|
7
7
|
const require_auth = require("../auth.cjs");
|
|
8
8
|
let universal_cookie = require("universal-cookie");
|
|
9
9
|
universal_cookie = require_rolldown_runtime.__toESM(universal_cookie, 1);
|
package/dist/api/general-api.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as Upload, c as appSlice, i as SnackbarContent, l as initialState, n as SearchState, o as _default, r as SentryConfig, s as actions, t as AppSliceType, u as sliceName } from "../index-
|
|
1
|
+
import { a as Upload, c as appSlice, i as SnackbarContent, l as initialState, n as SearchState, o as _default, r as SentryConfig, s as actions, t as AppSliceType, u as sliceName } from "../index-Dn1SqQYh.cjs";
|
|
2
2
|
export { AppSliceType, SearchState, SentryConfig, SnackbarContent, Upload, actions, appSlice, _default as default, initialState, sliceName };
|
package/dist/appSlice/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as Upload, c as appSlice, i as SnackbarContent, l as initialState, n as SearchState, o as _default, r as SentryConfig, s as actions, t as AppSliceType, u as sliceName } from "../index-
|
|
1
|
+
import { a as Upload, c as appSlice, i as SnackbarContent, l as initialState, n as SearchState, o as _default, r as SentryConfig, s as actions, t as AppSliceType, u as sliceName } from "../index-CnH51JfB.js";
|
|
2
2
|
export { AppSliceType, SearchState, SentryConfig, SnackbarContent, Upload, actions, appSlice, _default as default, initialState, sliceName };
|
package/dist/appSlice/index.js
CHANGED
package/dist/appSlice/mocks.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { o as UserSliceType } from "../index-
|
|
2
|
-
import { i as ReleaseSliceType } from "../index-
|
|
1
|
+
import { o as UserSliceType } from "../index-CgPgKMve.cjs";
|
|
2
|
+
import { i as ReleaseSliceType } from "../index-VEayiYkv.cjs";
|
|
3
3
|
import { n as OnboardingSliceType } from "../index-DBUt8xVc.cjs";
|
|
4
4
|
import { o as DeploymentsSliceType } from "../index-EPmsL6Lb.cjs";
|
|
5
|
-
import { s as DeviceSliceType } from "../index-
|
|
6
|
-
import { a as Upload, i as SnackbarContent, n as SearchState, r as SentryConfig, t as AppSliceType } from "../index-
|
|
7
|
-
import { t as MonitorSliceType } from "../index-
|
|
8
|
-
import { t as OrganizationSliceType } from "../index-
|
|
9
|
-
import { r as RootState } from "../store-
|
|
5
|
+
import { s as DeviceSliceType } from "../index-vXsWdis1.cjs";
|
|
6
|
+
import { a as Upload, i as SnackbarContent, n as SearchState, r as SentryConfig, t as AppSliceType } from "../index-Dn1SqQYh.cjs";
|
|
7
|
+
import { t as MonitorSliceType } from "../index-BQCnJ5gh.cjs";
|
|
8
|
+
import { t as OrganizationSliceType } from "../index-CSOj22xK.cjs";
|
|
9
|
+
import { r as RootState } from "../store-CGP5pCH8.cjs";
|
|
10
10
|
|
|
11
11
|
//#region src/appSlice/selectors.d.ts
|
|
12
12
|
declare const getDocsVersion: (state: RootState) => string;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { o as UserSliceType } from "../index-
|
|
2
|
-
import { i as ReleaseSliceType } from "../index-
|
|
1
|
+
import { o as UserSliceType } from "../index-BCErsO5h.js";
|
|
2
|
+
import { i as ReleaseSliceType } from "../index-m1c0qk2s.js";
|
|
3
3
|
import { n as OnboardingSliceType } from "../index-DBUt8xVc.js";
|
|
4
4
|
import { o as DeploymentsSliceType } from "../index-Bb4yvvgG.js";
|
|
5
|
-
import { s as DeviceSliceType } from "../index-
|
|
6
|
-
import { a as Upload, i as SnackbarContent, n as SearchState, r as SentryConfig, t as AppSliceType } from "../index-
|
|
7
|
-
import { t as MonitorSliceType } from "../index-
|
|
8
|
-
import { t as OrganizationSliceType } from "../index-
|
|
9
|
-
import { r as RootState } from "../store-
|
|
5
|
+
import { s as DeviceSliceType } from "../index-BtGhTFBc.js";
|
|
6
|
+
import { a as Upload, i as SnackbarContent, n as SearchState, r as SentryConfig, t as AppSliceType } from "../index-CnH51JfB.js";
|
|
7
|
+
import { t as MonitorSliceType } from "../index-C5oQrJGU.js";
|
|
8
|
+
import { t as OrganizationSliceType } from "../index-H9zg_3UV.js";
|
|
9
|
+
import { r as RootState } from "../store-CkgokFlk.js";
|
|
10
10
|
|
|
11
11
|
//#region src/appSlice/selectors.d.ts
|
|
12
12
|
declare const getDocsVersion: (state: RootState) => string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { n as SearchState } from "../index-
|
|
2
|
-
import { r as RootState, t as AppDispatch } from "../store-
|
|
1
|
+
import { n as SearchState } from "../index-Dn1SqQYh.cjs";
|
|
2
|
+
import { r as RootState, t as AppDispatch } from "../store-CGP5pCH8.cjs";
|
|
3
3
|
|
|
4
4
|
//#region src/appSlice/thunks.d.ts
|
|
5
5
|
declare const setFirstLoginAfterSignup: import("@reduxjs/toolkit").AsyncThunk<void, boolean, {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { n as SearchState } from "../index-
|
|
2
|
-
import { r as RootState, t as AppDispatch } from "../store-
|
|
1
|
+
import { n as SearchState } from "../index-CnH51JfB.js";
|
|
2
|
+
import { r as RootState, t as AppDispatch } from "../store-CkgokFlk.js";
|
|
3
3
|
|
|
4
4
|
//#region src/appSlice/thunks.d.ts
|
|
5
5
|
declare const setFirstLoginAfterSignup: import("@reduxjs/toolkit").AsyncThunk<void, boolean, {
|
package/dist/auth.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_rolldown_runtime = require("./rolldown-runtime-D6vf50IK.cjs");
|
|
3
|
-
const require_constants = require("./constants-
|
|
3
|
+
const require_constants = require("./constants-C_SC_VKE.cjs");
|
|
4
4
|
let universal_cookie = require("universal-cookie");
|
|
5
5
|
universal_cookie = require_rolldown_runtime.__toESM(universal_cookie, 1);
|
|
6
6
|
let _northern_tech_utils_constants = require("@northern.tech/utils/constants");
|
package/dist/auth.d.cts
CHANGED
package/dist/auth.d.ts
CHANGED
package/dist/auth.js
CHANGED
package/dist/commonConstants.cjs
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_constants = require("./constants-
|
|
2
|
+
const require_constants = require("./constants-C_SC_VKE.cjs");
|
|
3
|
+
exports.ATTRIBUTE_SCOPE_LABELS = require_constants.ATTRIBUTE_SCOPE_LABELS;
|
|
3
4
|
exports.DEVICE_LIST_MAXIMUM_LENGTH = require_constants.DEVICE_LIST_MAXIMUM_LENGTH;
|
|
4
5
|
exports.DEVICE_ONLINE_CUTOFF = require_constants.DEVICE_ONLINE_CUTOFF;
|
|
5
6
|
exports.EXTERNAL_PROVIDER = require_constants.EXTERNAL_PROVIDER;
|
|
6
7
|
exports.MAX_PAGE_SIZE = require_constants.MAX_PAGE_SIZE;
|
|
8
|
+
exports.ORCHESTRATOR_MANIFEST_ATTRIBUTE_PREFIX = require_constants.ORCHESTRATOR_MANIFEST_ATTRIBUTE_PREFIX;
|
|
7
9
|
exports.TIMEOUTS = require_constants.TIMEOUTS;
|
|
8
10
|
exports.UNGROUPED_GROUP = require_constants.UNGROUPED_GROUP;
|
|
9
11
|
exports.countries = require_constants.countries;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { At as
|
|
2
|
-
export { DEVICE_LIST_MAXIMUM_LENGTH, DEVICE_ONLINE_CUTOFF, EXTERNAL_PROVIDER, FilterOperator, IdAttribute, MAX_PAGE_SIZE, TIMEOUTS, UNGROUPED_GROUP, Webhook, countries, credentialTypes, defaultIdAttribute, emptyWebhook, productOrder, timeUnits };
|
|
1
|
+
import { At as credentialTypes, Ct as IdAttribute, Dt as UNGROUPED_GROUP, Et as TIMEOUTS, Mt as emptyWebhook, Nt as productOrder, Ot as Webhook, Pt as timeUnits, St as FilterOperator, Tt as ORCHESTRATOR_MANIFEST_ATTRIBUTE_PREFIX, bt as DEVICE_ONLINE_CUTOFF, jt as defaultIdAttribute, kt as countries, vt as ATTRIBUTE_SCOPE_LABELS, wt as MAX_PAGE_SIZE, xt as EXTERNAL_PROVIDER, yt as DEVICE_LIST_MAXIMUM_LENGTH } from "./constants-DAi2zOZN.cjs";
|
|
2
|
+
export { ATTRIBUTE_SCOPE_LABELS, DEVICE_LIST_MAXIMUM_LENGTH, DEVICE_ONLINE_CUTOFF, EXTERNAL_PROVIDER, FilterOperator, IdAttribute, MAX_PAGE_SIZE, ORCHESTRATOR_MANIFEST_ATTRIBUTE_PREFIX, TIMEOUTS, UNGROUPED_GROUP, Webhook, countries, credentialTypes, defaultIdAttribute, emptyWebhook, productOrder, timeUnits };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { At as
|
|
2
|
-
export { DEVICE_LIST_MAXIMUM_LENGTH, DEVICE_ONLINE_CUTOFF, EXTERNAL_PROVIDER, FilterOperator, IdAttribute, MAX_PAGE_SIZE, TIMEOUTS, UNGROUPED_GROUP, Webhook, countries, credentialTypes, defaultIdAttribute, emptyWebhook, productOrder, timeUnits };
|
|
1
|
+
import { At as credentialTypes, Ct as IdAttribute, Dt as UNGROUPED_GROUP, Et as TIMEOUTS, Mt as emptyWebhook, Nt as productOrder, Ot as Webhook, Pt as timeUnits, St as FilterOperator, Tt as ORCHESTRATOR_MANIFEST_ATTRIBUTE_PREFIX, bt as DEVICE_ONLINE_CUTOFF, jt as defaultIdAttribute, kt as countries, vt as ATTRIBUTE_SCOPE_LABELS, wt as MAX_PAGE_SIZE, xt as EXTERNAL_PROVIDER, yt as DEVICE_LIST_MAXIMUM_LENGTH } from "./constants-CzjK2gV-.js";
|
|
2
|
+
export { ATTRIBUTE_SCOPE_LABELS, DEVICE_LIST_MAXIMUM_LENGTH, DEVICE_ONLINE_CUTOFF, EXTERNAL_PROVIDER, FilterOperator, IdAttribute, MAX_PAGE_SIZE, ORCHESTRATOR_MANIFEST_ATTRIBUTE_PREFIX, TIMEOUTS, UNGROUPED_GROUP, Webhook, countries, credentialTypes, defaultIdAttribute, emptyWebhook, productOrder, timeUnits };
|
package/dist/commonConstants.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { At as
|
|
2
|
-
export { DEVICE_LIST_MAXIMUM_LENGTH, DEVICE_ONLINE_CUTOFF, EXTERNAL_PROVIDER, MAX_PAGE_SIZE, TIMEOUTS, UNGROUPED_GROUP, countries, credentialTypes, defaultIdAttribute, emptyWebhook, productOrder, timeUnits };
|
|
1
|
+
import { At as EXTERNAL_PROVIDER, Bt as timeUnits, Dt as ATTRIBUTE_SCOPE_LABELS, Ft as countries, It as credentialTypes, Lt as defaultIdAttribute, Mt as ORCHESTRATOR_MANIFEST_ATTRIBUTE_PREFIX, Nt as TIMEOUTS, Ot as DEVICE_LIST_MAXIMUM_LENGTH, Pt as UNGROUPED_GROUP, Rt as emptyWebhook, jt as MAX_PAGE_SIZE, kt as DEVICE_ONLINE_CUTOFF, zt as productOrder } from "./constants-xpheFFkA.js";
|
|
2
|
+
export { ATTRIBUTE_SCOPE_LABELS, DEVICE_LIST_MAXIMUM_LENGTH, DEVICE_ONLINE_CUTOFF, EXTERNAL_PROVIDER, MAX_PAGE_SIZE, ORCHESTRATOR_MANIFEST_ATTRIBUTE_PREFIX, TIMEOUTS, UNGROUPED_GROUP, countries, credentialTypes, defaultIdAttribute, emptyWebhook, productOrder, timeUnits };
|
package/dist/commonSelectors.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_rolldown_runtime = require("./rolldown-runtime-D6vf50IK.cjs");
|
|
3
3
|
const require_appSlice_constants = require("./appSlice/constants.cjs");
|
|
4
|
-
const require_constants = require("./constants-
|
|
4
|
+
const require_constants = require("./constants-C_SC_VKE.cjs");
|
|
5
5
|
const require_onboardingSlice_constants = require("./onboardingSlice/constants.cjs");
|
|
6
6
|
const require_appSlice_selectors = require("./appSlice/selectors.cjs");
|
|
7
7
|
const require_deploymentsSlice_selectors = require("./deploymentsSlice/selectors.cjs");
|
|
@@ -99,7 +99,7 @@ const getFilterAttributes = (0, _reduxjs_toolkit.createSelector)([require_usersS
|
|
|
99
99
|
key: "check_in_time",
|
|
100
100
|
value: "Latest activity",
|
|
101
101
|
scope: _northern_tech_utils_constants.ATTRIBUTE_SCOPES.system,
|
|
102
|
-
category:
|
|
102
|
+
category: require_constants.ATTRIBUTE_SCOPE_LABELS.default,
|
|
103
103
|
priority: 4
|
|
104
104
|
};
|
|
105
105
|
const updateAttribute = {
|
|
@@ -111,13 +111,13 @@ const getFilterAttributes = (0, _reduxjs_toolkit.createSelector)([require_usersS
|
|
|
111
111
|
key: "created_ts",
|
|
112
112
|
value: "First request",
|
|
113
113
|
scope: _northern_tech_utils_constants.ATTRIBUTE_SCOPES.system,
|
|
114
|
-
category:
|
|
114
|
+
category: require_constants.ATTRIBUTE_SCOPE_LABELS.default,
|
|
115
115
|
priority: 4
|
|
116
116
|
};
|
|
117
117
|
return (0, _northern_tech_utils_helpers.attributeDuplicateFilter)([
|
|
118
118
|
...previousFilters.map((item) => ({
|
|
119
119
|
...item,
|
|
120
|
-
value: deviceIdAttribute.key === item.key ? deviceIdAttribute.value : item.key,
|
|
120
|
+
value: deviceIdAttribute.key === item.key ? deviceIdAttribute.value : require_utils.stripOrchestratorManifestPrefix(item.key),
|
|
121
121
|
category: "recently used",
|
|
122
122
|
priority: 0
|
|
123
123
|
})),
|
|
@@ -130,13 +130,19 @@ const getFilterAttributes = (0, _reduxjs_toolkit.createSelector)([require_usersS
|
|
|
130
130
|
category: _northern_tech_utils_constants.ATTRIBUTE_SCOPES.identity,
|
|
131
131
|
priority: 1
|
|
132
132
|
})),
|
|
133
|
-
...inventoryAttributes.map((item) =>
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
133
|
+
...inventoryAttributes.map((item) => {
|
|
134
|
+
const category = require_utils.getAttributeScopeLabel({
|
|
135
|
+
key: item,
|
|
136
|
+
scope: _northern_tech_utils_constants.ATTRIBUTE_SCOPES.inventory
|
|
137
|
+
});
|
|
138
|
+
return {
|
|
139
|
+
key: item,
|
|
140
|
+
value: require_utils.stripOrchestratorManifestPrefix(item),
|
|
141
|
+
scope: _northern_tech_utils_constants.ATTRIBUTE_SCOPES.inventory,
|
|
142
|
+
category,
|
|
143
|
+
priority: category === _northern_tech_utils_constants.ATTRIBUTE_SCOPES.inventory ? 2 : 3
|
|
144
|
+
};
|
|
145
|
+
}),
|
|
140
146
|
...tagAttributes.map((item) => ({
|
|
141
147
|
key: item,
|
|
142
148
|
value: item,
|
|
@@ -151,7 +157,7 @@ const getFilterAttributes = (0, _reduxjs_toolkit.createSelector)([require_usersS
|
|
|
151
157
|
key: item,
|
|
152
158
|
value: item,
|
|
153
159
|
scope: _northern_tech_utils_constants.ATTRIBUTE_SCOPES.system,
|
|
154
|
-
category:
|
|
160
|
+
category: require_constants.ATTRIBUTE_SCOPE_LABELS.default,
|
|
155
161
|
priority: 4
|
|
156
162
|
}))
|
|
157
163
|
], "key");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commonSelectors.cjs","names":["getOrganization","getFeatures","PLANS","getCurrentUser","getRolesById","rolesByName","mapUserRolesToUiPermissions","getIsServiceProvider","uiPermissionsById","ADDONS","getGlobalSettings","getFilteringAttributes","ATTRIBUTE_SCOPES","getOnboarding","getUserSettings","onboardingSteps","getDevicesById","getDeviceById","getDeploymentsById","getDeploymentsSelectionState","getReleasesById","getSelectedDeploymentDeviceIds","getIssueCountsByType","DEVICE_ISSUE_OPTIONS","getGroupsById","UNGROUPED_GROUP","ALL_DEVICES","defaultReports","getListedDevices","getSearchedDevices","listItemMapper","getAuditLogEntry","getRolesList","rolesById","serviceProviderRolesById","getHas2FA","getUserSettingsInitialized","getSecurityAlertDismissedTimestamp"],"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.\nimport type { AuditLog as AuditLogEvent } from '@northern.tech/types/types.gen';\nimport type { DeviceIssueOption } from '@northern.tech/utils/constants';\nimport { attributeDuplicateFilter, getDemoDeviceAddress as getDemoDeviceAddressHelper } from '@northern.tech/utils/helpers';\nimport { createSelector } from '@reduxjs/toolkit';\nimport dayjs from 'dayjs';\n\nimport { ADDONS, PLANS, defaultReports } from './appSlice/constants';\nimport { getFeatures, getSearchedDevices } from './appSlice/selectors';\nimport { DEVICE_LIST_MAXIMUM_LENGTH, UNGROUPED_GROUP } from './commonConstants';\nimport { ALL_DEVICES, ATTRIBUTE_SCOPES, DEVICE_ISSUE_OPTIONS, rolesById, rolesByName, serviceProviderRolesById, uiPermissionsById } from './constants';\nimport type { Role } from './constants';\nimport type { Deployment } from './deploymentsSlice';\nimport { getDeploymentsById, getDeploymentsSelectionState, getSelectedDeploymentDeviceIds } from './deploymentsSlice/selectors';\nimport type { Device, DeviceGroup } from './devicesSlice';\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 {\n getCurrentUser,\n getGlobalSettings,\n getHas2FA,\n getRolesById,\n getRolesList,\n getSecurityAlertDismissedTimestamp,\n getUserSettings,\n getUserSettingsInitialized\n} 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 getUserRoles = createSelector([getCurrentUser, getRolesById, getIsEnterprise], (currentUser, rolesById, isEnterprise) => {\n const isAdmin = currentUser.roles?.length ? currentUser.roles.some(role => role === rolesByName.admin) : !isEnterprise;\n const uiPermissions = isAdmin ? mapUserRolesToUiPermissions([rolesByName.admin], rolesById) : mapUserRolesToUiPermissions(currentUser.roles || [], rolesById);\n return { isAdmin, uiPermissions };\n});\n\nconst hasPermission = (thing: Record<string, string[]>, permission: string): boolean =>\n 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 =\n (uiPermissions.deployments?.includes(uiPermissionsById.deploy.value) ?? false) || hasPermission(uiPermissions.groups, uiPermissionsById.deploy.value);\n const canReadDeployments = uiPermissions.deployments?.includes(uiPermissionsById.read.value) ?? false;\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 as Deployment;\n return {\n deployment,\n selectedDevices: selectedDeviceIds.map(deviceId => ({ ...devicesById[deviceId], ...(devices[deviceId] ?? {}) }))\n };\n }\n);\n\nexport const getAvailableIssueOptionsByType = createSelector([getTenantCapabilities, getIssueCountsByType], ({ hasFullFiltering, hasMonitor }, issueCounts) =>\n Object.values<DeviceIssueOption>(DEVICE_ISSUE_OPTIONS).reduce(\n (accu, { isCategory, key, needsFullFiltering, needsMonitor, title }) => {\n if (isCategory || (needsFullFiltering && !hasFullFiltering) || (needsMonitor && !hasMonitor)) {\n return accu;\n }\n accu[key] = { count: issueCounts[key].filtered, key, title };\n return accu;\n },\n {} as Record<string, { count: number; key: string; title: string }>\n )\n);\n\nexport const getGroupNames = createSelector([getGroupsById, getUserRoles], (groupsById, { uiPermissions }) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [UNGROUPED_GROUP.id]: ungrouped, ...groups } = groupsById;\n return Object.keys(\n Object.entries(groups).reduce(\n (accu, [groupName, group]) => {\n if (group.filters || uiPermissions.groups[ALL_DEVICES]) {\n accu[groupName] = group;\n }\n return accu;\n },\n { ...uiPermissions.groups } as Record<string, DeviceGroup>\n )\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: Partial<Device> = {};\n if (auditlogEvent) {\n const { object } = auditlogEvent as AuditLogEvent;\n const objectData = object as AuditLogEvent['object'] | undefined;\n if (objectData?.type === 'device' && objectData.id) {\n auditlogDevice = { id: objectData.id, ...(objectData.device ?? {}) } as Device;\n }\n }\n return { ...auditlogDevice, ...(auditlogDevice.id ? devicesById[auditlogDevice.id] : {}) };\n});\n\ntype RoleItem = Role | { value: string };\nexport const getRelevantRoles = createSelector([getOrganization, getRolesList], ({ service_provider }, roles) => {\n if (service_provider) {\n return roles.reduce(\n (accu, role) => {\n if (rolesById[role.value as keyof typeof rolesById]) {\n return accu;\n }\n accu.push(role);\n return accu;\n },\n [...Object.values(serviceProviderRolesById)] as RoleItem[]\n );\n }\n return Object.keys(rolesById)\n .reverse()\n .reduce((accu, key) => {\n const index = accu.findIndex(({ value }) => value === key);\n if (index >= 0) {\n accu = [accu[index], ...accu.filter((_, itemIndex) => index !== itemIndex)];\n }\n return accu;\n }, roles);\n});\n\nexport const getShowSecurityAlert = createSelector(\n [getCurrentUser, getHas2FA, getFeatures, getIsEnterprise, getUserSettingsInitialized, getSecurityAlertDismissedTimestamp],\n (currentUser, has2FA, features, isEnterprise, settingsInitialized, dismissedTimestamp) => {\n const isOAuth2 = !!currentUser?.sso?.length;\n const userVerified = !!currentUser.verified;\n\n const isHosted = features?.isHosted;\n const canHave2FA = isEnterprise || isHosted;\n const secureOAuthUser = isOAuth2 && userVerified;\n if (!currentUser || !settingsInitialized || has2FA || !canHave2FA || secureOAuthUser) {\n return false;\n }\n\n if (dismissedTimestamp === null) {\n return true;\n }\n\n const today = dayjs();\n const dismissedMonthAgo = today.diff(dismissedTimestamp, 'months');\n\n return dismissedMonthAgo > 0;\n }\n);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"commonSelectors.cjs","names":["getOrganization","getFeatures","PLANS","getCurrentUser","getRolesById","rolesByName","mapUserRolesToUiPermissions","getIsServiceProvider","uiPermissionsById","ADDONS","getGlobalSettings","getFilteringAttributes","ATTRIBUTE_SCOPES","ATTRIBUTE_SCOPE_LABELS","stripOrchestratorManifestPrefix","getAttributeScopeLabel","getOnboarding","getUserSettings","onboardingSteps","getDevicesById","getDeviceById","getDeploymentsById","getDeploymentsSelectionState","getReleasesById","getSelectedDeploymentDeviceIds","getIssueCountsByType","DEVICE_ISSUE_OPTIONS","getGroupsById","UNGROUPED_GROUP","ALL_DEVICES","defaultReports","getListedDevices","getSearchedDevices","listItemMapper","getAuditLogEntry","getRolesList","rolesById","serviceProviderRolesById","getHas2FA","getUserSettingsInitialized","getSecurityAlertDismissedTimestamp"],"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.\nimport type { AuditLog as AuditLogEvent } from '@northern.tech/types/types.gen';\nimport type { DeviceIssueOption } from '@northern.tech/utils/constants';\nimport { attributeDuplicateFilter, getDemoDeviceAddress as getDemoDeviceAddressHelper } from '@northern.tech/utils/helpers';\nimport { createSelector } from '@reduxjs/toolkit';\nimport dayjs from 'dayjs';\n\nimport { ADDONS, PLANS, defaultReports } from './appSlice/constants';\nimport { getFeatures, getSearchedDevices } from './appSlice/selectors';\nimport { ATTRIBUTE_SCOPE_LABELS, DEVICE_LIST_MAXIMUM_LENGTH, UNGROUPED_GROUP } from './commonConstants';\nimport { ALL_DEVICES, ATTRIBUTE_SCOPES, DEVICE_ISSUE_OPTIONS, rolesById, rolesByName, serviceProviderRolesById, uiPermissionsById } from './constants';\nimport type { Role } from './constants';\nimport type { Deployment } from './deploymentsSlice';\nimport { getDeploymentsById, getDeploymentsSelectionState, getSelectedDeploymentDeviceIds } from './deploymentsSlice/selectors';\nimport type { Device, DeviceGroup } from './devicesSlice';\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 {\n getCurrentUser,\n getGlobalSettings,\n getHas2FA,\n getRolesById,\n getRolesList,\n getSecurityAlertDismissedTimestamp,\n getUserSettings,\n getUserSettingsInitialized\n} from './usersSlice/selectors';\nimport { getAttributeScopeLabel, listItemMapper, mapUserRolesToUiPermissions, stripOrchestratorManifestPrefix } 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 getUserRoles = createSelector([getCurrentUser, getRolesById, getIsEnterprise], (currentUser, rolesById, isEnterprise) => {\n const isAdmin = currentUser.roles?.length ? currentUser.roles.some(role => role === rolesByName.admin) : !isEnterprise;\n const uiPermissions = isAdmin ? mapUserRolesToUiPermissions([rolesByName.admin], rolesById) : mapUserRolesToUiPermissions(currentUser.roles || [], rolesById);\n return { isAdmin, uiPermissions };\n});\n\nconst hasPermission = (thing: Record<string, string[]>, permission: string): boolean =>\n 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 =\n (uiPermissions.deployments?.includes(uiPermissionsById.deploy.value) ?? false) || hasPermission(uiPermissions.groups, uiPermissionsById.deploy.value);\n const canReadDeployments = uiPermissions.deployments?.includes(uiPermissionsById.read.value) ?? false;\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 = {\n key: 'check_in_time',\n value: 'Latest activity',\n scope: ATTRIBUTE_SCOPES.system,\n category: ATTRIBUTE_SCOPE_LABELS.default,\n priority: 4\n };\n const updateAttribute = { ...checkInAttribute, key: 'updated_ts', value: 'Last inventory update' };\n const firstRequestAttribute = {\n key: 'created_ts',\n value: 'First request',\n scope: ATTRIBUTE_SCOPES.system,\n category: ATTRIBUTE_SCOPE_LABELS.default,\n priority: 4\n };\n const attributes = [\n ...previousFilters.map(item => ({\n ...item,\n value: deviceIdAttribute.key === item.key ? deviceIdAttribute.value : stripOrchestratorManifestPrefix(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 => {\n const category = getAttributeScopeLabel({ key: item, scope: ATTRIBUTE_SCOPES.inventory });\n return {\n key: item,\n value: stripOrchestratorManifestPrefix(item),\n scope: ATTRIBUTE_SCOPES.inventory,\n category,\n priority: category === ATTRIBUTE_SCOPES.inventory ? 2 : 3\n };\n }),\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_SCOPE_LABELS.default, 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 as Deployment;\n return {\n deployment,\n selectedDevices: selectedDeviceIds.map(deviceId => ({ ...devicesById[deviceId], ...(devices[deviceId] ?? {}) }))\n };\n }\n);\n\nexport const getAvailableIssueOptionsByType = createSelector([getTenantCapabilities, getIssueCountsByType], ({ hasFullFiltering, hasMonitor }, issueCounts) =>\n Object.values<DeviceIssueOption>(DEVICE_ISSUE_OPTIONS).reduce(\n (accu, { isCategory, key, needsFullFiltering, needsMonitor, title }) => {\n if (isCategory || (needsFullFiltering && !hasFullFiltering) || (needsMonitor && !hasMonitor)) {\n return accu;\n }\n accu[key] = { count: issueCounts[key].filtered, key, title };\n return accu;\n },\n {} as Record<string, { count: number; key: string; title: string }>\n )\n);\n\nexport const getGroupNames = createSelector([getGroupsById, getUserRoles], (groupsById, { uiPermissions }) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [UNGROUPED_GROUP.id]: ungrouped, ...groups } = groupsById;\n return Object.keys(\n Object.entries(groups).reduce(\n (accu, [groupName, group]) => {\n if (group.filters || uiPermissions.groups[ALL_DEVICES]) {\n accu[groupName] = group;\n }\n return accu;\n },\n { ...uiPermissions.groups } as Record<string, DeviceGroup>\n )\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: Partial<Device> = {};\n if (auditlogEvent) {\n const { object } = auditlogEvent as AuditLogEvent;\n const objectData = object as AuditLogEvent['object'] | undefined;\n if (objectData?.type === 'device' && objectData.id) {\n auditlogDevice = { id: objectData.id, ...(objectData.device ?? {}) } as Device;\n }\n }\n return { ...auditlogDevice, ...(auditlogDevice.id ? devicesById[auditlogDevice.id] : {}) };\n});\n\ntype RoleItem = Role | { value: string };\nexport const getRelevantRoles = createSelector([getOrganization, getRolesList], ({ service_provider }, roles) => {\n if (service_provider) {\n return roles.reduce(\n (accu, role) => {\n if (rolesById[role.value as keyof typeof rolesById]) {\n return accu;\n }\n accu.push(role);\n return accu;\n },\n [...Object.values(serviceProviderRolesById)] as RoleItem[]\n );\n }\n return Object.keys(rolesById)\n .reverse()\n .reduce((accu, key) => {\n const index = accu.findIndex(({ value }) => value === key);\n if (index >= 0) {\n accu = [accu[index], ...accu.filter((_, itemIndex) => index !== itemIndex)];\n }\n return accu;\n }, roles);\n});\n\nexport const getShowSecurityAlert = createSelector(\n [getCurrentUser, getHas2FA, getFeatures, getIsEnterprise, getUserSettingsInitialized, getSecurityAlertDismissedTimestamp],\n (currentUser, has2FA, features, isEnterprise, settingsInitialized, dismissedTimestamp) => {\n const isOAuth2 = !!currentUser?.sso?.length;\n const userVerified = !!currentUser.verified;\n\n const isHosted = features?.isHosted;\n const canHave2FA = isEnterprise || isHosted;\n const secureOAuthUser = isOAuth2 && userVerified;\n if (!currentUser || !settingsInitialized || has2FA || !canHave2FA || secureOAuthUser) {\n return false;\n }\n\n if (dismissedTimestamp === null) {\n return true;\n }\n\n const today = dayjs();\n const dismissedMonthAgo = today.diff(dismissedTimestamp, 'months');\n\n return dismissedMonthAgo > 0;\n }\n);\n"],"mappings":"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"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { a as AvailablePlans } from "./constants-B_7FCJQX.cjs";
|
|
2
|
-
import { S as Role } from "./constants-
|
|
3
|
-
import { a as UserSettings, n as GlobalSettings, o as UserSliceType, r as User } from "./index-
|
|
4
|
-
import { i as ReleaseSliceType, r as Release } from "./index-
|
|
5
|
-
import { i as Organization, n as AuditLogSelectionState } from "./types-
|
|
2
|
+
import { S as Role } from "./constants-DAi2zOZN.cjs";
|
|
3
|
+
import { a as UserSettings, n as GlobalSettings, o as UserSliceType, r as User } from "./index-CgPgKMve.cjs";
|
|
4
|
+
import { i as ReleaseSliceType, r as Release } from "./index-VEayiYkv.cjs";
|
|
5
|
+
import { i as Organization, n as AuditLogSelectionState } from "./types-yQ0ypHMZ.cjs";
|
|
6
6
|
import { n as OnboardingSliceType, t as OnboardingApproach } from "./index-DBUt8xVc.cjs";
|
|
7
7
|
import { l as SelectionState, o as DeploymentsSliceType, s as DeviceDeployment, t as Deployment } from "./index-EPmsL6Lb.cjs";
|
|
8
|
-
import { c as InventoryAttributes, r as DeviceGroup, s as DeviceSliceType, t as Device } from "./index-
|
|
9
|
-
import { t as AppSliceType } from "./index-
|
|
10
|
-
import { t as MonitorSliceType } from "./index-
|
|
11
|
-
import { t as OrganizationSliceType } from "./index-
|
|
12
|
-
import { r as RootState } from "./store-
|
|
8
|
+
import { c as InventoryAttributes, r as DeviceGroup, s as DeviceSliceType, t as Device } from "./index-vXsWdis1.cjs";
|
|
9
|
+
import { t as AppSliceType } from "./index-Dn1SqQYh.cjs";
|
|
10
|
+
import { t as MonitorSliceType } from "./index-BQCnJ5gh.cjs";
|
|
11
|
+
import { t as OrganizationSliceType } from "./index-CSOj22xK.cjs";
|
|
12
|
+
import { r as RootState } from "./store-CGP5pCH8.cjs";
|
|
13
13
|
import { AuditLog } from "@northern.tech/types/types.gen";
|
|
14
14
|
|
|
15
15
|
//#region src/commonSelectors.d.ts
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { a as AvailablePlans } from "./constants-B_7FCJQX.js";
|
|
2
|
-
import { S as Role } from "./constants-
|
|
3
|
-
import { a as UserSettings, n as GlobalSettings, o as UserSliceType, r as User } from "./index-
|
|
4
|
-
import { i as ReleaseSliceType, r as Release } from "./index-
|
|
5
|
-
import { i as Organization, n as AuditLogSelectionState } from "./types-
|
|
2
|
+
import { S as Role } from "./constants-CzjK2gV-.js";
|
|
3
|
+
import { a as UserSettings, n as GlobalSettings, o as UserSliceType, r as User } from "./index-BCErsO5h.js";
|
|
4
|
+
import { i as ReleaseSliceType, r as Release } from "./index-m1c0qk2s.js";
|
|
5
|
+
import { i as Organization, n as AuditLogSelectionState } from "./types-uHmaedGU.js";
|
|
6
6
|
import { n as OnboardingSliceType, t as OnboardingApproach } from "./index-DBUt8xVc.js";
|
|
7
7
|
import { l as SelectionState, o as DeploymentsSliceType, s as DeviceDeployment, t as Deployment } from "./index-Bb4yvvgG.js";
|
|
8
|
-
import { c as InventoryAttributes, r as DeviceGroup, s as DeviceSliceType, t as Device } from "./index-
|
|
9
|
-
import { t as AppSliceType } from "./index-
|
|
10
|
-
import { t as MonitorSliceType } from "./index-
|
|
11
|
-
import { t as OrganizationSliceType } from "./index-
|
|
12
|
-
import { r as RootState } from "./store-
|
|
8
|
+
import { c as InventoryAttributes, r as DeviceGroup, s as DeviceSliceType, t as Device } from "./index-BtGhTFBc.js";
|
|
9
|
+
import { t as AppSliceType } from "./index-CnH51JfB.js";
|
|
10
|
+
import { t as MonitorSliceType } from "./index-C5oQrJGU.js";
|
|
11
|
+
import { t as OrganizationSliceType } from "./index-H9zg_3UV.js";
|
|
12
|
+
import { r as RootState } from "./store-CkgokFlk.js";
|
|
13
13
|
import { AuditLog } from "@northern.tech/types/types.gen";
|
|
14
14
|
|
|
15
15
|
//#region src/commonSelectors.d.ts
|
package/dist/commonSelectors.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ADDONS, PLANS, defaultReports } from "./appSlice/constants.js";
|
|
2
|
-
import {
|
|
2
|
+
import { Dt as ATTRIBUTE_SCOPE_LABELS, H as uiPermissionsById, I as serviceProviderRolesById, N as rolesById, P as rolesByName, Pt as UNGROUPED_GROUP, c as DEVICE_ISSUE_OPTIONS, o as ATTRIBUTE_SCOPES, t as ALL_DEVICES } from "./constants-xpheFFkA.js";
|
|
3
3
|
import { onboardingSteps } from "./onboardingSlice/constants.js";
|
|
4
4
|
import { getFeatures, getSearchedDevices } from "./appSlice/selectors.js";
|
|
5
5
|
import { getDeploymentsById, getDeploymentsSelectionState, getSelectedDeploymentDeviceIds } from "./deploymentsSlice/selectors.js";
|
|
@@ -7,7 +7,7 @@ import { getDeviceById, getDevicesById, getFilteringAttributes, getGroupsById, g
|
|
|
7
7
|
import { getIssueCountsByType } from "./monitorSlice/selectors.js";
|
|
8
8
|
import { getOnboarding } from "./onboardingSlice/selectors.js";
|
|
9
9
|
import { getAuditLogEntry, getIsServiceProvider, getOrganization } from "./organizationSlice/selectors.js";
|
|
10
|
-
import { listItemMapper, mapUserRolesToUiPermissions } from "./utils.js";
|
|
10
|
+
import { getAttributeScopeLabel, listItemMapper, mapUserRolesToUiPermissions, stripOrchestratorManifestPrefix } from "./utils.js";
|
|
11
11
|
import { getReleasesById } from "./releasesSlice/selectors.js";
|
|
12
12
|
import { getCurrentUser, getGlobalSettings, getHas2FA, getRolesById, getRolesList, getSecurityAlertDismissedTimestamp, getUserSettings, getUserSettingsInitialized } from "./usersSlice/selectors.js";
|
|
13
13
|
import { createSelector } from "@reduxjs/toolkit";
|
|
@@ -95,7 +95,7 @@ const getFilterAttributes = createSelector([getGlobalSettings, getFilteringAttri
|
|
|
95
95
|
key: "check_in_time",
|
|
96
96
|
value: "Latest activity",
|
|
97
97
|
scope: ATTRIBUTE_SCOPES.system,
|
|
98
|
-
category:
|
|
98
|
+
category: ATTRIBUTE_SCOPE_LABELS.default,
|
|
99
99
|
priority: 4
|
|
100
100
|
};
|
|
101
101
|
const updateAttribute = {
|
|
@@ -107,13 +107,13 @@ const getFilterAttributes = createSelector([getGlobalSettings, getFilteringAttri
|
|
|
107
107
|
key: "created_ts",
|
|
108
108
|
value: "First request",
|
|
109
109
|
scope: ATTRIBUTE_SCOPES.system,
|
|
110
|
-
category:
|
|
110
|
+
category: ATTRIBUTE_SCOPE_LABELS.default,
|
|
111
111
|
priority: 4
|
|
112
112
|
};
|
|
113
113
|
return attributeDuplicateFilter([
|
|
114
114
|
...previousFilters.map((item) => ({
|
|
115
115
|
...item,
|
|
116
|
-
value: deviceIdAttribute.key === item.key ? deviceIdAttribute.value : item.key,
|
|
116
|
+
value: deviceIdAttribute.key === item.key ? deviceIdAttribute.value : stripOrchestratorManifestPrefix(item.key),
|
|
117
117
|
category: "recently used",
|
|
118
118
|
priority: 0
|
|
119
119
|
})),
|
|
@@ -126,13 +126,19 @@ const getFilterAttributes = createSelector([getGlobalSettings, getFilteringAttri
|
|
|
126
126
|
category: ATTRIBUTE_SCOPES.identity,
|
|
127
127
|
priority: 1
|
|
128
128
|
})),
|
|
129
|
-
...inventoryAttributes.map((item) =>
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
129
|
+
...inventoryAttributes.map((item) => {
|
|
130
|
+
const category = getAttributeScopeLabel({
|
|
131
|
+
key: item,
|
|
132
|
+
scope: ATTRIBUTE_SCOPES.inventory
|
|
133
|
+
});
|
|
134
|
+
return {
|
|
135
|
+
key: item,
|
|
136
|
+
value: stripOrchestratorManifestPrefix(item),
|
|
137
|
+
scope: ATTRIBUTE_SCOPES.inventory,
|
|
138
|
+
category,
|
|
139
|
+
priority: category === ATTRIBUTE_SCOPES.inventory ? 2 : 3
|
|
140
|
+
};
|
|
141
|
+
}),
|
|
136
142
|
...tagAttributes.map((item) => ({
|
|
137
143
|
key: item,
|
|
138
144
|
value: item,
|
|
@@ -147,7 +153,7 @@ const getFilterAttributes = createSelector([getGlobalSettings, getFilteringAttri
|
|
|
147
153
|
key: item,
|
|
148
154
|
value: item,
|
|
149
155
|
scope: ATTRIBUTE_SCOPES.system,
|
|
150
|
-
category:
|
|
156
|
+
category: ATTRIBUTE_SCOPE_LABELS.default,
|
|
151
157
|
priority: 4
|
|
152
158
|
}))
|
|
153
159
|
], "key");
|