@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
@@ -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 }) {
@@ -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,18 @@ 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 getFeature = () => {
705
+ if (!strapi.features.future.isEnabled(FEATURE_ID)) {
706
+ return {};
707
+ }
708
+ return {
709
+ bootstrap() {
710
+ console.log("Bootstrapping preview server");
711
+ }
712
+ };
713
+ };
714
+ const preview = getFeature();
703
715
  const bootstrap = async () => {
704
716
  Object.entries(ALLOWED_WEBHOOK_EVENTS).forEach(([key, value]) => {
705
717
  strapi.get("webhookStore").addAllowedEvent(key, value);
@@ -709,6 +721,7 @@ const bootstrap = async () => {
709
721
  await getService$1("content-types").syncConfigurations();
710
722
  await getService$1("permission").registerPermissions();
711
723
  await history.bootstrap?.({ strapi });
724
+ await preview.bootstrap?.({ strapi });
712
725
  };
713
726
  const destroy = async ({ strapi: strapi2 }) => {
714
727
  await history.destroy?.({ strapi: strapi2 });
@@ -2338,15 +2351,27 @@ const sanitizeMainField = (model, mainField, userAbility) => {
2338
2351
  }
2339
2352
  return mainField;
2340
2353
  };
2341
- const addStatusToRelations = async (uid2, relations2) => {
2342
- if (!contentTypes$1.hasDraftAndPublish(strapi.contentTypes[uid2])) {
2354
+ const addStatusToRelations = async (targetUid, relations2) => {
2355
+ if (!contentTypes$1.hasDraftAndPublish(strapi.getModel(targetUid))) {
2343
2356
  return relations2;
2344
2357
  }
2345
2358
  const documentMetadata2 = getService$1("document-metadata");
2346
- const documentsAvailableStatus = await documentMetadata2.getManyAvailableStatus(uid2, relations2);
2359
+ if (!relations2.length) {
2360
+ return relations2;
2361
+ }
2362
+ const firstRelation = relations2[0];
2363
+ const filters = {
2364
+ documentId: { $in: relations2.map((r) => r.documentId) },
2365
+ // NOTE: find the "opposite" status
2366
+ publishedAt: firstRelation.publishedAt !== null ? { $null: true } : { $notNull: true }
2367
+ };
2368
+ const availableStatus = await strapi.query(targetUid).findMany({
2369
+ select: ["id", "documentId", "locale", "updatedAt", "createdAt", "publishedAt"],
2370
+ filters
2371
+ });
2347
2372
  return relations2.map((relation) => {
2348
- const availableStatuses = documentsAvailableStatus.filter(
2349
- (availableDocument) => availableDocument.documentId === relation.documentId
2373
+ const availableStatuses = availableStatus.filter(
2374
+ (availableDocument) => availableDocument.documentId === relation.documentId && (relation.locale ? availableDocument.locale === relation.locale : true)
2350
2375
  );
2351
2376
  return {
2352
2377
  ...relation,
@@ -2575,21 +2600,33 @@ const relations = {
2575
2600
  attribute,
2576
2601
  targetField,
2577
2602
  fieldsToSelect,
2578
- source: {
2579
- schema: { uid: sourceUid }
2580
- },
2581
- target: {
2582
- schema: { uid: targetUid }
2583
- }
2603
+ status,
2604
+ source: { schema: sourceSchema },
2605
+ target: { schema: targetSchema }
2584
2606
  } = await this.extractAndValidateRequestInfo(ctx, id);
2607
+ const { uid: sourceUid } = sourceSchema;
2608
+ const { uid: targetUid } = targetSchema;
2585
2609
  const permissionQuery = await getService$1("permission-checker").create({ userAbility, model: targetUid }).sanitizedQuery.read({ fields: fieldsToSelect });
2586
2610
  const dbQuery = strapi.db.query(sourceUid);
2587
2611
  const loadRelations = relations$1.isAnyToMany(attribute) ? (...args) => dbQuery.loadPages(...args) : (...args) => dbQuery.load(...args).then((res2) => ({ results: res2 ? [res2] : [] }));
2612
+ const filters = {};
2613
+ if (sourceSchema?.options?.draftAndPublish) {
2614
+ if (targetSchema?.options?.draftAndPublish) {
2615
+ if (status === "published") {
2616
+ filters.publishedAt = { $notNull: true };
2617
+ } else {
2618
+ filters.publishedAt = { $null: true };
2619
+ }
2620
+ }
2621
+ } else if (targetSchema?.options?.draftAndPublish) {
2622
+ filters.publishedAt = { $null: true };
2623
+ }
2588
2624
  const res = await loadRelations({ id: entryId }, targetField, {
2589
- select: ["id", "documentId", "locale", "publishedAt"],
2625
+ select: ["id", "documentId", "locale", "publishedAt", "updatedAt"],
2590
2626
  ordering: "desc",
2591
2627
  page: ctx.request.query.page,
2592
- pageSize: ctx.request.query.pageSize
2628
+ pageSize: ctx.request.query.pageSize,
2629
+ filters
2593
2630
  });
2594
2631
  const loadedIds = res.results.map((item) => item.id);
2595
2632
  addFiltersClause(permissionQuery, { id: { $in: loadedIds } });
@@ -4053,7 +4090,9 @@ const documentMetadata = ({ strapi: strapi2 }) => ({
4053
4090
  */
4054
4091
  async getAvailableLocales(uid2, version, allVersions, validatableFields = []) {
4055
4092
  const versionsByLocale = groupBy("locale", allVersions);
4056
- delete versionsByLocale[version.locale];
4093
+ if (version.locale) {
4094
+ delete versionsByLocale[version.locale];
4095
+ }
4057
4096
  const model = strapi2.getModel(uid2);
4058
4097
  const keysToKeep = [...AVAILABLE_LOCALES_FIELDS, ...validatableFields];
4059
4098
  const traversalFunction = async (localeVersion) => traverseEntity(