@strapi/content-manager 5.0.0 → 5.0.2-beta.0

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 (92) hide show
  1. package/dist/_chunks/{ComponentConfigurationPage-DfFSZQxe.mjs → ComponentConfigurationPage-BTKl8MfN.mjs} +3 -3
  2. package/dist/_chunks/{ComponentConfigurationPage-DfFSZQxe.mjs.map → ComponentConfigurationPage-BTKl8MfN.mjs.map} +1 -1
  3. package/dist/_chunks/{ComponentConfigurationPage-FqfsxQ1j.js → ComponentConfigurationPage-fkzXNK4D.js} +3 -3
  4. package/dist/_chunks/{ComponentConfigurationPage-FqfsxQ1j.js.map → ComponentConfigurationPage-fkzXNK4D.js.map} +1 -1
  5. package/dist/_chunks/{EditConfigurationPage-Cn0e8t3I.js → EditConfigurationPage-B0niBwBH.js} +3 -3
  6. package/dist/_chunks/{EditConfigurationPage-Cn0e8t3I.js.map → EditConfigurationPage-B0niBwBH.js.map} +1 -1
  7. package/dist/_chunks/{EditConfigurationPage-DdPNAbl3.mjs → EditConfigurationPage-n9ZG6sNR.mjs} +3 -3
  8. package/dist/_chunks/{EditConfigurationPage-DdPNAbl3.mjs.map → EditConfigurationPage-n9ZG6sNR.mjs.map} +1 -1
  9. package/dist/_chunks/{EditViewPage-DlxEHhUt.js → EditViewPage-C2CqLemB.js} +3 -3
  10. package/dist/_chunks/EditViewPage-C2CqLemB.js.map +1 -0
  11. package/dist/_chunks/{EditViewPage-B82x_x1b.mjs → EditViewPage-D7dC3a4m.mjs} +3 -3
  12. package/dist/_chunks/EditViewPage-D7dC3a4m.mjs.map +1 -0
  13. package/dist/_chunks/{Field-DufHXW17.mjs → Field-CkdBb2vz.mjs} +3 -3
  14. package/dist/_chunks/{Field-DufHXW17.mjs.map → Field-CkdBb2vz.mjs.map} +1 -1
  15. package/dist/_chunks/{Field-COL25JiC.js → Field-pyQYswH0.js} +3 -3
  16. package/dist/_chunks/{Field-COL25JiC.js.map → Field-pyQYswH0.js.map} +1 -1
  17. package/dist/_chunks/{Form-BssUwrTO.js → Form-EqGueEun.js} +2 -2
  18. package/dist/_chunks/{Form-BssUwrTO.js.map → Form-EqGueEun.js.map} +1 -1
  19. package/dist/_chunks/{Form-u_kAOhwB.mjs → Form-LjNm2Haf.mjs} +2 -2
  20. package/dist/_chunks/{Form-u_kAOhwB.mjs.map → Form-LjNm2Haf.mjs.map} +1 -1
  21. package/dist/_chunks/{History-C9t9UqpO.js → History-CDAPqxZq.js} +5 -5
  22. package/dist/_chunks/History-CDAPqxZq.js.map +1 -0
  23. package/dist/_chunks/{History-DRwA3oMM.mjs → History-CgQdxFAQ.mjs} +5 -5
  24. package/dist/_chunks/History-CgQdxFAQ.mjs.map +1 -0
  25. package/dist/_chunks/{ListConfigurationPage-BxfQJzPk.mjs → ListConfigurationPage-BDTfzFqb.mjs} +2 -2
  26. package/dist/_chunks/{ListConfigurationPage-BxfQJzPk.mjs.map → ListConfigurationPage-BDTfzFqb.mjs.map} +1 -1
  27. package/dist/_chunks/{ListConfigurationPage-BXYPohh-.js → ListConfigurationPage-DvXa6JgB.js} +2 -2
  28. package/dist/_chunks/{ListConfigurationPage-BXYPohh-.js.map → ListConfigurationPage-DvXa6JgB.js.map} +1 -1
  29. package/dist/_chunks/{ListViewPage-CELx2ysp.mjs → ListViewPage-7kfnXO7B.mjs} +15 -4
  30. package/dist/_chunks/{ListViewPage-CELx2ysp.mjs.map → ListViewPage-7kfnXO7B.mjs.map} +1 -1
  31. package/dist/_chunks/{ListViewPage-D2VD8Szg.js → ListViewPage-BKKv5nqq.js} +15 -4
  32. package/dist/_chunks/ListViewPage-BKKv5nqq.js.map +1 -0
  33. package/dist/_chunks/{NoContentTypePage-DtJ9jcfk.mjs → NoContentTypePage-Cr_T2WMx.mjs} +2 -2
  34. package/dist/_chunks/{NoContentTypePage-DtJ9jcfk.mjs.map → NoContentTypePage-Cr_T2WMx.mjs.map} +1 -1
  35. package/dist/_chunks/{NoContentTypePage-BV9IjJSM.js → NoContentTypePage-DwqblrUj.js} +2 -2
  36. package/dist/_chunks/{NoContentTypePage-BV9IjJSM.js.map → NoContentTypePage-DwqblrUj.js.map} +1 -1
  37. package/dist/_chunks/{NoPermissionsPage-DWleVYK7.mjs → NoPermissionsPage-BG4mb2u5.mjs} +2 -2
  38. package/dist/_chunks/{NoPermissionsPage-DWleVYK7.mjs.map → NoPermissionsPage-BG4mb2u5.mjs.map} +1 -1
  39. package/dist/_chunks/{NoPermissionsPage-Dp8NpF9I.js → NoPermissionsPage-CPgv_JPA.js} +2 -2
  40. package/dist/_chunks/{NoPermissionsPage-Dp8NpF9I.js.map → NoPermissionsPage-CPgv_JPA.js.map} +1 -1
  41. package/dist/_chunks/{Relations-DR7EUgyC.js → Relations-BAt1MkgZ.js} +40 -16
  42. package/dist/_chunks/Relations-BAt1MkgZ.js.map +1 -0
  43. package/dist/_chunks/{Relations-BTcf5xaw.mjs → Relations-DENILBUB.mjs} +41 -17
  44. package/dist/_chunks/Relations-DENILBUB.mjs.map +1 -0
  45. package/dist/_chunks/{index-BdMf2lfT.js → index-DQcL7aOp.js} +42 -16
  46. package/dist/_chunks/index-DQcL7aOp.js.map +1 -0
  47. package/dist/_chunks/{index-wnqzm4Q8.mjs → index-D_yVHHl5.mjs} +41 -16
  48. package/dist/_chunks/index-D_yVHHl5.mjs.map +1 -0
  49. package/dist/_chunks/{layout-2CfjL0T9.mjs → layout-DMyFsGdI.mjs} +3 -3
  50. package/dist/_chunks/{layout-2CfjL0T9.mjs.map → layout-DMyFsGdI.mjs.map} +1 -1
  51. package/dist/_chunks/{layout-B2MyZU-_.js → layout-DPnJ4Hsy.js} +3 -3
  52. package/dist/_chunks/{layout-B2MyZU-_.js.map → layout-DPnJ4Hsy.js.map} +1 -1
  53. package/dist/_chunks/{relations-C0w0GcXi.mjs → relations-B1kXf0He.mjs} +3 -7
  54. package/dist/_chunks/relations-B1kXf0He.mjs.map +1 -0
  55. package/dist/_chunks/{relations-BH7JJGGe.js → relations-zt3eHntv.js} +3 -7
  56. package/dist/_chunks/relations-zt3eHntv.js.map +1 -0
  57. package/dist/admin/index.js +1 -1
  58. package/dist/admin/index.mjs +1 -1
  59. package/dist/admin/src/preview/constants.d.ts +1 -0
  60. package/dist/admin/src/preview/index.d.ts +4 -0
  61. package/dist/server/index.js +55 -16
  62. package/dist/server/index.js.map +1 -1
  63. package/dist/server/index.mjs +55 -16
  64. package/dist/server/index.mjs.map +1 -1
  65. package/dist/server/src/bootstrap.d.ts.map +1 -1
  66. package/dist/server/src/controllers/relations.d.ts.map +1 -1
  67. package/dist/server/src/controllers/utils/metadata.d.ts +15 -1
  68. package/dist/server/src/controllers/utils/metadata.d.ts.map +1 -1
  69. package/dist/server/src/index.d.ts +4 -4
  70. package/dist/server/src/preview/constants.d.ts +2 -0
  71. package/dist/server/src/preview/constants.d.ts.map +1 -0
  72. package/dist/server/src/preview/index.d.ts +4 -0
  73. package/dist/server/src/preview/index.d.ts.map +1 -0
  74. package/dist/server/src/services/document-metadata.d.ts +8 -8
  75. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  76. package/dist/server/src/services/index.d.ts +4 -4
  77. package/dist/server/src/services/utils/configuration/index.d.ts +2 -2
  78. package/dist/server/src/services/utils/configuration/layouts.d.ts +2 -2
  79. package/dist/server/src/utils/index.d.ts +2 -0
  80. package/dist/server/src/utils/index.d.ts.map +1 -1
  81. package/package.json +6 -6
  82. package/dist/_chunks/EditViewPage-B82x_x1b.mjs.map +0 -1
  83. package/dist/_chunks/EditViewPage-DlxEHhUt.js.map +0 -1
  84. package/dist/_chunks/History-C9t9UqpO.js.map +0 -1
  85. package/dist/_chunks/History-DRwA3oMM.mjs.map +0 -1
  86. package/dist/_chunks/ListViewPage-D2VD8Szg.js.map +0 -1
  87. package/dist/_chunks/Relations-BTcf5xaw.mjs.map +0 -1
  88. package/dist/_chunks/Relations-DR7EUgyC.js.map +0 -1
  89. package/dist/_chunks/index-BdMf2lfT.js.map +0 -1
  90. package/dist/_chunks/index-wnqzm4Q8.mjs.map +0 -1
  91. package/dist/_chunks/relations-BH7JJGGe.js.map +0 -1
  92. package/dist/_chunks/relations-C0w0GcXi.mjs.map +0 -1
