@northern.tech/store 0.36.2 → 0.36.3

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 (114) hide show
  1. package/dist/api/general-api.cjs +3 -3
  2. package/dist/api/general-api.cjs.map +1 -1
  3. package/dist/api/users-api.cjs +2 -2
  4. package/dist/api/users-api.cjs.map +1 -1
  5. package/dist/api/users-api.js.map +1 -1
  6. package/dist/appSlice/index.cjs.map +1 -1
  7. package/dist/appSlice/selectors.cjs.map +1 -1
  8. package/dist/appSlice/selectors.d.cts +1 -1
  9. package/dist/appSlice/selectors.d.ts +1 -1
  10. package/dist/appSlice/selectors.js.map +1 -1
  11. package/dist/appSlice/thunks.d.cts +1 -1
  12. package/dist/appSlice/thunks.d.ts +1 -1
  13. package/dist/auth.cjs +2 -2
  14. package/dist/auth.cjs.map +1 -1
  15. package/dist/auth.js.map +1 -1
  16. package/dist/commonSelectors.cjs +2 -2
  17. package/dist/commonSelectors.cjs.map +1 -1
  18. package/dist/commonSelectors.d.cts +1 -1
  19. package/dist/commonSelectors.d.ts +1 -1
  20. package/dist/commonSelectors.js.map +1 -1
  21. package/dist/constants.cjs.map +1 -1
  22. package/dist/constants.js.map +1 -1
  23. package/dist/deploymentsSlice/index.cjs.map +1 -1
  24. package/dist/deploymentsSlice/index.js.map +1 -1
  25. package/dist/deploymentsSlice/selectors.cjs.map +1 -1
  26. package/dist/deploymentsSlice/selectors.d.cts +1 -1
  27. package/dist/deploymentsSlice/selectors.d.ts +1 -1
  28. package/dist/deploymentsSlice/selectors.js.map +1 -1
  29. package/dist/deploymentsSlice/thunks.d.cts +1 -1
  30. package/dist/deploymentsSlice/thunks.d.ts +1 -1
  31. package/dist/devicesSlice/index.cjs.map +1 -1
  32. package/dist/devicesSlice/index.js.map +1 -1
  33. package/dist/devicesSlice/selectors.cjs.map +1 -1
  34. package/dist/devicesSlice/selectors.d.cts +1 -1
  35. package/dist/devicesSlice/selectors.d.ts +1 -1
  36. package/dist/devicesSlice/selectors.js.map +1 -1
  37. package/dist/devicesSlice/thunks.d.cts +1 -1
  38. package/dist/devicesSlice/thunks.d.ts +1 -1
  39. package/dist/liststatehook.cjs.map +1 -1
  40. package/dist/liststatehook.js.map +1 -1
  41. package/dist/locationutils.cjs.map +1 -1
  42. package/dist/locationutils.js.map +1 -1
  43. package/dist/monitorSlice/index.cjs.map +1 -1
  44. package/dist/monitorSlice/index.js.map +1 -1
  45. package/dist/monitorSlice/mocks.cjs.map +1 -1
  46. package/dist/monitorSlice/mocks.js.map +1 -1
  47. package/dist/monitorSlice/selectors.d.cts +1 -1
  48. package/dist/monitorSlice/selectors.d.ts +1 -1
  49. package/dist/monitorSlice/thunks.cjs.map +1 -1
  50. package/dist/monitorSlice/thunks.d.cts +1 -1
  51. package/dist/monitorSlice/thunks.d.ts +1 -1
  52. package/dist/monitorSlice/thunks.js.map +1 -1
  53. package/dist/onboardingSlice/index.cjs.map +1 -1
  54. package/dist/onboardingSlice/mocks.cjs.map +1 -1
  55. package/dist/onboardingSlice/selectors.d.cts +1 -1
  56. package/dist/onboardingSlice/selectors.d.ts +1 -1
  57. package/dist/onboardingSlice/thunks.d.cts +1 -1
  58. package/dist/onboardingSlice/thunks.d.ts +1 -1
  59. package/dist/organizationSlice/index.cjs.map +1 -1
  60. package/dist/organizationSlice/selectors.cjs.map +1 -1
  61. package/dist/organizationSlice/selectors.d.cts +1 -1
  62. package/dist/organizationSlice/selectors.d.ts +1 -1
  63. package/dist/organizationSlice/selectors.js.map +1 -1
  64. package/dist/organizationSlice/thunks.d.cts +4 -41
  65. package/dist/organizationSlice/thunks.d.ts +4 -41
  66. package/dist/releasesSlice/index.cjs.map +1 -1
  67. package/dist/releasesSlice/selectors.cjs.map +1 -1
  68. package/dist/releasesSlice/selectors.d.cts +1 -1
  69. package/dist/releasesSlice/selectors.d.ts +1 -1
  70. package/dist/releasesSlice/selectors.js.map +1 -1
  71. package/dist/releasesSlice/thunks.cjs +39 -16
  72. package/dist/releasesSlice/thunks.cjs.map +1 -1
  73. package/dist/releasesSlice/thunks.d.cts +3 -9
  74. package/dist/releasesSlice/thunks.d.ts +3 -9
  75. package/dist/releasesSlice/thunks.js +38 -15
  76. package/dist/releasesSlice/thunks.js.map +1 -1
  77. package/dist/sockethook.cjs +3 -3
  78. package/dist/sockethook.cjs.map +1 -1
  79. package/dist/sockethook.js.map +1 -1
  80. package/dist/{store-Dd0Y2JCN.d.cts → store-DBUTT4FF.d.cts} +112 -4
  81. package/dist/{store-Co2ptTSm.d.ts → store-gkY5P9Uz.d.ts} +112 -4
  82. package/dist/store.cjs.map +1 -1
  83. package/dist/store.d.cts +1 -2
  84. package/dist/store.d.ts +1 -2
  85. package/dist/store.js.map +1 -1
  86. package/dist/storehooks.cjs +4 -4
  87. package/dist/storehooks.cjs.map +1 -1
  88. package/dist/storehooks.d.cts +1 -1
  89. package/dist/storehooks.d.ts +1 -1
  90. package/dist/storehooks.js.map +1 -1
  91. package/dist/thunks.cjs +48 -24
  92. package/dist/thunks.cjs.map +1 -1
  93. package/dist/thunks.js +41 -17
  94. package/dist/thunks.js.map +1 -1
  95. package/dist/useDeploymentDevice.cjs +2 -2
  96. package/dist/useDeploymentDevice.cjs.map +1 -1
  97. package/dist/useDeploymentDevice.js.map +1 -1
  98. package/dist/usersSlice/index.cjs.map +1 -1
  99. package/dist/usersSlice/selectors.cjs.map +1 -1
  100. package/dist/usersSlice/selectors.d.cts +1 -1
  101. package/dist/usersSlice/selectors.d.ts +1 -1
  102. package/dist/usersSlice/selectors.js.map +1 -1
  103. package/dist/usersSlice/thunks.d.cts +1 -1
  104. package/dist/usersSlice/thunks.d.ts +1 -1
  105. package/dist/utils.cjs +2 -0
  106. package/dist/utils.cjs.map +1 -1
  107. package/dist/utils.d.cts +2 -2
  108. package/dist/utils.d.ts +2 -2
  109. package/dist/utils.js +3 -2
  110. package/dist/utils.js.map +1 -1
  111. package/package.json +4 -4
  112. package/dist/utils-C_9XEfi_.d.ts +0 -104
  113. package/dist/utils-DbXmZmGq.d.cts +0 -104
  114. /package/dist/{chunk-D6vf50IK.cjs → rolldown-runtime-D6vf50IK.cjs} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"selectors.js","names":[],"sources":["../../src/organizationSlice/selectors.ts"],"sourcesContent":["// Copyright 2023 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport type { Tenant } from '@northern.tech/types/MenderTypes';\nimport { createSelector } from '@reduxjs/toolkit';\n\nimport { EXTERNAL_PROVIDER, productOrder } from '../constants';\nimport type { RootState } from '../store';\n\nexport const getOrganization = (state: RootState) => state.organization.organization;\nexport const getProducts = (state: RootState) => state.organization.products;\nexport const getExternalIntegrations = (state: RootState) => state.organization.externalDeviceIntegrations;\nexport const getAuditlogState = (state: RootState) => state.organization.auditlog.selectionState;\nexport const getAuditLog = (state: RootState) => state.organization.auditlog.events;\nexport const getAuditLogSelectionState = (state: RootState) => state.organization.auditlog.selectionState;\nexport const getBillingProfile = (state: RootState) => state.organization.organization.billing_profile;\nexport const getSubscription = (state: RootState) => state.organization.organization.subscription;\nexport const getCard = (state: RootState) => state.organization.card;\nexport const getSsoConfig = ({ organization: { ssoConfigs = [] } }: RootState) => ssoConfigs[0];\nexport const getTenantsList = (state: RootState) => state.organization.tenantList;\nexport const getWebhookEvents = (state: RootState) => state.organization.webhooks.events;\nexport const getWebhookEventTotal = (state: RootState) => state.organization.webhooks.eventsTotal;\n\nexport const getDeviceTwinIntegrations = createSelector([getExternalIntegrations], integrations =>\n integrations.filter(integration => integration.id && EXTERNAL_PROVIDER[integration.provider]?.deviceTwin)\n);\nexport const getIsServiceProvider = (state: RootState) => state.organization.organization.service_provider;\n\nexport const getWebhooks = createSelector([getExternalIntegrations], integrations =>\n integrations.filter(integration => integration.id && integration.provider === EXTERNAL_PROVIDER.webhook.provider)\n);\nexport const getWebhookEventInfo = createSelector([getWebhooks, getWebhookEvents, getWebhookEventTotal], (webhooks, events, eventTotal) =>\n webhooks.length ? { events, eventTotal } : { events: [], eventTotal: 0 }\n);\n\nexport const getAuditLogEntry = createSelector([getAuditLog, getAuditLogSelectionState], (events, { selectedId }) => {\n if (!selectedId) {\n return;\n }\n const [eventAction, eventTime] = atob(selectedId).split('|');\n return events.find(item => item.action === eventAction && item.time === eventTime);\n});\n\nconst toTierName = (key: string) => key.replace(/max_|_?devices/g, '') || 'standard';\nconst processDeviceLimits = (deviceLimits: Tenant['device_limits'], skipFilter = false) => {\n const result: { disabled: string[]; limits: Record<string, object> } = { limits: {}, disabled: [] };\n if (!deviceLimits) return result;\n const tiersByName = Object.fromEntries(Object.entries(deviceLimits).map(([key, limit]) => [toTierName(key), { key, limit }]));\n return productOrder.reduce((accu, tierName) => {\n const entry = tiersByName[tierName];\n if (!entry) return accu;\n const { key, limit } = entry;\n if (limit.value === 0) {\n accu.disabled.push(tierName);\n if (!skipFilter) return accu;\n }\n accu.limits[tierName] = {\n id: tierName,\n backendId: key,\n limit: limit.value,\n current: limit.current_value,\n name: tierName,\n quotaLeft: Math.max(limit.value - limit.current_value, 0),\n limitReached: limit.value !== -1 && limit.value <= limit.current_value\n };\n return accu;\n }, result);\n};\nconst getDeviceLimitsInfo = createSelector([getOrganization], ({ device_limits }) => processDeviceLimits(device_limits));\nexport const getDisabledTiers = createSelector([getDeviceLimitsInfo], ({ disabled }) => disabled);\nexport const getSpLimits = createSelector([getDeviceLimitsInfo], ({ limits }) => limits);\nexport const getTenantListWithLimits = createSelector([getTenantsList], tenantList => ({\n ...tenantList,\n tenants: tenantList.tenants.map(tenant => ({\n ...tenant,\n device_limits: processDeviceLimits(tenant.device_limits, true).limits\n }))\n}));\n"],"mappings":"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"}
