@orthacms/content-server 0.0.0-reserve.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 (396) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +7 -0
  3. package/dist/define.d.ts +17 -0
  4. package/dist/define.d.ts.map +1 -0
  5. package/dist/define.js +28 -0
  6. package/dist/index.d.ts +48 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +109 -0
  9. package/dist/lib/collection/define.d.ts +35 -0
  10. package/dist/lib/collection/define.d.ts.map +1 -0
  11. package/dist/lib/collection/define.js +217 -0
  12. package/dist/lib/collection/table-builder.d.ts +28 -0
  13. package/dist/lib/collection/table-builder.d.ts.map +1 -0
  14. package/dist/lib/collection/table-builder.js +306 -0
  15. package/dist/lib/content-types/controllers/get-content-schema.controller.d.ts +24 -0
  16. package/dist/lib/content-types/controllers/get-content-schema.controller.d.ts.map +1 -0
  17. package/dist/lib/content-types/controllers/get-content-schema.controller.js +58 -0
  18. package/dist/lib/content-types/controllers/get-filter-fields.controller.d.ts +35 -0
  19. package/dist/lib/content-types/controllers/get-filter-fields.controller.d.ts.map +1 -0
  20. package/dist/lib/content-types/controllers/get-filter-fields.controller.js +74 -0
  21. package/dist/lib/content-types/controllers/list-content-schema.controller.d.ts +15 -0
  22. package/dist/lib/content-types/controllers/list-content-schema.controller.d.ts.map +1 -0
  23. package/dist/lib/content-types/controllers/list-content-schema.controller.js +38 -0
  24. package/dist/lib/content-types/queries/workspace-grants.query.d.ts +25 -0
  25. package/dist/lib/content-types/queries/workspace-grants.query.d.ts.map +1 -0
  26. package/dist/lib/content-types/queries/workspace-grants.query.js +45 -0
  27. package/dist/lib/content.module.d.ts +21 -0
  28. package/dist/lib/content.module.d.ts.map +1 -0
  29. package/dist/lib/content.module.js +264 -0
  30. package/dist/lib/content.tokens.d.ts +5 -0
  31. package/dist/lib/content.tokens.d.ts.map +1 -0
  32. package/dist/lib/content.tokens.js +9 -0
  33. package/dist/lib/copilot/content-tool.provider.d.ts +64 -0
  34. package/dist/lib/copilot/content-tool.provider.d.ts.map +1 -0
  35. package/dist/lib/copilot/content-tool.provider.js +309 -0
  36. package/dist/lib/copilot/diff-snapshots.d.ts +42 -0
  37. package/dist/lib/copilot/diff-snapshots.d.ts.map +1 -0
  38. package/dist/lib/copilot/diff-snapshots.js +77 -0
  39. package/dist/lib/copilot/entry-proposal.applier.d.ts +89 -0
  40. package/dist/lib/copilot/entry-proposal.applier.d.ts.map +1 -0
  41. package/dist/lib/copilot/entry-proposal.applier.js +245 -0
  42. package/dist/lib/copilot/entry-proposal.provider.d.ts +157 -0
  43. package/dist/lib/copilot/entry-proposal.provider.d.ts.map +1 -0
  44. package/dist/lib/copilot/entry-proposal.provider.js +619 -0
  45. package/dist/lib/copilot/filter-schema.d.ts +61 -0
  46. package/dist/lib/copilot/filter-schema.d.ts.map +1 -0
  47. package/dist/lib/copilot/filter-schema.js +139 -0
  48. package/dist/lib/copilot/project-entry.d.ts +23 -0
  49. package/dist/lib/copilot/project-entry.d.ts.map +1 -0
  50. package/dist/lib/copilot/project-entry.js +36 -0
  51. package/dist/lib/copilot/proposal-kinds.d.ts +30 -0
  52. package/dist/lib/copilot/proposal-kinds.d.ts.map +1 -0
  53. package/dist/lib/copilot/proposal-kinds.js +32 -0
  54. package/dist/lib/copilot/revision-tool.provider.d.ts +56 -0
  55. package/dist/lib/copilot/revision-tool.provider.d.ts.map +1 -0
  56. package/dist/lib/copilot/revision-tool.provider.js +215 -0
  57. package/dist/lib/docs/content-schemas.d.ts +34 -0
  58. package/dist/lib/docs/content-schemas.d.ts.map +1 -0
  59. package/dist/lib/docs/content-schemas.js +617 -0
  60. package/dist/lib/docs/describe-content-api.d.ts +22 -0
  61. package/dist/lib/docs/describe-content-api.d.ts.map +1 -0
  62. package/dist/lib/docs/describe-content-api.js +173 -0
  63. package/dist/lib/docs/field-schema.d.ts +28 -0
  64. package/dist/lib/docs/field-schema.d.ts.map +1 -0
  65. package/dist/lib/docs/field-schema.js +214 -0
  66. package/dist/lib/entries/application/use-cases/bulk-publish-entries.use-case.d.ts +23 -0
  67. package/dist/lib/entries/application/use-cases/bulk-publish-entries.use-case.d.ts.map +1 -0
  68. package/dist/lib/entries/application/use-cases/bulk-publish-entries.use-case.js +77 -0
  69. package/dist/lib/entries/application/use-cases/bulk-unpublish-entries.use-case.d.ts +23 -0
  70. package/dist/lib/entries/application/use-cases/bulk-unpublish-entries.use-case.d.ts.map +1 -0
  71. package/dist/lib/entries/application/use-cases/bulk-unpublish-entries.use-case.js +66 -0
  72. package/dist/lib/entries/application/use-cases/publish-entry.use-case.d.ts +43 -0
  73. package/dist/lib/entries/application/use-cases/publish-entry.use-case.d.ts.map +1 -0
  74. package/dist/lib/entries/application/use-cases/publish-entry.use-case.js +106 -0
  75. package/dist/lib/entries/application/use-cases/unpublish-entry.use-case.d.ts +30 -0
  76. package/dist/lib/entries/application/use-cases/unpublish-entry.use-case.d.ts.map +1 -0
  77. package/dist/lib/entries/application/use-cases/unpublish-entry.use-case.js +70 -0
  78. package/dist/lib/entries/controllers/bulk-entries.controller.d.ts +26 -0
  79. package/dist/lib/entries/controllers/bulk-entries.controller.d.ts.map +1 -0
  80. package/dist/lib/entries/controllers/create-entry.controller.d.ts +20 -0
  81. package/dist/lib/entries/controllers/create-entry.controller.d.ts.map +1 -0
  82. package/dist/lib/entries/controllers/delete-entry.controller.d.ts +24 -0
  83. package/dist/lib/entries/controllers/delete-entry.controller.d.ts.map +1 -0
  84. package/dist/lib/entries/controllers/get-entry.controller.d.ts +34 -0
  85. package/dist/lib/entries/controllers/get-entry.controller.d.ts.map +1 -0
  86. package/dist/lib/entries/controllers/list-entries.controller.d.ts +20 -0
  87. package/dist/lib/entries/controllers/list-entries.controller.d.ts.map +1 -0
  88. package/dist/lib/entries/controllers/publish-entry.controller.d.ts +19 -0
  89. package/dist/lib/entries/controllers/publish-entry.controller.d.ts.map +1 -0
  90. package/dist/lib/entries/controllers/resolve-type.d.ts +9 -0
  91. package/dist/lib/entries/controllers/resolve-type.d.ts.map +1 -0
  92. package/dist/lib/entries/controllers/update-entry.controller.d.ts +18 -0
  93. package/dist/lib/entries/controllers/update-entry.controller.d.ts.map +1 -0
  94. package/dist/lib/entries/domain/entry-publish-blocked.error.d.ts +13 -0
  95. package/dist/lib/entries/domain/entry-publish-blocked.error.d.ts.map +1 -0
  96. package/dist/lib/entries/domain/entry-publish-blocked.error.js +19 -0
  97. package/dist/lib/entries/domain/entry.d.ts +71 -0
  98. package/dist/lib/entries/domain/entry.d.ts.map +1 -0
  99. package/dist/lib/entries/domain/entry.js +90 -0
  100. package/dist/lib/entries/domain/events/entry-events.d.ts +67 -0
  101. package/dist/lib/entries/domain/events/entry-events.d.ts.map +1 -0
  102. package/dist/lib/entries/domain/events/entry-events.js +100 -0
  103. package/dist/lib/entries/dto/bulk-ids.dto.d.ts +11 -0
  104. package/dist/lib/entries/dto/bulk-ids.dto.d.ts.map +1 -0
  105. package/dist/lib/entries/dto/list-entries-query.dto.d.ts +46 -0
  106. package/dist/lib/entries/dto/list-entries-query.dto.d.ts.map +1 -0
  107. package/dist/lib/entries/dto/relation-delta-map.validator.d.ts +19 -0
  108. package/dist/lib/entries/dto/relation-delta-map.validator.d.ts.map +1 -0
  109. package/dist/lib/entries/dto/save-entry.dto.d.ts +46 -0
  110. package/dist/lib/entries/dto/save-entry.dto.d.ts.map +1 -0
  111. package/dist/lib/entries/entries.constants.d.ts +19 -0
  112. package/dist/lib/entries/entries.constants.d.ts.map +1 -0
  113. package/dist/lib/entries/entries.constants.js +21 -0
  114. package/dist/lib/entries/http/controllers/bulk-entries.controller.d.ts +33 -0
  115. package/dist/lib/entries/http/controllers/bulk-entries.controller.d.ts.map +1 -0
  116. package/dist/lib/entries/http/controllers/bulk-entries.controller.js +143 -0
  117. package/dist/lib/entries/http/controllers/create-entry.controller.d.ts +21 -0
  118. package/dist/lib/entries/http/controllers/create-entry.controller.d.ts.map +1 -0
  119. package/dist/lib/entries/http/controllers/create-entry.controller.js +52 -0
  120. package/dist/lib/entries/http/controllers/delete-entry.controller.d.ts +25 -0
  121. package/dist/lib/entries/http/controllers/delete-entry.controller.d.ts.map +1 -0
  122. package/dist/lib/entries/http/controllers/delete-entry.controller.js +84 -0
  123. package/dist/lib/entries/http/controllers/get-entry.controller.d.ts +44 -0
  124. package/dist/lib/entries/http/controllers/get-entry.controller.d.ts.map +1 -0
  125. package/dist/lib/entries/http/controllers/get-entry.controller.js +124 -0
  126. package/dist/lib/entries/http/controllers/list-entries.controller.d.ts +20 -0
  127. package/dist/lib/entries/http/controllers/list-entries.controller.d.ts.map +1 -0
  128. package/dist/lib/entries/http/controllers/list-entries.controller.js +52 -0
  129. package/dist/lib/entries/http/controllers/publish-entry.controller.d.ts +22 -0
  130. package/dist/lib/entries/http/controllers/publish-entry.controller.d.ts.map +1 -0
  131. package/dist/lib/entries/http/controllers/publish-entry.controller.js +68 -0
  132. package/dist/lib/entries/http/controllers/resolve-type.d.ts +9 -0
  133. package/dist/lib/entries/http/controllers/resolve-type.d.ts.map +1 -0
  134. package/dist/lib/entries/http/controllers/resolve-type.js +16 -0
  135. package/dist/lib/entries/http/controllers/to-actor.d.ts +13 -0
  136. package/dist/lib/entries/http/controllers/to-actor.d.ts.map +1 -0
  137. package/dist/lib/entries/http/controllers/to-actor.js +15 -0
  138. package/dist/lib/entries/http/controllers/update-entry.controller.d.ts +19 -0
  139. package/dist/lib/entries/http/controllers/update-entry.controller.d.ts.map +1 -0
  140. package/dist/lib/entries/http/controllers/update-entry.controller.js +51 -0
  141. package/dist/lib/entries/http/dto/bulk-ids.dto.d.ts +11 -0
  142. package/dist/lib/entries/http/dto/bulk-ids.dto.d.ts.map +1 -0
  143. package/dist/lib/entries/http/dto/bulk-ids.dto.js +33 -0
  144. package/dist/lib/entries/http/dto/list-entries-query.dto.d.ts +66 -0
  145. package/dist/lib/entries/http/dto/list-entries-query.dto.d.ts.map +1 -0
  146. package/dist/lib/entries/http/dto/list-entries-query.dto.js +192 -0
  147. package/dist/lib/entries/http/dto/relation-delta-map.validator.d.ts +30 -0
  148. package/dist/lib/entries/http/dto/relation-delta-map.validator.d.ts.map +1 -0
  149. package/dist/lib/entries/http/dto/relation-delta-map.validator.js +102 -0
  150. package/dist/lib/entries/http/dto/save-entry.dto.d.ts +48 -0
  151. package/dist/lib/entries/http/dto/save-entry.dto.d.ts.map +1 -0
  152. package/dist/lib/entries/http/dto/save-entry.dto.js +120 -0
  153. package/dist/lib/entries/http/guards/content-grant.guard.d.ts +37 -0
  154. package/dist/lib/entries/http/guards/content-grant.guard.d.ts.map +1 -0
  155. package/dist/lib/entries/http/guards/content-grant.guard.js +67 -0
  156. package/dist/lib/entries/infrastructure/persistence/bulk-publish-verdicts.d.ts +22 -0
  157. package/dist/lib/entries/infrastructure/persistence/bulk-publish-verdicts.d.ts.map +1 -0
  158. package/dist/lib/entries/infrastructure/persistence/bulk-publish-verdicts.js +81 -0
  159. package/dist/lib/entries/infrastructure/persistence/entry-counter.service.d.ts +42 -0
  160. package/dist/lib/entries/infrastructure/persistence/entry-counter.service.d.ts.map +1 -0
  161. package/dist/lib/entries/infrastructure/persistence/entry-counter.service.js +73 -0
  162. package/dist/lib/entries/infrastructure/persistence/entry-row.d.ts +56 -0
  163. package/dist/lib/entries/infrastructure/persistence/entry-row.d.ts.map +1 -0
  164. package/dist/lib/entries/infrastructure/persistence/entry-row.js +185 -0
  165. package/dist/lib/entries/infrastructure/persistence/entry-writer.service.d.ts +392 -0
  166. package/dist/lib/entries/infrastructure/persistence/entry-writer.service.d.ts.map +1 -0
  167. package/dist/lib/entries/infrastructure/persistence/entry-writer.service.js +1223 -0
  168. package/dist/lib/entries/infrastructure/persistence/field-selection.d.ts +24 -0
  169. package/dist/lib/entries/infrastructure/persistence/field-selection.d.ts.map +1 -0
  170. package/dist/lib/entries/infrastructure/persistence/media-accept.d.ts +23 -0
  171. package/dist/lib/entries/infrastructure/persistence/media-accept.d.ts.map +1 -0
  172. package/dist/lib/entries/infrastructure/persistence/media-accept.js +55 -0
  173. package/dist/lib/entries/infrastructure/persistence/relation-link.service.d.ts +327 -0
  174. package/dist/lib/entries/infrastructure/persistence/relation-link.service.d.ts.map +1 -0
  175. package/dist/lib/entries/infrastructure/persistence/relation-link.service.js +1008 -0
  176. package/dist/lib/entries/infrastructure/queries/bulk-publish-preview.query.d.ts +19 -0
  177. package/dist/lib/entries/infrastructure/queries/bulk-publish-preview.query.d.ts.map +1 -0
  178. package/dist/lib/entries/infrastructure/queries/bulk-publish-preview.query.js +39 -0
  179. package/dist/lib/entries/infrastructure/queries/entries.service.d.ts +64 -0
  180. package/dist/lib/entries/infrastructure/queries/entries.service.d.ts.map +1 -0
  181. package/dist/lib/entries/infrastructure/queries/entries.service.js +202 -0
  182. package/dist/lib/entries/infrastructure/queries/entry-filter-schema.d.ts +40 -0
  183. package/dist/lib/entries/infrastructure/queries/entry-filter-schema.d.ts.map +1 -0
  184. package/dist/lib/entries/infrastructure/queries/entry-filter-surface.d.ts +38 -0
  185. package/dist/lib/entries/infrastructure/queries/entry-filter-surface.d.ts.map +1 -0
  186. package/dist/lib/entries/infrastructure/queries/entry-filter-surface.js +310 -0
  187. package/dist/lib/entries/infrastructure/queries/entry-scalar-fields.d.ts +25 -0
  188. package/dist/lib/entries/infrastructure/queries/entry-scalar-fields.d.ts.map +1 -0
  189. package/dist/lib/entries/infrastructure/queries/entry-scalar-fields.js +51 -0
  190. package/dist/lib/entries/infrastructure/queries/entry-search.d.ts +19 -0
  191. package/dist/lib/entries/infrastructure/queries/entry-search.d.ts.map +1 -0
  192. package/dist/lib/entries/infrastructure/queries/entry-search.js +52 -0
  193. package/dist/lib/entries/infrastructure/queries/media-refs.query.d.ts +21 -0
  194. package/dist/lib/entries/infrastructure/queries/media-refs.query.d.ts.map +1 -0
  195. package/dist/lib/entries/infrastructure/queries/media-refs.query.js +117 -0
  196. package/dist/lib/entries/services/entries.service.d.ts +59 -0
  197. package/dist/lib/entries/services/entries.service.d.ts.map +1 -0
  198. package/dist/lib/entries/services/entry-counter.service.d.ts +31 -0
  199. package/dist/lib/entries/services/entry-counter.service.d.ts.map +1 -0
  200. package/dist/lib/entries/services/entry-filter-schema.d.ts +32 -0
  201. package/dist/lib/entries/services/entry-filter-schema.d.ts.map +1 -0
  202. package/dist/lib/entries/services/entry-row.d.ts +56 -0
  203. package/dist/lib/entries/services/entry-row.d.ts.map +1 -0
  204. package/dist/lib/entries/services/entry-writer.service.d.ts +193 -0
  205. package/dist/lib/entries/services/entry-writer.service.d.ts.map +1 -0
  206. package/dist/lib/entries/services/relation-link.service.d.ts +115 -0
  207. package/dist/lib/entries/services/relation-link.service.d.ts.map +1 -0
  208. package/dist/lib/entries/types/bulk-publish.d.ts +75 -0
  209. package/dist/lib/entries/types/bulk-publish.d.ts.map +1 -0
  210. package/dist/lib/entries/types/bulk-publish.js +22 -0
  211. package/dist/lib/entries/types/entry-list-view.d.ts +205 -0
  212. package/dist/lib/entries/types/entry-list-view.d.ts.map +1 -0
  213. package/dist/lib/entries/types/entry-list-view.js +5 -0
  214. package/dist/lib/entries/types/filter-surface.d.ts +35 -0
  215. package/dist/lib/entries/types/filter-surface.d.ts.map +1 -0
  216. package/dist/lib/entries/types/filter-surface.js +2 -0
  217. package/dist/lib/extension/entry-extension-boot-check.d.ts +16 -0
  218. package/dist/lib/extension/entry-extension-boot-check.d.ts.map +1 -0
  219. package/dist/lib/extension/entry-extension-boot-check.js +42 -0
  220. package/dist/lib/extension/entry-extension.d.ts +225 -0
  221. package/dist/lib/extension/entry-extension.d.ts.map +1 -0
  222. package/dist/lib/extension/entry-extension.js +27 -0
  223. package/dist/lib/extension/media-asset-resolver.d.ts +85 -0
  224. package/dist/lib/extension/media-asset-resolver.d.ts.map +1 -0
  225. package/dist/lib/extension/media-asset-resolver.js +26 -0
  226. package/dist/lib/extension/per-locale-relation.d.ts +18 -0
  227. package/dist/lib/extension/per-locale-relation.d.ts.map +1 -0
  228. package/dist/lib/extension/relation-locale-sync.d.ts +62 -0
  229. package/dist/lib/extension/relation-locale-sync.d.ts.map +1 -0
  230. package/dist/lib/extension/relation-locale-sync.js +88 -0
  231. package/dist/lib/fields/index.d.ts +94 -0
  232. package/dist/lib/fields/index.d.ts.map +1 -0
  233. package/dist/lib/fields/index.js +203 -0
  234. package/dist/lib/insights/http/controllers/content-pipeline.controller.d.ts +16 -0
  235. package/dist/lib/insights/http/controllers/content-pipeline.controller.d.ts.map +1 -0
  236. package/dist/lib/insights/http/controllers/content-pipeline.controller.js +39 -0
  237. package/dist/lib/insights/http/controllers/content-punchcard.controller.d.ts +18 -0
  238. package/dist/lib/insights/http/controllers/content-punchcard.controller.d.ts.map +1 -0
  239. package/dist/lib/insights/http/controllers/content-punchcard.controller.js +42 -0
  240. package/dist/lib/insights/http/controllers/content-stale.controller.d.ts +17 -0
  241. package/dist/lib/insights/http/controllers/content-stale.controller.d.ts.map +1 -0
  242. package/dist/lib/insights/http/controllers/content-stale.controller.js +40 -0
  243. package/dist/lib/insights/http/controllers/content-totals.controller.d.ts +18 -0
  244. package/dist/lib/insights/http/controllers/content-totals.controller.d.ts.map +1 -0
  245. package/dist/lib/insights/http/controllers/content-totals.controller.js +42 -0
  246. package/dist/lib/insights/http/controllers/content-unshipped.controller.d.ts +17 -0
  247. package/dist/lib/insights/http/controllers/content-unshipped.controller.d.ts.map +1 -0
  248. package/dist/lib/insights/http/controllers/content-unshipped.controller.js +40 -0
  249. package/dist/lib/insights/http/controllers/content-velocity.controller.d.ts +17 -0
  250. package/dist/lib/insights/http/controllers/content-velocity.controller.d.ts.map +1 -0
  251. package/dist/lib/insights/http/controllers/content-velocity.controller.js +41 -0
  252. package/dist/lib/insights/http/dto/insights-range-query.dto.d.ts +15 -0
  253. package/dist/lib/insights/http/dto/insights-range-query.dto.d.ts.map +1 -0
  254. package/dist/lib/insights/http/dto/insights-range-query.dto.js +38 -0
  255. package/dist/lib/insights/infrastructure/queries/content-insights.query.d.ts +77 -0
  256. package/dist/lib/insights/infrastructure/queries/content-insights.query.d.ts.map +1 -0
  257. package/dist/lib/insights/infrastructure/queries/content-insights.query.js +380 -0
  258. package/dist/lib/insights/types/content-insights-view.d.ts +134 -0
  259. package/dist/lib/insights/types/content-insights-view.d.ts.map +1 -0
  260. package/dist/lib/insights/types/content-insights-view.js +10 -0
  261. package/dist/lib/mcp/content-tools.provider.d.ts +83 -0
  262. package/dist/lib/mcp/content-tools.provider.d.ts.map +1 -0
  263. package/dist/lib/mcp/content-tools.provider.js +441 -0
  264. package/dist/lib/mcp/tool-input.d.ts +43 -0
  265. package/dist/lib/mcp/tool-input.d.ts.map +1 -0
  266. package/dist/lib/mcp/tool-input.js +117 -0
  267. package/dist/lib/mcp/tool-schemas.d.ts +34 -0
  268. package/dist/lib/mcp/tool-schemas.d.ts.map +1 -0
  269. package/dist/lib/mcp/tool-schemas.js +282 -0
  270. package/dist/lib/public/controllers/get-public-entry.controller.d.ts +26 -0
  271. package/dist/lib/public/controllers/get-public-entry.controller.d.ts.map +1 -0
  272. package/dist/lib/public/controllers/list-public-entries.controller.d.ts +24 -0
  273. package/dist/lib/public/controllers/list-public-entries.controller.d.ts.map +1 -0
  274. package/dist/lib/public/controllers/public-schema.controller.d.ts +18 -0
  275. package/dist/lib/public/controllers/public-schema.controller.d.ts.map +1 -0
  276. package/dist/lib/public-api/http/api-token-request.d.ts +41 -0
  277. package/dist/lib/public-api/http/api-token-request.d.ts.map +1 -0
  278. package/dist/lib/public-api/http/api-token-request.js +2 -0
  279. package/dist/lib/public-api/http/controllers/public-content-types.controller.d.ts +31 -0
  280. package/dist/lib/public-api/http/controllers/public-content-types.controller.d.ts.map +1 -0
  281. package/dist/lib/public-api/http/controllers/public-content-types.controller.js +93 -0
  282. package/dist/lib/public-api/http/controllers/public-entries.controller.d.ts +101 -0
  283. package/dist/lib/public-api/http/controllers/public-entries.controller.d.ts.map +1 -0
  284. package/dist/lib/public-api/http/controllers/public-entries.controller.js +307 -0
  285. package/dist/lib/public-api/http/controllers/public-entry-writes.controller.d.ts +76 -0
  286. package/dist/lib/public-api/http/controllers/public-entry-writes.controller.d.ts.map +1 -0
  287. package/dist/lib/public-api/http/controllers/public-entry-writes.controller.js +353 -0
  288. package/dist/lib/public-api/http/controllers/resolve-granted-type.d.ts +42 -0
  289. package/dist/lib/public-api/http/controllers/resolve-granted-type.d.ts.map +1 -0
  290. package/dist/lib/public-api/http/controllers/resolve-granted-type.js +25 -0
  291. package/dist/lib/public-api/http/decorators/current-api-token.decorator.d.ts +8 -0
  292. package/dist/lib/public-api/http/decorators/current-api-token.decorator.d.ts.map +1 -0
  293. package/dist/lib/public-api/http/decorators/current-api-token.decorator.js +17 -0
  294. package/dist/lib/public-api/http/dto/public-bulk.dto.d.ts +58 -0
  295. package/dist/lib/public-api/http/dto/public-bulk.dto.d.ts.map +1 -0
  296. package/dist/lib/public-api/http/dto/public-bulk.dto.js +118 -0
  297. package/dist/lib/public-api/http/dto/public-list-entries-query.dto.d.ts +106 -0
  298. package/dist/lib/public-api/http/dto/public-list-entries-query.dto.d.ts.map +1 -0
  299. package/dist/lib/public-api/http/dto/public-list-entries-query.dto.js +297 -0
  300. package/dist/lib/public-api/http/dto/public-save-entry.dto.d.ts +39 -0
  301. package/dist/lib/public-api/http/dto/public-save-entry.dto.d.ts.map +1 -0
  302. package/dist/lib/public-api/http/dto/public-save-entry.dto.js +112 -0
  303. package/dist/lib/public-api/http/guards/api-token-workspace.guard.d.ts +25 -0
  304. package/dist/lib/public-api/http/guards/api-token-workspace.guard.d.ts.map +1 -0
  305. package/dist/lib/public-api/http/guards/api-token-workspace.guard.js +58 -0
  306. package/dist/lib/public-api/http/guards/api-token.guard.d.ts +32 -0
  307. package/dist/lib/public-api/http/guards/api-token.guard.d.ts.map +1 -0
  308. package/dist/lib/public-api/http/guards/api-token.guard.js +92 -0
  309. package/dist/lib/public-api/http/guards/draft-visibility.guard.d.ts +25 -0
  310. package/dist/lib/public-api/http/guards/draft-visibility.guard.d.ts.map +1 -0
  311. package/dist/lib/public-api/http/guards/draft-visibility.guard.js +56 -0
  312. package/dist/lib/public-api/infrastructure/bulk-save-op.d.ts +55 -0
  313. package/dist/lib/public-api/infrastructure/bulk-save-op.d.ts.map +1 -0
  314. package/dist/lib/public-api/infrastructure/bulk-save-op.js +61 -0
  315. package/dist/lib/public-api/infrastructure/field-selection.d.ts +21 -0
  316. package/dist/lib/public-api/infrastructure/field-selection.d.ts.map +1 -0
  317. package/dist/lib/public-api/infrastructure/field-selection.js +72 -0
  318. package/dist/lib/public-api/infrastructure/public-entries.query.d.ts +248 -0
  319. package/dist/lib/public-api/infrastructure/public-entries.query.d.ts.map +1 -0
  320. package/dist/lib/public-api/infrastructure/public-entries.query.js +557 -0
  321. package/dist/lib/public-api/infrastructure/public-entry-row.d.ts +31 -0
  322. package/dist/lib/public-api/infrastructure/public-entry-row.d.ts.map +1 -0
  323. package/dist/lib/public-api/infrastructure/public-entry-row.js +76 -0
  324. package/dist/lib/public-api/infrastructure/public-entry-writes.service.d.ts +188 -0
  325. package/dist/lib/public-api/infrastructure/public-entry-writes.service.d.ts.map +1 -0
  326. package/dist/lib/public-api/infrastructure/public-entry-writes.service.js +321 -0
  327. package/dist/lib/public-api/infrastructure/public-expansion.query.d.ts +98 -0
  328. package/dist/lib/public-api/infrastructure/public-expansion.query.d.ts.map +1 -0
  329. package/dist/lib/public-api/infrastructure/public-expansion.query.js +384 -0
  330. package/dist/lib/public-api/types/public-bulk.d.ts +77 -0
  331. package/dist/lib/public-api/types/public-bulk.d.ts.map +1 -0
  332. package/dist/lib/public-api/types/public-bulk.js +23 -0
  333. package/dist/lib/public-api/types/public-entry.d.ts +97 -0
  334. package/dist/lib/public-api/types/public-entry.d.ts.map +1 -0
  335. package/dist/lib/public-api/types/public-entry.js +8 -0
  336. package/dist/lib/public-api/types/public-expansion.d.ts +92 -0
  337. package/dist/lib/public-api/types/public-expansion.d.ts.map +1 -0
  338. package/dist/lib/public-api/types/public-expansion.js +2 -0
  339. package/dist/lib/registry/content-type-registry.d.ts +103 -0
  340. package/dist/lib/registry/content-type-registry.d.ts.map +1 -0
  341. package/dist/lib/registry/content-type-registry.js +155 -0
  342. package/dist/lib/revisions/application/ports/revision-store.d.ts +71 -0
  343. package/dist/lib/revisions/application/ports/revision-store.d.ts.map +1 -0
  344. package/dist/lib/revisions/application/ports/revision-store.js +9 -0
  345. package/dist/lib/revisions/application/use-cases/publish-revision.use-case.d.ts +40 -0
  346. package/dist/lib/revisions/application/use-cases/publish-revision.use-case.d.ts.map +1 -0
  347. package/dist/lib/revisions/application/use-cases/publish-revision.use-case.js +66 -0
  348. package/dist/lib/revisions/application/use-cases/restore-revision.use-case.d.ts +36 -0
  349. package/dist/lib/revisions/application/use-cases/restore-revision.use-case.d.ts.map +1 -0
  350. package/dist/lib/revisions/application/use-cases/restore-revision.use-case.js +57 -0
  351. package/dist/lib/revisions/domain/revision-status.d.ts +18 -0
  352. package/dist/lib/revisions/domain/revision-status.d.ts.map +1 -0
  353. package/dist/lib/revisions/domain/revision-status.js +18 -0
  354. package/dist/lib/revisions/domain/revision.d.ts +80 -0
  355. package/dist/lib/revisions/domain/revision.d.ts.map +1 -0
  356. package/dist/lib/revisions/domain/revision.js +84 -0
  357. package/dist/lib/revisions/http/controllers/publish-revision.controller.d.ts +19 -0
  358. package/dist/lib/revisions/http/controllers/publish-revision.controller.d.ts.map +1 -0
  359. package/dist/lib/revisions/http/controllers/publish-revision.controller.js +51 -0
  360. package/dist/lib/revisions/http/controllers/restore-revision.controller.d.ts +17 -0
  361. package/dist/lib/revisions/http/controllers/restore-revision.controller.d.ts.map +1 -0
  362. package/dist/lib/revisions/http/controllers/restore-revision.controller.js +49 -0
  363. package/dist/lib/revisions/http/controllers/revisions.controller.d.ts +20 -0
  364. package/dist/lib/revisions/http/controllers/revisions.controller.d.ts.map +1 -0
  365. package/dist/lib/revisions/http/controllers/revisions.controller.js +76 -0
  366. package/dist/lib/revisions/infrastructure/persistence/drizzle-revision.store.d.ts +33 -0
  367. package/dist/lib/revisions/infrastructure/persistence/drizzle-revision.store.d.ts.map +1 -0
  368. package/dist/lib/revisions/infrastructure/persistence/drizzle-revision.store.js +174 -0
  369. package/dist/lib/revisions/infrastructure/persistence/revision-snapshot.d.ts +17 -0
  370. package/dist/lib/revisions/infrastructure/persistence/revision-snapshot.d.ts.map +1 -0
  371. package/dist/lib/revisions/infrastructure/persistence/revision-snapshot.js +20 -0
  372. package/dist/lib/revisions/infrastructure/persistence/revision-table.d.ts +228 -0
  373. package/dist/lib/revisions/infrastructure/persistence/revision-table.d.ts.map +1 -0
  374. package/dist/lib/revisions/infrastructure/persistence/revision-table.js +57 -0
  375. package/dist/lib/revisions/infrastructure/queries/revision-refs.query.d.ts +22 -0
  376. package/dist/lib/revisions/infrastructure/queries/revision-refs.query.d.ts.map +1 -0
  377. package/dist/lib/revisions/infrastructure/queries/revision-refs.query.js +66 -0
  378. package/dist/lib/revisions/revisions.constants.d.ts +10 -0
  379. package/dist/lib/revisions/revisions.constants.d.ts.map +1 -0
  380. package/dist/lib/revisions/revisions.constants.js +12 -0
  381. package/dist/lib/revisions/types/revision-view.d.ts +74 -0
  382. package/dist/lib/revisions/types/revision-view.d.ts.map +1 -0
  383. package/dist/lib/revisions/types/revision-view.js +2 -0
  384. package/dist/lib/types/content-type.d.ts +131 -0
  385. package/dist/lib/types/content-type.d.ts.map +1 -0
  386. package/dist/lib/types/content-type.js +28 -0
  387. package/dist/lib/types/fields.d.ts +303 -0
  388. package/dist/lib/types/fields.d.ts.map +1 -0
  389. package/dist/lib/types/fields.js +52 -0
  390. package/dist/lib/utils/content-plugin.d.ts +35 -0
  391. package/dist/lib/utils/content-plugin.d.ts.map +1 -0
  392. package/dist/lib/utils/content-plugin.js +35 -0
  393. package/dist/lib/validation/services/entry-validation.service.d.ts +24 -0
  394. package/dist/lib/validation/services/entry-validation.service.d.ts.map +1 -0
  395. package/dist/lib/validation/services/entry-validation.service.js +35 -0
  396. package/package.json +54 -0
