@northern.tech/store 0.2.0 → 0.2.1

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 (190) hide show
  1. package/dist/actions.js +183 -129
  2. package/dist/actions.js.map +1 -1
  3. package/dist/actions.mjs +13 -13
  4. package/dist/api/general-api.js +42 -55
  5. package/dist/api/general-api.js.map +1 -1
  6. package/dist/api/general-api.mjs +6 -6
  7. package/dist/api/users-api.js +44 -70
  8. package/dist/api/users-api.js.map +1 -1
  9. package/dist/api/users-api.mjs +7 -7
  10. package/dist/appSlice/constants.js +1 -39
  11. package/dist/appSlice/constants.js.map +1 -1
  12. package/dist/appSlice/constants.mjs +2 -2
  13. package/dist/appSlice/index.js +51 -68
  14. package/dist/appSlice/index.js.map +1 -1
  15. package/dist/appSlice/index.mjs +5 -5
  16. package/dist/appSlice/selectors.js +1 -43
  17. package/dist/appSlice/selectors.js.map +1 -1
  18. package/dist/appSlice/selectors.mjs +2 -2
  19. package/dist/appSlice/thunks.js +563 -544
  20. package/dist/appSlice/thunks.js.map +1 -1
  21. package/dist/appSlice/thunks.mjs +28 -28
  22. package/dist/auth.js +39 -55
  23. package/dist/auth.js.map +1 -1
  24. package/dist/auth.mjs +5 -5
  25. package/dist/{chunk-C2YZYTJ6.mjs → chunk-2Z3RFYW4.mjs} +2 -11
  26. package/dist/{chunk-C2YZYTJ6.mjs.map → chunk-2Z3RFYW4.mjs.map} +1 -1
  27. package/dist/{chunk-OWHFMKTA.mjs → chunk-3ORTTLIB.mjs} +19 -16
  28. package/dist/{chunk-OWHFMKTA.mjs.map → chunk-3ORTTLIB.mjs.map} +1 -1
  29. package/dist/{chunk-NCI6JV5R.mjs → chunk-4SDUITD4.mjs} +6 -12
  30. package/dist/{chunk-NCI6JV5R.mjs.map → chunk-4SDUITD4.mjs.map} +1 -1
  31. package/dist/{chunk-BOSBROA3.mjs → chunk-5VNQCCAQ.mjs} +2 -7
  32. package/dist/{chunk-BOSBROA3.mjs.map → chunk-5VNQCCAQ.mjs.map} +1 -1
  33. package/dist/{chunk-2P4VECEE.mjs → chunk-65YIOCCD.mjs} +6 -11
  34. package/dist/{chunk-2P4VECEE.mjs.map → chunk-65YIOCCD.mjs.map} +1 -1
  35. package/dist/{chunk-QG4PT5WK.mjs → chunk-6CSGHZ3E.mjs} +9 -21
  36. package/dist/{chunk-QG4PT5WK.mjs.map → chunk-6CSGHZ3E.mjs.map} +1 -1
  37. package/dist/{chunk-X65NMDPS.mjs → chunk-AZRVRNXT.mjs} +40 -30
  38. package/dist/{chunk-X65NMDPS.mjs.map → chunk-AZRVRNXT.mjs.map} +1 -1
  39. package/dist/{chunk-M4U5R7A4.mjs → chunk-B42NUKMZ.mjs} +2 -6
  40. package/dist/{chunk-M4U5R7A4.mjs.map → chunk-B42NUKMZ.mjs.map} +1 -1
  41. package/dist/{chunk-BWFTQHNM.mjs → chunk-CHUCIHMY.mjs} +3 -4
  42. package/dist/{chunk-BWFTQHNM.mjs.map → chunk-CHUCIHMY.mjs.map} +1 -1
  43. package/dist/{chunk-UPMSYTWW.mjs → chunk-DIZJVB6M.mjs} +306 -291
  44. package/dist/{chunk-UPMSYTWW.mjs.map → chunk-DIZJVB6M.mjs.map} +1 -1
  45. package/dist/chunk-H5UCKQWK.mjs +41 -0
  46. package/dist/{chunk-ENLZPHTQ.mjs.map → chunk-H5UCKQWK.mjs.map} +1 -1
  47. package/dist/{chunk-MQIKQKSW.mjs → chunk-IFWKT27G.mjs} +37 -33
  48. package/dist/{chunk-MQIKQKSW.mjs.map → chunk-IFWKT27G.mjs.map} +1 -1
  49. package/dist/{chunk-EM2HUGUY.mjs → chunk-JA27QXVB.mjs} +37 -28
  50. package/dist/{chunk-EM2HUGUY.mjs.map → chunk-JA27QXVB.mjs.map} +1 -1
  51. package/dist/{chunk-2HCZYULZ.mjs → chunk-K2NZL5V4.mjs} +3 -6
  52. package/dist/{chunk-2HCZYULZ.mjs.map → chunk-K2NZL5V4.mjs.map} +1 -1
  53. package/dist/{chunk-Y47SYXII.mjs → chunk-KJAZNKV2.mjs} +43 -52
  54. package/dist/{chunk-Y47SYXII.mjs.map → chunk-KJAZNKV2.mjs.map} +1 -1
  55. package/dist/{chunk-U6YTBIDT.mjs → chunk-KPPU6OWF.mjs} +27 -39
  56. package/dist/{chunk-U6YTBIDT.mjs.map → chunk-KPPU6OWF.mjs.map} +1 -1
  57. package/dist/{chunk-EFHEROXZ.mjs → chunk-KZSTW27Q.mjs} +30 -18
  58. package/dist/{chunk-EFHEROXZ.mjs.map → chunk-KZSTW27Q.mjs.map} +1 -1
  59. package/dist/chunk-LZOMFHX3.mjs +38 -0
  60. package/dist/{chunk-RWYS5MKN.mjs → chunk-NJNSCJEY.mjs} +22 -26
  61. package/dist/{chunk-RWYS5MKN.mjs.map → chunk-NJNSCJEY.mjs.map} +1 -1
  62. package/dist/{chunk-ZLRZO4EY.mjs → chunk-O6TYYKSD.mjs} +62 -60
  63. package/dist/chunk-O6TYYKSD.mjs.map +1 -0
  64. package/dist/{chunk-OGAMVFPS.mjs → chunk-QQBUNZHA.mjs} +2 -6
  65. package/dist/{chunk-OGAMVFPS.mjs.map → chunk-QQBUNZHA.mjs.map} +1 -1
  66. package/dist/{chunk-WS3YYLTJ.mjs → chunk-R7LXL3KJ.mjs} +14 -13
  67. package/dist/{chunk-WS3YYLTJ.mjs.map → chunk-R7LXL3KJ.mjs.map} +1 -1
  68. package/dist/{chunk-MJW4632R.mjs → chunk-WCUGLHYM.mjs} +16 -20
  69. package/dist/{chunk-MJW4632R.mjs.map → chunk-WCUGLHYM.mjs.map} +1 -1
  70. package/dist/chunk-WYHJFSMQ.mjs +25 -0
  71. package/dist/{chunk-L4HIW3KB.mjs.map → chunk-WYHJFSMQ.mjs.map} +1 -1
  72. package/dist/{chunk-XJNI62IP.mjs → chunk-XC5UXEIB.mjs} +4 -11
  73. package/dist/{chunk-XJNI62IP.mjs.map → chunk-XC5UXEIB.mjs.map} +1 -1
  74. package/dist/{chunk-4U4X4KAC.mjs → chunk-XD7INCM4.mjs} +11 -17
  75. package/dist/{chunk-4U4X4KAC.mjs.map → chunk-XD7INCM4.mjs.map} +1 -1
  76. package/dist/{chunk-ZZ6VIQ3U.mjs → chunk-ZE7R2XXE.mjs} +10 -12
  77. package/dist/{chunk-ZZ6VIQ3U.mjs.map → chunk-ZE7R2XXE.mjs.map} +1 -1
  78. package/dist/{chunk-4C6IY46N.mjs → chunk-ZK4W5T53.mjs} +7 -11
  79. package/dist/{chunk-4C6IY46N.mjs.map → chunk-ZK4W5T53.mjs.map} +1 -1
  80. package/dist/commonConstants.js +1 -35
  81. package/dist/commonConstants.js.map +1 -1
  82. package/dist/commonConstants.mjs +2 -2
  83. package/dist/commonSelectors.js +73 -135
  84. package/dist/commonSelectors.js.map +1 -1
  85. package/dist/commonSelectors.mjs +12 -12
  86. package/dist/constants.js +36 -153
  87. package/dist/constants.js.map +1 -1
  88. package/dist/constants.mjs +14 -14
  89. package/dist/deploymentsSlice/constants.js +34 -59
  90. package/dist/deploymentsSlice/constants.js.map +1 -1
  91. package/dist/deploymentsSlice/constants.mjs +4 -4
  92. package/dist/deploymentsSlice/index.js +68 -79
  93. package/dist/deploymentsSlice/index.js.map +1 -1
  94. package/dist/deploymentsSlice/index.mjs +5 -5
  95. package/dist/deploymentsSlice/selectors.js +35 -52
  96. package/dist/deploymentsSlice/selectors.js.map +1 -1
  97. package/dist/deploymentsSlice/selectors.mjs +5 -5
  98. package/dist/deploymentsSlice/thunks.js +563 -553
  99. package/dist/deploymentsSlice/thunks.js.map +1 -1
  100. package/dist/deploymentsSlice/thunks.mjs +28 -28
  101. package/dist/devicesSlice/constants.js +34 -58
  102. package/dist/devicesSlice/constants.js.map +1 -1
  103. package/dist/devicesSlice/constants.mjs +4 -4
  104. package/dist/devicesSlice/index.js +71 -81
  105. package/dist/devicesSlice/index.js.map +1 -1
  106. package/dist/devicesSlice/index.mjs +5 -5
  107. package/dist/devicesSlice/selectors.js +40 -89
  108. package/dist/devicesSlice/selectors.js.map +1 -1
  109. package/dist/devicesSlice/selectors.mjs +5 -5
  110. package/dist/devicesSlice/thunks.js +563 -589
  111. package/dist/devicesSlice/thunks.js.map +1 -1
  112. package/dist/devicesSlice/thunks.mjs +28 -28
  113. package/dist/monitorSlice/constants.js +34 -45
  114. package/dist/monitorSlice/constants.js.map +1 -1
  115. package/dist/monitorSlice/constants.mjs +4 -4
  116. package/dist/monitorSlice/index.js +41 -52
  117. package/dist/monitorSlice/index.js.map +1 -1
  118. package/dist/monitorSlice/index.mjs +5 -5
  119. package/dist/monitorSlice/selectors.js +0 -4
  120. package/dist/monitorSlice/selectors.mjs +1 -1
  121. package/dist/monitorSlice/thunks.js +249 -232
  122. package/dist/monitorSlice/thunks.js.map +1 -1
  123. package/dist/monitorSlice/thunks.mjs +25 -25
  124. package/dist/onboardingSlice/constants.js +0 -5
  125. package/dist/onboardingSlice/constants.mjs +1 -1
  126. package/dist/onboardingSlice/index.js +1 -22
  127. package/dist/onboardingSlice/index.js.map +1 -1
  128. package/dist/onboardingSlice/index.mjs +2 -2
  129. package/dist/onboardingSlice/selectors.js +0 -4
  130. package/dist/onboardingSlice/selectors.mjs +1 -1
  131. package/dist/onboardingSlice/thunks.js +563 -547
  132. package/dist/onboardingSlice/thunks.js.map +1 -1
  133. package/dist/onboardingSlice/thunks.mjs +28 -28
  134. package/dist/organizationSlice/constants.js +34 -56
  135. package/dist/organizationSlice/constants.js.map +1 -1
  136. package/dist/organizationSlice/constants.mjs +4 -4
  137. package/dist/organizationSlice/index.js +45 -53
  138. package/dist/organizationSlice/index.js.map +1 -1
  139. package/dist/organizationSlice/index.mjs +5 -5
  140. package/dist/organizationSlice/selectors.js +35 -61
  141. package/dist/organizationSlice/selectors.js.map +1 -1
  142. package/dist/organizationSlice/selectors.mjs +5 -5
  143. package/dist/organizationSlice/thunks.js +563 -572
  144. package/dist/organizationSlice/thunks.js.map +1 -1
  145. package/dist/organizationSlice/thunks.mjs +28 -28
  146. package/dist/releasesSlice/constants.js +0 -7
  147. package/dist/releasesSlice/constants.mjs +1 -1
  148. package/dist/releasesSlice/index.js +38 -64
  149. package/dist/releasesSlice/index.js.map +1 -1
  150. package/dist/releasesSlice/index.mjs +5 -5
  151. package/dist/releasesSlice/selectors.js +37 -57
  152. package/dist/releasesSlice/selectors.js.map +1 -1
  153. package/dist/releasesSlice/selectors.mjs +6 -6
  154. package/dist/releasesSlice/thunks.js +293 -281
  155. package/dist/releasesSlice/thunks.js.map +1 -1
  156. package/dist/releasesSlice/thunks.mjs +25 -25
  157. package/dist/selectors.js +73 -207
  158. package/dist/selectors.js.map +1 -1
  159. package/dist/selectors.mjs +43 -43
  160. package/dist/store.js +194 -151
  161. package/dist/store.js.map +1 -1
  162. package/dist/store.mjs +16 -16
  163. package/dist/storehooks.js +568 -547
  164. package/dist/storehooks.js.map +1 -1
  165. package/dist/storehooks.mjs +38 -41
  166. package/dist/storehooks.mjs.map +1 -1
  167. package/dist/thunks.js +563 -702
  168. package/dist/thunks.js.map +1 -1
  169. package/dist/thunks.mjs +28 -28
  170. package/dist/usersSlice/constants.js +36 -66
  171. package/dist/usersSlice/constants.js.map +1 -1
  172. package/dist/usersSlice/constants.mjs +4 -4
  173. package/dist/usersSlice/index.js +62 -71
  174. package/dist/usersSlice/index.js.map +1 -1
  175. package/dist/usersSlice/index.mjs +5 -5
  176. package/dist/usersSlice/selectors.js +41 -66
  177. package/dist/usersSlice/selectors.js.map +1 -1
  178. package/dist/usersSlice/selectors.mjs +6 -6
  179. package/dist/usersSlice/thunks.js +563 -576
  180. package/dist/usersSlice/thunks.js.map +1 -1
  181. package/dist/usersSlice/thunks.mjs +28 -28
  182. package/dist/utils.js +57 -93
  183. package/dist/utils.js.map +1 -1
  184. package/dist/utils.mjs +5 -5
  185. package/package.json +66 -1
  186. package/dist/chunk-ENLZPHTQ.mjs +0 -35
  187. package/dist/chunk-L4HIW3KB.mjs +0 -36
  188. package/dist/chunk-XWBD7VOK.mjs +0 -93
  189. package/dist/chunk-ZLRZO4EY.mjs.map +0 -1
  190. /package/dist/{chunk-XWBD7VOK.mjs.map → chunk-LZOMFHX3.mjs.map} +0 -0
