@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.
Files changed (168) hide show
  1. package/dist/actions.d.cts +6 -6
  2. package/dist/actions.d.ts +6 -6
  3. package/dist/api/general-api.cjs +1 -1
  4. package/dist/api/general-api.js +1 -1
  5. package/dist/appSlice/index.d.cts +1 -1
  6. package/dist/appSlice/index.d.ts +1 -1
  7. package/dist/appSlice/index.js +1 -1
  8. package/dist/appSlice/mocks.d.cts +1 -1
  9. package/dist/appSlice/mocks.d.ts +1 -1
  10. package/dist/appSlice/selectors.d.cts +7 -7
  11. package/dist/appSlice/selectors.d.ts +7 -7
  12. package/dist/appSlice/thunks.d.cts +2 -2
  13. package/dist/appSlice/thunks.d.ts +2 -2
  14. package/dist/auth.cjs +1 -1
  15. package/dist/auth.d.cts +1 -1
  16. package/dist/auth.d.ts +1 -1
  17. package/dist/auth.js +1 -1
  18. package/dist/commonConstants.cjs +3 -1
  19. package/dist/commonConstants.d.cts +2 -2
  20. package/dist/commonConstants.d.ts +2 -2
  21. package/dist/commonConstants.js +2 -2
  22. package/dist/commonSelectors.cjs +18 -12
  23. package/dist/commonSelectors.cjs.map +1 -1
  24. package/dist/commonSelectors.d.cts +9 -9
  25. package/dist/commonSelectors.d.ts +9 -9
  26. package/dist/commonSelectors.js +19 -13
  27. package/dist/commonSelectors.js.map +1 -1
  28. package/dist/{constants-CNZ5L0A0.cjs → constants-C_SC_VKE.cjs} +18 -1
  29. package/dist/constants-C_SC_VKE.cjs.map +1 -0
  30. package/dist/{constants-OcdoVk6f.d.ts → constants-CzjK2gV-.d.ts} +7 -2
  31. package/dist/{constants-_p6w8uEp.d.cts → constants-DAi2zOZN.d.cts} +7 -2
  32. package/dist/{constants-Cj2kp3Iy.js → constants-xpheFFkA.js} +7 -2
  33. package/dist/constants-xpheFFkA.js.map +1 -0
  34. package/dist/constants.cjs +3 -1
  35. package/dist/constants.d.cts +2 -2
  36. package/dist/constants.d.ts +2 -2
  37. package/dist/constants.js +2 -2
  38. package/dist/deploymentsSlice/constants.cjs +1 -1
  39. package/dist/deploymentsSlice/constants.js +1 -1
  40. package/dist/deploymentsSlice/index.cjs +1 -1
  41. package/dist/deploymentsSlice/index.js +1 -1
  42. package/dist/deploymentsSlice/selectors.cjs +1 -1
  43. package/dist/deploymentsSlice/selectors.d.cts +7 -7
  44. package/dist/deploymentsSlice/selectors.d.ts +7 -7
  45. package/dist/deploymentsSlice/selectors.js +1 -1
  46. package/dist/deploymentsSlice/thunks.d.cts +4 -4
  47. package/dist/deploymentsSlice/thunks.d.ts +4 -4
  48. package/dist/devicesSlice/constants.cjs +1 -1
  49. package/dist/devicesSlice/constants.d.cts +1 -1
  50. package/dist/devicesSlice/constants.d.ts +1 -1
  51. package/dist/devicesSlice/constants.js +1 -1
  52. package/dist/devicesSlice/index.d.cts +1 -1
  53. package/dist/devicesSlice/index.d.ts +1 -1
  54. package/dist/devicesSlice/index.js +1 -1
  55. package/dist/devicesSlice/mocks.js +1 -1
  56. package/dist/devicesSlice/selectors.cjs +1 -1
  57. package/dist/devicesSlice/selectors.d.cts +7 -7
  58. package/dist/devicesSlice/selectors.d.ts +7 -7
  59. package/dist/devicesSlice/selectors.js +1 -1
  60. package/dist/devicesSlice/thunks.d.cts +4 -4
  61. package/dist/devicesSlice/thunks.d.ts +4 -4
  62. package/dist/{index-Cf81vLTi.d.ts → index-BCErsO5h.d.ts} +2 -2
  63. package/dist/{index-5Q-iI4EB.d.cts → index-BQCnJ5gh.d.cts} +2 -2
  64. package/dist/{index-BqJuhvO_.d.ts → index-BtGhTFBc.d.ts} +2 -2
  65. package/dist/{index-ByfjrTdH.d.ts → index-C5oQrJGU.d.ts} +2 -2
  66. package/dist/{index-Bj3OArhr.d.cts → index-CSOj22xK.d.cts} +2 -2
  67. package/dist/{index-CSk4ENmk.d.cts → index-CgPgKMve.d.cts} +2 -2
  68. package/dist/{index-BLvjQfGj.d.ts → index-CnH51JfB.d.ts} +2 -2
  69. package/dist/{index-C8QadAm7.d.cts → index-Dn1SqQYh.d.cts} +2 -2
  70. package/dist/{index-BBsUj1a8.d.ts → index-H9zg_3UV.d.ts} +2 -2
  71. package/dist/{index-Zs9RnVoR.d.cts → index-VEayiYkv.d.cts} +2 -2
  72. package/dist/{index-DLDY7bNT.d.ts → index-m1c0qk2s.d.ts} +2 -2
  73. package/dist/{index-Doc_1P_Y.d.cts → index-vXsWdis1.d.cts} +2 -2
  74. package/dist/locationutils.cjs +29 -37
  75. package/dist/locationutils.cjs.map +1 -1
  76. package/dist/locationutils.d.cts +2 -2
  77. package/dist/locationutils.d.ts +2 -2
  78. package/dist/locationutils.js +29 -37
  79. package/dist/locationutils.js.map +1 -1
  80. package/dist/monitorSlice/constants.d.cts +1 -1
  81. package/dist/monitorSlice/constants.d.ts +1 -1
  82. package/dist/monitorSlice/index.d.cts +1 -1
  83. package/dist/monitorSlice/index.d.ts +1 -1
  84. package/dist/monitorSlice/index.js +1 -1
  85. package/dist/monitorSlice/mocks.d.cts +1 -1
  86. package/dist/monitorSlice/mocks.d.ts +1 -1
  87. package/dist/monitorSlice/mocks.js +1 -1
  88. package/dist/monitorSlice/selectors.d.cts +1 -1
  89. package/dist/monitorSlice/selectors.d.ts +1 -1
  90. package/dist/monitorSlice/thunks.cjs +1 -1
  91. package/dist/monitorSlice/thunks.d.cts +4 -4
  92. package/dist/monitorSlice/thunks.d.ts +4 -4
  93. package/dist/monitorSlice/thunks.js +1 -1
  94. package/dist/onboardingSlice/selectors.d.cts +1 -1
  95. package/dist/onboardingSlice/selectors.d.ts +1 -1
  96. package/dist/onboardingSlice/thunks.d.cts +2 -2
  97. package/dist/onboardingSlice/thunks.d.ts +2 -2
  98. package/dist/organizationSlice/constants.cjs +1 -1
  99. package/dist/organizationSlice/constants.js +1 -1
  100. package/dist/organizationSlice/index.cjs +1 -1
  101. package/dist/organizationSlice/index.d.cts +1 -1
  102. package/dist/organizationSlice/index.d.ts +1 -1
  103. package/dist/organizationSlice/index.js +1 -1
  104. package/dist/organizationSlice/mocks.d.cts +1 -1
  105. package/dist/organizationSlice/mocks.d.ts +1 -1
  106. package/dist/organizationSlice/mocks.js +1 -1
  107. package/dist/organizationSlice/selectors.cjs +1 -1
  108. package/dist/organizationSlice/selectors.d.cts +8 -8
  109. package/dist/organizationSlice/selectors.d.ts +8 -8
  110. package/dist/organizationSlice/selectors.js +1 -1
  111. package/dist/organizationSlice/thunks.d.cts +4 -4
  112. package/dist/organizationSlice/thunks.d.ts +4 -4
  113. package/dist/organizationSlice/types.d.cts +1 -1
  114. package/dist/organizationSlice/types.d.ts +1 -1
  115. package/dist/releasesSlice/index.d.cts +1 -1
  116. package/dist/releasesSlice/index.d.ts +1 -1
  117. package/dist/releasesSlice/index.js +1 -1
  118. package/dist/releasesSlice/mocks.js +1 -1
  119. package/dist/releasesSlice/selectors.d.cts +7 -7
  120. package/dist/releasesSlice/selectors.d.ts +7 -7
  121. package/dist/releasesSlice/thunks.cjs +1 -1
  122. package/dist/releasesSlice/thunks.d.cts +4 -4
  123. package/dist/releasesSlice/thunks.d.ts +4 -4
  124. package/dist/releasesSlice/thunks.js +1 -1
  125. package/dist/sockethook.cjs +8 -6
  126. package/dist/sockethook.cjs.map +1 -1
  127. package/dist/sockethook.js +8 -5
  128. package/dist/sockethook.js.map +1 -1
  129. package/dist/{store-B5-0USDz.d.cts → store-CGP5pCH8.d.cts} +18 -10
  130. package/dist/{store-CmiiLjxd.d.ts → store-CkgokFlk.d.ts} +18 -10
  131. package/dist/store.cjs +1 -1
  132. package/dist/store.d.cts +1 -1
  133. package/dist/store.d.ts +1 -1
  134. package/dist/store.js +1 -1
  135. package/dist/storehooks.cjs +1 -1
  136. package/dist/storehooks.d.cts +2 -2
  137. package/dist/storehooks.d.ts +2 -2
  138. package/dist/storehooks.js +1 -1
  139. package/dist/thunks.cjs +7 -2
  140. package/dist/thunks.cjs.map +1 -1
  141. package/dist/thunks.js +7 -2
  142. package/dist/thunks.js.map +1 -1
  143. package/dist/{types-BjtmX60L.d.ts → types-uHmaedGU.d.ts} +2 -2
  144. package/dist/{types-B33vKVhi.d.cts → types-yQ0ypHMZ.d.cts} +2 -2
  145. package/dist/usersSlice/constants.cjs +1 -1
  146. package/dist/usersSlice/constants.js +1 -1
  147. package/dist/usersSlice/index.cjs +1 -1
  148. package/dist/usersSlice/index.d.cts +1 -1
  149. package/dist/usersSlice/index.d.ts +1 -1
  150. package/dist/usersSlice/index.js +1 -1
  151. package/dist/usersSlice/mocks.d.cts +1 -1
  152. package/dist/usersSlice/mocks.d.ts +1 -1
  153. package/dist/usersSlice/mocks.js +1 -1
  154. package/dist/usersSlice/selectors.cjs +1 -1
  155. package/dist/usersSlice/selectors.d.cts +7 -7
  156. package/dist/usersSlice/selectors.d.ts +7 -7
  157. package/dist/usersSlice/selectors.js +1 -1
  158. package/dist/usersSlice/thunks.d.cts +4 -4
  159. package/dist/usersSlice/thunks.d.ts +4 -4
  160. package/dist/utils.cjs +9 -1
  161. package/dist/utils.cjs.map +1 -1
  162. package/dist/utils.d.cts +2 -2
  163. package/dist/utils.d.ts +2 -2
  164. package/dist/utils.js +8 -2
  165. package/dist/utils.js.map +1 -1
  166. package/package.json +2 -2
  167. package/dist/constants-CNZ5L0A0.cjs.map +0 -1
  168. package/dist/constants-Cj2kp3Iy.js.map +0 -1
