@northern.tech/store 0.9.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/dist/actions.cjs +7 -3
  2. package/dist/actions.cjs.map +1 -1
  3. package/dist/actions.d.cts +1 -1
  4. package/dist/actions.d.ts +1 -1
  5. package/dist/actions.js +6 -6
  6. package/dist/api/general-api.js +1 -1
  7. package/dist/api/users-api.js +1 -1
  8. package/dist/appSlice/index.js +1 -1
  9. package/dist/appSlice/mocks.js +1 -1
  10. package/dist/appSlice/thunks.cjs +17 -8
  11. package/dist/appSlice/thunks.cjs.map +1 -1
  12. package/dist/appSlice/thunks.js +15 -15
  13. package/dist/auth.js +1 -1
  14. package/dist/{chunk-ITGVP27I.js → chunk-4FNSLYK5.js} +11 -11
  15. package/dist/{chunk-MUZHPRLI.js → chunk-6KNRR7A5.js} +4 -4
  16. package/dist/{chunk-ZOF45MII.js → chunk-CUU3N6KW.js} +13 -13
  17. package/dist/{chunk-ZRSVD5QY.js → chunk-I3H5EFZK.js} +15 -15
  18. package/dist/{chunk-UVYRVFZX.js → chunk-MH5WPYQI.js} +11 -5
  19. package/dist/chunk-MH5WPYQI.js.map +1 -0
  20. package/dist/{chunk-VWNMAIL2.js → chunk-NVNO3I3K.js} +37 -28
  21. package/dist/chunk-NVNO3I3K.js.map +1 -0
  22. package/dist/{chunk-KQ6AGXRK.js → chunk-REZWSU22.js} +8 -4
  23. package/dist/chunk-REZWSU22.js.map +1 -0
  24. package/dist/{chunk-CKF76YO4.js → chunk-RFF52JYU.js} +1 -1
  25. package/dist/chunk-RFF52JYU.js.map +1 -0
  26. package/dist/{chunk-N3TU2WH2.js → chunk-X3NF4KNC.js} +5 -5
  27. package/dist/{chunk-VANBSJS5.js → chunk-ZNAJKEP2.js} +1 -1
  28. package/dist/chunk-ZNAJKEP2.js.map +1 -0
  29. package/dist/commonConstants.js +1 -1
  30. package/dist/commonSelectors.cjs +8 -3
  31. package/dist/commonSelectors.cjs.map +1 -1
  32. package/dist/commonSelectors.js +6 -6
  33. package/dist/constants.js +1 -1
  34. package/dist/deploymentsSlice/constants.js +1 -1
  35. package/dist/deploymentsSlice/index.js +1 -1
  36. package/dist/deploymentsSlice/mocks.js +1 -1
  37. package/dist/deploymentsSlice/selectors.js +1 -1
  38. package/dist/deploymentsSlice/thunks.cjs +17 -8
  39. package/dist/deploymentsSlice/thunks.cjs.map +1 -1
  40. package/dist/deploymentsSlice/thunks.js +15 -15
  41. package/dist/devicesSlice/constants.js +1 -1
  42. package/dist/devicesSlice/index.cjs +7 -3
  43. package/dist/devicesSlice/index.cjs.map +1 -1
  44. package/dist/devicesSlice/index.d.cts +4 -4
  45. package/dist/devicesSlice/index.d.ts +4 -4
  46. package/dist/devicesSlice/index.js +2 -2
  47. package/dist/devicesSlice/mocks.cjs +8 -4
  48. package/dist/devicesSlice/mocks.cjs.map +1 -1
  49. package/dist/devicesSlice/mocks.d.cts +5 -1
  50. package/dist/devicesSlice/mocks.d.ts +5 -1
  51. package/dist/devicesSlice/mocks.js +3 -3
  52. package/dist/devicesSlice/mocks.js.map +1 -1
  53. package/dist/devicesSlice/selectors.cjs +12 -5
  54. package/dist/devicesSlice/selectors.cjs.map +1 -1
  55. package/dist/devicesSlice/selectors.d.cts +310 -3
  56. package/dist/devicesSlice/selectors.d.ts +310 -3
  57. package/dist/devicesSlice/selectors.js +6 -4
  58. package/dist/devicesSlice/thunks.cjs +19 -10
  59. package/dist/devicesSlice/thunks.cjs.map +1 -1
  60. package/dist/devicesSlice/thunks.d.cts +5 -5
  61. package/dist/devicesSlice/thunks.d.ts +5 -5
  62. package/dist/devicesSlice/thunks.js +17 -17
  63. package/dist/liststatehook.js +1 -1
  64. package/dist/locationutils.js +1 -1
  65. package/dist/monitorSlice/index.js +1 -1
  66. package/dist/monitorSlice/mocks.js +1 -1
  67. package/dist/monitorSlice/thunks.cjs +15 -6
  68. package/dist/monitorSlice/thunks.cjs.map +1 -1
  69. package/dist/monitorSlice/thunks.js +13 -13
  70. package/dist/onboardingSlice/index.cjs.map +1 -1
  71. package/dist/onboardingSlice/index.d.cts +1 -1
  72. package/dist/onboardingSlice/index.d.ts +1 -1
  73. package/dist/onboardingSlice/index.js +1 -1
  74. package/dist/onboardingSlice/mocks.cjs.map +1 -1
  75. package/dist/onboardingSlice/mocks.js +1 -1
  76. package/dist/onboardingSlice/thunks.cjs +27 -9
  77. package/dist/onboardingSlice/thunks.cjs.map +1 -1
  78. package/dist/onboardingSlice/thunks.js +15 -15
  79. package/dist/organizationSlice/constants.js +1 -1
  80. package/dist/organizationSlice/index.js +1 -1
  81. package/dist/organizationSlice/mocks.js +1 -1
  82. package/dist/organizationSlice/selectors.js +1 -1
  83. package/dist/organizationSlice/thunks.cjs +19 -10
  84. package/dist/organizationSlice/thunks.cjs.map +1 -1
  85. package/dist/organizationSlice/thunks.d.cts +3 -3
  86. package/dist/organizationSlice/thunks.d.ts +3 -3
  87. package/dist/organizationSlice/thunks.js +15 -15
  88. package/dist/releasesSlice/index.js +1 -1
  89. package/dist/releasesSlice/mocks.js +1 -1
  90. package/dist/releasesSlice/selectors.js +1 -1
  91. package/dist/releasesSlice/thunks.cjs +15 -6
  92. package/dist/releasesSlice/thunks.cjs.map +1 -1
  93. package/dist/releasesSlice/thunks.js +13 -13
  94. package/dist/selectors.cjs +12 -5
  95. package/dist/selectors.cjs.map +1 -1
  96. package/dist/selectors.d.cts +1 -1
  97. package/dist/selectors.d.ts +1 -1
  98. package/dist/selectors.js +37 -35
  99. package/dist/sockethook.js +1 -1
  100. package/dist/store.cjs +7 -3
  101. package/dist/store.cjs.map +1 -1
  102. package/dist/store.js +7 -7
  103. package/dist/storehooks.cjs +38 -17
  104. package/dist/storehooks.cjs.map +1 -1
  105. package/dist/storehooks.js +26 -23
  106. package/dist/storehooks.js.map +1 -1
  107. package/dist/thunks.cjs +31 -13
  108. package/dist/thunks.cjs.map +1 -1
  109. package/dist/thunks.d.cts +1 -1
  110. package/dist/thunks.d.ts +1 -1
  111. package/dist/thunks.js +17 -17
  112. package/dist/useDeploymentDevice.cjs +17 -8
  113. package/dist/useDeploymentDevice.cjs.map +1 -1
  114. package/dist/useDeploymentDevice.js +16 -16
  115. package/dist/usersSlice/constants.js +1 -1
  116. package/dist/usersSlice/index.cjs.map +1 -1
  117. package/dist/usersSlice/index.d.cts +1 -1
  118. package/dist/usersSlice/index.d.ts +1 -1
  119. package/dist/usersSlice/index.js +2 -2
  120. package/dist/usersSlice/mocks.cjs.map +1 -1
  121. package/dist/usersSlice/mocks.js +2 -2
  122. package/dist/usersSlice/selectors.js +1 -1
  123. package/dist/usersSlice/thunks.cjs +17 -8
  124. package/dist/usersSlice/thunks.cjs.map +1 -1
  125. package/dist/usersSlice/thunks.js +15 -15
  126. package/dist/utils.js +1 -1
  127. package/package.json +1 -1
  128. package/dist/chunk-CKF76YO4.js.map +0 -1
  129. package/dist/chunk-KQ6AGXRK.js.map +0 -1
  130. package/dist/chunk-UVYRVFZX.js.map +0 -1
  131. package/dist/chunk-VANBSJS5.js.map +0 -1
  132. package/dist/chunk-VWNMAIL2.js.map +0 -1
  133. /package/dist/{chunk-ITGVP27I.js.map → chunk-4FNSLYK5.js.map} +0 -0
  134. /package/dist/{chunk-MUZHPRLI.js.map → chunk-6KNRR7A5.js.map} +0 -0
  135. /package/dist/{chunk-ZOF45MII.js.map → chunk-CUU3N6KW.js.map} +0 -0
  136. /package/dist/{chunk-ZRSVD5QY.js.map → chunk-I3H5EFZK.js.map} +0 -0
  137. /package/dist/{chunk-N3TU2WH2.js.map → chunk-X3NF4KNC.js.map} +0 -0