@@ -1,48 +1,43 @@
1
1
  import {
2
2
  general_api_default
3
- } from "./chunk-2P4VECEE.mjs";
3
+ } from "./chunk-65YIOCCD.mjs";
4
4
  import {
5
5
  getSearchEndpoint
6
- } from "./chunk-Y47SYXII.mjs";
6
+ } from "./chunk-KJAZNKV2.mjs";
7
7
  import {
8
8
  getReleasesById
9
- } from "./chunk-XJNI62IP.mjs";
9
+ } from "./chunk-XC5UXEIB.mjs";
10
10
  import {
11
11
  commonErrorFallback,
12
12
  commonErrorHandler
13
- } from "./chunk-RWYS5MKN.mjs";
13
+ } from "./chunk-NJNSCJEY.mjs";
14
14
  import {
15
15
  actions_default
16
- } from "./chunk-ENLZPHTQ.mjs";
16
+ } from "./chunk-H5UCKQWK.mjs";
17
17
  import {
18
18
  actions,
19
19
  sliceName
20
- } from "./chunk-NCI6JV5R.mjs";
20
+ } from "./chunk-4SDUITD4.mjs";
21
21
  import {
22
22
  convertDeviceListStateToFilters,
23
23
  progress
24
- } from "./chunk-U6YTBIDT.mjs";
24
+ } from "./chunk-KPPU6OWF.mjs";
25
25
  import {
26
26
  deploymentsApiUrl,
27
27
  deploymentsApiUrlV2,
28
28
  emptyFilter
29
- } from "./chunk-MQIKQKSW.mjs";
29
+ } from "./chunk-IFWKT27G.mjs";
30
+ import {
31
+ headerNames
32
+ } from "./chunk-5VNQCCAQ.mjs";
30
33
  import {
31
34
  ARTIFACT_GENERATION_TYPE
32
35
  } from "./chunk-G4FGNSV3.mjs";
33
- import {
34
- headerNames
35
- } from "./chunk-BOSBROA3.mjs";
36
36
  import {
37
37
  DEVICE_LIST_DEFAULTS,
38
38
  SORTING_OPTIONS,
39
39
  TIMEOUTS
40
- } from "./chunk-OGAMVFPS.mjs";
41
- import {
42
- __objRest,
43
- __spreadProps,
44
- __spreadValues
45
- } from "./chunk-XWBD7VOK.mjs";
40
+ } from "./chunk-QQBUNZHA.mjs";
46
41
 
47
42
  // src/releasesSlice/thunks.ts
48
43
  import { customSort, deepCompare, duplicateFilter, extractSoftwareItem } from "@northern.tech/utils/helpers";
@@ -50,19 +45,20 @@ import { formatReleases } from "@northern.tech/utils/locationutils";
50
45
  import { createAsyncThunk } from "@reduxjs/toolkit";
51
46
  import { isCancel } from "axios";
52
47
 
53
- // ../../node_modules/uuid/dist/esm-node/rng.js
54
- import crypto from "crypto";
55
- var rnds8Pool = new Uint8Array(256);
56
- var poolPtr = rnds8Pool.length;
48
+ // ../../node_modules/uuid/dist/esm-browser/rng.js
49
+ var getRandomValues;
50
+ var rnds8 = new Uint8Array(16);
57
51
  function rng() {
58
- if (poolPtr > rnds8Pool.length - 16) {
59
- crypto.randomFillSync(rnds8Pool);
60
- poolPtr = 0;
52
+ if (!getRandomValues) {
53
+ getRandomValues = typeof crypto !== "undefined" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);
54
+ if (!getRandomValues) {
55
+ throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
56
+ }
61
57
  }
62
- return rnds8Pool.slice(poolPtr, poolPtr += 16);
58
+ return getRandomValues(rnds8);
63
59
  }
64
60
 
65
- // ../../node_modules/uuid/dist/esm-node/stringify.js
61
+ // ../../node_modules/uuid/dist/esm-browser/stringify.js
66
62
  var byteToHex = [];
67
63
  for (let i = 0; i < 256; ++i) {
68
64
  byteToHex.push((i + 256).toString(16).slice(1));
@@ -71,13 +67,13 @@ function unsafeStringify(arr, offset = 0) {
71
67
  return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + "-" + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + "-" + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + "-" + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + "-" + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];
72
68
  }
73
69
 
74
- // ../../node_modules/uuid/dist/esm-node/native.js
75
- import crypto2 from "crypto";
70
+ // ../../node_modules/uuid/dist/esm-browser/native.js
71
+ var randomUUID = typeof crypto !== "undefined" && crypto.randomUUID && crypto.randomUUID.bind(crypto);
76
72
  var native_default = {
77
- randomUUID: crypto2.randomUUID
73
+ randomUUID
78
74
  };
79
75
 
