@strapi/content-releases 5.0.0-rc.6 → 5.0.0-rc.8

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 (43) hide show
  1. package/dist/_chunks/{App-Cf879yGs.mjs → App-CZe9wueI.mjs} +2 -2
  2. package/dist/_chunks/{App-Cf879yGs.mjs.map → App-CZe9wueI.mjs.map} +1 -1
  3. package/dist/_chunks/{App-BjBiAE8g.js → App-DdxsZcmK.js} +2 -2
  4. package/dist/_chunks/{App-BjBiAE8g.js.map → App-DdxsZcmK.js.map} +1 -1
  5. package/dist/_chunks/{ReleasesSettingsPage-D7kMSSvV.js → ReleasesSettingsPage-CwsExK2M.js} +2 -2
  6. package/dist/_chunks/{ReleasesSettingsPage-D7kMSSvV.js.map → ReleasesSettingsPage-CwsExK2M.js.map} +1 -1
  7. package/dist/_chunks/{ReleasesSettingsPage-BlUuvtd9.mjs → ReleasesSettingsPage-DWc3H14U.mjs} +2 -2
  8. package/dist/_chunks/{ReleasesSettingsPage-BlUuvtd9.mjs.map → ReleasesSettingsPage-DWc3H14U.mjs.map} +1 -1
  9. package/dist/_chunks/{en-BCDLTJn3.js → en-CmYoEnA7.js} +2 -1
  10. package/dist/_chunks/en-CmYoEnA7.js.map +1 -0
  11. package/dist/_chunks/{en-CGXIF4vQ.mjs → en-D0yVZFqf.mjs} +2 -1
  12. package/dist/_chunks/en-D0yVZFqf.mjs.map +1 -0
  13. package/dist/_chunks/{index-BG0Q8zkH.mjs → index-CPq3qdIv.mjs} +245 -10
  14. package/dist/_chunks/index-CPq3qdIv.mjs.map +1 -0
  15. package/dist/_chunks/{index-1MxwkUQx.js → index-DtQIl4fm.js} +242 -7
  16. package/dist/_chunks/index-DtQIl4fm.js.map +1 -0
  17. package/dist/admin/index.js +1 -1
  18. package/dist/admin/index.mjs +1 -1
  19. package/dist/admin/src/components/ReleaseListCell.d.ts +28 -0
  20. package/dist/admin/src/services/release.d.ts +6 -4
  21. package/dist/server/index.js +73 -73
  22. package/dist/server/index.js.map +1 -1
  23. package/dist/server/index.mjs +73 -73
  24. package/dist/server/index.mjs.map +1 -1
  25. package/dist/server/src/controllers/index.d.ts +2 -0
  26. package/dist/server/src/controllers/index.d.ts.map +1 -1
  27. package/dist/server/src/controllers/release-action.d.ts +1 -0
  28. package/dist/server/src/controllers/release-action.d.ts.map +1 -1
  29. package/dist/server/src/controllers/release.d.ts +1 -0
  30. package/dist/server/src/controllers/release.d.ts.map +1 -1
  31. package/dist/server/src/index.d.ts +2 -0
  32. package/dist/server/src/index.d.ts.map +1 -1
  33. package/dist/server/src/routes/release-action.d.ts.map +1 -1
  34. package/dist/server/src/routes/release.d.ts.map +1 -1
  35. package/dist/shared/contracts/release-actions.d.ts +3 -5
  36. package/dist/shared/contracts/release-actions.d.ts.map +1 -1
  37. package/dist/shared/contracts/releases.d.ts +3 -2
  38. package/dist/shared/contracts/releases.d.ts.map +1 -1
  39. package/package.json +8 -8
  40. package/dist/_chunks/en-BCDLTJn3.js.map +0 -1
  41. package/dist/_chunks/en-CGXIF4vQ.mjs.map +0 -1
  42. package/dist/_chunks/index-1MxwkUQx.js.map +0 -1
  43. package/dist/_chunks/index-BG0Q8zkH.mjs.map +0 -1
