@strapi/content-manager 0.0.0-next.7f1333f1967e625c57ab16648c057aea08c9dddb → 0.0.0-next.840550dc97a3782302ddf918d3a0d07e59dd11eb

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 (27) hide show
  1. package/dist/server/index.js +234 -127
  2. package/dist/server/index.js.map +1 -1
  3. package/dist/server/index.mjs +234 -127
  4. package/dist/server/index.mjs.map +1 -1
  5. package/dist/server/src/controllers/index.d.ts.map +1 -1
  6. package/dist/server/src/history/services/utils.d.ts +2 -3
  7. package/dist/server/src/history/services/utils.d.ts.map +1 -1
  8. package/dist/server/src/preview/controllers/index.d.ts +2 -0
  9. package/dist/server/src/preview/controllers/index.d.ts.map +1 -0
  10. package/dist/server/src/preview/controllers/preview.d.ts +9 -0
  11. package/dist/server/src/preview/controllers/preview.d.ts.map +1 -0
  12. package/dist/server/src/preview/index.d.ts.map +1 -1
  13. package/dist/server/src/preview/routes/index.d.ts +8 -0
  14. package/dist/server/src/preview/routes/index.d.ts.map +1 -0
  15. package/dist/server/src/preview/routes/preview.d.ts +4 -0
  16. package/dist/server/src/preview/routes/preview.d.ts.map +1 -0
  17. package/dist/server/src/preview/services/index.d.ts +11 -0
  18. package/dist/server/src/preview/services/index.d.ts.map +1 -0
  19. package/dist/server/src/preview/services/preview-config.d.ts +30 -0
  20. package/dist/server/src/preview/services/preview-config.d.ts.map +1 -0
  21. package/dist/server/src/preview/services/preview.d.ts +6 -0
  22. package/dist/server/src/preview/services/preview.d.ts.map +1 -0
  23. package/dist/server/src/preview/utils.d.ts +14 -0
  24. package/dist/server/src/preview/utils.d.ts.map +1 -0
  25. package/dist/server/src/routes/index.d.ts.map +1 -1
  26. package/dist/server/src/services/index.d.ts.map +1 -1
  27. package/package.json +6 -6
@@ -33,10 +33,10 @@ const isNil__default = /* @__PURE__ */ _interopDefault(isNil);
33
33
  const ___default = /* @__PURE__ */ _interopDefault(_);
34
34
  const qs__default = /* @__PURE__ */ _interopDefault(qs);
35
35
  const slugify__default = /* @__PURE__ */ _interopDefault(slugify);
