@strapi/content-releases 0.0.0-experimental.da85533897155e719d784f0271223c866d2f69ab → 0.0.0-experimental.dad3c50630ca4fd9eccdcbe549ee632fc572e23d

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 (56) hide show
  1. package/dist/_chunks/{App-B4mkcLmw.mjs → App-CiZCkScI.mjs} +304 -102
  2. package/dist/_chunks/App-CiZCkScI.mjs.map +1 -0
  3. package/dist/_chunks/{App-DpoC8s97.js → App-SGjO5UPV.js} +344 -143
  4. package/dist/_chunks/App-SGjO5UPV.js.map +1 -0
  5. package/dist/_chunks/{PurchaseContentReleases-Be3acS2L.js → PurchaseContentReleases--qQepXpP.js} +2 -2
  6. package/dist/_chunks/PurchaseContentReleases--qQepXpP.js.map +1 -0
  7. package/dist/_chunks/{PurchaseContentReleases-_MxP6-Dt.mjs → PurchaseContentReleases-D-n-w-st.mjs} +2 -2
  8. package/dist/_chunks/{PurchaseContentReleases-_MxP6-Dt.mjs.map → PurchaseContentReleases-D-n-w-st.mjs.map} +1 -1
  9. package/dist/_chunks/{ReleasesSettingsPage-B89WWWJf.js → ReleasesSettingsPage-Cto_NLUd.js} +3 -3
  10. package/dist/_chunks/{ReleasesSettingsPage-B89WWWJf.js.map → ReleasesSettingsPage-Cto_NLUd.js.map} +1 -1
  11. package/dist/_chunks/{ReleasesSettingsPage-DfL6yxLG.mjs → ReleasesSettingsPage-DQT8N3A-.mjs} +3 -3
  12. package/dist/_chunks/{ReleasesSettingsPage-DfL6yxLG.mjs.map → ReleasesSettingsPage-DQT8N3A-.mjs.map} +1 -1
  13. package/dist/_chunks/{en-CmYoEnA7.js → en-BWPPsSH-.js} +11 -2
  14. package/dist/_chunks/en-BWPPsSH-.js.map +1 -0
  15. package/dist/_chunks/{en-D0yVZFqf.mjs → en-D9Q4YW03.mjs} +11 -2
  16. package/dist/_chunks/en-D9Q4YW03.mjs.map +1 -0
  17. package/dist/_chunks/{index-B3cqcIza.mjs → index-BjvFfTtA.mjs} +68 -24
  18. package/dist/_chunks/index-BjvFfTtA.mjs.map +1 -0
  19. package/dist/_chunks/{index-sGcuP2hw.js → index-CyU534vL.js} +69 -26
  20. package/dist/_chunks/index-CyU534vL.js.map +1 -0
  21. package/dist/_chunks/{schemas-z5zp-_Gd.js → schemas-DBYv9gK8.js} +3 -4
  22. package/dist/_chunks/schemas-DBYv9gK8.js.map +1 -0
  23. package/dist/_chunks/{schemas-63pFihNF.mjs → schemas-DdA2ic2U.mjs} +2 -2
  24. package/dist/_chunks/schemas-DdA2ic2U.mjs.map +1 -0
  25. package/dist/admin/index.js +1 -1
  26. package/dist/admin/index.mjs +1 -1
  27. package/dist/admin/src/components/EntryValidationPopover.d.ts +13 -0
  28. package/dist/admin/src/services/release.d.ts +28 -28
  29. package/dist/server/index.js +119 -17
  30. package/dist/server/index.js.map +1 -1
  31. package/dist/server/index.mjs +118 -15
  32. package/dist/server/index.mjs.map +1 -1
  33. package/dist/server/src/controllers/release-action.d.ts.map +1 -1
  34. package/dist/server/src/controllers/release.d.ts.map +1 -1
  35. package/dist/server/src/index.d.ts +4 -6
  36. package/dist/server/src/index.d.ts.map +1 -1
  37. package/dist/server/src/middlewares/documents.d.ts.map +1 -1
  38. package/dist/server/src/migrations/database/5.0.0-document-id-in-actions.d.ts.map +1 -1
  39. package/dist/server/src/services/index.d.ts +4 -6
  40. package/dist/server/src/services/index.d.ts.map +1 -1
  41. package/dist/server/src/services/release-action.d.ts +6 -8
  42. package/dist/server/src/services/release-action.d.ts.map +1 -1
  43. package/dist/server/src/utils/index.d.ts.map +1 -1
  44. package/dist/shared/contracts/release-actions.d.ts +8 -1
  45. package/dist/shared/contracts/release-actions.d.ts.map +1 -1
  46. package/package.json +18 -16
  47. package/dist/_chunks/App-B4mkcLmw.mjs.map +0 -1
  48. package/dist/_chunks/App-DpoC8s97.js.map +0 -1
  49. package/dist/_chunks/PurchaseContentReleases-Be3acS2L.js.map +0 -1
  50. package/dist/_chunks/en-CmYoEnA7.js.map +0 -1
  51. package/dist/_chunks/en-D0yVZFqf.mjs.map +0 -1
  52. package/dist/_chunks/index-B3cqcIza.mjs.map +0 -1
  53. package/dist/_chunks/index-sGcuP2hw.js.map +0 -1
  54. package/dist/_chunks/schemas-63pFihNF.mjs.map +0 -1
  55. package/dist/_chunks/schemas-z5zp-_Gd.js.map +0 -1
  56. package/strapi-server.js +0 -3