80
- // ../../node_modules/uuid/dist/esm-node/v4.js
76
+ // ../../node_modules/uuid/dist/esm-browser/v4.js
81
77
  function v4(options, buf, offset) {
82
78
  if (native_default.randomUUID && !buf && !options) {
83
79
  return native_default.randomUUID();
@@ -102,20 +98,21 @@ var { setSnackbar, initUpload, uploadProgress, cleanUpUpload } = actions_default
102
98
  var { page: defaultPage, perPage: defaultPerPage } = DEVICE_LIST_DEFAULTS;
103
99
  var sortingDefaults = { direction: SORTING_OPTIONS.desc, key: "modified" };
104
100
  var flattenRelease = (release, stateRelease) => {
105
- var _a;
106
- const updatedArtifacts = ((_a = release.artifacts) == null ? void 0 : _a.sort(customSort(1, "modified"))) || [];
101
+ const updatedArtifacts = release.artifacts?.sort(customSort(1, "modified")) || [];
107
102
  const { artifacts, deviceTypes, modified } = updatedArtifacts.reduce(
108
103
  (accu, item) => {
109
- var _a2;
110
104
  accu.deviceTypes.push(...item.device_types_compatible);
111
- const stateArtifact = ((_a2 = stateRelease.artifacts) == null ? void 0 : _a2.find((releaseArtifact) => releaseArtifact.id === item.id)) || {};
105
+ const stateArtifact = stateRelease.artifacts?.find((releaseArtifact) => releaseArtifact.id === item.id) || {};
112
106
  accu.modified = accu.modified ? accu.modified : item.modified;
113
- accu.artifacts.push(__spreadValues(__spreadValues({}, stateArtifact), item));
107
+ accu.artifacts.push({
108
+ ...stateArtifact,
109
+ ...item
110
+ });
114
111
  return accu;
115
112
  },
116
113
  { artifacts: [], deviceTypes: [], modified: void 0 }
117
114
  );
118
- return __spreadProps(__spreadValues(__spreadValues({}, stateRelease), release), { artifacts, device_types_compatible: deviceTypes.filter(duplicateFilter), modified });
115
+ return { ...stateRelease, ...release, artifacts, device_types_compatible: deviceTypes.filter(duplicateFilter), modified };
119
116
  };
120
117
  var reduceReceivedReleases = (releases, stateReleasesById) => releases.reduce((accu, release) => {
121
118
  const stateRelease = stateReleasesById[release.name] || {};
@@ -133,17 +130,16 @@ var findArtifactIndexInRelease = (releases, id) => Object.values(releases).reduc
133
130
  { release: null, index: -1 }
134
131
  );
135
132
  var getArtifactInstallCount = createAsyncThunk(`${sliceName}/getArtifactInstallCount`, (id, { dispatch, getState }) => {
136
- var _a;
137
133
  let { release, index } = findArtifactIndexInRelease(getReleasesById(getState()), id);
138
134
  if (!release || index === -1) {
139
135
  return;
140
136
  }
141
137
  const releaseArtifacts = [...release.artifacts];
142
138
  const artifact = releaseArtifacts[index];
143
- const { key, name, version } = (_a = extractSoftwareItem(artifact.artifact_provides)) != null ? _a : {};
139
+ const { key, name, version } = extractSoftwareItem(artifact.artifact_provides) ?? {};
144
140
  const attribute = `${key}${name ? `.${name}` : ""}.version`;
145
141
  const { filterTerms } = convertDeviceListStateToFilters({
146
- filters: [__spreadProps(__spreadValues({}, emptyFilter), { key: attribute, value: version, scope: "inventory" })]
142
+ filters: [{ ...emptyFilter, key: attribute, value: version, scope: "inventory" }]
147
143
  });
148
144
  return general_api_default.post(getSearchEndpoint(getState()), {
149
145
  page: 1,
@@ -157,10 +153,11 @@ var getArtifactInstallCount = createAsyncThunk(`${sliceName}/getArtifactInstallC
157
153
  }
158
154
  const installCount = Number(headers[headerNames.total]);
159
155
  const releaseArtifacts2 = [...release2.artifacts];
160
- releaseArtifacts2[index2] = __spreadProps(__spreadValues({}, releaseArtifacts2[index2]), { installCount });
161
- release2 = __spreadProps(__spreadValues({}, release2), {
156
+ releaseArtifacts2[index2] = { ...releaseArtifacts2[index2], installCount };
157
+ release2 = {
158
+ ...release2,
162
159
  artifacts: releaseArtifacts2
163
- });
160
+ };
164
161
  return dispatch(actions.receiveRelease(release2));
165
162
  });
166
163
  });
@@ -172,12 +169,14 @@ var getArtifactUrl = createAsyncThunk(
172
169
  return dispatch(getReleases());
173
170
  }
174
171
  const releaseArtifacts = [...release.artifacts];
175
- releaseArtifacts[index] = __spreadProps(__spreadValues({}, releaseArtifacts[index]), {
172
+ releaseArtifacts[index] = {
173
+ ...releaseArtifacts[index],
176
174
  url: response.data.uri
177
- });
178
- release = __spreadProps(__spreadValues({}, release), {
175
+ };
176
+ release = {
177
+ ...release,
179
178
  artifacts: releaseArtifacts
180
- });
179
+ };
181
180
  return dispatch(actions.receiveRelease(release));
182
181
  })
183
182
  );
@@ -302,12 +301,14 @@ var selectRelease = createAsyncThunk(`${sliceName}/selectRelease`, (release, { d
302
301
  });
303
302
  var setReleasesListState = createAsyncThunk(`${sliceName}/setReleasesListState`, (selectionState, { dispatch, getState }) => {
304
303
  const currentState = getState().releases.releasesList;
305
- let nextState = __spreadProps(__spreadValues(__spreadValues({}, currentState), selectionState), {
306
- sort: __spreadValues(__spreadValues({}, currentState.sort), selectionState.sort)
307
- });
304
+ let nextState = {
305
+ ...currentState,
306
+ ...selectionState,
307
+ sort: { ...currentState.sort, ...selectionState.sort }
308
+ };
308
309
  let tasks = [];
309
- const _a = currentState, { isLoading: currentLoading } = _a, currentRequestState = __objRest(_a, ["isLoading"]);
310
- const _b = nextState, { isLoading: selectionLoading } = _b, selectionRequestState = __objRest(_b, ["isLoading"]);
310
+ const { isLoading: currentLoading, ...currentRequestState } = currentState;
311
+ const { isLoading: selectionLoading, ...selectionRequestState } = nextState;
311
312
  if (!deepCompare(currentRequestState, selectionRequestState)) {
312
313
  nextState.isLoading = true;
313
314
  tasks.push(dispatch(getReleases(nextState)).finally(() => dispatch(setReleasesListState({ isLoading: false }))));
@@ -326,29 +327,30 @@ var releaseListRetrieval = (config) => {
326
327
  );
327
328
  };
328
329
  var deductSearchState = (receivedReleases, config, total, state) => {
329
- let releaseListState = __spreadValues({}, state.releasesList);
330
+ let releaseListState = { ...state.releasesList };
330
331
  const { searchTerm, searchOnly, sort = {}, selectedTags = [], type } = config;
331
332
  const flattenedReleases = Object.values(receivedReleases).sort(customSort(sort.direction === SORTING_OPTIONS.desc, sort.key));
332
333
  const releaseIds = flattenedReleases.map((item) => item.name);
333
334
  const isFiltering = !!(selectedTags.length || type || searchTerm);
334
335
  if (searchOnly) {
335
- releaseListState = __spreadProps(__spreadValues({}, releaseListState), { searchedIds: releaseIds });
336
+ releaseListState = { ...releaseListState, searchedIds: releaseIds };
336
337
  } else {
337
- releaseListState = __spreadProps(__spreadValues({}, releaseListState), {
338
+ releaseListState = {
339
+ ...releaseListState,
338
340
  releaseIds,
339
341
  searchTotal: isFiltering ? total : state.releasesList.searchTotal,
340
342
  total: !isFiltering ? total : state.releasesList.total
341
- });
343
+ };
342
344
  }
343
345
  return releaseListState;
344
346
  };
345
347
  var getReleases = createAsyncThunk(`${sliceName}/getReleases`, (passedConfig = {}, { dispatch, getState }) => {
346
- const config = __spreadValues(__spreadValues({}, getState().releases.releasesList), passedConfig);
348
+ const config = { ...getState().releases.releasesList, ...passedConfig };
347
349
  return releaseListRetrieval(config).then(({ data: receivedReleases = [], headers = {} }) => {
348
350
  const total = headers[headerNames.total] ? Number(headers[headerNames.total]) : 0;
349
351
  const state = getState().releases;
350
352
  const flatReleases = reduceReceivedReleases(receivedReleases, state.byId);
351
- const combinedReleases = __spreadValues(__spreadValues({}, state.byId), flatReleases);
353
+ const combinedReleases = { ...state.byId, ...flatReleases };
352
354
  let tasks = [dispatch(actions.receiveReleases(combinedReleases))];
353
355
  const releaseListState = deductSearchState(receivedReleases, config, total, state);
354
356
  tasks.push(dispatch(actions.setReleaseListState(releaseListState)));
@@ -369,7 +371,7 @@ var updateReleaseInfo = createAsyncThunk(
369
371
  `${sliceName}/updateReleaseInfo`,
370
372
  ({ name, info }, { dispatch, getState }) => general_api_default.patch(`${deploymentsApiUrlV2}/deployments/releases/${name}`, info).catch((err) => commonErrorHandler(err, `Release details couldn't be updated.`, dispatch)).then(() => {
371
373
  return Promise.all([
372
- dispatch(actions.receiveRelease(__spreadProps(__spreadValues(__spreadValues({}, getReleasesById(getState())[name]), info), { name }))),
374
+ dispatch(actions.receiveRelease({ ...getReleasesById(getState())[name], ...info, name })),
373
375
  dispatch(setSnackbar("Release details were updated successfully.", TIMEOUTS.fiveSeconds, ""))
374
376
  ]);
375
377
  })
@@ -378,7 +380,7 @@ var setReleaseTags = createAsyncThunk(
378
380
  `${sliceName}/setReleaseTags`,
379
381
  ({ name, tags = [] }, { dispatch, getState }) => general_api_default.put(`${deploymentsApiUrlV2}/deployments/releases/${name}/tags`, tags).catch((err) => commonErrorHandler(err, `Release tags couldn't be set.`, dispatch)).then(() => {
380
382
  return Promise.all([
381
- dispatch(actions.receiveRelease(__spreadProps(__spreadValues({}, getReleasesById(getState())[name]), { name, tags }))),
383
+ dispatch(actions.receiveRelease({ ...getReleasesById(getState())[name], name, tags })),
382
384
  dispatch(setSnackbar("Release tags were set successfully.", TIMEOUTS.fiveSeconds, ""))
383
385
  ]);
384
386
  })
@@ -411,4 +413,4 @@ export {
411
413
  getExistingReleaseTags,
412
414
  getUpdateTypes
413
415
  };
414
- //# sourceMappingURL=chunk-ZLRZO4EY.mjs.map
416
+ //# sourceMappingURL=chunk-O6TYYKSD.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/releasesSlice/thunks.ts","../../../node_modules/uuid/dist/esm-browser/rng.js","../../../node_modules/uuid/dist/esm-browser/stringify.js","../../../node_modules/uuid/dist/esm-browser/native.js","../../../node_modules/uuid/dist/esm-browser/v4.js"],"sourcesContent":["// Copyright 2019 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.\n// @ts-nocheck\nimport storeActions from '@northern.tech/store/actions';\nimport GeneralApi from '@northern.tech/store/api/general-api';\nimport {\n DEVICE_LIST_DEFAULTS,\n SORTING_OPTIONS,\n TIMEOUTS,\n deploymentsApiUrl,\n deploymentsApiUrlV2,\n emptyFilter,\n headerNames\n} from '@northern.tech/store/constants';\nimport { getSearchEndpoint } from '@northern.tech/store/selectors';\nimport { commonErrorFallback, commonErrorHandler } from '@northern.tech/store/store';\nimport { convertDeviceListStateToFilters, progress } from '@northern.tech/store/utils';\nimport { customSort, deepCompare, duplicateFilter, extractSoftwareItem } from '@northern.tech/utils/helpers';\nimport { formatReleases } from '@northern.tech/utils/locationutils';\nimport { createAsyncThunk } from '@reduxjs/toolkit';\nimport { isCancel } from 'axios';\nimport { v4 as uuid } from 'uuid';\n\nimport { actions, sliceName } from '.';\nimport { ARTIFACT_GENERATION_TYPE } from './constants';\nimport { getReleasesById } from './selectors';\n\nconst { setSnackbar, initUpload, uploadProgress, cleanUpUpload } = storeActions;\nconst { page: defaultPage, perPage: defaultPerPage } = DEVICE_LIST_DEFAULTS;\n\nconst sortingDefaults = { direction: SORTING_OPTIONS.desc, key: 'modified' };\n\nconst flattenRelease = (release, stateRelease) => {\n const updatedArtifacts = release.artifacts?.sort(customSort(1, 'modified')) || [];\n const { artifacts, deviceTypes, modified } = updatedArtifacts.reduce(\n (accu, item) => {\n accu.deviceTypes.push(...item.device_types_compatible);\n const stateArtifact = stateRelease.artifacts?.find(releaseArtifact => releaseArtifact.id === item.id) || {};\n accu.modified = accu.modified ? accu.modified : item.modified;\n accu.artifacts.push({\n ...stateArtifact,\n ...item\n });\n return accu;\n },\n { artifacts: [], deviceTypes: [], modified: undefined }\n );\n return { ...stateRelease, ...release, artifacts, device_types_compatible: deviceTypes.filter(duplicateFilter), modified };\n};\n\nconst reduceReceivedReleases = (releases, stateReleasesById) =>\n releases.reduce((accu, release) => {\n const stateRelease = stateReleasesById[release.name] || {};\n accu[release.name] = flattenRelease(release, stateRelease);\n return accu;\n }, {});\n\nconst findArtifactIndexInRelease = (releases, id) =>\n Object.values(releases).reduce(\n (accu, item) => {\n let index = item.artifacts.findIndex(releaseArtifact => releaseArtifact.id === id);\n if (index > -1) {\n accu = { release: item, index };\n }\n return accu;\n },\n { release: null, index: -1 }\n );\n\n/* Artifacts */\nexport const getArtifactInstallCount = createAsyncThunk(`${sliceName}/getArtifactInstallCount`, (id, { dispatch, getState }) => {\n let { release, index } = findArtifactIndexInRelease(getReleasesById(getState()), id);\n if (!release || index === -1) {\n return;\n }\n const releaseArtifacts = [...release.artifacts];\n const artifact = releaseArtifacts[index];\n const { key, name, version } = extractSoftwareItem(artifact.artifact_provides) ?? {};\n const attribute = `${key}${name ? `.${name}` : ''}.version`;\n const { filterTerms } = convertDeviceListStateToFilters({\n filters: [{ ...emptyFilter, key: attribute, value: version, scope: 'inventory' }]\n });\n return GeneralApi.post(getSearchEndpoint(getState()), {\n page: 1,\n per_page: 1,\n filters: filterTerms,\n attributes: [{ scope: 'identity', attribute: 'status' }]\n })\n .catch(err => commonErrorHandler(err, `Retrieving artifact installation count failed:`, dispatch, commonErrorFallback))\n .then(({ headers }) => {\n let { release, index } = findArtifactIndexInRelease(getReleasesById(getState()), id);\n if (!release || index === -1) {\n return;\n }\n const installCount = Number(headers[headerNames.total]);\n const releaseArtifacts = [...release.artifacts];\n releaseArtifacts[index] = { ...releaseArtifacts[index], installCount };\n release = {\n ...release,\n artifacts: releaseArtifacts\n };\n return dispatch(actions.receiveRelease(release));\n });\n});\n\nexport const getArtifactUrl = createAsyncThunk(`${sliceName}/getArtifactUrl`, (id, { dispatch, getState }) =>\n GeneralApi.get(`${deploymentsApiUrl}/artifacts/${id}/download`).then(response => {\n let { release, index } = findArtifactIndexInRelease(getReleasesById(getState()), id);\n if (!release || index === -1) {\n return dispatch(getReleases());\n }\n const releaseArtifacts = [...release.artifacts];\n releaseArtifacts[index] = {\n ...releaseArtifacts[index],\n url: response.data.uri\n };\n release = {\n ...release,\n artifacts: releaseArtifacts\n };\n return dispatch(actions.receiveRelease(release));\n })\n);\n\nexport const createArtifact = createAsyncThunk(`${sliceName}/createArtifact`, ({ file, meta }, { dispatch }) => {\n let formData = Object.entries(meta).reduce((accu, [key, value]) => {\n if (Array.isArray(value)) {\n accu.append(key, value.join(','));\n } else if (value instanceof Object) {\n accu.append(key, JSON.stringify(value));\n } else {\n accu.append(key, value);\n }\n return accu;\n }, new FormData());\n formData.append('type', ARTIFACT_GENERATION_TYPE.SINGLE_FILE);\n formData.append('file', file);\n const uploadId = uuid();\n const cancelSource = new AbortController();\n return Promise.all([\n dispatch(setSnackbar('Generating artifact')),\n dispatch(initUpload({ id: uploadId, upload: { name: file.name, size: file.size, uploadProgress: 0, cancelSource } })),\n GeneralApi.upload(\n `${deploymentsApiUrl}/artifacts/generate`,\n formData,\n e => dispatch(uploadProgress({ id: uploadId, progress: progress(e) })),\n cancelSource.signal\n )\n ])\n .then(() => {\n setTimeout(() => {\n dispatch(getReleases());\n dispatch(selectRelease(file.name));\n }, TIMEOUTS.oneSecond);\n return Promise.resolve(dispatch(setSnackbar('Upload successful', TIMEOUTS.fiveSeconds)));\n })\n .catch(err => {\n if (isCancel(err)) {\n return dispatch(setSnackbar('The artifact generation has been cancelled', TIMEOUTS.fiveSeconds));\n }\n return commonErrorHandler(err, `Artifact couldn't be generated.`, dispatch);\n })\n .finally(() => dispatch(cleanUpUpload(uploadId)));\n});\n\nexport const uploadArtifact = createAsyncThunk(`${sliceName}/uploadArtifact`, ({ file, meta }, { dispatch }) => {\n let formData = new FormData();\n formData.append('size', file.size);\n formData.append('description', meta.description);\n formData.append('artifact', file);\n const uploadId = uuid();\n const cancelSource = new AbortController();\n return Promise.all([\n dispatch(setSnackbar('Uploading artifact')),\n dispatch(initUpload({ id: uploadId, upload: { name: file.name, size: file.size, uploadProgress: 0, cancelSource } })),\n GeneralApi.upload(`${deploymentsApiUrl}/artifacts`, formData, e => dispatch(uploadProgress({ id: uploadId, progress: progress(e) })), cancelSource.signal)\n ])\n .then(() => {\n const tasks = [dispatch(setSnackbar('Upload successful', TIMEOUTS.fiveSeconds)), dispatch(getReleases())];\n if (meta.name) {\n tasks.push(dispatch(selectRelease(meta.name)));\n }\n return Promise.all(tasks);\n })\n .catch(err => {\n if (isCancel(err)) {\n return dispatch(setSnackbar('The upload has been cancelled', TIMEOUTS.fiveSeconds));\n }\n return commonErrorHandler(err, `Artifact couldn't be uploaded.`, dispatch);\n })\n .finally(() => dispatch(cleanUpUpload(uploadId)));\n});\n\nexport const cancelFileUpload = createAsyncThunk(`${sliceName}/cancelFileUpload`, (id, { dispatch, getState }) => {\n const { [id]: current } = getState().app.uploadsById;\n current.cancelSource.abort();\n return Promise.resolve(dispatch(cleanUpUpload(id)));\n});\n\nexport const editArtifact = createAsyncThunk(`${sliceName}/editArtifact`, ({ id, body }, { dispatch, getState }) =>\n GeneralApi.put(`${deploymentsApiUrl}/artifacts/${id}`, body)\n .catch(err => commonErrorHandler(err, `Artifact details couldn't be updated.`, dispatch))\n .then(() => {\n const state = getState();\n let { release, index } = findArtifactIndexInRelease(getReleasesById(state), id);\n if (!release || index === -1) {\n return dispatch(getReleases());\n }\n release.artifacts[index].description = body.description;\n return Promise.all([\n dispatch(actions.receiveRelease(release)),\n dispatch(setSnackbar('Artifact details were updated successfully.', TIMEOUTS.fiveSeconds, '')),\n dispatch(getRelease(release.name)),\n dispatch(selectRelease(release.name))\n ]);\n })\n);\n\nexport const removeArtifact = createAsyncThunk(`${sliceName}/removeArtifact`, (id, { dispatch, getState }) =>\n GeneralApi.delete(`${deploymentsApiUrl}/artifacts/${id}`)\n .then(() => {\n const state = getState();\n let { release, index } = findArtifactIndexInRelease(getReleasesById(state), id);\n const releaseArtifacts = [...release.artifacts];\n releaseArtifacts.splice(index, 1);\n if (!releaseArtifacts.length) {\n const { releasesList } = state.releases;\n const releaseIds = releasesList.releaseIds.filter(id => release.name !== id);\n return Promise.all([\n dispatch(actions.removeRelease(release.name)),\n dispatch(\n setReleasesListState({\n releaseIds,\n searchTotal: releasesList.searchTerm ? releasesList.searchTotal - 1 : releasesList.searchTotal,\n total: releasesList.total - 1\n })\n )\n ]);\n }\n return Promise.all([dispatch(setSnackbar('Artifact was removed', TIMEOUTS.fiveSeconds, '')), dispatch(actions.receiveRelease(release))]);\n })\n .catch(err => commonErrorHandler(err, `Error removing artifact:`, dispatch))\n);\n\nexport const removeRelease = createAsyncThunk(`${sliceName}/removeRelease`, (releaseId, { dispatch, getState }) =>\n Promise.all(getReleasesById(getState())[releaseId].artifacts.map(({ id }) => dispatch(removeArtifact(id)))).then(() => dispatch(selectRelease()))\n);\n\nexport const selectRelease = createAsyncThunk(`${sliceName}/selectRelease`, (release, { dispatch }) => {\n const name = release ? release.name || release : null;\n let tasks = [dispatch(actions.selectedRelease(name))];\n if (name) {\n tasks.push(dispatch(getRelease(name)));\n }\n return Promise.all(tasks);\n});\n\nexport const setReleasesListState = createAsyncThunk(`${sliceName}/setReleasesListState`, (selectionState, { dispatch, getState }) => {\n const currentState = getState().releases.releasesList;\n let nextState = {\n ...currentState,\n ...selectionState,\n sort: { ...currentState.sort, ...selectionState.sort }\n };\n let tasks = [];\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { isLoading: currentLoading, ...currentRequestState } = currentState;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { isLoading: selectionLoading, ...selectionRequestState } = nextState;\n if (!deepCompare(currentRequestState, selectionRequestState)) {\n nextState.isLoading = true;\n tasks.push(dispatch(getReleases(nextState)).finally(() => dispatch(setReleasesListState({ isLoading: false }))));\n }\n tasks.push(dispatch(actions.setReleaseListState(nextState)));\n return Promise.all(tasks);\n});\n\n/* Releases */\n\nconst releaseListRetrieval = config => {\n const { searchTerm = '', page = defaultPage, perPage = defaultPerPage, sort = sortingDefaults, selectedTags = [], type = '' } = config;\n const { key: attribute, direction } = sort;\n const filterQuery = formatReleases({ pageState: { searchTerm, selectedTags } });\n const updateType = type ? `update_type=${type}` : '';\n const sorting = attribute ? `sort=${attribute}:${direction}`.toLowerCase() : '';\n return GeneralApi.get(\n `${deploymentsApiUrlV2}/deployments/releases?${[`page=${page}`, `per_page=${perPage}`, filterQuery, updateType, sorting].filter(i => i).join('&')}`\n );\n};\n\nconst deductSearchState = (receivedReleases, config, total, state) => {\n let releaseListState = { ...state.releasesList };\n const { searchTerm, searchOnly, sort = {}, selectedTags = [], type } = config;\n const flattenedReleases = Object.values(receivedReleases).sort(customSort(sort.direction === SORTING_OPTIONS.desc, sort.key));\n const releaseIds = flattenedReleases.map(item => item.name);\n const isFiltering = !!(selectedTags.length || type || searchTerm);\n if (searchOnly) {\n releaseListState = { ...releaseListState, searchedIds: releaseIds };\n } else {\n releaseListState = {\n ...releaseListState,\n releaseIds,\n searchTotal: isFiltering ? total : state.releasesList.searchTotal,\n total: !isFiltering ? total : state.releasesList.total\n };\n }\n return releaseListState;\n};\n\nexport const getReleases = createAsyncThunk(`${sliceName}/getReleases`, (passedConfig = {}, { dispatch, getState }) => {\n const config = { ...getState().releases.releasesList, ...passedConfig };\n return releaseListRetrieval(config)\n .then(({ data: receivedReleases = [], headers = {} }) => {\n const total = headers[headerNames.total] ? Number(headers[headerNames.total]) : 0;\n const state = getState().releases;\n const flatReleases = reduceReceivedReleases(receivedReleases, state.byId);\n const combinedReleases = { ...state.byId, ...flatReleases };\n let tasks = [dispatch(actions.receiveReleases(combinedReleases))];\n const releaseListState = deductSearchState(receivedReleases, config, total, state);\n tasks.push(dispatch(actions.setReleaseListState(releaseListState)));\n return Promise.all(tasks);\n })\n .catch(err => commonErrorHandler(err, `Please check your connection`, dispatch));\n});\n\nexport const getRelease = createAsyncThunk(`${sliceName}/getReleases`, (name, { dispatch, getState }) =>\n releaseListRetrieval({ searchTerm: name, page: 1, perPage: 1 }).then(({ data: releases }) => {\n if (releases.length) {\n const stateRelease = getReleasesById(getState())[releases[0].name] || {};\n return Promise.resolve(dispatch(actions.receiveRelease(flattenRelease(releases[0], stateRelease))));\n }\n return Promise.resolve(null);\n })\n);\n\nexport const updateReleaseInfo = createAsyncThunk(`${sliceName}/updateReleaseInfo`, ({ name, info }, { dispatch, getState }) =>\n GeneralApi.patch(`${deploymentsApiUrlV2}/deployments/releases/${name}`, info)\n .catch(err => commonErrorHandler(err, `Release details couldn't be updated.`, dispatch))\n .then(() => {\n return Promise.all([\n dispatch(actions.receiveRelease({ ...getReleasesById(getState())[name], ...info, name })),\n dispatch(setSnackbar('Release details were updated successfully.', TIMEOUTS.fiveSeconds, ''))\n ]);\n })\n);\n\nexport const setReleaseTags = createAsyncThunk(`${sliceName}/setReleaseTags`, ({ name, tags = [] }, { dispatch, getState }) =>\n GeneralApi.put(`${deploymentsApiUrlV2}/deployments/releases/${name}/tags`, tags)\n .catch(err => commonErrorHandler(err, `Release tags couldn't be set.`, dispatch))\n .then(() => {\n return Promise.all([\n dispatch(actions.receiveRelease({ ...getReleasesById(getState())[name], name, tags })),\n dispatch(setSnackbar('Release tags were set successfully.', TIMEOUTS.fiveSeconds, ''))\n ]);\n })\n);\n\nexport const getExistingReleaseTags = createAsyncThunk(`${sliceName}/getReleaseTags`, (_, { dispatch }) =>\n GeneralApi.get(`${deploymentsApiUrlV2}/releases/all/tags`)\n .catch(err => commonErrorHandler(err, `Existing release tags couldn't be retrieved.`, dispatch))\n .then(({ data: tags }) => Promise.resolve(dispatch(actions.receiveReleaseTags(tags))))\n);\n\nexport const getUpdateTypes = createAsyncThunk(`${sliceName}/getReleaseTypes`, (_, { dispatch }) =>\n GeneralApi.get(`${deploymentsApiUrlV2}/releases/all/types`)\n .catch(err => commonErrorHandler(err, `Existing update types couldn't be retrieved.`, dispatch))\n .then(({ data: types }) => Promise.resolve(dispatch(actions.receiveReleaseTypes(types))))\n);\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;"],"mappings":"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","names":["release","index","releaseArtifacts","id"]}
@@ -1,7 +1,3 @@
1
- import {
2
- __spreadValues
3
- } from "./chunk-XWBD7VOK.mjs";
4
-
5
1
  // src/commonConstants.tsx
6
2
  import React from "react";
7
3
  import { mdiAws as AWS, mdiMicrosoftAzure as Azure } from "@mdi/js";
@@ -219,7 +215,7 @@ var emptyRole = Object.freeze({
219
215
  name: void 0,
220
216
  description: "",
221
217
  permissions: [],
222
- uiPermissions: Object.freeze(__spreadValues({}, emptyUiPermissions))
218
+ uiPermissions: Object.freeze({ ...emptyUiPermissions })
223
219
  });
224
220
 
225
221
  export {
@@ -241,4 +237,4 @@ export {
241
237
  emptyUiPermissions,
242
238
  emptyRole
243
239
  };
244
- //# sourceMappingURL=chunk-OGAMVFPS.mjs.map
240
+ //# sourceMappingURL=chunk-QQBUNZHA.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commonConstants.tsx"],"sourcesContent":["// Copyright 2024 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.\n// @ts-nocheck\nimport React from 'react';\n\nimport { mdiAws as AWS, mdiMicrosoftAzure as Azure } from '@mdi/js';\n\nexport const DEVICE_LIST_DEFAULTS = {\n page: 1,\n perPage: 20\n};\n\nexport const timeUnits = {\n days: 'days',\n minutes: 'minutes',\n hours: 'hours'\n};\n\nexport const ALL_DEVICES = 'All devices';\nexport const UNGROUPED_GROUP = { id: '*|=ungrouped=|*', name: 'Unassigned' };\n\nexport const DEVICE_LIST_MAXIMUM_LENGTH = 50;\n\nexport const DEVICE_FILTERING_OPTIONS = {\n $eq: { key: '$eq', title: 'equals', shortform: '=' },\n $ne: { key: '$ne', title: 'not equal', shortform: '!=' },\n $gt: {\n key: '$gt',\n title: '>',\n shortform: '>',\n help: 'The \"greater than\" operator can work both on numbers and strings. In the latter case, the operator applies the lexicographical order to the value strings.'\n },\n $gte: {\n title: '>=',\n shortform: '>=',\n help: 'The \"greater than or equal\" operator can work both on numbers and strings. In the latter case, the operator applies the lexicographical order to the value strings.'\n },\n $lt: {\n key: '$lt',\n title: '<',\n shortform: '<',\n help: 'The \"lesser than\" operator can work both on numbers and strings. In the latter case, the operator applies the lexicographical order to the value strings.'\n },\n $lte: {\n title: '<=',\n shortform: '<=',\n help: 'The \"lesser than or equal\" operator can work both on numbers and strings. In the latter case, the operator applies the lexicographical order to the value strings.'\n },\n $ltne: {\n key: '$ltne',\n title: '$ltne',\n shortform: 'ltne',\n help: 'The \"lesser than or does not exist\" operator can work both on numbers and strings. In the latter case, the operator applies the lexicographical order to the value strings.'\n },\n $in: {\n key: '$in',\n title: 'in',\n shortform: 'in',\n help: 'The \"in\" operator accepts a list of comma-separated values. It matches if the selected field is equal to one of the specified values.'\n },\n $nin: {\n key: '$nin',\n title: 'not in',\n shortform: 'not in',\n help: `The \"not in\" operator accepts a list of comma-separated values. It matches if the selected field's value is not equal to any of the specified options.`\n },\n $exists: {\n key: '$exists',\n title: 'exists',\n shortform: 'exists',\n value: true,\n help: `The \"exists\" operator matches if the selected field's value has a value. No value needs to be provided for this operator.`\n },\n $nexists: {\n key: '$nexists',\n title: `doesn't exist`,\n shortform: `doesn't exist`,\n value: true,\n help: `The \"doesn't exist\" operator matches if the selected field's value has no value. No value needs to be provided for this operator.`\n },\n $regex: {\n key: '$regex',\n title: `matches regular expression`,\n shortform: `matches`,\n help: `The \"regular expression\" operator matches the selected field's value with a Perl compatible regular expression (PCRE), automatically anchored by ^. If the regular expression is not valid, the filter will produce no results. If you need to specify options and flags, you can provide the full regex in the format of /regex/flags, for example.`\n }\n};\n\nexport const DEVICE_ISSUE_OPTIONS = {\n issues: {\n isCategory: true,\n key: 'issues',\n title: 'Devices with issues',\n filterRule: {}\n },\n offline: {\n issueCategory: 'issues',\n key: 'offline',\n needsFullFiltering: true,\n needsMonitor: false,\n needsReporting: false,\n filterRule: {\n scope: 'system',\n key: 'check_in_time',\n operator: DEVICE_FILTERING_OPTIONS.$ltne.key,\n value: ({ offlineThreshold }) => offlineThreshold\n },\n title: 'Offline devices'\n },\n failedLastUpdate: {\n issueCategory: 'issues',\n key: 'failedLastUpdate',\n needsFullFiltering: false,\n needsMonitor: false,\n needsReporting: true,\n filterRule: { scope: 'monitor', key: 'failed_last_update', operator: DEVICE_FILTERING_OPTIONS.$eq.key, value: true },\n title: 'Deployment failed'\n },\n monitoring: {\n issueCategory: 'issues',\n key: 'monitoring',\n needsFullFiltering: false,\n needsMonitor: true,\n needsReporting: false,\n filterRule: { scope: 'monitor', key: 'alerts', operator: DEVICE_FILTERING_OPTIONS.$eq.key, value: true },\n title: 'Monitoring alert'\n },\n authRequests: {\n key: 'authRequests',\n needsFullFiltering: false,\n needsMonitor: false,\n needsReporting: true,\n filterRule: { scope: 'monitor', key: 'auth_requests', operator: DEVICE_FILTERING_OPTIONS.$gt.key, value: 1 },\n title: 'Devices with new authentication requests'\n },\n gatewayDevices: {\n key: 'gatewayDevices',\n needsFullFiltering: false,\n needsMonitor: false,\n needsReporting: true,\n filterRule: { scope: 'inventory', key: 'mender_is_gateway', operator: DEVICE_FILTERING_OPTIONS.$eq.key, value: 'true' },\n title: 'Gateway devices'\n }\n};\nconst oneSecond = 1000;\nexport const TIMEOUTS = {\n debounceDefault: 700,\n debounceShort: 300,\n halfASecond: 0.5 * oneSecond,\n oneSecond,\n twoSeconds: 2 * oneSecond,\n threeSeconds: 3 * oneSecond,\n fiveSeconds: 5 * oneSecond,\n refreshDefault: 10 * oneSecond,\n refreshLong: 60 * oneSecond\n};\n\nexport const SORTING_OPTIONS = {\n asc: 'asc',\n desc: 'desc'\n};\n\nexport const DEVICE_ONLINE_CUTOFF = { interval: 1, intervalName: timeUnits.days };\n\nexport const ATTRIBUTE_SCOPES = {\n inventory: 'inventory',\n identity: 'identity',\n monitor: 'monitor',\n system: 'system',\n tags: 'tags'\n};\n\nexport const defaultIdAttribute = Object.freeze({ attribute: 'id', scope: ATTRIBUTE_SCOPES.identity });\n\nconst credentialTypes = {\n aws: 'aws',\n http: 'http',\n sas: 'sas',\n x509: 'x509'\n};\nexport const EXTERNAL_PROVIDER = {\n 'iot-core': {\n credentialsType: credentialTypes.aws,\n icon: AWS,\n title: 'AWS IoT Core',\n twinTitle: 'Device Shadow',\n provider: 'iot-core',\n enabled: true,\n deviceTwin: true,\n configHint: <>For help finding your AWS IoT Core connection string, check the AWS IoT documentation.</>\n },\n 'iot-hub': {\n credentialsType: credentialTypes.sas,\n icon: Azure,\n title: 'Azure IoT Hub',\n twinTitle: 'Device Twin',\n provider: 'iot-hub',\n enabled: true,\n deviceTwin: true,\n configHint: (\n <span>\n For help finding your Azure IoT Hub connection string, look under &apos;Shared access policies&apos; in the Microsoft Azure UI as described{' '}\n {\n <a\n href=\"https://devblogs.microsoft.com/iotdev/understand-different-connection-strings-in-azure-iot-hub/#iothubconn\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n here\n </a>\n }\n .\n </span>\n )\n },\n webhook: {\n credentialsType: credentialTypes.http,\n deviceTwin: false,\n // disable the webhook provider here, since it is treated different than other integrations, with a custom configuration & management view, etc.\n enabled: false,\n provider: 'webhook'\n }\n};\nexport const MAX_PAGE_SIZE = 500;\n\nexport const ALL_RELEASES = 'All releases';\n\nexport type UiPermissionsDefinition = Readonly<{\n auditlog: string[];\n deployments?: string[]; // deployments are so far only covered indirectly through releases + device group permissions\n groups: Record<string, string[]>;\n releases: Record<string, string[]>;\n tenantManagement: string[];\n userManagement: string[];\n}>;\n\nexport type UiRoleDefinition = {\n name: string;\n description: string;\n editable?: boolean;\n isCustom?: boolean;\n permissions?: object[];\n uiPermissions: UiPermissionsDefinition;\n};\n\nexport const emptyUiPermissions: UiPermissionsDefinition = Object.freeze({\n auditlog: [],\n deployments: [],\n groups: Object.freeze({}),\n releases: Object.freeze({}),\n tenantManagement: [],\n userManagement: []\n});\n\nexport const emptyRole: UiRoleDefinition = Object.freeze({\n name: undefined,\n description: '',\n permissions: [],\n uiPermissions: Object.freeze({ ...emptyUiPermissions })\n});\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/commonConstants.tsx"],"sourcesContent":["// Copyright 2024 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.\n// @ts-nocheck\nimport React from 'react';\n\nimport { mdiAws as AWS, mdiMicrosoftAzure as Azure } from '@mdi/js';\n\nexport const DEVICE_LIST_DEFAULTS = {\n page: 1,\n perPage: 20\n};\n\nexport const timeUnits = {\n days: 'days',\n minutes: 'minutes',\n hours: 'hours'\n};\n\nexport const ALL_DEVICES = 'All devices';\nexport const UNGROUPED_GROUP = { id: '*|=ungrouped=|*', name: 'Unassigned' };\n\nexport const DEVICE_LIST_MAXIMUM_LENGTH = 50;\n\nexport const DEVICE_FILTERING_OPTIONS = {\n $eq: { key: '$eq', title: 'equals', shortform: '=' },\n $ne: { key: '$ne', title: 'not equal', shortform: '!=' },\n $gt: {\n key: '$gt',\n title: '>',\n shortform: '>',\n help: 'The \"greater than\" operator can work both on numbers and strings. In the latter case, the operator applies the lexicographical order to the value strings.'\n },\n $gte: {\n title: '>=',\n shortform: '>=',\n help: 'The \"greater than or equal\" operator can work both on numbers and strings. In the latter case, the operator applies the lexicographical order to the value strings.'\n },\n $lt: {\n key: '$lt',\n title: '<',\n shortform: '<',\n help: 'The \"lesser than\" operator can work both on numbers and strings. In the latter case, the operator applies the lexicographical order to the value strings.'\n },\n $lte: {\n title: '<=',\n shortform: '<=',\n help: 'The \"lesser than or equal\" operator can work both on numbers and strings. In the latter case, the operator applies the lexicographical order to the value strings.'\n },\n $ltne: {\n key: '$ltne',\n title: '$ltne',\n shortform: 'ltne',\n help: 'The \"lesser than or does not exist\" operator can work both on numbers and strings. In the latter case, the operator applies the lexicographical order to the value strings.'\n },\n $in: {\n key: '$in',\n title: 'in',\n shortform: 'in',\n help: 'The \"in\" operator accepts a list of comma-separated values. It matches if the selected field is equal to one of the specified values.'\n },\n $nin: {\n key: '$nin',\n title: 'not in',\n shortform: 'not in',\n help: `The \"not in\" operator accepts a list of comma-separated values. It matches if the selected field's value is not equal to any of the specified options.`\n },\n $exists: {\n key: '$exists',\n title: 'exists',\n shortform: 'exists',\n value: true,\n help: `The \"exists\" operator matches if the selected field's value has a value. No value needs to be provided for this operator.`\n },\n $nexists: {\n key: '$nexists',\n title: `doesn't exist`,\n shortform: `doesn't exist`,\n value: true,\n help: `The \"doesn't exist\" operator matches if the selected field's value has no value. No value needs to be provided for this operator.`\n },\n $regex: {\n key: '$regex',\n title: `matches regular expression`,\n shortform: `matches`,\n help: `The \"regular expression\" operator matches the selected field's value with a Perl compatible regular expression (PCRE), automatically anchored by ^. If the regular expression is not valid, the filter will produce no results. If you need to specify options and flags, you can provide the full regex in the format of /regex/flags, for example.`\n }\n};\n\nexport const DEVICE_ISSUE_OPTIONS = {\n issues: {\n isCategory: true,\n key: 'issues',\n title: 'Devices with issues',\n filterRule: {}\n },\n offline: {\n issueCategory: 'issues',\n key: 'offline',\n needsFullFiltering: true,\n needsMonitor: false,\n needsReporting: false,\n filterRule: {\n scope: 'system',\n key: 'check_in_time',\n operator: DEVICE_FILTERING_OPTIONS.$ltne.key,\n value: ({ offlineThreshold }) => offlineThreshold\n },\n title: 'Offline devices'\n },\n failedLastUpdate: {\n issueCategory: 'issues',\n key: 'failedLastUpdate',\n needsFullFiltering: false,\n needsMonitor: false,\n needsReporting: true,\n filterRule: { scope: 'monitor', key: 'failed_last_update', operator: DEVICE_FILTERING_OPTIONS.$eq.key, value: true },\n title: 'Deployment failed'\n },\n monitoring: {\n issueCategory: 'issues',\n key: 'monitoring',\n needsFullFiltering: false,\n needsMonitor: true,\n needsReporting: false,\n filterRule: { scope: 'monitor', key: 'alerts', operator: DEVICE_FILTERING_OPTIONS.$eq.key, value: true },\n title: 'Monitoring alert'\n },\n authRequests: {\n key: 'authRequests',\n needsFullFiltering: false,\n needsMonitor: false,\n needsReporting: true,\n filterRule: { scope: 'monitor', key: 'auth_requests', operator: DEVICE_FILTERING_OPTIONS.$gt.key, value: 1 },\n title: 'Devices with new authentication requests'\n },\n gatewayDevices: {\n key: 'gatewayDevices',\n needsFullFiltering: false,\n needsMonitor: false,\n needsReporting: true,\n filterRule: { scope: 'inventory', key: 'mender_is_gateway', operator: DEVICE_FILTERING_OPTIONS.$eq.key, value: 'true' },\n title: 'Gateway devices'\n }\n};\nconst oneSecond = 1000;\nexport const TIMEOUTS = {\n debounceDefault: 700,\n debounceShort: 300,\n halfASecond: 0.5 * oneSecond,\n oneSecond,\n twoSeconds: 2 * oneSecond,\n threeSeconds: 3 * oneSecond,\n fiveSeconds: 5 * oneSecond,\n refreshDefault: 10 * oneSecond,\n refreshLong: 60 * oneSecond\n};\n\nexport const SORTING_OPTIONS = {\n asc: 'asc',\n desc: 'desc'\n};\n\nexport const DEVICE_ONLINE_CUTOFF = { interval: 1, intervalName: timeUnits.days };\n\nexport const ATTRIBUTE_SCOPES = {\n inventory: 'inventory',\n identity: 'identity',\n monitor: 'monitor',\n system: 'system',\n tags: 'tags'\n};\n\nexport const defaultIdAttribute = Object.freeze({ attribute: 'id', scope: ATTRIBUTE_SCOPES.identity });\n\nconst credentialTypes = {\n aws: 'aws',\n http: 'http',\n sas: 'sas',\n x509: 'x509'\n};\nexport const EXTERNAL_PROVIDER = {\n 'iot-core': {\n credentialsType: credentialTypes.aws,\n icon: AWS,\n title: 'AWS IoT Core',\n twinTitle: 'Device Shadow',\n provider: 'iot-core',\n enabled: true,\n deviceTwin: true,\n configHint: <>For help finding your AWS IoT Core connection string, check the AWS IoT documentation.</>\n },\n 'iot-hub': {\n credentialsType: credentialTypes.sas,\n icon: Azure,\n title: 'Azure IoT Hub',\n twinTitle: 'Device Twin',\n provider: 'iot-hub',\n enabled: true,\n deviceTwin: true,\n configHint: (\n <span>\n For help finding your Azure IoT Hub connection string, look under &apos;Shared access policies&apos; in the Microsoft Azure UI as described{' '}\n {\n <a\n href=\"https://devblogs.microsoft.com/iotdev/understand-different-connection-strings-in-azure-iot-hub/#iothubconn\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n here\n </a>\n }\n .\n </span>\n )\n },\n webhook: {\n credentialsType: credentialTypes.http,\n deviceTwin: false,\n // disable the webhook provider here, since it is treated different than other integrations, with a custom configuration & management view, etc.\n enabled: false,\n provider: 'webhook'\n }\n};\nexport const MAX_PAGE_SIZE = 500;\n\nexport const ALL_RELEASES = 'All releases';\n\nexport type UiPermissionsDefinition = Readonly<{\n auditlog: string[];\n deployments?: string[]; // deployments are so far only covered indirectly through releases + device group permissions\n groups: Record<string, string[]>;\n releases: Record<string, string[]>;\n tenantManagement: string[];\n userManagement: string[];\n}>;\n\nexport type UiRoleDefinition = {\n name: string;\n description: string;\n editable?: boolean;\n isCustom?: boolean;\n permissions?: object[];\n uiPermissions: UiPermissionsDefinition;\n};\n\nexport const emptyUiPermissions: UiPermissionsDefinition = Object.freeze({\n auditlog: [],\n deployments: [],\n groups: Object.freeze({}),\n releases: Object.freeze({}),\n tenantManagement: [],\n userManagement: []\n});\n\nexport const emptyRole: UiRoleDefinition = Object.freeze({\n name: undefined,\n description: '',\n permissions: [],\n uiPermissions: Object.freeze({ ...emptyUiPermissions })\n});\n"],"mappings":"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","names":[]}
@@ -1,14 +1,10 @@
1
1
  import {
2
2
  TENANT_LIST_DEFAULT
3
- } from "./chunk-MQIKQKSW.mjs";
3
+ } from "./chunk-IFWKT27G.mjs";
4
4
  import {
5
5
  DEVICE_LIST_DEFAULTS,
6
6
  SORTING_OPTIONS
7
- } from "./chunk-OGAMVFPS.mjs";
8
- import {
9
- __spreadProps,
10
- __spreadValues
11
- } from "./chunk-XWBD7VOK.mjs";
7
+ } from "./chunk-QQBUNZHA.mjs";
12
8
 
13
9
  // src/organizationSlice/index.ts
14
10
  import { createSlice } from "@reduxjs/toolkit";
@@ -20,7 +16,8 @@ var initialState = {
20
16
  brand: ""
21
17
  },
22
18
  intentId: null,
23
- tenantList: __spreadProps(__spreadValues({}, TENANT_LIST_DEFAULT), {
19
+ tenantList: {
20
+ ...TENANT_LIST_DEFAULT,
24
21
  total: 0,
25
22
  tenants: [],
26
23
  selectedTenant: null,
@@ -28,13 +25,14 @@ var initialState = {
28
25
  direction: SORTING_OPTIONS.desc,
29
26
  key: "name"
30
27
  }
31
- }),
28
+ },
32
29
  organization: {
33
30
  // id, name, status, tenant_token, plan
34
31
  },
35
32
  auditlog: {
36
33
  events: [],
37
- selectionState: __spreadProps(__spreadValues({}, DEVICE_LIST_DEFAULTS), {
34
+ selectionState: {
35
+ ...DEVICE_LIST_DEFAULTS,
38
36
  detail: void 0,
39
37
  endDate: void 0,
40
38
  selectedIssue: void 0,
@@ -43,7 +41,7 @@ var initialState = {
43
41
  total: 0,
44
42
  type: void 0,
45
43
  user: void 0
46
- })
44
+ }
47
45
  },
48
46
  externalDeviceIntegrations: [
49
47
  // { <connection_string|x509|...>, id, provider }
@@ -66,7 +64,10 @@ var organizationSlice = createSlice({
66
64
  state.auditlog.selectionState.total = total;
67
65
  },
68
66
  setAuditLogState: (state, action) => {
69
- state.auditlog.selectionState = __spreadValues(__spreadValues({}, state.auditlog.selectionState), action.payload);
67
+ state.auditlog.selectionState = {
68
+ ...state.auditlog.selectionState,
69
+ ...action.payload
70
+ };
70
71
  },
71
72
  receiveCurrentCard: (state, action) => {
72
73
  state.card = action.payload;
@@ -75,7 +76,7 @@ var organizationSlice = createSlice({
75
76
  state.intentId = action.payload;
76
77
  },
77
78
  setOrganization: (state, action) => {
78
- state.organization = __spreadValues(__spreadValues({}, state.organization), action.payload);
79
+ state.organization = { ...state.organization, ...action.payload };
79
80
  },
80
81
  setTenantListState: (state, action) => {
81
82
  state.tenantList = action.payload;
@@ -103,4 +104,4 @@ export {
103
104
  actions,
104
105
  organizationSlice_default
105
106
  };
106
- //# sourceMappingURL=chunk-WS3YYLTJ.mjs.map
107
+ //# sourceMappingURL=chunk-R7LXL3KJ.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/organizationSlice/index.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 { DEVICE_LIST_DEFAULTS, SORTING_OPTIONS, TENANT_LIST_DEFAULT } from '@northern.tech/store/constants';\nimport { createSlice } from '@reduxjs/toolkit';\n\nexport const sliceName = 'organization';\n\nexport const initialState = {\n card: {\n last4: '',\n expiration: { month: 1, year: 2020 },\n brand: ''\n },\n intentId: null,\n tenantList: {\n ...TENANT_LIST_DEFAULT,\n total: 0,\n tenants: [],\n selectedTenant: null,\n sort: {\n direction: SORTING_OPTIONS.desc,\n key: 'name'\n }\n },\n organization: {\n // id, name, status, tenant_token, plan\n },\n auditlog: {\n events: [],\n selectionState: {\n ...DEVICE_LIST_DEFAULTS,\n detail: undefined,\n endDate: undefined,\n selectedIssue: undefined,\n sort: { direction: SORTING_OPTIONS.desc },\n startDate: undefined,\n total: 0,\n type: undefined,\n user: undefined\n }\n },\n externalDeviceIntegrations: [\n // { <connection_string|x509|...>, id, provider }\n ],\n ssoConfigs: [],\n webhooks: {\n // [id]: { events: [] }\n // for now:\n events: [],\n eventsTotal: 0\n }\n};\n\nexport const organizationSlice = createSlice({\n name: sliceName,\n initialState,\n reducers: {\n receiveAuditLogs: (state, action) => {\n const { events, total } = action.payload;\n state.auditlog.events = events;\n state.auditlog.selectionState.total = total;\n },\n setAuditLogState: (state, action) => {\n state.auditlog.selectionState = {\n ...state.auditlog.selectionState,\n ...action.payload\n };\n },\n receiveCurrentCard: (state, action) => {\n state.card = action.payload;\n },\n receiveSetupIntent: (state, action) => {\n state.intentId = action.payload;\n },\n setOrganization: (state, action) => {\n state.organization = { ...state.organization, ...action.payload };\n },\n setTenantListState: (state, action) => {\n state.tenantList = action.payload;\n },\n receiveExternalDeviceIntegrations: (state, action) => {\n state.externalDeviceIntegrations = action.payload;\n },\n receiveSsoConfigs: (state, action) => {\n state.ssoConfigs = action.payload;\n },\n receiveWebhookEvents: (state, action) => {\n const { value, total } = action.payload;\n state.webhooks.events = value;\n state.webhooks.eventsTotal = total;\n }\n }\n});\n\nexport const actions = organizationSlice.actions;\nexport default organizationSlice.reducer;\n"],"mappings":";;;;;;;;;;;;;AAcA,SAAS,mBAAmB;AAErB,IAAM,YAAY;AAElB,IAAM,eAAe;AAAA,EAC1B,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,YAAY,EAAE,OAAO,GAAG,MAAM,KAAK;AAAA,IACnC,OAAO;AAAA,EACT;AAAA,EACA,UAAU;AAAA,EACV,YAAY,iCACP,sBADO;AAAA,IAEV,OAAO;AAAA,IACP,SAAS,CAAC;AAAA,IACV,gBAAgB;AAAA,IAChB,MAAM;AAAA,MACJ,WAAW,gBAAgB;AAAA,MAC3B,KAAK;AAAA,IACP;AAAA,EACF;AAAA,EACA,cAAc;AAAA;AAAA,EAEd;AAAA,EACA,UAAU;AAAA,IACR,QAAQ,CAAC;AAAA,IACT,gBAAgB,iCACX,uBADW;AAAA,MAEd,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,eAAe;AAAA,MACf,MAAM,EAAE,WAAW,gBAAgB,KAAK;AAAA,MACxC,WAAW;AAAA,MACX,OAAO;AAAA,MACP,MAAM;AAAA,MACN,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,4BAA4B;AAAA;AAAA,EAE5B;AAAA,EACA,YAAY,CAAC;AAAA,EACb,UAAU;AAAA;AAAA;AAAA,IAGR,QAAQ,CAAC;AAAA,IACT,aAAa;AAAA,EACf;AACF;AAEO,IAAM,oBAAoB,YAAY;AAAA,EAC3C,MAAM;AAAA,EACN;AAAA,EACA,UAAU;AAAA,IACR,kBAAkB,CAAC,OAAO,WAAW;AACnC,YAAM,EAAE,QAAQ,MAAM,IAAI,OAAO;AACjC,YAAM,SAAS,SAAS;AACxB,YAAM,SAAS,eAAe,QAAQ;AAAA,IACxC;AAAA,IACA,kBAAkB,CAAC,OAAO,WAAW;AACnC,YAAM,SAAS,iBAAiB,kCAC3B,MAAM,SAAS,iBACf,OAAO;AAAA,IAEd;AAAA,IACA,oBAAoB,CAAC,OAAO,WAAW;AACrC,YAAM,OAAO,OAAO;AAAA,IACtB;AAAA,IACA,oBAAoB,CAAC,OAAO,WAAW;AACrC,YAAM,WAAW,OAAO;AAAA,IAC1B;AAAA,IACA,iBAAiB,CAAC,OAAO,WAAW;AAClC,YAAM,eAAe,kCAAK,MAAM,eAAiB,OAAO;AAAA,IAC1D;AAAA,IACA,oBAAoB,CAAC,OAAO,WAAW;AACrC,YAAM,aAAa,OAAO;AAAA,IAC5B;AAAA,IACA,mCAAmC,CAAC,OAAO,WAAW;AACpD,YAAM,6BAA6B,OAAO;AAAA,IAC5C;AAAA,IACA,mBAAmB,CAAC,OAAO,WAAW;AACpC,YAAM,aAAa,OAAO;AAAA,IAC5B;AAAA,IACA,sBAAsB,CAAC,OAAO,WAAW;AACvC,YAAM,EAAE,OAAO,MAAM,IAAI,OAAO;AAChC,YAAM,SAAS,SAAS;AACxB,YAAM,SAAS,cAAc;AAAA,IAC/B;AAAA,EACF;AACF,CAAC;AAEM,IAAM,UAAU,kBAAkB;AACzC,IAAO,4BAAQ,kBAAkB;","names":[]}
1
+ {"version":3,"sources":["../src/organizationSlice/index.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 { DEVICE_LIST_DEFAULTS, SORTING_OPTIONS, TENANT_LIST_DEFAULT } from '@northern.tech/store/constants';\nimport { createSlice } from '@reduxjs/toolkit';\n\nexport const sliceName = 'organization';\n\nexport const initialState = {\n card: {\n last4: '',\n expiration: { month: 1, year: 2020 },\n brand: ''\n },\n intentId: null,\n tenantList: {\n ...TENANT_LIST_DEFAULT,\n total: 0,\n tenants: [],\n selectedTenant: null,\n sort: {\n direction: SORTING_OPTIONS.desc,\n key: 'name'\n }\n },\n organization: {\n // id, name, status, tenant_token, plan\n },\n auditlog: {\n events: [],\n selectionState: {\n ...DEVICE_LIST_DEFAULTS,\n detail: undefined,\n endDate: undefined,\n selectedIssue: undefined,\n sort: { direction: SORTING_OPTIONS.desc },\n startDate: undefined,\n total: 0,\n type: undefined,\n user: undefined\n }\n },\n externalDeviceIntegrations: [\n // { <connection_string|x509|...>, id, provider }\n ],\n ssoConfigs: [],\n webhooks: {\n // [id]: { events: [] }\n // for now:\n events: [],\n eventsTotal: 0\n }\n};\n\nexport const organizationSlice = createSlice({\n name: sliceName,\n initialState,\n reducers: {\n receiveAuditLogs: (state, action) => {\n const { events, total } = action.payload;\n state.auditlog.events = events;\n state.auditlog.selectionState.total = total;\n },\n setAuditLogState: (state, action) => {\n state.auditlog.selectionState = {\n ...state.auditlog.selectionState,\n ...action.payload\n };\n },\n receiveCurrentCard: (state, action) => {\n state.card = action.payload;\n },\n receiveSetupIntent: (state, action) => {\n state.intentId = action.payload;\n },\n setOrganization: (state, action) => {\n state.organization = { ...state.organization, ...action.payload };\n },\n setTenantListState: (state, action) => {\n state.tenantList = action.payload;\n },\n receiveExternalDeviceIntegrations: (state, action) => {\n state.externalDeviceIntegrations = action.payload;\n },\n receiveSsoConfigs: (state, action) => {\n state.ssoConfigs = action.payload;\n },\n receiveWebhookEvents: (state, action) => {\n const { value, total } = action.payload;\n state.webhooks.events = value;\n state.webhooks.eventsTotal = total;\n }\n }\n});\n\nexport const actions = organizationSlice.actions;\nexport default organizationSlice.reducer;\n"],"mappings":";;;;;;;;;AAcA,SAAS,mBAAmB;AAErB,IAAM,YAAY;AAElB,IAAM,eAAe;AAAA,EAC1B,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,YAAY,EAAE,OAAO,GAAG,MAAM,KAAK;AAAA,IACnC,OAAO;AAAA,EACT;AAAA,EACA,UAAU;AAAA,EACV,YAAY;AAAA,IACV,GAAG;AAAA,IACH,OAAO;AAAA,IACP,SAAS,CAAC;AAAA,IACV,gBAAgB;AAAA,IAChB,MAAM;AAAA,MACJ,WAAW,gBAAgB;AAAA,MAC3B,KAAK;AAAA,IACP;AAAA,EACF;AAAA,EACA,cAAc;AAAA;AAAA,EAEd;AAAA,EACA,UAAU;AAAA,IACR,QAAQ,CAAC;AAAA,IACT,gBAAgB;AAAA,MACd,GAAG;AAAA,MACH,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,eAAe;AAAA,MACf,MAAM,EAAE,WAAW,gBAAgB,KAAK;AAAA,MACxC,WAAW;AAAA,MACX,OAAO;AAAA,MACP,MAAM;AAAA,MACN,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,4BAA4B;AAAA;AAAA,EAE5B;AAAA,EACA,YAAY,CAAC;AAAA,EACb,UAAU;AAAA;AAAA;AAAA,IAGR,QAAQ,CAAC;AAAA,IACT,aAAa;AAAA,EACf;AACF;AAEO,IAAM,oBAAoB,YAAY;AAAA,EAC3C,MAAM;AAAA,EACN;AAAA,EACA,UAAU;AAAA,IACR,kBAAkB,CAAC,OAAO,WAAW;AACnC,YAAM,EAAE,QAAQ,MAAM,IAAI,OAAO;AACjC,YAAM,SAAS,SAAS;AACxB,YAAM,SAAS,eAAe,QAAQ;AAAA,IACxC;AAAA,IACA,kBAAkB,CAAC,OAAO,WAAW;AACnC,YAAM,SAAS,iBAAiB;AAAA,QAC9B,GAAG,MAAM,SAAS;AAAA,QAClB,GAAG,OAAO;AAAA,MACZ;AAAA,IACF;AAAA,IACA,oBAAoB,CAAC,OAAO,WAAW;AACrC,YAAM,OAAO,OAAO;AAAA,IACtB;AAAA,IACA,oBAAoB,CAAC,OAAO,WAAW;AACrC,YAAM,WAAW,OAAO;AAAA,IAC1B;AAAA,IACA,iBAAiB,CAAC,OAAO,WAAW;AAClC,YAAM,eAAe,EAAE,GAAG,MAAM,cAAc,GAAG,OAAO,QAAQ;AAAA,IAClE;AAAA,IACA,oBAAoB,CAAC,OAAO,WAAW;AACrC,YAAM,aAAa,OAAO;AAAA,IAC5B;AAAA,IACA,mCAAmC,CAAC,OAAO,WAAW;AACpD,YAAM,6BAA6B,OAAO;AAAA,IAC5C;AAAA,IACA,mBAAmB,CAAC,OAAO,WAAW;AACpC,YAAM,aAAa,OAAO;AAAA,IAC5B;AAAA,IACA,sBAAsB,CAAC,OAAO,WAAW;AACvC,YAAM,EAAE,OAAO,MAAM,IAAI,OAAO;AAChC,YAAM,SAAS,SAAS;AACxB,YAAM,SAAS,cAAc;AAAA,IAC/B;AAAA,EACF;AACF,CAAC;AAEM,IAAM,UAAU,kBAAkB;AACzC,IAAO,4BAAQ,kBAAkB;","names":[]}
@@ -1,42 +1,37 @@
1
1
  import {
2
2
  general_api_default
3
- } from "./chunk-2P4VECEE.mjs";
3
+ } from "./chunk-65YIOCCD.mjs";
4
4
  import {
5
5
  getSearchEndpoint
6
- } from "./chunk-Y47SYXII.mjs";
6
+ } from "./chunk-KJAZNKV2.mjs";
7
7
  import {
8
8
  getDeviceFilters
9
- } from "./chunk-QG4PT5WK.mjs";
9
+ } from "./chunk-6CSGHZ3E.mjs";
10
10
  import {
11
11
  commonErrorFallback,
12
12
  commonErrorHandler
13
- } from "./chunk-RWYS5MKN.mjs";
13
+ } from "./chunk-NJNSCJEY.mjs";
14
14
  import {
15
15
  actions_default
16
- } from "./chunk-ENLZPHTQ.mjs";
16
+ } from "./chunk-H5UCKQWK.mjs";
17
17
  import {
18
18
  actions,
19
19
  sliceName
20
- } from "./chunk-ZZ6VIQ3U.mjs";
20
+ } from "./chunk-ZE7R2XXE.mjs";
21
21
  import {
22
22
  convertDeviceListStateToFilters
23
- } from "./chunk-U6YTBIDT.mjs";
23
+ } from "./chunk-KPPU6OWF.mjs";
24
24
  import {
25
25
  alertChannels,
26
26
  monitorApiUrlv1
27
- } from "./chunk-MQIKQKSW.mjs";
27
+ } from "./chunk-IFWKT27G.mjs";
28
28
  import {
29
29
  headerNames
30
- } from "./chunk-BOSBROA3.mjs";
30
+ } from "./chunk-5VNQCCAQ.mjs";
31
31
  import {
32
32
  DEVICE_LIST_DEFAULTS,
33
33
  TIMEOUTS
34
- } from "./chunk-OGAMVFPS.mjs";
35
- import {
36
- __objRest,
37
- __spreadProps,
38
- __spreadValues
39
- } from "./chunk-XWBD7VOK.mjs";
34
+ } from "./chunk-QQBUNZHA.mjs";
40
35
 
41
36
  // src/monitorSlice/thunks.ts
42
37
  import { createAsyncThunk } from "@reduxjs/toolkit";
@@ -44,7 +39,7 @@ var { page: defaultPage, perPage: defaultPerPage } = DEVICE_LIST_DEFAULTS;
44
39
  var cutoffLength = 75;
45
40
  var ellipsis = "...";
46
41
  var longTextTrimmer = (text) => text.length >= cutoffLength + ellipsis.length ? `${text.substring(0, cutoffLength + ellipsis.length)}${ellipsis}` : text;
47
- var sanitizeDeviceAlerts = (alerts) => alerts.map((alert) => __spreadProps(__spreadValues({}, alert), { fullName: alert.name, name: longTextTrimmer(alert.name) }));
42
+ var sanitizeDeviceAlerts = (alerts) => alerts.map((alert) => ({ ...alert, fullName: alert.name, name: longTextTrimmer(alert.name) }));
48
43
  var getDeviceAlerts = createAsyncThunk(`${sliceName}/getDeviceAlerts`, ({ id, config = {} }, { dispatch }) => {
49
44
  const { page = defaultPage, perPage = defaultPerPage, issuedBefore, issuedAfter, sortAscending = false } = config;
50
45
  const issued_after = issuedAfter ? `&issued_after=${issuedAfter}` : "";
@@ -62,14 +57,15 @@ var getLatestDeviceAlerts = createAsyncThunk(`${sliceName}/getLatestDeviceAlerts
62
57
  });
63
58
  var getIssueCountsByType = createAsyncThunk(`${sliceName}/getIssueCountsByType`, ({ type, options = {} }, { dispatch, getState }) => {
64
59
  const state = getState();
65
- const _a = options, { filters = getDeviceFilters(state), group, status } = _a, remainder = __objRest(_a, ["filters", "group", "status"]);
66
- const { applicableFilters: nonMonitorFilters, filterTerms } = convertDeviceListStateToFilters(__spreadProps(__spreadValues({}, remainder), {
60
+ const { filters = getDeviceFilters(state), group, status, ...remainder } = options;
61
+ const { applicableFilters: nonMonitorFilters, filterTerms } = convertDeviceListStateToFilters({
62
+ ...remainder,
67
63
  filters,
68
64
  group,
69
65
  offlineThreshold: state.app.offlineThreshold,
70
66
  selectedIssues: [type],
71
67
  status
72
- }));
68
+ });
73
69
  return general_api_default.post(getSearchEndpoint(getState()), {
74
70
  page: 1,
75
71
  per_page: 1,
@@ -107,4 +103,4 @@ export {
107
103
  getDeviceMonitorConfig,
108
104
  changeNotificationSetting
109
105
  };
110
- //# sourceMappingURL=chunk-MJW4632R.mjs.map
106
+ //# sourceMappingURL=chunk-WCUGLHYM.mjs.map