@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
@@ -1135,11 +1135,11 @@ const createReleaseValidationService = ({ strapi: strapi2 }) => ({
1135
1135
  throw new utils.errors.NotFoundError(`No release found for id ${releaseId}`);
1136
1136
  }
1137
1137
  const isEntryInRelease = release2.actions.some(
1138
- (action) => Number(action.entryDocumentId) === Number(releaseActionArgs.entryDocumentId) && action.contentType === releaseActionArgs.contentType && action.locale === releaseActionArgs.locale
1138
+ (action) => action.entryDocumentId === releaseActionArgs.entryDocumentId && action.contentType === releaseActionArgs.contentType && (releaseActionArgs.locale ? action.locale === releaseActionArgs.locale : true)
1139
1139
  );
1140
1140
  if (isEntryInRelease) {
1141
1141
  throw new AlreadyOnReleaseError(
1142
- `Entry with documentId ${releaseActionArgs.entryDocumentId} ${releaseActionArgs.locale ? `(${releaseActionArgs.locale})` : ""} and contentType ${releaseActionArgs.contentType} already exists in release with id ${releaseId}`
1142
+ `Entry with documentId ${releaseActionArgs.entryDocumentId}${releaseActionArgs.locale ? `( ${releaseActionArgs.locale})` : ""} and contentType ${releaseActionArgs.contentType} already exists in release with id ${releaseId}`
1143
1143
  );
1144
1144
  }
1145
1145
  },
@@ -1408,43 +1408,50 @@ const releaseController = {
1408
1408
  };
1409
1409
  ctx.body = { data };
1410
1410
  },
1411
- /* @TODO: Migrate to new api
1412
- async mapEntriesToReleases(ctx: Koa.Context) {
1413
- const { contentTypeUid, entriesIds } = ctx.query;
1414
-
1415
- if (!contentTypeUid || !entriesIds) {
1416
- throw new errors.ValidationError('Missing required query parameters');
1411
+ async mapEntriesToReleases(ctx) {
1412
+ const { contentTypeUid, documentIds, locale } = ctx.query;
1413
+ if (!contentTypeUid || !documentIds) {
1414
+ throw new utils.errors.ValidationError("Missing required query parameters");
1415
+ }
1416
+ const releaseService = getService("release", { strapi });
1417
+ const releasesWithActions = await releaseService.findMany({
1418
+ where: {
1419
+ releasedAt: null,
1420
+ actions: {
1421
+ contentType: contentTypeUid,
1422
+ entryDocumentId: {
1423
+ $in: documentIds
1424
+ },
1425
+ locale
1426
+ }
1427
+ },
1428
+ populate: {
1429
+ actions: true
1417
1430
  }
1418
-
1419
- const releaseService = getService('release', { strapi });
1420
-
1421
- const releasesWithActions = await releaseService.findMany(
1422
- contentTypeUid,
1423
- entriesIds
1424
- );
1425
-
1426
- const mappedEntriesInReleases = releasesWithActions.reduce(
1427
- // TODO: Fix for v5 removed mappedEntriedToRelease
1428
- (acc: MapEntriesToReleases.Response['data'], release: Release) => {
1429
- release.actions.forEach((action) => {
1430
- if (!acc[action.entry.id]) {
1431
- acc[action.entry.id] = [{ id: release.id, name: release.name }];
1432
- } else {
1433
- acc[action.entry.id].push({ id: release.id, name: release.name });
1434
- }
1435
- });
1436
-
1437
- return acc;
1438
- },
1439
- // TODO: Fix for v5 removed mappedEntriedToRelease
1440
- {} as MapEntriesToReleases.Response['data']
1441
- );
1442
-
1443
- ctx.body = {
1444
- data: mappedEntriesInReleases,
1445
- };
1446
- },
1447
- */
1431
+ });
1432
+ const mappedEntriesInReleases = releasesWithActions.reduce(
1433
+ (acc, release2) => {
1434
+ release2.actions.forEach((action) => {
1435
+ if (action.contentType !== contentTypeUid) {
1436
+ return;
1437
+ }
1438
+ if (locale && action.locale !== locale) {
1439
+ return;
1440
+ }
1441
+ if (!acc[action.entryDocumentId]) {
1442
+ acc[action.entryDocumentId] = [{ id: release2.id, name: release2.name }];
1443
+ } else {
1444
+ acc[action.entryDocumentId].push({ id: release2.id, name: release2.name });
1445
+ }
1446
+ });
1447
+ return acc;
1448
+ },
1449
+ {}
1450
+ );
1451
+ ctx.body = {
1452
+ data: mappedEntriesInReleases
1453
+ };
1454
+ },
1448
1455
  async create(ctx) {
1449
1456
  const user = ctx.state.user;
1450
1457
  const releaseArgs = ctx.request.body;
@@ -1537,22 +1544,20 @@ const releaseActionController = {
1537
1544
  data: releaseAction2
1538
1545
  });
