@northern.tech/store 0.5.2 → 0.6.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 (261) hide show
  1. package/dist/actions.cjs +47 -0
  2. package/dist/actions.cjs.map +1 -1
  3. package/dist/actions.d.cts +14 -15
  4. package/dist/actions.d.ts +14 -15
  5. package/dist/actions.js +10 -10
  6. package/dist/api/general-api.cjs +5 -6
  7. package/dist/api/general-api.cjs.map +1 -1
  8. package/dist/api/general-api.d.cts +8 -8
  9. package/dist/api/general-api.d.ts +8 -8
  10. package/dist/api/general-api.js +4 -4
  11. package/dist/api/users-api.cjs +5 -6
  12. package/dist/api/users-api.cjs.map +1 -1
  13. package/dist/api/users-api.d.cts +1 -1
  14. package/dist/api/users-api.d.ts +1 -1
  15. package/dist/api/users-api.js +5 -5
  16. package/dist/appSlice/constants.cjs +1 -0
  17. package/dist/appSlice/constants.cjs.map +1 -1
  18. package/dist/appSlice/constants.d.cts +5 -0
  19. package/dist/appSlice/constants.d.ts +5 -0
  20. package/dist/appSlice/constants.js +1 -1
  21. package/dist/appSlice/index.cjs +1 -0
  22. package/dist/appSlice/index.cjs.map +1 -1
  23. package/dist/appSlice/index.js +3 -3
  24. package/dist/appSlice/mocks.cjs +1 -0
  25. package/dist/appSlice/mocks.cjs.map +1 -1
  26. package/dist/appSlice/mocks.js +3 -3
  27. package/dist/appSlice/selectors.d.cts +9 -9
  28. package/dist/appSlice/selectors.d.ts +9 -9
  29. package/dist/appSlice/thunks.cjs +84 -27
  30. package/dist/appSlice/thunks.cjs.map +1 -1
  31. package/dist/appSlice/thunks.d.cts +1 -1
  32. package/dist/appSlice/thunks.d.ts +1 -1
  33. package/dist/appSlice/thunks.js +26 -26
  34. package/dist/auth.cjs +4 -5
  35. package/dist/auth.cjs.map +1 -1
  36. package/dist/auth.js +3 -3
  37. package/dist/{chunk-H5FAPMJJ.js → chunk-2ASLHSBV.js} +9 -9
  38. package/dist/{chunk-KC7SKI3U.js → chunk-2M5W3IDP.js} +8 -5
  39. package/dist/{chunk-KC7SKI3U.js.map → chunk-2M5W3IDP.js.map} +1 -1
  40. package/dist/{chunk-V3QEONX7.js → chunk-3ECSADAW.js} +13 -13
  41. package/dist/{chunk-YY6SKZDF.js → chunk-67GS7ERY.js} +3 -12
  42. package/dist/chunk-67GS7ERY.js.map +1 -0
  43. package/dist/{chunk-UGSLGUS6.js → chunk-7BKDELUQ.js} +2 -2
  44. package/dist/{chunk-QHK7GGV4.js → chunk-B7GXA42G.js} +3 -3
  45. package/dist/{chunk-PGFVHKP5.js → chunk-CEH2D355.js} +2 -2
  46. package/dist/{chunk-VUFRP6P3.js → chunk-EIIFEV62.js} +2 -2
  47. package/dist/chunk-EIIFEV62.js.map +1 -0
  48. package/dist/{chunk-3P3IE42O.js → chunk-GN2HC6HW.js} +70 -61
  49. package/dist/chunk-GN2HC6HW.js.map +1 -0
  50. package/dist/{chunk-ABJLRDCO.js → chunk-MVK6W7ZH.js} +2 -2
  51. package/dist/chunk-MVK6W7ZH.js.map +1 -0
  52. package/dist/{chunk-HFOTAPIJ.js → chunk-N3XU7WJM.js} +2 -1
  53. package/dist/chunk-N3XU7WJM.js.map +1 -0
  54. package/dist/{chunk-QYLGIR4W.js → chunk-PB36MEEN.js} +3 -2
  55. package/dist/chunk-PB36MEEN.js.map +1 -0
  56. package/dist/{chunk-F26IKSML.js → chunk-PTQS3JDZ.js} +10 -10
  57. package/dist/{chunk-QKPV5RRN.js → chunk-QPHDDTQC.js} +55 -21
  58. package/dist/chunk-QPHDDTQC.js.map +1 -0
  59. package/dist/{chunk-MZNANSS2.js → chunk-RRL7OZHU.js} +2 -2
  60. package/dist/{chunk-MSOXMRF7.js → chunk-RWGVRDFG.js} +12 -3
  61. package/dist/chunk-RWGVRDFG.js.map +1 -0
  62. package/dist/{chunk-RS37Y2PQ.js → chunk-TL6KSTZZ.js} +4 -4
  63. package/dist/chunk-TL6KSTZZ.js.map +1 -0
  64. package/dist/{chunk-SCZLNFB5.js → chunk-TU4IVT3M.js} +14 -14
  65. package/dist/{chunk-R6KRH2IY.js → chunk-VIV6U46F.js} +6 -4
  66. package/dist/chunk-VIV6U46F.js.map +1 -0
  67. package/dist/{chunk-ZJW3QIPM.js → chunk-W2RDUU5Q.js} +2 -2
  68. package/dist/{chunk-OOICURFL.js → chunk-WD7MIPCO.js} +48 -2
  69. package/dist/chunk-WD7MIPCO.js.map +1 -0
  70. package/dist/{chunk-KJNNEDRV.js → chunk-XLXLFSZA.js} +2 -2
  71. package/dist/{chunk-UE5N5VO3.js → chunk-XZDCXV4H.js} +3 -3
  72. package/dist/chunk-XZDCXV4H.js.map +1 -0
  73. package/dist/{chunk-7C4SQBEE.js → chunk-YEQ7D6AW.js} +5 -6
  74. package/dist/chunk-YEQ7D6AW.js.map +1 -0
  75. package/dist/{chunk-JXQUFKID.js → chunk-ZABYTBKG.js} +7 -2
  76. package/dist/chunk-ZABYTBKG.js.map +1 -0
  77. package/dist/commonConstants.cjs +4 -5
  78. package/dist/commonConstants.cjs.map +1 -1
  79. package/dist/commonConstants.d.cts +14 -13
  80. package/dist/commonConstants.d.ts +14 -13
  81. package/dist/commonConstants.js +2 -2
  82. package/dist/commonSelectors.cjs +14 -25
  83. package/dist/commonSelectors.cjs.map +1 -1
  84. package/dist/commonSelectors.d.cts +127 -138
  85. package/dist/commonSelectors.d.ts +127 -138
  86. package/dist/commonSelectors.js +10 -10
  87. package/dist/constants.cjs +5 -5
  88. package/dist/constants.cjs.map +1 -1
  89. package/dist/constants.d.cts +1 -1
  90. package/dist/constants.d.ts +1 -1
  91. package/dist/constants.js +2 -2
  92. package/dist/deploymentsSlice/constants.cjs.map +1 -1
  93. package/dist/deploymentsSlice/constants.d.cts +2 -2
  94. package/dist/deploymentsSlice/constants.d.ts +2 -2
  95. package/dist/deploymentsSlice/constants.js +2 -2
  96. package/dist/deploymentsSlice/index.cjs.map +1 -1
  97. package/dist/deploymentsSlice/index.d.cts +5 -4
  98. package/dist/deploymentsSlice/index.d.ts +5 -4
  99. package/dist/deploymentsSlice/index.js +3 -3
  100. package/dist/deploymentsSlice/mocks.cjs.map +1 -1
  101. package/dist/deploymentsSlice/mocks.js +3 -3
  102. package/dist/deploymentsSlice/selectors.cjs +6 -0
  103. package/dist/deploymentsSlice/selectors.cjs.map +1 -1
  104. package/dist/deploymentsSlice/selectors.d.cts +25 -4
  105. package/dist/deploymentsSlice/selectors.d.ts +25 -4
  106. package/dist/deploymentsSlice/selectors.js +5 -3
  107. package/dist/deploymentsSlice/thunks.cjs +86 -27
  108. package/dist/deploymentsSlice/thunks.cjs.map +1 -1
  109. package/dist/deploymentsSlice/thunks.d.cts +17 -4
  110. package/dist/deploymentsSlice/thunks.d.ts +17 -4
  111. package/dist/deploymentsSlice/thunks.js +28 -26
  112. package/dist/devicesSlice/constants.js +2 -2
  113. package/dist/devicesSlice/index.cjs.map +1 -1
  114. package/dist/devicesSlice/index.d.cts +4 -4
  115. package/dist/devicesSlice/index.d.ts +4 -4
  116. package/dist/devicesSlice/index.js +3 -3
  117. package/dist/devicesSlice/mocks.cjs +4 -4
  118. package/dist/devicesSlice/mocks.cjs.map +1 -1
  119. package/dist/devicesSlice/mocks.js +7 -7
  120. package/dist/devicesSlice/mocks.js.map +1 -1
  121. package/dist/devicesSlice/selectors.cjs +4 -5
  122. package/dist/devicesSlice/selectors.cjs.map +1 -1
  123. package/dist/devicesSlice/selectors.d.cts +23 -23
  124. package/dist/devicesSlice/selectors.d.ts +23 -23
  125. package/dist/devicesSlice/selectors.js +3 -3
  126. package/dist/devicesSlice/thunks.cjs +84 -27
  127. package/dist/devicesSlice/thunks.cjs.map +1 -1
  128. package/dist/devicesSlice/thunks.d.cts +5 -5
  129. package/dist/devicesSlice/thunks.d.ts +5 -5
  130. package/dist/devicesSlice/thunks.js +26 -26
  131. package/dist/liststatehook.cjs +10 -8
  132. package/dist/liststatehook.cjs.map +1 -1
  133. package/dist/liststatehook.d.cts +4 -2
  134. package/dist/liststatehook.d.ts +4 -2
  135. package/dist/liststatehook.js +3 -3
  136. package/dist/locationutils.cjs +10 -8
  137. package/dist/locationutils.cjs.map +1 -1
  138. package/dist/locationutils.d.cts +3 -1
  139. package/dist/locationutils.d.ts +3 -1
  140. package/dist/locationutils.js +3 -3
  141. package/dist/monitorSlice/index.js +3 -3
  142. package/dist/monitorSlice/mocks.js +3 -3
  143. package/dist/monitorSlice/thunks.cjs +62 -16
  144. package/dist/monitorSlice/thunks.cjs.map +1 -1
  145. package/dist/monitorSlice/thunks.d.cts +1 -1
  146. package/dist/monitorSlice/thunks.d.ts +1 -1
  147. package/dist/monitorSlice/thunks.js +22 -22
  148. package/dist/onboardingSlice/thunks.cjs +84 -27
  149. package/dist/onboardingSlice/thunks.cjs.map +1 -1
  150. package/dist/onboardingSlice/thunks.d.cts +1 -1
  151. package/dist/onboardingSlice/thunks.d.ts +1 -1
  152. package/dist/onboardingSlice/thunks.js +26 -26
  153. package/dist/organizationSlice/constants.js +2 -2
  154. package/dist/organizationSlice/index.js +3 -3
  155. package/dist/organizationSlice/mocks.d.cts +2 -2
  156. package/dist/organizationSlice/mocks.d.ts +2 -2
  157. package/dist/organizationSlice/mocks.js +3 -3
  158. package/dist/organizationSlice/selectors.cjs +4 -25
  159. package/dist/organizationSlice/selectors.cjs.map +1 -1
  160. package/dist/organizationSlice/selectors.d.cts +45 -203
  161. package/dist/organizationSlice/selectors.d.ts +45 -203
  162. package/dist/organizationSlice/selectors.js +3 -5
  163. package/dist/organizationSlice/thunks.cjs +107 -51
  164. package/dist/organizationSlice/thunks.cjs.map +1 -1
  165. package/dist/organizationSlice/thunks.d.cts +6 -6
  166. package/dist/organizationSlice/thunks.d.ts +6 -6
  167. package/dist/organizationSlice/thunks.js +26 -26
  168. package/dist/organizationSlice/types.cjs.map +1 -1
  169. package/dist/organizationSlice/types.d.cts +8 -30
  170. package/dist/organizationSlice/types.d.ts +8 -30
  171. package/dist/releasesSlice/index.cjs +46 -0
  172. package/dist/releasesSlice/index.cjs.map +1 -1
  173. package/dist/releasesSlice/index.d.cts +55 -5
  174. package/dist/releasesSlice/index.d.ts +55 -5
  175. package/dist/releasesSlice/index.js +3 -3
  176. package/dist/releasesSlice/mocks.cjs +46 -0
  177. package/dist/releasesSlice/mocks.cjs.map +1 -1
  178. package/dist/releasesSlice/mocks.d.cts +11 -0
  179. package/dist/releasesSlice/mocks.d.ts +11 -0
  180. package/dist/releasesSlice/mocks.js +3 -3
  181. package/dist/releasesSlice/selectors.cjs +17 -5
  182. package/dist/releasesSlice/selectors.cjs.map +1 -1
  183. package/dist/releasesSlice/selectors.d.cts +210 -27
  184. package/dist/releasesSlice/selectors.d.ts +210 -27
  185. package/dist/releasesSlice/selectors.js +12 -4
  186. package/dist/releasesSlice/thunks.cjs +109 -27
  187. package/dist/releasesSlice/thunks.cjs.map +1 -1
  188. package/dist/releasesSlice/thunks.d.cts +71 -6
  189. package/dist/releasesSlice/thunks.d.ts +71 -6
  190. package/dist/releasesSlice/thunks.js +27 -23
  191. package/dist/selectors.cjs +29 -28
  192. package/dist/selectors.cjs.map +1 -1
  193. package/dist/selectors.d.cts +5 -19
  194. package/dist/selectors.d.ts +5 -19
  195. package/dist/selectors.js +30 -20
  196. package/dist/sockethook.cjs +4 -5
  197. package/dist/sockethook.cjs.map +1 -1
  198. package/dist/sockethook.js +2 -2
  199. package/dist/store.cjs +47 -0
  200. package/dist/store.cjs.map +1 -1
  201. package/dist/store.d.cts +22 -121
  202. package/dist/store.d.ts +22 -121
  203. package/dist/store.js +12 -12
  204. package/dist/storehooks.cjs +154 -65
  205. package/dist/storehooks.cjs.map +1 -1
  206. package/dist/storehooks.js +27 -26
  207. package/dist/storehooks.js.map +1 -1
  208. package/dist/thunks.cjs +158 -64
  209. package/dist/thunks.cjs.map +1 -1
  210. package/dist/thunks.d.cts +4 -4
  211. package/dist/thunks.d.ts +4 -4
  212. package/dist/thunks.js +34 -28
  213. package/dist/useDeploymentDevice.cjs +84 -27
  214. package/dist/useDeploymentDevice.cjs.map +1 -1
  215. package/dist/useDeploymentDevice.js +26 -26
  216. package/dist/usersSlice/constants.js +2 -2
  217. package/dist/usersSlice/index.js +3 -3
  218. package/dist/usersSlice/mocks.cjs +1 -0
  219. package/dist/usersSlice/mocks.cjs.map +1 -1
  220. package/dist/usersSlice/mocks.d.cts +3 -3
  221. package/dist/usersSlice/mocks.d.ts +3 -3
  222. package/dist/usersSlice/mocks.js +4 -3
  223. package/dist/usersSlice/mocks.js.map +1 -1
  224. package/dist/usersSlice/selectors.cjs +8 -6
  225. package/dist/usersSlice/selectors.cjs.map +1 -1
  226. package/dist/usersSlice/selectors.d.cts +33 -34
  227. package/dist/usersSlice/selectors.d.ts +33 -34
  228. package/dist/usersSlice/selectors.js +6 -4
  229. package/dist/usersSlice/thunks.cjs +86 -29
  230. package/dist/usersSlice/thunks.cjs.map +1 -1
  231. package/dist/usersSlice/thunks.d.cts +19 -11
  232. package/dist/usersSlice/thunks.d.ts +19 -11
  233. package/dist/usersSlice/thunks.js +28 -28
  234. package/dist/utils.cjs +4 -5
  235. package/dist/utils.cjs.map +1 -1
  236. package/dist/utils.js +3 -3
  237. package/package.json +5 -5
  238. package/dist/chunk-3P3IE42O.js.map +0 -1
  239. package/dist/chunk-7C4SQBEE.js.map +0 -1
  240. package/dist/chunk-ABJLRDCO.js.map +0 -1
  241. package/dist/chunk-HFOTAPIJ.js.map +0 -1
  242. package/dist/chunk-JXQUFKID.js.map +0 -1
  243. package/dist/chunk-MSOXMRF7.js.map +0 -1
  244. package/dist/chunk-OOICURFL.js.map +0 -1
  245. package/dist/chunk-QKPV5RRN.js.map +0 -1
  246. package/dist/chunk-QYLGIR4W.js.map +0 -1
  247. package/dist/chunk-R6KRH2IY.js.map +0 -1
  248. package/dist/chunk-RS37Y2PQ.js.map +0 -1
  249. package/dist/chunk-UE5N5VO3.js.map +0 -1
  250. package/dist/chunk-VUFRP6P3.js.map +0 -1
  251. package/dist/chunk-YY6SKZDF.js.map +0 -1
  252. /package/dist/{chunk-H5FAPMJJ.js.map → chunk-2ASLHSBV.js.map} +0 -0
  253. /package/dist/{chunk-V3QEONX7.js.map → chunk-3ECSADAW.js.map} +0 -0
  254. /package/dist/{chunk-UGSLGUS6.js.map → chunk-7BKDELUQ.js.map} +0 -0
  255. /package/dist/{chunk-QHK7GGV4.js.map → chunk-B7GXA42G.js.map} +0 -0
  256. /package/dist/{chunk-PGFVHKP5.js.map → chunk-CEH2D355.js.map} +0 -0
  257. /package/dist/{chunk-F26IKSML.js.map → chunk-PTQS3JDZ.js.map} +0 -0
  258. /package/dist/{chunk-MZNANSS2.js.map → chunk-RRL7OZHU.js.map} +0 -0
  259. /package/dist/{chunk-SCZLNFB5.js.map → chunk-TU4IVT3M.js.map} +0 -0
  260. /package/dist/{chunk-ZJW3QIPM.js.map → chunk-W2RDUU5Q.js.map} +0 -0
  261. /package/dist/{chunk-KJNNEDRV.js.map → chunk-XLXLFSZA.js.map} +0 -0
