@strapi/core 5.46.0 → 5.47.0
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/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/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 +64 -30
- package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -1
- package/dist/migrations/database/5.0.0-discard-drafts.mjs +64 -30
- package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -1
- package/dist/package.json.js +14 -12
- package/dist/package.json.js.map +1 -1
- package/dist/package.json.mjs +14 -12
- 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 +1 -2
- package/dist/providers/session-manager.js.map +1 -1
- package/dist/providers/session-manager.mjs +1 -2
- 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/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 +3 -1
- package/dist/services/metrics/index.js.map +1 -1
- package/dist/services/metrics/index.mjs +3 -1
- package/dist/services/metrics/index.mjs.map +1 -1
- package/package.json +14 -12
package/dist/package.json.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var name = "@strapi/core";
|
|
6
|
-
var version = "5.
|
|
6
|
+
var version = "5.47.0";
|
|
7
7
|
var description = "Core of Strapi";
|
|
8
8
|
var homepage = "https://strapi.io";
|
|
9
9
|
var bugs = {
|
|
@@ -59,17 +59,19 @@ var scripts = {
|
|
|
59
59
|
"test:unit:vitest:watch": "vitest --watch"
|
|
60
60
|
};
|
|
61
61
|
var dependencies = {
|
|
62
|
+
"@casl/ability": "6.7.5",
|
|
62
63
|
"@koa/cors": "5.0.0",
|
|
63
64
|
"@koa/router": "12.0.2",
|
|
65
|
+
"@modelcontextprotocol/sdk": "1.29.0",
|
|
64
66
|
"@paralleldrive/cuid2": "2.2.2",
|
|
65
|
-
"@strapi/admin": "5.
|
|
66
|
-
"@strapi/database": "5.
|
|
67
|
-
"@strapi/generators": "5.
|
|
68
|
-
"@strapi/logger": "5.
|
|
69
|
-
"@strapi/permissions": "5.
|
|
70
|
-
"@strapi/types": "5.
|
|
71
|
-
"@strapi/typescript-utils": "5.
|
|
72
|
-
"@strapi/utils": "5.
|
|
67
|
+
"@strapi/admin": "5.47.0",
|
|
68
|
+
"@strapi/database": "5.47.0",
|
|
69
|
+
"@strapi/generators": "5.47.0",
|
|
70
|
+
"@strapi/logger": "5.47.0",
|
|
71
|
+
"@strapi/permissions": "5.47.0",
|
|
72
|
+
"@strapi/types": "5.47.0",
|
|
73
|
+
"@strapi/typescript-utils": "5.47.0",
|
|
74
|
+
"@strapi/utils": "5.47.0",
|
|
73
75
|
"@vercel/stega": "0.1.2",
|
|
74
76
|
bcryptjs: "2.4.3",
|
|
75
77
|
boxen: "5.1.2",
|
|
@@ -136,11 +138,11 @@ var devDependencies = {
|
|
|
136
138
|
"@types/node": "24.10.0",
|
|
137
139
|
"@types/node-schedule": "2.1.7",
|
|
138
140
|
"@types/statuses": "2.0.1",
|
|
139
|
-
"eslint-config-custom": "5.
|
|
141
|
+
"eslint-config-custom": "5.47.0",
|
|
140
142
|
supertest: "7.2.2",
|
|
141
|
-
tsconfig: "5.
|
|
143
|
+
tsconfig: "5.47.0",
|
|
142
144
|
vitest: "catalog:",
|
|
143
|
-
"vitest-config": "5.
|
|
145
|
+
"vitest-config": "5.47.0"
|
|
144
146
|
};
|
|
145
147
|
var engines = {
|
|
146
148
|
node: ">=20.0.0 <=24.x.x",
|
package/dist/package.json.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"package.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/package.json.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var name = "@strapi/core";
|
|
2
|
-
var version = "5.
|
|
2
|
+
var version = "5.47.0";
|
|
3
3
|
var description = "Core of Strapi";
|
|
4
4
|
var homepage = "https://strapi.io";
|
|
5
5
|
var bugs = {
|
|
@@ -55,17 +55,19 @@ var scripts = {
|
|
|
55
55
|
"test:unit:vitest:watch": "vitest --watch"
|
|
56
56
|
};
|
|
57
57
|
var dependencies = {
|
|
58
|
+
"@casl/ability": "6.7.5",
|
|
58
59
|
"@koa/cors": "5.0.0",
|
|
59
60
|
"@koa/router": "12.0.2",
|
|
61
|
+
"@modelcontextprotocol/sdk": "1.29.0",
|
|
60
62
|
"@paralleldrive/cuid2": "2.2.2",
|
|
61
|
-
"@strapi/admin": "5.
|
|
62
|
-
"@strapi/database": "5.
|
|
63
|
-
"@strapi/generators": "5.
|
|
64
|
-
"@strapi/logger": "5.
|
|
65
|
-
"@strapi/permissions": "5.
|
|
66
|
-
"@strapi/types": "5.
|
|
67
|
-
"@strapi/typescript-utils": "5.
|
|
68
|
-
"@strapi/utils": "5.
|
|
63
|
+
"@strapi/admin": "5.47.0",
|
|
64
|
+
"@strapi/database": "5.47.0",
|
|
65
|
+
"@strapi/generators": "5.47.0",
|
|
66
|
+
"@strapi/logger": "5.47.0",
|
|
67
|
+
"@strapi/permissions": "5.47.0",
|
|
68
|
+
"@strapi/types": "5.47.0",
|
|
69
|
+
"@strapi/typescript-utils": "5.47.0",
|
|
70
|
+
"@strapi/utils": "5.47.0",
|
|
69
71
|
"@vercel/stega": "0.1.2",
|
|
70
72
|
bcryptjs: "2.4.3",
|
|
71
73
|
boxen: "5.1.2",
|
|
@@ -132,11 +134,11 @@ var devDependencies = {
|
|
|
132
134
|
"@types/node": "24.10.0",
|
|
133
135
|
"@types/node-schedule": "2.1.7",
|
|
134
136
|
"@types/statuses": "2.0.1",
|
|
135
|
-
"eslint-config-custom": "5.
|
|
137
|
+
"eslint-config-custom": "5.47.0",
|
|
136
138
|
supertest: "7.2.2",
|
|
137
|
-
tsconfig: "5.
|
|
139
|
+
tsconfig: "5.47.0",
|
|
138
140
|
vitest: "catalog:",
|
|
139
|
-
"vitest-config": "5.
|
|
141
|
+
"vitest-config": "5.47.0"
|
|
140
142
|
};
|
|
141
143
|
var engines = {
|
|
142
144
|
node: ">=20.0.0 <=24.x.x",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"package.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,eAAO,MAAM,SAAS,EAAE,QAAQ,EAU/B,CAAC"}
|
package/dist/providers/index.js
CHANGED
|
@@ -4,6 +4,7 @@ var admin = require('./admin.js');
|
|
|
4
4
|
var ai = require('./ai.js');
|
|
5
5
|
var coreStore = require('./coreStore.js');
|
|
6
6
|
var cron = require('./cron.js');
|
|
7
|
+
var mcp = require('./mcp.js');
|
|
7
8
|
var registries = require('./registries.js');
|
|
8
9
|
var sessionManager = require('./session-manager.js');
|
|
9
10
|
var telemetry = require('./telemetry.js');
|
|
@@ -17,7 +18,8 @@ const providers = [
|
|
|
17
18
|
sessionManager,
|
|
18
19
|
webhooks,
|
|
19
20
|
telemetry,
|
|
20
|
-
cron
|
|
21
|
+
cron,
|
|
22
|
+
mcp
|
|
21
23
|
];
|
|
22
24
|
|
|
23
25
|
exports.providers = providers;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/providers/index.ts"],"sourcesContent":["import admin from './admin';\nimport ai from './ai';\nimport coreStore from './coreStore';\nimport cron from './cron';\nimport registries from './registries';\nimport sessionManager from './session-manager';\nimport telemetry from './telemetry';\nimport webhooks from './webhooks';\n\nimport type { Provider } from './provider';\n\nexport const providers: Provider[] = [\n registries,\n admin,\n ai,\n coreStore,\n sessionManager,\n webhooks,\n telemetry,\n cron,\n];\n"],"names":["providers","registries","admin","ai","coreStore","sessionManager","webhooks","telemetry","cron"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/providers/index.ts"],"sourcesContent":["import admin from './admin';\nimport ai from './ai';\nimport coreStore from './coreStore';\nimport cron from './cron';\nimport mcp from './mcp';\nimport registries from './registries';\nimport sessionManager from './session-manager';\nimport telemetry from './telemetry';\nimport webhooks from './webhooks';\n\nimport type { Provider } from './provider';\n\nexport const providers: Provider[] = [\n registries,\n admin,\n ai,\n coreStore,\n sessionManager,\n webhooks,\n telemetry,\n cron,\n mcp,\n];\n"],"names":["providers","registries","admin","ai","coreStore","sessionManager","webhooks","telemetry","cron","mcp"],"mappings":";;;;;;;;;;;;MAYaA,SAAAA,GAAwB;AACnCC,IAAAA,UAAAA;AACAC,IAAAA,KAAAA;AACAC,IAAAA,EAAAA;AACAC,IAAAA,SAAAA;AACAC,IAAAA,cAAAA;AACAC,IAAAA,QAAAA;AACAC,IAAAA,SAAAA;AACAC,IAAAA,IAAAA;AACAC,IAAAA;;;;;"}
|
package/dist/providers/index.mjs
CHANGED
|
@@ -2,6 +2,7 @@ import admin from './admin.mjs';
|
|
|
2
2
|
import ai from './ai.mjs';
|
|
3
3
|
import coreStore from './coreStore.mjs';
|
|
4
4
|
import cron from './cron.mjs';
|
|
5
|
+
import mcp from './mcp.mjs';
|
|
5
6
|
import registries from './registries.mjs';
|
|
6
7
|
import sessionManager from './session-manager.mjs';
|
|
7
8
|
import telemetry from './telemetry.mjs';
|
|
@@ -15,7 +16,8 @@ const providers = [
|
|
|
15
16
|
sessionManager,
|
|
16
17
|
webhooks,
|
|
17
18
|
telemetry,
|
|
18
|
-
cron
|
|
19
|
+
cron,
|
|
20
|
+
mcp
|
|
19
21
|
];
|
|
20
22
|
|
|
21
23
|
export { providers };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../src/providers/index.ts"],"sourcesContent":["import admin from './admin';\nimport ai from './ai';\nimport coreStore from './coreStore';\nimport cron from './cron';\nimport registries from './registries';\nimport sessionManager from './session-manager';\nimport telemetry from './telemetry';\nimport webhooks from './webhooks';\n\nimport type { Provider } from './provider';\n\nexport const providers: Provider[] = [\n registries,\n admin,\n ai,\n coreStore,\n sessionManager,\n webhooks,\n telemetry,\n cron,\n];\n"],"names":["providers","registries","admin","ai","coreStore","sessionManager","webhooks","telemetry","cron"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/providers/index.ts"],"sourcesContent":["import admin from './admin';\nimport ai from './ai';\nimport coreStore from './coreStore';\nimport cron from './cron';\nimport mcp from './mcp';\nimport registries from './registries';\nimport sessionManager from './session-manager';\nimport telemetry from './telemetry';\nimport webhooks from './webhooks';\n\nimport type { Provider } from './provider';\n\nexport const providers: Provider[] = [\n registries,\n admin,\n ai,\n coreStore,\n sessionManager,\n webhooks,\n telemetry,\n cron,\n mcp,\n];\n"],"names":["providers","registries","admin","ai","coreStore","sessionManager","webhooks","telemetry","cron","mcp"],"mappings":";;;;;;;;;;MAYaA,SAAAA,GAAwB;AACnCC,IAAAA,UAAAA;AACAC,IAAAA,KAAAA;AACAC,IAAAA,EAAAA;AACAC,IAAAA,SAAAA;AACAC,IAAAA,cAAAA;AACAC,IAAAA,QAAAA;AACAC,IAAAA,SAAAA;AACAC,IAAAA,IAAAA;AACAC,IAAAA;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/providers/mcp.ts"],"names":[],"mappings":";AAGA,wBA0BG"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var provider = require('./provider.js');
|
|
4
|
+
var index = require('../services/mcp/index.js');
|
|
5
|
+
|
|
6
|
+
var mcp = provider.defineProvider({
|
|
7
|
+
init (strapi) {
|
|
8
|
+
strapi.add('ai.mcp', ()=>index.createMcpService(strapi));
|
|
9
|
+
},
|
|
10
|
+
async bootstrap (strapi) {
|
|
11
|
+
if (strapi.ai.mcp.isEnabled()) {
|
|
12
|
+
try {
|
|
13
|
+
strapi.log.info('[MCP] Starting MCP server...');
|
|
14
|
+
await strapi.ai.mcp.start();
|
|
15
|
+
} catch (error) {
|
|
16
|
+
strapi.log.error('[MCP] Failed to start MCP server', {
|
|
17
|
+
error
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
} else {
|
|
21
|
+
strapi.log.debug('[MCP] MCP server is disabled in configuration');
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
async destroy (strapi) {
|
|
25
|
+
if (strapi.ai.mcp.isRunning()) {
|
|
26
|
+
try {
|
|
27
|
+
strapi.log.info('[MCP] Stopping MCP server...');
|
|
28
|
+
await strapi.ai.mcp.stop();
|
|
29
|
+
} catch (error) {
|
|
30
|
+
strapi.log.error('[MCP] Failed to stop MCP server', {
|
|
31
|
+
error
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
module.exports = mcp;
|
|
39
|
+
//# sourceMappingURL=mcp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.js","sources":["../../src/providers/mcp.ts"],"sourcesContent":["import { defineProvider } from './provider';\nimport { createMcpService } from '../services/mcp/index';\n\nexport default defineProvider({\n init(strapi) {\n strapi.add('ai.mcp', () => createMcpService(strapi));\n },\n async bootstrap(strapi) {\n if (strapi.ai.mcp.isEnabled()) {\n try {\n strapi.log.info('[MCP] Starting MCP server...');\n await strapi.ai.mcp.start();\n } catch (error) {\n strapi.log.error('[MCP] Failed to start MCP server', { error });\n }\n } else {\n strapi.log.debug('[MCP] MCP server is disabled in configuration');\n }\n },\n async destroy(strapi) {\n if (strapi.ai.mcp.isRunning()) {\n try {\n strapi.log.info('[MCP] Stopping MCP server...');\n await strapi.ai.mcp.stop();\n } catch (error) {\n strapi.log.error('[MCP] Failed to stop MCP server', { error });\n }\n }\n },\n});\n"],"names":["defineProvider","init","strapi","add","createMcpService","bootstrap","ai","mcp","isEnabled","log","info","start","error","debug","destroy","isRunning","stop"],"mappings":";;;;;AAGA,UAAeA,uBAAAA,CAAe;AAC5BC,IAAAA,IAAAA,CAAAA,CAAKC,MAAM,EAAA;AACTA,QAAAA,MAAAA,CAAOC,GAAG,CAAC,QAAA,EAAU,IAAMC,sBAAAA,CAAiBF,MAAAA,CAAAA,CAAAA;AAC9C,IAAA,CAAA;AACA,IAAA,MAAMG,WAAUH,MAAM,EAAA;AACpB,QAAA,IAAIA,OAAOI,EAAE,CAACC,GAAG,CAACC,SAAS,EAAA,EAAI;YAC7B,IAAI;gBACFN,MAAAA,CAAOO,GAAG,CAACC,IAAI,CAAC,8BAAA,CAAA;AAChB,gBAAA,MAAMR,MAAAA,CAAOI,EAAE,CAACC,GAAG,CAACI,KAAK,EAAA;AAC3B,YAAA,CAAA,CAAE,OAAOC,KAAAA,EAAO;AACdV,gBAAAA,MAAAA,CAAOO,GAAG,CAACG,KAAK,CAAC,kCAAA,EAAoC;AAAEA,oBAAAA;AAAM,iBAAA,CAAA;AAC/D,YAAA;QACF,CAAA,MAAO;YACLV,MAAAA,CAAOO,GAAG,CAACI,KAAK,CAAC,+CAAA,CAAA;AACnB,QAAA;AACF,IAAA,CAAA;AACA,IAAA,MAAMC,SAAQZ,MAAM,EAAA;AAClB,QAAA,IAAIA,OAAOI,EAAE,CAACC,GAAG,CAACQ,SAAS,EAAA,EAAI;YAC7B,IAAI;gBACFb,MAAAA,CAAOO,GAAG,CAACC,IAAI,CAAC,8BAAA,CAAA;AAChB,gBAAA,MAAMR,MAAAA,CAAOI,EAAE,CAACC,GAAG,CAACS,IAAI,EAAA;AAC1B,YAAA,CAAA,CAAE,OAAOJ,KAAAA,EAAO;AACdV,gBAAAA,MAAAA,CAAOO,GAAG,CAACG,KAAK,CAAC,iCAAA,EAAmC;AAAEA,oBAAAA;AAAM,iBAAA,CAAA;AAC9D,YAAA;AACF,QAAA;AACF,IAAA;AACF,CAAA,CAAA;;;;"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { defineProvider } from './provider.mjs';
|
|
2
|
+
import { createMcpService } from '../services/mcp/index.mjs';
|
|
3
|
+
|
|
4
|
+
var mcp = defineProvider({
|
|
5
|
+
init (strapi) {
|
|
6
|
+
strapi.add('ai.mcp', ()=>createMcpService(strapi));
|
|
7
|
+
},
|
|
8
|
+
async bootstrap (strapi) {
|
|
9
|
+
if (strapi.ai.mcp.isEnabled()) {
|
|
10
|
+
try {
|
|
11
|
+
strapi.log.info('[MCP] Starting MCP server...');
|
|
12
|
+
await strapi.ai.mcp.start();
|
|
13
|
+
} catch (error) {
|
|
14
|
+
strapi.log.error('[MCP] Failed to start MCP server', {
|
|
15
|
+
error
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
} else {
|
|
19
|
+
strapi.log.debug('[MCP] MCP server is disabled in configuration');
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
async destroy (strapi) {
|
|
23
|
+
if (strapi.ai.mcp.isRunning()) {
|
|
24
|
+
try {
|
|
25
|
+
strapi.log.info('[MCP] Stopping MCP server...');
|
|
26
|
+
await strapi.ai.mcp.stop();
|
|
27
|
+
} catch (error) {
|
|
28
|
+
strapi.log.error('[MCP] Failed to stop MCP server', {
|
|
29
|
+
error
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
export { mcp as default };
|
|
37
|
+
//# sourceMappingURL=mcp.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.mjs","sources":["../../src/providers/mcp.ts"],"sourcesContent":["import { defineProvider } from './provider';\nimport { createMcpService } from '../services/mcp/index';\n\nexport default defineProvider({\n init(strapi) {\n strapi.add('ai.mcp', () => createMcpService(strapi));\n },\n async bootstrap(strapi) {\n if (strapi.ai.mcp.isEnabled()) {\n try {\n strapi.log.info('[MCP] Starting MCP server...');\n await strapi.ai.mcp.start();\n } catch (error) {\n strapi.log.error('[MCP] Failed to start MCP server', { error });\n }\n } else {\n strapi.log.debug('[MCP] MCP server is disabled in configuration');\n }\n },\n async destroy(strapi) {\n if (strapi.ai.mcp.isRunning()) {\n try {\n strapi.log.info('[MCP] Stopping MCP server...');\n await strapi.ai.mcp.stop();\n } catch (error) {\n strapi.log.error('[MCP] Failed to stop MCP server', { error });\n }\n }\n },\n});\n"],"names":["defineProvider","init","strapi","add","createMcpService","bootstrap","ai","mcp","isEnabled","log","info","start","error","debug","destroy","isRunning","stop"],"mappings":";;;AAGA,UAAeA,cAAAA,CAAe;AAC5BC,IAAAA,IAAAA,CAAAA,CAAKC,MAAM,EAAA;AACTA,QAAAA,MAAAA,CAAOC,GAAG,CAAC,QAAA,EAAU,IAAMC,gBAAAA,CAAiBF,MAAAA,CAAAA,CAAAA;AAC9C,IAAA,CAAA;AACA,IAAA,MAAMG,WAAUH,MAAM,EAAA;AACpB,QAAA,IAAIA,OAAOI,EAAE,CAACC,GAAG,CAACC,SAAS,EAAA,EAAI;YAC7B,IAAI;gBACFN,MAAAA,CAAOO,GAAG,CAACC,IAAI,CAAC,8BAAA,CAAA;AAChB,gBAAA,MAAMR,MAAAA,CAAOI,EAAE,CAACC,GAAG,CAACI,KAAK,EAAA;AAC3B,YAAA,CAAA,CAAE,OAAOC,KAAAA,EAAO;AACdV,gBAAAA,MAAAA,CAAOO,GAAG,CAACG,KAAK,CAAC,kCAAA,EAAoC;AAAEA,oBAAAA;AAAM,iBAAA,CAAA;AAC/D,YAAA;QACF,CAAA,MAAO;YACLV,MAAAA,CAAOO,GAAG,CAACI,KAAK,CAAC,+CAAA,CAAA;AACnB,QAAA;AACF,IAAA,CAAA;AACA,IAAA,MAAMC,SAAQZ,MAAM,EAAA;AAClB,QAAA,IAAIA,OAAOI,EAAE,CAACC,GAAG,CAACQ,SAAS,EAAA,EAAI;YAC7B,IAAI;gBACFb,MAAAA,CAAOO,GAAG,CAACC,IAAI,CAAC,8BAAA,CAAA;AAChB,gBAAA,MAAMR,MAAAA,CAAOI,EAAE,CAACC,GAAG,CAACS,IAAI,EAAA;AAC1B,YAAA,CAAA,CAAE,OAAOJ,KAAAA,EAAO;AACdV,gBAAAA,MAAAA,CAAOO,GAAG,CAACG,KAAK,CAAC,iCAAA,EAAmC;AAAEA,oBAAAA;AAAM,iBAAA,CAAA;AAC9D,YAAA;AACF,QAAA;AACF,IAAA;AACF,CAAA,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/providers/session-manager.ts"],"names":[],"mappings":";AAIA,
|
|
1
|
+
{"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/providers/session-manager.ts"],"names":[],"mappings":";AAIA,wBAmBG"}
|
|
@@ -9,8 +9,7 @@ var sessionManager = provider.defineProvider({
|
|
|
9
9
|
db: strapi.db
|
|
10
10
|
}));
|
|
11
11
|
},
|
|
12
|
-
async
|
|
13
|
-
// Get JWT secret from admin auth settings (same as admin token service)
|
|
12
|
+
async bootstrap (strapi) {
|
|
14
13
|
const adminAuth = strapi.config.get('admin.auth');
|
|
15
14
|
const jwtSecret = adminAuth?.secret;
|
|
16
15
|
if (!jwtSecret) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-manager.js","sources":["../../src/providers/session-manager.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { defineProvider } from './provider';\nimport { createSessionManager } from '../services/session-manager';\n\nexport default defineProvider({\n init(strapi) {\n strapi.add('sessionManager', () =>\n createSessionManager({\n db: strapi.db,\n })\n );\n },\n\n async
|
|
1
|
+
{"version":3,"file":"session-manager.js","sources":["../../src/providers/session-manager.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { defineProvider } from './provider';\nimport { createSessionManager } from '../services/session-manager';\n\nexport default defineProvider({\n init(strapi) {\n strapi.add('sessionManager', () =>\n createSessionManager({\n db: strapi.db,\n })\n );\n },\n\n async bootstrap(strapi) {\n const adminAuth = strapi.config.get<Core.Config.Admin['auth']>('admin.auth');\n const jwtSecret = adminAuth?.secret;\n\n if (!jwtSecret) {\n throw new Error(\n 'Missing admin.auth.secret configuration. The SessionManager requires a JWT secret'\n );\n }\n },\n});\n"],"names":["defineProvider","init","strapi","add","createSessionManager","db","bootstrap","adminAuth","config","get","jwtSecret","secret","Error"],"mappings":";;;;;AAIA,qBAAeA,uBAAAA,CAAe;AAC5BC,IAAAA,IAAAA,CAAAA,CAAKC,MAAM,EAAA;AACTA,QAAAA,MAAAA,CAAOC,GAAG,CAAC,gBAAA,EAAkB,IAC3BC,qCAAAA,CAAqB;AACnBC,gBAAAA,EAAAA,EAAIH,OAAOG;AACb,aAAA,CAAA,CAAA;AAEJ,IAAA,CAAA;AAEA,IAAA,MAAMC,WAAUJ,MAAM,EAAA;AACpB,QAAA,MAAMK,SAAAA,GAAYL,MAAAA,CAAOM,MAAM,CAACC,GAAG,CAA4B,YAAA,CAAA;AAC/D,QAAA,MAAMC,YAAYH,SAAAA,EAAWI,MAAAA;AAE7B,QAAA,IAAI,CAACD,SAAAA,EAAW;AACd,YAAA,MAAM,IAAIE,KAAAA,CACR,mFAAA,CAAA;AAEJ,QAAA;AACF,IAAA;AACF,CAAA,CAAA;;;;"}
|
|
@@ -7,8 +7,7 @@ var sessionManager = defineProvider({
|
|
|
7
7
|
db: strapi.db
|
|
8
8
|
}));
|
|
9
9
|
},
|
|
10
|
-
async
|
|
11
|
-
// Get JWT secret from admin auth settings (same as admin token service)
|
|
10
|
+
async bootstrap (strapi) {
|
|
12
11
|
const adminAuth = strapi.config.get('admin.auth');
|
|
13
12
|
const jwtSecret = adminAuth?.secret;
|
|
14
13
|
if (!jwtSecret) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-manager.mjs","sources":["../../src/providers/session-manager.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { defineProvider } from './provider';\nimport { createSessionManager } from '../services/session-manager';\n\nexport default defineProvider({\n init(strapi) {\n strapi.add('sessionManager', () =>\n createSessionManager({\n db: strapi.db,\n })\n );\n },\n\n async
|
|
1
|
+
{"version":3,"file":"session-manager.mjs","sources":["../../src/providers/session-manager.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { defineProvider } from './provider';\nimport { createSessionManager } from '../services/session-manager';\n\nexport default defineProvider({\n init(strapi) {\n strapi.add('sessionManager', () =>\n createSessionManager({\n db: strapi.db,\n })\n );\n },\n\n async bootstrap(strapi) {\n const adminAuth = strapi.config.get<Core.Config.Admin['auth']>('admin.auth');\n const jwtSecret = adminAuth?.secret;\n\n if (!jwtSecret) {\n throw new Error(\n 'Missing admin.auth.secret configuration. The SessionManager requires a JWT secret'\n );\n }\n },\n});\n"],"names":["defineProvider","init","strapi","add","createSessionManager","db","bootstrap","adminAuth","config","get","jwtSecret","secret","Error"],"mappings":";;;AAIA,qBAAeA,cAAAA,CAAe;AAC5BC,IAAAA,IAAAA,CAAAA,CAAKC,MAAM,EAAA;AACTA,QAAAA,MAAAA,CAAOC,GAAG,CAAC,gBAAA,EAAkB,IAC3BC,oBAAAA,CAAqB;AACnBC,gBAAAA,EAAAA,EAAIH,OAAOG;AACb,aAAA,CAAA,CAAA;AAEJ,IAAA,CAAA;AAEA,IAAA,MAAMC,WAAUJ,MAAM,EAAA;AACpB,QAAA,MAAMK,SAAAA,GAAYL,MAAAA,CAAOM,MAAM,CAACC,GAAG,CAA4B,YAAA,CAAA;AAC/D,QAAA,MAAMC,YAAYH,SAAAA,EAAWI,MAAAA;AAE7B,QAAA,IAAI,CAACD,SAAAA,EAAW;AACd,YAAA,MAAM,IAAIE,KAAAA,CACR,mFAAA,CAAA;AAEJ,QAAA;AACF,IAAA;AACF,CAAA,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../../src/services/ai.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAEnD,eAAO,MAAM,iBAAiB,WAAY,KAAK,MAAM,KAAG,QAAQ,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../../src/services/ai.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAEnD,eAAO,MAAM,iBAAiB,WAAY,KAAK,MAAM,KAAG,QAAQ,EAAE,CAAC,WAQjE,CAAC"}
|
package/dist/services/ai.js
CHANGED
package/dist/services/ai.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai.js","sources":["../../src/services/ai.ts"],"sourcesContent":["import type { Core, Modules } from '@strapi/types';\n\nexport const createAiNamespace = (strapi: Core.Strapi): Modules.AI.AiNamespace => ({\n get admin(): Modules.AI.AiAdminService {\n return strapi.get('ai.admin');\n },\n});\n"],"names":["createAiNamespace","strapi","admin","get"],"mappings":";;AAEO,MAAMA,iBAAAA,GAAoB,CAACC,MAAAA,IAAiD;AACjF,QAAA,IAAIC,KAAAA,CAAAA,GAAmC;YACrC,OAAOD,MAAAA,CAAOE,GAAG,CAAC,UAAA,CAAA;AACpB,QAAA;AACF,KAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"ai.js","sources":["../../src/services/ai.ts"],"sourcesContent":["import type { Core, Modules } from '@strapi/types';\n\nexport const createAiNamespace = (strapi: Core.Strapi): Modules.AI.AiNamespace => ({\n get admin(): Modules.AI.AiAdminService {\n return strapi.get('ai.admin');\n },\n\n get mcp(): Modules.MCP.McpService {\n return strapi.get('ai.mcp');\n },\n});\n"],"names":["createAiNamespace","strapi","admin","get","mcp"],"mappings":";;AAEO,MAAMA,iBAAAA,GAAoB,CAACC,MAAAA,IAAiD;AACjF,QAAA,IAAIC,KAAAA,CAAAA,GAAmC;YACrC,OAAOD,MAAAA,CAAOE,GAAG,CAAC,UAAA,CAAA;AACpB,QAAA,CAAA;AAEA,QAAA,IAAIC,GAAAA,CAAAA,GAA8B;YAChC,OAAOH,MAAAA,CAAOE,GAAG,CAAC,QAAA,CAAA;AACpB,QAAA;AACF,KAAA;;;;"}
|
package/dist/services/ai.mjs
CHANGED
package/dist/services/ai.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai.mjs","sources":["../../src/services/ai.ts"],"sourcesContent":["import type { Core, Modules } from '@strapi/types';\n\nexport const createAiNamespace = (strapi: Core.Strapi): Modules.AI.AiNamespace => ({\n get admin(): Modules.AI.AiAdminService {\n return strapi.get('ai.admin');\n },\n});\n"],"names":["createAiNamespace","strapi","admin","get"],"mappings":"AAEO,MAAMA,iBAAAA,GAAoB,CAACC,MAAAA,IAAiD;AACjF,QAAA,IAAIC,KAAAA,CAAAA,GAAmC;YACrC,OAAOD,MAAAA,CAAOE,GAAG,CAAC,UAAA,CAAA;AACpB,QAAA;AACF,KAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"ai.mjs","sources":["../../src/services/ai.ts"],"sourcesContent":["import type { Core, Modules } from '@strapi/types';\n\nexport const createAiNamespace = (strapi: Core.Strapi): Modules.AI.AiNamespace => ({\n get admin(): Modules.AI.AiAdminService {\n return strapi.get('ai.admin');\n },\n\n get mcp(): Modules.MCP.McpService {\n return strapi.get('ai.mcp');\n },\n});\n"],"names":["createAiNamespace","strapi","admin","get","mcp"],"mappings":"AAEO,MAAMA,iBAAAA,GAAoB,CAACC,MAAAA,IAAiD;AACjF,QAAA,IAAIC,KAAAA,CAAAA,GAAmC;YACrC,OAAOD,MAAAA,CAAOE,GAAG,CAAC,UAAA,CAAA;AACpB,QAAA,CAAA;AAEA,QAAA,IAAIC,GAAAA,CAAAA,GAA8B;YAChC,OAAOH,MAAAA,CAAOE,GAAG,CAAC,QAAA,CAAA;AACpB,QAAA;AACF,KAAA;;;;"}
|
|
@@ -1,24 +1,10 @@
|
|
|
1
1
|
/// <reference types="lodash" />
|
|
2
|
-
import type { Modules, Struct
|
|
3
|
-
/**
|
|
4
|
-
* Parses and sanitizes the hasPublishedVersion parameter.
|
|
5
|
-
* Returns normalized boolean value or undefined if not provided.
|
|
6
|
-
* Throws ValidationError for invalid input (400 response).
|
|
7
|
-
*/
|
|
8
|
-
declare const parseHasPublishedVersion: (value: unknown) => boolean | undefined;
|
|
9
|
-
/**
|
|
10
|
-
* Synchronous helper that returns the "has published version" condition for a given model.
|
|
11
|
-
* Returns the documentId subquery condition, or null if the model doesn't use draft & publish.
|
|
12
|
-
*
|
|
13
|
-
* This is used by the filters function in transform/query.ts so that the condition
|
|
14
|
-
* is applied to both root and nested (populate) queries.
|
|
15
|
-
*/
|
|
16
|
-
declare const getHasPublishedVersionCondition: (uid: UID.Schema, hasPublishedVersion: boolean) => Record<string, any> | null;
|
|
2
|
+
import type { Modules, Struct } from '@strapi/types';
|
|
17
3
|
declare const setStatusToDraftCurry: import("lodash").CurriedFunction2<Struct.SingleTypeSchema | Struct.CollectionTypeSchema, Modules.Documents.Params.All, Modules.Documents.Params.All>;
|
|
18
4
|
declare const defaultToDraftCurry: import("lodash").CurriedFunction1<Modules.Documents.Params.All, Modules.Documents.Params.All>;
|
|
19
5
|
declare const defaultStatusCurry: import("lodash").CurriedFunction2<Struct.SingleTypeSchema | Struct.CollectionTypeSchema, Modules.Documents.Params.All, Modules.Documents.Params.All>;
|
|
20
6
|
declare const filterDataPublishedAtCurry: import("lodash").CurriedFunction1<Modules.Documents.Params.All, Modules.Documents.Params.All>;
|
|
21
7
|
declare const statusToLookupCurry: import("lodash").CurriedFunction2<Struct.SingleTypeSchema | Struct.CollectionTypeSchema, Modules.Documents.Params.All, Modules.Documents.Params.All>;
|
|
22
8
|
declare const statusToDataCurry: import("lodash").CurriedFunction2<Struct.SingleTypeSchema | Struct.CollectionTypeSchema, Modules.Documents.Params.All, Modules.Documents.Params.All>;
|
|
23
|
-
export { setStatusToDraftCurry as setStatusToDraft, defaultToDraftCurry as defaultToDraft, defaultStatusCurry as defaultStatus, filterDataPublishedAtCurry as filterDataPublishedAt, statusToLookupCurry as statusToLookup, statusToDataCurry as statusToData,
|
|
9
|
+
export { setStatusToDraftCurry as setStatusToDraft, defaultToDraftCurry as defaultToDraft, defaultStatusCurry as defaultStatus, filterDataPublishedAtCurry as filterDataPublishedAt, statusToLookupCurry as statusToLookup, statusToDataCurry as statusToData, };
|
|
24
10
|
//# sourceMappingURL=draft-and-publish.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"draft-and-publish.d.ts","sourceRoot":"","sources":["../../../src/services/document-service/draft-and-publish.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"draft-and-publish.d.ts","sourceRoot":"","sources":["../../../src/services/document-service/draft-and-publish.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAwGrD,QAAA,MAAM,qBAAqB,sJAA0B,CAAC;AACtD,QAAA,MAAM,mBAAmB,+FAAwB,CAAC;AAClD,QAAA,MAAM,kBAAkB,sJAAuB,CAAC;AAChD,QAAA,MAAM,0BAA0B,+FAA+B,CAAC;AAChE,QAAA,MAAM,mBAAmB,sJAAwB,CAAC;AAClD,QAAA,MAAM,iBAAiB,sJAAsB,CAAC;AAE9C,OAAO,EACL,qBAAqB,IAAI,gBAAgB,EACzC,mBAAmB,IAAI,cAAc,EACrC,kBAAkB,IAAI,aAAa,EACnC,0BAA0B,IAAI,qBAAqB,EACnD,mBAAmB,IAAI,cAAc,EACrC,iBAAiB,IAAI,YAAY,GAClC,CAAC"}
|
|
@@ -93,57 +93,6 @@ var strapiUtils = require('@strapi/utils');
|
|
|
93
93
|
}
|
|
94
94
|
return params;
|
|
95
95
|
};
|
|
96
|
-
/**
|
|
97
|
-
* Parses and sanitizes the hasPublishedVersion parameter.
|
|
98
|
-
* Returns normalized boolean value or undefined if not provided.
|
|
99
|
-
* Throws ValidationError for invalid input (400 response).
|
|
100
|
-
*/ const parseHasPublishedVersion = (value)=>{
|
|
101
|
-
if (value === undefined || value === null) {
|
|
102
|
-
return undefined;
|
|
103
|
-
}
|
|
104
|
-
if (value === true || value === 'true') {
|
|
105
|
-
return true;
|
|
106
|
-
}
|
|
107
|
-
if (value === false || value === 'false') {
|
|
108
|
-
return false;
|
|
109
|
-
}
|
|
110
|
-
throw new strapiUtils.errors.ValidationError("Invalid value for 'hasPublishedVersion'. Expected boolean or 'true'/'false' string.");
|
|
111
|
-
};
|
|
112
|
-
/**
|
|
113
|
-
* Synchronous helper that returns the "has published version" condition for a given model.
|
|
114
|
-
* Returns the documentId subquery condition, or null if the model doesn't use draft & publish.
|
|
115
|
-
*
|
|
116
|
-
* This is used by the filters function in transform/query.ts so that the condition
|
|
117
|
-
* is applied to both root and nested (populate) queries.
|
|
118
|
-
*/ const getHasPublishedVersionCondition = (uid, hasPublishedVersion)=>{
|
|
119
|
-
const model = strapi.getModel(uid);
|
|
120
|
-
// Ignore if target model has disabled DP or doesn't exist (e.g., components)
|
|
121
|
-
if (!model || !strapiUtils.contentTypes.hasDraftAndPublish(model)) {
|
|
122
|
-
return null;
|
|
123
|
-
}
|
|
124
|
-
// Get table and column names from metadata
|
|
125
|
-
const meta = strapi.db.metadata.get(uid);
|
|
126
|
-
const tableName = meta.tableName;
|
|
127
|
-
const documentIdAttr = meta.attributes.documentId;
|
|
128
|
-
const publishedAtAttr = meta.attributes.publishedAt;
|
|
129
|
-
const documentIdColumn = 'columnName' in documentIdAttr && documentIdAttr.columnName || 'document_id';
|
|
130
|
-
const publishedAtColumn = 'columnName' in publishedAtAttr && publishedAtAttr.columnName || 'published_at';
|
|
131
|
-
// Create a Knex subquery that selects document IDs with published entries
|
|
132
|
-
const knex = strapi.db.connection;
|
|
133
|
-
const subquery = knex(tableName).distinct(documentIdColumn).whereNotNull(publishedAtColumn);
|
|
134
|
-
if (hasPublishedVersion) {
|
|
135
|
-
return {
|
|
136
|
-
documentId: {
|
|
137
|
-
$in: subquery
|
|
138
|
-
}
|
|
139
|
-
};
|
|
140
|
-
}
|
|
141
|
-
return {
|
|
142
|
-
documentId: {
|
|
143
|
-
$notIn: subquery
|
|
144
|
-
}
|
|
145
|
-
};
|
|
146
|
-
};
|
|
147
96
|
const setStatusToDraftCurry = fp.curry(setStatusToDraft);
|
|
148
97
|
const defaultToDraftCurry = fp.curry(defaultToDraft);
|
|
149
98
|
const defaultStatusCurry = fp.curry(defaultStatus);
|
|
@@ -154,8 +103,6 @@ const statusToDataCurry = fp.curry(statusToData);
|
|
|
154
103
|
exports.defaultStatus = defaultStatusCurry;
|
|
155
104
|
exports.defaultToDraft = defaultToDraftCurry;
|
|
156
105
|
exports.filterDataPublishedAt = filterDataPublishedAtCurry;
|
|
157
|
-
exports.getHasPublishedVersionCondition = getHasPublishedVersionCondition;
|
|
158
|
-
exports.parseHasPublishedVersion = parseHasPublishedVersion;
|
|
159
106
|
exports.setStatusToDraft = setStatusToDraftCurry;
|
|
160
107
|
exports.statusToData = statusToDataCurry;
|
|
161
108
|
exports.statusToLookup = statusToLookupCurry;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"draft-and-publish.js","sources":["../../../src/services/document-service/draft-and-publish.ts"],"sourcesContent":["import { assoc, curry } from 'lodash/fp';\n\nimport type { Modules, Struct, UID } from '@strapi/types';\nimport { contentTypes, errors } from '@strapi/utils';\n\ntype ParamsTransform = (params: Modules.Documents.Params.All) => Modules.Documents.Params.All;\n\ntype TransformWithContentType = (\n contentType: Struct.SingleTypeSchema | Struct.CollectionTypeSchema,\n params: Modules.Documents.Params.All\n) => Modules.Documents.Params.All;\n\n/**\n * DP enabled -> set status to draft\n * DP disabled -> Used mostly for parsing relations, so there is not a need for a default.\n */\nconst setStatusToDraft: TransformWithContentType = (contentType, params) => {\n if (!contentTypes.hasDraftAndPublish(contentType) && params.status) {\n return params;\n }\n\n return assoc('status', 'draft', params);\n};\n\n/**\n * Adds a default status of `draft` to the params\n */\nconst defaultToDraft: ParamsTransform = (params) => {\n // Default to draft if no status is provided or it's invalid\n if (!params.status || params.status !== 'published') {\n return assoc('status', 'draft', params);\n }\n\n return params;\n};\n\n/**\n * DP disabled -> ignore status\n * DP enabled -> set status to draft if no status is provided or it's invalid\n */\nconst defaultStatus: TransformWithContentType = (contentType, params) => {\n if (!contentTypes.hasDraftAndPublish(contentType)) {\n return params;\n }\n\n // Default to draft if no status is provided or it's invalid\n if (!params.status || params.status !== 'published') {\n return defaultToDraft(params);\n }\n\n return params;\n};\n\n/**\n * In mutating actions we don't want user to set the publishedAt attribute.\n */\nconst filterDataPublishedAt: ParamsTransform = (params) => {\n if (params?.data?.publishedAt) {\n return assoc(['data', 'publishedAt'], null, params);\n }\n\n return params;\n};\n\n/**\n * Add status lookup query to the params\n */\nconst statusToLookup: TransformWithContentType = (contentType, params) => {\n if (!contentTypes.hasDraftAndPublish(contentType)) {\n return params;\n }\n\n const lookup = params.lookup || {};\n\n switch (params?.status) {\n case 'published':\n return assoc(['lookup', 'publishedAt'], { $notNull: true }, params);\n case 'draft':\n return assoc(['lookup', 'publishedAt'], { $null: true }, params);\n default:\n break;\n }\n\n return assoc('lookup', lookup, params);\n};\n\n/**\n * Translate publication status parameter into the data that will be saved\n */\nconst statusToData: TransformWithContentType = (contentType, params) => {\n if (!contentTypes.hasDraftAndPublish(contentType)) {\n return assoc(['data', 'publishedAt'], new Date(), params);\n }\n\n switch (params?.status) {\n case 'published':\n return assoc(['data', 'publishedAt'], new Date(), params);\n case 'draft':\n return assoc(['data', 'publishedAt'], null, params);\n default:\n break;\n }\n\n return params;\n};\n\n/**\n * Parses and sanitizes the hasPublishedVersion parameter.\n * Returns normalized boolean value or undefined if not provided.\n * Throws ValidationError for invalid input (400 response).\n */\nconst parseHasPublishedVersion = (value: unknown): boolean | undefined => {\n if (value === undefined || value === null) {\n return undefined;\n }\n\n if (value === true || value === 'true') {\n return true;\n }\n\n if (value === false || value === 'false') {\n return false;\n }\n\n throw new errors.ValidationError(\n \"Invalid value for 'hasPublishedVersion'. Expected boolean or 'true'/'false' string.\"\n );\n};\n\n/**\n * Synchronous helper that returns the \"has published version\" condition for a given model.\n * Returns the documentId subquery condition, or null if the model doesn't use draft & publish.\n *\n * This is used by the filters function in transform/query.ts so that the condition\n * is applied to both root and nested (populate) queries.\n */\nconst getHasPublishedVersionCondition = (\n uid: UID.Schema,\n hasPublishedVersion: boolean\n): Record<string, any> | null => {\n const model = strapi.getModel(uid);\n\n // Ignore if target model has disabled DP or doesn't exist (e.g., components)\n if (!model || !contentTypes.hasDraftAndPublish(model)) {\n return null;\n }\n\n // Get table and column names from metadata\n const meta = strapi.db.metadata.get(uid);\n const tableName = meta.tableName;\n const documentIdAttr = meta.attributes.documentId;\n const publishedAtAttr = meta.attributes.publishedAt;\n const documentIdColumn =\n ('columnName' in documentIdAttr && documentIdAttr.columnName) || 'document_id';\n const publishedAtColumn =\n ('columnName' in publishedAtAttr && publishedAtAttr.columnName) || 'published_at';\n\n // Create a Knex subquery that selects document IDs with published entries\n const knex = strapi.db.connection;\n const subquery = knex(tableName).distinct(documentIdColumn).whereNotNull(publishedAtColumn);\n\n if (hasPublishedVersion) {\n return { documentId: { $in: subquery } };\n }\n\n return { documentId: { $notIn: subquery } };\n};\n\nconst setStatusToDraftCurry = curry(setStatusToDraft);\nconst defaultToDraftCurry = curry(defaultToDraft);\nconst defaultStatusCurry = curry(defaultStatus);\nconst filterDataPublishedAtCurry = curry(filterDataPublishedAt);\nconst statusToLookupCurry = curry(statusToLookup);\nconst statusToDataCurry = curry(statusToData);\n\nexport {\n setStatusToDraftCurry as setStatusToDraft,\n defaultToDraftCurry as defaultToDraft,\n defaultStatusCurry as defaultStatus,\n filterDataPublishedAtCurry as filterDataPublishedAt,\n statusToLookupCurry as statusToLookup,\n statusToDataCurry as statusToData,\n parseHasPublishedVersion,\n getHasPublishedVersionCondition,\n};\n"],"names":["setStatusToDraft","contentType","params","contentTypes","hasDraftAndPublish","status","assoc","defaultToDraft","defaultStatus","filterDataPublishedAt","data","publishedAt","statusToLookup","lookup","$notNull","$null","statusToData","Date","parseHasPublishedVersion","value","undefined","errors","ValidationError","getHasPublishedVersionCondition","uid","hasPublishedVersion","model","strapi","getModel","meta","db","metadata","get","tableName","documentIdAttr","attributes","documentId","publishedAtAttr","documentIdColumn","columnName","publishedAtColumn","knex","connection","subquery","distinct","whereNotNull","$in","$notIn","setStatusToDraftCurry","curry","defaultToDraftCurry","defaultStatusCurry","filterDataPublishedAtCurry","statusToLookupCurry","statusToDataCurry"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"draft-and-publish.js","sources":["../../../src/services/document-service/draft-and-publish.ts"],"sourcesContent":["import { assoc, curry } from 'lodash/fp';\n\nimport type { Modules, Struct } from '@strapi/types';\nimport { contentTypes } from '@strapi/utils';\n\ntype ParamsTransform = (params: Modules.Documents.Params.All) => Modules.Documents.Params.All;\n\ntype TransformWithContentType = (\n contentType: Struct.SingleTypeSchema | Struct.CollectionTypeSchema,\n params: Modules.Documents.Params.All\n) => Modules.Documents.Params.All;\n\n/**\n * DP enabled -> set status to draft\n * DP disabled -> Used mostly for parsing relations, so there is not a need for a default.\n */\nconst setStatusToDraft: TransformWithContentType = (contentType, params) => {\n if (!contentTypes.hasDraftAndPublish(contentType) && params.status) {\n return params;\n }\n\n return assoc('status', 'draft', params);\n};\n\n/**\n * Adds a default status of `draft` to the params\n */\nconst defaultToDraft: ParamsTransform = (params) => {\n // Default to draft if no status is provided or it's invalid\n if (!params.status || params.status !== 'published') {\n return assoc('status', 'draft', params);\n }\n\n return params;\n};\n\n/**\n * DP disabled -> ignore status\n * DP enabled -> set status to draft if no status is provided or it's invalid\n */\nconst defaultStatus: TransformWithContentType = (contentType, params) => {\n if (!contentTypes.hasDraftAndPublish(contentType)) {\n return params;\n }\n\n // Default to draft if no status is provided or it's invalid\n if (!params.status || params.status !== 'published') {\n return defaultToDraft(params);\n }\n\n return params;\n};\n\n/**\n * In mutating actions we don't want user to set the publishedAt attribute.\n */\nconst filterDataPublishedAt: ParamsTransform = (params) => {\n if (params?.data?.publishedAt) {\n return assoc(['data', 'publishedAt'], null, params);\n }\n\n return params;\n};\n\n/**\n * Add status lookup query to the params\n */\nconst statusToLookup: TransformWithContentType = (contentType, params) => {\n if (!contentTypes.hasDraftAndPublish(contentType)) {\n return params;\n }\n\n const lookup = params.lookup || {};\n\n switch (params?.status) {\n case 'published':\n return assoc(['lookup', 'publishedAt'], { $notNull: true }, params);\n case 'draft':\n return assoc(['lookup', 'publishedAt'], { $null: true }, params);\n default:\n break;\n }\n\n return assoc('lookup', lookup, params);\n};\n\n/**\n * Translate publication status parameter into the data that will be saved\n */\nconst statusToData: TransformWithContentType = (contentType, params) => {\n if (!contentTypes.hasDraftAndPublish(contentType)) {\n return assoc(['data', 'publishedAt'], new Date(), params);\n }\n\n switch (params?.status) {\n case 'published':\n return assoc(['data', 'publishedAt'], new Date(), params);\n case 'draft':\n return assoc(['data', 'publishedAt'], null, params);\n default:\n break;\n }\n\n return params;\n};\n\nconst setStatusToDraftCurry = curry(setStatusToDraft);\nconst defaultToDraftCurry = curry(defaultToDraft);\nconst defaultStatusCurry = curry(defaultStatus);\nconst filterDataPublishedAtCurry = curry(filterDataPublishedAt);\nconst statusToLookupCurry = curry(statusToLookup);\nconst statusToDataCurry = curry(statusToData);\n\nexport {\n setStatusToDraftCurry as setStatusToDraft,\n defaultToDraftCurry as defaultToDraft,\n defaultStatusCurry as defaultStatus,\n filterDataPublishedAtCurry as filterDataPublishedAt,\n statusToLookupCurry as statusToLookup,\n statusToDataCurry as statusToData,\n};\n"],"names":["setStatusToDraft","contentType","params","contentTypes","hasDraftAndPublish","status","assoc","defaultToDraft","defaultStatus","filterDataPublishedAt","data","publishedAt","statusToLookup","lookup","$notNull","$null","statusToData","Date","setStatusToDraftCurry","curry","defaultToDraftCurry","defaultStatusCurry","filterDataPublishedAtCurry","statusToLookupCurry","statusToDataCurry"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { curry, assoc } from 'lodash/fp';
|
|
2
|
-
import { contentTypes
|
|
2
|
+
import { contentTypes } from '@strapi/utils';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* DP enabled -> set status to draft
|
|
@@ -91,57 +91,6 @@ import { contentTypes, errors } from '@strapi/utils';
|
|
|
91
91
|
}
|
|
92
92
|
return params;
|
|
93
93
|
};
|
|
94
|
-
/**
|
|
95
|
-
* Parses and sanitizes the hasPublishedVersion parameter.
|
|
96
|
-
* Returns normalized boolean value or undefined if not provided.
|
|
97
|
-
* Throws ValidationError for invalid input (400 response).
|
|
98
|
-
*/ const parseHasPublishedVersion = (value)=>{
|
|
99
|
-
if (value === undefined || value === null) {
|
|
100
|
-
return undefined;
|
|
101
|
-
}
|
|
102
|
-
if (value === true || value === 'true') {
|
|
103
|
-
return true;
|
|
104
|
-
}
|
|
105
|
-
if (value === false || value === 'false') {
|
|
106
|
-
return false;
|
|
107
|
-
}
|
|
108
|
-
throw new errors.ValidationError("Invalid value for 'hasPublishedVersion'. Expected boolean or 'true'/'false' string.");
|
|
109
|
-
};
|
|
110
|
-
/**
|
|
111
|
-
* Synchronous helper that returns the "has published version" condition for a given model.
|
|
112
|
-
* Returns the documentId subquery condition, or null if the model doesn't use draft & publish.
|
|
113
|
-
*
|
|
114
|
-
* This is used by the filters function in transform/query.ts so that the condition
|
|
115
|
-
* is applied to both root and nested (populate) queries.
|
|
116
|
-
*/ const getHasPublishedVersionCondition = (uid, hasPublishedVersion)=>{
|
|
117
|
-
const model = strapi.getModel(uid);
|
|
118
|
-
// Ignore if target model has disabled DP or doesn't exist (e.g., components)
|
|
119
|
-
if (!model || !contentTypes.hasDraftAndPublish(model)) {
|
|
120
|
-
return null;
|
|
121
|
-
}
|
|
122
|
-
// Get table and column names from metadata
|
|
123
|
-
const meta = strapi.db.metadata.get(uid);
|
|
124
|
-
const tableName = meta.tableName;
|
|
125
|
-
const documentIdAttr = meta.attributes.documentId;
|
|
126
|
-
const publishedAtAttr = meta.attributes.publishedAt;
|
|
127
|
-
const documentIdColumn = 'columnName' in documentIdAttr && documentIdAttr.columnName || 'document_id';
|
|
128
|
-
const publishedAtColumn = 'columnName' in publishedAtAttr && publishedAtAttr.columnName || 'published_at';
|
|
129
|
-
// Create a Knex subquery that selects document IDs with published entries
|
|
130
|
-
const knex = strapi.db.connection;
|
|
131
|
-
const subquery = knex(tableName).distinct(documentIdColumn).whereNotNull(publishedAtColumn);
|
|
132
|
-
if (hasPublishedVersion) {
|
|
133
|
-
return {
|
|
134
|
-
documentId: {
|
|
135
|
-
$in: subquery
|
|
136
|
-
}
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
|
-
return {
|
|
140
|
-
documentId: {
|
|
141
|
-
$notIn: subquery
|
|
142
|
-
}
|
|
143
|
-
};
|
|
144
|
-
};
|
|
145
94
|
const setStatusToDraftCurry = curry(setStatusToDraft);
|
|
146
95
|
const defaultToDraftCurry = curry(defaultToDraft);
|
|
147
96
|
const defaultStatusCurry = curry(defaultStatus);
|
|
@@ -149,5 +98,5 @@ const filterDataPublishedAtCurry = curry(filterDataPublishedAt);
|
|
|
149
98
|
const statusToLookupCurry = curry(statusToLookup);
|
|
150
99
|
const statusToDataCurry = curry(statusToData);
|
|
151
100
|
|
|
152
|
-
export { defaultStatusCurry as defaultStatus, defaultToDraftCurry as defaultToDraft, filterDataPublishedAtCurry as filterDataPublishedAt,
|
|
101
|
+
export { defaultStatusCurry as defaultStatus, defaultToDraftCurry as defaultToDraft, filterDataPublishedAtCurry as filterDataPublishedAt, setStatusToDraftCurry as setStatusToDraft, statusToDataCurry as statusToData, statusToLookupCurry as statusToLookup };
|
|
153
102
|
//# sourceMappingURL=draft-and-publish.mjs.map
|