@strapi/content-manager 0.0.0-next.840550dc97a3782302ddf918d3a0d07e59dd11eb → 0.0.0-next.8f63e1055db761e0213cb6610f80c55658196ae1

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 (122) hide show
  1. package/dist/_chunks/{ComponentConfigurationPage-gsCd80MU.js → ComponentConfigurationPage-Cmm0LJof.js} +3 -3
  2. package/dist/_chunks/{ComponentConfigurationPage-gsCd80MU.js.map → ComponentConfigurationPage-Cmm0LJof.js.map} +1 -1
  3. package/dist/_chunks/{ComponentConfigurationPage-CIjXcRAB.mjs → ComponentConfigurationPage-FQd019My.mjs} +3 -3
  4. package/dist/_chunks/{ComponentConfigurationPage-CIjXcRAB.mjs.map → ComponentConfigurationPage-FQd019My.mjs.map} +1 -1
  5. package/dist/_chunks/{EditConfigurationPage-BglmD_BF.mjs → EditConfigurationPage-BUJqRuRq.mjs} +3 -3
  6. package/dist/_chunks/{EditConfigurationPage-BglmD_BF.mjs.map → EditConfigurationPage-BUJqRuRq.mjs.map} +1 -1
  7. package/dist/_chunks/{EditConfigurationPage-DHDQKBzw.js → EditConfigurationPage-CseHna9y.js} +3 -3
  8. package/dist/_chunks/{EditConfigurationPage-DHDQKBzw.js.map → EditConfigurationPage-CseHna9y.js.map} +1 -1
  9. package/dist/_chunks/{EditViewPage-CiwVPMaK.mjs → EditViewPage-BB9VeS-u.mjs} +30 -8
  10. package/dist/_chunks/EditViewPage-BB9VeS-u.mjs.map +1 -0
  11. package/dist/_chunks/{EditViewPage-C4iTxUPU.js → EditViewPage-BhjvFXZr.js} +29 -7
  12. package/dist/_chunks/EditViewPage-BhjvFXZr.js.map +1 -0
  13. package/dist/_chunks/{Field-DhXEK8y1.js → Field-B03STsf9.js} +27 -7
  14. package/dist/_chunks/Field-B03STsf9.js.map +1 -0
  15. package/dist/_chunks/{Field-DIjL1b5d.mjs → Field-CWi7XMCa.mjs} +27 -7
  16. package/dist/_chunks/Field-CWi7XMCa.mjs.map +1 -0
  17. package/dist/_chunks/{Form-CmNesrvR.mjs → Form-B5b7zgoL.mjs} +2 -2
  18. package/dist/_chunks/{Form-CmNesrvR.mjs.map → Form-B5b7zgoL.mjs.map} +1 -1
  19. package/dist/_chunks/{Form-CwmJ4sWe.js → Form-DH5m7r5s.js} +2 -2
  20. package/dist/_chunks/{Form-CwmJ4sWe.js.map → Form-DH5m7r5s.js.map} +1 -1
  21. package/dist/_chunks/{History-BLCCNgCt.js → History-CNO4Db6U.js} +17 -40
  22. package/dist/_chunks/History-CNO4Db6U.js.map +1 -0
  23. package/dist/_chunks/{History-D-99Wh30.mjs → History-Dhy0xF0L.mjs} +17 -40
  24. package/dist/_chunks/History-Dhy0xF0L.mjs.map +1 -0
  25. package/dist/_chunks/{ListConfigurationPage-JPWZz7Kg.mjs → ListConfigurationPage-C_FCilGf.mjs} +2 -2
  26. package/dist/_chunks/{ListConfigurationPage-JPWZz7Kg.mjs.map → ListConfigurationPage-C_FCilGf.mjs.map} +1 -1
  27. package/dist/_chunks/{ListConfigurationPage-DxWpeZrO.js → ListConfigurationPage-DE7NESsr.js} +2 -2
  28. package/dist/_chunks/{ListConfigurationPage-DxWpeZrO.js.map → ListConfigurationPage-DE7NESsr.js.map} +1 -1
  29. package/dist/_chunks/{ListViewPage-DSK3f0ST.mjs → ListViewPage-B6Ut2BH0.mjs} +16 -5
  30. package/dist/_chunks/{ListViewPage-DSK3f0ST.mjs.map → ListViewPage-B6Ut2BH0.mjs.map} +1 -1
  31. package/dist/_chunks/{ListViewPage-CIQekSFz.js → ListViewPage-C7p0PteR.js} +16 -5
  32. package/dist/_chunks/{ListViewPage-CIQekSFz.js.map → ListViewPage-C7p0PteR.js.map} +1 -1
  33. package/dist/_chunks/{NoContentTypePage-C5cxKvC2.js → NoContentTypePage-BN-8niig.js} +2 -2
  34. package/dist/_chunks/{NoContentTypePage-C5cxKvC2.js.map → NoContentTypePage-BN-8niig.js.map} +1 -1
  35. package/dist/_chunks/{NoContentTypePage-D99LU1YP.mjs → NoContentTypePage-rR7QwWP5.mjs} +2 -2
  36. package/dist/_chunks/{NoContentTypePage-D99LU1YP.mjs.map → NoContentTypePage-rR7QwWP5.mjs.map} +1 -1
  37. package/dist/_chunks/{NoPermissionsPage-Oy4tmUrW.js → NoPermissionsPage-Bw3b0OQm.js} +2 -2
  38. package/dist/_chunks/{NoPermissionsPage-Oy4tmUrW.js.map → NoPermissionsPage-Bw3b0OQm.js.map} +1 -1
  39. package/dist/_chunks/{NoPermissionsPage-DBrBw-0y.mjs → NoPermissionsPage-CGUgxmce.mjs} +2 -2
  40. package/dist/_chunks/{NoPermissionsPage-DBrBw-0y.mjs.map → NoPermissionsPage-CGUgxmce.mjs.map} +1 -1
  41. package/dist/_chunks/Preview-CICG4cRf.js +307 -0
  42. package/dist/_chunks/Preview-CICG4cRf.js.map +1 -0
  43. package/dist/_chunks/Preview-_gomrUna.mjs +288 -0
  44. package/dist/_chunks/Preview-_gomrUna.mjs.map +1 -0
  45. package/dist/_chunks/{Relations-BBmhcWFV.mjs → Relations-BEvinUkU.mjs} +6 -3
  46. package/dist/_chunks/Relations-BEvinUkU.mjs.map +1 -0
  47. package/dist/_chunks/{Relations-eG-9p_qS.js → Relations-uyLoal2t.js} +6 -3
  48. package/dist/_chunks/Relations-uyLoal2t.js.map +1 -0
  49. package/dist/_chunks/{en-Bm0D0IWz.js → en-CHOp_xJv.js} +11 -2
  50. package/dist/_chunks/{en-Bm0D0IWz.js.map → en-CHOp_xJv.js.map} +1 -1
  51. package/dist/_chunks/{en-DKV44jRb.mjs → en-D_BMf0hT.mjs} +11 -2
  52. package/dist/_chunks/{en-DKV44jRb.mjs.map → en-D_BMf0hT.mjs.map} +1 -1
  53. package/dist/_chunks/{es-EUonQTon.js → es-9K52xZIr.js} +2 -2
  54. package/dist/_chunks/{ja-CcFe8diO.js.map → es-9K52xZIr.js.map} +1 -1
  55. package/dist/_chunks/{es-CeXiYflN.mjs → es-D34tqjMw.mjs} +2 -2
  56. package/dist/_chunks/{es-CeXiYflN.mjs.map → es-D34tqjMw.mjs.map} +1 -1
  57. package/dist/_chunks/{fr-CD9VFbPM.mjs → fr--pg5jUbt.mjs} +13 -3
  58. package/dist/_chunks/{fr-CD9VFbPM.mjs.map → fr--pg5jUbt.mjs.map} +1 -1
  59. package/dist/_chunks/{fr-B7kGGg3E.js → fr-B2Kyv8Z9.js} +13 -3
  60. package/dist/_chunks/{fr-B7kGGg3E.js.map → fr-B2Kyv8Z9.js.map} +1 -1
  61. package/dist/_chunks/{index-BrUzbQ30.mjs → index-BagcPV6I.mjs} +94 -20
  62. package/dist/_chunks/index-BagcPV6I.mjs.map +1 -0
  63. package/dist/_chunks/{index-BIWDoFLK.js → index-D_AvCmmG.js} +91 -17
  64. package/dist/_chunks/index-D_AvCmmG.js.map +1 -0
  65. package/dist/_chunks/{ja-CcFe8diO.js → ja-7sfIbjxE.js} +2 -2
  66. package/dist/_chunks/{es-EUonQTon.js.map → ja-7sfIbjxE.js.map} +1 -1
  67. package/dist/_chunks/{ja-CtsUxOvk.mjs → ja-BHqhDq4V.mjs} +2 -2
  68. package/dist/_chunks/{ja-CtsUxOvk.mjs.map → ja-BHqhDq4V.mjs.map} +1 -1
  69. package/dist/_chunks/{layout-_5-cXs34.mjs → layout-DKEX3X49.mjs} +3 -3
  70. package/dist/_chunks/{layout-_5-cXs34.mjs.map → layout-DKEX3X49.mjs.map} +1 -1
  71. package/dist/_chunks/{layout-lMc9i1-Z.js → layout-Dk0odfYR.js} +3 -3
  72. package/dist/_chunks/{layout-lMc9i1-Z.js.map → layout-Dk0odfYR.js.map} +1 -1
  73. package/dist/_chunks/{relations-BRHithi8.js → relations-C312DwGU.js} +6 -3
  74. package/dist/_chunks/relations-C312DwGU.js.map +1 -0
  75. package/dist/_chunks/{relations-B_VLk-DD.mjs → relations-DDoMdwk6.mjs} +6 -3
  76. package/dist/_chunks/relations-DDoMdwk6.mjs.map +1 -0
  77. package/dist/admin/index.js +1 -1
  78. package/dist/admin/index.mjs +4 -4
  79. package/dist/admin/src/pages/EditView/EditViewPage.d.ts +9 -1
  80. package/dist/admin/src/preview/components/PreviewContent.d.ts +2 -0
  81. package/dist/admin/src/preview/components/PreviewHeader.d.ts +2 -0
  82. package/dist/admin/src/preview/components/PreviewSidePanel.d.ts +3 -0
  83. package/dist/admin/src/preview/index.d.ts +1 -1
  84. package/dist/admin/src/preview/pages/Preview.d.ts +11 -0
  85. package/dist/admin/src/preview/routes.d.ts +3 -0
  86. package/dist/admin/src/preview/services/preview.d.ts +3 -0
  87. package/dist/server/index.js +64 -10
  88. package/dist/server/index.js.map +1 -1
  89. package/dist/server/index.mjs +64 -10
  90. package/dist/server/index.mjs.map +1 -1
  91. package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
  92. package/dist/server/src/preview/controllers/preview.d.ts +6 -2
  93. package/dist/server/src/preview/controllers/preview.d.ts.map +1 -1
  94. package/dist/server/src/preview/controllers/validation/preview.d.ts +6 -0
  95. package/dist/server/src/preview/controllers/validation/preview.d.ts.map +1 -0
  96. package/dist/server/src/preview/services/index.d.ts +5 -1
  97. package/dist/server/src/preview/services/index.d.ts.map +1 -1
  98. package/dist/server/src/preview/services/preview.d.ts +7 -1
  99. package/dist/server/src/preview/services/preview.d.ts.map +1 -1
  100. package/dist/server/src/preview/utils.d.ts +5 -1
  101. package/dist/server/src/preview/utils.d.ts.map +1 -1
  102. package/dist/shared/contracts/index.d.ts +1 -0
  103. package/dist/shared/contracts/index.d.ts.map +1 -1
  104. package/dist/shared/contracts/preview.d.ts +27 -0
  105. package/dist/shared/contracts/preview.d.ts.map +1 -0
  106. package/dist/shared/index.js +4 -0
  107. package/dist/shared/index.js.map +1 -1
  108. package/dist/shared/index.mjs +4 -0
  109. package/dist/shared/index.mjs.map +1 -1
  110. package/package.json +7 -7
  111. package/dist/_chunks/EditViewPage-C4iTxUPU.js.map +0 -1
  112. package/dist/_chunks/EditViewPage-CiwVPMaK.mjs.map +0 -1
  113. package/dist/_chunks/Field-DIjL1b5d.mjs.map +0 -1
  114. package/dist/_chunks/Field-DhXEK8y1.js.map +0 -1
  115. package/dist/_chunks/History-BLCCNgCt.js.map +0 -1
  116. package/dist/_chunks/History-D-99Wh30.mjs.map +0 -1
  117. package/dist/_chunks/Relations-BBmhcWFV.mjs.map +0 -1
  118. package/dist/_chunks/Relations-eG-9p_qS.js.map +0 -1
  119. package/dist/_chunks/index-BIWDoFLK.js.map +0 -1
  120. package/dist/_chunks/index-BrUzbQ30.mjs.map +0 -1
  121. package/dist/_chunks/relations-BRHithi8.js.map +0 -1
  122. package/dist/_chunks/relations-B_VLk-DD.mjs.map +0 -1
