@strapi/content-manager 5.0.4 → 5.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/dist/_chunks/{ComponentConfigurationPage-CIjXcRAB.mjs → ComponentConfigurationPage-DfFSZQxe.mjs} +4 -4
  2. package/dist/_chunks/{ComponentConfigurationPage-CIjXcRAB.mjs.map → ComponentConfigurationPage-DfFSZQxe.mjs.map} +1 -1
  3. package/dist/_chunks/{ComponentConfigurationPage-gsCd80MU.js → ComponentConfigurationPage-FqfsxQ1j.js} +4 -4
  4. package/dist/_chunks/{ComponentConfigurationPage-gsCd80MU.js.map → ComponentConfigurationPage-FqfsxQ1j.js.map} +1 -1
  5. package/dist/_chunks/{EditConfigurationPage-DHDQKBzw.js → EditConfigurationPage-Cn0e8t3I.js} +4 -4
  6. package/dist/_chunks/{EditConfigurationPage-DHDQKBzw.js.map → EditConfigurationPage-Cn0e8t3I.js.map} +1 -1
  7. package/dist/_chunks/{EditConfigurationPage-BglmD_BF.mjs → EditConfigurationPage-DdPNAbl3.mjs} +4 -4
  8. package/dist/_chunks/{EditConfigurationPage-BglmD_BF.mjs.map → EditConfigurationPage-DdPNAbl3.mjs.map} +1 -1
  9. package/dist/_chunks/{EditViewPage-CiwVPMaK.mjs → EditViewPage-B82x_x1b.mjs} +3 -3
  10. package/dist/_chunks/EditViewPage-B82x_x1b.mjs.map +1 -0
  11. package/dist/_chunks/{EditViewPage-C4iTxUPU.js → EditViewPage-DlxEHhUt.js} +3 -3
  12. package/dist/_chunks/EditViewPage-DlxEHhUt.js.map +1 -0
  13. package/dist/_chunks/{Field-DhXEK8y1.js → Field-COL25JiC.js} +4 -4
  14. package/dist/_chunks/{Field-DhXEK8y1.js.map → Field-COL25JiC.js.map} +1 -1
  15. package/dist/_chunks/{Field-DIjL1b5d.mjs → Field-DufHXW17.mjs} +4 -4
  16. package/dist/_chunks/{Field-DIjL1b5d.mjs.map → Field-DufHXW17.mjs.map} +1 -1
  17. package/dist/_chunks/{Form-CwmJ4sWe.js → Form-BssUwrTO.js} +2 -2
  18. package/dist/_chunks/{Form-CwmJ4sWe.js.map → Form-BssUwrTO.js.map} +1 -1
  19. package/dist/_chunks/{Form-CmNesrvR.mjs → Form-u_kAOhwB.mjs} +2 -2
  20. package/dist/_chunks/{Form-CmNesrvR.mjs.map → Form-u_kAOhwB.mjs.map} +1 -1
  21. package/dist/_chunks/{History-BLCCNgCt.js → History-C9t9UqpO.js} +5 -5
  22. package/dist/_chunks/History-C9t9UqpO.js.map +1 -0
  23. package/dist/_chunks/{History-D-99Wh30.mjs → History-DRwA3oMM.mjs} +5 -5
  24. package/dist/_chunks/History-DRwA3oMM.mjs.map +1 -0
  25. package/dist/_chunks/{ListConfigurationPage-DxWpeZrO.js → ListConfigurationPage-BXYPohh-.js} +3 -3
  26. package/dist/_chunks/{ListConfigurationPage-DxWpeZrO.js.map → ListConfigurationPage-BXYPohh-.js.map} +1 -1
  27. package/dist/_chunks/{ListConfigurationPage-JPWZz7Kg.mjs → ListConfigurationPage-BxfQJzPk.mjs} +3 -3
  28. package/dist/_chunks/{ListConfigurationPage-JPWZz7Kg.mjs.map → ListConfigurationPage-BxfQJzPk.mjs.map} +1 -1
  29. package/dist/_chunks/{ListViewPage-DSK3f0ST.mjs → ListViewPage-CELx2ysp.mjs} +4 -15
  30. package/dist/_chunks/{ListViewPage-DSK3f0ST.mjs.map → ListViewPage-CELx2ysp.mjs.map} +1 -1
  31. package/dist/_chunks/{ListViewPage-CIQekSFz.js → ListViewPage-D2VD8Szg.js} +4 -15
  32. package/dist/_chunks/ListViewPage-D2VD8Szg.js.map +1 -0
  33. package/dist/_chunks/{NoContentTypePage-C5cxKvC2.js → NoContentTypePage-BV9IjJSM.js} +2 -2
  34. package/dist/_chunks/{NoContentTypePage-C5cxKvC2.js.map → NoContentTypePage-BV9IjJSM.js.map} +1 -1
  35. package/dist/_chunks/{NoContentTypePage-D99LU1YP.mjs → NoContentTypePage-DtJ9jcfk.mjs} +2 -2
  36. package/dist/_chunks/{NoContentTypePage-D99LU1YP.mjs.map → NoContentTypePage-DtJ9jcfk.mjs.map} +1 -1
  37. package/dist/_chunks/{NoPermissionsPage-DBrBw-0y.mjs → NoPermissionsPage-DWleVYK7.mjs} +2 -2
  38. package/dist/_chunks/{NoPermissionsPage-DBrBw-0y.mjs.map → NoPermissionsPage-DWleVYK7.mjs.map} +1 -1
  39. package/dist/_chunks/{NoPermissionsPage-Oy4tmUrW.js → NoPermissionsPage-Dp8NpF9I.js} +2 -2
  40. package/dist/_chunks/{NoPermissionsPage-Oy4tmUrW.js.map → NoPermissionsPage-Dp8NpF9I.js.map} +1 -1
  41. package/dist/_chunks/{Relations-BBmhcWFV.mjs → Relations-BTcf5xaw.mjs} +17 -41
  42. package/dist/_chunks/Relations-BTcf5xaw.mjs.map +1 -0
  43. package/dist/_chunks/{Relations-eG-9p_qS.js → Relations-DR7EUgyC.js} +16 -40
  44. package/dist/_chunks/Relations-DR7EUgyC.js.map +1 -0
  45. package/dist/_chunks/{index-BIWDoFLK.js → index-BdMf2lfT.js} +21 -45
  46. package/dist/_chunks/index-BdMf2lfT.js.map +1 -0
  47. package/dist/_chunks/{index-BrUzbQ30.mjs → index-wnqzm4Q8.mjs} +21 -44
  48. package/dist/_chunks/index-wnqzm4Q8.mjs.map +1 -0
  49. package/dist/_chunks/{layout-_5-cXs34.mjs → layout-2CfjL0T9.mjs} +3 -3
  50. package/dist/_chunks/{layout-_5-cXs34.mjs.map → layout-2CfjL0T9.mjs.map} +1 -1
  51. package/dist/_chunks/{layout-lMc9i1-Z.js → layout-B2MyZU-_.js} +3 -3
  52. package/dist/_chunks/{layout-lMc9i1-Z.js.map → layout-B2MyZU-_.js.map} +1 -1
  53. package/dist/_chunks/{objects-BcXOv6_9.js → objects-gigeqt7s.js} +4 -2
  54. package/dist/_chunks/{objects-BcXOv6_9.js.map → objects-gigeqt7s.js.map} +1 -1
  55. package/dist/_chunks/{objects-D6yBsdmx.mjs → objects-mKMAmfec.mjs} +4 -2
  56. package/dist/_chunks/{objects-D6yBsdmx.mjs.map → objects-mKMAmfec.mjs.map} +1 -1
  57. package/dist/_chunks/{relations-BRHithi8.js → relations-BH7JJGGe.js} +7 -3
  58. package/dist/_chunks/relations-BH7JJGGe.js.map +1 -0
  59. package/dist/_chunks/{relations-B_VLk-DD.mjs → relations-C0w0GcXi.mjs} +7 -3
  60. package/dist/_chunks/relations-C0w0GcXi.mjs.map +1 -0
  61. package/dist/admin/index.js +1 -1
  62. package/dist/admin/index.mjs +1 -1
  63. package/dist/server/index.js +144 -344
  64. package/dist/server/index.js.map +1 -1
  65. package/dist/server/index.mjs +144 -344
  66. package/dist/server/index.mjs.map +1 -1
  67. package/dist/server/src/bootstrap.d.ts.map +1 -1
  68. package/dist/server/src/controllers/index.d.ts.map +1 -1
  69. package/dist/server/src/controllers/relations.d.ts.map +1 -1
  70. package/dist/server/src/controllers/utils/metadata.d.ts +1 -15
  71. package/dist/server/src/controllers/utils/metadata.d.ts.map +1 -1
  72. package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
  73. package/dist/server/src/history/services/utils.d.ts +3 -2
  74. package/dist/server/src/history/services/utils.d.ts.map +1 -1
  75. package/dist/server/src/index.d.ts +4 -4
  76. package/dist/server/src/routes/index.d.ts.map +1 -1
  77. package/dist/server/src/services/document-metadata.d.ts +8 -8
  78. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  79. package/dist/server/src/services/index.d.ts +4 -4
  80. package/dist/server/src/services/index.d.ts.map +1 -1
  81. package/dist/server/src/services/utils/configuration/index.d.ts +2 -2
  82. package/dist/server/src/services/utils/configuration/layouts.d.ts +2 -2
  83. package/dist/server/src/utils/index.d.ts +0 -2
  84. package/dist/server/src/utils/index.d.ts.map +1 -1
  85. package/dist/shared/contracts/index.d.ts +0 -1
  86. package/dist/shared/contracts/index.d.ts.map +1 -1
  87. package/dist/shared/index.js +0 -4
  88. package/dist/shared/index.js.map +1 -1
  89. package/dist/shared/index.mjs +0 -4
  90. package/dist/shared/index.mjs.map +1 -1
  91. package/package.json +6 -6
  92. package/dist/_chunks/EditViewPage-C4iTxUPU.js.map +0 -1
  93. package/dist/_chunks/EditViewPage-CiwVPMaK.mjs.map +0 -1
  94. package/dist/_chunks/History-BLCCNgCt.js.map +0 -1
  95. package/dist/_chunks/History-D-99Wh30.mjs.map +0 -1
  96. package/dist/_chunks/ListViewPage-CIQekSFz.js.map +0 -1
  97. package/dist/_chunks/Relations-BBmhcWFV.mjs.map +0 -1
  98. package/dist/_chunks/Relations-eG-9p_qS.js.map +0 -1
  99. package/dist/_chunks/index-BIWDoFLK.js.map +0 -1
  100. package/dist/_chunks/index-BrUzbQ30.mjs.map +0 -1
  101. package/dist/_chunks/relations-BRHithi8.js.map +0 -1
  102. package/dist/_chunks/relations-B_VLk-DD.mjs.map +0 -1
  103. package/dist/admin/src/preview/constants.d.ts +0 -1
  104. package/dist/admin/src/preview/index.d.ts +0 -4
  105. package/dist/server/src/preview/constants.d.ts +0 -2
  106. package/dist/server/src/preview/constants.d.ts.map +0 -1
  107. package/dist/server/src/preview/controllers/index.d.ts +0 -2
  108. package/dist/server/src/preview/controllers/index.d.ts.map +0 -1
  109. package/dist/server/src/preview/controllers/preview.d.ts +0 -13
  110. package/dist/server/src/preview/controllers/preview.d.ts.map +0 -1
  111. package/dist/server/src/preview/controllers/validation/preview.d.ts +0 -6
  112. package/dist/server/src/preview/controllers/validation/preview.d.ts.map +0 -1
  113. package/dist/server/src/preview/index.d.ts +0 -4
  114. package/dist/server/src/preview/index.d.ts.map +0 -1
  115. package/dist/server/src/preview/routes/index.d.ts +0 -8
  116. package/dist/server/src/preview/routes/index.d.ts.map +0 -1
  117. package/dist/server/src/preview/routes/preview.d.ts +0 -4
  118. package/dist/server/src/preview/routes/preview.d.ts.map +0 -1
  119. package/dist/server/src/preview/services/index.d.ts +0 -15
  120. package/dist/server/src/preview/services/index.d.ts.map +0 -1
  121. package/dist/server/src/preview/services/preview-config.d.ts +0 -30
  122. package/dist/server/src/preview/services/preview-config.d.ts.map +0 -1
  123. package/dist/server/src/preview/services/preview.d.ts +0 -12
  124. package/dist/server/src/preview/services/preview.d.ts.map +0 -1
  125. package/dist/server/src/preview/utils.d.ts +0 -18
  126. package/dist/server/src/preview/utils.d.ts.map +0 -1
  127. package/dist/shared/contracts/preview.d.ts +0 -27
  128. package/dist/shared/contracts/preview.d.ts.map +0 -1