@@ -3,38 +3,38 @@ import {
3
3
  setFirstLoginAfterSignup,
4
4
  setOfflineThreshold,
5
5
  setSearchState
6
- } from "../chunk-VWNMAIL2.js";
7
- import "../chunk-MUZHPRLI.js";
8
- import "../chunk-N3TU2WH2.js";
9
- import "../chunk-ZOF45MII.js";
6
+ } from "../chunk-NVNO3I3K.js";
7
+ import "../chunk-6KNRR7A5.js";
8
+ import "../chunk-X3NF4KNC.js";
9
+ import "../chunk-CUU3N6KW.js";
10
10
  import "../chunk-Y3DJIMEN.js";
11
11
  import "../chunk-5M6EUVNO.js";
12
- import "../chunk-ITGVP27I.js";
12
+ import "../chunk-4FNSLYK5.js";
13
+ import "../chunk-C2LGE3P6.js";
14
+ import "../chunk-RFF52JYU.js";
13
15
  import "../chunk-TRKA7XYU.js";
14
- import "../chunk-CKF76YO4.js";
16
+ import "../chunk-ZNAJKEP2.js";
15
17
  import "../chunk-QOFVCPRW.js";
16
18
  import "../chunk-HLX5L3IM.js";
17
- import "../chunk-VANBSJS5.js";
18
- import "../chunk-KQ6AGXRK.js";
19
19
  import "../chunk-OFGCC3GM.js";