36
- const getService$1 = (name) => {
36
+ const getService$2 = (name) => {
37
37
  return strapi.plugin("content-manager").service(name);
38
38
  };
39
- function getService(strapi2, name) {
39
+ function getService$1(strapi2, name) {
40
40
  return strapi2.service(`plugin::content-manager.${name}`);
41
41
  }
42
42
  const historyRestoreVersionSchema = yup__namespace.object().shape({
@@ -72,7 +72,7 @@ const createHistoryVersionController = ({ strapi: strapi2 }) => {
72
72
  if (!isSingleType && (!contentTypeUid || !ctx.query.documentId)) {
73
73
  throw new strapiUtils.errors.ForbiddenError("contentType and documentId are required");
74
74
  }
75
- const permissionChecker2 = getService$1("permission-checker").create({
75
+ const permissionChecker2 = getService$2("permission-checker").create({
76
76
  userAbility: ctx.state.userAbility,
77
77
  model: ctx.query.contentType
78
78
  });
@@ -80,7 +80,7 @@ const createHistoryVersionController = ({ strapi: strapi2 }) => {
80
80
  return ctx.forbidden();
81
81
  }
82
82
  const query = await permissionChecker2.sanitizeQuery(ctx.query);
83
- const { results, pagination } = await getService(strapi2, "history").findVersionsPage({
83
+ const { results, pagination } = await getService$1(strapi2, "history").findVersionsPage({
84
84
  query: {
85
85
  ...query,
86
86
  ...getValidPagination({ page: query.page, pageSize: query.pageSize })
@@ -105,14 +105,14 @@ const createHistoryVersionController = ({ strapi: strapi2 }) => {
105
105
  async restoreVersion(ctx) {
106
106
  const request = ctx.request;
107
107
  await validateRestoreVersion(request.body, "contentType is required");
108
- const permissionChecker2 = getService$1("permission-checker").create({
108
+ const permissionChecker2 = getService$2("permission-checker").create({
109
109
  userAbility: ctx.state.userAbility,
110
110
  model: request.body.contentType
111
111
  });
112
112
  if (permissionChecker2.cannot.update()) {
113
113
  throw new strapiUtils.errors.ForbiddenError();
114
114
  }
115
- const restoredDocument = await getService(strapi2, "history").restoreVersion(
115
+ const restoredDocument = await getService$1(strapi2, "history").restoreVersion(
116
116
  request.params.versionId
117
117
  );
118
118
  return {
@@ -121,7 +121,7 @@ const createHistoryVersionController = ({ strapi: strapi2 }) => {
121
121
  }
122
122
  };
123
123
  };
124
- const controllers$1 = {
124
+ const controllers$2 = {
125
125
  "history-version": createHistoryVersionController
126
126
  /**
127
127
  * Casting is needed because the types aren't aware that Strapi supports
@@ -228,6 +228,17 @@ const createServiceUtils = ({ strapi: strapi2 }) => {
228
228
  const meta = await documentMetadataService.getMetadata(contentTypeUid, document);
229
229
  return documentMetadataService.getStatus(document, meta.availableStatus);
230
230
  };
231
+ const getComponentFields = (componentUID) => {
232
+ return Object.entries(strapi2.getModel(componentUID).attributes).reduce(
233
+ (fieldsAcc, [key, attribute]) => {
234
+ if (!["relation", "media", "component", "dynamiczone"].includes(attribute.type)) {
235
+ fieldsAcc.push(key);
236
+ }
237
+ return fieldsAcc;
238
+ },
239
+ []
240
+ );
241
+ };
231
242
  const getDeepPopulate2 = (uid2, useDatabaseSyntax = false) => {
232
243
  const model = strapi2.getModel(uid2);
233
244
  const attributes = Object.entries(model.attributes);
@@ -251,13 +262,19 @@ const createServiceUtils = ({ strapi: strapi2 }) => {
251
262
  }
252
263
  case "component": {
253
264
  const populate = getDeepPopulate2(attribute.component);
254
- acc[attributeName] = { populate };
265
+ acc[attributeName] = {
266
+ populate,
267
+ [fieldSelector]: getComponentFields(attribute.component)
268
+ };
255
269
  break;
256
270
  }
257
271
  case "dynamiczone": {
258
272
  const populatedComponents = (attribute.components || []).reduce(
259
273
  (acc2, componentUID) => {
260
- acc2[componentUID] = { populate: getDeepPopulate2(componentUID) };
274
+ acc2[componentUID] = {
275
+ populate: getDeepPopulate2(componentUID),
276
+ [fieldSelector]: getComponentFields(componentUID)
277
+ };
261
278
  return acc2;
262
279
  },
263
280
  {}
@@ -370,7 +387,7 @@ const createHistoryService = ({ strapi: strapi2 }) => {
370
387
  const attributeValue = entry.data[attributeKey];
371
388
  const attributeValues = Array.isArray(attributeValue) ? attributeValue : [attributeValue];
372
389
  if (attributeSchema.type === "media") {
373
- const permissionChecker2 = getService$1("permission-checker").create({
390
+ const permissionChecker2 = getService$2("permission-checker").create({
374
391
  userAbility: params.state.userAbility,
375
392
  model: "plugin::upload.file"
376
393
  });
@@ -411,7 +428,7 @@ const createHistoryService = ({ strapi: strapi2 }) => {
411
428
  [attributeKey]: adminUsers
412
429
  };
413
430
  }
414
- const permissionChecker2 = getService$1("permission-checker").create({
431
+ const permissionChecker2 = getService$2("permission-checker").create({
415
432
  userAbility: params.state.userAbility,
416
433
  model: attributeSchema.target
417
434
  });
@@ -587,7 +604,7 @@ const createLifecyclesService = ({ strapi: strapi2 }) => {
587
604
  onCommit(async () => {
588
605
  for (const entry of localeEntries) {
589
606
  const status = await serviceUtils.getVersionStatus(uid2, entry);
590
- await getService(strapi2, "history").createVersion({
607
+ await getService$1(strapi2, "history").createVersion({
591
608
  contentType: uid2,
592
609
  data: fp.omit(FIELDS_TO_IGNORE, entry),
593
610
  relatedDocumentId: documentId,
@@ -620,17 +637,17 @@ const createLifecyclesService = ({ strapi: strapi2 }) => {
620
637
  }
621
638
  };
622
639
  };
623
- const services$1 = {
640
+ const services$2 = {
624
641
  history: createHistoryService,
625
642
  lifecycles: createLifecyclesService
626
643
  };
627
- const info = { pluginName: "content-manager", type: "admin" };
644
+ const info$1 = { pluginName: "content-manager", type: "admin" };
628
645
  const historyVersionRouter = {
629
646
  type: "admin",
630
647
  routes: [
631
648
  {
632
649
  method: "GET",
633
- info,
650
+ info: info$1,
634
651
  path: "/history-versions",
635
652
  handler: "history-version.findMany",
636
653
  config: {
@@ -639,7 +656,7 @@ const historyVersionRouter = {
639
656
  },
640
657
  {
641
658
  method: "PUT",
642
- info,
659
+ info: info$1,
643
660
  path: "/history-versions/:versionId/restore",
644
661
  handler: "history-version.restoreVersion",
645
662
  config: {
@@ -648,7 +665,7 @@ const historyVersionRouter = {
648
665
  }
649
666
  ]
650
667
  };
651
- const routes$1 = {
668
+ const routes$2 = {
652
669
  "history-version": historyVersionRouter
653
670
  };
654
671
  const historyVersion = {
@@ -702,14 +719,14 @@ const getFeature$1 = () => {
702
719
  strapi2.get("models").add(historyVersion);
703
720
  },
704
721
  bootstrap({ strapi: strapi2 }) {
705
- getService(strapi2, "lifecycles").bootstrap();
722
+ getService$1(strapi2, "lifecycles").bootstrap();
706
723
  },
707
724
  destroy({ strapi: strapi2 }) {
708
- getService(strapi2, "lifecycles").destroy();
725
+ getService$1(strapi2, "lifecycles").destroy();
709
726
  },
710
- controllers: controllers$1,
711
- services: services$1,
712
- routes: routes$1
727
+ controllers: controllers$2,
728
+ services: services$2,
729
+ routes: routes$2
713
730
  };
714
731
  }
715
732
  return {
@@ -727,6 +744,88 @@ const ALLOWED_WEBHOOK_EVENTS = {
727
744
  ENTRY_UNPUBLISH: "entry.unpublish"
728
745
  };
729
746
  const FEATURE_ID = "preview";
747
+ const info = { pluginName: "content-manager", type: "admin" };
748
+ const previewRouter = {
749
+ type: "admin",
750
+ routes: [
751
+ {
752
+ method: "GET",
753
+ info,
754
+ path: "/preview/url/:contentType",
755
+ handler: "preview.getPreviewURL",
756
+ config: {
757
+ policies: ["admin::isAuthenticatedAdmin"]
758
+ }
759
+ }
760
+ ]
761
+ };
762
+ const routes$1 = {
763
+ preview: previewRouter
764
+ };
765
+ const createPreviewController = () => {
766
+ return {
767
+ async getPreviewURL(ctx) {
768
+ ctx.request;
769
+ return {
770
+ data: { url: "" }
771
+ };
772
+ }
773
+ };
774
+ };
775
+ const controllers$1 = {
776
+ preview: createPreviewController
777
+ /**
778
+ * Casting is needed because the types aren't aware that Strapi supports
779
+ * passing a controller factory as the value, instead of a controller object directly
780
+ */
781
+ };
782
+ const createPreviewService = () => {
783
+ };
784
+ const createPreviewConfigService = ({ strapi: strapi2 }) => {
785
+ return {
786
+ isEnabled() {
787
+ const config = strapi2.config.get("admin.preview");
788
+ if (!config) {
789
+ return false;
790
+ }
791
+ return config?.enabled ?? true;
792
+ },
793
+ /**
794
+ * Validate if the configuration is valid
795
+ */
796
+ validate() {
797
+ if (!this.isEnabled()) {
798
+ return;
799
+ }
800
+ const handler = this.getPreviewHandler();
801
+ if (typeof handler !== "function") {
802
+ throw new strapiUtils.errors.ValidationError(
803
+ "Preview configuration is invalid. Handler must be a function"
804
+ );
805
+ }
806
+ },
807
+ /**
808
+ * Utility to get the preview handler from the configuration
809
+ */
810
+ getPreviewHandler() {
811
+ const config = strapi2.config.get("admin.preview");
812
+ const emptyHandler = () => {
813
+ return void 0;
814
+ };
815
+ if (!this.isEnabled()) {
816
+ return emptyHandler;
817
+ }
818
+ return config?.config?.handler || emptyHandler;
819
+ }
820
+ };
821
+ };
822
+ const services$1 = {
823
+ preview: createPreviewService,
824
+ "preview-config": createPreviewConfigService
825
+ };
826
+ function getService(strapi2, name) {
827
+ return strapi2.service(`plugin::content-manager.${name}`);
828
+ }
730
829
  const getFeature = () => {
731
830
  if (!strapi.features.future.isEnabled(FEATURE_ID)) {
732
831
  return {};
@@ -734,7 +833,12 @@ const getFeature = () => {
734
833
  return {
735
834
  bootstrap() {
736
835
  console.log("Bootstrapping preview server");
737
- }
836
+ const config = getService(strapi, "preview-config");
837
+ config.validate();
838
+ },
839
+ routes: routes$1,
840
+ controllers: controllers$1,
841
+ services: services$1
738
842
  };
739
843
  };
740
844
  const preview = getFeature();
@@ -742,10 +846,10 @@ const bootstrap = async () => {
742
846
  Object.entries(ALLOWED_WEBHOOK_EVENTS).forEach(([key, value]) => {
743
847
  strapi.get("webhookStore").addAllowedEvent(key, value);
744
848
  });
745
- getService$1("field-sizes").setCustomFieldInputSizes();
746
- await getService$1("components").syncConfigurations();
747
- await getService$1("content-types").syncConfigurations();
748
- await getService$1("permission").registerPermissions();
849
+ getService$2("field-sizes").setCustomFieldInputSizes();
850
+ await getService$2("components").syncConfigurations();
851
+ await getService$2("content-types").syncConfigurations();
852
+ await getService$2("permission").registerPermissions();
749
853
  await history.bootstrap?.({ strapi });
750
854
  await preview.bootstrap?.({ strapi });
751
855
  };
@@ -1237,7 +1341,8 @@ const admin = {
1237
1341
  };
1238
1342
  const routes = {
1239
1343
  admin,
1240
- ...history.routes ? history.routes : {}
1344
+ ...history.routes ? history.routes : {},
1345
+ ...preview.routes ? preview.routes : {}
1241
1346
  };
1242
1347
  const hasPermissionsSchema = strapiUtils.yup.object({
1243
1348
  actions: strapiUtils.yup.array().of(strapiUtils.yup.string()),
@@ -1494,7 +1599,7 @@ const createMetadasSchema = (schema) => {
1494
1599
  if (!value) {
1495
1600
  return strapiUtils.yup.string();
1496
1601
  }
1497
- const targetSchema = getService$1("content-types").findContentType(
1602
+ const targetSchema = getService$2("content-types").findContentType(
1498
1603
  schema.attributes[key].targetModel
1499
1604
  );
1500
1605
  if (!targetSchema) {
@@ -1663,7 +1768,7 @@ const getDocumentLocaleAndStatus = async (request, model, opts = { allowMultiple
1663
1768
  }
1664
1769
  };
1665
1770
  const formatDocumentWithMetadata = async (permissionChecker2, uid2, document, opts = {}) => {
1666
- const documentMetadata2 = getService$1("document-metadata");
1771
+ const documentMetadata2 = getService$2("document-metadata");
1667
1772
  const serviceOutput = await documentMetadata2.formatDocumentWithMetadata(uid2, document, opts);
1668
1773
  let {
1669
1774
  meta: { availableLocales, availableStatus }
@@ -1689,8 +1794,8 @@ const createDocument = async (ctx, opts) => {
1689
1794
  const { userAbility, user } = ctx.state;
1690
1795
  const { model } = ctx.params;
1691
1796
  const { body } = ctx.request;
1692
- const documentManager2 = getService$1("document-manager");
1693
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
1797
+ const documentManager2 = getService$2("document-manager");
1798
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
1694
1799
  if (permissionChecker2.cannot.create()) {
1695
1800
  throw new strapiUtils.errors.ForbiddenError();
1696
1801
  }
@@ -1710,13 +1815,13 @@ const updateDocument = async (ctx, opts) => {
1710
1815
  const { userAbility, user } = ctx.state;
1711
1816
  const { id, model } = ctx.params;
1712
1817
  const { body } = ctx.request;
1713
- const documentManager2 = getService$1("document-manager");
1714
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
1818
+ const documentManager2 = getService$2("document-manager");
1819
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
1715
1820
  if (permissionChecker2.cannot.update()) {
1716
1821
  throw new strapiUtils.errors.ForbiddenError();
1717
1822
  }
1718
1823
  const permissionQuery = await permissionChecker2.sanitizedQuery.update(ctx.query);
1719
- const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
1824
+ const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
1720
1825
  const { locale } = await getDocumentLocaleAndStatus(body, model);
1721
1826
  const [documentVersion, documentExists] = await Promise.all([
1722
1827
  documentManager2.findOne(id, model, { populate, locale, status: "draft" }),
@@ -1747,14 +1852,14 @@ const collectionTypes = {
1747
1852
  const { userAbility } = ctx.state;
1748
1853
  const { model } = ctx.params;
1749
1854
  const { query } = ctx.request;
1750
- const documentMetadata2 = getService$1("document-metadata");
1751
- const documentManager2 = getService$1("document-manager");
1752
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
1855
+ const documentMetadata2 = getService$2("document-metadata");
1856
+ const documentManager2 = getService$2("document-manager");
1857
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
1753
1858
  if (permissionChecker2.cannot.read()) {
1754
1859
  return ctx.forbidden();
1755
1860
  }
1756
1861
  const permissionQuery = await permissionChecker2.sanitizedQuery.read(query);
1757
- const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(1).countRelations({ toOne: false, toMany: true }).build();
1862
+ const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(1).countRelations({ toOne: false, toMany: true }).build();
1758
1863
  const { locale, status } = await getDocumentLocaleAndStatus(query, model);
1759
1864
  const { results: documents, pagination } = await documentManager2.findPage(
1760
1865
  { ...permissionQuery, populate, locale, status },
@@ -1783,13 +1888,13 @@ const collectionTypes = {
1783
1888
  async findOne(ctx) {
1784
1889
  const { userAbility } = ctx.state;
1785
1890
  const { model, id } = ctx.params;
1786
- const documentManager2 = getService$1("document-manager");
1787
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
1891
+ const documentManager2 = getService$2("document-manager");
1892
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
1788
1893
  if (permissionChecker2.cannot.read()) {
1789
1894
  return ctx.forbidden();
1790
1895
  }
1791
1896
  const permissionQuery = await permissionChecker2.sanitizedQuery.read(ctx.query);
1792
- const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(Infinity).countRelations().build();
1897
+ const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(Infinity).countRelations().build();
1793
1898
  const { locale, status } = await getDocumentLocaleAndStatus(ctx.query, model);
1794
1899
  const version = await documentManager2.findOne(id, model, {
1795
1900
  populate,
@@ -1820,7 +1925,7 @@ const collectionTypes = {
1820
1925
  async create(ctx) {
1821
1926
  const { userAbility } = ctx.state;
1822
1927
  const { model } = ctx.params;
1823
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
1928
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
1824
1929
  const [totalEntries, document] = await Promise.all([
1825
1930
  strapi.db.query(model).count(),
1826
1931
  createDocument(ctx)
@@ -1841,7 +1946,7 @@ const collectionTypes = {
1841
1946
  async update(ctx) {
1842
1947
  const { userAbility } = ctx.state;
1843
1948
  const { model } = ctx.params;
1844
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
1949
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
1845
1950
  const updatedVersion = await updateDocument(ctx);
1846
1951
  const sanitizedVersion = await permissionChecker2.sanitizeOutput(updatedVersion);
1847
1952
  ctx.body = await formatDocumentWithMetadata(permissionChecker2, model, sanitizedVersion);
@@ -1850,13 +1955,13 @@ const collectionTypes = {
1850
1955
  const { userAbility, user } = ctx.state;
1851
1956
  const { model, sourceId: id } = ctx.params;
1852
1957
  const { body } = ctx.request;
1853
- const documentManager2 = getService$1("document-manager");
1854
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
1958
+ const documentManager2 = getService$2("document-manager");
1959
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
1855
1960
  if (permissionChecker2.cannot.create()) {
1856
1961
  return ctx.forbidden();
1857
1962
  }
1858
1963
  const permissionQuery = await permissionChecker2.sanitizedQuery.create(ctx.query);
1859
- const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
1964
+ const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
1860
1965
  const { locale } = await getDocumentLocaleAndStatus(body, model);
1861
1966
  const document = await documentManager2.findOne(id, model, {
1862
1967
  populate,
@@ -1895,13 +2000,13 @@ const collectionTypes = {
1895
2000
  async delete(ctx) {
1896
2001
  const { userAbility } = ctx.state;
1897
2002
  const { id, model } = ctx.params;
1898
- const documentManager2 = getService$1("document-manager");
1899
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2003
+ const documentManager2 = getService$2("document-manager");
2004
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
1900
2005
  if (permissionChecker2.cannot.delete()) {
1901
2006
  return ctx.forbidden();
1902
2007
  }
1903
2008
  const permissionQuery = await permissionChecker2.sanitizedQuery.delete(ctx.query);
1904
- const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
2009
+ const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
1905
2010
  const { locale } = await getDocumentLocaleAndStatus(ctx.query, model);
1906
2011
  const documentLocales = await documentManager2.findLocales(id, model, { populate, locale });
1907
2012
  if (documentLocales.length === 0) {
@@ -1923,14 +2028,14 @@ const collectionTypes = {
1923
2028
  const { userAbility } = ctx.state;
1924
2029
  const { id, model } = ctx.params;
1925
2030
  const { body } = ctx.request;
1926
- const documentManager2 = getService$1("document-manager");
1927
- 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 });
1928
2033
  if (permissionChecker2.cannot.publish()) {
1929
2034
  return ctx.forbidden();
1930
2035
  }
1931
2036
  const publishedDocument = await strapi.db.transaction(async () => {
1932
2037
  const permissionQuery = await permissionChecker2.sanitizedQuery.publish(ctx.query);
1933
- const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(Infinity).countRelations().build();
2038
+ const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(Infinity).countRelations().build();
1934
2039
  let document;
1935
2040
  const { locale } = await getDocumentLocaleAndStatus(body, model);
1936
2041
  const isCreate = fp.isNil(id);
@@ -1978,13 +2083,13 @@ const collectionTypes = {
1978
2083
  const { body } = ctx.request;
1979
2084
  const { documentIds } = body;
1980
2085
  await validateBulkActionInput(body);
1981
- const documentManager2 = getService$1("document-manager");
1982
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2086
+ const documentManager2 = getService$2("document-manager");
2087
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
1983
2088
  if (permissionChecker2.cannot.publish()) {
1984
2089
  return ctx.forbidden();
1985
2090
  }
1986
2091
  const permissionQuery = await permissionChecker2.sanitizedQuery.publish(ctx.query);
1987
- const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(Infinity).countRelations().build();
2092
+ const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(Infinity).countRelations().build();
1988
2093
  const { locale } = await getDocumentLocaleAndStatus(body, model, {
1989
2094
  allowMultipleLocales: true
1990
2095
  });
@@ -2009,8 +2114,8 @@ const collectionTypes = {
2009
2114
  const { body } = ctx.request;
2010
2115
  const { documentIds } = body;
2011
2116
  await validateBulkActionInput(body);
2012
- const documentManager2 = getService$1("document-manager");
2013
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2117
+ const documentManager2 = getService$2("document-manager");
2118
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2014
2119
  if (permissionChecker2.cannot.unpublish()) {
2015
2120
  return ctx.forbidden();
2016
2121
  }
@@ -2039,8 +2144,8 @@ const collectionTypes = {
2039
2144
  const {
2040
2145
  body: { discardDraft, ...body }
2041
2146
  } = ctx.request;
2042
- const documentManager2 = getService$1("document-manager");
2043
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2147
+ const documentManager2 = getService$2("document-manager");
2148
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2044
2149
  if (permissionChecker2.cannot.unpublish()) {
2045
2150
  return ctx.forbidden();
2046
2151
  }
@@ -2048,7 +2153,7 @@ const collectionTypes = {
2048
2153
  return ctx.forbidden();
2049
2154
  }
2050
2155
  const permissionQuery = await permissionChecker2.sanitizedQuery.unpublish(ctx.query);
2051
- const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
2156
+ const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
2052
2157
  const { locale } = await getDocumentLocaleAndStatus(body, model);
2053
2158
  const document = await documentManager2.findOne(id, model, {
2054
2159
  populate,
@@ -2079,13 +2184,13 @@ const collectionTypes = {
2079
2184
  const { userAbility } = ctx.state;
2080
2185
  const { id, model } = ctx.params;
2081
2186
  const { body } = ctx.request;
2082
- const documentManager2 = getService$1("document-manager");
2083
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2187
+ const documentManager2 = getService$2("document-manager");
2188
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2084
2189
  if (permissionChecker2.cannot.discard()) {
2085
2190
  return ctx.forbidden();
2086
2191
  }
2087
2192
  const permissionQuery = await permissionChecker2.sanitizedQuery.discard(ctx.query);
2088
- const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
2193
+ const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
2089
2194
  const { locale } = await getDocumentLocaleAndStatus(body, model);
2090
2195
  const document = await documentManager2.findOne(id, model, {
2091
2196
  populate,
@@ -2110,13 +2215,13 @@ const collectionTypes = {
2110
2215
  const { query, body } = ctx.request;
2111
2216
  const { documentIds } = body;
2112
2217
  await validateBulkActionInput(body);
2113
- const documentManager2 = getService$1("document-manager");
2114
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2218
+ const documentManager2 = getService$2("document-manager");
2219
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2115
2220
  if (permissionChecker2.cannot.delete()) {
2116
2221
  return ctx.forbidden();
2117
2222
  }
2118
2223
  const permissionQuery = await permissionChecker2.sanitizedQuery.delete(query);
2119
- const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
2224
+ const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
2120
2225
  const { locale } = await getDocumentLocaleAndStatus(body, model);
2121
2226
  const documentLocales = await documentManager2.findLocales(documentIds, model, {
2122
2227
  populate,
@@ -2137,13 +2242,13 @@ const collectionTypes = {
2137
2242
  async countDraftRelations(ctx) {
2138
2243
  const { userAbility } = ctx.state;
2139
2244
  const { model, id } = ctx.params;
2140
- const documentManager2 = getService$1("document-manager");
2141
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2245
+ const documentManager2 = getService$2("document-manager");
2246
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2142
2247
  if (permissionChecker2.cannot.read()) {
2143
2248
  return ctx.forbidden();
2144
2249
  }
2145
2250
  const permissionQuery = await permissionChecker2.sanitizedQuery.read(ctx.query);
2146
- const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
2251
+ const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
2147
2252
  const { locale, status } = await getDocumentLocaleAndStatus(ctx.query, model);
2148
2253
  const entity = await documentManager2.findOne(id, model, { populate, locale, status });
2149
2254
  if (!entity) {
@@ -2162,8 +2267,8 @@ const collectionTypes = {
2162
2267
  const ids = ctx.request.query.documentIds;
2163
2268
  const locale = ctx.request.query.locale;
2164
2269
  const { model } = ctx.params;
2165
- const documentManager2 = getService$1("document-manager");
2166
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2270
+ const documentManager2 = getService$2("document-manager");
2271
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2167
2272
  if (permissionChecker2.cannot.read()) {
2168
2273
  return ctx.forbidden();
2169
2274
  }
@@ -2187,13 +2292,13 @@ const collectionTypes = {
2187
2292
  };
2188
2293
  const components$1 = {
2189
2294
  findComponents(ctx) {
2190
- const components2 = getService$1("components").findAllComponents();
2191
- const { toDto } = getService$1("data-mapper");
2295
+ const components2 = getService$2("components").findAllComponents();
2296
+ const { toDto } = getService$2("data-mapper");
2192
2297
  ctx.body = { data: components2.map(toDto) };
2193
2298
  },
2194
2299
  async findComponentConfiguration(ctx) {
2195
2300
  const { uid: uid2 } = ctx.params;
2196
- const componentService = getService$1("components");
2301
+ const componentService = getService$2("components");
2197
2302
  const component = componentService.findComponent(uid2);
2198
2303
  if (!component) {
2199
2304
  return ctx.notFound("component.notFound");
@@ -2210,7 +2315,7 @@ const components$1 = {
2210
2315
  async updateComponentConfiguration(ctx) {
2211
2316
  const { uid: uid2 } = ctx.params;
2212
2317
  const { body } = ctx.request;
2213
- const componentService = getService$1("components");
2318
+ const componentService = getService$2("components");
2214
2319
  const component = componentService.findComponent(uid2);
2215
2320
  if (!component) {
2216
2321
  return ctx.notFound("component.notFound");
@@ -2244,12 +2349,12 @@ const contentTypes = {
2244
2349
  } catch (error) {
2245
2350
  return ctx.send({ error }, 400);
2246
2351
  }
2247
- const contentTypes2 = getService$1("content-types").findContentTypesByKind(kind);
2248
- const { toDto } = getService$1("data-mapper");
2352
+ const contentTypes2 = getService$2("content-types").findContentTypesByKind(kind);
2353
+ const { toDto } = getService$2("data-mapper");
2249
2354
  ctx.body = { data: contentTypes2.map(toDto) };
2250
2355
  },
2251
2356
  async findContentTypesSettings(ctx) {
2252
- const { findAllContentTypes, findConfiguration } = getService$1("content-types");
2357
+ const { findAllContentTypes, findConfiguration } = getService$2("content-types");
2253
2358
  const contentTypes2 = await findAllContentTypes();
2254
2359
  const configurations = await Promise.all(
2255
2360
  contentTypes2.map(async (contentType) => {
@@ -2263,7 +2368,7 @@ const contentTypes = {
2263
2368
  },
2264
2369
  async findContentTypeConfiguration(ctx) {
2265
2370
  const { uid: uid2 } = ctx.params;
2266
- const contentTypeService = getService$1("content-types");
2371
+ const contentTypeService = getService$2("content-types");
2267
2372
  const contentType = await contentTypeService.findContentType(uid2);
2268
2373
  if (!contentType) {
2269
2374
  return ctx.notFound("contentType.notFound");
@@ -2285,13 +2390,13 @@ const contentTypes = {
2285
2390
  const { userAbility } = ctx.state;
2286
2391
  const { uid: uid2 } = ctx.params;
2287
2392
  const { body } = ctx.request;
2288
- const contentTypeService = getService$1("content-types");
2289
- const metricsService = getService$1("metrics");
2393
+ const contentTypeService = getService$2("content-types");
2394
+ const metricsService = getService$2("metrics");
2290
2395
  const contentType = await contentTypeService.findContentType(uid2);
2291
2396
  if (!contentType) {
2292
2397
  return ctx.notFound("contentType.notFound");
2293
2398
  }
2294
- if (!getService$1("permission").canConfigureContentType({ userAbility, contentType })) {
2399
+ if (!getService$2("permission").canConfigureContentType({ userAbility, contentType })) {
2295
2400
  return ctx.forbidden();
2296
2401
  }
2297
2402
  let input;
@@ -2324,10 +2429,10 @@ const contentTypes = {
2324
2429
  };
2325
2430
  const init = {
2326
2431
  getInitData(ctx) {
2327
- const { toDto } = getService$1("data-mapper");
2328
- const { findAllComponents } = getService$1("components");
2329
- const { getAllFieldSizes } = getService$1("field-sizes");
2330
- const { findAllContentTypes } = getService$1("content-types");
2432
+ const { toDto } = getService$2("data-mapper");
2433
+ const { findAllComponents } = getService$2("components");
2434
+ const { getAllFieldSizes } = getService$2("field-sizes");
2435
+ const { findAllContentTypes } = getService$2("content-types");
2331
2436
  ctx.body = {
2332
2437
  data: {
2333
2438
  fieldSizes: getAllFieldSizes(),
@@ -2363,7 +2468,7 @@ const addFiltersClause = (params, filtersClause) => {
2363
2468
  params.filters.$and.push(filtersClause);
2364
2469
  };
2365
2470
  const sanitizeMainField = (model, mainField, userAbility) => {
2366
- const permissionChecker2 = getService$1("permission-checker").create({
2471
+ const permissionChecker2 = getService$2("permission-checker").create({
2367
2472
  userAbility,
2368
2473
  model: model.uid
2369
2474
  });
@@ -2381,7 +2486,7 @@ const addStatusToRelations = async (targetUid, relations2) => {
2381
2486
  if (!strapiUtils.contentTypes.hasDraftAndPublish(strapi.getModel(targetUid))) {
2382
2487
  return relations2;
2383
2488
  }
2384
- const documentMetadata2 = getService$1("document-metadata");
2489
+ const documentMetadata2 = getService$2("document-metadata");
2385
2490
  if (!relations2.length) {
2386
2491
  return relations2;
2387
2492
  }
@@ -2459,7 +2564,7 @@ const relations = {
2459
2564
  ctx.request?.query?.locale
2460
2565
  );
2461
2566
  const { status } = validateStatus(sourceUid, ctx.request?.query?.status);
2462
- const permissionChecker2 = getService$1("permission-checker").create({
2567
+ const permissionChecker2 = getService$2("permission-checker").create({
2463
2568
  userAbility,
2464
2569
  model
2465
2570
  });
@@ -2484,7 +2589,7 @@ const relations = {
2484
2589
  where.id = id;
2485
2590
  }
2486
2591
  const permissionQuery = await permissionChecker2.sanitizedQuery.read(ctx.query);
2487
- const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
2592
+ const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
2488
2593
  const currentEntity = await strapi.db.query(model).findOne({
2489
2594
  where,
2490
2595
  populate
@@ -2499,7 +2604,7 @@ const relations = {
2499
2604
  }
2500
2605
  entryId = currentEntity.id;
2501
2606
  }
2502
- const modelConfig = isComponent2 ? await getService$1("components").findConfiguration(sourceSchema) : await getService$1("content-types").findConfiguration(sourceSchema);
2607
+ const modelConfig = isComponent2 ? await getService$2("components").findConfiguration(sourceSchema) : await getService$2("content-types").findConfiguration(sourceSchema);
2503
2608
  const targetSchema = strapi.getModel(targetUid);
2504
2609
  const mainField = fp.flow(
2505
2610
  fp.prop(`metadatas.${targetField}.edit.mainField`),
@@ -2553,7 +2658,7 @@ const relations = {
2553
2658
  }
2554
2659
  } = await this.extractAndValidateRequestInfo(ctx, id);
2555
2660
  const { idsToOmit, idsToInclude, _q, ...query } = ctx.request.query;
2556
- const permissionChecker2 = getService$1("permission-checker").create({
2661
+ const permissionChecker2 = getService$2("permission-checker").create({
2557
2662
  userAbility: ctx.state.userAbility,
2558
2663
  model: targetUid
2559
2664
  });
@@ -2632,7 +2737,7 @@ const relations = {
2632
2737
  } = await this.extractAndValidateRequestInfo(ctx, id);
2633
2738
  const { uid: sourceUid } = sourceSchema;
2634
2739
  const { uid: targetUid } = targetSchema;
2635
- const permissionQuery = await getService$1("permission-checker").create({ userAbility, model: targetUid }).sanitizedQuery.read({ fields: fieldsToSelect });
2740
+ const permissionQuery = await getService$2("permission-checker").create({ userAbility, model: targetUid }).sanitizedQuery.read({ fields: fieldsToSelect });
2636
2741
  const dbQuery = strapi.db.query(sourceUid);
2637
2742
  const loadRelations = strapiUtils.relations.isAnyToMany(attribute) ? (...args) => dbQuery.loadPages(...args) : (...args) => dbQuery.load(...args).then((res2) => ({ results: res2 ? [res2] : [] }));
2638
2743
  const filters = {};
@@ -2673,10 +2778,10 @@ const relations = {
2673
2778
  }
2674
2779
  };
2675
2780
  const buildPopulateFromQuery = async (query, model) => {
2676
- return getService$1("populate-builder")(model).populateFromQuery(query).populateDeep(Infinity).countRelations().build();
2781
+ return getService$2("populate-builder")(model).populateFromQuery(query).populateDeep(Infinity).countRelations().build();
2677
2782
  };
2678
2783
  const findDocument = async (query, uid2, opts = {}) => {
2679
- const documentManager2 = getService$1("document-manager");
2784
+ const documentManager2 = getService$2("document-manager");
2680
2785
  const populate = await buildPopulateFromQuery(query, uid2);
2681
2786
  return documentManager2.findMany({ ...opts, populate }, uid2).then((documents) => documents[0]);
2682
2787
  };
@@ -2684,8 +2789,8 @@ const createOrUpdateDocument = async (ctx, opts) => {
2684
2789
  const { user, userAbility } = ctx.state;
2685
2790
  const { model } = ctx.params;
2686
2791
  const { body, query } = ctx.request;
2687
- const documentManager2 = getService$1("document-manager");
2688
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2792
+ const documentManager2 = getService$2("document-manager");
2793
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2689
2794
  if (permissionChecker2.cannot.create() && permissionChecker2.cannot.update()) {
2690
2795
  throw new strapiUtils.errors.ForbiddenError();
2691
2796
  }
@@ -2726,7 +2831,7 @@ const singleTypes = {
2726
2831
  const { userAbility } = ctx.state;
2727
2832
  const { model } = ctx.params;
2728
2833
  const { query = {} } = ctx.request;
2729
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2834
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2730
2835
  if (permissionChecker2.cannot.read()) {
2731
2836
  return ctx.forbidden();
2732
2837
  }
@@ -2760,7 +2865,7 @@ const singleTypes = {
2760
2865
  async createOrUpdate(ctx) {
2761
2866
  const { userAbility } = ctx.state;
2762
2867
  const { model } = ctx.params;
2763
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2868
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2764
2869
  const document = await createOrUpdateDocument(ctx);
2765
2870
  const sanitizedDocument = await permissionChecker2.sanitizeOutput(document);
2766
2871
  ctx.body = await formatDocumentWithMetadata(permissionChecker2, model, sanitizedDocument);
@@ -2769,8 +2874,8 @@ const singleTypes = {
2769
2874
  const { userAbility } = ctx.state;
2770
2875
  const { model } = ctx.params;
2771
2876
  const { query = {} } = ctx.request;
2772
- const documentManager2 = getService$1("document-manager");
2773
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2877
+ const documentManager2 = getService$2("document-manager");
2878
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2774
2879
  if (permissionChecker2.cannot.delete()) {
2775
2880
  return ctx.forbidden();
2776
2881
  }
@@ -2798,8 +2903,8 @@ const singleTypes = {
2798
2903
  const { userAbility } = ctx.state;
2799
2904
  const { model } = ctx.params;
2800
2905
  const { query = {} } = ctx.request;
2801
- const documentManager2 = getService$1("document-manager");
2802
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2906
+ const documentManager2 = getService$2("document-manager");
2907
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2803
2908
  if (permissionChecker2.cannot.publish()) {
2804
2909
  return ctx.forbidden();
2805
2910
  }
@@ -2827,8 +2932,8 @@ const singleTypes = {
2827
2932
  body: { discardDraft, ...body },
2828
2933
  query = {}
2829
2934
  } = ctx.request;
2830
- const documentManager2 = getService$1("document-manager");
2831
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2935
+ const documentManager2 = getService$2("document-manager");
2936
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2832
2937
  if (permissionChecker2.cannot.unpublish()) {
2833
2938
  return ctx.forbidden();
2834
2939
  }
@@ -2862,8 +2967,8 @@ const singleTypes = {
2862
2967
  const { userAbility } = ctx.state;
2863
2968
  const { model } = ctx.params;
2864
2969
  const { body, query = {} } = ctx.request;
2865
- const documentManager2 = getService$1("document-manager");
2866
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2970
+ const documentManager2 = getService$2("document-manager");
2971
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2867
2972
  if (permissionChecker2.cannot.discard()) {
2868
2973
  return ctx.forbidden();
2869
2974
  }
@@ -2886,8 +2991,8 @@ const singleTypes = {
2886
2991
  const { userAbility } = ctx.state;
2887
2992
  const { model } = ctx.params;
2888
2993
  const { query } = ctx.request;
2889
- const documentManager2 = getService$1("document-manager");
2890
- const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2994
+ const documentManager2 = getService$2("document-manager");
2995
+ const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2891
2996
  const { locale } = await getDocumentLocaleAndStatus(query, model);
2892
2997
  if (permissionChecker2.cannot.read()) {
2893
2998
  return ctx.forbidden();
@@ -2911,7 +3016,7 @@ const uid$1 = {
2911
3016
  const { query = {} } = ctx.request;
2912
3017
  const { locale } = await getDocumentLocaleAndStatus(query, contentTypeUID);
2913
3018
  await validateUIDField(contentTypeUID, field);
2914
- const uidService = getService$1("uid");
3019
+ const uidService = getService$2("uid");
2915
3020
  ctx.body = {
2916
3021
  data: await uidService.generateUIDField({ contentTypeUID, field, data, locale })
2917
3022
  };
@@ -2923,7 +3028,7 @@ const uid$1 = {
2923
3028
  const { query = {} } = ctx.request;
2924
3029
  const { locale } = await getDocumentLocaleAndStatus(query, contentTypeUID);
2925
3030
  await validateUIDField(contentTypeUID, field);
2926
- const uidService = getService$1("uid");
3031
+ const uidService = getService$2("uid");
2927
3032
  const isAvailable = await uidService.checkUIDAvailability({
2928
3033
  contentTypeUID,
2929
3034
  field,
@@ -2944,7 +3049,8 @@ const controllers = {
2944
3049
  relations,
2945
3050
  "single-types": singleTypes,
2946
3051
  uid: uid$1,
2947
- ...history.controllers ? history.controllers : {}
3052
+ ...history.controllers ? history.controllers : {},
3053
+ ...preview.controllers ? preview.controllers : {}
2948
3054
  };
2949
3055
  const keys = {
2950
3056
  CONFIGURATION: "configuration"
@@ -3095,12 +3201,12 @@ async function syncMetadatas(configuration, schema) {
3095
3201
  return ___default.default.assign(metasWithDefaults, updatedMetas);
3096
3202
  }
3097
3203
  const getTargetSchema = (targetModel) => {
3098
- return getService$1("content-types").findContentType(targetModel);
3204
+ return getService$2("content-types").findContentType(targetModel);
3099
3205
  };
3100
3206
  const DEFAULT_LIST_LENGTH = 4;
3101
3207
  const MAX_ROW_SIZE = 12;
3102
3208
  const isAllowedFieldSize = (type, size) => {
3103
- const { getFieldSize } = getService$1("field-sizes");
3209
+ const { getFieldSize } = getService$2("field-sizes");
3104
3210
  const fieldSize = getFieldSize(type);
3105
3211
  if (!fieldSize.isResizable && size !== fieldSize.default) {
3106
3212
  return false;
@@ -3108,7 +3214,7 @@ const isAllowedFieldSize = (type, size) => {
3108
3214
  return size <= MAX_ROW_SIZE;
3109
3215
  };
3110
3216
  const getDefaultFieldSize = (attribute) => {
3111
- const { hasFieldSize, getFieldSize } = getService$1("field-sizes");
3217
+ const { hasFieldSize, getFieldSize } = getService$2("field-sizes");
3112
3218
  return getFieldSize(hasFieldSize(attribute.customField) ? attribute.customField : attribute.type).default;
3113
3219
  };
3114
3220
  async function createDefaultLayouts(schema) {
@@ -3143,7 +3249,7 @@ function syncLayouts(configuration, schema) {
3143
3249
  for (const el of row) {
3144
3250
  if (!hasEditableAttribute(schema, el.name))
3145
3251
  continue;
3146
- const { hasFieldSize } = getService$1("field-sizes");
3252
+ const { hasFieldSize } = getService$2("field-sizes");
3147
3253
  const fieldType = hasFieldSize(schema.attributes[el.name].customField) ? schema.attributes[el.name].customField : schema.attributes[el.name].type;
3148
3254
  if (!isAllowedFieldSize(fieldType, el.size)) {
3149
3255
  elementsToReAppend.push(el.name);
@@ -3283,17 +3389,17 @@ const configurationService$1 = createConfigurationService({
3283
3389
  isComponent: true,
3284
3390
  prefix: STORE_KEY_PREFIX,
3285
3391
  getModels() {
3286
- const { toContentManagerModel } = getService$1("data-mapper");
3392
+ const { toContentManagerModel } = getService$2("data-mapper");
3287
3393
  return fp.mapValues(toContentManagerModel, strapi.components);
3288
3394
  }
3289
3395
  });
3290
3396
  const components = ({ strapi: strapi2 }) => ({
3291
3397
  findAllComponents() {
3292
- const { toContentManagerModel } = getService$1("data-mapper");
3398
+ const { toContentManagerModel } = getService$2("data-mapper");
3293
3399
  return Object.values(strapi2.components).map(toContentManagerModel);
3294
3400
  },
3295
3401
  findComponent(uid2) {
3296
- const { toContentManagerModel } = getService$1("data-mapper");
3402
+ const { toContentManagerModel } = getService$2("data-mapper");
3297
3403
  const component = strapi2.components[uid2];
3298
3404
  return fp.isNil(component) ? component : toContentManagerModel(component);
3299
3405
  },
@@ -3344,17 +3450,17 @@ const configurationService = createConfigurationService({
3344
3450
  storeUtils,
3345
3451
  prefix: "content_types",
3346
3452
  getModels() {
3347
- const { toContentManagerModel } = getService$1("data-mapper");
3453
+ const { toContentManagerModel } = getService$2("data-mapper");
3348
3454
  return fp.mapValues(toContentManagerModel, strapi.contentTypes);
3349
3455
  }
3350
3456
  });
3351
3457
  const service = ({ strapi: strapi2 }) => ({
3352
3458
  findAllContentTypes() {
3353
- const { toContentManagerModel } = getService$1("data-mapper");
3459
+ const { toContentManagerModel } = getService$2("data-mapper");
3354
3460
  return Object.values(strapi2.contentTypes).map(toContentManagerModel);
3355
3461
  },
3356
3462
  findContentType(uid2) {
3357
- const { toContentManagerModel } = getService$1("data-mapper");
3463
+ const { toContentManagerModel } = getService$2("data-mapper");
3358
3464
  const contentType = strapi2.contentTypes[uid2];
3359
3465
  return fp.isNil(contentType) ? contentType : toContentManagerModel(contentType);
3360
3466
  },
@@ -3383,7 +3489,7 @@ const service = ({ strapi: strapi2 }) => ({
3383
3489
  return this.findConfiguration(contentType);
3384
3490
  },
3385
3491
  findComponentsConfigurations(contentType) {
3386
- return getService$1("components").findComponentsConfigurations(contentType);
3492
+ return getService$2("components").findComponentsConfigurations(contentType);
3387
3493
  },
3388
3494
  syncConfigurations() {
3389
3495
  return configurationService.syncConfigurations();
@@ -3655,7 +3761,7 @@ const permission = ({ strapi: strapi2 }) => ({
3655
3761
  return userAbility.can(action);
3656
3762
  },
3657
3763
  async registerPermissions() {
3658
- const displayedContentTypes = getService$1("content-types").findDisplayedContentTypes();
3764
+ const displayedContentTypes = getService$2("content-types").findDisplayedContentTypes();
3659
3765
  const contentTypesUids = displayedContentTypes.map(fp.prop("uid"));
3660
3766
  const actions = [
3661
3767
  {
@@ -3931,7 +4037,7 @@ const getQueryPopulate = async (uid2, query) => {
3931
4037
  return populateQuery;
3932
4038
  };
3933
4039
  const buildDeepPopulate = (uid2) => {
3934
- return getService$1("populate-builder")(uid2).populateDeep(Infinity).countRelations().build();
4040
+ return getService$2("populate-builder")(uid2).populateDeep(Infinity).countRelations().build();
3935
4041
  };
3936
4042
  const populateBuilder = (uid2) => {
3937
4043
  let getInitialPopulate = async () => {
@@ -4474,7 +4580,8 @@ const services = {
4474
4580
  permission,
4475
4581
  "populate-builder": populateBuilder$1,
4476
4582
  uid,
4477
- ...history.services ? history.services : {}
4583
+ ...history.services ? history.services : {},
4584
+ ...preview.services ? preview.services : {}
4478
4585
  };
4479
4586
  const index = () => {
4480
4587
  return {