@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.
- package/dist/actions.cjs.map +1 -1
- package/dist/actions.d.cts +8 -13
- package/dist/actions.d.ts +8 -13
- package/dist/actions.js +10 -10
- package/dist/api/general-api.cjs +4 -5
- package/dist/api/general-api.cjs.map +1 -1
- package/dist/api/general-api.js +4 -4
- package/dist/api/users-api.cjs +4 -5
- package/dist/api/users-api.cjs.map +1 -1
- package/dist/api/users-api.js +5 -5
- package/dist/appSlice/constants.cjs +1 -1
- package/dist/appSlice/constants.cjs.map +1 -1
- package/dist/appSlice/constants.d.cts +1 -1
- package/dist/appSlice/constants.d.ts +1 -1
- package/dist/appSlice/constants.js +1 -1
- package/dist/appSlice/index.js +3 -3
- package/dist/appSlice/mocks.js +3 -3
- package/dist/appSlice/selectors.d.cts +9 -9
- package/dist/appSlice/selectors.d.ts +9 -9
- package/dist/appSlice/thunks.cjs +8 -7
- package/dist/appSlice/thunks.cjs.map +1 -1
- package/dist/appSlice/thunks.d.cts +1 -1
- package/dist/appSlice/thunks.d.ts +1 -1
- package/dist/appSlice/thunks.js +26 -26
- package/dist/auth.cjs +4 -5
- package/dist/auth.cjs.map +1 -1
- package/dist/auth.js +3 -3
- package/dist/{chunk-DYN7AU7R.js → chunk-2ASLHSBV.js} +9 -9
- package/dist/{chunk-HLTP624H.js → chunk-2M5W3IDP.js} +2 -2
- package/dist/{chunk-J74LNK6P.js → chunk-3ECSADAW.js} +13 -13
- package/dist/{chunk-W37ETKI6.js → chunk-67GS7ERY.js} +2 -2
- package/dist/{chunk-CWZKWW74.js → chunk-7BKDELUQ.js} +2 -2
- package/dist/{chunk-ZZ3YDCYZ.js → chunk-B7GXA42G.js} +3 -3
- package/dist/{chunk-AVCIWAZB.js → chunk-CEH2D355.js} +2 -2
- package/dist/{chunk-5HYHE4HO.js → chunk-EIIFEV62.js} +2 -2
- package/dist/chunk-EIIFEV62.js.map +1 -0
- package/dist/{chunk-DE25YP6N.js → chunk-GN2HC6HW.js} +29 -28
- package/dist/chunk-GN2HC6HW.js.map +1 -0
- package/dist/{chunk-IY76MO6R.js → chunk-MVK6W7ZH.js} +2 -2
- package/dist/chunk-MVK6W7ZH.js.map +1 -0
- package/dist/{chunk-PY6ID7TL.js → chunk-N3XU7WJM.js} +2 -2
- package/dist/chunk-N3XU7WJM.js.map +1 -0
- package/dist/{chunk-DXJ2WS3N.js → chunk-PB36MEEN.js} +2 -2
- package/dist/{chunk-I6JE3OLT.js → chunk-PTQS3JDZ.js} +10 -10
- package/dist/{chunk-JOK26PI7.js → chunk-QPHDDTQC.js} +14 -13
- package/dist/chunk-QPHDDTQC.js.map +1 -0
- package/dist/{chunk-4DOSYAJY.js → chunk-RRL7OZHU.js} +2 -2
- package/dist/{chunk-KGSJ7CSA.js → chunk-RWGVRDFG.js} +2 -2
- package/dist/chunk-RWGVRDFG.js.map +1 -0
- package/dist/{chunk-BNSSPYCA.js → chunk-TL6KSTZZ.js} +3 -3
- package/dist/{chunk-VCTZ25Q5.js → chunk-TU4IVT3M.js} +14 -14
- package/dist/{chunk-4UJXT6RF.js → chunk-VIV6U46F.js} +6 -4
- package/dist/chunk-VIV6U46F.js.map +1 -0
- package/dist/{chunk-66NK2ZV2.js → chunk-W2RDUU5Q.js} +2 -2
- package/dist/{chunk-KJJ47UIO.js → chunk-WD7MIPCO.js} +2 -2
- package/dist/chunk-WD7MIPCO.js.map +1 -0
- package/dist/{chunk-JZXNRDO2.js → chunk-XLXLFSZA.js} +2 -2
- package/dist/{chunk-CEEXZF5E.js → chunk-XZDCXV4H.js} +3 -3
- package/dist/chunk-XZDCXV4H.js.map +1 -0
- package/dist/{chunk-MRXTMI6O.js → chunk-YEQ7D6AW.js} +5 -6
- package/dist/chunk-YEQ7D6AW.js.map +1 -0
- package/dist/{chunk-GRVTVLIZ.js → chunk-ZABYTBKG.js} +2 -2
- package/dist/commonConstants.cjs +4 -5
- package/dist/commonConstants.cjs.map +1 -1
- package/dist/commonConstants.d.cts +8 -8
- package/dist/commonConstants.d.ts +8 -8
- package/dist/commonConstants.js +2 -2
- package/dist/commonSelectors.cjs +6 -7
- package/dist/commonSelectors.cjs.map +1 -1
- package/dist/commonSelectors.d.cts +127 -138
- package/dist/commonSelectors.d.ts +127 -138
- package/dist/commonSelectors.js +10 -10
- package/dist/constants.cjs +5 -6
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.js +2 -2
- package/dist/deploymentsSlice/constants.cjs.map +1 -1
- package/dist/deploymentsSlice/constants.d.cts +2 -2
- package/dist/deploymentsSlice/constants.d.ts +2 -2
- package/dist/deploymentsSlice/constants.js +2 -2
- package/dist/deploymentsSlice/index.cjs.map +1 -1
- package/dist/deploymentsSlice/index.d.cts +5 -4
- package/dist/deploymentsSlice/index.d.ts +5 -4
- package/dist/deploymentsSlice/index.js +3 -3
- package/dist/deploymentsSlice/mocks.cjs.map +1 -1
- package/dist/deploymentsSlice/mocks.js +3 -3
- package/dist/deploymentsSlice/selectors.cjs.map +1 -1
- package/dist/deploymentsSlice/selectors.d.cts +3 -3
- package/dist/deploymentsSlice/selectors.d.ts +3 -3
- package/dist/deploymentsSlice/selectors.js +3 -3
- package/dist/deploymentsSlice/thunks.cjs +8 -7
- package/dist/deploymentsSlice/thunks.cjs.map +1 -1
- package/dist/deploymentsSlice/thunks.d.cts +3 -3
- package/dist/deploymentsSlice/thunks.d.ts +3 -3
- package/dist/deploymentsSlice/thunks.js +26 -26
- package/dist/devicesSlice/constants.js +2 -2
- package/dist/devicesSlice/index.cjs.map +1 -1
- package/dist/devicesSlice/index.d.cts +4 -4
- package/dist/devicesSlice/index.d.ts +4 -4
- package/dist/devicesSlice/index.js +3 -3
- package/dist/devicesSlice/mocks.cjs +4 -4
- package/dist/devicesSlice/mocks.cjs.map +1 -1
- package/dist/devicesSlice/mocks.js +7 -7
- package/dist/devicesSlice/mocks.js.map +1 -1
- package/dist/devicesSlice/selectors.cjs +4 -5
- package/dist/devicesSlice/selectors.cjs.map +1 -1
- package/dist/devicesSlice/selectors.d.cts +23 -23
- package/dist/devicesSlice/selectors.d.ts +23 -23
- package/dist/devicesSlice/selectors.js +3 -3
- package/dist/devicesSlice/thunks.cjs +8 -7
- package/dist/devicesSlice/thunks.cjs.map +1 -1
- package/dist/devicesSlice/thunks.d.cts +5 -5
- package/dist/devicesSlice/thunks.d.ts +5 -5
- package/dist/devicesSlice/thunks.js +26 -26
- package/dist/liststatehook.cjs +4 -5
- package/dist/liststatehook.cjs.map +1 -1
- package/dist/liststatehook.js +3 -3
- package/dist/locationutils.cjs +4 -5
- package/dist/locationutils.cjs.map +1 -1
- package/dist/locationutils.js +3 -3
- package/dist/monitorSlice/index.js +3 -3
- package/dist/monitorSlice/mocks.js +3 -3
- package/dist/monitorSlice/thunks.cjs +6 -7
- package/dist/monitorSlice/thunks.cjs.map +1 -1
- package/dist/monitorSlice/thunks.d.cts +1 -1
- package/dist/monitorSlice/thunks.d.ts +1 -1
- package/dist/monitorSlice/thunks.js +22 -22
- package/dist/onboardingSlice/thunks.cjs +8 -7
- package/dist/onboardingSlice/thunks.cjs.map +1 -1
- package/dist/onboardingSlice/thunks.d.cts +1 -1
- package/dist/onboardingSlice/thunks.d.ts +1 -1
- package/dist/onboardingSlice/thunks.js +26 -26
- package/dist/organizationSlice/constants.js +2 -2
- package/dist/organizationSlice/index.js +3 -3
- package/dist/organizationSlice/mocks.d.cts +2 -2
- package/dist/organizationSlice/mocks.d.ts +2 -2
- package/dist/organizationSlice/mocks.js +3 -3
- package/dist/organizationSlice/selectors.cjs +4 -5
- package/dist/organizationSlice/selectors.cjs.map +1 -1
- package/dist/organizationSlice/selectors.d.cts +44 -48
- package/dist/organizationSlice/selectors.d.ts +44 -48
- package/dist/organizationSlice/selectors.js +3 -3
- package/dist/organizationSlice/thunks.cjs +10 -10
- package/dist/organizationSlice/thunks.cjs.map +1 -1
- package/dist/organizationSlice/thunks.d.cts +1 -1
- package/dist/organizationSlice/thunks.d.ts +1 -1
- package/dist/organizationSlice/thunks.js +26 -26
- package/dist/organizationSlice/types.cjs.map +1 -1
- package/dist/organizationSlice/types.d.cts +8 -30
- package/dist/organizationSlice/types.d.ts +8 -30
- package/dist/releasesSlice/index.cjs.map +1 -1
- package/dist/releasesSlice/index.d.cts +7 -5
- package/dist/releasesSlice/index.d.ts +7 -5
- package/dist/releasesSlice/index.js +3 -3
- package/dist/releasesSlice/mocks.cjs.map +1 -1
- package/dist/releasesSlice/mocks.d.cts +1 -3
- package/dist/releasesSlice/mocks.d.ts +1 -3
- package/dist/releasesSlice/mocks.js +3 -3
- package/dist/releasesSlice/selectors.cjs +4 -5
- package/dist/releasesSlice/selectors.cjs.map +1 -1
- package/dist/releasesSlice/selectors.d.cts +39 -41
- package/dist/releasesSlice/selectors.d.ts +39 -41
- package/dist/releasesSlice/selectors.js +4 -4
- package/dist/releasesSlice/thunks.cjs +10 -10
- package/dist/releasesSlice/thunks.cjs.map +1 -1
- package/dist/releasesSlice/thunks.d.cts +3 -3
- package/dist/releasesSlice/thunks.d.ts +3 -3
- package/dist/releasesSlice/thunks.js +23 -23
- package/dist/selectors.cjs +10 -8
- package/dist/selectors.cjs.map +1 -1
- package/dist/selectors.d.cts +2 -18
- package/dist/selectors.d.ts +2 -18
- package/dist/selectors.js +21 -19
- package/dist/sockethook.cjs +4 -5
- package/dist/sockethook.cjs.map +1 -1
- package/dist/sockethook.js +2 -2
- package/dist/store.cjs.map +1 -1
- package/dist/store.d.cts +11 -11
- package/dist/store.d.ts +11 -11
- package/dist/store.js +12 -12
- package/dist/storehooks.cjs +14 -13
- package/dist/storehooks.cjs.map +1 -1
- package/dist/storehooks.js +26 -26
- package/dist/thunks.cjs +14 -13
- package/dist/thunks.cjs.map +1 -1
- package/dist/thunks.d.cts +1 -1
- package/dist/thunks.d.ts +1 -1
- package/dist/thunks.js +26 -26
- package/dist/useDeploymentDevice.cjs +8 -7
- package/dist/useDeploymentDevice.cjs.map +1 -1
- package/dist/useDeploymentDevice.js +26 -26
- package/dist/usersSlice/constants.js +2 -2
- package/dist/usersSlice/index.js +3 -3
- package/dist/usersSlice/mocks.cjs +1 -0
- package/dist/usersSlice/mocks.cjs.map +1 -1
- package/dist/usersSlice/mocks.d.cts +3 -3
- package/dist/usersSlice/mocks.d.ts +3 -3
- package/dist/usersSlice/mocks.js +4 -3
- package/dist/usersSlice/mocks.js.map +1 -1
- package/dist/usersSlice/selectors.cjs +8 -6
- package/dist/usersSlice/selectors.cjs.map +1 -1
- package/dist/usersSlice/selectors.d.cts +33 -34
- package/dist/usersSlice/selectors.d.ts +33 -34
- package/dist/usersSlice/selectors.js +6 -4
- package/dist/usersSlice/thunks.cjs +8 -7
- package/dist/usersSlice/thunks.cjs.map +1 -1
- package/dist/usersSlice/thunks.d.cts +1 -1
- package/dist/usersSlice/thunks.d.ts +1 -1
- package/dist/usersSlice/thunks.js +26 -26
- package/dist/utils.cjs +4 -5
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.js +3 -3
- package/package.json +1 -1
- package/dist/chunk-4UJXT6RF.js.map +0 -1
- package/dist/chunk-5HYHE4HO.js.map +0 -1
- package/dist/chunk-CEEXZF5E.js.map +0 -1
- package/dist/chunk-DE25YP6N.js.map +0 -1
- package/dist/chunk-IY76MO6R.js.map +0 -1
- package/dist/chunk-JOK26PI7.js.map +0 -1
- package/dist/chunk-KGSJ7CSA.js.map +0 -1
- package/dist/chunk-KJJ47UIO.js.map +0 -1
- package/dist/chunk-MRXTMI6O.js.map +0 -1
- package/dist/chunk-PY6ID7TL.js.map +0 -1
- /package/dist/{chunk-DYN7AU7R.js.map → chunk-2ASLHSBV.js.map} +0 -0
- /package/dist/{chunk-HLTP624H.js.map → chunk-2M5W3IDP.js.map} +0 -0
- /package/dist/{chunk-J74LNK6P.js.map → chunk-3ECSADAW.js.map} +0 -0
- /package/dist/{chunk-W37ETKI6.js.map → chunk-67GS7ERY.js.map} +0 -0
- /package/dist/{chunk-CWZKWW74.js.map → chunk-7BKDELUQ.js.map} +0 -0
- /package/dist/{chunk-ZZ3YDCYZ.js.map → chunk-B7GXA42G.js.map} +0 -0
- /package/dist/{chunk-AVCIWAZB.js.map → chunk-CEH2D355.js.map} +0 -0
- /package/dist/{chunk-DXJ2WS3N.js.map → chunk-PB36MEEN.js.map} +0 -0
- /package/dist/{chunk-I6JE3OLT.js.map → chunk-PTQS3JDZ.js.map} +0 -0
- /package/dist/{chunk-4DOSYAJY.js.map → chunk-RRL7OZHU.js.map} +0 -0
- /package/dist/{chunk-BNSSPYCA.js.map → chunk-TL6KSTZZ.js.map} +0 -0
- /package/dist/{chunk-VCTZ25Q5.js.map → chunk-TU4IVT3M.js.map} +0 -0
- /package/dist/{chunk-66NK2ZV2.js.map → chunk-W2RDUU5Q.js.map} +0 -0
- /package/dist/{chunk-JZXNRDO2.js.map → chunk-XLXLFSZA.js.map} +0 -0
- /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 'Shared access policies' 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 'Shared access policies' 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":"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,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,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 {
|
|
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
|
|
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,
|
|
81
|
+
alerts?: Record<string, _northern_tech_types_types_gen.Alert & {
|
|
84
82
|
fullName?: string;
|
|
85
83
|
}>;
|
|
86
|
-
latest?: Record<string,
|
|
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
|
-
}) =>
|
|
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: {}) =>
|
|
171
|
-
memoizedResultFunc: ((resultFuncArgs_0: Record<string, Release>, resultFuncArgs_1: string[], resultFuncArgs_2: {}) =>
|
|
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: () =>
|
|
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,
|
|
235
|
+
alerts?: Record<string, _northern_tech_types_types_gen.Alert & {
|
|
238
236
|
fullName?: string;
|
|
239
237
|
}>;
|
|
240
|
-
latest?: Record<string,
|
|
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,
|
|
389
|
+
alerts?: Record<string, _northern_tech_types_types_gen.Alert & {
|
|
392
390
|
fullName?: string;
|
|
393
391
|
}>;
|
|
394
|
-
latest?: Record<string,
|
|
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,
|
|
543
|
+
alerts?: Record<string, _northern_tech_types_types_gen.Alert & {
|
|
546
544
|
fullName?: string;
|
|
547
545
|
}>;
|
|
548
|
-
latest?: Record<string,
|
|
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,
|
|
697
|
+
alerts?: Record<string, _northern_tech_types_types_gen.Alert & {
|
|
700
698
|
fullName?: string;
|
|
701
699
|
}>;
|
|
702
|
-
latest?: Record<string,
|
|
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
|
-
}) =>
|
|
779
|
+
}) => ReleaseV2[]) & {
|
|
782
780
|
clearCache: () => void;
|
|
783
781
|
resultsCount: () => number;
|
|
784
782
|
resetResultsCount: () => void;
|
|
785
783
|
} & {
|
|
786
|
-
resultFunc: (resultFuncArgs_0: ReleasesList, resultFuncArgs_1:
|
|
787
|
-
memoizedResultFunc: ((resultFuncArgs_0: ReleasesList, resultFuncArgs_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: () =>
|
|
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,
|
|
842
|
+
alerts?: Record<string, _northern_tech_types_types_gen.Alert & {
|
|
845
843
|
fullName?: string;
|
|
846
844
|
}>;
|
|
847
|
-
latest?: Record<string,
|
|
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
|
-
}) =>
|
|
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: {}) =>
|
|
932
|
-
memoizedResultFunc: ((resultFuncArgs_0: Record<string, Release>, resultFuncArgs_1: string[], resultFuncArgs_2: {}) =>
|
|
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: () =>
|
|
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,
|
|
963
|
-
declare const getDeltaJobById: ((state: any, jobId: any) =>
|
|
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,
|
|
969
|
-
memoizedResultFunc: ((resultFuncArgs_0: Record<string,
|
|
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: () =>
|
|
975
|
-
dependencies: [(state: RootState) => Record<string,
|
|
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,
|
|
1033
|
+
alerts?: Record<string, _northern_tech_types_types_gen.Alert & {
|
|
1036
1034
|
fullName?: string;
|
|
1037
1035
|
}>;
|
|
1038
|
-
latest?: Record<string,
|
|
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
|
-
}) =>
|
|
1115
|
+
}) => any) & {
|
|
1118
1116
|
clearCache: () => void;
|
|
1119
1117
|
resultsCount: () => number;
|
|
1120
1118
|
resetResultsCount: () => void;
|
|
1121
1119
|
} & {
|
|
1122
|
-
resultFunc: (resultFuncArgs_0: Record<string,
|
|
1123
|
-
memoizedResultFunc: ((resultFuncArgs_0: Record<string,
|
|
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: () =>
|
|
1129
|
-
dependencies: [(state: RootState) => Record<string,
|
|
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 {
|
|
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
|
|
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,
|
|
81
|
+
alerts?: Record<string, _northern_tech_types_types_gen.Alert & {
|
|
84
82
|
fullName?: string;
|
|
85
83
|
}>;
|
|
86
|
-
latest?: Record<string,
|
|
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
|
-
}) =>
|
|
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: {}) =>
|
|
171
|
-
memoizedResultFunc: ((resultFuncArgs_0: Record<string, Release>, resultFuncArgs_1: string[], resultFuncArgs_2: {}) =>
|
|
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: () =>
|
|
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,
|
|
235
|
+
alerts?: Record<string, _northern_tech_types_types_gen.Alert & {
|
|
238
236
|
fullName?: string;
|
|
239
237
|
}>;
|
|
240
|
-
latest?: Record<string,
|
|
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,
|
|
389
|
+
alerts?: Record<string, _northern_tech_types_types_gen.Alert & {
|
|
392
390
|
fullName?: string;
|
|
393
391
|
}>;
|
|
394
|
-
latest?: Record<string,
|
|
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,
|
|
543
|
+
alerts?: Record<string, _northern_tech_types_types_gen.Alert & {
|
|
546
544
|
fullName?: string;
|
|
547
545
|
}>;
|
|
548
|
-
latest?: Record<string,
|
|
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,
|
|
697
|
+
alerts?: Record<string, _northern_tech_types_types_gen.Alert & {
|
|
700
698
|
fullName?: string;
|
|
701
699
|
}>;
|
|
702
|
-
latest?: Record<string,
|
|
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
|
-
}) =>
|
|
779
|
+
}) => ReleaseV2[]) & {
|
|
782
780
|
clearCache: () => void;
|
|
783
781
|
resultsCount: () => number;
|
|
784
782
|
resetResultsCount: () => void;
|
|
785
783
|
} & {
|
|
786
|
-
resultFunc: (resultFuncArgs_0: ReleasesList, resultFuncArgs_1:
|
|
787
|
-
memoizedResultFunc: ((resultFuncArgs_0: ReleasesList, resultFuncArgs_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: () =>
|
|
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,
|
|
842
|
+
alerts?: Record<string, _northern_tech_types_types_gen.Alert & {
|
|
845
843
|
fullName?: string;
|
|
846
844
|
}>;
|
|
847
|
-
latest?: Record<string,
|
|
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
|
-
}) =>
|
|
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: {}) =>
|
|
932
|
-
memoizedResultFunc: ((resultFuncArgs_0: Record<string, Release>, resultFuncArgs_1: string[], resultFuncArgs_2: {}) =>
|
|
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: () =>
|
|
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,
|
|
963
|
-
declare const getDeltaJobById: ((state: any, jobId: any) =>
|
|
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,
|
|
969
|
-
memoizedResultFunc: ((resultFuncArgs_0: Record<string,
|
|
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: () =>
|
|
975
|
-
dependencies: [(state: RootState) => Record<string,
|
|
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,
|
|
1033
|
+
alerts?: Record<string, _northern_tech_types_types_gen.Alert & {
|
|
1036
1034
|
fullName?: string;
|
|
1037
1035
|
}>;
|
|
1038
|
-
latest?: Record<string,
|
|
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
|
-
}) =>
|
|
1115
|
+
}) => any) & {
|
|
1118
1116
|
clearCache: () => void;
|
|
1119
1117
|
resultsCount: () => number;
|
|
1120
1118
|
resetResultsCount: () => void;
|
|
1121
1119
|
} & {
|
|
1122
|
-
resultFunc: (resultFuncArgs_0: Record<string,
|
|
1123
|
-
memoizedResultFunc: ((resultFuncArgs_0: Record<string,
|
|
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: () =>
|
|
1129
|
-
dependencies: [(state: RootState) => Record<string,
|
|
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;
|