20
- import "../chunk-C2LGE3P6.js";
20
+ import "../chunk-REZWSU22.js";
21
21
  import "../chunk-FDSMCFV5.js";
22
22
  import "../chunk-53W2NRSL.js";
23
23
  import "../chunk-NMAXZ3ZY.js";
24
- import "../chunk-ZRSVD5QY.js";
25
- import "../chunk-GGBE6KJV.js";
24
+ import "../chunk-I3H5EFZK.js";
25
+ import "../chunk-WR6RQKF5.js";
26
26
  import "../chunk-7QKCBSFU.js";
27
+ import "../chunk-GGBE6KJV.js";
28
+ import "../chunk-JIS4PA3R.js";
27
29
  import "../chunk-3NOV7X4M.js";
30
+ import "../chunk-MH5WPYQI.js";
28
31
  import "../chunk-YO22XLHI.js";
29
- import "../chunk-JIS4PA3R.js";
30
- import "../chunk-WR6RQKF5.js";
31
- import "../chunk-UVYRVFZX.js";
32
32
  import "../chunk-BYUPW7RA.js";
33
33
  import "../chunk-GX2TWNLC.js";
34
34
  import "../chunk-WWED74SG.js";
35
35
  import "../chunk-2DYA3X77.js";
36
- import "../chunk-FAJ3I2UQ.js";
37
36
  import "../chunk-ZKAH3APE.js";
37
+ import "../chunk-FAJ3I2UQ.js";
38
38
  import "../chunk-OWWCFJZ5.js";
39
39
  export {
40
40
  getLatestReleaseInfo,
package/dist/auth.js CHANGED
@@ -7,8 +7,8 @@ import {
7
7
  } from "./chunk-FDSMCFV5.js";
8
8
  import "./chunk-WWED74SG.js";
9
9
  import "./chunk-2DYA3X77.js";
10
- import "./chunk-FAJ3I2UQ.js";
11
10
  import "./chunk-ZKAH3APE.js";
11
+ import "./chunk-FAJ3I2UQ.js";
12
12
  import "./chunk-OWWCFJZ5.js";
13
13
  export {
14
14
  cleanUp,
@@ -1,27 +1,27 @@
1
+ import {
2
+ actions as actions2
3
+ } from "./chunk-C2LGE3P6.js";
4
+ import {
5
+ actions as actions8
6
+ } from "./chunk-RFF52JYU.js";
1
7
  import {
2
8
  actions as actions7
3
9
  } from "./chunk-TRKA7XYU.js";
4
10
  import {
5
- actions as actions8
6
- } from "./chunk-CKF76YO4.js";
11
+ actions as actions5
12
+ } from "./chunk-ZNAJKEP2.js";
7
13
  import {
8
14
  actions as actions6
9
15
  } from "./chunk-QOFVCPRW.js";
10
16
  import {
11
17
  actions as actions4
12
18
  } from "./chunk-HLX5L3IM.js";
13
- import {
14
- actions as actions5
15
- } from "./chunk-VANBSJS5.js";
16
- import {
17
- actions as actions3
18
- } from "./chunk-KQ6AGXRK.js";
19
19
  import {
20
20
  actions
21
21
  } from "./chunk-OFGCC3GM.js";
22
22
  import {
23
- actions as actions2
24
- } from "./chunk-C2LGE3P6.js";
23
+ actions as actions3
24
+ } from "./chunk-REZWSU22.js";
25
25
 
26
26
  // src/actions.ts
