@strapi/content-releases 5.0.0-rc.2 → 5.0.0-rc.21
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-CKoteEu-.js → App-BFo3ibui.js} +156 -101
- package/dist/_chunks/App-BFo3ibui.js.map +1 -0
- package/dist/_chunks/{App-CwBi9wFK.mjs → App-JwN_xBnA.mjs} +161 -106
- package/dist/_chunks/App-JwN_xBnA.mjs.map +1 -0
- package/dist/_chunks/{ReleasesSettingsPage-U9Ud3HzH.js → ReleasesSettingsPage-BanjZwEc.js} +4 -4
- package/dist/_chunks/ReleasesSettingsPage-BanjZwEc.js.map +1 -0
- package/dist/_chunks/{ReleasesSettingsPage-Be1qEgcA.mjs → ReleasesSettingsPage-CNMXGcZC.mjs} +4 -4
- package/dist/_chunks/ReleasesSettingsPage-CNMXGcZC.mjs.map +1 -0
- package/dist/_chunks/{en-1_1re1mc.js → en-CmYoEnA7.js} +3 -1
- package/dist/_chunks/en-CmYoEnA7.js.map +1 -0
- package/dist/_chunks/{en-C3sq5KNP.mjs → en-D0yVZFqf.mjs} +3 -1
- package/dist/_chunks/en-D0yVZFqf.mjs.map +1 -0
- package/dist/_chunks/{index-VB3t7pBK.mjs → index-C_e6DQb0.mjs} +254 -11
- package/dist/_chunks/index-C_e6DQb0.mjs.map +1 -0
- package/dist/_chunks/{index-JLkDg3pp.js → index-Em3KctMx.js} +251 -8
- package/dist/_chunks/index-Em3KctMx.js.map +1 -0
- package/dist/_chunks/schemas-63pFihNF.mjs +44 -0
- package/dist/_chunks/schemas-63pFihNF.mjs.map +1 -0
- package/dist/_chunks/{schemas-3o-6hwUE.js → schemas-z5zp-_Gd.js} +20 -18
- package/dist/_chunks/schemas-z5zp-_Gd.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/admin/src/validation/schemas.d.ts +4 -0
- package/dist/server/index.js +84 -76
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +84 -76
- 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 +4 -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/server/src/services/index.d.ts +2 -0
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/release-action.d.ts +3 -1
- package/dist/server/src/services/release-action.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 +12 -11
- package/dist/_chunks/App-CKoteEu-.js.map +0 -1
- package/dist/_chunks/App-CwBi9wFK.mjs.map +0 -1
- package/dist/_chunks/ReleasesSettingsPage-Be1qEgcA.mjs.map +0 -1
- package/dist/_chunks/ReleasesSettingsPage-U9Ud3HzH.js.map +0 -1
- package/dist/_chunks/en-1_1re1mc.js.map +0 -1
- package/dist/_chunks/en-C3sq5KNP.mjs.map +0 -1
- package/dist/_chunks/index-JLkDg3pp.js.map +0 -1
- package/dist/_chunks/index-VB3t7pBK.mjs.map +0 -1
- package/dist/_chunks/schemas-3o-6hwUE.js.map +0 -1
- package/dist/_chunks/schemas-CBVqXur2.mjs +0 -42
- package/dist/_chunks/schemas-CBVqXur2.mjs.map +0 -1
- package/strapi-server.js +0 -3
package/dist/server/index.mjs
CHANGED
|
@@ -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
|
});
|
|
@@ -939,7 +939,9 @@ const createReleaseActionService = ({ strapi: strapi2 }) => {
|
|
|
939
939
|
},
|
|
940
940
|
populate: { release: { select: ["id"] } }
|
|
941
941
|
});
|
|
942
|
-
|
|
942
|
+
if (!disableUpdateReleaseStatus) {
|
|
943
|
+
getService("release", { strapi: strapi2 }).updateReleaseStatus(release2.id);
|
|
944
|
+
}
|
|
943
945
|
return releaseAction2;
|
|
944
946
|
},
|
|
945
947
|
async findPage(releaseId, query) {
|
|
@@ -1112,11 +1114,11 @@ const createReleaseValidationService = ({ strapi: strapi2 }) => ({
|
|
|
1112
1114
|
throw new errors.NotFoundError(`No release found for id ${releaseId}`);
|
|
1113
1115
|
}
|
|
1114
1116
|
const isEntryInRelease = release2.actions.some(
|
|
1115
|
-
(action) =>
|
|
1117
|
+
(action) => action.entryDocumentId === releaseActionArgs.entryDocumentId && action.contentType === releaseActionArgs.contentType && (releaseActionArgs.locale ? action.locale === releaseActionArgs.locale : true)
|
|
1116
1118
|
);
|
|
1117
1119
|
if (isEntryInRelease) {
|
|
1118
1120
|
throw new AlreadyOnReleaseError(
|
|
1119
|
-
`Entry with documentId ${releaseActionArgs.entryDocumentId}
|
|
1121
|
+
`Entry with documentId ${releaseActionArgs.entryDocumentId}${releaseActionArgs.locale ? `( ${releaseActionArgs.locale})` : ""} and contentType ${releaseActionArgs.contentType} already exists in release with id ${releaseId}`
|
|
1120
1122
|
);
|
|
1121
1123
|
}
|
|
1122
1124
|
},
|
|
@@ -1385,43 +1387,50 @@ const releaseController = {
|
|
|
1385
1387
|
};
|
|
1386
1388
|
ctx.body = { data };
|
|
1387
1389
|
},
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1390
|
+
async mapEntriesToReleases(ctx) {
|
|
1391
|
+
const { contentTypeUid, documentIds, locale } = ctx.query;
|
|
1392
|
+
if (!contentTypeUid || !documentIds) {
|
|
1393
|
+
throw new errors.ValidationError("Missing required query parameters");
|
|
1394
|
+
}
|
|
1395
|
+
const releaseService = getService("release", { strapi });
|
|
1396
|
+
const releasesWithActions = await releaseService.findMany({
|
|
1397
|
+
where: {
|
|
1398
|
+
releasedAt: null,
|
|
1399
|
+
actions: {
|
|
1400
|
+
contentType: contentTypeUid,
|
|
1401
|
+
entryDocumentId: {
|
|
1402
|
+
$in: documentIds
|
|
1403
|
+
},
|
|
1404
|
+
locale
|
|
1405
|
+
}
|
|
1406
|
+
},
|
|
1407
|
+
populate: {
|
|
1408
|
+
actions: true
|
|
1394
1409
|
}
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
ctx.body = {
|
|
1421
|
-
data: mappedEntriesInReleases,
|
|
1422
|
-
};
|
|
1423
|
-
},
|
|
1424
|
-
*/
|
|
1410
|
+
});
|
|
1411
|
+
const mappedEntriesInReleases = releasesWithActions.reduce(
|
|
1412
|
+
(acc, release2) => {
|
|
1413
|
+
release2.actions.forEach((action) => {
|
|
1414
|
+
if (action.contentType !== contentTypeUid) {
|
|
1415
|
+
return;
|
|
1416
|
+
}
|
|
1417
|
+
if (locale && action.locale !== locale) {
|
|
1418
|
+
return;
|
|
1419
|
+
}
|
|
1420
|
+
if (!acc[action.entryDocumentId]) {
|
|
1421
|
+
acc[action.entryDocumentId] = [{ id: release2.id, name: release2.name }];
|
|
1422
|
+
} else {
|
|
1423
|
+
acc[action.entryDocumentId].push({ id: release2.id, name: release2.name });
|
|
1424
|
+
}
|
|
1425
|
+
});
|
|
1426
|
+
return acc;
|
|
1427
|
+
},
|
|
1428
|
+
{}
|
|
1429
|
+
);
|
|
1430
|
+
ctx.body = {
|
|
1431
|
+
data: mappedEntriesInReleases
|
|
1432
|
+
};
|
|
1433
|
+
},
|
|
1425
1434
|
async create(ctx) {
|
|
1426
1435
|
const user = ctx.state.user;
|
|
1427
1436
|
const releaseArgs = ctx.request.body;
|
|
@@ -1514,22 +1523,23 @@ const releaseActionController = {
|
|
|
1514
1523
|
data: releaseAction2
|
|
1515
1524
|
});
|
|
1516
1525
|
},
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
const
|
|
1520
|
-
const releaseActionsArgs = ctx.request.body as CreateManyReleaseActions.Request['body'];
|
|
1526
|
+
async createMany(ctx) {
|
|
1527
|
+
const releaseId = ctx.params.releaseId;
|
|
1528
|
+
const releaseActionsArgs = ctx.request.body;
|
|
1521
1529
|
await Promise.all(
|
|
1522
1530
|
releaseActionsArgs.map((releaseActionArgs) => validateReleaseAction(releaseActionArgs))
|
|
1523
1531
|
);
|
|
1524
|
-
const releaseActionService = getService(
|
|
1532
|
+
const releaseActionService = getService("release-action", { strapi });
|
|
1533
|
+
const releaseService = getService("release", { strapi });
|
|
1525
1534
|
const releaseActions = await strapi.db.transaction(async () => {
|
|
1526
|
-
const
|
|
1535
|
+
const releaseActions2 = await Promise.all(
|
|
1527
1536
|
releaseActionsArgs.map(async (releaseActionArgs) => {
|
|
1528
1537
|
try {
|
|
1529
|
-
const action = await releaseActionService.create(releaseId, releaseActionArgs
|
|
1538
|
+
const action = await releaseActionService.create(releaseId, releaseActionArgs, {
|
|
1539
|
+
disableUpdateReleaseStatus: true
|
|
1540
|
+
});
|
|
1530
1541
|
return action;
|
|
1531
1542
|
} 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
1543
|
if (error instanceof AlreadyOnReleaseError) {
|
|
1534
1544
|
return null;
|
|
1535
1545
|
}
|
|
@@ -1537,18 +1547,20 @@ const releaseActionController = {
|
|
|
1537
1547
|
}
|
|
1538
1548
|
})
|
|
1539
1549
|
);
|
|
1540
|
-
return
|
|
1550
|
+
return releaseActions2;
|
|
1541
1551
|
});
|
|
1542
1552
|
const newReleaseActions = releaseActions.filter((action) => action !== null);
|
|
1553
|
+
if (newReleaseActions.length > 0) {
|
|
1554
|
+
releaseService.updateReleaseStatus(releaseId);
|
|
1555
|
+
}
|
|
1543
1556
|
ctx.created({
|
|
1544
1557
|
data: newReleaseActions,
|
|
1545
1558
|
meta: {
|
|
1546
1559
|
entriesAlreadyInRelease: releaseActions.length - newReleaseActions.length,
|
|
1547
|
-
totalEntries: releaseActions.length
|
|
1548
|
-
}
|
|
1560
|
+
totalEntries: releaseActions.length
|
|
1561
|
+
}
|
|
1549
1562
|
});
|
|
1550
1563
|
},
|
|
1551
|
-
*/
|
|
1552
1564
|
async findMany(ctx) {
|
|
1553
1565
|
const releaseId = ctx.params.releaseId;
|
|
1554
1566
|
const permissionsManager = strapi.service("admin::permission").createPermissionsManager({
|
|
@@ -1647,24 +1659,22 @@ const controllers = {
|
|
|
1647
1659
|
const release = {
|
|
1648
1660
|
type: "admin",
|
|
1649
1661
|
routes: [
|
|
1650
|
-
/*
|
|
1651
1662
|
{
|
|
1652
|
-
method:
|
|
1653
|
-
path:
|
|
1654
|
-
handler:
|
|
1663
|
+
method: "GET",
|
|
1664
|
+
path: "/mapEntriesToReleases",
|
|
1665
|
+
handler: "release.mapEntriesToReleases",
|
|
1655
1666
|
config: {
|
|
1656
1667
|
policies: [
|
|
1657
|
-
|
|
1668
|
+
"admin::isAuthenticatedAdmin",
|
|
1658
1669
|
{
|
|
1659
|
-
name:
|
|
1670
|
+
name: "admin::hasPermissions",
|
|
1660
1671
|
config: {
|
|
1661
|
-
actions: [
|
|
1662
|
-
}
|
|
1663
|
-
}
|
|
1664
|
-
]
|
|
1665
|
-
}
|
|
1672
|
+
actions: ["plugin::content-releases.read"]
|
|
1673
|
+
}
|
|
1674
|
+
}
|
|
1675
|
+
]
|
|
1676
|
+
}
|
|
1666
1677
|
},
|
|
1667
|
-
*/
|
|
1668
1678
|
{
|
|
1669
1679
|
method: "GET",
|
|
1670
1680
|
path: "/getByDocumentAttached",
|
|
@@ -1798,24 +1808,22 @@ const releaseAction = {
|
|
|
1798
1808
|
]
|
|
1799
1809
|
}
|
|
1800
1810
|
},
|
|
1801
|
-
/*
|
|
1802
1811
|
{
|
|
1803
|
-
method:
|
|
1804
|
-
path:
|
|
1805
|
-
handler:
|
|
1812
|
+
method: "POST",
|
|
1813
|
+
path: "/:releaseId/actions/bulk",
|
|
1814
|
+
handler: "release-action.createMany",
|
|
1806
1815
|
config: {
|
|
1807
1816
|
policies: [
|
|
1808
|
-
|
|
1817
|
+
"admin::isAuthenticatedAdmin",
|
|
1809
1818
|
{
|
|
1810
|
-
name:
|
|
1819
|
+
name: "admin::hasPermissions",
|
|
1811
1820
|
config: {
|
|
1812
|
-
actions: [
|
|
1813
|
-
}
|
|
1814
|
-
}
|
|
1815
|
-
]
|
|
1816
|
-
}
|
|
1821
|
+
actions: ["plugin::content-releases.create-action"]
|
|
1822
|
+
}
|
|
1823
|
+
}
|
|
1824
|
+
]
|
|
1825
|
+
}
|
|
1817
1826
|
},
|
|
1818
|
-
*/
|
|
1819
1827
|
{
|
|
1820
1828
|
method: "GET",
|
|
1821
1829
|
path: "/:releaseId/actions",
|