@northern.tech/store 0.17.0 → 0.19.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 (68) hide show
  1. package/dist/actions.js +4 -4
  2. package/dist/appSlice/thunks.cjs +21 -2
  3. package/dist/appSlice/thunks.cjs.map +1 -1
  4. package/dist/appSlice/thunks.js +10 -10
  5. package/dist/{chunk-QHGAJE7K.js → chunk-GAHFKM3N.js} +7 -7
  6. package/dist/{chunk-76GD35G3.js → chunk-QFYSFHAF.js} +19 -19
  7. package/dist/{chunk-GL634FKF.js → chunk-RJRZXDVT.js} +8 -8
  8. package/dist/{chunk-E2UO6BJ3.js → chunk-RVAERI6U.js} +9 -9
  9. package/dist/{chunk-JDSAICR3.js → chunk-TJBX7YHM.js} +29 -8
  10. package/dist/{chunk-JDSAICR3.js.map → chunk-TJBX7YHM.js.map} +1 -1
  11. package/dist/{chunk-QXS7I6BE.js → chunk-XC7DABLM.js} +7 -7
  12. package/dist/commonSelectors.cjs +31 -0
  13. package/dist/commonSelectors.cjs.map +1 -1
  14. package/dist/commonSelectors.d.cts +147 -1
  15. package/dist/commonSelectors.d.ts +147 -1
  16. package/dist/commonSelectors.js +4 -2
  17. package/dist/deploymentsSlice/thunks.cjs +21 -2
  18. package/dist/deploymentsSlice/thunks.cjs.map +1 -1
  19. package/dist/deploymentsSlice/thunks.js +10 -10
  20. package/dist/devicesSlice/thunks.cjs +21 -2
  21. package/dist/devicesSlice/thunks.cjs.map +1 -1
  22. package/dist/devicesSlice/thunks.js +10 -10
  23. package/dist/liststatehook.cjs +3 -1
  24. package/dist/liststatehook.cjs.map +1 -1
  25. package/dist/liststatehook.js +4 -2
  26. package/dist/liststatehook.js.map +1 -1
  27. package/dist/monitorSlice/thunks.cjs +19 -0
  28. package/dist/monitorSlice/thunks.cjs.map +1 -1
  29. package/dist/monitorSlice/thunks.js +8 -8
  30. package/dist/onboardingSlice/thunks.cjs +21 -2
  31. package/dist/onboardingSlice/thunks.cjs.map +1 -1
  32. package/dist/onboardingSlice/thunks.js +10 -10
  33. package/dist/organizationSlice/thunks.cjs +23 -4
  34. package/dist/organizationSlice/thunks.cjs.map +1 -1
  35. package/dist/organizationSlice/thunks.js +10 -10
  36. package/dist/releasesSlice/mocks.cjs +1 -1
  37. package/dist/releasesSlice/mocks.cjs.map +1 -1
  38. package/dist/releasesSlice/mocks.d.cts +3 -1
  39. package/dist/releasesSlice/mocks.d.ts +3 -1
  40. package/dist/releasesSlice/mocks.js +1 -1
  41. package/dist/releasesSlice/mocks.js.map +1 -1
  42. package/dist/releasesSlice/thunks.cjs +19 -0
  43. package/dist/releasesSlice/thunks.cjs.map +1 -1
  44. package/dist/releasesSlice/thunks.js +8 -8
  45. package/dist/selectors.cjs +29 -0
  46. package/dist/selectors.cjs.map +1 -1
  47. package/dist/selectors.d.cts +1 -1
  48. package/dist/selectors.d.ts +1 -1
  49. package/dist/selectors.js +13 -11
  50. package/dist/store.js +5 -5
  51. package/dist/storehooks.cjs +26 -7
  52. package/dist/storehooks.cjs.map +1 -1
  53. package/dist/storehooks.js +11 -11
  54. package/dist/thunks.cjs +23 -4
  55. package/dist/thunks.cjs.map +1 -1
  56. package/dist/thunks.js +11 -11
  57. package/dist/useDeploymentDevice.cjs +21 -2
  58. package/dist/useDeploymentDevice.cjs.map +1 -1
  59. package/dist/useDeploymentDevice.js +12 -12
  60. package/dist/usersSlice/thunks.cjs +21 -2
  61. package/dist/usersSlice/thunks.cjs.map +1 -1
  62. package/dist/usersSlice/thunks.js +10 -10
  63. package/package.json +1 -1
  64. /package/dist/{chunk-QHGAJE7K.js.map → chunk-GAHFKM3N.js.map} +0 -0
  65. /package/dist/{chunk-76GD35G3.js.map → chunk-QFYSFHAF.js.map} +0 -0
  66. /package/dist/{chunk-GL634FKF.js.map → chunk-RJRZXDVT.js.map} +0 -0
  67. /package/dist/{chunk-E2UO6BJ3.js.map → chunk-RVAERI6U.js.map} +0 -0
  68. /package/dist/{chunk-QXS7I6BE.js.map → chunk-XC7DABLM.js.map} +0 -0