27
27
  var actions_default = {
@@ -38,4 +38,4 @@ var actions_default = {
38
38
  export {
39
39
  actions_default
40
40
  };
41
- //# sourceMappingURL=chunk-ITGVP27I.js.map
41
+ //# sourceMappingURL=chunk-4FNSLYK5.js.map
@@ -2,13 +2,13 @@ import {
2
2
  commonErrorFallback,
3
3
  commonErrorHandler,
4
4
  createAppAsyncThunk
5
- } from "./chunk-ZOF45MII.js";
5
+ } from "./chunk-CUU3N6KW.js";
6
6
  import {
7
7
  general_api_default
8
8
  } from "./chunk-5M6EUVNO.js";
9
9
  import {
10
10
  actions_default
11
- } from "./chunk-ITGVP27I.js";
11
+ } from "./chunk-4FNSLYK5.js";
12
12
  import {
13
13
  actions,
14
14
  sliceName
@@ -18,7 +18,7 @@ import {
18
18
  } from "./chunk-53W2NRSL.js";
19
19
  import {
20
20
  getSearchEndpoint
21
- } from "./chunk-ZRSVD5QY.js";
21
+ } from "./chunk-I3H5EFZK.js";
22
22
  import {
23
23
  getReleasesById
24
24
  } from "./chunk-GGBE6KJV.js";
@@ -442,4 +442,4 @@ export {
442
442
  getDeltaGenerationJobs,
443
443
  getDeltaGenerationJobDetails
444
444
  };
445
- //# sourceMappingURL=chunk-MUZHPRLI.js.map
445
+ //# sourceMappingURL=chunk-6KNRR7A5.js.map
@@ -1,13 +1,19 @@
1
1
  import {
2
2
  actions_default
3
- } from "./chunk-ITGVP27I.js";
3
+ } from "./chunk-4FNSLYK5.js";
4
4
  import {
5
- releasesSlice_default
6
- } from "./chunk-TRKA7XYU.js";
5
+ deploymentsSlice_default
6
+ } from "./chunk-C2LGE3P6.js";
7
7
  import {
8
8
  actions as actions2,
9
9
  usersSlice_default
10
- } from "./chunk-CKF76YO4.js";
10
+ } from "./chunk-RFF52JYU.js";
11
+ import {
12
+ releasesSlice_default
13
+ } from "./chunk-TRKA7XYU.js";
14
+ import {
15
+ onboardingSlice_default
16
+ } from "./chunk-ZNAJKEP2.js";
11
17
  import {
12
18
  actions,
13
19
  organizationSlice_default
@@ -15,18 +21,12 @@ import {
15
21
  import {
16
22
  monitorSlice_default
17
23
  } from "./chunk-HLX5L3IM.js";
18
- import {
19
- onboardingSlice_default
20
- } from "./chunk-VANBSJS5.js";
21
- import {
22
- devicesSlice_default
23
- } from "./chunk-KQ6AGXRK.js";
24
24
  import {
25
25
  appSlice_default
26
26
  } from "./chunk-OFGCC3GM.js";
27
27
  import {
28
- deploymentsSlice_default
29
- } from "./chunk-C2LGE3P6.js";
28
+ devicesSlice_default
29
+ } from "./chunk-REZWSU22.js";
30
30
  import {
31
31
  getToken
32
32
  } from "./chunk-FDSMCFV5.js";
@@ -139,4 +139,4 @@ export {
139
139
  useAppDispatch,
140
140
  createAppAsyncThunk
141
141
  };
142
- //# sourceMappingURL=chunk-ZOF45MII.js.map
142
+ //# sourceMappingURL=chunk-CUU3N6KW.js.map
@@ -1,6 +1,8 @@
1
1
  import {
2
- getReleasesById
3
- } from "./chunk-GGBE6KJV.js";
2
+ getDeploymentsById,
3
+ getDeploymentsSelectionState,
4
+ getSelectedDeploymentDeviceIds
5
+ } from "./chunk-WR6RQKF5.js";
4
6
  import {
5
7
  getCurrentUser,
6
8
  getGlobalSettings,
@@ -9,28 +11,26 @@ import {
9
11
  getUserSettings
10
12
  } from "./chunk-7QKCBSFU.js";
11
13
  import {
12
- getAuditLogEntry,
13
- getIsServiceProvider,
14
- getOrganization
15
- } from "./chunk-3NOV7X4M.js";
16
- import {
17
- getIssueCountsByType
18
- } from "./chunk-YO22XLHI.js";
14
+ getReleasesById
15
+ } from "./chunk-GGBE6KJV.js";
19
16
  import {
20
17
  getOnboarding
21
18
  } from "./chunk-JIS4PA3R.js";
22
19
  import {
23
- getDeploymentsById,
24
- getDeploymentsSelectionState,
25
- getSelectedDeploymentDeviceIds
26
- } from "./chunk-WR6RQKF5.js";
20
+ getAuditLogEntry,
21
+ getIsServiceProvider,
22
+ getOrganization
23
+ } from "./chunk-3NOV7X4M.js";
27
24
  import {
28
25
  getDeviceById,
29
26
  getDevicesById,
30
27
  getFilteringAttributes,
31
28
  getGroupsById,
32
29
  getListedDevices
33
- } from "./chunk-UVYRVFZX.js";
30
+ } from "./chunk-MH5WPYQI.js";
31
+ import {
32
+ getIssueCountsByType
33
+ } from "./chunk-YO22XLHI.js";
34
34
  import {
35
35
  getFeatures,
36
36
  getSearchedDevices
@@ -289,4 +289,4 @@ export {
289
289
  getAuditlogDevice,
290
290
  getRelevantRoles
291
291
  };
292
- //# sourceMappingURL=chunk-ZRSVD5QY.js.map
292
+ //# sourceMappingURL=chunk-I3H5EFZK.js.map
@@ -21,7 +21,7 @@ var getSortedFilteringAttributes = createSelector([getFilteringAttributes], (fil
21
21
  ...filteringAttributes,
22
22
  identityAttributes: [...filteringAttributes.identityAttributes, "id"]
23
23
  }));