@@ -1112,11 +1112,11 @@ const createReleaseValidationService = ({ strapi: strapi2 }) => ({
1112
1112
  throw new errors.NotFoundError(`No release found for id ${releaseId}`);
1113
1113
  }
1114
1114
  const isEntryInRelease = release2.actions.some(
1115
- (action) => Number(action.entryDocumentId) === Number(releaseActionArgs.entryDocumentId) && action.contentType === releaseActionArgs.contentType && action.locale === releaseActionArgs.locale
1115
+ (action) => action.entryDocumentId === releaseActionArgs.entryDocumentId && action.contentType === releaseActionArgs.contentType && (releaseActionArgs.locale ? action.locale === releaseActionArgs.locale : true)
1116
1116
  );
1117
1117
  if (isEntryInRelease) {
1118
1118
  throw new AlreadyOnReleaseError(
1119
- `Entry with documentId ${releaseActionArgs.entryDocumentId} ${releaseActionArgs.locale ? `(${releaseActionArgs.locale})` : ""} and contentType ${releaseActionArgs.contentType} already exists in release with id ${releaseId}`
1119
+ `Entry with documentId ${releaseActionArgs.entryDocumentId}${releaseActionArgs.locale ? `( ${releaseActionArgs.locale})` : ""} and contentType ${releaseActionArgs.contentType} already exists in release with id ${releaseId}`
1120
1120
  );
1121
1121
  }
1122
1122
  },
@@ -1385,43 +1385,50 @@ const releaseController = {
1385
1385
  };
1386
1386
  ctx.body = { data };
1387
1387
  },
1388
- /* @TODO: Migrate to new api
1389
- async mapEntriesToReleases(ctx: Koa.Context) {
1390
- const { contentTypeUid, entriesIds } = ctx.query;
1391
-
1392
- if (!contentTypeUid || !entriesIds) {
1393
- throw new errors.ValidationError('Missing required query parameters');
1388
+ async mapEntriesToReleases(ctx) {
1389
+ const { contentTypeUid, documentIds, locale } = ctx.query;
1390
+ if (!contentTypeUid || !documentIds) {
1391
+ throw new errors.ValidationError("Missing required query parameters");
1392
+ }
1393
+ const releaseService = getService("release", { strapi });
1394
+ const releasesWithActions = await releaseService.findMany({
1395
+ where: {
1396
+ releasedAt: null,
1397
+ actions: {
1398
+ contentType: contentTypeUid,
1399
+ entryDocumentId: {
1400
+ $in: documentIds
1401
+ },
1402
+ locale
1403
+ }
1404
+ },
1405
+ populate: {
1406
+ actions: true
1394
1407
  }
1395
-
1396
- const releaseService = getService('release', { strapi });
1397
-
1398
- const releasesWithActions = await releaseService.findMany(
1399
- contentTypeUid,
1400
- entriesIds
1401
- );
1402
-
1403
- const mappedEntriesInReleases = releasesWithActions.reduce(
1404
- // TODO: Fix for v5 removed mappedEntriedToRelease
1405
- (acc: MapEntriesToReleases.Response['data'], release: Release) => {
1406
- release.actions.forEach((action) => {
1407
- if (!acc[action.entry.id]) {
1408
- acc[action.entry.id] = [{ id: release.id, name: release.name }];
1409
- } else {
1410
- acc[action.entry.id].push({ id: release.id, name: release.name });
1411
- }
1412
- });
1413
-
1414
- return acc;
1415
- },
1416
- // TODO: Fix for v5 removed mappedEntriedToRelease
1417
- {} as MapEntriesToReleases.Response['data']
1418
- );
1419
-
1420
- ctx.body = {
1421
- data: mappedEntriesInReleases,
1422
- };
1423
- },
1424
- */
1408
+ });
1409
+ const mappedEntriesInReleases = releasesWithActions.reduce(
1410
+ (acc, release2) => {
1411
+ release2.actions.forEach((action) => {
1412
+ if (action.contentType !== contentTypeUid) {
1413
+ return;
1414
+ }
1415
+ if (locale && action.locale !== locale) {
1416
+ return;
1417
+ }
1418
+ if (!acc[action.entryDocumentId]) {
1419
+ acc[action.entryDocumentId] = [{ id: release2.id, name: release2.name }];
1420
+ } else {
1421
+ acc[action.entryDocumentId].push({ id: release2.id, name: release2.name });
1422
+ }
1423
+ });
1424
+ return acc;
1425
+ },
1426
+ {}
1427
+ );
1428
+ ctx.body = {
1429
+ data: mappedEntriesInReleases
1430
+ };
1431
+ },
1425
1432
  async create(ctx) {
1426
1433
  const user = ctx.state.user;
1427
1434
  const releaseArgs = ctx.request.body;
@@ -1514,22 +1521,20 @@ const releaseActionController = {
1514
1521
  data: releaseAction2
1515
1522
  });
1516
1523
  },
