@strapi/content-manager 5.0.5 → 5.0.6

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