24
- var getDeviceLimit = (state) => state.devices.limit;
24
+ var getDeviceLimits = (state) => state.devices.limits;
25
25
  var getFilteringAttributesLimit = (state) => state.devices.filteringAttributesLimit;
26
26
  var getDeviceIdentityAttributes = createSelector(
27
27
  [getFilteringAttributes, getFilteringAttributesLimit],
@@ -59,9 +59,14 @@ var getSelectedGroupInfo = createSelector(
59
59
  return { groupCount, selectedGroup, groupFilters };
60
60
  }
61
61
  );
62
+ var getCombinedLimit = createSelector(
63
+ [getDeviceLimits],
64
+ (deviceLimits) => Object.values(deviceLimits).reduce((accu, limit) => accu + Math.max(limit ?? 0, 0), 0)
65
+ // limit might be -1 for unlimited devices
66
+ );
62
67
  var getLimitMaxed = createSelector(
63
- [getAcceptedDevices, getDeviceLimit],
64
- ({ total: acceptedDevices = 0 }, deviceLimit) => Boolean(deviceLimit && deviceLimit <= acceptedDevices)
68
+ [getAcceptedDevices, getCombinedLimit],
69
+ ({ total: acceptedDevices = 0 }, combinedLimit) => !!combinedLimit && combinedLimit <= acceptedDevices
65
70
  );
66
71
  var getGroupsByIdWithoutUngrouped = createSelector([getGroupsById], ({ [UNGROUPED_GROUP.id]: ungrouped, ...groups }) => groups);
