@strapi/content-manager 0.0.0-next.840550dc97a3782302ddf918d3a0d07e59dd11eb → 0.0.0-next.8414b837972392b1d362ae53b86b5da1eb2ad05c
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.
- package/dist/_chunks/CardDragPreview-C0QyJgRA.js.map +1 -1
- package/dist/_chunks/CardDragPreview-DOxamsuj.mjs.map +1 -1
- package/dist/_chunks/{ComponentConfigurationPage-gsCd80MU.js → ComponentConfigurationPage-BTR_hQow.js} +4 -5
- package/dist/_chunks/{ComponentConfigurationPage-gsCd80MU.js.map → ComponentConfigurationPage-BTR_hQow.js.map} +1 -1
- package/dist/_chunks/{ComponentConfigurationPage-CIjXcRAB.mjs → ComponentConfigurationPage-bLQr82ce.mjs} +3 -3
- package/dist/_chunks/{ComponentConfigurationPage-CIjXcRAB.mjs.map → ComponentConfigurationPage-bLQr82ce.mjs.map} +1 -1
- package/dist/_chunks/{ComponentIcon-BXdiCGQp.js → ComponentIcon-CRbtQEUV.js} +2 -3
- package/dist/_chunks/{ComponentIcon-BXdiCGQp.js.map → ComponentIcon-CRbtQEUV.js.map} +1 -1
- package/dist/_chunks/ComponentIcon-u4bIXTFY.mjs.map +1 -1
- package/dist/_chunks/{EditConfigurationPage-BglmD_BF.mjs → EditConfigurationPage-BhRSnUsL.mjs} +3 -3
- package/dist/_chunks/{EditConfigurationPage-BglmD_BF.mjs.map → EditConfigurationPage-BhRSnUsL.mjs.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-DHDQKBzw.js → EditConfigurationPage-z39Wv3E6.js} +4 -5
- package/dist/_chunks/{EditConfigurationPage-DHDQKBzw.js.map → EditConfigurationPage-z39Wv3E6.js.map} +1 -1
- package/dist/_chunks/{EditViewPage-CiwVPMaK.mjs → EditViewPage-BCjNxNlY.mjs} +38 -8
- package/dist/_chunks/EditViewPage-BCjNxNlY.mjs.map +1 -0
- package/dist/_chunks/{EditViewPage-C4iTxUPU.js → EditViewPage-wujOq90c.js} +38 -9
- package/dist/_chunks/EditViewPage-wujOq90c.js.map +1 -0
- package/dist/_chunks/{Field-DhXEK8y1.js → Field-B5QXnctJ.js} +151 -72
- package/dist/_chunks/Field-B5QXnctJ.js.map +1 -0
- package/dist/_chunks/{Field-DIjL1b5d.mjs → Field-Byr3mPTl.mjs} +149 -70
- package/dist/_chunks/Field-Byr3mPTl.mjs.map +1 -0
- package/dist/_chunks/FieldTypeIcon-CMlNO8PE.mjs.map +1 -1
- package/dist/_chunks/FieldTypeIcon-Dnwq_IRF.js.map +1 -1
- package/dist/_chunks/{Form-CmNesrvR.mjs → Form-BZgvE8C8.mjs} +3 -3
- package/dist/_chunks/{Form-CmNesrvR.mjs.map → Form-BZgvE8C8.mjs.map} +1 -1
- package/dist/_chunks/{Form-CwmJ4sWe.js → Form-D7mexvm3.js} +5 -6
- package/dist/_chunks/{Form-CwmJ4sWe.js.map → Form-D7mexvm3.js.map} +1 -1
- package/dist/_chunks/{History-D-99Wh30.mjs → History-CqNgxkqK.mjs} +22 -92
- package/dist/_chunks/History-CqNgxkqK.mjs.map +1 -0
- package/dist/_chunks/{History-BLCCNgCt.js → History-DYl2A8Z_.js} +22 -93
- package/dist/_chunks/History-DYl2A8Z_.js.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-DxWpeZrO.js → ListConfigurationPage-BXnu_OoY.js} +6 -6
- package/dist/_chunks/ListConfigurationPage-BXnu_OoY.js.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-JPWZz7Kg.mjs → ListConfigurationPage-BbQjzKkQ.mjs} +6 -5
- package/dist/_chunks/ListConfigurationPage-BbQjzKkQ.mjs.map +1 -0
- package/dist/_chunks/{ListViewPage-CIQekSFz.js → ListViewPage-BtSi8C1l.js} +64 -53
- package/dist/_chunks/ListViewPage-BtSi8C1l.js.map +1 -0
- package/dist/_chunks/{ListViewPage-DSK3f0ST.mjs → ListViewPage-D4ofkbjR.mjs} +63 -51
- package/dist/_chunks/ListViewPage-D4ofkbjR.mjs.map +1 -0
- package/dist/_chunks/{NoContentTypePage-C5cxKvC2.js → NoContentTypePage-CitJeOq4.js} +2 -2
- package/dist/_chunks/{NoContentTypePage-C5cxKvC2.js.map → NoContentTypePage-CitJeOq4.js.map} +1 -1
- package/dist/_chunks/{NoContentTypePage-D99LU1YP.mjs → NoContentTypePage-DyUx5mXh.mjs} +2 -2
- package/dist/_chunks/{NoContentTypePage-D99LU1YP.mjs.map → NoContentTypePage-DyUx5mXh.mjs.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-DBrBw-0y.mjs → NoPermissionsPage-DhIiyWkk.mjs} +2 -2
- package/dist/_chunks/{NoPermissionsPage-DBrBw-0y.mjs.map → NoPermissionsPage-DhIiyWkk.mjs.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-Oy4tmUrW.js → NoPermissionsPage-DzgWz0M-.js} +2 -2
- package/dist/_chunks/{NoPermissionsPage-Oy4tmUrW.js.map → NoPermissionsPage-DzgWz0M-.js.map} +1 -1
- package/dist/_chunks/Preview-BaYGJ0nb.mjs +293 -0
- package/dist/_chunks/Preview-BaYGJ0nb.mjs.map +1 -0
- package/dist/_chunks/Preview-DfNx8Ke-.js +311 -0
- package/dist/_chunks/Preview-DfNx8Ke-.js.map +1 -0
- package/dist/_chunks/{Relations-BBmhcWFV.mjs → Relations-DM2yUTST.mjs} +9 -8
- package/dist/_chunks/Relations-DM2yUTST.mjs.map +1 -0
- package/dist/_chunks/{Relations-eG-9p_qS.js → Relations-DuKCaXrv.js} +10 -10
- package/dist/_chunks/Relations-DuKCaXrv.js.map +1 -0
- package/dist/_chunks/{en-Bm0D0IWz.js → en-BK8Xyl5I.js} +16 -4
- package/dist/_chunks/{en-Bm0D0IWz.js.map → en-BK8Xyl5I.js.map} +1 -1
- package/dist/_chunks/{en-DKV44jRb.mjs → en-Dtk_ot79.mjs} +16 -4
- package/dist/_chunks/{en-DKV44jRb.mjs.map → en-Dtk_ot79.mjs.map} +1 -1
- package/dist/_chunks/{es-EUonQTon.js → es-9K52xZIr.js} +2 -2
- package/dist/_chunks/{ja-CcFe8diO.js.map → es-9K52xZIr.js.map} +1 -1
- package/dist/_chunks/{es-CeXiYflN.mjs → es-D34tqjMw.mjs} +2 -2
- package/dist/_chunks/{es-CeXiYflN.mjs.map → es-D34tqjMw.mjs.map} +1 -1
- package/dist/_chunks/{fr-CD9VFbPM.mjs → fr--pg5jUbt.mjs} +13 -3
- package/dist/_chunks/{fr-CD9VFbPM.mjs.map → fr--pg5jUbt.mjs.map} +1 -1
- package/dist/_chunks/{fr-B7kGGg3E.js → fr-B2Kyv8Z9.js} +13 -3
- package/dist/_chunks/{fr-B7kGGg3E.js.map → fr-B2Kyv8Z9.js.map} +1 -1
- package/dist/_chunks/hooks-BAaaKPS_.js.map +1 -1
- package/dist/_chunks/{index-BIWDoFLK.js → index-BUWEmX8m.js} +324 -181
- package/dist/_chunks/index-BUWEmX8m.js.map +1 -0
- package/dist/_chunks/{index-BrUzbQ30.mjs → index-DVAIIsOs.mjs} +327 -183
- package/dist/_chunks/index-DVAIIsOs.mjs.map +1 -0
- package/dist/_chunks/{ja-CcFe8diO.js → ja-7sfIbjxE.js} +2 -2
- package/dist/_chunks/{es-EUonQTon.js.map → ja-7sfIbjxE.js.map} +1 -1
- package/dist/_chunks/{ja-CtsUxOvk.mjs → ja-BHqhDq4V.mjs} +2 -2
- package/dist/_chunks/{ja-CtsUxOvk.mjs.map → ja-BHqhDq4V.mjs.map} +1 -1
- package/dist/_chunks/{layout-_5-cXs34.mjs → layout-Bxsv5mP7.mjs} +4 -4
- package/dist/_chunks/{layout-_5-cXs34.mjs.map → layout-Bxsv5mP7.mjs.map} +1 -1
- package/dist/_chunks/{layout-lMc9i1-Z.js → layout-C3fN7Ejz.js} +5 -6
- package/dist/_chunks/{layout-lMc9i1-Z.js.map → layout-C3fN7Ejz.js.map} +1 -1
- package/dist/_chunks/objects-BcXOv6_9.js.map +1 -1
- package/dist/_chunks/objects-D6yBsdmx.mjs.map +1 -1
- package/dist/_chunks/{relations-BRHithi8.js → relations-BPZKAoEY.js} +6 -3
- package/dist/_chunks/relations-BPZKAoEY.js.map +1 -0
- package/dist/_chunks/{relations-B_VLk-DD.mjs → relations-o3pPhzY4.mjs} +6 -3
- package/dist/_chunks/relations-o3pPhzY4.mjs.map +1 -0
- package/dist/_chunks/useDebounce-CtcjDB3L.js.map +1 -1
- package/dist/_chunks/useDebounce-DmuSJIF3.mjs.map +1 -1
- package/dist/_chunks/{useDragAndDrop-J0TUUbR6.js → useDragAndDrop-BMtgCYzL.js} +5 -9
- package/dist/_chunks/{useDragAndDrop-J0TUUbR6.js.map → useDragAndDrop-BMtgCYzL.js.map} +1 -1
- package/dist/_chunks/{useDragAndDrop-DdHgKsqq.mjs → useDragAndDrop-DJ6jqvZN.mjs} +4 -7
- package/dist/_chunks/{useDragAndDrop-DdHgKsqq.mjs.map → useDragAndDrop-DJ6jqvZN.mjs.map} +1 -1
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +4 -4
- package/dist/admin/src/content-manager.d.ts +3 -2
- package/dist/admin/src/pages/EditView/EditViewPage.d.ts +9 -1
- package/dist/admin/src/pages/EditView/components/DocumentActions.d.ts +1 -1
- package/dist/admin/src/pages/EditView/components/DocumentStatus.d.ts +2 -2
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.d.ts +7 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/utils/prismLanguages.d.ts +49 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/utils/constants.d.ts +1 -0
- package/dist/admin/src/preview/components/PreviewContent.d.ts +2 -0
- package/dist/admin/src/preview/components/PreviewHeader.d.ts +2 -0
- package/dist/admin/src/preview/components/PreviewSidePanel.d.ts +3 -0
- package/dist/admin/src/preview/index.d.ts +1 -1
- package/dist/admin/src/preview/pages/Preview.d.ts +11 -0
- package/dist/admin/src/preview/routes.d.ts +3 -0
- package/dist/admin/src/preview/services/preview.d.ts +3 -0
- package/dist/admin/src/router.d.ts +1 -1
- package/dist/admin/src/services/documents.d.ts +0 -3
- package/dist/server/index.js +138 -59
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +138 -58
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
- package/dist/server/src/preview/controllers/preview.d.ts +6 -2
- package/dist/server/src/preview/controllers/preview.d.ts.map +1 -1
- package/dist/server/src/preview/controllers/validation/preview.d.ts +6 -0
- package/dist/server/src/preview/controllers/validation/preview.d.ts.map +1 -0
- package/dist/server/src/preview/index.d.ts.map +1 -1
- package/dist/server/src/preview/services/index.d.ts +6 -1
- package/dist/server/src/preview/services/index.d.ts.map +1 -1
- package/dist/server/src/preview/services/preview-config.d.ts +2 -0
- package/dist/server/src/preview/services/preview-config.d.ts.map +1 -1
- package/dist/server/src/preview/services/preview.d.ts +7 -1
- package/dist/server/src/preview/services/preview.d.ts.map +1 -1
- package/dist/server/src/preview/utils.d.ts +6 -1
- package/dist/server/src/preview/utils.d.ts.map +1 -1
- package/dist/server/src/register.d.ts.map +1 -1
- package/dist/server/src/services/document-manager.d.ts.map +1 -1
- package/dist/shared/contracts/index.d.ts +1 -0
- package/dist/shared/contracts/index.d.ts.map +1 -1
- package/dist/shared/contracts/preview.d.ts +27 -0
- package/dist/shared/contracts/preview.d.ts.map +1 -0
- package/dist/shared/index.js +4 -0
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/index.mjs +4 -0
- package/dist/shared/index.mjs.map +1 -1
- package/package.json +13 -11
- package/dist/_chunks/EditViewPage-C4iTxUPU.js.map +0 -1
- package/dist/_chunks/EditViewPage-CiwVPMaK.mjs.map +0 -1
- package/dist/_chunks/Field-DIjL1b5d.mjs.map +0 -1
- package/dist/_chunks/Field-DhXEK8y1.js.map +0 -1
- package/dist/_chunks/History-BLCCNgCt.js.map +0 -1
- package/dist/_chunks/History-D-99Wh30.mjs.map +0 -1
- package/dist/_chunks/ListConfigurationPage-DxWpeZrO.js.map +0 -1
- package/dist/_chunks/ListConfigurationPage-JPWZz7Kg.mjs.map +0 -1
- package/dist/_chunks/ListViewPage-CIQekSFz.js.map +0 -1
- package/dist/_chunks/ListViewPage-DSK3f0ST.mjs.map +0 -1
- package/dist/_chunks/Relations-BBmhcWFV.mjs.map +0 -1
- package/dist/_chunks/Relations-eG-9p_qS.js.map +0 -1
- package/dist/_chunks/index-BIWDoFLK.js.map +0 -1
- package/dist/_chunks/index-BrUzbQ30.mjs.map +0 -1
- package/dist/_chunks/relations-BRHithi8.js.map +0 -1
- package/dist/_chunks/relations-B_VLk-DD.mjs.map +0 -1
- package/dist/admin/src/preview/constants.d.ts +0 -1
- package/dist/server/src/preview/constants.d.ts +0 -2
- package/dist/server/src/preview/constants.d.ts.map +0 -1
package/dist/server/index.mjs
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
import strapiUtils, { validateYupSchema, errors, async, contentTypes as contentTypes$1, yup as yup$1, validateYupSchemaSync, policy, traverse, setCreatorFields, isOperatorOfType, relations as relations$1, traverseEntity, pagination } from "@strapi/utils";
|
2
|
-
import { pick, omit, difference, castArray, intersection, pipe, propOr, isEqual, isEmpty, set, isNil as isNil$1, has, prop, assoc, mapValues, flow, uniq, uniqBy, concat, getOr, propEq, merge, groupBy } from "lodash/fp";
|
2
|
+
import { pick, omit, difference, castArray, mergeWith, intersection, pipe, propOr, isEqual, isEmpty, set, isNil as isNil$1, has, prop, assoc, mapValues, flow, uniq, uniqBy, concat, getOr, propEq, merge, groupBy } from "lodash/fp";
|
3
3
|
import "@strapi/types";
|
4
4
|
import * as yup from "yup";
|
5
5
|
import { scheduleJob } from "node-schedule";
|
@@ -141,8 +141,7 @@ const createServiceUtils = ({ strapi: strapi2 }) => {
|
|
141
141
|
};
|
142
142
|
const getRelationRestoreValue = async (versionRelationData, attribute) => {
|
143
143
|
if (Array.isArray(versionRelationData)) {
|
144
|
-
if (versionRelationData.length === 0)
|
145
|
-
return versionRelationData;
|
144
|
+
if (versionRelationData.length === 0) return versionRelationData;
|
146
145
|
const existingAndMissingRelations = await Promise.all(
|
147
146
|
versionRelationData.map((relation) => {
|
148
147
|
return strapi2.documents(attribute.target).findOne({
|
@@ -177,8 +176,7 @@ const createServiceUtils = ({ strapi: strapi2 }) => {
|
|
177
176
|
const getDefaultLocale = async () => localesService ? localesService.getDefaultLocale() : null;
|
178
177
|
const isLocalizedContentType = (model) => i18nContentTypeService ? i18nContentTypeService.isLocalizedContentType(model) : false;
|
179
178
|
const getLocaleDictionary = async () => {
|
180
|
-
if (!localesService)
|
181
|
-
return {};
|
179
|
+
if (!localesService) return {};
|
182
180
|
const locales = await localesService.find() || [];
|
183
181
|
return locales.reduce(
|
184
182
|
(acc, locale) => {
|
@@ -591,15 +589,19 @@ const createLifecyclesService = ({ strapi: strapi2 }) => {
|
|
591
589
|
});
|
592
590
|
return result;
|
593
591
|
});
|
594
|
-
state.deleteExpiredJob = scheduleJob("0 0 * * *", () => {
|
592
|
+
state.deleteExpiredJob = scheduleJob("historyDaily", "0 0 * * *", () => {
|
595
593
|
const retentionDaysInMilliseconds = serviceUtils.getRetentionDays() * 24 * 60 * 60 * 1e3;
|
596
594
|
const expirationDate = new Date(Date.now() - retentionDaysInMilliseconds);
|
597
595
|
strapi2.db.query(HISTORY_VERSION_UID).deleteMany({
|
598
596
|
where: {
|
599
597
|
created_at: {
|
600
|
-
$lt: expirationDate
|
598
|
+
$lt: expirationDate
|
601
599
|
}
|
602
600
|
}
|
601
|
+
}).catch((error) => {
|
602
|
+
if (error instanceof Error) {
|
603
|
+
strapi2.log.error("Error deleting expired history versions", error.message);
|
604
|
+
}
|
603
605
|
});
|
604
606
|
});
|
605
607
|
state.isInitialized = true;
|
@@ -710,14 +712,6 @@ const getFeature$1 = () => {
|
|
710
712
|
};
|
711
713
|
};
|
712
714
|
const history = getFeature$1();
|
713
|
-
const register = async ({ strapi: strapi2 }) => {
|
714
|
-
await history.register?.({ strapi: strapi2 });
|
715
|
-
};
|
716
|
-
const ALLOWED_WEBHOOK_EVENTS = {
|
717
|
-
ENTRY_PUBLISH: "entry.publish",
|
718
|
-
ENTRY_UNPUBLISH: "entry.unpublish"
|
719
|
-
};
|
720
|
-
const FEATURE_ID = "preview";
|
721
715
|
const info = { pluginName: "content-manager", type: "admin" };
|
722
716
|
const previewRouter = {
|
723
717
|
type: "admin",
|
@@ -726,7 +720,7 @@ const previewRouter = {
|
|
726
720
|
method: "GET",
|
727
721
|
info,
|
728
722
|
path: "/preview/url/:contentType",
|
729
|
-
handler: "preview.
|
723
|
+
handler: "preview.getPreviewUrl",
|
730
724
|
config: {
|
731
725
|
policies: ["admin::isAuthenticatedAdmin"]
|
732
726
|
}
|
@@ -736,12 +730,56 @@ const previewRouter = {
|
|
736
730
|
const routes$1 = {
|
737
731
|
preview: previewRouter
|
738
732
|
};
|
733
|
+
function getService(strapi2, name) {
|
734
|
+
return strapi2.service(`plugin::content-manager.${name}`);
|
735
|
+
}
|
736
|
+
const getPreviewUrlSchema = yup.object().shape({
|
737
|
+
// Will be undefined for single types
|
738
|
+
documentId: yup.string(),
|
739
|
+
locale: yup.string().nullable(),
|
740
|
+
status: yup.string()
|
741
|
+
}).required();
|
742
|
+
const validatePreviewUrl = async (strapi2, uid2, params) => {
|
743
|
+
await validateYupSchema(getPreviewUrlSchema)(params);
|
744
|
+
const newParams = pick(["documentId", "locale", "status"], params);
|
745
|
+
const model = strapi2.getModel(uid2);
|
746
|
+
if (!model || model.modelType !== "contentType") {
|
747
|
+
throw new errors.ValidationError("Invalid content type");
|
748
|
+
}
|
749
|
+
const isSingleType = model?.kind === "singleType";
|
750
|
+
if (!isSingleType && !params.documentId) {
|
751
|
+
throw new errors.ValidationError("documentId is required for Collection Types");
|
752
|
+
}
|
753
|
+
if (isSingleType) {
|
754
|
+
const doc = await strapi2.documents(uid2).findFirst();
|
755
|
+
if (!doc) {
|
756
|
+
throw new errors.NotFoundError("Document not found");
|
757
|
+
}
|
758
|
+
newParams.documentId = doc?.documentId;
|
759
|
+
}
|
760
|
+
if (!newParams.status) {
|
761
|
+
const isDPEnabled = model?.options?.draftAndPublish;
|
762
|
+
newParams.status = isDPEnabled ? "draft" : "published";
|
763
|
+
}
|
764
|
+
return newParams;
|
765
|
+
};
|
739
766
|
const createPreviewController = () => {
|
740
767
|
return {
|
741
|
-
|
742
|
-
|
768
|
+
/**
|
769
|
+
* Transforms an entry into a preview URL, so that it can be previewed
|
770
|
+
* in the Content Manager.
|
771
|
+
*/
|
772
|
+
async getPreviewUrl(ctx) {
|
773
|
+
const uid2 = ctx.params.contentType;
|
774
|
+
const query = ctx.request.query;
|
775
|
+
const params = await validatePreviewUrl(strapi, uid2, query);
|
776
|
+
const previewService = getService(strapi, "preview");
|
777
|
+
const url = await previewService.getPreviewUrl(uid2, params);
|
778
|
+
if (!url) {
|
779
|
+
ctx.status = 204;
|
780
|
+
}
|
743
781
|
return {
|
744
|
-
data: { url
|
782
|
+
data: { url }
|
745
783
|
};
|
746
784
|
}
|
747
785
|
};
|
@@ -753,10 +791,63 @@ const controllers$1 = {
|
|
753
791
|
* passing a controller factory as the value, instead of a controller object directly
|
754
792
|
*/
|
755
793
|
};
|
756
|
-
const createPreviewService = () => {
|
794
|
+
const createPreviewService = ({ strapi: strapi2 }) => {
|
795
|
+
const config = getService(strapi2, "preview-config");
|
796
|
+
return {
|
797
|
+
async getPreviewUrl(uid2, params) {
|
798
|
+
const handler = config.getPreviewHandler();
|
799
|
+
try {
|
800
|
+
return handler(uid2, params);
|
801
|
+
} catch (error) {
|
802
|
+
strapi2.log.error(`Failed to get preview URL: ${error}`);
|
803
|
+
throw new errors.ApplicationError("Failed to get preview URL");
|
804
|
+
}
|
805
|
+
return;
|
806
|
+
}
|
807
|
+
};
|
808
|
+
};
|
809
|
+
const extendMiddlewareConfiguration = (middleware = { name: "", config: {} }) => {
|
810
|
+
const middlewares = strapi.config.get("middlewares");
|
811
|
+
const configuredMiddlewares = middlewares.map((currentMiddleware) => {
|
812
|
+
if (currentMiddleware === middleware.name) {
|
813
|
+
return middleware;
|
814
|
+
}
|
815
|
+
if (currentMiddleware.name === middleware.name) {
|
816
|
+
return mergeWith(
|
817
|
+
(objValue, srcValue) => {
|
818
|
+
if (Array.isArray(objValue)) {
|
819
|
+
return objValue.concat(srcValue);
|
820
|
+
}
|
821
|
+
return void 0;
|
822
|
+
},
|
823
|
+
currentMiddleware,
|
824
|
+
middleware
|
825
|
+
);
|
826
|
+
}
|
827
|
+
return currentMiddleware;
|
828
|
+
});
|
829
|
+
strapi.config.set("middlewares", configuredMiddlewares);
|
757
830
|
};
|
758
831
|
const createPreviewConfigService = ({ strapi: strapi2 }) => {
|
759
832
|
return {
|
833
|
+
register() {
|
834
|
+
if (!this.isEnabled()) {
|
835
|
+
return;
|
836
|
+
}
|
837
|
+
const config = strapi2.config.get("admin.preview");
|
838
|
+
if (config.config?.allowedOrigins) {
|
839
|
+
extendMiddlewareConfiguration({
|
840
|
+
name: "strapi::security",
|
841
|
+
config: {
|
842
|
+
contentSecurityPolicy: {
|
843
|
+
directives: {
|
844
|
+
"frame-src": config.config.allowedOrigins
|
845
|
+
}
|
846
|
+
}
|
847
|
+
}
|
848
|
+
});
|
849
|
+
}
|
850
|
+
},
|
760
851
|
isEnabled() {
|
761
852
|
const config = strapi2.config.get("admin.preview");
|
762
853
|
if (!config) {
|
@@ -797,18 +888,14 @@ const services$1 = {
|
|
797
888
|
preview: createPreviewService,
|
798
889
|
"preview-config": createPreviewConfigService
|
799
890
|
};
|
800
|
-
function getService(strapi2, name) {
|
801
|
-
return strapi2.service(`plugin::content-manager.${name}`);
|
802
|
-
}
|
803
891
|
const getFeature = () => {
|
804
|
-
if (!strapi.features.future.isEnabled(FEATURE_ID)) {
|
805
|
-
return {};
|
806
|
-
}
|
807
892
|
return {
|
808
|
-
|
809
|
-
console.log("Bootstrapping preview server");
|
893
|
+
register() {
|
810
894
|
const config = getService(strapi, "preview-config");
|
811
895
|
config.validate();
|
896
|
+
config.register();
|
897
|
+
},
|
898
|
+
bootstrap() {
|
812
899
|
},
|
813
900
|
routes: routes$1,
|
814
901
|
controllers: controllers$1,
|
@@ -816,6 +903,14 @@ const getFeature = () => {
|
|
816
903
|
};
|
817
904
|
};
|
818
905
|
const preview = getFeature();
|
906
|
+
const register = async ({ strapi: strapi2 }) => {
|
907
|
+
await history.register?.({ strapi: strapi2 });
|
908
|
+
await preview.register?.({ strapi: strapi2 });
|
909
|
+
};
|
910
|
+
const ALLOWED_WEBHOOK_EVENTS = {
|
911
|
+
ENTRY_PUBLISH: "entry.publish",
|
912
|
+
ENTRY_UNPUBLISH: "entry.unpublish"
|
913
|
+
};
|
819
914
|
const bootstrap = async () => {
|
820
915
|
Object.entries(ALLOWED_WEBHOOK_EVENTS).forEach(([key, value]) => {
|
821
916
|
strapi.get("webhookStore").addAllowedEvent(key, value);
|
@@ -1379,8 +1474,7 @@ const isSortable = (schema, name) => {
|
|
1379
1474
|
if (!_.has(schema.attributes, name)) {
|
1380
1475
|
return false;
|
1381
1476
|
}
|
1382
|
-
if (schema.modelType === "component" && name === "id")
|
1383
|
-
return false;
|
1477
|
+
if (schema.modelType === "component" && name === "id") return false;
|
1384
1478
|
const attribute = schema.attributes[name];
|
1385
1479
|
if (NON_SORTABLES.includes(attribute.type)) {
|
1386
1480
|
return false;
|
@@ -1525,8 +1619,7 @@ const createDefaultSettings = async (schema) => {
|
|
1525
1619
|
};
|
1526
1620
|
};
|
1527
1621
|
const syncSettings = async (configuration, schema) => {
|
1528
|
-
if (isEmpty(configuration.settings))
|
1529
|
-
return createDefaultSettings(schema);
|
1622
|
+
if (isEmpty(configuration.settings)) return createDefaultSettings(schema);
|
1530
1623
|
const defaultField = getDefaultMainField(schema);
|
1531
1624
|
const { mainField = defaultField, defaultSortBy = defaultField } = configuration.settings || {};
|
1532
1625
|
return {
|
@@ -1702,8 +1795,7 @@ const excludeNotCreatableFields = (uid2, permissionChecker2) => (body, path = []
|
|
1702
1795
|
}
|
1703
1796
|
switch (attribute.type) {
|
1704
1797
|
case "relation": {
|
1705
|
-
if (canCreate(attributePath))
|
1706
|
-
return body2;
|
1798
|
+
if (canCreate(attributePath)) return body2;
|
1707
1799
|
return set(attributePath, { set: [] }, body2);
|
1708
1800
|
}
|
1709
1801
|
case "component": {
|
@@ -1713,8 +1805,7 @@ const excludeNotCreatableFields = (uid2, permissionChecker2) => (body, path = []
|
|
1713
1805
|
]);
|
1714
1806
|
}
|
1715
1807
|
default: {
|
1716
|
-
if (canCreate(attributePath))
|
1717
|
-
return body2;
|
1808
|
+
if (canCreate(attributePath)) return body2;
|
1718
1809
|
return set(attributePath, null, body2);
|
1719
1810
|
}
|
1720
1811
|
}
|
@@ -2507,8 +2598,7 @@ const validateStatus = (sourceUid, status) => {
|
|
2507
2598
|
const sourceModel = strapi.getModel(sourceUid);
|
2508
2599
|
const isDP = contentTypes$1.hasDraftAndPublish;
|
2509
2600
|
const isSourceDP = isDP(sourceModel);
|
2510
|
-
if (!isSourceDP)
|
2511
|
-
return { status: void 0 };
|
2601
|
+
if (!isSourceDP) return { status: void 0 };
|
2512
2602
|
switch (status) {
|
2513
2603
|
case "published":
|
2514
2604
|
return { status: "published" };
|
@@ -3153,18 +3243,15 @@ async function syncMetadatas(configuration, schema) {
|
|
3153
3243
|
_.set(updatedMeta, ["list", "searchable"], false);
|
3154
3244
|
_.set(acc, [key], updatedMeta);
|
3155
3245
|
}
|
3156
|
-
if (!_.has(edit, "mainField"))
|
3157
|
-
return acc;
|
3246
|
+
if (!_.has(edit, "mainField")) return acc;
|
3158
3247
|
if (!isRelation$1(attr)) {
|
3159
3248
|
_.set(updatedMeta, "edit", _.omit(edit, ["mainField"]));
|
3160
3249
|
_.set(acc, [key], updatedMeta);
|
3161
3250
|
return acc;
|
3162
3251
|
}
|
3163
|
-
if (edit.mainField === "id")
|
3164
|
-
return acc;
|
3252
|
+
if (edit.mainField === "id") return acc;
|
3165
3253
|
const targetSchema = getTargetSchema(attr.targetModel);
|
3166
|
-
if (!targetSchema)
|
3167
|
-
return acc;
|
3254
|
+
if (!targetSchema) return acc;
|
3168
3255
|
if (!isSortable(targetSchema, edit.mainField) && !isListable(targetSchema, edit.mainField)) {
|
3169
3256
|
_.set(updatedMeta, ["edit", "mainField"], getDefaultMainField(targetSchema));
|
3170
3257
|
_.set(acc, [key], updatedMeta);
|
@@ -3209,8 +3296,7 @@ function createDefaultEditLayout(schema) {
|
|
3209
3296
|
return appendToEditLayout([], keys2, schema);
|
3210
3297
|
}
|
3211
3298
|
function syncLayouts(configuration, schema) {
|
3212
|
-
if (_.isEmpty(configuration.layouts))
|
3213
|
-
return createDefaultLayouts(schema);
|
3299
|
+
if (_.isEmpty(configuration.layouts)) return createDefaultLayouts(schema);
|
3214
3300
|
const { list = [], editRelations = [], edit = [] } = configuration.layouts || {};
|
3215
3301
|
let cleanList = list.filter((attr) => isListable(schema, attr));
|
3216
3302
|
const cleanEditRelations = editRelations.filter(
|
@@ -3221,8 +3307,7 @@ function syncLayouts(configuration, schema) {
|
|
3221
3307
|
for (const row of edit) {
|
3222
3308
|
const newRow = [];
|
3223
3309
|
for (const el of row) {
|
3224
|
-
if (!hasEditableAttribute(schema, el.name))
|
3225
|
-
continue;
|
3310
|
+
if (!hasEditableAttribute(schema, el.name)) continue;
|
3226
3311
|
const { hasFieldSize } = getService$2("field-sizes");
|
3227
3312
|
const fieldType = hasFieldSize(schema.attributes[el.name].customField) ? schema.attributes[el.name].customField : schema.attributes[el.name].type;
|
3228
3313
|
if (!isAllowedFieldSize(fieldType, el.size)) {
|
@@ -3253,8 +3338,7 @@ function syncLayouts(configuration, schema) {
|
|
3253
3338
|
};
|
3254
3339
|
}
|
3255
3340
|
const appendToEditLayout = (layout = [], keysToAppend, schema) => {
|
3256
|
-
if (keysToAppend.length === 0)
|
3257
|
-
return layout;
|
3341
|
+
if (keysToAppend.length === 0) return layout;
|
3258
3342
|
let currentRowIndex = Math.max(layout.length - 1, 0);
|
3259
3343
|
if (!layout[currentRowIndex]) {
|
3260
3344
|
layout[currentRowIndex] = [];
|
@@ -4245,8 +4329,7 @@ const documentMetadata = ({ strapi: strapi2 }) => ({
|
|
4245
4329
|
const matchStatus = status === "published" ? v.publishedAt !== null : v.publishedAt === null;
|
4246
4330
|
return matchLocale && matchStatus;
|
4247
4331
|
});
|
4248
|
-
if (!availableStatus)
|
4249
|
-
return availableStatus;
|
4332
|
+
if (!availableStatus) return availableStatus;
|
4250
4333
|
return pick(AVAILABLE_STATUS_FIELDS, availableStatus);
|
4251
4334
|
},
|
4252
4335
|
/**
|
@@ -4256,8 +4339,7 @@ const documentMetadata = ({ strapi: strapi2 }) => ({
|
|
4256
4339
|
* @returns
|
4257
4340
|
*/
|
4258
4341
|
async getManyAvailableStatus(uid2, documents) {
|
4259
|
-
if (!documents.length)
|
4260
|
-
return [];
|
4342
|
+
if (!documents.length) return [];
|
4261
4343
|
const status = documents[0].publishedAt !== null ? "published" : "draft";
|
4262
4344
|
const locale = documents[0]?.locale;
|
4263
4345
|
const otherStatus = status === "published" ? "draft" : "published";
|
@@ -4284,10 +4366,8 @@ const documentMetadata = ({ strapi: strapi2 }) => ({
|
|
4284
4366
|
} else if (otherVersion) {
|
4285
4367
|
draftVersion = otherVersion;
|
4286
4368
|
}
|
4287
|
-
if (!draftVersion)
|
4288
|
-
|
4289
|
-
if (!publishedVersion)
|
4290
|
-
return CONTENT_MANAGER_STATUS.DRAFT;
|
4369
|
+
if (!draftVersion) return CONTENT_MANAGER_STATUS.PUBLISHED;
|
4370
|
+
if (!publishedVersion) return CONTENT_MANAGER_STATUS.DRAFT;
|
4291
4371
|
const isDraftModified = getIsVersionLatestModification(draftVersion, publishedVersion);
|
4292
4372
|
return isDraftModified ? CONTENT_MANAGER_STATUS.MODIFIED : CONTENT_MANAGER_STATUS.PUBLISHED;
|
4293
4373
|
},
|