@northern.tech/store 0.11.0 → 0.13.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 (200) hide show
  1. package/dist/actions.cjs +22 -17
  2. package/dist/actions.cjs.map +1 -1
  3. package/dist/actions.d.cts +7 -22
  4. package/dist/actions.d.ts +7 -22
  5. package/dist/actions.js +9 -9
  6. package/dist/api/general-api.js +1 -1
  7. package/dist/api/users-api.js +1 -1
  8. package/dist/appSlice/index.cjs.map +1 -1
  9. package/dist/appSlice/index.d.cts +1 -1
  10. package/dist/appSlice/index.d.ts +1 -1
  11. package/dist/appSlice/index.js +2 -2
  12. package/dist/appSlice/mocks.cjs.map +1 -1
  13. package/dist/appSlice/mocks.js +2 -2
  14. package/dist/appSlice/selectors.d.cts +34 -528
  15. package/dist/appSlice/selectors.d.ts +34 -528
  16. package/dist/appSlice/thunks.cjs +49 -42
  17. package/dist/appSlice/thunks.cjs.map +1 -1
  18. package/dist/appSlice/thunks.d.cts +5 -3
  19. package/dist/appSlice/thunks.d.ts +5 -3
  20. package/dist/appSlice/thunks.js +18 -18
  21. package/dist/auth.js +1 -1
  22. package/dist/{chunk-QOFVCPRW.js → chunk-5PUF4LA5.js} +1 -1
  23. package/dist/chunk-5PUF4LA5.js.map +1 -0
  24. package/dist/{chunk-X3NF4KNC.js → chunk-6KAV62BW.js} +6 -6
  25. package/dist/{chunk-OFGCC3GM.js → chunk-7MTM3BDT.js} +1 -1
  26. package/dist/chunk-7MTM3BDT.js.map +1 -0
  27. package/dist/{chunk-4FNSLYK5.js → chunk-AR4FTKSL.js} +14 -14
  28. package/dist/{chunk-6KNRR7A5.js → chunk-BZAXFAGT.js} +4 -4
  29. package/dist/{chunk-ZNAJKEP2.js → chunk-CQXDAXQF.js} +1 -1
  30. package/dist/chunk-CQXDAXQF.js.map +1 -0
  31. package/dist/{chunk-I3H5EFZK.js → chunk-EOZ665GA.js} +15 -15
  32. package/dist/{chunk-NVNO3I3K.js → chunk-ETZVJXPD.js} +36 -41
  33. package/dist/chunk-ETZVJXPD.js.map +1 -0
  34. package/dist/{chunk-RFF52JYU.js → chunk-KJ4BPXMB.js} +3 -2
  35. package/dist/chunk-KJ4BPXMB.js.map +1 -0
  36. package/dist/{chunk-C2LGE3P6.js → chunk-OLKM53RL.js} +1 -1
  37. package/dist/chunk-OLKM53RL.js.map +1 -0
  38. package/dist/{chunk-HLX5L3IM.js → chunk-PVCHKW35.js} +1 -1
  39. package/dist/chunk-PVCHKW35.js.map +1 -0
  40. package/dist/{chunk-REZWSU22.js → chunk-VODRLEDP.js} +21 -17
  41. package/dist/chunk-VODRLEDP.js.map +1 -0
  42. package/dist/{chunk-MH5WPYQI.js → chunk-X7NEALMI.js} +16 -9
  43. package/dist/chunk-X7NEALMI.js.map +1 -0
  44. package/dist/{chunk-CUU3N6KW.js → chunk-YFAIYNQG.js} +16 -16
  45. package/dist/commonConstants.js +1 -1
  46. package/dist/commonSelectors.cjs +15 -8
  47. package/dist/commonSelectors.cjs.map +1 -1
  48. package/dist/commonSelectors.d.cts +178 -3523
  49. package/dist/commonSelectors.d.ts +178 -3523
  50. package/dist/commonSelectors.js +6 -6
  51. package/dist/constants.js +1 -1
  52. package/dist/deploymentsSlice/constants.js +1 -1
  53. package/dist/deploymentsSlice/index.cjs.map +1 -1
  54. package/dist/deploymentsSlice/index.d.cts +1 -1
  55. package/dist/deploymentsSlice/index.d.ts +1 -1
  56. package/dist/deploymentsSlice/index.js +2 -2
  57. package/dist/deploymentsSlice/mocks.cjs.map +1 -1
  58. package/dist/deploymentsSlice/mocks.js +2 -2
  59. package/dist/deploymentsSlice/selectors.d.cts +16 -138
  60. package/dist/deploymentsSlice/selectors.d.ts +16 -138
  61. package/dist/deploymentsSlice/selectors.js +1 -1
  62. package/dist/deploymentsSlice/thunks.cjs +49 -42
  63. package/dist/deploymentsSlice/thunks.cjs.map +1 -1
  64. package/dist/deploymentsSlice/thunks.d.cts +4 -2
  65. package/dist/deploymentsSlice/thunks.d.ts +4 -2
  66. package/dist/deploymentsSlice/thunks.js +18 -18
  67. package/dist/devicesSlice/constants.js +1 -1
  68. package/dist/devicesSlice/index.cjs +20 -16
  69. package/dist/devicesSlice/index.cjs.map +1 -1
  70. package/dist/devicesSlice/index.d.cts +11 -20
  71. package/dist/devicesSlice/index.d.ts +11 -20
  72. package/dist/devicesSlice/index.js +2 -2
  73. package/dist/devicesSlice/mocks.cjs +24 -22
  74. package/dist/devicesSlice/mocks.cjs.map +1 -1
  75. package/dist/devicesSlice/mocks.d.cts +20 -12
  76. package/dist/devicesSlice/mocks.d.ts +20 -12
  77. package/dist/devicesSlice/mocks.js +6 -8
  78. package/dist/devicesSlice/mocks.js.map +1 -1
  79. package/dist/devicesSlice/selectors.cjs +15 -8
  80. package/dist/devicesSlice/selectors.cjs.map +1 -1
  81. package/dist/devicesSlice/selectors.d.cts +207 -1730
  82. package/dist/devicesSlice/selectors.d.ts +207 -1730
  83. package/dist/devicesSlice/selectors.js +2 -2
  84. package/dist/devicesSlice/thunks.cjs +49 -44
  85. package/dist/devicesSlice/thunks.cjs.map +1 -1
  86. package/dist/devicesSlice/thunks.d.cts +12 -46
  87. package/dist/devicesSlice/thunks.d.ts +12 -46
  88. package/dist/devicesSlice/thunks.js +18 -20
  89. package/dist/liststatehook.js +1 -1
  90. package/dist/locationutils.js +1 -1
  91. package/dist/monitorSlice/index.cjs.map +1 -1
  92. package/dist/monitorSlice/index.d.cts +1 -1
  93. package/dist/monitorSlice/index.d.ts +1 -1
  94. package/dist/monitorSlice/index.js +2 -2
  95. package/dist/monitorSlice/mocks.cjs.map +1 -1
  96. package/dist/monitorSlice/mocks.js +2 -2
  97. package/dist/monitorSlice/thunks.cjs +37 -25
  98. package/dist/monitorSlice/thunks.cjs.map +1 -1
  99. package/dist/monitorSlice/thunks.d.cts +3 -2
  100. package/dist/monitorSlice/thunks.d.ts +3 -2
  101. package/dist/monitorSlice/thunks.js +16 -16
  102. package/dist/onboardingSlice/index.cjs.map +1 -1
  103. package/dist/onboardingSlice/index.d.cts +1 -1
  104. package/dist/onboardingSlice/index.d.ts +1 -1
  105. package/dist/onboardingSlice/index.js +1 -1
  106. package/dist/onboardingSlice/mocks.cjs.map +1 -1
  107. package/dist/onboardingSlice/mocks.js +1 -1
  108. package/dist/onboardingSlice/thunks.cjs +49 -42
  109. package/dist/onboardingSlice/thunks.cjs.map +1 -1
  110. package/dist/onboardingSlice/thunks.d.cts +7 -15
  111. package/dist/onboardingSlice/thunks.d.ts +7 -15
  112. package/dist/onboardingSlice/thunks.js +18 -18
  113. package/dist/organizationSlice/constants.js +1 -1
  114. package/dist/organizationSlice/index.cjs.map +1 -1
  115. package/dist/organizationSlice/index.d.cts +41 -31
  116. package/dist/organizationSlice/index.d.ts +41 -31
  117. package/dist/organizationSlice/index.js +2 -2
  118. package/dist/organizationSlice/mocks.cjs.map +1 -1
  119. package/dist/organizationSlice/mocks.js +2 -2
  120. package/dist/organizationSlice/selectors.d.cts +42 -659
  121. package/dist/organizationSlice/selectors.d.ts +42 -659
  122. package/dist/organizationSlice/selectors.js +1 -1
  123. package/dist/organizationSlice/thunks.cjs +51 -44
  124. package/dist/organizationSlice/thunks.cjs.map +1 -1
  125. package/dist/organizationSlice/thunks.d.cts +4 -1
  126. package/dist/organizationSlice/thunks.d.ts +4 -1
  127. package/dist/organizationSlice/thunks.js +18 -18
  128. package/dist/organizationSlice/types.cjs.map +1 -1
  129. package/dist/organizationSlice/types.d.cts +2 -12
  130. package/dist/organizationSlice/types.d.ts +2 -12
  131. package/dist/releasesSlice/index.js +1 -1
  132. package/dist/releasesSlice/mocks.d.cts +7 -1
  133. package/dist/releasesSlice/mocks.d.ts +7 -1
  134. package/dist/releasesSlice/mocks.js +1 -1
  135. package/dist/releasesSlice/selectors.d.cts +155 -930
  136. package/dist/releasesSlice/selectors.d.ts +155 -930
  137. package/dist/releasesSlice/selectors.js +1 -1
  138. package/dist/releasesSlice/thunks.cjs +37 -25
  139. package/dist/releasesSlice/thunks.cjs.map +1 -1
  140. package/dist/releasesSlice/thunks.d.cts +4 -2
  141. package/dist/releasesSlice/thunks.d.ts +4 -2
  142. package/dist/releasesSlice/thunks.js +16 -16
  143. package/dist/selectors.cjs +15 -8
  144. package/dist/selectors.cjs.map +1 -1
  145. package/dist/selectors.d.cts +6 -3
  146. package/dist/selectors.d.ts +6 -3
  147. package/dist/selectors.js +33 -33
  148. package/dist/sockethook.cjs +1 -1
  149. package/dist/sockethook.cjs.map +1 -1
  150. package/dist/sockethook.js +2 -2
  151. package/dist/sockethook.js.map +1 -1
  152. package/dist/store.cjs +22 -17
  153. package/dist/store.cjs.map +1 -1
  154. package/dist/store.d.cts +40 -658
  155. package/dist/store.d.ts +40 -658
  156. package/dist/store.js +10 -10
  157. package/dist/storehooks.cjs +52 -45
  158. package/dist/storehooks.cjs.map +1 -1
  159. package/dist/storehooks.js +19 -19
  160. package/dist/thunks.cjs +49 -44
  161. package/dist/thunks.cjs.map +1 -1
  162. package/dist/thunks.d.cts +7 -5
  163. package/dist/thunks.d.ts +7 -5
  164. package/dist/thunks.js +18 -20
  165. package/dist/useDeploymentDevice.cjs +49 -42
  166. package/dist/useDeploymentDevice.cjs.map +1 -1
  167. package/dist/useDeploymentDevice.js +19 -19
  168. package/dist/usersSlice/constants.js +1 -1
  169. package/dist/usersSlice/index.cjs +2 -1
  170. package/dist/usersSlice/index.cjs.map +1 -1
  171. package/dist/usersSlice/index.d.cts +47 -46
  172. package/dist/usersSlice/index.d.ts +47 -46
  173. package/dist/usersSlice/index.js +2 -2
  174. package/dist/usersSlice/mocks.cjs +2 -1
  175. package/dist/usersSlice/mocks.cjs.map +1 -1
  176. package/dist/usersSlice/mocks.js +2 -2
  177. package/dist/usersSlice/selectors.d.cts +75 -1436
  178. package/dist/usersSlice/selectors.d.ts +75 -1436
  179. package/dist/usersSlice/selectors.js +1 -1
  180. package/dist/usersSlice/thunks.cjs +49 -42
  181. package/dist/usersSlice/thunks.cjs.map +1 -1
  182. package/dist/usersSlice/thunks.d.cts +3 -1
  183. package/dist/usersSlice/thunks.d.ts +3 -1
  184. package/dist/usersSlice/thunks.js +18 -18
  185. package/dist/utils.js +1 -1
  186. package/package.json +4 -4
  187. package/dist/chunk-C2LGE3P6.js.map +0 -1
  188. package/dist/chunk-HLX5L3IM.js.map +0 -1
  189. package/dist/chunk-MH5WPYQI.js.map +0 -1
  190. package/dist/chunk-NVNO3I3K.js.map +0 -1
  191. package/dist/chunk-OFGCC3GM.js.map +0 -1
  192. package/dist/chunk-QOFVCPRW.js.map +0 -1
  193. package/dist/chunk-REZWSU22.js.map +0 -1
  194. package/dist/chunk-RFF52JYU.js.map +0 -1
  195. package/dist/chunk-ZNAJKEP2.js.map +0 -1
  196. /package/dist/{chunk-X3NF4KNC.js.map → chunk-6KAV62BW.js.map} +0 -0
  197. /package/dist/{chunk-4FNSLYK5.js.map → chunk-AR4FTKSL.js.map} +0 -0
  198. /package/dist/{chunk-6KNRR7A5.js.map → chunk-BZAXFAGT.js.map} +0 -0
  199. /package/dist/{chunk-I3H5EFZK.js.map → chunk-EOZ665GA.js.map} +0 -0
  200. /package/dist/{chunk-CUU3N6KW.js.map → chunk-YFAIYNQG.js.map} +0 -0