67
72
  var getGroupData = createSelector([getGroupsByIdWithoutUngrouped], (groups) => {
@@ -122,11 +127,12 @@ export {
122
127
  getFilteringAttributes,
123
128
  getDeviceFilters,
124
129
  getSortedFilteringAttributes,
125
- getDeviceLimit,
130
+ getDeviceLimits,
126
131
  getDeviceIdentityAttributes,
127
132
  getDeviceCountsByStatus,
128
133
  getDeviceById,
129
134
  getSelectedGroupInfo,
135
+ getCombinedLimit,
130
136
  getLimitMaxed,
131
137
  getGroupsByIdWithoutUngrouped,
132
138
  getGroupData,
@@ -134,4 +140,4 @@ export {
134
140
  getAttributesList,
135
141
  getDeviceTypes
136
142
  };
137
- //# sourceMappingURL=chunk-UVYRVFZX.js.map
143
+ //# sourceMappingURL=chunk-MH5WPYQI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/devicesSlice/selectors.ts"],"sourcesContent":["// Copyright 2023 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { duplicateFilter } from '@northern.tech/utils/helpers';\nimport { createSelector } from '@reduxjs/toolkit';\n\nimport type { DeviceFilter, DeviceGroup } from '.';\nimport { DEVICE_STATES, UNGROUPED_GROUP } from '../constants';\nimport type { RootState } from '../store';\n\nexport const getAcceptedDevices = (state: RootState) => state.devices.byStatus.accepted;\nexport const getDevicesByStatus = (state: RootState) => state.devices.byStatus;\nexport const getDevicesById = (state: RootState) => state.devices.byId;\nexport const getDeviceReports = (state: RootState) => state.devices.reports;\nexport const getGroupsById = (state: RootState) => state.devices.groups.byId;\nexport const getSelectedGroup = (state: RootState) => state.devices.groups.selectedGroup;\n\nexport const getDeviceListState = (state: RootState) => state.devices.deviceList;\nexport const getListedDevices = (state: RootState) => state.devices.deviceList.deviceIds;\nexport const getFilteringAttributes = (state: RootState) => state.devices.filteringAttributes;\nexport const getDeviceFilters = (state: RootState) => state.devices.filters || [];\nconst getFilteringAttributesFromConfig = (state: RootState) => state.devices.filteringAttributesConfig.attributes;\nexport const getSortedFilteringAttributes = createSelector([getFilteringAttributes], filteringAttributes => ({\n ...filteringAttributes,\n identityAttributes: [...filteringAttributes.identityAttributes, 'id']\n}));\nexport const getDeviceLimits = (state: RootState) => state.devices.limits;\nconst getFilteringAttributesLimit = (state: RootState) => state.devices.filteringAttributesLimit;\n\nexport const getDeviceIdentityAttributes = createSelector(\n [getFilteringAttributes, getFilteringAttributesLimit],\n ({ identityAttributes }, filteringAttributesLimit) => {\n // limit the selection of the available attribute to AVAILABLE_ATTRIBUTE_LIMIT\n const attributes = identityAttributes.slice(0, filteringAttributesLimit);\n return attributes.reduce(\n (accu, value) => {\n accu.push({ value, label: value, scope: 'identity' });\n return accu;\n },\n [\n { value: 'name', label: 'Name', scope: 'tags' },\n { value: 'id', label: 'Device ID', scope: 'identity' }\n ]\n );\n }\n);\n\nexport const getDeviceCountsByStatus = createSelector([getDevicesByStatus], byStatus =>\n Object.values(DEVICE_STATES).reduce((accu, state) => {\n accu[state] = byStatus[state].total || 0;\n return accu;\n }, {})\n);\n\nexport const getDeviceById = createSelector([getDevicesById, (_, deviceId) => deviceId], (devicesById, deviceId = '') => devicesById[deviceId] ?? {});\n\nexport const getSelectedGroupInfo = createSelector(\n [getAcceptedDevices, getGroupsById, getSelectedGroup],\n ({ total: acceptedDeviceTotal }, groupsById, selectedGroup) => {\n let groupCount = acceptedDeviceTotal;\n let groupFilters: DeviceFilter[] = [];\n if (selectedGroup && groupsById[selectedGroup]) {\n groupCount = groupsById[selectedGroup].total || 0;\n groupFilters = groupsById[selectedGroup].filters || [];\n }\n return { groupCount, selectedGroup, groupFilters };\n }\n);\n\nexport const getCombinedLimit = createSelector(\n [getDeviceLimits],\n deviceLimits => Object.values(deviceLimits).reduce((accu, limit) => accu + Math.max(limit ?? 0, 0), 0) // limit might be -1 for unlimited devices\n);\n\nexport const getLimitMaxed = createSelector(\n [getAcceptedDevices, getCombinedLimit],\n ({ total: acceptedDevices = 0 }, combinedLimit) => !!combinedLimit && combinedLimit <= acceptedDevices\n);\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport const getGroupsByIdWithoutUngrouped = createSelector([getGroupsById], ({ [UNGROUPED_GROUP.id]: ungrouped, ...groups }) => groups);\n\nexport const getGroupData = createSelector([getGroupsByIdWithoutUngrouped], groups => {\n const createdGroup = Object.keys(groups).length ? Object.keys(groups)[0] : undefined;\n const hasDynamicGroups = Object.values(groups).some(group => !!group.id);\n return { createdGroup, hasDynamicGroups, groups };\n});\n\ntype SelectorGroup = DeviceGroup & { groupId: string };\ntype SelectorGroups = { dynamic: SelectorGroup[]; static: SelectorGroup[]; ungrouped: SelectorGroup[] };\n\nexport const getGroups = createSelector([getGroupsById], groupsById => {\n const groupNames = Object.keys(groupsById).sort();\n const groupedGroups = Object.entries(groupsById)\n .sort((a, b) => a[0].localeCompare(b[0]))\n .reduce<SelectorGroups>(\n (accu, [groupname, group]) => {\n const name = groupname === UNGROUPED_GROUP.id ? UNGROUPED_GROUP.name : groupname;\n const groupItem = { ...group, groupId: name, name: groupname };\n if ((group.filters ?? []).length > 0) {\n if (groupname !== UNGROUPED_GROUP.id) {\n accu.dynamic.push(groupItem);\n } else {\n accu.ungrouped.push(groupItem);\n }\n } else {\n accu.static.push(groupItem);\n }\n return accu;\n },\n { dynamic: [], static: [], ungrouped: [] }\n );\n return { groupNames, ...groupedGroups };\n});\nexport const getAttributesList = createSelector(\n [getFilteringAttributes, getFilteringAttributesFromConfig],\n ({ identityAttributes = [], inventoryAttributes = [] }, { identity = [], inventory = [] }) =>\n [...identityAttributes, ...inventoryAttributes, ...identity, ...inventory].filter(duplicateFilter)\n);\n\nexport const getDeviceTypes = createSelector([getAcceptedDevices, getDevicesById], ({ deviceIds = [] }, devicesById) =>\n Object.keys(\n deviceIds.slice(0, 200).reduce((accu, item) => {\n const { device_type: deviceTypes = [] } = devicesById[item] ? devicesById[item].attributes : {};\n accu = deviceTypes.reduce((deviceTypeAccu, deviceType) => {\n if (deviceType.length > 1) {\n deviceTypeAccu[deviceType] = deviceTypeAccu[deviceType] ? deviceTypeAccu[deviceType] + 1 : 1;\n }\n return deviceTypeAccu;\n }, accu);\n return accu;\n }, {})\n )\n);\n"],"mappings":"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","names":[]}
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  getDeviceMonitorConfig,
3
3
  getLatestDeviceAlerts
4
- } from "./chunk-N3TU2WH2.js";
4
+ } from "./chunk-X3NF4KNC.js";
5
5
  import {
6
6
  commonErrorFallback,
7
7
  commonErrorHandler,
8
8
  createAppAsyncThunk
9
- } from "./chunk-ZOF45MII.js";
9
+ } from "./chunk-CUU3N6KW.js";
10
10
  import {
11
11
  users_api_default
12
12
  } from "./chunk-Y3DJIMEN.js";
