@strapi/content-releases 5.0.0-rc.9 → 5.0.1

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 (39) hide show
  1. package/dist/_chunks/{App-DMILern_.mjs → App-BA2xDdy0.mjs} +33 -15
  2. package/dist/_chunks/App-BA2xDdy0.mjs.map +1 -0
  3. package/dist/_chunks/{App-fAgiijnc.js → App-D4Wira1X.js} +33 -15
  4. package/dist/_chunks/App-D4Wira1X.js.map +1 -0
  5. package/dist/_chunks/{ReleasesSettingsPage-dwoRuXB-.mjs → ReleasesSettingsPage-BAlbMWpw.mjs} +3 -3
  6. package/dist/_chunks/{ReleasesSettingsPage-dwoRuXB-.mjs.map → ReleasesSettingsPage-BAlbMWpw.mjs.map} +1 -1
  7. package/dist/_chunks/{ReleasesSettingsPage-YVZJH-oN.js → ReleasesSettingsPage-xhFyRXCM.js} +3 -3
  8. package/dist/_chunks/{ReleasesSettingsPage-YVZJH-oN.js.map → ReleasesSettingsPage-xhFyRXCM.js.map} +1 -1
  9. package/dist/_chunks/{index-CYsQToWs.mjs → index-CCFFG3Zs.mjs} +55 -29
  10. package/dist/_chunks/index-CCFFG3Zs.mjs.map +1 -0
  11. package/dist/_chunks/{index--_NWfuDG.js → index-DxkQGp4N.js} +55 -29
  12. package/dist/_chunks/index-DxkQGp4N.js.map +1 -0
  13. package/dist/_chunks/{schemas-z5zp-_Gd.js → schemas-BE1LxE9J.js} +2 -2
  14. package/dist/_chunks/schemas-BE1LxE9J.js.map +1 -0
  15. package/dist/_chunks/{schemas-63pFihNF.mjs → schemas-DdA2ic2U.mjs} +2 -2
  16. package/dist/_chunks/schemas-DdA2ic2U.mjs.map +1 -0
  17. package/dist/admin/index.js +1 -1
  18. package/dist/admin/index.mjs +1 -1
  19. package/dist/admin/src/services/release.d.ts +28 -28
  20. package/dist/server/index.js +35 -6
  21. package/dist/server/index.js.map +1 -1
  22. package/dist/server/index.mjs +35 -6
  23. package/dist/server/index.mjs.map +1 -1
  24. package/dist/server/src/controllers/release-action.d.ts.map +1 -1
  25. package/dist/server/src/controllers/release.d.ts.map +1 -1
  26. package/dist/server/src/index.d.ts +2 -0
  27. package/dist/server/src/index.d.ts.map +1 -1
  28. package/dist/server/src/services/index.d.ts +2 -0
  29. package/dist/server/src/services/index.d.ts.map +1 -1
  30. package/dist/server/src/services/release-action.d.ts +3 -1
  31. package/dist/server/src/services/release-action.d.ts.map +1 -1
  32. package/package.json +12 -11
  33. package/dist/_chunks/App-DMILern_.mjs.map +0 -1
  34. package/dist/_chunks/App-fAgiijnc.js.map +0 -1
  35. package/dist/_chunks/index--_NWfuDG.js.map +0 -1
  36. package/dist/_chunks/index-CYsQToWs.mjs.map +0 -1
  37. package/dist/_chunks/schemas-63pFihNF.mjs.map +0 -1
  38. package/dist/_chunks/schemas-z5zp-_Gd.js.map +0 -1
  39. package/strapi-server.js +0 -3
@@ -906,7 +906,7 @@ const createReleaseActionService = ({ strapi: strapi2 }) => {
906
906
  return contentTypesData;
907
907
  };