@@ -19,8 +19,8 @@ import {
19
19
  } from "../chunk-3NOV7X4M.js";
20
20
  import "../chunk-WWED74SG.js";
21
21
  import "../chunk-2DYA3X77.js";
22
- import "../chunk-ZKAH3APE.js";
23
22
  import "../chunk-FAJ3I2UQ.js";
23
+ import "../chunk-ZKAH3APE.js";
24
24
  import "../chunk-OWWCFJZ5.js";
25
25
  export {
26
26
  getAuditLog,
@@ -72,7 +72,7 @@ __export(thunks_exports, {
72
72
  });
73
73
  module.exports = __toCommonJS(thunks_exports);
74
74
  var import_helpers11 = require("@northern.tech/utils/helpers");
75
- var import_dayjs = __toESM(require("dayjs"), 1);
75
+ var import_dayjs2 = __toESM(require("dayjs"), 1);
76
76
  var import_utc = __toESM(require("dayjs/plugin/utc.js"), 1);
77
77
  var import_jwt_decode = require("jwt-decode");
78
78
  var import_md52 = __toESM(require("md5"), 1);
@@ -1174,12 +1174,10 @@ var initialState4 = {
1174
1174
  // }
1175
1175
  },
1176
1176
  byStatus: {
1177
- [import_constants5.DEVICE_STATES.accepted]: { deviceIds: [], total: 0 },
1178
- active: { deviceIds: [], total: 0 },
1179
- inactive: { deviceIds: [], total: 0 },
1180
- [import_constants5.DEVICE_STATES.pending]: { deviceIds: [], total: 0 },
1181
- [import_constants5.DEVICE_STATES.preauth]: { deviceIds: [], total: 0 },
1182
- [import_constants5.DEVICE_STATES.rejected]: { deviceIds: [], total: 0 }
1177
+ [import_constants5.DEVICE_STATES.accepted]: { deviceIds: [], counts: { standard: 0, micro: 0, system: 0, total: 0 } },
1178
+ [import_constants5.DEVICE_STATES.pending]: { deviceIds: [], counts: { standard: 0, micro: 0, system: 0, total: 0 } },
1179
+ [import_constants5.DEVICE_STATES.preauth]: { deviceIds: [], counts: { standard: 0, micro: 0, system: 0, total: 0 } },
1180
+ [import_constants5.DEVICE_STATES.rejected]: { deviceIds: [], counts: { standard: 0, micro: 0, system: 0, total: 0 } }
1183
1181
  },
1184
1182
  deviceList: {
1185
1183
  deviceIds: [],
@@ -1309,21 +1307,19 @@ var devicesSlice = (0, import_toolkit4.createSlice)({
1309
1307
  }
1310
1308
  state.filters = action.payload.filter((filter) => filter.key && filter.operator && filter.scope && typeof filter.value !== "undefined");
1311
1309
  },
1312
- setInactiveDevices: (state, action) => {
1313
- const { activeDeviceTotal, inactiveDeviceTotal } = action.payload;
1314
- state.byStatus.active.total = activeDeviceTotal;
1315
- state.byStatus.inactive.total = inactiveDeviceTotal;
1316
- },
1317
1310
  setDeviceReports: (state, action) => {
1318
1311
  state.reports = action.payload;
1319
1312
  },
1320
1313
  setDevicesByStatus: (state, action) => {
1321
- const { forceUpdate, status, total, deviceIds } = action.payload;
1322
- state.byStatus[status] = total || forceUpdate ? { deviceIds, total } : state.byStatus[status];
1314
+ const { status, total, deviceIds } = action.payload;
1315
+ if (total) {
1316
+ state.byStatus[status].deviceIds = deviceIds;
1317
+ state.byStatus[status].counts.total = total;
1318
+ }
1323
1319
  },
1324
1320
  setDevicesCountByStatus: (state, action) => {
1325
- const { count, status } = action.payload;
1326
- state.byStatus[status].total = count;
1321
+ const { countsPerTier, status } = action.payload;
1322
+ state.byStatus[status].counts = { ...countsPerTier, total: Object.values(countsPerTier).reduce((accu, tieredCount) => accu += tieredCount, 0) };
1327
1323
  },
1328
1324
  setDeviceLimits: (state, action) => {
1329
1325
  state.limits = action.payload;
@@ -1340,7 +1336,15 @@ var devicesSlice = (0, import_toolkit4.createSlice)({
1340
1336
  const hasMultipleAuthSets = authId && device.auth_sets ? device.auth_sets.filter((authset) => authset.id !== authId).length > 0 : false;
1341
1337
  if (!hasMultipleAuthSets && Object.values(import_constants5.DEVICE_STATES).includes(device.status)) {
1342
1338
  const deviceIds = state.byStatus[device.status].deviceIds.filter((id) => id !== deviceId);
1343
- state.byStatus[device.status] = { deviceIds, total: Math.max(0, state.byStatus[device.status].total - 1) };
1339
+ const deviceTier = device.attributes.tier || "standard";
1340
+ state.byStatus[device.status] = {
1341
+ deviceIds,
1342
+ counts: {
1343
+ ...state.byStatus[device.status].counts,
1344
+ [deviceTier]: Math.max(0, state.byStatus[device.status].counts[deviceTier] - 1),
1345
+ total: Math.max(0, state.byStatus[device.status].counts.total - 1)
1346
+ }
1347
+ };
1344
1348
  }
1345
1349
  }
1346
1350
  }
@@ -1618,7 +1622,8 @@ var initialState8 = {
1618
1622
  },
1619
1623
  userSettings: {
1620
1624
  columnSelection: [],
1621
- onboarding: {}
1625
+ onboarding: {},
1626
+ firstLoginTimestamp: null
1622
1627
  },
1623
1628
  userSettingsInitialized: false
1624
1629
  };
@@ -1908,15 +1913,22 @@ var getDeviceIdentityAttributes = (0, import_toolkit11.createSelector)(
1908
1913
  );
1909
1914
  var getDeviceCountsByStatus = (0, import_toolkit11.createSelector)(
1910
1915
  [getDevicesByStatus],
1911
- (byStatus) => Object.values(import_constants5.DEVICE_STATES).reduce((accu, state) => {
1912
- accu[state] = byStatus[state].total || 0;
1913
- return accu;
1914
- }, {})
1916
+ (byStatus) => Object.values(import_constants5.DEVICE_STATES).reduce(
1917
+ (accu, deviceState) => {
1918
+ const { counts } = byStatus[deviceState];
1919
+ const { total, ...tieredCounts } = counts;
1920
+ const count = Object.values(tieredCounts).reduce((accu2, countPerTier) => accu2 + countPerTier, 0);
1921
+ accu[deviceState] = count;
1922
+ accu.total = accu.total + count;
1923
+ return accu;
1924
+ },
1925
+ { total: 0 }
1926
+ )
1915
1927
  );
1916
1928
  var getDeviceById = (0, import_toolkit11.createSelector)([getDevicesById, (_, deviceId) => deviceId], (devicesById, deviceId = "") => devicesById[deviceId] ?? {});
1917
1929
  var getSelectedGroupInfo = (0, import_toolkit11.createSelector)(
1918
- [getAcceptedDevices, getGroupsById, getSelectedGroup],
1919
- ({ total: acceptedDeviceTotal }, groupsById, selectedGroup) => {
1930
+ [getDeviceCountsByStatus, getGroupsById, getSelectedGroup],
1931
+ ({ accepted: acceptedDeviceTotal }, groupsById, selectedGroup) => {
1920
1932
  let groupCount = acceptedDeviceTotal;
1921
1933
  let groupFilters = [];
1922
1934
  if (selectedGroup && groupsById[selectedGroup]) {
@@ -1932,8 +1944,8 @@ var getCombinedLimit = (0, import_toolkit11.createSelector)(
1932
1944
  // limit might be -1 for unlimited devices
1933
1945
  );
1934
1946
  var getLimitMaxed = (0, import_toolkit11.createSelector)(
1935
- [getAcceptedDevices, getCombinedLimit],
1936
- ({ total: acceptedDevices = 0 }, combinedLimit) => !!combinedLimit && combinedLimit <= acceptedDevices
1947
+ [getDeviceCountsByStatus, getCombinedLimit],
1948
+ ({ accepted: acceptedDevices }, combinedLimit) => !!combinedLimit && combinedLimit <= acceptedDevices
1937
1949
  );
1938
1950
  var getGroupsByIdWithoutUngrouped = (0, import_toolkit11.createSelector)([getGroupsById], ({ [UNGROUPED_GROUP.id]: ungrouped, ...groups }) => groups);
1939
1951
  var getGroupData = (0, import_toolkit11.createSelector)([getGroupsByIdWithoutUngrouped], (groups) => {
@@ -3377,21 +3389,13 @@ var getDeviceInfo = createAppAsyncThunk(`${sliceName4}/getDeviceInfo`, (deviceId
3377
3389
  }
3378
3390
  return Promise.all(tasks);
3379
3391
  });
3380
- var getDeviceCount = createAppAsyncThunk(
3381
- `${sliceName4}/getDeviceCount`,
3382
- (status, { dispatch, getState }) => general_api_default.post(getSearchEndpoint(getState()), {
3383
- page: 1,
3384
- per_page: 1,
3385
- filters: mapFiltersToTerms([{ key: "status", value: status, operator: import_constants5.DEVICE_FILTERING_OPTIONS.$eq.key, scope: "identity" }]),
3386
- attributes: defaultAttributes
3387
- }).then((response) => {
3388
- const count = Number(response.headers[import_constants5.headerNames.total]);
3389
- return dispatch(actions4.setDevicesCountByStatus({ count, status }));
3390
- })
3391
- );
3392
3392
  var getAllDeviceCounts = createAppAsyncThunk(
3393
3393
  `${sliceName4}/getAllDeviceCounts`,
3394
- (_, { dispatch }) => Promise.all([import_constants5.DEVICE_STATES.accepted, import_constants5.DEVICE_STATES.pending].map((status) => dispatch(getDeviceCount(status))))
3394
+ (_, { dispatch }) => general_api_default.get(`${import_constants5.inventoryApiUrlV2}/statistics`).then(({ data }) => {
3395
+ const { devices_by_status } = data;
3396
+ Object.entries(devices_by_status).map(([status, countsPerTier]) => dispatch(actions4.setDevicesCountByStatus({ countsPerTier, status })));
3397
+ return;
3398
+ })
3395
3399
  );
3396
3400
  var getDeviceLimits2 = createAppAsyncThunk(
3397
3401
  `${sliceName4}/getDeviceLimit`,
@@ -3463,7 +3467,7 @@ var getDevicesByStatus2 = createAppAsyncThunk(
3463
3467
  const state2 = getState();
3464
3468
  const deviceAccu = reduceReceivedDevices(response.data, [], state2, status);
3465
3469
  let total = !applicableFilters.length ? Number(response.headers[import_constants5.headerNames.total]) : 0;
3466
- if (status && state2.devices.byStatus[status].total === deviceAccu.ids.length) {
3470
+ if (status && state2.devices.byStatus[status].counts.total === deviceAccu.ids.length) {
3467
3471
  total = deviceAccu.ids.length;
3468
3472
  }
3469
3473
  const tasks = [dispatch(actions4.receivedDevices(deviceAccu.devicesById))];
@@ -3570,8 +3574,8 @@ var updateReportData = createAppAsyncThunk(`${sliceName4}/updateReportData`, (re
3570
3574
  const { group = "" } = report;
3571
3575
  const devicesById = getDevicesById(getState());
3572
3576
  const groups = getGroupsById(getState());
3573
- const acceptedDevices = getAcceptedDevices(getState());
3574
- const totalDeviceCount = groups[group] ? groups[group].total : acceptedDevices.total;
3577
+ const { accepted: acceptedDevicesCount } = getDeviceCountsByStatus(getState());
3578
+ const totalDeviceCount = groups[group] ? groups[group].total : acceptedDevicesCount;
3575
3579
  const reportsData = getDeviceReports(getState());
3576
3580
  const newReports = [...reportsData];
3577
3581
  newReports[reportIndex] = initializeDistributionData(report, groups, devicesById, totalDeviceCount);
@@ -3589,6 +3593,7 @@ var getReportDataWithoutBackendSupport = createAppAsyncThunk(
3589
3593
  const effectiveAttribute = software ? software : attribute;
3590
3594
  const devicesById = getDevicesById(getState());
3591
3595
  const acceptedDevices = getAcceptedDevices(getState());
3596
+ const { accepted: acceptedDevicesCount } = getDeviceCountsByStatus(getState());
3592
3597
  const groups = getGroupsById(getState());
3593
3598
  const { deviceIds = [], filters = [], total = 0 } = groups[group] || {};
3594
3599
  let groupDevicesRequest = Promise.resolve({
@@ -3596,7 +3601,7 @@ var getReportDataWithoutBackendSupport = createAppAsyncThunk(
3596
3601
  });
3597
3602
  if (group && (!(deviceIds.length && total) || deviceIds.length !== total || !deviceIds.every((id) => !!devicesById[id]))) {
3598
3603
  groupDevicesRequest = filters.length ? dispatch(getAllDynamicGroupDevices({ group, attribute: effectiveAttribute })).unwrap() : dispatch(getAllGroupDevices({ group, attribute: effectiveAttribute })).unwrap();
3599
- } else if (!group && (acceptedDevices.deviceIds.length !== acceptedDevices.total || !acceptedDevices.deviceIds.every((id) => !!devicesById[id]))) {
3604
+ } else if (!group && (acceptedDevices.deviceIds.length !== acceptedDevicesCount || !acceptedDevices.deviceIds.every((id) => !!devicesById[id]))) {
3600
3605
  groupDevicesRequest = dispatch(getAllDevicesByStatus({ status: import_constants5.DEVICE_STATES.accepted, attribute: effectiveAttribute })).unwrap();
3601
3606
  }
3602
3607
  return groupDevicesRequest.then(() => dispatch(updateReportData(reportIndex)));
@@ -3951,6 +3956,7 @@ var changeNotificationSetting = createAppAsyncThunk(
3951
3956
  // src/usersSlice/thunks.ts
3952
3957
  var import_helpers10 = require("@northern.tech/utils/helpers");
3953
3958
  var import_retrytimer = require("@northern.tech/utils/retrytimer");
3959
+ var import_dayjs = __toESM(require("dayjs"), 1);
3954
3960
  var import_md5 = __toESM(require("md5"), 1);
3955
3961
  var import_universal_cookie3 = __toESM(require("universal-cookie"), 1);
3956
3962
 
@@ -4535,6 +4541,7 @@ var saveUserSettings = createAppAsyncThunk(
4535
4541
  const updatedSettings = {
4536
4542
  ...userSettings,
4537
4543
  ...settings,
4544
+ firstLoginTimestamp: userSettings.firstLoginTimestamp ?? (0, import_dayjs.default)().format(),
4538
4545
  onboarding: {
4539
4546
  ...onboardingState,
4540
4547
  ...settings.onboarding
@@ -4614,7 +4621,7 @@ var submitUserFeedback = createAppAsyncThunk(
4614
4621
 
4615
4622
  // src/organizationSlice/thunks.ts
4616
4623
  var cookies4 = new import_universal_cookie4.default();
4617
- import_dayjs.default.extend(import_utc.default);
4624
+ import_dayjs2.default.extend(import_utc.default);
4618
4625
  var { setAnnouncement: setAnnouncement2, setSnackbar: setSnackbar5 } = actions_default;
4619
4626
  var { page: defaultPage4, perPage: defaultPerPage4 } = import_constants5.DEVICE_LIST_DEFAULTS;
4620
4627
  var cancelRequest = createAppAsyncThunk(`${sliceName}/cancelRequest`, (reason, { dispatch, getState }) => {