@northern.tech/store 0.41.1 → 0.41.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) 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 +13 -13
  25. package/dist/commonSelectors.d.ts +13 -13
  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 +1 -1
  75. package/dist/locationutils.d.cts +2 -2
  76. package/dist/locationutils.d.ts +2 -2
  77. package/dist/locationutils.js +1 -1
  78. package/dist/monitorSlice/constants.d.cts +1 -1
  79. package/dist/monitorSlice/constants.d.ts +1 -1
  80. package/dist/monitorSlice/index.d.cts +1 -1
  81. package/dist/monitorSlice/index.d.ts +1 -1
  82. package/dist/monitorSlice/index.js +1 -1
  83. package/dist/monitorSlice/mocks.d.cts +1 -1
  84. package/dist/monitorSlice/mocks.d.ts +1 -1
  85. package/dist/monitorSlice/mocks.js +1 -1
  86. package/dist/monitorSlice/selectors.d.cts +1 -1
  87. package/dist/monitorSlice/selectors.d.ts +1 -1
  88. package/dist/monitorSlice/thunks.cjs +1 -1
  89. package/dist/monitorSlice/thunks.d.cts +4 -4
  90. package/dist/monitorSlice/thunks.d.ts +4 -4
  91. package/dist/monitorSlice/thunks.js +1 -1
  92. package/dist/onboardingSlice/selectors.d.cts +1 -1
  93. package/dist/onboardingSlice/selectors.d.ts +1 -1
  94. package/dist/onboardingSlice/thunks.d.cts +2 -2
  95. package/dist/onboardingSlice/thunks.d.ts +2 -2
  96. package/dist/organizationSlice/constants.cjs +1 -1
  97. package/dist/organizationSlice/constants.js +1 -1
  98. package/dist/organizationSlice/index.cjs +1 -1
  99. package/dist/organizationSlice/index.d.cts +1 -1
  100. package/dist/organizationSlice/index.d.ts +1 -1
  101. package/dist/organizationSlice/index.js +1 -1
  102. package/dist/organizationSlice/mocks.d.cts +1 -1
  103. package/dist/organizationSlice/mocks.d.ts +1 -1
  104. package/dist/organizationSlice/mocks.js +1 -1
  105. package/dist/organizationSlice/selectors.cjs +1 -1
  106. package/dist/organizationSlice/selectors.d.cts +8 -8
  107. package/dist/organizationSlice/selectors.d.ts +8 -8
  108. package/dist/organizationSlice/selectors.js +1 -1
  109. package/dist/organizationSlice/thunks.d.cts +4 -4
  110. package/dist/organizationSlice/thunks.d.ts +4 -4
  111. package/dist/organizationSlice/types.d.cts +1 -1
  112. package/dist/organizationSlice/types.d.ts +1 -1
  113. package/dist/releasesSlice/index.d.cts +1 -1
  114. package/dist/releasesSlice/index.d.ts +1 -1
  115. package/dist/releasesSlice/index.js +1 -1
  116. package/dist/releasesSlice/mocks.js +1 -1
  117. package/dist/releasesSlice/selectors.d.cts +7 -7
  118. package/dist/releasesSlice/selectors.d.ts +7 -7
  119. package/dist/releasesSlice/thunks.cjs +1 -1
  120. package/dist/releasesSlice/thunks.d.cts +4 -4
  121. package/dist/releasesSlice/thunks.d.ts +4 -4
  122. package/dist/releasesSlice/thunks.js +1 -1
  123. package/dist/sockethook.cjs +8 -6
  124. package/dist/sockethook.cjs.map +1 -1
  125. package/dist/sockethook.js +8 -5
  126. package/dist/sockethook.js.map +1 -1
  127. package/dist/{store-B5-0USDz.d.cts → store-CGP5pCH8.d.cts} +18 -10
  128. package/dist/{store-CmiiLjxd.d.ts → store-CkgokFlk.d.ts} +18 -10
  129. package/dist/store.cjs +1 -1
  130. package/dist/store.d.cts +1 -1
  131. package/dist/store.d.ts +1 -1
  132. package/dist/store.js +1 -1
  133. package/dist/storehooks.cjs +1 -1
  134. package/dist/storehooks.d.cts +2 -2
  135. package/dist/storehooks.d.ts +2 -2
  136. package/dist/storehooks.js +1 -1
  137. package/dist/thunks.cjs +1 -1
  138. package/dist/thunks.js +1 -1
  139. package/dist/{types-BjtmX60L.d.ts → types-uHmaedGU.d.ts} +2 -2
  140. package/dist/{types-B33vKVhi.d.cts → types-yQ0ypHMZ.d.cts} +2 -2
  141. package/dist/usersSlice/constants.cjs +1 -1
  142. package/dist/usersSlice/constants.js +1 -1
  143. package/dist/usersSlice/index.cjs +1 -1
  144. package/dist/usersSlice/index.d.cts +1 -1
  145. package/dist/usersSlice/index.d.ts +1 -1
  146. package/dist/usersSlice/index.js +1 -1
  147. package/dist/usersSlice/mocks.d.cts +1 -1
  148. package/dist/usersSlice/mocks.d.ts +1 -1
  149. package/dist/usersSlice/mocks.js +1 -1
  150. package/dist/usersSlice/selectors.cjs +1 -1
  151. package/dist/usersSlice/selectors.d.cts +7 -7
  152. package/dist/usersSlice/selectors.d.ts +7 -7
  153. package/dist/usersSlice/selectors.js +1 -1
  154. package/dist/usersSlice/thunks.d.cts +4 -4
  155. package/dist/usersSlice/thunks.d.ts +4 -4
  156. package/dist/utils.cjs +9 -1
  157. package/dist/utils.cjs.map +1 -1
  158. package/dist/utils.d.cts +2 -2
  159. package/dist/utils.d.ts +2 -2
  160. package/dist/utils.js +8 -2
  161. package/dist/utils.js.map +1 -1
  162. package/package.json +2 -2
  163. package/dist/constants-CNZ5L0A0.cjs.map +0 -1
  164. package/dist/constants-Cj2kp3Iy.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import { t as OnboardingStep } from "../constants-Db_RBdlV.js";
2
- import { a as UserSettings } from "../index-Cf81vLTi.js";
2
+ import { a as UserSettings } from "../index-BCErsO5h.js";
3
3
  import { n as OnboardingSliceType, t as OnboardingApproach } from "../index-DBUt8xVc.js";
4
- import { r as RootState, t as AppDispatch } from "../store-CmiiLjxd.js";
4
+ import { r as RootState, t as AppDispatch } from "../store-CkgokFlk.js";
5
5
 
6
6
  //#region src/onboardingSlice/thunks.d.ts