@@ -695,7 +695,7 @@ const historyVersion = {
695
695
  }
696
696
  }
697
697
  };
698
- const getFeature = () => {
698
+ const getFeature$1 = () => {
699
699
  if (strapi.ee.features.isEnabled("cms-content-history")) {
700
700
  return {
701
701
  register({ strapi: strapi2 }) {
@@ -718,7 +718,7 @@ const getFeature = () => {
718
718
  }
719
719
  };
720
720
  };
721
- const history = getFeature();
721
+ const history = getFeature$1();
722
722
  const register = async ({ strapi: strapi2 }) => {
723
723
  await history.register?.({ strapi: strapi2 });
724
724
  };
@@ -726,6 +726,18 @@ const ALLOWED_WEBHOOK_EVENTS = {
726
726
  ENTRY_PUBLISH: "entry.publish",
727
727
  ENTRY_UNPUBLISH: "entry.unpublish"
728
728
  };
729
+ const FEATURE_ID = "preview";
730
+ const getFeature = () => {
731
+ if (!strapi.features.future.isEnabled(FEATURE_ID)) {
732
+ return {};
733
+ }
734
+ return {
735
+ bootstrap() {
736
+ console.log("Bootstrapping preview server");
737
+ }
738
+ };
739
+ };
740
+ const preview = getFeature();
729
741
  const bootstrap = async () => {
730
742
  Object.entries(ALLOWED_WEBHOOK_EVENTS).forEach(([key, value]) => {
731
743
  strapi.get("webhookStore").addAllowedEvent(key, value);
@@ -735,6 +747,7 @@ const bootstrap = async () => {
735
747
  await getService$1("content-types").syncConfigurations();
736
748
  await getService$1("permission").registerPermissions();
737
749
  await history.bootstrap?.({ strapi });
750
+ await preview.bootstrap?.({ strapi });
738
751
  };
739
752
  const destroy = async ({ strapi: strapi2 }) => {
740
753
  await history.destroy?.({ strapi: strapi2 });
@@ -2364,15 +2377,27 @@ const sanitizeMainField = (model, mainField, userAbility) => {
2364
2377
  }
2365
2378
  return mainField;
2366
2379
  };
2367
- const addStatusToRelations = async (uid2, relations2) => {
2368
- if (!strapiUtils.contentTypes.hasDraftAndPublish(strapi.contentTypes[uid2])) {
2380
+ const addStatusToRelations = async (targetUid, relations2) => {
2381
+ if (!strapiUtils.contentTypes.hasDraftAndPublish(strapi.getModel(targetUid))) {
2369
2382
  return relations2;
2370
2383
  }
2371
2384
  const documentMetadata2 = getService$1("document-metadata");
2372
- const documentsAvailableStatus = await documentMetadata2.getManyAvailableStatus(uid2, relations2);
2385
+ if (!relations2.length) {
2386
+ return relations2;
2387
+ }
2388
+ const firstRelation = relations2[0];
2389
+ const filters = {
2390
+ documentId: { $in: relations2.map((r) => r.documentId) },
2391
+ // NOTE: find the "opposite" status
2392
+ publishedAt: firstRelation.publishedAt !== null ? { $null: true } : { $notNull: true }
2393
+ };
2394
+ const availableStatus = await strapi.query(targetUid).findMany({
2395
+ select: ["id", "documentId", "locale", "updatedAt", "createdAt", "publishedAt"],
2396
+ filters
2397
+ });
2373
2398
  return relations2.map((relation) => {
2374
- const availableStatuses = documentsAvailableStatus.filter(
2375
- (availableDocument) => availableDocument.documentId === relation.documentId
2399
+ const availableStatuses = availableStatus.filter(
2400
+ (availableDocument) => availableDocument.documentId === relation.documentId && (relation.locale ? availableDocument.locale === relation.locale : true)
2376
2401
  );
2377
2402
  return {
2378
2403
  ...relation,
@@ -2601,21 +2626,33 @@ const relations = {
2601
2626
  attribute,
2602
2627
  targetField,
2603
2628
  fieldsToSelect,
2604
- source: {
2605
- schema: { uid: sourceUid }
2606
- },
2607
- target: {
2608
- schema: { uid: targetUid }
2609
- }
2629
+ status,
2630
+ source: { schema: sourceSchema },
2631
+ target: { schema: targetSchema }
2610
2632
  } = await this.extractAndValidateRequestInfo(ctx, id);
2633
+ const { uid: sourceUid } = sourceSchema;
2634
+ const { uid: targetUid } = targetSchema;
2611
2635
  const permissionQuery = await getService$1("permission-checker").create({ userAbility, model: targetUid }).sanitizedQuery.read({ fields: fieldsToSelect });
2612
2636
  const dbQuery = strapi.db.query(sourceUid);
2613
2637
  const loadRelations = strapiUtils.relations.isAnyToMany(attribute) ? (...args) => dbQuery.loadPages(...args) : (...args) => dbQuery.load(...args).then((res2) => ({ results: res2 ? [res2] : [] }));
2638
+ const filters = {};
2639
+ if (sourceSchema?.options?.draftAndPublish) {
2640
+ if (targetSchema?.options?.draftAndPublish) {
2641
+ if (status === "published") {
2642
+ filters.publishedAt = { $notNull: true };
2643
+ } else {
2644
+ filters.publishedAt = { $null: true };
2645
+ }
2646
+ }
2647
+ } else if (targetSchema?.options?.draftAndPublish) {
2648
+ filters.publishedAt = { $null: true };
2649
+ }
2614
2650
  const res = await loadRelations({ id: entryId }, targetField, {
2615
- select: ["id", "documentId", "locale", "publishedAt"],
2651
+ select: ["id", "documentId", "locale", "publishedAt", "updatedAt"],
2616
2652
  ordering: "desc",
2617
2653
  page: ctx.request.query.page,
2618
- pageSize: ctx.request.query.pageSize
2654
+ pageSize: ctx.request.query.pageSize,
2655
+ filters
2619
2656
  });
2620
2657
  const loadedIds = res.results.map((item) => item.id);
2621
2658
  addFiltersClause(permissionQuery, { id: { $in: loadedIds } });
@@ -4079,7 +4116,9 @@ const documentMetadata = ({ strapi: strapi2 }) => ({
4079
4116
  */
4080
4117
  async getAvailableLocales(uid2, version, allVersions, validatableFields = []) {
4081
4118
  const versionsByLocale = fp.groupBy("locale", allVersions);
4082
- delete versionsByLocale[version.locale];
4119
+ if (version.locale) {
4120
+ delete versionsByLocale[version.locale];
4121
+ }
4083
4122
  const model = strapi2.getModel(uid2);
4084
4123
  const keysToKeep = [...AVAILABLE_LOCALES_FIELDS, ...validatableFields];
4085
4124
  const traversalFunction = async (localeVersion) => strapiUtils.traverseEntity(