1
+ {"version":3,"file":"selectors.js","names":[],"sources":["../../src/organizationSlice/selectors.ts"],"sourcesContent":["// Copyright 2023 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport type { Tenant } from '@northern.tech/types/MenderTypes';\nimport { createSelector } from '@reduxjs/toolkit';\n\nimport { EXTERNAL_PROVIDER, productOrder } from '../constants';\nimport type { RootState } from '../store';\n\nexport const getOrganization = (state: RootState) => state.organization.organization;\nexport const getProducts = (state: RootState) => state.organization.products;\nexport const getExternalIntegrations = (state: RootState) => state.organization.externalDeviceIntegrations;\nexport const getAuditlogState = (state: RootState) => state.organization.auditlog.selectionState;\nexport const getAuditLog = (state: RootState) => state.organization.auditlog.events;\nexport const getAuditLogSelectionState = (state: RootState) => state.organization.auditlog.selectionState;\nexport const getBillingProfile = (state: RootState) => state.organization.organization.billing_profile;\nexport const getSubscription = (state: RootState) => state.organization.organization.subscription;\nexport const getCard = (state: RootState) => state.organization.card;\nexport const getSsoConfig = ({ organization: { ssoConfigs = [] } }: RootState) => ssoConfigs[0];\nexport const getTenantsList = (state: RootState) => state.organization.tenantList;\nexport const getWebhookEvents = (state: RootState) => state.organization.webhooks.events;\nexport const getWebhookEventTotal = (state: RootState) => state.organization.webhooks.eventsTotal;\n\nexport const getDeviceTwinIntegrations = createSelector([getExternalIntegrations], integrations =>\n integrations.filter(integration => integration.id && EXTERNAL_PROVIDER[integration.provider]?.deviceTwin)\n);\nexport const getIsServiceProvider = (state: RootState) => state.organization.organization.service_provider;\n\nexport const getWebhooks = createSelector([getExternalIntegrations], integrations =>\n integrations.filter(integration => integration.id && integration.provider === EXTERNAL_PROVIDER.webhook.provider)\n);\nexport const getWebhookEventInfo = createSelector([getWebhooks, getWebhookEvents, getWebhookEventTotal], (webhooks, events, eventTotal) =>\n webhooks.length ? { events, eventTotal } : { events: [], eventTotal: 0 }\n);\n\nexport const getAuditLogEntry = createSelector([getAuditLog, getAuditLogSelectionState], (events, { selectedId }) => {\n if (!selectedId) {\n return;\n }\n const [eventAction, eventTime] = atob(selectedId).split('|');\n return events.find(item => item.action === eventAction && item.time === eventTime);\n});\n\nconst toTierName = (key: string) => key.replace(/max_|_?devices/g, '') || 'standard';\nconst processDeviceLimits = (deviceLimits: Tenant['device_limits'], skipFilter = false) => {\n const result: { disabled: string[]; limits: Record<string, object> } = { limits: {}, disabled: [] };\n if (!deviceLimits) return result;\n const tiersByName = Object.fromEntries(Object.entries(deviceLimits).map(([key, limit]) => [toTierName(key), { key, limit }]));\n return productOrder.reduce((accu, tierName) => {\n const entry = tiersByName[tierName];\n if (!entry) return accu;\n const { key, limit } = entry;\n if (limit.value === 0) {\n accu.disabled.push(tierName);\n if (!skipFilter) return accu;\n }\n accu.limits[tierName] = {\n id: tierName,\n backendId: key,\n limit: limit.value,\n current: limit.current_value,\n name: tierName,\n quotaLeft: Math.max(limit.value - limit.current_value, 0),\n limitReached: limit.value !== -1 && limit.value <= limit.current_value\n };\n return accu;\n }, result);\n};\nconst getDeviceLimitsInfo = createSelector([getOrganization], ({ device_limits }) => processDeviceLimits(device_limits));\nexport const getDisabledTiers = createSelector([getDeviceLimitsInfo], ({ disabled }) => disabled);\nexport const getSpLimits = createSelector([getDeviceLimitsInfo], ({ limits }) => limits);\nexport const getTenantListWithLimits = createSelector([getTenantsList], tenantList => ({\n ...tenantList,\n tenants: tenantList.tenants.map(tenant => ({\n ...tenant,\n device_limits: processDeviceLimits(tenant.device_limits, true).limits\n }))\n}));\n"],"mappings":"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"}
@@ -3,7 +3,7 @@ import { T as SortOptions, g as PaginationOptions } from "../constants-_p6w8uEp.
3
3
  import { n as ContentType } from "../constants-OZiiFKiA.cjs";
