@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.
Files changed (205) hide show
  1. package/dist/core-api/routes/index.js +2 -0
  2. package/dist/core-api/routes/index.js.map +1 -1
  3. package/dist/core-api/routes/index.mjs +2 -0
  4. package/dist/core-api/routes/index.mjs.map +1 -1
  5. package/dist/core-api/routes/validation/content-type.d.ts +13 -1
  6. package/dist/core-api/routes/validation/content-type.d.ts.map +1 -1
  7. package/dist/core-api/routes/validation/content-type.js +15 -2
  8. package/dist/core-api/routes/validation/content-type.js.map +1 -1
  9. package/dist/core-api/routes/validation/content-type.mjs +15 -2
  10. package/dist/core-api/routes/validation/content-type.mjs.map +1 -1
  11. package/dist/migrations/database/5.0.0-discard-drafts.d.ts +2 -1
  12. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -1
  13. package/dist/migrations/database/5.0.0-discard-drafts.js +64 -30
  14. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -1
  15. package/dist/migrations/database/5.0.0-discard-drafts.mjs +64 -30
  16. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -1
  17. package/dist/package.json.js +14 -12
  18. package/dist/package.json.js.map +1 -1
  19. package/dist/package.json.mjs +14 -12
  20. package/dist/package.json.mjs.map +1 -1
  21. package/dist/providers/index.d.ts.map +1 -1
  22. package/dist/providers/index.js +3 -1
  23. package/dist/providers/index.js.map +1 -1
  24. package/dist/providers/index.mjs +3 -1
  25. package/dist/providers/index.mjs.map +1 -1
  26. package/dist/providers/mcp.d.ts +3 -0
  27. package/dist/providers/mcp.d.ts.map +1 -0
  28. package/dist/providers/mcp.js +39 -0
  29. package/dist/providers/mcp.js.map +1 -0
  30. package/dist/providers/mcp.mjs +37 -0
  31. package/dist/providers/mcp.mjs.map +1 -0
  32. package/dist/providers/session-manager.d.ts.map +1 -1
  33. package/dist/providers/session-manager.js +1 -2
  34. package/dist/providers/session-manager.js.map +1 -1
  35. package/dist/providers/session-manager.mjs +1 -2
  36. package/dist/providers/session-manager.mjs.map +1 -1
  37. package/dist/services/ai.d.ts.map +1 -1
  38. package/dist/services/ai.js +3 -0
  39. package/dist/services/ai.js.map +1 -1
  40. package/dist/services/ai.mjs +3 -0
  41. package/dist/services/ai.mjs.map +1 -1
  42. package/dist/services/document-service/draft-and-publish.d.ts +2 -16
  43. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
  44. package/dist/services/document-service/draft-and-publish.js +0 -53
  45. package/dist/services/document-service/draft-and-publish.js.map +1 -1
  46. package/dist/services/document-service/draft-and-publish.mjs +2 -53
  47. package/dist/services/document-service/draft-and-publish.mjs.map +1 -1
  48. package/dist/services/document-service/params.d.ts +2 -2
  49. package/dist/services/document-service/params.d.ts.map +1 -1
  50. package/dist/services/document-service/publication-filter.d.ts +6 -0
  51. package/dist/services/document-service/publication-filter.d.ts.map +1 -0
  52. package/dist/services/document-service/publication-filter.js +20 -0
  53. package/dist/services/document-service/publication-filter.js.map +1 -0
  54. package/dist/services/document-service/publication-filter.mjs +15 -0
  55. package/dist/services/document-service/publication-filter.mjs.map +1 -0
  56. package/dist/services/document-service/transform/query.d.ts +1 -1
  57. package/dist/services/document-service/transform/query.d.ts.map +1 -1
  58. package/dist/services/document-service/transform/query.js +32 -19
  59. package/dist/services/document-service/transform/query.js.map +1 -1
  60. package/dist/services/document-service/transform/query.mjs +33 -20
  61. package/dist/services/document-service/transform/query.mjs.map +1 -1
  62. package/dist/services/entity-validator/blocks-validator.js +1 -1
  63. package/dist/services/entity-validator/blocks-validator.js.map +1 -1
  64. package/dist/services/entity-validator/blocks-validator.mjs +1 -1
  65. package/dist/services/entity-validator/blocks-validator.mjs.map +1 -1
  66. package/dist/services/mcp/authentication.d.ts +23 -0
  67. package/dist/services/mcp/authentication.d.ts.map +1 -0
  68. package/dist/services/mcp/authentication.js +45 -0
  69. package/dist/services/mcp/authentication.js.map +1 -0
  70. package/dist/services/mcp/authentication.mjs +43 -0
  71. package/dist/services/mcp/authentication.mjs.map +1 -0
  72. package/dist/services/mcp/handlers/handlePost.d.ts +4 -0
  73. package/dist/services/mcp/handlers/handlePost.d.ts.map +1 -0
  74. package/dist/services/mcp/handlers/handlePost.js +59 -0
  75. package/dist/services/mcp/handlers/handlePost.js.map +1 -0
  76. package/dist/services/mcp/handlers/handlePost.mjs +57 -0
  77. package/dist/services/mcp/handlers/handlePost.mjs.map +1 -0
  78. package/dist/services/mcp/handlers/types.d.ts +12 -0
  79. package/dist/services/mcp/handlers/types.d.ts.map +1 -0
  80. package/dist/services/mcp/index.d.ts +6 -0
  81. package/dist/services/mcp/index.d.ts.map +1 -0
  82. package/dist/services/mcp/index.js +101 -0
  83. package/dist/services/mcp/index.js.map +1 -0
  84. package/dist/services/mcp/index.mjs +99 -0
  85. package/dist/services/mcp/index.mjs.map +1 -0
  86. package/dist/services/mcp/internal/McpCapabilityDefinitionRegistry.d.ts +13 -0
  87. package/dist/services/mcp/internal/McpCapabilityDefinitionRegistry.d.ts.map +1 -0
  88. package/dist/services/mcp/internal/McpCapabilityDefinitionRegistry.js +53 -0
  89. package/dist/services/mcp/internal/McpCapabilityDefinitionRegistry.js.map +1 -0
  90. package/dist/services/mcp/internal/McpCapabilityDefinitionRegistry.mjs +51 -0
  91. package/dist/services/mcp/internal/McpCapabilityDefinitionRegistry.mjs.map +1 -0
  92. package/dist/services/mcp/internal/McpCapabilityRegistry.d.ts +43 -0
  93. package/dist/services/mcp/internal/McpCapabilityRegistry.d.ts.map +1 -0
  94. package/dist/services/mcp/internal/McpCapabilityRegistry.js +108 -0
  95. package/dist/services/mcp/internal/McpCapabilityRegistry.js.map +1 -0
  96. package/dist/services/mcp/internal/McpCapabilityRegistry.mjs +106 -0
  97. package/dist/services/mcp/internal/McpCapabilityRegistry.mjs.map +1 -0
  98. package/dist/services/mcp/internal/McpConfiguration.d.ts +11 -0
  99. package/dist/services/mcp/internal/McpConfiguration.d.ts.map +1 -0
  100. package/dist/services/mcp/internal/McpConfiguration.js +34 -0
  101. package/dist/services/mcp/internal/McpConfiguration.js.map +1 -0
  102. package/dist/services/mcp/internal/McpConfiguration.mjs +32 -0
  103. package/dist/services/mcp/internal/McpConfiguration.mjs.map +1 -0
  104. package/dist/services/mcp/internal/McpServerFactory.d.ts +37 -0
  105. package/dist/services/mcp/internal/McpServerFactory.d.ts.map +1 -0
  106. package/dist/services/mcp/internal/McpServerFactory.js +71 -0
  107. package/dist/services/mcp/internal/McpServerFactory.js.map +1 -0
  108. package/dist/services/mcp/internal/McpServerFactory.mjs +69 -0
  109. package/dist/services/mcp/internal/McpServerFactory.mjs.map +1 -0
  110. package/dist/services/mcp/internal/syncMcpSessionCapabilities.d.ts +21 -0
  111. package/dist/services/mcp/internal/syncMcpSessionCapabilities.d.ts.map +1 -0
  112. package/dist/services/mcp/internal/syncMcpSessionCapabilities.js +76 -0
  113. package/dist/services/mcp/internal/syncMcpSessionCapabilities.js.map +1 -0
  114. package/dist/services/mcp/internal/syncMcpSessionCapabilities.mjs +73 -0
  115. package/dist/services/mcp/internal/syncMcpSessionCapabilities.mjs.map +1 -0
  116. package/dist/services/mcp/metrics/metrics.d.ts +29 -0
  117. package/dist/services/mcp/metrics/metrics.d.ts.map +1 -0
  118. package/dist/services/mcp/metrics/metrics.js +97 -0
  119. package/dist/services/mcp/metrics/metrics.js.map +1 -0
  120. package/dist/services/mcp/metrics/metrics.mjs +88 -0
  121. package/dist/services/mcp/metrics/metrics.mjs.map +1 -0
  122. package/dist/services/mcp/metrics/normalizeMcpCapability.d.ts +11 -0
  123. package/dist/services/mcp/metrics/normalizeMcpCapability.d.ts.map +1 -0
  124. package/dist/services/mcp/metrics/normalizeMcpCapability.js +10 -0
  125. package/dist/services/mcp/metrics/normalizeMcpCapability.js.map +1 -0
  126. package/dist/services/mcp/metrics/normalizeMcpCapability.mjs +8 -0
  127. package/dist/services/mcp/metrics/normalizeMcpCapability.mjs.map +1 -0
  128. package/dist/services/mcp/metrics/wrapCapabilityHandlerForMetrics.d.ts +4 -0
  129. package/dist/services/mcp/metrics/wrapCapabilityHandlerForMetrics.d.ts.map +1 -0
  130. package/dist/services/mcp/metrics/wrapCapabilityHandlerForMetrics.js +27 -0
  131. package/dist/services/mcp/metrics/wrapCapabilityHandlerForMetrics.js.map +1 -0
  132. package/dist/services/mcp/metrics/wrapCapabilityHandlerForMetrics.mjs +25 -0
  133. package/dist/services/mcp/metrics/wrapCapabilityHandlerForMetrics.mjs.map +1 -0
  134. package/dist/services/mcp/middleware/oauthDiscoveryFallback.d.ts +3 -0
  135. package/dist/services/mcp/middleware/oauthDiscoveryFallback.d.ts.map +1 -0
  136. package/dist/services/mcp/middleware/oauthDiscoveryFallback.js +47 -0
  137. package/dist/services/mcp/middleware/oauthDiscoveryFallback.js.map +1 -0
  138. package/dist/services/mcp/middleware/oauthDiscoveryFallback.mjs +45 -0
  139. package/dist/services/mcp/middleware/oauthDiscoveryFallback.mjs.map +1 -0
  140. package/dist/services/mcp/prompt-registry.d.ts +16 -0
  141. package/dist/services/mcp/prompt-registry.d.ts.map +1 -0
  142. package/dist/services/mcp/prompt-registry.js +77 -0
  143. package/dist/services/mcp/prompt-registry.js.map +1 -0
  144. package/dist/services/mcp/prompt-registry.mjs +75 -0
  145. package/dist/services/mcp/prompt-registry.mjs.map +1 -0
  146. package/dist/services/mcp/resource-registry.d.ts +14 -0
  147. package/dist/services/mcp/resource-registry.d.ts.map +1 -0
  148. package/dist/services/mcp/resource-registry.js +67 -0
  149. package/dist/services/mcp/resource-registry.js.map +1 -0
  150. package/dist/services/mcp/resource-registry.mjs +65 -0
  151. package/dist/services/mcp/resource-registry.mjs.map +1 -0
  152. package/dist/services/mcp/routes.d.ts +11 -0
  153. package/dist/services/mcp/routes.d.ts.map +1 -0
  154. package/dist/services/mcp/routes.js +58 -0
  155. package/dist/services/mcp/routes.js.map +1 -0
  156. package/dist/services/mcp/routes.mjs +56 -0
  157. package/dist/services/mcp/routes.mjs.map +1 -0
  158. package/dist/services/mcp/tool-registry.d.ts +25 -0
  159. package/dist/services/mcp/tool-registry.d.ts.map +1 -0
  160. package/dist/services/mcp/tool-registry.js +102 -0
  161. package/dist/services/mcp/tool-registry.js.map +1 -0
  162. package/dist/services/mcp/tool-registry.mjs +99 -0
  163. package/dist/services/mcp/tool-registry.mjs.map +1 -0
  164. package/dist/services/mcp/tools/log.d.ts +87 -0
  165. package/dist/services/mcp/tools/log.d.ts.map +1 -0
  166. package/dist/services/mcp/tools/log.js +88 -0
  167. package/dist/services/mcp/tools/log.js.map +1 -0
  168. package/dist/services/mcp/tools/log.mjs +86 -0
  169. package/dist/services/mcp/tools/log.mjs.map +1 -0
  170. package/dist/services/mcp/utils/createSafeCapabilityRegistration.d.ts +36 -0
  171. package/dist/services/mcp/utils/createSafeCapabilityRegistration.d.ts.map +1 -0
  172. package/dist/services/mcp/utils/createSafeCapabilityRegistration.js +59 -0
  173. package/dist/services/mcp/utils/createSafeCapabilityRegistration.js.map +1 -0
  174. package/dist/services/mcp/utils/createSafeCapabilityRegistration.mjs +56 -0
  175. package/dist/services/mcp/utils/createSafeCapabilityRegistration.mjs.map +1 -0
  176. package/dist/services/mcp/utils/jsonRpcErrors.d.ts +22 -0
  177. package/dist/services/mcp/utils/jsonRpcErrors.d.ts.map +1 -0
  178. package/dist/services/mcp/utils/jsonRpcErrors.js +25 -0
  179. package/dist/services/mcp/utils/jsonRpcErrors.js.map +1 -0
  180. package/dist/services/mcp/utils/jsonRpcErrors.mjs +23 -0
  181. package/dist/services/mcp/utils/jsonRpcErrors.mjs.map +1 -0
  182. package/dist/services/mcp/utils/safeHandlerWrapper.d.ts +18 -0
  183. package/dist/services/mcp/utils/safeHandlerWrapper.d.ts.map +1 -0
  184. package/dist/services/mcp/utils/safeHandlerWrapper.js +29 -0
  185. package/dist/services/mcp/utils/safeHandlerWrapper.js.map +1 -0
  186. package/dist/services/mcp/utils/safeHandlerWrapper.mjs +27 -0
  187. package/dist/services/mcp/utils/safeHandlerWrapper.mjs.map +1 -0
  188. package/dist/services/mcp/utils/sendJsonRpcError.d.ts +5 -0
  189. package/dist/services/mcp/utils/sendJsonRpcError.d.ts.map +1 -0
  190. package/dist/services/mcp/utils/sendJsonRpcError.js +23 -0
  191. package/dist/services/mcp/utils/sendJsonRpcError.js.map +1 -0
  192. package/dist/services/mcp/utils/sendJsonRpcError.mjs +21 -0
  193. package/dist/services/mcp/utils/sendJsonRpcError.mjs.map +1 -0
  194. package/dist/services/mcp/utils/withTimeout.d.ts +7 -0
  195. package/dist/services/mcp/utils/withTimeout.d.ts.map +1 -0
  196. package/dist/services/mcp/utils/withTimeout.js +23 -0
  197. package/dist/services/mcp/utils/withTimeout.js.map +1 -0
  198. package/dist/services/mcp/utils/withTimeout.mjs +21 -0
  199. package/dist/services/mcp/utils/withTimeout.mjs.map +1 -0
  200. package/dist/services/metrics/index.d.ts.map +1 -1
  201. package/dist/services/metrics/index.js +3 -1
  202. package/dist/services/metrics/index.js.map +1 -1
  203. package/dist/services/metrics/index.mjs +3 -1
  204. package/dist/services/metrics/index.mjs.map +1 -1
  205. package/package.json +14 -12
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var name = "@strapi/core";
6
- var version = "5.46.0";
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.46.0",
66
- "@strapi/database": "5.46.0",
67
- "@strapi/generators": "5.46.0",
68
- "@strapi/logger": "5.46.0",
69
- "@strapi/permissions": "5.46.0",
70
- "@strapi/types": "5.46.0",
71
- "@strapi/typescript-utils": "5.46.0",
72
- "@strapi/utils": "5.46.0",
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.46.0",
141
+ "eslint-config-custom": "5.47.0",
140
142
  supertest: "7.2.2",
