@strapi/content-manager 0.0.0-next.959c5589d0d3efa25d7ca014656d9ff48c173399 → 0.0.0-next.ac654f8b8646bf964ebd39d4313c4afab0917a24
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-gsCd80MU.js → ComponentConfigurationPage-CuKGBO3B.js} +3 -3
- package/dist/_chunks/{ComponentConfigurationPage-gsCd80MU.js.map → ComponentConfigurationPage-CuKGBO3B.js.map} +1 -1
- package/dist/_chunks/{ComponentConfigurationPage-CIjXcRAB.mjs → ComponentConfigurationPage-DITz-KUa.mjs} +3 -3
- package/dist/_chunks/{ComponentConfigurationPage-CIjXcRAB.mjs.map → ComponentConfigurationPage-DITz-KUa.mjs.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-DHDQKBzw.js → EditConfigurationPage-aJ6Nk-e2.js} +3 -3
- package/dist/_chunks/{EditConfigurationPage-DHDQKBzw.js.map → EditConfigurationPage-aJ6Nk-e2.js.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-BglmD_BF.mjs → EditConfigurationPage-dpdSMBbB.mjs} +3 -3
- package/dist/_chunks/{EditConfigurationPage-BglmD_BF.mjs.map → EditConfigurationPage-dpdSMBbB.mjs.map} +1 -1
- package/dist/_chunks/{EditViewPage-C4iTxUPU.js → EditViewPage-CUUoPbuf.js} +37 -7
- package/dist/_chunks/EditViewPage-CUUoPbuf.js.map +1 -0
- package/dist/_chunks/{EditViewPage-CiwVPMaK.mjs → EditViewPage-HR-LggHQ.mjs} +38 -8
- package/dist/_chunks/EditViewPage-HR-LggHQ.mjs.map +1 -0
- package/dist/_chunks/{Field-DIjL1b5d.mjs → Field-D8UDC53O.mjs} +43 -24
- package/dist/_chunks/Field-D8UDC53O.mjs.map +1 -0
- package/dist/_chunks/{Field-DhXEK8y1.js → Field-PPOGQJFw.js} +42 -23
- package/dist/_chunks/Field-PPOGQJFw.js.map +1 -0
- package/dist/_chunks/{Form-CmNesrvR.mjs → Form-B63Fj3Fj.mjs} +2 -2
- package/dist/_chunks/{Form-CmNesrvR.mjs.map → Form-B63Fj3Fj.mjs.map} +1 -1
- package/dist/_chunks/{Form-CwmJ4sWe.js → Form-BcGPmYEy.js} +2 -2
- package/dist/_chunks/{Form-CwmJ4sWe.js.map → Form-BcGPmYEy.js.map} +1 -1
- package/dist/_chunks/{History-BLCCNgCt.js → History-2wgFZpc9.js} +20 -90
- package/dist/_chunks/History-2wgFZpc9.js.map +1 -0
- package/dist/_chunks/{History-D-99Wh30.mjs → History-HLNHu2qZ.mjs} +21 -91
- package/dist/_chunks/History-HLNHu2qZ.mjs.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-JPWZz7Kg.mjs → ListConfigurationPage-CdZ3dURz.mjs} +5 -4
- package/dist/_chunks/ListConfigurationPage-CdZ3dURz.mjs.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-DxWpeZrO.js → ListConfigurationPage-DJpH0BQ7.js} +4 -3
- package/dist/_chunks/ListConfigurationPage-DJpH0BQ7.js.map +1 -0
- package/dist/_chunks/{ListViewPage-CIQekSFz.js → ListViewPage-BSlwetiz.js} +62 -39
- package/dist/_chunks/ListViewPage-BSlwetiz.js.map +1 -0
- package/dist/_chunks/{ListViewPage-DSK3f0ST.mjs → ListViewPage-DmNN9hbm.mjs} +62 -39
- package/dist/_chunks/ListViewPage-DmNN9hbm.mjs.map +1 -0
- package/dist/_chunks/{NoContentTypePage-D99LU1YP.mjs → NoContentTypePage-Bn5ihosL.mjs} +2 -2
- package/dist/_chunks/{NoContentTypePage-D99LU1YP.mjs.map → NoContentTypePage-Bn5ihosL.mjs.map} +1 -1
- package/dist/_chunks/{NoContentTypePage-C5cxKvC2.js → NoContentTypePage-T65BK8ML.js} +2 -2
- package/dist/_chunks/{NoContentTypePage-C5cxKvC2.js.map → NoContentTypePage-T65BK8ML.js.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-DBrBw-0y.mjs → NoPermissionsPage-DaUbhwgn.mjs} +2 -2
- package/dist/_chunks/{NoPermissionsPage-DBrBw-0y.mjs.map → NoPermissionsPage-DaUbhwgn.mjs.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-Oy4tmUrW.js → NoPermissionsPage-DzKfa6Jp.js} +2 -2
- package/dist/_chunks/{NoPermissionsPage-Oy4tmUrW.js.map → NoPermissionsPage-DzKfa6Jp.js.map} +1 -1
- package/dist/_chunks/Preview-DfMsSYsj.js +286 -0
- package/dist/_chunks/Preview-DfMsSYsj.js.map +1 -0
- package/dist/_chunks/Preview-KmWscqhk.mjs +267 -0
- package/dist/_chunks/Preview-KmWscqhk.mjs.map +1 -0
- package/dist/_chunks/{Relations-BBmhcWFV.mjs → Relations-7f9zi6m0.mjs} +6 -3
- package/dist/_chunks/Relations-7f9zi6m0.mjs.map +1 -0
- package/dist/_chunks/{Relations-eG-9p_qS.js → Relations-DvizPJ_G.js} +6 -3
- package/dist/_chunks/Relations-DvizPJ_G.js.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-BIWDoFLK.js → index-Bi9g8evM.js} +147 -74
- package/dist/_chunks/index-Bi9g8evM.js.map +1 -0
- package/dist/_chunks/{index-BrUzbQ30.mjs → index-Dh8PRBs6.mjs} +151 -78
- package/dist/_chunks/index-Dh8PRBs6.mjs.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-lMc9i1-Z.js → layout-B5gVWKG8.js} +3 -3
- package/dist/_chunks/{layout-lMc9i1-Z.js.map → layout-B5gVWKG8.js.map} +1 -1
- package/dist/_chunks/{layout-_5-cXs34.mjs → layout-BUFUpPWR.mjs} +3 -3
- package/dist/_chunks/{layout-_5-cXs34.mjs.map → layout-BUFUpPWR.mjs.map} +1 -1
- package/dist/_chunks/{relations-BRHithi8.js → relations-BUm40kVE.js} +6 -3
- package/dist/_chunks/relations-BUm40kVE.js.map +1 -0
- package/dist/_chunks/{relations-B_VLk-DD.mjs → relations-CDnV9k0m.mjs} +6 -3
- package/dist/_chunks/relations-CDnV9k0m.mjs.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/index.d.ts +1 -1
- 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 +344 -136
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +345 -137
- package/dist/server/index.mjs.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/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.map +1 -1
- 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-C4iTxUPU.js.map +0 -1
- package/dist/_chunks/EditViewPage-CiwVPMaK.mjs.map +0 -1
- package/dist/_chunks/Field-DIjL1b5d.mjs.map +0 -1
- package/dist/_chunks/Field-DhXEK8y1.js.map +0 -1
- package/dist/_chunks/History-BLCCNgCt.js.map +0 -1
- package/dist/_chunks/History-D-99Wh30.mjs.map +0 -1
- package/dist/_chunks/ListConfigurationPage-DxWpeZrO.js.map +0 -1
- package/dist/_chunks/ListConfigurationPage-JPWZz7Kg.mjs.map +0 -1
- package/dist/_chunks/ListViewPage-CIQekSFz.js.map +0 -1
- package/dist/_chunks/ListViewPage-DSK3f0ST.mjs.map +0 -1
- package/dist/_chunks/Relations-BBmhcWFV.mjs.map +0 -1
- package/dist/_chunks/Relations-eG-9p_qS.js.map +0 -1
- package/dist/_chunks/index-BIWDoFLK.js.map +0 -1
- package/dist/_chunks/index-BrUzbQ30.mjs.map +0 -1
- package/dist/_chunks/relations-BRHithi8.js.map +0 -1
- package/dist/_chunks/relations-B_VLk-DD.mjs.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 = {
|
@@ -676,14 +697,14 @@ const getFeature$1 = () => {
|
|
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 {
|
@@ -693,33 +714,217 @@ const getFeature$1 = () => {
|
|
693
714
|
};
|
694
715
|
};
|
695
716
|
const history = getFeature$1();
|
696
|
-
const
|
697
|
-
|
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
|
+
]
|
698
732
|
};
|
699
|
-
const
|
700
|
-
|
701
|
-
|
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
|
+
if (!newParams.status) {
|
764
|
+
const isDPEnabled = model?.options?.draftAndPublish;
|
765
|
+
newParams.status = isDPEnabled ? "draft" : "published";
|
766
|
+
}
|
767
|
+
return newParams;
|
768
|
+
};
|
769
|
+
const createPreviewController = () => {
|
770
|
+
return {
|
771
|
+
/**
|
772
|
+
* Transforms an entry into a preview URL, so that it can be previewed
|
773
|
+
* in the Content Manager.
|
774
|
+
*/
|
775
|
+
async getPreviewUrl(ctx) {
|
776
|
+
const uid2 = ctx.params.contentType;
|
777
|
+
const query = ctx.request.query;
|
778
|
+
const params = await validatePreviewUrl(strapi, uid2, query);
|
779
|
+
const previewService = getService(strapi, "preview");
|
780
|
+
const url = await previewService.getPreviewUrl(uid2, params);
|
781
|
+
if (!url) {
|
782
|
+
ctx.status = 204;
|
783
|
+
}
|
784
|
+
return {
|
785
|
+
data: { url }
|
786
|
+
};
|
787
|
+
}
|
788
|
+
};
|
789
|
+
};
|
790
|
+
const controllers$1 = {
|
791
|
+
preview: createPreviewController
|
792
|
+
/**
|
793
|
+
* Casting is needed because the types aren't aware that Strapi supports
|
794
|
+
* passing a controller factory as the value, instead of a controller object directly
|
795
|
+
*/
|
796
|
+
};
|
797
|
+
const createPreviewService = ({ strapi: strapi2 }) => {
|
798
|
+
const config = getService(strapi2, "preview-config");
|
799
|
+
return {
|
800
|
+
async getPreviewUrl(uid2, params) {
|
801
|
+
const handler = config.getPreviewHandler();
|
802
|
+
try {
|
803
|
+
return handler(uid2, params);
|
804
|
+
} catch (error) {
|
805
|
+
strapi2.log.error(`Failed to get preview URL: ${error}`);
|
806
|
+
throw new errors.ApplicationError("Failed to get preview URL");
|
807
|
+
}
|
808
|
+
return;
|
809
|
+
}
|
810
|
+
};
|
811
|
+
};
|
812
|
+
const extendMiddlewareConfiguration = (middleware = { name: "", config: {} }) => {
|
813
|
+
const middlewares = strapi.config.get("middlewares");
|
814
|
+
const configuredMiddlewares = middlewares.map((currentMiddleware) => {
|
815
|
+
if (currentMiddleware === middleware.name) {
|
816
|
+
return middleware;
|
817
|
+
}
|
818
|
+
if (currentMiddleware.name === middleware.name) {
|
819
|
+
return mergeWith(
|
820
|
+
(objValue, srcValue) => {
|
821
|
+
if (Array.isArray(objValue)) {
|
822
|
+
return objValue.concat(srcValue);
|
823
|
+
}
|
824
|
+
return void 0;
|
825
|
+
},
|
826
|
+
currentMiddleware,
|
827
|
+
middleware
|
828
|
+
);
|
829
|
+
}
|
830
|
+
return currentMiddleware;
|
831
|
+
});
|
832
|
+
strapi.config.set("middlewares", configuredMiddlewares);
|
833
|
+
};
|
834
|
+
const createPreviewConfigService = ({ strapi: strapi2 }) => {
|
835
|
+
return {
|
836
|
+
register() {
|
837
|
+
if (!this.isEnabled()) {
|
838
|
+
return;
|
839
|
+
}
|
840
|
+
const config = strapi2.config.get("admin.preview");
|
841
|
+
if (config.config?.allowedOrigins) {
|
842
|
+
extendMiddlewareConfiguration({
|
843
|
+
name: "strapi::security",
|
844
|
+
config: {
|
845
|
+
contentSecurityPolicy: {
|
846
|
+
directives: {
|
847
|
+
"frame-src": config.config.allowedOrigins
|
848
|
+
}
|
849
|
+
}
|
850
|
+
}
|
851
|
+
});
|
852
|
+
}
|
853
|
+
},
|
854
|
+
isEnabled() {
|
855
|
+
const config = strapi2.config.get("admin.preview");
|
856
|
+
if (!config) {
|
857
|
+
return false;
|
858
|
+
}
|
859
|
+
return config?.enabled ?? true;
|
860
|
+
},
|
861
|
+
/**
|
862
|
+
* Validate if the configuration is valid
|
863
|
+
*/
|
864
|
+
validate() {
|
865
|
+
if (!this.isEnabled()) {
|
866
|
+
return;
|
867
|
+
}
|
868
|
+
const handler = this.getPreviewHandler();
|
869
|
+
if (typeof handler !== "function") {
|
870
|
+
throw new errors.ValidationError(
|
871
|
+
"Preview configuration is invalid. Handler must be a function"
|
872
|
+
);
|
873
|
+
}
|
874
|
+
},
|
875
|
+
/**
|
876
|
+
* Utility to get the preview handler from the configuration
|
877
|
+
*/
|
878
|
+
getPreviewHandler() {
|
879
|
+
const config = strapi2.config.get("admin.preview");
|
880
|
+
const emptyHandler = () => {
|
881
|
+
return void 0;
|
882
|
+
};
|
883
|
+
if (!this.isEnabled()) {
|
884
|
+
return emptyHandler;
|
885
|
+
}
|
886
|
+
return config?.config?.handler || emptyHandler;
|
887
|
+
}
|
888
|
+
};
|
889
|
+
};
|
890
|
+
const services$1 = {
|
891
|
+
preview: createPreviewService,
|
892
|
+
"preview-config": createPreviewConfigService
|
702
893
|
};
|
703
|
-
const FEATURE_ID = "preview";
|
704
894
|
const getFeature = () => {
|
705
895
|
if (!strapi.features.future.isEnabled(FEATURE_ID)) {
|
706
896
|
return {};
|
707
897
|
}
|
708
898
|
return {
|
899
|
+
register() {
|
900
|
+
const config = getService(strapi, "preview-config");
|
901
|
+
config.validate();
|
902
|
+
config.register();
|
903
|
+
},
|
709
904
|
bootstrap() {
|
710
|
-
|
711
|
-
|
905
|
+
},
|
906
|
+
routes: routes$1,
|
907
|
+
controllers: controllers$1,
|
908
|
+
services: services$1
|
712
909
|
};
|
713
910
|
};
|
714
911
|
const preview = getFeature();
|
912
|
+
const register = async ({ strapi: strapi2 }) => {
|
913
|
+
await history.register?.({ strapi: strapi2 });
|
914
|
+
await preview.register?.({ strapi: strapi2 });
|
915
|
+
};
|
916
|
+
const ALLOWED_WEBHOOK_EVENTS = {
|
917
|
+
ENTRY_PUBLISH: "entry.publish",
|
918
|
+
ENTRY_UNPUBLISH: "entry.unpublish"
|
919
|
+
};
|
715
920
|
const bootstrap = async () => {
|
716
921
|
Object.entries(ALLOWED_WEBHOOK_EVENTS).forEach(([key, value]) => {
|
717
922
|
strapi.get("webhookStore").addAllowedEvent(key, value);
|
718
923
|
});
|
719
|
-
getService$
|
720
|
-
await getService$
|
721
|
-
await getService$
|
722
|
-
await getService$
|
924
|
+
getService$2("field-sizes").setCustomFieldInputSizes();
|
925
|
+
await getService$2("components").syncConfigurations();
|
926
|
+
await getService$2("content-types").syncConfigurations();
|
927
|
+
await getService$2("permission").registerPermissions();
|
723
928
|
await history.bootstrap?.({ strapi });
|
724
929
|
await preview.bootstrap?.({ strapi });
|
725
930
|
};
|
@@ -1211,7 +1416,8 @@ const admin = {
|
|
1211
1416
|
};
|
1212
1417
|
const routes = {
|
1213
1418
|
admin,
|
1214
|
-
...history.routes ? history.routes : {}
|
1419
|
+
...history.routes ? history.routes : {},
|
1420
|
+
...preview.routes ? preview.routes : {}
|
1215
1421
|
};
|
1216
1422
|
const hasPermissionsSchema = yup$1.object({
|
1217
1423
|
actions: yup$1.array().of(yup$1.string()),
|
@@ -1468,7 +1674,7 @@ const createMetadasSchema = (schema) => {
|
|
1468
1674
|
if (!value) {
|
1469
1675
|
return yup$1.string();
|
1470
1676
|
}
|
1471
|
-
const targetSchema = getService$
|
1677
|
+
const targetSchema = getService$2("content-types").findContentType(
|
1472
1678
|
schema.attributes[key].targetModel
|
1473
1679
|
);
|
1474
1680
|
if (!targetSchema) {
|
@@ -1637,7 +1843,7 @@ const getDocumentLocaleAndStatus = async (request, model, opts = { allowMultiple
|
|
1637
1843
|
}
|
1638
1844
|
};
|
1639
1845
|
const formatDocumentWithMetadata = async (permissionChecker2, uid2, document, opts = {}) => {
|
1640
|
-
const documentMetadata2 = getService$
|
1846
|
+
const documentMetadata2 = getService$2("document-metadata");
|
1641
1847
|
const serviceOutput = await documentMetadata2.formatDocumentWithMetadata(uid2, document, opts);
|
1642
1848
|
let {
|
1643
1849
|
meta: { availableLocales, availableStatus }
|
@@ -1663,8 +1869,8 @@ const createDocument = async (ctx, opts) => {
|
|
1663
1869
|
const { userAbility, user } = ctx.state;
|
1664
1870
|
const { model } = ctx.params;
|
1665
1871
|
const { body } = ctx.request;
|
1666
|
-
const documentManager2 = getService$
|
1667
|
-
const permissionChecker2 = getService$
|
1872
|
+
const documentManager2 = getService$2("document-manager");
|
1873
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
1668
1874
|
if (permissionChecker2.cannot.create()) {
|
1669
1875
|
throw new errors.ForbiddenError();
|
1670
1876
|
}
|
@@ -1684,13 +1890,13 @@ const updateDocument = async (ctx, opts) => {
|
|
1684
1890
|
const { userAbility, user } = ctx.state;
|
1685
1891
|
const { id, model } = ctx.params;
|
1686
1892
|
const { body } = ctx.request;
|
1687
|
-
const documentManager2 = getService$
|
1688
|
-
const permissionChecker2 = getService$
|
1893
|
+
const documentManager2 = getService$2("document-manager");
|
1894
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
1689
1895
|
if (permissionChecker2.cannot.update()) {
|
1690
1896
|
throw new errors.ForbiddenError();
|
1691
1897
|
}
|
1692
1898
|
const permissionQuery = await permissionChecker2.sanitizedQuery.update(ctx.query);
|
1693
|
-
const populate = await getService$
|
1899
|
+
const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
|
1694
1900
|
const { locale } = await getDocumentLocaleAndStatus(body, model);
|
1695
1901
|
const [documentVersion, documentExists] = await Promise.all([
|
1696
1902
|
documentManager2.findOne(id, model, { populate, locale, status: "draft" }),
|
@@ -1721,14 +1927,14 @@ const collectionTypes = {
|
|
1721
1927
|
const { userAbility } = ctx.state;
|
1722
1928
|
const { model } = ctx.params;
|
1723
1929
|
const { query } = ctx.request;
|
1724
|
-
const documentMetadata2 = getService$
|
1725
|
-
const documentManager2 = getService$
|
1726
|
-
const permissionChecker2 = getService$
|
1930
|
+
const documentMetadata2 = getService$2("document-metadata");
|
1931
|
+
const documentManager2 = getService$2("document-manager");
|
1932
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
1727
1933
|
if (permissionChecker2.cannot.read()) {
|
1728
1934
|
return ctx.forbidden();
|
1729
1935
|
}
|
1730
1936
|
const permissionQuery = await permissionChecker2.sanitizedQuery.read(query);
|
1731
|
-
const populate = await getService$
|
1937
|
+
const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(1).countRelations({ toOne: false, toMany: true }).build();
|
1732
1938
|
const { locale, status } = await getDocumentLocaleAndStatus(query, model);
|
1733
1939
|
const { results: documents, pagination: pagination2 } = await documentManager2.findPage(
|
1734
1940
|
{ ...permissionQuery, populate, locale, status },
|
@@ -1757,13 +1963,13 @@ const collectionTypes = {
|
|
1757
1963
|
async findOne(ctx) {
|
1758
1964
|
const { userAbility } = ctx.state;
|
1759
1965
|
const { model, id } = ctx.params;
|
1760
|
-
const documentManager2 = getService$
|
1761
|
-
const permissionChecker2 = getService$
|
1966
|
+
const documentManager2 = getService$2("document-manager");
|
1967
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
1762
1968
|
if (permissionChecker2.cannot.read()) {
|
1763
1969
|
return ctx.forbidden();
|
1764
1970
|
}
|
1765
1971
|
const permissionQuery = await permissionChecker2.sanitizedQuery.read(ctx.query);
|
1766
|
-
const populate = await getService$
|
1972
|
+
const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(Infinity).countRelations().build();
|
1767
1973
|
const { locale, status } = await getDocumentLocaleAndStatus(ctx.query, model);
|
1768
1974
|
const version = await documentManager2.findOne(id, model, {
|
1769
1975
|
populate,
|
@@ -1794,7 +2000,7 @@ const collectionTypes = {
|
|
1794
2000
|
async create(ctx) {
|
1795
2001
|
const { userAbility } = ctx.state;
|
1796
2002
|
const { model } = ctx.params;
|
1797
|
-
const permissionChecker2 = getService$
|
2003
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
1798
2004
|
const [totalEntries, document] = await Promise.all([
|
1799
2005
|
strapi.db.query(model).count(),
|
1800
2006
|
createDocument(ctx)
|
@@ -1815,7 +2021,7 @@ const collectionTypes = {
|
|
1815
2021
|
async update(ctx) {
|
1816
2022
|
const { userAbility } = ctx.state;
|
1817
2023
|
const { model } = ctx.params;
|
1818
|
-
const permissionChecker2 = getService$
|
2024
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
1819
2025
|
const updatedVersion = await updateDocument(ctx);
|
1820
2026
|
const sanitizedVersion = await permissionChecker2.sanitizeOutput(updatedVersion);
|
1821
2027
|
ctx.body = await formatDocumentWithMetadata(permissionChecker2, model, sanitizedVersion);
|
@@ -1824,13 +2030,13 @@ const collectionTypes = {
|
|
1824
2030
|
const { userAbility, user } = ctx.state;
|
1825
2031
|
const { model, sourceId: id } = ctx.params;
|
1826
2032
|
const { body } = ctx.request;
|
1827
|
-
const documentManager2 = getService$
|
1828
|
-
const permissionChecker2 = getService$
|
2033
|
+
const documentManager2 = getService$2("document-manager");
|
2034
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
1829
2035
|
if (permissionChecker2.cannot.create()) {
|
1830
2036
|
return ctx.forbidden();
|
1831
2037
|
}
|
1832
2038
|
const permissionQuery = await permissionChecker2.sanitizedQuery.create(ctx.query);
|
1833
|
-
const populate = await getService$
|
2039
|
+
const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
|
1834
2040
|
const { locale } = await getDocumentLocaleAndStatus(body, model);
|
1835
2041
|
const document = await documentManager2.findOne(id, model, {
|
1836
2042
|
populate,
|
@@ -1869,13 +2075,13 @@ const collectionTypes = {
|
|
1869
2075
|
async delete(ctx) {
|
1870
2076
|
const { userAbility } = ctx.state;
|
1871
2077
|
const { id, model } = ctx.params;
|
1872
|
-
const documentManager2 = getService$
|
1873
|
-
const permissionChecker2 = getService$
|
2078
|
+
const documentManager2 = getService$2("document-manager");
|
2079
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
1874
2080
|
if (permissionChecker2.cannot.delete()) {
|
1875
2081
|
return ctx.forbidden();
|
1876
2082
|
}
|
1877
2083
|
const permissionQuery = await permissionChecker2.sanitizedQuery.delete(ctx.query);
|
1878
|
-
const populate = await getService$
|
2084
|
+
const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
|
1879
2085
|
const { locale } = await getDocumentLocaleAndStatus(ctx.query, model);
|
1880
2086
|
const documentLocales = await documentManager2.findLocales(id, model, { populate, locale });
|
1881
2087
|
if (documentLocales.length === 0) {
|
@@ -1897,14 +2103,14 @@ const collectionTypes = {
|
|
1897
2103
|
const { userAbility } = ctx.state;
|
1898
2104
|
const { id, model } = ctx.params;
|
1899
2105
|
const { body } = ctx.request;
|
1900
|
-
const documentManager2 = getService$
|
1901
|
-
const permissionChecker2 = getService$
|
2106
|
+
const documentManager2 = getService$2("document-manager");
|
2107
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
1902
2108
|
if (permissionChecker2.cannot.publish()) {
|
1903
2109
|
return ctx.forbidden();
|
1904
2110
|
}
|
1905
2111
|
const publishedDocument = await strapi.db.transaction(async () => {
|
1906
2112
|
const permissionQuery = await permissionChecker2.sanitizedQuery.publish(ctx.query);
|
1907
|
-
const populate = await getService$
|
2113
|
+
const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(Infinity).countRelations().build();
|
1908
2114
|
let document;
|
1909
2115
|
const { locale } = await getDocumentLocaleAndStatus(body, model);
|
1910
2116
|
const isCreate = isNil$1(id);
|
@@ -1952,13 +2158,13 @@ const collectionTypes = {
|
|
1952
2158
|
const { body } = ctx.request;
|
1953
2159
|
const { documentIds } = body;
|
1954
2160
|
await validateBulkActionInput(body);
|
1955
|
-
const documentManager2 = getService$
|
1956
|
-
const permissionChecker2 = getService$
|
2161
|
+
const documentManager2 = getService$2("document-manager");
|
2162
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
1957
2163
|
if (permissionChecker2.cannot.publish()) {
|
1958
2164
|
return ctx.forbidden();
|
1959
2165
|
}
|
1960
2166
|
const permissionQuery = await permissionChecker2.sanitizedQuery.publish(ctx.query);
|
1961
|
-
const populate = await getService$
|
2167
|
+
const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(Infinity).countRelations().build();
|
1962
2168
|
const { locale } = await getDocumentLocaleAndStatus(body, model, {
|
1963
2169
|
allowMultipleLocales: true
|
1964
2170
|
});
|
@@ -1983,8 +2189,8 @@ const collectionTypes = {
|
|
1983
2189
|
const { body } = ctx.request;
|
1984
2190
|
const { documentIds } = body;
|
1985
2191
|
await validateBulkActionInput(body);
|
1986
|
-
const documentManager2 = getService$
|
1987
|
-
const permissionChecker2 = getService$
|
2192
|
+
const documentManager2 = getService$2("document-manager");
|
2193
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
1988
2194
|
if (permissionChecker2.cannot.unpublish()) {
|
1989
2195
|
return ctx.forbidden();
|
1990
2196
|
}
|
@@ -2013,8 +2219,8 @@ const collectionTypes = {
|
|
2013
2219
|
const {
|
2014
2220
|
body: { discardDraft, ...body }
|
2015
2221
|
} = ctx.request;
|
2016
|
-
const documentManager2 = getService$
|
2017
|
-
const permissionChecker2 = getService$
|
2222
|
+
const documentManager2 = getService$2("document-manager");
|
2223
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2018
2224
|
if (permissionChecker2.cannot.unpublish()) {
|
2019
2225
|
return ctx.forbidden();
|
2020
2226
|
}
|
@@ -2022,7 +2228,7 @@ const collectionTypes = {
|
|
2022
2228
|
return ctx.forbidden();
|
2023
2229
|
}
|
2024
2230
|
const permissionQuery = await permissionChecker2.sanitizedQuery.unpublish(ctx.query);
|
2025
|
-
const populate = await getService$
|
2231
|
+
const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
|
2026
2232
|
const { locale } = await getDocumentLocaleAndStatus(body, model);
|
2027
2233
|
const document = await documentManager2.findOne(id, model, {
|
2028
2234
|
populate,
|
@@ -2053,13 +2259,13 @@ const collectionTypes = {
|
|
2053
2259
|
const { userAbility } = ctx.state;
|
2054
2260
|
const { id, model } = ctx.params;
|
2055
2261
|
const { body } = ctx.request;
|
2056
|
-
const documentManager2 = getService$
|
2057
|
-
const permissionChecker2 = getService$
|
2262
|
+
const documentManager2 = getService$2("document-manager");
|
2263
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2058
2264
|
if (permissionChecker2.cannot.discard()) {
|
2059
2265
|
return ctx.forbidden();
|
2060
2266
|
}
|
2061
2267
|
const permissionQuery = await permissionChecker2.sanitizedQuery.discard(ctx.query);
|
2062
|
-
const populate = await getService$
|
2268
|
+
const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
|
2063
2269
|
const { locale } = await getDocumentLocaleAndStatus(body, model);
|
2064
2270
|
const document = await documentManager2.findOne(id, model, {
|
2065
2271
|
populate,
|
@@ -2084,13 +2290,13 @@ const collectionTypes = {
|
|
2084
2290
|
const { query, body } = ctx.request;
|
2085
2291
|
const { documentIds } = body;
|
2086
2292
|
await validateBulkActionInput(body);
|
2087
|
-
const documentManager2 = getService$
|
2088
|
-
const permissionChecker2 = getService$
|
2293
|
+
const documentManager2 = getService$2("document-manager");
|
2294
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2089
2295
|
if (permissionChecker2.cannot.delete()) {
|
2090
2296
|
return ctx.forbidden();
|
2091
2297
|
}
|
2092
2298
|
const permissionQuery = await permissionChecker2.sanitizedQuery.delete(query);
|
2093
|
-
const populate = await getService$
|
2299
|
+
const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
|
2094
2300
|
const { locale } = await getDocumentLocaleAndStatus(body, model);
|
2095
2301
|
const documentLocales = await documentManager2.findLocales(documentIds, model, {
|
2096
2302
|
populate,
|
@@ -2111,13 +2317,13 @@ const collectionTypes = {
|
|
2111
2317
|
async countDraftRelations(ctx) {
|
2112
2318
|
const { userAbility } = ctx.state;
|
2113
2319
|
const { model, id } = ctx.params;
|
2114
|
-
const documentManager2 = getService$
|
2115
|
-
const permissionChecker2 = getService$
|
2320
|
+
const documentManager2 = getService$2("document-manager");
|
2321
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2116
2322
|
if (permissionChecker2.cannot.read()) {
|
2117
2323
|
return ctx.forbidden();
|
2118
2324
|
}
|
2119
2325
|
const permissionQuery = await permissionChecker2.sanitizedQuery.read(ctx.query);
|
2120
|
-
const populate = await getService$
|
2326
|
+
const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
|
2121
2327
|
const { locale, status } = await getDocumentLocaleAndStatus(ctx.query, model);
|
2122
2328
|
const entity = await documentManager2.findOne(id, model, { populate, locale, status });
|
2123
2329
|
if (!entity) {
|
@@ -2136,8 +2342,8 @@ const collectionTypes = {
|
|
2136
2342
|
const ids = ctx.request.query.documentIds;
|
2137
2343
|
const locale = ctx.request.query.locale;
|
2138
2344
|
const { model } = ctx.params;
|
2139
|
-
const documentManager2 = getService$
|
2140
|
-
const permissionChecker2 = getService$
|
2345
|
+
const documentManager2 = getService$2("document-manager");
|
2346
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2141
2347
|
if (permissionChecker2.cannot.read()) {
|
2142
2348
|
return ctx.forbidden();
|
2143
2349
|
}
|
@@ -2161,13 +2367,13 @@ const collectionTypes = {
|
|
2161
2367
|
};
|
2162
2368
|
const components$1 = {
|
2163
2369
|
findComponents(ctx) {
|
2164
|
-
const components2 = getService$
|
2165
|
-
const { toDto } = getService$
|
2370
|
+
const components2 = getService$2("components").findAllComponents();
|
2371
|
+
const { toDto } = getService$2("data-mapper");
|
2166
2372
|
ctx.body = { data: components2.map(toDto) };
|
2167
2373
|
},
|
2168
2374
|
async findComponentConfiguration(ctx) {
|
2169
2375
|
const { uid: uid2 } = ctx.params;
|
2170
|
-
const componentService = getService$
|
2376
|
+
const componentService = getService$2("components");
|
2171
2377
|
const component = componentService.findComponent(uid2);
|
2172
2378
|
if (!component) {
|
2173
2379
|
return ctx.notFound("component.notFound");
|
@@ -2184,7 +2390,7 @@ const components$1 = {
|
|
2184
2390
|
async updateComponentConfiguration(ctx) {
|
2185
2391
|
const { uid: uid2 } = ctx.params;
|
2186
2392
|
const { body } = ctx.request;
|
2187
|
-
const componentService = getService$
|
2393
|
+
const componentService = getService$2("components");
|
2188
2394
|
const component = componentService.findComponent(uid2);
|
2189
2395
|
if (!component) {
|
2190
2396
|
return ctx.notFound("component.notFound");
|
@@ -2218,12 +2424,12 @@ const contentTypes = {
|
|
2218
2424
|
} catch (error) {
|
2219
2425
|
return ctx.send({ error }, 400);
|
2220
2426
|
}
|
2221
|
-
const contentTypes2 = getService$
|
2222
|
-
const { toDto } = getService$
|
2427
|
+
const contentTypes2 = getService$2("content-types").findContentTypesByKind(kind);
|
2428
|
+
const { toDto } = getService$2("data-mapper");
|
2223
2429
|
ctx.body = { data: contentTypes2.map(toDto) };
|
2224
2430
|
},
|
2225
2431
|
async findContentTypesSettings(ctx) {
|
2226
|
-
const { findAllContentTypes, findConfiguration } = getService$
|
2432
|
+
const { findAllContentTypes, findConfiguration } = getService$2("content-types");
|
2227
2433
|
const contentTypes2 = await findAllContentTypes();
|
2228
2434
|
const configurations = await Promise.all(
|
2229
2435
|
contentTypes2.map(async (contentType) => {
|
@@ -2237,7 +2443,7 @@ const contentTypes = {
|
|
2237
2443
|
},
|
2238
2444
|
async findContentTypeConfiguration(ctx) {
|
2239
2445
|
const { uid: uid2 } = ctx.params;
|
2240
|
-
const contentTypeService = getService$
|
2446
|
+
const contentTypeService = getService$2("content-types");
|
2241
2447
|
const contentType = await contentTypeService.findContentType(uid2);
|
2242
2448
|
if (!contentType) {
|
2243
2449
|
return ctx.notFound("contentType.notFound");
|
@@ -2259,13 +2465,13 @@ const contentTypes = {
|
|
2259
2465
|
const { userAbility } = ctx.state;
|
2260
2466
|
const { uid: uid2 } = ctx.params;
|
2261
2467
|
const { body } = ctx.request;
|
2262
|
-
const contentTypeService = getService$
|
2263
|
-
const metricsService = getService$
|
2468
|
+
const contentTypeService = getService$2("content-types");
|
2469
|
+
const metricsService = getService$2("metrics");
|
2264
2470
|
const contentType = await contentTypeService.findContentType(uid2);
|
2265
2471
|
if (!contentType) {
|
2266
2472
|
return ctx.notFound("contentType.notFound");
|
2267
2473
|
}
|
2268
|
-
if (!getService$
|
2474
|
+
if (!getService$2("permission").canConfigureContentType({ userAbility, contentType })) {
|
2269
2475
|
return ctx.forbidden();
|
2270
2476
|
}
|
2271
2477
|
let input;
|
@@ -2298,10 +2504,10 @@ const contentTypes = {
|
|
2298
2504
|
};
|
2299
2505
|
const init = {
|
2300
2506
|
getInitData(ctx) {
|
2301
|
-
const { toDto } = getService$
|
2302
|
-
const { findAllComponents } = getService$
|
2303
|
-
const { getAllFieldSizes } = getService$
|
2304
|
-
const { findAllContentTypes } = getService$
|
2507
|
+
const { toDto } = getService$2("data-mapper");
|
2508
|
+
const { findAllComponents } = getService$2("components");
|
2509
|
+
const { getAllFieldSizes } = getService$2("field-sizes");
|
2510
|
+
const { findAllContentTypes } = getService$2("content-types");
|
2305
2511
|
ctx.body = {
|
2306
2512
|
data: {
|
2307
2513
|
fieldSizes: getAllFieldSizes(),
|
@@ -2337,7 +2543,7 @@ const addFiltersClause = (params, filtersClause) => {
|
|
2337
2543
|
params.filters.$and.push(filtersClause);
|
2338
2544
|
};
|
2339
2545
|
const sanitizeMainField = (model, mainField, userAbility) => {
|
2340
|
-
const permissionChecker2 = getService$
|
2546
|
+
const permissionChecker2 = getService$2("permission-checker").create({
|
2341
2547
|
userAbility,
|
2342
2548
|
model: model.uid
|
2343
2549
|
});
|
@@ -2355,7 +2561,7 @@ const addStatusToRelations = async (targetUid, relations2) => {
|
|
2355
2561
|
if (!contentTypes$1.hasDraftAndPublish(strapi.getModel(targetUid))) {
|
2356
2562
|
return relations2;
|
2357
2563
|
}
|
2358
|
-
const documentMetadata2 = getService$
|
2564
|
+
const documentMetadata2 = getService$2("document-metadata");
|
2359
2565
|
if (!relations2.length) {
|
2360
2566
|
return relations2;
|
2361
2567
|
}
|
@@ -2433,7 +2639,7 @@ const relations = {
|
|
2433
2639
|
ctx.request?.query?.locale
|
2434
2640
|
);
|
2435
2641
|
const { status } = validateStatus(sourceUid, ctx.request?.query?.status);
|
2436
|
-
const permissionChecker2 = getService$
|
2642
|
+
const permissionChecker2 = getService$2("permission-checker").create({
|
2437
2643
|
userAbility,
|
2438
2644
|
model
|
2439
2645
|
});
|
@@ -2458,7 +2664,7 @@ const relations = {
|
|
2458
2664
|
where.id = id;
|
2459
2665
|
}
|
2460
2666
|
const permissionQuery = await permissionChecker2.sanitizedQuery.read(ctx.query);
|
2461
|
-
const populate = await getService$
|
2667
|
+
const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
|
2462
2668
|
const currentEntity = await strapi.db.query(model).findOne({
|
2463
2669
|
where,
|
2464
2670
|
populate
|
@@ -2473,7 +2679,7 @@ const relations = {
|
|
2473
2679
|
}
|
2474
2680
|
entryId = currentEntity.id;
|
2475
2681
|
}
|
2476
|
-
const modelConfig = isComponent2 ? await getService$
|
2682
|
+
const modelConfig = isComponent2 ? await getService$2("components").findConfiguration(sourceSchema) : await getService$2("content-types").findConfiguration(sourceSchema);
|
2477
2683
|
const targetSchema = strapi.getModel(targetUid);
|
2478
2684
|
const mainField = flow(
|
2479
2685
|
prop(`metadatas.${targetField}.edit.mainField`),
|
@@ -2527,7 +2733,7 @@ const relations = {
|
|
2527
2733
|
}
|
2528
2734
|
} = await this.extractAndValidateRequestInfo(ctx, id);
|
2529
2735
|
const { idsToOmit, idsToInclude, _q, ...query } = ctx.request.query;
|
2530
|
-
const permissionChecker2 = getService$
|
2736
|
+
const permissionChecker2 = getService$2("permission-checker").create({
|
2531
2737
|
userAbility: ctx.state.userAbility,
|
2532
2738
|
model: targetUid
|
2533
2739
|
});
|
@@ -2606,7 +2812,7 @@ const relations = {
|
|
2606
2812
|
} = await this.extractAndValidateRequestInfo(ctx, id);
|
2607
2813
|
const { uid: sourceUid } = sourceSchema;
|
2608
2814
|
const { uid: targetUid } = targetSchema;
|
2609
|
-
const permissionQuery = await getService$
|
2815
|
+
const permissionQuery = await getService$2("permission-checker").create({ userAbility, model: targetUid }).sanitizedQuery.read({ fields: fieldsToSelect });
|
2610
2816
|
const dbQuery = strapi.db.query(sourceUid);
|
2611
2817
|
const loadRelations = relations$1.isAnyToMany(attribute) ? (...args) => dbQuery.loadPages(...args) : (...args) => dbQuery.load(...args).then((res2) => ({ results: res2 ? [res2] : [] }));
|
2612
2818
|
const filters = {};
|
@@ -2647,10 +2853,10 @@ const relations = {
|
|
2647
2853
|
}
|
2648
2854
|
};
|
2649
2855
|
const buildPopulateFromQuery = async (query, model) => {
|
2650
|
-
return getService$
|
2856
|
+
return getService$2("populate-builder")(model).populateFromQuery(query).populateDeep(Infinity).countRelations().build();
|
2651
2857
|
};
|
2652
2858
|
const findDocument = async (query, uid2, opts = {}) => {
|
2653
|
-
const documentManager2 = getService$
|
2859
|
+
const documentManager2 = getService$2("document-manager");
|
2654
2860
|
const populate = await buildPopulateFromQuery(query, uid2);
|
2655
2861
|
return documentManager2.findMany({ ...opts, populate }, uid2).then((documents) => documents[0]);
|
2656
2862
|
};
|
@@ -2658,8 +2864,8 @@ const createOrUpdateDocument = async (ctx, opts) => {
|
|
2658
2864
|
const { user, userAbility } = ctx.state;
|
2659
2865
|
const { model } = ctx.params;
|
2660
2866
|
const { body, query } = ctx.request;
|
2661
|
-
const documentManager2 = getService$
|
2662
|
-
const permissionChecker2 = getService$
|
2867
|
+
const documentManager2 = getService$2("document-manager");
|
2868
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2663
2869
|
if (permissionChecker2.cannot.create() && permissionChecker2.cannot.update()) {
|
2664
2870
|
throw new errors.ForbiddenError();
|
2665
2871
|
}
|
@@ -2700,7 +2906,7 @@ const singleTypes = {
|
|
2700
2906
|
const { userAbility } = ctx.state;
|
2701
2907
|
const { model } = ctx.params;
|
2702
2908
|
const { query = {} } = ctx.request;
|
2703
|
-
const permissionChecker2 = getService$
|
2909
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2704
2910
|
if (permissionChecker2.cannot.read()) {
|
2705
2911
|
return ctx.forbidden();
|
2706
2912
|
}
|
@@ -2734,7 +2940,7 @@ const singleTypes = {
|
|
2734
2940
|
async createOrUpdate(ctx) {
|
2735
2941
|
const { userAbility } = ctx.state;
|
2736
2942
|
const { model } = ctx.params;
|
2737
|
-
const permissionChecker2 = getService$
|
2943
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2738
2944
|
const document = await createOrUpdateDocument(ctx);
|
2739
2945
|
const sanitizedDocument = await permissionChecker2.sanitizeOutput(document);
|
2740
2946
|
ctx.body = await formatDocumentWithMetadata(permissionChecker2, model, sanitizedDocument);
|
@@ -2743,8 +2949,8 @@ const singleTypes = {
|
|
2743
2949
|
const { userAbility } = ctx.state;
|
2744
2950
|
const { model } = ctx.params;
|
2745
2951
|
const { query = {} } = ctx.request;
|
2746
|
-
const documentManager2 = getService$
|
2747
|
-
const permissionChecker2 = getService$
|
2952
|
+
const documentManager2 = getService$2("document-manager");
|
2953
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2748
2954
|
if (permissionChecker2.cannot.delete()) {
|
2749
2955
|
return ctx.forbidden();
|
2750
2956
|
}
|
@@ -2772,8 +2978,8 @@ const singleTypes = {
|
|
2772
2978
|
const { userAbility } = ctx.state;
|
2773
2979
|
const { model } = ctx.params;
|
2774
2980
|
const { query = {} } = ctx.request;
|
2775
|
-
const documentManager2 = getService$
|
2776
|
-
const permissionChecker2 = getService$
|
2981
|
+
const documentManager2 = getService$2("document-manager");
|
2982
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2777
2983
|
if (permissionChecker2.cannot.publish()) {
|
2778
2984
|
return ctx.forbidden();
|
2779
2985
|
}
|
@@ -2801,8 +3007,8 @@ const singleTypes = {
|
|
2801
3007
|
body: { discardDraft, ...body },
|
2802
3008
|
query = {}
|
2803
3009
|
} = ctx.request;
|
2804
|
-
const documentManager2 = getService$
|
2805
|
-
const permissionChecker2 = getService$
|
3010
|
+
const documentManager2 = getService$2("document-manager");
|
3011
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2806
3012
|
if (permissionChecker2.cannot.unpublish()) {
|
2807
3013
|
return ctx.forbidden();
|
2808
3014
|
}
|
@@ -2836,8 +3042,8 @@ const singleTypes = {
|
|
2836
3042
|
const { userAbility } = ctx.state;
|
2837
3043
|
const { model } = ctx.params;
|
2838
3044
|
const { body, query = {} } = ctx.request;
|
2839
|
-
const documentManager2 = getService$
|
2840
|
-
const permissionChecker2 = getService$
|
3045
|
+
const documentManager2 = getService$2("document-manager");
|
3046
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2841
3047
|
if (permissionChecker2.cannot.discard()) {
|
2842
3048
|
return ctx.forbidden();
|
2843
3049
|
}
|
@@ -2860,8 +3066,8 @@ const singleTypes = {
|
|
2860
3066
|
const { userAbility } = ctx.state;
|
2861
3067
|
const { model } = ctx.params;
|
2862
3068
|
const { query } = ctx.request;
|
2863
|
-
const documentManager2 = getService$
|
2864
|
-
const permissionChecker2 = getService$
|
3069
|
+
const documentManager2 = getService$2("document-manager");
|
3070
|
+
const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
|
2865
3071
|
const { locale } = await getDocumentLocaleAndStatus(query, model);
|
2866
3072
|
if (permissionChecker2.cannot.read()) {
|
2867
3073
|
return ctx.forbidden();
|
@@ -2885,7 +3091,7 @@ const uid$1 = {
|
|
2885
3091
|
const { query = {} } = ctx.request;
|
2886
3092
|
const { locale } = await getDocumentLocaleAndStatus(query, contentTypeUID);
|
2887
3093
|
await validateUIDField(contentTypeUID, field);
|
2888
|
-
const uidService = getService$
|
3094
|
+
const uidService = getService$2("uid");
|
2889
3095
|
ctx.body = {
|
2890
3096
|
data: await uidService.generateUIDField({ contentTypeUID, field, data, locale })
|
2891
3097
|
};
|
@@ -2897,7 +3103,7 @@ const uid$1 = {
|
|
2897
3103
|
const { query = {} } = ctx.request;
|
2898
3104
|
const { locale } = await getDocumentLocaleAndStatus(query, contentTypeUID);
|
2899
3105
|
await validateUIDField(contentTypeUID, field);
|
2900
|
-
const uidService = getService$
|
3106
|
+
const uidService = getService$2("uid");
|
2901
3107
|
const isAvailable = await uidService.checkUIDAvailability({
|
2902
3108
|
contentTypeUID,
|
2903
3109
|
field,
|
@@ -2918,7 +3124,8 @@ const controllers = {
|
|
2918
3124
|
relations,
|
2919
3125
|
"single-types": singleTypes,
|
2920
3126
|
uid: uid$1,
|
2921
|
-
...history.controllers ? history.controllers : {}
|
3127
|
+
...history.controllers ? history.controllers : {},
|
3128
|
+
...preview.controllers ? preview.controllers : {}
|
2922
3129
|
};
|
2923
3130
|
const keys = {
|
2924
3131
|
CONFIGURATION: "configuration"
|
@@ -3069,12 +3276,12 @@ async function syncMetadatas(configuration, schema) {
|
|
3069
3276
|
return _.assign(metasWithDefaults, updatedMetas);
|
3070
3277
|
}
|
3071
3278
|
const getTargetSchema = (targetModel) => {
|
3072
|
-
return getService$
|
3279
|
+
return getService$2("content-types").findContentType(targetModel);
|
3073
3280
|
};
|
3074
3281
|
const DEFAULT_LIST_LENGTH = 4;
|
3075
3282
|
const MAX_ROW_SIZE = 12;
|
3076
3283
|
const isAllowedFieldSize = (type, size) => {
|
3077
|
-
const { getFieldSize } = getService$
|
3284
|
+
const { getFieldSize } = getService$2("field-sizes");
|
3078
3285
|
const fieldSize = getFieldSize(type);
|
3079
3286
|
if (!fieldSize.isResizable && size !== fieldSize.default) {
|
3080
3287
|
return false;
|
@@ -3082,7 +3289,7 @@ const isAllowedFieldSize = (type, size) => {
|
|
3082
3289
|
return size <= MAX_ROW_SIZE;
|
3083
3290
|
};
|
3084
3291
|
const getDefaultFieldSize = (attribute) => {
|
3085
|
-
const { hasFieldSize, getFieldSize } = getService$
|
3292
|
+
const { hasFieldSize, getFieldSize } = getService$2("field-sizes");
|
3086
3293
|
return getFieldSize(hasFieldSize(attribute.customField) ? attribute.customField : attribute.type).default;
|
3087
3294
|
};
|
3088
3295
|
async function createDefaultLayouts(schema) {
|
@@ -3117,7 +3324,7 @@ function syncLayouts(configuration, schema) {
|
|
3117
3324
|
for (const el of row) {
|
3118
3325
|
if (!hasEditableAttribute(schema, el.name))
|
3119
3326
|
continue;
|
3120
|
-
const { hasFieldSize } = getService$
|
3327
|
+
const { hasFieldSize } = getService$2("field-sizes");
|
3121
3328
|
const fieldType = hasFieldSize(schema.attributes[el.name].customField) ? schema.attributes[el.name].customField : schema.attributes[el.name].type;
|
3122
3329
|
if (!isAllowedFieldSize(fieldType, el.size)) {
|
3123
3330
|
elementsToReAppend.push(el.name);
|
@@ -3257,17 +3464,17 @@ const configurationService$1 = createConfigurationService({
|
|
3257
3464
|
isComponent: true,
|
3258
3465
|
prefix: STORE_KEY_PREFIX,
|
3259
3466
|
getModels() {
|
3260
|
-
const { toContentManagerModel } = getService$
|
3467
|
+
const { toContentManagerModel } = getService$2("data-mapper");
|
3261
3468
|
return mapValues(toContentManagerModel, strapi.components);
|
3262
3469
|
}
|
3263
3470
|
});
|
3264
3471
|
const components = ({ strapi: strapi2 }) => ({
|
3265
3472
|
findAllComponents() {
|
3266
|
-
const { toContentManagerModel } = getService$
|
3473
|
+
const { toContentManagerModel } = getService$2("data-mapper");
|
3267
3474
|
return Object.values(strapi2.components).map(toContentManagerModel);
|
3268
3475
|
},
|
3269
3476
|
findComponent(uid2) {
|
3270
|
-
const { toContentManagerModel } = getService$
|
3477
|
+
const { toContentManagerModel } = getService$2("data-mapper");
|
3271
3478
|
const component = strapi2.components[uid2];
|
3272
3479
|
return isNil$1(component) ? component : toContentManagerModel(component);
|
3273
3480
|
},
|
@@ -3318,17 +3525,17 @@ const configurationService = createConfigurationService({
|
|
3318
3525
|
storeUtils,
|
3319
3526
|
prefix: "content_types",
|
3320
3527
|
getModels() {
|
3321
|
-
const { toContentManagerModel } = getService$
|
3528
|
+
const { toContentManagerModel } = getService$2("data-mapper");
|
3322
3529
|
return mapValues(toContentManagerModel, strapi.contentTypes);
|
3323
3530
|
}
|
3324
3531
|
});
|
3325
3532
|
const service = ({ strapi: strapi2 }) => ({
|
3326
3533
|
findAllContentTypes() {
|
3327
|
-
const { toContentManagerModel } = getService$
|
3534
|
+
const { toContentManagerModel } = getService$2("data-mapper");
|
3328
3535
|
return Object.values(strapi2.contentTypes).map(toContentManagerModel);
|
3329
3536
|
},
|
3330
3537
|
findContentType(uid2) {
|
3331
|
-
const { toContentManagerModel } = getService$
|
3538
|
+
const { toContentManagerModel } = getService$2("data-mapper");
|
3332
3539
|
const contentType = strapi2.contentTypes[uid2];
|
3333
3540
|
return isNil$1(contentType) ? contentType : toContentManagerModel(contentType);
|
3334
3541
|
},
|
@@ -3357,7 +3564,7 @@ const service = ({ strapi: strapi2 }) => ({
|
|
3357
3564
|
return this.findConfiguration(contentType);
|
3358
3565
|
},
|
3359
3566
|
findComponentsConfigurations(contentType) {
|
3360
|
-
return getService$
|
3567
|
+
return getService$2("components").findComponentsConfigurations(contentType);
|
3361
3568
|
},
|
3362
3569
|
syncConfigurations() {
|
3363
3570
|
return configurationService.syncConfigurations();
|
@@ -3629,7 +3836,7 @@ const permission = ({ strapi: strapi2 }) => ({
|
|
3629
3836
|
return userAbility.can(action);
|
3630
3837
|
},
|
3631
3838
|
async registerPermissions() {
|
3632
|
-
const displayedContentTypes = getService$
|
3839
|
+
const displayedContentTypes = getService$2("content-types").findDisplayedContentTypes();
|
3633
3840
|
const contentTypesUids = displayedContentTypes.map(prop("uid"));
|
3634
3841
|
const actions = [
|
3635
3842
|
{
|
@@ -3905,7 +4112,7 @@ const getQueryPopulate = async (uid2, query) => {
|
|
3905
4112
|
return populateQuery;
|
3906
4113
|
};
|
3907
4114
|
const buildDeepPopulate = (uid2) => {
|
3908
|
-
return getService$
|
4115
|
+
return getService$2("populate-builder")(uid2).populateDeep(Infinity).countRelations().build();
|
3909
4116
|
};
|
3910
4117
|
const populateBuilder = (uid2) => {
|
3911
4118
|
let getInitialPopulate = async () => {
|
@@ -4448,7 +4655,8 @@ const services = {
|
|
4448
4655
|
permission,
|
4449
4656
|
"populate-builder": populateBuilder$1,
|
4450
4657
|
uid,
|
4451
|
-
...history.services ? history.services : {}
|
4658
|
+
...history.services ? history.services : {},
|
4659
|
+
...preview.services ? preview.services : {}
|
4452
4660
|
};
|
4453
4661
|
const index = () => {
|
4454
4662
|
return {
|