@@ -0,0 +1,21 @@
1
+ import { DynamicModule } from '@nestjs/common';
2
+ import type { ContentTypeRegistry } from './registry/content-type-registry';
3
+ /**
4
+ * NestJS module for the content plugin. Registered globally so the
5
+ * registry and validation service are injectable from any plugin (the
6
+ * admin BFF, future provenance/audit features, identity's workspace
7
+ * grants) without an explicit import.
8
+ *
9
+ * Owns no database schema of its own in this milestone — the HOST owns
10
+ * the generated collection tables and their migrations; this module owns
11
+ * the registry, its HTTP surface, and value validation.
12
+ *
13
+ * It also binds identity's {@link CONTENT_CATALOG} port to the registry, so
14
+ * identity's `GET /api/content-types` and the workspace-grant flow resolve
15
+ * against the real code-defined types instead of identity's built-in mock.
16
+ */
17
+ export declare class ContentModule {
18
+ /** Creates the global dynamic module around a validated registry. */
19
+ static forRoot(registry: ContentTypeRegistry): DynamicModule;
20
+ }
21
+ //# sourceMappingURL=content.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.module.d.ts","sourceRoot":"","sources":["../../src/lib/content.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAU,MAAM,gBAAgB,CAAC;AAOvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AA4D5E;;;;;;;;;;;;;GAaG;AACH,qBACa,aAAa;IACtB,qEAAqE;IACrE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,mBAAmB,GAAG,aAAa;CA0L/D"}
@@ -0,0 +1,264 @@
1
+ "use strict";
2
+ var ContentModule_1;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ContentModule = void 0;
5
+ const tslib_1 = require("tslib");
6
+ const common_1 = require("@nestjs/common");
7
+ const workspaces_server_1 = require("@orthacms/workspaces-server");
8
+ const content_tokens_1 = require("./content.tokens");
9
+ const list_content_schema_controller_1 = require("./content-types/controllers/list-content-schema.controller");
10
+ const get_content_schema_controller_1 = require("./content-types/controllers/get-content-schema.controller");
11
+ const get_filter_fields_controller_1 = require("./content-types/controllers/get-filter-fields.controller");
12
+ const workspace_grants_query_1 = require("./content-types/queries/workspace-grants.query");
13
+ const content_grant_guard_1 = require("./entries/http/guards/content-grant.guard");
14
+ const list_entries_controller_1 = require("./entries/http/controllers/list-entries.controller");
15
+ const bulk_entries_controller_1 = require("./entries/http/controllers/bulk-entries.controller");
16
+ const create_entry_controller_1 = require("./entries/http/controllers/create-entry.controller");
17
+ const get_entry_controller_1 = require("./entries/http/controllers/get-entry.controller");
18
+ const update_entry_controller_1 = require("./entries/http/controllers/update-entry.controller");
19
+ const publish_entry_controller_1 = require("./entries/http/controllers/publish-entry.controller");
20
+ const delete_entry_controller_1 = require("./entries/http/controllers/delete-entry.controller");
21
+ const entry_extension_boot_check_1 = require("./extension/entry-extension-boot-check");
22
+ const copilot_server_1 = require("@orthacms/copilot-server");
23
+ const content_tool_provider_1 = require("./copilot/content-tool.provider");
24
+ const revision_tool_provider_1 = require("./copilot/revision-tool.provider");
25
+ const entry_proposal_provider_1 = require("./copilot/entry-proposal.provider");
26
+ const entry_proposal_applier_1 = require("./copilot/entry-proposal.applier");
27
+ const entry_validation_service_1 = require("./validation/services/entry-validation.service");
28
+ const entries_service_1 = require("./entries/infrastructure/queries/entries.service");
29
+ const media_refs_query_1 = require("./entries/infrastructure/queries/media-refs.query");
30
+ const entry_writer_service_1 = require("./entries/infrastructure/persistence/entry-writer.service");
31
+ const entry_counter_service_1 = require("./entries/infrastructure/persistence/entry-counter.service");
32
+ const relation_link_service_1 = require("./entries/infrastructure/persistence/relation-link.service");
33
+ const bulk_publish_preview_query_1 = require("./entries/infrastructure/queries/bulk-publish-preview.query");
34
+ const publish_entry_use_case_1 = require("./entries/application/use-cases/publish-entry.use-case");
35
+ const unpublish_entry_use_case_1 = require("./entries/application/use-cases/unpublish-entry.use-case");
36
+ const bulk_publish_entries_use_case_1 = require("./entries/application/use-cases/bulk-publish-entries.use-case");
37
+ const bulk_unpublish_entries_use_case_1 = require("./entries/application/use-cases/bulk-unpublish-entries.use-case");
38
+ const revision_store_1 = require("./revisions/application/ports/revision-store");
39
+ const drizzle_revision_store_1 = require("./revisions/infrastructure/persistence/drizzle-revision.store");
40
+ const restore_revision_use_case_1 = require("./revisions/application/use-cases/restore-revision.use-case");
41
+ const publish_revision_use_case_1 = require("./revisions/application/use-cases/publish-revision.use-case");
42
+ const revision_refs_query_1 = require("./revisions/infrastructure/queries/revision-refs.query");
43
+ const revisions_controller_1 = require("./revisions/http/controllers/revisions.controller");
44
+ const restore_revision_controller_1 = require("./revisions/http/controllers/restore-revision.controller");
45
+ const publish_revision_controller_1 = require("./revisions/http/controllers/publish-revision.controller");
46
+ const public_content_types_controller_1 = require("./public-api/http/controllers/public-content-types.controller");
47
+ const public_entries_controller_1 = require("./public-api/http/controllers/public-entries.controller");
48
+ const public_entry_writes_controller_1 = require("./public-api/http/controllers/public-entry-writes.controller");
49
+ const api_token_guard_1 = require("./public-api/http/guards/api-token.guard");
50
+ const api_token_workspace_guard_1 = require("./public-api/http/guards/api-token-workspace.guard");
51
+ const public_entries_query_1 = require("./public-api/infrastructure/public-entries.query");
52
+ const public_entry_writes_service_1 = require("./public-api/infrastructure/public-entry-writes.service");
53
+ const draft_visibility_guard_1 = require("./public-api/http/guards/draft-visibility.guard");
54
+ const public_expansion_query_1 = require("./public-api/infrastructure/public-expansion.query");
55
+ const content_tools_provider_1 = require("./mcp/content-tools.provider");
56
+ const content_insights_query_1 = require("./insights/infrastructure/queries/content-insights.query");
57
+ const content_totals_controller_1 = require("./insights/http/controllers/content-totals.controller");
58
+ const content_stale_controller_1 = require("./insights/http/controllers/content-stale.controller");
59
+ const content_pipeline_controller_1 = require("./insights/http/controllers/content-pipeline.controller");
60
+ const content_velocity_controller_1 = require("./insights/http/controllers/content-velocity.controller");
61
+ const content_punchcard_controller_1 = require("./insights/http/controllers/content-punchcard.controller");
62
+ const content_unshipped_controller_1 = require("./insights/http/controllers/content-unshipped.controller");
63
+ /**
64
+ * NestJS module for the content plugin. Registered globally so the
65
+ * registry and validation service are injectable from any plugin (the
66
+ * admin BFF, future provenance/audit features, identity's workspace
67
+ * grants) without an explicit import.
68
+ *
69
+ * Owns no database schema of its own in this milestone — the HOST owns
70
+ * the generated collection tables and their migrations; this module owns
71
+ * the registry, its HTTP surface, and value validation.
72
+ *
73
+ * It also binds identity's {@link CONTENT_CATALOG} port to the registry, so
74
+ * identity's `GET /api/content-types` and the workspace-grant flow resolve
75
+ * against the real code-defined types instead of identity's built-in mock.
76
+ */
77
+ let ContentModule = ContentModule_1 = class ContentModule {
78
+ /** Creates the global dynamic module around a validated registry. */
79
+ static forRoot(registry) {
80
+ return {
81
+ module: ContentModule_1,
82
+ global: true,
83
+ controllers: [
84
+ list_content_schema_controller_1.ListContentSchemaController,
85
+ // The `:name/filter-fields` route is more specific than
86
+ // `GetContentSchemaController`'s `:name`, so their order is
87
+ // immaterial, but keep the schema routes grouped.
88
+ get_filter_fields_controller_1.GetFilterFieldsController,
89
+ get_content_schema_controller_1.GetContentSchemaController,
90
+ // Bulk routes carry a literal `bulk` in the `:id` slot, so they
91
+ // must be registered before the single-item controllers below
92
+ // (`:typeName/:id/...`) to win the match. The list controller is
93
+ // unaffected (`GET :typeName` is one segment shorter).
94
+ bulk_entries_controller_1.BulkEntriesController,
95
+ list_entries_controller_1.ListEntriesController,
96
+ create_entry_controller_1.CreateEntryController,
97
+ get_entry_controller_1.GetEntryController,
98
+ update_entry_controller_1.UpdateEntryController,
99
+ publish_entry_controller_1.PublishEntryController,
100
+ delete_entry_controller_1.DeleteEntryController,
101
+ // Revisions feature — the version timeline read + restore. Their
102
+ // literal `revisions` segment can't collide with the single-item
103
+ // routes above.
104
+ revisions_controller_1.RevisionsController,
105
+ restore_revision_controller_1.RestoreRevisionController,
106
+ publish_revision_controller_1.PublishRevisionController,
107
+ // The public, token-authenticated read API (`/api/v1/...`).
108
+ // Its own `v1` prefix keeps it clear of the admin routes, so
109
+ // registration order relative to them doesn't matter; the
110
+ // `v1/content-types` prefix likewise can't collide with
111
+ // `v1/content/:typeName` (different first segment).
112
+ public_content_types_controller_1.PublicContentTypesController,
113
+ // The write routes go FIRST: `POST :typeName` (create) would
114
+ // otherwise be shadowed by nothing, but `PATCH`/`DELETE
115
+ // :typeName/group/:gid` and the reads' `GET :typeName/group/:gid`
116
+ // share a shape, and keeping the two controllers' orders
117
+ // consistent means the group-before-id rule holds across both.
118
+ public_entry_writes_controller_1.PublicEntryWritesController,
119
+ public_entries_controller_1.PublicEntriesController,
120
+ // Insights read-model. Their `insights` first segment can't
121
+ // collide with the `content/:typeName` routes above, and each
122
+ // widget on the Insights page owns one of these endpoints so a
123
+ // slow aggregate degrades a single card.
124
+ content_totals_controller_1.ContentTotalsController,
125
+ content_stale_controller_1.ContentStaleController,
126
+ content_pipeline_controller_1.ContentPipelineController,
127
+ content_velocity_controller_1.ContentVelocityController,
128
+ content_punchcard_controller_1.ContentPunchcardController,
129
+ content_unshipped_controller_1.ContentUnshippedController
130
+ ],
131
+ providers: [
132
+ { provide: content_tokens_1.CONTENT_REGISTRY, useValue: registry },
133
+ {
134
+ // Adapt the registry to identity's catalogue port. Summaries
135
+ // are shape-compatible with `ContentTypeDescriptor`.
136
+ provide: workspaces_server_1.CONTENT_CATALOG,
137
+ useFactory: (reg) => ({
138
+ list: () => reg.summaries()
139
+ }),
140
+ inject: [content_tokens_1.CONTENT_REGISTRY]
141
+ },
142
+ // Bind identity's entry-counter port to the registry-backed
143
+ // counter, so the workspace "revoke content only when empty"
144
+ // rule sees the real stored entries. Same inversion as the
145
+ // catalogue above.
146
+ entry_counter_service_1.EntryCounterService,
147
+ {
148
+ provide: workspaces_server_1.CONTENT_ENTRY_COUNTER,
149
+ useExisting: entry_counter_service_1.EntryCounterService
150
+ },
151
+ entry_validation_service_1.EntryValidationService,
152
+ workspace_grants_query_1.WorkspaceGrantsQuery,
153
+ // Every registry-driven `content/:typeName` route is guarded by
154
+ // it, so it is resolved from this module's context.
155
+ content_grant_guard_1.ContentGrantGuard,
156
+ entries_service_1.EntriesService,
157
+ content_insights_query_1.ContentInsightsQuery,
158
+ // Resolves media field ids → display refs (thumbnails); injected
159
+ // by the entry-media read endpoint and the revision refs query.
160
+ // No-ops when the media plugin binds no resolver.
161
+ media_refs_query_1.MediaRefsQuery,
162
+ // The generic revision store, bound to its Drizzle adapter and
163
+ // injected by EntryWriterService (snapshot-on-save) + the
164
+ // revisions read/restore. Registered before EntryWriterService's
165
+ // provider is resolved — Nest orders by the dependency graph.
166
+ { provide: revision_store_1.REVISION_STORE, useClass: drizzle_revision_store_1.DrizzleRevisionStore },
167
+ restore_revision_use_case_1.RestoreRevisionUseCase,
168
+ // Publish a specific version live (restore-if-needed + publish).
169
+ publish_revision_use_case_1.PublishRevisionUseCase,
170
+ // Resolves a previewed revision's relation ids to display refs
171
+ // (the "exact linked records" the diff shows).
172
+ revision_refs_query_1.RevisionRefsQuery,
173
+ entry_writer_service_1.EntryWriterService,
174
+ relation_link_service_1.RelationLinkService,
175
+ // Entries feature, layered per ADR-0003: the publish-lifecycle
176
+ // use-cases (over the global UnitOfWork/OutboxWriter) + the
177
+ // bulk-publish dry-run query. CRUD writes stay on the
178
+ // persistence engine (EntryWriterService) directly.
179
+ publish_entry_use_case_1.PublishEntryUseCase,
180
+ unpublish_entry_use_case_1.UnpublishEntryUseCase,
181
+ bulk_publish_entries_use_case_1.BulkPublishEntriesUseCase,
182
+ bulk_unpublish_entries_use_case_1.BulkUnpublishEntriesUseCase,
183
+ bulk_publish_preview_query_1.BulkPublishPreviewQuery,
184
+ // Public API: the bearer guard (which resolves a token through
185
+ // identity's exported `ApiTokenService`), the workspace
186
+ // resolver, and the narrow published-only read.
187
+ api_token_guard_1.ApiTokenGuard,
188
+ api_token_workspace_guard_1.ApiTokenWorkspaceGuard,
189
+ // Gates `?status=draft|any` on write scope, so a read-only token
190
+ // can never see unpublished work.
191
+ draft_visibility_guard_1.DraftVisibilityGuard,
192
+ public_entries_query_1.PublicEntriesQuery,
193
+ // The write half — a thin edge over EntryWriterService and the
194
+ // publish use-cases, which own all the write invariants.
195
+ public_entry_writes_service_1.PublicEntryWritesService,
196
+ // Batched relation + media expansion for the public reads.
197
+ public_expansion_query_1.PublicExpansionQuery,
198
+ // The agent-facing tools — the same CRUD as the public API,
199
+ // over the same services, for the MCP endpoint and (once its
200
+ // run engine lands) the copilot. Registers itself with
201
+ // `@orthacms/tools-server`'s registry when the MCP plugin is
202
+ // installed, and is inert when it isn't.
203
+ content_tools_provider_1.ContentToolProvider,
204
+ // Fails boot when an i18n type has no CONTENT_ENTRY_EXTENSION
205
+ // bound (nothing would stamp the NOT NULL locale column).
206
+ entry_extension_boot_check_1.EntryExtensionBootCheck,
207
+ // The copilot's read-only content tools, and the bootstrap hook
208
+ // that registers them. Both no-op when no copilot plugin is
209
+ // registered — the registrar injects the registry optionally.
210
+ content_tool_provider_1.ContentCopilotToolProvider,
211
+ revision_tool_provider_1.RevisionCopilotToolProvider,
212
+ entry_proposal_provider_1.EntryProposalToolProvider,
213
+ // The appliers for the kinds those propose tools produce.
214
+ // Next to the tools on purpose: a missing applier surfaces only
215
+ // when a human clicks Accept.
216
+ entry_proposal_applier_1.CreateEntryProposalApplier,
217
+ entry_proposal_applier_1.UpdateEntryProposalApplier,
218
+ entry_proposal_applier_1.BulkSaveEntriesProposalApplier,
219
+ (0, copilot_server_1.copilotAppliersRegistrar)('content', entry_proposal_applier_1.CreateEntryProposalApplier, entry_proposal_applier_1.UpdateEntryProposalApplier, entry_proposal_applier_1.BulkSaveEntriesProposalApplier)
220
+ ],
221
+ exports: [
222
+ content_tokens_1.CONTENT_REGISTRY,
223
+ workspaces_server_1.CONTENT_CATALOG,
224
+ workspaces_server_1.CONTENT_ENTRY_COUNTER,
225
+ entry_validation_service_1.EntryValidationService,
226
+ // The public API's collaborators, exported so another plugin can
227
+ // put a SECOND PROTOCOL in front of the same surface without
228
+ // re-implementing any of it — `@orthacms/content-graphql` does
229
+ // exactly that. The module is already `global: true`, so
230
+ // exporting is all that is needed for it to inject these.
231
+ // Everything a `/v1` request is authorized and answered by lives
232
+ // in this list, which is what keeps the two protocols honest:
233
+ // there is one visibility rule, one grant gate, one write path.
234
+ //
235
+ // `WorkspaceGrantsQuery` serves a second set of callers too:
236
+ // the plugins that bind their own copilot tools over
237
+ // content-scoped data (i18n, media). A tool's type name arrives
238
+ // from the model, so every one of them has to re-check the
239
+ // workspace's grants — and there must be exactly one
240
+ // implementation of that check, not one per binder.
241
+ workspace_grants_query_1.WorkspaceGrantsQuery,
242
+ public_entries_query_1.PublicEntriesQuery,
243
+ public_entry_writes_service_1.PublicEntryWritesService,
244
+ api_token_guard_1.ApiTokenGuard,
245
+ api_token_workspace_guard_1.ApiTokenWorkspaceGuard,
246
+ // The write engine, for the proposal appliers those plugins
247
+ // also bind. ADR-0005 §5 requires an applied proposal to run
248
+ // the ordinary use-case, so they must reach *this* service
249
+ // rather than write their own insert.
250
+ entry_writer_service_1.EntryWriterService,
251
+ // Relation storage, for the bound CONTENT_ENTRY_EXTENSION: the
252
+ // i18n sync reads and rewrites link sets on locale siblings,
253
+ // and it has to be through the same service the entries
254
+ // pipeline writes with — a second implementation of the join
255
+ // table's ordering and de-duplication is how the two drift.
256
+ relation_link_service_1.RelationLinkService
257
+ ]
258
+ };
259
+ }
260
+ };
261
+ exports.ContentModule = ContentModule;
262
+ exports.ContentModule = ContentModule = ContentModule_1 = tslib_1.__decorate([
263
+ (0, common_1.Module)({})
264
+ ], ContentModule);
@@ -0,0 +1,5 @@
1
+ /** DI token under which the {@link ContentTypeRegistry} is provided. */
2
+ export declare const CONTENT_REGISTRY: unique symbol;
3
+ /** Injects the content-type registry. */
4
+ export declare const InjectContentRegistry: () => ParameterDecorator;
5
+ //# sourceMappingURL=content.tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.tokens.d.ts","sourceRoot":"","sources":["../../src/lib/content.tokens.ts"],"names":[],"mappings":"AAEA,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,eAA6B,CAAC;AAE3D,yCAAyC;AACzC,eAAO,MAAM,qBAAqB,QAAO,kBACb,CAAC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InjectContentRegistry = exports.CONTENT_REGISTRY = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ /** DI token under which the {@link ContentTypeRegistry} is provided. */
6
+ exports.CONTENT_REGISTRY = Symbol('CONTENT_REGISTRY');
7
+ /** Injects the content-type registry. */
8
+ const InjectContentRegistry = () => (0, common_1.Inject)(exports.CONTENT_REGISTRY);
9
+ exports.InjectContentRegistry = InjectContentRegistry;
@@ -0,0 +1,64 @@
1
+ import { type OnModuleInit } from '@nestjs/common';
2
+ import { ToolRegistry } from '@orthacms/tools-server';
3
+ import type { ToolDefinition, ToolProvider } from '@orthacms/tools-server';
4
+ import type { ContentTypeRegistry } from '../registry/content-type-registry';
5
+ import { EntriesService } from '../entries/infrastructure/queries/entries.service';
6
+ import { EntryWriterService } from '../entries/infrastructure/persistence/entry-writer.service';
7
+ import { WorkspaceGrantsQuery } from '../content-types/queries/workspace-grants.query';
8
+ /**
9
+ * The content plugin's contribution to the copilot's tool catalogue — phase 1's
10
+ * three **read-only** tools.
11
+ *
12
+ * Bindings live with their owner: this package already holds `EntriesService`
13
+ * and the registry, so the tools are thin wrappers over the same services the
14
+ * HTTP controllers call, with no refactor and no duplicated query logic. The
15
+ * copilot never imports content ([`docs/design/copilot.md`](../../../../../docs/design/copilot.md) §4).
16
+ *
17
+ * **Every tool re-checks the workspace's content grants.** `WorkspaceGuard`
18
+ * proved the caller belongs to the workspace, but not that the workspace may
19
+ * reach a given type — and the type name arrives from the *model*, which is
20
+ * steerable by content it has read. `resolveGranted` is the one place that
21
+ * check lives, and every tool goes through it.
22
+ */
23
+ export declare class ContentCopilotToolProvider implements ToolProvider, OnModuleInit {
24
+ private readonly registry;
25
+ private readonly entries;
26
+ private readonly writer;
27
+ private readonly grants;
28
+ private readonly toolRegistry?;
29
+ constructor(registry: ContentTypeRegistry, entries: EntriesService, writer: EntryWriterService, grants: WorkspaceGrantsQuery, toolRegistry?: ToolRegistry | undefined);
30
+ /**
31
+ * Register with the shared tool registry once the DI graph is built —
32
+ * the same catalogue the MCP endpoint serves, narrowed to the `copilot`
33
+ * surface by each tool's `surfaces`. `@Optional()` because a deployment
34
+ * may run neither consumer, in which case these simply go unregistered.
35
+ */
36
+ onModuleInit(): void;
37
+ /** The three read tools, in the order the model sees them. */
38
+ tools(): readonly ToolDefinition[];
39
+ /**
40
+ * Resolves a model-supplied type name to a registered type the workspace
41
+ * was actually granted, or throws — the error becomes a tool error the
42
+ * model can recover from.
43
+ *
44
+ * "Not granted" and "does not exist" deliberately produce the **same**
45
+ * message: a distinguishable answer would let a run in one workspace
46
+ * enumerate the deployment's other content types.
47
+ */
48
+ private resolveGranted;
49
+ /**
50
+ * `admin_content_types` — the workspace's types, and a named type's full
51
+ * field schema on demand.
52
+ *
53
+ * This is the other half of the "summaries in the prompt, schema on
54
+ * demand" decision (`docs/design/copilot.md` §10): the prompt lists types
55
+ * without fields, and the model calls this when it needs one type's fields,
56
+ * costing one round trip instead of a context window.
57
+ */
58
+ private listTypes;
59
+ /** `admin_content_search` — one page of a type's entries. */
60
+ private searchEntries;
61
+ /** `admin_content_get` — one entry in full, by id. */
62
+ private getEntry;
63
+ }
64
+ //# sourceMappingURL=content-tool.provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-tool.provider.d.ts","sourceRoot":"","sources":["../../../src/lib/copilot/content-tool.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,mDAAmD,CAAC;AACnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,4DAA4D,CAAC;AAChG,OAAO,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AASvF;;;;;;;;;;;;;;GAcG;AACH,qBACa,0BAA2B,YAAW,YAAY,EAAE,YAAY;IAGrE,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACX,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;gBAJzB,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,kBAAkB,EAC1B,MAAM,EAAE,oBAAoB,EAChB,YAAY,CAAC,EAAE,YAAY,YAAA;IAG5D;;;;;OAKG;IACH,YAAY,IAAI,IAAI;IAIpB,8DAA8D;IAC9D,KAAK,IAAI,SAAS,cAAc,EAAE;IAIlC;;;;;;;;OAQG;YACW,cAAc;IAW5B;;;;;;;;OAQG;IACH,OAAO,CAAC,SAAS;IAmEjB,6DAA6D;IAC7D,OAAO,CAAC,aAAa;IAgJrB,sDAAsD;IACtD,OAAO,CAAC,QAAQ;CA0DnB"}