@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.js
CHANGED
@@ -33,10 +33,10 @@ const isNil__default = /* @__PURE__ */ _interopDefault(isNil);
|
|
33
33
|
const ___default = /* @__PURE__ */ _interopDefault(_);
|
34
34
|
const qs__default = /* @__PURE__ */ _interopDefault(qs);
|
35
35
|
const slugify__default = /* @__PURE__ */ _interopDefault(slugify);
|
36
|
-
const getService$
|
36
|
+
const getService$2 = (name) => {
|
37
37
|
return strapi.plugin("content-manager").service(name);
|
38
38
|
};
|
39
|
-
function getService(strapi2, name) {
|
39
|
+
function getService$1(strapi2, name) {
|
40
40
|
return strapi2.service(`plugin::content-manager.${name}`);
|
41
41
|
}
|
42
42
|
const historyRestoreVersionSchema = yup__namespace.object().shape({
|
@@ -72,7 +72,7 @@ const createHistoryVersionController = ({ strapi: strapi2 }) => {
|
|
72
72
|
if (!isSingleType && (!contentTypeUid || !ctx.query.documentId)) {
|
73
73
|
throw new strapiUtils.errors.ForbiddenError("contentType and documentId are required");
|
74
74
|
}
|
75
|
-
const permissionChecker2 = getService$
|
75
|
+
const permissionChecker2 = getService$2("permission-checker").create({
|
76
76
|
userAbility: ctx.state.userAbility,
|
77
77
|
model: ctx.query.contentType
|
78
78
|
});
|
@@ -80,7 +80,7 @@ const createHistoryVersionController = ({ strapi: strapi2 }) => {
|
|
80
80
|
return ctx.forbidden();
|
81
81
|
}
|
82
82
|
const query = await permissionChecker2.sanitizeQuery(ctx.query);
|
83
|
-
const { results, pagination } = await getService(strapi2, "history").findVersionsPage({
|
83
|
+
const { results, pagination } = await getService$1(strapi2, "history").findVersionsPage({
|
84
84
|
query: {
|
85
85
|
...query,
|
86
86
|
...getValidPagination({ page: query.page, pageSize: query.pageSize })
|
@@ -105,14 +105,14 @@ const createHistoryVersionController = ({ strapi: strapi2 }) => {
|
|
105
105
|
async restoreVersion(ctx) {
|
106
106
|
const request = ctx.request;
|
107
107
|
await validateRestoreVersion(request.body, "contentType is required");
|
108
|
-
const permissionChecker2 = getService$
|
108
|
+
const permissionChecker2 = getService$2("permission-checker").create({
|
109
109
|
userAbility: ctx.state.userAbility,
|
110
110
|
model: request.body.contentType
|
111
111
|
});
|
112
112
|
if (permissionChecker2.cannot.update()) {
|
113
113
|
throw new strapiUtils.errors.ForbiddenError();
|
114
114
|
}
|
115
|
-
const restoredDocument = await getService(strapi2, "history").restoreVersion(
|
115
|
+
const restoredDocument = await getService$1(strapi2, "history").restoreVersion(
|
116
116
|
request.params.versionId
|
117
117
|
);
|
118
118
|
return {
|
@@ -121,7 +121,7 @@ const createHistoryVersionController = ({ strapi: strapi2 }) => {
|
|
121
121
|
}
|
122
122
|
};
|
123
123
|
};
|
124
|
-
const controllers$
|
124
|
+
const controllers$2 = {
|
125
125
|
"history-version": createHistoryVersionController
|
126
126
|
/**
|
127
127
|
* Casting is needed because the types aren't aware that Strapi supports
|
@@ -228,6 +228,17 @@ const createServiceUtils = ({ strapi: strapi2 }) => {
|
|
228
228
|
const meta = await documentMetadataService.getMetadata(contentTypeUid, document);
|
229
229
|
return documentMetadataService.getStatus(document, meta.availableStatus);
|
230
230
|
};
|
231
|
+
const getComponentFields = (componentUID) => {
|
232
|
+
return Object.entries(strapi2.getModel(componentUID).attributes).reduce(
|
233
|
+
(fieldsAcc, [key, attribute]) => {
|
234
|
+
if (!["relation", "media", "component", "dynamiczone"].includes(attribute.type)) {
|
235
|
+
fieldsAcc.push(key);
|
236
|
+
}
|
237
|
+
return fieldsAcc;
|
238
|
+
},
|
239
|
+
[]
|
240
|
+
);
|
241
|
+
};
|
231
242
|
const getDeepPopulate2 = (uid2, useDatabaseSyntax = false) => {
|
232
243
|
const model = strapi2.getModel(uid2);
|
233
244
|
const attributes = Object.entries(model.attributes);
|
@@ -251,13 +262,19 @@ const createServiceUtils = ({ strapi: strapi2 }) => {
|
|
251
262
|
}
|
252
263
|
case "component": {
|
253
264
|
const populate = getDeepPopulate2(attribute.component);
|
254
|
-
acc[attributeName] = {
|
265
|
+
acc[attributeName] = {
|
266
|
+
populate,
|
267
|
+
[fieldSelector]: getComponentFields(attribute.component)
|
268
|
+
};
|
255
269
|
break;
|
256
270
|
}
|
257
271
|
case "dynamiczone": {
|
258
272
|
const populatedComponents = (attribute.components || []).reduce(
|
259
273
|
(acc2, componentUID) => {
|
260
|
-
acc2[componentUID] = {
|
274
|
+
acc2[componentUID] = {
|
275
|
+
populate: getDeepPopulate2(componentUID),
|
276
|
+
[fieldSelector]: getComponentFields(componentUID)
|
277
|
+
};
|
261
278
|
return acc2;
|
262
279
|
},
|
263
280
|
{}
|
@@ -370,7 +387,7 @@ const createHistoryService = ({ strapi: strapi2 }) => {
|
|
370
387
|
const attributeValue = entry.data[attributeKey];
|
371
388
|
const attributeValues = Array.isArray(attributeValue) ? attributeValue : [attributeValue];
|
372
389
|
if (attributeSchema.type === "media") {
|
373
|
-
const permissionChecker2 = getService$
|
390
|
+
const permissionChecker2 = getService$2("permission-checker").create({
|
374
391
|
userAbility: params.state.userAbility,
|
375
392
|
model: "plugin::upload.file"
|
376
393
|
});
|
@@ -411,7 +428,7 @@ const createHistoryService = ({ strapi: strapi2 }) => {
|
|
411
428
|
[attributeKey]: adminUsers
|
412
429
|
};
|
413
430
|
}
|
414
|
-
const permissionChecker2 = getService$
|
431
|
+
const permissionChecker2 = getService$2("permission-checker").create({
|
415
432
|
userAbility: params.state.userAbility,
|
416
433
|
model: attributeSchema.target
|
417
434
|
});
|
@@ -587,7 +604,7 @@ const createLifecyclesService = ({ strapi: strapi2 }) => {
|
|
587
604
|
onCommit(async () => {
|
588
605
|
for (const entry of localeEntries) {
|
589
606
|
const status = await serviceUtils.getVersionStatus(uid2, entry);
|
590
|
-
await getService(strapi2, "history").createVersion({
|
607
|
+
await getService$1(strapi2, "history").createVersion({
|
591
608
|
contentType: uid2,
|
592
609
|
data: fp.omit(FIELDS_TO_IGNORE, entry),
|
593
610
|
relatedDocumentId: documentId,
|
@@ -600,15 +617,19 @@ const createLifecyclesService = ({ strapi: strapi2 }) => {
|
|
600
617
|
});
|
601
618
|
return result;
|
602
619
|
});
|
603
|
-
state.deleteExpiredJob = nodeSchedule.scheduleJob("0 0 * * *", () => {
|
620
|
+
state.deleteExpiredJob = nodeSchedule.scheduleJob("historyDaily", "0 0 * * *", () => {
|
604
621
|
const retentionDaysInMilliseconds = serviceUtils.getRetentionDays() * 24 * 60 * 60 * 1e3;
|
605
622
|
const expirationDate = new Date(Date.now() - retentionDaysInMilliseconds);
|
606
623
|
strapi2.db.query(HISTORY_VERSION_UID).deleteMany({
|
607
624
|
where: {
|
608
625
|
created_at: {
|
609
|
-
$lt: expirationDate
|
626
|
+
$lt: expirationDate
|
610
627
|
}
|
611
628
|
}
|
629
|
+
}).catch((error) => {
|
630
|
+
if (error instanceof Error) {
|
631
|
+
strapi2.log.error("Error deleting expired history versions", error.message);
|
632
|
+
}
|
612
633
|
});
|
613
634
|
});
|
614
635
|
state.isInitialized = true;
|
@@ -620,17 +641,17 @@ const createLifecyclesService = ({ strapi: strapi2 }) => {
|
|
620
641
|
}
|
621
642
|
};
|
622
643
|
};
|
623
|
-
const services$
|
644
|
+
const services$2 = {
|
624
645
|
history: createHistoryService,
|
625
646
|
lifecycles: createLifecyclesService
|
626
647
|
};
|
627
|
-
const info = { pluginName: "content-manager", type: "admin" };
|
648
|
+
const info$1 = { pluginName: "content-manager", type: "admin" };
|
628
649
|
const historyVersionRouter = {
|
629
650
|
type: "admin",
|
630
651
|
routes: [
|
631
652
|
{
|
632
653
|
method: "GET",
|
633
|
-
info,
|
654
|
+
info: info$1,
|
634
655
|
path: "/history-versions",
|
635
656
|
handler: "history-version.findMany",
|
636
657
|
config: {
|
@@ -639,7 +660,7 @@ const historyVersionRouter = {
|
|
639
660
|
},
|
640
661
|
{
|
641
662
|
method: "PUT",
|
642
|
-
info,
|
663
|
+
info: info$1,
|
643
664
|
path: "/history-versions/:versionId/restore",
|
644
665
|
handler: "history-version.restoreVersion",
|
645
666
|
config: {
|
@@ -648,7 +669,7 @@ const historyVersionRouter = {
|
|
648
669
|
}
|
649
670
|
]
|
650
671
|
};
|
651
|
-
const routes$
|
672
|
+
const routes$2 = {
|
652
673
|
"history-version": historyVersionRouter
|
653
674
|
};
|
654
675
|
const historyVersion = {
|
@@ -695,21 +716,21 @@ const historyVersion = {
|
|
695
716
|
}
|
696
717
|
}
|
697
718
|
};
|
698
|
-
const getFeature = () => {
|
719
|
+
const getFeature$1 = () => {
|
699
720
|
if (strapi.ee.features.isEnabled("cms-content-history")) {
|
700
721
|
return {
|
701
722
|
register({ strapi: strapi2 }) {
|
702
723
|
strapi2.get("models").add(historyVersion);
|
703
724
|
},
|
704
725
|
bootstrap({ strapi: strapi2 }) {
|
705
|
-
getService(strapi2, "lifecycles").bootstrap();
|
726
|
+
getService$1(strapi2, "lifecycles").bootstrap();
|
706
727
|
},
|
707
728
|
destroy({ strapi: strapi2 }) {
|
708
|
-
getService(strapi2, "lifecycles").destroy();
|
729
|
+
getService$1(strapi2, "lifecycles").destroy();
|
709
730
|
},
|
710
|
-
controllers: controllers$
|
711
|
-
services: services$
|
712
|
-
routes: routes$
|
731
|
+
controllers: controllers$2,
|
732
|
+
services: services$2,
|
733
|
+
routes: routes$2
|
713
734
|
};
|
714
735
|
}
|
715
736
|
return {
|
@@ -718,9 +739,201 @@ const getFeature = () => {
|
|
718
739
|
}
|
719
740
|
};
|
720
741
|
};
|
721
|
-
const history = getFeature();
|
742
|
+
const history = getFeature$1();
|
743
|
+
const FEATURE_ID = "preview";
|
744
|
+
const info = { pluginName: "content-manager", type: "admin" };
|
745
|
+
const previewRouter = {
|
746
|
+
type: "admin",
|
747
|
+
routes: [
|
748
|
+
{
|
749
|
+
method: "GET",
|
750
|
+
info,
|
751
|
+
path: "/preview/url/:contentType",
|
752
|
+
handler: "preview.getPreviewUrl",
|
753
|
+
config: {
|
754
|
+
policies: ["admin::isAuthenticatedAdmin"]
|
755
|
+
}
|
756
|
+
}
|
757
|
+
]
|
758
|
+
};
|
759
|
+
const routes$1 = {
|
760
|
+
preview: previewRouter
|
761
|
+
};
|
762
|
+
function getService(strapi2, name) {
|
763
|
+
return strapi2.service(`plugin::content-manager.${name}`);
|
764
|
+
}
|
765
|
+
const getPreviewUrlSchema = yup__namespace.object().shape({
|
766
|
+
// Will be undefined for single types
|
767
|
+
documentId: yup__namespace.string(),
|
768
|
+
locale: yup__namespace.string().nullable(),
|
769
|
+
status: yup__namespace.string()
|
770
|
+
}).required();
|
771
|
+
const validatePreviewUrl = async (strapi2, uid2, params) => {
|
772
|
+
await strapiUtils.validateYupSchema(getPreviewUrlSchema)(params);
|
773
|
+
const newParams = fp.pick(["documentId", "locale", "status"], params);
|
774
|
+
const model = strapi2.getModel(uid2);
|
775
|
+
if (!model || model.modelType !== "contentType") {
|
776
|
+
throw new strapiUtils.errors.ValidationError("Invalid content type");
|
777
|
+
}
|
778
|
+
const isSingleType = model?.kind === "singleType";
|
779
|
+
if (!isSingleType && !params.documentId) {
|
780
|
+
throw new strapiUtils.errors.ValidationError("documentId is required for Collection Types");
|
781
|
+
}
|
782
|
+
if (isSingleType) {
|
783
|
+
const doc = await strapi2.documents(uid2).findFirst();
|
784
|
+
if (!doc) {
|
785
|
+
throw new strapiUtils.errors.NotFoundError("Document not found");
|
786
|
+
}
|
787
|
+
newParams.documentId = doc?.documentId;
|
788
|
+
}
|
789
|
+
return newParams;
|
790
|
+
};
|
791
|
+
const createPreviewController = () => {
|
792
|
+
return {
|
793
|
+
/**
|
794
|
+
* Transforms an entry into a preview URL, so that it can be previewed
|
795
|
+
* in the Content Manager.
|
796
|
+
*/
|
797
|
+
async getPreviewUrl(ctx) {
|
798
|
+
const uid2 = ctx.params.contentType;
|
799
|
+
const query = ctx.request.query;
|
800
|
+
const params = await validatePreviewUrl(strapi, uid2, query);
|
801
|
+
const previewService = getService(strapi, "preview");
|
802
|
+
const url = await previewService.getPreviewUrl(uid2, params);
|
803
|
+
if (!url) {
|
804
|
+
ctx.status = 204;
|
805
|
+
}
|
806
|
+
return {
|
807
|
+
data: { url }
|
808
|
+
};
|
809
|
+
}
|
810
|
+
};
|
811
|
+
};
|
812
|
+
const controllers$1 = {
|
813
|
+
preview: createPreviewController
|
814
|
+
/**
|
815
|
+
* Casting is needed because the types aren't aware that Strapi supports
|
816
|
+
* passing a controller factory as the value, instead of a controller object directly
|
817
|
+
*/
|
818
|
+
};
|
819
|
+
const createPreviewService = ({ strapi: strapi2 }) => {
|
820
|
+
const config = getService(strapi2, "preview-config");
|
821
|
+
return {
|
822
|
+
async getPreviewUrl(uid2, params) {
|
823
|
+
const handler = config.getPreviewHandler();
|
824
|
+
try {
|
825
|
+
return handler(uid2, params);
|
826
|
+
} catch (error) {
|
827
|
+
strapi2.log.error(`Failed to get preview URL: ${error}`);
|
828
|
+
throw new strapiUtils.errors.ApplicationError("Failed to get preview URL");
|
829
|
+
}
|
830
|
+
return;
|
831
|
+
}
|
832
|
+
};
|
833
|
+
};
|
834
|
+
const extendMiddlewareConfiguration = (middleware = { name: "", config: {} }) => {
|
835
|
+
const middlewares = strapi.config.get("middlewares");
|
836
|
+
const configuredMiddlewares = middlewares.map((currentMiddleware) => {
|
837
|
+
if (currentMiddleware === middleware.name) {
|
838
|
+
return middleware;
|
839
|
+
}
|
840
|
+
if (currentMiddleware.name === middleware.name) {
|
841
|
+
return fp.mergeWith(
|
842
|
+
(objValue, srcValue) => {
|
843
|
+
if (Array.isArray(objValue)) {
|
844
|
+
return objValue.concat(srcValue);
|
845
|
+
}
|
846
|
+
return void 0;
|
847
|
+
},
|
848
|
+
currentMiddleware,
|
849
|
+
middleware
|
850
|
+
);
|
851
|
+
}
|
852
|
+
return currentMiddleware;
|
853
|
+
});
|
854
|
+
strapi.config.set("middlewares", configuredMiddlewares);
|
855
|
+
};
|
856
|
+
const createPreviewConfigService = ({ strapi: strapi2 }) => {
|
857
|
+
return {
|
858
|
+
register() {
|
859
|
+
if (!this.isEnabled()) {
|
860
|
+
return;
|
861
|
+
}
|
862
|
+
const config = strapi2.config.get("admin.preview");
|
863
|
+
if (config.config?.allowedOrigins) {
|
864
|
+
extendMiddlewareConfiguration({
|
865
|
+
name: "strapi::security",
|
866
|
+
config: {
|
867
|
+
contentSecurityPolicy: {
|
868
|
+
directives: {
|
869
|
+
"frame-src": config.config.allowedOrigins
|
870
|
+
}
|
871
|
+
}
|
872
|
+
}
|
873
|
+
});
|
874
|
+
}
|
875
|
+
},
|
876
|
+
isEnabled() {
|
877
|
+
const config = strapi2.config.get("admin.preview");
|
878
|
+
if (!config) {
|
879
|
+
return false;
|
880
|
+
}
|
881
|
+
return config?.enabled ?? true;
|
882
|
+
},
|
883
|
+
/**
|
884
|
+
* Validate if the configuration is valid
|
885
|
+
*/
|
886
|
+
validate() {
|
887
|
+
if (!this.isEnabled()) {
|
888
|
+
return;
|
889
|
+
}
|
890
|
+
const handler = this.getPreviewHandler();
|
891
|
+
if (typeof handler !== "function") {
|
892
|
+
throw new strapiUtils.errors.ValidationError(
|
893
|
+
"Preview configuration is invalid. Handler must be a function"
|
894
|
+
);
|
895
|
+
}
|
896
|
+
},
|
897
|
+
/**
|
898
|
+
* Utility to get the preview handler from the configuration
|
899
|
+
*/
|
900
|
+
getPreviewHandler() {
|
901
|
+
const config = strapi2.config.get("admin.preview");
|
902
|
+
const emptyHandler = () => {
|
903
|
+
return void 0;
|
904
|
+
};
|
905
|
+
if (!this.isEnabled()) {
|
906
|
+
return emptyHandler;
|
907
|
+
}
|
908
|
+
return config?.config?.handler || emptyHandler;
|
909
|
+
}
|
910
|
+
};
|
911
|
+
};
|
912
|
+
const services$1 = {
|
913
|
+
preview: createPreviewService,
|
914
|
+
"preview-config": createPreviewConfigService
|
915
|
+
};
|
916
|
+
const getFeature = () => {
|
917
|
+
if (!strapi.features.future.isEnabled(FEATURE_ID)) {
|
918
|
+
return {};
|
919
|
+
}
|
920
|
+
return {
|
921
|
+
register() {
|
922
|
+
const config = getService(strapi, "preview-config");
|
923
|
+
config.validate();
|
924
|
+
config.register();
|
925
|
+
},
|
926
|
+
bootstrap() {
|
927
|
+
},
|
928
|
+
routes: routes$1,
|
929
|
+
controllers: controllers$1,
|
930
|
+
services: services$1
|
931
|
+
};
|
932
|
+
};
|
933
|
+
const preview = getFeature();
|
722
934
|
const register = async ({ strapi: strapi2 }) => {
|
723
935
|
await history.register?.({ strapi: strapi2 });
|
936
|
+
await preview.register?.({ strapi: strapi2 });
|
724
937
|
};
|
725
938
|
const ALLOWED_WEBHOOK_EVENTS = {
|
726
939
|
ENTRY_PUBLISH: "entry.publish",
|
@@ -730,11 +943,12 @@ const bootstrap = async () => {
|
|
730
943
|
Object.entries(ALLOWED_WEBHOOK_EVENTS).forEach(([key, value]) => {
|
731
944
|
strapi.get("webhookStore").addAllowedEvent(key, value);
|
732
945
|
});
|
733
|
-
getService$
|
734
|
-
await getService$
|
735
|
-
await getService$
|
736
|
-
await getService$
|
946
|
+
getService$2("field-sizes").setCustomFieldInputSizes();
|
947
|
+
await getService$2("components").syncConfigurations();
|
948
|
+
await getService$2("content-types").syncConfigurations();
|
949
|
+
await getService$2("permission").registerPermissions();
|
737
950
|
await history.bootstrap?.({ strapi });
|
951
|
+
await preview.bootstrap?.({ strapi });
|
738
952
|
};
|
739
953
|
const destroy = async ({ strapi: strapi2 }) => {
|
740
954
|
await history.destroy?.({ strapi: strapi2 });
|
@@ -1224,7 +1438,8 @@ const admin = {
|
|
1224
1438
|
};
|
1225
1439
|
const routes = {
|
1226
1440
|
admin,
|
1227
|
-
...history.routes ? history.routes : {}
|
1441
|
+
...history.routes ? history.routes : {},
|
1442
|
+
...preview.routes ? preview.routes : {}
|
1228
1443
|
};
|
1229
1444
|
const hasPermissionsSchema = strapiUtils.yup.object({
|
1230
1445
|
actions: strapiUtils.yup.array().of(strapiUtils.yup.string()),
|
@@ -1481,7 +1696,7 @@ const createMetadasSchema = (schema) => {
|
|
1481
1696
|
if (!value) {
|
1482
1697
|
return strapiUtils.yup.string();
|
1483
1698
|
}
|
1484
|
-
const targetSchema = getService$
|
1699
|
+
const targetSchema = getService$2("content-types").findContentType(
|
1485
1700
|
schema.attributes[key].targetModel
|
1486
1701
|
);
|
1487
1702
|
if (!targetSchema) {
|
@@ -1650,7 +1865,7 @@ const getDocumentLocaleAndStatus = async (request, model, opts = { allowMultiple
|
|
1650
1865
|
}
|
1651
1866
|
};
|
1652
1867
|
const formatDocumentWithMetadata = async (permissionChecker2, uid2, document, opts = {}) => {
|
1653
|
-
const documentMetadata2 = getService$
|
1868
|
+
const documentMetadata2 = getService$2("document-metadata");
|
1654
1869
|
const serviceOutput = await documentMetadata2.formatDocumentWithMetadata(uid2, document, opts);
|
1655
1870
|
let {
|
1656
1871
|
meta: { availableLocales, availableStatus }
|
@@ -1676,8 +1891,8 @@ const createDocument = async (ctx, opts) => {
|
|
1676
1891
|
const { userAbility, user } = ctx.state;
|
1677
1892
|
const { model } = ctx.params;
|
1678
1893
|
const { body } = ctx.request;
|
1679
|
-
const documentManager2 = getService$
|
1680
|
-
const permissionChecker2 = getService$
|
1894
|
+
const documentManager2 = getService$2("document-manager");
|
1895
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
1681
1896
|
if (permissionChecker2.cannot.create()) {
|
1682
1897
|
throw new strapiUtils.errors.ForbiddenError();
|
1683
1898
|
}
|
@@ -1697,13 +1912,13 @@ const updateDocument = async (ctx, opts) => {
|
|
1697
1912
|
const { userAbility, user } = ctx.state;
|
1698
1913
|
const { id, model } = ctx.params;
|
1699
1914
|
const { body } = ctx.request;
|
1700
|
-
const documentManager2 = getService$
|
1701
|
-
const permissionChecker2 = getService$
|
1915
|
+
const documentManager2 = getService$2("document-manager");
|
1916
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
1702
1917
|
if (permissionChecker2.cannot.update()) {
|
1703
1918
|
throw new strapiUtils.errors.ForbiddenError();
|
1704
1919
|
}
|
1705
1920
|
const permissionQuery = await permissionChecker2.sanitizedQuery.update(ctx.query);
|
1706
|
-
const populate = await getService$
|
1921
|
+
const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
|
1707
1922
|
const { locale } = await getDocumentLocaleAndStatus(body, model);
|
1708
1923
|
const [documentVersion, documentExists] = await Promise.all([
|
1709
1924
|
documentManager2.findOne(id, model, { populate, locale, status: "draft" }),
|
@@ -1734,14 +1949,14 @@ const collectionTypes = {
|
|
1734
1949
|
const { userAbility } = ctx.state;
|
1735
1950
|
const { model } = ctx.params;
|
1736
1951
|
const { query } = ctx.request;
|
1737
|
-
const documentMetadata2 = getService$
|
1738
|
-
const documentManager2 = getService$
|
1739
|
-
const permissionChecker2 = getService$
|
1952
|
+
const documentMetadata2 = getService$2("document-metadata");
|
1953
|
+
const documentManager2 = getService$2("document-manager");
|
1954
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
1740
1955
|
if (permissionChecker2.cannot.read()) {
|
1741
1956
|
return ctx.forbidden();
|
1742
1957
|
}
|
1743
1958
|
const permissionQuery = await permissionChecker2.sanitizedQuery.read(query);
|
1744
|
-
const populate = await getService$
|
1959
|
+
const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(1).countRelations({ toOne: false, toMany: true }).build();
|
1745
1960
|
const { locale, status } = await getDocumentLocaleAndStatus(query, model);
|
1746
1961
|
const { results: documents, pagination } = await documentManager2.findPage(
|
1747
1962
|
{ ...permissionQuery, populate, locale, status },
|
@@ -1770,13 +1985,13 @@ const collectionTypes = {
|
|
1770
1985
|
async findOne(ctx) {
|
1771
1986
|
const { userAbility } = ctx.state;
|
1772
1987
|
const { model, id } = ctx.params;
|
1773
|
-
const documentManager2 = getService$
|
1774
|
-
const permissionChecker2 = getService$
|
1988
|
+
const documentManager2 = getService$2("document-manager");
|
1989
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
1775
1990
|
if (permissionChecker2.cannot.read()) {
|
1776
1991
|
return ctx.forbidden();
|
1777
1992
|
}
|
1778
1993
|
const permissionQuery = await permissionChecker2.sanitizedQuery.read(ctx.query);
|
1779
|
-
const populate = await getService$
|
1994
|
+
const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(Infinity).countRelations().build();
|
1780
1995
|
const { locale, status } = await getDocumentLocaleAndStatus(ctx.query, model);
|
1781
1996
|
const version = await documentManager2.findOne(id, model, {
|
1782
1997
|
populate,
|
@@ -1807,7 +2022,7 @@ const collectionTypes = {
|
|
1807
2022
|
async create(ctx) {
|
1808
2023
|
const { userAbility } = ctx.state;
|
1809
2024
|
const { model } = ctx.params;
|
1810
|
-
const permissionChecker2 = getService$
|
2025
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
1811
2026
|
const [totalEntries, document] = await Promise.all([
|
1812
2027
|
strapi.db.query(model).count(),
|
1813
2028
|
createDocument(ctx)
|
@@ -1828,7 +2043,7 @@ const collectionTypes = {
|
|
1828
2043
|
async update(ctx) {
|
1829
2044
|
const { userAbility } = ctx.state;
|
1830
2045
|
const { model } = ctx.params;
|
1831
|
-
const permissionChecker2 = getService$
|
2046
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
1832
2047
|
const updatedVersion = await updateDocument(ctx);
|
1833
2048
|
const sanitizedVersion = await permissionChecker2.sanitizeOutput(updatedVersion);
|
1834
2049
|
ctx.body = await formatDocumentWithMetadata(permissionChecker2, model, sanitizedVersion);
|
@@ -1837,13 +2052,13 @@ const collectionTypes = {
|
|
1837
2052
|
const { userAbility, user } = ctx.state;
|
1838
2053
|
const { model, sourceId: id } = ctx.params;
|
1839
2054
|
const { body } = ctx.request;
|
1840
|
-
const documentManager2 = getService$
|
1841
|
-
const permissionChecker2 = getService$
|
2055
|
+
const documentManager2 = getService$2("document-manager");
|
2056
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
1842
2057
|
if (permissionChecker2.cannot.create()) {
|
1843
2058
|
return ctx.forbidden();
|
1844
2059
|
}
|
1845
2060
|
const permissionQuery = await permissionChecker2.sanitizedQuery.create(ctx.query);
|
1846
|
-
const populate = await getService$
|
2061
|
+
const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
|
1847
2062
|
const { locale } = await getDocumentLocaleAndStatus(body, model);
|
1848
2063
|
const document = await documentManager2.findOne(id, model, {
|
1849
2064
|
populate,
|
@@ -1882,13 +2097,13 @@ const collectionTypes = {
|
|
1882
2097
|
async delete(ctx) {
|
1883
2098
|
const { userAbility } = ctx.state;
|
1884
2099
|
const { id, model } = ctx.params;
|
1885
|
-
const documentManager2 = getService$
|
1886
|
-
const permissionChecker2 = getService$
|
2100
|
+
const documentManager2 = getService$2("document-manager");
|
2101
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
1887
2102
|
if (permissionChecker2.cannot.delete()) {
|
1888
2103
|
return ctx.forbidden();
|
1889
2104
|
}
|
1890
2105
|
const permissionQuery = await permissionChecker2.sanitizedQuery.delete(ctx.query);
|
1891
|
-
const populate = await getService$
|
2106
|
+
const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
|
1892
2107
|
const { locale } = await getDocumentLocaleAndStatus(ctx.query, model);
|
1893
2108
|
const documentLocales = await documentManager2.findLocales(id, model, { populate, locale });
|
1894
2109
|
if (documentLocales.length === 0) {
|
@@ -1910,14 +2125,14 @@ const collectionTypes = {
|
|
1910
2125
|
const { userAbility } = ctx.state;
|
1911
2126
|
const { id, model } = ctx.params;
|
1912
2127
|
const { body } = ctx.request;
|
1913
|
-
const documentManager2 = getService$
|
1914
|
-
const permissionChecker2 = getService$
|
2128
|
+
const documentManager2 = getService$2("document-manager");
|
2129
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
1915
2130
|
if (permissionChecker2.cannot.publish()) {
|
1916
2131
|
return ctx.forbidden();
|
1917
2132
|
}
|
1918
2133
|
const publishedDocument = await strapi.db.transaction(async () => {
|
1919
2134
|
const permissionQuery = await permissionChecker2.sanitizedQuery.publish(ctx.query);
|
1920
|
-
const populate = await getService$
|
2135
|
+
const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(Infinity).countRelations().build();
|
1921
2136
|
let document;
|
1922
2137
|
const { locale } = await getDocumentLocaleAndStatus(body, model);
|
1923
2138
|
const isCreate = fp.isNil(id);
|
@@ -1965,13 +2180,13 @@ const collectionTypes = {
|
|
1965
2180
|
const { body } = ctx.request;
|
1966
2181
|
const { documentIds } = body;
|
1967
2182
|
await validateBulkActionInput(body);
|
1968
|
-
const documentManager2 = getService$
|
1969
|
-
const permissionChecker2 = getService$
|
2183
|
+
const documentManager2 = getService$2("document-manager");
|
2184
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
1970
2185
|
if (permissionChecker2.cannot.publish()) {
|
1971
2186
|
return ctx.forbidden();
|
1972
2187
|
}
|
1973
2188
|
const permissionQuery = await permissionChecker2.sanitizedQuery.publish(ctx.query);
|
1974
|
-
const populate = await getService$
|
2189
|
+
const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(Infinity).countRelations().build();
|
1975
2190
|
const { locale } = await getDocumentLocaleAndStatus(body, model, {
|
1976
2191
|
allowMultipleLocales: true
|
1977
2192
|
});
|
@@ -1996,8 +2211,8 @@ const collectionTypes = {
|
|
1996
2211
|
const { body } = ctx.request;
|
1997
2212
|
const { documentIds } = body;
|
1998
2213
|
await validateBulkActionInput(body);
|
1999
|
-
const documentManager2 = getService$
|
2000
|
-
const permissionChecker2 = getService$
|
2214
|
+
const documentManager2 = getService$2("document-manager");
|
2215
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2001
2216
|
if (permissionChecker2.cannot.unpublish()) {
|
2002
2217
|
return ctx.forbidden();
|
2003
2218
|
}
|
@@ -2026,8 +2241,8 @@ const collectionTypes = {
|
|
2026
2241
|
const {
|
2027
2242
|
body: { discardDraft, ...body }
|
2028
2243
|
} = ctx.request;
|
2029
|
-
const documentManager2 = getService$
|
2030
|
-
const permissionChecker2 = getService$
|
2244
|
+
const documentManager2 = getService$2("document-manager");
|
2245
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2031
2246
|
if (permissionChecker2.cannot.unpublish()) {
|
2032
2247
|
return ctx.forbidden();
|
2033
2248
|
}
|
@@ -2035,7 +2250,7 @@ const collectionTypes = {
|
|
2035
2250
|
return ctx.forbidden();
|
2036
2251
|
}
|
2037
2252
|
const permissionQuery = await permissionChecker2.sanitizedQuery.unpublish(ctx.query);
|
2038
|
-
const populate = await getService$
|
2253
|
+
const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
|
2039
2254
|
const { locale } = await getDocumentLocaleAndStatus(body, model);
|
2040
2255
|
const document = await documentManager2.findOne(id, model, {
|
2041
2256
|
populate,
|
@@ -2066,13 +2281,13 @@ const collectionTypes = {
|
|
2066
2281
|
const { userAbility } = ctx.state;
|
2067
2282
|
const { id, model } = ctx.params;
|
2068
2283
|
const { body } = ctx.request;
|
2069
|
-
const documentManager2 = getService$
|
2070
|
-
const permissionChecker2 = getService$
|
2284
|
+
const documentManager2 = getService$2("document-manager");
|
2285
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2071
2286
|
if (permissionChecker2.cannot.discard()) {
|
2072
2287
|
return ctx.forbidden();
|
2073
2288
|
}
|
2074
2289
|
const permissionQuery = await permissionChecker2.sanitizedQuery.discard(ctx.query);
|
2075
|
-
const populate = await getService$
|
2290
|
+
const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
|
2076
2291
|
const { locale } = await getDocumentLocaleAndStatus(body, model);
|
2077
2292
|
const document = await documentManager2.findOne(id, model, {
|
2078
2293
|
populate,
|
@@ -2097,13 +2312,13 @@ const collectionTypes = {
|
|
2097
2312
|
const { query, body } = ctx.request;
|
2098
2313
|
const { documentIds } = body;
|
2099
2314
|
await validateBulkActionInput(body);
|
2100
|
-
const documentManager2 = getService$
|
2101
|
-
const permissionChecker2 = getService$
|
2315
|
+
const documentManager2 = getService$2("document-manager");
|
2316
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2102
2317
|
if (permissionChecker2.cannot.delete()) {
|
2103
2318
|
return ctx.forbidden();
|
2104
2319
|
}
|
2105
2320
|
const permissionQuery = await permissionChecker2.sanitizedQuery.delete(query);
|
2106
|
-
const populate = await getService$
|
2321
|
+
const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
|
2107
2322
|
const { locale } = await getDocumentLocaleAndStatus(body, model);
|
2108
2323
|
const documentLocales = await documentManager2.findLocales(documentIds, model, {
|
2109
2324
|
populate,
|
@@ -2124,13 +2339,13 @@ const collectionTypes = {
|
|
2124
2339
|
async countDraftRelations(ctx) {
|
2125
2340
|
const { userAbility } = ctx.state;
|
2126
2341
|
const { model, id } = ctx.params;
|
2127
|
-
const documentManager2 = getService$
|
2128
|
-
const permissionChecker2 = getService$
|
2342
|
+
const documentManager2 = getService$2("document-manager");
|
2343
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2129
2344
|
if (permissionChecker2.cannot.read()) {
|
2130
2345
|
return ctx.forbidden();
|
2131
2346
|
}
|
2132
2347
|
const permissionQuery = await permissionChecker2.sanitizedQuery.read(ctx.query);
|
2133
|
-
const populate = await getService$
|
2348
|
+
const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
|
2134
2349
|
const { locale, status } = await getDocumentLocaleAndStatus(ctx.query, model);
|
2135
2350
|
const entity = await documentManager2.findOne(id, model, { populate, locale, status });
|
2136
2351
|
if (!entity) {
|
@@ -2149,8 +2364,8 @@ const collectionTypes = {
|
|
2149
2364
|
const ids = ctx.request.query.documentIds;
|
2150
2365
|
const locale = ctx.request.query.locale;
|
2151
2366
|
const { model } = ctx.params;
|
2152
|
-
const documentManager2 = getService$
|
2153
|
-
const permissionChecker2 = getService$
|
2367
|
+
const documentManager2 = getService$2("document-manager");
|
2368
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2154
2369
|
if (permissionChecker2.cannot.read()) {
|
2155
2370
|
return ctx.forbidden();
|
2156
2371
|
}
|
@@ -2174,13 +2389,13 @@ const collectionTypes = {
|
|
2174
2389
|
};
|
2175
2390
|
const components$1 = {
|
2176
2391
|
findComponents(ctx) {
|
2177
|
-
const components2 = getService$
|
2178
|
-
const { toDto } = getService$
|
2392
|
+
const components2 = getService$2("components").findAllComponents();
|
2393
|
+
const { toDto } = getService$2("data-mapper");
|
2179
2394
|
ctx.body = { data: components2.map(toDto) };
|
2180
2395
|
},
|
2181
2396
|
async findComponentConfiguration(ctx) {
|
2182
2397
|
const { uid: uid2 } = ctx.params;
|
2183
|
-
const componentService = getService$
|
2398
|
+
const componentService = getService$2("components");
|
2184
2399
|
const component = componentService.findComponent(uid2);
|
2185
2400
|
if (!component) {
|
2186
2401
|
return ctx.notFound("component.notFound");
|
@@ -2197,7 +2412,7 @@ const components$1 = {
|
|
2197
2412
|
async updateComponentConfiguration(ctx) {
|
2198
2413
|
const { uid: uid2 } = ctx.params;
|
2199
2414
|
const { body } = ctx.request;
|
2200
|
-
const componentService = getService$
|
2415
|
+
const componentService = getService$2("components");
|
2201
2416
|
const component = componentService.findComponent(uid2);
|
2202
2417
|
if (!component) {
|
2203
2418
|
return ctx.notFound("component.notFound");
|
@@ -2231,12 +2446,12 @@ const contentTypes = {
|
|
2231
2446
|
} catch (error) {
|
2232
2447
|
return ctx.send({ error }, 400);
|
2233
2448
|
}
|
2234
|
-
const contentTypes2 = getService$
|
2235
|
-
const { toDto } = getService$
|
2449
|
+
const contentTypes2 = getService$2("content-types").findContentTypesByKind(kind);
|
2450
|
+
const { toDto } = getService$2("data-mapper");
|
2236
2451
|
ctx.body = { data: contentTypes2.map(toDto) };
|
2237
2452
|
},
|
2238
2453
|
async findContentTypesSettings(ctx) {
|
2239
|
-
const { findAllContentTypes, findConfiguration } = getService$
|
2454
|
+
const { findAllContentTypes, findConfiguration } = getService$2("content-types");
|
2240
2455
|
const contentTypes2 = await findAllContentTypes();
|
2241
2456
|
const configurations = await Promise.all(
|
2242
2457
|
contentTypes2.map(async (contentType) => {
|
@@ -2250,7 +2465,7 @@ const contentTypes = {
|
|
2250
2465
|
},
|
2251
2466
|
async findContentTypeConfiguration(ctx) {
|
2252
2467
|
const { uid: uid2 } = ctx.params;
|
2253
|
-
const contentTypeService = getService$
|
2468
|
+
const contentTypeService = getService$2("content-types");
|
2254
2469
|
const contentType = await contentTypeService.findContentType(uid2);
|
2255
2470
|
if (!contentType) {
|
2256
2471
|
return ctx.notFound("contentType.notFound");
|
@@ -2272,13 +2487,13 @@ const contentTypes = {
|
|
2272
2487
|
const { userAbility } = ctx.state;
|
2273
2488
|
const { uid: uid2 } = ctx.params;
|
2274
2489
|
const { body } = ctx.request;
|
2275
|
-
const contentTypeService = getService$
|
2276
|
-
const metricsService = getService$
|
2490
|
+
const contentTypeService = getService$2("content-types");
|
2491
|
+
const metricsService = getService$2("metrics");
|
2277
2492
|
const contentType = await contentTypeService.findContentType(uid2);
|
2278
2493
|
if (!contentType) {
|
2279
2494
|
return ctx.notFound("contentType.notFound");
|
2280
2495
|
}
|
2281
|
-
if (!getService$
|
2496
|
+
if (!getService$2("permission").canConfigureContentType({ userAbility, contentType })) {
|
2282
2497
|
return ctx.forbidden();
|
2283
2498
|
}
|
2284
2499
|
let input;
|
@@ -2311,10 +2526,10 @@ const contentTypes = {
|
|
2311
2526
|
};
|
2312
2527
|
const init = {
|
2313
2528
|
getInitData(ctx) {
|
2314
|
-
const { toDto } = getService$
|
2315
|
-
const { findAllComponents } = getService$
|
2316
|
-
const { getAllFieldSizes } = getService$
|
2317
|
-
const { findAllContentTypes } = getService$
|
2529
|
+
const { toDto } = getService$2("data-mapper");
|
2530
|
+
const { findAllComponents } = getService$2("components");
|
2531
|
+
const { getAllFieldSizes } = getService$2("field-sizes");
|
2532
|
+
const { findAllContentTypes } = getService$2("content-types");
|
2318
2533
|
ctx.body = {
|
2319
2534
|
data: {
|
2320
2535
|
fieldSizes: getAllFieldSizes(),
|
@@ -2350,7 +2565,7 @@ const addFiltersClause = (params, filtersClause) => {
|
|
2350
2565
|
params.filters.$and.push(filtersClause);
|
2351
2566
|
};
|
2352
2567
|
const sanitizeMainField = (model, mainField, userAbility) => {
|
2353
|
-
const permissionChecker2 = getService$
|
2568
|
+
const permissionChecker2 = getService$2("permission-checker").create({
|
2354
2569
|
userAbility,
|
2355
2570
|
model: model.uid
|
2356
2571
|
});
|
@@ -2368,7 +2583,7 @@ const addStatusToRelations = async (targetUid, relations2) => {
|
|
2368
2583
|
if (!strapiUtils.contentTypes.hasDraftAndPublish(strapi.getModel(targetUid))) {
|
2369
2584
|
return relations2;
|
2370
2585
|
}
|
2371
|
-
const documentMetadata2 = getService$
|
2586
|
+
const documentMetadata2 = getService$2("document-metadata");
|
2372
2587
|
if (!relations2.length) {
|
2373
2588
|
return relations2;
|
2374
2589
|
}
|
@@ -2446,7 +2661,7 @@ const relations = {
|
|
2446
2661
|
ctx.request?.query?.locale
|
2447
2662
|
);
|
2448
2663
|
const { status } = validateStatus(sourceUid, ctx.request?.query?.status);
|
2449
|
-
const permissionChecker2 = getService$
|
2664
|
+
const permissionChecker2 = getService$2("permission-checker").create({
|
2450
2665
|
userAbility,
|
2451
2666
|
model
|
2452
2667
|
});
|
@@ -2471,7 +2686,7 @@ const relations = {
|
|
2471
2686
|
where.id = id;
|
2472
2687
|
}
|
2473
2688
|
const permissionQuery = await permissionChecker2.sanitizedQuery.read(ctx.query);
|
2474
|
-
const populate = await getService$
|
2689
|
+
const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
|
2475
2690
|
const currentEntity = await strapi.db.query(model).findOne({
|
2476
2691
|
where,
|
2477
2692
|
populate
|
@@ -2486,7 +2701,7 @@ const relations = {
|
|
2486
2701
|
}
|
2487
2702
|
entryId = currentEntity.id;
|
2488
2703
|
}
|
2489
|
-
const modelConfig = isComponent2 ? await getService$
|
2704
|
+
const modelConfig = isComponent2 ? await getService$2("components").findConfiguration(sourceSchema) : await getService$2("content-types").findConfiguration(sourceSchema);
|
2490
2705
|
const targetSchema = strapi.getModel(targetUid);
|
2491
2706
|
const mainField = fp.flow(
|
2492
2707
|
fp.prop(`metadatas.${targetField}.edit.mainField`),
|
@@ -2540,7 +2755,7 @@ const relations = {
|
|
2540
2755
|
}
|
2541
2756
|
} = await this.extractAndValidateRequestInfo(ctx, id);
|
2542
2757
|
const { idsToOmit, idsToInclude, _q, ...query } = ctx.request.query;
|
2543
|
-
const permissionChecker2 = getService$
|
2758
|
+
const permissionChecker2 = getService$2("permission-checker").create({
|
2544
2759
|
userAbility: ctx.state.userAbility,
|
2545
2760
|
model: targetUid
|
2546
2761
|
});
|
@@ -2619,7 +2834,7 @@ const relations = {
|
|
2619
2834
|
} = await this.extractAndValidateRequestInfo(ctx, id);
|
2620
2835
|
const { uid: sourceUid } = sourceSchema;
|
2621
2836
|
const { uid: targetUid } = targetSchema;
|
2622
|
-
const permissionQuery = await getService$
|
2837
|
+
const permissionQuery = await getService$2("permission-checker").create({ userAbility, model: targetUid }).sanitizedQuery.read({ fields: fieldsToSelect });
|
2623
2838
|
const dbQuery = strapi.db.query(sourceUid);
|
2624
2839
|
const loadRelations = strapiUtils.relations.isAnyToMany(attribute) ? (...args) => dbQuery.loadPages(...args) : (...args) => dbQuery.load(...args).then((res2) => ({ results: res2 ? [res2] : [] }));
|
2625
2840
|
const filters = {};
|
@@ -2660,10 +2875,10 @@ const relations = {
|
|
2660
2875
|
}
|
2661
2876
|
};
|
2662
2877
|
const buildPopulateFromQuery = async (query, model) => {
|
2663
|
-
return getService$
|
2878
|
+
return getService$2("populate-builder")(model).populateFromQuery(query).populateDeep(Infinity).countRelations().build();
|
2664
2879
|
};
|
2665
2880
|
const findDocument = async (query, uid2, opts = {}) => {
|
2666
|
-
const documentManager2 = getService$
|
2881
|
+
const documentManager2 = getService$2("document-manager");
|
2667
2882
|
const populate = await buildPopulateFromQuery(query, uid2);
|
2668
2883
|
return documentManager2.findMany({ ...opts, populate }, uid2).then((documents) => documents[0]);
|
2669
2884
|
};
|
@@ -2671,8 +2886,8 @@ const createOrUpdateDocument = async (ctx, opts) => {
|
|
2671
2886
|
const { user, userAbility } = ctx.state;
|
2672
2887
|
const { model } = ctx.params;
|
2673
2888
|
const { body, query } = ctx.request;
|
2674
|
-
const documentManager2 = getService$
|
2675
|
-
const permissionChecker2 = getService$
|
2889
|
+
const documentManager2 = getService$2("document-manager");
|
2890
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2676
2891
|
if (permissionChecker2.cannot.create() && permissionChecker2.cannot.update()) {
|
2677
2892
|
throw new strapiUtils.errors.ForbiddenError();
|
2678
2893
|
}
|
@@ -2713,7 +2928,7 @@ const singleTypes = {
|
|
2713
2928
|
const { userAbility } = ctx.state;
|
2714
2929
|
const { model } = ctx.params;
|
2715
2930
|
const { query = {} } = ctx.request;
|
2716
|
-
const permissionChecker2 = getService$
|
2931
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2717
2932
|
if (permissionChecker2.cannot.read()) {
|
2718
2933
|
return ctx.forbidden();
|
2719
2934
|
}
|
@@ -2747,7 +2962,7 @@ const singleTypes = {
|
|
2747
2962
|
async createOrUpdate(ctx) {
|
2748
2963
|
const { userAbility } = ctx.state;
|
2749
2964
|
const { model } = ctx.params;
|
2750
|
-
const permissionChecker2 = getService$
|
2965
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2751
2966
|
const document = await createOrUpdateDocument(ctx);
|
2752
2967
|
const sanitizedDocument = await permissionChecker2.sanitizeOutput(document);
|
2753
2968
|
ctx.body = await formatDocumentWithMetadata(permissionChecker2, model, sanitizedDocument);
|
@@ -2756,8 +2971,8 @@ const singleTypes = {
|
|
2756
2971
|
const { userAbility } = ctx.state;
|
2757
2972
|
const { model } = ctx.params;
|
2758
2973
|
const { query = {} } = ctx.request;
|
2759
|
-
const documentManager2 = getService$
|
2760
|
-
const permissionChecker2 = getService$
|
2974
|
+
const documentManager2 = getService$2("document-manager");
|
2975
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2761
2976
|
if (permissionChecker2.cannot.delete()) {
|
2762
2977
|
return ctx.forbidden();
|
2763
2978
|
}
|
@@ -2785,8 +3000,8 @@ const singleTypes = {
|
|
2785
3000
|
const { userAbility } = ctx.state;
|
2786
3001
|
const { model } = ctx.params;
|
2787
3002
|
const { query = {} } = ctx.request;
|
2788
|
-
const documentManager2 = getService$
|
2789
|
-
const permissionChecker2 = getService$
|
3003
|
+
const documentManager2 = getService$2("document-manager");
|
3004
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2790
3005
|
if (permissionChecker2.cannot.publish()) {
|
2791
3006
|
return ctx.forbidden();
|
2792
3007
|
}
|
@@ -2814,8 +3029,8 @@ const singleTypes = {
|
|
2814
3029
|
body: { discardDraft, ...body },
|
2815
3030
|
query = {}
|
2816
3031
|
} = ctx.request;
|
2817
|
-
const documentManager2 = getService$
|
2818
|
-
const permissionChecker2 = getService$
|
3032
|
+
const documentManager2 = getService$2("document-manager");
|
3033
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2819
3034
|
if (permissionChecker2.cannot.unpublish()) {
|
2820
3035
|
return ctx.forbidden();
|
2821
3036
|
}
|
@@ -2849,8 +3064,8 @@ const singleTypes = {
|
|
2849
3064
|
const { userAbility } = ctx.state;
|
2850
3065
|
const { model } = ctx.params;
|
2851
3066
|
const { body, query = {} } = ctx.request;
|
2852
|
-
const documentManager2 = getService$
|
2853
|
-
const permissionChecker2 = getService$
|
3067
|
+
const documentManager2 = getService$2("document-manager");
|
3068
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2854
3069
|
if (permissionChecker2.cannot.discard()) {
|
2855
3070
|
return ctx.forbidden();
|
2856
3071
|
}
|
@@ -2873,8 +3088,8 @@ const singleTypes = {
|
|
2873
3088
|
const { userAbility } = ctx.state;
|
2874
3089
|
const { model } = ctx.params;
|
2875
3090
|
const { query } = ctx.request;
|
2876
|
-
const documentManager2 = getService$
|
2877
|
-
const permissionChecker2 = getService$
|
3091
|
+
const documentManager2 = getService$2("document-manager");
|
3092
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2878
3093
|
const { locale } = await getDocumentLocaleAndStatus(query, model);
|
2879
3094
|
if (permissionChecker2.cannot.read()) {
|
2880
3095
|
return ctx.forbidden();
|
@@ -2898,7 +3113,7 @@ const uid$1 = {
|
|
2898
3113
|
const { query = {} } = ctx.request;
|
2899
3114
|
const { locale } = await getDocumentLocaleAndStatus(query, contentTypeUID);
|
2900
3115
|
await validateUIDField(contentTypeUID, field);
|
2901
|
-
const uidService = getService$
|
3116
|
+
const uidService = getService$2("uid");
|
2902
3117
|
ctx.body = {
|
2903
3118
|
data: await uidService.generateUIDField({ contentTypeUID, field, data, locale })
|
2904
3119
|
};
|
@@ -2910,7 +3125,7 @@ const uid$1 = {
|
|
2910
3125
|
const { query = {} } = ctx.request;
|
2911
3126
|
const { locale } = await getDocumentLocaleAndStatus(query, contentTypeUID);
|
2912
3127
|
await validateUIDField(contentTypeUID, field);
|
2913
|
-
const uidService = getService$
|
3128
|
+
const uidService = getService$2("uid");
|
2914
3129
|
const isAvailable = await uidService.checkUIDAvailability({
|
2915
3130
|
contentTypeUID,
|
2916
3131
|
field,
|
@@ -2931,7 +3146,8 @@ const controllers = {
|
|
2931
3146
|
relations,
|
2932
3147
|
"single-types": singleTypes,
|
2933
3148
|
uid: uid$1,
|
2934
|
-
...history.controllers ? history.controllers : {}
|
3149
|
+
...history.controllers ? history.controllers : {},
|
3150
|
+
...preview.controllers ? preview.controllers : {}
|
2935
3151
|
};
|
2936
3152
|
const keys = {
|
2937
3153
|
CONFIGURATION: "configuration"
|
@@ -3082,12 +3298,12 @@ async function syncMetadatas(configuration, schema) {
|
|
3082
3298
|
return ___default.default.assign(metasWithDefaults, updatedMetas);
|
3083
3299
|
}
|
3084
3300
|
const getTargetSchema = (targetModel) => {
|
3085
|
-
return getService$
|
3301
|
+
return getService$2("content-types").findContentType(targetModel);
|
3086
3302
|
};
|
3087
3303
|
const DEFAULT_LIST_LENGTH = 4;
|
3088
3304
|
const MAX_ROW_SIZE = 12;
|
3089
3305
|
const isAllowedFieldSize = (type, size) => {
|
3090
|
-
const { getFieldSize } = getService$
|
3306
|
+
const { getFieldSize } = getService$2("field-sizes");
|
3091
3307
|
const fieldSize = getFieldSize(type);
|
3092
3308
|
if (!fieldSize.isResizable && size !== fieldSize.default) {
|
3093
3309
|
return false;
|
@@ -3095,7 +3311,7 @@ const isAllowedFieldSize = (type, size) => {
|
|
3095
3311
|
return size <= MAX_ROW_SIZE;
|
3096
3312
|
};
|
3097
3313
|
const getDefaultFieldSize = (attribute) => {
|
3098
|
-
const { hasFieldSize, getFieldSize } = getService$
|
3314
|
+
const { hasFieldSize, getFieldSize } = getService$2("field-sizes");
|
3099
3315
|
return getFieldSize(hasFieldSize(attribute.customField) ? attribute.customField : attribute.type).default;
|
3100
3316
|
};
|
3101
3317
|
async function createDefaultLayouts(schema) {
|
@@ -3130,7 +3346,7 @@ function syncLayouts(configuration, schema) {
|
|
3130
3346
|
for (const el of row) {
|
3131
3347
|
if (!hasEditableAttribute(schema, el.name))
|
3132
3348
|
continue;
|
3133
|
-
const { hasFieldSize } = getService$
|
3349
|
+
const { hasFieldSize } = getService$2("field-sizes");
|
3134
3350
|
const fieldType = hasFieldSize(schema.attributes[el.name].customField) ? schema.attributes[el.name].customField : schema.attributes[el.name].type;
|
3135
3351
|
if (!isAllowedFieldSize(fieldType, el.size)) {
|
3136
3352
|
elementsToReAppend.push(el.name);
|
@@ -3270,17 +3486,17 @@ const configurationService$1 = createConfigurationService({
|
|
3270
3486
|
isComponent: true,
|
3271
3487
|
prefix: STORE_KEY_PREFIX,
|
3272
3488
|
getModels() {
|
3273
|
-
const { toContentManagerModel } = getService$
|
3489
|
+
const { toContentManagerModel } = getService$2("data-mapper");
|
3274
3490
|
return fp.mapValues(toContentManagerModel, strapi.components);
|
3275
3491
|
}
|
3276
3492
|
});
|
3277
3493
|
const components = ({ strapi: strapi2 }) => ({
|
3278
3494
|
findAllComponents() {
|
3279
|
-
const { toContentManagerModel } = getService$
|
3495
|
+
const { toContentManagerModel } = getService$2("data-mapper");
|
3280
3496
|
return Object.values(strapi2.components).map(toContentManagerModel);
|
3281
3497
|
},
|
3282
3498
|
findComponent(uid2) {
|
3283
|
-
const { toContentManagerModel } = getService$
|
3499
|
+
const { toContentManagerModel } = getService$2("data-mapper");
|
3284
3500
|
const component = strapi2.components[uid2];
|
3285
3501
|
return fp.isNil(component) ? component : toContentManagerModel(component);
|
3286
3502
|
},
|
@@ -3331,17 +3547,17 @@ const configurationService = createConfigurationService({
|
|
3331
3547
|
storeUtils,
|
3332
3548
|
prefix: "content_types",
|
3333
3549
|
getModels() {
|
3334
|
-
const { toContentManagerModel } = getService$
|
3550
|
+
const { toContentManagerModel } = getService$2("data-mapper");
|
3335
3551
|
return fp.mapValues(toContentManagerModel, strapi.contentTypes);
|
3336
3552
|
}
|
3337
3553
|
});
|
3338
3554
|
const service = ({ strapi: strapi2 }) => ({
|
3339
3555
|
findAllContentTypes() {
|
3340
|
-
const { toContentManagerModel } = getService$
|
3556
|
+
const { toContentManagerModel } = getService$2("data-mapper");
|
3341
3557
|
return Object.values(strapi2.contentTypes).map(toContentManagerModel);
|
3342
3558
|
},
|
3343
3559
|
findContentType(uid2) {
|
3344
|
-
const { toContentManagerModel } = getService$
|
3560
|
+
const { toContentManagerModel } = getService$2("data-mapper");
|
3345
3561
|
const contentType = strapi2.contentTypes[uid2];
|
3346
3562
|
return fp.isNil(contentType) ? contentType : toContentManagerModel(contentType);
|
3347
3563
|
},
|
@@ -3370,7 +3586,7 @@ const service = ({ strapi: strapi2 }) => ({
|
|
3370
3586
|
return this.findConfiguration(contentType);
|
3371
3587
|
},
|
3372
3588
|
findComponentsConfigurations(contentType) {
|
3373
|
-
return getService$
|
3589
|
+
return getService$2("components").findComponentsConfigurations(contentType);
|
3374
3590
|
},
|
3375
3591
|
syncConfigurations() {
|
3376
3592
|
return configurationService.syncConfigurations();
|
@@ -3642,7 +3858,7 @@ const permission = ({ strapi: strapi2 }) => ({
|
|
3642
3858
|
return userAbility.can(action);
|
3643
3859
|
},
|
3644
3860
|
async registerPermissions() {
|
3645
|
-
const displayedContentTypes = getService$
|
3861
|
+
const displayedContentTypes = getService$2("content-types").findDisplayedContentTypes();
|
3646
3862
|
const contentTypesUids = displayedContentTypes.map(fp.prop("uid"));
|
3647
3863
|
const actions = [
|
3648
3864
|
{
|
@@ -3918,7 +4134,7 @@ const getQueryPopulate = async (uid2, query) => {
|
|
3918
4134
|
return populateQuery;
|
3919
4135
|
};
|
3920
4136
|
const buildDeepPopulate = (uid2) => {
|
3921
|
-
return getService$
|
4137
|
+
return getService$2("populate-builder")(uid2).populateDeep(Infinity).countRelations().build();
|
3922
4138
|
};
|
3923
4139
|
const populateBuilder = (uid2) => {
|
3924
4140
|
let getInitialPopulate = async () => {
|
@@ -4461,7 +4677,8 @@ const services = {
|
|
4461
4677
|
permission,
|
4462
4678
|
"populate-builder": populateBuilder$1,
|
4463
4679
|
uid,
|
4464
|
-
...history.services ? history.services : {}
|
4680
|
+
...history.services ? history.services : {},
|
4681
|
+
...preview.services ? preview.services : {}
|
4465
4682
|
};
|
4466
4683
|
const index = () => {
|
4467
4684
|
return {
|