141
- tsconfig: "5.46.0",
143
+ tsconfig: "5.47.0",
142
144
  vitest: "catalog:",
143
- "vitest-config": "5.46.0"
145
+ "vitest-config": "5.47.0"
144
146
  };
145
147
  var engines = {
146
148
  node: ">=20.0.0 <=24.x.x",
@@ -1 +1 @@
1
- {"version":3,"file":"package.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"package.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  var name = "@strapi/core";
2
- var version = "5.46.0";
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.46.0",
62
- "@strapi/database": "5.46.0",
63
- "@strapi/generators": "5.46.0",
64
- "@strapi/logger": "5.46.0",
65
- "@strapi/permissions": "5.46.0",
66
- "@strapi/types": "5.46.0",
67
- "@strapi/typescript-utils": "5.46.0",
68
- "@strapi/utils": "5.46.0",
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.46.0",
137
+ "eslint-config-custom": "5.47.0",
136
138
  supertest: "7.2.2",
137
- tsconfig: "5.46.0",
139
+ tsconfig: "5.47.0",
138
140
  vitest: "catalog:",
139
- "vitest-config": "5.46.0"
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":"AASA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,eAAO,MAAM,SAAS,EAAE,QAAQ,EAS/B,CAAC"}
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"}
@@ -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":";;;;;;;;;;;MAWaA,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;;;;;"}
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;;;;;"}
@@ -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":";;;;;;;;;MAWaA,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;;;;;"}
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,3 @@
1
+ declare const _default: import("./provider").Provider;
2
+ export default _default;
3
+ //# sourceMappingURL=mcp.d.ts.map
@@ -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,wBAoBG"}
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 register (strapi) {
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 register(strapi) {\n // Get JWT secret from admin auth settings (same as admin token service)\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","register","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,UAASJ,MAAM,EAAA;;AAEnB,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
+ {"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 register (strapi) {
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 register(strapi) {\n // Get JWT secret from admin auth settings (same as admin token service)\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","register","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,UAASJ,MAAM,EAAA;;AAEnB,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
+ {"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,WAIjE,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"}
@@ -3,6 +3,9 @@
3
3
  const createAiNamespace = (strapi)=>({
4
4
  get admin () {
5
5
  return strapi.get('ai.admin');
6
+ },
7
+ get mcp () {
8
+ return strapi.get('ai.mcp');
6
9
  }
7
10
  });
8
11
 
@@ -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;;;;"}
@@ -1,6 +1,9 @@
1
1
  const createAiNamespace = (strapi)=>({
2
2
  get admin () {
3
3
  return strapi.get('ai.admin');
4
+ },
5
+ get mcp () {
6
+ return strapi.get('ai.mcp');
4
7
  }
5
8
  });
6
9
 
@@ -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, UID } from '@strapi/types';
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, parseHasPublishedVersion, getHasPublishedVersionCondition, };
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,GAAG,EAAE,MAAM,eAAe,CAAC;AAwG1D;;;;GAIG;AACH,QAAA,MAAM,wBAAwB,UAAW,OAAO,KAAG,OAAO,GAAG,SAgB5D,CAAC;AAEF;;;;;;GAMG;AACH,QAAA,MAAM,+BAA+B,QAC9B,IAAI,MAAM,uBACM,OAAO,KAC3B,OAAO,MAAM,EAAE,GAAG,CAAC,GAAG,IA2BxB,CAAC;AAEF,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,EACjC,wBAAwB,EACxB,+BAA+B,GAChC,CAAC"}
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":";;;;;AAYA;;;IAIA,MAAMA,gBAAAA,GAA6C,CAACC,WAAAA,EAAaC,MAAAA,GAAAA;AAC/D,IAAA,IAAI,CAACC,wBAAAA,CAAaC,kBAAkB,CAACH,WAAAA,CAAAA,IAAgBC,MAAAA,CAAOG,MAAM,EAAE;QAClE,OAAOH,MAAAA;AACT,IAAA;IAEA,OAAOI,QAAAA,CAAM,UAAU,OAAA,EAASJ,MAAAA,CAAAA;AAClC,CAAA;AAEA;;IAGA,MAAMK,iBAAkC,CAACL,MAAAA,GAAAA;;AAEvC,IAAA,IAAI,CAACA,MAAAA,CAAOG,MAAM,IAAIH,MAAAA,CAAOG,MAAM,KAAK,WAAA,EAAa;QACnD,OAAOC,QAAAA,CAAM,UAAU,OAAA,EAASJ,MAAAA,CAAAA;AAClC,IAAA;IAEA,OAAOA,MAAAA;AACT,CAAA;AAEA;;;IAIA,MAAMM,aAAAA,GAA0C,CAACP,WAAAA,EAAaC,MAAAA,GAAAA;AAC5D,IAAA,IAAI,CAACC,wBAAAA,CAAaC,kBAAkB,CAACH,WAAAA,CAAAA,EAAc;QACjD,OAAOC,MAAAA;AACT,IAAA;;AAGA,IAAA,IAAI,CAACA,MAAAA,CAAOG,MAAM,IAAIH,MAAAA,CAAOG,MAAM,KAAK,WAAA,EAAa;AACnD,QAAA,OAAOE,cAAAA,CAAeL,MAAAA,CAAAA;AACxB,IAAA;IAEA,OAAOA,MAAAA;AACT,CAAA;AAEA;;IAGA,MAAMO,wBAAyC,CAACP,MAAAA,GAAAA;IAC9C,IAAIA,MAAAA,EAAQQ,MAAMC,WAAAA,EAAa;AAC7B,QAAA,OAAOL,QAAAA,CAAM;AAAC,YAAA,MAAA;AAAQ,YAAA;AAAc,SAAA,EAAE,IAAA,EAAMJ,MAAAA,CAAAA;AAC9C,IAAA;IAEA,OAAOA,MAAAA;AACT,CAAA;AAEA;;IAGA,MAAMU,cAAAA,GAA2C,CAACX,WAAAA,EAAaC,MAAAA,GAAAA;AAC7D,IAAA,IAAI,CAACC,wBAAAA,CAAaC,kBAAkB,CAACH,WAAAA,CAAAA,EAAc;QACjD,OAAOC,MAAAA;AACT,IAAA;AAEA,IAAA,MAAMW,MAAAA,GAASX,MAAAA,CAAOW,MAAM,IAAI,EAAC;AAEjC,IAAA,OAAQX,MAAAA,EAAQG,MAAAA;QACd,KAAK,WAAA;AACH,YAAA,OAAOC,QAAAA,CAAM;AAAC,gBAAA,QAAA;AAAU,gBAAA;aAAc,EAAE;gBAAEQ,QAAAA,EAAU;aAAK,EAAGZ,MAAAA,CAAAA;QAC9D,KAAK,OAAA;AACH,YAAA,OAAOI,QAAAA,CAAM;AAAC,gBAAA,QAAA;AAAU,gBAAA;aAAc,EAAE;gBAAES,KAAAA,EAAO;aAAK,EAAGb,MAAAA,CAAAA;AAG7D;IAEA,OAAOI,QAAAA,CAAM,UAAUO,MAAAA,EAAQX,MAAAA,CAAAA;AACjC,CAAA;AAEA;;IAGA,MAAMc,YAAAA,GAAyC,CAACf,WAAAA,EAAaC,MAAAA,GAAAA;AAC3D,IAAA,IAAI,CAACC,wBAAAA,CAAaC,kBAAkB,CAACH,WAAAA,CAAAA,EAAc;AACjD,QAAA,OAAOK,QAAAA,CAAM;AAAC,YAAA,MAAA;AAAQ,YAAA;AAAc,SAAA,EAAE,IAAIW,IAAAA,EAAAA,EAAQf,MAAAA,CAAAA;AACpD,IAAA;AAEA,IAAA,OAAQA,MAAAA,EAAQG,MAAAA;QACd,KAAK,WAAA;AACH,YAAA,OAAOC,QAAAA,CAAM;AAAC,gBAAA,MAAA;AAAQ,gBAAA;AAAc,aAAA,EAAE,IAAIW,IAAAA,EAAAA,EAAQf,MAAAA,CAAAA;QACpD,KAAK,OAAA;AACH,YAAA,OAAOI,QAAAA,CAAM;AAAC,gBAAA,MAAA;AAAQ,gBAAA;AAAc,aAAA,EAAE,IAAA,EAAMJ,MAAAA,CAAAA;AAGhD;IAEA,OAAOA,MAAAA;AACT,CAAA;AAEA;;;;IAKA,MAAMgB,2BAA2B,CAACC,KAAAA,GAAAA;IAChC,IAAIA,KAAAA,KAAUC,SAAAA,IAAaD,KAAAA,KAAU,IAAA,EAAM;QACzC,OAAOC,SAAAA;AACT,IAAA;IAEA,IAAID,KAAAA,KAAU,IAAA,IAAQA,KAAAA,KAAU,MAAA,EAAQ;QACtC,OAAO,IAAA;AACT,IAAA;IAEA,IAAIA,KAAAA,KAAU,KAAA,IAASA,KAAAA,KAAU,OAAA,EAAS;QACxC,OAAO,KAAA;AACT,IAAA;IAEA,MAAM,IAAIE,kBAAAA,CAAOC,eAAe,CAC9B,qFAAA,CAAA;AAEJ;AAEA;;;;;;IAOA,MAAMC,+BAAAA,GAAkC,CACtCC,GAAAA,EACAC,mBAAAA,GAAAA;IAEA,MAAMC,KAAAA,GAAQC,MAAAA,CAAOC,QAAQ,CAACJ,GAAAA,CAAAA;;AAG9B,IAAA,IAAI,CAACE,KAAAA,IAAS,CAACvB,wBAAAA,CAAaC,kBAAkB,CAACsB,KAAAA,CAAAA,EAAQ;QACrD,OAAO,IAAA;AACT,IAAA;;AAGA,IAAA,MAAMG,OAAOF,MAAAA,CAAOG,EAAE,CAACC,QAAQ,CAACC,GAAG,CAACR,GAAAA,CAAAA;IACpC,MAAMS,SAAAA,GAAYJ,KAAKI,SAAS;AAChC,IAAA,MAAMC,cAAAA,GAAiBL,IAAAA,CAAKM,UAAU,CAACC,UAAU;AACjD,IAAA,MAAMC,eAAAA,GAAkBR,IAAAA,CAAKM,UAAU,CAACxB,WAAW;AACnD,IAAA,MAAM2B,mBACJ,YAAC,IAAgBJ,cAAAA,IAAkBA,cAAAA,CAAeK,UAAU,IAAK,aAAA;AACnE,IAAA,MAAMC,oBACJ,YAAC,IAAgBH,eAAAA,IAAmBA,eAAAA,CAAgBE,UAAU,IAAK,cAAA;;AAGrE,IAAA,MAAME,IAAAA,GAAOd,MAAAA,CAAOG,EAAE,CAACY,UAAU;AACjC,IAAA,MAAMC,WAAWF,IAAAA,CAAKR,SAAAA,CAAAA,CAAWW,QAAQ,CAACN,gBAAAA,CAAAA,CAAkBO,YAAY,CAACL,iBAAAA,CAAAA;AAEzE,IAAA,IAAIf,mBAAAA,EAAqB;QACvB,OAAO;YAAEW,UAAAA,EAAY;gBAAEU,GAAAA,EAAKH;AAAS;AAAE,SAAA;AACzC,IAAA;IAEA,OAAO;QAAEP,UAAAA,EAAY;YAAEW,MAAAA,EAAQJ;AAAS;AAAE,KAAA;AAC5C;AAEA,MAAMK,wBAAwBC,QAAAA,CAAMjD,gBAAAA;AACpC,MAAMkD,sBAAsBD,QAAAA,CAAM1C,cAAAA;AAClC,MAAM4C,qBAAqBF,QAAAA,CAAMzC,aAAAA;AACjC,MAAM4C,6BAA6BH,QAAAA,CAAMxC,qBAAAA;AACzC,MAAM4C,sBAAsBJ,QAAAA,CAAMrC,cAAAA;AAClC,MAAM0C,oBAAoBL,QAAAA,CAAMjC,YAAAA;;;;;;;;;;;"}
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, errors } from '@strapi/utils';
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, getHasPublishedVersionCondition, parseHasPublishedVersion, setStatusToDraftCurry as setStatusToDraft, statusToDataCurry as statusToData, statusToLookupCurry as statusToLookup };
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