@@ -38,33 +38,33 @@ import {
38
38
  startUpgrade,
39
39
  storeSsoConfig,
40
40
  tenantDataDivergedMessage
41
- } from "../chunk-76GD35G3.js";
41
+ } from "../chunk-QFYSFHAF.js";
42
+ import "../chunk-XC7DABLM.js";
43
+ import "../chunk-GAHFKM3N.js";
44
+ import "../chunk-RVAERI6U.js";
42
45
  import "../chunk-Y3DJIMEN.js";
43
- import "../chunk-QXS7I6BE.js";
44
- import "../chunk-QHGAJE7K.js";
45
46
  import "../chunk-5M6EUVNO.js";
46
- import "../chunk-E2UO6BJ3.js";
47
- import "../chunk-GL634FKF.js";
47
+ import "../chunk-RJRZXDVT.js";
48
+ import "../chunk-TRKA7XYU.js";
48
49
  import "../chunk-YR65C62H.js";
49
50
  import "../chunk-VCEFZTWS.js";
50
- import "../chunk-TRKA7XYU.js";
51
+ import "../chunk-PVCHKW35.js";
51
52
  import "../chunk-CQXDAXQF.js";
52
53
  import "../chunk-VODRLEDP.js";
53
- import "../chunk-PVCHKW35.js";
54
- import "../chunk-OLKM53RL.js";
55
54
  import "../chunk-6WJI4MOP.js";
55
+ import "../chunk-OLKM53RL.js";
56
56
  import "../chunk-FDSMCFV5.js";
57
57
  import "../chunk-53W2NRSL.js";
58
58
  import "../chunk-NMAXZ3ZY.js";
59
- import "../chunk-JDSAICR3.js";
59
+ import "../chunk-TJBX7YHM.js";
60
60
  import "../chunk-GEQ2QQEE.js";
61
61
  import "../chunk-QL6FN2JC.js";
62
62
  import "../chunk-3NOV7X4M.js";
63
63
  import "../chunk-YO22XLHI.js";
64
64
  import "../chunk-JIS4PA3R.js";
65
+ import "../chunk-WR6RQKF5.js";
65
66
  import "../chunk-O7DR57RN.js";
66
67
  import "../chunk-4BHM6WVX.js";
67
- import "../chunk-WR6RQKF5.js";
68
68
  import "../chunk-U5TPV5X5.js";
69
69
  import "../chunk-WWED74SG.js";
70
70
  import "../chunk-2DYA3X77.js";
