@strapi/content-releases 5.0.0-rc.0 → 5.0.0-rc.10
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-6gbM0io-.mjs → App-DMILern_.mjs} +152 -100
- package/dist/_chunks/App-DMILern_.mjs.map +1 -0
- package/dist/_chunks/{App-zzUitryC.js → App-fAgiijnc.js} +148 -96
- package/dist/_chunks/App-fAgiijnc.js.map +1 -0
- package/dist/_chunks/{SettingsPage-CTOl3Qtw.js → ReleasesSettingsPage-YVZJH-oN.js} +35 -14
- package/dist/_chunks/ReleasesSettingsPage-YVZJH-oN.js.map +1 -0
- package/dist/_chunks/{SettingsPage-CuSH193e.mjs → ReleasesSettingsPage-dwoRuXB-.mjs} +35 -14
- package/dist/_chunks/ReleasesSettingsPage-dwoRuXB-.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-BxRiXenX.js → index--_NWfuDG.js} +251 -11
- package/dist/_chunks/index--_NWfuDG.js.map +1 -0
- package/dist/_chunks/{index-CuchqQ4_.mjs → index-CYsQToWs.mjs} +265 -25
- package/dist/_chunks/index-CYsQToWs.mjs.map +1 -0
- package/dist/_chunks/schemas-63pFihNF.mjs +44 -0
- package/dist/_chunks/schemas-63pFihNF.mjs.map +1 -0
- package/dist/_chunks/{validation-schemas-bib1fBc7.js → schemas-z5zp-_Gd.js} +21 -6
- 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/constants.d.ts +18 -0
- package/dist/admin/src/modules/hooks.d.ts +7 -0
- package/dist/admin/src/pages/ReleasesSettingsPage.d.ts +1 -0
- package/dist/admin/src/services/release.d.ts +6 -4
- package/dist/admin/src/validation/schemas.d.ts +6 -0
- package/dist/server/index.js +83 -94
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +83 -94
- 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/controllers/validation/release.d.ts +1 -0
- package/dist/server/src/controllers/validation/release.d.ts.map +1 -1
- package/dist/server/src/controllers/validation/settings.d.ts +1 -0
- package/dist/server/src/controllers/validation/settings.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/dist/shared/contracts/settings.d.ts +1 -1
- package/dist/shared/contracts/settings.d.ts.map +1 -1
- package/package.json +10 -10
- package/dist/_chunks/App-6gbM0io-.mjs.map +0 -1
- package/dist/_chunks/App-zzUitryC.js.map +0 -1
- package/dist/_chunks/SettingsPage-CTOl3Qtw.js.map +0 -1
- package/dist/_chunks/SettingsPage-CuSH193e.mjs.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-BxRiXenX.js.map +0 -1
- package/dist/_chunks/index-CuchqQ4_.mjs.map +0 -1
- package/dist/_chunks/validation-schemas-C7P2rhPu.mjs +0 -29
- package/dist/_chunks/validation-schemas-C7P2rhPu.mjs.map +0 -1
- package/dist/_chunks/validation-schemas-bib1fBc7.js.map +0 -1
- package/dist/admin/src/pages/SettingsPage.d.ts +0 -1
- package/dist/shared/validation-schemas.d.ts +0 -3
- package/dist/shared/validation-schemas.d.ts.map +0 -1
package/dist/server/index.mjs
CHANGED
|
@@ -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) =>
|
|
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}
|
|
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
|
},
|
|
@@ -1249,29 +1249,15 @@ const services = {
|
|
|
1249
1249
|
scheduling: createSchedulingService,
|
|
1250
1250
|
settings: createSettingsService
|
|
1251
1251
|
};
|
|
1252
|
-
const RELEASE_SCHEMA = yup.object().shape({
|
|
1253
|
-
name: yup.string().trim().required(),
|
|
1254
|
-
scheduledAt: yup.string().nullable(),
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
otherwise: yup.string().nullable()
|
|
1260
|
-
}),
|
|
1261
|
-
timezone: yup.string().when("isScheduled", {
|
|
1262
|
-
is: true,
|
|
1263
|
-
then: yup.string().required().nullable(),
|
|
1264
|
-
otherwise: yup.string().nullable()
|
|
1265
|
-
}),
|
|
1266
|
-
date: yup.string().when("isScheduled", {
|
|
1267
|
-
is: true,
|
|
1268
|
-
then: yup.string().required().nullable(),
|
|
1269
|
-
otherwise: yup.string().nullable()
|
|
1252
|
+
const RELEASE_SCHEMA = yup$1.object().shape({
|
|
1253
|
+
name: yup$1.string().trim().required(),
|
|
1254
|
+
scheduledAt: yup$1.string().nullable(),
|
|
1255
|
+
timezone: yup$1.string().when("scheduledAt", {
|
|
1256
|
+
is: (value) => value !== null && value !== void 0,
|
|
1257
|
+
then: yup$1.string().required(),
|
|
1258
|
+
otherwise: yup$1.string().nullable()
|
|
1270
1259
|
})
|
|
1271
1260
|
}).required().noUnknown();
|
|
1272
|
-
const SETTINGS_SCHEMA = yup.object().shape({
|
|
1273
|
-
defaultTimezone: yup.string().nullable().default(null)
|
|
1274
|
-
}).required().noUnknown();
|
|
1275
1261
|
const FIND_BY_DOCUMENT_ATTACHED_PARAMS_SCHEMA = yup$1.object().shape({
|
|
1276
1262
|
contentType: yup$1.string().required(),
|
|
1277
1263
|
entryDocumentId: yup$1.string().nullable(),
|
|
@@ -1399,43 +1385,50 @@ const releaseController = {
|
|
|
1399
1385
|
};
|
|
1400
1386
|
ctx.body = { data };
|
|
1401
1387
|
},
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
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
|
|
1408
1407
|
}
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
ctx.body = {
|
|
1435
|
-
data: mappedEntriesInReleases,
|
|
1436
|
-
};
|
|
1437
|
-
},
|
|
1438
|
-
*/
|
|
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
|
+
},
|
|
1439
1432
|
async create(ctx) {
|
|
1440
1433
|
const user = ctx.state.user;
|
|
1441
1434
|
const releaseArgs = ctx.request.body;
|
|
@@ -1528,22 +1521,20 @@ const releaseActionController = {
|
|
|
1528
1521
|
data: releaseAction2
|
|
1529
1522
|
});
|
|
1530
1523
|
},
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
const
|
|
1534
|
-
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;
|
|
1535
1527
|
await Promise.all(
|
|
1536
1528
|
releaseActionsArgs.map((releaseActionArgs) => validateReleaseAction(releaseActionArgs))
|
|
1537
1529
|
);
|
|
1538
|
-
const releaseActionService = getService(
|
|
1530
|
+
const releaseActionService = getService("release-action", { strapi });
|
|
1539
1531
|
const releaseActions = await strapi.db.transaction(async () => {
|
|
1540
|
-
const
|
|
1532
|
+
const releaseActions2 = await Promise.all(
|
|
1541
1533
|
releaseActionsArgs.map(async (releaseActionArgs) => {
|
|
1542
1534
|
try {
|
|
1543
1535
|
const action = await releaseActionService.create(releaseId, releaseActionArgs);
|
|
1544
1536
|
return action;
|
|
1545
1537
|
} catch (error) {
|
|
1546
|
-
// If the entry is already in the release, we don't want to throw an error, so we catch and ignore it
|
|
1547
1538
|
if (error instanceof AlreadyOnReleaseError) {
|
|
1548
1539
|
return null;
|
|
1549
1540
|
}
|
|
@@ -1551,18 +1542,17 @@ const releaseActionController = {
|
|
|
1551
1542
|
}
|
|
1552
1543
|
})
|
|
1553
1544
|
);
|
|
1554
|
-
return
|
|
1545
|
+
return releaseActions2;
|
|
1555
1546
|
});
|
|
1556
1547
|
const newReleaseActions = releaseActions.filter((action) => action !== null);
|
|
1557
1548
|
ctx.created({
|
|
1558
1549
|
data: newReleaseActions,
|
|
1559
1550
|
meta: {
|
|
1560
1551
|
entriesAlreadyInRelease: releaseActions.length - newReleaseActions.length,
|
|
1561
|
-
totalEntries: releaseActions.length
|
|
1562
|
-
}
|
|
1552
|
+
totalEntries: releaseActions.length
|
|
1553
|
+
}
|
|
1563
1554
|
});
|
|
1564
1555
|
},
|
|
1565
|
-
*/
|
|
1566
1556
|
async findMany(ctx) {
|
|
1567
1557
|
const releaseId = ctx.params.releaseId;
|
|
1568
1558
|
const permissionsManager = strapi.service("admin::permission").createPermissionsManager({
|
|
@@ -1635,6 +1625,9 @@ const releaseActionController = {
|
|
|
1635
1625
|
};
|
|
1636
1626
|
}
|
|
1637
1627
|
};
|
|
1628
|
+
const SETTINGS_SCHEMA = yup.object().shape({
|
|
1629
|
+
defaultTimezone: yup.string().nullable().default(null)
|
|
1630
|
+
}).required().noUnknown();
|
|
1638
1631
|
const validateSettings = validateYupSchema(SETTINGS_SCHEMA);
|
|
1639
1632
|
const settingsController = {
|
|
1640
1633
|
async find(ctx) {
|
|
@@ -1658,24 +1651,22 @@ const controllers = {
|
|
|
1658
1651
|
const release = {
|
|
1659
1652
|
type: "admin",
|
|
1660
1653
|
routes: [
|
|
1661
|
-
/*
|
|
1662
1654
|
{
|
|
1663
|
-
method:
|
|
1664
|
-
path:
|
|
1665
|
-
handler:
|
|
1655
|
+
method: "GET",
|
|
1656
|
+
path: "/mapEntriesToReleases",
|
|
1657
|
+
handler: "release.mapEntriesToReleases",
|
|
1666
1658
|
config: {
|
|
1667
1659
|
policies: [
|
|
1668
|
-
|
|
1660
|
+
"admin::isAuthenticatedAdmin",
|
|
1669
1661
|
{
|
|
1670
|
-
name:
|
|
1662
|
+
name: "admin::hasPermissions",
|
|
1671
1663
|
config: {
|
|
1672
|
-
actions: [
|
|
1673
|
-
}
|
|
1674
|
-
}
|
|
1675
|
-
]
|
|
1676
|
-
}
|
|
1664
|
+
actions: ["plugin::content-releases.read"]
|
|
1665
|
+
}
|
|
1666
|
+
}
|
|
1667
|
+
]
|
|
1668
|
+
}
|
|
1677
1669
|
},
|
|
1678
|
-
*/
|
|
1679
1670
|
{
|
|
1680
1671
|
method: "GET",
|
|
1681
1672
|
path: "/getByDocumentAttached",
|
|
@@ -1809,24 +1800,22 @@ const releaseAction = {
|
|
|
1809
1800
|
]
|
|
1810
1801
|
}
|
|
1811
1802
|
},
|
|
1812
|
-
/*
|
|
1813
1803
|
{
|
|
1814
|
-
method:
|
|
1815
|
-
path:
|
|
1816
|
-
handler:
|
|
1804
|
+
method: "POST",
|
|
1805
|
+
path: "/:releaseId/actions/bulk",
|
|
1806
|
+
handler: "release-action.createMany",
|
|
1817
1807
|
config: {
|
|
1818
1808
|
policies: [
|
|
1819
|
-
|
|
1809
|
+
"admin::isAuthenticatedAdmin",
|
|
1820
1810
|
{
|
|
1821
|
-
name:
|
|
1811
|
+
name: "admin::hasPermissions",
|
|
1822
1812
|
config: {
|
|
1823
|
-
actions: [
|
|
1824
|
-
}
|
|
1825
|
-
}
|
|
1826
|
-
]
|
|
1827
|
-
}
|
|
1813
|
+
actions: ["plugin::content-releases.create-action"]
|
|
1814
|
+
}
|
|
1815
|
+
}
|
|
1816
|
+
]
|
|
1817
|
+
}
|
|
1828
1818
|
},
|
|
1829
|
-
*/
|
|
1830
1819
|
{
|
|
1831
1820
|
method: "GET",
|
|
1832
1821
|
path: "/:releaseId/actions",
|