@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
@@ -1076,15 +1076,22 @@ var getDeviceIdentityAttributes = (0, import_toolkit4.createSelector)(
1076
1076
  );
1077
1077
  var getDeviceCountsByStatus = (0, import_toolkit4.createSelector)(
1078
1078
  [getDevicesByStatus],
1079
- (byStatus) => Object.values(import_constants5.DEVICE_STATES).reduce((accu, state) => {
1080
- accu[state] = byStatus[state].total || 0;
1081
- return accu;
1082
- }, {})
1079
+ (byStatus) => Object.values(import_constants5.DEVICE_STATES).reduce(
1080
+ (accu, deviceState) => {
1081
+ const { counts } = byStatus[deviceState];
1082
+ const { total, ...tieredCounts } = counts;
1083
+ const count = Object.values(tieredCounts).reduce((accu2, countPerTier) => accu2 + countPerTier, 0);
1084
+ accu[deviceState] = count;
1085
+ accu.total = accu.total + count;
1086
+ return accu;
1087
+ },
1088
+ { total: 0 }
1089
+ )
1083
1090
  );
1084
1091
  var getDeviceById = (0, import_toolkit4.createSelector)([getDevicesById, (_, deviceId) => deviceId], (devicesById, deviceId = "") => devicesById[deviceId] ?? {});
