@northern.tech/store 0.31.0 → 0.33.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 (139) hide show
  1. package/dist/actions.d.cts +7 -2
  2. package/dist/actions.d.ts +7 -2
  3. package/dist/api/general-api.cjs +2 -2
  4. package/dist/api/general-api.cjs.map +1 -1
  5. package/dist/api/general-api.js.map +1 -1
  6. package/dist/api/users-api.cjs +1 -1
  7. package/dist/api/users-api.cjs.map +1 -1
  8. package/dist/api/users-api.js.map +1 -1
  9. package/dist/appSlice/constants.cjs +1 -1
  10. package/dist/appSlice/constants.cjs.map +1 -1
  11. package/dist/appSlice/constants.js +2 -2
  12. package/dist/appSlice/constants.js.map +1 -1
  13. package/dist/appSlice/index.cjs.map +1 -1
  14. package/dist/appSlice/index.js.map +1 -1
  15. package/dist/appSlice/selectors.d.cts +2 -2
  16. package/dist/appSlice/selectors.d.ts +2 -2
  17. package/dist/appSlice/thunks.d.cts +1 -1
  18. package/dist/appSlice/thunks.d.ts +1 -1
  19. package/dist/auth.cjs +1 -1
  20. package/dist/auth.cjs.map +1 -1
  21. package/dist/auth.js.map +1 -1
  22. package/dist/commonSelectors.cjs +1 -1
  23. package/dist/commonSelectors.cjs.map +1 -1
  24. package/dist/commonSelectors.d.cts +2 -2
  25. package/dist/commonSelectors.d.ts +2 -2
  26. package/dist/commonSelectors.js.map +1 -1
  27. package/dist/constants.cjs.map +1 -1
  28. package/dist/constants.js.map +1 -1
  29. package/dist/deploymentsSlice/index.cjs.map +1 -1
  30. package/dist/deploymentsSlice/index.js.map +1 -1
  31. package/dist/deploymentsSlice/selectors.cjs.map +1 -1
  32. package/dist/deploymentsSlice/selectors.d.cts +2 -2
  33. package/dist/deploymentsSlice/selectors.d.ts +2 -2
  34. package/dist/deploymentsSlice/selectors.js.map +1 -1
  35. package/dist/deploymentsSlice/thunks.d.cts +1 -1
  36. package/dist/deploymentsSlice/thunks.d.ts +1 -1
  37. package/dist/devicesSlice/index.cjs.map +1 -1
  38. package/dist/devicesSlice/index.js.map +1 -1
  39. package/dist/devicesSlice/selectors.cjs.map +1 -1
  40. package/dist/devicesSlice/selectors.d.cts +2 -2
  41. package/dist/devicesSlice/selectors.d.ts +2 -2
  42. package/dist/devicesSlice/selectors.js.map +1 -1
  43. package/dist/devicesSlice/thunks.d.cts +1 -1
  44. package/dist/devicesSlice/thunks.d.ts +1 -1
  45. package/dist/{index-WXwgRjLt.d.cts → index-SwHfGav1.d.cts} +29 -6
  46. package/dist/{index-CQo3yTUa.d.ts → index-uxdvFzzE.d.ts} +29 -6
  47. package/dist/liststatehook.cjs +5 -3
  48. package/dist/liststatehook.cjs.map +1 -1
  49. package/dist/liststatehook.js +5 -3
  50. package/dist/liststatehook.js.map +1 -1
  51. package/dist/locationutils.cjs.map +1 -1
  52. package/dist/locationutils.js.map +1 -1
  53. package/dist/monitorSlice/index.cjs.map +1 -1
  54. package/dist/monitorSlice/index.js.map +1 -1
  55. package/dist/monitorSlice/mocks.cjs.map +1 -1
  56. package/dist/monitorSlice/mocks.js.map +1 -1
  57. package/dist/monitorSlice/selectors.d.cts +1 -1
  58. package/dist/monitorSlice/selectors.d.ts +1 -1
  59. package/dist/monitorSlice/thunks.cjs.map +1 -1
  60. package/dist/monitorSlice/thunks.d.cts +1 -1
  61. package/dist/monitorSlice/thunks.d.ts +1 -1
  62. package/dist/monitorSlice/thunks.js.map +1 -1
  63. package/dist/onboardingSlice/index.cjs.map +1 -1
  64. package/dist/onboardingSlice/index.js.map +1 -1
  65. package/dist/onboardingSlice/mocks.cjs.map +1 -1
  66. package/dist/onboardingSlice/selectors.d.cts +1 -1
  67. package/dist/onboardingSlice/selectors.d.ts +1 -1
  68. package/dist/onboardingSlice/thunks.d.cts +1 -1
  69. package/dist/onboardingSlice/thunks.d.ts +1 -1
  70. package/dist/organizationSlice/index.cjs.map +1 -1
  71. package/dist/organizationSlice/index.js.map +1 -1
  72. package/dist/organizationSlice/selectors.cjs.map +1 -1
  73. package/dist/organizationSlice/selectors.d.cts +2 -2
  74. package/dist/organizationSlice/selectors.d.ts +2 -2
  75. package/dist/organizationSlice/selectors.js.map +1 -1
  76. package/dist/organizationSlice/thunks.d.cts +1 -1
  77. package/dist/organizationSlice/thunks.d.ts +1 -1
  78. package/dist/releasesSlice/index.cjs +45 -2
  79. package/dist/releasesSlice/index.cjs.map +1 -1
  80. package/dist/releasesSlice/index.d.cts +2 -2
  81. package/dist/releasesSlice/index.d.ts +2 -2
  82. package/dist/releasesSlice/index.js +45 -2
  83. package/dist/releasesSlice/index.js.map +1 -1
  84. package/dist/releasesSlice/mocks.cjs +28 -0
  85. package/dist/releasesSlice/mocks.cjs.map +1 -1
  86. package/dist/releasesSlice/mocks.d.cts +30 -1
  87. package/dist/releasesSlice/mocks.d.ts +30 -1
  88. package/dist/releasesSlice/mocks.js +28 -0
  89. package/dist/releasesSlice/mocks.js.map +1 -1
  90. package/dist/releasesSlice/selectors.cjs +32 -7
  91. package/dist/releasesSlice/selectors.cjs.map +1 -1
  92. package/dist/releasesSlice/selectors.d.cts +316 -18
  93. package/dist/releasesSlice/selectors.d.ts +316 -18
  94. package/dist/releasesSlice/selectors.js +25 -8
  95. package/dist/releasesSlice/selectors.js.map +1 -1
  96. package/dist/releasesSlice/thunks.cjs +212 -18
  97. package/dist/releasesSlice/thunks.cjs.map +1 -1
  98. package/dist/releasesSlice/thunks.d.cts +127 -8
  99. package/dist/releasesSlice/thunks.d.ts +127 -8
  100. package/dist/releasesSlice/thunks.js +204 -20
  101. package/dist/releasesSlice/thunks.js.map +1 -1
  102. package/dist/selectors.cjs +8 -0
  103. package/dist/selectors.d.cts +2 -2
  104. package/dist/selectors.d.ts +2 -2
  105. package/dist/selectors.js +2 -2
  106. package/dist/sockethook.cjs +2 -2
  107. package/dist/sockethook.cjs.map +1 -1
  108. package/dist/sockethook.js.map +1 -1
  109. package/dist/{store-NOBz-rVZ.d.cts → store-BC3rDsIH.d.cts} +2 -2
  110. package/dist/{store-Boqp1x2t.d.ts → store-BjVukDvt.d.ts} +2 -2
  111. package/dist/store.cjs.map +1 -1
  112. package/dist/store.d.cts +1 -1
  113. package/dist/store.d.ts +1 -1
  114. package/dist/store.js.map +1 -1
  115. package/dist/storehooks.cjs +3 -3
  116. package/dist/storehooks.cjs.map +1 -1
  117. package/dist/storehooks.d.cts +1 -1
  118. package/dist/storehooks.d.ts +1 -1
  119. package/dist/storehooks.js.map +1 -1
  120. package/dist/thunks.cjs +21 -10
  121. package/dist/thunks.cjs.map +1 -1
  122. package/dist/thunks.d.cts +2 -2
  123. package/dist/thunks.d.ts +2 -2
  124. package/dist/thunks.js +8 -6
  125. package/dist/thunks.js.map +1 -1
  126. package/dist/useDeploymentDevice.cjs +1 -1
  127. package/dist/useDeploymentDevice.cjs.map +1 -1
  128. package/dist/useDeploymentDevice.js.map +1 -1
  129. package/dist/usersSlice/index.cjs.map +1 -1
  130. package/dist/usersSlice/index.js.map +1 -1
  131. package/dist/usersSlice/selectors.cjs.map +1 -1
  132. package/dist/usersSlice/selectors.d.cts +2 -2
  133. package/dist/usersSlice/selectors.d.ts +2 -2
  134. package/dist/usersSlice/selectors.js.map +1 -1
  135. package/dist/usersSlice/thunks.d.cts +1 -1
  136. package/dist/usersSlice/thunks.d.ts +1 -1
  137. package/dist/utils.cjs.map +1 -1
  138. package/dist/utils.js.map +1 -1
  139. package/package.json +8 -8