1539
1546
  },
1540
- /*
1541
- async createMany(ctx: Koa.Context) {
1542
- const releaseId: CreateManyReleaseActions.Request['params']['releaseId'] = ctx.params.releaseId;
1543
- const releaseActionsArgs = ctx.request.body as CreateManyReleaseActions.Request['body'];
1547
+ async createMany(ctx) {
1548
+ const releaseId = ctx.params.releaseId;
1549
+ const releaseActionsArgs = ctx.request.body;
1544
1550
  await Promise.all(
1545
1551
  releaseActionsArgs.map((releaseActionArgs) => validateReleaseAction(releaseActionArgs))
1546
1552
  );
1547
- const releaseActionService = getService('release-action', { strapi });
1553
+ const releaseActionService = getService("release-action", { strapi });
1548
1554
  const releaseActions = await strapi.db.transaction(async () => {
1549
- const releaseActions = await Promise.all(
1555
+ const releaseActions2 = await Promise.all(
1550
1556
  releaseActionsArgs.map(async (releaseActionArgs) => {
1551
1557
  try {
1552
1558
  const action = await releaseActionService.create(releaseId, releaseActionArgs);
1553
1559
  return action;
1554
1560
  } catch (error) {
1555
- // If the entry is already in the release, we don't want to throw an error, so we catch and ignore it
1556
1561
  if (error instanceof AlreadyOnReleaseError) {
1557
1562
  return null;
1558
1563
  }
@@ -1560,18 +1565,17 @@ const releaseActionController = {
1560
1565
  }
1561
1566
  })
1562
1567
  );
1563
- return releaseActions;
1568
+ return releaseActions2;
1564
1569
  });
1565
1570
  const newReleaseActions = releaseActions.filter((action) => action !== null);
1566
1571
  ctx.created({
1567
1572
  data: newReleaseActions,
1568
1573
  meta: {
1569
1574
  entriesAlreadyInRelease: releaseActions.length - newReleaseActions.length,
1570
- totalEntries: releaseActions.length,
1571
- },
1575
+ totalEntries: releaseActions.length
1576
+ }
1572
1577
  });
1573
1578
  },
1574
- */
1575
1579
  async findMany(ctx) {
1576
1580
  const releaseId = ctx.params.releaseId;
1577
1581
  const permissionsManager = strapi.service("admin::permission").createPermissionsManager({
@@ -1670,24 +1674,22 @@ const controllers = {
1670
1674
  const release = {
1671
1675
  type: "admin",
1672
1676
  routes: [
1673
- /*
1674
1677
  {
1675
- method: 'GET',
1676
- path: '/mapEntriesToReleases',
1677
- handler: 'release.mapEntriesToReleases',
1678
+ method: "GET",
1679
+ path: "/mapEntriesToReleases",
1680
+ handler: "release.mapEntriesToReleases",
1678
1681
  config: {
1679
1682
  policies: [
1680
- 'admin::isAuthenticatedAdmin',
1683
+ "admin::isAuthenticatedAdmin",
1681
1684
  {
1682
- name: 'admin::hasPermissions',
1685
+ name: "admin::hasPermissions",
1683
1686
  config: {
1684
- actions: ['plugin::content-releases.read'],
1685
- },
1686
- },
1687
- ],
1688
- },
1687
+ actions: ["plugin::content-releases.read"]
1688
+ }
1689
+ }
1690
+ ]
1691
+ }
1689
1692
  },
1690
- */
1691
1693
  {
1692
1694
  method: "GET",
1693
1695
  path: "/getByDocumentAttached",
@@ -1821,24 +1823,22 @@ const releaseAction = {
1821
1823
  ]
1822
1824
  }
1823
1825
  },
1824
- /*
1825
1826
  {
1826
- method: 'POST',
1827
- path: '/:releaseId/actions/bulk',
1828
- handler: 'release-action.createMany',
1827
+ method: "POST",
1828
+ path: "/:releaseId/actions/bulk",
1829
+ handler: "release-action.createMany",
1829
1830
  config: {
1830
1831
  policies: [
1831
- 'admin::isAuthenticatedAdmin',
1832
+ "admin::isAuthenticatedAdmin",
1832
1833
  {
1833
- name: 'admin::hasPermissions',
1834
+ name: "admin::hasPermissions",
1834
1835
  config: {
1835
- actions: ['plugin::content-releases.create-action'],
1836
- },
1837
- },
1838
- ],
1839
- },
1836
+ actions: ["plugin::content-releases.create-action"]
1837
+ }
1838
+ }
1839
+ ]
1840
+ }
1840
1841
  },
1841
- */
1842
1842
  {
1843
1843
  method: "GET",
1844
1844
  path: "/:releaseId/actions",