@strapi/content-manager 0.0.0-next.b558642be856459a3e6c076f5d76fffbfc5fc5a1 → 0.0.0-next.bec3f8cddf61be32ee5516609a1d4d6032933972

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.
Files changed (113) hide show
  1. package/dist/_chunks/{ComponentConfigurationPage-CIjXcRAB.mjs → ComponentConfigurationPage-BUOQFZ08.mjs} +3 -3
  2. package/dist/_chunks/{ComponentConfigurationPage-CIjXcRAB.mjs.map → ComponentConfigurationPage-BUOQFZ08.mjs.map} +1 -1
  3. package/dist/_chunks/{ComponentConfigurationPage-gsCd80MU.js → ComponentConfigurationPage-WtZ2yaRP.js} +3 -3
  4. package/dist/_chunks/{ComponentConfigurationPage-gsCd80MU.js.map → ComponentConfigurationPage-WtZ2yaRP.js.map} +1 -1
  5. package/dist/_chunks/{EditConfigurationPage-DHDQKBzw.js → EditConfigurationPage-BVrCP5lF.js} +3 -3
  6. package/dist/_chunks/{EditConfigurationPage-DHDQKBzw.js.map → EditConfigurationPage-BVrCP5lF.js.map} +1 -1
  7. package/dist/_chunks/{EditConfigurationPage-BglmD_BF.mjs → EditConfigurationPage-D7HkxcAN.mjs} +3 -3
  8. package/dist/_chunks/{EditConfigurationPage-BglmD_BF.mjs.map → EditConfigurationPage-D7HkxcAN.mjs.map} +1 -1
  9. package/dist/_chunks/{EditViewPage-C4iTxUPU.js → EditViewPage-BKQ83NAk.js} +3 -3
  10. package/dist/_chunks/{EditViewPage-C4iTxUPU.js.map → EditViewPage-BKQ83NAk.js.map} +1 -1
  11. package/dist/_chunks/{EditViewPage-CiwVPMaK.mjs → EditViewPage-zKmMBER4.mjs} +3 -3
  12. package/dist/_chunks/{EditViewPage-CiwVPMaK.mjs.map → EditViewPage-zKmMBER4.mjs.map} +1 -1
  13. package/dist/_chunks/{Field-DIjL1b5d.mjs → Field-BbrX_tUG.mjs} +4 -4
  14. package/dist/_chunks/Field-BbrX_tUG.mjs.map +1 -0
  15. package/dist/_chunks/{Field-DhXEK8y1.js → Field-BhN0lyyZ.js} +4 -4
  16. package/dist/_chunks/Field-BhN0lyyZ.js.map +1 -0
  17. package/dist/_chunks/{Form-CmNesrvR.mjs → Form-B-E8l73g.mjs} +2 -2
  18. package/dist/_chunks/{Form-CmNesrvR.mjs.map → Form-B-E8l73g.mjs.map} +1 -1
  19. package/dist/_chunks/{Form-CwmJ4sWe.js → Form-CkbrtNZd.js} +2 -2
  20. package/dist/_chunks/{Form-CwmJ4sWe.js.map → Form-CkbrtNZd.js.map} +1 -1
  21. package/dist/_chunks/{History-BLCCNgCt.js → History-B2Dg9q7H.js} +17 -33
  22. package/dist/_chunks/History-B2Dg9q7H.js.map +1 -0
  23. package/dist/_chunks/{History-D-99Wh30.mjs → History-C72HQ0-i.mjs} +17 -33
  24. package/dist/_chunks/History-C72HQ0-i.mjs.map +1 -0
  25. package/dist/_chunks/{ListConfigurationPage-DxWpeZrO.js → ListConfigurationPage-BQCc3BnJ.js} +2 -2
  26. package/dist/_chunks/{ListConfigurationPage-DxWpeZrO.js.map → ListConfigurationPage-BQCc3BnJ.js.map} +1 -1
  27. package/dist/_chunks/{ListConfigurationPage-JPWZz7Kg.mjs → ListConfigurationPage-BalSo5dp.mjs} +2 -2
  28. package/dist/_chunks/{ListConfigurationPage-JPWZz7Kg.mjs.map → ListConfigurationPage-BalSo5dp.mjs.map} +1 -1
  29. package/dist/_chunks/{ListViewPage-CIQekSFz.js → ListViewPage-Cu5dZKZe.js} +3 -3
  30. package/dist/_chunks/{ListViewPage-CIQekSFz.js.map → ListViewPage-Cu5dZKZe.js.map} +1 -1
  31. package/dist/_chunks/{ListViewPage-DSK3f0ST.mjs → ListViewPage-Dfue5wQ2.mjs} +3 -3
  32. package/dist/_chunks/{ListViewPage-DSK3f0ST.mjs.map → ListViewPage-Dfue5wQ2.mjs.map} +1 -1
  33. package/dist/_chunks/{NoContentTypePage-D99LU1YP.mjs → NoContentTypePage-BLC8M9U0.mjs} +2 -2
  34. package/dist/_chunks/{NoContentTypePage-D99LU1YP.mjs.map → NoContentTypePage-BLC8M9U0.mjs.map} +1 -1
  35. package/dist/_chunks/{NoContentTypePage-C5cxKvC2.js → NoContentTypePage-MGzn4JPu.js} +2 -2
  36. package/dist/_chunks/{NoContentTypePage-C5cxKvC2.js.map → NoContentTypePage-MGzn4JPu.js.map} +1 -1
  37. package/dist/_chunks/{NoPermissionsPage-DBrBw-0y.mjs → NoPermissionsPage-BpAoEQy_.mjs} +2 -2
  38. package/dist/_chunks/{NoPermissionsPage-DBrBw-0y.mjs.map → NoPermissionsPage-BpAoEQy_.mjs.map} +1 -1
  39. package/dist/_chunks/{NoPermissionsPage-Oy4tmUrW.js → NoPermissionsPage-DJPwEpOD.js} +2 -2
  40. package/dist/_chunks/{NoPermissionsPage-Oy4tmUrW.js.map → NoPermissionsPage-DJPwEpOD.js.map} +1 -1
  41. package/dist/_chunks/{Relations-BBmhcWFV.mjs → Relations-BULOkyWN.mjs} +6 -3
  42. package/dist/_chunks/Relations-BULOkyWN.mjs.map +1 -0
  43. package/dist/_chunks/{Relations-eG-9p_qS.js → Relations-DTiqnyGx.js} +6 -3
  44. package/dist/_chunks/Relations-DTiqnyGx.js.map +1 -0
  45. package/dist/_chunks/{en-Bm0D0IWz.js → en-C-J4DGEe.js} +4 -2
  46. package/dist/_chunks/{en-Bm0D0IWz.js.map → en-C-J4DGEe.js.map} +1 -1
  47. package/dist/_chunks/{en-DKV44jRb.mjs → en-DPfZ6tPQ.mjs} +4 -2
  48. package/dist/_chunks/{en-DKV44jRb.mjs.map → en-DPfZ6tPQ.mjs.map} +1 -1
  49. package/dist/_chunks/{es-EUonQTon.js → es-9K52xZIr.js} +2 -2
  50. package/dist/_chunks/{ja-CcFe8diO.js.map → es-9K52xZIr.js.map} +1 -1
  51. package/dist/_chunks/{es-CeXiYflN.mjs → es-D34tqjMw.mjs} +2 -2
  52. package/dist/_chunks/{es-CeXiYflN.mjs.map → es-D34tqjMw.mjs.map} +1 -1
  53. package/dist/_chunks/{fr-CD9VFbPM.mjs → fr--pg5jUbt.mjs} +13 -3
  54. package/dist/_chunks/{fr-CD9VFbPM.mjs.map → fr--pg5jUbt.mjs.map} +1 -1
  55. package/dist/_chunks/{fr-B7kGGg3E.js → fr-B2Kyv8Z9.js} +13 -3
  56. package/dist/_chunks/{fr-B7kGGg3E.js.map → fr-B2Kyv8Z9.js.map} +1 -1
  57. package/dist/_chunks/{index-BIWDoFLK.js → index-76eawJUd.js} +55 -13
  58. package/dist/_chunks/index-76eawJUd.js.map +1 -0
  59. package/dist/_chunks/{index-BrUzbQ30.mjs → index-DW7xp_LG.mjs} +55 -13
  60. package/dist/_chunks/index-DW7xp_LG.mjs.map +1 -0
  61. package/dist/_chunks/{ja-CcFe8diO.js → ja-7sfIbjxE.js} +2 -2
  62. package/dist/_chunks/{es-EUonQTon.js.map → ja-7sfIbjxE.js.map} +1 -1
  63. package/dist/_chunks/{ja-CtsUxOvk.mjs → ja-BHqhDq4V.mjs} +2 -2
  64. package/dist/_chunks/{ja-CtsUxOvk.mjs.map → ja-BHqhDq4V.mjs.map} +1 -1
  65. package/dist/_chunks/{layout-lMc9i1-Z.js → layout-CVz8WiDC.js} +3 -3
  66. package/dist/_chunks/{layout-lMc9i1-Z.js.map → layout-CVz8WiDC.js.map} +1 -1
  67. package/dist/_chunks/{layout-_5-cXs34.mjs → layout-DNfLIjbP.mjs} +3 -3
  68. package/dist/_chunks/{layout-_5-cXs34.mjs.map → layout-DNfLIjbP.mjs.map} +1 -1
  69. package/dist/_chunks/{relations-BRHithi8.js → relations-B6K4WRjW.js} +2 -2
  70. package/dist/_chunks/{relations-BRHithi8.js.map → relations-B6K4WRjW.js.map} +1 -1
  71. package/dist/_chunks/{relations-B_VLk-DD.mjs → relations-ByHSIjSe.mjs} +2 -2
  72. package/dist/_chunks/{relations-B_VLk-DD.mjs.map → relations-ByHSIjSe.mjs.map} +1 -1
  73. package/dist/admin/index.js +1 -1
  74. package/dist/admin/index.mjs +1 -1
  75. package/dist/admin/src/preview/components/PreviewSidePanel.d.ts +3 -0
  76. package/dist/admin/src/preview/index.d.ts +1 -1
  77. package/dist/admin/src/preview/services/preview.d.ts +3 -0
  78. package/dist/server/index.js +237 -123
  79. package/dist/server/index.js.map +1 -1
  80. package/dist/server/index.mjs +237 -123
  81. package/dist/server/index.mjs.map +1 -1
  82. package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
  83. package/dist/server/src/history/services/utils.d.ts.map +1 -1
  84. package/dist/server/src/preview/controllers/preview.d.ts +6 -2
  85. package/dist/server/src/preview/controllers/preview.d.ts.map +1 -1
  86. package/dist/server/src/preview/controllers/validation/preview.d.ts +6 -0
  87. package/dist/server/src/preview/controllers/validation/preview.d.ts.map +1 -0
  88. package/dist/server/src/preview/index.d.ts.map +1 -1
  89. package/dist/server/src/preview/services/index.d.ts +12 -1
  90. package/dist/server/src/preview/services/index.d.ts.map +1 -1
  91. package/dist/server/src/preview/services/preview-config.d.ts +30 -0
  92. package/dist/server/src/preview/services/preview-config.d.ts.map +1 -0
  93. package/dist/server/src/preview/services/preview.d.ts +7 -1
  94. package/dist/server/src/preview/services/preview.d.ts.map +1 -1
  95. package/dist/server/src/preview/utils.d.ts +12 -1
  96. package/dist/server/src/preview/utils.d.ts.map +1 -1
  97. package/dist/shared/contracts/index.d.ts +1 -0
  98. package/dist/shared/contracts/index.d.ts.map +1 -1
  99. package/dist/shared/contracts/preview.d.ts +27 -0
  100. package/dist/shared/contracts/preview.d.ts.map +1 -0
  101. package/dist/shared/index.js +4 -0
  102. package/dist/shared/index.js.map +1 -1
  103. package/dist/shared/index.mjs +4 -0
  104. package/dist/shared/index.mjs.map +1 -1
  105. package/package.json +7 -7
  106. package/dist/_chunks/Field-DIjL1b5d.mjs.map +0 -1
  107. package/dist/_chunks/Field-DhXEK8y1.js.map +0 -1
  108. package/dist/_chunks/History-BLCCNgCt.js.map +0 -1
  109. package/dist/_chunks/History-D-99Wh30.mjs.map +0 -1
  110. package/dist/_chunks/Relations-BBmhcWFV.mjs.map +0 -1
  111. package/dist/_chunks/Relations-eG-9p_qS.js.map +0 -1
  112. package/dist/_chunks/index-BIWDoFLK.js.map +0 -1
  113. package/dist/_chunks/index-BrUzbQ30.mjs.map +0 -1
