@strapi/content-manager 5.0.0-rc.0 → 5.0.0-rc.2

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 (77) hide show
  1. package/dist/_chunks/{ComponentConfigurationPage-DVY3LwHo.js → ComponentConfigurationPage-Bv-IXOYu.js} +3 -3
  2. package/dist/_chunks/{ComponentConfigurationPage-DVY3LwHo.js.map → ComponentConfigurationPage-Bv-IXOYu.js.map} +1 -1
  3. package/dist/_chunks/{ComponentConfigurationPage-Dy9BQQ2V.mjs → ComponentConfigurationPage-BxJCkKZV.mjs} +3 -3
  4. package/dist/_chunks/{ComponentConfigurationPage-Dy9BQQ2V.mjs.map → ComponentConfigurationPage-BxJCkKZV.mjs.map} +1 -1
  5. package/dist/_chunks/{EditConfigurationPage-DbR8mWH5.mjs → EditConfigurationPage-BGwHNypQ.mjs} +3 -3
  6. package/dist/_chunks/{EditConfigurationPage-DbR8mWH5.mjs.map → EditConfigurationPage-BGwHNypQ.mjs.map} +1 -1
  7. package/dist/_chunks/{EditConfigurationPage-b6V7YHfo.js → EditConfigurationPage-QZl5zOz-.js} +3 -3
  8. package/dist/_chunks/{EditConfigurationPage-b6V7YHfo.js.map → EditConfigurationPage-QZl5zOz-.js.map} +1 -1
  9. package/dist/_chunks/{EditViewPage-CPrukwtO.mjs → EditViewPage-CtdtssrH.mjs} +3 -3
  10. package/dist/_chunks/{EditViewPage-CPrukwtO.mjs.map → EditViewPage-CtdtssrH.mjs.map} +1 -1
  11. package/dist/_chunks/{EditViewPage-DhttErmY.js → EditViewPage-DxKueadW.js} +3 -3
  12. package/dist/_chunks/{EditViewPage-DhttErmY.js.map → EditViewPage-DxKueadW.js.map} +1 -1
  13. package/dist/_chunks/{Field-CBRV4uan.js → Field-BPw8fE3W.js} +8 -8
  14. package/dist/_chunks/Field-BPw8fE3W.js.map +1 -0
  15. package/dist/_chunks/{Field-DrgIgQPw.mjs → Field-BU7_nR4F.mjs} +8 -8
  16. package/dist/_chunks/Field-BU7_nR4F.mjs.map +1 -0
  17. package/dist/_chunks/{Form-Bk3v7Frl.js → Form-DtvmbGdZ.js} +2 -2
  18. package/dist/_chunks/{Form-Bk3v7Frl.js.map → Form-DtvmbGdZ.js.map} +1 -1
  19. package/dist/_chunks/{Form-Dxk4txLJ.mjs → Form-ffghBTPI.mjs} +2 -2
  20. package/dist/_chunks/{Form-Dxk4txLJ.mjs.map → Form-ffghBTPI.mjs.map} +1 -1
  21. package/dist/_chunks/{History-xNH_9UuV.js → History-CSr8y9KM.js} +21 -11
  22. package/dist/_chunks/History-CSr8y9KM.js.map +1 -0
  23. package/dist/_chunks/{History-DSU-y4Hg.mjs → History-D6PRyNcx.mjs} +21 -11
  24. package/dist/_chunks/History-D6PRyNcx.mjs.map +1 -0
  25. package/dist/_chunks/{ListConfigurationPage-BWwZ-uMJ.mjs → ListConfigurationPage-BC9bCi9k.mjs} +2 -2
  26. package/dist/_chunks/{ListConfigurationPage-BWwZ-uMJ.mjs.map → ListConfigurationPage-BC9bCi9k.mjs.map} +1 -1
  27. package/dist/_chunks/{ListConfigurationPage-BCPzXk5W.js → ListConfigurationPage-DsmAQ3YM.js} +2 -2
  28. package/dist/_chunks/{ListConfigurationPage-BCPzXk5W.js.map → ListConfigurationPage-DsmAQ3YM.js.map} +1 -1
  29. package/dist/_chunks/{ListViewPage-D9UmehuA.mjs → ListViewPage-B1GyNqfn.mjs} +3 -3
  30. package/dist/_chunks/{ListViewPage-D9UmehuA.mjs.map → ListViewPage-B1GyNqfn.mjs.map} +1 -1
  31. package/dist/_chunks/{ListViewPage-ZIvstfvl.js → ListViewPage-DqAIb_ie.js} +3 -3
  32. package/dist/_chunks/{ListViewPage-ZIvstfvl.js.map → ListViewPage-DqAIb_ie.js.map} +1 -1
  33. package/dist/_chunks/{NoContentTypePage-CstnyWv2.mjs → NoContentTypePage-CJ-HJriz.mjs} +2 -2
  34. package/dist/_chunks/{NoContentTypePage-CstnyWv2.mjs.map → NoContentTypePage-CJ-HJriz.mjs.map} +1 -1
  35. package/dist/_chunks/{NoContentTypePage-h7FcuMjI.js → NoContentTypePage-xjvn5XwY.js} +2 -2
  36. package/dist/_chunks/{NoContentTypePage-h7FcuMjI.js.map → NoContentTypePage-xjvn5XwY.js.map} +1 -1
  37. package/dist/_chunks/{NoPermissionsPage-aFCCLbsf.mjs → NoPermissionsPage--afHbbbD.mjs} +2 -2
  38. package/dist/_chunks/{NoPermissionsPage-aFCCLbsf.mjs.map → NoPermissionsPage--afHbbbD.mjs.map} +1 -1
  39. package/dist/_chunks/{NoPermissionsPage-DofU68cO.js → NoPermissionsPage-DObTkKmZ.js} +2 -2
  40. package/dist/_chunks/{NoPermissionsPage-DofU68cO.js.map → NoPermissionsPage-DObTkKmZ.js.map} +1 -1
  41. package/dist/_chunks/{Relations-7v66IP7b.mjs → Relations-heq-nLGU.mjs} +3 -3
  42. package/dist/_chunks/{Relations-7v66IP7b.mjs.map → Relations-heq-nLGU.mjs.map} +1 -1
  43. package/dist/_chunks/{Relations-DAS_DKG5.js → Relations-t4Q0DpqW.js} +3 -3
  44. package/dist/_chunks/{Relations-DAS_DKG5.js.map → Relations-t4Q0DpqW.js.map} +1 -1
  45. package/dist/_chunks/{index-CAlLHIrI.js → index-1zxclxo_.js} +83 -62
  46. package/dist/_chunks/index-1zxclxo_.js.map +1 -0
  47. package/dist/_chunks/{index-DIQ7Io-l.mjs → index-BcQ8cRyl.mjs} +85 -64
  48. package/dist/_chunks/index-BcQ8cRyl.mjs.map +1 -0
  49. package/dist/_chunks/{layout-DHe2GdT4.mjs → layout-Jl9mJFJZ.mjs} +3 -3
  50. package/dist/_chunks/{layout-DHe2GdT4.mjs.map → layout-Jl9mJFJZ.mjs.map} +1 -1
  51. package/dist/_chunks/{layout-B1ZS-usI.js → layout-tVvbqota.js} +3 -3
  52. package/dist/_chunks/{layout-B1ZS-usI.js.map → layout-tVvbqota.js.map} +1 -1
  53. package/dist/_chunks/{relations-yXHkSG1Z.js → relations-CK2Jd0HM.js} +2 -2
  54. package/dist/_chunks/{relations-yXHkSG1Z.js.map → relations-CK2Jd0HM.js.map} +1 -1
  55. package/dist/_chunks/{relations-BUieBWhT.mjs → relations-f4Pv7Kgo.mjs} +2 -2
  56. package/dist/_chunks/{relations-BUieBWhT.mjs.map → relations-f4Pv7Kgo.mjs.map} +1 -1
  57. package/dist/admin/index.js +1 -1
  58. package/dist/admin/index.mjs +1 -1
  59. package/dist/admin/src/history/index.d.ts +3 -0
  60. package/dist/admin/src/index.d.ts +1 -0
  61. package/dist/server/index.js +33 -28
  62. package/dist/server/index.js.map +1 -1
  63. package/dist/server/index.mjs +33 -28
  64. package/dist/server/index.mjs.map +1 -1
  65. package/dist/server/src/controllers/collection-types.d.ts.map +1 -1
  66. package/dist/server/src/controllers/uid.d.ts.map +1 -1
  67. package/dist/server/src/controllers/validation/dimensions.d.ts +4 -2
  68. package/dist/server/src/controllers/validation/dimensions.d.ts.map +1 -1
  69. package/dist/server/src/services/document-manager.d.ts.map +1 -1
  70. package/dist/server/src/services/utils/populate.d.ts.map +1 -1
  71. package/package.json +6 -6
  72. package/dist/_chunks/Field-CBRV4uan.js.map +0 -1
  73. package/dist/_chunks/Field-DrgIgQPw.mjs.map +0 -1
  74. package/dist/_chunks/History-DSU-y4Hg.mjs.map +0 -1
  75. package/dist/_chunks/History-xNH_9UuV.js.map +0 -1
  76. package/dist/_chunks/index-CAlLHIrI.js.map +0 -1
  77. package/dist/_chunks/index-DIQ7Io-l.mjs.map +0 -1