@@ -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$2 = (name) => {
36
+ const getService$1 = (name) => {
37
37
  return strapi.plugin("content-manager").service(name);
38
38
  };
39
- function getService$1(strapi2, name) {
39
+ function getService(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$2("permission-checker").create({
75
+ const permissionChecker2 = getService$1("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$1(strapi2, "history").findVersionsPage({
83
+ const { results, pagination } = await getService(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$2("permission-checker").create({
108
+ const permissionChecker2 = getService$1("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$1(strapi2, "history").restoreVersion(
115
+ const restoredDocument = await getService(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$2 = {
124
+ const controllers$1 = {
125
125
  "history-version": createHistoryVersionController
126
126
  /**
127
127
  * Casting is needed because the types aren't aware that Strapi supports
@@ -228,17 +228,6 @@ 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
- };
242
231
  const getDeepPopulate2 = (uid2, useDatabaseSyntax = false) => {
243
232
  const model = strapi2.getModel(uid2);
244
233
  const attributes = Object.entries(model.attributes);
@@ -262,19 +251,13 @@ const createServiceUtils = ({ strapi: strapi2 }) => {
262
251
  }
263
252
  case "component": {
264
253
  const populate = getDeepPopulate2(attribute.component);
265
- acc[attributeName] = {
266
- populate,
267
- [fieldSelector]: getComponentFields(attribute.component)
268
- };
254
+ acc[attributeName] = { populate };
269
255
  break;
270
256
  }
271
257
  case "dynamiczone": {
272
258
  const populatedComponents = (attribute.components || []).reduce(
273
259
  (acc2, componentUID) => {
274
- acc2[componentUID] = {
275
- populate: getDeepPopulate2(componentUID),
276
- [fieldSelector]: getComponentFields(componentUID)
277
- };
260
+ acc2[componentUID] = { populate: getDeepPopulate2(componentUID) };
278
261
  return acc2;
279
262
  },
280
263
  {}
@@ -387,7 +370,7 @@ const createHistoryService = ({ strapi: strapi2 }) => {
387
370
  const attributeValue = entry.data[attributeKey];
388
371
  const attributeValues = Array.isArray(attributeValue) ? attributeValue : [attributeValue];
389
372
  if (attributeSchema.type === "media") {
390
- const permissionChecker2 = getService$2("permission-checker").create({
373
+ const permissionChecker2 = getService$1("permission-checker").create({
391
374
  userAbility: params.state.userAbility,
392
375
  model: "plugin::upload.file"
393
376
  });
@@ -428,7 +411,7 @@ const createHistoryService = ({ strapi: strapi2 }) => {
428
411
  [attributeKey]: adminUsers
429
412
  };
430
413
  }
431
- const permissionChecker2 = getService$2("permission-checker").create({
414
+ const permissionChecker2 = getService$1("permission-checker").create({
432
415
  userAbility: params.state.userAbility,
433
416
  model: attributeSchema.target
434
417
  });
@@ -604,7 +587,7 @@ const createLifecyclesService = ({ strapi: strapi2 }) => {
604
587
  onCommit(async () => {
605
588
  for (const entry of localeEntries) {
606
589
  const status = await serviceUtils.getVersionStatus(uid2, entry);
607
- await getService$1(strapi2, "history").createVersion({
590
+ await getService(strapi2, "history").createVersion({
608
591
  contentType: uid2,
609
592
  data: fp.omit(FIELDS_TO_IGNORE, entry),
610
593
  relatedDocumentId: documentId,
@@ -617,19 +600,15 @@ const createLifecyclesService = ({ strapi: strapi2 }) => {
617
600
  });
618
601
  return result;
619
602
  });
620
- state.deleteExpiredJob = nodeSchedule.scheduleJob("historyDaily", "0 0 * * *", () => {
603
+ state.deleteExpiredJob = nodeSchedule.scheduleJob("0 0 * * *", () => {
621
604
  const retentionDaysInMilliseconds = serviceUtils.getRetentionDays() * 24 * 60 * 60 * 1e3;
622
605
  const expirationDate = new Date(Date.now() - retentionDaysInMilliseconds);
623
606
  strapi2.db.query(HISTORY_VERSION_UID).deleteMany({
624
607
  where: {
625
608
  created_at: {
626
- $lt: expirationDate
609
+ $lt: expirationDate.toISOString()
627
610
  }
628
611
  }
629
- }).catch((error) => {
630
- if (error instanceof Error) {
631
- strapi2.log.error("Error deleting expired history versions", error.message);
632
- }
633
612
  });
634
613
  });
635
614
  state.isInitialized = true;
@@ -641,17 +620,17 @@ const createLifecyclesService = ({ strapi: strapi2 }) => {
641
620
  }
642
621
  };
643
622
  };
644
- const services$2 = {
623
+ const services$1 = {
645
624
  history: createHistoryService,
646
625
  lifecycles: createLifecyclesService
647
626
  };
648
- const info$1 = { pluginName: "content-manager", type: "admin" };
627
+ const info = { pluginName: "content-manager", type: "admin" };
649
628
  const historyVersionRouter = {
650
629
  type: "admin",
651
630
  routes: [
652
631
  {
653
632
  method: "GET",
654
- info: info$1,
633
+ info,
655
634
  path: "/history-versions",
656
635
  handler: "history-version.findMany",
657
636
  config: {
@@ -660,7 +639,7 @@ const historyVersionRouter = {
660
639
  },
661
640
  {
662
641
  method: "PUT",
663
- info: info$1,
642
+ info,
664
643
  path: "/history-versions/:versionId/restore",
665
644
  handler: "history-version.restoreVersion",
666
645
  config: {
@@ -669,7 +648,7 @@ const historyVersionRouter = {
669
648
  }
670
649
  ]
671
650
  };
672
- const routes$2 = {
651
+ const routes$1 = {
673
652
  "history-version": historyVersionRouter
674
653
  };
675
654
  const historyVersion = {
@@ -716,21 +695,21 @@ const historyVersion = {
716
695
  }
717
696
  }
718
697
  };
719
- const getFeature$1 = () => {
698
+ const getFeature = () => {
720
699
  if (strapi.ee.features.isEnabled("cms-content-history")) {
721
700
  return {
722
701
  register({ strapi: strapi2 }) {
723
702
  strapi2.get("models").add(historyVersion);
724
703
  },
725
704
  bootstrap({ strapi: strapi2 }) {
726
- getService$1(strapi2, "lifecycles").bootstrap();
705
+ getService(strapi2, "lifecycles").bootstrap();
727
706
  },
728
707
  destroy({ strapi: strapi2 }) {
729
- getService$1(strapi2, "lifecycles").destroy();
708
+ getService(strapi2, "lifecycles").destroy();
730
709
  },
731
- controllers: controllers$2,
732
- services: services$2,
733
- routes: routes$2
710
+ controllers: controllers$1,
711
+ services: services$1,
712
+ routes: routes$1
734
713
  };
735
714
  }
736
715
  return {
@@ -739,7 +718,7 @@ const getFeature$1 = () => {
739
718
  }
740
719
  };
741
720
  };
742
- const history = getFeature$1();
721
+ const history = getFeature();
743
722
  const register = async ({ strapi: strapi2 }) => {
744
723
  await history.register?.({ strapi: strapi2 });
745
724
  };
@@ -747,165 +726,15 @@ const ALLOWED_WEBHOOK_EVENTS = {
747
726
  ENTRY_PUBLISH: "entry.publish",
748
727
  ENTRY_UNPUBLISH: "entry.unpublish"
749
728
  };
750
- const FEATURE_ID = "preview";
751
- const info = { pluginName: "content-manager", type: "admin" };
752
- const previewRouter = {
753
- type: "admin",
754
- routes: [
755
- {
756
- method: "GET",
757
- info,
758
- path: "/preview/url/:contentType",
759
- handler: "preview.getPreviewUrl",
760
- config: {
761
- policies: ["admin::isAuthenticatedAdmin"]
762
- }
763
- }
764
- ]
765
- };
766
- const routes$1 = {
767
- preview: previewRouter
768
- };
769
- function getService(strapi2, name) {
770
- return strapi2.service(`plugin::content-manager.${name}`);
771
- }
772
- const getPreviewUrlSchema = yup__namespace.object().shape({
773
- // Will be undefined for single types
774
- documentId: yup__namespace.string(),
775
- locale: yup__namespace.string().nullable(),
776
- status: yup__namespace.string()
777
- }).required();
778
- const validatePreviewUrl = async (strapi2, uid2, params) => {
779
- await strapiUtils.validateYupSchema(getPreviewUrlSchema)(params);
780
- const newParams = fp.pick(["documentId", "locale", "status"], params);
781
- const model = strapi2.getModel(uid2);
782
- if (!model || model.modelType !== "contentType") {
783
- throw new strapiUtils.errors.ValidationError("Invalid content type");
784
- }
785
- const isSingleType = model?.kind === "singleType";
786
- if (!isSingleType && !params.documentId) {
787
- throw new strapiUtils.errors.ValidationError("documentId is required for Collection Types");
788
- }
789
- if (isSingleType) {
790
- const doc = await strapi2.documents(uid2).findFirst();
791
- if (!doc) {
792
- throw new strapiUtils.errors.NotFoundError("Document not found");
793
- }
794
- newParams.documentId = doc?.documentId;
795
- }
796
- return newParams;
797
- };
798
- const createPreviewController = () => {
799
- return {
800
- /**
801
- * Transforms an entry into a preview URL, so that it can be previewed
802
- * in the Content Manager.
803
- */
804
- async getPreviewUrl(ctx) {
805
- const uid2 = ctx.params.contentType;
806
- const query = ctx.request.query;
807
- const params = await validatePreviewUrl(strapi, uid2, query);
808
- const previewService = getService(strapi, "preview");
809
- const url = await previewService.getPreviewUrl(uid2, params);
810
- if (!url) {
811
- ctx.status = 204;
812
- }
813
- return {
814
- data: { url }
815
- };
816
- }
817
- };
818
- };
819
- const controllers$1 = {
820
- preview: createPreviewController
821
- /**
822
- * Casting is needed because the types aren't aware that Strapi supports
823
- * passing a controller factory as the value, instead of a controller object directly
824
- */
825
- };
826
- const createPreviewService = ({ strapi: strapi2 }) => {
827
- const config = getService(strapi2, "preview-config");
828
- return {
829
- async getPreviewUrl(uid2, params) {
830
- const handler = config.getPreviewHandler();
831
- try {
832
- return handler(uid2, params);
833
- } catch (error) {
834
- strapi2.log.error(`Failed to get preview URL: ${error}`);
835
- throw new strapiUtils.errors.ApplicationError("Failed to get preview URL");
836
- }
837
- return;
838
- }
839
- };
840
- };
841
- const createPreviewConfigService = ({ strapi: strapi2 }) => {
842
- return {
843
- isEnabled() {
844
- const config = strapi2.config.get("admin.preview");
845
- if (!config) {
846
- return false;
847
- }
848
- return config?.enabled ?? true;
849
- },
850
- /**
851
- * Validate if the configuration is valid
852
- */
853
- validate() {
854
- if (!this.isEnabled()) {
855
- return;
856
- }
857
- const handler = this.getPreviewHandler();
858
- if (typeof handler !== "function") {
859
- throw new strapiUtils.errors.ValidationError(
860
- "Preview configuration is invalid. Handler must be a function"
861
- );
862
- }
863
- },
864
- /**
865
- * Utility to get the preview handler from the configuration
866
- */
867
- getPreviewHandler() {
868
- const config = strapi2.config.get("admin.preview");
869
- const emptyHandler = () => {
870
- return void 0;
871
- };
872
- if (!this.isEnabled()) {
873
- return emptyHandler;
874
- }
875
- return config?.config?.handler || emptyHandler;
876
- }
877
- };
878
- };
879
- const services$1 = {
880
- preview: createPreviewService,
881
- "preview-config": createPreviewConfigService
882
- };
883
- const getFeature = () => {
884
- if (!strapi.features.future.isEnabled(FEATURE_ID)) {
885
- return {};
886
- }
887
- return {
888
- bootstrap() {
889
- console.log("Bootstrapping preview server");
890
- const config = getService(strapi, "preview-config");
891
- config.validate();
892
- },
893
- routes: routes$1,
894
- controllers: controllers$1,
895
- services: services$1
896
- };
897
- };
898
- const preview = getFeature();
899
729
  const bootstrap = async () => {
900
730
  Object.entries(ALLOWED_WEBHOOK_EVENTS).forEach(([key, value]) => {
901
731
  strapi.get("webhookStore").addAllowedEvent(key, value);
902
732
  });
903
- getService$2("field-sizes").setCustomFieldInputSizes();
904
- await getService$2("components").syncConfigurations();
905
- await getService$2("content-types").syncConfigurations();
906
- await getService$2("permission").registerPermissions();
733
+ getService$1("field-sizes").setCustomFieldInputSizes();
734
+ await getService$1("components").syncConfigurations();
735
+ await getService$1("content-types").syncConfigurations();
736
+ await getService$1("permission").registerPermissions();
907
737
  await history.bootstrap?.({ strapi });
908
- await preview.bootstrap?.({ strapi });
909
738
  };
910
739
  const destroy = async ({ strapi: strapi2 }) => {
911
740
  await history.destroy?.({ strapi: strapi2 });
@@ -1395,8 +1224,7 @@ const admin = {
1395
1224
  };
1396
1225
  const routes = {
1397
1226
  admin,
1398
- ...history.routes ? history.routes : {},
1399
- ...preview.routes ? preview.routes : {}
1227
+ ...history.routes ? history.routes : {}
1400
1228
  };
1401
1229
  const hasPermissionsSchema = strapiUtils.yup.object({
1402
1230
  actions: strapiUtils.yup.array().of(strapiUtils.yup.string()),
@@ -1653,7 +1481,7 @@ const createMetadasSchema = (schema) => {
1653
1481
  if (!value) {
1654
1482
  return strapiUtils.yup.string();
1655
1483
  }
1656
- const targetSchema = getService$2("content-types").findContentType(
1484
+ const targetSchema = getService$1("content-types").findContentType(
1657
1485
  schema.attributes[key].targetModel
1658
1486
  );
1659
1487
  if (!targetSchema) {
@@ -1822,7 +1650,7 @@ const getDocumentLocaleAndStatus = async (request, model, opts = { allowMultiple
1822
1650
  }
1823
1651
  };
1824
1652
  const formatDocumentWithMetadata = async (permissionChecker2, uid2, document, opts = {}) => {
1825
- const documentMetadata2 = getService$2("document-metadata");
1653
+ const documentMetadata2 = getService$1("document-metadata");
1826
1654
  const serviceOutput = await documentMetadata2.formatDocumentWithMetadata(uid2, document, opts);
1827
1655
  let {
1828
1656
  meta: { availableLocales, availableStatus }
@@ -1848,8 +1676,8 @@ const createDocument = async (ctx, opts) => {
1848
1676
  const { userAbility, user } = ctx.state;
1849
1677
  const { model } = ctx.params;
1850
1678
  const { body } = ctx.request;
1851
- const documentManager2 = getService$2("document-manager");
1852
- const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
1679
+ const documentManager2 = getService$1("document-manager");
1680
+ const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
1853
1681
  if (permissionChecker2.cannot.create()) {
1854
1682
  throw new strapiUtils.errors.ForbiddenError();
1855
1683
  }
@@ -1869,13 +1697,13 @@ const updateDocument = async (ctx, opts) => {
1869
1697
  const { userAbility, user } = ctx.state;
1870
1698
  const { id, model } = ctx.params;
1871
1699
  const { body } = ctx.request;
1872
- const documentManager2 = getService$2("document-manager");
1873
- const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
1700
+ const documentManager2 = getService$1("document-manager");
1701
+ const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
1874
1702
  if (permissionChecker2.cannot.update()) {
1875
1703
  throw new strapiUtils.errors.ForbiddenError();
1876
1704
  }
1877
1705
  const permissionQuery = await permissionChecker2.sanitizedQuery.update(ctx.query);
1878
- const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
1706
+ const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
1879
1707
  const { locale } = await getDocumentLocaleAndStatus(body, model);
1880
1708
  const [documentVersion, documentExists] = await Promise.all([
1881
1709
  documentManager2.findOne(id, model, { populate, locale, status: "draft" }),
@@ -1906,14 +1734,14 @@ const collectionTypes = {
1906
1734
  const { userAbility } = ctx.state;
1907
1735
  const { model } = ctx.params;
1908
1736
  const { query } = ctx.request;
1909
- const documentMetadata2 = getService$2("document-metadata");
1910
- const documentManager2 = getService$2("document-manager");
1911
- const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
1737
+ const documentMetadata2 = getService$1("document-metadata");
1738
+ const documentManager2 = getService$1("document-manager");
1739
+ const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
1912
1740
  if (permissionChecker2.cannot.read()) {
1913
1741
  return ctx.forbidden();
1914
1742
  }
1915
1743
  const permissionQuery = await permissionChecker2.sanitizedQuery.read(query);
1916
- const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(1).countRelations({ toOne: false, toMany: true }).build();
1744
+ const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(1).countRelations({ toOne: false, toMany: true }).build();
1917
1745
  const { locale, status } = await getDocumentLocaleAndStatus(query, model);
1918
1746
  const { results: documents, pagination } = await documentManager2.findPage(
1919
1747
  { ...permissionQuery, populate, locale, status },
@@ -1942,13 +1770,13 @@ const collectionTypes = {
1942
1770
  async findOne(ctx) {
1943
1771
  const { userAbility } = ctx.state;
1944
1772
  const { model, id } = ctx.params;
1945
- const documentManager2 = getService$2("document-manager");
1946
- const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
1773
+ const documentManager2 = getService$1("document-manager");
1774
+ const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
1947
1775
  if (permissionChecker2.cannot.read()) {
1948
1776
  return ctx.forbidden();
1949
1777
  }
1950
1778
  const permissionQuery = await permissionChecker2.sanitizedQuery.read(ctx.query);
1951
- const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(Infinity).countRelations().build();
1779
+ const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(Infinity).countRelations().build();
1952
1780
  const { locale, status } = await getDocumentLocaleAndStatus(ctx.query, model);
1953
1781
  const version = await documentManager2.findOne(id, model, {
1954
1782
  populate,
@@ -1979,7 +1807,7 @@ const collectionTypes = {
1979
1807
  async create(ctx) {
1980
1808
  const { userAbility } = ctx.state;
1981
1809
  const { model } = ctx.params;
1982
- const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
1810
+ const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
1983
1811
  const [totalEntries, document] = await Promise.all([
1984
1812
  strapi.db.query(model).count(),
1985
1813
  createDocument(ctx)
@@ -2000,7 +1828,7 @@ const collectionTypes = {
2000
1828
  async update(ctx) {
2001
1829
  const { userAbility } = ctx.state;
2002
1830
  const { model } = ctx.params;
2003
- const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
1831
+ const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2004
1832
  const updatedVersion = await updateDocument(ctx);
2005
1833
  const sanitizedVersion = await permissionChecker2.sanitizeOutput(updatedVersion);
2006
1834
  ctx.body = await formatDocumentWithMetadata(permissionChecker2, model, sanitizedVersion);
@@ -2009,13 +1837,13 @@ const collectionTypes = {
2009
1837
  const { userAbility, user } = ctx.state;
2010
1838
  const { model, sourceId: id } = ctx.params;
2011
1839
  const { body } = ctx.request;
2012
- const documentManager2 = getService$2("document-manager");
2013
- const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
1840
+ const documentManager2 = getService$1("document-manager");
1841
+ const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2014
1842
  if (permissionChecker2.cannot.create()) {
2015
1843
  return ctx.forbidden();
2016
1844
  }
2017
1845
  const permissionQuery = await permissionChecker2.sanitizedQuery.create(ctx.query);
2018
- const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
1846
+ const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
2019
1847
  const { locale } = await getDocumentLocaleAndStatus(body, model);
2020
1848
  const document = await documentManager2.findOne(id, model, {
2021
1849
  populate,
@@ -2054,13 +1882,13 @@ const collectionTypes = {
2054
1882
  async delete(ctx) {
2055
1883
  const { userAbility } = ctx.state;
2056
1884
  const { id, model } = ctx.params;
2057
- const documentManager2 = getService$2("document-manager");
2058
- const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
1885
+ const documentManager2 = getService$1("document-manager");
1886
+ const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2059
1887
  if (permissionChecker2.cannot.delete()) {
2060
1888
  return ctx.forbidden();
2061
1889
  }
2062
1890
  const permissionQuery = await permissionChecker2.sanitizedQuery.delete(ctx.query);
2063
- const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
1891
+ const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
2064
1892
  const { locale } = await getDocumentLocaleAndStatus(ctx.query, model);
2065
1893
  const documentLocales = await documentManager2.findLocales(id, model, { populate, locale });
2066
1894
  if (documentLocales.length === 0) {
@@ -2082,14 +1910,14 @@ const collectionTypes = {
2082
1910
  const { userAbility } = ctx.state;
2083
1911
  const { id, model } = ctx.params;
2084
1912
  const { body } = ctx.request;
2085
- const documentManager2 = getService$2("document-manager");
2086
- const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
1913
+ const documentManager2 = getService$1("document-manager");
1914
+ const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2087
1915
  if (permissionChecker2.cannot.publish()) {
2088
1916
  return ctx.forbidden();
2089
1917
  }
2090
1918
  const publishedDocument = await strapi.db.transaction(async () => {
2091
1919
  const permissionQuery = await permissionChecker2.sanitizedQuery.publish(ctx.query);
2092
- const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(Infinity).countRelations().build();
1920
+ const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(Infinity).countRelations().build();
2093
1921
  let document;
2094
1922
  const { locale } = await getDocumentLocaleAndStatus(body, model);
2095
1923
  const isCreate = fp.isNil(id);
@@ -2137,13 +1965,13 @@ const collectionTypes = {
2137
1965
  const { body } = ctx.request;
2138
1966
  const { documentIds } = body;
2139
1967
  await validateBulkActionInput(body);
2140
- const documentManager2 = getService$2("document-manager");
2141
- const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
1968
+ const documentManager2 = getService$1("document-manager");
1969
+ const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2142
1970
  if (permissionChecker2.cannot.publish()) {
2143
1971
  return ctx.forbidden();
2144
1972
  }
2145
1973
  const permissionQuery = await permissionChecker2.sanitizedQuery.publish(ctx.query);
2146
- const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(Infinity).countRelations().build();
1974
+ const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(Infinity).countRelations().build();
2147
1975
  const { locale } = await getDocumentLocaleAndStatus(body, model, {
2148
1976
  allowMultipleLocales: true
2149
1977
  });
@@ -2168,8 +1996,8 @@ const collectionTypes = {
2168
1996
  const { body } = ctx.request;
2169
1997
  const { documentIds } = body;
2170
1998
  await validateBulkActionInput(body);
2171
- const documentManager2 = getService$2("document-manager");
2172
- const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
1999
+ const documentManager2 = getService$1("document-manager");
2000
+ const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2173
2001
  if (permissionChecker2.cannot.unpublish()) {
2174
2002
  return ctx.forbidden();
2175
2003
  }
@@ -2198,8 +2026,8 @@ const collectionTypes = {
2198
2026
  const {
2199
2027
  body: { discardDraft, ...body }
2200
2028
  } = ctx.request;
2201
- const documentManager2 = getService$2("document-manager");
2202
- const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2029
+ const documentManager2 = getService$1("document-manager");
2030
+ const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2203
2031
  if (permissionChecker2.cannot.unpublish()) {
2204
2032
  return ctx.forbidden();
2205
2033
  }
@@ -2207,7 +2035,7 @@ const collectionTypes = {
2207
2035
  return ctx.forbidden();
2208
2036
  }
2209
2037
  const permissionQuery = await permissionChecker2.sanitizedQuery.unpublish(ctx.query);
2210
- const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
2038
+ const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
2211
2039
  const { locale } = await getDocumentLocaleAndStatus(body, model);
2212
2040
  const document = await documentManager2.findOne(id, model, {
2213
2041
  populate,
@@ -2238,13 +2066,13 @@ const collectionTypes = {
2238
2066
  const { userAbility } = ctx.state;
2239
2067
  const { id, model } = ctx.params;
2240
2068
  const { body } = ctx.request;
2241
- const documentManager2 = getService$2("document-manager");
2242
- const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2069
+ const documentManager2 = getService$1("document-manager");
2070
+ const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2243
2071
  if (permissionChecker2.cannot.discard()) {
2244
2072
  return ctx.forbidden();
2245
2073
  }
2246
2074
  const permissionQuery = await permissionChecker2.sanitizedQuery.discard(ctx.query);
2247
- const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
2075
+ const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
2248
2076
  const { locale } = await getDocumentLocaleAndStatus(body, model);
2249
2077
  const document = await documentManager2.findOne(id, model, {
2250
2078
  populate,
@@ -2269,13 +2097,13 @@ const collectionTypes = {
2269
2097
  const { query, body } = ctx.request;
2270
2098
  const { documentIds } = body;
2271
2099
  await validateBulkActionInput(body);
2272
- const documentManager2 = getService$2("document-manager");
2273
- const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2100
+ const documentManager2 = getService$1("document-manager");
2101
+ const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2274
2102
  if (permissionChecker2.cannot.delete()) {
2275
2103
  return ctx.forbidden();
2276
2104
  }
2277
2105
  const permissionQuery = await permissionChecker2.sanitizedQuery.delete(query);
2278
- const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
2106
+ const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
2279
2107
  const { locale } = await getDocumentLocaleAndStatus(body, model);
2280
2108
  const documentLocales = await documentManager2.findLocales(documentIds, model, {
2281
2109
  populate,
@@ -2296,13 +2124,13 @@ const collectionTypes = {
2296
2124
  async countDraftRelations(ctx) {
2297
2125
  const { userAbility } = ctx.state;
2298
2126
  const { model, id } = ctx.params;
2299
- const documentManager2 = getService$2("document-manager");
2300
- const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2127
+ const documentManager2 = getService$1("document-manager");
2128
+ const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2301
2129
  if (permissionChecker2.cannot.read()) {
2302
2130
  return ctx.forbidden();
2303
2131
  }
2304
2132
  const permissionQuery = await permissionChecker2.sanitizedQuery.read(ctx.query);
2305
- const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
2133
+ const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
2306
2134
  const { locale, status } = await getDocumentLocaleAndStatus(ctx.query, model);
2307
2135
  const entity = await documentManager2.findOne(id, model, { populate, locale, status });
2308
2136
  if (!entity) {
@@ -2321,8 +2149,8 @@ const collectionTypes = {
2321
2149
  const ids = ctx.request.query.documentIds;
2322
2150
  const locale = ctx.request.query.locale;
2323
2151
  const { model } = ctx.params;
2324
- const documentManager2 = getService$2("document-manager");
2325
- const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2152
+ const documentManager2 = getService$1("document-manager");
2153
+ const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2326
2154
  if (permissionChecker2.cannot.read()) {
2327
2155
  return ctx.forbidden();
2328
2156
  }
@@ -2346,13 +2174,13 @@ const collectionTypes = {
2346
2174
  };
2347
2175
  const components$1 = {
2348
2176
  findComponents(ctx) {
2349
- const components2 = getService$2("components").findAllComponents();
2350
- const { toDto } = getService$2("data-mapper");
2177
+ const components2 = getService$1("components").findAllComponents();
2178
+ const { toDto } = getService$1("data-mapper");
2351
2179
  ctx.body = { data: components2.map(toDto) };
2352
2180
  },
2353
2181
  async findComponentConfiguration(ctx) {
2354
2182
  const { uid: uid2 } = ctx.params;
2355
- const componentService = getService$2("components");
2183
+ const componentService = getService$1("components");
2356
2184
  const component = componentService.findComponent(uid2);
2357
2185
  if (!component) {
2358
2186
  return ctx.notFound("component.notFound");
@@ -2369,7 +2197,7 @@ const components$1 = {
2369
2197
  async updateComponentConfiguration(ctx) {
2370
2198
  const { uid: uid2 } = ctx.params;
2371
2199
  const { body } = ctx.request;
2372
- const componentService = getService$2("components");
2200
+ const componentService = getService$1("components");
2373
2201
  const component = componentService.findComponent(uid2);
2374
2202
  if (!component) {
2375
2203
  return ctx.notFound("component.notFound");
@@ -2403,12 +2231,12 @@ const contentTypes = {
2403
2231
  } catch (error) {
2404
2232
  return ctx.send({ error }, 400);
2405
2233
  }
2406
- const contentTypes2 = getService$2("content-types").findContentTypesByKind(kind);
2407
- const { toDto } = getService$2("data-mapper");
2234
+ const contentTypes2 = getService$1("content-types").findContentTypesByKind(kind);
2235
+ const { toDto } = getService$1("data-mapper");
2408
2236
  ctx.body = { data: contentTypes2.map(toDto) };
2409
2237
  },
2410
2238
  async findContentTypesSettings(ctx) {
2411
- const { findAllContentTypes, findConfiguration } = getService$2("content-types");
2239
+ const { findAllContentTypes, findConfiguration } = getService$1("content-types");
2412
2240
  const contentTypes2 = await findAllContentTypes();
2413
2241
  const configurations = await Promise.all(
2414
2242
  contentTypes2.map(async (contentType) => {
@@ -2422,7 +2250,7 @@ const contentTypes = {
2422
2250
  },
2423
2251
  async findContentTypeConfiguration(ctx) {
2424
2252
  const { uid: uid2 } = ctx.params;
2425
- const contentTypeService = getService$2("content-types");
2253
+ const contentTypeService = getService$1("content-types");
2426
2254
  const contentType = await contentTypeService.findContentType(uid2);
2427
2255
  if (!contentType) {
2428
2256
  return ctx.notFound("contentType.notFound");
@@ -2444,13 +2272,13 @@ const contentTypes = {
2444
2272
  const { userAbility } = ctx.state;
2445
2273
  const { uid: uid2 } = ctx.params;
2446
2274
  const { body } = ctx.request;
2447
- const contentTypeService = getService$2("content-types");
2448
- const metricsService = getService$2("metrics");
2275
+ const contentTypeService = getService$1("content-types");
2276
+ const metricsService = getService$1("metrics");
2449
2277
  const contentType = await contentTypeService.findContentType(uid2);
2450
2278
  if (!contentType) {
2451
2279
  return ctx.notFound("contentType.notFound");
2452
2280
  }
2453
- if (!getService$2("permission").canConfigureContentType({ userAbility, contentType })) {
2281
+ if (!getService$1("permission").canConfigureContentType({ userAbility, contentType })) {
2454
2282
  return ctx.forbidden();
2455
2283
  }
2456
2284
  let input;
@@ -2483,10 +2311,10 @@ const contentTypes = {
2483
2311
  };
2484
2312
  const init = {
2485
2313
  getInitData(ctx) {
2486
- const { toDto } = getService$2("data-mapper");
2487
- const { findAllComponents } = getService$2("components");
2488
- const { getAllFieldSizes } = getService$2("field-sizes");
2489
- const { findAllContentTypes } = getService$2("content-types");
2314
+ const { toDto } = getService$1("data-mapper");
2315
+ const { findAllComponents } = getService$1("components");
2316
+ const { getAllFieldSizes } = getService$1("field-sizes");
2317
+ const { findAllContentTypes } = getService$1("content-types");
2490
2318
  ctx.body = {
2491
2319
  data: {
2492
2320
  fieldSizes: getAllFieldSizes(),
@@ -2522,7 +2350,7 @@ const addFiltersClause = (params, filtersClause) => {
2522
2350
  params.filters.$and.push(filtersClause);
2523
2351
  };
2524
2352
  const sanitizeMainField = (model, mainField, userAbility) => {
2525
- const permissionChecker2 = getService$2("permission-checker").create({
2353
+ const permissionChecker2 = getService$1("permission-checker").create({
2526
2354
  userAbility,
2527
2355
  model: model.uid
2528
2356
  });
@@ -2536,27 +2364,15 @@ const sanitizeMainField = (model, mainField, userAbility) => {
2536
2364
  }
2537
2365
  return mainField;
2538
2366
  };
2539
- const addStatusToRelations = async (targetUid, relations2) => {
2540
- if (!strapiUtils.contentTypes.hasDraftAndPublish(strapi.getModel(targetUid))) {
2541
- return relations2;
2542
- }
2543
- const documentMetadata2 = getService$2("document-metadata");
2544
- if (!relations2.length) {
2367
+ const addStatusToRelations = async (uid2, relations2) => {
2368
+ if (!strapiUtils.contentTypes.hasDraftAndPublish(strapi.contentTypes[uid2])) {
2545
2369
  return relations2;
2546
2370
  }
2547
- const firstRelation = relations2[0];
2548
- const filters = {
2549
- documentId: { $in: relations2.map((r) => r.documentId) },
2550
- // NOTE: find the "opposite" status
2551
- publishedAt: firstRelation.publishedAt !== null ? { $null: true } : { $notNull: true }
2552
- };
2553
- const availableStatus = await strapi.query(targetUid).findMany({
2554
- select: ["id", "documentId", "locale", "updatedAt", "createdAt", "publishedAt"],
2555
- filters
2556
- });
2371
+ const documentMetadata2 = getService$1("document-metadata");
2372
+ const documentsAvailableStatus = await documentMetadata2.getManyAvailableStatus(uid2, relations2);
2557
2373
  return relations2.map((relation) => {
2558
- const availableStatuses = availableStatus.filter(
2559
- (availableDocument) => availableDocument.documentId === relation.documentId && (relation.locale ? availableDocument.locale === relation.locale : true)
2374
+ const availableStatuses = documentsAvailableStatus.filter(
2375
+ (availableDocument) => availableDocument.documentId === relation.documentId
2560
2376
  );
2561
2377
  return {
2562
2378
  ...relation,
@@ -2618,7 +2434,7 @@ const relations = {
2618
2434
  ctx.request?.query?.locale
2619
2435
  );
2620
2436
  const { status } = validateStatus(sourceUid, ctx.request?.query?.status);
2621
- const permissionChecker2 = getService$2("permission-checker").create({
2437
+ const permissionChecker2 = getService$1("permission-checker").create({
2622
2438
  userAbility,
2623
2439
  model
2624
2440
  });
@@ -2643,7 +2459,7 @@ const relations = {
2643
2459
  where.id = id;
2644
2460
  }
2645
2461
  const permissionQuery = await permissionChecker2.sanitizedQuery.read(ctx.query);
2646
- const populate = await getService$2("populate-builder")(model).populateFromQuery(permissionQuery).build();
2462
+ const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
2647
2463
  const currentEntity = await strapi.db.query(model).findOne({
2648
2464
  where,
2649
2465
  populate
@@ -2658,7 +2474,7 @@ const relations = {
2658
2474
  }
2659
2475
  entryId = currentEntity.id;
2660
2476
  }
2661
- const modelConfig = isComponent2 ? await getService$2("components").findConfiguration(sourceSchema) : await getService$2("content-types").findConfiguration(sourceSchema);
2477
+ const modelConfig = isComponent2 ? await getService$1("components").findConfiguration(sourceSchema) : await getService$1("content-types").findConfiguration(sourceSchema);
2662
2478
  const targetSchema = strapi.getModel(targetUid);
2663
2479
  const mainField = fp.flow(
2664
2480
  fp.prop(`metadatas.${targetField}.edit.mainField`),
@@ -2712,7 +2528,7 @@ const relations = {
2712
2528
  }
2713
2529
  } = await this.extractAndValidateRequestInfo(ctx, id);
2714
2530
  const { idsToOmit, idsToInclude, _q, ...query } = ctx.request.query;
2715
- const permissionChecker2 = getService$2("permission-checker").create({
2531
+ const permissionChecker2 = getService$1("permission-checker").create({
2716
2532
  userAbility: ctx.state.userAbility,
2717
2533
  model: targetUid
2718
2534
  });
@@ -2785,33 +2601,21 @@ const relations = {
2785
2601
  attribute,
2786
2602
  targetField,
2787
2603
  fieldsToSelect,
2788
- status,
2789
- source: { schema: sourceSchema },
2790
- target: { schema: targetSchema }
2604
+ source: {
2605
+ schema: { uid: sourceUid }
2606
+ },
2607
+ target: {
2608
+ schema: { uid: targetUid }
2609
+ }
2791
2610
  } = await this.extractAndValidateRequestInfo(ctx, id);
2792
- const { uid: sourceUid } = sourceSchema;
2793
- const { uid: targetUid } = targetSchema;
2794
- const permissionQuery = await getService$2("permission-checker").create({ userAbility, model: targetUid }).sanitizedQuery.read({ fields: fieldsToSelect });
2611
+ const permissionQuery = await getService$1("permission-checker").create({ userAbility, model: targetUid }).sanitizedQuery.read({ fields: fieldsToSelect });
2795
2612
  const dbQuery = strapi.db.query(sourceUid);
2796
2613
  const loadRelations = strapiUtils.relations.isAnyToMany(attribute) ? (...args) => dbQuery.loadPages(...args) : (...args) => dbQuery.load(...args).then((res2) => ({ results: res2 ? [res2] : [] }));
2797
- const filters = {};
2798
- if (sourceSchema?.options?.draftAndPublish) {
2799
- if (targetSchema?.options?.draftAndPublish) {
2800
- if (status === "published") {
2801
- filters.publishedAt = { $notNull: true };
2802
- } else {
2803
- filters.publishedAt = { $null: true };
2804
- }
2805
- }
2806
- } else if (targetSchema?.options?.draftAndPublish) {
2807
- filters.publishedAt = { $null: true };
2808
- }
2809
2614
  const res = await loadRelations({ id: entryId }, targetField, {
2810
- select: ["id", "documentId", "locale", "publishedAt", "updatedAt"],
2615
+ select: ["id", "documentId", "locale", "publishedAt"],
2811
2616
  ordering: "desc",
2812
2617
  page: ctx.request.query.page,
2813
- pageSize: ctx.request.query.pageSize,
2814
- filters
2618
+ pageSize: ctx.request.query.pageSize
2815
2619
  });
2816
2620
  const loadedIds = res.results.map((item) => item.id);
2817
2621
  addFiltersClause(permissionQuery, { id: { $in: loadedIds } });
@@ -2832,10 +2636,10 @@ const relations = {
2832
2636
  }
2833
2637
  };
2834
2638
  const buildPopulateFromQuery = async (query, model) => {
2835
- return getService$2("populate-builder")(model).populateFromQuery(query).populateDeep(Infinity).countRelations().build();
2639
+ return getService$1("populate-builder")(model).populateFromQuery(query).populateDeep(Infinity).countRelations().build();
2836
2640
  };
2837
2641
  const findDocument = async (query, uid2, opts = {}) => {
2838
- const documentManager2 = getService$2("document-manager");
2642
+ const documentManager2 = getService$1("document-manager");
2839
2643
  const populate = await buildPopulateFromQuery(query, uid2);
2840
2644
  return documentManager2.findMany({ ...opts, populate }, uid2).then((documents) => documents[0]);
2841
2645
  };
@@ -2843,8 +2647,8 @@ const createOrUpdateDocument = async (ctx, opts) => {
2843
2647
  const { user, userAbility } = ctx.state;
2844
2648
  const { model } = ctx.params;
2845
2649
  const { body, query } = ctx.request;
2846
- const documentManager2 = getService$2("document-manager");
2847
- const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2650
+ const documentManager2 = getService$1("document-manager");
2651
+ const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2848
2652
  if (permissionChecker2.cannot.create() && permissionChecker2.cannot.update()) {
2849
2653
  throw new strapiUtils.errors.ForbiddenError();
2850
2654
  }
@@ -2885,7 +2689,7 @@ const singleTypes = {
2885
2689
  const { userAbility } = ctx.state;
2886
2690
  const { model } = ctx.params;
2887
2691
  const { query = {} } = ctx.request;
2888
- const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2692
+ const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2889
2693
  if (permissionChecker2.cannot.read()) {
2890
2694
  return ctx.forbidden();
2891
2695
  }
@@ -2919,7 +2723,7 @@ const singleTypes = {
2919
2723
  async createOrUpdate(ctx) {
2920
2724
  const { userAbility } = ctx.state;
2921
2725
  const { model } = ctx.params;
2922
- const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2726
+ const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2923
2727
  const document = await createOrUpdateDocument(ctx);
2924
2728
  const sanitizedDocument = await permissionChecker2.sanitizeOutput(document);
2925
2729
  ctx.body = await formatDocumentWithMetadata(permissionChecker2, model, sanitizedDocument);
@@ -2928,8 +2732,8 @@ const singleTypes = {
2928
2732
  const { userAbility } = ctx.state;
2929
2733
  const { model } = ctx.params;
2930
2734
  const { query = {} } = ctx.request;
2931
- const documentManager2 = getService$2("document-manager");
2932
- const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2735
+ const documentManager2 = getService$1("document-manager");
2736
+ const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2933
2737
  if (permissionChecker2.cannot.delete()) {
2934
2738
  return ctx.forbidden();
2935
2739
  }
@@ -2957,8 +2761,8 @@ const singleTypes = {
2957
2761
  const { userAbility } = ctx.state;
2958
2762
  const { model } = ctx.params;
2959
2763
  const { query = {} } = ctx.request;
2960
- const documentManager2 = getService$2("document-manager");
2961
- const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2764
+ const documentManager2 = getService$1("document-manager");
2765
+ const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2962
2766
  if (permissionChecker2.cannot.publish()) {
2963
2767
  return ctx.forbidden();
2964
2768
  }
@@ -2986,8 +2790,8 @@ const singleTypes = {
2986
2790
  body: { discardDraft, ...body },
2987
2791
  query = {}
2988
2792
  } = ctx.request;
2989
- const documentManager2 = getService$2("document-manager");
2990
- const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2793
+ const documentManager2 = getService$1("document-manager");
2794
+ const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2991
2795
  if (permissionChecker2.cannot.unpublish()) {
2992
2796
  return ctx.forbidden();
2993
2797
  }
@@ -3021,8 +2825,8 @@ const singleTypes = {
3021
2825
  const { userAbility } = ctx.state;
3022
2826
  const { model } = ctx.params;
3023
2827
  const { body, query = {} } = ctx.request;
3024
- const documentManager2 = getService$2("document-manager");
3025
- const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2828
+ const documentManager2 = getService$1("document-manager");
2829
+ const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
3026
2830
  if (permissionChecker2.cannot.discard()) {
3027
2831
  return ctx.forbidden();
3028
2832
  }
@@ -3045,8 +2849,8 @@ const singleTypes = {
3045
2849
  const { userAbility } = ctx.state;
3046
2850
  const { model } = ctx.params;
3047
2851
  const { query } = ctx.request;
3048
- const documentManager2 = getService$2("document-manager");
3049
- const permissionChecker2 = getService$2("permission-checker").create({ userAbility, model });
2852
+ const documentManager2 = getService$1("document-manager");
2853
+ const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
3050
2854
  const { locale } = await getDocumentLocaleAndStatus(query, model);
3051
2855
  if (permissionChecker2.cannot.read()) {
3052
2856
  return ctx.forbidden();
@@ -3070,7 +2874,7 @@ const uid$1 = {
3070
2874
  const { query = {} } = ctx.request;
3071
2875
  const { locale } = await getDocumentLocaleAndStatus(query, contentTypeUID);
3072
2876
  await validateUIDField(contentTypeUID, field);
3073
- const uidService = getService$2("uid");
2877
+ const uidService = getService$1("uid");
3074
2878
  ctx.body = {
3075
2879
  data: await uidService.generateUIDField({ contentTypeUID, field, data, locale })
3076
2880
  };
@@ -3082,7 +2886,7 @@ const uid$1 = {
3082
2886
  const { query = {} } = ctx.request;
3083
2887
  const { locale } = await getDocumentLocaleAndStatus(query, contentTypeUID);
3084
2888
  await validateUIDField(contentTypeUID, field);
3085
- const uidService = getService$2("uid");
2889
+ const uidService = getService$1("uid");
3086
2890
  const isAvailable = await uidService.checkUIDAvailability({
3087
2891
  contentTypeUID,
3088
2892
  field,
@@ -3103,8 +2907,7 @@ const controllers = {
3103
2907
  relations,
3104
2908
  "single-types": singleTypes,
3105
2909
  uid: uid$1,
3106
- ...history.controllers ? history.controllers : {},
3107
- ...preview.controllers ? preview.controllers : {}
2910
+ ...history.controllers ? history.controllers : {}
3108
2911
  };
3109
2912
  const keys = {
3110
2913
  CONFIGURATION: "configuration"
@@ -3255,12 +3058,12 @@ async function syncMetadatas(configuration, schema) {
3255
3058
  return ___default.default.assign(metasWithDefaults, updatedMetas);
3256
3059
  }
3257
3060
  const getTargetSchema = (targetModel) => {
3258
- return getService$2("content-types").findContentType(targetModel);
3061
+ return getService$1("content-types").findContentType(targetModel);
3259
3062
  };
3260
3063
  const DEFAULT_LIST_LENGTH = 4;
3261
3064
  const MAX_ROW_SIZE = 12;
3262
3065
  const isAllowedFieldSize = (type, size) => {
3263
- const { getFieldSize } = getService$2("field-sizes");
3066
+ const { getFieldSize } = getService$1("field-sizes");
3264
3067
  const fieldSize = getFieldSize(type);
3265
3068
  if (!fieldSize.isResizable && size !== fieldSize.default) {
3266
3069
  return false;
@@ -3268,7 +3071,7 @@ const isAllowedFieldSize = (type, size) => {
3268
3071
  return size <= MAX_ROW_SIZE;
3269
3072
  };
3270
3073
  const getDefaultFieldSize = (attribute) => {
3271
- const { hasFieldSize, getFieldSize } = getService$2("field-sizes");
3074
+ const { hasFieldSize, getFieldSize } = getService$1("field-sizes");
3272
3075
  return getFieldSize(hasFieldSize(attribute.customField) ? attribute.customField : attribute.type).default;
3273
3076
  };
3274
3077
  async function createDefaultLayouts(schema) {
@@ -3303,7 +3106,7 @@ function syncLayouts(configuration, schema) {
3303
3106
  for (const el of row) {
3304
3107
  if (!hasEditableAttribute(schema, el.name))
3305
3108
  continue;
3306
- const { hasFieldSize } = getService$2("field-sizes");
3109
+ const { hasFieldSize } = getService$1("field-sizes");
3307
3110
  const fieldType = hasFieldSize(schema.attributes[el.name].customField) ? schema.attributes[el.name].customField : schema.attributes[el.name].type;
3308
3111
  if (!isAllowedFieldSize(fieldType, el.size)) {
3309
3112
  elementsToReAppend.push(el.name);
@@ -3443,17 +3246,17 @@ const configurationService$1 = createConfigurationService({
3443
3246
  isComponent: true,
3444
3247
  prefix: STORE_KEY_PREFIX,
3445
3248
  getModels() {
3446
- const { toContentManagerModel } = getService$2("data-mapper");
3249
+ const { toContentManagerModel } = getService$1("data-mapper");
3447
3250
  return fp.mapValues(toContentManagerModel, strapi.components);
3448
3251
  }
3449
3252
  });
3450
3253
  const components = ({ strapi: strapi2 }) => ({
3451
3254
  findAllComponents() {
3452
- const { toContentManagerModel } = getService$2("data-mapper");
3255
+ const { toContentManagerModel } = getService$1("data-mapper");
3453
3256
  return Object.values(strapi2.components).map(toContentManagerModel);
3454
3257
  },
3455
3258
  findComponent(uid2) {
3456
- const { toContentManagerModel } = getService$2("data-mapper");
3259
+ const { toContentManagerModel } = getService$1("data-mapper");
3457
3260
  const component = strapi2.components[uid2];
3458
3261
  return fp.isNil(component) ? component : toContentManagerModel(component);
3459
3262
  },
@@ -3504,17 +3307,17 @@ const configurationService = createConfigurationService({
3504
3307
  storeUtils,
3505
3308
  prefix: "content_types",
3506
3309
  getModels() {
3507
- const { toContentManagerModel } = getService$2("data-mapper");
3310
+ const { toContentManagerModel } = getService$1("data-mapper");
3508
3311
  return fp.mapValues(toContentManagerModel, strapi.contentTypes);
3509
3312
  }
3510
3313
  });
3511
3314
  const service = ({ strapi: strapi2 }) => ({
3512
3315
  findAllContentTypes() {
3513
- const { toContentManagerModel } = getService$2("data-mapper");
3316
+ const { toContentManagerModel } = getService$1("data-mapper");
3514
3317
  return Object.values(strapi2.contentTypes).map(toContentManagerModel);
3515
3318
  },
3516
3319
  findContentType(uid2) {
3517
- const { toContentManagerModel } = getService$2("data-mapper");
3320
+ const { toContentManagerModel } = getService$1("data-mapper");
3518
3321
  const contentType = strapi2.contentTypes[uid2];
3519
3322
  return fp.isNil(contentType) ? contentType : toContentManagerModel(contentType);
3520
3323
  },
@@ -3543,7 +3346,7 @@ const service = ({ strapi: strapi2 }) => ({
3543
3346
  return this.findConfiguration(contentType);
3544
3347
  },
3545
3348
  findComponentsConfigurations(contentType) {
3546
- return getService$2("components").findComponentsConfigurations(contentType);
3349
+ return getService$1("components").findComponentsConfigurations(contentType);
3547
3350
  },
3548
3351
  syncConfigurations() {
3549
3352
  return configurationService.syncConfigurations();
@@ -3815,7 +3618,7 @@ const permission = ({ strapi: strapi2 }) => ({
3815
3618
  return userAbility.can(action);
3816
3619
  },
3817
3620
  async registerPermissions() {
3818
- const displayedContentTypes = getService$2("content-types").findDisplayedContentTypes();
3621
+ const displayedContentTypes = getService$1("content-types").findDisplayedContentTypes();
3819
3622
  const contentTypesUids = displayedContentTypes.map(fp.prop("uid"));
3820
3623
  const actions = [
3821
3624
  {
@@ -4091,7 +3894,7 @@ const getQueryPopulate = async (uid2, query) => {
4091
3894
  return populateQuery;
4092
3895
  };
4093
3896
  const buildDeepPopulate = (uid2) => {
4094
- return getService$2("populate-builder")(uid2).populateDeep(Infinity).countRelations().build();
3897
+ return getService$1("populate-builder")(uid2).populateDeep(Infinity).countRelations().build();
4095
3898
  };
4096
3899
  const populateBuilder = (uid2) => {
4097
3900
  let getInitialPopulate = async () => {
@@ -4276,9 +4079,7 @@ const documentMetadata = ({ strapi: strapi2 }) => ({
4276
4079
  */
4277
4080
  async getAvailableLocales(uid2, version, allVersions, validatableFields = []) {
4278
4081
  const versionsByLocale = fp.groupBy("locale", allVersions);
4279
- if (version.locale) {
4280
- delete versionsByLocale[version.locale];
4281
- }
4082
+ delete versionsByLocale[version.locale];
4282
4083
  const model = strapi2.getModel(uid2);
4283
4084
  const keysToKeep = [...AVAILABLE_LOCALES_FIELDS, ...validatableFields];
4284
4085
  const traversalFunction = async (localeVersion) => strapiUtils.traverseEntity(
@@ -4634,8 +4435,7 @@ const services = {
4634
4435
  permission,
4635
4436
  "populate-builder": populateBuilder$1,
4636
4437
  uid,
4637
- ...history.services ? history.services : {},
4638
- ...preview.services ? preview.services : {}
4438
+ ...history.services ? history.services : {}
4639
4439
  };
4640
4440
  const index = () => {
4641
4441
  return {