@strapi/content-releases 5.0.0-rc.7 → 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.
- package/dist/_chunks/{App-Cf879yGs.mjs → App-CZe9wueI.mjs} +2 -2
- package/dist/_chunks/{App-Cf879yGs.mjs.map → App-CZe9wueI.mjs.map} +1 -1
- package/dist/_chunks/{App-BjBiAE8g.js → App-DdxsZcmK.js} +2 -2
- package/dist/_chunks/{App-BjBiAE8g.js.map → App-DdxsZcmK.js.map} +1 -1
- package/dist/_chunks/{ReleasesSettingsPage-D7kMSSvV.js → ReleasesSettingsPage-CwsExK2M.js} +2 -2
- package/dist/_chunks/{ReleasesSettingsPage-D7kMSSvV.js.map → ReleasesSettingsPage-CwsExK2M.js.map} +1 -1
- package/dist/_chunks/{ReleasesSettingsPage-BlUuvtd9.mjs → ReleasesSettingsPage-DWc3H14U.mjs} +2 -2
- package/dist/_chunks/{ReleasesSettingsPage-BlUuvtd9.mjs.map → ReleasesSettingsPage-DWc3H14U.mjs.map} +1 -1
- package/dist/_chunks/{en-BCDLTJn3.js → en-CmYoEnA7.js} +2 -1
- package/dist/_chunks/en-CmYoEnA7.js.map +1 -0
- package/dist/_chunks/{en-CGXIF4vQ.mjs → en-D0yVZFqf.mjs} +2 -1
- package/dist/_chunks/en-D0yVZFqf.mjs.map +1 -0
- package/dist/_chunks/{index-BG0Q8zkH.mjs → index-CPq3qdIv.mjs} +245 -10
- package/dist/_chunks/index-CPq3qdIv.mjs.map +1 -0
- package/dist/_chunks/{index-1MxwkUQx.js → index-DtQIl4fm.js} +242 -7
- package/dist/_chunks/index-DtQIl4fm.js.map +1 -0
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/admin/src/components/ReleaseListCell.d.ts +28 -0
- package/dist/admin/src/services/release.d.ts +6 -4
- package/dist/server/index.js +73 -73
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +73 -73
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/src/controllers/index.d.ts +2 -0
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/controllers/release-action.d.ts +1 -0
- package/dist/server/src/controllers/release-action.d.ts.map +1 -1
- package/dist/server/src/controllers/release.d.ts +1 -0
- package/dist/server/src/controllers/release.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +2 -0
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/routes/release-action.d.ts.map +1 -1
- package/dist/server/src/routes/release.d.ts.map +1 -1
- package/dist/shared/contracts/release-actions.d.ts +3 -5
- package/dist/shared/contracts/release-actions.d.ts.map +1 -1
- package/dist/shared/contracts/releases.d.ts +3 -2
- package/dist/shared/contracts/releases.d.ts.map +1 -1
- package/package.json +8 -8
- package/dist/_chunks/en-BCDLTJn3.js.map +0 -1
- package/dist/_chunks/en-CGXIF4vQ.mjs.map +0 -1
- package/dist/_chunks/index-1MxwkUQx.js.map +0 -1
- package/dist/_chunks/index-BG0Q8zkH.mjs.map +0 -1
package/dist/server/index.js
CHANGED
|
@@ -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) =>
|
|
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}
|
|
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
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
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
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
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
|
-
|
|
1542
|
-
const
|
|
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(
|
|
1553
|
+
const releaseActionService = getService("release-action", { strapi });
|
|
1548
1554
|
const releaseActions = await strapi.db.transaction(async () => {
|
|
1549
|
-
const
|
|
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
|
|
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:
|
|
1676
|
-
path:
|
|
1677
|
-
handler:
|
|
1678
|
+
method: "GET",
|
|
1679
|
+
path: "/mapEntriesToReleases",
|
|
1680
|
+
handler: "release.mapEntriesToReleases",
|
|
1678
1681
|
config: {
|
|
1679
1682
|
policies: [
|
|
1680
|
-
|
|
1683
|
+
"admin::isAuthenticatedAdmin",
|
|
1681
1684
|
{
|
|
1682
|
-
name:
|
|
1685
|
+
name: "admin::hasPermissions",
|
|
1683
1686
|
config: {
|
|
1684
|
-
actions: [
|
|
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:
|
|
1827
|
-
path:
|
|
1828
|
-
handler:
|
|
1827
|
+
method: "POST",
|
|
1828
|
+
path: "/:releaseId/actions/bulk",
|
|
1829
|
+
handler: "release-action.createMany",
|
|
1829
1830
|
config: {
|
|
1830
1831
|
policies: [
|
|
1831
|
-
|
|
1832
|
+
"admin::isAuthenticatedAdmin",
|
|
1832
1833
|
{
|
|
1833
|
-
name:
|
|
1834
|
+
name: "admin::hasPermissions",
|
|
1834
1835
|
config: {
|
|
1835
|
-
actions: [
|
|
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",
|