@strapi/content-manager 0.0.0-experimental.b1d7921ddb1b36c84b58a3946e1dc9dbda91b2dc → 0.0.0-experimental.b67f4e6a09bc9dea2c9c999705ecef7e18e84f94
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/{ComponentConfigurationPage-CQDCxI8x.js → ComponentConfigurationPage-ClKl_TA2.js} +4 -4
- package/dist/_chunks/{ComponentConfigurationPage-CQDCxI8x.js.map → ComponentConfigurationPage-ClKl_TA2.js.map} +1 -1
- package/dist/_chunks/{ComponentConfigurationPage-jmWwucg_.mjs → ComponentConfigurationPage-D3ZWDAHG.mjs} +4 -4
- package/dist/_chunks/{ComponentConfigurationPage-jmWwucg_.mjs.map → ComponentConfigurationPage-D3ZWDAHG.mjs.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-W07CEdm2.mjs → EditConfigurationPage-BYCBSJxP.mjs} +4 -4
- package/dist/_chunks/{EditConfigurationPage-W07CEdm2.mjs.map → EditConfigurationPage-BYCBSJxP.mjs.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-Ce4bIm4n.js → EditConfigurationPage-OWez0Kxp.js} +4 -4
- package/dist/_chunks/{EditConfigurationPage-Ce4bIm4n.js.map → EditConfigurationPage-OWez0Kxp.js.map} +1 -1
- package/dist/_chunks/{EditViewPage-al5OO1NR.mjs → EditViewPage-5pdbvsO_.mjs} +38 -8
- package/dist/_chunks/EditViewPage-5pdbvsO_.mjs.map +1 -0
- package/dist/_chunks/{EditViewPage-CqHMM0P0.js → EditViewPage-BEs5iGDi.js} +37 -7
- package/dist/_chunks/EditViewPage-BEs5iGDi.js.map +1 -0
- package/dist/_chunks/{Field-DSOUlTCm.js → Field-DNHm4wHx.js} +42 -23
- package/dist/_chunks/Field-DNHm4wHx.js.map +1 -0
- package/dist/_chunks/{Field-EeG6NQ7x.mjs → Field-DcKuFHYK.mjs} +42 -23
- package/dist/_chunks/Field-DcKuFHYK.mjs.map +1 -0
- package/dist/_chunks/{Form-BAo9ANb_.mjs → Form-CGwM_-5c.mjs} +2 -2
- package/dist/_chunks/{Form-BAo9ANb_.mjs.map → Form-CGwM_-5c.mjs.map} +1 -1
- package/dist/_chunks/{Form-DAEfHKzm.js → Form-CoRxWJOz.js} +2 -2
- package/dist/_chunks/{Form-DAEfHKzm.js.map → Form-CoRxWJOz.js.map} +1 -1
- package/dist/_chunks/{History-CTFvy6XH.js → History-BcUTQrfG.js} +21 -91
- package/dist/_chunks/History-BcUTQrfG.js.map +1 -0
- package/dist/_chunks/{History-BpLIu67W.mjs → History-DEvr3Q_V.mjs} +22 -92
- package/dist/_chunks/History-DEvr3Q_V.mjs.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-CDzlMBz_.js → ListConfigurationPage-BE_Ho7tV.js} +5 -4
- package/dist/_chunks/ListConfigurationPage-BE_Ho7tV.js.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-DOqj5f8Y.mjs → ListConfigurationPage-BM4zZZcM.mjs} +6 -5
- package/dist/_chunks/ListConfigurationPage-BM4zZZcM.mjs.map +1 -0
- package/dist/_chunks/{ListViewPage-BbXYNI0v.mjs → ListViewPage-BK2mkrql.mjs} +28 -6
- package/dist/_chunks/{ListViewPage-BbXYNI0v.mjs.map → ListViewPage-BK2mkrql.mjs.map} +1 -1
- package/dist/_chunks/{ListViewPage-D0fpPYKp.js → ListViewPage-BkT8Eao0.js} +28 -6
- package/dist/_chunks/ListViewPage-BkT8Eao0.js.map +1 -0
- package/dist/_chunks/{NoContentTypePage-w2Q0VVOT.mjs → NoContentTypePage-BvcAutu9.mjs} +2 -2
- package/dist/_chunks/{NoContentTypePage-w2Q0VVOT.mjs.map → NoContentTypePage-BvcAutu9.mjs.map} +1 -1
- package/dist/_chunks/{NoContentTypePage-DTzkSAV5.js → NoContentTypePage-C8mtyc4H.js} +2 -2
- package/dist/_chunks/{NoContentTypePage-DTzkSAV5.js.map → NoContentTypePage-C8mtyc4H.js.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-BoI2rU68.js → NoPermissionsPage-B5Y9Y78B.js} +2 -2
- package/dist/_chunks/{NoPermissionsPage-BoI2rU68.js.map → NoPermissionsPage-B5Y9Y78B.js.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-Km0Vk5Wp.mjs → NoPermissionsPage-BmbRz7PR.mjs} +2 -2
- package/dist/_chunks/{NoPermissionsPage-Km0Vk5Wp.mjs.map → NoPermissionsPage-BmbRz7PR.mjs.map} +1 -1
- package/dist/_chunks/Preview-BF8ZDYqS.js +286 -0
- package/dist/_chunks/Preview-BF8ZDYqS.js.map +1 -0
- package/dist/_chunks/Preview-DcexhKJE.mjs +267 -0
- package/dist/_chunks/Preview-DcexhKJE.mjs.map +1 -0
- package/dist/_chunks/{Relations-D6Nz5ksc.js → Relations-BKnoK1R0.js} +24 -10
- package/dist/_chunks/Relations-BKnoK1R0.js.map +1 -0
- package/dist/_chunks/{Relations-C_bpmSuQ.mjs → Relations-BjIzc4EK.mjs} +25 -11
- package/dist/_chunks/Relations-BjIzc4EK.mjs.map +1 -0
- package/dist/_chunks/{en-DKV44jRb.mjs → en-CfIXaZf9.mjs} +14 -3
- package/dist/_chunks/{en-DKV44jRb.mjs.map → en-CfIXaZf9.mjs.map} +1 -1
- package/dist/_chunks/{en-Bm0D0IWz.js → en-DTWPCdTS.js} +14 -3
- package/dist/_chunks/{en-Bm0D0IWz.js.map → en-DTWPCdTS.js.map} +1 -1
- package/dist/_chunks/{es-EUonQTon.js → es-9K52xZIr.js} +2 -2
- package/dist/_chunks/{ja-CcFe8diO.js.map → es-9K52xZIr.js.map} +1 -1
- package/dist/_chunks/{es-CeXiYflN.mjs → es-D34tqjMw.mjs} +2 -2
- package/dist/_chunks/{es-CeXiYflN.mjs.map → es-D34tqjMw.mjs.map} +1 -1
- package/dist/_chunks/{fr-CD9VFbPM.mjs → fr--pg5jUbt.mjs} +13 -3
- package/dist/_chunks/{fr-CD9VFbPM.mjs.map → fr--pg5jUbt.mjs.map} +1 -1
- package/dist/_chunks/{fr-B7kGGg3E.js → fr-B2Kyv8Z9.js} +13 -3
- package/dist/_chunks/{fr-B7kGGg3E.js.map → fr-B2Kyv8Z9.js.map} +1 -1
- package/dist/_chunks/{index-DcQ6xogO.mjs → index-BW-rXkjn.mjs} +164 -81
- package/dist/_chunks/index-BW-rXkjn.mjs.map +1 -0
- package/dist/_chunks/{index-BsMu2oVP.js → index-DOzAG2cq.js} +160 -77
- package/dist/_chunks/index-DOzAG2cq.js.map +1 -0
- package/dist/_chunks/{ja-CcFe8diO.js → ja-7sfIbjxE.js} +2 -2
- package/dist/_chunks/{es-EUonQTon.js.map → ja-7sfIbjxE.js.map} +1 -1
- package/dist/_chunks/{ja-CtsUxOvk.mjs → ja-BHqhDq4V.mjs} +2 -2
- package/dist/_chunks/{ja-CtsUxOvk.mjs.map → ja-BHqhDq4V.mjs.map} +1 -1
- package/dist/_chunks/{layout-BavJ6v4B.mjs → layout-DFVbgjp2.mjs} +3 -3
- package/dist/_chunks/{layout-BavJ6v4B.mjs.map → layout-DFVbgjp2.mjs.map} +1 -1
- package/dist/_chunks/{layout-B4aCAdTt.js → layout-RC3W2obV.js} +3 -3
- package/dist/_chunks/{layout-B4aCAdTt.js.map → layout-RC3W2obV.js.map} +1 -1
- package/dist/_chunks/{objects-gigeqt7s.js → objects-BcXOv6_9.js} +2 -4
- package/dist/_chunks/{objects-gigeqt7s.js.map → objects-BcXOv6_9.js.map} +1 -1
- package/dist/_chunks/{objects-mKMAmfec.mjs → objects-D6yBsdmx.mjs} +2 -4
- package/dist/_chunks/{objects-mKMAmfec.mjs.map → objects-D6yBsdmx.mjs.map} +1 -1
- package/dist/_chunks/{relations-DMG453Od.mjs → relations-Dogh8HWI.mjs} +6 -7
- package/dist/_chunks/relations-Dogh8HWI.mjs.map +1 -0
- package/dist/_chunks/{relations-Lrm9nz_m.js → relations-zam7-5H7.js} +6 -7
- package/dist/_chunks/relations-zam7-5H7.js.map +1 -0
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +4 -4
- package/dist/admin/src/pages/EditView/EditViewPage.d.ts +9 -1
- package/dist/admin/src/pages/EditView/components/DocumentStatus.d.ts +2 -2
- package/dist/admin/src/preview/components/PreviewContent.d.ts +2 -0
- package/dist/admin/src/preview/components/PreviewHeader.d.ts +2 -0
- package/dist/admin/src/preview/components/PreviewSidePanel.d.ts +3 -0
- package/dist/admin/src/preview/constants.d.ts +1 -0
- package/dist/admin/src/preview/index.d.ts +4 -0
- package/dist/admin/src/preview/pages/Preview.d.ts +11 -0
- package/dist/admin/src/preview/routes.d.ts +3 -0
- package/dist/admin/src/preview/services/preview.d.ts +3 -0
- package/dist/admin/src/router.d.ts +1 -1
- package/dist/server/index.js +347 -130
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +348 -131
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/src/bootstrap.d.ts.map +1 -1
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
- package/dist/server/src/history/services/utils.d.ts +2 -3
- package/dist/server/src/history/services/utils.d.ts.map +1 -1
- package/dist/server/src/preview/constants.d.ts +2 -0
- package/dist/server/src/preview/constants.d.ts.map +1 -0
- package/dist/server/src/preview/controllers/index.d.ts +2 -0
- package/dist/server/src/preview/controllers/index.d.ts.map +1 -0
- package/dist/server/src/preview/controllers/preview.d.ts +13 -0
- package/dist/server/src/preview/controllers/preview.d.ts.map +1 -0
- package/dist/server/src/preview/controllers/validation/preview.d.ts +6 -0
- package/dist/server/src/preview/controllers/validation/preview.d.ts.map +1 -0
- package/dist/server/src/preview/index.d.ts +4 -0
- package/dist/server/src/preview/index.d.ts.map +1 -0
- package/dist/server/src/preview/routes/index.d.ts +8 -0
- package/dist/server/src/preview/routes/index.d.ts.map +1 -0
- package/dist/server/src/preview/routes/preview.d.ts +4 -0
- package/dist/server/src/preview/routes/preview.d.ts.map +1 -0
- package/dist/server/src/preview/services/index.d.ts +16 -0
- package/dist/server/src/preview/services/index.d.ts.map +1 -0
- package/dist/server/src/preview/services/preview-config.d.ts +32 -0
- package/dist/server/src/preview/services/preview-config.d.ts.map +1 -0
- package/dist/server/src/preview/services/preview.d.ts +12 -0
- package/dist/server/src/preview/services/preview.d.ts.map +1 -0
- package/dist/server/src/preview/utils.d.ts +19 -0
- package/dist/server/src/preview/utils.d.ts.map +1 -0
- package/dist/server/src/register.d.ts.map +1 -1
- package/dist/server/src/routes/index.d.ts.map +1 -1
- package/dist/server/src/services/document-manager.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/shared/contracts/index.d.ts +1 -0
- package/dist/shared/contracts/index.d.ts.map +1 -1
- package/dist/shared/contracts/preview.d.ts +27 -0
- package/dist/shared/contracts/preview.d.ts.map +1 -0
- package/dist/shared/index.js +4 -0
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/index.mjs +4 -0
- package/dist/shared/index.mjs.map +1 -1
- package/package.json +10 -10
- package/dist/_chunks/EditViewPage-CqHMM0P0.js.map +0 -1
- package/dist/_chunks/EditViewPage-al5OO1NR.mjs.map +0 -1
- package/dist/_chunks/Field-DSOUlTCm.js.map +0 -1
- package/dist/_chunks/Field-EeG6NQ7x.mjs.map +0 -1
- package/dist/_chunks/History-BpLIu67W.mjs.map +0 -1
- package/dist/_chunks/History-CTFvy6XH.js.map +0 -1
- package/dist/_chunks/ListConfigurationPage-CDzlMBz_.js.map +0 -1
- package/dist/_chunks/ListConfigurationPage-DOqj5f8Y.mjs.map +0 -1
- package/dist/_chunks/ListViewPage-D0fpPYKp.js.map +0 -1
- package/dist/_chunks/Relations-C_bpmSuQ.mjs.map +0 -1
- package/dist/_chunks/Relations-D6Nz5ksc.js.map +0 -1
- package/dist/_chunks/index-BsMu2oVP.js.map +0 -1
- package/dist/_chunks/index-DcQ6xogO.mjs.map +0 -1
- package/dist/_chunks/relations-DMG453Od.mjs.map +0 -1
- package/dist/_chunks/relations-Lrm9nz_m.js.map +0 -1
package/dist/server/index.mjs
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
import strapiUtils, { validateYupSchema, errors, async, contentTypes as contentTypes$1, yup as yup$1, validateYupSchemaSync, policy, traverse, setCreatorFields, isOperatorOfType, relations as relations$1, traverseEntity, pagination } from "@strapi/utils";
|
2
|
-
import { pick, omit, difference, castArray, intersection, pipe, propOr, isEqual, isEmpty, set, isNil as isNil$1, has, prop, assoc, mapValues, flow, uniq, uniqBy, concat, getOr, propEq, merge, groupBy } from "lodash/fp";
|
2
|
+
import { pick, omit, difference, castArray, mergeWith, intersection, pipe, propOr, isEqual, isEmpty, set, isNil as isNil$1, has, prop, assoc, mapValues, flow, uniq, uniqBy, concat, getOr, propEq, merge, groupBy } from "lodash/fp";
|
3
3
|
import "@strapi/types";
|
4
4
|
import * as yup from "yup";
|
5
5
|
import { scheduleJob } from "node-schedule";
|
@@ -7,10 +7,10 @@ import isNil from "lodash/isNil";
|
|
7
7
|
import _, { intersection as intersection$1, difference as difference$1 } from "lodash";
|
8
8
|
import qs from "qs";
|
9
9
|
import slugify from "@sindresorhus/slugify";
|
10
|
-
const getService$
|
10
|
+
const getService$2 = (name) => {
|
11
11
|
return strapi.plugin("content-manager").service(name);
|
12
12
|
};
|
13
|
-
function getService(strapi2, name) {
|
13
|
+
function getService$1(strapi2, name) {
|
14
14
|
return strapi2.service(`plugin::content-manager.${name}`);
|
15
15
|
}
|
16
16
|
const historyRestoreVersionSchema = yup.object().shape({
|
@@ -46,7 +46,7 @@ const createHistoryVersionController = ({ strapi: strapi2 }) => {
|
|
46
46
|
if (!isSingleType && (!contentTypeUid || !ctx.query.documentId)) {
|
47
47
|
throw new errors.ForbiddenError("contentType and documentId are required");
|
48
48
|
}
|
49
|
-
const permissionChecker2 = getService$
|
49
|
+
const permissionChecker2 = getService$2("permission-checker").create({
|
50
50
|
userAbility: ctx.state.userAbility,
|
51
51
|
model: ctx.query.contentType
|
52
52
|
});
|
@@ -54,7 +54,7 @@ const createHistoryVersionController = ({ strapi: strapi2 }) => {
|
|
54
54
|
return ctx.forbidden();
|
55
55
|
}
|
56
56
|
const query = await permissionChecker2.sanitizeQuery(ctx.query);
|
57
|
-
const { results, pagination: pagination2 } = await getService(strapi2, "history").findVersionsPage({
|
57
|
+
const { results, pagination: pagination2 } = await getService$1(strapi2, "history").findVersionsPage({
|
58
58
|
query: {
|
59
59
|
...query,
|
60
60
|
...getValidPagination({ page: query.page, pageSize: query.pageSize })
|
@@ -79,14 +79,14 @@ const createHistoryVersionController = ({ strapi: strapi2 }) => {
|
|
79
79
|
async restoreVersion(ctx) {
|
80
80
|
const request = ctx.request;
|
81
81
|
await validateRestoreVersion(request.body, "contentType is required");
|
82
|
-
const permissionChecker2 = getService$
|
82
|
+
const permissionChecker2 = getService$2("permission-checker").create({
|
83
83
|
userAbility: ctx.state.userAbility,
|
84
84
|
model: request.body.contentType
|
85
85
|
});
|
86
86
|
if (permissionChecker2.cannot.update()) {
|
87
87
|
throw new errors.ForbiddenError();
|
88
88
|
}
|
89
|
-
const restoredDocument = await getService(strapi2, "history").restoreVersion(
|
89
|
+
const restoredDocument = await getService$1(strapi2, "history").restoreVersion(
|
90
90
|
request.params.versionId
|
91
91
|
);
|
92
92
|
return {
|
@@ -95,7 +95,7 @@ const createHistoryVersionController = ({ strapi: strapi2 }) => {
|
|
95
95
|
}
|
96
96
|
};
|
97
97
|
};
|
98
|
-
const controllers$
|
98
|
+
const controllers$2 = {
|
99
99
|
"history-version": createHistoryVersionController
|
100
100
|
/**
|
101
101
|
* Casting is needed because the types aren't aware that Strapi supports
|
@@ -202,6 +202,17 @@ const createServiceUtils = ({ strapi: strapi2 }) => {
|
|
202
202
|
const meta = await documentMetadataService.getMetadata(contentTypeUid, document);
|
203
203
|
return documentMetadataService.getStatus(document, meta.availableStatus);
|
204
204
|
};
|
205
|
+
const getComponentFields = (componentUID) => {
|
206
|
+
return Object.entries(strapi2.getModel(componentUID).attributes).reduce(
|
207
|
+
(fieldsAcc, [key, attribute]) => {
|
208
|
+
if (!["relation", "media", "component", "dynamiczone"].includes(attribute.type)) {
|
209
|
+
fieldsAcc.push(key);
|
210
|
+
}
|
211
|
+
return fieldsAcc;
|
212
|
+
},
|
213
|
+
[]
|
214
|
+
);
|
215
|
+
};
|
205
216
|
const getDeepPopulate2 = (uid2, useDatabaseSyntax = false) => {
|
206
217
|
const model = strapi2.getModel(uid2);
|
207
218
|
const attributes = Object.entries(model.attributes);
|
@@ -225,13 +236,19 @@ const createServiceUtils = ({ strapi: strapi2 }) => {
|
|
225
236
|
}
|
226
237
|
case "component": {
|
227
238
|
const populate = getDeepPopulate2(attribute.component);
|
228
|
-
acc[attributeName] = {
|
239
|
+
acc[attributeName] = {
|
240
|
+
populate,
|
241
|
+
[fieldSelector]: getComponentFields(attribute.component)
|
242
|
+
};
|
229
243
|
break;
|
230
244
|
}
|
231
245
|
case "dynamiczone": {
|
232
246
|
const populatedComponents = (attribute.components || []).reduce(
|
233
247
|
(acc2, componentUID) => {
|
234
|
-
acc2[componentUID] = {
|
248
|
+
acc2[componentUID] = {
|
249
|
+
populate: getDeepPopulate2(componentUID),
|
250
|
+
[fieldSelector]: getComponentFields(componentUID)
|
251
|
+
};
|
235
252
|
return acc2;
|
236
253
|
},
|
237
254
|
{}
|
@@ -344,7 +361,7 @@ const createHistoryService = ({ strapi: strapi2 }) => {
|
|
344
361
|
const attributeValue = entry.data[attributeKey];
|
345
362
|
const attributeValues = Array.isArray(attributeValue) ? attributeValue : [attributeValue];
|
346
363
|
if (attributeSchema.type === "media") {
|
347
|
-
const permissionChecker2 = getService$
|
364
|
+
const permissionChecker2 = getService$2("permission-checker").create({
|
348
365
|
userAbility: params.state.userAbility,
|
349
366
|
model: "plugin::upload.file"
|
350
367
|
});
|
@@ -385,7 +402,7 @@ const createHistoryService = ({ strapi: strapi2 }) => {
|
|
385
402
|
[attributeKey]: adminUsers
|
386
403
|
};
|
387
404
|
}
|
388
|
-
const permissionChecker2 = getService$
|
405
|
+
const permissionChecker2 = getService$2("permission-checker").create({
|
389
406
|
userAbility: params.state.userAbility,
|
390
407
|
model: attributeSchema.target
|
391
408
|
});
|
@@ -561,7 +578,7 @@ const createLifecyclesService = ({ strapi: strapi2 }) => {
|
|
561
578
|
onCommit(async () => {
|
562
579
|
for (const entry of localeEntries) {
|
563
580
|
const status = await serviceUtils.getVersionStatus(uid2, entry);
|
564
|
-
await getService(strapi2, "history").createVersion({
|
581
|
+
await getService$1(strapi2, "history").createVersion({
|
565
582
|
contentType: uid2,
|
566
583
|
data: omit(FIELDS_TO_IGNORE, entry),
|
567
584
|
relatedDocumentId: documentId,
|
@@ -574,15 +591,19 @@ const createLifecyclesService = ({ strapi: strapi2 }) => {
|
|
574
591
|
});
|
575
592
|
return result;
|
576
593
|
});
|
577
|
-
state.deleteExpiredJob = scheduleJob("0 0 * * *", () => {
|
594
|
+
state.deleteExpiredJob = scheduleJob("historyDaily", "0 0 * * *", () => {
|
578
595
|
const retentionDaysInMilliseconds = serviceUtils.getRetentionDays() * 24 * 60 * 60 * 1e3;
|
579
596
|
const expirationDate = new Date(Date.now() - retentionDaysInMilliseconds);
|
580
597
|
strapi2.db.query(HISTORY_VERSION_UID).deleteMany({
|
581
598
|
where: {
|
582
599
|
created_at: {
|
583
|
-
$lt: expirationDate
|
600
|
+
$lt: expirationDate
|
584
601
|
}
|
585
602
|
}
|
603
|
+
}).catch((error) => {
|
604
|
+
if (error instanceof Error) {
|
605
|
+
strapi2.log.error("Error deleting expired history versions", error.message);
|
606
|
+
}
|
586
607
|
});
|
587
608
|
});
|
588
609
|
state.isInitialized = true;
|
@@ -594,17 +615,17 @@ const createLifecyclesService = ({ strapi: strapi2 }) => {
|
|
594
615
|
}
|
595
616
|
};
|
596
617
|
};
|
597
|
-
const services$
|
618
|
+
const services$2 = {
|
598
619
|
history: createHistoryService,
|
599
620
|
lifecycles: createLifecyclesService
|
600
621
|
};
|
601
|
-
const info = { pluginName: "content-manager", type: "admin" };
|
622
|
+
const info$1 = { pluginName: "content-manager", type: "admin" };
|
602
623
|
const historyVersionRouter = {
|
603
624
|
type: "admin",
|
604
625
|
routes: [
|
605
626
|
{
|
606
627
|
method: "GET",
|
607
|
-
info,
|
628
|
+
info: info$1,
|
608
629
|
path: "/history-versions",
|
609
630
|
handler: "history-version.findMany",
|
610
631
|
config: {
|
@@ -613,7 +634,7 @@ const historyVersionRouter = {
|
|
613
634
|
},
|
614
635
|
{
|
615
636
|
method: "PUT",
|
616
|
-
info,
|
637
|
+
info: info$1,
|
617
638
|
path: "/history-versions/:versionId/restore",
|
618
639
|
handler: "history-version.restoreVersion",
|
619
640
|
config: {
|
@@ -622,7 +643,7 @@ const historyVersionRouter = {
|
|
622
643
|
}
|
623
644
|
]
|
624
645
|
};
|
625
|
-
const routes$
|
646
|
+
const routes$2 = {
|
626
647
|
"history-version": historyVersionRouter
|
627
648
|
};
|
628
649
|
const historyVersion = {
|
@@ -669,21 +690,21 @@ const historyVersion = {
|
|
669
690
|
}
|
670
691
|
}
|
671
692
|
};
|
672
|
-
const getFeature = () => {
|
693
|
+
const getFeature$1 = () => {
|
673
694
|
if (strapi.ee.features.isEnabled("cms-content-history")) {
|
674
695
|
return {
|
675
696
|
register({ strapi: strapi2 }) {
|
676
697
|
strapi2.get("models").add(historyVersion);
|
677
698
|
},
|
678
699
|
bootstrap({ strapi: strapi2 }) {
|
679
|
-
getService(strapi2, "lifecycles").bootstrap();
|
700
|
+
getService$1(strapi2, "lifecycles").bootstrap();
|
680
701
|
},
|
681
702
|
destroy({ strapi: strapi2 }) {
|
682
|
-
getService(strapi2, "lifecycles").destroy();
|
703
|
+
getService$1(strapi2, "lifecycles").destroy();
|
683
704
|
},
|
684
|
-
controllers: controllers$
|
685
|
-
services: services$
|
686
|
-
routes: routes$
|
705
|
+
controllers: controllers$2,
|
706
|
+
services: services$2,
|
707
|
+
routes: routes$2
|
687
708
|
};
|
688
709
|
}
|
689
710
|
return {
|
@@ -692,9 +713,201 @@ const getFeature = () => {
|
|
692
713
|
}
|
693
714
|
};
|
694
715
|
};
|
695
|
-
const history = getFeature();
|
716
|
+
const history = getFeature$1();
|
717
|
+
const FEATURE_ID = "preview";
|
718
|
+
const info = { pluginName: "content-manager", type: "admin" };
|
719
|
+
const previewRouter = {
|
720
|
+
type: "admin",
|
721
|
+
routes: [
|
722
|
+
{
|
723
|
+
method: "GET",
|
724
|
+
info,
|
725
|
+
path: "/preview/url/:contentType",
|
726
|
+
handler: "preview.getPreviewUrl",
|
727
|
+
config: {
|
728
|
+
policies: ["admin::isAuthenticatedAdmin"]
|
729
|
+
}
|
730
|
+
}
|
731
|
+
]
|
732
|
+
};
|
733
|
+
const routes$1 = {
|
734
|
+
preview: previewRouter
|
735
|
+
};
|
736
|
+
function getService(strapi2, name) {
|
737
|
+
return strapi2.service(`plugin::content-manager.${name}`);
|
738
|
+
}
|
739
|
+
const getPreviewUrlSchema = yup.object().shape({
|
740
|
+
// Will be undefined for single types
|
741
|
+
documentId: yup.string(),
|
742
|
+
locale: yup.string().nullable(),
|
743
|
+
status: yup.string()
|
744
|
+
}).required();
|
745
|
+
const validatePreviewUrl = async (strapi2, uid2, params) => {
|
746
|
+
await validateYupSchema(getPreviewUrlSchema)(params);
|
747
|
+
const newParams = pick(["documentId", "locale", "status"], params);
|
748
|
+
const model = strapi2.getModel(uid2);
|
749
|
+
if (!model || model.modelType !== "contentType") {
|
750
|
+
throw new errors.ValidationError("Invalid content type");
|
751
|
+
}
|
752
|
+
const isSingleType = model?.kind === "singleType";
|
753
|
+
if (!isSingleType && !params.documentId) {
|
754
|
+
throw new errors.ValidationError("documentId is required for Collection Types");
|
755
|
+
}
|
756
|
+
if (isSingleType) {
|
757
|
+
const doc = await strapi2.documents(uid2).findFirst();
|
758
|
+
if (!doc) {
|
759
|
+
throw new errors.NotFoundError("Document not found");
|
760
|
+
}
|
761
|
+
newParams.documentId = doc?.documentId;
|
762
|
+
}
|
763
|
+
return newParams;
|
764
|
+
};
|
765
|
+
const createPreviewController = () => {
|
766
|
+
return {
|
767
|
+
/**
|
768
|
+
* Transforms an entry into a preview URL, so that it can be previewed
|
769
|
+
* in the Content Manager.
|
770
|
+
*/
|
771
|
+
async getPreviewUrl(ctx) {
|
772
|
+
const uid2 = ctx.params.contentType;
|
773
|
+
const query = ctx.request.query;
|
774
|
+
const params = await validatePreviewUrl(strapi, uid2, query);
|
775
|
+
const previewService = getService(strapi, "preview");
|
776
|
+
const url = await previewService.getPreviewUrl(uid2, params);
|
777
|
+
if (!url) {
|
778
|
+
ctx.status = 204;
|
779
|
+
}
|
780
|
+
return {
|
781
|
+
data: { url }
|
782
|
+
};
|
783
|
+
}
|
784
|
+
};
|
785
|
+
};
|
786
|
+
const controllers$1 = {
|
787
|
+
preview: createPreviewController
|
788
|
+
/**
|
789
|
+
* Casting is needed because the types aren't aware that Strapi supports
|
790
|
+
* passing a controller factory as the value, instead of a controller object directly
|
791
|
+
*/
|
792
|
+
};
|
793
|
+
const createPreviewService = ({ strapi: strapi2 }) => {
|
794
|
+
const config = getService(strapi2, "preview-config");
|
795
|
+
return {
|
796
|
+
async getPreviewUrl(uid2, params) {
|
797
|
+
const handler = config.getPreviewHandler();
|
798
|
+
try {
|
799
|
+
return handler(uid2, params);
|
800
|
+
} catch (error) {
|
801
|
+
strapi2.log.error(`Failed to get preview URL: ${error}`);
|
802
|
+
throw new errors.ApplicationError("Failed to get preview URL");
|
803
|
+
}
|
804
|
+
return;
|
805
|
+
}
|
806
|
+
};
|
807
|
+
};
|
808
|
+
const extendMiddlewareConfiguration = (middleware = { name: "", config: {} }) => {
|
809
|
+
const middlewares = strapi.config.get("middlewares");
|
810
|
+
const configuredMiddlewares = middlewares.map((currentMiddleware) => {
|
811
|
+
if (currentMiddleware === middleware.name) {
|
812
|
+
return middleware;
|
813
|
+
}
|
814
|
+
if (currentMiddleware.name === middleware.name) {
|
815
|
+
return mergeWith(
|
816
|
+
(objValue, srcValue) => {
|
817
|
+
if (Array.isArray(objValue)) {
|
818
|
+
return objValue.concat(srcValue);
|
819
|
+
}
|
820
|
+
return void 0;
|
821
|
+
},
|
822
|
+
currentMiddleware,
|
823
|
+
middleware
|
824
|
+
);
|
825
|
+
}
|
826
|
+
return currentMiddleware;
|
827
|
+
});
|
828
|
+
strapi.config.set("middlewares", configuredMiddlewares);
|
829
|
+
};
|
830
|
+
const createPreviewConfigService = ({ strapi: strapi2 }) => {
|
831
|
+
return {
|
832
|
+
register() {
|
833
|
+
if (!this.isEnabled()) {
|
834
|
+
return;
|
835
|
+
}
|
836
|
+
const config = strapi2.config.get("admin.preview");
|
837
|
+
if (config.config?.allowedOrigins) {
|
838
|
+
extendMiddlewareConfiguration({
|
839
|
+
name: "strapi::security",
|
840
|
+
config: {
|
841
|
+
contentSecurityPolicy: {
|
842
|
+
directives: {
|
843
|
+
"frame-src": config.config.allowedOrigins
|
844
|
+
}
|
845
|
+
}
|
846
|
+
}
|
847
|
+
});
|
848
|
+
}
|
849
|
+
},
|
850
|
+
isEnabled() {
|
851
|
+
const config = strapi2.config.get("admin.preview");
|
852
|
+
if (!config) {
|
853
|
+
return false;
|
854
|
+
}
|
855
|
+
return config?.enabled ?? true;
|
856
|
+
},
|
857
|
+
/**
|
858
|
+
* Validate if the configuration is valid
|
859
|
+
*/
|
860
|
+
validate() {
|
861
|
+
if (!this.isEnabled()) {
|
862
|
+
return;
|
863
|
+
}
|
864
|
+
const handler = this.getPreviewHandler();
|
865
|
+
if (typeof handler !== "function") {
|
866
|
+
throw new errors.ValidationError(
|
867
|
+
"Preview configuration is invalid. Handler must be a function"
|
868
|
+
);
|
869
|
+
}
|
870
|
+
},
|
871
|
+
/**
|
872
|
+
* Utility to get the preview handler from the configuration
|
873
|
+
*/
|
874
|
+
getPreviewHandler() {
|
875
|
+
const config = strapi2.config.get("admin.preview");
|
876
|
+
const emptyHandler = () => {
|
877
|
+
return void 0;
|
878
|
+
};
|
879
|
+
if (!this.isEnabled()) {
|
880
|
+
return emptyHandler;
|
881
|
+
}
|
882
|
+
return config?.config?.handler || emptyHandler;
|
883
|
+
}
|
884
|
+
};
|
885
|
+
};
|
886
|
+
const services$1 = {
|
887
|
+
preview: createPreviewService,
|
888
|
+
"preview-config": createPreviewConfigService
|
889
|
+
};
|
890
|
+
const getFeature = () => {
|
891
|
+
if (!strapi.features.future.isEnabled(FEATURE_ID)) {
|
892
|
+
return {};
|
893
|
+
}
|
894
|
+
return {
|
895
|
+
register() {
|
896
|
+
const config = getService(strapi, "preview-config");
|
897
|
+
config.validate();
|
898
|
+
config.register();
|
899
|
+
},
|
900
|
+
bootstrap() {
|
901
|
+
},
|
902
|
+
routes: routes$1,
|
903
|
+
controllers: controllers$1,
|
904
|
+
services: services$1
|
905
|
+
};
|
906
|
+
};
|
907
|
+
const preview = getFeature();
|
696
908
|
const register = async ({ strapi: strapi2 }) => {
|
697
909
|
await history.register?.({ strapi: strapi2 });
|
910
|
+
await preview.register?.({ strapi: strapi2 });
|
698
911
|
};
|
699
912
|
const ALLOWED_WEBHOOK_EVENTS = {
|
700
913
|
ENTRY_PUBLISH: "entry.publish",
|
@@ -704,11 +917,12 @@ const bootstrap = async () => {
|
|
704
917
|
Object.entries(ALLOWED_WEBHOOK_EVENTS).forEach(([key, value]) => {
|
705
918
|
strapi.get("webhookStore").addAllowedEvent(key, value);
|
706
919
|
});
|
707
|
-
getService$
|
708
|
-
await getService$
|
709
|
-
await getService$
|
710
|
-
await getService$
|
920
|
+
getService$2("field-sizes").setCustomFieldInputSizes();
|
921
|
+
await getService$2("components").syncConfigurations();
|
922
|
+
await getService$2("content-types").syncConfigurations();
|
923
|
+
await getService$2("permission").registerPermissions();
|
711
924
|
await history.bootstrap?.({ strapi });
|
925
|
+
await preview.bootstrap?.({ strapi });
|
712
926
|
};
|
713
927
|
const destroy = async ({ strapi: strapi2 }) => {
|
714
928
|
await history.destroy?.({ strapi: strapi2 });
|
@@ -1198,7 +1412,8 @@ const admin = {
|
|
1198
1412
|
};
|
1199
1413
|
const routes = {
|
1200
1414
|
admin,
|
1201
|
-
...history.routes ? history.routes : {}
|
1415
|
+
...history.routes ? history.routes : {},
|
1416
|
+
...preview.routes ? preview.routes : {}
|
1202
1417
|
};
|
1203
1418
|
const hasPermissionsSchema = yup$1.object({
|
1204
1419
|
actions: yup$1.array().of(yup$1.string()),
|
@@ -1455,7 +1670,7 @@ const createMetadasSchema = (schema) => {
|
|
1455
1670
|
if (!value) {
|
1456
1671
|
return yup$1.string();
|
1457
1672
|
}
|
1458
|
-
const targetSchema = getService$
|
1673
|
+
const targetSchema = getService$2("content-types").findContentType(
|
1459
1674
|
schema.attributes[key].targetModel
|
1460
1675
|
);
|
1461
1676
|
if (!targetSchema) {
|
@@ -1624,7 +1839,7 @@ const getDocumentLocaleAndStatus = async (request, model, opts = { allowMultiple
|
|
1624
1839
|
}
|
1625
1840
|
};
|
1626
1841
|
const formatDocumentWithMetadata = async (permissionChecker2, uid2, document, opts = {}) => {
|
1627
|
-
const documentMetadata2 = getService$
|
1842
|
+
const documentMetadata2 = getService$2("document-metadata");
|
1628
1843
|
const serviceOutput = await documentMetadata2.formatDocumentWithMetadata(uid2, document, opts);
|
1629
1844
|
let {
|
1630
1845
|
meta: { availableLocales, availableStatus }
|
@@ -1650,8 +1865,8 @@ const createDocument = async (ctx, opts) => {
|
|
1650
1865
|
const { userAbility, user } = ctx.state;
|
1651
1866
|
const { model } = ctx.params;
|
1652
1867
|
const { body } = ctx.request;
|
1653
|
-
const documentManager2 = getService$
|
1654
|
-
const permissionChecker2 = getService$
|
1868
|
+
const documentManager2 = getService$2("document-manager");
|
1869
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
1655
1870
|
if (permissionChecker2.cannot.create()) {
|
1656
1871
|
throw new errors.ForbiddenError();
|
1657
1872
|
}
|
@@ -1671,13 +1886,13 @@ const updateDocument = async (ctx, opts) => {
|
|
1671
1886
|
const { userAbility, user } = ctx.state;
|
1672
1887
|
const { id, model } = ctx.params;
|
1673
1888
|
const { body } = ctx.request;
|
1674
|
-
const documentManager2 = getService$
|
1675
|
-
const permissionChecker2 = getService$
|
1889
|
+
const documentManager2 = getService$2("document-manager");
|
1890
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
1676
1891
|
if (permissionChecker2.cannot.update()) {
|
1677
1892
|
throw new errors.ForbiddenError();
|
1678
1893
|
}
|
1679
1894
|
const permissionQuery = await permissionChecker2.sanitizedQuery.update(ctx.query);
|
1680
|
-
const populate = await getService$
|
1895
|
+
const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
|
1681
1896
|
const { locale } = await getDocumentLocaleAndStatus(body, model);
|
1682
1897
|
const [documentVersion, documentExists] = await Promise.all([
|
1683
1898
|
documentManager2.findOne(id, model, { populate, locale, status: "draft" }),
|
@@ -1708,14 +1923,14 @@ const collectionTypes = {
|
|
1708
1923
|
const { userAbility } = ctx.state;
|
1709
1924
|
const { model } = ctx.params;
|
1710
1925
|
const { query } = ctx.request;
|
1711
|
-
const documentMetadata2 = getService$
|
1712
|
-
const documentManager2 = getService$
|
1713
|
-
const permissionChecker2 = getService$
|
1926
|
+
const documentMetadata2 = getService$2("document-metadata");
|
1927
|
+
const documentManager2 = getService$2("document-manager");
|
1928
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
1714
1929
|
if (permissionChecker2.cannot.read()) {
|
1715
1930
|
return ctx.forbidden();
|
1716
1931
|
}
|
1717
1932
|
const permissionQuery = await permissionChecker2.sanitizedQuery.read(query);
|
1718
|
-
const populate = await getService$
|
1933
|
+
const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(1).countRelations({ toOne: false, toMany: true }).build();
|
1719
1934
|
const { locale, status } = await getDocumentLocaleAndStatus(query, model);
|
1720
1935
|
const { results: documents, pagination: pagination2 } = await documentManager2.findPage(
|
1721
1936
|
{ ...permissionQuery, populate, locale, status },
|
@@ -1744,13 +1959,13 @@ const collectionTypes = {
|
|
1744
1959
|
async findOne(ctx) {
|
1745
1960
|
const { userAbility } = ctx.state;
|
1746
1961
|
const { model, id } = ctx.params;
|
1747
|
-
const documentManager2 = getService$
|
1748
|
-
const permissionChecker2 = getService$
|
1962
|
+
const documentManager2 = getService$2("document-manager");
|
1963
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
1749
1964
|
if (permissionChecker2.cannot.read()) {
|
1750
1965
|
return ctx.forbidden();
|
1751
1966
|
}
|
1752
1967
|
const permissionQuery = await permissionChecker2.sanitizedQuery.read(ctx.query);
|
1753
|
-
const populate = await getService$
|
1968
|
+
const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(Infinity).countRelations().build();
|
1754
1969
|
const { locale, status } = await getDocumentLocaleAndStatus(ctx.query, model);
|
1755
1970
|
const version = await documentManager2.findOne(id, model, {
|
1756
1971
|
populate,
|
@@ -1781,7 +1996,7 @@ const collectionTypes = {
|
|
1781
1996
|
async create(ctx) {
|
1782
1997
|
const { userAbility } = ctx.state;
|
1783
1998
|
const { model } = ctx.params;
|
1784
|
-
const permissionChecker2 = getService$
|
1999
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
1785
2000
|
const [totalEntries, document] = await Promise.all([
|
1786
2001
|
strapi.db.query(model).count(),
|
1787
2002
|
createDocument(ctx)
|
@@ -1802,7 +2017,7 @@ const collectionTypes = {
|
|
1802
2017
|
async update(ctx) {
|
1803
2018
|
const { userAbility } = ctx.state;
|
1804
2019
|
const { model } = ctx.params;
|
1805
|
-
const permissionChecker2 = getService$
|
2020
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
1806
2021
|
const updatedVersion = await updateDocument(ctx);
|
1807
2022
|
const sanitizedVersion = await permissionChecker2.sanitizeOutput(updatedVersion);
|
1808
2023
|
ctx.body = await formatDocumentWithMetadata(permissionChecker2, model, sanitizedVersion);
|
@@ -1811,13 +2026,13 @@ const collectionTypes = {
|
|
1811
2026
|
const { userAbility, user } = ctx.state;
|
1812
2027
|
const { model, sourceId: id } = ctx.params;
|
1813
2028
|
const { body } = ctx.request;
|
1814
|
-
const documentManager2 = getService$
|
1815
|
-
const permissionChecker2 = getService$
|
2029
|
+
const documentManager2 = getService$2("document-manager");
|
2030
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
1816
2031
|
if (permissionChecker2.cannot.create()) {
|
1817
2032
|
return ctx.forbidden();
|
1818
2033
|
}
|
1819
2034
|
const permissionQuery = await permissionChecker2.sanitizedQuery.create(ctx.query);
|
1820
|
-
const populate = await getService$
|
2035
|
+
const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
|
1821
2036
|
const { locale } = await getDocumentLocaleAndStatus(body, model);
|
1822
2037
|
const document = await documentManager2.findOne(id, model, {
|
1823
2038
|
populate,
|
@@ -1856,13 +2071,13 @@ const collectionTypes = {
|
|
1856
2071
|
async delete(ctx) {
|
1857
2072
|
const { userAbility } = ctx.state;
|
1858
2073
|
const { id, model } = ctx.params;
|
1859
|
-
const documentManager2 = getService$
|
1860
|
-
const permissionChecker2 = getService$
|
2074
|
+
const documentManager2 = getService$2("document-manager");
|
2075
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
1861
2076
|
if (permissionChecker2.cannot.delete()) {
|
1862
2077
|
return ctx.forbidden();
|
1863
2078
|
}
|
1864
2079
|
const permissionQuery = await permissionChecker2.sanitizedQuery.delete(ctx.query);
|
1865
|
-
const populate = await getService$
|
2080
|
+
const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
|
1866
2081
|
const { locale } = await getDocumentLocaleAndStatus(ctx.query, model);
|
1867
2082
|
const documentLocales = await documentManager2.findLocales(id, model, { populate, locale });
|
1868
2083
|
if (documentLocales.length === 0) {
|
@@ -1884,14 +2099,14 @@ const collectionTypes = {
|
|
1884
2099
|
const { userAbility } = ctx.state;
|
1885
2100
|
const { id, model } = ctx.params;
|
1886
2101
|
const { body } = ctx.request;
|
1887
|
-
const documentManager2 = getService$
|
1888
|
-
const permissionChecker2 = getService$
|
2102
|
+
const documentManager2 = getService$2("document-manager");
|
2103
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
1889
2104
|
if (permissionChecker2.cannot.publish()) {
|
1890
2105
|
return ctx.forbidden();
|
1891
2106
|
}
|
1892
2107
|
const publishedDocument = await strapi.db.transaction(async () => {
|
1893
2108
|
const permissionQuery = await permissionChecker2.sanitizedQuery.publish(ctx.query);
|
1894
|
-
const populate = await getService$
|
2109
|
+
const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(Infinity).countRelations().build();
|
1895
2110
|
let document;
|
1896
2111
|
const { locale } = await getDocumentLocaleAndStatus(body, model);
|
1897
2112
|
const isCreate = isNil$1(id);
|
@@ -1939,13 +2154,13 @@ const collectionTypes = {
|
|
1939
2154
|
const { body } = ctx.request;
|
1940
2155
|
const { documentIds } = body;
|
1941
2156
|
await validateBulkActionInput(body);
|
1942
|
-
const documentManager2 = getService$
|
1943
|
-
const permissionChecker2 = getService$
|
2157
|
+
const documentManager2 = getService$2("document-manager");
|
2158
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
1944
2159
|
if (permissionChecker2.cannot.publish()) {
|
1945
2160
|
return ctx.forbidden();
|
1946
2161
|
}
|
1947
2162
|
const permissionQuery = await permissionChecker2.sanitizedQuery.publish(ctx.query);
|
1948
|
-
const populate = await getService$
|
2163
|
+
const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(Infinity).countRelations().build();
|
1949
2164
|
const { locale } = await getDocumentLocaleAndStatus(body, model, {
|
1950
2165
|
allowMultipleLocales: true
|
1951
2166
|
});
|
@@ -1970,8 +2185,8 @@ const collectionTypes = {
|
|
1970
2185
|
const { body } = ctx.request;
|
1971
2186
|
const { documentIds } = body;
|
1972
2187
|
await validateBulkActionInput(body);
|
1973
|
-
const documentManager2 = getService$
|
1974
|
-
const permissionChecker2 = getService$
|
2188
|
+
const documentManager2 = getService$2("document-manager");
|
2189
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
1975
2190
|
if (permissionChecker2.cannot.unpublish()) {
|
1976
2191
|
return ctx.forbidden();
|
1977
2192
|
}
|
@@ -2000,8 +2215,8 @@ const collectionTypes = {
|
|
2000
2215
|
const {
|
2001
2216
|
body: { discardDraft, ...body }
|
2002
2217
|
} = ctx.request;
|
2003
|
-
const documentManager2 = getService$
|
2004
|
-
const permissionChecker2 = getService$
|
2218
|
+
const documentManager2 = getService$2("document-manager");
|
2219
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2005
2220
|
if (permissionChecker2.cannot.unpublish()) {
|
2006
2221
|
return ctx.forbidden();
|
2007
2222
|
}
|
@@ -2009,7 +2224,7 @@ const collectionTypes = {
|
|
2009
2224
|
return ctx.forbidden();
|
2010
2225
|
}
|
2011
2226
|
const permissionQuery = await permissionChecker2.sanitizedQuery.unpublish(ctx.query);
|
2012
|
-
const populate = await getService$
|
2227
|
+
const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
|
2013
2228
|
const { locale } = await getDocumentLocaleAndStatus(body, model);
|
2014
2229
|
const document = await documentManager2.findOne(id, model, {
|
2015
2230
|
populate,
|
@@ -2040,13 +2255,13 @@ const collectionTypes = {
|
|
2040
2255
|
const { userAbility } = ctx.state;
|
2041
2256
|
const { id, model } = ctx.params;
|
2042
2257
|
const { body } = ctx.request;
|
2043
|
-
const documentManager2 = getService$
|
2044
|
-
const permissionChecker2 = getService$
|
2258
|
+
const documentManager2 = getService$2("document-manager");
|
2259
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2045
2260
|
if (permissionChecker2.cannot.discard()) {
|
2046
2261
|
return ctx.forbidden();
|
2047
2262
|
}
|
2048
2263
|
const permissionQuery = await permissionChecker2.sanitizedQuery.discard(ctx.query);
|
2049
|
-
const populate = await getService$
|
2264
|
+
const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
|
2050
2265
|
const { locale } = await getDocumentLocaleAndStatus(body, model);
|
2051
2266
|
const document = await documentManager2.findOne(id, model, {
|
2052
2267
|
populate,
|
@@ -2071,13 +2286,13 @@ const collectionTypes = {
|
|
2071
2286
|
const { query, body } = ctx.request;
|
2072
2287
|
const { documentIds } = body;
|
2073
2288
|
await validateBulkActionInput(body);
|
2074
|
-
const documentManager2 = getService$
|
2075
|
-
const permissionChecker2 = getService$
|
2289
|
+
const documentManager2 = getService$2("document-manager");
|
2290
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2076
2291
|
if (permissionChecker2.cannot.delete()) {
|
2077
2292
|
return ctx.forbidden();
|
2078
2293
|
}
|
2079
2294
|
const permissionQuery = await permissionChecker2.sanitizedQuery.delete(query);
|
2080
|
-
const populate = await getService$
|
2295
|
+
const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
|
2081
2296
|
const { locale } = await getDocumentLocaleAndStatus(body, model);
|
2082
2297
|
const documentLocales = await documentManager2.findLocales(documentIds, model, {
|
2083
2298
|
populate,
|
@@ -2098,13 +2313,13 @@ const collectionTypes = {
|
|
2098
2313
|
async countDraftRelations(ctx) {
|
2099
2314
|
const { userAbility } = ctx.state;
|
2100
2315
|
const { model, id } = ctx.params;
|
2101
|
-
const documentManager2 = getService$
|
2102
|
-
const permissionChecker2 = getService$
|
2316
|
+
const documentManager2 = getService$2("document-manager");
|
2317
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2103
2318
|
if (permissionChecker2.cannot.read()) {
|
2104
2319
|
return ctx.forbidden();
|
2105
2320
|
}
|
2106
2321
|
const permissionQuery = await permissionChecker2.sanitizedQuery.read(ctx.query);
|
2107
|
-
const populate = await getService$
|
2322
|
+
const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
|
2108
2323
|
const { locale, status } = await getDocumentLocaleAndStatus(ctx.query, model);
|
2109
2324
|
const entity = await documentManager2.findOne(id, model, { populate, locale, status });
|
2110
2325
|
if (!entity) {
|
@@ -2123,8 +2338,8 @@ const collectionTypes = {
|
|
2123
2338
|
const ids = ctx.request.query.documentIds;
|
2124
2339
|
const locale = ctx.request.query.locale;
|
2125
2340
|
const { model } = ctx.params;
|
2126
|
-
const documentManager2 = getService$
|
2127
|
-
const permissionChecker2 = getService$
|
2341
|
+
const documentManager2 = getService$2("document-manager");
|
2342
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2128
2343
|
if (permissionChecker2.cannot.read()) {
|
2129
2344
|
return ctx.forbidden();
|
2130
2345
|
}
|
@@ -2148,13 +2363,13 @@ const collectionTypes = {
|
|
2148
2363
|
};
|
2149
2364
|
const components$1 = {
|
2150
2365
|
findComponents(ctx) {
|
2151
|
-
const components2 = getService$
|
2152
|
-
const { toDto } = getService$
|
2366
|
+
const components2 = getService$2("components").findAllComponents();
|
2367
|
+
const { toDto } = getService$2("data-mapper");
|
2153
2368
|
ctx.body = { data: components2.map(toDto) };
|
2154
2369
|
},
|
2155
2370
|
async findComponentConfiguration(ctx) {
|
2156
2371
|
const { uid: uid2 } = ctx.params;
|
2157
|
-
const componentService = getService$
|
2372
|
+
const componentService = getService$2("components");
|
2158
2373
|
const component = componentService.findComponent(uid2);
|
2159
2374
|
if (!component) {
|
2160
2375
|
return ctx.notFound("component.notFound");
|
@@ -2171,7 +2386,7 @@ const components$1 = {
|
|
2171
2386
|
async updateComponentConfiguration(ctx) {
|
2172
2387
|
const { uid: uid2 } = ctx.params;
|
2173
2388
|
const { body } = ctx.request;
|
2174
|
-
const componentService = getService$
|
2389
|
+
const componentService = getService$2("components");
|
2175
2390
|
const component = componentService.findComponent(uid2);
|
2176
2391
|
if (!component) {
|
2177
2392
|
return ctx.notFound("component.notFound");
|
@@ -2205,12 +2420,12 @@ const contentTypes = {
|
|
2205
2420
|
} catch (error) {
|
2206
2421
|
return ctx.send({ error }, 400);
|
2207
2422
|
}
|
2208
|
-
const contentTypes2 = getService$
|
2209
|
-
const { toDto } = getService$
|
2423
|
+
const contentTypes2 = getService$2("content-types").findContentTypesByKind(kind);
|
2424
|
+
const { toDto } = getService$2("data-mapper");
|
2210
2425
|
ctx.body = { data: contentTypes2.map(toDto) };
|
2211
2426
|
},
|
2212
2427
|
async findContentTypesSettings(ctx) {
|
2213
|
-
const { findAllContentTypes, findConfiguration } = getService$
|
2428
|
+
const { findAllContentTypes, findConfiguration } = getService$2("content-types");
|
2214
2429
|
const contentTypes2 = await findAllContentTypes();
|
2215
2430
|
const configurations = await Promise.all(
|
2216
2431
|
contentTypes2.map(async (contentType) => {
|
@@ -2224,7 +2439,7 @@ const contentTypes = {
|
|
2224
2439
|
},
|
2225
2440
|
async findContentTypeConfiguration(ctx) {
|
2226
2441
|
const { uid: uid2 } = ctx.params;
|
2227
|
-
const contentTypeService = getService$
|
2442
|
+
const contentTypeService = getService$2("content-types");
|
2228
2443
|
const contentType = await contentTypeService.findContentType(uid2);
|
2229
2444
|
if (!contentType) {
|
2230
2445
|
return ctx.notFound("contentType.notFound");
|
@@ -2246,13 +2461,13 @@ const contentTypes = {
|
|
2246
2461
|
const { userAbility } = ctx.state;
|
2247
2462
|
const { uid: uid2 } = ctx.params;
|
2248
2463
|
const { body } = ctx.request;
|
2249
|
-
const contentTypeService = getService$
|
2250
|
-
const metricsService = getService$
|
2464
|
+
const contentTypeService = getService$2("content-types");
|
2465
|
+
const metricsService = getService$2("metrics");
|
2251
2466
|
const contentType = await contentTypeService.findContentType(uid2);
|
2252
2467
|
if (!contentType) {
|
2253
2468
|
return ctx.notFound("contentType.notFound");
|
2254
2469
|
}
|
2255
|
-
if (!getService$
|
2470
|
+
if (!getService$2("permission").canConfigureContentType({ userAbility, contentType })) {
|
2256
2471
|
return ctx.forbidden();
|
2257
2472
|
}
|
2258
2473
|
let input;
|
@@ -2285,10 +2500,10 @@ const contentTypes = {
|
|
2285
2500
|
};
|
2286
2501
|
const init = {
|
2287
2502
|
getInitData(ctx) {
|
2288
|
-
const { toDto } = getService$
|
2289
|
-
const { findAllComponents } = getService$
|
2290
|
-
const { getAllFieldSizes } = getService$
|
2291
|
-
const { findAllContentTypes } = getService$
|
2503
|
+
const { toDto } = getService$2("data-mapper");
|
2504
|
+
const { findAllComponents } = getService$2("components");
|
2505
|
+
const { getAllFieldSizes } = getService$2("field-sizes");
|
2506
|
+
const { findAllContentTypes } = getService$2("content-types");
|
2292
2507
|
ctx.body = {
|
2293
2508
|
data: {
|
2294
2509
|
fieldSizes: getAllFieldSizes(),
|
@@ -2324,7 +2539,7 @@ const addFiltersClause = (params, filtersClause) => {
|
|
2324
2539
|
params.filters.$and.push(filtersClause);
|
2325
2540
|
};
|
2326
2541
|
const sanitizeMainField = (model, mainField, userAbility) => {
|
2327
|
-
const permissionChecker2 = getService$
|
2542
|
+
const permissionChecker2 = getService$2("permission-checker").create({
|
2328
2543
|
userAbility,
|
2329
2544
|
model: model.uid
|
2330
2545
|
});
|
@@ -2342,7 +2557,7 @@ const addStatusToRelations = async (targetUid, relations2) => {
|
|
2342
2557
|
if (!contentTypes$1.hasDraftAndPublish(strapi.getModel(targetUid))) {
|
2343
2558
|
return relations2;
|
2344
2559
|
}
|
2345
|
-
const documentMetadata2 = getService$
|
2560
|
+
const documentMetadata2 = getService$2("document-metadata");
|
2346
2561
|
if (!relations2.length) {
|
2347
2562
|
return relations2;
|
2348
2563
|
}
|
@@ -2420,7 +2635,7 @@ const relations = {
|
|
2420
2635
|
ctx.request?.query?.locale
|
2421
2636
|
);
|
2422
2637
|
const { status } = validateStatus(sourceUid, ctx.request?.query?.status);
|
2423
|
-
const permissionChecker2 = getService$
|
2638
|
+
const permissionChecker2 = getService$2("permission-checker").create({
|
2424
2639
|
userAbility,
|
2425
2640
|
model
|
2426
2641
|
});
|
@@ -2445,7 +2660,7 @@ const relations = {
|
|
2445
2660
|
where.id = id;
|
2446
2661
|
}
|
2447
2662
|
const permissionQuery = await permissionChecker2.sanitizedQuery.read(ctx.query);
|
2448
|
-
const populate = await getService$
|
2663
|
+
const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
|
2449
2664
|
const currentEntity = await strapi.db.query(model).findOne({
|
2450
2665
|
where,
|
2451
2666
|
populate
|
@@ -2460,7 +2675,7 @@ const relations = {
|
|
2460
2675
|
}
|
2461
2676
|
entryId = currentEntity.id;
|
2462
2677
|
}
|
2463
|
-
const modelConfig = isComponent2 ? await getService$
|
2678
|
+
const modelConfig = isComponent2 ? await getService$2("components").findConfiguration(sourceSchema) : await getService$2("content-types").findConfiguration(sourceSchema);
|
2464
2679
|
const targetSchema = strapi.getModel(targetUid);
|
2465
2680
|
const mainField = flow(
|
2466
2681
|
prop(`metadatas.${targetField}.edit.mainField`),
|
@@ -2514,7 +2729,7 @@ const relations = {
|
|
2514
2729
|
}
|
2515
2730
|
} = await this.extractAndValidateRequestInfo(ctx, id);
|
2516
2731
|
const { idsToOmit, idsToInclude, _q, ...query } = ctx.request.query;
|
2517
|
-
const permissionChecker2 = getService$
|
2732
|
+
const permissionChecker2 = getService$2("permission-checker").create({
|
2518
2733
|
userAbility: ctx.state.userAbility,
|
2519
2734
|
model: targetUid
|
2520
2735
|
});
|
@@ -2593,7 +2808,7 @@ const relations = {
|
|
2593
2808
|
} = await this.extractAndValidateRequestInfo(ctx, id);
|
2594
2809
|
const { uid: sourceUid } = sourceSchema;
|
2595
2810
|
const { uid: targetUid } = targetSchema;
|
2596
|
-
const permissionQuery = await getService$
|
2811
|
+
const permissionQuery = await getService$2("permission-checker").create({ userAbility, model: targetUid }).sanitizedQuery.read({ fields: fieldsToSelect });
|
2597
2812
|
const dbQuery = strapi.db.query(sourceUid);
|
2598
2813
|
const loadRelations = relations$1.isAnyToMany(attribute) ? (...args) => dbQuery.loadPages(...args) : (...args) => dbQuery.load(...args).then((res2) => ({ results: res2 ? [res2] : [] }));
|
2599
2814
|
const filters = {};
|
@@ -2634,10 +2849,10 @@ const relations = {
|
|
2634
2849
|
}
|
2635
2850
|
};
|
2636
2851
|
const buildPopulateFromQuery = async (query, model) => {
|
2637
|
-
return getService$
|
2852
|
+
return getService$2("populate-builder")(model).populateFromQuery(query).populateDeep(Infinity).countRelations().build();
|
2638
2853
|
};
|
2639
2854
|
const findDocument = async (query, uid2, opts = {}) => {
|
2640
|
-
const documentManager2 = getService$
|
2855
|
+
const documentManager2 = getService$2("document-manager");
|
2641
2856
|
const populate = await buildPopulateFromQuery(query, uid2);
|
2642
2857
|
return documentManager2.findMany({ ...opts, populate }, uid2).then((documents) => documents[0]);
|
2643
2858
|
};
|
@@ -2645,8 +2860,8 @@ const createOrUpdateDocument = async (ctx, opts) => {
|
|
2645
2860
|
const { user, userAbility } = ctx.state;
|
2646
2861
|
const { model } = ctx.params;
|
2647
2862
|
const { body, query } = ctx.request;
|
2648
|
-
const documentManager2 = getService$
|
2649
|
-
const permissionChecker2 = getService$
|
2863
|
+
const documentManager2 = getService$2("document-manager");
|
2864
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2650
2865
|
if (permissionChecker2.cannot.create() && permissionChecker2.cannot.update()) {
|
2651
2866
|
throw new errors.ForbiddenError();
|
2652
2867
|
}
|
@@ -2687,7 +2902,7 @@ const singleTypes = {
|
|
2687
2902
|
const { userAbility } = ctx.state;
|
2688
2903
|
const { model } = ctx.params;
|
2689
2904
|
const { query = {} } = ctx.request;
|
2690
|
-
const permissionChecker2 = getService$
|
2905
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2691
2906
|
if (permissionChecker2.cannot.read()) {
|
2692
2907
|
return ctx.forbidden();
|
2693
2908
|
}
|
@@ -2721,7 +2936,7 @@ const singleTypes = {
|
|
2721
2936
|
async createOrUpdate(ctx) {
|
2722
2937
|
const { userAbility } = ctx.state;
|
2723
2938
|
const { model } = ctx.params;
|
2724
|
-
const permissionChecker2 = getService$
|
2939
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2725
2940
|
const document = await createOrUpdateDocument(ctx);
|
2726
2941
|
const sanitizedDocument = await permissionChecker2.sanitizeOutput(document);
|
2727
2942
|
ctx.body = await formatDocumentWithMetadata(permissionChecker2, model, sanitizedDocument);
|
@@ -2730,8 +2945,8 @@ const singleTypes = {
|
|
2730
2945
|
const { userAbility } = ctx.state;
|
2731
2946
|
const { model } = ctx.params;
|
2732
2947
|
const { query = {} } = ctx.request;
|
2733
|
-
const documentManager2 = getService$
|
2734
|
-
const permissionChecker2 = getService$
|
2948
|
+
const documentManager2 = getService$2("document-manager");
|
2949
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2735
2950
|
if (permissionChecker2.cannot.delete()) {
|
2736
2951
|
return ctx.forbidden();
|
2737
2952
|
}
|
@@ -2759,8 +2974,8 @@ const singleTypes = {
|
|
2759
2974
|
const { userAbility } = ctx.state;
|
2760
2975
|
const { model } = ctx.params;
|
2761
2976
|
const { query = {} } = ctx.request;
|
2762
|
-
const documentManager2 = getService$
|
2763
|
-
const permissionChecker2 = getService$
|
2977
|
+
const documentManager2 = getService$2("document-manager");
|
2978
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2764
2979
|
if (permissionChecker2.cannot.publish()) {
|
2765
2980
|
return ctx.forbidden();
|
2766
2981
|
}
|
@@ -2788,8 +3003,8 @@ const singleTypes = {
|
|
2788
3003
|
body: { discardDraft, ...body },
|
2789
3004
|
query = {}
|
2790
3005
|
} = ctx.request;
|
2791
|
-
const documentManager2 = getService$
|
2792
|
-
const permissionChecker2 = getService$
|
3006
|
+
const documentManager2 = getService$2("document-manager");
|
3007
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2793
3008
|
if (permissionChecker2.cannot.unpublish()) {
|
2794
3009
|
return ctx.forbidden();
|
2795
3010
|
}
|
@@ -2823,8 +3038,8 @@ const singleTypes = {
|
|
2823
3038
|
const { userAbility } = ctx.state;
|
2824
3039
|
const { model } = ctx.params;
|
2825
3040
|
const { body, query = {} } = ctx.request;
|
2826
|
-
const documentManager2 = getService$
|
2827
|
-
const permissionChecker2 = getService$
|
3041
|
+
const documentManager2 = getService$2("document-manager");
|
3042
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2828
3043
|
if (permissionChecker2.cannot.discard()) {
|
2829
3044
|
return ctx.forbidden();
|
2830
3045
|
}
|
@@ -2847,8 +3062,8 @@ const singleTypes = {
|
|
2847
3062
|
const { userAbility } = ctx.state;
|
2848
3063
|
const { model } = ctx.params;
|
2849
3064
|
const { query } = ctx.request;
|
2850
|
-
const documentManager2 = getService$
|
2851
|
-
const permissionChecker2 = getService$
|
3065
|
+
const documentManager2 = getService$2("document-manager");
|
3066
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2852
3067
|
const { locale } = await getDocumentLocaleAndStatus(query, model);
|
2853
3068
|
if (permissionChecker2.cannot.read()) {
|
2854
3069
|
return ctx.forbidden();
|
@@ -2872,7 +3087,7 @@ const uid$1 = {
|
|
2872
3087
|
const { query = {} } = ctx.request;
|
2873
3088
|
const { locale } = await getDocumentLocaleAndStatus(query, contentTypeUID);
|
2874
3089
|
await validateUIDField(contentTypeUID, field);
|
2875
|
-
const uidService = getService$
|
3090
|
+
const uidService = getService$2("uid");
|
2876
3091
|
ctx.body = {
|
2877
3092
|
data: await uidService.generateUIDField({ contentTypeUID, field, data, locale })
|
2878
3093
|
};
|
@@ -2884,7 +3099,7 @@ const uid$1 = {
|
|
2884
3099
|
const { query = {} } = ctx.request;
|
2885
3100
|
const { locale } = await getDocumentLocaleAndStatus(query, contentTypeUID);
|
2886
3101
|
await validateUIDField(contentTypeUID, field);
|
2887
|
-
const uidService = getService$
|
3102
|
+
const uidService = getService$2("uid");
|
2888
3103
|
const isAvailable = await uidService.checkUIDAvailability({
|
2889
3104
|
contentTypeUID,
|
2890
3105
|
field,
|
@@ -2905,7 +3120,8 @@ const controllers = {
|
|
2905
3120
|
relations,
|
2906
3121
|
"single-types": singleTypes,
|
2907
3122
|
uid: uid$1,
|
2908
|
-
...history.controllers ? history.controllers : {}
|
3123
|
+
...history.controllers ? history.controllers : {},
|
3124
|
+
...preview.controllers ? preview.controllers : {}
|
2909
3125
|
};
|
2910
3126
|
const keys = {
|
2911
3127
|
CONFIGURATION: "configuration"
|
@@ -3056,12 +3272,12 @@ async function syncMetadatas(configuration, schema) {
|
|
3056
3272
|
return _.assign(metasWithDefaults, updatedMetas);
|
3057
3273
|
}
|
3058
3274
|
const getTargetSchema = (targetModel) => {
|
3059
|
-
return getService$
|
3275
|
+
return getService$2("content-types").findContentType(targetModel);
|
3060
3276
|
};
|
3061
3277
|
const DEFAULT_LIST_LENGTH = 4;
|
3062
3278
|
const MAX_ROW_SIZE = 12;
|
3063
3279
|
const isAllowedFieldSize = (type, size) => {
|
3064
|
-
const { getFieldSize } = getService$
|
3280
|
+
const { getFieldSize } = getService$2("field-sizes");
|
3065
3281
|
const fieldSize = getFieldSize(type);
|
3066
3282
|
if (!fieldSize.isResizable && size !== fieldSize.default) {
|
3067
3283
|
return false;
|
@@ -3069,7 +3285,7 @@ const isAllowedFieldSize = (type, size) => {
|
|
3069
3285
|
return size <= MAX_ROW_SIZE;
|
3070
3286
|
};
|
3071
3287
|
const getDefaultFieldSize = (attribute) => {
|
3072
|
-
const { hasFieldSize, getFieldSize } = getService$
|
3288
|
+
const { hasFieldSize, getFieldSize } = getService$2("field-sizes");
|
3073
3289
|
return getFieldSize(hasFieldSize(attribute.customField) ? attribute.customField : attribute.type).default;
|
3074
3290
|
};
|
3075
3291
|
async function createDefaultLayouts(schema) {
|
@@ -3104,7 +3320,7 @@ function syncLayouts(configuration, schema) {
|
|
3104
3320
|
for (const el of row) {
|
3105
3321
|
if (!hasEditableAttribute(schema, el.name))
|
3106
3322
|
continue;
|
3107
|
-
const { hasFieldSize } = getService$
|
3323
|
+
const { hasFieldSize } = getService$2("field-sizes");
|
3108
3324
|
const fieldType = hasFieldSize(schema.attributes[el.name].customField) ? schema.attributes[el.name].customField : schema.attributes[el.name].type;
|
3109
3325
|
if (!isAllowedFieldSize(fieldType, el.size)) {
|
3110
3326
|
elementsToReAppend.push(el.name);
|
@@ -3244,17 +3460,17 @@ const configurationService$1 = createConfigurationService({
|
|
3244
3460
|
isComponent: true,
|
3245
3461
|
prefix: STORE_KEY_PREFIX,
|
3246
3462
|
getModels() {
|
3247
|
-
const { toContentManagerModel } = getService$
|
3463
|
+
const { toContentManagerModel } = getService$2("data-mapper");
|
3248
3464
|
return mapValues(toContentManagerModel, strapi.components);
|
3249
3465
|
}
|
3250
3466
|
});
|
3251
3467
|
const components = ({ strapi: strapi2 }) => ({
|
3252
3468
|
findAllComponents() {
|
3253
|
-
const { toContentManagerModel } = getService$
|
3469
|
+
const { toContentManagerModel } = getService$2("data-mapper");
|
3254
3470
|
return Object.values(strapi2.components).map(toContentManagerModel);
|
3255
3471
|
},
|
3256
3472
|
findComponent(uid2) {
|
3257
|
-
const { toContentManagerModel } = getService$
|
3473
|
+
const { toContentManagerModel } = getService$2("data-mapper");
|
3258
3474
|
const component = strapi2.components[uid2];
|
3259
3475
|
return isNil$1(component) ? component : toContentManagerModel(component);
|
3260
3476
|
},
|
@@ -3305,17 +3521,17 @@ const configurationService = createConfigurationService({
|
|
3305
3521
|
storeUtils,
|
3306
3522
|
prefix: "content_types",
|
3307
3523
|
getModels() {
|
3308
|
-
const { toContentManagerModel } = getService$
|
3524
|
+
const { toContentManagerModel } = getService$2("data-mapper");
|
3309
3525
|
return mapValues(toContentManagerModel, strapi.contentTypes);
|
3310
3526
|
}
|
3311
3527
|
});
|
3312
3528
|
const service = ({ strapi: strapi2 }) => ({
|
3313
3529
|
findAllContentTypes() {
|
3314
|
-
const { toContentManagerModel } = getService$
|
3530
|
+
const { toContentManagerModel } = getService$2("data-mapper");
|
3315
3531
|
return Object.values(strapi2.contentTypes).map(toContentManagerModel);
|
3316
3532
|
},
|
3317
3533
|
findContentType(uid2) {
|
3318
|
-
const { toContentManagerModel } = getService$
|
3534
|
+
const { toContentManagerModel } = getService$2("data-mapper");
|
3319
3535
|
const contentType = strapi2.contentTypes[uid2];
|
3320
3536
|
return isNil$1(contentType) ? contentType : toContentManagerModel(contentType);
|
3321
3537
|
},
|
@@ -3344,7 +3560,7 @@ const service = ({ strapi: strapi2 }) => ({
|
|
3344
3560
|
return this.findConfiguration(contentType);
|
3345
3561
|
},
|
3346
3562
|
findComponentsConfigurations(contentType) {
|
3347
|
-
return getService$
|
3563
|
+
return getService$2("components").findComponentsConfigurations(contentType);
|
3348
3564
|
},
|
3349
3565
|
syncConfigurations() {
|
3350
3566
|
return configurationService.syncConfigurations();
|
@@ -3616,7 +3832,7 @@ const permission = ({ strapi: strapi2 }) => ({
|
|
3616
3832
|
return userAbility.can(action);
|
3617
3833
|
},
|
3618
3834
|
async registerPermissions() {
|
3619
|
-
const displayedContentTypes = getService$
|
3835
|
+
const displayedContentTypes = getService$2("content-types").findDisplayedContentTypes();
|
3620
3836
|
const contentTypesUids = displayedContentTypes.map(prop("uid"));
|
3621
3837
|
const actions = [
|
3622
3838
|
{
|
@@ -3892,7 +4108,7 @@ const getQueryPopulate = async (uid2, query) => {
|
|
3892
4108
|
return populateQuery;
|
3893
4109
|
};
|
3894
4110
|
const buildDeepPopulate = (uid2) => {
|
3895
|
-
return getService$
|
4111
|
+
return getService$2("populate-builder")(uid2).populateDeep(Infinity).countRelations().build();
|
3896
4112
|
};
|
3897
4113
|
const populateBuilder = (uid2) => {
|
3898
4114
|
let getInitialPopulate = async () => {
|
@@ -4435,7 +4651,8 @@ const services = {
|
|
4435
4651
|
permission,
|
4436
4652
|
"populate-builder": populateBuilder$1,
|
4437
4653
|
uid,
|
4438
|
-
...history.services ? history.services : {}
|
4654
|
+
...history.services ? history.services : {},
|
4655
|
+
...preview.services ? preview.services : {}
|
4439
4656
|
};
|
4440
4657
|
const index = () => {
|
4441
4658
|
return {
|