@@ -1595,9 +1595,11 @@ const multipleLocaleSchema = strapiUtils.yup.lazy(
1595
1595
  (value) => Array.isArray(value) ? strapiUtils.yup.array().of(singleLocaleSchema.required()) : singleLocaleSchema
1596
1596
  );
1597
1597
  const statusSchema = strapiUtils.yup.mixed().oneOf(["draft", "published"], "Invalid status");
1598
- const getDocumentLocaleAndStatus = async (request, opts = { allowMultipleLocales: false }) => {
1598
+ const getDocumentLocaleAndStatus = async (request, model, opts = { allowMultipleLocales: false }) => {
1599
1599
  const { allowMultipleLocales } = opts;
1600
- const { locale, status, ...rest } = request || {};
1600
+ const { locale, status: providedStatus, ...rest } = request || {};
1601
+ const defaultStatus = strapiUtils.contentTypes.hasDraftAndPublish(strapi.getModel(model)) ? void 0 : "published";
1602
+ const status = providedStatus !== void 0 ? providedStatus : defaultStatus;
1601
1603
  const schema = strapiUtils.yup.object().shape({
1602
1604
  locale: allowMultipleLocales ? multipleLocaleSchema : singleLocaleSchema,
1603
1605
  status: statusSchema
@@ -1645,7 +1647,7 @@ const createDocument = async (ctx, opts) => {
1645
1647
  const setCreator = strapiUtils.setCreatorFields({ user });
1646
1648
  const sanitizeFn = strapiUtils.async.pipe(pickPermittedFields, setCreator);
1647
1649
  const sanitizedBody = await sanitizeFn(body);
1648
- const { locale, status = "draft" } = await getDocumentLocaleAndStatus(body);
1650
+ const { locale, status } = await getDocumentLocaleAndStatus(body, model);
1649
1651
  return documentManager2.create(model, {
1650
1652
  data: sanitizedBody,
1651
1653
  locale,
@@ -1664,7 +1666,7 @@ const updateDocument = async (ctx, opts) => {
1664
1666
  }
1665
1667
  const permissionQuery = await permissionChecker2.sanitizedQuery.update(ctx.query);
1666
1668
  const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
1667
- const { locale } = await getDocumentLocaleAndStatus(body);
1669
+ const { locale } = await getDocumentLocaleAndStatus(body, model);
1668
1670
  const [documentVersion, documentExists] = await Promise.all([
1669
1671
  documentManager2.findOne(id, model, { populate, locale, status: "draft" }),
1670
1672
  documentManager2.exists(model, id)
@@ -1702,7 +1704,7 @@ const collectionTypes = {
1702
1704
  }
1703
1705
  const permissionQuery = await permissionChecker2.sanitizedQuery.read(query);
1704
1706
  const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(1).countRelations({ toOne: false, toMany: true }).build();
1705
- const { locale, status } = await getDocumentLocaleAndStatus(query);
1707
+ const { locale, status } = await getDocumentLocaleAndStatus(query, model);
1706
1708
  const { results: documents, pagination } = await documentManager2.findPage(
1707
1709
  { ...permissionQuery, populate, locale, status },
1708
1710
  model
@@ -1737,7 +1739,7 @@ const collectionTypes = {
1737
1739
  }
1738
1740
  const permissionQuery = await permissionChecker2.sanitizedQuery.read(ctx.query);
1739
1741
  const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(Infinity).countRelations().build();
1740
- const { locale, status = "draft" } = await getDocumentLocaleAndStatus(ctx.query);
1742
+ const { locale, status } = await getDocumentLocaleAndStatus(ctx.query, model);
1741
1743
  const version = await documentManager2.findOne(id, model, {
1742
1744
  populate,
1743
1745
  locale,
@@ -1804,7 +1806,7 @@ const collectionTypes = {
1804
1806
  }
1805
1807
  const permissionQuery = await permissionChecker2.sanitizedQuery.create(ctx.query);
1806
1808
  const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
1807
- const { locale } = await getDocumentLocaleAndStatus(body);
1809
+ const { locale } = await getDocumentLocaleAndStatus(body, model);
1808
1810
  const document = await documentManager2.findOne(id, model, {
1809
1811
  populate,
1810
1812
  locale,
@@ -1849,7 +1851,7 @@ const collectionTypes = {
1849
1851
  }
1850
1852
  const permissionQuery = await permissionChecker2.sanitizedQuery.delete(ctx.query);
1851
1853
  const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
1852
- const { locale } = await getDocumentLocaleAndStatus(ctx.query);
1854
+ const { locale } = await getDocumentLocaleAndStatus(ctx.query, model);
1853
1855
  const documentLocales = await documentManager2.findLocales(id, model, { populate, locale });
1854
1856
  if (documentLocales.length === 0) {
1855
1857
  return ctx.notFound();
@@ -1882,7 +1884,7 @@ const collectionTypes = {
1882
1884
  if (permissionChecker2.cannot.publish(document)) {
1883
1885
  throw new strapiUtils.errors.ForbiddenError();
1884
1886
  }
1885
- const { locale } = await getDocumentLocaleAndStatus(body);
1887
+ const { locale } = await getDocumentLocaleAndStatus(body, model);
1886
1888
  const publishResult = await documentManager2.publish(document.documentId, model, {
1887
1889
  locale
1888
1890
  // TODO: Allow setting creator fields on publish
@@ -1909,7 +1911,9 @@ const collectionTypes = {
1909
1911
  }
1910
1912
  const permissionQuery = await permissionChecker2.sanitizedQuery.publish(ctx.query);
1911
1913
  const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).populateDeep(Infinity).countRelations().build();
1912
- const { locale } = await getDocumentLocaleAndStatus(body, { allowMultipleLocales: true });
1914
+ const { locale } = await getDocumentLocaleAndStatus(body, model, {
1915
+ allowMultipleLocales: true
1916
+ });
1913
1917
  const entityPromises = documentIds.map(
1914
1918
  (documentId) => documentManager2.findLocales(documentId, model, { populate, locale, isPublished: false })
1915
1919
  );
@@ -1936,7 +1940,7 @@ const collectionTypes = {
1936
1940
  if (permissionChecker2.cannot.unpublish()) {
1937
1941
  return ctx.forbidden();
1938
1942
  }
1939
- const { locale } = await getDocumentLocaleAndStatus(body);
1943
+ const { locale } = await getDocumentLocaleAndStatus(body, model);
1940
1944
  const entityPromises = documentIds.map(
1941
1945
  (documentId) => documentManager2.findLocales(documentId, model, { locale, isPublished: true })
1942
1946
  );
@@ -1969,7 +1973,7 @@ const collectionTypes = {
1969
1973
  }
1970
1974
  const permissionQuery = await permissionChecker2.sanitizedQuery.unpublish(ctx.query);
1971
1975
  const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
1972
- const { locale } = await getDocumentLocaleAndStatus(body);
1976
+ const { locale } = await getDocumentLocaleAndStatus(body, model);
1973
1977
  const document = await documentManager2.findOne(id, model, {
1974
1978
  populate,
1975
1979
  locale,
@@ -2006,7 +2010,7 @@ const collectionTypes = {
2006
2010
  }
2007
2011
  const permissionQuery = await permissionChecker2.sanitizedQuery.discard(ctx.query);
2008
2012
  const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
2009
- const { locale } = await getDocumentLocaleAndStatus(body);
2013
+ const { locale } = await getDocumentLocaleAndStatus(body, model);
2010
2014
  const document = await documentManager2.findOne(id, model, {
2011
2015
  populate,
2012
2016
  locale,
@@ -2037,7 +2041,7 @@ const collectionTypes = {
2037
2041
  }
2038
2042
  const permissionQuery = await permissionChecker2.sanitizedQuery.delete(query);
2039
2043
  const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
2040
- const { locale } = await getDocumentLocaleAndStatus(body);
2044
+ const { locale } = await getDocumentLocaleAndStatus(body, model);
2041
2045
  const documentLocales = await documentManager2.findLocales(documentIds, model, {
2042
2046
  populate,
2043
2047
  locale
@@ -2064,7 +2068,7 @@ const collectionTypes = {
2064
2068
  }
2065
2069
  const permissionQuery = await permissionChecker2.sanitizedQuery.read(ctx.query);
2066
2070
  const populate = await getService$1("populate-builder")(model).populateFromQuery(permissionQuery).build();
2067
- const { locale, status = "draft" } = await getDocumentLocaleAndStatus(ctx.query);
2071
+ const { locale, status } = await getDocumentLocaleAndStatus(ctx.query, model);
2068
2072
  const entity = await documentManager2.findOne(id, model, { populate, locale, status });
2069
2073
  if (!entity) {
2070
2074
  return ctx.notFound();
@@ -2592,7 +2596,7 @@ const createOrUpdateDocument = async (ctx, opts) => {
2592
2596
  throw new strapiUtils.errors.ForbiddenError();
2593
2597
  }
2594
2598
  const sanitizedQuery = await permissionChecker2.sanitizedQuery.update(query);
2595
- const { locale } = await getDocumentLocaleAndStatus(body);
2599
+ const { locale } = await getDocumentLocaleAndStatus(body, model);
2596
2600
  const [documentVersion, otherDocumentVersion] = await Promise.all([
2597
2601
  findDocument(sanitizedQuery, model, { locale, status: "draft" }),
2598
2602
  // Find the first document to check if it exists
@@ -2633,7 +2637,7 @@ const singleTypes = {
2633
2637
  return ctx.forbidden();
2634
2638
  }
2635
2639
  const permissionQuery = await permissionChecker2.sanitizedQuery.read(query);
2636
- const { locale, status } = await getDocumentLocaleAndStatus(query);
2640
+ const { locale, status } = await getDocumentLocaleAndStatus(query, model);
2637
2641
  const version = await findDocument(permissionQuery, model, { locale, status });
2638
2642
  if (!version) {
2639
2643
  if (permissionChecker2.cannot.create()) {
@@ -2678,7 +2682,7 @@ const singleTypes = {
2678
2682
  }
2679
2683
  const sanitizedQuery = await permissionChecker2.sanitizedQuery.delete(query);
2680
2684
  const populate = await buildPopulateFromQuery(sanitizedQuery, model);
2681
- const { locale } = await getDocumentLocaleAndStatus(query);
2685
+ const { locale } = await getDocumentLocaleAndStatus(query, model);
2682
2686
  const documentLocales = await documentManager2.findLocales(void 0, model, {
2683
2687
  populate,
2684
2688
  locale
@@ -2715,7 +2719,7 @@ const singleTypes = {
2715
2719
  if (permissionChecker2.cannot.publish(document)) {
2716
2720
  throw new strapiUtils.errors.ForbiddenError();
2717
2721
  }
2718
- const { locale } = await getDocumentLocaleAndStatus(document);
2722
+ const { locale } = await getDocumentLocaleAndStatus(document, model);
2719
2723
  const publishResult = await documentManager2.publish(document.documentId, model, { locale });
2720
2724
  return publishResult.at(0);
2721
2725
  });
@@ -2738,7 +2742,7 @@ const singleTypes = {
2738
2742
  return ctx.forbidden();
2739
2743
  }
2740
2744
  const sanitizedQuery = await permissionChecker2.sanitizedQuery.unpublish(query);
2741
- const { locale } = await getDocumentLocaleAndStatus(body);
2745
+ const { locale } = await getDocumentLocaleAndStatus(body, model);
2742
2746
  const document = await findDocument(sanitizedQuery, model, { locale });
2743
2747
  if (!document) {
2744
2748
  return ctx.notFound();
@@ -2770,7 +2774,7 @@ const singleTypes = {
2770
2774
  return ctx.forbidden();
2771
2775
  }
2772
2776
  const sanitizedQuery = await permissionChecker2.sanitizedQuery.discard(query);
2773
- const { locale } = await getDocumentLocaleAndStatus(body);
2777
+ const { locale } = await getDocumentLocaleAndStatus(body, model);
2774
2778
  const document = await findDocument(sanitizedQuery, model, { locale, status: "published" });
2775
2779
  if (!document) {
2776
2780
  return ctx.notFound();
@@ -2790,7 +2794,7 @@ const singleTypes = {
2790
2794
  const { query } = ctx.request;
2791
2795
  const documentManager2 = getService$1("document-manager");
2792
2796
  const permissionChecker2 = getService$1("permission-checker").create({ userAbility, model });
2793
- const { locale } = await getDocumentLocaleAndStatus(query);
2797
+ const { locale } = await getDocumentLocaleAndStatus(query, model);
2794
2798
  if (permissionChecker2.cannot.read()) {
2795
2799
  return ctx.forbidden();
2796
2800
  }
@@ -2811,7 +2815,7 @@ const uid$1 = {
2811
2815
  async generateUID(ctx) {
2812
2816
  const { contentTypeUID, field, data } = await validateGenerateUIDInput(ctx.request.body);
2813
2817
  const { query = {} } = ctx.request;
2814
- const { locale } = await getDocumentLocaleAndStatus(query);
2818
+ const { locale } = await getDocumentLocaleAndStatus(query, contentTypeUID);
2815
2819
  await validateUIDField(contentTypeUID, field);
2816
2820
  const uidService = getService$1("uid");
2817
2821
  ctx.body = {
@@ -2823,7 +2827,7 @@ const uid$1 = {
2823
2827
  ctx.request.body
2824
2828
  );
2825
2829
  const { query = {} } = ctx.request;
2826
- const { locale } = await getDocumentLocaleAndStatus(query);
2830
+ const { locale } = await getDocumentLocaleAndStatus(query, contentTypeUID);
2827
2831
  await validateUIDField(contentTypeUID, field);
2828
2832
  const uidService = getService$1("uid");
2829
2833
  const isAvailable = await uidService.checkUIDAvailability({
@@ -3748,6 +3752,10 @@ const getDeepPopulateDraftCount = (uid2) => {
3748
3752
  const attribute = model.attributes[attributeName];
3749
3753
  switch (attribute.type) {
3750
3754
  case "relation": {
3755
+ const isMorphRelation = attribute.relation.toLowerCase().startsWith("morph");
3756
+ if (isMorphRelation) {
3757
+ break;
3758
+ }
3751
3759
  if (isVisibleAttribute$1(model, attributeName)) {
3752
3760
  populateAcc[attributeName] = {
3753
3761
  count: true,
@@ -4233,10 +4241,7 @@ const documentManager = ({ strapi: strapi2 }) => {
4233
4241
  async clone(id, body, uid2) {
4234
4242
  const populate = await buildDeepPopulate(uid2);
4235
4243
  const params = {
4236
- data: {
4237
- ...omitIdField(body),
4238
- [PUBLISHED_AT_ATTRIBUTE]: null
4239
- },
4244
+ data: omitIdField(body),
4240
4245
  populate
4241
4246
  };
4242
4247
  return strapi2.documents(uid2).clone({ ...params, documentId: id }).then((result) => result?.entries.at(0));