4
4
  import { d as TenantList, l as SSOConfig, n as AuditLogSelectionState, o as ProductConfig, r as Card } from "../types-B33vKVhi.cjs";
5
5
  import { i as SnackbarContent } from "../index-C8QadAm7.cjs";
6
- import { r as RootState, t as AppDispatch } from "../store-Dd0Y2JCN.cjs";
6
+ import { r as RootState, t as AppDispatch } from "../store-DBUTT4FF.cjs";
7
7
  import { BillingProfile, Integration, NewTenantTypeManagement, PreviewRequest, Product, ProductInfo, Subscription, SupportRequest, UpdateChildTenant } from "@northern.tech/types/MenderTypes";
8
8
 
9
9
  //#region src/organizationSlice/thunks.d.ts
@@ -202,10 +202,7 @@ declare const setAuditlogsState: import("@reduxjs/toolkit").AsyncThunk<import("r
202
202
  rejectedMeta?: unknown;
203
203
  }>;
204
204
  declare const tenantDataDivergedMessage = "The system detected there is a change in your plan or purchased add-ons. Please log out and log in again";
205
- declare const addTenant: import("@reduxjs/toolkit").AsyncThunk<[{
206
- payload: string | SnackbarContent;
207
- type: "app/setSnackbar";
208
- }, unknown], NewTenantTypeManagement & UpdateChildTenant & {
205
+ declare const addTenant: import("@reduxjs/toolkit").AsyncThunk<void, NewTenantTypeManagement & UpdateChildTenant & {
209
206
  deviceLimits: Record<string, string>;
210
207
  }, {
211
208
  dispatch: AppDispatch;
@@ -245,24 +242,7 @@ type EditTenantArgs = {
245
242
  id: string;
246
243
  name: string;
247
244
  };
248
- declare const editTenant: import("@reduxjs/toolkit").AsyncThunk<[{
249
- payload: string | SnackbarContent;
250
- type: "app/setSnackbar";
251
- }, import("@reduxjs/toolkit").PayloadAction<unknown, string, {
252
- arg: void;
253
- requestId: string;
254
- requestStatus: "rejected";
255
- aborted: boolean;
256
- condition: boolean;
257
- } & ({
258
- rejectedWithValue: true;
259
- } | ({
260
- rejectedWithValue: false;
261
- } & {})), import("@reduxjs/toolkit").SerializedError> | import("@reduxjs/toolkit").PayloadAction<import("redux").UnknownAction[], string, {
262
- arg: void;
263
- requestId: string;
264
- requestStatus: "fulfilled";
265
- }, never>, unknown], EditTenantArgs, {
245
+ declare const editTenant: import("@reduxjs/toolkit").AsyncThunk<void, EditTenantArgs, {
266
246
  dispatch: AppDispatch;
267
247
  state: RootState;
268
248
  extra?: unknown;
@@ -336,24 +316,7 @@ declare const createBillingProfile: import("@reduxjs/toolkit").AsyncThunk<[{
336
316
  fulfilledMeta?: unknown;
337
317
  rejectedMeta?: unknown;
338
318
  }>;
339
- declare const removeTenant: import("@reduxjs/toolkit").AsyncThunk<[{
340
- payload: string | SnackbarContent;
341
- type: "app/setSnackbar";
342
- }, import("@reduxjs/toolkit").PayloadAction<unknown, string, {
343
- arg: void;
344
- requestId: string;
345
- requestStatus: "rejected";
346
- aborted: boolean;
347
- condition: boolean;
348
- } & ({
349
- rejectedWithValue: true;
350
- } | ({
351
- rejectedWithValue: false;
352
- } & {})), import("@reduxjs/toolkit").SerializedError> | import("@reduxjs/toolkit").PayloadAction<import("redux").UnknownAction[], string, {
353
- arg: void;
354
- requestId: string;
355
- requestStatus: "fulfilled";
356
- }, never>, unknown], {
319
+ declare const removeTenant: import("@reduxjs/toolkit").AsyncThunk<void, {
357
320
  id: string;
358
321
  }, {
359
322
  dispatch: AppDispatch;
@@ -3,7 +3,7 @@ import { T as SortOptions, g as PaginationOptions } from "../constants-OcdoVk6f.
3
3
  import { n as ContentType } from "../constants-OZiiFKiA.js";
4
4
  import { d as TenantList, l as SSOConfig, n as AuditLogSelectionState, o as ProductConfig, r as Card } from "../types-BjtmX60L.js";
5
5
  import { i as SnackbarContent } from "../index-BLvjQfGj.js";
6
- import { r as RootState, t as AppDispatch } from "../store-Co2ptTSm.js";
6
+ import { r as RootState, t as AppDispatch } from "../store-gkY5P9Uz.js";
7
7
  import { BillingProfile, Integration, NewTenantTypeManagement, PreviewRequest, Product, ProductInfo, Subscription, SupportRequest, UpdateChildTenant } from "@northern.tech/types/MenderTypes";
8
8
 
9
9
  //#region src/organizationSlice/thunks.d.ts
@@ -202,10 +202,7 @@ declare const setAuditlogsState: import("@reduxjs/toolkit").AsyncThunk<import("r
202
202
  rejectedMeta?: unknown;
203
203
  }>;
204
204
  declare const tenantDataDivergedMessage = "The system detected there is a change in your plan or purchased add-ons. Please log out and log in again";
205
- declare const addTenant: import("@reduxjs/toolkit").AsyncThunk<[{
206
- payload: string | SnackbarContent;
207
- type: "app/setSnackbar";
208
- }, unknown], NewTenantTypeManagement & UpdateChildTenant & {
205
+ declare const addTenant: import("@reduxjs/toolkit").AsyncThunk<void, NewTenantTypeManagement & UpdateChildTenant & {
209
206
  deviceLimits: Record<string, string>;
210
207
  }, {
211
208
  dispatch: AppDispatch;
@@ -245,24 +242,7 @@ type EditTenantArgs = {
245
242
  id: string;
246
243
  name: string;
247
244
  };
248
- declare const editTenant: import("@reduxjs/toolkit").AsyncThunk<[{
249
- payload: string | SnackbarContent;
250
- type: "app/setSnackbar";
251
- }, import("@reduxjs/toolkit").PayloadAction<unknown, string, {
252
- arg: void;
253
- requestId: string;
254
- requestStatus: "rejected";
255
- aborted: boolean;
256
- condition: boolean;
257
- } & ({
258
- rejectedWithValue: true;
259
- } | ({
260
- rejectedWithValue: false;
261
- } & {})), import("@reduxjs/toolkit").SerializedError> | import("@reduxjs/toolkit").PayloadAction<import("redux").UnknownAction[], string, {
262
- arg: void;
263
- requestId: string;
264
- requestStatus: "fulfilled";
265
- }, never>, unknown], EditTenantArgs, {
245
+ declare const editTenant: import("@reduxjs/toolkit").AsyncThunk<void, EditTenantArgs, {
266
246
  dispatch: AppDispatch;
267
247
  state: RootState;
268
248
  extra?: unknown;
@@ -336,24 +316,7 @@ declare const createBillingProfile: import("@reduxjs/toolkit").AsyncThunk<[{
336
316
  fulfilledMeta?: unknown;
337
317
  rejectedMeta?: unknown;
338
318
  }>;
339
- declare const removeTenant: import("@reduxjs/toolkit").AsyncThunk<[{
340
- payload: string | SnackbarContent;
341
- type: "app/setSnackbar";
342
- }, import("@reduxjs/toolkit").PayloadAction<unknown, string, {
343
- arg: void;
344
- requestId: string;
345
- requestStatus: "rejected";
346
- aborted: boolean;
347
- condition: boolean;
348
- } & ({
349
- rejectedWithValue: true;
350
- } | ({
351
- rejectedWithValue: false;
352
- } & {})), import("@reduxjs/toolkit").SerializedError> | import("@reduxjs/toolkit").PayloadAction<import("redux").UnknownAction[], string, {
353
- arg: void;
354
- requestId: string;
355
- requestStatus: "fulfilled";
356
- }, never>, unknown], {
319
+ declare const removeTenant: import("@reduxjs/toolkit").AsyncThunk<void, {
357
320
  id: string;
358
321
  }, {
359
322
  dispatch: AppDispatch;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["DEVICE_LIST_DEFAULTS","SORTING_OPTIONS"],"sources":["../../src/releasesSlice/index.ts"],"sourcesContent":["// Copyright 2023 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport 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 Manifest,\n Software,\n Tags\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 type SoftwareKind = Software['kind'];\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 total: number;\n type: string;\n};\n\nexport type ManifestsList = {\n isLoading?: boolean;\n manifestIds: string[];\n page: number;\n perPage: number;\n searchTerm: string;\n searchTotal: number;\n selectedTags: string[];\n selection: number[];\n sort?: SortOptions;\n total: number;\n};\n\nexport type SoftwareList = {\n isLoading?: boolean;\n kind: SoftwareKind | undefined;\n page: number;\n perPage: number;\n searchTerm: string;\n searchTotal: number;\n selectedTags: string[];\n softwareIds: string[];\n sort?: SortOptions;\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 manifestsById: Record<string, Manifest>;\n manifestsList: ManifestsList;\n releasesList: ReleasesList;\n selectedJob: string | null;\n selectedManifest: string | null;\n selectedRelease: string | null;\n softwareById: Record<string, Software>;\n softwareList: SoftwareList;\n tab?: 'releases' | 'delta' | 'manifests';\n tags: Record<'releases' | 'manifests' | 'software', Tags>;\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 /*\n * Return list of saved manifest objects\n */\n manifestsById: {\n /*\n [manifestName]: {\n name: '',\n modified: '',\n artifact: { ... },\n manifest: {\n name: '',\n system_types_compatible: [],\n component_types: { ... }\n ...\n },\n tags: ['something'],\n notes: ''\n }\n */\n },\n manifestsList: {\n ...DEVICE_LIST_DEFAULTS,\n manifestIds: [],\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 },\n softwareById: {},\n softwareList: {\n ...DEVICE_LIST_DEFAULTS,\n softwareIds: [],\n sort: {\n direction: SORTING_OPTIONS.desc,\n key: 'modified'\n },\n isLoading: undefined,\n kind: undefined,\n searchTerm: '',\n searchTotal: 0,\n selectedTags: [],\n total: 0,\n type: ''\n },\n tab: 'releases',\n tags: {\n manifests: [],\n releases: [],\n software: []\n },\n updateTypes: [],\n selectedJob: null,\n /*\n * Return single manifest\n */\n selectedManifest: 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 receiveSoftwareTags: (state, action: PayloadAction<Tags>) => {\n state.tags.software = action.payload;\n },\n receiveReleaseTags: (state, action: PayloadAction<Tags>) => {\n state.tags.releases = 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 setActiveTab: (state, action: PayloadAction<'releases' | 'delta' | 'manifests'>) => {\n state.tab = action.payload;\n },\n receiveManifest: (state, action: PayloadAction<Manifest>) => {\n const { name } = action.payload;\n state.manifestsById[name] = action.payload;\n },\n receiveManifests: (state, action: PayloadAction<Record<string, Manifest>>) => {\n state.manifestsById = action.payload;\n },\n receiveManifestTags: (state, action: PayloadAction<Tags>) => {\n state.tags.manifests = action.payload;\n },\n removeManifest: (state, action: PayloadAction<string>) => {\n const { [action.payload]: _toBeRemoved, ...manifestsById } = state.manifestsById;\n state.manifestsById = manifestsById;\n state.selectedManifest = action.payload === state.selectedManifest ? null : state.selectedManifest;\n },\n removeManifests: (state, action: PayloadAction<string[]>) => {\n const { manifestsById, selectedManifest } = action.payload.reduce(\n (accu, key) => {\n const { [key]: _toBeRemoved, ...manifestsById } = accu.manifestsById;\n\n return { manifestsById, selectedManifest: key === accu.selectedManifest ? null : accu.selectedManifest };\n },\n { manifestsById: { ...state.manifestsById }, selectedManifest: state.selectedManifest }\n );\n state.manifestsById = manifestsById;\n state.selectedManifest = selectedManifest;\n },\n selectedManifest: (state, action: PayloadAction<string | null>) => {\n state.selectedManifest = action.payload;\n },\n setManifestsListState: (state, action: PayloadAction<ManifestsList>) => {\n state.manifestsList = action.payload;\n },\n receiveSoftwareItems: (state, action: PayloadAction<Record<string, Software>>) => {\n state.softwareById = action.payload;\n },\n setSoftwareListState: (state, action: PayloadAction<SoftwareList>) => {\n state.softwareList = action.payload;\n }\n }\n});\n\nexport const actions = releaseSlice.actions;\nexport default releaseSlice.reducer;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","names":["DEVICE_LIST_DEFAULTS","SORTING_OPTIONS"],"sources":["../../src/releasesSlice/index.ts"],"sourcesContent":["// Copyright 2023 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport 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 Manifest,\n Software,\n Tags\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 type SoftwareKind = Software['kind'];\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 total: number;\n type: string;\n};\n\nexport type ManifestsList = {\n isLoading?: boolean;\n manifestIds: string[];\n page: number;\n perPage: number;\n searchTerm: string;\n searchTotal: number;\n selectedTags: string[];\n selection: number[];\n sort?: SortOptions;\n total: number;\n};\n\nexport type SoftwareList = {\n isLoading?: boolean;\n kind: SoftwareKind | undefined;\n page: number;\n perPage: number;\n searchTerm: string;\n searchTotal: number;\n selectedTags: string[];\n softwareIds: string[];\n sort?: SortOptions;\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 manifestsById: Record<string, Manifest>;\n manifestsList: ManifestsList;\n releasesList: ReleasesList;\n selectedJob: string | null;\n selectedManifest: string | null;\n selectedRelease: string | null;\n softwareById: Record<string, Software>;\n softwareList: SoftwareList;\n tab?: 'releases' | 'delta' | 'manifests';\n tags: Record<'releases' | 'manifests' | 'software', Tags>;\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 /*\n * Return list of saved manifest objects\n */\n manifestsById: {\n /*\n [manifestName]: {\n name: '',\n modified: '',\n artifact: { ... },\n manifest: {\n name: '',\n system_types_compatible: [],\n component_types: { ... }\n ...\n },\n tags: ['something'],\n notes: ''\n }\n */\n },\n manifestsList: {\n ...DEVICE_LIST_DEFAULTS,\n manifestIds: [],\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 },\n softwareById: {},\n softwareList: {\n ...DEVICE_LIST_DEFAULTS,\n softwareIds: [],\n sort: {\n direction: SORTING_OPTIONS.desc,\n key: 'modified'\n },\n isLoading: undefined,\n kind: undefined,\n searchTerm: '',\n searchTotal: 0,\n selectedTags: [],\n total: 0,\n type: ''\n },\n tab: 'releases',\n tags: {\n manifests: [],\n releases: [],\n software: []\n },\n updateTypes: [],\n selectedJob: null,\n /*\n * Return single manifest\n */\n selectedManifest: 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 receiveSoftwareTags: (state, action: PayloadAction<Tags>) => {\n state.tags.software = action.payload;\n },\n receiveReleaseTags: (state, action: PayloadAction<Tags>) => {\n state.tags.releases = 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 setActiveTab: (state, action: PayloadAction<'releases' | 'delta' | 'manifests'>) => {\n state.tab = action.payload;\n },\n receiveManifest: (state, action: PayloadAction<Manifest>) => {\n const { name } = action.payload;\n state.manifestsById[name] = action.payload;\n },\n receiveManifests: (state, action: PayloadAction<Record<string, Manifest>>) => {\n state.manifestsById = action.payload;\n },\n receiveManifestTags: (state, action: PayloadAction<Tags>) => {\n state.tags.manifests = action.payload;\n },\n removeManifest: (state, action: PayloadAction<string>) => {\n const { [action.payload]: _toBeRemoved, ...manifestsById } = state.manifestsById;\n state.manifestsById = manifestsById;\n state.selectedManifest = action.payload === state.selectedManifest ? null : state.selectedManifest;\n },\n removeManifests: (state, action: PayloadAction<string[]>) => {\n const { manifestsById, selectedManifest } = action.payload.reduce(\n (accu, key) => {\n const { [key]: _toBeRemoved, ...manifestsById } = accu.manifestsById;\n\n return { manifestsById, selectedManifest: key === accu.selectedManifest ? null : accu.selectedManifest };\n },\n { manifestsById: { ...state.manifestsById }, selectedManifest: state.selectedManifest }\n );\n state.manifestsById = manifestsById;\n state.selectedManifest = selectedManifest;\n },\n selectedManifest: (state, action: PayloadAction<string | null>) => {\n state.selectedManifest = action.payload;\n },\n setManifestsListState: (state, action: PayloadAction<ManifestsList>) => {\n state.manifestsList = action.payload;\n },\n receiveSoftwareItems: (state, action: PayloadAction<Record<string, Software>>) => {\n state.softwareById = action.payload;\n },\n setSoftwareListState: (state, action: PayloadAction<SoftwareList>) => {\n state.softwareList = action.payload;\n }\n }\n});\n\nexport const actions = releaseSlice.actions;\nexport default releaseSlice.reducer;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"selectors.cjs","names":["listItemMapper"],"sources":["../../src/releasesSlice/selectors.ts"],"sourcesContent":["// Copyright 2023 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport type { Manifest, ReleaseV2, Software } from '@northern.tech/types/MenderTypes';\nimport { createSelector } from '@reduxjs/toolkit';\n\nimport type { RootState } from '../store';\nimport { listItemMapper } from '../utils';\n\nconst transformToId = tags => tags.reduce((accu, key) => ({ ...accu, [key]: key }), {});\n\nexport const getActiveTab = (state: RootState) => state.releases.tab;\nconst getSelectedReleaseId = (state: RootState) => state.releases.selectedRelease;\nexport const getReleasesById = (state: RootState) => state.releases.byId;\nconst getTags = (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 getSoftwareTags = createSelector([getTags], ({ software }) => software);\nexport const getSoftwareTagsById = createSelector([getSoftwareTags], transformToId);\nexport const getReleasesList = createSelector([getReleasesById, getListedReleases, getReleaseMappingDefaults], listItemMapper<ReleaseV2>);\n\nexport const getReleaseTags = createSelector([getTags], ({ releases }) => releases);\nexport const getReleaseTagsById = createSelector([getReleaseTags], transformToId);\nexport const getHasReleases = createSelector(\n [getReleaseListState, getReleasesById],\n ({ searchTotal, total }, byId) => total || searchTotal || !!Object.keys(byId).length\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\nconst getSelectedManifestId = (state: RootState) => state.releases.selectedManifest;\nexport const getManifestTags = createSelector([getTags], ({ manifests }) => manifests);\nexport const getManifestTagsById = createSelector([getManifestTags], transformToId);\nexport const getManifestsById = (state: RootState) => state.releases.manifestsById;\nexport const getManifestsListState = (state: RootState) => state.releases.manifestsList;\nconst getListedManifests = (state: RootState) => state.releases.manifestsList.manifestIds;\nconst manifestDefaults = {};\nconst getManifestMappingDefaults = () => manifestDefaults;\nexport const getManifestsList = createSelector([getManifestsById, getListedManifests, getManifestMappingDefaults], listItemMapper<Manifest>);\n\nexport const getHasManifests = createSelector(\n [getManifestsListState, getManifestsById],\n ({ searchTotal, total }, byId) => total || searchTotal || !!Object.keys(byId).length\n);\n\nexport const getSelectedManifest = createSelector([getManifestsById, getSelectedManifestId], (byId, id) => byId[id || ''] ?? {});\n\nexport const getSelectedManifests = createSelector([getManifestsListState, getManifestsList], ({ selection }, manifests) =>\n selection.map(index => manifests[index])\n);\n\nexport const getSoftwareById = (state: RootState) => state.releases.softwareById;\nexport const getSoftwareListState = (state: RootState) => state.releases.softwareList;\nconst getListedSoftware = (state: RootState) => state.releases.softwareList.softwareIds;\nconst softwareDefaults = {};\nconst getSoftwareMappingDefaults = () => softwareDefaults;\nexport const getSoftwareList = createSelector([getSoftwareById, getListedSoftware, getSoftwareMappingDefaults], listItemMapper<Software>);\n\nexport const getHasSoftware = createSelector(\n [getSoftwareListState, getSoftwareById],\n ({ searchTotal, total }, byId) => total || searchTotal || !!Object.keys(byId).length\n);\n"],"mappings":";;;;AAmBA,MAAM,iBAAgB,SAAQ,KAAK,QAAQ,MAAM,SAAS;CAAE,GAAG;EAAO,MAAM;AAAI,IAAI,CAAC,CAAC;AAEtF,MAAa,gBAAgB,UAAqB,MAAM,SAAS;AACjE,MAAM,wBAAwB,UAAqB,MAAM,SAAS;AAClE,MAAa,mBAAmB,UAAqB,MAAM,SAAS;AACpE,MAAM,WAAW,UAAqB,MAAM,SAAS;AACrD,MAAa,uBAAuB,UAAqB,MAAM,SAAS;AACxE,MAAM,qBAAqB,UAAqB,MAAM,SAAS,aAAa;AAC5E,MAAa,kBAAkB,UAAqB,MAAM,SAAS;AACnE,MAAM,kBAAkB,CAAC;AACzB,MAAM,kCAAkC;AACxC,MAAa,mBAAA,GAAA,iBAAA,gBAAiC,CAAC,OAAO,IAAI,EAAE,eAAe,QAAQ;AACnF,MAAa,uBAAA,GAAA,iBAAA,gBAAqC,CAAC,eAAe,GAAG,aAAa;AAClF,MAAa,mBAAA,GAAA,iBAAA,gBAAiC;CAAC;CAAiB;CAAmB;AAAyB,GAAGA,cAAAA,cAAyB;AAExI,MAAa,kBAAA,GAAA,iBAAA,gBAAgC,CAAC,OAAO,IAAI,EAAE,eAAe,QAAQ;AAClF,MAAa,sBAAA,GAAA,iBAAA,gBAAoC,CAAC,cAAc,GAAG,aAAa;AAChF,MAAa,kBAAA,GAAA,iBAAA,gBACX,CAAC,qBAAqB,eAAe,IACpC,EAAE,aAAa,SAAS,SAAS,SAAS,eAAe,CAAC,CAAC,OAAO,KAAK,IAAI,EAAE,MAChF;AAEA,MAAa,sBAAA,GAAA,iBAAA,gBAAoC,CAAC,iBAAiB,oBAAoB,IAAI,MAAM,OAAO,KAAK,MAAM,OAAO,CAAC,CAAC;AAE5H,MAAa,uBAAA,GAAA,iBAAA,gBAAqC,CAAC,qBAAqB,eAAe,IAAI,EAAE,aAAa,aAAa,UAAU,KAAI,UAAS,SAAS,MAAM,CAAC;AAE9J,MAAa,yBAAyB,UAAqB,MAAM,SAAS;AAC1E,MAAa,oBAAoB,UAAqB,MAAM,SAAS;AACrE,MAAa,mBAAA,GAAA,iBAAA,gBAAiC,CAAC,mBAAmB,GAAG,UAAU,KAAK,IAAI,MAAM,UAAkB,KAAK,MAAM;AAC3H,MAAM,oBAAoB,UAAqB,MAAM,SAAS;AAC9D,MAAa,kBAAA,GAAA,iBAAA,gBAAgC,CAAC,kBAAkB,gBAAgB,IAAI,MAAM,UAAU,KAAK,SAAS,GAAG;AAErH,MAAM,yBAAyB,UAAqB,MAAM,SAAS;AACnE,MAAa,mBAAA,GAAA,iBAAA,gBAAiC,CAAC,OAAO,IAAI,EAAE,gBAAgB,SAAS;AACrF,MAAa,uBAAA,GAAA,iBAAA,gBAAqC,CAAC,eAAe,GAAG,aAAa;AAClF,MAAa,oBAAoB,UAAqB,MAAM,SAAS;AACrE,MAAa,yBAAyB,UAAqB,MAAM,SAAS;AAC1E,MAAM,sBAAsB,UAAqB,MAAM,SAAS,cAAc;AAC9E,MAAM,mBAAmB,CAAC;AAC1B,MAAM,mCAAmC;AACzC,MAAa,oBAAA,GAAA,iBAAA,gBAAkC;CAAC;CAAkB;CAAoB;AAA0B,GAAGA,cAAAA,cAAwB;AAE3I,MAAa,mBAAA,GAAA,iBAAA,gBACX,CAAC,uBAAuB,gBAAgB,IACvC,EAAE,aAAa,SAAS,SAAS,SAAS,eAAe,CAAC,CAAC,OAAO,KAAK,IAAI,EAAE,MAChF;AAEA,MAAa,uBAAA,GAAA,iBAAA,gBAAqC,CAAC,kBAAkB,qBAAqB,IAAI,MAAM,OAAO,KAAK,MAAM,OAAO,CAAC,CAAC;AAE/H,MAAa,wBAAA,GAAA,iBAAA,gBAAsC,CAAC,uBAAuB,gBAAgB,IAAI,EAAE,aAAa,cAC5G,UAAU,KAAI,UAAS,UAAU,MAAM,CACzC;AAEA,MAAa,mBAAmB,UAAqB,MAAM,SAAS;AACpE,MAAa,wBAAwB,UAAqB,MAAM,SAAS;AACzE,MAAM,qBAAqB,UAAqB,MAAM,SAAS,aAAa;AAC5E,MAAM,mBAAmB,CAAC;AAC1B,MAAM,mCAAmC;AACzC,MAAa,mBAAA,GAAA,iBAAA,gBAAiC;CAAC;CAAiB;CAAmB;AAA0B,GAAGA,cAAAA,cAAwB;AAExI,MAAa,kBAAA,GAAA,iBAAA,gBACX,CAAC,sBAAsB,eAAe,IACrC,EAAE,aAAa,SAAS,SAAS,SAAS,eAAe,CAAC,CAAC,OAAO,KAAK,IAAI,EAAE,MAChF"}
1
+ {"version":3,"file":"selectors.cjs","names":["listItemMapper"],"sources":["../../src/releasesSlice/selectors.ts"],"sourcesContent":["// Copyright 2023 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport type { Manifest, ReleaseV2, Software } from '@northern.tech/types/MenderTypes';\nimport { createSelector } from '@reduxjs/toolkit';\n\nimport type { RootState } from '../store';\nimport { listItemMapper } from '../utils';\n\nconst transformToId = tags => tags.reduce((accu, key) => ({ ...accu, [key]: key }), {});\n\nexport const getActiveTab = (state: RootState) => state.releases.tab;\nconst getSelectedReleaseId = (state: RootState) => state.releases.selectedRelease;\nexport const getReleasesById = (state: RootState) => state.releases.byId;\nconst getTags = (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 getSoftwareTags = createSelector([getTags], ({ software }) => software);\nexport const getSoftwareTagsById = createSelector([getSoftwareTags], transformToId);\nexport const getReleasesList = createSelector([getReleasesById, getListedReleases, getReleaseMappingDefaults], listItemMapper<ReleaseV2>);\n\nexport const getReleaseTags = createSelector([getTags], ({ releases }) => releases);\nexport const getReleaseTagsById = createSelector([getReleaseTags], transformToId);\nexport const getHasReleases = createSelector(\n [getReleaseListState, getReleasesById],\n ({ searchTotal, total }, byId) => total || searchTotal || !!Object.keys(byId).length\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\nconst getSelectedManifestId = (state: RootState) => state.releases.selectedManifest;\nexport const getManifestTags = createSelector([getTags], ({ manifests }) => manifests);\nexport const getManifestTagsById = createSelector([getManifestTags], transformToId);\nexport const getManifestsById = (state: RootState) => state.releases.manifestsById;\nexport const getManifestsListState = (state: RootState) => state.releases.manifestsList;\nconst getListedManifests = (state: RootState) => state.releases.manifestsList.manifestIds;\nconst manifestDefaults = {};\nconst getManifestMappingDefaults = () => manifestDefaults;\nexport const getManifestsList = createSelector([getManifestsById, getListedManifests, getManifestMappingDefaults], listItemMapper<Manifest>);\n\nexport const getHasManifests = createSelector(\n [getManifestsListState, getManifestsById],\n ({ searchTotal, total }, byId) => total || searchTotal || !!Object.keys(byId).length\n);\n\nexport const getSelectedManifest = createSelector([getManifestsById, getSelectedManifestId], (byId, id) => byId[id || ''] ?? {});\n\nexport const getSelectedManifests = createSelector([getManifestsListState, getManifestsList], ({ selection }, manifests) =>\n selection.map(index => manifests[index])\n);\n\nexport const getSoftwareById = (state: RootState) => state.releases.softwareById;\nexport const getSoftwareListState = (state: RootState) => state.releases.softwareList;\nconst getListedSoftware = (state: RootState) => state.releases.softwareList.softwareIds;\nconst softwareDefaults = {};\nconst getSoftwareMappingDefaults = () => softwareDefaults;\nexport const getSoftwareList = createSelector([getSoftwareById, getListedSoftware, getSoftwareMappingDefaults], listItemMapper<Software>);\n\nexport const getHasSoftware = createSelector(\n [getSoftwareListState, getSoftwareById],\n ({ searchTotal, total }, byId) => total || searchTotal || !!Object.keys(byId).length\n);\n"],"mappings":"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"}
@@ -6,7 +6,7 @@ import { s as DeviceSliceType } from "../index-DbfM03Gj.cjs";
6
6
  import { t as AppSliceType } from "../index-C8QadAm7.cjs";
7
7
  import { t as MonitorSliceType } from "../index-5Q-iI4EB.cjs";
8
8
  import { t as OrganizationSliceType } from "../index-Bj3OArhr.cjs";
9
- import { r as RootState } from "../store-Dd0Y2JCN.cjs";
9
+ import { r as RootState } from "../store-DBUTT4FF.cjs";
10
10
  import { Manifest, ReleaseV2, Software } from "@northern.tech/types/MenderTypes";
11
11
 
12
12
  //#region src/releasesSlice/selectors.d.ts
@@ -6,7 +6,7 @@ import { s as DeviceSliceType } from "../index-CPdMUfRr.js";
6
6
  import { t as AppSliceType } from "../index-BLvjQfGj.js";
7
7
  import { t as MonitorSliceType } from "../index-ByfjrTdH.js";
8
8
  import { t as OrganizationSliceType } from "../index-BBsUj1a8.js";
9
- import { r as RootState } from "../store-Co2ptTSm.js";
9
+ import { r as RootState } from "../store-gkY5P9Uz.js";
10
10
  import { Manifest, ReleaseV2, Software } from "@northern.tech/types/MenderTypes";
11
11
 
12
12
  //#region src/releasesSlice/selectors.d.ts
@@ -1 +1 @@
1
- {"version":3,"file":"selectors.js","names":[],"sources":["../../src/releasesSlice/selectors.ts"],"sourcesContent":["// Copyright 2023 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport type { Manifest, ReleaseV2, Software } from '@northern.tech/types/MenderTypes';\nimport { createSelector } from '@reduxjs/toolkit';\n\nimport type { RootState } from '../store';\nimport { listItemMapper } from '../utils';\n\nconst transformToId = tags => tags.reduce((accu, key) => ({ ...accu, [key]: key }), {});\n\nexport const getActiveTab = (state: RootState) => state.releases.tab;\nconst getSelectedReleaseId = (state: RootState) => state.releases.selectedRelease;\nexport const getReleasesById = (state: RootState) => state.releases.byId;\nconst getTags = (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 getSoftwareTags = createSelector([getTags], ({ software }) => software);\nexport const getSoftwareTagsById = createSelector([getSoftwareTags], transformToId);\nexport const getReleasesList = createSelector([getReleasesById, getListedReleases, getReleaseMappingDefaults], listItemMapper<ReleaseV2>);\n\nexport const getReleaseTags = createSelector([getTags], ({ releases }) => releases);\nexport const getReleaseTagsById = createSelector([getReleaseTags], transformToId);\nexport const getHasReleases = createSelector(\n [getReleaseListState, getReleasesById],\n ({ searchTotal, total }, byId) => total || searchTotal || !!Object.keys(byId).length\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\nconst getSelectedManifestId = (state: RootState) => state.releases.selectedManifest;\nexport const getManifestTags = createSelector([getTags], ({ manifests }) => manifests);\nexport const getManifestTagsById = createSelector([getManifestTags], transformToId);\nexport const getManifestsById = (state: RootState) => state.releases.manifestsById;\nexport const getManifestsListState = (state: RootState) => state.releases.manifestsList;\nconst getListedManifests = (state: RootState) => state.releases.manifestsList.manifestIds;\nconst manifestDefaults = {};\nconst getManifestMappingDefaults = () => manifestDefaults;\nexport const getManifestsList = createSelector([getManifestsById, getListedManifests, getManifestMappingDefaults], listItemMapper<Manifest>);\n\nexport const getHasManifests = createSelector(\n [getManifestsListState, getManifestsById],\n ({ searchTotal, total }, byId) => total || searchTotal || !!Object.keys(byId).length\n);\n\nexport const getSelectedManifest = createSelector([getManifestsById, getSelectedManifestId], (byId, id) => byId[id || ''] ?? {});\n\nexport const getSelectedManifests = createSelector([getManifestsListState, getManifestsList], ({ selection }, manifests) =>\n selection.map(index => manifests[index])\n);\n\nexport const getSoftwareById = (state: RootState) => state.releases.softwareById;\nexport const getSoftwareListState = (state: RootState) => state.releases.softwareList;\nconst getListedSoftware = (state: RootState) => state.releases.softwareList.softwareIds;\nconst softwareDefaults = {};\nconst getSoftwareMappingDefaults = () => softwareDefaults;\nexport const getSoftwareList = createSelector([getSoftwareById, getListedSoftware, getSoftwareMappingDefaults], listItemMapper<Software>);\n\nexport const getHasSoftware = createSelector(\n [getSoftwareListState, getSoftwareById],\n ({ searchTotal, total }, byId) => total || searchTotal || !!Object.keys(byId).length\n);\n"],"mappings":"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"}
1
+ {"version":3,"file":"selectors.js","names":[],"sources":["../../src/releasesSlice/selectors.ts"],"sourcesContent":["// Copyright 2023 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport type { Manifest, ReleaseV2, Software } from '@northern.tech/types/MenderTypes';\nimport { createSelector } from '@reduxjs/toolkit';\n\nimport type { RootState } from '../store';\nimport { listItemMapper } from '../utils';\n\nconst transformToId = tags => tags.reduce((accu, key) => ({ ...accu, [key]: key }), {});\n\nexport const getActiveTab = (state: RootState) => state.releases.tab;\nconst getSelectedReleaseId = (state: RootState) => state.releases.selectedRelease;\nexport const getReleasesById = (state: RootState) => state.releases.byId;\nconst getTags = (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 getSoftwareTags = createSelector([getTags], ({ software }) => software);\nexport const getSoftwareTagsById = createSelector([getSoftwareTags], transformToId);\nexport const getReleasesList = createSelector([getReleasesById, getListedReleases, getReleaseMappingDefaults], listItemMapper<ReleaseV2>);\n\nexport const getReleaseTags = createSelector([getTags], ({ releases }) => releases);\nexport const getReleaseTagsById = createSelector([getReleaseTags], transformToId);\nexport const getHasReleases = createSelector(\n [getReleaseListState, getReleasesById],\n ({ searchTotal, total }, byId) => total || searchTotal || !!Object.keys(byId).length\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\nconst getSelectedManifestId = (state: RootState) => state.releases.selectedManifest;\nexport const getManifestTags = createSelector([getTags], ({ manifests }) => manifests);\nexport const getManifestTagsById = createSelector([getManifestTags], transformToId);\nexport const getManifestsById = (state: RootState) => state.releases.manifestsById;\nexport const getManifestsListState = (state: RootState) => state.releases.manifestsList;\nconst getListedManifests = (state: RootState) => state.releases.manifestsList.manifestIds;\nconst manifestDefaults = {};\nconst getManifestMappingDefaults = () => manifestDefaults;\nexport const getManifestsList = createSelector([getManifestsById, getListedManifests, getManifestMappingDefaults], listItemMapper<Manifest>);\n\nexport const getHasManifests = createSelector(\n [getManifestsListState, getManifestsById],\n ({ searchTotal, total }, byId) => total || searchTotal || !!Object.keys(byId).length\n);\n\nexport const getSelectedManifest = createSelector([getManifestsById, getSelectedManifestId], (byId, id) => byId[id || ''] ?? {});\n\nexport const getSelectedManifests = createSelector([getManifestsListState, getManifestsList], ({ selection }, manifests) =>\n selection.map(index => manifests[index])\n);\n\nexport const getSoftwareById = (state: RootState) => state.releases.softwareById;\nexport const getSoftwareListState = (state: RootState) => state.releases.softwareList;\nconst getListedSoftware = (state: RootState) => state.releases.softwareList.softwareIds;\nconst softwareDefaults = {};\nconst getSoftwareMappingDefaults = () => softwareDefaults;\nexport const getSoftwareList = createSelector([getSoftwareById, getListedSoftware, getSoftwareMappingDefaults], listItemMapper<Software>);\n\nexport const getHasSoftware = createSelector(\n [getSoftwareListState, getSoftwareById],\n ({ searchTotal, total }, byId) => total || searchTotal || !!Object.keys(byId).length\n);\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_chunk = require("../chunk-D6vf50IK.cjs");
2
+ const require_rolldown_runtime = require("../rolldown-runtime-D6vf50IK.cjs");
3
3
  const require_releasesSlice_constants = require("./constants.cjs");
4
4
  const require_constants = require("../constants.cjs");
5
5
  const require_releasesSlice_index = require("./index.cjs");
@@ -12,7 +12,7 @@ const require_api_general_api = require("../api/general-api.cjs");
12
12
  let _northern_tech_utils_helpers = require("@northern.tech/utils/helpers");
13
13
  let axios = require("axios");
14
14
  let pluralize = require("pluralize");
15
- pluralize = require_chunk.__toESM(pluralize, 1);
15
+ pluralize = require_rolldown_runtime.__toESM(pluralize, 1);
16
16
  let uuid = require("uuid");
17
17
  let _northern_tech_utils_constants = require("@northern.tech/utils/constants");
18
18
  //#region src/releasesSlice/thunks.ts
@@ -377,11 +377,17 @@ const setSingleReleaseTags = require_store.createAppAsyncThunk(`${require_releas
377
377
  const setReleaseTags = require_store.createAppAsyncThunk(`${require_releasesSlice_index.sliceName}/setReleaseTags`, ({ name, tags = [] }, { dispatch }) => dispatch(setSingleReleaseTags({
378
378
  name,
379
379
  tags
380
- })).catch((err) => require_store.commonErrorHandler(err, `Release tags couldn't be set.`, dispatch)).then(() => Promise.resolve(dispatch(setSnackbar({
381
- message: "Release tags were set successfully.",
382
- autoHideDuration: require_constants.TIMEOUTS.fiveSeconds,
383
- action: ""
384
- })))));
380
+ })).catch((err) => require_store.commonErrorHandler(err, `Release tags couldn't be set.`, dispatch)).then(() => {
381
+ dispatch(setSnackbar({
382
+ message: "Release tags were set successfully.",
383
+ autoHideDuration: require_constants.TIMEOUTS.fiveSeconds,
384
+ action: ""
385
+ }));
386
+ require_utils.dispatchDelayed({
387
+ action: getExistingReleaseTags(),
388
+ dispatch
389
+ });
390
+ }));
385
391
  const setReleasesTags = require_store.createAppAsyncThunk(`${require_releasesSlice_index.sliceName}/setReleasesTags`, ({ releases, tags = [] }, { dispatch }) => {
386
392
  const addRequests = releases.reduce((accu, release) => {
387
393
  accu.push(dispatch(setSingleReleaseTags({
@@ -390,11 +396,17 @@ const setReleasesTags = require_store.createAppAsyncThunk(`${require_releasesSli
390
396
  })));
391
397
  return accu;
392
398
  }, []);
393
- return Promise.all(addRequests).catch((err) => require_store.commonErrorHandler(err, `Releases couldn't be tagged.`, dispatch)).then(() => Promise.resolve(dispatch(setSnackbar({
394
- message: "Releases were tagged successfully.",
395
- autoHideDuration: require_constants.TIMEOUTS.fiveSeconds,
396
- action: ""
397
- }))));
399
+ return Promise.all(addRequests).catch((err) => require_store.commonErrorHandler(err, `Releases couldn't be tagged.`, dispatch)).then(() => {
400
+ dispatch(setSnackbar({
401
+ message: "Releases were tagged successfully.",
402
+ autoHideDuration: require_constants.TIMEOUTS.fiveSeconds,
403
+ action: ""
404
+ }));
405
+ require_utils.dispatchDelayed({
406
+ action: getExistingReleaseTags(),
407
+ dispatch
408
+ });
409
+ });
398
410
  });
399
411
  const getExistingSoftwareTags = require_store.createAppAsyncThunk(`${require_releasesSlice_index.sliceName}/getSoftwareTags`, async (kind, { dispatch }) => {
400
412
  const { data: tags } = await require_api_general_api.default.get(`${_northern_tech_utils_constants.deploymentsApiUrlV1alpha1}/software/tags`, { params: { kind } }).catch((err) => require_store.commonErrorHandler(err, `Existing ${kind ?? "software"} tags couldn't be retrieved.`, dispatch));
@@ -465,6 +477,13 @@ const toManifestCreationData = ({ description, tags }) => {
465
477
  if (tags?.length) formData.append("tags", tags.join(","));
466
478
  return formData;
467
479
  };
480
+ const maybeUpdateManifestTags = (maybeTags, dispatch) => {
481
+ if (!maybeTags?.length) return;
482
+ require_utils.dispatchDelayed({
483
+ action: getExistingManifestTags(),
484
+ dispatch
485
+ });
486
+ };
468
487
  const uploadManifest = require_store.createAppAsyncThunk(`${require_releasesSlice_index.sliceName}/uploadManifest`, async ({ file, meta }, { dispatch, rejectWithValue }) => {
469
488
  const formData = toManifestCreationData(meta);
470
489
  formData.append("size", file.size.toString());
@@ -501,6 +520,7 @@ const uploadManifest = require_store.createAppAsyncThunk(`${require_releasesSlic
501
520
  } finally {
502
521
  dispatch(cleanUpUpload(uploadId));
503
522
  }
523
+ maybeUpdateManifestTags(meta.tags, dispatch);
504
524
  });
505
525
  const generateManifest = require_store.createAppAsyncThunk(`${require_releasesSlice_index.sliceName}/generateManifest`, async ({ file, meta }, { dispatch }) => {
506
526
  const formData = toManifestCreationData(meta);
@@ -537,6 +557,7 @@ const generateManifest = require_store.createAppAsyncThunk(`${require_releasesSl
537
557
  } finally {
538
558
  dispatch(cleanUpUpload(uploadId));
539
559
  }
560
+ await maybeUpdateManifestTags(meta.tags, dispatch);
540
561
  });
541
562
  const getExistingManifestTags = require_store.createAppAsyncThunk(`${require_releasesSlice_index.sliceName}/getManifestTags`, async (_, { dispatch }) => {
542
563
  const tags = await dispatch(getExistingSoftwareTags("manifest")).unwrap() ?? [];
@@ -547,7 +568,7 @@ const getManifests = require_store.createAppAsyncThunk(`${require_releasesSlice_
547
568
  ...getState().releases.manifestsList,
548
569
  ...passedConfig
549
570
  };
550
- const { data: receivedManifests = [], headers = {} } = await manifestListRetrieval(config).catch((err) => require_store.commonErrorHandler(err, `Please check your connection`, dispatch));
571
+ const { data: receivedManifests = [], headers = {} } = await manifestListRetrieval(config).catch((err) => require_store.commonErrorHandler(err, "There was an error while retrieving manifests", dispatch));
551
572
  const total = headers[_northern_tech_utils_constants.headerNames.total] ? Number(headers[_northern_tech_utils_constants.headerNames.total]) : 0;
552
573
  const state = getState().releases;
553
574
  const flatManifests = transformReceivedSoftware(receivedManifests);
@@ -570,14 +591,16 @@ const getManifest = require_store.createAppAsyncThunk(`${require_releasesSlice_i
570
591
  dispatch(require_releasesSlice_index.actions.receiveManifest(manifest));
571
592
  return manifest;
572
593
  });
573
- const updateManifestInfo = require_store.createAppAsyncThunk(`${require_releasesSlice_index.sliceName}/updateManifestInfo`, ({ name, info }, { dispatch, getState }) => require_api_general_api.default.patch(`${_northern_tech_utils_constants.deploymentsApiUrlV1alpha1}/manifests/${name}`, info).catch((err) => require_store.commonErrorHandler(err, `Manifest details couldn't be updated.`, dispatch)).then(() => {
594
+ const updateManifestInfo = require_store.createAppAsyncThunk(`${require_releasesSlice_index.sliceName}/updateManifestInfo`, async ({ name, info }, { dispatch, getState }) => {
595
+ await require_api_general_api.default.patch(`${_northern_tech_utils_constants.deploymentsApiUrlV1alpha1}/manifests/${name}`, info).catch((err) => require_store.commonErrorHandler(err, `Manifest details couldn't be updated.`, dispatch));
574
596
  dispatch(require_releasesSlice_index.actions.receiveManifest({
575
597
  ...require_releasesSlice_selectors.getManifestsById(getState())[name],
576
598
  ...info,
577
599
  name
578
600
  }));
579
601
  dispatch(setSnackbar("Manifest details were updated successfully."));
580
- }));
602
+ maybeUpdateManifestTags(info.tags, dispatch);
603
+ });
581
604
  const removeManifests = require_store.createAppAsyncThunk(`${require_releasesSlice_index.sliceName}/removeManifests`, async (names, { dispatch, getState }) => {
582
605
  const nameParams = names.map((name) => `name=${encodeURIComponent(name)}`).join("&");
583
606
  await require_api_general_api.default.delete(`${_northern_tech_utils_constants.deploymentsApiUrlV1alpha1}/manifests?${nameParams}`).catch((err) => require_store.commonErrorHandler(err, `Manifest${names.length > 1 ? "s" : ""} couldn't be deleted.`, dispatch));
@@ -662,7 +685,7 @@ const getSoftware = require_store.createAppAsyncThunk(`${require_releasesSlice_i
662
685
  ...require_releasesSlice_selectors.getSoftwareListState(getState()),
663
686
  ...passedConfig
664
687
  };
665
- const { data: receivedSoftware = [], headers = {} } = await softwareListRetrieval(config).catch((err) => require_store.commonErrorHandler(err, `Please check your connection`, dispatch));
688
+ const { data: receivedSoftware = [], headers = {} } = await softwareListRetrieval(config).catch((err) => require_store.commonErrorHandler(err, "There was an error while listing software", dispatch));
666
689
  const total = headers[_northern_tech_utils_constants.headerNames.total] ? Number(headers[_northern_tech_utils_constants.headerNames.total]) : 0;
667
690
  const state = getState().releases;
668
691
  const flatSoftware = transformReceivedSoftware(receivedSoftware);