@@ -1,12 +1,12 @@
1
- import { lt as AlertChannelKey, mt as DeviceAuthState } from "./constants-_p6w8uEp.cjs";
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-CSk4ENmk.cjs";
4
- import { n as ManifestsList, r as Release, s as SoftwareList } from "./index-Zs9RnVoR.cjs";
5
- import { d as TenantList, i as Organization, l as SSOConfig, n as AuditLogSelectionState, o as ProductConfig, r as Card } from "./types-B33vKVhi.cjs";
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-Doc_1P_Y.cjs";
9
- import { a as Upload, i as SnackbarContent } from "./index-C8QadAm7.cjs";
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-OcdoVk6f.js";
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-Cf81vLTi.js";
4
- import { n as ManifestsList, r as Release, s as SoftwareList } from "./index-DLDY7bNT.js";
5
- import { d as TenantList, i as Organization, l as SSOConfig, n as AuditLogSelectionState, o as ProductConfig, r as Card } from "./types-BjtmX60L.js";
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-BqJuhvO_.js";
9
- import { a as Upload, i as SnackbarContent } from "./index-BLvjQfGj.js";
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: {
@@ -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-CNZ5L0A0.cjs");
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);
@@ -1,4 +1,4 @@
1
- import { jt as TIMEOUTS } from "../constants-Cj2kp3Iy.js";
1
+ import { Nt as TIMEOUTS } from "../constants-xpheFFkA.js";
2
2
  import { cleanUp, getToken } from "../auth.js";