@@ -1,4 +1,4 @@
1
1
  declare const previewAdmin: {
2
- bootstrap(app: Pick<import("@strapi/admin/strapi-admin").StrapiApp, "getPlugin" | "addSettingsLink" | "addSettingsLinks" | "registerHook">): {} | undefined;
2
+ bootstrap(app: Pick<import("@strapi/admin/strapi-admin").StrapiApp, "getPlugin" | "addSettingsLink" | "addSettingsLinks" | "registerHook">): void;
3
3
  };
4
4
  export { previewAdmin };
@@ -0,0 +1,11 @@
1
+ import { type UseDocument } from '../../hooks/useDocument';
2
+ interface PreviewContextValue {
3
+ url: string;
4
+ mainField: string;
5
+ document: NonNullable<ReturnType<UseDocument>['document']>;
6
+ meta: NonNullable<ReturnType<UseDocument>['meta']>;
7
+ schema: NonNullable<ReturnType<UseDocument>['schema']>;
8
+ }
9
+ declare const usePreviewContext: <Selected>(consumerName: string, selector: (value: PreviewContextValue) => Selected) => Selected;
10
+ declare const ProtectedPreviewPage: () => import("react/jsx-runtime").JSX.Element;
11
+ export { ProtectedPreviewPage, usePreviewContext };
@@ -0,0 +1,3 @@
1
+ import type { PathRouteProps } from 'react-router-dom';
2
+ declare const routes: PathRouteProps[];
3
+ export { routes };
@@ -0,0 +1,3 @@
1
+ import { GetPreviewUrl } from '../../../../shared/contracts/preview';
2
+ declare const useGetPreviewUrlQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<GetPreviewUrl.Request, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "ComponentConfiguration" | "ContentTypesConfiguration" | "ContentTypeSettings" | "Document" | "InitialData" | "HistoryVersion" | "Relations" | "UidAvailability", GetPreviewUrl.Response, "adminApi">>;
3
+ export { useGetPreviewUrlQuery };
@@ -617,15 +617,19 @@ const createLifecyclesService = ({ strapi: strapi2 }) => {
617
617
  });