@@ -184,7 +184,7 @@ var mockState = {
184
184
  description: "test description",
185
185
  device_types_compatible: [deviceTypes.qemu],
186
186
  modified: "2020-09-10T12:16:22.667Z",
187
- updates: [{ type_info: "testtype" }],
187
+ updates: [{ type_info: { type: "testtype" } }],
188
188
  artifact_depends: {
189
189
  device_type: [deviceTypes.qemu]
190
190
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/releasesSlice/mocks.ts","../../src/constants.ts","../../src/releasesSlice/index.ts"],"sourcesContent":["// Copyright 2025 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { DEVICE_LIST_DEFAULTS, SORTING_OPTIONS } from '../constants';\nimport { initialState } from './index';\n\nconst deviceTypes = { qemu: 'qemux86-64' };\n\nexport const mockState = {\n ...initialState,\n byId: {\n r1: {\n name: 'r1',\n artifacts: [\n {\n id: 'art1',\n description: 'test description',\n device_types_compatible: [deviceTypes.qemu],\n modified: '2020-09-10T12:16:22.667Z',\n updates: [{ type_info: 'testtype' }],\n artifact_depends: {\n device_type: [deviceTypes.qemu]\n },\n artifact_provides: {\n artifact_name: 'myapp',\n 'data-partition.myapp.version': 'v2020.10',\n list_of_fancy: [deviceTypes.qemu, 'x172']\n },\n clears_artifact_provides: ['data-partition.myapp.*']\n }\n ],\n device_types_compatible: [deviceTypes.qemu],\n modified: '2020-09-10T12:16:22.667Z',\n metaData: {}\n }\n },\n releasesList: {\n ...DEVICE_LIST_DEFAULTS,\n searchedIds: [],\n isLoading: false,\n releaseIds: ['r1'],\n selection: [],\n sort: {\n direction: SORTING_OPTIONS.desc,\n key: 'name'\n },\n searchTerm: '',\n searchTotal: 0,\n total: 1\n }\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 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 {\n ArtifactV1 as BackendArtifactV1,\n ArtifactV2 as BackendArtifactV2,\n ReleaseV1 as BackendReleaseV1,\n ReleaseV2 as BackendReleaseV2,\n Update as BackendUpdate,\n DeltaJobDetailsItem,\n DeltaJobsListItem\n} from '@northern.tech/types/MenderTypes';\nimport type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\n\nimport { DEVICE_LIST_DEFAULTS, SORTING_OPTIONS } from '../constants';\nimport type { SortOptions } from '../constants';\n\ntype Update = Omit<BackendUpdate, 'meta_data'>;\nexport type Artifact = Omit<BackendArtifactV1, 'updates'> &\n Omit<BackendArtifactV2, 'updates'> & { installCount?: number; updates?: Array<Update>; url?: string };\nexport type Release = BackendReleaseV1 & BackendReleaseV2 & { artifacts: Artifact[]; device_types_compatible: string[]; name: string };\n\nexport const sliceName = 'releases';\n\ntype EnhancedJobDetailsItem = DeltaJobDetailsItem & DeltaJobsListItem;\n\nexport type ReleasesList = {\n isLoading?: boolean;\n page: number;\n perPage: number;\n releaseIds: string[];\n searchedIds: string[];\n searchOnly?: boolean;\n searchTerm: string;\n searchTotal: number;\n selectedTags: string[];\n selection: number[];\n sort?: SortOptions;\n tab?: 'releases' | 'delta';\n total: number;\n type: string;\n};\n\nexport type ReleaseSliceType = {\n artifacts: never[];\n byId: Record<string, Release>;\n deltaJobs: Record<string, EnhancedJobDetailsItem>;\n deltaJobsList: {\n jobIds: string[];\n page: number;\n perPage: number;\n sort?: SortOptions;\n total: 0;\n };\n releasesList: ReleasesList;\n selectedJob: string | null;\n selectedRelease: string | null;\n tags: string[];\n updateTypes: string[];\n};\n\nexport const initialState: ReleaseSliceType = {\n /*\n * Return list of saved artifacts objects\n */\n /*\n * return list of artifacts where duplicate names are collated with device compatibility lists combined\n */\n // artifacts: AppStore.getCollatedArtifacts(AppStore.getArtifactsRepo()),\n artifacts: [],\n /*\n * Return list of saved release objects\n */\n byId: {\n /*\n [releaseName]: {\n artifacts: [\n {\n id: '',\n name: '',\n description: '',\n device_types_compatible: [],\n ...\n updates: [{\n files: [\n { size: 123, name: '' }\n ],\n type_info: { type: '' }\n }],\n url: '' // optional\n }\n ],\n modified: ''\n device_types_compatible,\n name: '',\n tags: ['something'],\n notes: ''\n }\n */\n },\n deltaJobs: {\n /*\n [jobId]: {\n id: '',\n ...\n }\n */\n },\n deltaJobsList: {\n ...DEVICE_LIST_DEFAULTS,\n jobIds: [],\n total: 0,\n sort: {\n direction: SORTING_OPTIONS.desc,\n key: 'started'\n }\n },\n releasesList: {\n ...DEVICE_LIST_DEFAULTS,\n searchedIds: [],\n releaseIds: [],\n selection: [],\n sort: {\n direction: SORTING_OPTIONS.desc,\n key: 'modified'\n },\n isLoading: undefined,\n searchTerm: '',\n searchTotal: 0,\n selectedTags: [],\n total: 0,\n type: ''\n },\n tags: [],\n updateTypes: [],\n selectedJob: null,\n /*\n * Return single release with corresponding Artifacts\n */\n selectedRelease: null\n};\n\nexport const releaseSlice = createSlice({\n name: sliceName,\n initialState,\n reducers: {\n receiveRelease: (state, action: PayloadAction<Release>) => {\n const { name } = action.payload;\n state.byId[name] = action.payload;\n },\n receiveReleases: (state, action: PayloadAction<Record<string, Release>>) => {\n state.byId = action.payload;\n },\n receiveReleaseTags: (state, action: PayloadAction<string[]>) => {\n state.tags = action.payload;\n },\n receiveReleaseTypes: (state, action: PayloadAction<string[]>) => {\n state.updateTypes = action.payload;\n },\n removeRelease: (state, action: PayloadAction<string>) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [action.payload]: toBeRemoved, ...byId } = state.byId;\n state.byId = byId;\n state.selectedRelease = action.payload === state.selectedRelease ? null : state.selectedRelease;\n },\n selectedRelease: (state, action: PayloadAction<string | null>) => {\n state.selectedRelease = action.payload;\n },\n setReleaseListState: (state, action) => {\n state.releasesList = action.payload;\n },\n receivedDeltaJobs: (state, action) => {\n const { jobs, total } = action.payload;\n state.deltaJobs = jobs.reduce(\n (accu, job) => {\n accu[job.id] = {\n ...accu[job.id],\n ...job\n };\n return accu;\n },\n { ...state.deltaJobs }\n );\n state.deltaJobsList.jobIds = jobs.map(job => job.id);\n state.deltaJobsList.total = total;\n },\n receivedDeltaJobDetails: (state, action) => {\n const job: DeltaJobDetailsItem & { id: string } = action.payload;\n state.deltaJobs[job.id] = {\n ...state.deltaJobs[job.id],\n ...job\n };\n },\n setDeltaJobsListState: (state, action) => {\n state.deltaJobsList = { ...state.deltaJobsList, ...action.payload };\n },\n setSelectedJob: (state, action) => {\n state.selectedJob = action.payload;\n }\n }\n});\n\nexport const actions = releaseSlice.actions;\nexport default releaseSlice.reducer;\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/releasesSlice/mocks.ts","../../src/constants.ts","../../src/releasesSlice/index.ts"],"sourcesContent":["// Copyright 2025 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { DEVICE_LIST_DEFAULTS, SORTING_OPTIONS } from '../constants';\nimport { initialState } from './index';\n\nconst deviceTypes = { qemu: 'qemux86-64' };\n\nexport const mockState = {\n ...initialState,\n byId: {\n r1: {\n name: 'r1',\n artifacts: [\n {\n id: 'art1',\n description: 'test description',\n device_types_compatible: [deviceTypes.qemu],\n modified: '2020-09-10T12:16:22.667Z',\n updates: [{ type_info: { type: 'testtype' } }],\n artifact_depends: {\n device_type: [deviceTypes.qemu]\n },\n artifact_provides: {\n artifact_name: 'myapp',\n 'data-partition.myapp.version': 'v2020.10',\n list_of_fancy: [deviceTypes.qemu, 'x172']\n },\n clears_artifact_provides: ['data-partition.myapp.*']\n }\n ],\n device_types_compatible: [deviceTypes.qemu],\n modified: '2020-09-10T12:16:22.667Z',\n metaData: {}\n }\n },\n releasesList: {\n ...DEVICE_LIST_DEFAULTS,\n searchedIds: [],\n isLoading: false,\n releaseIds: ['r1'],\n selection: [],\n sort: {\n direction: SORTING_OPTIONS.desc,\n key: 'name'\n },\n searchTerm: '',\n searchTotal: 0,\n total: 1\n }\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 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 {\n ArtifactV1 as BackendArtifactV1,\n ArtifactV2 as BackendArtifactV2,\n ReleaseV1 as BackendReleaseV1,\n ReleaseV2 as BackendReleaseV2,\n Update as BackendUpdate,\n DeltaJobDetailsItem,\n DeltaJobsListItem\n} from '@northern.tech/types/MenderTypes';\nimport type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\n\nimport { DEVICE_LIST_DEFAULTS, SORTING_OPTIONS } from '../constants';\nimport type { SortOptions } from '../constants';\n\ntype Update = Omit<BackendUpdate, 'meta_data'>;\nexport type Artifact = Omit<BackendArtifactV1, 'updates'> &\n Omit<BackendArtifactV2, 'updates'> & { installCount?: number; updates?: Array<Update>; url?: string };\nexport type Release = BackendReleaseV1 & BackendReleaseV2 & { artifacts: Artifact[]; device_types_compatible: string[]; name: string };\n\nexport const sliceName = 'releases';\n\ntype EnhancedJobDetailsItem = DeltaJobDetailsItem & DeltaJobsListItem;\n\nexport type ReleasesList = {\n isLoading?: boolean;\n page: number;\n perPage: number;\n releaseIds: string[];\n searchedIds: string[];\n searchOnly?: boolean;\n searchTerm: string;\n searchTotal: number;\n selectedTags: string[];\n selection: number[];\n sort?: SortOptions;\n tab?: 'releases' | 'delta';\n total: number;\n type: string;\n};\n\nexport type ReleaseSliceType = {\n artifacts: never[];\n byId: Record<string, Release>;\n deltaJobs: Record<string, EnhancedJobDetailsItem>;\n deltaJobsList: {\n jobIds: string[];\n page: number;\n perPage: number;\n sort?: SortOptions;\n total: 0;\n };\n releasesList: ReleasesList;\n selectedJob: string | null;\n selectedRelease: string | null;\n tags: string[];\n updateTypes: string[];\n};\n\nexport const initialState: ReleaseSliceType = {\n /*\n * Return list of saved artifacts objects\n */\n /*\n * return list of artifacts where duplicate names are collated with device compatibility lists combined\n */\n // artifacts: AppStore.getCollatedArtifacts(AppStore.getArtifactsRepo()),\n artifacts: [],\n /*\n * Return list of saved release objects\n */\n byId: {\n /*\n [releaseName]: {\n artifacts: [\n {\n id: '',\n name: '',\n description: '',\n device_types_compatible: [],\n ...\n updates: [{\n files: [\n { size: 123, name: '' }\n ],\n type_info: { type: '' }\n }],\n url: '' // optional\n }\n ],\n modified: ''\n device_types_compatible,\n name: '',\n tags: ['something'],\n notes: ''\n }\n */\n },\n deltaJobs: {\n /*\n [jobId]: {\n id: '',\n ...\n }\n */\n },\n deltaJobsList: {\n ...DEVICE_LIST_DEFAULTS,\n jobIds: [],\n total: 0,\n sort: {\n direction: SORTING_OPTIONS.desc,\n key: 'started'\n }\n },\n releasesList: {\n ...DEVICE_LIST_DEFAULTS,\n searchedIds: [],\n releaseIds: [],\n selection: [],\n sort: {\n direction: SORTING_OPTIONS.desc,\n key: 'modified'\n },\n isLoading: undefined,\n searchTerm: '',\n searchTotal: 0,\n selectedTags: [],\n total: 0,\n type: ''\n },\n tags: [],\n updateTypes: [],\n selectedJob: null,\n /*\n * Return single release with corresponding Artifacts\n */\n selectedRelease: null\n};\n\nexport const releaseSlice = createSlice({\n name: sliceName,\n initialState,\n reducers: {\n receiveRelease: (state, action: PayloadAction<Release>) => {\n const { name } = action.payload;\n state.byId[name] = action.payload;\n },\n receiveReleases: (state, action: PayloadAction<Record<string, Release>>) => {\n state.byId = action.payload;\n },\n receiveReleaseTags: (state, action: PayloadAction<string[]>) => {\n state.tags = action.payload;\n },\n receiveReleaseTypes: (state, action: PayloadAction<string[]>) => {\n state.updateTypes = action.payload;\n },\n removeRelease: (state, action: PayloadAction<string>) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [action.payload]: toBeRemoved, ...byId } = state.byId;\n state.byId = byId;\n state.selectedRelease = action.payload === state.selectedRelease ? null : state.selectedRelease;\n },\n selectedRelease: (state, action: PayloadAction<string | null>) => {\n state.selectedRelease = action.payload;\n },\n setReleaseListState: (state, action) => {\n state.releasesList = action.payload;\n },\n receivedDeltaJobs: (state, action) => {\n const { jobs, total } = action.payload;\n state.deltaJobs = jobs.reduce(\n (accu, job) => {\n accu[job.id] = {\n ...accu[job.id],\n ...job\n };\n return accu;\n },\n { ...state.deltaJobs }\n );\n state.deltaJobsList.jobIds = jobs.map(job => job.id);\n state.deltaJobsList.total = total;\n },\n receivedDeltaJobDetails: (state, action) => {\n const job: DeltaJobDetailsItem & { id: string } = action.payload;\n state.deltaJobs[job.id] = {\n ...state.deltaJobs[job.id],\n ...job\n };\n },\n setDeltaJobsListState: (state, action) => {\n state.deltaJobsList = { ...state.deltaJobsList, ...action.payload };\n },\n setSelectedJob: (state, action) => {\n state.selectedJob = action.payload;\n }\n }\n});\n\nexport const actions = releaseSlice.actions;\nexport default releaseSlice.reducer;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACcA,uBA8CO;;;ACrCP,qBAA4B;AAUrB,IAAM,YAAY;AAuClB,IAAM,eAAiC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ5C,WAAW,CAAC;AAAA;AAAA;AAAA;AAAA,EAIZ,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA0BN;AAAA,EACA,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOX;AAAA,EACA,eAAe;AAAA,IACb,GAAG;AAAA,IACH,QAAQ,CAAC;AAAA,IACT,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,WAAW,iCAAgB;AAAA,MAC3B,KAAK;AAAA,IACP;AAAA,EACF;AAAA,EACA,cAAc;AAAA,IACZ,GAAG;AAAA,IACH,aAAa,CAAC;AAAA,IACd,YAAY,CAAC;AAAA,IACb,WAAW,CAAC;AAAA,IACZ,MAAM;AAAA,MACJ,WAAW,iCAAgB;AAAA,MAC3B,KAAK;AAAA,IACP;AAAA,IACA,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,cAAc,CAAC;AAAA,IACf,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,MAAM,CAAC;AAAA,EACP,aAAa,CAAC;AAAA,EACd,aAAa;AAAA;AAAA;AAAA;AAAA,EAIb,iBAAiB;AACnB;AAEO,IAAM,mBAAe,4BAAY;AAAA,EACtC,MAAM;AAAA,EACN;AAAA,EACA,UAAU;AAAA,IACR,gBAAgB,CAAC,OAAO,WAAmC;AACzD,YAAM,EAAE,KAAK,IAAI,OAAO;AACxB,YAAM,KAAK,IAAI,IAAI,OAAO;AAAA,IAC5B;AAAA,IACA,iBAAiB,CAAC,OAAO,WAAmD;AAC1E,YAAM,OAAO,OAAO;AAAA,IACtB;AAAA,IACA,oBAAoB,CAAC,OAAO,WAAoC;AAC9D,YAAM,OAAO,OAAO;AAAA,IACtB;AAAA,IACA,qBAAqB,CAAC,OAAO,WAAoC;AAC/D,YAAM,cAAc,OAAO;AAAA,IAC7B;AAAA,IACA,eAAe,CAAC,OAAO,WAAkC;AAEvD,YAAM,EAAE,CAAC,OAAO,OAAO,GAAG,aAAa,GAAG,KAAK,IAAI,MAAM;AACzD,YAAM,OAAO;AACb,YAAM,kBAAkB,OAAO,YAAY,MAAM,kBAAkB,OAAO,MAAM;AAAA,IAClF;AAAA,IACA,iBAAiB,CAAC,OAAO,WAAyC;AAChE,YAAM,kBAAkB,OAAO;AAAA,IACjC;AAAA,IACA,qBAAqB,CAAC,OAAO,WAAW;AACtC,YAAM,eAAe,OAAO;AAAA,IAC9B;AAAA,IACA,mBAAmB,CAAC,OAAO,WAAW;AACpC,YAAM,EAAE,MAAM,MAAM,IAAI,OAAO;AAC/B,YAAM,YAAY,KAAK;AAAA,QACrB,CAAC,MAAM,QAAQ;AACb,eAAK,IAAI,EAAE,IAAI;AAAA,YACb,GAAG,KAAK,IAAI,EAAE;AAAA,YACd,GAAG;AAAA,UACL;AACA,iBAAO;AAAA,QACT;AAAA,QACA,EAAE,GAAG,MAAM,UAAU;AAAA,MACvB;AACA,YAAM,cAAc,SAAS,KAAK,IAAI,SAAO,IAAI,EAAE;AACnD,YAAM,cAAc,QAAQ;AAAA,IAC9B;AAAA,IACA,yBAAyB,CAAC,OAAO,WAAW;AAC1C,YAAM,MAA4C,OAAO;AACzD,YAAM,UAAU,IAAI,EAAE,IAAI;AAAA,QACxB,GAAG,MAAM,UAAU,IAAI,EAAE;AAAA,QACzB,GAAG;AAAA,MACL;AAAA,IACF;AAAA,IACA,uBAAuB,CAAC,OAAO,WAAW;AACxC,YAAM,gBAAgB,EAAE,GAAG,MAAM,eAAe,GAAG,OAAO,QAAQ;AAAA,IACpE;AAAA,IACA,gBAAgB,CAAC,OAAO,WAAW;AACjC,YAAM,cAAc,OAAO;AAAA,IAC7B;AAAA,EACF;AACF,CAAC;AAEM,IAAM,UAAU,aAAa;AACpC,IAAO,wBAAQ,aAAa;;;AFtM5B,IAAM,cAAc,EAAE,MAAM,aAAa;AAElC,IAAM,YAAY;AAAA,EACvB,GAAG;AAAA,EACH,MAAM;AAAA,IACJ,IAAI;AAAA,MACF,MAAM;AAAA,MACN,WAAW;AAAA,QACT;AAAA,UACE,IAAI;AAAA,UACJ,aAAa;AAAA,UACb,yBAAyB,CAAC,YAAY,IAAI;AAAA,UAC1C,UAAU;AAAA,UACV,SAAS,CAAC,EAAE,WAAW,EAAE,MAAM,WAAW,EAAE,CAAC;AAAA,UAC7C,kBAAkB;AAAA,YAChB,aAAa,CAAC,YAAY,IAAI;AAAA,UAChC;AAAA,UACA,mBAAmB;AAAA,YACjB,eAAe;AAAA,YACf,gCAAgC;AAAA,YAChC,eAAe,CAAC,YAAY,MAAM,MAAM;AAAA,UAC1C;AAAA,UACA,0BAA0B,CAAC,wBAAwB;AAAA,QACrD;AAAA,MACF;AAAA,MACA,yBAAyB,CAAC,YAAY,IAAI;AAAA,MAC1C,UAAU;AAAA,MACV,UAAU,CAAC;AAAA,IACb;AAAA,EACF;AAAA,EACA,cAAc;AAAA,IACZ,GAAG;AAAA,IACH,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,YAAY,CAAC,IAAI;AAAA,IACjB,WAAW,CAAC;AAAA,IACZ,MAAM;AAAA,MACJ,WAAW,iCAAgB;AAAA,MAC3B,KAAK;AAAA,IACP;AAAA,IACA,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,OAAO;AAAA,EACT;AACF;","names":[]}
@@ -11,7 +11,9 @@ declare const mockState: {
11
11
  device_types_compatible: string[];
12
12
  modified: string;
13
13
  updates: {
14
- type_info: string;
14
+ type_info: {
15
+ type: string;
16
+ };
15
17
  }[];
16
18
  artifact_depends: {
17
19
  device_type: string[];
@@ -11,7 +11,9 @@ declare const mockState: {
11
11
  device_types_compatible: string[];
12
12
  modified: string;
13
13
  updates: {
14
- type_info: string;
14
+ type_info: {
15
+ type: string;
16
+ };
15
17
  }[];
16
18
  artifact_depends: {
17
19
  device_type: string[];
@@ -23,7 +23,7 @@ var mockState = {
23
23
  description: "test description",
24
24
  device_types_compatible: [deviceTypes.qemu],
25
25
  modified: "2020-09-10T12:16:22.667Z",
26
- updates: [{ type_info: "testtype" }],
26
+ updates: [{ type_info: { type: "testtype" } }],
27
27
  artifact_depends: {
28
28
  device_type: [deviceTypes.qemu]
29
29
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/releasesSlice/mocks.ts"],"sourcesContent":["// Copyright 2025 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { DEVICE_LIST_DEFAULTS, SORTING_OPTIONS } from '../constants';\nimport { initialState } from './index';\n\nconst deviceTypes = { qemu: 'qemux86-64' };\n\nexport const mockState = {\n ...initialState,\n byId: {\n r1: {\n name: 'r1',\n artifacts: [\n {\n id: 'art1',\n description: 'test description',\n device_types_compatible: [deviceTypes.qemu],\n modified: '2020-09-10T12:16:22.667Z',\n updates: [{ type_info: 'testtype' }],\n artifact_depends: {\n device_type: [deviceTypes.qemu]\n },\n artifact_provides: {\n artifact_name: 'myapp',\n 'data-partition.myapp.version': 'v2020.10',\n list_of_fancy: [deviceTypes.qemu, 'x172']\n },\n clears_artifact_provides: ['data-partition.myapp.*']\n }\n ],\n device_types_compatible: [deviceTypes.qemu],\n modified: '2020-09-10T12:16:22.667Z',\n metaData: {}\n }\n },\n releasesList: {\n ...DEVICE_LIST_DEFAULTS,\n searchedIds: [],\n isLoading: false,\n releaseIds: ['r1'],\n selection: [],\n sort: {\n direction: SORTING_OPTIONS.desc,\n key: 'name'\n },\n searchTerm: '',\n searchTotal: 0,\n total: 1\n }\n};\n"],"mappings":";;;;;;;;;;;;;AAgBA,IAAM,cAAc,EAAE,MAAM,aAAa;AAElC,IAAM,YAAY;AAAA,EACvB,GAAG;AAAA,EACH,MAAM;AAAA,IACJ,IAAI;AAAA,MACF,MAAM;AAAA,MACN,WAAW;AAAA,QACT;AAAA,UACE,IAAI;AAAA,UACJ,aAAa;AAAA,UACb,yBAAyB,CAAC,YAAY,IAAI;AAAA,UAC1C,UAAU;AAAA,UACV,SAAS,CAAC,EAAE,WAAW,WAAW,CAAC;AAAA,UACnC,kBAAkB;AAAA,YAChB,aAAa,CAAC,YAAY,IAAI;AAAA,UAChC;AAAA,UACA,mBAAmB;AAAA,YACjB,eAAe;AAAA,YACf,gCAAgC;AAAA,YAChC,eAAe,CAAC,YAAY,MAAM,MAAM;AAAA,UAC1C;AAAA,UACA,0BAA0B,CAAC,wBAAwB;AAAA,QACrD;AAAA,MACF;AAAA,MACA,yBAAyB,CAAC,YAAY,IAAI;AAAA,MAC1C,UAAU;AAAA,MACV,UAAU,CAAC;AAAA,IACb;AAAA,EACF;AAAA,EACA,cAAc;AAAA,IACZ,GAAG;AAAA,IACH,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,YAAY,CAAC,IAAI;AAAA,IACjB,WAAW,CAAC;AAAA,IACZ,MAAM;AAAA,MACJ,WAAW,gBAAgB;AAAA,MAC3B,KAAK;AAAA,IACP;AAAA,IACA,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,OAAO;AAAA,EACT;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/releasesSlice/mocks.ts"],"sourcesContent":["// Copyright 2025 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { DEVICE_LIST_DEFAULTS, SORTING_OPTIONS } from '../constants';\nimport { initialState } from './index';\n\nconst deviceTypes = { qemu: 'qemux86-64' };\n\nexport const mockState = {\n ...initialState,\n byId: {\n r1: {\n name: 'r1',\n artifacts: [\n {\n id: 'art1',\n description: 'test description',\n device_types_compatible: [deviceTypes.qemu],\n modified: '2020-09-10T12:16:22.667Z',\n updates: [{ type_info: { type: 'testtype' } }],\n artifact_depends: {\n device_type: [deviceTypes.qemu]\n },\n artifact_provides: {\n artifact_name: 'myapp',\n 'data-partition.myapp.version': 'v2020.10',\n list_of_fancy: [deviceTypes.qemu, 'x172']\n },\n clears_artifact_provides: ['data-partition.myapp.*']\n }\n ],\n device_types_compatible: [deviceTypes.qemu],\n modified: '2020-09-10T12:16:22.667Z',\n metaData: {}\n }\n },\n releasesList: {\n ...DEVICE_LIST_DEFAULTS,\n searchedIds: [],\n isLoading: false,\n releaseIds: ['r1'],\n selection: [],\n sort: {\n direction: SORTING_OPTIONS.desc,\n key: 'name'\n },\n searchTerm: '',\n searchTotal: 0,\n total: 1\n }\n};\n"],"mappings":";;;;;;;;;;;;;AAgBA,IAAM,cAAc,EAAE,MAAM,aAAa;AAElC,IAAM,YAAY;AAAA,EACvB,GAAG;AAAA,EACH,MAAM;AAAA,IACJ,IAAI;AAAA,MACF,MAAM;AAAA,MACN,WAAW;AAAA,QACT;AAAA,UACE,IAAI;AAAA,UACJ,aAAa;AAAA,UACb,yBAAyB,CAAC,YAAY,IAAI;AAAA,UAC1C,UAAU;AAAA,UACV,SAAS,CAAC,EAAE,WAAW,EAAE,MAAM,WAAW,EAAE,CAAC;AAAA,UAC7C,kBAAkB;AAAA,YAChB,aAAa,CAAC,YAAY,IAAI;AAAA,UAChC;AAAA,UACA,mBAAmB;AAAA,YACjB,eAAe;AAAA,YACf,gCAAgC;AAAA,YAChC,eAAe,CAAC,YAAY,MAAM,MAAM;AAAA,UAC1C;AAAA,UACA,0BAA0B,CAAC,wBAAwB;AAAA,QACrD;AAAA,MACF;AAAA,MACA,yBAAyB,CAAC,YAAY,IAAI;AAAA,MAC1C,UAAU;AAAA,MACV,UAAU,CAAC;AAAA,IACb;AAAA,EACF;AAAA,EACA,cAAc;AAAA,IACZ,GAAG;AAAA,IACH,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,YAAY,CAAC,IAAI;AAAA,IACjB,WAAW,CAAC;AAAA,IACZ,MAAM;AAAA,MACJ,WAAW,gBAAgB;AAAA,MAC3B,KAAK;AAAA,IACP;AAAA,IACA,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,OAAO;AAAA,EACT;AACF;","names":[]}
@@ -1789,6 +1789,7 @@ var getIsPreview = (0, import_toolkit9.createSelector)([getFullVersionInformatio
1789
1789
  // src/commonSelectors.ts
1790
1790
  var import_helpers6 = require("@northern.tech/utils/helpers");
1791
1791
  var import_toolkit15 = require("@reduxjs/toolkit");
1792
+ var import_dayjs = __toESM(require("dayjs"), 1);
1792
1793
 
1793
1794
  // src/deploymentsSlice/selectors.ts
1794
1795
  var import_toolkit10 = require("@reduxjs/toolkit");
@@ -2114,6 +2115,7 @@ var emptyObject = {};
2114
2115
  var getRolesById = (state) => state.users.rolesById;
2115
2116
  var getTooltipsById = (state) => state.users.tooltips.byId;
2116
2117
  var getGlobalSettings = (state) => state.users.globalSettings;
2118
+ var getUserSettingsInitialized = (state) => state.users.userSettingsInitialized;
2117
2119
  var getCurrentUserId = (state) => state.users.currentUser;
2118
2120
  var getUsersById = (state) => state.users.byId;
2119
2121
  var getUsersList = (0, import_toolkit14.createSelector)([getUsersById], (usersById) => Object.values(usersById));
@@ -2151,6 +2153,7 @@ var getOfflineThresholdSettings = (0, import_toolkit14.createSelector)([getGloba
2151
2153
  intervalUnit: offlineThreshold?.intervalUnit || DEVICE_ONLINE_CUTOFF.intervalName
2152
2154
  }));
2153
2155
  var getRolesList = (0, import_toolkit14.createSelector)([getRolesById], (rolesById2) => Object.entries(rolesById2).map(([value, role]) => ({ value, ...role })));
2156
+ var getSecurityAlertDismissedTimestamp = (state) => state.users.userSettings.securityAlertDismissedTimestamp;
2154
2157
 
2155
2158
  // src/commonSelectors.ts
2156
2159
  var getIsEnterprise = (0, import_toolkit15.createSelector)(
@@ -2357,6 +2360,22 @@ var getRelevantRoles = (0, import_toolkit15.createSelector)([getOrganization, ge
2357
2360
  return accu;
2358
2361
  }, roles);
2359
2362
  });
2363
+ var getShowSecurityAlert = (0, import_toolkit15.createSelector)(
2364
+ [getCurrentUser, getHas2FA, getFeatures, getIsEnterprise, getUserSettingsInitialized, getSecurityAlertDismissedTimestamp],
2365
+ (currentUser, has2FA, features, isEnterprise, settingsInitialized, dismissedTimestamp) => {
2366
+ const isHosted = features?.isHosted;
2367
+ const canHave2FA = isEnterprise || isHosted;
2368
+ if (!currentUser || !settingsInitialized || has2FA || !canHave2FA) {
2369
+ return false;
2370
+ }
2371
+ if (dismissedTimestamp === null) {
2372
+ return true;
2373
+ }
2374
+ const today = (0, import_dayjs.default)();
2375
+ const dismissedMonthAgo = today.diff(dismissedTimestamp, "months");
2376
+ return dismissedMonthAgo > 0;
2377
+ }
2378
+ );
2360
2379
 
2361
2380
  // src/store.ts
2362
2381
  var import_react_redux = require("react-redux");