@strapi/content-manager 5.0.5 → 5.0.6
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-DWxHeClF.mjs → ComponentConfigurationPage-DfFSZQxe.mjs} +4 -4
- package/dist/_chunks/{ComponentConfigurationPage-DWxHeClF.mjs.map → ComponentConfigurationPage-DfFSZQxe.mjs.map} +1 -1
- package/dist/_chunks/{ComponentConfigurationPage-B6_S7HuK.js → ComponentConfigurationPage-FqfsxQ1j.js} +4 -4
- package/dist/_chunks/{ComponentConfigurationPage-B6_S7HuK.js.map → ComponentConfigurationPage-FqfsxQ1j.js.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-CU1UZNov.js → EditConfigurationPage-Cn0e8t3I.js} +4 -4
- package/dist/_chunks/{EditConfigurationPage-CU1UZNov.js.map → EditConfigurationPage-Cn0e8t3I.js.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-CPNOHO6p.mjs → EditConfigurationPage-DdPNAbl3.mjs} +4 -4
- package/dist/_chunks/{EditConfigurationPage-CPNOHO6p.mjs.map → EditConfigurationPage-DdPNAbl3.mjs.map} +1 -1
- package/dist/_chunks/{EditViewPage-DNSIfKKP.mjs → EditViewPage-B82x_x1b.mjs} +3 -3
- package/dist/_chunks/EditViewPage-B82x_x1b.mjs.map +1 -0
- package/dist/_chunks/{EditViewPage-DaF3tkZZ.js → EditViewPage-DlxEHhUt.js} +3 -3
- package/dist/_chunks/EditViewPage-DlxEHhUt.js.map +1 -0
- package/dist/_chunks/{Field-DH47H7B8.js → Field-COL25JiC.js} +4 -4
- package/dist/_chunks/{Field-DH47H7B8.js.map → Field-COL25JiC.js.map} +1 -1
- package/dist/_chunks/{Field-ArMLuLzP.mjs → Field-DufHXW17.mjs} +4 -4
- package/dist/_chunks/{Field-ArMLuLzP.mjs.map → Field-DufHXW17.mjs.map} +1 -1
- package/dist/_chunks/{Form-8jrwSm8k.js → Form-BssUwrTO.js} +2 -2
- package/dist/_chunks/{Form-8jrwSm8k.js.map → Form-BssUwrTO.js.map} +1 -1
- package/dist/_chunks/{Form-CT2R0sf0.mjs → Form-u_kAOhwB.mjs} +2 -2
- package/dist/_chunks/{Form-CT2R0sf0.mjs.map → Form-u_kAOhwB.mjs.map} +1 -1
- package/dist/_chunks/{History-CfXujgPi.js → History-C9t9UqpO.js} +5 -5
- package/dist/_chunks/History-C9t9UqpO.js.map +1 -0
- package/dist/_chunks/{History-DL1eBEu4.mjs → History-DRwA3oMM.mjs} +5 -5
- package/dist/_chunks/History-DRwA3oMM.mjs.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-n2omMsK6.js → ListConfigurationPage-BXYPohh-.js} +3 -3
- package/dist/_chunks/{ListConfigurationPage-n2omMsK6.js.map → ListConfigurationPage-BXYPohh-.js.map} +1 -1
- package/dist/_chunks/{ListConfigurationPage-DnGxJY6S.mjs → ListConfigurationPage-BxfQJzPk.mjs} +3 -3
- package/dist/_chunks/{ListConfigurationPage-DnGxJY6S.mjs.map → ListConfigurationPage-BxfQJzPk.mjs.map} +1 -1
- package/dist/_chunks/{ListViewPage-BzY1kZ43.mjs → ListViewPage-CELx2ysp.mjs} +4 -15
- package/dist/_chunks/{ListViewPage-BzY1kZ43.mjs.map → ListViewPage-CELx2ysp.mjs.map} +1 -1
- package/dist/_chunks/{ListViewPage-DM8PgfPi.js → ListViewPage-D2VD8Szg.js} +4 -15
- package/dist/_chunks/ListViewPage-D2VD8Szg.js.map +1 -0
- package/dist/_chunks/{NoContentTypePage-CQgAmFxY.js → NoContentTypePage-BV9IjJSM.js} +2 -2
- package/dist/_chunks/{NoContentTypePage-CQgAmFxY.js.map → NoContentTypePage-BV9IjJSM.js.map} +1 -1
- package/dist/_chunks/{NoContentTypePage-Dng14IxY.mjs → NoContentTypePage-DtJ9jcfk.mjs} +2 -2
- package/dist/_chunks/{NoContentTypePage-Dng14IxY.mjs.map → NoContentTypePage-DtJ9jcfk.mjs.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-CvDTxLVe.mjs → NoPermissionsPage-DWleVYK7.mjs} +2 -2
- package/dist/_chunks/{NoPermissionsPage-CvDTxLVe.mjs.map → NoPermissionsPage-DWleVYK7.mjs.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-CDMclDMB.js → NoPermissionsPage-Dp8NpF9I.js} +2 -2
- package/dist/_chunks/{NoPermissionsPage-CDMclDMB.js.map → NoPermissionsPage-Dp8NpF9I.js.map} +1 -1
- package/dist/_chunks/{Relations-u-F7eBc1.mjs → Relations-BTcf5xaw.mjs} +17 -44
- package/dist/_chunks/Relations-BTcf5xaw.mjs.map +1 -0
- package/dist/_chunks/{Relations-DPgT9YBQ.js → Relations-DR7EUgyC.js} +16 -43
- package/dist/_chunks/Relations-DR7EUgyC.js.map +1 -0
- package/dist/_chunks/{index-By9LCuJo.js → index-BdMf2lfT.js} +21 -45
- package/dist/_chunks/index-BdMf2lfT.js.map +1 -0
- package/dist/_chunks/{index-CpWBTebP.mjs → index-wnqzm4Q8.mjs} +21 -44
- package/dist/_chunks/index-wnqzm4Q8.mjs.map +1 -0
- package/dist/_chunks/{layout-Dyy-wd_i.mjs → layout-2CfjL0T9.mjs} +3 -3
- package/dist/_chunks/{layout-Dyy-wd_i.mjs.map → layout-2CfjL0T9.mjs.map} +1 -1
- package/dist/_chunks/{layout-DgVwKNX2.js → layout-B2MyZU-_.js} +3 -3
- package/dist/_chunks/{layout-DgVwKNX2.js.map → layout-B2MyZU-_.js.map} +1 -1
- package/dist/_chunks/{objects-BcXOv6_9.js → objects-gigeqt7s.js} +4 -2
- package/dist/_chunks/{objects-BcXOv6_9.js.map → objects-gigeqt7s.js.map} +1 -1
- package/dist/_chunks/{objects-D6yBsdmx.mjs → objects-mKMAmfec.mjs} +4 -2
- package/dist/_chunks/{objects-D6yBsdmx.mjs.map → objects-mKMAmfec.mjs.map} +1 -1
- package/dist/_chunks/{relations-Cybx8J7k.js → relations-BH7JJGGe.js} +7 -3
- package/dist/_chunks/relations-BH7JJGGe.js.map +1 -0
- package/dist/_chunks/{relations-BSPEL9Tj.mjs → relations-C0w0GcXi.mjs} +7 -3
- package/dist/_chunks/relations-C0w0GcXi.mjs.map +1 -0
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/server/index.js +144 -344
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +144 -344
- 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/controllers/relations.d.ts.map +1 -1
- package/dist/server/src/controllers/utils/metadata.d.ts +1 -15
- package/dist/server/src/controllers/utils/metadata.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 +3 -2
- package/dist/server/src/history/services/utils.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +4 -4
- package/dist/server/src/routes/index.d.ts.map +1 -1
- package/dist/server/src/services/document-metadata.d.ts +8 -8
- package/dist/server/src/services/document-metadata.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +4 -4
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/utils/configuration/index.d.ts +2 -2
- package/dist/server/src/services/utils/configuration/layouts.d.ts +2 -2
- package/dist/server/src/utils/index.d.ts +0 -2
- package/dist/server/src/utils/index.d.ts.map +1 -1
- package/dist/shared/contracts/index.d.ts +0 -1
- package/dist/shared/contracts/index.d.ts.map +1 -1
- package/dist/shared/index.js +0 -4
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/index.mjs +0 -4
- package/dist/shared/index.mjs.map +1 -1
- package/package.json +6 -6
- package/dist/_chunks/EditViewPage-DNSIfKKP.mjs.map +0 -1
- package/dist/_chunks/EditViewPage-DaF3tkZZ.js.map +0 -1
- package/dist/_chunks/History-CfXujgPi.js.map +0 -1
- package/dist/_chunks/History-DL1eBEu4.mjs.map +0 -1
- package/dist/_chunks/ListViewPage-DM8PgfPi.js.map +0 -1
- package/dist/_chunks/Relations-DPgT9YBQ.js.map +0 -1
- package/dist/_chunks/Relations-u-F7eBc1.mjs.map +0 -1
- package/dist/_chunks/index-By9LCuJo.js.map +0 -1
- package/dist/_chunks/index-CpWBTebP.mjs.map +0 -1
- package/dist/_chunks/relations-BSPEL9Tj.mjs.map +0 -1
- package/dist/_chunks/relations-Cybx8J7k.js.map +0 -1
- package/dist/admin/src/preview/constants.d.ts +0 -1
- package/dist/admin/src/preview/index.d.ts +0 -4
- package/dist/server/src/preview/constants.d.ts +0 -2
- package/dist/server/src/preview/constants.d.ts.map +0 -1
- package/dist/server/src/preview/controllers/index.d.ts +0 -2
- package/dist/server/src/preview/controllers/index.d.ts.map +0 -1
- package/dist/server/src/preview/controllers/preview.d.ts +0 -13
- package/dist/server/src/preview/controllers/preview.d.ts.map +0 -1
- package/dist/server/src/preview/controllers/validation/preview.d.ts +0 -6
- package/dist/server/src/preview/controllers/validation/preview.d.ts.map +0 -1
- package/dist/server/src/preview/index.d.ts +0 -4
- package/dist/server/src/preview/index.d.ts.map +0 -1
- package/dist/server/src/preview/routes/index.d.ts +0 -8
- package/dist/server/src/preview/routes/index.d.ts.map +0 -1
- package/dist/server/src/preview/routes/preview.d.ts +0 -4
- package/dist/server/src/preview/routes/preview.d.ts.map +0 -1
- package/dist/server/src/preview/services/index.d.ts +0 -15
- package/dist/server/src/preview/services/index.d.ts.map +0 -1
- package/dist/server/src/preview/services/preview-config.d.ts +0 -30
- package/dist/server/src/preview/services/preview-config.d.ts.map +0 -1
- package/dist/server/src/preview/services/preview.d.ts +0 -12
- package/dist/server/src/preview/services/preview.d.ts.map +0 -1
- package/dist/server/src/preview/utils.d.ts +0 -18
- package/dist/server/src/preview/utils.d.ts.map +0 -1
- package/dist/shared/contracts/preview.d.ts +0 -27
- package/dist/shared/contracts/preview.d.ts.map +0 -1
package/dist/server/index.mjs
CHANGED
@@ -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$1 = (name) => {
|
11
11
|
return strapi.plugin("content-manager").service(name);
|
12
12
|
};
|
13
|
-
function getService
|
13
|
+
function getService(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$1("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
|
57
|
+
const { results, pagination: pagination2 } = await getService(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$1("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
|
89
|
+
const restoredDocument = await getService(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$1 = {
|
99
99
|
"history-version": createHistoryVersionController
|
100
100
|
/**
|
101
101
|
* Casting is needed because the types aren't aware that Strapi supports
|
@@ -202,17 +202,6 @@ 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
|
-
};
|
216
205
|
const getDeepPopulate2 = (uid2, useDatabaseSyntax = false) => {
|
217
206
|
const model = strapi2.getModel(uid2);
|
218
207
|
const attributes = Object.entries(model.attributes);
|
@@ -236,19 +225,13 @@ const createServiceUtils = ({ strapi: strapi2 }) => {
|
|
236
225
|
}
|
237
226
|
case "component": {
|
238
227
|
const populate = getDeepPopulate2(attribute.component);
|
239
|
-
acc[attributeName] = {
|
240
|
-
populate,
|
241
|
-
[fieldSelector]: getComponentFields(attribute.component)
|
242
|
-
};
|
228
|
+
acc[attributeName] = { populate };
|
243
229
|
break;
|
244
230
|
}
|
245
231
|
case "dynamiczone": {
|
246
232
|
const populatedComponents = (attribute.components || []).reduce(
|
247
233
|
(acc2, componentUID) => {
|
248
|
-
acc2[componentUID] = {
|
249
|
-
populate: getDeepPopulate2(componentUID),
|
250
|
-
[fieldSelector]: getComponentFields(componentUID)
|
251
|
-
};
|
234
|
+
acc2[componentUID] = { populate: getDeepPopulate2(componentUID) };
|
252
235
|
return acc2;
|
253
236
|
},
|
254
237
|
{}
|
@@ -361,7 +344,7 @@ const createHistoryService = ({ strapi: strapi2 }) => {
|
|
361
344
|
const attributeValue = entry.data[attributeKey];
|
362
345
|
const attributeValues = Array.isArray(attributeValue) ? attributeValue : [attributeValue];
|
363
346
|
if (attributeSchema.type === "media") {
|
364
|
-
const permissionChecker2 = getService$
|
347
|
+
const permissionChecker2 = getService$1("permission-checker").create({
|
365
348
|
userAbility: params.state.userAbility,
|
366
349
|
model: "plugin::upload.file"
|
367
350
|
});
|
@@ -402,7 +385,7 @@ const createHistoryService = ({ strapi: strapi2 }) => {
|
|
402
385
|
[attributeKey]: adminUsers
|
403
386
|
};
|
404
387
|
}
|
405
|
-
const permissionChecker2 = getService$
|
388
|
+
const permissionChecker2 = getService$1("permission-checker").create({
|
406
389
|
userAbility: params.state.userAbility,
|
407
390
|
model: attributeSchema.target
|
408
391
|
});
|
@@ -578,7 +561,7 @@ const createLifecyclesService = ({ strapi: strapi2 }) => {
|
|
578
561
|
onCommit(async () => {
|
579
562
|
for (const entry of localeEntries) {
|
580
563
|
const status = await serviceUtils.getVersionStatus(uid2, entry);
|
581
|
-
await getService
|
564
|
+
await getService(strapi2, "history").createVersion({
|
582
565
|
contentType: uid2,
|
583
566
|
data: omit(FIELDS_TO_IGNORE, entry),
|
584
567
|
relatedDocumentId: documentId,
|
@@ -591,19 +574,15 @@ const createLifecyclesService = ({ strapi: strapi2 }) => {
|
|
591
574
|
});
|
592
575
|
return result;
|
593
576
|
});
|
594
|
-
state.deleteExpiredJob = scheduleJob("
|
577
|
+
state.deleteExpiredJob = scheduleJob("0 0 * * *", () => {
|
595
578
|
const retentionDaysInMilliseconds = serviceUtils.getRetentionDays() * 24 * 60 * 60 * 1e3;
|
596
579
|
const expirationDate = new Date(Date.now() - retentionDaysInMilliseconds);
|
597
580
|
strapi2.db.query(HISTORY_VERSION_UID).deleteMany({
|
598
581
|
where: {
|
599
582
|
created_at: {
|
600
|
-
$lt: expirationDate
|
583
|
+
$lt: expirationDate.toISOString()
|
601
584
|
}
|
602
585
|
}
|
603
|
-
}).catch((error) => {
|
604
|
-
if (error instanceof Error) {
|
605
|
-
strapi2.log.error("Error deleting expired history versions", error.message);
|
606
|
-
}
|
607
586
|
});
|
608
587
|
});
|
609
588
|
state.isInitialized = true;
|
@@ -615,17 +594,17 @@ const createLifecyclesService = ({ strapi: strapi2 }) => {
|
|
615
594
|
}
|
616
595
|
};
|
617
596
|
};
|
618
|
-
const services$
|
597
|
+
const services$1 = {
|
619
598
|
history: createHistoryService,
|
620
599
|
lifecycles: createLifecyclesService
|
621
600
|
};
|
622
|
-
const info
|
601
|
+
const info = { pluginName: "content-manager", type: "admin" };
|
623
602
|
const historyVersionRouter = {
|
624
603
|
type: "admin",
|
625
604
|
routes: [
|
626
605
|
{
|
627
606
|
method: "GET",
|
628
|
-
info
|
607
|
+
info,
|
629
608
|
path: "/history-versions",
|
630
609
|
handler: "history-version.findMany",
|
631
610
|
config: {
|
@@ -634,7 +613,7 @@ const historyVersionRouter = {
|
|
634
613
|
},
|
635
614
|
{
|
636
615
|
method: "PUT",
|
637
|
-
info
|
616
|
+
info,
|
638
617
|
path: "/history-versions/:versionId/restore",
|
639
618
|
handler: "history-version.restoreVersion",
|
640
619
|
config: {
|
@@ -643,7 +622,7 @@ const historyVersionRouter = {
|
|
643
622
|
}
|
644
623
|
]
|
645
624
|
};
|
646
|
-
const routes$
|
625
|
+
const routes$1 = {
|
647
626
|
"history-version": historyVersionRouter
|
648
627
|
};
|
649
628
|
const historyVersion = {
|
@@ -690,21 +669,21 @@ const historyVersion = {
|
|
690
669
|
}
|
691
670
|
}
|
692
671
|
};
|
693
|
-
const getFeature
|
672
|
+
const getFeature = () => {
|
694
673
|
if (strapi.ee.features.isEnabled("cms-content-history")) {
|
695
674
|
return {
|
696
675
|
register({ strapi: strapi2 }) {
|
697
676
|
strapi2.get("models").add(historyVersion);
|
698
677
|
},
|
699
678
|
bootstrap({ strapi: strapi2 }) {
|
700
|
-
getService
|
679
|
+
getService(strapi2, "lifecycles").bootstrap();
|
701
680
|
},
|
702
681
|
destroy({ strapi: strapi2 }) {
|
703
|
-
getService
|
682
|
+
getService(strapi2, "lifecycles").destroy();
|
704
683
|
},
|
705
|
-
controllers: controllers$
|
706
|
-
services: services$
|
707
|
-
routes: routes$
|
684
|
+
controllers: controllers$1,
|
685
|
+
services: services$1,
|
686
|
+
routes: routes$1
|
708
687
|
};
|
709
688
|
}
|
710
689
|
return {
|
@@ -713,7 +692,7 @@ const getFeature$1 = () => {
|
|
713
692
|
}
|
714
693
|
};
|
715
694
|
};
|
716
|
-
const history = getFeature
|
695
|
+
const history = getFeature();
|
717
696
|
const register = async ({ strapi: strapi2 }) => {
|
718
697
|
await history.register?.({ strapi: strapi2 });
|
719
698
|
};
|
@@ -721,165 +700,15 @@ const ALLOWED_WEBHOOK_EVENTS = {
|
|
721
700
|
ENTRY_PUBLISH: "entry.publish",
|
722
701
|
ENTRY_UNPUBLISH: "entry.unpublish"
|
723
702
|
};
|
724
|
-
const FEATURE_ID = "preview";
|
725
|
-
const info = { pluginName: "content-manager", type: "admin" };
|
726
|
-
const previewRouter = {
|
727
|
-
type: "admin",
|
728
|
-
routes: [
|
729
|
-
{
|
730
|
-
method: "GET",
|
731
|
-
info,
|
732
|
-
path: "/preview/url/:contentType",
|
733
|
-
handler: "preview.getPreviewUrl",
|
734
|
-
config: {
|
735
|
-
policies: ["admin::isAuthenticatedAdmin"]
|
736
|
-
}
|
737
|
-
}
|
738
|
-
]
|
739
|
-
};
|
740
|
-
const routes$1 = {
|
741
|
-
preview: previewRouter
|
742
|
-
};
|
743
|
-
function getService(strapi2, name) {
|
744
|
-
return strapi2.service(`plugin::content-manager.${name}`);
|
745
|
-
}
|
746
|
-
const getPreviewUrlSchema = yup.object().shape({
|
747
|
-
// Will be undefined for single types
|
748
|
-
documentId: yup.string(),
|
749
|
-
locale: yup.string().nullable(),
|
750
|
-
status: yup.string()
|
751
|
-
}).required();
|
752
|
-
const validatePreviewUrl = async (strapi2, uid2, params) => {
|
753
|
-
await validateYupSchema(getPreviewUrlSchema)(params);
|
754
|
-
const newParams = pick(["documentId", "locale", "status"], params);
|
755
|
-
const model = strapi2.getModel(uid2);
|
756
|
-
if (!model || model.modelType !== "contentType") {
|
757
|
-
throw new errors.ValidationError("Invalid content type");
|
758
|
-
}
|
759
|
-
const isSingleType = model?.kind === "singleType";
|
760
|
-
if (!isSingleType && !params.documentId) {
|
761
|
-
throw new errors.ValidationError("documentId is required for Collection Types");
|
762
|
-
}
|
763
|
-
if (isSingleType) {
|
764
|
-
const doc = await strapi2.documents(uid2).findFirst();
|
765
|
-
if (!doc) {
|
766
|
-
throw new errors.NotFoundError("Document not found");
|
767
|
-
}
|
768
|
-
newParams.documentId = doc?.documentId;
|
769
|
-
}
|
770
|
-
return newParams;
|
771
|
-
};
|
772
|
-
const createPreviewController = () => {
|
773
|
-
return {
|
774
|
-
/**
|
775
|
-
* Transforms an entry into a preview URL, so that it can be previewed
|
776
|
-
* in the Content Manager.
|
777
|
-
*/
|
778
|
-
async getPreviewUrl(ctx) {
|
779
|
-
const uid2 = ctx.params.contentType;
|
780
|
-
const query = ctx.request.query;
|
781
|
-
const params = await validatePreviewUrl(strapi, uid2, query);
|
782
|
-
const previewService = getService(strapi, "preview");
|
783
|
-
const url = await previewService.getPreviewUrl(uid2, params);
|
784
|
-
if (!url) {
|
785
|
-
ctx.status = 204;
|
786
|
-
}
|
787
|
-
return {
|
788
|
-
data: { url }
|
789
|
-
};
|
790
|
-
}
|
791
|
-
};
|
792
|
-
};
|
793
|
-
const controllers$1 = {
|
794
|
-
preview: createPreviewController
|
795
|
-
/**
|
796
|
-
* Casting is needed because the types aren't aware that Strapi supports
|
797
|
-
* passing a controller factory as the value, instead of a controller object directly
|
798
|
-
*/
|
799
|
-
};
|
800
|
-
const createPreviewService = ({ strapi: strapi2 }) => {
|
801
|
-
const config = getService(strapi2, "preview-config");
|
802
|
-
return {
|
803
|
-
async getPreviewUrl(uid2, params) {
|
804
|
-
const handler = config.getPreviewHandler();
|
805
|
-
try {
|
806
|
-
return handler(uid2, params);
|
807
|
-
} catch (error) {
|
808
|
-
strapi2.log.error(`Failed to get preview URL: ${error}`);
|
809
|
-
throw new errors.ApplicationError("Failed to get preview URL");
|
810
|
-
}
|
811
|
-
return;
|
812
|
-
}
|
813
|
-
};
|
814
|
-
};
|
815
|
-
const createPreviewConfigService = ({ strapi: strapi2 }) => {
|
816
|
-
return {
|
817
|
-
isEnabled() {
|
818
|
-
const config = strapi2.config.get("admin.preview");
|
819
|
-
if (!config) {
|
820
|
-
return false;
|
821
|
-
}
|
822
|
-
return config?.enabled ?? true;
|
823
|
-
},
|
824
|
-
/**
|
825
|
-
* Validate if the configuration is valid
|
826
|
-
*/
|
827
|
-
validate() {
|
828
|
-
if (!this.isEnabled()) {
|
829
|
-
return;
|
830
|
-
}
|
831
|
-
const handler = this.getPreviewHandler();
|
832
|
-
if (typeof handler !== "function") {
|
833
|
-
throw new errors.ValidationError(
|
834
|
-
"Preview configuration is invalid. Handler must be a function"
|
835
|
-
);
|
836
|
-
}
|
837
|
-
},
|
838
|
-
/**
|
839
|
-
* Utility to get the preview handler from the configuration
|
840
|
-
*/
|
841
|
-
getPreviewHandler() {
|
842
|
-
const config = strapi2.config.get("admin.preview");
|
843
|
-
const emptyHandler = () => {
|
844
|
-
return void 0;
|
845
|
-
};
|
846
|
-
if (!this.isEnabled()) {
|
847
|
-
return emptyHandler;
|
848
|
-
}
|
849
|
-
return config?.config?.handler || emptyHandler;
|
850
|
-
}
|
851
|
-
};
|
852
|
-
};
|
853
|
-
const services$1 = {
|
854
|
-
preview: createPreviewService,
|
855
|
-
"preview-config": createPreviewConfigService
|
856
|
-
};
|
857
|
-
const getFeature = () => {
|
858
|
-
if (!strapi.features.future.isEnabled(FEATURE_ID)) {
|
859
|
-
return {};
|
860
|
-
}
|
861
|
-
return {
|
862
|
-
bootstrap() {
|
863
|
-
console.log("Bootstrapping preview server");
|
864
|
-
const config = getService(strapi, "preview-config");
|
865
|
-
config.validate();
|
866
|
-
},
|
867
|
-
routes: routes$1,
|
868
|
-
controllers: controllers$1,
|
869
|
-
services: services$1
|
870
|
-
};
|
871
|
-
};
|
872
|
-
const preview = getFeature();
|
873
703
|
const bootstrap = async () => {
|
874
704
|
Object.entries(ALLOWED_WEBHOOK_EVENTS).forEach(([key, value]) => {
|
875
705
|
strapi.get("webhookStore").addAllowedEvent(key, value);
|
876
706
|
});
|
877
|
-
getService$
|
878
|
-
await getService$
|
879
|
-
await getService$
|
880
|
-
await getService$
|
707
|
+
getService$1("field-sizes").setCustomFieldInputSizes();
|
708
|
+
await getService$1("components").syncConfigurations();
|
709
|
+
await getService$1("content-types").syncConfigurations();
|
710
|
+
await getService$1("permission").registerPermissions();
|
881
711
|
await history.bootstrap?.({ strapi });
|
882
|
-
await preview.bootstrap?.({ strapi });
|
883
712
|
};
|
884
713
|
const destroy = async ({ strapi: strapi2 }) => {
|
885
714
|
await history.destroy?.({ strapi: strapi2 });
|
@@ -1369,8 +1198,7 @@ const admin = {
|
|
1369
1198
|
};
|
1370
1199
|
const routes = {
|
1371
1200
|
admin,
|
1372
|
-
...history.routes ? history.routes : {}
|
1373
|
-
...preview.routes ? preview.routes : {}
|
1201
|
+
...history.routes ? history.routes : {}
|
1374
1202
|
};
|
1375
1203
|
const hasPermissionsSchema = yup$1.object({
|
1376
1204
|
actions: yup$1.array().of(yup$1.string()),
|
@@ -1627,7 +1455,7 @@ const createMetadasSchema = (schema) => {
|
|
1627
1455
|
if (!value) {
|
1628
1456
|
return yup$1.string();
|
1629
1457
|
}
|
1630
|
-
const targetSchema = getService$
|
1458
|
+
const targetSchema = getService$1("content-types").findContentType(
|
1631
1459
|
schema.attributes[key].targetModel
|
1632
1460
|
);
|
1633
1461
|
if (!targetSchema) {
|
@@ -1796,7 +1624,7 @@ const getDocumentLocaleAndStatus = async (request, model, opts = { allowMultiple
|
|
1796
1624
|
}
|
1797
1625
|
};
|
1798
1626
|
const formatDocumentWithMetadata = async (permissionChecker2, uid2, document, opts = {}) => {
|
1799
|
-
const documentMetadata2 = getService$
|
1627
|
+
const documentMetadata2 = getService$1("document-metadata");
|
1800
1628
|
const serviceOutput = await documentMetadata2.formatDocumentWithMetadata(uid2, document, opts);
|
1801
1629
|
let {
|
1802
1630
|
meta: { availableLocales, availableStatus }
|
@@ -1822,8 +1650,8 @@ const createDocument = async (ctx, opts) => {
|
|
1822
1650
|
const { userAbility, user } = ctx.state;
|
1823
1651
|
const { model } = ctx.params;
|
1824
1652
|
const { body } = ctx.request;
|
1825
|
-
const documentManager2 = getService$
|
1826
|
-
const permissionChecker2 = getService$
|
1653
|
+
const documentManager2 = getService$1("document-manager");
|
1654
|
+
const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
|
1827
1655
|
if (permissionChecker2.cannot.create()) {
|
1828
1656
|
throw new errors.ForbiddenError();
|
1829
1657
|
}
|
@@ -1843,13 +1671,13 @@ const updateDocument = async (ctx, opts) => {
|
|
1843
1671
|
const { userAbility, user } = ctx.state;
|
1844
1672
|
const { id, model } = ctx.params;
|
1845
1673
|
const { body } = ctx.request;
|
1846
|
-
const documentManager2 = getService$
|
1847
|
-
const permissionChecker2 = getService$
|
1674
|
+
const documentManager2 = getService$1("document-manager");
|
1675
|
+
const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
|
1848
1676
|
if (permissionChecker2.cannot.update()) {
|
1849
1677
|
throw new errors.ForbiddenError();
|
1850
1678
|
}
|
1851
1679
|
const permissionQuery = await permissionChecker2.sanitizedQuery.update(ctx.query);
|
1852
|
-
const populate = await getService$
|
1680
|
+
const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
|
1853
1681
|
const { locale } = await getDocumentLocaleAndStatus(body, model);
|
1854
1682
|
const [documentVersion, documentExists] = await Promise.all([
|
1855
1683
|
documentManager2.findOne(id, model, { populate, locale, status: "draft" }),
|
@@ -1880,14 +1708,14 @@ const collectionTypes = {
|
|
1880
1708
|
const { userAbility } = ctx.state;
|
1881
1709
|
const { model } = ctx.params;
|
1882
1710
|
const { query } = ctx.request;
|
1883
|
-
const documentMetadata2 = getService$
|
1884
|
-
const documentManager2 = getService$
|
1885
|
-
const permissionChecker2 = getService$
|
1711
|
+
const documentMetadata2 = getService$1("document-metadata");
|
1712
|
+
const documentManager2 = getService$1("document-manager");
|
1713
|
+
const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
|
1886
1714
|
if (permissionChecker2.cannot.read()) {
|
1887
1715
|
return ctx.forbidden();
|
1888
1716
|
}
|
1889
1717
|
const permissionQuery = await permissionChecker2.sanitizedQuery.read(query);
|
1890
|
-
const populate = await getService$
|
1718
|
+
const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(1).countRelations({ toOne: false, toMany: true }).build();
|
1891
1719
|
const { locale, status } = await getDocumentLocaleAndStatus(query, model);
|
1892
1720
|
const { results: documents, pagination: pagination2 } = await documentManager2.findPage(
|
1893
1721
|
{ ...permissionQuery, populate, locale, status },
|
@@ -1916,13 +1744,13 @@ const collectionTypes = {
|
|
1916
1744
|
async findOne(ctx) {
|
1917
1745
|
const { userAbility } = ctx.state;
|
1918
1746
|
const { model, id } = ctx.params;
|
1919
|
-
const documentManager2 = getService$
|
1920
|
-
const permissionChecker2 = getService$
|
1747
|
+
const documentManager2 = getService$1("document-manager");
|
1748
|
+
const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
|
1921
1749
|
if (permissionChecker2.cannot.read()) {
|
1922
1750
|
return ctx.forbidden();
|
1923
1751
|
}
|
1924
1752
|
const permissionQuery = await permissionChecker2.sanitizedQuery.read(ctx.query);
|
1925
|
-
const populate = await getService$
|
1753
|
+
const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(Infinity).countRelations().build();
|
1926
1754
|
const { locale, status } = await getDocumentLocaleAndStatus(ctx.query, model);
|
1927
1755
|
const version = await documentManager2.findOne(id, model, {
|
1928
1756
|
populate,
|
@@ -1953,7 +1781,7 @@ const collectionTypes = {
|
|
1953
1781
|
async create(ctx) {
|
1954
1782
|
const { userAbility } = ctx.state;
|
1955
1783
|
const { model } = ctx.params;
|
1956
|
-
const permissionChecker2 = getService$
|
1784
|
+
const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
|
1957
1785
|
const [totalEntries, document] = await Promise.all([
|
1958
1786
|
strapi.db.query(model).count(),
|
1959
1787
|
createDocument(ctx)
|
@@ -1974,7 +1802,7 @@ const collectionTypes = {
|
|
1974
1802
|
async update(ctx) {
|
1975
1803
|
const { userAbility } = ctx.state;
|
1976
1804
|
const { model } = ctx.params;
|
1977
|
-
const permissionChecker2 = getService$
|
1805
|
+
const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
|
1978
1806
|
const updatedVersion = await updateDocument(ctx);
|
1979
1807
|
const sanitizedVersion = await permissionChecker2.sanitizeOutput(updatedVersion);
|
1980
1808
|
ctx.body = await formatDocumentWithMetadata(permissionChecker2, model, sanitizedVersion);
|
@@ -1983,13 +1811,13 @@ const collectionTypes = {
|
|
1983
1811
|
const { userAbility, user } = ctx.state;
|
1984
1812
|
const { model, sourceId: id } = ctx.params;
|
1985
1813
|
const { body } = ctx.request;
|
1986
|
-
const documentManager2 = getService$
|
1987
|
-
const permissionChecker2 = getService$
|
1814
|
+
const documentManager2 = getService$1("document-manager");
|
1815
|
+
const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
|
1988
1816
|
if (permissionChecker2.cannot.create()) {
|
1989
1817
|
return ctx.forbidden();
|
1990
1818
|
}
|
1991
1819
|
const permissionQuery = await permissionChecker2.sanitizedQuery.create(ctx.query);
|
1992
|
-
const populate = await getService$
|
1820
|
+
const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
|
1993
1821
|
const { locale } = await getDocumentLocaleAndStatus(body, model);
|
1994
1822
|
const document = await documentManager2.findOne(id, model, {
|
1995
1823
|
populate,
|
@@ -2028,13 +1856,13 @@ const collectionTypes = {
|
|
2028
1856
|
async delete(ctx) {
|
2029
1857
|
const { userAbility } = ctx.state;
|
2030
1858
|
const { id, model } = ctx.params;
|
2031
|
-
const documentManager2 = getService$
|
2032
|
-
const permissionChecker2 = getService$
|
1859
|
+
const documentManager2 = getService$1("document-manager");
|
1860
|
+
const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
|
2033
1861
|
if (permissionChecker2.cannot.delete()) {
|
2034
1862
|
return ctx.forbidden();
|
2035
1863
|
}
|
2036
1864
|
const permissionQuery = await permissionChecker2.sanitizedQuery.delete(ctx.query);
|
2037
|
-
const populate = await getService$
|
1865
|
+
const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
|
2038
1866
|
const { locale } = await getDocumentLocaleAndStatus(ctx.query, model);
|
2039
1867
|
const documentLocales = await documentManager2.findLocales(id, model, { populate, locale });
|
2040
1868
|
if (documentLocales.length === 0) {
|
@@ -2056,14 +1884,14 @@ const collectionTypes = {
|
|
2056
1884
|
const { userAbility } = ctx.state;
|
2057
1885
|
const { id, model } = ctx.params;
|
2058
1886
|
const { body } = ctx.request;
|
2059
|
-
const documentManager2 = getService$
|
2060
|
-
const permissionChecker2 = getService$
|
1887
|
+
const documentManager2 = getService$1("document-manager");
|
1888
|
+
const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
|
2061
1889
|
if (permissionChecker2.cannot.publish()) {
|
2062
1890
|
return ctx.forbidden();
|
2063
1891
|
}
|
2064
1892
|
const publishedDocument = await strapi.db.transaction(async () => {
|
2065
1893
|
const permissionQuery = await permissionChecker2.sanitizedQuery.publish(ctx.query);
|
2066
|
-
const populate = await getService$
|
1894
|
+
const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(Infinity).countRelations().build();
|
2067
1895
|
let document;
|
2068
1896
|
const { locale } = await getDocumentLocaleAndStatus(body, model);
|
2069
1897
|
const isCreate = isNil$1(id);
|
@@ -2111,13 +1939,13 @@ const collectionTypes = {
|
|
2111
1939
|
const { body } = ctx.request;
|
2112
1940
|
const { documentIds } = body;
|
2113
1941
|
await validateBulkActionInput(body);
|
2114
|
-
const documentManager2 = getService$
|
2115
|
-
const permissionChecker2 = getService$
|
1942
|
+
const documentManager2 = getService$1("document-manager");
|
1943
|
+
const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
|
2116
1944
|
if (permissionChecker2.cannot.publish()) {
|
2117
1945
|
return ctx.forbidden();
|
2118
1946
|
}
|
2119
1947
|
const permissionQuery = await permissionChecker2.sanitizedQuery.publish(ctx.query);
|
2120
|
-
const populate = await getService$
|
1948
|
+
const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(Infinity).countRelations().build();
|
2121
1949
|
const { locale } = await getDocumentLocaleAndStatus(body, model, {
|
2122
1950
|
allowMultipleLocales: true
|
2123
1951
|
});
|
@@ -2142,8 +1970,8 @@ const collectionTypes = {
|
|
2142
1970
|
const { body } = ctx.request;
|
2143
1971
|
const { documentIds } = body;
|
2144
1972
|
await validateBulkActionInput(body);
|
2145
|
-
const documentManager2 = getService$
|
2146
|
-
const permissionChecker2 = getService$
|
1973
|
+
const documentManager2 = getService$1("document-manager");
|
1974
|
+
const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
|
2147
1975
|
if (permissionChecker2.cannot.unpublish()) {
|
2148
1976
|
return ctx.forbidden();
|
2149
1977
|
}
|
@@ -2172,8 +2000,8 @@ const collectionTypes = {
|
|
2172
2000
|
const {
|
2173
2001
|
body: { discardDraft, ...body }
|
2174
2002
|
} = ctx.request;
|
2175
|
-
const documentManager2 = getService$
|
2176
|
-
const permissionChecker2 = getService$
|
2003
|
+
const documentManager2 = getService$1("document-manager");
|
2004
|
+
const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
|
2177
2005
|
if (permissionChecker2.cannot.unpublish()) {
|
2178
2006
|
return ctx.forbidden();
|
2179
2007
|
}
|
@@ -2181,7 +2009,7 @@ const collectionTypes = {
|
|
2181
2009
|
return ctx.forbidden();
|
2182
2010
|
}
|
2183
2011
|
const permissionQuery = await permissionChecker2.sanitizedQuery.unpublish(ctx.query);
|
2184
|
-
const populate = await getService$
|
2012
|
+
const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
|
2185
2013
|
const { locale } = await getDocumentLocaleAndStatus(body, model);
|
2186
2014
|
const document = await documentManager2.findOne(id, model, {
|
2187
2015
|
populate,
|
@@ -2212,13 +2040,13 @@ const collectionTypes = {
|
|
2212
2040
|
const { userAbility } = ctx.state;
|
2213
2041
|
const { id, model } = ctx.params;
|
2214
2042
|
const { body } = ctx.request;
|
2215
|
-
const documentManager2 = getService$
|
2216
|
-
const permissionChecker2 = getService$
|
2043
|
+
const documentManager2 = getService$1("document-manager");
|
2044
|
+
const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
|
2217
2045
|
if (permissionChecker2.cannot.discard()) {
|
2218
2046
|
return ctx.forbidden();
|
2219
2047
|
}
|
2220
2048
|
const permissionQuery = await permissionChecker2.sanitizedQuery.discard(ctx.query);
|
2221
|
-
const populate = await getService$
|
2049
|
+
const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
|
2222
2050
|
const { locale } = await getDocumentLocaleAndStatus(body, model);
|
2223
2051
|
const document = await documentManager2.findOne(id, model, {
|
2224
2052
|
populate,
|
@@ -2243,13 +2071,13 @@ const collectionTypes = {
|
|
2243
2071
|
const { query, body } = ctx.request;
|
2244
2072
|
const { documentIds } = body;
|
2245
2073
|
await validateBulkActionInput(body);
|
2246
|
-
const documentManager2 = getService$
|
2247
|
-
const permissionChecker2 = getService$
|
2074
|
+
const documentManager2 = getService$1("document-manager");
|
2075
|
+
const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
|
2248
2076
|
if (permissionChecker2.cannot.delete()) {
|
2249
2077
|
return ctx.forbidden();
|
2250
2078
|
}
|
2251
2079
|
const permissionQuery = await permissionChecker2.sanitizedQuery.delete(query);
|
2252
|
-
const populate = await getService$
|
2080
|
+
const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
|
2253
2081
|
const { locale } = await getDocumentLocaleAndStatus(body, model);
|
2254
2082
|
const documentLocales = await documentManager2.findLocales(documentIds, model, {
|
2255
2083
|
populate,
|
@@ -2270,13 +2098,13 @@ const collectionTypes = {
|
|
2270
2098
|
async countDraftRelations(ctx) {
|
2271
2099
|
const { userAbility } = ctx.state;
|
2272
2100
|
const { model, id } = ctx.params;
|
2273
|
-
const documentManager2 = getService$
|
2274
|
-
const permissionChecker2 = getService$
|
2101
|
+
const documentManager2 = getService$1("document-manager");
|
2102
|
+
const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
|
2275
2103
|
if (permissionChecker2.cannot.read()) {
|
2276
2104
|
return ctx.forbidden();
|
2277
2105
|
}
|
2278
2106
|
const permissionQuery = await permissionChecker2.sanitizedQuery.read(ctx.query);
|
2279
|
-
const populate = await getService$
|
2107
|
+
const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
|
2280
2108
|
const { locale, status } = await getDocumentLocaleAndStatus(ctx.query, model);
|
2281
2109
|
const entity = await documentManager2.findOne(id, model, { populate, locale, status });
|
2282
2110
|
if (!entity) {
|
@@ -2295,8 +2123,8 @@ const collectionTypes = {
|
|
2295
2123
|
const ids = ctx.request.query.documentIds;
|
2296
2124
|
const locale = ctx.request.query.locale;
|
2297
2125
|
const { model } = ctx.params;
|
2298
|
-
const documentManager2 = getService$
|
2299
|
-
const permissionChecker2 = getService$
|
2126
|
+
const documentManager2 = getService$1("document-manager");
|
2127
|
+
const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
|
2300
2128
|
if (permissionChecker2.cannot.read()) {
|
2301
2129
|
return ctx.forbidden();
|
2302
2130
|
}
|
@@ -2320,13 +2148,13 @@ const collectionTypes = {
|
|
2320
2148
|
};
|
2321
2149
|
const components$1 = {
|
2322
2150
|
findComponents(ctx) {
|
2323
|
-
const components2 = getService$
|
2324
|
-
const { toDto } = getService$
|
2151
|
+
const components2 = getService$1("components").findAllComponents();
|
2152
|
+
const { toDto } = getService$1("data-mapper");
|
2325
2153
|
ctx.body = { data: components2.map(toDto) };
|
2326
2154
|
},
|
2327
2155
|
async findComponentConfiguration(ctx) {
|
2328
2156
|
const { uid: uid2 } = ctx.params;
|
2329
|
-
const componentService = getService$
|
2157
|
+
const componentService = getService$1("components");
|
2330
2158
|
const component = componentService.findComponent(uid2);
|
2331
2159
|
if (!component) {
|
2332
2160
|
return ctx.notFound("component.notFound");
|
@@ -2343,7 +2171,7 @@ const components$1 = {
|
|
2343
2171
|
async updateComponentConfiguration(ctx) {
|
2344
2172
|
const { uid: uid2 } = ctx.params;
|
2345
2173
|
const { body } = ctx.request;
|
2346
|
-
const componentService = getService$
|
2174
|
+
const componentService = getService$1("components");
|
2347
2175
|
const component = componentService.findComponent(uid2);
|
2348
2176
|
if (!component) {
|
2349
2177
|
return ctx.notFound("component.notFound");
|
@@ -2377,12 +2205,12 @@ const contentTypes = {
|
|
2377
2205
|
} catch (error) {
|
2378
2206
|
return ctx.send({ error }, 400);
|
2379
2207
|
}
|
2380
|
-
const contentTypes2 = getService$
|
2381
|
-
const { toDto } = getService$
|
2208
|
+
const contentTypes2 = getService$1("content-types").findContentTypesByKind(kind);
|
2209
|
+
const { toDto } = getService$1("data-mapper");
|
2382
2210
|
ctx.body = { data: contentTypes2.map(toDto) };
|
2383
2211
|
},
|
2384
2212
|
async findContentTypesSettings(ctx) {
|
2385
|
-
const { findAllContentTypes, findConfiguration } = getService$
|
2213
|
+
const { findAllContentTypes, findConfiguration } = getService$1("content-types");
|
2386
2214
|
const contentTypes2 = await findAllContentTypes();
|
2387
2215
|
const configurations = await Promise.all(
|
2388
2216
|
contentTypes2.map(async (contentType) => {
|
@@ -2396,7 +2224,7 @@ const contentTypes = {
|
|
2396
2224
|
},
|
2397
2225
|
async findContentTypeConfiguration(ctx) {
|
2398
2226
|
const { uid: uid2 } = ctx.params;
|
2399
|
-
const contentTypeService = getService$
|
2227
|
+
const contentTypeService = getService$1("content-types");
|
2400
2228
|
const contentType = await contentTypeService.findContentType(uid2);
|
2401
2229
|
if (!contentType) {
|
2402
2230
|
return ctx.notFound("contentType.notFound");
|
@@ -2418,13 +2246,13 @@ const contentTypes = {
|
|
2418
2246
|
const { userAbility } = ctx.state;
|
2419
2247
|
const { uid: uid2 } = ctx.params;
|
2420
2248
|
const { body } = ctx.request;
|
2421
|
-
const contentTypeService = getService$
|
2422
|
-
const metricsService = getService$
|
2249
|
+
const contentTypeService = getService$1("content-types");
|
2250
|
+
const metricsService = getService$1("metrics");
|
2423
2251
|
const contentType = await contentTypeService.findContentType(uid2);
|
2424
2252
|
if (!contentType) {
|
2425
2253
|
return ctx.notFound("contentType.notFound");
|
2426
2254
|
}
|
2427
|
-
if (!getService$
|
2255
|
+
if (!getService$1("permission").canConfigureContentType({ userAbility, contentType })) {
|
2428
2256
|
return ctx.forbidden();
|
2429
2257
|
}
|
2430
2258
|
let input;
|
@@ -2457,10 +2285,10 @@ const contentTypes = {
|
|
2457
2285
|
};
|
2458
2286
|
const init = {
|
2459
2287
|
getInitData(ctx) {
|
2460
|
-
const { toDto } = getService$
|
2461
|
-
const { findAllComponents } = getService$
|
2462
|
-
const { getAllFieldSizes } = getService$
|
2463
|
-
const { findAllContentTypes } = getService$
|
2288
|
+
const { toDto } = getService$1("data-mapper");
|
2289
|
+
const { findAllComponents } = getService$1("components");
|
2290
|
+
const { getAllFieldSizes } = getService$1("field-sizes");
|
2291
|
+
const { findAllContentTypes } = getService$1("content-types");
|
2464
2292
|
ctx.body = {
|
2465
2293
|
data: {
|
2466
2294
|
fieldSizes: getAllFieldSizes(),
|
@@ -2496,7 +2324,7 @@ const addFiltersClause = (params, filtersClause) => {
|
|
2496
2324
|
params.filters.$and.push(filtersClause);
|
2497
2325
|
};
|
2498
2326
|
const sanitizeMainField = (model, mainField, userAbility) => {
|
2499
|
-
const permissionChecker2 = getService$
|
2327
|
+
const permissionChecker2 = getService$1("permission-checker").create({
|
2500
2328
|
userAbility,
|
2501
2329
|
model: model.uid
|
2502
2330
|
});
|
@@ -2510,27 +2338,15 @@ const sanitizeMainField = (model, mainField, userAbility) => {
|
|
2510
2338
|
}
|
2511
2339
|
return mainField;
|
2512
2340
|
};
|
2513
|
-
const addStatusToRelations = async (
|
2514
|
-
if (!contentTypes$1.hasDraftAndPublish(strapi.
|
2515
|
-
return relations2;
|
2516
|
-
}
|
2517
|
-
const documentMetadata2 = getService$2("document-metadata");
|
2518
|
-
if (!relations2.length) {
|
2341
|
+
const addStatusToRelations = async (uid2, relations2) => {
|
2342
|
+
if (!contentTypes$1.hasDraftAndPublish(strapi.contentTypes[uid2])) {
|
2519
2343
|
return relations2;
|
2520
2344
|
}
|
2521
|
-
const
|
2522
|
-
const
|
2523
|
-
documentId: { $in: relations2.map((r) => r.documentId) },
|
2524
|
-
// NOTE: find the "opposite" status
|
2525
|
-
publishedAt: firstRelation.publishedAt !== null ? { $null: true } : { $notNull: true }
|
2526
|
-
};
|
2527
|
-
const availableStatus = await strapi.query(targetUid).findMany({
|
2528
|
-
select: ["id", "documentId", "locale", "updatedAt", "createdAt", "publishedAt"],
|
2529
|
-
filters
|
2530
|
-
});
|
2345
|
+
const documentMetadata2 = getService$1("document-metadata");
|
2346
|
+
const documentsAvailableStatus = await documentMetadata2.getManyAvailableStatus(uid2, relations2);
|
2531
2347
|
return relations2.map((relation) => {
|
2532
|
-
const availableStatuses =
|
2533
|
-
(availableDocument) => availableDocument.documentId === relation.documentId
|
2348
|
+
const availableStatuses = documentsAvailableStatus.filter(
|
2349
|
+
(availableDocument) => availableDocument.documentId === relation.documentId
|
2534
2350
|
);
|
2535
2351
|
return {
|
2536
2352
|
...relation,
|
@@ -2592,7 +2408,7 @@ const relations = {
|
|
2592
2408
|
ctx.request?.query?.locale
|
2593
2409
|
);
|
2594
2410
|
const { status } = validateStatus(sourceUid, ctx.request?.query?.status);
|
2595
|
-
const permissionChecker2 = getService$
|
2411
|
+
const permissionChecker2 = getService$1("permission-checker").create({
|
2596
2412
|
userAbility,
|
2597
2413
|
model
|
2598
2414
|
});
|
@@ -2617,7 +2433,7 @@ const relations = {
|
|
2617
2433
|
where.id = id;
|
2618
2434
|
}
|
2619
2435
|
const permissionQuery = await permissionChecker2.sanitizedQuery.read(ctx.query);
|
2620
|
-
const populate = await getService$
|
2436
|
+
const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
|
2621
2437
|
const currentEntity = await strapi.db.query(model).findOne({
|
2622
2438
|
where,
|
2623
2439
|
populate
|
@@ -2632,7 +2448,7 @@ const relations = {
|
|
2632
2448
|
}
|
2633
2449
|
entryId = currentEntity.id;
|
2634
2450
|
}
|
2635
|
-
const modelConfig = isComponent2 ? await getService$
|
2451
|
+
const modelConfig = isComponent2 ? await getService$1("components").findConfiguration(sourceSchema) : await getService$1("content-types").findConfiguration(sourceSchema);
|
2636
2452
|
const targetSchema = strapi.getModel(targetUid);
|
2637
2453
|
const mainField = flow(
|
2638
2454
|
prop(`metadatas.${targetField}.edit.mainField`),
|
@@ -2686,7 +2502,7 @@ const relations = {
|
|
2686
2502
|
}
|
2687
2503
|
} = await this.extractAndValidateRequestInfo(ctx, id);
|
2688
2504
|
const { idsToOmit, idsToInclude, _q, ...query } = ctx.request.query;
|
2689
|
-
const permissionChecker2 = getService$
|
2505
|
+
const permissionChecker2 = getService$1("permission-checker").create({
|
2690
2506
|
userAbility: ctx.state.userAbility,
|
2691
2507
|
model: targetUid
|
2692
2508
|
});
|
@@ -2759,33 +2575,21 @@ const relations = {
|
|
2759
2575
|
attribute,
|
2760
2576
|
targetField,
|
2761
2577
|
fieldsToSelect,
|
2762
|
-
|
2763
|
-
|
2764
|
-
|
2578
|
+
source: {
|
2579
|
+
schema: { uid: sourceUid }
|
2580
|
+
},
|
2581
|
+
target: {
|
2582
|
+
schema: { uid: targetUid }
|
2583
|
+
}
|
2765
2584
|
} = await this.extractAndValidateRequestInfo(ctx, id);
|
2766
|
-
const {
|
2767
|
-
const { uid: targetUid } = targetSchema;
|
2768
|
-
const permissionQuery = await getService$2("permission-checker").create({ userAbility, model: targetUid }).sanitizedQuery.read({ fields: fieldsToSelect });
|
2585
|
+
const permissionQuery = await getService$1("permission-checker").create({ userAbility, model: targetUid }).sanitizedQuery.read({ fields: fieldsToSelect });
|
2769
2586
|
const dbQuery = strapi.db.query(sourceUid);
|
2770
2587
|
const loadRelations = relations$1.isAnyToMany(attribute) ? (...args) => dbQuery.loadPages(...args) : (...args) => dbQuery.load(...args).then((res2) => ({ results: res2 ? [res2] : [] }));
|
2771
|
-
const filters = {};
|
2772
|
-
if (sourceSchema?.options?.draftAndPublish) {
|
2773
|
-
if (targetSchema?.options?.draftAndPublish) {
|
2774
|
-
if (status === "published") {
|
2775
|
-
filters.publishedAt = { $notNull: true };
|
2776
|
-
} else {
|
2777
|
-
filters.publishedAt = { $null: true };
|
2778
|
-
}
|
2779
|
-
}
|
2780
|
-
} else if (targetSchema?.options?.draftAndPublish) {
|
2781
|
-
filters.publishedAt = { $null: true };
|
2782
|
-
}
|
2783
2588
|
const res = await loadRelations({ id: entryId }, targetField, {
|
2784
|
-
select: ["id", "documentId", "locale", "publishedAt"
|
2589
|
+
select: ["id", "documentId", "locale", "publishedAt"],
|
2785
2590
|
ordering: "desc",
|
2786
2591
|
page: ctx.request.query.page,
|
2787
|
-
pageSize: ctx.request.query.pageSize
|
2788
|
-
filters
|
2592
|
+
pageSize: ctx.request.query.pageSize
|
2789
2593
|
});
|
2790
2594
|
const loadedIds = res.results.map((item) => item.id);
|
2791
2595
|
addFiltersClause(permissionQuery, { id: { $in: loadedIds } });
|
@@ -2806,10 +2610,10 @@ const relations = {
|
|
2806
2610
|
}
|
2807
2611
|
};
|
2808
2612
|
const buildPopulateFromQuery = async (query, model) => {
|
2809
|
-
return getService$
|
2613
|
+
return getService$1("populate-builder")(model).populateFromQuery(query).populateDeep(Infinity).countRelations().build();
|
2810
2614
|
};
|
2811
2615
|
const findDocument = async (query, uid2, opts = {}) => {
|
2812
|
-
const documentManager2 = getService$
|
2616
|
+
const documentManager2 = getService$1("document-manager");
|
2813
2617
|
const populate = await buildPopulateFromQuery(query, uid2);
|
2814
2618
|
return documentManager2.findMany({ ...opts, populate }, uid2).then((documents) => documents[0]);
|
2815
2619
|
};
|
@@ -2817,8 +2621,8 @@ const createOrUpdateDocument = async (ctx, opts) => {
|
|
2817
2621
|
const { user, userAbility } = ctx.state;
|
2818
2622
|
const { model } = ctx.params;
|
2819
2623
|
const { body, query } = ctx.request;
|
2820
|
-
const documentManager2 = getService$
|
2821
|
-
const permissionChecker2 = getService$
|
2624
|
+
const documentManager2 = getService$1("document-manager");
|
2625
|
+
const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
|
2822
2626
|
if (permissionChecker2.cannot.create() && permissionChecker2.cannot.update()) {
|
2823
2627
|
throw new errors.ForbiddenError();
|
2824
2628
|
}
|
@@ -2859,7 +2663,7 @@ const singleTypes = {
|
|
2859
2663
|
const { userAbility } = ctx.state;
|
2860
2664
|
const { model } = ctx.params;
|
2861
2665
|
const { query = {} } = ctx.request;
|
2862
|
-
const permissionChecker2 = getService$
|
2666
|
+
const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
|
2863
2667
|
if (permissionChecker2.cannot.read()) {
|
2864
2668
|
return ctx.forbidden();
|
2865
2669
|
}
|
@@ -2893,7 +2697,7 @@ const singleTypes = {
|
|
2893
2697
|
async createOrUpdate(ctx) {
|
2894
2698
|
const { userAbility } = ctx.state;
|
2895
2699
|
const { model } = ctx.params;
|
2896
|
-
const permissionChecker2 = getService$
|
2700
|
+
const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
|
2897
2701
|
const document = await createOrUpdateDocument(ctx);
|
2898
2702
|
const sanitizedDocument = await permissionChecker2.sanitizeOutput(document);
|
2899
2703
|
ctx.body = await formatDocumentWithMetadata(permissionChecker2, model, sanitizedDocument);
|
@@ -2902,8 +2706,8 @@ const singleTypes = {
|
|
2902
2706
|
const { userAbility } = ctx.state;
|
2903
2707
|
const { model } = ctx.params;
|
2904
2708
|
const { query = {} } = ctx.request;
|
2905
|
-
const documentManager2 = getService$
|
2906
|
-
const permissionChecker2 = getService$
|
2709
|
+
const documentManager2 = getService$1("document-manager");
|
2710
|
+
const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
|
2907
2711
|
if (permissionChecker2.cannot.delete()) {
|
2908
2712
|
return ctx.forbidden();
|
2909
2713
|
}
|
@@ -2931,8 +2735,8 @@ const singleTypes = {
|
|
2931
2735
|
const { userAbility } = ctx.state;
|
2932
2736
|
const { model } = ctx.params;
|
2933
2737
|
const { query = {} } = ctx.request;
|
2934
|
-
const documentManager2 = getService$
|
2935
|
-
const permissionChecker2 = getService$
|
2738
|
+
const documentManager2 = getService$1("document-manager");
|
2739
|
+
const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
|
2936
2740
|
if (permissionChecker2.cannot.publish()) {
|
2937
2741
|
return ctx.forbidden();
|
2938
2742
|
}
|
@@ -2960,8 +2764,8 @@ const singleTypes = {
|
|
2960
2764
|
body: { discardDraft, ...body },
|
2961
2765
|
query = {}
|
2962
2766
|
} = ctx.request;
|
2963
|
-
const documentManager2 = getService$
|
2964
|
-
const permissionChecker2 = getService$
|
2767
|
+
const documentManager2 = getService$1("document-manager");
|
2768
|
+
const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
|
2965
2769
|
if (permissionChecker2.cannot.unpublish()) {
|
2966
2770
|
return ctx.forbidden();
|
2967
2771
|
}
|
@@ -2995,8 +2799,8 @@ const singleTypes = {
|
|
2995
2799
|
const { userAbility } = ctx.state;
|
2996
2800
|
const { model } = ctx.params;
|
2997
2801
|
const { body, query = {} } = ctx.request;
|
2998
|
-
const documentManager2 = getService$
|
2999
|
-
const permissionChecker2 = getService$
|
2802
|
+
const documentManager2 = getService$1("document-manager");
|
2803
|
+
const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
|
3000
2804
|
if (permissionChecker2.cannot.discard()) {
|
3001
2805
|
return ctx.forbidden();
|
3002
2806
|
}
|
@@ -3019,8 +2823,8 @@ const singleTypes = {
|
|
3019
2823
|
const { userAbility } = ctx.state;
|
3020
2824
|
const { model } = ctx.params;
|
3021
2825
|
const { query } = ctx.request;
|
3022
|
-
const documentManager2 = getService$
|
3023
|
-
const permissionChecker2 = getService$
|
2826
|
+
const documentManager2 = getService$1("document-manager");
|
2827
|
+
const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
|
3024
2828
|
const { locale } = await getDocumentLocaleAndStatus(query, model);
|
3025
2829
|
if (permissionChecker2.cannot.read()) {
|
3026
2830
|
return ctx.forbidden();
|
@@ -3044,7 +2848,7 @@ const uid$1 = {
|
|
3044
2848
|
const { query = {} } = ctx.request;
|
3045
2849
|
const { locale } = await getDocumentLocaleAndStatus(query, contentTypeUID);
|
3046
2850
|
await validateUIDField(contentTypeUID, field);
|
3047
|
-
const uidService = getService$
|
2851
|
+
const uidService = getService$1("uid");
|
3048
2852
|
ctx.body = {
|
3049
2853
|
data: await uidService.generateUIDField({ contentTypeUID, field, data, locale })
|
3050
2854
|
};
|
@@ -3056,7 +2860,7 @@ const uid$1 = {
|
|
3056
2860
|
const { query = {} } = ctx.request;
|
3057
2861
|
const { locale } = await getDocumentLocaleAndStatus(query, contentTypeUID);
|
3058
2862
|
await validateUIDField(contentTypeUID, field);
|
3059
|
-
const uidService = getService$
|
2863
|
+
const uidService = getService$1("uid");
|
3060
2864
|
const isAvailable = await uidService.checkUIDAvailability({
|
3061
2865
|
contentTypeUID,
|
3062
2866
|
field,
|
@@ -3077,8 +2881,7 @@ const controllers = {
|
|
3077
2881
|
relations,
|
3078
2882
|
"single-types": singleTypes,
|
3079
2883
|
uid: uid$1,
|
3080
|
-
...history.controllers ? history.controllers : {}
|
3081
|
-
...preview.controllers ? preview.controllers : {}
|
2884
|
+
...history.controllers ? history.controllers : {}
|
3082
2885
|
};
|
3083
2886
|
const keys = {
|
3084
2887
|
CONFIGURATION: "configuration"
|
@@ -3229,12 +3032,12 @@ async function syncMetadatas(configuration, schema) {
|
|
3229
3032
|
return _.assign(metasWithDefaults, updatedMetas);
|
3230
3033
|
}
|
3231
3034
|
const getTargetSchema = (targetModel) => {
|
3232
|
-
return getService$
|
3035
|
+
return getService$1("content-types").findContentType(targetModel);
|
3233
3036
|
};
|
3234
3037
|
const DEFAULT_LIST_LENGTH = 4;
|
3235
3038
|
const MAX_ROW_SIZE = 12;
|
3236
3039
|
const isAllowedFieldSize = (type, size) => {
|
3237
|
-
const { getFieldSize } = getService$
|
3040
|
+
const { getFieldSize } = getService$1("field-sizes");
|
3238
3041
|
const fieldSize = getFieldSize(type);
|
3239
3042
|
if (!fieldSize.isResizable && size !== fieldSize.default) {
|
3240
3043
|
return false;
|
@@ -3242,7 +3045,7 @@ const isAllowedFieldSize = (type, size) => {
|
|
3242
3045
|
return size <= MAX_ROW_SIZE;
|
3243
3046
|
};
|
3244
3047
|
const getDefaultFieldSize = (attribute) => {
|
3245
|
-
const { hasFieldSize, getFieldSize } = getService$
|
3048
|
+
const { hasFieldSize, getFieldSize } = getService$1("field-sizes");
|
3246
3049
|
return getFieldSize(hasFieldSize(attribute.customField) ? attribute.customField : attribute.type).default;
|
3247
3050
|
};
|
3248
3051
|
async function createDefaultLayouts(schema) {
|
@@ -3277,7 +3080,7 @@ function syncLayouts(configuration, schema) {
|
|
3277
3080
|
for (const el of row) {
|
3278
3081
|
if (!hasEditableAttribute(schema, el.name))
|
3279
3082
|
continue;
|
3280
|
-
const { hasFieldSize } = getService$
|
3083
|
+
const { hasFieldSize } = getService$1("field-sizes");
|
3281
3084
|
const fieldType = hasFieldSize(schema.attributes[el.name].customField) ? schema.attributes[el.name].customField : schema.attributes[el.name].type;
|
3282
3085
|
if (!isAllowedFieldSize(fieldType, el.size)) {
|
3283
3086
|
elementsToReAppend.push(el.name);
|
@@ -3417,17 +3220,17 @@ const configurationService$1 = createConfigurationService({
|
|
3417
3220
|
isComponent: true,
|
3418
3221
|
prefix: STORE_KEY_PREFIX,
|
3419
3222
|
getModels() {
|
3420
|
-
const { toContentManagerModel } = getService$
|
3223
|
+
const { toContentManagerModel } = getService$1("data-mapper");
|
3421
3224
|
return mapValues(toContentManagerModel, strapi.components);
|
3422
3225
|
}
|
3423
3226
|
});
|
3424
3227
|
const components = ({ strapi: strapi2 }) => ({
|
3425
3228
|
findAllComponents() {
|
3426
|
-
const { toContentManagerModel } = getService$
|
3229
|
+
const { toContentManagerModel } = getService$1("data-mapper");
|
3427
3230
|
return Object.values(strapi2.components).map(toContentManagerModel);
|
3428
3231
|
},
|
3429
3232
|
findComponent(uid2) {
|
3430
|
-
const { toContentManagerModel } = getService$
|
3233
|
+
const { toContentManagerModel } = getService$1("data-mapper");
|
3431
3234
|
const component = strapi2.components[uid2];
|
3432
3235
|
return isNil$1(component) ? component : toContentManagerModel(component);
|
3433
3236
|
},
|
@@ -3478,17 +3281,17 @@ const configurationService = createConfigurationService({
|
|
3478
3281
|
storeUtils,
|
3479
3282
|
prefix: "content_types",
|
3480
3283
|
getModels() {
|
3481
|
-
const { toContentManagerModel } = getService$
|
3284
|
+
const { toContentManagerModel } = getService$1("data-mapper");
|
3482
3285
|
return mapValues(toContentManagerModel, strapi.contentTypes);
|
3483
3286
|
}
|
3484
3287
|
});
|
3485
3288
|
const service = ({ strapi: strapi2 }) => ({
|
3486
3289
|
findAllContentTypes() {
|
3487
|
-
const { toContentManagerModel } = getService$
|
3290
|
+
const { toContentManagerModel } = getService$1("data-mapper");
|
3488
3291
|
return Object.values(strapi2.contentTypes).map(toContentManagerModel);
|
3489
3292
|
},
|
3490
3293
|
findContentType(uid2) {
|
3491
|
-
const { toContentManagerModel } = getService$
|
3294
|
+
const { toContentManagerModel } = getService$1("data-mapper");
|
3492
3295
|
const contentType = strapi2.contentTypes[uid2];
|
3493
3296
|
return isNil$1(contentType) ? contentType : toContentManagerModel(contentType);
|
3494
3297
|
},
|
@@ -3517,7 +3320,7 @@ const service = ({ strapi: strapi2 }) => ({
|
|
3517
3320
|
return this.findConfiguration(contentType);
|
3518
3321
|
},
|
3519
3322
|
findComponentsConfigurations(contentType) {
|
3520
|
-
return getService$
|
3323
|
+
return getService$1("components").findComponentsConfigurations(contentType);
|
3521
3324
|
},
|
3522
3325
|
syncConfigurations() {
|
3523
3326
|
return configurationService.syncConfigurations();
|
@@ -3789,7 +3592,7 @@ const permission = ({ strapi: strapi2 }) => ({
|
|
3789
3592
|
return userAbility.can(action);
|
3790
3593
|
},
|
3791
3594
|
async registerPermissions() {
|
3792
|
-
const displayedContentTypes = getService$
|
3595
|
+
const displayedContentTypes = getService$1("content-types").findDisplayedContentTypes();
|
3793
3596
|
const contentTypesUids = displayedContentTypes.map(prop("uid"));
|
3794
3597
|
const actions = [
|
3795
3598
|
{
|
@@ -4065,7 +3868,7 @@ const getQueryPopulate = async (uid2, query) => {
|
|
4065
3868
|
return populateQuery;
|
4066
3869
|
};
|
4067
3870
|
const buildDeepPopulate = (uid2) => {
|
4068
|
-
return getService$
|
3871
|
+
return getService$1("populate-builder")(uid2).populateDeep(Infinity).countRelations().build();
|
4069
3872
|
};
|
4070
3873
|
const populateBuilder = (uid2) => {
|
4071
3874
|
let getInitialPopulate = async () => {
|
@@ -4250,9 +4053,7 @@ const documentMetadata = ({ strapi: strapi2 }) => ({
|
|
4250
4053
|
*/
|
4251
4054
|
async getAvailableLocales(uid2, version, allVersions, validatableFields = []) {
|
4252
4055
|
const versionsByLocale = groupBy("locale", allVersions);
|
4253
|
-
|
4254
|
-
delete versionsByLocale[version.locale];
|
4255
|
-
}
|
4056
|
+
delete versionsByLocale[version.locale];
|
4256
4057
|
const model = strapi2.getModel(uid2);
|
4257
4058
|
const keysToKeep = [...AVAILABLE_LOCALES_FIELDS, ...validatableFields];
|
4258
4059
|
const traversalFunction = async (localeVersion) => traverseEntity(
|
@@ -4608,8 +4409,7 @@ const services = {
|
|
4608
4409
|
permission,
|
4609
4410
|
"populate-builder": populateBuilder$1,
|
4610
4411
|
uid,
|
4611
|
-
...history.services ? history.services : {}
|
4612
|
-
...preview.services ? preview.services : {}
|
4412
|
+
...history.services ? history.services : {}
|
4613
4413
|
};
|
4614
4414
|
const index = () => {
|
4615
4415
|
return {
|