@@ -1,10 +1,10 @@
1
1
  import { T as SortOptions } from "../constants-BrGIx40B.cjs";
2
- import { a as ReleasesList, n as ManifestsList, r as Release } from "../index-WXwgRjLt.cjs";
2
+ import { a as ReleasesList, n as ManifestsList, r as Release, s as SoftwareList } from "../index-SwHfGav1.cjs";
3
3
  import { s as SnackbarContent } from "../index-DwACbyUg.cjs";
4
- import { r as RootState, t as AppDispatch } from "../store-NOBz-rVZ.cjs";
4
+ import { r as RootState, t as AppDispatch } from "../store-BC3rDsIH.cjs";
5
5
  import * as _$_reduxjs_toolkit0 from "@reduxjs/toolkit";
6
6
  import * as _$redux from "redux";
7
- import { ArtifactUpdateV1, DeltaJobsListItem, Manifest, ReleaseUpdate, Tags } from "@northern.tech/types/MenderTypes";
7
+ import { ArtifactUpdateV1, DeltaJobsListItem, Manifest, ManifestUpdate, ReleaseUpdate, Software, Tags } from "@northern.tech/types/MenderTypes";
8
8
  import * as _$_northern_tech_types_types_gen0 from "@northern.tech/types/types.gen";
9
9
 
10
10
  //#region src/releasesSlice/thunks.d.ts
@@ -294,10 +294,17 @@ declare const setReleasesTags: _$_reduxjs_toolkit0.AsyncThunk<{
294
294
  fulfilledMeta?: unknown;
295
295
  rejectedMeta?: unknown;
296
296
  }>;
