@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.js
CHANGED
@@ -10,8 +10,7 @@ const qs = require("qs");
|
|
10
10
|
const slugify = require("@sindresorhus/slugify");
|
11
11
|
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
12
12
|
function _interopNamespace(e) {
|
13
|
-
if (e && e.__esModule)
|
14
|
-
return e;
|
13
|
+
if (e && e.__esModule) return e;
|
15
14
|
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
16
15
|
if (e) {
|
17
16
|
for (const k in e) {
|
@@ -167,8 +166,7 @@ const createServiceUtils = ({ strapi: strapi2 }) => {
|
|
167
166
|
};
|
168
167
|
const getRelationRestoreValue = async (versionRelationData, attribute) => {
|
169
168
|
if (Array.isArray(versionRelationData)) {
|
170
|
-
if (versionRelationData.length === 0)
|
171
|
-
return versionRelationData;
|
169
|
+
if (versionRelationData.length === 0) return versionRelationData;
|
172
170
|
const existingAndMissingRelations = await Promise.all(
|
173
171
|
versionRelationData.map((relation) => {
|
174
172
|
return strapi2.documents(attribute.target).findOne({
|
@@ -203,8 +201,7 @@ const createServiceUtils = ({ strapi: strapi2 }) => {
|
|
203
201
|
const getDefaultLocale = async () => localesService ? localesService.getDefaultLocale() : null;
|
204
202
|
const isLocalizedContentType = (model) => i18nContentTypeService ? i18nContentTypeService.isLocalizedContentType(model) : false;
|
205
203
|
const getLocaleDictionary = async () => {
|
206
|
-
if (!localesService)
|
207
|
-
return {};
|
204
|
+
if (!localesService) return {};
|
208
205
|
const locales = await localesService.find() || [];
|
209
206
|
return locales.reduce(
|
210
207
|
(acc, locale) => {
|
@@ -617,15 +614,19 @@ const createLifecyclesService = ({ strapi: strapi2 }) => {
|
|
617
614
|
});
|
618
615
|
return result;
|
619
616
|
});
|
620
|
-
state.deleteExpiredJob = nodeSchedule.scheduleJob("0 0 * * *", () => {
|
617
|
+
state.deleteExpiredJob = nodeSchedule.scheduleJob("historyDaily", "0 0 * * *", () => {
|
621
618
|
const retentionDaysInMilliseconds = serviceUtils.getRetentionDays() * 24 * 60 * 60 * 1e3;
|
622
619
|
const expirationDate = new Date(Date.now() - retentionDaysInMilliseconds);
|
623
620
|
strapi2.db.query(HISTORY_VERSION_UID).deleteMany({
|
624
621
|
where: {
|
625
622
|
created_at: {
|
626
|
-
$lt: expirationDate
|
623
|
+
$lt: expirationDate
|
627
624
|
}
|
628
625
|
}
|
626
|
+
}).catch((error) => {
|
627
|
+
if (error instanceof Error) {
|
628
|
+
strapi2.log.error("Error deleting expired history versions", error.message);
|
629
|
+
}
|
629
630
|
});
|
630
631
|
});
|
631
632
|
state.isInitialized = true;
|
@@ -736,14 +737,6 @@ const getFeature$1 = () => {
|
|
736
737
|
};
|
737
738
|
};
|
738
739
|
const history = getFeature$1();
|
739
|
-
const register = async ({ strapi: strapi2 }) => {
|
740
|
-
await history.register?.({ strapi: strapi2 });
|
741
|
-
};
|
742
|
-
const ALLOWED_WEBHOOK_EVENTS = {
|
743
|
-
ENTRY_PUBLISH: "entry.publish",
|
744
|
-
ENTRY_UNPUBLISH: "entry.unpublish"
|
745
|
-
};
|
746
|
-
const FEATURE_ID = "preview";
|
747
740
|
const info = { pluginName: "content-manager", type: "admin" };
|
748
741
|
const previewRouter = {
|
749
742
|
type: "admin",
|
@@ -752,7 +745,7 @@ const previewRouter = {
|
|
752
745
|
method: "GET",
|
753
746
|
info,
|
754
747
|
path: "/preview/url/:contentType",
|
755
|
-
handler: "preview.
|
748
|
+
handler: "preview.getPreviewUrl",
|
756
749
|
config: {
|
757
750
|
policies: ["admin::isAuthenticatedAdmin"]
|
758
751
|
}
|
@@ -762,12 +755,56 @@ const previewRouter = {
|
|
762
755
|
const routes$1 = {
|
763
756
|
preview: previewRouter
|
764
757
|
};
|
758
|
+
function getService(strapi2, name) {
|
759
|
+
return strapi2.service(`plugin::content-manager.${name}`);
|
760
|
+
}
|
761
|
+
const getPreviewUrlSchema = yup__namespace.object().shape({
|
762
|
+
// Will be undefined for single types
|
763
|
+
documentId: yup__namespace.string(),
|
764
|
+
locale: yup__namespace.string().nullable(),
|
765
|
+
status: yup__namespace.string()
|
766
|
+
}).required();
|
767
|
+
const validatePreviewUrl = async (strapi2, uid2, params) => {
|
768
|
+
await strapiUtils.validateYupSchema(getPreviewUrlSchema)(params);
|
769
|
+
const newParams = fp.pick(["documentId", "locale", "status"], params);
|
770
|
+
const model = strapi2.getModel(uid2);
|
771
|
+
if (!model || model.modelType !== "contentType") {
|
772
|
+
throw new strapiUtils.errors.ValidationError("Invalid content type");
|
773
|
+
}
|
774
|
+
const isSingleType = model?.kind === "singleType";
|
775
|
+
if (!isSingleType && !params.documentId) {
|
776
|
+
throw new strapiUtils.errors.ValidationError("documentId is required for Collection Types");
|
777
|
+
}
|
778
|
+
if (isSingleType) {
|
779
|
+
const doc = await strapi2.documents(uid2).findFirst();
|
780
|
+
if (!doc) {
|
781
|
+
throw new strapiUtils.errors.NotFoundError("Document not found");
|
782
|
+
}
|
783
|
+
newParams.documentId = doc?.documentId;
|
784
|
+
}
|
785
|
+
if (!newParams.status) {
|
786
|
+
const isDPEnabled = model?.options?.draftAndPublish;
|
787
|
+
newParams.status = isDPEnabled ? "draft" : "published";
|
788
|
+
}
|
789
|
+
return newParams;
|
790
|
+
};
|
765
791
|
const createPreviewController = () => {
|
766
792
|
return {
|
767
|
-
|
768
|
-
|
793
|
+
/**
|
794
|
+
* Transforms an entry into a preview URL, so that it can be previewed
|
795
|
+
* in the Content Manager.
|
796
|
+
*/
|
797
|
+
async getPreviewUrl(ctx) {
|
798
|
+
const uid2 = ctx.params.contentType;
|
799
|
+
const query = ctx.request.query;
|
800
|
+
const params = await validatePreviewUrl(strapi, uid2, query);
|
801
|
+
const previewService = getService(strapi, "preview");
|
802
|
+
const url = await previewService.getPreviewUrl(uid2, params);
|
803
|
+
if (!url) {
|
804
|
+
ctx.status = 204;
|
805
|
+
}
|
769
806
|
return {
|
770
|
-
data: { url
|
807
|
+
data: { url }
|
771
808
|
};
|
772
809
|
}
|
773
810
|
};
|
@@ -779,10 +816,63 @@ const controllers$1 = {
|
|
779
816
|
* passing a controller factory as the value, instead of a controller object directly
|
780
817
|
*/
|
781
818
|
};
|
782
|
-
const createPreviewService = () => {
|
819
|
+
const createPreviewService = ({ strapi: strapi2 }) => {
|
820
|
+
const config = getService(strapi2, "preview-config");
|
821
|
+
return {
|
822
|
+
async getPreviewUrl(uid2, params) {
|
823
|
+
const handler = config.getPreviewHandler();
|
824
|
+
try {
|
825
|
+
return handler(uid2, params);
|
826
|
+
} catch (error) {
|
827
|
+
strapi2.log.error(`Failed to get preview URL: ${error}`);
|
828
|
+
throw new strapiUtils.errors.ApplicationError("Failed to get preview URL");
|
829
|
+
}
|
830
|
+
return;
|
831
|
+
}
|
832
|
+
};
|
833
|
+
};
|
834
|
+
const extendMiddlewareConfiguration = (middleware = { name: "", config: {} }) => {
|
835
|
+
const middlewares = strapi.config.get("middlewares");
|
836
|
+
const configuredMiddlewares = middlewares.map((currentMiddleware) => {
|
837
|
+
if (currentMiddleware === middleware.name) {
|
838
|
+
return middleware;
|
839
|
+
}
|
840
|
+
if (currentMiddleware.name === middleware.name) {
|
841
|
+
return fp.mergeWith(
|
842
|
+
(objValue, srcValue) => {
|
843
|
+
if (Array.isArray(objValue)) {
|
844
|
+
return objValue.concat(srcValue);
|
845
|
+
}
|
846
|
+
return void 0;
|
847
|
+
},
|
848
|
+
currentMiddleware,
|
849
|
+
middleware
|
850
|
+
);
|
851
|
+
}
|
852
|
+
return currentMiddleware;
|
853
|
+
});
|
854
|
+
strapi.config.set("middlewares", configuredMiddlewares);
|
783
855
|
};
|
784
856
|
const createPreviewConfigService = ({ strapi: strapi2 }) => {
|
785
857
|
return {
|
858
|
+
register() {
|
859
|
+
if (!this.isEnabled()) {
|
860
|
+
return;
|
861
|
+
}
|
862
|
+
const config = strapi2.config.get("admin.preview");
|
863
|
+
if (config.config?.allowedOrigins) {
|
864
|
+
extendMiddlewareConfiguration({
|
865
|
+
name: "strapi::security",
|
866
|
+
config: {
|
867
|
+
contentSecurityPolicy: {
|
868
|
+
directives: {
|
869
|
+
"frame-src": config.config.allowedOrigins
|
870
|
+
}
|
871
|
+
}
|
872
|
+
}
|
873
|
+
});
|
874
|
+
}
|
875
|
+
},
|
786
876
|
isEnabled() {
|
787
877
|
const config = strapi2.config.get("admin.preview");
|
788
878
|
if (!config) {
|
@@ -823,18 +913,14 @@ const services$1 = {
|
|
823
913
|
preview: createPreviewService,
|
824
914
|
"preview-config": createPreviewConfigService
|
825
915
|
};
|
826
|
-
function getService(strapi2, name) {
|
827
|
-
return strapi2.service(`plugin::content-manager.${name}`);
|
828
|
-
}
|
829
916
|
const getFeature = () => {
|
830
|
-
if (!strapi.features.future.isEnabled(FEATURE_ID)) {
|
831
|
-
return {};
|
832
|
-
}
|
833
917
|
return {
|
834
|
-
|
835
|
-
console.log("Bootstrapping preview server");
|
918
|
+
register() {
|
836
919
|
const config = getService(strapi, "preview-config");
|
837
920
|
config.validate();
|
921
|
+
config.register();
|
922
|
+
},
|
923
|
+
bootstrap() {
|
838
924
|
},
|
839
925
|
routes: routes$1,
|
840
926
|
controllers: controllers$1,
|
@@ -842,6 +928,14 @@ const getFeature = () => {
|
|
842
928
|
};
|
843
929
|
};
|
844
930
|
const preview = getFeature();
|
931
|
+
const register = async ({ strapi: strapi2 }) => {
|
932
|
+
await history.register?.({ strapi: strapi2 });
|
933
|
+
await preview.register?.({ strapi: strapi2 });
|
934
|
+
};
|
935
|
+
const ALLOWED_WEBHOOK_EVENTS = {
|
936
|
+
ENTRY_PUBLISH: "entry.publish",
|
937
|
+
ENTRY_UNPUBLISH: "entry.unpublish"
|
938
|
+
};
|
845
939
|
const bootstrap = async () => {
|
846
940
|
Object.entries(ALLOWED_WEBHOOK_EVENTS).forEach(([key, value]) => {
|
847
941
|
strapi.get("webhookStore").addAllowedEvent(key, value);
|
@@ -1405,8 +1499,7 @@ const isSortable = (schema, name) => {
|
|
1405
1499
|
if (!___default.default.has(schema.attributes, name)) {
|
1406
1500
|
return false;
|
1407
1501
|
}
|
1408
|
-
if (schema.modelType === "component" && name === "id")
|
1409
|
-
return false;
|
1502
|
+
if (schema.modelType === "component" && name === "id") return false;
|
1410
1503
|
const attribute = schema.attributes[name];
|
1411
1504
|
if (NON_SORTABLES.includes(attribute.type)) {
|
1412
1505
|
return false;
|
@@ -1551,8 +1644,7 @@ const createDefaultSettings = async (schema) => {
|
|
1551
1644
|
};
|
1552
1645
|
};
|
1553
1646
|
const syncSettings = async (configuration, schema) => {
|
1554
|
-
if (fp.isEmpty(configuration.settings))
|
1555
|
-
return createDefaultSettings(schema);
|
1647
|
+
if (fp.isEmpty(configuration.settings)) return createDefaultSettings(schema);
|
1556
1648
|
const defaultField = getDefaultMainField(schema);
|
1557
1649
|
const { mainField = defaultField, defaultSortBy = defaultField } = configuration.settings || {};
|
1558
1650
|
return {
|
@@ -1728,8 +1820,7 @@ const excludeNotCreatableFields = (uid2, permissionChecker2) => (body, path = []
|
|
1728
1820
|
}
|
1729
1821
|
switch (attribute.type) {
|
1730
1822
|
case "relation": {
|
1731
|
-
if (canCreate(attributePath))
|
1732
|
-
return body2;
|
1823
|
+
if (canCreate(attributePath)) return body2;
|
1733
1824
|
return fp.set(attributePath, { set: [] }, body2);
|
1734
1825
|
}
|
1735
1826
|
case "component": {
|
@@ -1739,8 +1830,7 @@ const excludeNotCreatableFields = (uid2, permissionChecker2) => (body, path = []
|
|
1739
1830
|
]);
|
1740
1831
|
}
|
1741
1832
|
default: {
|
1742
|
-
if (canCreate(attributePath))
|
1743
|
-
return body2;
|
1833
|
+
if (canCreate(attributePath)) return body2;
|
1744
1834
|
return fp.set(attributePath, null, body2);
|
1745
1835
|
}
|
1746
1836
|
}
|
@@ -2533,8 +2623,7 @@ const validateStatus = (sourceUid, status) => {
|
|
2533
2623
|
const sourceModel = strapi.getModel(sourceUid);
|
2534
2624
|
const isDP = strapiUtils.contentTypes.hasDraftAndPublish;
|
2535
2625
|
const isSourceDP = isDP(sourceModel);
|
2536
|
-
if (!isSourceDP)
|
2537
|
-
return { status: void 0 };
|
2626
|
+
if (!isSourceDP) return { status: void 0 };
|
2538
2627
|
switch (status) {
|
2539
2628
|
case "published":
|
2540
2629
|
return { status: "published" };
|
@@ -3179,18 +3268,15 @@ async function syncMetadatas(configuration, schema) {
|
|
3179
3268
|
___default.default.set(updatedMeta, ["list", "searchable"], false);
|
3180
3269
|
___default.default.set(acc, [key], updatedMeta);
|
3181
3270
|
}
|
3182
|
-
if (!___default.default.has(edit, "mainField"))
|
3183
|
-
return acc;
|
3271
|
+
if (!___default.default.has(edit, "mainField")) return acc;
|
3184
3272
|
if (!isRelation$1(attr)) {
|
3185
3273
|
___default.default.set(updatedMeta, "edit", ___default.default.omit(edit, ["mainField"]));
|
3186
3274
|
___default.default.set(acc, [key], updatedMeta);
|
3187
3275
|
return acc;
|
3188
3276
|
}
|
3189
|
-
if (edit.mainField === "id")
|
3190
|
-
return acc;
|
3277
|
+
if (edit.mainField === "id") return acc;
|
3191
3278
|
const targetSchema = getTargetSchema(attr.targetModel);
|
3192
|
-
if (!targetSchema)
|
3193
|
-
return acc;
|
3279
|
+
if (!targetSchema) return acc;
|
3194
3280
|
if (!isSortable(targetSchema, edit.mainField) && !isListable(targetSchema, edit.mainField)) {
|
3195
3281
|
___default.default.set(updatedMeta, ["edit", "mainField"], getDefaultMainField(targetSchema));
|
3196
3282
|
___default.default.set(acc, [key], updatedMeta);
|
@@ -3235,8 +3321,7 @@ function createDefaultEditLayout(schema) {
|
|
3235
3321
|
return appendToEditLayout([], keys2, schema);
|
3236
3322
|
}
|
3237
3323
|
function syncLayouts(configuration, schema) {
|
3238
|
-
if (___default.default.isEmpty(configuration.layouts))
|
3239
|
-
return createDefaultLayouts(schema);
|
3324
|
+
if (___default.default.isEmpty(configuration.layouts)) return createDefaultLayouts(schema);
|
3240
3325
|
const { list = [], editRelations = [], edit = [] } = configuration.layouts || {};
|
3241
3326
|
let cleanList = list.filter((attr) => isListable(schema, attr));
|
3242
3327
|
const cleanEditRelations = editRelations.filter(
|
@@ -3247,8 +3332,7 @@ function syncLayouts(configuration, schema) {
|
|
3247
3332
|
for (const row of edit) {
|
3248
3333
|
const newRow = [];
|
3249
3334
|
for (const el of row) {
|
3250
|
-
if (!hasEditableAttribute(schema, el.name))
|
3251
|
-
continue;
|
3335
|
+
if (!hasEditableAttribute(schema, el.name)) continue;
|
3252
3336
|
const { hasFieldSize } = getService$2("field-sizes");
|
3253
3337
|
const fieldType = hasFieldSize(schema.attributes[el.name].customField) ? schema.attributes[el.name].customField : schema.attributes[el.name].type;
|
3254
3338
|
if (!isAllowedFieldSize(fieldType, el.size)) {
|
@@ -3279,8 +3363,7 @@ function syncLayouts(configuration, schema) {
|
|
3279
3363
|
};
|
3280
3364
|
}
|
3281
3365
|
const appendToEditLayout = (layout = [], keysToAppend, schema) => {
|
3282
|
-
if (keysToAppend.length === 0)
|
3283
|
-
return layout;
|
3366
|
+
if (keysToAppend.length === 0) return layout;
|
3284
3367
|
let currentRowIndex = Math.max(layout.length - 1, 0);
|
3285
3368
|
if (!layout[currentRowIndex]) {
|
3286
3369
|
layout[currentRowIndex] = [];
|
@@ -4271,8 +4354,7 @@ const documentMetadata = ({ strapi: strapi2 }) => ({
|
|
4271
4354
|
const matchStatus = status === "published" ? v.publishedAt !== null : v.publishedAt === null;
|
4272
4355
|
return matchLocale && matchStatus;
|
4273
4356
|
});
|
4274
|
-
if (!availableStatus)
|
4275
|
-
return availableStatus;
|
4357
|
+
if (!availableStatus) return availableStatus;
|
4276
4358
|
return fp.pick(AVAILABLE_STATUS_FIELDS, availableStatus);
|
4277
4359
|
},
|
4278
4360
|
/**
|
@@ -4282,8 +4364,7 @@ const documentMetadata = ({ strapi: strapi2 }) => ({
|
|
4282
4364
|
* @returns
|
4283
4365
|
*/
|
4284
4366
|
async getManyAvailableStatus(uid2, documents) {
|
4285
|
-
if (!documents.length)
|
4286
|
-
return [];
|
4367
|
+
if (!documents.length) return [];
|
4287
4368
|
const status = documents[0].publishedAt !== null ? "published" : "draft";
|
4288
4369
|
const locale = documents[0]?.locale;
|
4289
4370
|
const otherStatus = status === "published" ? "draft" : "published";
|
@@ -4310,10 +4391,8 @@ const documentMetadata = ({ strapi: strapi2 }) => ({
|
|
4310
4391
|
} else if (otherVersion) {
|
4311
4392
|
draftVersion = otherVersion;
|
4312
4393
|
}
|
4313
|
-
if (!draftVersion)
|
4314
|
-
|
4315
|
-
if (!publishedVersion)
|
4316
|
-
return CONTENT_MANAGER_STATUS.DRAFT;
|
4394
|
+
if (!draftVersion) return CONTENT_MANAGER_STATUS.PUBLISHED;
|
4395
|
+
if (!publishedVersion) return CONTENT_MANAGER_STATUS.DRAFT;
|
4317
4396
|
const isDraftModified = getIsVersionLatestModification(draftVersion, publishedVersion);
|
4318
4397
|
return isDraftModified ? CONTENT_MANAGER_STATUS.MODIFIED : CONTENT_MANAGER_STATUS.PUBLISHED;
|
4319
4398
|
},
|