@strapi/content-manager 0.0.0-next.504076d2165a82f124620a3f1f3e3a6017e97f3f → 0.0.0-next.62c4d48d34e826c6c9f6fbe5cf6e858546239e40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/dist/_chunks/{ComponentConfigurationPage-DfFSZQxe.mjs → ComponentConfigurationPage-CIjXcRAB.mjs} +4 -4
  2. package/dist/_chunks/{ComponentConfigurationPage-DfFSZQxe.mjs.map → ComponentConfigurationPage-CIjXcRAB.mjs.map} +1 -1
  3. package/dist/_chunks/{ComponentConfigurationPage-FqfsxQ1j.js → ComponentConfigurationPage-gsCd80MU.js} +4 -4
  4. package/dist/_chunks/{ComponentConfigurationPage-FqfsxQ1j.js.map → ComponentConfigurationPage-gsCd80MU.js.map} +1 -1
  5. package/dist/_chunks/{EditConfigurationPage-DdPNAbl3.mjs → EditConfigurationPage-BglmD_BF.mjs} +4 -4
  6. package/dist/_chunks/{EditConfigurationPage-DdPNAbl3.mjs.map → EditConfigurationPage-BglmD_BF.mjs.map} +1 -1
  7. package/dist/_chunks/{EditConfigurationPage-Cn0e8t3I.js → EditConfigurationPage-DHDQKBzw.js} +4 -4
  8. package/dist/_chunks/{EditConfigurationPage-Cn0e8t3I.js.map → EditConfigurationPage-DHDQKBzw.js.map} +1 -1
  9. package/dist/_chunks/{EditViewPage-DlxEHhUt.js → EditViewPage-C4iTxUPU.js} +3 -3
  10. package/dist/_chunks/EditViewPage-C4iTxUPU.js.map +1 -0
  11. package/dist/_chunks/{EditViewPage-B82x_x1b.mjs → EditViewPage-CiwVPMaK.mjs} +3 -3
  12. package/dist/_chunks/EditViewPage-CiwVPMaK.mjs.map +1 -0
  13. package/dist/_chunks/{Field-DufHXW17.mjs → Field-DIjL1b5d.mjs} +4 -4
  14. package/dist/_chunks/{Field-DufHXW17.mjs.map → Field-DIjL1b5d.mjs.map} +1 -1
  15. package/dist/_chunks/{Field-COL25JiC.js → Field-DhXEK8y1.js} +4 -4
  16. package/dist/_chunks/{Field-COL25JiC.js.map → Field-DhXEK8y1.js.map} +1 -1
  17. package/dist/_chunks/{Form-u_kAOhwB.mjs → Form-CmNesrvR.mjs} +2 -2
  18. package/dist/_chunks/{Form-u_kAOhwB.mjs.map → Form-CmNesrvR.mjs.map} +1 -1
  19. package/dist/_chunks/{Form-BssUwrTO.js → Form-CwmJ4sWe.js} +2 -2
  20. package/dist/_chunks/{Form-BssUwrTO.js.map → Form-CwmJ4sWe.js.map} +1 -1
  21. package/dist/_chunks/{History-C9t9UqpO.js → History-BLCCNgCt.js} +5 -5
  22. package/dist/_chunks/History-BLCCNgCt.js.map +1 -0
  23. package/dist/_chunks/{History-DRwA3oMM.mjs → History-D-99Wh30.mjs} +5 -5
  24. package/dist/_chunks/History-D-99Wh30.mjs.map +1 -0
  25. package/dist/_chunks/{ListConfigurationPage-BXYPohh-.js → ListConfigurationPage-DxWpeZrO.js} +3 -3
  26. package/dist/_chunks/{ListConfigurationPage-BXYPohh-.js.map → ListConfigurationPage-DxWpeZrO.js.map} +1 -1
  27. package/dist/_chunks/{ListConfigurationPage-BxfQJzPk.mjs → ListConfigurationPage-JPWZz7Kg.mjs} +3 -3
  28. package/dist/_chunks/{ListConfigurationPage-BxfQJzPk.mjs.map → ListConfigurationPage-JPWZz7Kg.mjs.map} +1 -1
  29. package/dist/_chunks/{ListViewPage-D2VD8Szg.js → ListViewPage-CIQekSFz.js} +15 -4
  30. package/dist/_chunks/ListViewPage-CIQekSFz.js.map +1 -0
  31. package/dist/_chunks/{ListViewPage-CELx2ysp.mjs → ListViewPage-DSK3f0ST.mjs} +15 -4
  32. package/dist/_chunks/{ListViewPage-CELx2ysp.mjs.map → ListViewPage-DSK3f0ST.mjs.map} +1 -1
  33. package/dist/_chunks/{NoContentTypePage-BV9IjJSM.js → NoContentTypePage-C5cxKvC2.js} +2 -2
  34. package/dist/_chunks/{NoContentTypePage-BV9IjJSM.js.map → NoContentTypePage-C5cxKvC2.js.map} +1 -1
  35. package/dist/_chunks/{NoContentTypePage-DtJ9jcfk.mjs → NoContentTypePage-D99LU1YP.mjs} +2 -2
  36. package/dist/_chunks/{NoContentTypePage-DtJ9jcfk.mjs.map → NoContentTypePage-D99LU1YP.mjs.map} +1 -1
  37. package/dist/_chunks/{NoPermissionsPage-DWleVYK7.mjs → NoPermissionsPage-DBrBw-0y.mjs} +2 -2
  38. package/dist/_chunks/{NoPermissionsPage-DWleVYK7.mjs.map → NoPermissionsPage-DBrBw-0y.mjs.map} +1 -1
  39. package/dist/_chunks/{NoPermissionsPage-Dp8NpF9I.js → NoPermissionsPage-Oy4tmUrW.js} +2 -2
  40. package/dist/_chunks/{NoPermissionsPage-Dp8NpF9I.js.map → NoPermissionsPage-Oy4tmUrW.js.map} +1 -1
  41. package/dist/_chunks/{Relations-BTcf5xaw.mjs → Relations-BBmhcWFV.mjs} +41 -17
  42. package/dist/_chunks/Relations-BBmhcWFV.mjs.map +1 -0
  43. package/dist/_chunks/{Relations-DR7EUgyC.js → Relations-eG-9p_qS.js} +40 -16
  44. package/dist/_chunks/Relations-eG-9p_qS.js.map +1 -0
  45. package/dist/_chunks/{index-BdMf2lfT.js → index-BIWDoFLK.js} +45 -21
  46. package/dist/_chunks/index-BIWDoFLK.js.map +1 -0
  47. package/dist/_chunks/{index-wnqzm4Q8.mjs → index-BrUzbQ30.mjs} +44 -21
  48. package/dist/_chunks/index-BrUzbQ30.mjs.map +1 -0
  49. package/dist/_chunks/{layout-2CfjL0T9.mjs → layout-_5-cXs34.mjs} +3 -3
  50. package/dist/_chunks/{layout-2CfjL0T9.mjs.map → layout-_5-cXs34.mjs.map} +1 -1
  51. package/dist/_chunks/{layout-B2MyZU-_.js → layout-lMc9i1-Z.js} +3 -3
  52. package/dist/_chunks/{layout-B2MyZU-_.js.map → layout-lMc9i1-Z.js.map} +1 -1
  53. package/dist/_chunks/{objects-gigeqt7s.js → objects-BcXOv6_9.js} +2 -4
  54. package/dist/_chunks/{objects-gigeqt7s.js.map → objects-BcXOv6_9.js.map} +1 -1
  55. package/dist/_chunks/{objects-mKMAmfec.mjs → objects-D6yBsdmx.mjs} +2 -4
  56. package/dist/_chunks/{objects-mKMAmfec.mjs.map → objects-D6yBsdmx.mjs.map} +1 -1
  57. package/dist/_chunks/{relations-BH7JJGGe.js → relations-BRHithi8.js} +3 -7
  58. package/dist/_chunks/relations-BRHithi8.js.map +1 -0
  59. package/dist/_chunks/{relations-C0w0GcXi.mjs → relations-B_VLk-DD.mjs} +3 -7
  60. package/dist/_chunks/relations-B_VLk-DD.mjs.map +1 -0
  61. package/dist/admin/index.js +1 -1
  62. package/dist/admin/index.mjs +1 -1
  63. package/dist/admin/src/preview/constants.d.ts +1 -0
  64. package/dist/admin/src/preview/index.d.ts +4 -0
  65. package/dist/server/index.js +114 -28
  66. package/dist/server/index.js.map +1 -1
  67. package/dist/server/index.mjs +114 -28
  68. package/dist/server/index.mjs.map +1 -1
  69. package/dist/server/src/bootstrap.d.ts.map +1 -1
  70. package/dist/server/src/controllers/index.d.ts.map +1 -1
  71. package/dist/server/src/controllers/relations.d.ts.map +1 -1
  72. package/dist/server/src/controllers/utils/metadata.d.ts +15 -1
  73. package/dist/server/src/controllers/utils/metadata.d.ts.map +1 -1
  74. package/dist/server/src/index.d.ts +4 -4
  75. package/dist/server/src/preview/constants.d.ts +2 -0
  76. package/dist/server/src/preview/constants.d.ts.map +1 -0
  77. package/dist/server/src/preview/controllers/index.d.ts +2 -0
  78. package/dist/server/src/preview/controllers/index.d.ts.map +1 -0
  79. package/dist/server/src/preview/controllers/preview.d.ts +9 -0
  80. package/dist/server/src/preview/controllers/preview.d.ts.map +1 -0
  81. package/dist/server/src/preview/index.d.ts +4 -0
  82. package/dist/server/src/preview/index.d.ts.map +1 -0
  83. package/dist/server/src/preview/routes/index.d.ts +8 -0
  84. package/dist/server/src/preview/routes/index.d.ts.map +1 -0
  85. package/dist/server/src/preview/routes/preview.d.ts +4 -0
  86. package/dist/server/src/preview/routes/preview.d.ts.map +1 -0
  87. package/dist/server/src/preview/services/index.d.ts +4 -0
  88. package/dist/server/src/preview/services/index.d.ts.map +1 -0
  89. package/dist/server/src/preview/services/preview.d.ts +6 -0
  90. package/dist/server/src/preview/services/preview.d.ts.map +1 -0
  91. package/dist/server/src/preview/utils.d.ts +7 -0
  92. package/dist/server/src/preview/utils.d.ts.map +1 -0
  93. package/dist/server/src/routes/index.d.ts.map +1 -1
  94. package/dist/server/src/services/document-metadata.d.ts +8 -8
  95. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  96. package/dist/server/src/services/index.d.ts +4 -4
  97. package/dist/server/src/services/index.d.ts.map +1 -1
  98. package/dist/server/src/services/utils/configuration/index.d.ts +2 -2
  99. package/dist/server/src/services/utils/configuration/layouts.d.ts +2 -2
  100. package/dist/server/src/utils/index.d.ts +2 -0
  101. package/dist/server/src/utils/index.d.ts.map +1 -1
  102. package/package.json +6 -6
  103. package/dist/_chunks/EditViewPage-B82x_x1b.mjs.map +0 -1
  104. package/dist/_chunks/EditViewPage-DlxEHhUt.js.map +0 -1
  105. package/dist/_chunks/History-C9t9UqpO.js.map +0 -1
  106. package/dist/_chunks/History-DRwA3oMM.mjs.map +0 -1
  107. package/dist/_chunks/ListViewPage-D2VD8Szg.js.map +0 -1
  108. package/dist/_chunks/Relations-BTcf5xaw.mjs.map +0 -1
  109. package/dist/_chunks/Relations-DR7EUgyC.js.map +0 -1
  110. package/dist/_chunks/index-BdMf2lfT.js.map +0 -1
  111. package/dist/_chunks/index-wnqzm4Q8.mjs.map +0 -1
  112. package/dist/_chunks/relations-BH7JJGGe.js.map +0 -1
  113. package/dist/_chunks/relations-C0w0GcXi.mjs.map +0 -1