1085
1092
  var getSelectedGroupInfo = (0, import_toolkit4.createSelector)(
1086
- [getAcceptedDevices, getGroupsById, getSelectedGroup],
1087
- ({ total: acceptedDeviceTotal }, groupsById, selectedGroup) => {
1093
+ [getDeviceCountsByStatus, getGroupsById, getSelectedGroup],
1094
+ ({ accepted: acceptedDeviceTotal }, groupsById, selectedGroup) => {
1088
1095
  let groupCount = acceptedDeviceTotal;
1089
1096
  let groupFilters = [];
1090
1097
  if (selectedGroup && groupsById[selectedGroup]) {
@@ -1100,8 +1107,8 @@ var getCombinedLimit = (0, import_toolkit4.createSelector)(
1100
1107
  // limit might be -1 for unlimited devices
1101
1108
  );
1102
1109
  var getLimitMaxed = (0, import_toolkit4.createSelector)(
1103
- [getAcceptedDevices, getCombinedLimit],
1104
- ({ total: acceptedDevices = 0 }, combinedLimit) => !!combinedLimit && combinedLimit <= acceptedDevices
1110
+ [getDeviceCountsByStatus, getCombinedLimit],
1111
+ ({ accepted: acceptedDevices }, combinedLimit) => !!combinedLimit && combinedLimit <= acceptedDevices
1105
1112
  );
1106
1113
  var getGroupsByIdWithoutUngrouped = (0, import_toolkit4.createSelector)([getGroupsById], ({ [UNGROUPED_GROUP.id]: ungrouped, ...groups }) => groups);
1107
1114
  var getGroupData = (0, import_toolkit4.createSelector)([getGroupsByIdWithoutUngrouped], (groups) => {
@@ -1721,12 +1728,10 @@ var initialState3 = {
1721
1728
  // }
1722
1729
  },
1723
1730
  byStatus: {
1724
- [import_constants5.DEVICE_STATES.accepted]: { deviceIds: [], total: 0 },
1725
- active: { deviceIds: [], total: 0 },
1726
- inactive: { deviceIds: [], total: 0 },
1727
- [import_constants5.DEVICE_STATES.pending]: { deviceIds: [], total: 0 },
1728
- [import_constants5.DEVICE_STATES.preauth]: { deviceIds: [], total: 0 },
1729
- [import_constants5.DEVICE_STATES.rejected]: { deviceIds: [], total: 0 }
1731
+ [import_constants5.DEVICE_STATES.accepted]: { deviceIds: [], counts: { standard: 0, micro: 0, system: 0, total: 0 } },
1732
+ [import_constants5.DEVICE_STATES.pending]: { deviceIds: [], counts: { standard: 0, micro: 0, system: 0, total: 0 } },
1733
+ [import_constants5.DEVICE_STATES.preauth]: { deviceIds: [], counts: { standard: 0, micro: 0, system: 0, total: 0 } },
1734
+ [import_constants5.DEVICE_STATES.rejected]: { deviceIds: [], counts: { standard: 0, micro: 0, system: 0, total: 0 } }
1730
1735
  },
1731
1736
  deviceList: {
1732
1737
  deviceIds: [],
@@ -1856,21 +1861,19 @@ var devicesSlice = (0, import_toolkit10.createSlice)({
1856
1861
  }
1857
1862
  state.filters = action.payload.filter((filter) => filter.key && filter.operator && filter.scope && typeof filter.value !== "undefined");
1858
1863
  },
1859
- setInactiveDevices: (state, action) => {
1860
- const { activeDeviceTotal, inactiveDeviceTotal } = action.payload;
1861
- state.byStatus.active.total = activeDeviceTotal;
1862
- state.byStatus.inactive.total = inactiveDeviceTotal;
1863
- },
1864
1864
  setDeviceReports: (state, action) => {
1865
1865
  state.reports = action.payload;
1866
1866
  },
1867
1867
  setDevicesByStatus: (state, action) => {
1868
- const { forceUpdate, status, total, deviceIds } = action.payload;
1869
- state.byStatus[status] = total || forceUpdate ? { deviceIds, total } : state.byStatus[status];
1868
+ const { status, total, deviceIds } = action.payload;
1869
+ if (total) {
1870
+ state.byStatus[status].deviceIds = deviceIds;
1871
+ state.byStatus[status].counts.total = total;
1872
+ }
1870
1873
  },
1871
1874
  setDevicesCountByStatus: (state, action) => {
1872
- const { count, status } = action.payload;
1873
- state.byStatus[status].total = count;
1875
+ const { countsPerTier, status } = action.payload;
1876
+ state.byStatus[status].counts = { ...countsPerTier, total: Object.values(countsPerTier).reduce((accu, tieredCount) => accu += tieredCount, 0) };
1874
1877
  },
1875
1878
  setDeviceLimits: (state, action) => {
1876
1879
  state.limits = action.payload;
@@ -1887,7 +1890,15 @@ var devicesSlice = (0, import_toolkit10.createSlice)({
1887
1890
  const hasMultipleAuthSets = authId && device.auth_sets ? device.auth_sets.filter((authset) => authset.id !== authId).length > 0 : false;
1888
1891
  if (!hasMultipleAuthSets && Object.values(import_constants5.DEVICE_STATES).includes(device.status)) {
1889
1892
  const deviceIds = state.byStatus[device.status].deviceIds.filter((id) => id !== deviceId);
1890
- state.byStatus[device.status] = { deviceIds, total: Math.max(0, state.byStatus[device.status].total - 1) };
1893
+ const deviceTier = device.attributes.tier || "standard";
1894
+ state.byStatus[device.status] = {
1895
+ deviceIds,
1896
+ counts: {
1897
+ ...state.byStatus[device.status].counts,
1898
+ [deviceTier]: Math.max(0, state.byStatus[device.status].counts[deviceTier] - 1),
1899
+ total: Math.max(0, state.byStatus[device.status].counts.total - 1)
1900
+ }
1901
+ };
1891
1902
  }
1892
1903
  }
1893
1904
  }
@@ -2263,7 +2274,8 @@ var initialState8 = {
2263
2274
  },
2264
2275
  userSettings: {
2265
2276
  columnSelection: [],
2266
- onboarding: {}
2277
+ onboarding: {},
2278
+ firstLoginTimestamp: null
2267
2279
  },
2268
2280
  userSettingsInitialized: false
2269
2281
  };
@@ -3215,21 +3227,13 @@ var getDeviceInfo = createAppAsyncThunk(`${sliceName3}/getDeviceInfo`, (deviceId
3215
3227
  }
3216
3228
  return Promise.all(tasks);
3217
3229
  });
3218
- var getDeviceCount = createAppAsyncThunk(
3219
- `${sliceName3}/getDeviceCount`,
3220
- (status, { dispatch, getState }) => general_api_default.post(getSearchEndpoint(getState()), {
3221
- page: 1,
3222
- per_page: 1,
3223
- filters: mapFiltersToTerms([{ key: "status", value: status, operator: import_constants5.DEVICE_FILTERING_OPTIONS.$eq.key, scope: "identity" }]),
3224
- attributes: defaultAttributes
3225
- }).then((response) => {
3226
- const count = Number(response.headers[import_constants5.headerNames.total]);
3227
- return dispatch(actions3.setDevicesCountByStatus({ count, status }));
3228
- })
3229
- );
3230
3230
  var getAllDeviceCounts = createAppAsyncThunk(
3231
3231
  `${sliceName3}/getAllDeviceCounts`,
3232
- (_, { dispatch }) => Promise.all([import_constants5.DEVICE_STATES.accepted, import_constants5.DEVICE_STATES.pending].map((status) => dispatch(getDeviceCount(status))))
3232
+ (_, { dispatch }) => general_api_default.get(`${import_constants5.inventoryApiUrlV2}/statistics`).then(({ data }) => {
3233
+ const { devices_by_status } = data;
3234
+ Object.entries(devices_by_status).map(([status, countsPerTier]) => dispatch(actions3.setDevicesCountByStatus({ countsPerTier, status })));
3235
+ return;
3236
+ })
3233
3237
  );
3234
3238
  var getDeviceLimits2 = createAppAsyncThunk(
3235
3239
  `${sliceName3}/getDeviceLimit`,
@@ -3301,7 +3305,7 @@ var getDevicesByStatus2 = createAppAsyncThunk(
3301
3305
  const state2 = getState();
3302
3306
  const deviceAccu = reduceReceivedDevices(response.data, [], state2, status);
3303
3307
  let total = !applicableFilters.length ? Number(response.headers[import_constants5.headerNames.total]) : 0;
3304
- if (status && state2.devices.byStatus[status].total === deviceAccu.ids.length) {
3308
+ if (status && state2.devices.byStatus[status].counts.total === deviceAccu.ids.length) {
3305
3309
  total = deviceAccu.ids.length;
3306
3310
  }
3307
3311
  const tasks = [dispatch(actions3.receivedDevices(deviceAccu.devicesById))];
@@ -3408,8 +3412,8 @@ var updateReportData = createAppAsyncThunk(`${sliceName3}/updateReportData`, (re
3408
3412
  const { group = "" } = report;
3409
3413
  const devicesById = getDevicesById(getState());
3410
3414
  const groups = getGroupsById(getState());
3411
- const acceptedDevices = getAcceptedDevices(getState());
3412
- const totalDeviceCount = groups[group] ? groups[group].total : acceptedDevices.total;
3415
+ const { accepted: acceptedDevicesCount } = getDeviceCountsByStatus(getState());
3416
+ const totalDeviceCount = groups[group] ? groups[group].total : acceptedDevicesCount;
3413
3417
  const reportsData = getDeviceReports(getState());
3414
3418
  const newReports = [...reportsData];
3415
3419
  newReports[reportIndex] = initializeDistributionData(report, groups, devicesById, totalDeviceCount);
@@ -3427,6 +3431,7 @@ var getReportDataWithoutBackendSupport = createAppAsyncThunk(
3427
3431
  const effectiveAttribute = software ? software : attribute;
3428
3432
  const devicesById = getDevicesById(getState());
3429
3433
  const acceptedDevices = getAcceptedDevices(getState());
3434
+ const { accepted: acceptedDevicesCount } = getDeviceCountsByStatus(getState());
3430
3435
  const groups = getGroupsById(getState());
3431
3436
  const { deviceIds = [], filters = [], total = 0 } = groups[group] || {};
3432
3437
  let groupDevicesRequest = Promise.resolve({
@@ -3434,7 +3439,7 @@ var getReportDataWithoutBackendSupport = createAppAsyncThunk(
3434
3439
  });
3435
3440
  if (group && (!(deviceIds.length && total) || deviceIds.length !== total || !deviceIds.every((id) => !!devicesById[id]))) {
3436
3441
  groupDevicesRequest = filters.length ? dispatch(getAllDynamicGroupDevices({ group, attribute: effectiveAttribute })).unwrap() : dispatch(getAllGroupDevices({ group, attribute: effectiveAttribute })).unwrap();
3437
- } else if (!group && (acceptedDevices.deviceIds.length !== acceptedDevices.total || !acceptedDevices.deviceIds.every((id) => !!devicesById[id]))) {
3442
+ } else if (!group && (acceptedDevices.deviceIds.length !== acceptedDevicesCount || !acceptedDevices.deviceIds.every((id) => !!devicesById[id]))) {
3438
3443
  groupDevicesRequest = dispatch(getAllDevicesByStatus({ status: import_constants5.DEVICE_STATES.accepted, attribute: effectiveAttribute })).unwrap();
3439
3444
  }
3440
3445
  return groupDevicesRequest.then(() => dispatch(updateReportData(reportIndex)));
@@ -3789,6 +3794,7 @@ var changeNotificationSetting = createAppAsyncThunk(
3789
3794
  // src/usersSlice/thunks.ts
3790
3795
  var import_helpers9 = require("@northern.tech/utils/helpers");
3791
3796
  var import_retrytimer = require("@northern.tech/utils/retrytimer");
3797
+ var import_dayjs = __toESM(require("dayjs"), 1);
3792
3798
  var import_md5 = __toESM(require("md5"), 1);
3793
3799
  var import_universal_cookie2 = __toESM(require("universal-cookie"), 1);
3794
3800
 
@@ -4373,6 +4379,7 @@ var saveUserSettings = createAppAsyncThunk(
4373
4379
  const updatedSettings = {
4374
4380
  ...userSettings,
4375
4381
  ...settings,
4382
+ firstLoginTimestamp: userSettings.firstLoginTimestamp ?? (0, import_dayjs.default)().format(),
4376
4383
  onboarding: {
4377
4384
  ...onboardingState,
4378
4385
  ...settings.onboarding