297
- declare const getExistingReleaseTags: _$_reduxjs_toolkit0.AsyncThunk<{
298
- payload: string[];
299
- type: "releases/receiveReleaseTags";
300
- }, void, {
297
+ declare const getExistingSoftwareTags: _$_reduxjs_toolkit0.AsyncThunk<Tags | undefined, "release" | "manifest" | undefined, {
298
+ dispatch: AppDispatch;
299
+ state: RootState;
300
+ extra?: unknown;
301
+ rejectValue?: unknown;
302
+ serializedErrorType?: unknown;
303
+ pendingMeta?: unknown;
304
+ fulfilledMeta?: unknown;
305
+ rejectedMeta?: unknown;
306
+ }>;
307
+ declare const getExistingReleaseTags: _$_reduxjs_toolkit0.AsyncThunk<void, void, {
301
308
  dispatch: AppDispatch;
302
309
  state: RootState;
303
310
  extra?: unknown;
@@ -354,6 +361,49 @@ declare const getDeltaGenerationJobDetails: _$_reduxjs_toolkit0.AsyncThunk<{
354
361
  fulfilledMeta?: unknown;
355
362
  rejectedMeta?: unknown;
356
363
  }>;
364
+ type ManifestCreationPayload = {
365
+ file: File;
366
+ meta: {
367
+ description?: string;
368
+ tags?: string[];
369
+ };
370
+ };
371
+ declare const uploadManifest: _$_reduxjs_toolkit0.AsyncThunk<{
372
+ payload: string | SnackbarContent;
373
+ type: "app/setSnackbar";
374
+ } | undefined, ManifestCreationPayload, {
375
+ dispatch: AppDispatch;
376
+ state: RootState;
377
+ extra?: unknown;
378
+ rejectValue?: unknown;
379
+ serializedErrorType?: unknown;
380
+ pendingMeta?: unknown;
381
+ fulfilledMeta?: unknown;
382
+ rejectedMeta?: unknown;
383
+ }>;
384
+ declare const generateManifest: _$_reduxjs_toolkit0.AsyncThunk<{
385
+ payload: string | SnackbarContent;
386
+ type: "app/setSnackbar";
387
+ } | undefined, ManifestCreationPayload, {
388
+ dispatch: AppDispatch;
389
+ state: RootState;
390
+ extra?: unknown;
391
+ rejectValue?: unknown;
392
+ serializedErrorType?: unknown;
393
+ pendingMeta?: unknown;
394
+ fulfilledMeta?: unknown;
395
+ rejectedMeta?: unknown;
396
+ }>;
397
+ declare const getExistingManifestTags: _$_reduxjs_toolkit0.AsyncThunk<void, void, {
398
+ dispatch: AppDispatch;
399
+ state: RootState;
400
+ extra?: unknown;
401
+ rejectValue?: unknown;
402
+ serializedErrorType?: unknown;
403
+ pendingMeta?: unknown;
404
+ fulfilledMeta?: unknown;
405
+ rejectedMeta?: unknown;
406
+ }>;
357
407
  declare const getManifests: _$_reduxjs_toolkit0.AsyncThunk<{
358
408
  [x: string]: Manifest;
359
409
  }, Partial<ManifestsList> | undefined, {
@@ -383,6 +433,53 @@ declare const getManifest: _$_reduxjs_toolkit0.AsyncThunk<{
383
433
  fulfilledMeta?: unknown;
384
434
  rejectedMeta?: unknown;
385
435
  }>;
436
+ declare const updateManifestInfo: _$_reduxjs_toolkit0.AsyncThunk<void, {
437
+ info: ManifestUpdate;
438
+ name: string;
439
+ }, {
440
+ dispatch: AppDispatch;
441
+ state: RootState;
442
+ extra?: unknown;
443
+ rejectValue?: unknown;
444
+ serializedErrorType?: unknown;
445
+ pendingMeta?: unknown;
446
+ fulfilledMeta?: unknown;
447
+ rejectedMeta?: unknown;
448
+ }>;
449
+ declare const removeManifests: _$_reduxjs_toolkit0.AsyncThunk<void, string[], {
450
+ dispatch: AppDispatch;
451
+ state: RootState;
452
+ extra?: unknown;
453
+ rejectValue?: unknown;
454
+ serializedErrorType?: unknown;
455
+ pendingMeta?: unknown;
456
+ fulfilledMeta?: unknown;
457
+ rejectedMeta?: unknown;
458
+ }>;
459
+ declare const removeManifest: _$_reduxjs_toolkit0.AsyncThunk<_$_reduxjs_toolkit0.PayloadAction<void, string, {
460
+ arg: string[];
461
+ requestId: string;
462
+ requestStatus: "fulfilled";
463
+ }, never> | _$_reduxjs_toolkit0.PayloadAction<unknown, string, {
464
+ arg: string[];
465
+ requestId: string;
466
+ requestStatus: "rejected";
467
+ aborted: boolean;
468
+ condition: boolean;
469
+ } & ({
470
+ rejectedWithValue: true;
471
+ } | ({
472
+ rejectedWithValue: false;
473
+ } & {})), _$_reduxjs_toolkit0.SerializedError>, string, {
474
+ dispatch: AppDispatch;
475
+ state: RootState;
476
+ extra?: unknown;
477
+ rejectValue?: unknown;
478
+ serializedErrorType?: unknown;
479
+ pendingMeta?: unknown;
480
+ fulfilledMeta?: unknown;
481
+ rejectedMeta?: unknown;
482
+ }>;
386
483
  declare const selectManifest: _$_reduxjs_toolkit0.AsyncThunk<void, string | Manifest | null, {
387
484
  dispatch: AppDispatch;
388
485
  state: RootState;
@@ -403,6 +500,28 @@ declare const setManifestsListState: _$_reduxjs_toolkit0.AsyncThunk<void, Partia
403
500
  fulfilledMeta?: unknown;
404
501
  rejectedMeta?: unknown;
405
502
  }>;
503
+ declare const getSoftware: _$_reduxjs_toolkit0.AsyncThunk<{
504
+ [x: string]: Software;
505
+ }, Partial<SoftwareList> | undefined, {
506
+ dispatch: AppDispatch;
507
+ state: RootState;
508
+ extra?: unknown;
509
+ rejectValue?: unknown;
510
+ serializedErrorType?: unknown;
511
+ pendingMeta?: unknown;
512
+ fulfilledMeta?: unknown;
513
+ rejectedMeta?: unknown;
514
+ }>;
515
+ declare const setSoftwareListState: _$_reduxjs_toolkit0.AsyncThunk<void, Partial<SoftwareList>, {
516
+ dispatch: AppDispatch;
517
+ state: RootState;
518
+ extra?: unknown;
519
+ rejectValue?: unknown;
520
+ serializedErrorType?: unknown;
521
+ pendingMeta?: unknown;
522
+ fulfilledMeta?: unknown;
523
+ rejectedMeta?: unknown;
524
+ }>;
406
525
  //#endregion
407
- export { cancelFileUpload, createArtifact, editArtifact, getArtifactInstallCount, getArtifactUrl, getDeltaGenerationJobDetails, getDeltaGenerationJobs, getExistingReleaseTags, getManifest, getManifests, getRelease, getReleases, getUpdateTypes, removeArtifact, removeRelease, removeReleases, selectManifest, selectRelease, setManifestsListState, setReleaseTags, setReleasesListState, setReleasesTags, setSingleReleaseTags, updateReleaseInfo, uploadArtifact };
526
+ export { cancelFileUpload, createArtifact, editArtifact, generateManifest, getArtifactInstallCount, getArtifactUrl, getDeltaGenerationJobDetails, getDeltaGenerationJobs, getExistingManifestTags, getExistingReleaseTags, getExistingSoftwareTags, getManifest, getManifests, getRelease, getReleases, getSoftware, getUpdateTypes, removeArtifact, removeManifest, removeManifests, removeRelease, removeReleases, selectManifest, selectRelease, setManifestsListState, setReleaseTags, setReleasesListState, setReleasesTags, setSingleReleaseTags, setSoftwareListState, updateManifestInfo, updateReleaseInfo, uploadArtifact, uploadManifest };
408
527
  //# sourceMappingURL=thunks.d.cts.map
@@ -1,10 +1,10 @@
1
1
  import { T as SortOptions } from "../constants-CjO3_FOH.js";
2
- import { a as ReleasesList, n as ManifestsList, r as Release } from "../index-CQo3yTUa.js";
2
+ import { a as ReleasesList, n as ManifestsList, r as Release, s as SoftwareList } from "../index-uxdvFzzE.js";
3
3
  import { s as SnackbarContent } from "../index-Bp1WpATs.js";
4
- import { r as RootState, t as AppDispatch } from "../store-Boqp1x2t.js";
4
+ import { r as RootState, t as AppDispatch } from "../store-BjVukDvt.js";
5
5
  import * as _$_reduxjs_toolkit0 from "@reduxjs/toolkit";
6
6
  import * as _$redux from "redux";
7
- import { ArtifactUpdateV1, DeltaJobsListItem, Manifest, ReleaseUpdate, Tags } from "@northern.tech/types/MenderTypes";
7
+ import { ArtifactUpdateV1, DeltaJobsListItem, Manifest, ManifestUpdate, ReleaseUpdate, Software, Tags } from "@northern.tech/types/MenderTypes";
8
8
  import * as _$_northern_tech_types_types_gen0 from "@northern.tech/types/types.gen";
9
9
 
10
10
  //#region src/releasesSlice/thunks.d.ts
@@ -294,10 +294,17 @@ declare const setReleasesTags: _$_reduxjs_toolkit0.AsyncThunk<{
294
294
  fulfilledMeta?: unknown;
295
295
  rejectedMeta?: unknown;
296
296
  }>;
297
- declare const getExistingReleaseTags: _$_reduxjs_toolkit0.AsyncThunk<{
298
- payload: string[];
299
- type: "releases/receiveReleaseTags";
300
- }, void, {
297
+ declare const getExistingSoftwareTags: _$_reduxjs_toolkit0.AsyncThunk<Tags | undefined, "release" | "manifest" | undefined, {
298
+ dispatch: AppDispatch;
299
+ state: RootState;
300
+ extra?: unknown;
301
+ rejectValue?: unknown;
302
+ serializedErrorType?: unknown;
303
+ pendingMeta?: unknown;
304
+ fulfilledMeta?: unknown;
305
+ rejectedMeta?: unknown;
306
+ }>;
307
+ declare const getExistingReleaseTags: _$_reduxjs_toolkit0.AsyncThunk<void, void, {
301
308
  dispatch: AppDispatch;
302
309
  state: RootState;
303
310
  extra?: unknown;
@@ -354,6 +361,49 @@ declare const getDeltaGenerationJobDetails: _$_reduxjs_toolkit0.AsyncThunk<{
354
361
  fulfilledMeta?: unknown;
355
362
  rejectedMeta?: unknown;
356
363
  }>;
364
+ type ManifestCreationPayload = {
365
+ file: File;
366
+ meta: {
367
+ description?: string;
368
+ tags?: string[];
369
+ };
370
+ };
371
+ declare const uploadManifest: _$_reduxjs_toolkit0.AsyncThunk<{
372
+ payload: string | SnackbarContent;
373
+ type: "app/setSnackbar";
374
+ } | undefined, ManifestCreationPayload, {
375
+ dispatch: AppDispatch;
376
+ state: RootState;
377
+ extra?: unknown;
378
+ rejectValue?: unknown;
379
+ serializedErrorType?: unknown;
380
+ pendingMeta?: unknown;
381
+ fulfilledMeta?: unknown;
382
+ rejectedMeta?: unknown;
383
+ }>;
384
+ declare const generateManifest: _$_reduxjs_toolkit0.AsyncThunk<{
385
+ payload: string | SnackbarContent;
386
+ type: "app/setSnackbar";
387
+ } | undefined, ManifestCreationPayload, {
388
+ dispatch: AppDispatch;
389
+ state: RootState;
390
+ extra?: unknown;
391
+ rejectValue?: unknown;
392
+ serializedErrorType?: unknown;
393
+ pendingMeta?: unknown;
394
+ fulfilledMeta?: unknown;
395
+ rejectedMeta?: unknown;
396
+ }>;
397
+ declare const getExistingManifestTags: _$_reduxjs_toolkit0.AsyncThunk<void, void, {
398
+ dispatch: AppDispatch;
399
+ state: RootState;
400
+ extra?: unknown;
401
+ rejectValue?: unknown;
402
+ serializedErrorType?: unknown;
403
+ pendingMeta?: unknown;
404
+ fulfilledMeta?: unknown;
405
+ rejectedMeta?: unknown;
406
+ }>;
357
407
  declare const getManifests: _$_reduxjs_toolkit0.AsyncThunk<{
358
408
  [x: string]: Manifest;
359
409
  }, Partial<ManifestsList> | undefined, {
@@ -383,6 +433,53 @@ declare const getManifest: _$_reduxjs_toolkit0.AsyncThunk<{
383
433
  fulfilledMeta?: unknown;
384
434
  rejectedMeta?: unknown;
385
435
  }>;
436
+ declare const updateManifestInfo: _$_reduxjs_toolkit0.AsyncThunk<void, {
437
+ info: ManifestUpdate;
438
+ name: string;
439
+ }, {
440
+ dispatch: AppDispatch;
441
+ state: RootState;
442
+ extra?: unknown;
443
+ rejectValue?: unknown;
444
+ serializedErrorType?: unknown;
445
+ pendingMeta?: unknown;
446
+ fulfilledMeta?: unknown;
447
+ rejectedMeta?: unknown;
448
+ }>;
449
+ declare const removeManifests: _$_reduxjs_toolkit0.AsyncThunk<void, string[], {
450
+ dispatch: AppDispatch;
451
+ state: RootState;
452
+ extra?: unknown;
453
+ rejectValue?: unknown;
454
+ serializedErrorType?: unknown;
455
+ pendingMeta?: unknown;
456
+ fulfilledMeta?: unknown;
457
+ rejectedMeta?: unknown;
458
+ }>;
459
+ declare const removeManifest: _$_reduxjs_toolkit0.AsyncThunk<_$_reduxjs_toolkit0.PayloadAction<void, string, {
460
+ arg: string[];
461
+ requestId: string;
462
+ requestStatus: "fulfilled";
463
+ }, never> | _$_reduxjs_toolkit0.PayloadAction<unknown, string, {
464
+ arg: string[];
465
+ requestId: string;
466
+ requestStatus: "rejected";
467
+ aborted: boolean;
468
+ condition: boolean;
469
+ } & ({
470
+ rejectedWithValue: true;
471
+ } | ({
472
+ rejectedWithValue: false;
473
+ } & {})), _$_reduxjs_toolkit0.SerializedError>, string, {
474
+ dispatch: AppDispatch;
475
+ state: RootState;
476
+ extra?: unknown;
477
+ rejectValue?: unknown;
478
+ serializedErrorType?: unknown;
479
+ pendingMeta?: unknown;
480
+ fulfilledMeta?: unknown;
481
+ rejectedMeta?: unknown;
482
+ }>;
386
483
  declare const selectManifest: _$_reduxjs_toolkit0.AsyncThunk<void, string | Manifest | null, {
387
484
  dispatch: AppDispatch;
388
485
  state: RootState;
@@ -403,6 +500,28 @@ declare const setManifestsListState: _$_reduxjs_toolkit0.AsyncThunk<void, Partia
403
500
  fulfilledMeta?: unknown;
404
501
  rejectedMeta?: unknown;
405
502
  }>;
503
+ declare const getSoftware: _$_reduxjs_toolkit0.AsyncThunk<{
504
+ [x: string]: Software;
505
+ }, Partial<SoftwareList> | undefined, {
506
+ dispatch: AppDispatch;
507
+ state: RootState;
508
+ extra?: unknown;
509
+ rejectValue?: unknown;
510
+ serializedErrorType?: unknown;
511
+ pendingMeta?: unknown;
512
+ fulfilledMeta?: unknown;
513
+ rejectedMeta?: unknown;
514
+ }>;
515
+ declare const setSoftwareListState: _$_reduxjs_toolkit0.AsyncThunk<void, Partial<SoftwareList>, {
516
+ dispatch: AppDispatch;
517
+ state: RootState;
518
+ extra?: unknown;
519
+ rejectValue?: unknown;
520
+ serializedErrorType?: unknown;
521
+ pendingMeta?: unknown;
522
+ fulfilledMeta?: unknown;
523
+ rejectedMeta?: unknown;
524
+ }>;
406
525
  //#endregion
407
- export { cancelFileUpload, createArtifact, editArtifact, getArtifactInstallCount, getArtifactUrl, getDeltaGenerationJobDetails, getDeltaGenerationJobs, getExistingReleaseTags, getManifest, getManifests, getRelease, getReleases, getUpdateTypes, removeArtifact, removeRelease, removeReleases, selectManifest, selectRelease, setManifestsListState, setReleaseTags, setReleasesListState, setReleasesTags, setSingleReleaseTags, updateReleaseInfo, uploadArtifact };
526
+ export { cancelFileUpload, createArtifact, editArtifact, generateManifest, getArtifactInstallCount, getArtifactUrl, getDeltaGenerationJobDetails, getDeltaGenerationJobs, getExistingManifestTags, getExistingReleaseTags, getExistingSoftwareTags, getManifest, getManifests, getRelease, getReleases, getSoftware, getUpdateTypes, removeArtifact, removeManifest, removeManifests, removeRelease, removeReleases, selectManifest, selectRelease, setManifestsListState, setReleaseTags, setReleasesListState, setReleasesTags, setSingleReleaseTags, setSoftwareListState, updateManifestInfo, updateReleaseInfo, uploadArtifact, uploadManifest };
408
527
  //# sourceMappingURL=thunks.d.ts.map
@@ -3,12 +3,13 @@ import { DEVICE_LIST_DEFAULTS, SORTING_OPTIONS, TIMEOUTS, deploymentsApiUrl, dep
3
3
  import { actions, sliceName } from "./index.js";
4
4
  import actions_default from "../actions.js";
5
5
  import { convertDeviceListStateToFilters, progress } from "../utils.js";
6
- import { getManifestsById, getReleasesById } from "./selectors.js";
6
+ import { getManifestsById, getManifestsListState, getReleasesById, getSoftwareListState } from "./selectors.js";
7
7
  import { formatReleases } from "../locationutils.js";
8
8
  import { commonErrorFallback, commonErrorHandler, createAppAsyncThunk } from "../store.js";
9
9
  import Api from "../api/general-api.js";
10
- import { customSort, deepCompare, duplicateFilter, extractSoftwareItem } from "@northern.tech/utils/helpers";
10
+ import { customSort, deepCompare, duplicateFilter, extractErrorMessage, extractSoftwareItem } from "@northern.tech/utils/helpers";
11
11
  import { isCancel } from "axios";
12
+ import pluralize from "pluralize";
12
13
  import { v4 } from "uuid";
13
14
  //#region src/releasesSlice/thunks.ts
14
15
  const { setSnackbar, initUpload, uploadProgress, cleanUpUpload } = actions_default;
@@ -391,13 +392,25 @@ const setReleasesTags = createAppAsyncThunk(`${sliceName}/setReleasesTags`, ({ r
391
392
  action: ""
392
393
  }))));
393
394
  });
394
- const getExistingReleaseTags = createAppAsyncThunk(`${sliceName}/getReleaseTags`, (_, { dispatch }) => Api.get(`${deploymentsApiUrlV2}/releases/all/tags`).catch((err) => commonErrorHandler(err, `Existing release tags couldn't be retrieved.`, dispatch)).then(({ data: tags }) => Promise.resolve(dispatch(actions.receiveReleaseTags(tags)))));
395
+ const getExistingSoftwareTags = createAppAsyncThunk(`${sliceName}/getSoftwareTags`, async (kind, { dispatch }) => {
396
+ const { data: tags } = await Api.get(`${deploymentsApiUrlV1alpha1}/software/tags`, { params: { kind } }).catch((err) => commonErrorHandler(err, `Existing ${kind ?? "software"} tags couldn't be retrieved.`, dispatch));
397
+ if (kind) return tags;
398
+ dispatch(actions.receiveSoftwareTags(tags));
399
+ });
400
+ const getExistingReleaseTags = createAppAsyncThunk(`${sliceName}/getReleaseTags`, async (_, { dispatch }) => {
401
+ const tags = await dispatch(getExistingSoftwareTags("release")).unwrap() ?? [];
402
+ dispatch(actions.receiveReleaseTags(tags));
403
+ });
395
404
  const getUpdateTypes = createAppAsyncThunk(`${sliceName}/getReleaseTypes`, (_, { dispatch }) => Api.get(`${deploymentsApiUrlV2}/releases/all/types`).catch((err) => commonErrorHandler(err, `Existing update types couldn't be retrieved.`, dispatch)).then(({ data: types }) => Promise.resolve(dispatch(actions.receiveReleaseTypes(types)))));
396
405
  const getDeltaGenerationJobs = createAppAsyncThunk(`${sliceName}/getDeltaGenerationJobs`, (options = {}, { dispatch }) => {
397
406
  const { page = defaultPage, perPage = defaultPerPage, sort = {} } = options;
398
407
  const { key: sortKey, direction: sortDirection } = sort;
399
- const sortParam = sortKey && sortDirection ? `&sort=${sortKey}:${sortDirection}` : "";
400
- return Api.get(`${deploymentsApiUrlV2}/deployments/releases/delta/jobs?page=${page}&per_page=${perPage}${sortParam}`).then(({ data, headers }) => {
408
+ const sortParam = sortKey && sortDirection ? `${sortKey}:${sortDirection}` : void 0;
409
+ return Api.get(`${deploymentsApiUrlV2}/deployments/releases/delta/jobs`, { params: {
410
+ page,
411
+ per_page: perPage,
412
+ sort: sortParam
413
+ } }).then(({ data, headers }) => {
401
414
  const result = {
402
415
  jobs: data,
403
416
  total: Number(headers[headerNames.total]) || data.length
@@ -413,21 +426,17 @@ const manifestSortingDefaults = {
413
426
  direction: SORTING_OPTIONS.desc,
414
427
  key: "modified"
415
428
  };
416
- const reduceReceivedManifests = (manifests) => manifests.reduce((accu, manifest) => {
417
- accu[manifest.name] = manifest;
418
- return accu;
419
- }, {});
429
+ const transformReceivedSoftware = (items) => Object.fromEntries(items.map((item) => [item.name, item]));
420
430
  const manifestListRetrieval = (config) => {
421
- const { searchTerm = "", page = defaultPage, perPage = defaultPerPage, sort = manifestSortingDefaults } = config;
431
+ const { searchTerm, page = defaultPage, perPage = defaultPerPage, sort = manifestSortingDefaults } = config;
422
432
  const { key: attribute, direction } = sort;
423
- const nameFilter = searchTerm ? `name=${encodeURIComponent(searchTerm)}` : "";
424
- const sorting = attribute ? `sort=${attribute}:${direction}`.toLowerCase() : "";
425
- return Api.get(`${deploymentsApiUrlV1alpha1}/manifests?${[
426
- `page=${page}`,
427
- `per_page=${perPage}`,
428
- nameFilter,
429
- sorting
430
- ].filter((i) => i).join("&")}`);
433
+ const sorting = attribute ? `${attribute}:${direction}`.toLowerCase() : void 0;
434
+ return Api.get(`${deploymentsApiUrlV1alpha1}/manifests`, { params: {
435
+ page,
436
+ per_page: perPage,
437
+ name: searchTerm,
438
+ sort: sorting
439
+ } });
431
440
  };
432
441
  const deductManifestSearchState = (receivedManifests, config, total, state) => {
433
442
  let manifestsListState = { ...state.manifestsList };
@@ -442,6 +451,89 @@ const deductManifestSearchState = (receivedManifests, config, total, state) => {
442
451
  };
443
452
  return manifestsListState;
444
453
  };
454
+ const toManifestCreationData = ({ description, tags }) => {
455
+ const formData = new FormData();
456
+ if (description) formData.append("description", description);
457
+ if (tags?.length) formData.append("tags", tags.join(","));
458
+ return formData;
459
+ };
460
+ const uploadManifest = createAppAsyncThunk(`${sliceName}/uploadManifest`, async ({ file, meta }, { dispatch, rejectWithValue }) => {
461
+ const formData = toManifestCreationData(meta);
462
+ formData.append("size", file.size.toString());
463
+ formData.append("artifact", file);
464
+ const uploadId = v4();
465
+ const cancelSource = new AbortController();
466
+ dispatch(initUpload({
467
+ id: uploadId,
468
+ upload: {
469
+ name: file.name,
470
+ size: file.size,
471
+ progress: 0,
472
+ cancelSource
473
+ }
474
+ }));
475
+ try {
476
+ const { headers } = await Api.upload(`${deploymentsApiUrlV1alpha1}/manifests`, formData, (e) => dispatch(uploadProgress({
477
+ id: uploadId,
478
+ progress: progress(e)
479
+ })), cancelSource.signal);
480
+ const location = headers[headerNames.location];
481
+ await pollLocation(location);
482
+ await dispatch(getManifests()).unwrap();
483
+ dispatch(setSnackbar({
484
+ message: "Upload successful",
485
+ autoHideDuration: TIMEOUTS.fiveSeconds
486
+ }));
487
+ } catch (err) {
488
+ if (isCancel(err)) return dispatch(setSnackbar({
489
+ message: "The upload has been cancelled",
490
+ autoHideDuration: TIMEOUTS.fiveSeconds
491
+ }));
492
+ return commonErrorHandler(err, `Manifest couldn't be uploaded.`, dispatch).catch((e) => rejectWithValue(extractErrorMessage(e)));
493
+ } finally {
494
+ dispatch(cleanUpUpload(uploadId));
495
+ }
496
+ });
497
+ const generateManifest = createAppAsyncThunk(`${sliceName}/generateManifest`, async ({ file, meta }, { dispatch }) => {
498
+ const formData = toManifestCreationData(meta);
499
+ formData.append("file", file);
500
+ const uploadId = v4();
501
+ const cancelSource = new AbortController();
502
+ dispatch(initUpload({
503
+ id: uploadId,
504
+ upload: {
505
+ name: file.name,
506
+ size: file.size,
507
+ progress: 0,
508
+ cancelSource
509
+ }
510
+ }));
511
+ try {
512
+ const { headers } = await Api.upload(`${deploymentsApiUrlV1alpha1}/manifests/generate`, formData, (e) => dispatch(uploadProgress({
513
+ id: uploadId,
514
+ progress: progress(e)
515
+ })), cancelSource.signal);
516
+ const location = headers[headerNames.location];
517
+ await pollLocation(location);
518
+ await dispatch(getManifests()).unwrap();
519
+ dispatch(setSnackbar({
520
+ message: "Upload successful",
521
+ autoHideDuration: TIMEOUTS.fiveSeconds
522
+ }));
523
+ } catch (err) {
524
+ if (isCancel(err)) return dispatch(setSnackbar({
525
+ message: "The manifest generation has been cancelled",
526
+ autoHideDuration: TIMEOUTS.fiveSeconds
527
+ }));
528
+ return commonErrorHandler(err, `Manifest couldn't be generated.`, dispatch);
529
+ } finally {
530
+ dispatch(cleanUpUpload(uploadId));
531
+ }
532
+ });
533
+ const getExistingManifestTags = createAppAsyncThunk(`${sliceName}/getManifestTags`, async (_, { dispatch }) => {
534
+ const tags = await dispatch(getExistingSoftwareTags("manifest")).unwrap() ?? [];
535
+ dispatch(actions.receiveManifestTags(tags));
536
+ });
445
537
  const getManifests = createAppAsyncThunk(`${sliceName}/getManifests`, async (passedConfig = {}, { dispatch, getState }) => {
446
538
  const config = {
447
539
  ...getState().releases.manifestsList,
@@ -450,7 +542,7 @@ const getManifests = createAppAsyncThunk(`${sliceName}/getManifests`, async (pas
450
542
  const { data: receivedManifests = [], headers = {} } = await manifestListRetrieval(config).catch((err) => commonErrorHandler(err, `Please check your connection`, dispatch));
451
543
  const total = headers[headerNames.total] ? Number(headers[headerNames.total]) : 0;
452
544
  const state = getState().releases;
453
- const flatManifests = reduceReceivedManifests(receivedManifests);
545
+ const flatManifests = transformReceivedSoftware(receivedManifests);
454
546
  const combinedManifests = {
455
547
  ...state.manifestsById,
456
548
  ...flatManifests
@@ -470,6 +562,34 @@ const getManifest = createAppAsyncThunk(`${sliceName}/getManifest`, async (name,
470
562
  dispatch(actions.receiveManifest(manifest));
471
563
  return manifest;
472
564
  });
565
+ const updateManifestInfo = createAppAsyncThunk(`${sliceName}/updateManifestInfo`, ({ name, info }, { dispatch, getState }) => Api.patch(`${deploymentsApiUrlV1alpha1}/manifests/${name}`, info).catch((err) => commonErrorHandler(err, `Manifest details couldn't be updated.`, dispatch)).then(() => {
566
+ dispatch(actions.receiveManifest({
567
+ ...getManifestsById(getState())[name],
568
+ ...info,
569
+ name
570
+ }));
571
+ dispatch(setSnackbar("Manifest details were updated successfully."));
572
+ }));
573
+ const removeManifests = createAppAsyncThunk(`${sliceName}/removeManifests`, async (names, { dispatch, getState }) => {
574
+ const nameParams = names.map((name) => `name=${encodeURIComponent(name)}`).join("&");
575
+ await Api.delete(`${deploymentsApiUrlV1alpha1}/manifests?${nameParams}`).catch((err) => commonErrorHandler(err, `Manifest${names.length > 1 ? "s" : ""} couldn't be deleted.`, dispatch));
576
+ const manifestsList = getManifestsListState(getState());
577
+ const manifestIds = manifestsList.manifestIds.filter((id) => !names.includes(id));
578
+ dispatch(actions.removeManifests(names));
579
+ dispatch(setManifestsListState({
580
+ manifestIds,
581
+ searchTotal: manifestsList.searchTerm ? manifestsList.searchTotal - names.length : manifestsList.searchTotal,
582
+ total: manifestsList.total - names.length
583
+ }));
584
+ dispatch(setSnackbar({
585
+ message: `${pluralize("Manifest", names.length)} deleted successfully.`,
586
+ autoHideDuration: TIMEOUTS.fiveSeconds,
587
+ action: ""
588
+ }));
589
+ dispatch(selectManifest(null));
590
+ await dispatch(getManifests()).unwrap();
591
+ });
592
+ const removeManifest = createAppAsyncThunk(`${sliceName}/removeManifest`, (name, { dispatch }) => dispatch(removeManifests([name])));
473
593
  const selectManifest = createAppAsyncThunk(`${sliceName}/selectManifest`, async (manifest, { dispatch }) => {
474
594
  const name = (manifest && typeof manifest === "object" ? manifest.name : manifest) || null;
475
595
  dispatch(actions.selectedManifest(name));
@@ -494,7 +614,71 @@ const setManifestsListState = createAppAsyncThunk(`${sliceName}/setManifestsList
494
614
  if (currentState.page !== nextState.page || currentState.perPage > nextState.perPage || !deepCompare(currentState.sort, nextState.sort)) nextState.selection = [];
495
615
  dispatch(actions.setManifestsListState(nextState));
496
616
  });
617
+ const softwareSortingDefaults = {
618
+ direction: SORTING_OPTIONS.desc,
619
+ key: "modified"
620
+ };
621
+ const softwareListRetrieval = (config) => {
622
+ const { searchTerm, page = defaultPage, perPage = defaultPerPage, sort = softwareSortingDefaults } = config;
623
+ const { key: attribute, direction } = sort;
624
+ const sorting = attribute ? `${attribute}:${direction}`.toLowerCase() : void 0;
625
+ return Api.get(`${deploymentsApiUrlV1alpha1}/software`, { params: {
626
+ page,
627
+ per_page: perPage,
628
+ name: searchTerm,
629
+ sort: sorting
630
+ } });
631
+ };
632
+ const deductSoftwareSearchState = (receivedSoftware, config, total, state) => {
633
+ let softwareListState = { ...state.softwareList };
634
+ const { searchTerm, sort = {} } = config;
635
+ const softwareIds = Object.values(receivedSoftware).sort(customSort(sort.direction === SORTING_OPTIONS.desc, sort.key)).map((item) => item.name);
636
+ const isFiltering = !!searchTerm;
637
+ softwareListState = {
638
+ ...softwareListState,
639
+ softwareIds,
640
+ searchTotal: isFiltering ? total : state.softwareList.searchTotal,
641
+ total: !isFiltering ? total : state.softwareList.total
642
+ };
643
+ return softwareListState;
644
+ };
645
+ const getSoftware = createAppAsyncThunk(`${sliceName}/getSoftware`, async (passedConfig = {}, { dispatch, getState }) => {
646
+ const config = {
647
+ ...getSoftwareListState(getState()),
648
+ ...passedConfig
649
+ };
650
+ const { data: receivedSoftware = [], headers = {} } = await softwareListRetrieval(config).catch((err) => commonErrorHandler(err, `Please check your connection`, dispatch));
651
+ const total = headers[headerNames.total] ? Number(headers[headerNames.total]) : 0;
652
+ const state = getState().releases;
653
+ const flatSoftware = transformReceivedSoftware(receivedSoftware);
654
+ const combinedSoftware = {
655
+ ...state.softwareById,
656
+ ...flatSoftware
657
+ };
658
+ dispatch(actions.receiveSoftwareItems(combinedSoftware));
659
+ const softwareListState = deductSoftwareSearchState(receivedSoftware, config, total, state);
660
+ dispatch(actions.setSoftwareListState(softwareListState));
661
+ return combinedSoftware;
662
+ });
663
+ const setSoftwareListState = createAppAsyncThunk(`${sliceName}/setSoftwareListState`, async (selectionState, { dispatch, getState }) => {
664
+ const currentState = getSoftwareListState(getState());
665
+ const nextState = {
666
+ ...currentState,
667
+ ...selectionState,
668
+ sort: {
669
+ ...currentState.sort,
670
+ ...selectionState.sort
671
+ }
672
+ };
673
+ const { isLoading: currentLoading, ...currentRequestState } = currentState;
674
+ const { isLoading: selectionLoading, ...selectionRequestState } = nextState;
675
+ if (!deepCompare(currentRequestState, selectionRequestState)) {
676
+ nextState.isLoading = true;
677
+ dispatch(getSoftware(nextState)).unwrap().finally(() => dispatch(setSoftwareListState({ isLoading: false })).unwrap());
678
+ }
679
+ dispatch(actions.setSoftwareListState(nextState));
680
+ });
497
681
  //#endregion
498
- export { cancelFileUpload, createArtifact, editArtifact, getArtifactInstallCount, getArtifactUrl, getDeltaGenerationJobDetails, getDeltaGenerationJobs, getExistingReleaseTags, getManifest, getManifests, getRelease, getReleases, getUpdateTypes, removeArtifact, removeRelease, removeReleases, selectManifest, selectRelease, setManifestsListState, setReleaseTags, setReleasesListState, setReleasesTags, setSingleReleaseTags, updateReleaseInfo, uploadArtifact };
682
+ export { cancelFileUpload, createArtifact, editArtifact, generateManifest, getArtifactInstallCount, getArtifactUrl, getDeltaGenerationJobDetails, getDeltaGenerationJobs, getExistingManifestTags, getExistingReleaseTags, getExistingSoftwareTags, getManifest, getManifests, getRelease, getReleases, getSoftware, getUpdateTypes, removeArtifact, removeManifest, removeManifests, removeRelease, removeReleases, selectManifest, selectRelease, setManifestsListState, setReleaseTags, setReleasesListState, setReleasesTags, setSingleReleaseTags, setSoftwareListState, updateManifestInfo, updateReleaseInfo, uploadArtifact, uploadManifest };
499
683
 
500
684
  //# sourceMappingURL=thunks.js.map