@@ -15,31 +15,31 @@ import {
15
15
  } from "./chunk-5M6EUVNO.js";
16
16
  import {
17
17
  actions_default
18
- } from "./chunk-ITGVP27I.js";
18
+ } from "./chunk-4FNSLYK5.js";
19
+ import {
20
+ actions as actions2,
21
+ sliceName as sliceName2
22
+ } from "./chunk-C2LGE3P6.js";
19
23
  import {
20
24
  actions as actions6,
21
25
  sliceName as sliceName6
22
- } from "./chunk-CKF76YO4.js";
23
- import {
24
- actions as actions5,
25
- sliceName as sliceName5
26
- } from "./chunk-QOFVCPRW.js";
26
+ } from "./chunk-RFF52JYU.js";
27
27
  import {
28
28
  actions as actions4,
29
29
  sliceName as sliceName4
30
- } from "./chunk-VANBSJS5.js";
30
+ } from "./chunk-ZNAJKEP2.js";
31
31
  import {
32
- actions as actions3,
33
- sliceName as sliceName3
34
- } from "./chunk-KQ6AGXRK.js";
32
+ actions as actions5,
33
+ sliceName as sliceName5
34
+ } from "./chunk-QOFVCPRW.js";
35
35
  import {
36
36
  actions,
37
37
  sliceName
38
38
  } from "./chunk-OFGCC3GM.js";