@@ -21,92 +21,92 @@ type GetReleasesTabResponse = GetReleases.Response & {
21
21
  activeTab: 'pending' | 'done';
22
22
  };
23
23
  };
24
- declare const releaseApi: import("@reduxjs/toolkit/query").Api<import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, import("@reduxjs/toolkit/dist/query/endpointDefinitions").UpdateDefinitions<{}, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings", never> & {
24
+ declare const releaseApi: import("@reduxjs/toolkit/query").Api<import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, import("@reduxjs/toolkit/dist/query/endpointDefinitions").UpdateDefinitions<{}, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings" | "Document", never> & {
25
25
  getReleasesForEntry: import("@reduxjs/toolkit/query").QueryDefinition<Partial<{
26
26
  contentType: string;
27
27
  entryDocumentId: any;
28
28
  locale?: string | undefined;
29
29
  hasEntryAttached?: boolean | undefined;
30
- }>, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings", GetReleasesByDocumentAttached.Response, "adminApi">;
31
- getReleases: import("@reduxjs/toolkit/query").QueryDefinition<void | GetReleasesQueryParams, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings", GetReleasesTabResponse, "adminApi">;
30
+ }>, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings" | "Document", GetReleasesByDocumentAttached.Response, "adminApi">;
31
+ getReleases: import("@reduxjs/toolkit/query").QueryDefinition<void | GetReleasesQueryParams, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings" | "Document", GetReleasesTabResponse, "adminApi">;
32
32
  getRelease: import("@reduxjs/toolkit/query").QueryDefinition<{
33
33
  id: import("@strapi/types/dist/data").ID;
34
- }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings", GetRelease.Response, "adminApi">;
34
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings" | "Document", GetRelease.Response, "adminApi">;
35
35
  getReleaseActions: import("@reduxjs/toolkit/query").QueryDefinition<{
36
36
  releaseId: import("@strapi/types/dist/data").ID;
37
37
  } & Partial<Pick<import("../../../shared/contracts/releases").Pagination, "page" | "pageSize">> & {
38
38
  groupBy?: ReleaseActionGroupBy | undefined;
39
- }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings", GetReleaseActions.Response, "adminApi">;
39
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings" | "Document", GetReleaseActions.Response, "adminApi">;
40
40
  createRelease: import("@reduxjs/toolkit/query").MutationDefinition<{
41
41
  name: string;
42
42
  scheduledAt: Date | null;
43
43
  timezone: string | null;
44
- }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings", CreateRelease.Response, "adminApi">;
44
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings" | "Document", CreateRelease.Response, "adminApi">;
45
45
  updateRelease: import("@reduxjs/toolkit/query").MutationDefinition<{
46
46
  id: import("@strapi/types/dist/data").ID;
47
47
  } & {
48
48
  name: string;
49
49
  scheduledAt?: Date | null | undefined;
50
50
  timezone?: string | null | undefined;
51
- }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings", void, "adminApi">;
52
- createReleaseAction: import("@reduxjs/toolkit/query").MutationDefinition<CreateReleaseAction.Request, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings", CreateReleaseAction.Response, "adminApi">;
53
- createManyReleaseActions: import("@reduxjs/toolkit/query").MutationDefinition<CreateManyReleaseActions.Request, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings", CreateManyReleaseActions.Response, "adminApi">;
51
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings" | "Document", void, "adminApi">;
52
+ createReleaseAction: import("@reduxjs/toolkit/query").MutationDefinition<CreateReleaseAction.Request, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings" | "Document", CreateReleaseAction.Response, "adminApi">;
53
+ createManyReleaseActions: import("@reduxjs/toolkit/query").MutationDefinition<CreateManyReleaseActions.Request, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings" | "Document", CreateManyReleaseActions.Response, "adminApi">;
54
54
  updateReleaseAction: import("@reduxjs/toolkit/query").MutationDefinition<UpdateReleaseAction.Request & {
55
55
  query: GetReleaseActions.Request['query'];
56
56
  } & {
57
57
  actionPath: [string, number];
58
- }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings", UpdateReleaseAction.Response, "adminApi">;
59
- deleteReleaseAction: import("@reduxjs/toolkit/query").MutationDefinition<DeleteReleaseAction.Request, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings", DeleteReleaseAction.Response, "adminApi">;
58
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings" | "Document", UpdateReleaseAction.Response, "adminApi">;
59
+ deleteReleaseAction: import("@reduxjs/toolkit/query").MutationDefinition<DeleteReleaseAction.Request, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings" | "Document", DeleteReleaseAction.Response, "adminApi">;
60
60
  publishRelease: import("@reduxjs/toolkit/query").MutationDefinition<{
61
61
  id: import("@strapi/types/dist/data").ID;
62
- }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings", PublishRelease.Response, "adminApi">;
62
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings" | "Document", PublishRelease.Response, "adminApi">;
63
63
  deleteRelease: import("@reduxjs/toolkit/query").MutationDefinition<{
64
64
  id: import("@strapi/types/dist/data").ID;
65
- }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings", DeleteRelease.Response, "adminApi">;
65
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings" | "Document", DeleteRelease.Response, "adminApi">;
66
66
  getMappedEntriesInReleases: import("@reduxjs/toolkit/query").QueryDefinition<{
67
67
  contentTypeUid: import("@strapi/types/dist/uid").ContentType;
68
68
  documentIds: string[];
69
69
  locale?: string | undefined;
70
- }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings", {
70
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings" | "Document", {
71
71
  [documentId: string]: Pick<import("../../../shared/contracts/releases").Release, "id" | "name">[];