7
7
  declare const getOnboardingState: import("@reduxjs/toolkit").AsyncThunk<[{
@@ -1,5 +1,5 @@
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
3
  exports.AUDIT_LOGS_TYPES = require_constants.AUDIT_LOGS_TYPES;
4
4
  exports.JSON_METADATA_FORMAT = require_constants.JSON_METADATA_FORMAT;
5
5
  exports.SP_AUDIT_LOGS_TYPES = require_constants.SP_AUDIT_LOGS_TYPES;
@@ -1,2 +1,2 @@
1
- import { $ as JSON_METADATA_FORMAT, Q as AUDIT_LOGS_TYPES, at as getOidcStartUrl, et as SP_AUDIT_LOGS_TYPES, it as auditlogTypes, nt as TENANT_LIST_DEFAULT, ot as getSamlStartUrl, rt as XML_METADATA_FORMAT, tt as SSO_TYPES } from "../constants-Cj2kp3Iy.js";
1
+ import { $ as JSON_METADATA_FORMAT, Q as AUDIT_LOGS_TYPES, at as getOidcStartUrl, et as SP_AUDIT_LOGS_TYPES, it as auditlogTypes, nt as TENANT_LIST_DEFAULT, ot as getSamlStartUrl, rt as XML_METADATA_FORMAT, tt as SSO_TYPES } from "../constants-xpheFFkA.js";
2
2
  export { AUDIT_LOGS_TYPES, JSON_METADATA_FORMAT, SP_AUDIT_LOGS_TYPES, SSO_TYPES, TENANT_LIST_DEFAULT, XML_METADATA_FORMAT, auditlogTypes, getOidcStartUrl, getSamlStartUrl };
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
2
2
  __esModule: { value: true },
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
- const require_constants = require("../constants-CNZ5L0A0.cjs");
5
+ const require_constants = require("../constants-C_SC_VKE.cjs");
6
6
  let _reduxjs_toolkit = require("@reduxjs/toolkit");
7
7
  let _northern_tech_utils_constants = require("@northern.tech/utils/constants");
8
8
  //#region src/organizationSlice/index.ts
@@ -1,2 +1,2 @@
1
- import { a as organizationSlice, i as initialState, n as _default, o as sliceName, r as actions, t as OrganizationSliceType } from "../index-Bj3OArhr.cjs";
1
+ import { a as organizationSlice, i as initialState, n as _default, o as sliceName, r as actions, t as OrganizationSliceType } from "../index-CSOj22xK.cjs";
2
2
  export { OrganizationSliceType, actions, _default as default, initialState, organizationSlice, sliceName };
@@ -1,2 +1,2 @@
1
- import { a as organizationSlice, i as initialState, n as _default, o as sliceName, r as actions, t as OrganizationSliceType } from "../index-BBsUj1a8.js";
1
+ import { a as organizationSlice, i as initialState, n as _default, o as sliceName, r as actions, t as OrganizationSliceType } from "../index-H9zg_3UV.js";
2
2
  export { OrganizationSliceType, actions, _default as default, initialState, organizationSlice, sliceName };
@@ -1,4 +1,4 @@
1
- import { f as SORTING_OPTIONS, l as DEVICE_LIST_DEFAULTS, nt as TENANT_LIST_DEFAULT } from "../constants-Cj2kp3Iy.js";
1
+ import { f as SORTING_OPTIONS, l as DEVICE_LIST_DEFAULTS, nt as TENANT_LIST_DEFAULT } from "../constants-xpheFFkA.js";
2
2
  import { createSlice } from "@reduxjs/toolkit";
3
3
  //#region src/organizationSlice/index.ts
4
4
  const sliceName = "organization";
@@ -1,5 +1,5 @@
1
1
  import { a as AvailablePlans } from "../constants-B_7FCJQX.cjs";
2
- import { d as TenantList, f as Webhook, l as SSOConfig } from "../types-B33vKVhi.cjs";
2
+ import { d as TenantList, f as Webhook, l as SSOConfig } from "../types-yQ0ypHMZ.cjs";
3
3
 
4
4
  //#region src/organizationSlice/mocks.d.ts
5
5
  declare const basicPlanId: AvailablePlans;
@@ -1,5 +1,5 @@
1
1
  import { a as AvailablePlans } from "../constants-B_7FCJQX.js";
2
- import { d as TenantList, f as Webhook, l as SSOConfig } from "../types-BjtmX60L.js";
2
+ import { d as TenantList, f as Webhook, l as SSOConfig } from "../types-uHmaedGU.js";
3
3
 
4
4
  //#region src/organizationSlice/mocks.d.ts
5
5
  declare const basicPlanId: AvailablePlans;
@@ -1,5 +1,5 @@
1
1
  import { PLANS } from "../appSlice/constants.js";
2
- import { l as DEVICE_LIST_DEFAULTS } from "../constants-Cj2kp3Iy.js";
2
+ import { l as DEVICE_LIST_DEFAULTS } from "../constants-xpheFFkA.js";
3
3
  import { initialState } from "./index.js";
4
4
  //#region src/organizationSlice/mocks.ts
5
5
  const basicPlanId = PLANS.os.id;
@@ -1,5 +1,5 @@
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
3
  let _reduxjs_toolkit = require("@reduxjs/toolkit");
4
4
  //#region src/organizationSlice/selectors.ts
5
5
  const getOrganization = (state) => state.organization.organization;
@@ -1,13 +1,13 @@
1
- import { o as UserSliceType } from "../index-CSk4ENmk.cjs";
2
- import { i as ReleaseSliceType } from "../index-Zs9RnVoR.cjs";
3
- import { d as TenantList, i as Organization, l as SSOConfig, n as AuditLogSelectionState, o as ProductConfig, r as Card, u as Tenant } from "../types-B33vKVhi.cjs";
1
+ import { o as UserSliceType } from "../index-CgPgKMve.cjs";
2
+ import { i as ReleaseSliceType } from "../index-VEayiYkv.cjs";
3
+ import { d as TenantList, i as Organization, l as SSOConfig, n as AuditLogSelectionState, o as ProductConfig, r as Card, u as Tenant } from "../types-yQ0ypHMZ.cjs";
4
4
  import { n as OnboardingSliceType } from "../index-DBUt8xVc.cjs";
5
5
  import { o as DeploymentsSliceType } from "../index-EPmsL6Lb.cjs";
6
- import { s as DeviceSliceType } from "../index-Doc_1P_Y.cjs";
7
- import { t as AppSliceType } from "../index-C8QadAm7.cjs";
8
- import { t as MonitorSliceType } from "../index-5Q-iI4EB.cjs";
9
- import { t as OrganizationSliceType } from "../index-Bj3OArhr.cjs";
10
- import { r as RootState } from "../store-B5-0USDz.cjs";
6
+ import { s as DeviceSliceType } from "../index-vXsWdis1.cjs";
7
+ import { t as AppSliceType } from "../index-Dn1SqQYh.cjs";
8
+ import { t as MonitorSliceType } from "../index-BQCnJ5gh.cjs";
9
+ import { t as OrganizationSliceType } from "../index-CSOj22xK.cjs";
10
+ import { r as RootState } from "../store-CGP5pCH8.cjs";
11
11
 
12
12
  //#region src/organizationSlice/selectors.d.ts
13
13
  declare const getOrganization: (state: RootState) => Partial<Organization>;
@@ -1,13 +1,13 @@
1
- import { o as UserSliceType } from "../index-Cf81vLTi.js";
2
- import { i as ReleaseSliceType } from "../index-DLDY7bNT.js";
3
- import { d as TenantList, i as Organization, l as SSOConfig, n as AuditLogSelectionState, o as ProductConfig, r as Card, u as Tenant } from "../types-BjtmX60L.js";
1
+ import { o as UserSliceType } from "../index-BCErsO5h.js";
2
+ import { i as ReleaseSliceType } from "../index-m1c0qk2s.js";
3
+ import { d as TenantList, i as Organization, l as SSOConfig, n as AuditLogSelectionState, o as ProductConfig, r as Card, u as Tenant } from "../types-uHmaedGU.js";
4
4
  import { n as OnboardingSliceType } from "../index-DBUt8xVc.js";
5
5
  import { o as DeploymentsSliceType } from "../index-Bb4yvvgG.js";
6
- import { s as DeviceSliceType } from "../index-BqJuhvO_.js";
7
- import { t as AppSliceType } from "../index-BLvjQfGj.js";
8
- import { t as MonitorSliceType } from "../index-ByfjrTdH.js";
9
- import { t as OrganizationSliceType } from "../index-BBsUj1a8.js";
10
- import { r as RootState } from "../store-CmiiLjxd.js";
6
+ import { s as DeviceSliceType } from "../index-BtGhTFBc.js";
7
+ import { t as AppSliceType } from "../index-CnH51JfB.js";
8
+ import { t as MonitorSliceType } from "../index-C5oQrJGU.js";
9
+ import { t as OrganizationSliceType } from "../index-H9zg_3UV.js";
10
+ import { r as RootState } from "../store-CkgokFlk.js";
11
11
 
12
12
  //#region src/organizationSlice/selectors.d.ts
13
13
  declare const getOrganization: (state: RootState) => Partial<Organization>;
@@ -1,4 +1,4 @@
1
- import { Lt as productOrder, kt as EXTERNAL_PROVIDER } from "../constants-Cj2kp3Iy.js";
1
+ import { At as EXTERNAL_PROVIDER, zt as productOrder } from "../constants-xpheFFkA.js";
2
2
  import { createSelector } from "@reduxjs/toolkit";
3
3
  //#region src/organizationSlice/selectors.ts
4
4
  const getOrganization = (state) => state.organization.organization;
@@ -1,9 +1,9 @@
1
1
  import { _ as locations, a as AvailablePlans } from "../constants-B_7FCJQX.cjs";
2
- import { T as SortOptions, g as PaginationOptions } from "../constants-_p6w8uEp.cjs";
2
+ import { T as SortOptions, g as PaginationOptions } from "../constants-DAi2zOZN.cjs";
3
3
  import { n as ContentType } from "../constants-OZiiFKiA.cjs";
4
- import { d as TenantList, l as SSOConfig, n as AuditLogSelectionState, o as ProductConfig, r as Card } from "../types-B33vKVhi.cjs";
5
- import { i as SnackbarContent } from "../index-C8QadAm7.cjs";
6
- import { r as RootState, t as AppDispatch } from "../store-B5-0USDz.cjs";
4
+ import { d as TenantList, l as SSOConfig, n as AuditLogSelectionState, o as ProductConfig, r as Card } from "../types-yQ0ypHMZ.cjs";
5
+ import { i as SnackbarContent } from "../index-Dn1SqQYh.cjs";
6
+ import { r as RootState, t as AppDispatch } from "../store-CGP5pCH8.cjs";
7
7
  import { BillingProfile, Integration, NewTenantTypeManagement, PreviewRequest, Product, ProductInfo, Subscription, SupportRequest, UpdateChildTenant } from "@northern.tech/types/MenderTypes";
8
8
 
9
9
  //#region src/organizationSlice/thunks.d.ts
@@ -1,9 +1,9 @@
1
1
  import { _ as locations, a as AvailablePlans } from "../constants-B_7FCJQX.js";
2
- import { T as SortOptions, g as PaginationOptions } from "../constants-OcdoVk6f.js";
2
+ import { T as SortOptions, g as PaginationOptions } from "../constants-CzjK2gV-.js";
3
3
  import { n as ContentType } from "../constants-OZiiFKiA.js";
4
- import { d as TenantList, l as SSOConfig, n as AuditLogSelectionState, o as ProductConfig, r as Card } from "../types-BjtmX60L.js";
5
- import { i as SnackbarContent } from "../index-BLvjQfGj.js";
6
- import { r as RootState, t as AppDispatch } from "../store-CmiiLjxd.js";
4
+ import { d as TenantList, l as SSOConfig, n as AuditLogSelectionState, o as ProductConfig, r as Card } from "../types-uHmaedGU.js";
5
+ import { i as SnackbarContent } from "../index-CnH51JfB.js";
6
+ import { r as RootState, t as AppDispatch } from "../store-CkgokFlk.js";
7
7
  import { BillingProfile, Integration, NewTenantTypeManagement, PreviewRequest, Product, ProductInfo, Subscription, SupportRequest, UpdateChildTenant } from "@northern.tech/types/MenderTypes";
8
8
 
9
9
  //#region src/organizationSlice/thunks.d.ts
@@ -1,2 +1,2 @@
1
- import { a as PricePreview, c as ProductTier, d as TenantList, f as Webhook, i as Organization, l as SSOConfig, n as AuditLogSelectionState, o as ProductConfig, r as Card, s as ProductPlan, t as AuditLog, u as Tenant } from "../types-B33vKVhi.cjs";
1
+ import { a as PricePreview, c as ProductTier, d as TenantList, f as Webhook, i as Organization, l as SSOConfig, n as AuditLogSelectionState, o as ProductConfig, r as Card, s as ProductPlan, t as AuditLog, u as Tenant } from "../types-yQ0ypHMZ.cjs";
2
2
  export { AuditLog, AuditLogSelectionState, Card, Organization, PricePreview, ProductConfig, ProductPlan, ProductTier, SSOConfig, Tenant, TenantList, Webhook };
@@ -1,2 +1,2 @@
1
- import { a as PricePreview, c as ProductTier, d as TenantList, f as Webhook, i as Organization, l as SSOConfig, n as AuditLogSelectionState, o as ProductConfig, r as Card, s as ProductPlan, t as AuditLog, u as Tenant } from "../types-BjtmX60L.js";
1
+ import { a as PricePreview, c as ProductTier, d as TenantList, f as Webhook, i as Organization, l as SSOConfig, n as AuditLogSelectionState, o as ProductConfig, r as Card, s as ProductPlan, t as AuditLog, u as Tenant } from "../types-uHmaedGU.js";
2
2
  export { AuditLog, AuditLogSelectionState, Card, Organization, PricePreview, ProductConfig, ProductPlan, ProductTier, SSOConfig, Tenant, TenantList, Webhook };
@@ -1,2 +1,2 @@
1
- import { a as ReleasesList, c as _default, d as releaseSlice, f as sliceName, i as ReleaseSliceType, l as actions, n as ManifestsList, o as SoftwareKind, r as Release, s as SoftwareList, t as Artifact, u as initialState } from "../index-Zs9RnVoR.cjs";
1
+ import { a as ReleasesList, c as _default, d as releaseSlice, f as sliceName, i as ReleaseSliceType, l as actions, n as ManifestsList, o as SoftwareKind, r as Release, s as SoftwareList, t as Artifact, u as initialState } from "../index-VEayiYkv.cjs";
2
2
  export { Artifact, ManifestsList, Release, ReleaseSliceType, ReleasesList, SoftwareKind, SoftwareList, actions, _default as default, initialState, releaseSlice, sliceName };
@@ -1,2 +1,2 @@
1
- import { a as ReleasesList, c as _default, d as releaseSlice, f as sliceName, i as ReleaseSliceType, l as actions, n as ManifestsList, o as SoftwareKind, r as Release, s as SoftwareList, t as Artifact, u as initialState } from "../index-DLDY7bNT.js";
1
+ import { a as ReleasesList, c as _default, d as releaseSlice, f as sliceName, i as ReleaseSliceType, l as actions, n as ManifestsList, o as SoftwareKind, r as Release, s as SoftwareList, t as Artifact, u as initialState } from "../index-m1c0qk2s.js";
2
2
  export { Artifact, ManifestsList, Release, ReleaseSliceType, ReleasesList, SoftwareKind, SoftwareList, actions, _default as default, initialState, releaseSlice, sliceName };
@@ -1,4 +1,4 @@
1
- import { f as SORTING_OPTIONS, l as DEVICE_LIST_DEFAULTS } from "../constants-Cj2kp3Iy.js";
1
+ import { f as SORTING_OPTIONS, l as DEVICE_LIST_DEFAULTS } from "../constants-xpheFFkA.js";
2
2
  import { createSlice } from "@reduxjs/toolkit";
3
3
  //#region src/releasesSlice/index.ts
4
4
  const sliceName = "releases";
@@ -1,4 +1,4 @@
1
- import { f as SORTING_OPTIONS, l as DEVICE_LIST_DEFAULTS } from "../constants-Cj2kp3Iy.js";
1
+ import { f as SORTING_OPTIONS, l as DEVICE_LIST_DEFAULTS } from "../constants-xpheFFkA.js";
2
2
  import { initialState } from "./index.js";
3
3
  //#region src/releasesSlice/mocks.ts
4
4
  const deviceTypes = { qemu: "qemux86-64" };
@@ -1,12 +1,12 @@
1
- import { o as UserSliceType } from "../index-CSk4ENmk.cjs";
2
- import { a as ReleasesList, i as ReleaseSliceType, n as ManifestsList, r as Release, s as SoftwareList } from "../index-Zs9RnVoR.cjs";
1
+ import { o as UserSliceType } from "../index-CgPgKMve.cjs";
2
+ import { a as ReleasesList, i as ReleaseSliceType, n as ManifestsList, r as Release, s as SoftwareList } 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 { 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 { 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
  import { Manifest, ReleaseV2, Software } from "@northern.tech/types/MenderTypes";
11
11
 
12
12
  //#region src/releasesSlice/selectors.d.ts
@@ -1,12 +1,12 @@
1
- import { o as UserSliceType } from "../index-Cf81vLTi.js";
2
- import { a as ReleasesList, i as ReleaseSliceType, n as ManifestsList, r as Release, s as SoftwareList } from "../index-DLDY7bNT.js";
1
+ import { o as UserSliceType } from "../index-BCErsO5h.js";
2
+ import { a as ReleasesList, i as ReleaseSliceType, n as ManifestsList, r as Release, s as SoftwareList } 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 { 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 { 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
  import { Manifest, ReleaseV2, Software } from "@northern.tech/types/MenderTypes";
11
11
 
12
12
  //#region src/releasesSlice/selectors.d.ts
@@ -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
  const require_releasesSlice_constants = require("./constants.cjs");
5
5
  const require_releasesSlice_index = require("./index.cjs");
6
6
  const require_actions = require("../actions.cjs");
@@ -1,7 +1,7 @@
1
- import { T as SortOptions } from "../constants-_p6w8uEp.cjs";
2
- import { a as ReleasesList, n as ManifestsList, r as Release, s as SoftwareList } from "../index-Zs9RnVoR.cjs";
3
- import { i as SnackbarContent } from "../index-C8QadAm7.cjs";
4
- import { r as RootState, t as AppDispatch } from "../store-B5-0USDz.cjs";
1
+ import { T as SortOptions } from "../constants-DAi2zOZN.cjs";
2
+ import { a as ReleasesList, n as ManifestsList, r as Release, s as SoftwareList } from "../index-VEayiYkv.cjs";
3
+ import { i as SnackbarContent } from "../index-Dn1SqQYh.cjs";
4
+ import { r as RootState, t as AppDispatch } from "../store-CGP5pCH8.cjs";
5
5
  import { ArtifactUpdateV1, DeltaJobsListItem, Manifest, ManifestUpdate, ReleaseUpdate, Software, Tags } from "@northern.tech/types/MenderTypes";
6
6
 
7
7
  //#region src/releasesSlice/thunks.d.ts
@@ -1,7 +1,7 @@
1
- import { T as SortOptions } from "../constants-OcdoVk6f.js";
2
- import { a as ReleasesList, n as ManifestsList, r as Release, s as SoftwareList } from "../index-DLDY7bNT.js";
3
- import { i as SnackbarContent } from "../index-BLvjQfGj.js";
4
- import { r as RootState, t as AppDispatch } from "../store-CmiiLjxd.js";
1
+ import { T as SortOptions } from "../constants-CzjK2gV-.js";
2
+ import { a as ReleasesList, n as ManifestsList, r as Release, s as SoftwareList } from "../index-m1c0qk2s.js";
3
+ import { i as SnackbarContent } from "../index-CnH51JfB.js";
4
+ import { r as RootState, t as AppDispatch } from "../store-CkgokFlk.js";
5
5
  import { ArtifactUpdateV1, DeltaJobsListItem, Manifest, ManifestUpdate, ReleaseUpdate, Software, Tags } from "@northern.tech/types/MenderTypes";
6
6
 
7
7
  //#region src/releasesSlice/thunks.d.ts
@@ -1,4 +1,4 @@
1
- import { E as headerNames, O as inventoryApiUrlV2, b as deploymentsApiUrlV2, f as SORTING_OPTIONS, ft as emptyFilter, jt as TIMEOUTS, l as DEVICE_LIST_DEFAULTS, v as deploymentsApiUrl, y as deploymentsApiUrlV1alpha1 } from "../constants-Cj2kp3Iy.js";
1
+ import { E as headerNames, Nt as TIMEOUTS, O as inventoryApiUrlV2, b as deploymentsApiUrlV2, f as SORTING_OPTIONS, ft as emptyFilter, l as DEVICE_LIST_DEFAULTS, v as deploymentsApiUrl, y as deploymentsApiUrlV1alpha1 } from "../constants-xpheFFkA.js";
2
2
  import { ARTIFACT_GENERATION_TYPE } from "./constants.js";
3
3
  import { actions, sliceName } from "./index.js";
4
4
  import actions_default from "../actions.js";
@@ -1,16 +1,18 @@
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 _northern_tech_utils_helpers = require("@northern.tech/utils/helpers");
5
5
  let universal_cookie = require("universal-cookie");
6
6
  universal_cookie = require_rolldown_runtime.__toESM(universal_cookie, 1);
7
7
  let react = require("react");
8
- let msgpack5 = require("msgpack5");
9
- msgpack5 = require_rolldown_runtime.__toESM(msgpack5, 1);
8
+ let msgpackr = require("msgpackr");
10
9
  let _northern_tech_utils_constants = require("@northern.tech/utils/constants");
11
10
  //#region src/sockethook.ts
12
11
  const cookies = new universal_cookie.default();
13
- const MessagePack = (0, msgpack5.default)();
12
+ const MessagePack = new msgpackr.Packr({
13
+ skipValues: [void 0],
14
+ useRecords: false
15
+ });
14
16
  const useSession = ({ onClose, onHealthCheckFailed, onMessageReceived, onNotify, onOpen, token }) => {
15
17
  const [sessionId, setSessionId] = (0, react.useState)();
16
18
  const healthcheckTimeout = (0, react.useRef)(void 0);
@@ -23,7 +25,7 @@ const useSession = ({ onClose, onHealthCheckFailed, onMessageReceived, onNotify,
23
25
  sid: socketRef.current.sessionId,
24
26
  props
25
27
  };
26
- const encodedData = MessagePack.encode({
28
+ const encodedData = MessagePack.pack({
27
29
  hdr: proto_header,
28
30
  body
29
31
  });
@@ -43,7 +45,7 @@ const useSession = ({ onClose, onHealthCheckFailed, onMessageReceived, onNotify,
43
45
  close();
44
46
  }, [close, onHealthCheckFailed]);
45
47
  const onSocketMessage = (0, react.useCallback)((event) => (0, _northern_tech_utils_helpers.blobToString)(event.data).then((data) => {
46
- const { hdr: { props = {}, proto, sid, typ }, body } = MessagePack.decode(data);
48
+ const { hdr: { props = {}, proto, sid, typ }, body } = MessagePack.unpack(new Uint8Array(data));
47
49
  if (proto !== require_constants.DEVICE_MESSAGE_PROTOCOLS.Shell) return;
48
50
  switch (typ) {
49
51
  case require_constants.DEVICE_MESSAGE_TYPES.New: if (props.status == WebSocket.CLOSING) {
@@ -1 +1 @@
1
- {"version":3,"file":"sockethook.cjs","names":["Cookies","MessageProtocols","MessageTypes","TIMEOUTS","apiUrl"],"sources":["../src/sockethook.ts"],"sourcesContent":["// Copyright 2022 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { blobToString, byteArrayToString } from '@northern.tech/utils/helpers';\nimport msgpack5 from 'msgpack5';\nimport Cookies from 'universal-cookie';\n\nimport { DEVICE_MESSAGE_PROTOCOLS as MessageProtocols, DEVICE_MESSAGE_TYPES as MessageTypes, TIMEOUTS, apiUrl } from './constants';\n\nconst cookies = new Cookies();\n\nconst MessagePack = msgpack5();\n\ntype UseSessionProps = {\n onClose: (event: CloseEvent) => void;\n onHealthCheckFailed: () => void;\n onMessageReceived: (body: Uint8Array) => void;\n onNotify: (message: string) => void;\n onOpen: (isOpen: boolean) => void;\n token: string;\n};\n\ntype MessageProps = {\n body?: Uint8Array;\n props: Record<string, string | number>;\n typ: string;\n};\n\ntype SessionWebSocket = WebSocket & { sessionId?: string };\n\ntype UseSessionReturn = [\n connect: (deviceId: string) => void,\n sendMessage: (message: MessageProps) => void,\n close: () => void,\n readyState: number,\n sessionId: string | undefined\n];\n\nexport const useSession = ({ onClose, onHealthCheckFailed, onMessageReceived, onNotify, onOpen, token }: UseSessionProps): UseSessionReturn => {\n const [sessionId, setSessionId] = useState<string | undefined>();\n const healthcheckTimeout = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n const socketRef = useRef<SessionWebSocket | undefined>(undefined);\n const sendMessage = useCallback(({ typ, body, props }: MessageProps): void => {\n if (!socketRef.current) {\n return;\n }\n const proto_header = { proto: MessageProtocols.Shell, typ, sid: socketRef.current.sessionId, props };\n const encodedData = MessagePack.encode({ hdr: proto_header, body });\n socketRef.current.send(encodedData);\n }, []);\n\n const close = useCallback((): void => {\n if (!socketRef.current || socketRef.current?.readyState !== WebSocket.OPEN) {\n return;\n }\n sendMessage({ typ: MessageTypes.Stop, props: {} });\n socketRef.current.close();\n setSessionId(undefined);\n }, [sendMessage]);\n\n const healthcheckFailed = useCallback((): void => {\n onHealthCheckFailed();\n close();\n }, [close, onHealthCheckFailed]);\n\n const onSocketMessage = useCallback(\n (event: MessageEvent): Promise<void> =>\n blobToString(event.data).then((data: unknown) => {\n const {\n hdr: { props = {} as Record<string, string | number>, proto, sid, typ },\n body\n } = MessagePack.decode(data as Buffer) as {\n body: Uint8Array;\n hdr: { props: Record<string, string | number>; proto: number; sid: string; typ: string };\n };\n if (proto !== MessageProtocols.Shell) {\n return;\n }\n switch (typ) {\n case MessageTypes.New: {\n if (props.status == WebSocket.CLOSING) {\n onNotify(`Error: ${byteArrayToString(body as unknown as Buffer)}`);\n setSessionId(undefined);\n return close();\n } else {\n clearTimeout(healthcheckTimeout.current);\n healthcheckTimeout.current = setTimeout(healthcheckFailed, 65 * TIMEOUTS.oneSecond);\n if (socketRef.current) {\n socketRef.current.sessionId = sid;\n }\n return setSessionId(sid);\n }\n }\n case MessageTypes.Shell:\n return onMessageReceived(body);\n case MessageTypes.Stop:\n return close();\n case MessageTypes.Ping: {\n if (healthcheckTimeout.current) {\n clearTimeout(healthcheckTimeout.current);\n }\n sendMessage({ typ: MessageTypes.Pong, props: {} });\n const timeout = parseInt(props.timeout as string);\n if (timeout > 0) {\n healthcheckTimeout.current = setTimeout(healthcheckFailed, timeout * TIMEOUTS.oneSecond);\n }\n return;\n }\n default:\n break;\n }\n }),\n [close, healthcheckFailed, onMessageReceived, onNotify, sendMessage]\n );\n\n const onSocketError = useCallback(\n (error: Event): void => {\n onNotify(`WebSocket error: ${(error as ErrorEvent).message || 'Unknown error'}`);\n close();\n clearTimeout(healthcheckTimeout.current);\n },\n [close, onNotify]\n );\n\n const onSocketOpen = useCallback((): void => {\n sendMessage({ typ: MessageTypes.New, props: {} });\n onOpen(true);\n }, [onOpen, sendMessage]);\n\n const onSocketClose = useCallback(\n (e: CloseEvent): void => {\n console.log('closing');\n onClose(e);\n close();\n },\n [close, onClose]\n );\n\n const connect = useCallback(\n (deviceId: string): void => {\n const uri = `wss://${window.location.host}${apiUrl.v1}/deviceconnect/devices/${deviceId}/connect`;\n setSessionId(undefined);\n cookies.set('JWT', token, { path: '/', secure: true, sameSite: 'strict', maxAge: 5 });\n try {\n socketRef.current = new WebSocket(uri);\n } catch (error) {\n console.log(error);\n }\n },\n [token]\n );\n\n useEffect(() => {\n const currentSocket = socketRef.current;\n if (!currentSocket) {\n return;\n }\n\n currentSocket.addEventListener('close', onSocketClose);\n currentSocket.addEventListener('error', onSocketError);\n currentSocket.addEventListener('message', onSocketMessage);\n currentSocket.addEventListener('open', onSocketOpen);\n\n return () => {\n currentSocket.removeEventListener('close', onSocketClose);\n currentSocket.removeEventListener('error', onSocketError);\n currentSocket.removeEventListener('message', onSocketMessage);\n currentSocket.removeEventListener('open', onSocketOpen);\n };\n // eslint-disable-next-line react-hooks/refs\n }, [onSocketClose, onSocketError, onSocketMessage, onSocketOpen, socketRef.current?.readyState]);\n\n // eslint-disable-next-line react-hooks/refs\n return [connect, sendMessage, close, socketRef.current?.readyState ?? WebSocket.CLOSED, sessionId];\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"sockethook.cjs","names":["Cookies","Packr","MessageProtocols","MessageTypes","TIMEOUTS","apiUrl"],"sources":["../src/sockethook.ts"],"sourcesContent":["// Copyright 2022 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { blobToString, byteArrayToString } from '@northern.tech/utils/helpers';\nimport { Packr } from 'msgpackr';\nimport Cookies from 'universal-cookie';\n\nimport { DEVICE_MESSAGE_PROTOCOLS as MessageProtocols, DEVICE_MESSAGE_TYPES as MessageTypes, TIMEOUTS, apiUrl } from './constants';\n\nconst cookies = new Cookies();\n\n// plain maps + omitted undefined fields keep the wire format compatible with the deviceconnect backend\nconst MessagePack = new Packr({ skipValues: [undefined], useRecords: false });\n\ntype UseSessionProps = {\n onClose: (event: CloseEvent) => void;\n onHealthCheckFailed: () => void;\n onMessageReceived: (body: Uint8Array) => void;\n onNotify: (message: string) => void;\n onOpen: (isOpen: boolean) => void;\n token: string;\n};\n\ntype MessageProps = {\n body?: Uint8Array;\n props: Record<string, string | number>;\n typ: string;\n};\n\ntype SessionWebSocket = WebSocket & { sessionId?: string };\n\ntype UseSessionReturn = [\n connect: (deviceId: string) => void,\n sendMessage: (message: MessageProps) => void,\n close: () => void,\n readyState: number,\n sessionId: string | undefined\n];\n\nexport const useSession = ({ onClose, onHealthCheckFailed, onMessageReceived, onNotify, onOpen, token }: UseSessionProps): UseSessionReturn => {\n const [sessionId, setSessionId] = useState<string | undefined>();\n const healthcheckTimeout = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n const socketRef = useRef<SessionWebSocket | undefined>(undefined);\n const sendMessage = useCallback(({ typ, body, props }: MessageProps): void => {\n if (!socketRef.current) {\n return;\n }\n const proto_header = { proto: MessageProtocols.Shell, typ, sid: socketRef.current.sessionId, props };\n const encodedData = MessagePack.pack({ hdr: proto_header, body });\n socketRef.current.send(encodedData);\n }, []);\n\n const close = useCallback((): void => {\n if (!socketRef.current || socketRef.current?.readyState !== WebSocket.OPEN) {\n return;\n }\n sendMessage({ typ: MessageTypes.Stop, props: {} });\n socketRef.current.close();\n setSessionId(undefined);\n }, [sendMessage]);\n\n const healthcheckFailed = useCallback((): void => {\n onHealthCheckFailed();\n close();\n }, [close, onHealthCheckFailed]);\n\n const onSocketMessage = useCallback(\n (event: MessageEvent): Promise<void> =>\n blobToString(event.data).then((data: unknown) => {\n const {\n hdr: { props = {} as Record<string, string | number>, proto, sid, typ },\n body\n } = MessagePack.unpack(new Uint8Array(data as ArrayBuffer)) as {\n body: Uint8Array;\n hdr: { props: Record<string, string | number>; proto: number; sid: string; typ: string };\n };\n if (proto !== MessageProtocols.Shell) {\n return;\n }\n switch (typ) {\n case MessageTypes.New: {\n if (props.status == WebSocket.CLOSING) {\n onNotify(`Error: ${byteArrayToString(body as unknown as Buffer)}`);\n setSessionId(undefined);\n return close();\n } else {\n clearTimeout(healthcheckTimeout.current);\n healthcheckTimeout.current = setTimeout(healthcheckFailed, 65 * TIMEOUTS.oneSecond);\n if (socketRef.current) {\n socketRef.current.sessionId = sid;\n }\n return setSessionId(sid);\n }\n }\n case MessageTypes.Shell:\n return onMessageReceived(body);\n case MessageTypes.Stop:\n return close();\n case MessageTypes.Ping: {\n if (healthcheckTimeout.current) {\n clearTimeout(healthcheckTimeout.current);\n }\n sendMessage({ typ: MessageTypes.Pong, props: {} });\n const timeout = parseInt(props.timeout as string);\n if (timeout > 0) {\n healthcheckTimeout.current = setTimeout(healthcheckFailed, timeout * TIMEOUTS.oneSecond);\n }\n return;\n }\n default:\n break;\n }\n }),\n [close, healthcheckFailed, onMessageReceived, onNotify, sendMessage]\n );\n\n const onSocketError = useCallback(\n (error: Event): void => {\n onNotify(`WebSocket error: ${(error as ErrorEvent).message || 'Unknown error'}`);\n close();\n clearTimeout(healthcheckTimeout.current);\n },\n [close, onNotify]\n );\n\n const onSocketOpen = useCallback((): void => {\n sendMessage({ typ: MessageTypes.New, props: {} });\n onOpen(true);\n }, [onOpen, sendMessage]);\n\n const onSocketClose = useCallback(\n (e: CloseEvent): void => {\n console.log('closing');\n onClose(e);\n close();\n },\n [close, onClose]\n );\n\n const connect = useCallback(\n (deviceId: string): void => {\n const uri = `wss://${window.location.host}${apiUrl.v1}/deviceconnect/devices/${deviceId}/connect`;\n setSessionId(undefined);\n cookies.set('JWT', token, { path: '/', secure: true, sameSite: 'strict', maxAge: 5 });\n try {\n socketRef.current = new WebSocket(uri);\n } catch (error) {\n console.log(error);\n }\n },\n [token]\n );\n\n useEffect(() => {\n const currentSocket = socketRef.current;\n if (!currentSocket) {\n return;\n }\n\n currentSocket.addEventListener('close', onSocketClose);\n currentSocket.addEventListener('error', onSocketError);\n currentSocket.addEventListener('message', onSocketMessage);\n currentSocket.addEventListener('open', onSocketOpen);\n\n return () => {\n currentSocket.removeEventListener('close', onSocketClose);\n currentSocket.removeEventListener('error', onSocketError);\n currentSocket.removeEventListener('message', onSocketMessage);\n currentSocket.removeEventListener('open', onSocketOpen);\n };\n // eslint-disable-next-line react-hooks/refs\n }, [onSocketClose, onSocketError, onSocketMessage, onSocketOpen, socketRef.current?.readyState]);\n\n // eslint-disable-next-line react-hooks/refs\n return [connect, sendMessage, close, socketRef.current?.readyState ?? WebSocket.CLOSED, sessionId];\n};\n"],"mappings":"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"}
@@ -1,11 +1,14 @@
1
- import { h as apiUrl, jt as TIMEOUTS, lt as DEVICE_MESSAGE_PROTOCOLS, ut as DEVICE_MESSAGE_TYPES } from "./constants-Cj2kp3Iy.js";
1
+ import { Nt as TIMEOUTS, h as apiUrl, lt as DEVICE_MESSAGE_PROTOCOLS, ut as DEVICE_MESSAGE_TYPES } from "./constants-xpheFFkA.js";
2
2
  import { blobToString, byteArrayToString } from "@northern.tech/utils/helpers";
3
3
  import Cookies from "universal-cookie";
4
4
  import { useCallback, useEffect, useRef, useState } from "react";
5
- import msgpack5 from "msgpack5";
5
+ import { Packr } from "msgpackr";
6
6
  //#region src/sockethook.ts
7
7
  const cookies = new Cookies();
8
- const MessagePack = msgpack5();
8
+ const MessagePack = new Packr({
9
+ skipValues: [void 0],
10
+ useRecords: false
11
+ });
9
12
  const useSession = ({ onClose, onHealthCheckFailed, onMessageReceived, onNotify, onOpen, token }) => {
10
13
  const [sessionId, setSessionId] = useState();
11
14
  const healthcheckTimeout = useRef(void 0);
@@ -18,7 +21,7 @@ const useSession = ({ onClose, onHealthCheckFailed, onMessageReceived, onNotify,
18
21
  sid: socketRef.current.sessionId,
19
22
  props
20
23
  };
21
- const encodedData = MessagePack.encode({
24
+ const encodedData = MessagePack.pack({
22
25
  hdr: proto_header,
23
26
  body
24
27
  });
@@ -38,7 +41,7 @@ const useSession = ({ onClose, onHealthCheckFailed, onMessageReceived, onNotify,
38
41
  close();
39
42
  }, [close, onHealthCheckFailed]);
40
43
  const onSocketMessage = useCallback((event) => blobToString(event.data).then((data) => {
41
- const { hdr: { props = {}, proto, sid, typ }, body } = MessagePack.decode(data);
44
+ const { hdr: { props = {}, proto, sid, typ }, body } = MessagePack.unpack(new Uint8Array(data));
42
45
  if (proto !== DEVICE_MESSAGE_PROTOCOLS.Shell) return;
43
46
  switch (typ) {
44
47
  case DEVICE_MESSAGE_TYPES.New: if (props.status == WebSocket.CLOSING) {
@@ -1 +1 @@
1
- {"version":3,"file":"sockethook.js","names":["MessageProtocols","MessageTypes"],"sources":["../src/sockethook.ts"],"sourcesContent":["// Copyright 2022 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { blobToString, byteArrayToString } from '@northern.tech/utils/helpers';\nimport msgpack5 from 'msgpack5';\nimport Cookies from 'universal-cookie';\n\nimport { DEVICE_MESSAGE_PROTOCOLS as MessageProtocols, DEVICE_MESSAGE_TYPES as MessageTypes, TIMEOUTS, apiUrl } from './constants';\n\nconst cookies = new Cookies();\n\nconst MessagePack = msgpack5();\n\ntype UseSessionProps = {\n onClose: (event: CloseEvent) => void;\n onHealthCheckFailed: () => void;\n onMessageReceived: (body: Uint8Array) => void;\n onNotify: (message: string) => void;\n onOpen: (isOpen: boolean) => void;\n token: string;\n};\n\ntype MessageProps = {\n body?: Uint8Array;\n props: Record<string, string | number>;\n typ: string;\n};\n\ntype SessionWebSocket = WebSocket & { sessionId?: string };\n\ntype UseSessionReturn = [\n connect: (deviceId: string) => void,\n sendMessage: (message: MessageProps) => void,\n close: () => void,\n readyState: number,\n sessionId: string | undefined\n];\n\nexport const useSession = ({ onClose, onHealthCheckFailed, onMessageReceived, onNotify, onOpen, token }: UseSessionProps): UseSessionReturn => {\n const [sessionId, setSessionId] = useState<string | undefined>();\n const healthcheckTimeout = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n const socketRef = useRef<SessionWebSocket | undefined>(undefined);\n const sendMessage = useCallback(({ typ, body, props }: MessageProps): void => {\n if (!socketRef.current) {\n return;\n }\n const proto_header = { proto: MessageProtocols.Shell, typ, sid: socketRef.current.sessionId, props };\n const encodedData = MessagePack.encode({ hdr: proto_header, body });\n socketRef.current.send(encodedData);\n }, []);\n\n const close = useCallback((): void => {\n if (!socketRef.current || socketRef.current?.readyState !== WebSocket.OPEN) {\n return;\n }\n sendMessage({ typ: MessageTypes.Stop, props: {} });\n socketRef.current.close();\n setSessionId(undefined);\n }, [sendMessage]);\n\n const healthcheckFailed = useCallback((): void => {\n onHealthCheckFailed();\n close();\n }, [close, onHealthCheckFailed]);\n\n const onSocketMessage = useCallback(\n (event: MessageEvent): Promise<void> =>\n blobToString(event.data).then((data: unknown) => {\n const {\n hdr: { props = {} as Record<string, string | number>, proto, sid, typ },\n body\n } = MessagePack.decode(data as Buffer) as {\n body: Uint8Array;\n hdr: { props: Record<string, string | number>; proto: number; sid: string; typ: string };\n };\n if (proto !== MessageProtocols.Shell) {\n return;\n }\n switch (typ) {\n case MessageTypes.New: {\n if (props.status == WebSocket.CLOSING) {\n onNotify(`Error: ${byteArrayToString(body as unknown as Buffer)}`);\n setSessionId(undefined);\n return close();\n } else {\n clearTimeout(healthcheckTimeout.current);\n healthcheckTimeout.current = setTimeout(healthcheckFailed, 65 * TIMEOUTS.oneSecond);\n if (socketRef.current) {\n socketRef.current.sessionId = sid;\n }\n return setSessionId(sid);\n }\n }\n case MessageTypes.Shell:\n return onMessageReceived(body);\n case MessageTypes.Stop:\n return close();\n case MessageTypes.Ping: {\n if (healthcheckTimeout.current) {\n clearTimeout(healthcheckTimeout.current);\n }\n sendMessage({ typ: MessageTypes.Pong, props: {} });\n const timeout = parseInt(props.timeout as string);\n if (timeout > 0) {\n healthcheckTimeout.current = setTimeout(healthcheckFailed, timeout * TIMEOUTS.oneSecond);\n }\n return;\n }\n default:\n break;\n }\n }),\n [close, healthcheckFailed, onMessageReceived, onNotify, sendMessage]\n );\n\n const onSocketError = useCallback(\n (error: Event): void => {\n onNotify(`WebSocket error: ${(error as ErrorEvent).message || 'Unknown error'}`);\n close();\n clearTimeout(healthcheckTimeout.current);\n },\n [close, onNotify]\n );\n\n const onSocketOpen = useCallback((): void => {\n sendMessage({ typ: MessageTypes.New, props: {} });\n onOpen(true);\n }, [onOpen, sendMessage]);\n\n const onSocketClose = useCallback(\n (e: CloseEvent): void => {\n console.log('closing');\n onClose(e);\n close();\n },\n [close, onClose]\n );\n\n const connect = useCallback(\n (deviceId: string): void => {\n const uri = `wss://${window.location.host}${apiUrl.v1}/deviceconnect/devices/${deviceId}/connect`;\n setSessionId(undefined);\n cookies.set('JWT', token, { path: '/', secure: true, sameSite: 'strict', maxAge: 5 });\n try {\n socketRef.current = new WebSocket(uri);\n } catch (error) {\n console.log(error);\n }\n },\n [token]\n );\n\n useEffect(() => {\n const currentSocket = socketRef.current;\n if (!currentSocket) {\n return;\n }\n\n currentSocket.addEventListener('close', onSocketClose);\n currentSocket.addEventListener('error', onSocketError);\n currentSocket.addEventListener('message', onSocketMessage);\n currentSocket.addEventListener('open', onSocketOpen);\n\n return () => {\n currentSocket.removeEventListener('close', onSocketClose);\n currentSocket.removeEventListener('error', onSocketError);\n currentSocket.removeEventListener('message', onSocketMessage);\n currentSocket.removeEventListener('open', onSocketOpen);\n };\n // eslint-disable-next-line react-hooks/refs\n }, [onSocketClose, onSocketError, onSocketMessage, onSocketOpen, socketRef.current?.readyState]);\n\n // eslint-disable-next-line react-hooks/refs\n return [connect, sendMessage, close, socketRef.current?.readyState ?? WebSocket.CLOSED, sessionId];\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"sockethook.js","names":["MessageProtocols","MessageTypes"],"sources":["../src/sockethook.ts"],"sourcesContent":["// Copyright 2022 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { blobToString, byteArrayToString } from '@northern.tech/utils/helpers';\nimport { Packr } from 'msgpackr';\nimport Cookies from 'universal-cookie';\n\nimport { DEVICE_MESSAGE_PROTOCOLS as MessageProtocols, DEVICE_MESSAGE_TYPES as MessageTypes, TIMEOUTS, apiUrl } from './constants';\n\nconst cookies = new Cookies();\n\n// plain maps + omitted undefined fields keep the wire format compatible with the deviceconnect backend\nconst MessagePack = new Packr({ skipValues: [undefined], useRecords: false });\n\ntype UseSessionProps = {\n onClose: (event: CloseEvent) => void;\n onHealthCheckFailed: () => void;\n onMessageReceived: (body: Uint8Array) => void;\n onNotify: (message: string) => void;\n onOpen: (isOpen: boolean) => void;\n token: string;\n};\n\ntype MessageProps = {\n body?: Uint8Array;\n props: Record<string, string | number>;\n typ: string;\n};\n\ntype SessionWebSocket = WebSocket & { sessionId?: string };\n\ntype UseSessionReturn = [\n connect: (deviceId: string) => void,\n sendMessage: (message: MessageProps) => void,\n close: () => void,\n readyState: number,\n sessionId: string | undefined\n];\n\nexport const useSession = ({ onClose, onHealthCheckFailed, onMessageReceived, onNotify, onOpen, token }: UseSessionProps): UseSessionReturn => {\n const [sessionId, setSessionId] = useState<string | undefined>();\n const healthcheckTimeout = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n const socketRef = useRef<SessionWebSocket | undefined>(undefined);\n const sendMessage = useCallback(({ typ, body, props }: MessageProps): void => {\n if (!socketRef.current) {\n return;\n }\n const proto_header = { proto: MessageProtocols.Shell, typ, sid: socketRef.current.sessionId, props };\n const encodedData = MessagePack.pack({ hdr: proto_header, body });\n socketRef.current.send(encodedData);\n }, []);\n\n const close = useCallback((): void => {\n if (!socketRef.current || socketRef.current?.readyState !== WebSocket.OPEN) {\n return;\n }\n sendMessage({ typ: MessageTypes.Stop, props: {} });\n socketRef.current.close();\n setSessionId(undefined);\n }, [sendMessage]);\n\n const healthcheckFailed = useCallback((): void => {\n onHealthCheckFailed();\n close();\n }, [close, onHealthCheckFailed]);\n\n const onSocketMessage = useCallback(\n (event: MessageEvent): Promise<void> =>\n blobToString(event.data).then((data: unknown) => {\n const {\n hdr: { props = {} as Record<string, string | number>, proto, sid, typ },\n body\n } = MessagePack.unpack(new Uint8Array(data as ArrayBuffer)) as {\n body: Uint8Array;\n hdr: { props: Record<string, string | number>; proto: number; sid: string; typ: string };\n };\n if (proto !== MessageProtocols.Shell) {\n return;\n }\n switch (typ) {\n case MessageTypes.New: {\n if (props.status == WebSocket.CLOSING) {\n onNotify(`Error: ${byteArrayToString(body as unknown as Buffer)}`);\n setSessionId(undefined);\n return close();\n } else {\n clearTimeout(healthcheckTimeout.current);\n healthcheckTimeout.current = setTimeout(healthcheckFailed, 65 * TIMEOUTS.oneSecond);\n if (socketRef.current) {\n socketRef.current.sessionId = sid;\n }\n return setSessionId(sid);\n }\n }\n case MessageTypes.Shell:\n return onMessageReceived(body);\n case MessageTypes.Stop:\n return close();\n case MessageTypes.Ping: {\n if (healthcheckTimeout.current) {\n clearTimeout(healthcheckTimeout.current);\n }\n sendMessage({ typ: MessageTypes.Pong, props: {} });\n const timeout = parseInt(props.timeout as string);\n if (timeout > 0) {\n healthcheckTimeout.current = setTimeout(healthcheckFailed, timeout * TIMEOUTS.oneSecond);\n }\n return;\n }\n default:\n break;\n }\n }),\n [close, healthcheckFailed, onMessageReceived, onNotify, sendMessage]\n );\n\n const onSocketError = useCallback(\n (error: Event): void => {\n onNotify(`WebSocket error: ${(error as ErrorEvent).message || 'Unknown error'}`);\n close();\n clearTimeout(healthcheckTimeout.current);\n },\n [close, onNotify]\n );\n\n const onSocketOpen = useCallback((): void => {\n sendMessage({ typ: MessageTypes.New, props: {} });\n onOpen(true);\n }, [onOpen, sendMessage]);\n\n const onSocketClose = useCallback(\n (e: CloseEvent): void => {\n console.log('closing');\n onClose(e);\n close();\n },\n [close, onClose]\n );\n\n const connect = useCallback(\n (deviceId: string): void => {\n const uri = `wss://${window.location.host}${apiUrl.v1}/deviceconnect/devices/${deviceId}/connect`;\n setSessionId(undefined);\n cookies.set('JWT', token, { path: '/', secure: true, sameSite: 'strict', maxAge: 5 });\n try {\n socketRef.current = new WebSocket(uri);\n } catch (error) {\n console.log(error);\n }\n },\n [token]\n );\n\n useEffect(() => {\n const currentSocket = socketRef.current;\n if (!currentSocket) {\n return;\n }\n\n currentSocket.addEventListener('close', onSocketClose);\n currentSocket.addEventListener('error', onSocketError);\n currentSocket.addEventListener('message', onSocketMessage);\n currentSocket.addEventListener('open', onSocketOpen);\n\n return () => {\n currentSocket.removeEventListener('close', onSocketClose);\n currentSocket.removeEventListener('error', onSocketError);\n currentSocket.removeEventListener('message', onSocketMessage);\n currentSocket.removeEventListener('open', onSocketOpen);\n };\n // eslint-disable-next-line react-hooks/refs\n }, [onSocketClose, onSocketError, onSocketMessage, onSocketOpen, socketRef.current?.readyState]);\n\n // eslint-disable-next-line react-hooks/refs\n return [connect, sendMessage, close, socketRef.current?.readyState ?? WebSocket.CLOSED, sessionId];\n};\n"],"mappings":"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"}
@@ -1,13 +1,13 @@
1
- import { H as emptyUiPermissions, S as Role, m as DeviceIssueOptionKey, xt as FilterOperator } from "./constants-_p6w8uEp.cjs";
2
- import { o as UserSliceType } from "./index-CSk4ENmk.cjs";
3
- import { i as ReleaseSliceType } from "./index-Zs9RnVoR.cjs";
4
- import { a as PricePreview } from "./types-B33vKVhi.cjs";
1
+ import { H as emptyUiPermissions, S as Role, St as FilterOperator, m as DeviceIssueOptionKey } from "./constants-DAi2zOZN.cjs";
2
+ import { o as UserSliceType } from "./index-CgPgKMve.cjs";
3
+ import { i as ReleaseSliceType } from "./index-VEayiYkv.cjs";
4
+ import { a as PricePreview } from "./types-yQ0ypHMZ.cjs";
5
5
  import { n as OnboardingSliceType } from "./index-DBUt8xVc.cjs";
6
6
  import { o as DeploymentsSliceType, t as Deployment } from "./index-EPmsL6Lb.cjs";
7
- import { c as InventoryAttributes, n as DeviceFilter, r as DeviceGroup, s as DeviceSliceType } from "./index-Doc_1P_Y.cjs";
8
- import { t as AppSliceType } from "./index-C8QadAm7.cjs";
9
- import { t as MonitorSliceType } from "./index-5Q-iI4EB.cjs";
10
- import { t as OrganizationSliceType } from "./index-Bj3OArhr.cjs";
7
+ import { c as InventoryAttributes, n as DeviceFilter, r as DeviceGroup, s as DeviceSliceType } from "./index-vXsWdis1.cjs";
8
+ import { t as AppSliceType } from "./index-Dn1SqQYh.cjs";
9
+ import { t as MonitorSliceType } from "./index-BQCnJ5gh.cjs";
10
+ import { t as OrganizationSliceType } from "./index-CSOj22xK.cjs";
11
11
  import { AttributeFilterPredicate, AttributeResponse, FilterV2, InvoiceLineItem, Scope } from "@northern.tech/types/MenderTypes";
12
12
  import { Reducer, UnknownAction } from "@reduxjs/toolkit";
13
13
  import { AxiosError } from "axios";
@@ -44,6 +44,14 @@ declare const convertDeviceListStateToFilters: ({
44
44
  filterTerms: FilterTerm[];
45
45
  };
46
46
  declare const filtersFilter: (item: DeviceFilter, index: number, array: DeviceFilter[]) => boolean;
47
+ declare const stripOrchestratorManifestPrefix: (key: string) => string;
48
+ declare const getAttributeScopeLabel: ({
49
+ key,
50
+ scope
51
+ }: {
52
+ key?: string;
53
+ scope?: string;
54
+ }) => string;
47
55
  declare const stripUndefined: <T extends Record<string, unknown>>(obj: T) => Partial<T>;
48
56
  declare const listItemMapper: <T extends object>(byId: Record<string, T>, ids: string[], {
49
57
  cutOffSize,
@@ -333,5 +341,5 @@ declare const createAppAsyncThunk: import("@reduxjs/toolkit").CreateAsyncThunkFu
333
341
  };
334
342
  };
335
343
  //#endregion
336
- export { mapUserRolesToUiPermissions as A, groupDeploymentDevicesStats as C, mapDeviceAttributes as D, listItemMapper as E, stringToBoolean as F, stripUndefined as I, parseSubscriptionPreview as M, progress as N, mapFiltersToTerms as O, statCollector as P, getDeploymentState as S, isDarkMode as T, dispatchDelayed as _, commonErrorHandler as a, filtersFilter as b, sessionReducer as c, useAppSelector as d, DeploymentStats as f, convertToBackendSPLimits as g, convertDeviceListStateToFilters as h, commonErrorFallback as i, mergePermissions as j, mapTermsToFilters as k, store as l, FilterTerm as m, MenderEnvironment as n, createAppAsyncThunk as o, ErrorWithResponse as p, RootState as r, getConfiguredStore as s, AppDispatch as t, useAppDispatch as u, ensureVersionString as v, groupDeploymentStats as w, generateDeploymentGroupDetails as x, extractErrorMessage as y };
337
- //# sourceMappingURL=store-B5-0USDz.d.cts.map
344
+ export { mapTermsToFilters as A, getDeploymentState as C, listItemMapper as D, isDarkMode as E, statCollector as F, stringToBoolean as I, stripOrchestratorManifestPrefix as L, mergePermissions as M, parseSubscriptionPreview as N, mapDeviceAttributes as O, progress as P, stripUndefined as R, getAttributeScopeLabel as S, groupDeploymentStats as T, dispatchDelayed as _, commonErrorHandler as a, filtersFilter as b, sessionReducer as c, useAppSelector as d, DeploymentStats as f, convertToBackendSPLimits as g, convertDeviceListStateToFilters as h, commonErrorFallback as i, mapUserRolesToUiPermissions as j, mapFiltersToTerms as k, store as l, FilterTerm as m, MenderEnvironment as n, createAppAsyncThunk as o, ErrorWithResponse as p, RootState as r, getConfiguredStore as s, AppDispatch as t, useAppDispatch as u, ensureVersionString as v, groupDeploymentDevicesStats as w, generateDeploymentGroupDetails as x, extractErrorMessage as y };
345
+ //# sourceMappingURL=store-CGP5pCH8.d.cts.map
@@ -1,13 +1,13 @@
1
- import { H as emptyUiPermissions, S as Role, m as DeviceIssueOptionKey, xt as FilterOperator } from "./constants-OcdoVk6f.js";
2
- import { o as UserSliceType } from "./index-Cf81vLTi.js";
3
- import { i as ReleaseSliceType } from "./index-DLDY7bNT.js";
4
- import { a as PricePreview } from "./types-BjtmX60L.js";
1
+ import { H as emptyUiPermissions, S as Role, St as FilterOperator, m as DeviceIssueOptionKey } from "./constants-CzjK2gV-.js";
2
+ import { o as UserSliceType } from "./index-BCErsO5h.js";
3
+ import { i as ReleaseSliceType } from "./index-m1c0qk2s.js";
4
+ import { a as PricePreview } from "./types-uHmaedGU.js";
5
5
  import { n as OnboardingSliceType } from "./index-DBUt8xVc.js";
6
6
  import { o as DeploymentsSliceType, t as Deployment } from "./index-Bb4yvvgG.js";
7
- import { c as InventoryAttributes, n as DeviceFilter, r as DeviceGroup, s as DeviceSliceType } from "./index-BqJuhvO_.js";
8
- import { t as AppSliceType } from "./index-BLvjQfGj.js";
9
- import { t as MonitorSliceType } from "./index-ByfjrTdH.js";
10
- import { t as OrganizationSliceType } from "./index-BBsUj1a8.js";
7
+ import { c as InventoryAttributes, n as DeviceFilter, r as DeviceGroup, s as DeviceSliceType } from "./index-BtGhTFBc.js";
8
+ import { t as AppSliceType } from "./index-CnH51JfB.js";
9
+ import { t as MonitorSliceType } from "./index-C5oQrJGU.js";
10
+ import { t as OrganizationSliceType } from "./index-H9zg_3UV.js";
11
11
  import { Reducer, UnknownAction } from "@reduxjs/toolkit";
12
12
  import { TypedUseSelectorHook } from "react-redux";
13
13
  import { AxiosError } from "axios";
@@ -44,6 +44,14 @@ declare const convertDeviceListStateToFilters: ({
44
44
  filterTerms: FilterTerm[];
45
45
  };
46
46
  declare const filtersFilter: (item: DeviceFilter, index: number, array: DeviceFilter[]) => boolean;
47
+ declare const stripOrchestratorManifestPrefix: (key: string) => string;
48
+ declare const getAttributeScopeLabel: ({
49
+ key,
50
+ scope
51
+ }: {
52
+ key?: string;
53
+ scope?: string;
54
+ }) => string;
47
55
  declare const stripUndefined: <T extends Record<string, unknown>>(obj: T) => Partial<T>;
48
56
  declare const listItemMapper: <T extends object>(byId: Record<string, T>, ids: string[], {
49
57
  cutOffSize,
@@ -333,5 +341,5 @@ declare const createAppAsyncThunk: import("@reduxjs/toolkit").CreateAsyncThunkFu
333
341
  };
334
342
  };
335
343
  //#endregion
336
- export { mapUserRolesToUiPermissions as A, groupDeploymentDevicesStats as C, mapDeviceAttributes as D, listItemMapper as E, stringToBoolean as F, stripUndefined as I, parseSubscriptionPreview as M, progress as N, mapFiltersToTerms as O, statCollector as P, getDeploymentState as S, isDarkMode as T, dispatchDelayed as _, commonErrorHandler as a, filtersFilter as b, sessionReducer as c, useAppSelector as d, DeploymentStats as f, convertToBackendSPLimits as g, convertDeviceListStateToFilters as h, commonErrorFallback as i, mergePermissions as j, mapTermsToFilters as k, store as l, FilterTerm as m, MenderEnvironment as n, createAppAsyncThunk as o, ErrorWithResponse as p, RootState as r, getConfiguredStore as s, AppDispatch as t, useAppDispatch as u, ensureVersionString as v, groupDeploymentStats as w, generateDeploymentGroupDetails as x, extractErrorMessage as y };
337
- //# sourceMappingURL=store-CmiiLjxd.d.ts.map
344
+ export { mapTermsToFilters as A, getDeploymentState as C, listItemMapper as D, isDarkMode as E, statCollector as F, stringToBoolean as I, stripOrchestratorManifestPrefix as L, mergePermissions as M, parseSubscriptionPreview as N, mapDeviceAttributes as O, progress as P, stripUndefined as R, getAttributeScopeLabel as S, groupDeploymentStats as T, dispatchDelayed as _, commonErrorHandler as a, filtersFilter as b, sessionReducer as c, useAppSelector as d, DeploymentStats as f, convertToBackendSPLimits as g, convertDeviceListStateToFilters as h, commonErrorFallback as i, mapUserRolesToUiPermissions as j, mapFiltersToTerms as k, store as l, FilterTerm as m, MenderEnvironment as n, createAppAsyncThunk as o, ErrorWithResponse as p, RootState as r, getConfiguredStore as s, AppDispatch as t, useAppDispatch as u, ensureVersionString as v, groupDeploymentDevicesStats as w, generateDeploymentGroupDetails as x, extractErrorMessage as y };
345
+ //# sourceMappingURL=store-CkgokFlk.d.ts.map
package/dist/store.cjs CHANGED
@@ -1,5 +1,5 @@
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
3
  const require_appSlice_index = require("./appSlice/index.cjs");
4
4
  const require_deploymentsSlice_index = require("./deploymentsSlice/index.cjs");
5
5
  const require_devicesSlice_index = require("./devicesSlice/index.cjs");
package/dist/store.d.cts CHANGED
@@ -1,2 +1,2 @@
1
- import { a as commonErrorHandler, c as sessionReducer, d as useAppSelector, i as commonErrorFallback, l as store, n as MenderEnvironment, o as createAppAsyncThunk, p as ErrorWithResponse, r as RootState, s as getConfiguredStore, t as AppDispatch, u as useAppDispatch } from "./store-B5-0USDz.cjs";
1
+ import { a as commonErrorHandler, c as sessionReducer, d as useAppSelector, i as commonErrorFallback, l as store, n as MenderEnvironment, o as createAppAsyncThunk, p as ErrorWithResponse, r as RootState, s as getConfiguredStore, t as AppDispatch, u as useAppDispatch } from "./store-CGP5pCH8.cjs";
2
2
  export { AppDispatch, type ErrorWithResponse, MenderEnvironment, RootState, commonErrorFallback, commonErrorHandler, createAppAsyncThunk, getConfiguredStore, sessionReducer, store, useAppDispatch, useAppSelector };