@@ -71,9 +71,8 @@ __export(thunks_exports, {
71
71
  tenantDataDivergedMessage: () => tenantDataDivergedMessage
72
72
  });
73
73
  module.exports = __toCommonJS(thunks_exports);
74
- var import_MenderTypes2 = require("@northern.tech/types/MenderTypes");
75
74
  var import_helpers11 = require("@northern.tech/utils/helpers");
76
- var import_dayjs2 = __toESM(require("dayjs"), 1);
75
+ var import_dayjs = __toESM(require("dayjs"), 1);
77
76
  var import_utc = __toESM(require("dayjs/plugin/utc.js"), 1);
78
77
  var import_jwt_decode = require("jwt-decode");
79
78
  var import_md52 = __toESM(require("md5"), 1);
@@ -99,6 +98,7 @@ var emptyChartSelection = { software: "", group: "", chartType: chartTypes.bar.k
99
98
  var defaultReportType = "distribution";
100
99
  var defaultReports = [{ ...emptyChartSelection, group: null, attribute: "artifact_name", type: defaultReportType }];
101
100
  var locations = {
101
+ cn: { key: "cn", title: "China", location: "hosted.mender.cn" },
102
102
  eu: { key: "eu", title: "EU", location: "eu.hosted.mender.io" },
103
103
  us: { key: "us", title: "US", location: "hosted.mender.io" }
104
104
  };
@@ -218,7 +218,6 @@ var DARK_MODE = "dark";
218
218
 
219
219
  // src/commonConstants.tsx
220
220
  var import_js = require("@mdi/js");
221
- var import_MenderTypes = require("@northern.tech/types/MenderTypes");
222
221
  var import_jsx_runtime = require("react/jsx-runtime");
223
222
  var timeUnits = {
224
223
  days: "days",
@@ -242,9 +241,9 @@ var TIMEOUTS = {
242
241
  var DEVICE_ONLINE_CUTOFF = { interval: 1, intervalName: timeUnits.days };
243
242
  var defaultIdAttribute = Object.freeze({ attribute: "id", scope: import_constants5.ATTRIBUTE_SCOPES.identity });
244
243
  var credentialTypes = {
245
- aws: import_MenderTypes.Credentials.type.AWS,
246
- http: import_MenderTypes.Credentials.type.HTTP,
247
- sas: import_MenderTypes.Credentials.type.SAS,
244
+ aws: "aws",
245
+ http: "http",
246
+ sas: "sas",
248
247
  x509: "x509"
249
248
  };
250
249
  var EXTERNAL_PROVIDER = {
@@ -292,7 +291,7 @@ var EXTERNAL_PROVIDER = {
292
291
  };
293
292
  var emptyWebhook = {
294
293
  description: "",
295
- provider: import_MenderTypes.Integration.provider.WEBHOOK,
294
+ provider: "webhook",
296
295
  credentials: {
297
296
  type: EXTERNAL_PROVIDER.webhook.credentialsType,
298
297
  [EXTERNAL_PROVIDER.webhook.credentialsType]: {
@@ -918,6 +917,7 @@ var initialState2 = {
918
917
  },
919
918
  // return boolean rather than organization details
920
919
  features: {
920
+ hasAiEnabled: false,
921
921
  hasAuditlogs: false,
922
922
  hasDeltaProgress: false,
923
923
  hasMultitenancy: false,
@@ -1475,6 +1475,23 @@ var initialState7 = {
1475
1475
  }
1476
1476
  */
1477
1477
  },
1478
+ deltaJobs: {
1479
+ /*
1480
+ [jobId]: {
1481
+ id: '',
1482
+ ...
1483
+ }
1484
+ */
1485
+ },
1486
+ deltaJobsList: {
1487
+ ...import_constants5.DEVICE_LIST_DEFAULTS,
1488
+ jobIds: [],
1489
+ total: 0,
1490
+ sort: {
1491
+ direction: import_constants5.SORTING_OPTIONS.desc,
1492
+ key: "started"
1493
+ }
1494
+ },
1478
1495
  releasesList: {
1479
1496
  ...import_constants5.DEVICE_LIST_DEFAULTS,
1480
1497
  searchedIds: [],
@@ -1493,6 +1510,7 @@ var initialState7 = {
1493
1510
  },
1494
1511
  tags: [],
1495
1512
  updateTypes: [],
1513
+ selectedJob: null,
1496
1514
  /*
1497
1515
  * Return single release with corresponding Artifacts
1498
1516
  */
@@ -1525,6 +1543,34 @@ var releaseSlice = (0, import_toolkit7.createSlice)({
1525
1543
  },
1526
1544
  setReleaseListState: (state, action) => {
1527
1545
  state.releasesList = action.payload;
1546
+ },
1547
+ receivedDeltaJobs: (state, action) => {
1548
+ const { jobs, total } = action.payload;
1549
+ state.deltaJobs = jobs.reduce(
1550
+ (accu, job) => {
1551
+ accu[job.id] = {
1552
+ ...accu[job.id],
1553
+ ...job
1554
+ };
1555
+ return accu;
1556
+ },
1557
+ { ...state.deltaJobs }
1558
+ );
1559
+ state.deltaJobsList.jobIds = jobs.map((job) => job.id);
1560
+ state.deltaJobsList.total = total;
1561
+ },
1562
+ receivedDeltaJobDetails: (state, action) => {
1563
+ const job = action.payload;
1564
+ state.deltaJobs[job.id] = {
1565
+ ...state.deltaJobs[job.id],
1566
+ ...job
1567
+ };
1568
+ },
1569
+ setDeltaJobsListState: (state, action) => {
1570
+ state.deltaJobsList = { ...state.deltaJobsList, ...action.payload };
1571
+ },
1572
+ setSelectedJob: (state, action) => {
1573
+ state.selectedJob = action.payload;
1528
1574
  }
1529
1575
  }
1530
1576
  });
@@ -1721,7 +1767,7 @@ var cleanUp = () => {
1721
1767
 
1722
1768
  // src/api/general-api.ts
1723
1769
  var unauthorizedRedirect = (error) => {
1724
- if (!(0, import_axios.isCancel)(error) && error.response?.status === 401 && getToken()) {
1770
+ if (!(0, import_axios.isCancel)(error) && error.response?.status === 401 && getToken() && !window.location.pathname.endsWith("/subscription")) {
1725
1771
  cleanUp();
1726
1772
  window.location.replace("/ui/");
1727
1773
  }
@@ -1767,9 +1813,9 @@ var getIsUploading = (0, import_toolkit9.createSelector)([getUploads], (uploadsB
1767
1813
  var getSearchedDevices = (0, import_toolkit9.createSelector)([getSearchState], ({ deviceIds }) => deviceIds);
1768
1814
  var getVersionInformation = (0, import_toolkit9.createSelector)(
1769
1815
  [getFullVersionInformation, getFeatures],
1770
- ({ Integration: Integration2, ...remainder }, { isHosted }) => isHosted && Integration2 !== "next" ? remainder : { ...remainder, Integration: Integration2 }
1816
+ ({ Integration, ...remainder }, { isHosted }) => isHosted && Integration !== "next" ? remainder : { ...remainder, Integration }
1771
1817
  );
1772
- var getIsPreview = (0, import_toolkit9.createSelector)([getFullVersionInformation], ({ Integration: Integration2 }) => (0, import_helpers2.versionCompare)(Integration2, "next") > -1);
1818
+ var getIsPreview = (0, import_toolkit9.createSelector)([getFullVersionInformation], ({ Integration }) => (0, import_helpers2.versionCompare)(Integration, "next") > -1);
1773
1819
 
1774
1820
  // src/commonSelectors.ts
1775
1821
  var import_helpers5 = require("@northern.tech/utils/helpers");
@@ -1781,6 +1827,10 @@ var getDeploymentsById = (state) => state.deployments.byId;
1781
1827
  var getDeploymentsByStatus = (state) => state.deployments.byStatus;
1782
1828
  var getSelectedDeploymentDeviceIds = (state) => state.deployments.selectedDeviceIds;
1783
1829
  var getDeploymentsSelectionState = (state) => state.deployments.selectionState;
1830
+ var getDeploymentById = (0, import_toolkit10.createSelector)(
1831
+ [getDeploymentsById, (_, deploymentId) => deploymentId],
1832
+ (deploymentsById, deploymentId = "") => deploymentsById[deploymentId]
1833
+ );
1784
1834
  var getMappedDeploymentSelection = (0, import_toolkit10.createSelector)(
1785
1835
  [getDeploymentsSelectionState, (_, deploymentsState) => deploymentsState, getDeploymentsById],
1786
1836
  (selectionState, deploymentsState, deploymentsById) => {
@@ -1930,8 +1980,6 @@ var getOnboarding = (state) => state.onboarding;
1930
1980
 
1931
1981
  // src/organizationSlice/selectors.ts
1932
1982
  var import_toolkit12 = require("@reduxjs/toolkit");
1933
- var import_dayjs = __toESM(require("dayjs"), 1);
1934
- var import_relativeTime = __toESM(require("dayjs/plugin/relativeTime.js"), 1);
1935
1983
  var getOrganization = (state) => state.organization.organization;
1936
1984
  var getExternalIntegrations = (state) => state.organization.externalDeviceIntegrations;
1937
1985
  var getAuditlogState = (state) => state.organization.auditlog.selectionState;
@@ -1960,12 +2008,6 @@ var getAuditLogEntry = (0, import_toolkit12.createSelector)([getAuditLog, getAud
1960
2008
  const [eventAction, eventTime] = atob(selectedId).split("|");
1961
2009
  return events.find((item) => item.action === eventAction && item.time === eventTime);
1962
2010
  });
1963
- import_dayjs.default.extend(import_relativeTime.default);
1964
- var newPricingIntroduction = (0, import_dayjs.default)("2025-06-03T00:00");
1965
- var getHasCurrentPricing = (0, import_toolkit12.createSelector)(
1966
- [getOrganization],
1967
- ({ id }) => !!id && (0, import_dayjs.default)(parseInt(id.substring(0, 8), 16) * 1e3) >= newPricingIntroduction
1968
- );
1969
2011
 
1970
2012
  // src/releasesSlice/selectors.ts
1971
2013
  var import_toolkit13 = require("@reduxjs/toolkit");
@@ -2116,6 +2158,10 @@ var getHasReleases = (0, import_toolkit13.createSelector)(
2116
2158
  );
2117
2159
  var getSelectedRelease = (0, import_toolkit13.createSelector)([getReleasesById, getSelectedReleaseId], (byId, id) => byId[id || ""] ?? {});
2118
2160
  var getSelectedReleases = (0, import_toolkit13.createSelector)([getReleaseListState, getReleasesList], ({ selection }, releases) => selection.map((index) => releases[index]));
2161
+ var getDeltaJobsById = (state) => state.releases.deltaJobs;
2162
+ var getDeltaJobById = (0, import_toolkit13.createSelector)([getDeltaJobsById, (_, jobId) => jobId], (byId, jobId) => byId[jobId]);
2163
+ var getSelectedJobId = (state) => state.releases.selectedJob;
2164
+ var getSelectedJob = (0, import_toolkit13.createSelector)([getDeltaJobsById, getSelectedJobId], (byId, jobId) => byId[jobId || ""]);
2119
2165
 
2120
2166
  // src/usersSlice/selectors.ts
2121
2167
  var import_toolkit14 = require("@reduxjs/toolkit");
@@ -2582,6 +2628,8 @@ var transformDeployments = (deployments, deploymentsById) => deployments.sort((0
2582
2628
  ...deploymentPrototype,
2583
2629
  ...deploymentsById[item.id],
2584
2630
  ...item,
2631
+ // TODO: explicitly set filter term types to address scope type mismatch in deployment specs
2632
+ // @ts-expect-error: type misalignment in filter terms type
2585
2633
  filter: filter ? { ...filter, name: filter.name ?? filter.id, filters: mapTermsToFilters(filter.terms) } : void 0,
2586
2634
  name: decodeURIComponent(item.name)
2587
2635
  };
@@ -2925,6 +2973,15 @@ var saveDeltaDeploymentsConfig = createAppAsyncThunk(
2925
2973
  });
2926
2974
  }
2927
2975
  );
2976
+ var generateDeploymentLogAnalysis = createAppAsyncThunk(
2977
+ `${sliceName3}/generateDeploymentLogAnalysis`,
2978
+ ({ deploymentId, deviceId }, { dispatch, rejectWithValue }) => general_api_default.get(`${import_constants5.apiRoot}/v1alpha1/deployments/deployments/${deploymentId}/devices/${deviceId}/log/explain`).then(({ data: result }) => Promise.resolve(result)).catch((err) => {
2979
+ if (err.response.status === 429) {
2980
+ return rejectWithValue(err.response);
2981
+ }
2982
+ commonErrorHandler(err, "There was an error analysing the deployment log:", dispatch);
2983
+ })
2984
+ );
2928
2985
 
2929
2986
  // src/devicesSlice/thunks.tsx
2930
2987
  var import_react_router_dom = require("react-router-dom");
@@ -3004,15 +3061,15 @@ var removeDevicesFromGroup = createAppAsyncThunk(
3004
3061
  )
3005
3062
  );
3006
3063
  var getGroupNotification = (newGroup, selectedGroup) => {
3007
- const successMessage2 = "The group was updated successfully";
3064
+ const successMessage = "The group was updated successfully";
3008
3065
  if (newGroup === selectedGroup) {
3009
- return { message: successMessage2, autoHideDuration: TIMEOUTS.fiveSeconds };
3066
+ return { message: successMessage, autoHideDuration: TIMEOUTS.fiveSeconds };
3010
3067
  }
3011
3068
  return {
3012
3069
  action: "",
3013
3070
  autoHideDuration: TIMEOUTS.fiveSeconds,
3014
3071
  message: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
3015
- successMessage2,
3072
+ successMessage,
3016
3073
  " - ",
3017
3074
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react_router_dom.Link, { to: `/devices?inventory=group:eq:${newGroup}`, children: "click here" }),
3018
3075
  " to see it."
@@ -3544,9 +3601,10 @@ var getDeviceConnect = createAppAsyncThunk(
3544
3601
  var updateTypeMap = { deploymentUpdate: "check-update", inventoryUpdate: "send-inventory" };
3545
3602
  var triggerDeviceUpdate = createAppAsyncThunk(
3546
3603
  `${sliceName4}/triggerDeviceUpdate`,
3547
- ({ id, type }, { dispatch }) => general_api_default.post(`${import_constants5.deviceConnect}/devices/${id}/${updateTypeMap[type] ?? updateTypeMap.deploymentUpdate}`).then(
3548
- () => new Promise((resolve) => setTimeout(() => resolve(dispatch(getDeviceById2(id))), TIMEOUTS.threeSeconds))
3549
- )
3604
+ ({ id, type }, { dispatch }) => general_api_default.post(`${import_constants5.deviceConnect}/devices/${id}/${updateTypeMap[type] ?? updateTypeMap.deploymentUpdate}`).catch((err) => commonErrorHandler(err, `The request couldn\u2019t be sent.`, dispatch)).then(() => {
3605
+ dispatch(setSnackbar3("Request has been sent."));
3606
+ return new Promise((resolve) => setTimeout(() => resolve(dispatch(getDeviceById2(id))), TIMEOUTS.threeSeconds));
3607
+ })
3550
3608
  );
3551
3609
  var getSessionDetails = createAppAsyncThunk(
3552
3610
  `${sliceName4}/getSessionDetails`,
@@ -4533,21 +4591,20 @@ var setAllTooltipsReadState = createAppAsyncThunk(
4533
4591
  return Promise.resolve(dispatch(actions8.setTooltipsState(updatedTips))).then(() => dispatch(saveUserSettings()));
4534
4592
  }
4535
4593
  );
4536
- var submitFeedback = createAppAsyncThunk(
4594
+ var submitUserFeedback = createAppAsyncThunk(
4537
4595
  `${sliceName8}/submitFeedback`,
4538
- ({ satisfaction, feedback, ...meta }, { dispatch }) => general_api_default.post(`${import_constants5.tenantadmApiUrlv2}/contact/support`, {
4539
- subject: "feedback submission",
4540
- body: JSON.stringify({ feedback, satisfaction, meta })
4541
- }).then(() => {
4542
- const today = /* @__PURE__ */ new Date();
4543
- dispatch(saveUserSettings({ feedbackCollectedAt: today.toISOString().split("T")[0] }));
4544
- setTimeout(() => dispatch(actions8.setShowFeedbackDialog(false)), TIMEOUTS.threeSeconds);
4596
+ ({ formId, feedback }, { dispatch }) => general_api_default.post(`${import_constants5.useradmApiUrlv2}/support/feedback/${formId}`, feedback).then(() => {
4597
+ if (formId === "product") {
4598
+ const today = /* @__PURE__ */ new Date();
4599
+ dispatch(saveUserSettings({ feedbackCollectedAt: today.toISOString().split("T")[0] }));
4600
+ setTimeout(() => dispatch(actions8.setShowFeedbackDialog(false)), TIMEOUTS.threeSeconds);
4601
+ }
4545
4602
  })
4546
4603
  );
4547
4604
 
4548
4605
  // src/organizationSlice/thunks.ts
4549
4606
  var cookies4 = new import_universal_cookie4.default();
4550
- import_dayjs2.default.extend(import_utc.default);
4607
+ import_dayjs.default.extend(import_utc.default);
4551
4608
  var { setAnnouncement: setAnnouncement2, setSnackbar: setSnackbar5 } = actions_default;
4552
4609
  var { page: defaultPage4, perPage: defaultPerPage4 } = import_constants5.DEVICE_LIST_DEFAULTS;
4553
4610
  var cancelRequest = createAppAsyncThunk(`${sliceName}/cancelRequest`, (reason, { dispatch, getState }) => {
@@ -4574,10 +4631,12 @@ var createOrganizationTrial = createAppAsyncThunk(`${sliceName}/createOrganizati
4574
4631
  const targetLocation = getTargetLocation(key);
4575
4632
  const target = `${targetLocation}${import_constants5.tenantadmApiUrlv2}/tenants/trial`;
4576
4633
  return general_api_default.postUnauthorized(target, data).catch((err) => {
4577
- if (err.response.status >= 400 && err.response.status < 500) {
4634
+ if (err.response?.status >= 400 && err.response?.status < 500) {
4578
4635
  dispatch(setSnackbar5({ message: err.response.data.error, autoHideDuration: TIMEOUTS.fiveSeconds }));
4579
- return Promise.reject(err);
4636
+ } else {
4637
+ dispatch(setSnackbar5({ message: "There was an error creating your account", autoHideDuration: TIMEOUTS.fiveSeconds }));
4580
4638
  }
4639
+ return Promise.reject(err);
4581
4640
  }).then(({ headers }) => {
4582
4641
  cookies4.remove("oauth");
4583
4642
  cookies4.remove("externalID");
@@ -4759,32 +4818,29 @@ var getUserOrganization = createAppAsyncThunk(
4759
4818
  );
4760
4819
  var getUserBilling = createAppAsyncThunk(
4761
4820
  `${sliceName}/getUserBilling`,
4762
- (_, { dispatch }) => general_api_default.get(`${import_constants5.tenantadmApiUrlv2}/billing/profile`).then((res) => dispatch(actions.setBillingProfile(res.data)))
4821
+ (_, { dispatch }) => general_api_default.get(`${import_constants5.tenantadmApiUrlv2}/billing/profile`).catch((err) => commonErrorHandler(err, "There was an error getting your billing profile:", dispatch, commonErrorFallback)).then((res) => dispatch(actions.setBillingProfile(res.data)))
4763
4822
  );
4764
- var getUserSubscription = createAppAsyncThunk(`${sliceName}/getUserSubscription`, (_, { dispatch }) => {
4765
- const tasks = [dispatch(getBillingPreview({ preview_mode: import_MenderTypes2.PreviewRequest.preview_mode.NEXT })).unwrap(), dispatch(getCurrentSubscription()).unwrap()];
4766
- Promise.all(tasks).then(([currentPreview, currentSubscription]) => dispatch(actions.setSubscription({ ...currentPreview, ...currentSubscription })));
4823
+ var getUserSubscription = createAppAsyncThunk(`${sliceName}/getUserSubscription`, async (_, { dispatch }) => {
4824
+ const currentSubscription = await dispatch(getCurrentSubscription()).unwrap();
4825
+ const currentPreview = await dispatch(getBillingPreview({ preview_mode: "next" })).unwrap();
4826
+ return dispatch(actions.setSubscription({ ...currentPreview, ...currentSubscription }));
4767
4827
  });
4768
4828
  var getBillingPreview = createAppAsyncThunk(
4769
4829
  `${sliceName}/getBillingPreview`,
4770
- (order) => general_api_default.post(`${import_constants5.tenantadmApiUrlv2}/billing/subscription/invoices/preview`, order).then(
4771
- ({ data }) => order.preview_mode === "recurring" ? { ...parseSubscriptionPreview(data.lines), total: data.total } : data
4772
- )
4830
+ (order, { dispatch }) => general_api_default.post(`${import_constants5.tenantadmApiUrlv2}/billing/subscription/invoices/preview`, order).catch((err) => commonErrorHandler(err, "There was an error getting your billing information:", dispatch, commonErrorFallback)).then(({ data }) => order.preview_mode === "recurring" ? { ...parseSubscriptionPreview(data.lines), total: data.total } : data)
4773
4831
  );
4774
4832
  var getCurrentSubscription = createAppAsyncThunk(
4775
4833
  `${sliceName}/getCurrentSubscription`,
4776
- () => general_api_default.get(`${import_constants5.tenantadmApiUrlv2}/billing/subscription`).then((res) => res.data)
4834
+ (_, { dispatch }) => general_api_default.get(`${import_constants5.tenantadmApiUrlv2}/billing/subscription`).then((res) => res.data).catch((err) => {
4835
+ if (err.response && err.response.status === 404) {
4836
+ throw new Error("Request failed with status code 404");
4837
+ }
4838
+ return commonErrorHandler(err, "There was an error retrieving your current subscription", dispatch, commonErrorFallback);
4839
+ })
4777
4840
  );
4778
- var successMessage = (planId) => `Thank you! You have successfully subscribed to the ${PLANS[planId].name} plan. You can view and edit your billing details on the Organization and billing page.`;
4779
4841
  var requestPlanUpgrade = createAppAsyncThunk(
4780
4842
  `${sliceName}/requestPlanUpgrade`,
4781
- (order, { dispatch }) => general_api_default.post(`${import_constants5.tenantadmApiUrlv2}/billing/subscription`, order).catch((err) => commonErrorHandler(err, "There was an error sending your request", dispatch, commonErrorFallback)).then(
4782
- () => Promise.all([
4783
- dispatch(setSnackbar5(successMessage(order.plan))),
4784
- setTimeout(() => dispatch(getDeviceLimit2()), TIMEOUTS.threeSeconds),
4785
- dispatch(getUserOrganization())
4786
- ])
4787
- )
4843
+ (order, { dispatch }) => general_api_default.post(`${import_constants5.tenantadmApiUrlv2}/billing/subscription`, order).catch((err) => commonErrorHandler(err, "There was an error sending your request", dispatch, commonErrorFallback)).then(() => Promise.all([setTimeout(() => dispatch(getDeviceLimit2()), TIMEOUTS.threeSeconds), dispatch(getUserOrganization())]))
4788
4844
  );
4789
4845
  var sendSupportMessage = createAppAsyncThunk(
4790
4846
  `${sliceName}/sendSupportMessage`,