72
72
  }, "adminApi">;
73
- getReleaseSettings: import("@reduxjs/toolkit/query").QueryDefinition<void | GetSettings.Request, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings", GetSettings.Response, "adminApi">;
74
- updateReleaseSettings: import("@reduxjs/toolkit/query").MutationDefinition<import("../../../shared/contracts/settings").Settings, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings", void, "adminApi">;
75
- }, "adminApi", "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings", typeof import("@reduxjs/toolkit/query").coreModuleName | typeof import("@reduxjs/toolkit/dist/query/react").reactHooksModuleName>;
76
- declare const useGetReleasesQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<void | GetReleasesQueryParams, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings", GetReleasesTabResponse, "adminApi">>, useGetReleasesForEntryQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<Partial<{
73
+ getReleaseSettings: import("@reduxjs/toolkit/query").QueryDefinition<void | GetSettings.Request, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings" | "Document", GetSettings.Response, "adminApi">;
74
+ updateReleaseSettings: import("@reduxjs/toolkit/query").MutationDefinition<import("../../../shared/contracts/settings").Settings, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings" | "Document", void, "adminApi">;
75
+ }, "adminApi", "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings" | "Document", typeof import("@reduxjs/toolkit/query").coreModuleName | typeof import("@reduxjs/toolkit/dist/query/react").reactHooksModuleName>;
76
+ declare const useGetReleasesQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<void | GetReleasesQueryParams, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings" | "Document", GetReleasesTabResponse, "adminApi">>, useGetReleasesForEntryQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<Partial<{
77
77
  contentType: string;