908
908
  return {
909
- async create(releaseId, action) {
909
+ async create(releaseId, action, { disableUpdateReleaseStatus = false } = {}) {
910
910
  const { validateEntryData, validateUniqueEntry } = getService("release-validation", {
911
911
  strapi: strapi2
912
912
  });
@@ -914,6 +914,14 @@ const createReleaseActionService = ({ strapi: strapi2 }) => {
914
914
  validateEntryData(action.contentType, action.entryDocumentId),
915
915
  validateUniqueEntry(releaseId, action)
916
916
  ]);
917
+ const model = strapi2.contentType(action.contentType);
918
+ if (model.kind === "singleType") {
919
+ const document = await strapi2.db.query(model.uid).findOne({ select: ["documentId"] });
920
+ if (!document) {
921
+ throw new errors.NotFoundError(`No entry found for contentType ${action.contentType}`);
922
+ }
923
+ action.entryDocumentId = document.documentId;
924
+ }
917
925
  const release2 = await strapi2.db.query(RELEASE_MODEL_UID).findOne({ where: { id: releaseId } });
918
926
  if (!release2) {
919
927
  throw new errors.NotFoundError(`No release found for id ${releaseId}`);
@@ -939,7 +947,9 @@ const createReleaseActionService = ({ strapi: strapi2 }) => {
939
947
  },
940
948
  populate: { release: { select: ["id"] } }
941
949
  });
942
- getService("release", { strapi: strapi2 }).updateReleaseStatus(release2.id);
950
+ if (!disableUpdateReleaseStatus) {
951
+ getService("release", { strapi: strapi2 }).updateReleaseStatus(release2.id);
952
+ }
943
953
  return releaseAction2;
944
954
  },
945
955
  async findPage(releaseId, query) {
@@ -1042,7 +1052,7 @@ const createReleaseActionService = ({ strapi: strapi2 }) => {
1042
1052
  `Action with id ${actionId} not found in release with id ${releaseId} or it is already published`
1043
1053
  );
1044
1054
  }
1045
- const actionStatus = update.type === "publish" ? getDraftEntryValidStatus(
1055
+ const actionStatus = update.type === "publish" ? await getDraftEntryValidStatus(
1046
1056
  {
1047
1057
  contentType: action.contentType,
1048
1058
  documentId: action.entryDocumentId,
@@ -1283,7 +1293,15 @@ const releaseController = {
1283
1293
  const releaseService = getService("release", { strapi });
1284
1294
  const query = await permissionsManager.sanitizeQuery(ctx.query);
1285
1295
  await validatefindByDocumentAttachedParams(query);
1286
- const { contentType, entryDocumentId, hasEntryAttached, locale } = query;
1296
+ const model = strapi.getModel(query.contentType);
1297
+ if (model.kind && model.kind === "singleType") {
1298
+ const document = await strapi.db.query(model.uid).findOne({ select: ["documentId"] });
1299
+ if (!document) {
1300
+ throw new errors.NotFoundError(`No entry found for contentType ${query.contentType}`);
1301
+ }
1302
+ query.entryDocumentId = document.documentId;
1303
+ }
1304
+ const { contentType, hasEntryAttached, entryDocumentId, locale } = query;
1287
1305
  const isEntryAttached = typeof hasEntryAttached === "string" ? Boolean(JSON.parse(hasEntryAttached)) : false;
1288
1306
  if (isEntryAttached) {
1289
1307
  const releases = await releaseService.findMany({
@@ -1297,7 +1315,12 @@ const releaseController = {
1297
1315
  },
1298
1316
  populate: {
1299
1317
  actions: {
1300
- fields: ["type"]
1318
+ fields: ["type"],
1319
+ filters: {
1320
+ contentType,
1321
+ entryDocumentId: entryDocumentId ?? null,
1322
+ locale: locale ?? null
1323
+ }
1301
1324
  }
1302
1325
  }
1303
1326
  });
@@ -1528,11 +1551,14 @@ const releaseActionController = {
1528
1551
  releaseActionsArgs.map((releaseActionArgs) => validateReleaseAction(releaseActionArgs))
1529
1552
  );
1530
1553
  const releaseActionService = getService("release-action", { strapi });
1554
+ const releaseService = getService("release", { strapi });
1531
1555
  const releaseActions = await strapi.db.transaction(async () => {
1532
1556
  const releaseActions2 = await Promise.all(
1533
1557
  releaseActionsArgs.map(async (releaseActionArgs) => {
1534
1558
  try {
1535
- const action = await releaseActionService.create(releaseId, releaseActionArgs);
1559
+ const action = await releaseActionService.create(releaseId, releaseActionArgs, {
1560
+ disableUpdateReleaseStatus: true
1561
+ });
1536
1562
  return action;
1537
1563
  } catch (error) {
1538
1564
  if (error instanceof AlreadyOnReleaseError) {
@@ -1545,6 +1571,9 @@ const releaseActionController = {
1545
1571
  return releaseActions2;
1546
1572
  });
1547
1573
  const newReleaseActions = releaseActions.filter((action) => action !== null);
1574
+ if (newReleaseActions.length > 0) {
1575
+ releaseService.updateReleaseStatus(releaseId);
1576
+ }
1548
1577
  ctx.created({
1549
1578
  data: newReleaseActions,
1550
1579
  meta: {