@strapi/core 5.46.1 → 5.47.1
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/Strapi.d.ts.map +1 -1
- package/dist/Strapi.js +12 -3
- package/dist/Strapi.js.map +1 -1
- package/dist/Strapi.mjs +12 -3
- package/dist/Strapi.mjs.map +1 -1
- package/dist/compile.d.ts.map +1 -1
- package/dist/compile.js +12 -5
- package/dist/compile.js.map +1 -1
- package/dist/compile.mjs +12 -5
- package/dist/compile.mjs.map +1 -1
- package/dist/core-api/routes/index.js +2 -0
- package/dist/core-api/routes/index.js.map +1 -1
- package/dist/core-api/routes/index.mjs +2 -0
- package/dist/core-api/routes/index.mjs.map +1 -1
- package/dist/core-api/routes/validation/content-type.d.ts +13 -1
- package/dist/core-api/routes/validation/content-type.d.ts.map +1 -1
- package/dist/core-api/routes/validation/content-type.js +15 -2
- package/dist/core-api/routes/validation/content-type.js.map +1 -1
- package/dist/core-api/routes/validation/content-type.mjs +15 -2
- package/dist/core-api/routes/validation/content-type.mjs.map +1 -1
- package/dist/middlewares/session.d.ts +2 -2
- package/dist/middlewares/session.d.ts.map +1 -1
- package/dist/middlewares/session.js +1 -1
- package/dist/middlewares/session.js.map +1 -1
- package/dist/middlewares/session.mjs +2 -2
- package/dist/middlewares/session.mjs.map +1 -1
- package/dist/migrations/database/5.0.0-discard-drafts.d.ts +2 -1
- package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -1
- package/dist/migrations/database/5.0.0-discard-drafts.js +41 -30
- package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -1
- package/dist/migrations/database/5.0.0-discard-drafts.mjs +41 -30
- package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -1
- package/dist/package.json.js +16 -15
- package/dist/package.json.js.map +1 -1
- package/dist/package.json.mjs +16 -15
- package/dist/package.json.mjs.map +1 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +3 -1
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/index.mjs +3 -1
- package/dist/providers/index.mjs.map +1 -1
- package/dist/providers/mcp.d.ts +3 -0
- package/dist/providers/mcp.d.ts.map +1 -0
- package/dist/providers/mcp.js +39 -0
- package/dist/providers/mcp.js.map +1 -0
- package/dist/providers/mcp.mjs +37 -0
- package/dist/providers/mcp.mjs.map +1 -0
- package/dist/providers/session-manager.d.ts.map +1 -1
- package/dist/providers/session-manager.js +3 -0
- package/dist/providers/session-manager.js.map +1 -1
- package/dist/providers/session-manager.mjs +3 -0
- package/dist/providers/session-manager.mjs.map +1 -1
- package/dist/services/ai.d.ts.map +1 -1
- package/dist/services/ai.js +3 -0
- package/dist/services/ai.js.map +1 -1
- package/dist/services/ai.mjs +3 -0
- package/dist/services/ai.mjs.map +1 -1
- package/dist/services/cron.d.ts +1 -1
- package/dist/services/cron.d.ts.map +1 -1
- package/dist/services/cron.js +10 -2
- package/dist/services/cron.js.map +1 -1
- package/dist/services/cron.mjs +10 -2
- package/dist/services/cron.mjs.map +1 -1
- package/dist/services/document-service/draft-and-publish.d.ts +2 -16
- package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
- package/dist/services/document-service/draft-and-publish.js +0 -53
- package/dist/services/document-service/draft-and-publish.js.map +1 -1
- package/dist/services/document-service/draft-and-publish.mjs +2 -53
- package/dist/services/document-service/draft-and-publish.mjs.map +1 -1
- package/dist/services/document-service/params.d.ts +2 -2
- package/dist/services/document-service/params.d.ts.map +1 -1
- package/dist/services/document-service/publication-filter.d.ts +6 -0
- package/dist/services/document-service/publication-filter.d.ts.map +1 -0
- package/dist/services/document-service/publication-filter.js +20 -0
- package/dist/services/document-service/publication-filter.js.map +1 -0
- package/dist/services/document-service/publication-filter.mjs +15 -0
- package/dist/services/document-service/publication-filter.mjs.map +1 -0
- package/dist/services/document-service/transform/query.d.ts +1 -1
- package/dist/services/document-service/transform/query.d.ts.map +1 -1
- package/dist/services/document-service/transform/query.js +32 -19
- package/dist/services/document-service/transform/query.js.map +1 -1
- package/dist/services/document-service/transform/query.mjs +33 -20
- package/dist/services/document-service/transform/query.mjs.map +1 -1
- package/dist/services/entity-validator/blocks-validator.js +1 -1
- package/dist/services/entity-validator/blocks-validator.js.map +1 -1
- package/dist/services/entity-validator/blocks-validator.mjs +1 -1
- package/dist/services/entity-validator/blocks-validator.mjs.map +1 -1
- package/dist/services/mcp/authentication.d.ts +23 -0
- package/dist/services/mcp/authentication.d.ts.map +1 -0
- package/dist/services/mcp/authentication.js +45 -0
- package/dist/services/mcp/authentication.js.map +1 -0
- package/dist/services/mcp/authentication.mjs +43 -0
- package/dist/services/mcp/authentication.mjs.map +1 -0
- package/dist/services/mcp/handlers/handlePost.d.ts +4 -0
- package/dist/services/mcp/handlers/handlePost.d.ts.map +1 -0
- package/dist/services/mcp/handlers/handlePost.js +59 -0
- package/dist/services/mcp/handlers/handlePost.js.map +1 -0
- package/dist/services/mcp/handlers/handlePost.mjs +57 -0
- package/dist/services/mcp/handlers/handlePost.mjs.map +1 -0
- package/dist/services/mcp/handlers/types.d.ts +12 -0
- package/dist/services/mcp/handlers/types.d.ts.map +1 -0
- package/dist/services/mcp/index.d.ts +6 -0
- package/dist/services/mcp/index.d.ts.map +1 -0
- package/dist/services/mcp/index.js +101 -0
- package/dist/services/mcp/index.js.map +1 -0
- package/dist/services/mcp/index.mjs +99 -0
- package/dist/services/mcp/index.mjs.map +1 -0
- package/dist/services/mcp/internal/McpCapabilityDefinitionRegistry.d.ts +13 -0
- package/dist/services/mcp/internal/McpCapabilityDefinitionRegistry.d.ts.map +1 -0
- package/dist/services/mcp/internal/McpCapabilityDefinitionRegistry.js +53 -0
- package/dist/services/mcp/internal/McpCapabilityDefinitionRegistry.js.map +1 -0
- package/dist/services/mcp/internal/McpCapabilityDefinitionRegistry.mjs +51 -0
- package/dist/services/mcp/internal/McpCapabilityDefinitionRegistry.mjs.map +1 -0
- package/dist/services/mcp/internal/McpCapabilityRegistry.d.ts +43 -0
- package/dist/services/mcp/internal/McpCapabilityRegistry.d.ts.map +1 -0
- package/dist/services/mcp/internal/McpCapabilityRegistry.js +108 -0
- package/dist/services/mcp/internal/McpCapabilityRegistry.js.map +1 -0
- package/dist/services/mcp/internal/McpCapabilityRegistry.mjs +106 -0
- package/dist/services/mcp/internal/McpCapabilityRegistry.mjs.map +1 -0
- package/dist/services/mcp/internal/McpConfiguration.d.ts +11 -0
- package/dist/services/mcp/internal/McpConfiguration.d.ts.map +1 -0
- package/dist/services/mcp/internal/McpConfiguration.js +34 -0
- package/dist/services/mcp/internal/McpConfiguration.js.map +1 -0
- package/dist/services/mcp/internal/McpConfiguration.mjs +32 -0
- package/dist/services/mcp/internal/McpConfiguration.mjs.map +1 -0
- package/dist/services/mcp/internal/McpServerFactory.d.ts +37 -0
- package/dist/services/mcp/internal/McpServerFactory.d.ts.map +1 -0
- package/dist/services/mcp/internal/McpServerFactory.js +71 -0
- package/dist/services/mcp/internal/McpServerFactory.js.map +1 -0
- package/dist/services/mcp/internal/McpServerFactory.mjs +69 -0
- package/dist/services/mcp/internal/McpServerFactory.mjs.map +1 -0
- package/dist/services/mcp/internal/syncMcpSessionCapabilities.d.ts +21 -0
- package/dist/services/mcp/internal/syncMcpSessionCapabilities.d.ts.map +1 -0
- package/dist/services/mcp/internal/syncMcpSessionCapabilities.js +76 -0
- package/dist/services/mcp/internal/syncMcpSessionCapabilities.js.map +1 -0
- package/dist/services/mcp/internal/syncMcpSessionCapabilities.mjs +73 -0
- package/dist/services/mcp/internal/syncMcpSessionCapabilities.mjs.map +1 -0
- package/dist/services/mcp/metrics/metrics.d.ts +29 -0
- package/dist/services/mcp/metrics/metrics.d.ts.map +1 -0
- package/dist/services/mcp/metrics/metrics.js +97 -0
- package/dist/services/mcp/metrics/metrics.js.map +1 -0
- package/dist/services/mcp/metrics/metrics.mjs +88 -0
- package/dist/services/mcp/metrics/metrics.mjs.map +1 -0
- package/dist/services/mcp/metrics/normalizeMcpCapability.d.ts +11 -0
- package/dist/services/mcp/metrics/normalizeMcpCapability.d.ts.map +1 -0
- package/dist/services/mcp/metrics/normalizeMcpCapability.js +10 -0
- package/dist/services/mcp/metrics/normalizeMcpCapability.js.map +1 -0
- package/dist/services/mcp/metrics/normalizeMcpCapability.mjs +8 -0
- package/dist/services/mcp/metrics/normalizeMcpCapability.mjs.map +1 -0
- package/dist/services/mcp/metrics/wrapCapabilityHandlerForMetrics.d.ts +4 -0
- package/dist/services/mcp/metrics/wrapCapabilityHandlerForMetrics.d.ts.map +1 -0
- package/dist/services/mcp/metrics/wrapCapabilityHandlerForMetrics.js +27 -0
- package/dist/services/mcp/metrics/wrapCapabilityHandlerForMetrics.js.map +1 -0
- package/dist/services/mcp/metrics/wrapCapabilityHandlerForMetrics.mjs +25 -0
- package/dist/services/mcp/metrics/wrapCapabilityHandlerForMetrics.mjs.map +1 -0
- package/dist/services/mcp/middleware/oauthDiscoveryFallback.d.ts +3 -0
- package/dist/services/mcp/middleware/oauthDiscoveryFallback.d.ts.map +1 -0
- package/dist/services/mcp/middleware/oauthDiscoveryFallback.js +47 -0
- package/dist/services/mcp/middleware/oauthDiscoveryFallback.js.map +1 -0
- package/dist/services/mcp/middleware/oauthDiscoveryFallback.mjs +45 -0
- package/dist/services/mcp/middleware/oauthDiscoveryFallback.mjs.map +1 -0
- package/dist/services/mcp/prompt-registry.d.ts +16 -0
- package/dist/services/mcp/prompt-registry.d.ts.map +1 -0
- package/dist/services/mcp/prompt-registry.js +77 -0
- package/dist/services/mcp/prompt-registry.js.map +1 -0
- package/dist/services/mcp/prompt-registry.mjs +75 -0
- package/dist/services/mcp/prompt-registry.mjs.map +1 -0
- package/dist/services/mcp/resource-registry.d.ts +14 -0
- package/dist/services/mcp/resource-registry.d.ts.map +1 -0
- package/dist/services/mcp/resource-registry.js +67 -0
- package/dist/services/mcp/resource-registry.js.map +1 -0
- package/dist/services/mcp/resource-registry.mjs +65 -0
- package/dist/services/mcp/resource-registry.mjs.map +1 -0
- package/dist/services/mcp/routes.d.ts +11 -0
- package/dist/services/mcp/routes.d.ts.map +1 -0
- package/dist/services/mcp/routes.js +58 -0
- package/dist/services/mcp/routes.js.map +1 -0
- package/dist/services/mcp/routes.mjs +56 -0
- package/dist/services/mcp/routes.mjs.map +1 -0
- package/dist/services/mcp/tool-registry.d.ts +25 -0
- package/dist/services/mcp/tool-registry.d.ts.map +1 -0
- package/dist/services/mcp/tool-registry.js +102 -0
- package/dist/services/mcp/tool-registry.js.map +1 -0
- package/dist/services/mcp/tool-registry.mjs +99 -0
- package/dist/services/mcp/tool-registry.mjs.map +1 -0
- package/dist/services/mcp/tools/log.d.ts +87 -0
- package/dist/services/mcp/tools/log.d.ts.map +1 -0
- package/dist/services/mcp/tools/log.js +88 -0
- package/dist/services/mcp/tools/log.js.map +1 -0
- package/dist/services/mcp/tools/log.mjs +86 -0
- package/dist/services/mcp/tools/log.mjs.map +1 -0
- package/dist/services/mcp/utils/createSafeCapabilityRegistration.d.ts +36 -0
- package/dist/services/mcp/utils/createSafeCapabilityRegistration.d.ts.map +1 -0
- package/dist/services/mcp/utils/createSafeCapabilityRegistration.js +59 -0
- package/dist/services/mcp/utils/createSafeCapabilityRegistration.js.map +1 -0
- package/dist/services/mcp/utils/createSafeCapabilityRegistration.mjs +56 -0
- package/dist/services/mcp/utils/createSafeCapabilityRegistration.mjs.map +1 -0
- package/dist/services/mcp/utils/jsonRpcErrors.d.ts +22 -0
- package/dist/services/mcp/utils/jsonRpcErrors.d.ts.map +1 -0
- package/dist/services/mcp/utils/jsonRpcErrors.js +25 -0
- package/dist/services/mcp/utils/jsonRpcErrors.js.map +1 -0
- package/dist/services/mcp/utils/jsonRpcErrors.mjs +23 -0
- package/dist/services/mcp/utils/jsonRpcErrors.mjs.map +1 -0
- package/dist/services/mcp/utils/safeHandlerWrapper.d.ts +18 -0
- package/dist/services/mcp/utils/safeHandlerWrapper.d.ts.map +1 -0
- package/dist/services/mcp/utils/safeHandlerWrapper.js +29 -0
- package/dist/services/mcp/utils/safeHandlerWrapper.js.map +1 -0
- package/dist/services/mcp/utils/safeHandlerWrapper.mjs +27 -0
- package/dist/services/mcp/utils/safeHandlerWrapper.mjs.map +1 -0
- package/dist/services/mcp/utils/sendJsonRpcError.d.ts +5 -0
- package/dist/services/mcp/utils/sendJsonRpcError.d.ts.map +1 -0
- package/dist/services/mcp/utils/sendJsonRpcError.js +23 -0
- package/dist/services/mcp/utils/sendJsonRpcError.js.map +1 -0
- package/dist/services/mcp/utils/sendJsonRpcError.mjs +21 -0
- package/dist/services/mcp/utils/sendJsonRpcError.mjs.map +1 -0
- package/dist/services/mcp/utils/withTimeout.d.ts +7 -0
- package/dist/services/mcp/utils/withTimeout.d.ts.map +1 -0
- package/dist/services/mcp/utils/withTimeout.js +23 -0
- package/dist/services/mcp/utils/withTimeout.js.map +1 -0
- package/dist/services/mcp/utils/withTimeout.mjs +21 -0
- package/dist/services/mcp/utils/withTimeout.mjs.map +1 -0
- package/dist/services/metrics/index.d.ts.map +1 -1
- package/dist/services/metrics/index.js +9 -6
- package/dist/services/metrics/index.js.map +1 -1
- package/dist/services/metrics/index.mjs +9 -6
- package/dist/services/metrics/index.mjs.map +1 -1
- package/dist/services/metrics/sender.d.ts.map +1 -1
- package/dist/services/metrics/sender.js +11 -3
- package/dist/services/metrics/sender.js.map +1 -1
- package/dist/services/metrics/sender.mjs +11 -3
- package/dist/services/metrics/sender.mjs.map +1 -1
- package/package.json +16 -15
|
@@ -80,23 +80,39 @@ const DEFAULT_PRIMARY_KEY_COLUMN = 'id';
|
|
|
80
80
|
return true;
|
|
81
81
|
};
|
|
82
82
|
/**
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
*/
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
83
|
+
* Join-column relations that are persisted on the row (e.g. createdBy), excluding virtual
|
|
84
|
+
* relations such as i18n `localizations` which reuse `document_id` and are not DB-owned.
|
|
85
|
+
*/ const isPersistedJoinColumnRelation = (attribute)=>attribute?.type === 'relation' && !attribute.unstable_virtual && attribute.joinColumn && !attribute.joinTable;
|
|
86
|
+
/**
|
|
87
|
+
* Column names copied when cloning a published row into a draft (stage 1).
|
|
88
|
+
* Scalars plus persisted join-column FKs; deduped so virtual relations cannot repeat columns.
|
|
89
|
+
*/ const getPublishedToDraftCloneColumns = (meta)=>{
|
|
90
|
+
const seen = new Set();
|
|
91
|
+
const columns = [];
|
|
92
|
+
const addColumn = (columnName)=>{
|
|
93
|
+
if (!columnName || columnName === 'id' || seen.has(columnName)) {
|
|
94
|
+
return;
|
|
94
95
|
}
|
|
96
|
+
seen.add(columnName);
|
|
97
|
+
columns.push(columnName);
|
|
98
|
+
};
|
|
99
|
+
for (const attribute of Object.values(meta.attributes)){
|
|
95
100
|
if (contentTypes.isScalarAttribute(attribute)) {
|
|
96
|
-
|
|
101
|
+
addColumn(attribute.columnName);
|
|
102
|
+
continue;
|
|
97
103
|
}
|
|
98
|
-
|
|
99
|
-
|
|
104
|
+
if (isPersistedJoinColumnRelation(attribute)) {
|
|
105
|
+
addColumn(attribute.joinColumn.name);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return columns;
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* Copy published entries to draft rows, cloning scalar fields and join-column foreign keys.
|
|
112
|
+
* Components, dynamic zones, and join-table relations are handled in later stages.
|
|
113
|
+
*/ async function copyPublishedEntriesToDraft({ db, trx, uid }) {
|
|
114
|
+
const meta = db.metadata.get(uid);
|
|
115
|
+
const columnsToCopy = getPublishedToDraftCloneColumns(meta);
|
|
100
116
|
/**
|
|
101
117
|
* Query to copy the published entries into draft entries.
|
|
102
118
|
*
|
|
@@ -104,12 +120,12 @@ const DEFAULT_PRIMARY_KEY_COLUMN = 'id';
|
|
|
104
120
|
* SELECT columnName1, columnName2, columnName3, ...
|
|
105
121
|
* FROM tableName
|
|
106
122
|
*/ await trx// INSERT INTO tableName (columnName1, columnName2, columnName3, ...)
|
|
107
|
-
.into(trx.raw(`?? (${
|
|
123
|
+
.into(trx.raw(`?? (${columnsToCopy.map(()=>`??`).join(', ')})`, [
|
|
108
124
|
meta.tableName,
|
|
109
|
-
...
|
|
125
|
+
...columnsToCopy
|
|
110
126
|
])).insert((subQb)=>{
|
|
111
127
|
// SELECT columnName1, columnName2, columnName3, ...
|
|
112
|
-
subQb.select(...
|
|
128
|
+
subQb.select(...columnsToCopy.map((att)=>{
|
|
113
129
|
// NOTE: these literals reference Strapi's built-in system columns. They never get shortened by
|
|
114
130
|
// the identifier migration (5.0.0-01-convert-identifiers-long-than-max-length) so we can safely
|
|
115
131
|
// compare/use them directly here.
|
|
@@ -969,7 +985,7 @@ const debug = createDebug('strapi::migration::discard-drafts');
|
|
|
969
985
|
/**
|
|
970
986
|
* Builds a reverse map from draft IDs to published IDs for a target content type.
|
|
971
987
|
* This is needed to check if a target ID is already a draft and find its published version.
|
|
972
|
-
*/ async function getDraftToPublishedMap(trx, targetUid, reverseMapCache) {
|
|
988
|
+
*/ async function getDraftToPublishedMap(trx, targetUid, reverseMapCache, draftMapCache) {
|
|
973
989
|
if (reverseMapCache.has(targetUid)) {
|
|
974
990
|
return reverseMapCache.get(targetUid) ?? null;
|
|
975
991
|
}
|
|
@@ -979,7 +995,7 @@ const debug = createDebug('strapi::migration::discard-drafts');
|
|
|
979
995
|
return null;
|
|
980
996
|
}
|
|
981
997
|
const draftToPublishedMap = new Map();
|
|
982
|
-
const draftMap = await getDraftMapForTarget(trx, targetUid, new Map());
|
|
998
|
+
const draftMap = await getDraftMapForTarget(trx, targetUid, draftMapCache ?? new Map());
|
|
983
999
|
if (draftMap) {
|
|
984
1000
|
// Reverse the published->draft map to get draft->published
|
|
985
1001
|
for (const [publishedId, draftId] of draftMap.entries()){
|
|
@@ -1021,7 +1037,7 @@ const debug = createDebug('strapi::migration::discard-drafts');
|
|
|
1021
1037
|
}
|
|
1022
1038
|
// For published entity, if we got a draft ID, find the published version
|
|
1023
1039
|
const effectiveReverseCache = reverseMapCache ?? new Map();
|
|
1024
|
-
const reverseMap = await getDraftToPublishedMap(trx, targetUid, effectiveReverseCache);
|
|
1040
|
+
const reverseMap = await getDraftToPublishedMap(trx, targetUid, effectiveReverseCache, draftMapCache);
|
|
1025
1041
|
if (reverseMap) {
|
|
1026
1042
|
return reverseMap.get(Number(originalId)) ?? originalId;
|
|
1027
1043
|
}
|
|
@@ -1048,7 +1064,7 @@ const debug = createDebug('strapi::migration::discard-drafts');
|
|
|
1048
1064
|
// For published entities: map draft targets to published targets
|
|
1049
1065
|
if (targetState === 'draft') {
|
|
1050
1066
|
const effectiveReverseCache = reverseMapCache ?? new Map();
|
|
1051
|
-
const reverseMap = await getDraftToPublishedMap(trx, targetUid, effectiveReverseCache);
|
|
1067
|
+
const reverseMap = await getDraftToPublishedMap(trx, targetUid, effectiveReverseCache, draftMapCache);
|
|
1052
1068
|
if (reverseMap) {
|
|
1053
1069
|
return reverseMap.get(Number(originalId)) ?? originalId;
|
|
1054
1070
|
}
|
|
@@ -1180,7 +1196,7 @@ const debug = createDebug('strapi::migration::discard-drafts');
|
|
|
1180
1196
|
newComponentRow.created_at = resolveNowValue(trx);
|
|
1181
1197
|
}
|
|
1182
1198
|
for (const attribute of Object.values(componentMeta.attributes)){
|
|
1183
|
-
if (attribute
|
|
1199
|
+
if (!isPersistedJoinColumnRelation(attribute)) {
|
|
1184
1200
|
continue;
|
|
1185
1201
|
}
|
|
1186
1202
|
const joinColumn = attribute.joinColumn;
|
|
@@ -1685,14 +1701,9 @@ const debug = createDebug('strapi::migration::discard-drafts');
|
|
|
1685
1701
|
const targetMapCache = new Map();
|
|
1686
1702
|
// Find all JoinColumn relations (oneToOne, manyToOne without joinTable)
|
|
1687
1703
|
for (const attribute of Object.values(meta.attributes)){
|
|
1688
|
-
if (attribute
|
|
1689
|
-
continue;
|
|
1690
|
-
}
|
|
1691
|
-
// Skip relations with joinTable (handled by copyRelationsToOtherContentTypes)
|
|
1692
|
-
if (attribute.joinTable) {
|
|
1704
|
+
if (!isPersistedJoinColumnRelation(attribute)) {
|
|
1693
1705
|
continue;
|
|
1694
1706
|
}
|
|
1695
|
-
// Only handle oneToOne and manyToOne relations that use joinColumn
|
|
1696
1707
|
const joinColumn = attribute.joinColumn;
|
|
1697
1708
|
if (!joinColumn) {
|
|
1698
1709
|
continue;
|
|
@@ -2221,6 +2232,8 @@ const debug = createDebug('strapi::migration::discard-drafts');
|
|
|
2221
2232
|
const publishedIds = Array.from(publishedToDraftMap.keys());
|
|
2222
2233
|
// Process in batches to avoid MySQL query size limits and SQLite expression tree limits
|
|
2223
2234
|
const publishedIdsChunks = chunkArray(publishedIds, getBatchSize(trx, 1000));
|
|
2235
|
+
const componentTargetDraftMapCache = new Map();
|
|
2236
|
+
const componentTargetReverseMapCache = new Map();
|
|
2224
2237
|
for (const publishedIdsChunk of publishedIdsChunks){
|
|
2225
2238
|
// Get component relations for published entries
|
|
2226
2239
|
const componentRelations = await trx(joinTableName).select('*').whereIn(entityIdColumn, publishedIdsChunk);
|
|
@@ -2229,8 +2242,6 @@ const debug = createDebug('strapi::migration::discard-drafts');
|
|
|
2229
2242
|
}
|
|
2230
2243
|
const componentCloneCache = new Map();
|
|
2231
2244
|
const clonedComponentPairsCache = new Map();
|
|
2232
|
-
const componentTargetDraftMapCache = new Map();
|
|
2233
|
-
const componentTargetReverseMapCache = new Map();
|
|
2234
2245
|
const componentHierarchyCaches = {
|
|
2235
2246
|
parentInstanceCache: new Map(),
|
|
2236
2247
|
ancestorDpCache: new Map(),
|