78
78
  entryDocumentId: any;
79
79
  locale?: string | undefined;
80
80
  hasEntryAttached?: boolean | undefined;
81
- }>, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings", GetReleasesByDocumentAttached.Response, "adminApi">>, useGetReleaseQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<{
81
+ }>, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings" | "Document", GetReleasesByDocumentAttached.Response, "adminApi">>, useGetReleaseQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<{
82
82
  id: import("@strapi/types/dist/data").ID;
83
- }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings", GetRelease.Response, "adminApi">>, useGetReleaseActionsQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<{
83
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings" | "Document", GetRelease.Response, "adminApi">>, useGetReleaseActionsQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<{
84
84
  releaseId: import("@strapi/types/dist/data").ID;
85
85
  } & Partial<Pick<import("../../../shared/contracts/releases").Pagination, "page" | "pageSize">> & {
86
86
  groupBy?: ReleaseActionGroupBy | undefined;
87
- }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings", GetReleaseActions.Response, "adminApi">>, useCreateReleaseMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<{
87
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings" | "Document", GetReleaseActions.Response, "adminApi">>, useCreateReleaseMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<{
88
88
  name: string;
89
89
  scheduledAt: Date | null;
90
90
  timezone: string | null;
91
- }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings", CreateRelease.Response, "adminApi">>, useCreateReleaseActionMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<CreateReleaseAction.Request, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings", CreateReleaseAction.Response, "adminApi">>, useCreateManyReleaseActionsMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<CreateManyReleaseActions.Request, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings", CreateManyReleaseActions.Response, "adminApi">>, useUpdateReleaseMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<{
91
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings" | "Document", CreateRelease.Response, "adminApi">>, useCreateReleaseActionMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<CreateReleaseAction.Request, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings" | "Document", CreateReleaseAction.Response, "adminApi">>, useCreateManyReleaseActionsMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<CreateManyReleaseActions.Request, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings" | "Document", CreateManyReleaseActions.Response, "adminApi">>, useUpdateReleaseMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<{
92
92
  id: import("@strapi/types/dist/data").ID;
93
93
  } & {
94
94
  name: string;
95
95
  scheduledAt?: Date | null | undefined;
96
96
  timezone?: string | null | undefined;
97
- }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings", void, "adminApi">>, useUpdateReleaseActionMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<UpdateReleaseAction.Request & {
97
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings" | "Document", void, "adminApi">>, useUpdateReleaseActionMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<UpdateReleaseAction.Request & {
98
98
  query: GetReleaseActions.Request['query'];
99
99
  } & {
100
100
  actionPath: [string, number];
101
- }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings", UpdateReleaseAction.Response, "adminApi">>, usePublishReleaseMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<{
101
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings" | "Document", UpdateReleaseAction.Response, "adminApi">>, usePublishReleaseMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<{
102
102
  id: import("@strapi/types/dist/data").ID;