1517
- /*
1518
- async createMany(ctx: Koa.Context) {
1519
- const releaseId: CreateManyReleaseActions.Request['params']['releaseId'] = ctx.params.releaseId;
1520
- const releaseActionsArgs = ctx.request.body as CreateManyReleaseActions.Request['body'];
1524
+ async createMany(ctx) {
1525
+ const releaseId = ctx.params.releaseId;
1526
+ const releaseActionsArgs = ctx.request.body;
1521
1527
  await Promise.all(
1522
1528
  releaseActionsArgs.map((releaseActionArgs) => validateReleaseAction(releaseActionArgs))
1523
1529
  );
1524
- const releaseActionService = getService('release-action', { strapi });
1530
+ const releaseActionService = getService("release-action", { strapi });
1525
1531
  const releaseActions = await strapi.db.transaction(async () => {
1526
- const releaseActions = await Promise.all(
1532
+ const releaseActions2 = await Promise.all(
1527
1533
  releaseActionsArgs.map(async (releaseActionArgs) => {
1528
1534
  try {
1529
1535
  const action = await releaseActionService.create(releaseId, releaseActionArgs);
1530
1536
  return action;
1531
1537
  } catch (error) {
1532
- // If the entry is already in the release, we don't want to throw an error, so we catch and ignore it
1533
1538
  if (error instanceof AlreadyOnReleaseError) {
1534
1539
  return null;
1535
1540
  }
@@ -1537,18 +1542,17 @@ const releaseActionController = {
1537
1542
  }
1538
1543
  })
1539
1544
  );
1540
- return releaseActions;
1545
+ return releaseActions2;
1541
1546
  });
1542
1547
  const newReleaseActions = releaseActions.filter((action) => action !== null);
1543
1548
  ctx.created({
1544
1549
  data: newReleaseActions,
1545
1550
  meta: {
1546
1551
  entriesAlreadyInRelease: releaseActions.length - newReleaseActions.length,
1547
- totalEntries: releaseActions.length,
1548
- },
1552
+ totalEntries: releaseActions.length
1553
+ }
1549
1554
  });
1550
1555
  },
1551
- */
1552
1556
  async findMany(ctx) {
1553
1557
  const releaseId = ctx.params.releaseId;
1554
1558
  const permissionsManager = strapi.service("admin::permission").createPermissionsManager({
@@ -1647,24 +1651,22 @@ const controllers = {
1647
1651
  const release = {
1648
1652
  type: "admin",
1649
1653
  routes: [
1650
- /*
1651
1654
  {
1652
- method: 'GET',
1653
- path: '/mapEntriesToReleases',
1654
- handler: 'release.mapEntriesToReleases',
1655
+ method: "GET",
1656
+ path: "/mapEntriesToReleases",
1657
+ handler: "release.mapEntriesToReleases",
1655
1658
  config: {
1656
1659
  policies: [
1657
- 'admin::isAuthenticatedAdmin',
1660
+ "admin::isAuthenticatedAdmin",
1658
1661
  {
1659
- name: 'admin::hasPermissions',
1662
+ name: "admin::hasPermissions",
1660
1663
  config: {
1661
- actions: ['plugin::content-releases.read'],
1662
- },
1663
- },
1664
- ],
1665
- },
1664
+ actions: ["plugin::content-releases.read"]
1665
+ }
1666
+ }
1667
+ ]
1668
+ }
1666
1669
  },
1667
- */
1668
1670
  {
1669
1671
  method: "GET",
1670
1672
  path: "/getByDocumentAttached",
@@ -1798,24 +1800,22 @@ const releaseAction = {
1798
1800
  ]
1799
1801
  }
1800
1802
  },
1801
- /*
1802
1803
  {
1803
- method: 'POST',
1804
- path: '/:releaseId/actions/bulk',
1805
- handler: 'release-action.createMany',
1804
+ method: "POST",
1805
+ path: "/:releaseId/actions/bulk",
1806
+ handler: "release-action.createMany",
1806
1807
  config: {
1807
1808
  policies: [
1808
- 'admin::isAuthenticatedAdmin',
1809
+ "admin::isAuthenticatedAdmin",
1809
1810
  {
1810
- name: 'admin::hasPermissions',
1811
+ name: "admin::hasPermissions",
1811
1812
  config: {
1812
- actions: ['plugin::content-releases.create-action'],
1813
- },
1814
- },
1815
- ],
1816
- },
1813
+ actions: ["plugin::content-releases.create-action"]
1814
+ }
1815
+ }
1816
+ ]
1817
+ }
1817
1818
  },
1818
- */
1819
1819
  {
1820
1820
  method: "GET",
1821
1821
  path: "/:releaseId/actions",