@northern.tech/store 0.5.3 → 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 (237) hide show
  1. package/dist/actions.cjs.map +1 -1
  2. package/dist/actions.d.cts +8 -13
  3. package/dist/actions.d.ts +8 -13
  4. package/dist/actions.js +10 -10
  5. package/dist/api/general-api.cjs +4 -5
  6. package/dist/api/general-api.cjs.map +1 -1
  7. package/dist/api/general-api.js +4 -4
  8. package/dist/api/users-api.cjs +4 -5
  9. package/dist/api/users-api.cjs.map +1 -1
  10. package/dist/api/users-api.js +5 -5
  11. package/dist/appSlice/constants.cjs +1 -1
  12. package/dist/appSlice/constants.cjs.map +1 -1
  13. package/dist/appSlice/constants.d.cts +1 -1
  14. package/dist/appSlice/constants.d.ts +1 -1
  15. package/dist/appSlice/constants.js +1 -1
  16. package/dist/appSlice/index.js +3 -3
  17. package/dist/appSlice/mocks.js +3 -3
  18. package/dist/appSlice/selectors.d.cts +9 -9
  19. package/dist/appSlice/selectors.d.ts +9 -9
  20. package/dist/appSlice/thunks.cjs +8 -7
  21. package/dist/appSlice/thunks.cjs.map +1 -1
  22. package/dist/appSlice/thunks.d.cts +1 -1
  23. package/dist/appSlice/thunks.d.ts +1 -1
  24. package/dist/appSlice/thunks.js +26 -26
  25. package/dist/auth.cjs +4 -5
  26. package/dist/auth.cjs.map +1 -1
  27. package/dist/auth.js +3 -3
  28. package/dist/{chunk-DYN7AU7R.js → chunk-2ASLHSBV.js} +9 -9
  29. package/dist/{chunk-HLTP624H.js → chunk-2M5W3IDP.js} +2 -2
  30. package/dist/{chunk-J74LNK6P.js → chunk-3ECSADAW.js} +13 -13
  31. package/dist/{chunk-W37ETKI6.js → chunk-67GS7ERY.js} +2 -2
  32. package/dist/{chunk-CWZKWW74.js → chunk-7BKDELUQ.js} +2 -2
  33. package/dist/{chunk-ZZ3YDCYZ.js → chunk-B7GXA42G.js} +3 -3
  34. package/dist/{chunk-AVCIWAZB.js → chunk-CEH2D355.js} +2 -2
  35. package/dist/{chunk-5HYHE4HO.js → chunk-EIIFEV62.js} +2 -2
  36. package/dist/chunk-EIIFEV62.js.map +1 -0
  37. package/dist/{chunk-DE25YP6N.js → chunk-GN2HC6HW.js} +29 -28
  38. package/dist/chunk-GN2HC6HW.js.map +1 -0
  39. package/dist/{chunk-IY76MO6R.js → chunk-MVK6W7ZH.js} +2 -2
  40. package/dist/chunk-MVK6W7ZH.js.map +1 -0
  41. package/dist/{chunk-PY6ID7TL.js → chunk-N3XU7WJM.js} +2 -2
  42. package/dist/chunk-N3XU7WJM.js.map +1 -0
  43. package/dist/{chunk-DXJ2WS3N.js → chunk-PB36MEEN.js} +2 -2
  44. package/dist/{chunk-I6JE3OLT.js → chunk-PTQS3JDZ.js} +10 -10
  45. package/dist/{chunk-JOK26PI7.js → chunk-QPHDDTQC.js} +14 -13
  46. package/dist/chunk-QPHDDTQC.js.map +1 -0
  47. package/dist/{chunk-4DOSYAJY.js → chunk-RRL7OZHU.js} +2 -2
  48. package/dist/{chunk-KGSJ7CSA.js → chunk-RWGVRDFG.js} +2 -2
  49. package/dist/chunk-RWGVRDFG.js.map +1 -0
  50. package/dist/{chunk-BNSSPYCA.js → chunk-TL6KSTZZ.js} +3 -3
  51. package/dist/{chunk-VCTZ25Q5.js → chunk-TU4IVT3M.js} +14 -14
  52. package/dist/{chunk-4UJXT6RF.js → chunk-VIV6U46F.js} +6 -4
  53. package/dist/chunk-VIV6U46F.js.map +1 -0
  54. package/dist/{chunk-66NK2ZV2.js → chunk-W2RDUU5Q.js} +2 -2
  55. package/dist/{chunk-KJJ47UIO.js → chunk-WD7MIPCO.js} +2 -2
  56. package/dist/chunk-WD7MIPCO.js.map +1 -0
  57. package/dist/{chunk-JZXNRDO2.js → chunk-XLXLFSZA.js} +2 -2
  58. package/dist/{chunk-CEEXZF5E.js → chunk-XZDCXV4H.js} +3 -3
  59. package/dist/chunk-XZDCXV4H.js.map +1 -0
  60. package/dist/{chunk-MRXTMI6O.js → chunk-YEQ7D6AW.js} +5 -6
  61. package/dist/chunk-YEQ7D6AW.js.map +1 -0
  62. package/dist/{chunk-GRVTVLIZ.js → chunk-ZABYTBKG.js} +2 -2
  63. package/dist/commonConstants.cjs +4 -5
  64. package/dist/commonConstants.cjs.map +1 -1
  65. package/dist/commonConstants.d.cts +8 -8
  66. package/dist/commonConstants.d.ts +8 -8
  67. package/dist/commonConstants.js +2 -2
  68. package/dist/commonSelectors.cjs +6 -7
  69. package/dist/commonSelectors.cjs.map +1 -1
  70. package/dist/commonSelectors.d.cts +127 -138
  71. package/dist/commonSelectors.d.ts +127 -138
  72. package/dist/commonSelectors.js +10 -10
  73. package/dist/constants.cjs +5 -6
  74. package/dist/constants.cjs.map +1 -1
  75. package/dist/constants.js +2 -2
  76. package/dist/deploymentsSlice/constants.cjs.map +1 -1
  77. package/dist/deploymentsSlice/constants.d.cts +2 -2
  78. package/dist/deploymentsSlice/constants.d.ts +2 -2
  79. package/dist/deploymentsSlice/constants.js +2 -2
  80. package/dist/deploymentsSlice/index.cjs.map +1 -1
  81. package/dist/deploymentsSlice/index.d.cts +5 -4
  82. package/dist/deploymentsSlice/index.d.ts +5 -4
  83. package/dist/deploymentsSlice/index.js +3 -3
  84. package/dist/deploymentsSlice/mocks.cjs.map +1 -1
  85. package/dist/deploymentsSlice/mocks.js +3 -3
  86. package/dist/deploymentsSlice/selectors.cjs.map +1 -1
  87. package/dist/deploymentsSlice/selectors.d.cts +3 -3
  88. package/dist/deploymentsSlice/selectors.d.ts +3 -3
  89. package/dist/deploymentsSlice/selectors.js +3 -3
  90. package/dist/deploymentsSlice/thunks.cjs +8 -7
  91. package/dist/deploymentsSlice/thunks.cjs.map +1 -1
  92. package/dist/deploymentsSlice/thunks.d.cts +3 -3
  93. package/dist/deploymentsSlice/thunks.d.ts +3 -3
  94. package/dist/deploymentsSlice/thunks.js +26 -26
  95. package/dist/devicesSlice/constants.js +2 -2
  96. package/dist/devicesSlice/index.cjs.map +1 -1
  97. package/dist/devicesSlice/index.d.cts +4 -4
  98. package/dist/devicesSlice/index.d.ts +4 -4
  99. package/dist/devicesSlice/index.js +3 -3
  100. package/dist/devicesSlice/mocks.cjs +4 -4
  101. package/dist/devicesSlice/mocks.cjs.map +1 -1
  102. package/dist/devicesSlice/mocks.js +7 -7
  103. package/dist/devicesSlice/mocks.js.map +1 -1
  104. package/dist/devicesSlice/selectors.cjs +4 -5
  105. package/dist/devicesSlice/selectors.cjs.map +1 -1
  106. package/dist/devicesSlice/selectors.d.cts +23 -23
  107. package/dist/devicesSlice/selectors.d.ts +23 -23
  108. package/dist/devicesSlice/selectors.js +3 -3
  109. package/dist/devicesSlice/thunks.cjs +8 -7
  110. package/dist/devicesSlice/thunks.cjs.map +1 -1
  111. package/dist/devicesSlice/thunks.d.cts +5 -5
  112. package/dist/devicesSlice/thunks.d.ts +5 -5
  113. package/dist/devicesSlice/thunks.js +26 -26
  114. package/dist/liststatehook.cjs +4 -5
  115. package/dist/liststatehook.cjs.map +1 -1
  116. package/dist/liststatehook.js +3 -3
  117. package/dist/locationutils.cjs +4 -5
  118. package/dist/locationutils.cjs.map +1 -1
  119. package/dist/locationutils.js +3 -3
  120. package/dist/monitorSlice/index.js +3 -3
  121. package/dist/monitorSlice/mocks.js +3 -3
  122. package/dist/monitorSlice/thunks.cjs +6 -7
  123. package/dist/monitorSlice/thunks.cjs.map +1 -1
  124. package/dist/monitorSlice/thunks.d.cts +1 -1
  125. package/dist/monitorSlice/thunks.d.ts +1 -1
  126. package/dist/monitorSlice/thunks.js +22 -22
  127. package/dist/onboardingSlice/thunks.cjs +8 -7
  128. package/dist/onboardingSlice/thunks.cjs.map +1 -1
  129. package/dist/onboardingSlice/thunks.d.cts +1 -1
  130. package/dist/onboardingSlice/thunks.d.ts +1 -1
  131. package/dist/onboardingSlice/thunks.js +26 -26
  132. package/dist/organizationSlice/constants.js +2 -2
  133. package/dist/organizationSlice/index.js +3 -3
  134. package/dist/organizationSlice/mocks.d.cts +2 -2
  135. package/dist/organizationSlice/mocks.d.ts +2 -2
  136. package/dist/organizationSlice/mocks.js +3 -3
  137. package/dist/organizationSlice/selectors.cjs +4 -5
  138. package/dist/organizationSlice/selectors.cjs.map +1 -1
  139. package/dist/organizationSlice/selectors.d.cts +44 -48
  140. package/dist/organizationSlice/selectors.d.ts +44 -48
  141. package/dist/organizationSlice/selectors.js +3 -3
  142. package/dist/organizationSlice/thunks.cjs +10 -10
  143. package/dist/organizationSlice/thunks.cjs.map +1 -1
  144. package/dist/organizationSlice/thunks.d.cts +1 -1
  145. package/dist/organizationSlice/thunks.d.ts +1 -1
  146. package/dist/organizationSlice/thunks.js +26 -26
  147. package/dist/organizationSlice/types.cjs.map +1 -1
  148. package/dist/organizationSlice/types.d.cts +8 -30
  149. package/dist/organizationSlice/types.d.ts +8 -30
  150. package/dist/releasesSlice/index.cjs.map +1 -1
  151. package/dist/releasesSlice/index.d.cts +7 -5
  152. package/dist/releasesSlice/index.d.ts +7 -5
  153. package/dist/releasesSlice/index.js +3 -3
  154. package/dist/releasesSlice/mocks.cjs.map +1 -1
  155. package/dist/releasesSlice/mocks.d.cts +1 -3
  156. package/dist/releasesSlice/mocks.d.ts +1 -3
  157. package/dist/releasesSlice/mocks.js +3 -3
  158. package/dist/releasesSlice/selectors.cjs +4 -5
  159. package/dist/releasesSlice/selectors.cjs.map +1 -1
  160. package/dist/releasesSlice/selectors.d.cts +39 -41
  161. package/dist/releasesSlice/selectors.d.ts +39 -41
  162. package/dist/releasesSlice/selectors.js +4 -4
  163. package/dist/releasesSlice/thunks.cjs +10 -10
  164. package/dist/releasesSlice/thunks.cjs.map +1 -1
  165. package/dist/releasesSlice/thunks.d.cts +3 -3
  166. package/dist/releasesSlice/thunks.d.ts +3 -3
  167. package/dist/releasesSlice/thunks.js +23 -23
  168. package/dist/selectors.cjs +10 -8
  169. package/dist/selectors.cjs.map +1 -1
  170. package/dist/selectors.d.cts +2 -18
  171. package/dist/selectors.d.ts +2 -18
  172. package/dist/selectors.js +21 -19
  173. package/dist/sockethook.cjs +4 -5
  174. package/dist/sockethook.cjs.map +1 -1
  175. package/dist/sockethook.js +2 -2
  176. package/dist/store.cjs.map +1 -1
  177. package/dist/store.d.cts +11 -11
  178. package/dist/store.d.ts +11 -11
  179. package/dist/store.js +12 -12
  180. package/dist/storehooks.cjs +14 -13
  181. package/dist/storehooks.cjs.map +1 -1
  182. package/dist/storehooks.js +26 -26
  183. package/dist/thunks.cjs +14 -13
  184. package/dist/thunks.cjs.map +1 -1
  185. package/dist/thunks.d.cts +1 -1
  186. package/dist/thunks.d.ts +1 -1
  187. package/dist/thunks.js +26 -26
  188. package/dist/useDeploymentDevice.cjs +8 -7
  189. package/dist/useDeploymentDevice.cjs.map +1 -1
  190. package/dist/useDeploymentDevice.js +26 -26
  191. package/dist/usersSlice/constants.js +2 -2
  192. package/dist/usersSlice/index.js +3 -3
  193. package/dist/usersSlice/mocks.cjs +1 -0
  194. package/dist/usersSlice/mocks.cjs.map +1 -1
  195. package/dist/usersSlice/mocks.d.cts +3 -3
  196. package/dist/usersSlice/mocks.d.ts +3 -3
  197. package/dist/usersSlice/mocks.js +4 -3
  198. package/dist/usersSlice/mocks.js.map +1 -1
  199. package/dist/usersSlice/selectors.cjs +8 -6
  200. package/dist/usersSlice/selectors.cjs.map +1 -1
  201. package/dist/usersSlice/selectors.d.cts +33 -34
  202. package/dist/usersSlice/selectors.d.ts +33 -34
  203. package/dist/usersSlice/selectors.js +6 -4
  204. package/dist/usersSlice/thunks.cjs +8 -7
  205. package/dist/usersSlice/thunks.cjs.map +1 -1
  206. package/dist/usersSlice/thunks.d.cts +1 -1
  207. package/dist/usersSlice/thunks.d.ts +1 -1
  208. package/dist/usersSlice/thunks.js +26 -26
  209. package/dist/utils.cjs +4 -5
  210. package/dist/utils.cjs.map +1 -1
  211. package/dist/utils.js +3 -3
  212. package/package.json +1 -1
  213. package/dist/chunk-4UJXT6RF.js.map +0 -1
  214. package/dist/chunk-5HYHE4HO.js.map +0 -1
  215. package/dist/chunk-CEEXZF5E.js.map +0 -1
  216. package/dist/chunk-DE25YP6N.js.map +0 -1
  217. package/dist/chunk-IY76MO6R.js.map +0 -1
  218. package/dist/chunk-JOK26PI7.js.map +0 -1
  219. package/dist/chunk-KGSJ7CSA.js.map +0 -1
  220. package/dist/chunk-KJJ47UIO.js.map +0 -1
  221. package/dist/chunk-MRXTMI6O.js.map +0 -1
  222. package/dist/chunk-PY6ID7TL.js.map +0 -1
  223. /package/dist/{chunk-DYN7AU7R.js.map → chunk-2ASLHSBV.js.map} +0 -0
  224. /package/dist/{chunk-HLTP624H.js.map → chunk-2M5W3IDP.js.map} +0 -0
  225. /package/dist/{chunk-J74LNK6P.js.map → chunk-3ECSADAW.js.map} +0 -0
  226. /package/dist/{chunk-W37ETKI6.js.map → chunk-67GS7ERY.js.map} +0 -0
  227. /package/dist/{chunk-CWZKWW74.js.map → chunk-7BKDELUQ.js.map} +0 -0
  228. /package/dist/{chunk-ZZ3YDCYZ.js.map → chunk-B7GXA42G.js.map} +0 -0
  229. /package/dist/{chunk-AVCIWAZB.js.map → chunk-CEH2D355.js.map} +0 -0
  230. /package/dist/{chunk-DXJ2WS3N.js.map → chunk-PB36MEEN.js.map} +0 -0
  231. /package/dist/{chunk-I6JE3OLT.js.map → chunk-PTQS3JDZ.js.map} +0 -0
  232. /package/dist/{chunk-4DOSYAJY.js.map → chunk-RRL7OZHU.js.map} +0 -0
  233. /package/dist/{chunk-BNSSPYCA.js.map → chunk-TL6KSTZZ.js.map} +0 -0
  234. /package/dist/{chunk-VCTZ25Q5.js.map → chunk-TU4IVT3M.js.map} +0 -0
  235. /package/dist/{chunk-66NK2ZV2.js.map → chunk-W2RDUU5Q.js.map} +0 -0
  236. /package/dist/{chunk-JZXNRDO2.js.map → chunk-XLXLFSZA.js.map} +0 -0
  237. /package/dist/{chunk-GRVTVLIZ.js.map → chunk-ZABYTBKG.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/releasesSlice/selectors.ts","../../src/utils.ts","../../src/constants.ts","../../src/commonConstants.tsx"],"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 type { Release } from '@northern.tech/types/MenderTypes';\nimport { createSelector } from '@reduxjs/toolkit';\n\nimport type { RootState } from '../store';\nimport { listItemMapper } from '../utils';\n\nconst getSelectedReleaseId = (state: RootState) => state.releases.selectedRelease;\nexport const getReleasesById = (state: RootState) => state.releases.byId;\nexport const getReleaseTags = (state: RootState) => state.releases.tags;\nexport const getReleaseListState = (state: RootState) => state.releases.releasesList;\nconst getListedReleases = (state: RootState) => state.releases.releasesList.releaseIds;\nexport const getUpdateTypes = (state: RootState) => state.releases.updateTypes;\nconst releaseDefaults = {};\nconst getReleaseMappingDefaults = () => releaseDefaults;\nexport const getReleasesList = createSelector([getReleasesById, getListedReleases, getReleaseMappingDefaults], listItemMapper<Release>);\n\nexport const getReleaseTagsById = createSelector([getReleaseTags], releaseTags => releaseTags.reduce((accu, key) => ({ ...accu, [key]: key }), {}));\nexport const getHasReleases = createSelector(\n [getReleaseListState, getReleasesById],\n ({ searchTotal, total }, byId) => !!(Object.keys(byId).length || total || searchTotal)\n);\n\nexport const getSelectedRelease = createSelector([getReleasesById, getSelectedReleaseId], (byId, id) => byId[id || ''] ?? {});\n\nexport const getSelectedReleases = createSelector([getReleaseListState, getReleasesList], ({ selection }, releases) => selection.map(index => releases[index]));\n\nexport const getDeltaJobsListState = (state: RootState) => state.releases.deltaJobsList;\nexport const getDeltaJobsById = (state: RootState) => state.releases.deltaJobs;\nexport const getDeltaJobById = createSelector([getDeltaJobsById, (_, jobId) => jobId], (byId, jobId: string) => byId[jobId]);\nconst getSelectedJobId = (state: RootState) => state.releases.selectedJob;\nexport const getSelectedJob = createSelector([getDeltaJobsById, getSelectedJobId], (byId, jobId) => byId[jobId || '']);\n","// 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 type { DeviceAttribute } from '@northern.tech/types/DeviceAttribute';\nimport { duplicateFilter, yes } from '@northern.tech/utils/helpers';\n\nimport type { DeviceIssueOptionKey } from './constants';\nimport {\n ATTRIBUTE_SCOPES,\n DARK_MODE,\n DEPLOYMENT_STATES,\n DEVICE_FILTERING_OPTIONS,\n DEVICE_ISSUE_OPTIONS,\n DEVICE_LIST_MAXIMUM_LENGTH,\n defaultStats,\n deploymentDisplayStates,\n deploymentStatesToSubstates,\n deploymentStatesToSubstatesWithSkipped,\n emptyFilter,\n emptyUiPermissions,\n softwareIndicator\n} from './constants';\nimport type { DeviceFilter, DeviceGroup, InventoryAttributes } from './devicesSlice';\n\n// for some reason these functions can not be stored in the deviceConstants...\nconst filterProcessors = {\n [DEVICE_FILTERING_OPTIONS.$gt.key]: val => Number(val) || val,\n [DEVICE_FILTERING_OPTIONS.$gte.key]: val => Number(val) || val,\n [DEVICE_FILTERING_OPTIONS.$lt.key]: val => Number(val) || val,\n [DEVICE_FILTERING_OPTIONS.$lte.key]: val => Number(val) || val,\n [DEVICE_FILTERING_OPTIONS.$ltne.key]: val => Number(val) || val,\n [DEVICE_FILTERING_OPTIONS.$in.key]: val => ('' + val).split(',').map(i => i.trim()),\n [DEVICE_FILTERING_OPTIONS.$nin.key]: val => ('' + val).split(',').map(i => i.trim()),\n [DEVICE_FILTERING_OPTIONS.$exists.key]: yes,\n [DEVICE_FILTERING_OPTIONS.$nexists.key]: () => false\n};\nconst filterAliases = {\n $nexists: { alias: DEVICE_FILTERING_OPTIONS.$exists.key, value: false }\n};\nexport const mapFiltersToTerms = filters =>\n filters.map(filter => ({\n scope: filter.scope,\n attribute: filter.key,\n type: filterAliases[filter.operator]?.alias || filter.operator,\n value: filterProcessors.hasOwnProperty(filter.operator) ? filterProcessors[filter.operator](filter.value) : filter.value\n }));\nexport const mapTermsToFilters = terms =>\n terms.map(term => {\n const aliasedFilter = Object.entries(filterAliases).find(\n aliasDefinition => aliasDefinition[1].alias === term.type && aliasDefinition[1].value === term.value\n );\n const operator = aliasedFilter ? aliasedFilter[0] : term.type;\n return { scope: term.scope, key: term.attribute, operator, value: term.value };\n });\n\nconst convertIssueOptionsToFilters = (issuesSelection, filtersState = {}) =>\n issuesSelection.map(item => {\n if (typeof DEVICE_ISSUE_OPTIONS[item].filterRule.value === 'function') {\n return { ...DEVICE_ISSUE_OPTIONS[item].filterRule, value: DEVICE_ISSUE_OPTIONS[item].filterRule.value(filtersState) };\n }\n return DEVICE_ISSUE_OPTIONS[item].filterRule;\n });\n\nexport const convertDeviceListStateToFilters = ({\n filters = [],\n group,\n groups = { byId: {} },\n offlineThreshold,\n selectedIssues = [],\n status\n}: {\n filters?: DeviceFilter[];\n group?: string;\n groups?: { byId: Record<string, DeviceGroup> };\n offlineThreshold?: string;\n selectedIssues?: DeviceIssueOptionKey[];\n status?: string;\n}) => {\n let applicableFilters = [...filters];\n if (typeof group === 'string' && !(groups.byId[group]?.filters || applicableFilters).length) {\n applicableFilters.push({ key: 'group', value: group, operator: DEVICE_FILTERING_OPTIONS.$eq.key, scope: 'system' });\n }\n const nonMonitorFilters = applicableFilters.filter(\n filter =>\n !Object.values(DEVICE_ISSUE_OPTIONS).some(\n ({ filterRule }) => filter.scope !== 'inventory' && filterRule.scope === filter.scope && filterRule.key === filter.key\n )\n );\n const deviceIssueFilters = convertIssueOptionsToFilters(selectedIssues, { offlineThreshold });\n applicableFilters = [...nonMonitorFilters, ...deviceIssueFilters];\n const effectiveFilters = status\n ? [...applicableFilters, { key: 'status', value: status, operator: DEVICE_FILTERING_OPTIONS.$eq.key, scope: 'identity' }]\n : applicableFilters;\n return { applicableFilters: nonMonitorFilters, filterTerms: mapFiltersToTerms(effectiveFilters) };\n};\n\nconst filterCompare = (filter, item) => Object.keys(emptyFilter).every(key => item[key]?.toString() === filter[key]?.toString());\n\nexport const filtersFilter = (item, index, array) => {\n const firstIndex = array.findIndex(filter => filterCompare(filter, item));\n return firstIndex === index;\n};\n\nexport const listItemMapper = <T>(\n byId: Record<string, T>,\n ids: string[],\n { cutOffSize = DEVICE_LIST_MAXIMUM_LENGTH, defaultObject = {} }: { cutOffSize?: number; defaultObject?: T }\n): T[] =>\n ids.slice(0, cutOffSize).reduce((accu, id) => {\n if (id && byId[id]) {\n accu.push({ ...defaultObject, ...byId[id] });\n }\n return accu;\n }, []);\n\nexport const mergePermissions = (existingPermissions = { ...emptyUiPermissions }, addedPermissions) =>\n Object.entries(existingPermissions).reduce(\n (accu, [key, value]) => {\n let values;\n if (!accu[key]) {\n accu[key] = value;\n return accu;\n }\n if (Array.isArray(value)) {\n values = [...value, ...accu[key]].filter(duplicateFilter);\n } else {\n values = mergePermissions(accu[key], { ...value });\n }\n accu[key] = values;\n return accu;\n },\n { ...addedPermissions }\n );\n\nexport const mapUserRolesToUiPermissions = (userRoles, roles) =>\n userRoles.reduce(\n (accu, roleId) => {\n if (!(roleId && roles[roleId])) {\n return accu;\n }\n return mergePermissions(accu, roles[roleId].uiPermissions);\n },\n { ...emptyUiPermissions }\n );\n\nexport const progress = ({ loaded, total }) => {\n let uploadProgress = (loaded / total) * 100;\n return (uploadProgress = uploadProgress < 50 ? Math.ceil(uploadProgress) : Math.round(uploadProgress));\n};\n\nexport const extractErrorMessage = (err, fallback = '') =>\n err.response?.data?.error?.message || err.response?.data?.error || err.error || err.message || fallback;\n\nexport const ensureVersionString = (software, fallback) =>\n software.length && software !== 'artifact_name' ? (software.endsWith(softwareIndicator) ? software : `${software}${softwareIndicator}`) : fallback;\n\nexport const getComparisonCompatibleVersion = version => (isNaN(version.charAt(0)) && version !== 'next' ? 'master' : version);\n\nexport const stringToBoolean = content => {\n if (!content) {\n return false;\n }\n const string = content + '';\n switch (string.trim().toLowerCase()) {\n case 'true':\n case 'yes':\n case '1':\n return true;\n case 'false':\n case 'no':\n case '0':\n case null:\n return false;\n default:\n return Boolean(string);\n }\n};\n\nexport const groupDeploymentDevicesStats = deployment => {\n const deviceStatCollector = (deploymentStates, devices) =>\n Object.values(devices).reduce((accu, device) => (deploymentStates.includes(device.status) ? accu + 1 : accu), 0);\n\n const inprogress = deviceStatCollector(deploymentStatesToSubstates.inprogress, deployment.devices);\n const pending = deviceStatCollector(deploymentStatesToSubstates.pending, deployment.devices);\n const successes = deviceStatCollector(deploymentStatesToSubstates.successes, deployment.devices);\n const failures = deviceStatCollector(deploymentStatesToSubstates.failures, deployment.devices);\n const paused = deviceStatCollector(deploymentStatesToSubstates.paused, deployment.devices);\n return { inprogress, paused, pending, successes, failures };\n};\n\nexport const statCollector = (items, statistics) => items.reduce((accu, property) => accu + Number(statistics[property] || 0), 0);\nexport const groupDeploymentStats = (deployment, withSkipped) => {\n const { statistics = {} } = deployment;\n const { status = {} } = statistics;\n const stats = { ...defaultStats, ...status };\n let groupStates = deploymentStatesToSubstates;\n let result = {};\n if (withSkipped) {\n groupStates = deploymentStatesToSubstatesWithSkipped;\n result.skipped = statCollector(groupStates.skipped, stats);\n }\n result = {\n ...result,\n // don't include 'pending' as inprogress, as all remaining devices will be pending - we don't discriminate based on phase membership\n inprogress: statCollector(groupStates.inprogress, stats),\n pending: statCollector(groupStates.pending, stats),\n successes: statCollector(groupStates.successes, stats),\n failures: statCollector(groupStates.failures, stats),\n paused: statCollector(groupStates.paused, stats)\n };\n return result;\n};\n\nexport const getDeploymentState = deployment => {\n const { status: deploymentStatus = DEPLOYMENT_STATES.pending } = deployment;\n const { inprogress: currentProgressCount, paused } = groupDeploymentStats(deployment);\n\n let status = deploymentDisplayStates[deploymentStatus];\n if (deploymentStatus === DEPLOYMENT_STATES.pending && currentProgressCount === 0) {\n status = 'queued';\n } else if (paused > 0) {\n status = deploymentDisplayStates.paused;\n }\n return status;\n};\n\nexport const generateDeploymentGroupDetails = (filter, groupName) =>\n filter && filter.terms?.length\n ? `${groupName} (${filter.terms\n .map(filter => `${filter.attribute || filter.key} ${DEVICE_FILTERING_OPTIONS[filter.type || filter.operator].shortform} ${filter.value}`)\n .join(', ')})`\n : groupName;\n\nexport const mapDeviceAttributes = (\n attributes: DeviceAttribute[] = []\n): {\n identity: Record<string, string>;\n inventory: InventoryAttributes;\n monitor: Record<string, string>;\n system: Record<string, string>;\n tags: Record<string, string>;\n} =>\n attributes.reduce(\n (accu, attribute) => {\n if (!(attribute.value && attribute.name) && attribute.scope === ATTRIBUTE_SCOPES.inventory) {\n return accu;\n }\n accu[attribute.scope || ATTRIBUTE_SCOPES.inventory] = {\n ...accu[attribute.scope || ATTRIBUTE_SCOPES.inventory],\n [attribute.name]: attribute.value\n };\n if (attribute.name === 'device_type' && attribute.scope === ATTRIBUTE_SCOPES.inventory) {\n accu.inventory.device_type = [].concat(attribute.value);\n }\n return accu;\n },\n { inventory: { device_type: [], artifact_name: '' }, identity: {}, monitor: {}, system: {}, tags: {} }\n );\n\nexport const isDarkMode = mode => mode === DARK_MODE;\ntype Line = { addon?: string; amount: number; currency: string; description: string; quantity: number };\n\nexport const parseSubscriptionPreview = (lines: Line[]) =>\n lines.reduce(\n (acc, { addon, amount }) => {\n const key = addon || 'plan';\n if (key === 'plan') {\n acc.plan += amount;\n } else {\n acc.addons[key] = (acc.addons[key] ?? 0) + amount;\n }\n return acc;\n },\n { plan: 0, addons: {} }\n );\n","// 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 {\n ALL_DEVICES,\n ALL_DEVICE_STATES,\n ALL_RELEASES,\n APPLICATION_JSON_CONTENT_TYPE,\n APPLICATION_JWT_CONTENT_TYPE,\n ATTRIBUTE_SCOPES,\n DEVICE_FILTERING_OPTIONS,\n DEVICE_ISSUE_OPTIONS,\n DEVICE_LIST_DEFAULTS,\n DEVICE_STATES,\n PermissionTypes,\n SORTING_OPTIONS,\n alertChannels,\n apiRoot,\n apiUrl,\n auditLogsApiUrl,\n defaultPermissionSets,\n deploymentsApiUrl,\n deploymentsApiUrlV2,\n deviceAuthV2,\n deviceConfig,\n deviceConnect,\n emptyRole,\n emptyUiPermissions,\n headerNames,\n inventoryApiUrl,\n inventoryApiUrlV2,\n iotManagerBaseURL,\n limitDefault,\n maxSessionAge,\n monitorApiUrlv1,\n reportingApiUrl,\n rolesById,\n rolesByName,\n scopedPermissionAreas,\n serviceProviderRolesById,\n ssoIdpApiUrlv1,\n tenantadmApiUrlv1,\n tenantadmApiUrlv2,\n twoFAStates,\n uiPermissionsByArea,\n uiPermissionsById,\n useradmApiUrl,\n useradmApiUrlv1,\n useradmApiUrlv2\n} from '@northern.tech/utils/constants';\nimport type {\n AnyPermission,\n AuditLogPermission,\n DeploymentPermission,\n DeviceIssueOptionKey,\n GroupsPermission,\n PermissionObject,\n PermissionSet,\n PermissionSetId,\n ReleasesPermission,\n Role,\n ScopedPermissionsByAreaKey,\n SortOptions,\n UiPermissionsByAreaKey,\n UiPermissionsByIdKey,\n UiPermissionsDefinition,\n UserManagementPermission\n} from '@northern.tech/utils/constants';\n\nexport {\n alertChannels,\n ALL_DEVICE_STATES,\n ALL_DEVICES,\n ALL_RELEASES,\n APPLICATION_JSON_CONTENT_TYPE,\n APPLICATION_JWT_CONTENT_TYPE,\n ATTRIBUTE_SCOPES,\n apiRoot,\n apiUrl,\n auditLogsApiUrl,\n defaultPermissionSets,\n deploymentsApiUrl,\n deploymentsApiUrlV2,\n DEVICE_FILTERING_OPTIONS,\n DEVICE_ISSUE_OPTIONS,\n DEVICE_LIST_DEFAULTS,\n DEVICE_STATES,\n deviceAuthV2,\n deviceConfig,\n deviceConnect,\n emptyRole,\n emptyUiPermissions,\n headerNames,\n inventoryApiUrl,\n inventoryApiUrlV2,\n iotManagerBaseURL,\n monitorApiUrlv1,\n limitDefault,\n maxSessionAge,\n PermissionTypes,\n reportingApiUrl,\n rolesById,\n rolesByName,\n scopedPermissionAreas,\n serviceProviderRolesById,\n SORTING_OPTIONS,\n ssoIdpApiUrlv1,\n tenantadmApiUrlv1,\n tenantadmApiUrlv2,\n twoFAStates,\n uiPermissionsByArea,\n uiPermissionsById,\n useradmApiUrl,\n useradmApiUrlv1,\n useradmApiUrlv2\n};\n\nexport type {\n AnyPermission,\n AuditLogPermission,\n DeploymentPermission,\n DeviceIssueOptionKey,\n GroupsPermission,\n PermissionObject,\n PermissionSet,\n PermissionSetId,\n ReleasesPermission,\n Role,\n ScopedPermissionsByAreaKey,\n SortOptions,\n UiPermissionsByAreaKey,\n UiPermissionsByIdKey,\n UiPermissionsDefinition,\n UserManagementPermission\n};\n\nexport * from './appSlice/constants';\nexport * from './commonConstants';\nexport * from './deploymentsSlice/constants';\nexport * from './devicesSlice/constants';\nexport * from './monitorSlice/constants';\nexport * from './onboardingSlice/constants';\nexport * from './organizationSlice/constants';\nexport * from './releasesSlice/constants';\nexport * from './usersSlice/constants';\n","// 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 { mdiAws as AWS, mdiMicrosoftAzure as Azure } from '@mdi/js';\nimport { Credentials, Integration } from '@northern.tech/types/MenderTypes';\n\nimport type { DEVICE_FILTERING_OPTIONS } from './constants';\nimport { ATTRIBUTE_SCOPES } from './constants';\n\nexport const timeUnits = {\n days: 'days',\n minutes: 'minutes',\n hours: 'hours'\n};\n\nexport const UNGROUPED_GROUP = { id: '*|=ungrouped=|*', name: 'Unassigned' };\n\nexport const DEVICE_LIST_MAXIMUM_LENGTH = 50;\n\nexport type FilterOperator = keyof typeof DEVICE_FILTERING_OPTIONS;\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 DEVICE_ONLINE_CUTOFF = { interval: 1, intervalName: timeUnits.days };\n\nexport interface IdAttribute {\n attribute: string;\n scope: string;\n}\nexport const defaultIdAttribute: Readonly<IdAttribute> = Object.freeze({ attribute: 'id', scope: ATTRIBUTE_SCOPES.identity });\n\nexport const credentialTypes = {\n aws: Credentials.type.AWS,\n http: Credentials.type.HTTP,\n sas: Credentials.type.SAS,\n x509: 'x509'\n};\nexport const EXTERNAL_PROVIDER = {\n 'iot-core': {\n credentialsType: credentialTypes.aws as Credentials.type.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 as Credentials.type.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 as Credentials.type.HTTP,\n deviceTwin: false,\n twinTitle: '',\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} as const;\n\nexport interface Webhook extends Integration {\n provider: Integration.provider.WEBHOOK;\n}\n\nexport const emptyWebhook: Webhook = {\n description: '',\n provider: Integration.provider.WEBHOOK,\n credentials: {\n type: EXTERNAL_PROVIDER.webhook.credentialsType,\n [EXTERNAL_PROVIDER.webhook.credentialsType]: {\n secret: '',\n url: ''\n }\n }\n};\n\ninterface CountryType {\n code: string;\n label: string;\n}\nexport const MAX_PAGE_SIZE = 500;\nconst regionNames = new Intl.DisplayNames(['en'], { type: 'region' });\nexport const countries: readonly CountryType[] = [\n 'AD',\n 'AE',\n 'AF',\n 'AG',\n 'AI',\n 'AL',\n 'AM',\n 'AO',\n 'AQ',\n 'AR',\n 'AS',\n 'AT',\n 'AU',\n 'AW',\n 'AX',\n 'AZ',\n 'BA',\n 'BB',\n 'BD',\n 'BE',\n 'BF',\n 'BG',\n 'BH',\n 'BI',\n 'BJ',\n 'BL',\n 'BM',\n 'BN',\n 'BO',\n 'BR',\n 'BS',\n 'BT',\n 'BV',\n 'BW',\n 'BY',\n 'BZ',\n 'CA',\n 'CC',\n 'CD',\n 'CF',\n 'CG',\n 'CH',\n 'CI',\n 'CK',\n 'CL',\n 'CM',\n 'CN',\n 'CO',\n 'CR',\n 'CU',\n 'CV',\n 'CW',\n 'CX',\n 'CY',\n 'CZ',\n 'DE',\n 'DJ',\n 'DK',\n 'DM',\n 'DO',\n 'DZ',\n 'EC',\n 'EE',\n 'EG',\n 'EH',\n 'ER',\n 'ES',\n 'ET',\n 'FI',\n 'FJ',\n 'FK',\n 'FM',\n 'FO',\n 'FR',\n 'GA',\n 'GB',\n 'GD',\n 'GE',\n 'GF',\n 'GG',\n 'GH',\n 'GI',\n 'GL',\n 'GM',\n 'GN',\n 'GP',\n 'GQ',\n 'GR',\n 'GS',\n 'GT',\n 'GU',\n 'GW',\n 'GY',\n 'HK',\n 'HM',\n 'HN',\n 'HR',\n 'HT',\n 'HU',\n 'ID',\n 'IE',\n 'IL',\n 'IM',\n 'IN',\n 'IO',\n 'IQ',\n 'IR',\n 'IS',\n 'IT',\n 'JE',\n 'JM',\n 'JO',\n 'JP',\n 'KE',\n 'KG',\n 'KH',\n 'KI',\n 'KM',\n 'KN',\n 'KP',\n 'KR',\n 'KW',\n 'KY',\n 'KZ',\n 'LA',\n 'LB',\n 'LC',\n 'LI',\n 'LK',\n 'LR',\n 'LS',\n 'LT',\n 'LU',\n 'LV',\n 'LY',\n 'MA',\n 'MC',\n 'MD',\n 'ME',\n 'MF',\n 'MG',\n 'MH',\n 'MK',\n 'ML',\n 'MM',\n 'MN',\n 'MO',\n 'MP',\n 'MQ',\n 'MR',\n 'MS',\n 'MT',\n 'MU',\n 'MV',\n 'MW',\n 'MX',\n 'MY',\n 'MZ',\n 'NA',\n 'NC',\n 'NE',\n 'NF',\n 'NG',\n 'NI',\n 'NL',\n 'NO',\n 'NP',\n 'NR',\n 'NU',\n 'NZ',\n 'OM',\n 'PA',\n 'PE',\n 'PF',\n 'PG',\n 'PH',\n 'PK',\n 'PL',\n 'PM',\n 'PN',\n 'PR',\n 'PS',\n 'PT',\n 'PW',\n 'PY',\n 'QA',\n 'RE',\n 'RO',\n 'RS',\n 'RU',\n 'RW',\n 'SA',\n 'SB',\n 'SC',\n 'SD',\n 'SE',\n 'SG',\n 'SH',\n 'SI',\n 'SJ',\n 'SK',\n 'SL',\n 'SM',\n 'SN',\n 'SO',\n 'SR',\n 'SS',\n 'ST',\n 'SV',\n 'SX',\n 'SY',\n 'SZ',\n 'TC',\n 'TD',\n 'TF',\n 'TG',\n 'TH',\n 'TJ',\n 'TK',\n 'TL',\n 'TM',\n 'TN',\n 'TO',\n 'TR',\n 'TT',\n 'TV',\n 'TW',\n 'TZ',\n 'UA',\n 'UG',\n 'US',\n 'UY',\n 'UZ',\n 'VA',\n 'VC',\n 'VE',\n 'VG',\n 'VI',\n 'VN',\n 'VU',\n 'WF',\n 'WS',\n 'XK',\n 'YE',\n 'YT',\n 'ZA',\n 'ZM',\n 'ZW'\n]\n .map(code => ({ code, label: regionNames.of(code) }))\n .sort((a, b) => a.label.localeCompare(b.label));\n"],"mappings":"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A,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAA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","names":["import_constants","AWS","Azure"]}
1
+ {"version":3,"sources":["../../src/releasesSlice/selectors.ts","../../src/utils.ts","../../src/constants.ts","../../src/commonConstants.tsx"],"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 type { ReleaseV2 } from '@northern.tech/types/MenderTypes';\nimport { createSelector } from '@reduxjs/toolkit';\n\nimport type { RootState } from '../store';\nimport { listItemMapper } from '../utils';\n\nconst getSelectedReleaseId = (state: RootState) => state.releases.selectedRelease;\nexport const getReleasesById = (state: RootState) => state.releases.byId;\nexport const getReleaseTags = (state: RootState) => state.releases.tags;\nexport const getReleaseListState = (state: RootState) => state.releases.releasesList;\nconst getListedReleases = (state: RootState) => state.releases.releasesList.releaseIds;\nexport const getUpdateTypes = (state: RootState) => state.releases.updateTypes;\nconst releaseDefaults = {};\nconst getReleaseMappingDefaults = () => releaseDefaults;\nexport const getReleasesList = createSelector([getReleasesById, getListedReleases, getReleaseMappingDefaults], listItemMapper<ReleaseV2>);\n\nexport const getReleaseTagsById = createSelector([getReleaseTags], releaseTags => releaseTags.reduce((accu, key) => ({ ...accu, [key]: key }), {}));\nexport const getHasReleases = createSelector(\n [getReleaseListState, getReleasesById],\n ({ searchTotal, total }, byId) => !!(Object.keys(byId).length || total || searchTotal)\n);\n\nexport const getSelectedRelease = createSelector([getReleasesById, getSelectedReleaseId], (byId, id) => byId[id || ''] ?? {});\n\nexport const getSelectedReleases = createSelector([getReleaseListState, getReleasesList], ({ selection }, releases) => selection.map(index => releases[index]));\n\nexport const getDeltaJobsListState = (state: RootState) => state.releases.deltaJobsList;\nexport const getDeltaJobsById = (state: RootState) => state.releases.deltaJobs;\nexport const getDeltaJobById = createSelector([getDeltaJobsById, (_, jobId) => jobId], (byId, jobId: string) => byId[jobId]);\nconst getSelectedJobId = (state: RootState) => state.releases.selectedJob;\nexport const getSelectedJob = createSelector([getDeltaJobsById, getSelectedJobId], (byId, jobId) => byId[jobId || '']);\n","// 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 type { DeviceAttribute } from '@northern.tech/types/DeviceAttribute';\nimport type { Scope } from '@northern.tech/types/MenderTypes';\nimport { duplicateFilter, yes } from '@northern.tech/utils/helpers';\n\nimport type { DeviceIssueOptionKey } from './constants';\nimport {\n ATTRIBUTE_SCOPES,\n DARK_MODE,\n DEPLOYMENT_STATES,\n DEVICE_FILTERING_OPTIONS,\n DEVICE_ISSUE_OPTIONS,\n DEVICE_LIST_MAXIMUM_LENGTH,\n defaultStats,\n deploymentDisplayStates,\n deploymentStatesToSubstates,\n deploymentStatesToSubstatesWithSkipped,\n emptyFilter,\n emptyUiPermissions,\n softwareIndicator\n} from './constants';\nimport type { DeviceFilter, DeviceGroup, InventoryAttributes } from './devicesSlice';\n\n// for some reason these functions can not be stored in the deviceConstants...\nconst filterProcessors = {\n [DEVICE_FILTERING_OPTIONS.$gt.key]: val => Number(val) || val,\n [DEVICE_FILTERING_OPTIONS.$gte.key]: val => Number(val) || val,\n [DEVICE_FILTERING_OPTIONS.$lt.key]: val => Number(val) || val,\n [DEVICE_FILTERING_OPTIONS.$lte.key]: val => Number(val) || val,\n [DEVICE_FILTERING_OPTIONS.$ltne.key]: val => Number(val) || val,\n [DEVICE_FILTERING_OPTIONS.$in.key]: val => ('' + val).split(',').map(i => i.trim()),\n [DEVICE_FILTERING_OPTIONS.$nin.key]: val => ('' + val).split(',').map(i => i.trim()),\n [DEVICE_FILTERING_OPTIONS.$exists.key]: yes,\n [DEVICE_FILTERING_OPTIONS.$nexists.key]: () => false\n};\nconst filterAliases = {\n $nexists: { alias: DEVICE_FILTERING_OPTIONS.$exists.key, value: false }\n};\nexport const mapFiltersToTerms = filters =>\n filters.map(filter => ({\n scope: filter.scope,\n attribute: filter.key,\n type: filterAliases[filter.operator]?.alias || filter.operator,\n value: filterProcessors.hasOwnProperty(filter.operator) ? filterProcessors[filter.operator](filter.value) : filter.value\n }));\nexport const mapTermsToFilters = terms =>\n terms.map(term => {\n const aliasedFilter = Object.entries(filterAliases).find(\n aliasDefinition => aliasDefinition[1].alias === term.type && aliasDefinition[1].value === term.value\n );\n const operator = aliasedFilter ? aliasedFilter[0] : term.type;\n return { scope: term.scope as Scope, key: term.attribute, operator, value: term.value };\n });\n\nconst convertIssueOptionsToFilters = (issuesSelection, filtersState = {}) =>\n issuesSelection.map(item => {\n if (typeof DEVICE_ISSUE_OPTIONS[item].filterRule.value === 'function') {\n return { ...DEVICE_ISSUE_OPTIONS[item].filterRule, value: DEVICE_ISSUE_OPTIONS[item].filterRule.value(filtersState) };\n }\n return DEVICE_ISSUE_OPTIONS[item].filterRule;\n });\n\nexport const convertDeviceListStateToFilters = ({\n filters = [],\n group,\n groups = { byId: {} },\n offlineThreshold,\n selectedIssues = [],\n status\n}: {\n filters?: DeviceFilter[];\n group?: string;\n groups?: { byId: Record<string, DeviceGroup> };\n offlineThreshold?: string;\n selectedIssues?: DeviceIssueOptionKey[];\n status?: string;\n}) => {\n let applicableFilters = [...filters];\n if (typeof group === 'string' && !(groups.byId[group]?.filters || applicableFilters).length) {\n applicableFilters.push({ key: 'group', value: group, operator: DEVICE_FILTERING_OPTIONS.$eq.key, scope: 'system' });\n }\n const nonMonitorFilters = applicableFilters.filter(\n filter =>\n !Object.values(DEVICE_ISSUE_OPTIONS).some(\n ({ filterRule }) => filter.scope !== 'inventory' && filterRule.scope === filter.scope && filterRule.key === filter.key\n )\n );\n const deviceIssueFilters = convertIssueOptionsToFilters(selectedIssues, { offlineThreshold });\n applicableFilters = [...nonMonitorFilters, ...deviceIssueFilters];\n const effectiveFilters = status\n ? [...applicableFilters, { key: 'status', value: status, operator: DEVICE_FILTERING_OPTIONS.$eq.key, scope: 'identity' }]\n : applicableFilters;\n return { applicableFilters: nonMonitorFilters, filterTerms: mapFiltersToTerms(effectiveFilters) };\n};\n\nconst filterCompare = (filter, item) => Object.keys(emptyFilter).every(key => item[key]?.toString() === filter[key]?.toString());\n\nexport const filtersFilter = (item, index, array) => {\n const firstIndex = array.findIndex(filter => filterCompare(filter, item));\n return firstIndex === index;\n};\n\nexport const listItemMapper = <T>(\n byId: Record<string, T>,\n ids: string[],\n { cutOffSize = DEVICE_LIST_MAXIMUM_LENGTH, defaultObject = {} }: { cutOffSize?: number; defaultObject?: T }\n): T[] =>\n ids.slice(0, cutOffSize).reduce((accu, id) => {\n if (id && byId[id]) {\n accu.push({ ...defaultObject, ...byId[id] });\n }\n return accu;\n }, []);\n\nexport const mergePermissions = (existingPermissions = { ...emptyUiPermissions }, addedPermissions) =>\n Object.entries(existingPermissions).reduce(\n (accu, [key, value]) => {\n let values;\n if (!accu[key]) {\n accu[key] = value;\n return accu;\n }\n if (Array.isArray(value)) {\n values = [...value, ...accu[key]].filter(duplicateFilter);\n } else {\n values = mergePermissions(accu[key], { ...value });\n }\n accu[key] = values;\n return accu;\n },\n { ...addedPermissions }\n );\n\nexport const mapUserRolesToUiPermissions = (userRoles, roles) =>\n userRoles.reduce(\n (accu, roleId) => {\n if (!(roleId && roles[roleId])) {\n return accu;\n }\n return mergePermissions(accu, roles[roleId].uiPermissions);\n },\n { ...emptyUiPermissions }\n );\n\nexport const progress = ({ loaded, total }) => {\n let uploadProgress = (loaded / total) * 100;\n return (uploadProgress = uploadProgress < 50 ? Math.ceil(uploadProgress) : Math.round(uploadProgress));\n};\n\nexport const extractErrorMessage = (err, fallback = '') =>\n err.response?.data?.error?.message || err.response?.data?.error || err.error || err.message || fallback;\n\nexport const ensureVersionString = (software, fallback) =>\n software.length && software !== 'artifact_name' ? (software.endsWith(softwareIndicator) ? software : `${software}${softwareIndicator}`) : fallback;\n\nexport const getComparisonCompatibleVersion = version => (isNaN(version.charAt(0)) && version !== 'next' ? 'master' : version);\n\nexport const stringToBoolean = content => {\n if (!content) {\n return false;\n }\n const string = content + '';\n switch (string.trim().toLowerCase()) {\n case 'true':\n case 'yes':\n case '1':\n return true;\n case 'false':\n case 'no':\n case '0':\n case null:\n return false;\n default:\n return Boolean(string);\n }\n};\n\nexport const groupDeploymentDevicesStats = deployment => {\n const deviceStatCollector = (deploymentStates, devices) =>\n Object.values(devices).reduce((accu, device) => (deploymentStates.includes(device.status) ? accu + 1 : accu), 0);\n\n const inprogress = deviceStatCollector(deploymentStatesToSubstates.inprogress, deployment.devices);\n const pending = deviceStatCollector(deploymentStatesToSubstates.pending, deployment.devices);\n const successes = deviceStatCollector(deploymentStatesToSubstates.successes, deployment.devices);\n const failures = deviceStatCollector(deploymentStatesToSubstates.failures, deployment.devices);\n const paused = deviceStatCollector(deploymentStatesToSubstates.paused, deployment.devices);\n return { inprogress, paused, pending, successes, failures };\n};\n\nexport const statCollector = (items, statistics) => items.reduce((accu, property) => accu + Number(statistics[property] || 0), 0);\nexport const groupDeploymentStats = (deployment, withSkipped) => {\n const { statistics = {} } = deployment;\n const { status = {} } = statistics;\n const stats = { ...defaultStats, ...status };\n let groupStates = deploymentStatesToSubstates;\n let result = {};\n if (withSkipped) {\n groupStates = deploymentStatesToSubstatesWithSkipped;\n result.skipped = statCollector(groupStates.skipped, stats);\n }\n result = {\n ...result,\n // don't include 'pending' as inprogress, as all remaining devices will be pending - we don't discriminate based on phase membership\n inprogress: statCollector(groupStates.inprogress, stats),\n pending: statCollector(groupStates.pending, stats),\n successes: statCollector(groupStates.successes, stats),\n failures: statCollector(groupStates.failures, stats),\n paused: statCollector(groupStates.paused, stats)\n };\n return result;\n};\n\nexport const getDeploymentState = deployment => {\n const { status: deploymentStatus = DEPLOYMENT_STATES.pending } = deployment;\n const { inprogress: currentProgressCount, paused } = groupDeploymentStats(deployment);\n\n let status = deploymentDisplayStates[deploymentStatus];\n if (deploymentStatus === DEPLOYMENT_STATES.pending && currentProgressCount === 0) {\n status = 'queued';\n } else if (paused > 0) {\n status = deploymentDisplayStates.paused;\n }\n return status;\n};\n\nexport const generateDeploymentGroupDetails = (filter, groupName) =>\n filter && filter.terms?.length\n ? `${groupName} (${filter.terms\n .map(filter => `${filter.attribute || filter.key} ${DEVICE_FILTERING_OPTIONS[filter.type || filter.operator].shortform} ${filter.value}`)\n .join(', ')})`\n : groupName;\n\nexport const mapDeviceAttributes = (\n attributes: DeviceAttribute[] = []\n): {\n identity: Record<string, string>;\n inventory: InventoryAttributes;\n monitor: Record<string, string>;\n system: Record<string, string>;\n tags: Record<string, string>;\n} =>\n attributes.reduce(\n (accu, attribute) => {\n if (!(attribute.value && attribute.name) && attribute.scope === ATTRIBUTE_SCOPES.inventory) {\n return accu;\n }\n accu[attribute.scope || ATTRIBUTE_SCOPES.inventory] = {\n ...accu[attribute.scope || ATTRIBUTE_SCOPES.inventory],\n [attribute.name]: attribute.value\n };\n if (attribute.name === 'device_type' && attribute.scope === ATTRIBUTE_SCOPES.inventory) {\n accu.inventory.device_type = [].concat(attribute.value);\n }\n return accu;\n },\n { inventory: { device_type: [], artifact_name: '' }, identity: {}, monitor: {}, system: {}, tags: {} }\n );\n\nexport const isDarkMode = mode => mode === DARK_MODE;\ntype Line = { addon?: string; amount: number; currency: string; description: string; quantity: number };\n\nexport const parseSubscriptionPreview = (lines: Line[]) =>\n lines.reduce(\n (acc, { addon, amount }) => {\n const key = addon || 'plan';\n if (key === 'plan') {\n acc.plan += amount;\n } else {\n acc.addons[key] = (acc.addons[key] ?? 0) + amount;\n }\n return acc;\n },\n { plan: 0, addons: {} }\n );\n","// 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 {\n ALL_DEVICES,\n ALL_DEVICE_STATES,\n ALL_RELEASES,\n APPLICATION_JSON_CONTENT_TYPE,\n APPLICATION_JWT_CONTENT_TYPE,\n ATTRIBUTE_SCOPES,\n DEVICE_FILTERING_OPTIONS,\n DEVICE_ISSUE_OPTIONS,\n DEVICE_LIST_DEFAULTS,\n DEVICE_STATES,\n PermissionTypes,\n SORTING_OPTIONS,\n alertChannels,\n apiRoot,\n apiUrl,\n auditLogsApiUrl,\n defaultPermissionSets,\n deploymentsApiUrl,\n deploymentsApiUrlV2,\n deviceAuthV2,\n deviceConfig,\n deviceConnect,\n emptyRole,\n emptyUiPermissions,\n headerNames,\n inventoryApiUrl,\n inventoryApiUrlV2,\n iotManagerBaseURL,\n limitDefault,\n maxSessionAge,\n monitorApiUrlv1,\n reportingApiUrl,\n rolesById,\n rolesByName,\n scopedPermissionAreas,\n serviceProviderRolesById,\n ssoIdpApiUrlv1,\n tenantadmApiUrlv1,\n tenantadmApiUrlv2,\n twoFAStates,\n uiPermissionsByArea,\n uiPermissionsById,\n useradmApiUrl,\n useradmApiUrlv1,\n useradmApiUrlv2\n} from '@northern.tech/utils/constants';\nimport type {\n AnyPermission,\n AuditLogPermission,\n DeploymentPermission,\n DeviceIssueOptionKey,\n GroupsPermission,\n PermissionObject,\n PermissionSet,\n PermissionSetId,\n ReleasesPermission,\n Role,\n ScopedPermissionsByAreaKey,\n SortOptions,\n UiPermissionsByAreaKey,\n UiPermissionsByIdKey,\n UiPermissionsDefinition,\n UserManagementPermission\n} from '@northern.tech/utils/constants';\n\nexport {\n alertChannels,\n ALL_DEVICE_STATES,\n ALL_DEVICES,\n ALL_RELEASES,\n APPLICATION_JSON_CONTENT_TYPE,\n APPLICATION_JWT_CONTENT_TYPE,\n ATTRIBUTE_SCOPES,\n apiRoot,\n apiUrl,\n auditLogsApiUrl,\n defaultPermissionSets,\n deploymentsApiUrl,\n deploymentsApiUrlV2,\n DEVICE_FILTERING_OPTIONS,\n DEVICE_ISSUE_OPTIONS,\n DEVICE_LIST_DEFAULTS,\n DEVICE_STATES,\n deviceAuthV2,\n deviceConfig,\n deviceConnect,\n emptyRole,\n emptyUiPermissions,\n headerNames,\n inventoryApiUrl,\n inventoryApiUrlV2,\n iotManagerBaseURL,\n monitorApiUrlv1,\n limitDefault,\n maxSessionAge,\n PermissionTypes,\n reportingApiUrl,\n rolesById,\n rolesByName,\n scopedPermissionAreas,\n serviceProviderRolesById,\n SORTING_OPTIONS,\n ssoIdpApiUrlv1,\n tenantadmApiUrlv1,\n tenantadmApiUrlv2,\n twoFAStates,\n uiPermissionsByArea,\n uiPermissionsById,\n useradmApiUrl,\n useradmApiUrlv1,\n useradmApiUrlv2\n};\n\nexport type {\n AnyPermission,\n AuditLogPermission,\n DeploymentPermission,\n DeviceIssueOptionKey,\n GroupsPermission,\n PermissionObject,\n PermissionSet,\n PermissionSetId,\n ReleasesPermission,\n Role,\n ScopedPermissionsByAreaKey,\n SortOptions,\n UiPermissionsByAreaKey,\n UiPermissionsByIdKey,\n UiPermissionsDefinition,\n UserManagementPermission\n};\n\nexport * from './appSlice/constants';\nexport * from './commonConstants';\nexport * from './deploymentsSlice/constants';\nexport * from './devicesSlice/constants';\nexport * from './monitorSlice/constants';\nexport * from './onboardingSlice/constants';\nexport * from './organizationSlice/constants';\nexport * from './releasesSlice/constants';\nexport * from './usersSlice/constants';\n","// 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 { mdiAws as AWS, mdiMicrosoftAzure as Azure } from '@mdi/js';\nimport type { Integration } from '@northern.tech/types/MenderTypes';\n\nimport type { DEVICE_FILTERING_OPTIONS } from './constants';\nimport { ATTRIBUTE_SCOPES } from './constants';\n\nexport const timeUnits = {\n days: 'days',\n minutes: 'minutes',\n hours: 'hours'\n};\n\nexport const UNGROUPED_GROUP = { id: '*|=ungrouped=|*', name: 'Unassigned' };\n\nexport const DEVICE_LIST_MAXIMUM_LENGTH = 50;\n\nexport type FilterOperator = keyof typeof DEVICE_FILTERING_OPTIONS;\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 DEVICE_ONLINE_CUTOFF = { interval: 1, intervalName: timeUnits.days };\n\nexport interface IdAttribute {\n attribute: string;\n scope: string;\n}\nexport const defaultIdAttribute: Readonly<IdAttribute> = Object.freeze({ attribute: 'id', scope: ATTRIBUTE_SCOPES.identity });\n\nexport const 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 twinTitle: '',\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} as const;\n\nexport interface Webhook extends Integration {\n provider: 'webhook';\n}\n\nexport const emptyWebhook: Webhook = {\n description: '',\n provider: 'webhook',\n credentials: {\n type: EXTERNAL_PROVIDER.webhook.credentialsType,\n [EXTERNAL_PROVIDER.webhook.credentialsType]: {\n secret: '',\n url: ''\n }\n }\n};\n\ninterface CountryType {\n code: string;\n label: string;\n}\nexport const MAX_PAGE_SIZE = 500;\nconst regionNames = new Intl.DisplayNames(['en'], { type: 'region' });\nexport const countries: readonly CountryType[] = [\n 'AD',\n 'AE',\n 'AF',\n 'AG',\n 'AI',\n 'AL',\n 'AM',\n 'AO',\n 'AQ',\n 'AR',\n 'AS',\n 'AT',\n 'AU',\n 'AW',\n 'AX',\n 'AZ',\n 'BA',\n 'BB',\n 'BD',\n 'BE',\n 'BF',\n 'BG',\n 'BH',\n 'BI',\n 'BJ',\n 'BL',\n 'BM',\n 'BN',\n 'BO',\n 'BR',\n 'BS',\n 'BT',\n 'BV',\n 'BW',\n 'BY',\n 'BZ',\n 'CA',\n 'CC',\n 'CD',\n 'CF',\n 'CG',\n 'CH',\n 'CI',\n 'CK',\n 'CL',\n 'CM',\n 'CN',\n 'CO',\n 'CR',\n 'CU',\n 'CV',\n 'CW',\n 'CX',\n 'CY',\n 'CZ',\n 'DE',\n 'DJ',\n 'DK',\n 'DM',\n 'DO',\n 'DZ',\n 'EC',\n 'EE',\n 'EG',\n 'EH',\n 'ER',\n 'ES',\n 'ET',\n 'FI',\n 'FJ',\n 'FK',\n 'FM',\n 'FO',\n 'FR',\n 'GA',\n 'GB',\n 'GD',\n 'GE',\n 'GF',\n 'GG',\n 'GH',\n 'GI',\n 'GL',\n 'GM',\n 'GN',\n 'GP',\n 'GQ',\n 'GR',\n 'GS',\n 'GT',\n 'GU',\n 'GW',\n 'GY',\n 'HK',\n 'HM',\n 'HN',\n 'HR',\n 'HT',\n 'HU',\n 'ID',\n 'IE',\n 'IL',\n 'IM',\n 'IN',\n 'IO',\n 'IQ',\n 'IR',\n 'IS',\n 'IT',\n 'JE',\n 'JM',\n 'JO',\n 'JP',\n 'KE',\n 'KG',\n 'KH',\n 'KI',\n 'KM',\n 'KN',\n 'KP',\n 'KR',\n 'KW',\n 'KY',\n 'KZ',\n 'LA',\n 'LB',\n 'LC',\n 'LI',\n 'LK',\n 'LR',\n 'LS',\n 'LT',\n 'LU',\n 'LV',\n 'LY',\n 'MA',\n 'MC',\n 'MD',\n 'ME',\n 'MF',\n 'MG',\n 'MH',\n 'MK',\n 'ML',\n 'MM',\n 'MN',\n 'MO',\n 'MP',\n 'MQ',\n 'MR',\n 'MS',\n 'MT',\n 'MU',\n 'MV',\n 'MW',\n 'MX',\n 'MY',\n 'MZ',\n 'NA',\n 'NC',\n 'NE',\n 'NF',\n 'NG',\n 'NI',\n 'NL',\n 'NO',\n 'NP',\n 'NR',\n 'NU',\n 'NZ',\n 'OM',\n 'PA',\n 'PE',\n 'PF',\n 'PG',\n 'PH',\n 'PK',\n 'PL',\n 'PM',\n 'PN',\n 'PR',\n 'PS',\n 'PT',\n 'PW',\n 'PY',\n 'QA',\n 'RE',\n 'RO',\n 'RS',\n 'RU',\n 'RW',\n 'SA',\n 'SB',\n 'SC',\n 'SD',\n 'SE',\n 'SG',\n 'SH',\n 'SI',\n 'SJ',\n 'SK',\n 'SL',\n 'SM',\n 'SN',\n 'SO',\n 'SR',\n 'SS',\n 'ST',\n 'SV',\n 'SX',\n 'SY',\n 'SZ',\n 'TC',\n 'TD',\n 'TF',\n 'TG',\n 'TH',\n 'TJ',\n 'TK',\n 'TL',\n 'TM',\n 'TN',\n 'TO',\n 'TR',\n 'TT',\n 'TV',\n 'TW',\n 'TZ',\n 'UA',\n 'UG',\n 'US',\n 'UY',\n 'UZ',\n 'VA',\n 'VC',\n 'VE',\n 'VG',\n 'VI',\n 'VN',\n 'VU',\n 'WF',\n 'WS',\n 'XK',\n 'YE',\n 'YT',\n 'ZA',\n 'ZM',\n 'ZW'\n]\n .map(code => ({ code, label: regionNames.of(code) }))\n .sort((a, b) => a.label.localeCompare(b.label));\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAcA,qBAA+B;;;ACE/B,qBAAqC;;;ACFrC,IAAAA,oBA8CO;;;AC9CP,gBAA0D;AAsD1C;AAhDT,IAAM,YAAY;AAAA,EACvB,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AACT;AAIO,IAAM,6BAA6B;AAI1C,IAAM,YAAY;AACX,IAAM,WAAW;AAAA,EACtB,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,aAAa,MAAM;AAAA,EACnB;AAAA,EACA,YAAY,IAAI;AAAA,EAChB,cAAc,IAAI;AAAA,EAClB,aAAa,IAAI;AAAA,EACjB,gBAAgB,KAAK;AAAA,EACrB,aAAa,KAAK;AACpB;AAEO,IAAM,uBAAuB,EAAE,UAAU,GAAG,cAAc,UAAU,KAAK;AAMzE,IAAM,qBAA4C,OAAO,OAAO,EAAE,WAAW,MAAM,OAAO,mCAAiB,SAAS,CAAC;AAErH,IAAM,kBAAkB;AAAA,EAC7B,KAAK;AAAA,EACL,MAAM;AAAA,EACN,KAAK;AAAA,EACL,MAAM;AACR;AACO,IAAM,oBAAoB;AAAA,EAC/B,YAAY;AAAA,IACV,iBAAiB,gBAAgB;AAAA,IACjC,MAAM,UAAAC;AAAA,IACN,OAAO;AAAA,IACP,WAAW;AAAA,IACX,UAAU;AAAA,IACV,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,YAAY,2EAAE,oGAAsF;AAAA,EACtG;AAAA,EACA,WAAW;AAAA,IACT,iBAAiB,gBAAgB;AAAA,IACjC,MAAM,UAAAC;AAAA,IACN,OAAO;AAAA,IACP,WAAW;AAAA,IACX,UAAU;AAAA,IACV,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,YACE,6CAAC,UAAK;AAAA;AAAA,MACwI;AAAA,MAE1I;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,QAAO;AAAA,UACP,KAAI;AAAA,UACL;AAAA;AAAA,MAED;AAAA,MACD;AAAA,OAEH;AAAA,EAEJ;AAAA,EACA,SAAS;AAAA,IACP,iBAAiB,gBAAgB;AAAA,IACjC,YAAY;AAAA,IACZ,WAAW;AAAA;AAAA,IAEX,SAAS;AAAA,IACT,UAAU;AAAA,EACZ;AACF;AAMO,IAAM,eAAwB;AAAA,EACnC,aAAa;AAAA,EACb,UAAU;AAAA,EACV,aAAa;AAAA,IACX,MAAM,kBAAkB,QAAQ;AAAA,IAChC,CAAC,kBAAkB,QAAQ,eAAe,GAAG;AAAA,MAC3C,QAAQ;AAAA,MACR,KAAK;AAAA,IACP;AAAA,EACF;AACF;AAOA,IAAM,cAAc,IAAI,KAAK,aAAa,CAAC,IAAI,GAAG,EAAE,MAAM,SAAS,CAAC;AAC7D,IAAM,YAAoC;AAAA,EAC/C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA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","names":["import_constants","AWS","Azure"]}
@@ -1,13 +1,11 @@
1
- import * as _northern_tech_types_DeltaJobsListItem from '@northern.tech/types/DeltaJobsListItem';
2
- import * as _northern_tech_types_DeltaJobDetailsItem from '@northern.tech/types/DeltaJobDetailsItem';
3
1
  import * as reselect from 'reselect';
4
2
  import * as _northern_tech_utils_constants from '@northern.tech/utils/constants';
5
- import { Release as Release$1 } from '@northern.tech/types/MenderTypes';
3
+ import { ReleaseV2 } from '@northern.tech/types/MenderTypes';
6
4
  import { ReadState } from '../usersSlice/constants.cjs';
7
5
  import { User, UserSession, CustomColumn, GlobalSettings, UserSettings } from '../usersSlice/index.cjs';
8
6
  import { OrganizationState } from '../organizationSlice/types.cjs';
9
7
  import { OnboardingApproach } from '../onboardingSlice/index.cjs';
10
- import * as _northern_tech_types_Alert from '@northern.tech/types/Alert';
8
+ import * as _northern_tech_types_types_gen from '@northern.tech/types/types.gen';
11
9
  import { Deployment, DeploymentByStatus, DeploymentConfig, SelectionState } from '../deploymentsSlice/index.cjs';
12
10
  import { DeviceSliceType } from '../devicesSlice/index.cjs';
13
11
  import { SearchState, SentryConfig, SnackbarContent, Upload } from '../appSlice/index.cjs';
@@ -80,10 +78,10 @@ declare const getReleasesList: ((state: {
80
78
  total: number;
81
79
  };
82
80
  byDeviceId: {
83
- alerts?: Record<string, _northern_tech_types_Alert.Alert & {
81
+ alerts?: Record<string, _northern_tech_types_types_gen.Alert & {
84
82
  fullName?: string;
85
83
  }>;
86
- latest?: Record<string, _northern_tech_types_Alert.Alert & {
84
+ latest?: Record<string, _northern_tech_types_types_gen.Alert & {
87
85
  fullName?: string;
88
86
  }>;
89
87
  };
@@ -162,18 +160,18 @@ declare const getReleasesList: ((state: {
162
160
  userSettings: UserSettings;
163
161
  userSettingsInitialized: boolean;
164
162
  };
165
- }) => Release$1[]) & {
163
+ }) => ReleaseV2[]) & {
166
164
  clearCache: () => void;
167
165
  resultsCount: () => number;
168
166
  resetResultsCount: () => void;
169
167
  } & {
170
- resultFunc: (resultFuncArgs_0: Record<string, Release>, resultFuncArgs_1: string[], resultFuncArgs_2: {}) => Release$1[];
171
- memoizedResultFunc: ((resultFuncArgs_0: Record<string, Release>, resultFuncArgs_1: string[], resultFuncArgs_2: {}) => Release$1[]) & {
168
+ resultFunc: (resultFuncArgs_0: Record<string, Release>, resultFuncArgs_1: string[], resultFuncArgs_2: {}) => ReleaseV2[];
169
+ memoizedResultFunc: ((resultFuncArgs_0: Record<string, Release>, resultFuncArgs_1: string[], resultFuncArgs_2: {}) => ReleaseV2[]) & {
172
170
  clearCache: () => void;
173
171
  resultsCount: () => number;
174
172
  resetResultsCount: () => void;
175
173
  };
176
- lastResult: () => Release$1[];
174
+ lastResult: () => ReleaseV2[];
177
175
  dependencies: [(state: RootState) => Record<string, Release>, (state: RootState) => string[], () => {}];
178
176
  recomputations: () => number;
179
177
  resetRecomputations: () => void;
@@ -234,10 +232,10 @@ declare const getReleaseTagsById: ((state: {
234
232
  total: number;
235
233
  };
236
234
  byDeviceId: {
237
- alerts?: Record<string, _northern_tech_types_Alert.Alert & {
235
+ alerts?: Record<string, _northern_tech_types_types_gen.Alert & {
238
236
  fullName?: string;
239
237
  }>;
240
- latest?: Record<string, _northern_tech_types_Alert.Alert & {
238
+ latest?: Record<string, _northern_tech_types_types_gen.Alert & {
241
239
  fullName?: string;
242
240
  }>;
243
241
  };
@@ -388,10 +386,10 @@ declare const getHasReleases: ((state: {
388
386
  total: number;
389
387
  };
390
388
  byDeviceId: {
391
- alerts?: Record<string, _northern_tech_types_Alert.Alert & {
389
+ alerts?: Record<string, _northern_tech_types_types_gen.Alert & {
392
390
  fullName?: string;
393
391
  }>;
394
- latest?: Record<string, _northern_tech_types_Alert.Alert & {
392
+ latest?: Record<string, _northern_tech_types_types_gen.Alert & {
395
393
  fullName?: string;
396
394
  }>;
397
395
  };
@@ -542,10 +540,10 @@ declare const getSelectedRelease: ((state: {
542
540
  total: number;
543
541
  };
544
542
  byDeviceId: {
545
- alerts?: Record<string, _northern_tech_types_Alert.Alert & {
543
+ alerts?: Record<string, _northern_tech_types_types_gen.Alert & {
546
544
  fullName?: string;
547
545
  }>;
548
- latest?: Record<string, _northern_tech_types_Alert.Alert & {
546
+ latest?: Record<string, _northern_tech_types_types_gen.Alert & {
549
547
  fullName?: string;
550
548
  }>;
551
549
  };
@@ -696,10 +694,10 @@ declare const getSelectedReleases: ((state: {
696
694
  total: number;
697
695
  };
698
696
  byDeviceId: {
699
- alerts?: Record<string, _northern_tech_types_Alert.Alert & {
697
+ alerts?: Record<string, _northern_tech_types_types_gen.Alert & {
700
698
  fullName?: string;
701
699
  }>;
702
- latest?: Record<string, _northern_tech_types_Alert.Alert & {
700
+ latest?: Record<string, _northern_tech_types_types_gen.Alert & {
703
701
  fullName?: string;
704
702
  }>;
705
703
  };
@@ -778,18 +776,18 @@ declare const getSelectedReleases: ((state: {
778
776
  userSettings: UserSettings;
779
777
  userSettingsInitialized: boolean;
780
778
  };
781
- }) => Release$1[]) & {
779
+ }) => ReleaseV2[]) & {
782
780
  clearCache: () => void;
783
781
  resultsCount: () => number;
784
782
  resetResultsCount: () => void;
785
783
  } & {
786
- resultFunc: (resultFuncArgs_0: ReleasesList, resultFuncArgs_1: Release$1[]) => Release$1[];
787
- memoizedResultFunc: ((resultFuncArgs_0: ReleasesList, resultFuncArgs_1: Release$1[]) => Release$1[]) & {
784
+ resultFunc: (resultFuncArgs_0: ReleasesList, resultFuncArgs_1: ReleaseV2[]) => ReleaseV2[];
785
+ memoizedResultFunc: ((resultFuncArgs_0: ReleasesList, resultFuncArgs_1: ReleaseV2[]) => ReleaseV2[]) & {
788
786
  clearCache: () => void;
789
787
  resultsCount: () => number;
790
788
  resetResultsCount: () => void;
791
789
  };
792
- lastResult: () => Release$1[];
790
+ lastResult: () => ReleaseV2[];
793
791
  dependencies: [(state: RootState) => ReleasesList, ((state: {
794
792
  app: {
795
793
  cancelSource: any;
@@ -841,10 +839,10 @@ declare const getSelectedReleases: ((state: {
841
839
  total: number;
842
840
  };
843
841
  byDeviceId: {
844
- alerts?: Record<string, _northern_tech_types_Alert.Alert & {
842
+ alerts?: Record<string, _northern_tech_types_types_gen.Alert & {
845
843
  fullName?: string;
846
844
  }>;
847
- latest?: Record<string, _northern_tech_types_Alert.Alert & {
845
+ latest?: Record<string, _northern_tech_types_types_gen.Alert & {
848
846
  fullName?: string;
849
847
  }>;
850
848
  };
@@ -923,18 +921,18 @@ declare const getSelectedReleases: ((state: {
923
921
  userSettings: UserSettings;
924
922
  userSettingsInitialized: boolean;
925
923
  };
926
- }) => Release$1[]) & {
924
+ }) => ReleaseV2[]) & {
927
925
  clearCache: () => void;
928
926
  resultsCount: () => number;
929
927
  resetResultsCount: () => void;
930
928
  } & {
931
- resultFunc: (resultFuncArgs_0: Record<string, Release>, resultFuncArgs_1: string[], resultFuncArgs_2: {}) => Release$1[];
932
- memoizedResultFunc: ((resultFuncArgs_0: Record<string, Release>, resultFuncArgs_1: string[], resultFuncArgs_2: {}) => Release$1[]) & {
929
+ resultFunc: (resultFuncArgs_0: Record<string, Release>, resultFuncArgs_1: string[], resultFuncArgs_2: {}) => ReleaseV2[];
930
+ memoizedResultFunc: ((resultFuncArgs_0: Record<string, Release>, resultFuncArgs_1: string[], resultFuncArgs_2: {}) => ReleaseV2[]) & {
933
931
  clearCache: () => void;
934
932
  resultsCount: () => number;
935
933
  resetResultsCount: () => void;
936
934
  };
937
- lastResult: () => Release$1[];
935
+ lastResult: () => ReleaseV2[];
938
936
  dependencies: [(state: RootState) => Record<string, Release>, (state: RootState) => string[], () => {}];
939
937
  recomputations: () => number;
940
938
  resetRecomputations: () => void;
@@ -959,20 +957,20 @@ declare const getDeltaJobsListState: (state: RootState) => {
959
957
  sort?: _northern_tech_utils_constants.SortOptions;
960
958
  total: 0;
961
959
  };
962
- declare const getDeltaJobsById: (state: RootState) => Record<string, _northern_tech_types_DeltaJobDetailsItem.DeltaJobDetailsItem & _northern_tech_types_DeltaJobsListItem.DeltaJobsListItem>;
963
- declare const getDeltaJobById: ((state: any, jobId: any) => _northern_tech_types_DeltaJobDetailsItem.DeltaJobDetailsItem & _northern_tech_types_DeltaJobsListItem.DeltaJobsListItem) & {
960
+ declare const getDeltaJobsById: (state: RootState) => Record<string, any>;
961
+ declare const getDeltaJobById: ((state: any, jobId: any) => any) & {
964
962
  clearCache: () => void;
965
963
  resultsCount: () => number;
966
964
  resetResultsCount: () => void;
967
965
  } & {
968
- resultFunc: (resultFuncArgs_0: Record<string, _northern_tech_types_DeltaJobDetailsItem.DeltaJobDetailsItem & _northern_tech_types_DeltaJobsListItem.DeltaJobsListItem>, resultFuncArgs_1: any) => _northern_tech_types_DeltaJobDetailsItem.DeltaJobDetailsItem & _northern_tech_types_DeltaJobsListItem.DeltaJobsListItem;
969
- memoizedResultFunc: ((resultFuncArgs_0: Record<string, _northern_tech_types_DeltaJobDetailsItem.DeltaJobDetailsItem & _northern_tech_types_DeltaJobsListItem.DeltaJobsListItem>, resultFuncArgs_1: any) => _northern_tech_types_DeltaJobDetailsItem.DeltaJobDetailsItem & _northern_tech_types_DeltaJobsListItem.DeltaJobsListItem) & {
966
+ resultFunc: (resultFuncArgs_0: Record<string, any>, resultFuncArgs_1: any) => any;
967
+ memoizedResultFunc: ((resultFuncArgs_0: Record<string, any>, resultFuncArgs_1: any) => any) & {
970
968
  clearCache: () => void;
971
969
  resultsCount: () => number;
972
970
  resetResultsCount: () => void;
973
971
  };
974
- lastResult: () => _northern_tech_types_DeltaJobDetailsItem.DeltaJobDetailsItem & _northern_tech_types_DeltaJobsListItem.DeltaJobsListItem;
975
- dependencies: [(state: RootState) => Record<string, _northern_tech_types_DeltaJobDetailsItem.DeltaJobDetailsItem & _northern_tech_types_DeltaJobsListItem.DeltaJobsListItem>, (_: any, jobId: any) => any];
972
+ lastResult: () => any;
973
+ dependencies: [(state: RootState) => Record<string, any>, (_: any, jobId: any) => any];
976
974
  recomputations: () => number;
977
975
  resetRecomputations: () => void;
978
976
  dependencyRecomputations: () => number;
@@ -1032,10 +1030,10 @@ declare const getSelectedJob: ((state: {
1032
1030
  total: number;
1033
1031
  };
1034
1032
  byDeviceId: {
1035
- alerts?: Record<string, _northern_tech_types_Alert.Alert & {
1033
+ alerts?: Record<string, _northern_tech_types_types_gen.Alert & {
1036
1034
  fullName?: string;
1037
1035
  }>;
1038
- latest?: Record<string, _northern_tech_types_Alert.Alert & {
1036
+ latest?: Record<string, _northern_tech_types_types_gen.Alert & {
1039
1037
  fullName?: string;
1040
1038
  }>;
1041
1039
  };
@@ -1114,19 +1112,19 @@ declare const getSelectedJob: ((state: {
1114
1112
  userSettings: UserSettings;
1115
1113
  userSettingsInitialized: boolean;
1116
1114
  };
1117
- }) => _northern_tech_types_DeltaJobDetailsItem.DeltaJobDetailsItem & _northern_tech_types_DeltaJobsListItem.DeltaJobsListItem) & {
1115
+ }) => any) & {
1118
1116
  clearCache: () => void;
1119
1117
  resultsCount: () => number;
1120
1118
  resetResultsCount: () => void;
1121
1119
  } & {
1122
- resultFunc: (resultFuncArgs_0: Record<string, _northern_tech_types_DeltaJobDetailsItem.DeltaJobDetailsItem & _northern_tech_types_DeltaJobsListItem.DeltaJobsListItem>, resultFuncArgs_1: string | null) => _northern_tech_types_DeltaJobDetailsItem.DeltaJobDetailsItem & _northern_tech_types_DeltaJobsListItem.DeltaJobsListItem;
1123
- memoizedResultFunc: ((resultFuncArgs_0: Record<string, _northern_tech_types_DeltaJobDetailsItem.DeltaJobDetailsItem & _northern_tech_types_DeltaJobsListItem.DeltaJobsListItem>, resultFuncArgs_1: string | null) => _northern_tech_types_DeltaJobDetailsItem.DeltaJobDetailsItem & _northern_tech_types_DeltaJobsListItem.DeltaJobsListItem) & {
1120
+ resultFunc: (resultFuncArgs_0: Record<string, any>, resultFuncArgs_1: string | null) => any;
1121
+ memoizedResultFunc: ((resultFuncArgs_0: Record<string, any>, resultFuncArgs_1: string | null) => any) & {
1124
1122
  clearCache: () => void;
1125
1123
  resultsCount: () => number;
1126
1124
  resetResultsCount: () => void;
1127
1125
  };
1128
- lastResult: () => _northern_tech_types_DeltaJobDetailsItem.DeltaJobDetailsItem & _northern_tech_types_DeltaJobsListItem.DeltaJobsListItem;
1129
- dependencies: [(state: RootState) => Record<string, _northern_tech_types_DeltaJobDetailsItem.DeltaJobDetailsItem & _northern_tech_types_DeltaJobsListItem.DeltaJobsListItem>, (state: RootState) => string | null];
1126
+ lastResult: () => any;
1127
+ dependencies: [(state: RootState) => Record<string, any>, (state: RootState) => string | null];
1130
1128
  recomputations: () => number;
1131
1129
  resetRecomputations: () => void;
1132
1130
  dependencyRecomputations: () => number;
@@ -1,13 +1,11 @@
1
- import * as _northern_tech_types_DeltaJobsListItem from '@northern.tech/types/DeltaJobsListItem';
2
- import * as _northern_tech_types_DeltaJobDetailsItem from '@northern.tech/types/DeltaJobDetailsItem';
3
1
  import * as reselect from 'reselect';
4
2
  import * as _northern_tech_utils_constants from '@northern.tech/utils/constants';
5
- import { Release as Release$1 } from '@northern.tech/types/MenderTypes';
3
+ import { ReleaseV2 } from '@northern.tech/types/MenderTypes';
6
4
  import { ReadState } from '../usersSlice/constants.js';
7
5
  import { User, UserSession, CustomColumn, GlobalSettings, UserSettings } from '../usersSlice/index.js';
8
6
  import { OrganizationState } from '../organizationSlice/types.js';
9
7
  import { OnboardingApproach } from '../onboardingSlice/index.js';
10
- import * as _northern_tech_types_Alert from '@northern.tech/types/Alert';
8
+ import * as _northern_tech_types_types_gen from '@northern.tech/types/types.gen';
11
9
  import { Deployment, DeploymentByStatus, DeploymentConfig, SelectionState } from '../deploymentsSlice/index.js';
12
10
  import { DeviceSliceType } from '../devicesSlice/index.js';
13
11
  import { SearchState, SentryConfig, SnackbarContent, Upload } from '../appSlice/index.js';
@@ -80,10 +78,10 @@ declare const getReleasesList: ((state: {
80
78
  total: number;
81
79
  };
82
80
  byDeviceId: {
83
- alerts?: Record<string, _northern_tech_types_Alert.Alert & {
81
+ alerts?: Record<string, _northern_tech_types_types_gen.Alert & {
84
82
  fullName?: string;
85
83
  }>;
86
- latest?: Record<string, _northern_tech_types_Alert.Alert & {
84
+ latest?: Record<string, _northern_tech_types_types_gen.Alert & {
87
85
  fullName?: string;
88
86
  }>;
89
87
  };
@@ -162,18 +160,18 @@ declare const getReleasesList: ((state: {
162
160
  userSettings: UserSettings;
163
161
  userSettingsInitialized: boolean;
164
162
  };
165
- }) => Release$1[]) & {
163
+ }) => ReleaseV2[]) & {
166
164
  clearCache: () => void;
167
165
  resultsCount: () => number;
168
166
  resetResultsCount: () => void;
169
167
  } & {
170
- resultFunc: (resultFuncArgs_0: Record<string, Release>, resultFuncArgs_1: string[], resultFuncArgs_2: {}) => Release$1[];
171
- memoizedResultFunc: ((resultFuncArgs_0: Record<string, Release>, resultFuncArgs_1: string[], resultFuncArgs_2: {}) => Release$1[]) & {
168
+ resultFunc: (resultFuncArgs_0: Record<string, Release>, resultFuncArgs_1: string[], resultFuncArgs_2: {}) => ReleaseV2[];
169
+ memoizedResultFunc: ((resultFuncArgs_0: Record<string, Release>, resultFuncArgs_1: string[], resultFuncArgs_2: {}) => ReleaseV2[]) & {
172
170
  clearCache: () => void;
173
171
  resultsCount: () => number;
174
172
  resetResultsCount: () => void;
175
173
  };
176
- lastResult: () => Release$1[];
174
+ lastResult: () => ReleaseV2[];
177
175
  dependencies: [(state: RootState) => Record<string, Release>, (state: RootState) => string[], () => {}];
178
176
  recomputations: () => number;
179
177
  resetRecomputations: () => void;
@@ -234,10 +232,10 @@ declare const getReleaseTagsById: ((state: {
234
232
  total: number;
235
233
  };
236
234
  byDeviceId: {
237
- alerts?: Record<string, _northern_tech_types_Alert.Alert & {
235
+ alerts?: Record<string, _northern_tech_types_types_gen.Alert & {
238
236
  fullName?: string;
239
237
  }>;
240
- latest?: Record<string, _northern_tech_types_Alert.Alert & {
238
+ latest?: Record<string, _northern_tech_types_types_gen.Alert & {
241
239
  fullName?: string;
242
240
  }>;
243
241
  };
@@ -388,10 +386,10 @@ declare const getHasReleases: ((state: {
388
386
  total: number;
389
387
  };
390
388
  byDeviceId: {
391
- alerts?: Record<string, _northern_tech_types_Alert.Alert & {
389
+ alerts?: Record<string, _northern_tech_types_types_gen.Alert & {
392
390
  fullName?: string;
393
391
  }>;
394
- latest?: Record<string, _northern_tech_types_Alert.Alert & {
392
+ latest?: Record<string, _northern_tech_types_types_gen.Alert & {
395
393
  fullName?: string;
396
394
  }>;
397
395
  };
@@ -542,10 +540,10 @@ declare const getSelectedRelease: ((state: {
542
540
  total: number;
543
541
  };
544
542
  byDeviceId: {
545
- alerts?: Record<string, _northern_tech_types_Alert.Alert & {
543
+ alerts?: Record<string, _northern_tech_types_types_gen.Alert & {
546
544
  fullName?: string;
547
545
  }>;
548
- latest?: Record<string, _northern_tech_types_Alert.Alert & {
546
+ latest?: Record<string, _northern_tech_types_types_gen.Alert & {
549
547
  fullName?: string;
550
548
  }>;
551
549
  };
@@ -696,10 +694,10 @@ declare const getSelectedReleases: ((state: {
696
694
  total: number;
697
695
  };
698
696
  byDeviceId: {
699
- alerts?: Record<string, _northern_tech_types_Alert.Alert & {
697
+ alerts?: Record<string, _northern_tech_types_types_gen.Alert & {
700
698
  fullName?: string;
701
699
  }>;
702
- latest?: Record<string, _northern_tech_types_Alert.Alert & {
700
+ latest?: Record<string, _northern_tech_types_types_gen.Alert & {
703
701
  fullName?: string;
704
702
  }>;
705
703
  };
@@ -778,18 +776,18 @@ declare const getSelectedReleases: ((state: {
778
776
  userSettings: UserSettings;
779
777
  userSettingsInitialized: boolean;
780
778
  };
781
- }) => Release$1[]) & {
779
+ }) => ReleaseV2[]) & {
782
780
  clearCache: () => void;
783
781
  resultsCount: () => number;
784
782
  resetResultsCount: () => void;
785
783
  } & {
786
- resultFunc: (resultFuncArgs_0: ReleasesList, resultFuncArgs_1: Release$1[]) => Release$1[];
787
- memoizedResultFunc: ((resultFuncArgs_0: ReleasesList, resultFuncArgs_1: Release$1[]) => Release$1[]) & {
784
+ resultFunc: (resultFuncArgs_0: ReleasesList, resultFuncArgs_1: ReleaseV2[]) => ReleaseV2[];
785
+ memoizedResultFunc: ((resultFuncArgs_0: ReleasesList, resultFuncArgs_1: ReleaseV2[]) => ReleaseV2[]) & {
788
786
  clearCache: () => void;
789
787
  resultsCount: () => number;
790
788
  resetResultsCount: () => void;
791
789
  };
792
- lastResult: () => Release$1[];
790
+ lastResult: () => ReleaseV2[];
793
791
  dependencies: [(state: RootState) => ReleasesList, ((state: {
794
792
  app: {
795
793
  cancelSource: any;
@@ -841,10 +839,10 @@ declare const getSelectedReleases: ((state: {
841
839
  total: number;
842
840
  };
843
841
  byDeviceId: {
844
- alerts?: Record<string, _northern_tech_types_Alert.Alert & {
842
+ alerts?: Record<string, _northern_tech_types_types_gen.Alert & {
845
843
  fullName?: string;
846
844
  }>;
847
- latest?: Record<string, _northern_tech_types_Alert.Alert & {
845
+ latest?: Record<string, _northern_tech_types_types_gen.Alert & {
848
846
  fullName?: string;
849
847
  }>;
850
848
  };
@@ -923,18 +921,18 @@ declare const getSelectedReleases: ((state: {
923
921
  userSettings: UserSettings;
924
922
  userSettingsInitialized: boolean;
925
923
  };
926
- }) => Release$1[]) & {
924
+ }) => ReleaseV2[]) & {
927
925
  clearCache: () => void;
928
926
  resultsCount: () => number;
929
927
  resetResultsCount: () => void;
930
928
  } & {
931
- resultFunc: (resultFuncArgs_0: Record<string, Release>, resultFuncArgs_1: string[], resultFuncArgs_2: {}) => Release$1[];
932
- memoizedResultFunc: ((resultFuncArgs_0: Record<string, Release>, resultFuncArgs_1: string[], resultFuncArgs_2: {}) => Release$1[]) & {
929
+ resultFunc: (resultFuncArgs_0: Record<string, Release>, resultFuncArgs_1: string[], resultFuncArgs_2: {}) => ReleaseV2[];
930
+ memoizedResultFunc: ((resultFuncArgs_0: Record<string, Release>, resultFuncArgs_1: string[], resultFuncArgs_2: {}) => ReleaseV2[]) & {
933
931
  clearCache: () => void;
934
932
  resultsCount: () => number;
935
933
  resetResultsCount: () => void;
936
934
  };
937
- lastResult: () => Release$1[];
935
+ lastResult: () => ReleaseV2[];
938
936
  dependencies: [(state: RootState) => Record<string, Release>, (state: RootState) => string[], () => {}];
939
937
  recomputations: () => number;
940
938
  resetRecomputations: () => void;
@@ -959,20 +957,20 @@ declare const getDeltaJobsListState: (state: RootState) => {
959
957
  sort?: _northern_tech_utils_constants.SortOptions;
960
958
  total: 0;
961
959
  };
962
- declare const getDeltaJobsById: (state: RootState) => Record<string, _northern_tech_types_DeltaJobDetailsItem.DeltaJobDetailsItem & _northern_tech_types_DeltaJobsListItem.DeltaJobsListItem>;
963
- declare const getDeltaJobById: ((state: any, jobId: any) => _northern_tech_types_DeltaJobDetailsItem.DeltaJobDetailsItem & _northern_tech_types_DeltaJobsListItem.DeltaJobsListItem) & {
960
+ declare const getDeltaJobsById: (state: RootState) => Record<string, any>;
961
+ declare const getDeltaJobById: ((state: any, jobId: any) => any) & {
964
962
  clearCache: () => void;
965
963
  resultsCount: () => number;
966
964
  resetResultsCount: () => void;
967
965
  } & {
968
- resultFunc: (resultFuncArgs_0: Record<string, _northern_tech_types_DeltaJobDetailsItem.DeltaJobDetailsItem & _northern_tech_types_DeltaJobsListItem.DeltaJobsListItem>, resultFuncArgs_1: any) => _northern_tech_types_DeltaJobDetailsItem.DeltaJobDetailsItem & _northern_tech_types_DeltaJobsListItem.DeltaJobsListItem;
969
- memoizedResultFunc: ((resultFuncArgs_0: Record<string, _northern_tech_types_DeltaJobDetailsItem.DeltaJobDetailsItem & _northern_tech_types_DeltaJobsListItem.DeltaJobsListItem>, resultFuncArgs_1: any) => _northern_tech_types_DeltaJobDetailsItem.DeltaJobDetailsItem & _northern_tech_types_DeltaJobsListItem.DeltaJobsListItem) & {
966
+ resultFunc: (resultFuncArgs_0: Record<string, any>, resultFuncArgs_1: any) => any;
967
+ memoizedResultFunc: ((resultFuncArgs_0: Record<string, any>, resultFuncArgs_1: any) => any) & {
970
968
  clearCache: () => void;
971
969
  resultsCount: () => number;
972
970
  resetResultsCount: () => void;
973
971
  };
974
- lastResult: () => _northern_tech_types_DeltaJobDetailsItem.DeltaJobDetailsItem & _northern_tech_types_DeltaJobsListItem.DeltaJobsListItem;
975
- dependencies: [(state: RootState) => Record<string, _northern_tech_types_DeltaJobDetailsItem.DeltaJobDetailsItem & _northern_tech_types_DeltaJobsListItem.DeltaJobsListItem>, (_: any, jobId: any) => any];
972
+ lastResult: () => any;
973
+ dependencies: [(state: RootState) => Record<string, any>, (_: any, jobId: any) => any];
976
974
  recomputations: () => number;
977
975
  resetRecomputations: () => void;
978
976
  dependencyRecomputations: () => number;
@@ -1032,10 +1030,10 @@ declare const getSelectedJob: ((state: {
1032
1030
  total: number;
1033
1031
  };
1034
1032
  byDeviceId: {
1035
- alerts?: Record<string, _northern_tech_types_Alert.Alert & {
1033
+ alerts?: Record<string, _northern_tech_types_types_gen.Alert & {
1036
1034
  fullName?: string;
1037
1035
  }>;
1038
- latest?: Record<string, _northern_tech_types_Alert.Alert & {
1036
+ latest?: Record<string, _northern_tech_types_types_gen.Alert & {
1039
1037
  fullName?: string;
1040
1038
  }>;
1041
1039
  };
@@ -1114,19 +1112,19 @@ declare const getSelectedJob: ((state: {
1114
1112
  userSettings: UserSettings;
1115
1113
  userSettingsInitialized: boolean;
1116
1114
  };
1117
- }) => _northern_tech_types_DeltaJobDetailsItem.DeltaJobDetailsItem & _northern_tech_types_DeltaJobsListItem.DeltaJobsListItem) & {
1115
+ }) => any) & {
1118
1116
  clearCache: () => void;
1119
1117
  resultsCount: () => number;
1120
1118
  resetResultsCount: () => void;
1121
1119
  } & {
1122
- resultFunc: (resultFuncArgs_0: Record<string, _northern_tech_types_DeltaJobDetailsItem.DeltaJobDetailsItem & _northern_tech_types_DeltaJobsListItem.DeltaJobsListItem>, resultFuncArgs_1: string | null) => _northern_tech_types_DeltaJobDetailsItem.DeltaJobDetailsItem & _northern_tech_types_DeltaJobsListItem.DeltaJobsListItem;
1123
- memoizedResultFunc: ((resultFuncArgs_0: Record<string, _northern_tech_types_DeltaJobDetailsItem.DeltaJobDetailsItem & _northern_tech_types_DeltaJobsListItem.DeltaJobsListItem>, resultFuncArgs_1: string | null) => _northern_tech_types_DeltaJobDetailsItem.DeltaJobDetailsItem & _northern_tech_types_DeltaJobsListItem.DeltaJobsListItem) & {
1120
+ resultFunc: (resultFuncArgs_0: Record<string, any>, resultFuncArgs_1: string | null) => any;
1121
+ memoizedResultFunc: ((resultFuncArgs_0: Record<string, any>, resultFuncArgs_1: string | null) => any) & {
1124
1122
  clearCache: () => void;
1125
1123
  resultsCount: () => number;
1126
1124
  resetResultsCount: () => void;
1127
1125
  };
1128
- lastResult: () => _northern_tech_types_DeltaJobDetailsItem.DeltaJobDetailsItem & _northern_tech_types_DeltaJobsListItem.DeltaJobsListItem;
1129
- dependencies: [(state: RootState) => Record<string, _northern_tech_types_DeltaJobDetailsItem.DeltaJobDetailsItem & _northern_tech_types_DeltaJobsListItem.DeltaJobsListItem>, (state: RootState) => string | null];
1126
+ lastResult: () => any;
1127
+ dependencies: [(state: RootState) => Record<string, any>, (state: RootState) => string | null];
1130
1128
  recomputations: () => number;
1131
1129
  resetRecomputations: () => void;
1132
1130
  dependencyRecomputations: () => number;