103
- }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings", PublishRelease.Response, "adminApi">>, useDeleteReleaseActionMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<DeleteReleaseAction.Request, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings", DeleteReleaseAction.Response, "adminApi">>, useDeleteReleaseMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<{
103
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings" | "Document", PublishRelease.Response, "adminApi">>, useDeleteReleaseActionMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<DeleteReleaseAction.Request, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings" | "Document", DeleteReleaseAction.Response, "adminApi">>, useDeleteReleaseMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<{
104
104
  id: import("@strapi/types/dist/data").ID;
105
- }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings", DeleteRelease.Response, "adminApi">>, useGetMappedEntriesInReleasesQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<{
105
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings" | "Document", DeleteRelease.Response, "adminApi">>, useGetMappedEntriesInReleasesQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<{
106
106
  contentTypeUid: import("@strapi/types/dist/uid").ContentType;
107
107
  documentIds: string[];
108
108
  locale?: string | undefined;
109
- }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings", {
109
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings" | "Document", {
110
110
  [documentId: string]: Pick<import("../../../shared/contracts/releases").Release, "id" | "name">[];
111
- }, "adminApi">>, useGetReleaseSettingsQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<void | GetSettings.Request, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings", GetSettings.Response, "adminApi">>, useUpdateReleaseSettingsMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<import("../../../shared/contracts/settings").Settings, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings", void, "adminApi">>;
111
+ }, "adminApi">>, useGetReleaseSettingsQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<void | GetSettings.Request, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings" | "Document", GetSettings.Response, "adminApi">>, useUpdateReleaseSettingsMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<import("../../../shared/contracts/settings").Settings, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "Release" | "ReleaseAction" | "EntriesInRelease" | "ReleaseSettings" | "Document", void, "adminApi">>;
112
112
  export { useGetReleasesQuery, useGetReleasesForEntryQuery, useGetReleaseQuery, useGetReleaseActionsQuery, useCreateReleaseMutation, useCreateReleaseActionMutation, useCreateManyReleaseActionsMutation, useUpdateReleaseMutation, useUpdateReleaseActionMutation, usePublishReleaseMutation, useDeleteReleaseActionMutation, useDeleteReleaseMutation, useGetMappedEntriesInReleasesQuery, useGetReleaseSettingsQuery, useUpdateReleaseSettingsMutation, releaseApi, };
@@ -7,8 +7,7 @@ const nodeSchedule = require("node-schedule");
7
7
  const yup = require("yup");