3
3
  import Cookies from "universal-cookie";
4
4
  import axios, { isCancel } from "axios";
@@ -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-C8QadAm7.cjs";
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 };
@@ -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-BLvjQfGj.js";
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 };
@@ -1,4 +1,4 @@
1
- import { f as SORTING_OPTIONS } from "../constants-Cj2kp3Iy.js";
1
+ import { f as SORTING_OPTIONS } from "../constants-xpheFFkA.js";
2
2
  import { createSlice } from "@reduxjs/toolkit";
3
3
  //#region src/appSlice/index.ts
4
4
  const sliceName = "app";
@@ -1,4 +1,4 @@
1
- import { r as SentryConfig } from "../index-C8QadAm7.cjs";
1
+ import { r as SentryConfig } from "../index-Dn1SqQYh.cjs";
2
2
 
3
3
  //#region src/appSlice/mocks.d.ts
4
4
  declare const mockState: {
@@ -1,4 +1,4 @@
1
- import { r as SentryConfig } from "../index-BLvjQfGj.js";
1
+ import { r as SentryConfig } from "../index-CnH51JfB.js";
2
2
 
3
3
  //#region src/appSlice/mocks.d.ts
4
4
  declare const mockState: {
@@ -1,12 +1,12 @@
1
- import { o as UserSliceType } from "../index-CSk4ENmk.cjs";
2
- import { i as ReleaseSliceType } from "../index-Zs9RnVoR.cjs";
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-Doc_1P_Y.cjs";
6
- import { a as Upload, i as SnackbarContent, n as SearchState, r as SentryConfig, t as AppSliceType } from "../index-C8QadAm7.cjs";
7
- import { t as MonitorSliceType } from "../index-5Q-iI4EB.cjs";
8
- import { t as OrganizationSliceType } from "../index-Bj3OArhr.cjs";
9
- import { r as RootState } from "../store-B5-0USDz.cjs";
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-Cf81vLTi.js";
2
- import { i as ReleaseSliceType } from "../index-DLDY7bNT.js";
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-BqJuhvO_.js";
6
- import { a as Upload, i as SnackbarContent, n as SearchState, r as SentryConfig, t as AppSliceType } from "../index-BLvjQfGj.js";
7
- import { t as MonitorSliceType } from "../index-ByfjrTdH.js";
8
- import { t as OrganizationSliceType } from "../index-BBsUj1a8.js";
9
- import { r as RootState } from "../store-CmiiLjxd.js";
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-C8QadAm7.cjs";
2
- import { r as RootState, t as AppDispatch } from "../store-B5-0USDz.cjs";
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-BLvjQfGj.js";
2
- import { r as RootState, t as AppDispatch } from "../store-CmiiLjxd.js";
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-CNZ5L0A0.cjs");
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
@@ -1,4 +1,4 @@
1
- import { i as UserSession } from "./index-CSk4ENmk.cjs";
1
+ import { i as UserSession } from "./index-CgPgKMve.cjs";
2
2
 
3
3
  //#region src/auth.d.ts
4
4
  declare const getSessionInfo: () => UserSession;
package/dist/auth.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { i as UserSession } from "./index-Cf81vLTi.js";
1
+ import { i as UserSession } from "./index-BCErsO5h.js";
2
2
 
3
3
  //#region src/auth.d.ts
4
4
  declare const getSessionInfo: () => UserSession;
package/dist/auth.js CHANGED
@@ -1,4 +1,4 @@
1
- import { j as maxSessionAge, jt as TIMEOUTS } from "./constants-Cj2kp3Iy.js";
1
+ import { Nt as TIMEOUTS, j as maxSessionAge } from "./constants-xpheFFkA.js";
2
2
  import Cookies from "universal-cookie";
3
3
  //#region src/auth.ts
4
4
  const cookies = new Cookies();
@@ -1,9 +1,11 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_constants = require("./constants-CNZ5L0A0.cjs");
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 emptyWebhook, Ct as MAX_PAGE_SIZE, Dt as countries, Et as Webhook, Mt as timeUnits, Ot as credentialTypes, St as IdAttribute, Tt as UNGROUPED_GROUP, bt as EXTERNAL_PROVIDER, jt as productOrder, kt as defaultIdAttribute, vt as DEVICE_LIST_MAXIMUM_LENGTH, wt as TIMEOUTS, xt as FilterOperator, yt as DEVICE_ONLINE_CUTOFF } from "./constants-_p6w8uEp.cjs";
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 emptyWebhook, Ct as MAX_PAGE_SIZE, Dt as countries, Et as Webhook, Mt as timeUnits, Ot as credentialTypes, St as IdAttribute, Tt as UNGROUPED_GROUP, bt as EXTERNAL_PROVIDER, jt as productOrder, kt as defaultIdAttribute, vt as DEVICE_LIST_MAXIMUM_LENGTH, wt as TIMEOUTS, xt as FilterOperator, yt as DEVICE_ONLINE_CUTOFF } from "./constants-OcdoVk6f.js";
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 };
@@ -1,2 +1,2 @@
1
- import { At as MAX_PAGE_SIZE, Dt as DEVICE_LIST_MAXIMUM_LENGTH, Ft as defaultIdAttribute, It as emptyWebhook, Lt as productOrder, Mt as UNGROUPED_GROUP, Nt as countries, Ot as DEVICE_ONLINE_CUTOFF, Pt as credentialTypes, Rt as timeUnits, jt as TIMEOUTS, kt as EXTERNAL_PROVIDER } from "./constants-Cj2kp3Iy.js";
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 };
@@ -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-CNZ5L0A0.cjs");
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: _northern_tech_utils_constants.ATTRIBUTE_SCOPES.system,
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: _northern_tech_utils_constants.ATTRIBUTE_SCOPES.system,
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
- key: item,
135
- value: item,
136
- scope: _northern_tech_utils_constants.ATTRIBUTE_SCOPES.inventory,
137
- category: _northern_tech_utils_constants.ATTRIBUTE_SCOPES.inventory,
138
- priority: 2
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: _northern_tech_utils_constants.ATTRIBUTE_SCOPES.system,
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-_p6w8uEp.cjs";
3
- import { a as UserSettings, n as GlobalSettings, o as UserSliceType, r as User } from "./index-CSk4ENmk.cjs";
4
- import { i as ReleaseSliceType, r as Release } from "./index-Zs9RnVoR.cjs";
5
- import { i as Organization, n as AuditLogSelectionState } from "./types-B33vKVhi.cjs";
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-Doc_1P_Y.cjs";
9
- import { t as AppSliceType } from "./index-C8QadAm7.cjs";
10
- import { t as MonitorSliceType } from "./index-5Q-iI4EB.cjs";
11
- import { t as OrganizationSliceType } from "./index-Bj3OArhr.cjs";
12
- import { r as RootState } from "./store-B5-0USDz.cjs";
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-OcdoVk6f.js";
3
- import { a as UserSettings, n as GlobalSettings, o as UserSliceType, r as User } from "./index-Cf81vLTi.js";
4
- import { i as ReleaseSliceType, r as Release } from "./index-DLDY7bNT.js";
5
- import { i as Organization, n as AuditLogSelectionState } from "./types-BjtmX60L.js";
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-BqJuhvO_.js";
9
- import { t as AppSliceType } from "./index-BLvjQfGj.js";
10
- import { t as MonitorSliceType } from "./index-ByfjrTdH.js";
11
- import { t as OrganizationSliceType } from "./index-BBsUj1a8.js";
12
- import { r as RootState } from "./store-CmiiLjxd.js";
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
@@ -1,5 +1,5 @@
1
1
  import { ADDONS, PLANS, defaultReports } from "./appSlice/constants.js";
2
- import { H as uiPermissionsById, I as serviceProviderRolesById, Mt as UNGROUPED_GROUP, N as rolesById, P as rolesByName, c as DEVICE_ISSUE_OPTIONS, o as ATTRIBUTE_SCOPES, t as ALL_DEVICES } from "./constants-Cj2kp3Iy.js";
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: ATTRIBUTE_SCOPES.system,
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: ATTRIBUTE_SCOPES.system,
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
- key: item,
131
- value: item,
132
- scope: ATTRIBUTE_SCOPES.inventory,
133
- category: ATTRIBUTE_SCOPES.inventory,
134
- priority: 2
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: ATTRIBUTE_SCOPES.system,
156
+ category: ATTRIBUTE_SCOPE_LABELS.default,
151
157
  priority: 4
152
158
  }))
153
159
  ], "key");