618
618
  return result;
619
619
  });
620
- state.deleteExpiredJob = nodeSchedule.scheduleJob("0 0 * * *", () => {
620
+ state.deleteExpiredJob = nodeSchedule.scheduleJob("historyDaily", "0 0 * * *", () => {
621
621
  const retentionDaysInMilliseconds = serviceUtils.getRetentionDays() * 24 * 60 * 60 * 1e3;
622
622
  const expirationDate = new Date(Date.now() - retentionDaysInMilliseconds);
623
623
  strapi2.db.query(HISTORY_VERSION_UID).deleteMany({
624
624
  where: {
625
625
  created_at: {
626
- $lt: expirationDate.toISOString()
626
+ $lt: expirationDate
627
627
  }
628
628
  }
629
+ }).catch((error) => {
630
+ if (error instanceof Error) {
631
+ strapi2.log.error("Error deleting expired history versions", error.message);
632
+ }
629
633
  });
630
634
  });
631
635
  state.isInitialized = true;
@@ -752,7 +756,7 @@ const previewRouter = {
752
756
  method: "GET",
753
757
  info,
754
758
  path: "/preview/url/:contentType",
755
- handler: "preview.getPreviewURL",
759
+ handler: "preview.getPreviewUrl",
756
760
  config: {
757
761
  policies: ["admin::isAuthenticatedAdmin"]
758
762
  }
@@ -762,12 +766,52 @@ const previewRouter = {
762
766
  const routes$1 = {
763
767
  preview: previewRouter
764
768
  };
769
+ function getService(strapi2, name) {
770
+ return strapi2.service(`plugin::content-manager.${name}`);
771
+ }
772
+ const getPreviewUrlSchema = yup__namespace.object().shape({
773
+ // Will be undefined for single types
774
+ documentId: yup__namespace.string(),
775
+ locale: yup__namespace.string().nullable(),
776
+ status: yup__namespace.string()
777
+ }).required();
778
+ const validatePreviewUrl = async (strapi2, uid2, params) => {
779
+ await strapiUtils.validateYupSchema(getPreviewUrlSchema)(params);
780
+ const newParams = fp.pick(["documentId", "locale", "status"], params);
781
+ const model = strapi2.getModel(uid2);
782
+ if (!model || model.modelType !== "contentType") {
783
+ throw new strapiUtils.errors.ValidationError("Invalid content type");
784
+ }
785
+ const isSingleType = model?.kind === "singleType";
786
+ if (!isSingleType && !params.documentId) {
787
+ throw new strapiUtils.errors.ValidationError("documentId is required for Collection Types");
788
+ }
789
+ if (isSingleType) {
790
+ const doc = await strapi2.documents(uid2).findFirst();
791
+ if (!doc) {
792
+ throw new strapiUtils.errors.NotFoundError("Document not found");
793
+ }
794
+ newParams.documentId = doc?.documentId;
795
+ }
796
+ return newParams;
797
+ };
765
798
  const createPreviewController = () => {
766
799
  return {
767
- async getPreviewURL(ctx) {
768
- ctx.request;
800
+ /**
801
+ * Transforms an entry into a preview URL, so that it can be previewed
802
+ * in the Content Manager.
803
+ */
804
+ async getPreviewUrl(ctx) {
805
+ const uid2 = ctx.params.contentType;
806
+ const query = ctx.request.query;
807
+ const params = await validatePreviewUrl(strapi, uid2, query);
808
+ const previewService = getService(strapi, "preview");
809
+ const url = await previewService.getPreviewUrl(uid2, params);
810
+ if (!url) {
811
+ ctx.status = 204;
812
+ }
769
813
  return {
770
- data: { url: "" }
814
+ data: { url }
771
815
  };
772
816
  }
773
817
  };
@@ -779,7 +823,20 @@ const controllers$1 = {
779
823
  * passing a controller factory as the value, instead of a controller object directly
780
824
  */
781
825
  };
782
- const createPreviewService = () => {
826
+ const createPreviewService = ({ strapi: strapi2 }) => {
827
+ const config = getService(strapi2, "preview-config");
828
+ return {
829
+ async getPreviewUrl(uid2, params) {
830
+ const handler = config.getPreviewHandler();
831
+ try {
832
+ return handler(uid2, params);
833
+ } catch (error) {
834
+ strapi2.log.error(`Failed to get preview URL: ${error}`);
835
+ throw new strapiUtils.errors.ApplicationError("Failed to get preview URL");
836
+ }
837
+ return;
838
+ }
839
+ };
783
840
  };
784
841
  const createPreviewConfigService = ({ strapi: strapi2 }) => {
785
842
  return {
@@ -823,9 +880,6 @@ const services$1 = {
823
880
  preview: createPreviewService,
824
881
  "preview-config": createPreviewConfigService
825
882
  };
826
- function getService(strapi2, name) {
827
- return strapi2.service(`plugin::content-manager.${name}`);
828
- }
829
883
  const getFeature = () => {
830
884
  if (!strapi.features.future.isEnabled(FEATURE_ID)) {
831
885
  return {};