@@ -95,7 +95,7 @@ const createHistoryVersionController = ({ strapi: strapi2 }) => {
95
95
  }
96
96
  };
97
97
  };
98
- const controllers$1 = {
98
+ const controllers$2 = {
99
99
  "history-version": createHistoryVersionController
100
100
  /**
101
101
  * Casting is needed because the types aren't aware that Strapi supports
@@ -594,17 +594,17 @@ const createLifecyclesService = ({ strapi: strapi2 }) => {
594
594
  }
595
595
  };
596
596
  };
597
- const services$1 = {
597
+ const services$2 = {
598
598
  history: createHistoryService,
599
599
  lifecycles: createLifecyclesService
600
600
  };
601
- const info = { pluginName: "content-manager", type: "admin" };
601
+ const info$1 = { pluginName: "content-manager", type: "admin" };
602
602
  const historyVersionRouter = {
603
603
  type: "admin",
604
604
  routes: [
605
605
  {
606
606
  method: "GET",
607
- info,
607
+ info: info$1,
608
608
  path: "/history-versions",
609
609
  handler: "history-version.findMany",
610
610
  config: {
@@ -613,7 +613,7 @@ const historyVersionRouter = {
613
613
  },
614
614
  {
615
615
  method: "PUT",
616
- info,
616
+ info: info$1,
617
617
  path: "/history-versions/:versionId/restore",
618
618
  handler: "history-version.restoreVersion",
619
619
  config: {
@@ -622,7 +622,7 @@ const historyVersionRouter = {
622
622
  }
623
623
  ]
624
624
  };
625
- const routes$1 = {
625
+ const routes$2 = {
626
626
  "history-version": historyVersionRouter
627
627
  };
628
628
  const historyVersion = {
@@ -669,7 +669,7 @@ const historyVersion = {
669
669
  }
670
670
  }
671
671
  };
672
- const getFeature = () => {
672
+ const getFeature$1 = () => {
673
673
  if (strapi.ee.features.isEnabled("cms-content-history")) {
674
674
  return {
675
675
  register({ strapi: strapi2 }) {
@@ -681,9 +681,9 @@ const getFeature = () => {
681
681
  destroy({ strapi: strapi2 }) {
682
682
  getService(strapi2, "lifecycles").destroy();
683
683
  },
684
- controllers: controllers$1,
685
- services: services$1,
686
- routes: routes$1
684
+ controllers: controllers$2,
685
+ services: services$2,
686
+ routes: routes$2
687
687
  };
688
688
  }
689
689
  return {
@@ -692,7 +692,7 @@ const getFeature = () => {
692
692
  }
693
693
  };
694
694
  };
695
- const history = getFeature();
695
+ const history = getFeature$1();
696
696
  const register = async ({ strapi: strapi2 }) => {
697
697
  await history.register?.({ strapi: strapi2 });
698
698
  };
@@ -700,6 +700,62 @@ const ALLOWED_WEBHOOK_EVENTS = {
700
700
  ENTRY_PUBLISH: "entry.publish",
701
701
  ENTRY_UNPUBLISH: "entry.unpublish"
702
702
  };
703
+ const FEATURE_ID = "preview";
704
+ const info = { pluginName: "content-manager", type: "admin" };
705
+ const previewRouter = {
706
+ type: "admin",
707
+ routes: [
708
+ {
709
+ method: "GET",
710
+ info,
711
+ path: "/preview/url/:contentType",
712
+ handler: "preview.getPreviewURL",
713
+ config: {
714
+ policies: ["admin::isAuthenticatedAdmin"]
715
+ }
716
+ }
717
+ ]
718
+ };
719
+ const routes$1 = {
720
+ preview: previewRouter
721
+ };
722
+ const createPreviewController = () => {
723
+ return {
724
+ async getPreviewURL(ctx) {
725
+ ctx.request;
726
+ return {
727
+ data: { url: "" }
728
+ };
729
+ }
730
+ };
731
+ };
732
+ const controllers$1 = {
733
+ preview: createPreviewController
734
+ /**
735
+ * Casting is needed because the types aren't aware that Strapi supports
736
+ * passing a controller factory as the value, instead of a controller object directly
737
+ */
738
+ };
739
+ const createPreviewService = () => {
740
+ };
741
+ const services$1 = {
742
+ preview: createPreviewService
743
+ };
744
+ const getFeature = () => {
745
+ if (!strapi.features.future.isEnabled(FEATURE_ID)) {
746
+ return {};
747
+ }
748
+ return {
749
+ bootstrap() {
750
+ console.log("Bootstrapping preview server");
751
+ strapi.config.get("admin.preview");
752
+ },
753
+ routes: routes$1,
754
+ controllers: controllers$1,
755
+ services: services$1
756
+ };
757
+ };
758
+ const preview = getFeature();
703
759
  const bootstrap = async () => {
704
760
  Object.entries(ALLOWED_WEBHOOK_EVENTS).forEach(([key, value]) => {
705
761
  strapi.get("webhookStore").addAllowedEvent(key, value);
@@ -709,6 +765,7 @@ const bootstrap = async () => {
709
765
  await getService$1("content-types").syncConfigurations();
710
766
  await getService$1("permission").registerPermissions();
711
767
  await history.bootstrap?.({ strapi });
768
+ await preview.bootstrap?.({ strapi });
712
769
  };
713
770
  const destroy = async ({ strapi: strapi2 }) => {
714
771
  await history.destroy?.({ strapi: strapi2 });
@@ -1198,7 +1255,8 @@ const admin = {
1198
1255
  };
1199
1256
  const routes = {
1200
1257
  admin,
1201
- ...history.routes ? history.routes : {}
1258
+ ...history.routes ? history.routes : {},
1259
+ ...preview.routes ? preview.routes : {}
1202
1260
  };
1203
1261
  const hasPermissionsSchema = yup$1.object({
1204
1262
  actions: yup$1.array().of(yup$1.string()),
@@ -2338,15 +2396,27 @@ const sanitizeMainField = (model, mainField, userAbility) => {
2338
2396
  }
2339
2397
  return mainField;
2340
2398
  };
2341
- const addStatusToRelations = async (uid2, relations2) => {
2342
- if (!contentTypes$1.hasDraftAndPublish(strapi.contentTypes[uid2])) {
2399
+ const addStatusToRelations = async (targetUid, relations2) => {
2400
+ if (!contentTypes$1.hasDraftAndPublish(strapi.getModel(targetUid))) {
2343
2401
  return relations2;
2344
2402
  }
2345
2403
  const documentMetadata2 = getService$1("document-metadata");
2346
- const documentsAvailableStatus = await documentMetadata2.getManyAvailableStatus(uid2, relations2);
2404
+ if (!relations2.length) {
2405
+ return relations2;
2406
+ }
2407
+ const firstRelation = relations2[0];
2408
+ const filters = {
2409
+ documentId: { $in: relations2.map((r) => r.documentId) },
2410
+ // NOTE: find the "opposite" status
2411
+ publishedAt: firstRelation.publishedAt !== null ? { $null: true } : { $notNull: true }
2412
+ };
2413
+ const availableStatus = await strapi.query(targetUid).findMany({
2414
+ select: ["id", "documentId", "locale", "updatedAt", "createdAt", "publishedAt"],
2415
+ filters
2416
+ });
2347
2417
  return relations2.map((relation) => {
2348
- const availableStatuses = documentsAvailableStatus.filter(
2349
- (availableDocument) => availableDocument.documentId === relation.documentId
2418
+ const availableStatuses = availableStatus.filter(
2419
+ (availableDocument) => availableDocument.documentId === relation.documentId && (relation.locale ? availableDocument.locale === relation.locale : true)
2350
2420
  );
2351
2421
  return {
2352
2422
  ...relation,
@@ -2575,21 +2645,33 @@ const relations = {
2575
2645
  attribute,
2576
2646
  targetField,
2577
2647
  fieldsToSelect,
2578
- source: {
2579
- schema: { uid: sourceUid }
2580
- },
2581
- target: {
2582
- schema: { uid: targetUid }
2583
- }
2648
+ status,
2649
+ source: { schema: sourceSchema },
2650
+ target: { schema: targetSchema }
2584
2651
  } = await this.extractAndValidateRequestInfo(ctx, id);
2652
+ const { uid: sourceUid } = sourceSchema;
2653
+ const { uid: targetUid } = targetSchema;
2585
2654
  const permissionQuery = await getService$1("permission-checker").create({ userAbility, model: targetUid }).sanitizedQuery.read({ fields: fieldsToSelect });
2586
2655
  const dbQuery = strapi.db.query(sourceUid);
2587
2656
  const loadRelations = relations$1.isAnyToMany(attribute) ? (...args) => dbQuery.loadPages(...args) : (...args) => dbQuery.load(...args).then((res2) => ({ results: res2 ? [res2] : [] }));
2657
+ const filters = {};
2658
+ if (sourceSchema?.options?.draftAndPublish) {
2659
+ if (targetSchema?.options?.draftAndPublish) {
2660
+ if (status === "published") {
2661
+ filters.publishedAt = { $notNull: true };
2662
+ } else {
2663
+ filters.publishedAt = { $null: true };
2664
+ }
2665
+ }
2666
+ } else if (targetSchema?.options?.draftAndPublish) {
2667
+ filters.publishedAt = { $null: true };
2668
+ }
2588
2669
  const res = await loadRelations({ id: entryId }, targetField, {
2589
- select: ["id", "documentId", "locale", "publishedAt"],
2670
+ select: ["id", "documentId", "locale", "publishedAt", "updatedAt"],
2590
2671
  ordering: "desc",
2591
2672
  page: ctx.request.query.page,
2592
- pageSize: ctx.request.query.pageSize
2673
+ pageSize: ctx.request.query.pageSize,
2674
+ filters
2593
2675
  });
2594
2676
  const loadedIds = res.results.map((item) => item.id);
2595
2677
  addFiltersClause(permissionQuery, { id: { $in: loadedIds } });
@@ -2881,7 +2963,8 @@ const controllers = {
2881
2963
  relations,
2882
2964
  "single-types": singleTypes,
2883
2965
  uid: uid$1,
2884
- ...history.controllers ? history.controllers : {}
2966
+ ...history.controllers ? history.controllers : {},
2967
+ ...preview.controllers ? preview.controllers : {}
2885
2968
  };
2886
2969
  const keys = {
2887
2970
  CONFIGURATION: "configuration"
@@ -4053,7 +4136,9 @@ const documentMetadata = ({ strapi: strapi2 }) => ({
4053
4136
  */
4054
4137
  async getAvailableLocales(uid2, version, allVersions, validatableFields = []) {
4055
4138
  const versionsByLocale = groupBy("locale", allVersions);
4056
- delete versionsByLocale[version.locale];
4139
+ if (version.locale) {
4140
+ delete versionsByLocale[version.locale];
4141
+ }
4057
4142
  const model = strapi2.getModel(uid2);
4058
4143
  const keysToKeep = [...AVAILABLE_LOCALES_FIELDS, ...validatableFields];
4059
4144
  const traversalFunction = async (localeVersion) => traverseEntity(
@@ -4409,7 +4494,8 @@ const services = {
4409
4494
  permission,
4410
4495
  "populate-builder": populateBuilder$1,
4411
4496
  uid,
4412
- ...history.services ? history.services : {}
4497
+ ...history.services ? history.services : {},
4498
+ ...preview.services ? preview.services : {}
4413
4499
  };
4414
4500
  const index = () => {
4415
4501
  return {