39
39
  import {
40
- actions as actions2,
41
- sliceName as sliceName2
42
- } from "./chunk-C2LGE3P6.js";
40
+ actions as actions3,
41
+ sliceName as sliceName3
42
+ } from "./chunk-REZWSU22.js";
43
43
  import {
44
44
  cleanUp,
45
45
  getSessionInfo,
@@ -52,7 +52,11 @@ import {
52
52
  getSearchEndpoint,
53
53
  getTenantCapabilities,
54
54
  getUserCapabilities
55
- } from "./chunk-ZRSVD5QY.js";
55
+ } from "./chunk-I3H5EFZK.js";
56
+ import {
57
+ getDeploymentsById,
58
+ getDeploymentsByStatus
59
+ } from "./chunk-WR6RQKF5.js";
56
60
  import {
57
61
  getCurrentSession,
58
62
  getCurrentUser,
@@ -71,10 +75,6 @@ import {
71
75
  getOrganization,
72
76
  getTenantsList
73
77
  } from "./chunk-3NOV7X4M.js";
74
- import {
75
- getDeploymentsById,
76
- getDeploymentsByStatus
77
- } from "./chunk-WR6RQKF5.js";
78
78
  import {
79
79
  getAcceptedDevices,
80
80
  getDeviceById,
@@ -84,7 +84,7 @@ import {
84
84
  getDevicesById,
85
85
  getGroupsById,
86
86
  getSelectedGroup
87
- } from "./chunk-UVYRVFZX.js";
87
+ } from "./chunk-MH5WPYQI.js";
88
88
  import {
89
89
  getFeatures,
90
90
  getSearchState
@@ -938,9 +938,9 @@ var getAllDeviceCounts = createAppAsyncThunk(
938
938
  `${sliceName3}/getAllDeviceCounts`,
939
939
  (_, { dispatch }) => Promise.all([DEVICE_STATES.accepted, DEVICE_STATES.pending].map((status) => dispatch(getDeviceCount(status))))
940
940
  );
941
- var getDeviceLimit = createAppAsyncThunk(
941
+ var getDeviceLimits = createAppAsyncThunk(
942
942
  `${sliceName3}/getDeviceLimit`,
943
- (_, { dispatch }) => general_api_default.get(`${deviceAuthV2}/limits/max_devices`).then((res) => dispatch(actions3.setDeviceLimit(res.data.limit)))
943
+ (_, { dispatch }) => general_api_default.get(`${deviceAuthV2}/limits/devices`).then((res) => dispatch(actions3.setDeviceLimits(res.data)))
944
944
  );
945
945
  var setDeviceListState = createAppAsyncThunk(
946
946
  `${sliceName3}/setDeviceListState`,
@@ -1450,13 +1450,22 @@ var deductOnboardingState = ({ devicesById, devicesByStatus, onboardingState, pa
1450
1450
  const pendingDevices = devicesByStatus[DEVICE_STATES.pending].deviceIds;
1451
1451
  let deviceType = onboardingState.deviceType ?? [];
1452
1452
  deviceType = !deviceType.length && acceptedDevices.length && devicesById[acceptedDevices[0]].hasOwnProperty("attributes") ? devicesById[acceptedDevices[0]].attributes.device_type : deviceType;
1453
+ const deviceTier = acceptedDevices.length && devicesById[acceptedDevices[0]].tier;
1454
+ let approach = null;
1455
+ if (deviceType.some((type) => type.startsWith("qemu"))) {
1456
+ approach = "virtual";
1457
+ } else if (deviceType.some((type) => type.startsWith("esp32")) || deviceTier === "micro") {
1458
+ approach = "mcu";
1459
+ } else if (deviceType.length) {
1460
+ approach = "physical";
1461
+ }
1453
1462
  const progress2 = applyOnboardingFallbacks(onboardingState.progress || determineProgress(acceptedDevices, pendingDevices, releases, pastDeployments));
1454
1463
  return {
1455
1464
  ...onboardingState,
1456
1465
  complete: !!(Boolean(userCookie) || onboardingState.complete || acceptedDevices.length > 1 && pendingDevices.length > 0 && releases.length > 1 && pastDeployments.length > 1 || acceptedDevices.length >= 1 && releases.length >= 2 && pastDeployments.length > 2 || acceptedDevices.length >= 1 && pendingDevices.length > 0 && releases.length >= 2 && pastDeployments.length >= 2 || orderedOnboardingSteps.findIndex((step) => step === progress2) >= orderedOnboardingSteps.length - 1 || onboardingState.disable || ![canDeploy, canManageDevices, canReadDeployments, canReadDevices, canReadReleases, canUploadReleases].every((i) => i)),
1457
1466
  showTips: onboardingState.showTips != null ? onboardingState.showTips : true,
1458
1467
  deviceType,
1459
- approach: onboardingState.approach || (deviceType.some((type) => type.startsWith("qemu")) ? "virtual" : "physical"),
1468
+ approach: onboardingState.approach || approach,
1460
1469
  progress: progress2
1461
1470
  };
1462
1471
  };
@@ -1604,7 +1613,7 @@ var cancelUpgrade = createAppAsyncThunk(
1604
1613
  );
1605
1614
  var completeUpgrade = createAppAsyncThunk(
1606
1615
  `${sliceName5}/completeUpgrade`,
1607
- ({ tenantId, plan, billing_profile }, { dispatch }) => general_api_default.post(`${tenantadmApiUrlv2}/tenants/${tenantId}/upgrade/complete`, { plan, billing_profile }).catch((err) => commonErrorHandler(err, `There was an error upgrading your account:`, dispatch)).then(() => Promise.all([dispatch(getDeviceLimit()), dispatch(getUserOrganization())]))
1616
+ ({ tenantId, plan, billing_profile }, { dispatch }) => general_api_default.post(`${tenantadmApiUrlv2}/tenants/${tenantId}/upgrade/complete`, { plan, billing_profile }).catch((err) => commonErrorHandler(err, `There was an error upgrading your account:`, dispatch)).then(() => Promise.all([dispatch(getDeviceLimits()), dispatch(getUserOrganization())]))
1608
1617
  );
1609
1618
  var prepareAuditlogQuery = ({
1610
1619
  startDate,
@@ -1766,7 +1775,7 @@ var getCurrentSubscription = createAppAsyncThunk(
1766
1775
  );
1767
1776
  var requestPlanUpgrade = createAppAsyncThunk(
1768
1777
  `${sliceName5}/requestPlanUpgrade`,
1769
- (order, { dispatch }) => general_api_default.post(`${tenantadmApiUrlv2}/billing/subscription`, order).catch((err) => commonErrorHandler(err, "There was an error sending your request", dispatch, commonErrorFallback)).then(() => Promise.all([setTimeout(() => dispatch(getDeviceLimit()), TIMEOUTS.threeSeconds), dispatch(getUserOrganization())]))
1778
+ (order, { dispatch }) => general_api_default.post(`${tenantadmApiUrlv2}/billing/subscription`, order).catch((err) => commonErrorHandler(err, "There was an error sending your request", dispatch, commonErrorFallback)).then(() => Promise.all([setTimeout(() => dispatch(getDeviceLimits()), TIMEOUTS.threeSeconds), dispatch(getUserOrganization())]))
1770
1779
  );
1771
1780
  var sendSupportMessage = createAppAsyncThunk(
1772
1781
  `${sliceName5}/sendSupportMessage`,
@@ -2656,7 +2665,7 @@ export {
2656
2665
  getDeviceInfo,
2657
2666
  getDeviceCount,
2658
2667
  getAllDeviceCounts,
2659
- getDeviceLimit,
2668
+ getDeviceLimits,
2660
2669
  setDeviceListState,
2661
2670
  getDevicesByStatus,
2662
2671
  getAllDevicesByStatus,
@@ -2767,4 +2776,4 @@ export {
2767
2776
  setAllTooltipsReadState,
2768
2777
  submitUserFeedback
2769
2778
  };
2770
- //# sourceMappingURL=chunk-VWNMAIL2.js.map
2779
+ //# sourceMappingURL=chunk-NVNO3I3K.js.map