8
8
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
9
9
  function _interopNamespace(e) {
10
- if (e && e.__esModule)
11
- return e;
10
+ if (e && e.__esModule) return e;
12
11
  const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
13
12
  if (e) {
14
13
  for (const k in e) {
@@ -111,6 +110,13 @@ const isEntryValid = async (contentTypeUid, entry, { strapi: strapi2 }) => {
111
110
  // @ts-expect-error - FIXME: entity here is unnecessary
112
111
  entry
113
112
  );
113
+ const workflowsService = strapi2.plugin("review-workflows").service("workflows");
114
+ const workflow = await workflowsService.getAssignedWorkflow(contentTypeUid, {
115
+ populate: "stageRequiredToPublish"
116
+ });
117
+ if (workflow?.stageRequiredToPublish) {
118
+ return entry.strapi_stage.id === workflow.stageRequiredToPublish.id;
119
+ }
114
120
  return true;
115
121
  } catch {
116
122
  return false;
@@ -124,7 +130,11 @@ const getEntry = async ({
124
130
  status = "draft"
125
131
  }, { strapi: strapi2 }) => {
126
132
  if (documentId) {
127
- return strapi2.documents(contentType).findOne({ documentId, locale, populate, status });
133
+ const entry = await strapi2.documents(contentType).findOne({ documentId, locale, populate, status });
134
+ if (status === "published" && !entry) {
135
+ return strapi2.documents(contentType).findOne({ documentId, locale, populate, status: "draft" });
136
+ }
137
+ return entry;
128
138
  }
129
139
  return strapi2.documents(contentType).findFirst({ locale, populate, status });
130
140
  };
@@ -329,6 +339,10 @@ async function enableContentTypeLocalized({ oldContentTypes, contentTypes: conte
329
339
  const addEntryDocumentToReleaseActions = {
330
340
  name: "content-releases::5.0.0-add-entry-document-id-to-release-actions",
331
341
  async up(trx, db) {
342
+ const hasTable = await trx.schema.hasTable("strapi_release_actions");
343
+ if (!hasTable) {
344
+ return;
345
+ }
332
346
  const hasPolymorphicColumn = await trx.schema.hasColumn("strapi_release_actions", "target_id");
333
347
  if (hasPolymorphicColumn) {
334
348
  const hasEntryDocumentIdColumn = await trx.schema.hasColumn(
@@ -370,6 +384,7 @@ const register = async ({ strapi: strapi2 }) => {
370
384
  const updateActionsStatusAndUpdateReleaseStatus = async (contentType, entry) => {
371
385
  const releases = await strapi.db.query(RELEASE_MODEL_UID).findMany({
372
386
  where: {
387
+ releasedAt: null,
373
388
  actions: {
374
389
  contentType,
375
390
  entryDocumentId: entry.documentId,
@@ -378,7 +393,7 @@ const updateActionsStatusAndUpdateReleaseStatus = async (contentType, entry) =>
378
393
  }
379
394
  });
380
395
  const entryStatus = await isEntryValid(contentType, entry, { strapi });
381
- await strapi.db.query(RELEASE_ACTION_MODEL_UID).update({
396
+ await strapi.db.query(RELEASE_ACTION_MODEL_UID).updateMany({
382
397
  where: {
383
398
  contentType,
384
399
  entryDocumentId: entry.documentId,
@@ -482,8 +497,8 @@ const bootstrap = async ({ strapi: strapi2 }) => {
482
497
  const { where } = event.params;
483
498
  deleteReleasesActionsAndUpdateReleaseStatus({
484
499
  contentType: model.uid,
485
- locale: where.locale ?? null,
486
- ...where.documentId && { entryDocumentId: where.documentId }
500
+ locale: where?.locale ?? null,
501
+ ...where?.documentId && { entryDocumentId: where.documentId }
487
502
  });
488
503
  }
489
504
  } catch (error) {
@@ -929,7 +944,7 @@ const createReleaseActionService = ({ strapi: strapi2 }) => {
929
944
  return contentTypesData;
930
945
  };
931
946
  return {
932
- async create(releaseId, action) {
947
+ async create(releaseId, action, { disableUpdateReleaseStatus = false } = {}) {
933
948
  const { validateEntryData, validateUniqueEntry } = getService("release-validation", {
934
949
  strapi: strapi2
935
950
  });
@@ -937,6 +952,14 @@ const createReleaseActionService = ({ strapi: strapi2 }) => {
937
952
  validateEntryData(action.contentType, action.entryDocumentId),
938
953
  validateUniqueEntry(releaseId, action)
939
954
  ]);
955
+ const model = strapi2.contentType(action.contentType);
956
+ if (model.kind === "singleType") {
957
+ const document = await strapi2.db.query(model.uid).findOne({ select: ["documentId"] });
958
+ if (!document) {
959
+ throw new utils.errors.NotFoundError(`No entry found for contentType ${action.contentType}`);
960
+ }
961
+ action.entryDocumentId = document.documentId;
962
+ }
940
963
  const release2 = await strapi2.db.query(RELEASE_MODEL_UID).findOne({ where: { id: releaseId } });
941
964
  if (!release2) {
942
965
  throw new utils.errors.NotFoundError(`No release found for id ${releaseId}`);
@@ -962,7 +985,9 @@ const createReleaseActionService = ({ strapi: strapi2 }) => {
962
985
  },
963
986
  populate: { release: { select: ["id"] } }
964
987
  });
965
- getService("release", { strapi: strapi2 }).updateReleaseStatus(release2.id);
988
+ if (!disableUpdateReleaseStatus) {
989
+ getService("release", { strapi: strapi2 }).updateReleaseStatus(release2.id);
990
+ }
966
991
  return releaseAction2;
967
992
  },
968
993
  async findPage(releaseId, query) {
@@ -1028,16 +1053,26 @@ const createReleaseActionService = ({ strapi: strapi2 }) => {
1028
1053
  const groupName = getGroupName(groupBy);
1029
1054
  return ___default.default.groupBy(groupName)(formattedData);
1030
1055
  },
1031
- getContentTypeModelsFromActions(actions) {
1056
+ async getContentTypeModelsFromActions(actions) {
1032
1057
  const contentTypeUids = actions.reduce((acc, action) => {
1033
1058
  if (!acc.includes(action.contentType)) {
1034
1059
  acc.push(action.contentType);
1035
1060
  }
1036
1061
  return acc;
1037
1062
  }, []);
1038
- const contentTypeModelsMap = contentTypeUids.reduce(
1039
- (acc, contentTypeUid) => {
1040
- acc[contentTypeUid] = strapi2.getModel(contentTypeUid);
1063
+ const workflowsService = strapi2.plugin("review-workflows").service("workflows");
1064
+ const contentTypeModelsMap = await utils.async.reduce(contentTypeUids)(
1065
+ async (accPromise, contentTypeUid) => {
1066
+ const acc = await accPromise;
1067
+ const contentTypeModel = strapi2.getModel(contentTypeUid);
1068
+ const workflow = await workflowsService.getAssignedWorkflow(contentTypeUid, {
1069
+ populate: "stageRequiredToPublish"
1070
+ });
1071
+ acc[contentTypeUid] = {
1072
+ ...contentTypeModel,
1073
+ hasReviewWorkflow: !!workflow,
1074
+ stageRequiredToPublish: workflow?.stageRequiredToPublish
1075
+ };
1041
1076
  return acc;
1042
1077
  },
1043
1078
  {}
@@ -1065,7 +1100,7 @@ const createReleaseActionService = ({ strapi: strapi2 }) => {
1065
1100
  `Action with id ${actionId} not found in release with id ${releaseId} or it is already published`
1066
1101
  );
1067
1102
  }
1068
- const actionStatus = update.type === "publish" ? getDraftEntryValidStatus(
1103
+ const actionStatus = update.type === "publish" ? await getDraftEntryValidStatus(
1069
1104
  {
1070
1105
  contentType: action.contentType,
1071
1106
  documentId: action.entryDocumentId,
@@ -1112,6 +1147,54 @@ const createReleaseActionService = ({ strapi: strapi2 }) => {
1112
1147
  }
1113
1148
  getService("release", { strapi: strapi2 }).updateReleaseStatus(releaseId);
1114
1149
  return deletedAction;
1150
+ },
1151
+ async validateActionsByContentTypes(contentTypeUids) {
1152
+ const actions = await strapi2.db.query(RELEASE_ACTION_MODEL_UID).findMany({
1153
+ where: {
1154
+ contentType: {
1155
+ $in: contentTypeUids
1156
+ },
1157
+ // We only want to validate actions that are going to be published
1158
+ type: "publish",
1159
+ release: {
1160
+ releasedAt: {
1161
+ $null: true
1162
+ }
1163
+ }
1164
+ },
1165
+ populate: { release: true }
1166
+ });
1167
+ const releasesUpdated = [];
1168
+ await utils.async.map(actions, async (action) => {
1169
+ const isValid = await getDraftEntryValidStatus(
1170
+ {
1171
+ contentType: action.contentType,
1172
+ documentId: action.entryDocumentId,
1173
+ locale: action.locale
1174
+ },
1175
+ { strapi: strapi2 }
1176
+ );
1177
+ await strapi2.db.query(RELEASE_ACTION_MODEL_UID).update({
1178
+ where: {
1179
+ id: action.id
1180
+ },
1181
+ data: {
1182
+ isEntryValid: isValid
1183
+ }
1184
+ });
1185
+ if (!releasesUpdated.includes(action.release.id)) {
1186
+ releasesUpdated.push(action.release.id);
1187
+ }
1188
+ return {
1189
+ id: action.id,
1190
+ isEntryValid: isValid
1191
+ };
1192
+ });
1193
+ if (releasesUpdated.length > 0) {
1194
+ await utils.async.map(releasesUpdated, async (releaseId) => {
1195
+ await getService("release", { strapi: strapi2 }).updateReleaseStatus(releaseId);
1196
+ });
1197
+ }
1115
1198
  }
1116
1199
  };
1117
1200
  };
@@ -1306,7 +1389,15 @@ const releaseController = {
1306
1389
  const releaseService = getService("release", { strapi });
1307
1390
  const query = await permissionsManager.sanitizeQuery(ctx.query);
1308
1391
  await validatefindByDocumentAttachedParams(query);
1309
- const { contentType, entryDocumentId, hasEntryAttached, locale } = query;
1392
+ const model = strapi.getModel(query.contentType);
1393
+ if (model.kind && model.kind === "singleType") {
1394
+ const document = await strapi.db.query(model.uid).findOne({ select: ["documentId"] });
1395
+ if (!document) {
1396
+ throw new utils.errors.NotFoundError(`No entry found for contentType ${query.contentType}`);
1397
+ }
1398
+ query.entryDocumentId = document.documentId;
1399
+ }
1400
+ const { contentType, hasEntryAttached, entryDocumentId, locale } = query;
1310
1401
  const isEntryAttached = typeof hasEntryAttached === "string" ? Boolean(JSON.parse(hasEntryAttached)) : false;
1311
1402
  if (isEntryAttached) {
1312
1403
  const releases = await releaseService.findMany({
@@ -1320,7 +1411,12 @@ const releaseController = {
1320
1411
  },
1321
1412
  populate: {
1322
1413
  actions: {
1323
- fields: ["type"]
1414
+ fields: ["type"],
1415
+ filters: {
1416
+ contentType,
1417
+ entryDocumentId: entryDocumentId ?? null,
1418
+ locale: locale ?? null
1419
+ }
1324
1420
  }
1325
1421
  }
1326
1422
  });
@@ -1551,11 +1647,14 @@ const releaseActionController = {
1551
1647
  releaseActionsArgs.map((releaseActionArgs) => validateReleaseAction(releaseActionArgs))
1552
1648
  );
1553
1649
  const releaseActionService = getService("release-action", { strapi });
1650
+ const releaseService = getService("release", { strapi });
1554
1651
  const releaseActions = await strapi.db.transaction(async () => {
1555
1652
  const releaseActions2 = await Promise.all(
1556
1653
  releaseActionsArgs.map(async (releaseActionArgs) => {
1557
1654
  try {
1558
- const action = await releaseActionService.create(releaseId, releaseActionArgs);
1655
+ const action = await releaseActionService.create(releaseId, releaseActionArgs, {
1656
+ disableUpdateReleaseStatus: true
1657
+ });
1559
1658
  return action;
1560
1659
  } catch (error) {
1561
1660
  if (error instanceof AlreadyOnReleaseError) {
@@ -1568,6 +1667,9 @@ const releaseActionController = {
1568
1667
  return releaseActions2;
1569
1668
  });
1570
1669
  const newReleaseActions = releaseActions.filter((action) => action !== null);
1670
+ if (newReleaseActions.length > 0) {
1671
+ releaseService.updateReleaseStatus(releaseId);
1672
+ }
1571
1673
  ctx.created({
1572
1674
  data: newReleaseActions,
1573
1675
  meta: {
@@ -1611,7 +1713,7 @@ const releaseActionController = {
1611
1713
  entry: action.entry ? await contentTypeOutputSanitizers[action.contentType](action.entry) : {}
1612
1714
  }));
1613
1715
  const groupedData = await releaseActionService.groupActions(sanitizedResults, query.sort);
1614
- const contentTypes2 = releaseActionService.getContentTypeModelsFromActions(results);
1716
+ const contentTypes2 = await releaseActionService.getContentTypeModelsFromActions(results);
1615
1717
  const releaseService = getService("release", { strapi });
1616
1718
  const components = await releaseService.getAllComponents();
1617
1719
  ctx.body = {