@@ -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$1 = (name) => {
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$1("permission-checker").create({
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$1("permission-checker").create({
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 {
@@ -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] = { populate };
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] = { populate: getDeepPopulate2(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$1("permission-checker").create({
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$1("permission-checker").create({
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.toISOString()
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;
@@ -676,10 +697,10 @@ 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
705
  controllers: controllers$2,
685
706
  services: services$2,
@@ -709,7 +730,7 @@ const previewRouter = {
709
730
  method: "GET",
710
731
  info,
711
732
  path: "/preview/url/:contentType",
712
- handler: "preview.getPreviewURL",
733
+ handler: "preview.getPreviewUrl",
713
734
  config: {
714
735
  policies: ["admin::isAuthenticatedAdmin"]
715
736
  }
@@ -719,12 +740,52 @@ const previewRouter = {
719
740
  const routes$1 = {
720
741
  preview: previewRouter
721
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
+ };
722
772
  const createPreviewController = () => {
723
773
  return {
724
- async getPreviewURL(ctx) {
725
- ctx.request;
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
+ }
726
787
  return {
727
- data: { url: "" }
788
+ data: { url }
728
789
  };
729
790
  }
730
791
  };
@@ -736,10 +797,62 @@ const controllers$1 = {
736
797
  * passing a controller factory as the value, instead of a controller object directly
737
798
  */
738
799
  };
739
- const createPreviewService = () => {
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
+ };
740
852
  };
741
853
  const services$1 = {
742
- preview: createPreviewService
854
+ preview: createPreviewService,
855
+ "preview-config": createPreviewConfigService
743
856
  };
744
857
  const getFeature = () => {
745
858
  if (!strapi.features.future.isEnabled(FEATURE_ID)) {
@@ -748,7 +861,8 @@ const getFeature = () => {
748
861
  return {
749
862
  bootstrap() {
750
863
  console.log("Bootstrapping preview server");
751
- strapi.config.get("admin.preview");
864
+ const config = getService(strapi, "preview-config");
865
+ config.validate();
752
866
  },
753
867
  routes: routes$1,
754
868
  controllers: controllers$1,
@@ -760,10 +874,10 @@ const bootstrap = async () => {
760
874
  Object.entries(ALLOWED_WEBHOOK_EVENTS).forEach(([key, value]) => {
761
875
  strapi.get("webhookStore").addAllowedEvent(key, value);
762
876
  });
763
- getService$1("field-sizes").setCustomFieldInputSizes();
764
- await getService$1("components").syncConfigurations();
765
- await getService$1("content-types").syncConfigurations();
766
- await getService$1("permission").registerPermissions();
877
+ getService$2("field-sizes").setCustomFieldInputSizes();
878
+ await getService$2("components").syncConfigurations();
879
+ await getService$2("content-types").syncConfigurations();
880
+ await getService$2("permission").registerPermissions();
767
881
  await history.bootstrap?.({ strapi });
768
882
  await preview.bootstrap?.({ strapi });
769
883
  };
@@ -1513,7 +1627,7 @@ const createMetadasSchema = (schema) => {
1513
1627
  if (!value) {
1514
1628
  return yup$1.string();
1515
1629
  }
1516
- const targetSchema = getService$1("content-types").findContentType(
1630
+ const targetSchema = getService$2("content-types").findContentType(
1517
1631
  schema.attributes[key].targetModel
1518
1632
  );
1519
1633
  if (!targetSchema) {
@@ -1682,7 +1796,7 @@ const getDocumentLocaleAndStatus = async (request, model, opts = { allowMultiple
1682
1796
  }
1683
1797
  };
1684
1798
  const formatDocumentWithMetadata = async (permissionChecker2, uid2, document, opts = {}) => {
1685
- const documentMetadata2 = getService$1("document-metadata");
1799
+ const documentMetadata2 = getService$2("document-metadata");
1686
1800
  const serviceOutput = await documentMetadata2.formatDocumentWithMetadata(uid2, document, opts);
1687
1801
  let {
1688
1802
  meta: { availableLocales, availableStatus }
@@ -1708,8 +1822,8 @@ const createDocument = async (ctx, opts) => {
1708
1822
  const { userAbility, user } = ctx.state;
1709
1823
  const { model } = ctx.params;
1710
1824
  const { body } = ctx.request;
1711
- const documentManager2 = getService$1("document-manager");
1712
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
1825
+ const documentManager2 = getService$2("document-manager");
1826
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
1713
1827
  if (permissionChecker2.cannot.create()) {
1714
1828
  throw new errors.ForbiddenError();
1715
1829
  }
@@ -1729,13 +1843,13 @@ const updateDocument = async (ctx, opts) => {
1729
1843
  const { userAbility, user } = ctx.state;
1730
1844
  const { id, model } = ctx.params;
1731
1845
  const { body } = ctx.request;
1732
- const documentManager2 = getService$1("document-manager");
1733
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
1846
+ const documentManager2 = getService$2("document-manager");
1847
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
1734
1848
  if (permissionChecker2.cannot.update()) {
1735
1849
  throw new errors.ForbiddenError();
1736
1850
  }
1737
1851
  const permissionQuery = await permissionChecker2.sanitizedQuery.update(ctx.query);
1738
- const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
1852
+ const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
1739
1853
  const { locale } = await getDocumentLocaleAndStatus(body, model);
1740
1854
  const [documentVersion, documentExists] = await Promise.all([
1741
1855
  documentManager2.findOne(id, model, { populate, locale, status: "draft" }),
@@ -1766,14 +1880,14 @@ const collectionTypes = {
1766
1880
  const { userAbility } = ctx.state;
1767
1881
  const { model } = ctx.params;
1768
1882
  const { query } = ctx.request;
1769
- const documentMetadata2 = getService$1("document-metadata");
1770
- const documentManager2 = getService$1("document-manager");
1771
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
1883
+ const documentMetadata2 = getService$2("document-metadata");
1884
+ const documentManager2 = getService$2("document-manager");
1885
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
1772
1886
  if (permissionChecker2.cannot.read()) {
1773
1887
  return ctx.forbidden();
1774
1888
  }
1775
1889
  const permissionQuery = await permissionChecker2.sanitizedQuery.read(query);
1776
- const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(1).countRelations({ toOne: false, toMany: true }).build();
1890
+ const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(1).countRelations({ toOne: false, toMany: true }).build();
1777
1891
  const { locale, status } = await getDocumentLocaleAndStatus(query, model);
1778
1892
  const { results: documents, pagination: pagination2 } = await documentManager2.findPage(
1779
1893
  { ...permissionQuery, populate, locale, status },
@@ -1802,13 +1916,13 @@ const collectionTypes = {
1802
1916
  async findOne(ctx) {
1803
1917
  const { userAbility } = ctx.state;
1804
1918
  const { model, id } = ctx.params;
1805
- const documentManager2 = getService$1("document-manager");
1806
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
1919
+ const documentManager2 = getService$2("document-manager");
1920
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
1807
1921
  if (permissionChecker2.cannot.read()) {
1808
1922
  return ctx.forbidden();
1809
1923
  }
1810
1924
  const permissionQuery = await permissionChecker2.sanitizedQuery.read(ctx.query);
1811
- const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(Infinity).countRelations().build();
1925
+ const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(Infinity).countRelations().build();
1812
1926
  const { locale, status } = await getDocumentLocaleAndStatus(ctx.query, model);
1813
1927
  const version = await documentManager2.findOne(id, model, {
1814
1928
  populate,
@@ -1839,7 +1953,7 @@ const collectionTypes = {
1839
1953
  async create(ctx) {
1840
1954
  const { userAbility } = ctx.state;
1841
1955
  const { model } = ctx.params;
1842
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
1956
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
1843
1957
  const [totalEntries, document] = await Promise.all([
1844
1958
  strapi.db.query(model).count(),
1845
1959
  createDocument(ctx)
@@ -1860,7 +1974,7 @@ const collectionTypes = {
1860
1974
  async update(ctx) {
1861
1975
  const { userAbility } = ctx.state;
1862
1976
  const { model } = ctx.params;
1863
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
1977
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
1864
1978
  const updatedVersion = await updateDocument(ctx);
1865
1979
  const sanitizedVersion = await permissionChecker2.sanitizeOutput(updatedVersion);
1866
1980
  ctx.body = await formatDocumentWithMetadata(permissionChecker2, model, sanitizedVersion);
@@ -1869,13 +1983,13 @@ const collectionTypes = {
1869
1983
  const { userAbility, user } = ctx.state;
1870
1984
  const { model, sourceId: id } = ctx.params;
1871
1985
  const { body } = ctx.request;
1872
- const documentManager2 = getService$1("document-manager");
1873
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
1986
+ const documentManager2 = getService$2("document-manager");
1987
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
1874
1988
  if (permissionChecker2.cannot.create()) {
1875
1989
  return ctx.forbidden();
1876
1990
  }
1877
1991
  const permissionQuery = await permissionChecker2.sanitizedQuery.create(ctx.query);
1878
- const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
1992
+ const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
1879
1993
  const { locale } = await getDocumentLocaleAndStatus(body, model);
1880
1994
  const document = await documentManager2.findOne(id, model, {
1881
1995
  populate,
@@ -1914,13 +2028,13 @@ const collectionTypes = {
1914
2028
  async delete(ctx) {
1915
2029
  const { userAbility } = ctx.state;
1916
2030
  const { id, model } = ctx.params;
1917
- const documentManager2 = getService$1("document-manager");
1918
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2031
+ const documentManager2 = getService$2("document-manager");
2032
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
1919
2033
  if (permissionChecker2.cannot.delete()) {
1920
2034
  return ctx.forbidden();
1921
2035
  }
1922
2036
  const permissionQuery = await permissionChecker2.sanitizedQuery.delete(ctx.query);
1923
- const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
2037
+ const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
1924
2038
  const { locale } = await getDocumentLocaleAndStatus(ctx.query, model);
1925
2039
  const documentLocales = await documentManager2.findLocales(id, model, { populate, locale });
1926
2040
  if (documentLocales.length === 0) {
@@ -1942,14 +2056,14 @@ const collectionTypes = {
1942
2056
  const { userAbility } = ctx.state;
1943
2057
  const { id, model } = ctx.params;
1944
2058
  const { body } = ctx.request;
1945
- const documentManager2 = getService$1("document-manager");
1946
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2059
+ const documentManager2 = getService$2("document-manager");
2060
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
1947
2061
  if (permissionChecker2.cannot.publish()) {
1948
2062
  return ctx.forbidden();
1949
2063
  }
1950
2064
  const publishedDocument = await strapi.db.transaction(async () => {
1951
2065
  const permissionQuery = await permissionChecker2.sanitizedQuery.publish(ctx.query);
1952
- const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(Infinity).countRelations().build();
2066
+ const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(Infinity).countRelations().build();
1953
2067
  let document;
1954
2068
  const { locale } = await getDocumentLocaleAndStatus(body, model);
1955
2069
  const isCreate = isNil$1(id);
@@ -1997,13 +2111,13 @@ const collectionTypes = {
1997
2111
  const { body } = ctx.request;
1998
2112
  const { documentIds } = body;
1999
2113
  await validateBulkActionInput(body);
2000
- const documentManager2 = getService$1("document-manager");
2001
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2114
+ const documentManager2 = getService$2("document-manager");
2115
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2002
2116
  if (permissionChecker2.cannot.publish()) {
2003
2117
  return ctx.forbidden();
2004
2118
  }
2005
2119
  const permissionQuery = await permissionChecker2.sanitizedQuery.publish(ctx.query);
2006
- const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(Infinity).countRelations().build();
2120
+ const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(Infinity).countRelations().build();
2007
2121
  const { locale } = await getDocumentLocaleAndStatus(body, model, {
2008
2122
  allowMultipleLocales: true
2009
2123
  });
@@ -2028,8 +2142,8 @@ const collectionTypes = {
2028
2142
  const { body } = ctx.request;
2029
2143
  const { documentIds } = body;
2030
2144
  await validateBulkActionInput(body);
2031
- const documentManager2 = getService$1("document-manager");
2032
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2145
+ const documentManager2 = getService$2("document-manager");
2146
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2033
2147
  if (permissionChecker2.cannot.unpublish()) {
2034
2148
  return ctx.forbidden();
2035
2149
  }
@@ -2058,8 +2172,8 @@ const collectionTypes = {
2058
2172
  const {
2059
2173
  body: { discardDraft, ...body }
2060
2174
  } = ctx.request;
2061
- const documentManager2 = getService$1("document-manager");
2062
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2175
+ const documentManager2 = getService$2("document-manager");
2176
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2063
2177
  if (permissionChecker2.cannot.unpublish()) {
2064
2178
  return ctx.forbidden();
2065
2179
  }
@@ -2067,7 +2181,7 @@ const collectionTypes = {
2067
2181
  return ctx.forbidden();
2068
2182
  }
2069
2183
  const permissionQuery = await permissionChecker2.sanitizedQuery.unpublish(ctx.query);
2070
- const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
2184
+ const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
2071
2185
  const { locale } = await getDocumentLocaleAndStatus(body, model);
2072
2186
  const document = await documentManager2.findOne(id, model, {
2073
2187
  populate,
@@ -2098,13 +2212,13 @@ const collectionTypes = {
2098
2212
  const { userAbility } = ctx.state;
2099
2213
  const { id, model } = ctx.params;
2100
2214
  const { body } = ctx.request;
2101
- const documentManager2 = getService$1("document-manager");
2102
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2215
+ const documentManager2 = getService$2("document-manager");
2216
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2103
2217
  if (permissionChecker2.cannot.discard()) {
2104
2218
  return ctx.forbidden();
2105
2219
  }
2106
2220
  const permissionQuery = await permissionChecker2.sanitizedQuery.discard(ctx.query);
2107
- const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
2221
+ const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
2108
2222
  const { locale } = await getDocumentLocaleAndStatus(body, model);
2109
2223
  const document = await documentManager2.findOne(id, model, {
2110
2224
  populate,
@@ -2129,13 +2243,13 @@ const collectionTypes = {
2129
2243
  const { query, body } = ctx.request;
2130
2244
  const { documentIds } = body;
2131
2245
  await validateBulkActionInput(body);
2132
- const documentManager2 = getService$1("document-manager");
2133
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2246
+ const documentManager2 = getService$2("document-manager");
2247
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2134
2248
  if (permissionChecker2.cannot.delete()) {
2135
2249
  return ctx.forbidden();
2136
2250
  }
2137
2251
  const permissionQuery = await permissionChecker2.sanitizedQuery.delete(query);
2138
- const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
2252
+ const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
2139
2253
  const { locale } = await getDocumentLocaleAndStatus(body, model);
2140
2254
  const documentLocales = await documentManager2.findLocales(documentIds, model, {
2141
2255
  populate,
@@ -2156,13 +2270,13 @@ const collectionTypes = {
2156
2270
  async countDraftRelations(ctx) {
2157
2271
  const { userAbility } = ctx.state;
2158
2272
  const { model, id } = ctx.params;
2159
- const documentManager2 = getService$1("document-manager");
2160
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2273
+ const documentManager2 = getService$2("document-manager");
2274
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2161
2275
  if (permissionChecker2.cannot.read()) {
2162
2276
  return ctx.forbidden();
2163
2277
  }
2164
2278
  const permissionQuery = await permissionChecker2.sanitizedQuery.read(ctx.query);
2165
- const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
2279
+ const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
2166
2280
  const { locale, status } = await getDocumentLocaleAndStatus(ctx.query, model);
2167
2281
  const entity = await documentManager2.findOne(id, model, { populate, locale, status });
2168
2282
  if (!entity) {
@@ -2181,8 +2295,8 @@ const collectionTypes = {
2181
2295
  const ids = ctx.request.query.documentIds;
2182
2296
  const locale = ctx.request.query.locale;
2183
2297
  const { model } = ctx.params;
2184
- const documentManager2 = getService$1("document-manager");
2185
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2298
+ const documentManager2 = getService$2("document-manager");
2299
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2186
2300
  if (permissionChecker2.cannot.read()) {
2187
2301
  return ctx.forbidden();
2188
2302
  }
@@ -2206,13 +2320,13 @@ const collectionTypes = {
2206
2320
  };
2207
2321
  const components$1 = {
2208
2322
  findComponents(ctx) {
2209
- const components2 = getService$1("components").findAllComponents();
2210
- const { toDto } = getService$1("data-mapper");
2323
+ const components2 = getService$2("components").findAllComponents();
2324
+ const { toDto } = getService$2("data-mapper");
2211
2325
  ctx.body = { data: components2.map(toDto) };
2212
2326
  },
2213
2327
  async findComponentConfiguration(ctx) {
2214
2328
  const { uid: uid2 } = ctx.params;
2215
- const componentService = getService$1("components");
2329
+ const componentService = getService$2("components");
2216
2330
  const component = componentService.findComponent(uid2);
2217
2331
  if (!component) {
2218
2332
  return ctx.notFound("component.notFound");
@@ -2229,7 +2343,7 @@ const components$1 = {
2229
2343
  async updateComponentConfiguration(ctx) {
2230
2344
  const { uid: uid2 } = ctx.params;
2231
2345
  const { body } = ctx.request;
2232
- const componentService = getService$1("components");
2346
+ const componentService = getService$2("components");
2233
2347
  const component = componentService.findComponent(uid2);
2234
2348
  if (!component) {
2235
2349
  return ctx.notFound("component.notFound");
@@ -2263,12 +2377,12 @@ const contentTypes = {
2263
2377
  } catch (error) {
2264
2378
  return ctx.send({ error }, 400);
2265
2379
  }
2266
- const contentTypes2 = getService$1("content-types").findContentTypesByKind(kind);
2267
- const { toDto } = getService$1("data-mapper");
2380
+ const contentTypes2 = getService$2("content-types").findContentTypesByKind(kind);
2381
+ const { toDto } = getService$2("data-mapper");
2268
2382
  ctx.body = { data: contentTypes2.map(toDto) };
2269
2383
  },
2270
2384
  async findContentTypesSettings(ctx) {
2271
- const { findAllContentTypes, findConfiguration } = getService$1("content-types");
2385
+ const { findAllContentTypes, findConfiguration } = getService$2("content-types");
2272
2386
  const contentTypes2 = await findAllContentTypes();
2273
2387
  const configurations = await Promise.all(
2274
2388
  contentTypes2.map(async (contentType) => {
@@ -2282,7 +2396,7 @@ const contentTypes = {
2282
2396
  },
2283
2397
  async findContentTypeConfiguration(ctx) {
2284
2398
  const { uid: uid2 } = ctx.params;
2285
- const contentTypeService = getService$1("content-types");
2399
+ const contentTypeService = getService$2("content-types");
2286
2400
  const contentType = await contentTypeService.findContentType(uid2);
2287
2401
  if (!contentType) {
2288
2402
  return ctx.notFound("contentType.notFound");
@@ -2304,13 +2418,13 @@ const contentTypes = {
2304
2418
  const { userAbility } = ctx.state;
2305
2419
  const { uid: uid2 } = ctx.params;
2306
2420
  const { body } = ctx.request;
2307
- const contentTypeService = getService$1("content-types");
2308
- const metricsService = getService$1("metrics");
2421
+ const contentTypeService = getService$2("content-types");
2422
+ const metricsService = getService$2("metrics");
2309
2423
  const contentType = await contentTypeService.findContentType(uid2);
2310
2424
  if (!contentType) {
2311
2425
  return ctx.notFound("contentType.notFound");
2312
2426
  }
2313
- if (!getService$1("permission").canConfigureContentType({ userAbility, contentType })) {
2427
+ if (!getService$2("permission").canConfigureContentType({ userAbility, contentType })) {
2314
2428
  return ctx.forbidden();
2315
2429
  }
2316
2430
  let input;
@@ -2343,10 +2457,10 @@ const contentTypes = {
2343
2457
  };
2344
2458
  const init = {
2345
2459
  getInitData(ctx) {
2346
- const { toDto } = getService$1("data-mapper");
2347
- const { findAllComponents } = getService$1("components");
2348
- const { getAllFieldSizes } = getService$1("field-sizes");
2349
- const { findAllContentTypes } = getService$1("content-types");
2460
+ const { toDto } = getService$2("data-mapper");
2461
+ const { findAllComponents } = getService$2("components");
2462
+ const { getAllFieldSizes } = getService$2("field-sizes");
2463
+ const { findAllContentTypes } = getService$2("content-types");
2350
2464
  ctx.body = {
2351
2465
  data: {
2352
2466
  fieldSizes: getAllFieldSizes(),
@@ -2382,7 +2496,7 @@ const addFiltersClause = (params, filtersClause) => {
2382
2496
  params.filters.$and.push(filtersClause);
2383
2497
  };
2384
2498
  const sanitizeMainField = (model, mainField, userAbility) => {
2385
- const permissionChecker2 = getService$1("permission-checker").create({
2499
+ const permissionChecker2 = getService$2("permission-checker").create({
2386
2500
  userAbility,
2387
2501
  model: model.uid
2388
2502
  });
@@ -2400,7 +2514,7 @@ const addStatusToRelations = async (targetUid, relations2) => {
2400
2514
  if (!contentTypes$1.hasDraftAndPublish(strapi.getModel(targetUid))) {
2401
2515
  return relations2;
2402
2516
  }
2403
- const documentMetadata2 = getService$1("document-metadata");
2517
+ const documentMetadata2 = getService$2("document-metadata");
2404
2518
  if (!relations2.length) {
2405
2519
  return relations2;
2406
2520
  }
@@ -2478,7 +2592,7 @@ const relations = {
2478
2592
  ctx.request?.query?.locale
2479
2593
  );
2480
2594
  const { status } = validateStatus(sourceUid, ctx.request?.query?.status);
2481
- const permissionChecker2 = getService$1("permission-checker").create({
2595
+ const permissionChecker2 = getService$2("permission-checker").create({
2482
2596
  userAbility,
2483
2597
  model
2484
2598
  });
@@ -2503,7 +2617,7 @@ const relations = {
2503
2617
  where.id = id;
2504
2618
  }
2505
2619
  const permissionQuery = await permissionChecker2.sanitizedQuery.read(ctx.query);
2506
- const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
2620
+ const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
2507
2621
  const currentEntity = await strapi.db.query(model).findOne({
2508
2622
  where,
2509
2623
  populate
@@ -2518,7 +2632,7 @@ const relations = {
2518
2632
  }
2519
2633
  entryId = currentEntity.id;
2520
2634
  }
2521
- const modelConfig = isComponent2 ? await getService$1("components").findConfiguration(sourceSchema) : await getService$1("content-types").findConfiguration(sourceSchema);
2635
+ const modelConfig = isComponent2 ? await getService$2("components").findConfiguration(sourceSchema) : await getService$2("content-types").findConfiguration(sourceSchema);
2522
2636
  const targetSchema = strapi.getModel(targetUid);
2523
2637
  const mainField = flow(
2524
2638
  prop(`metadatas.${targetField}.edit.mainField`),
@@ -2572,7 +2686,7 @@ const relations = {
2572
2686
  }
2573
2687
  } = await this.extractAndValidateRequestInfo(ctx, id);
2574
2688
  const { idsToOmit, idsToInclude, _q, ...query } = ctx.request.query;
2575
- const permissionChecker2 = getService$1("permission-checker").create({
2689
+ const permissionChecker2 = getService$2("permission-checker").create({
2576
2690
  userAbility: ctx.state.userAbility,
2577
2691
  model: targetUid
2578
2692
  });
@@ -2651,7 +2765,7 @@ const relations = {
2651
2765
  } = await this.extractAndValidateRequestInfo(ctx, id);
2652
2766
  const { uid: sourceUid } = sourceSchema;
2653
2767
  const { uid: targetUid } = targetSchema;
2654
- const permissionQuery = await getService$1("permission-checker").create({ userAbility, model: targetUid }).sanitizedQuery.read({ fields: fieldsToSelect });
2768
+ const permissionQuery = await getService$2("permission-checker").create({ userAbility, model: targetUid }).sanitizedQuery.read({ fields: fieldsToSelect });
2655
2769
  const dbQuery = strapi.db.query(sourceUid);
2656
2770
  const loadRelations = relations$1.isAnyToMany(attribute) ? (...args) => dbQuery.loadPages(...args) : (...args) => dbQuery.load(...args).then((res2) => ({ results: res2 ? [res2] : [] }));
2657
2771
  const filters = {};
@@ -2692,10 +2806,10 @@ const relations = {
2692
2806
  }
2693
2807
  };
2694
2808
  const buildPopulateFromQuery = async (query, model) => {
2695
- return getService$1("populate-builder")(model).populateFromQuery(query).populateDeep(Infinity).countRelations().build();
2809
+ return getService$2("populate-builder")(model).populateFromQuery(query).populateDeep(Infinity).countRelations().build();
2696
2810
  };
2697
2811
  const findDocument = async (query, uid2, opts = {}) => {
2698
- const documentManager2 = getService$1("document-manager");
2812
+ const documentManager2 = getService$2("document-manager");
2699
2813
  const populate = await buildPopulateFromQuery(query, uid2);
2700
2814
  return documentManager2.findMany({ ...opts, populate }, uid2).then((documents) => documents[0]);
2701
2815
  };
@@ -2703,8 +2817,8 @@ const createOrUpdateDocument = async (ctx, opts) => {
2703
2817
  const { user, userAbility } = ctx.state;
2704
2818
  const { model } = ctx.params;
2705
2819
  const { body, query } = ctx.request;
2706
- const documentManager2 = getService$1("document-manager");
2707
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2820
+ const documentManager2 = getService$2("document-manager");
2821
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2708
2822
  if (permissionChecker2.cannot.create() && permissionChecker2.cannot.update()) {
2709
2823
  throw new errors.ForbiddenError();
2710
2824
  }
@@ -2745,7 +2859,7 @@ const singleTypes = {
2745
2859
  const { userAbility } = ctx.state;
2746
2860
  const { model } = ctx.params;
2747
2861
  const { query = {} } = ctx.request;
2748
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2862
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2749
2863
  if (permissionChecker2.cannot.read()) {
2750
2864
  return ctx.forbidden();
2751
2865
  }
@@ -2779,7 +2893,7 @@ const singleTypes = {
2779
2893
  async createOrUpdate(ctx) {
2780
2894
  const { userAbility } = ctx.state;
2781
2895
  const { model } = ctx.params;
2782
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2896
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2783
2897
  const document = await createOrUpdateDocument(ctx);
2784
2898
  const sanitizedDocument = await permissionChecker2.sanitizeOutput(document);
2785
2899
  ctx.body = await formatDocumentWithMetadata(permissionChecker2, model, sanitizedDocument);
@@ -2788,8 +2902,8 @@ const singleTypes = {
2788
2902
  const { userAbility } = ctx.state;
2789
2903
  const { model } = ctx.params;
2790
2904
  const { query = {} } = ctx.request;
2791
- const documentManager2 = getService$1("document-manager");
2792
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2905
+ const documentManager2 = getService$2("document-manager");
2906
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2793
2907
  if (permissionChecker2.cannot.delete()) {
2794
2908
  return ctx.forbidden();
2795
2909
  }
@@ -2817,8 +2931,8 @@ const singleTypes = {
2817
2931
  const { userAbility } = ctx.state;
2818
2932
  const { model } = ctx.params;
2819
2933
  const { query = {} } = ctx.request;
2820
- const documentManager2 = getService$1("document-manager");
2821
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2934
+ const documentManager2 = getService$2("document-manager");
2935
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2822
2936
  if (permissionChecker2.cannot.publish()) {
2823
2937
  return ctx.forbidden();
2824
2938
  }
@@ -2846,8 +2960,8 @@ const singleTypes = {
2846
2960
  body: { discardDraft, ...body },
2847
2961
  query = {}
2848
2962
  } = ctx.request;
2849
- const documentManager2 = getService$1("document-manager");
2850
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2963
+ const documentManager2 = getService$2("document-manager");
2964
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2851
2965
  if (permissionChecker2.cannot.unpublish()) {
2852
2966
  return ctx.forbidden();
2853
2967
  }
@@ -2881,8 +2995,8 @@ const singleTypes = {
2881
2995
  const { userAbility } = ctx.state;
2882
2996
  const { model } = ctx.params;
2883
2997
  const { body, query = {} } = ctx.request;
2884
- const documentManager2 = getService$1("document-manager");
2885
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2998
+ const documentManager2 = getService$2("document-manager");
2999
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2886
3000
  if (permissionChecker2.cannot.discard()) {
2887
3001
  return ctx.forbidden();
2888
3002
  }
@@ -2905,8 +3019,8 @@ const singleTypes = {
2905
3019
  const { userAbility } = ctx.state;
2906
3020
  const { model } = ctx.params;
2907
3021
  const { query } = ctx.request;
2908
- const documentManager2 = getService$1("document-manager");
2909
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
3022
+ const documentManager2 = getService$2("document-manager");
3023
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2910
3024
  const { locale } = await getDocumentLocaleAndStatus(query, model);
2911
3025
  if (permissionChecker2.cannot.read()) {
2912
3026
  return ctx.forbidden();
@@ -2930,7 +3044,7 @@ const uid$1 = {
2930
3044
  const { query = {} } = ctx.request;
2931
3045
  const { locale } = await getDocumentLocaleAndStatus(query, contentTypeUID);
2932
3046
  await validateUIDField(contentTypeUID, field);
2933
- const uidService = getService$1("uid");
3047
+ const uidService = getService$2("uid");
2934
3048
  ctx.body = {
2935
3049
  data: await uidService.generateUIDField({ contentTypeUID, field, data, locale })
2936
3050
  };
@@ -2942,7 +3056,7 @@ const uid$1 = {
2942
3056
  const { query = {} } = ctx.request;
2943
3057
  const { locale } = await getDocumentLocaleAndStatus(query, contentTypeUID);
2944
3058
  await validateUIDField(contentTypeUID, field);
2945
- const uidService = getService$1("uid");
3059
+ const uidService = getService$2("uid");
2946
3060
  const isAvailable = await uidService.checkUIDAvailability({
2947
3061
  contentTypeUID,
2948
3062
  field,
@@ -3115,12 +3229,12 @@ async function syncMetadatas(configuration, schema) {
3115
3229
  return _.assign(metasWithDefaults, updatedMetas);
3116
3230
  }
3117
3231
  const getTargetSchema = (targetModel) => {
3118
- return getService$1("content-types").findContentType(targetModel);
3232
+ return getService$2("content-types").findContentType(targetModel);
3119
3233
  };
3120
3234
  const DEFAULT_LIST_LENGTH = 4;
3121
3235
  const MAX_ROW_SIZE = 12;
3122
3236
  const isAllowedFieldSize = (type, size) => {
3123
- const { getFieldSize } = getService$1("field-sizes");
3237
+ const { getFieldSize } = getService$2("field-sizes");
3124
3238
  const fieldSize = getFieldSize(type);
3125
3239
  if (!fieldSize.isResizable && size !== fieldSize.default) {
3126
3240
  return false;
@@ -3128,7 +3242,7 @@ const isAllowedFieldSize = (type, size) => {
3128
3242
  return size <= MAX_ROW_SIZE;
3129
3243
  };
3130
3244
  const getDefaultFieldSize = (attribute) => {
3131
- const { hasFieldSize, getFieldSize } = getService$1("field-sizes");
3245
+ const { hasFieldSize, getFieldSize } = getService$2("field-sizes");
3132
3246
  return getFieldSize(hasFieldSize(attribute.customField) ? attribute.customField : attribute.type).default;
3133
3247
  };
3134
3248
  async function createDefaultLayouts(schema) {
@@ -3163,7 +3277,7 @@ function syncLayouts(configuration, schema) {
3163
3277
  for (const el of row) {
3164
3278
  if (!hasEditableAttribute(schema, el.name))
3165
3279
  continue;
3166
- const { hasFieldSize } = getService$1("field-sizes");
3280
+ const { hasFieldSize } = getService$2("field-sizes");
3167
3281
  const fieldType = hasFieldSize(schema.attributes[el.name].customField) ? schema.attributes[el.name].customField : schema.attributes[el.name].type;
3168
3282
  if (!isAllowedFieldSize(fieldType, el.size)) {
3169
3283
  elementsToReAppend.push(el.name);
@@ -3303,17 +3417,17 @@ const configurationService$1 = createConfigurationService({
3303
3417
  isComponent: true,
3304
3418
  prefix: STORE_KEY_PREFIX,
3305
3419
  getModels() {
3306
- const { toContentManagerModel } = getService$1("data-mapper");
3420
+ const { toContentManagerModel } = getService$2("data-mapper");
3307
3421
  return mapValues(toContentManagerModel, strapi.components);
3308
3422
  }
3309
3423
  });
3310
3424
  const components = ({ strapi: strapi2 }) => ({
3311
3425
  findAllComponents() {
3312
- const { toContentManagerModel } = getService$1("data-mapper");
3426
+ const { toContentManagerModel } = getService$2("data-mapper");
3313
3427
  return Object.values(strapi2.components).map(toContentManagerModel);
3314
3428
  },
3315
3429
  findComponent(uid2) {
3316
- const { toContentManagerModel } = getService$1("data-mapper");
3430
+ const { toContentManagerModel } = getService$2("data-mapper");
3317
3431
  const component = strapi2.components[uid2];
3318
3432
  return isNil$1(component) ? component : toContentManagerModel(component);
3319
3433
  },
@@ -3364,17 +3478,17 @@ const configurationService = createConfigurationService({
3364
3478
  storeUtils,
3365
3479
  prefix: "content_types",
3366
3480
  getModels() {
3367
- const { toContentManagerModel } = getService$1("data-mapper");
3481
+ const { toContentManagerModel } = getService$2("data-mapper");
3368
3482
  return mapValues(toContentManagerModel, strapi.contentTypes);
3369
3483
  }
3370
3484
  });
3371
3485
  const service = ({ strapi: strapi2 }) => ({
3372
3486
  findAllContentTypes() {
3373
- const { toContentManagerModel } = getService$1("data-mapper");
3487
+ const { toContentManagerModel } = getService$2("data-mapper");
3374
3488
  return Object.values(strapi2.contentTypes).map(toContentManagerModel);
3375
3489
  },
3376
3490
  findContentType(uid2) {
3377
- const { toContentManagerModel } = getService$1("data-mapper");
3491
+ const { toContentManagerModel } = getService$2("data-mapper");
3378
3492
  const contentType = strapi2.contentTypes[uid2];
3379
3493
  return isNil$1(contentType) ? contentType : toContentManagerModel(contentType);
3380
3494
  },
@@ -3403,7 +3517,7 @@ const service = ({ strapi: strapi2 }) => ({
3403
3517
  return this.findConfiguration(contentType);
3404
3518
  },
3405
3519
  findComponentsConfigurations(contentType) {
3406
- return getService$1("components").findComponentsConfigurations(contentType);
3520
+ return getService$2("components").findComponentsConfigurations(contentType);
3407
3521
  },
3408
3522
  syncConfigurations() {
3409
3523
  return configurationService.syncConfigurations();
@@ -3675,7 +3789,7 @@ const permission = ({ strapi: strapi2 }) => ({
3675
3789
  return userAbility.can(action);
3676
3790
  },
3677
3791
  async registerPermissions() {
3678
- const displayedContentTypes = getService$1("content-types").findDisplayedContentTypes();
3792
+ const displayedContentTypes = getService$2("content-types").findDisplayedContentTypes();
3679
3793
  const contentTypesUids = displayedContentTypes.map(prop("uid"));
3680
3794
  const actions = [
3681
3795
  {
@@ -3951,7 +4065,7 @@ const getQueryPopulate = async (uid2, query) => {
3951
4065
  return populateQuery;
3952
4066
  };
3953
4067
  const buildDeepPopulate = (uid2) => {
3954
- return getService$1("populate-builder")(uid2).populateDeep(Infinity).countRelations().build();
4068
+ return getService$2("populate-builder")(uid2).populateDeep(Infinity).countRelations().build();
3955
4069
  };
3956
4070
  const populateBuilder = (uid2) => {
3957
4071
  let getInitialPopulate = async () => {