@aotter/mantle-runtime 0.0.11-alpha.11

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 (439) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +14 -0
  3. package/dist/domain/index.d.ts +4 -0
  4. package/dist/domain/index.d.ts.map +1 -0
  5. package/dist/domain/index.js +4 -0
  6. package/dist/domain/index.js.map +1 -0
  7. package/dist/domain/model/EntryRow.d.ts +59 -0
  8. package/dist/domain/model/EntryRow.d.ts.map +1 -0
  9. package/dist/domain/model/EntryRow.js +42 -0
  10. package/dist/domain/model/EntryRow.js.map +1 -0
  11. package/dist/domain/model/HandlerContext.d.ts +65 -0
  12. package/dist/domain/model/HandlerContext.d.ts.map +1 -0
  13. package/dist/domain/model/HandlerContext.js +2 -0
  14. package/dist/domain/model/HandlerContext.js.map +1 -0
  15. package/dist/domain/model/SeoMeta.d.ts +49 -0
  16. package/dist/domain/model/SeoMeta.d.ts.map +1 -0
  17. package/dist/domain/model/SeoMeta.js +2 -0
  18. package/dist/domain/model/SeoMeta.js.map +1 -0
  19. package/dist/domain/model/TemplateRegistry.d.ts +47 -0
  20. package/dist/domain/model/TemplateRegistry.d.ts.map +1 -0
  21. package/dist/domain/model/TemplateRegistry.js +17 -0
  22. package/dist/domain/model/TemplateRegistry.js.map +1 -0
  23. package/dist/domain/model/index.d.ts +7 -0
  24. package/dist/domain/model/index.d.ts.map +1 -0
  25. package/dist/domain/model/index.js +6 -0
  26. package/dist/domain/model/index.js.map +1 -0
  27. package/dist/domain/port/AssetServer.d.ts +21 -0
  28. package/dist/domain/port/AssetServer.d.ts.map +1 -0
  29. package/dist/domain/port/AssetServer.js +2 -0
  30. package/dist/domain/port/AssetServer.js.map +1 -0
  31. package/dist/domain/port/Clock.d.ts +13 -0
  32. package/dist/domain/port/Clock.d.ts.map +1 -0
  33. package/dist/domain/port/Clock.js +2 -0
  34. package/dist/domain/port/Clock.js.map +1 -0
  35. package/dist/domain/port/DatabaseDriver.d.ts +91 -0
  36. package/dist/domain/port/DatabaseDriver.d.ts.map +1 -0
  37. package/dist/domain/port/DatabaseDriver.js +2 -0
  38. package/dist/domain/port/DatabaseDriver.js.map +1 -0
  39. package/dist/domain/port/DeferredHookDispatcher.d.ts +55 -0
  40. package/dist/domain/port/DeferredHookDispatcher.d.ts.map +1 -0
  41. package/dist/domain/port/DeferredHookDispatcher.js +16 -0
  42. package/dist/domain/port/DeferredHookDispatcher.js.map +1 -0
  43. package/dist/domain/port/EmailSender.d.ts +31 -0
  44. package/dist/domain/port/EmailSender.d.ts.map +1 -0
  45. package/dist/domain/port/EmailSender.js +2 -0
  46. package/dist/domain/port/EmailSender.js.map +1 -0
  47. package/dist/domain/port/EntryRepository.d.ts +132 -0
  48. package/dist/domain/port/EntryRepository.d.ts.map +1 -0
  49. package/dist/domain/port/EntryRepository.js +2 -0
  50. package/dist/domain/port/EntryRepository.js.map +1 -0
  51. package/dist/domain/port/HandlerRegistry.d.ts +38 -0
  52. package/dist/domain/port/HandlerRegistry.d.ts.map +1 -0
  53. package/dist/domain/port/HandlerRegistry.js +27 -0
  54. package/dist/domain/port/HandlerRegistry.js.map +1 -0
  55. package/dist/domain/port/IdGenerator.d.ts +28 -0
  56. package/dist/domain/port/IdGenerator.d.ts.map +1 -0
  57. package/dist/domain/port/IdGenerator.js +5 -0
  58. package/dist/domain/port/IdGenerator.js.map +1 -0
  59. package/dist/domain/port/KvCache.d.ts +34 -0
  60. package/dist/domain/port/KvCache.d.ts.map +1 -0
  61. package/dist/domain/port/KvCache.js +2 -0
  62. package/dist/domain/port/KvCache.js.map +1 -0
  63. package/dist/domain/port/LifecycleHookRunner.d.ts +41 -0
  64. package/dist/domain/port/LifecycleHookRunner.d.ts.map +1 -0
  65. package/dist/domain/port/LifecycleHookRunner.js +2 -0
  66. package/dist/domain/port/LifecycleHookRunner.js.map +1 -0
  67. package/dist/domain/port/MediaStorage.d.ts +102 -0
  68. package/dist/domain/port/MediaStorage.d.ts.map +1 -0
  69. package/dist/domain/port/MediaStorage.js +2 -0
  70. package/dist/domain/port/MediaStorage.js.map +1 -0
  71. package/dist/domain/port/PublishOrchestrator.d.ts +25 -0
  72. package/dist/domain/port/PublishOrchestrator.d.ts.map +1 -0
  73. package/dist/domain/port/PublishOrchestrator.js +2 -0
  74. package/dist/domain/port/PublishOrchestrator.js.map +1 -0
  75. package/dist/domain/port/SiteConfigRepository.d.ts +27 -0
  76. package/dist/domain/port/SiteConfigRepository.d.ts.map +1 -0
  77. package/dist/domain/port/SiteConfigRepository.js +2 -0
  78. package/dist/domain/port/SiteConfigRepository.js.map +1 -0
  79. package/dist/domain/port/index.d.ts +30 -0
  80. package/dist/domain/port/index.d.ts.map +1 -0
  81. package/dist/domain/port/index.js +5 -0
  82. package/dist/domain/port/index.js.map +1 -0
  83. package/dist/domain/service/AbsoluteUrl.d.ts +6 -0
  84. package/dist/domain/service/AbsoluteUrl.d.ts.map +1 -0
  85. package/dist/domain/service/AbsoluteUrl.js +33 -0
  86. package/dist/domain/service/AbsoluteUrl.js.map +1 -0
  87. package/dist/domain/service/AuthPredicateEvaluator.d.ts +29 -0
  88. package/dist/domain/service/AuthPredicateEvaluator.d.ts.map +1 -0
  89. package/dist/domain/service/AuthPredicateEvaluator.js +48 -0
  90. package/dist/domain/service/AuthPredicateEvaluator.js.map +1 -0
  91. package/dist/domain/service/BuiltinProjector.d.ts +50 -0
  92. package/dist/domain/service/BuiltinProjector.d.ts.map +1 -0
  93. package/dist/domain/service/BuiltinProjector.js +61 -0
  94. package/dist/domain/service/BuiltinProjector.js.map +1 -0
  95. package/dist/domain/service/EntrySeoSupport.d.ts +27 -0
  96. package/dist/domain/service/EntrySeoSupport.d.ts.map +1 -0
  97. package/dist/domain/service/EntrySeoSupport.js +13 -0
  98. package/dist/domain/service/EntrySeoSupport.js.map +1 -0
  99. package/dist/domain/service/HtmlRenderer.d.ts +32 -0
  100. package/dist/domain/service/HtmlRenderer.d.ts.map +1 -0
  101. package/dist/domain/service/HtmlRenderer.js +38 -0
  102. package/dist/domain/service/HtmlRenderer.js.map +1 -0
  103. package/dist/domain/service/LocaleNegotiator.d.ts +29 -0
  104. package/dist/domain/service/LocaleNegotiator.d.ts.map +1 -0
  105. package/dist/domain/service/LocaleNegotiator.js +62 -0
  106. package/dist/domain/service/LocaleNegotiator.js.map +1 -0
  107. package/dist/domain/service/MarkdownSerializer.d.ts +48 -0
  108. package/dist/domain/service/MarkdownSerializer.d.ts.map +1 -0
  109. package/dist/domain/service/MarkdownSerializer.js +109 -0
  110. package/dist/domain/service/MarkdownSerializer.js.map +1 -0
  111. package/dist/domain/service/McpToolNaming.d.ts +12 -0
  112. package/dist/domain/service/McpToolNaming.d.ts.map +1 -0
  113. package/dist/domain/service/McpToolNaming.js +14 -0
  114. package/dist/domain/service/McpToolNaming.js.map +1 -0
  115. package/dist/domain/service/Pagination.d.ts +15 -0
  116. package/dist/domain/service/Pagination.d.ts.map +1 -0
  117. package/dist/domain/service/Pagination.js +29 -0
  118. package/dist/domain/service/Pagination.js.map +1 -0
  119. package/dist/domain/service/PathMatcher.d.ts +15 -0
  120. package/dist/domain/service/PathMatcher.d.ts.map +1 -0
  121. package/dist/domain/service/PathMatcher.js +54 -0
  122. package/dist/domain/service/PathMatcher.js.map +1 -0
  123. package/dist/domain/service/PreviewBanner.d.ts +10 -0
  124. package/dist/domain/service/PreviewBanner.d.ts.map +1 -0
  125. package/dist/domain/service/PreviewBanner.js +37 -0
  126. package/dist/domain/service/PreviewBanner.js.map +1 -0
  127. package/dist/domain/service/PublicPathResolver.d.ts +41 -0
  128. package/dist/domain/service/PublicPathResolver.d.ts.map +1 -0
  129. package/dist/domain/service/PublicPathResolver.js +24 -0
  130. package/dist/domain/service/PublicPathResolver.js.map +1 -0
  131. package/dist/domain/service/PublishKeys.d.ts +42 -0
  132. package/dist/domain/service/PublishKeys.d.ts.map +1 -0
  133. package/dist/domain/service/PublishKeys.js +69 -0
  134. package/dist/domain/service/PublishKeys.js.map +1 -0
  135. package/dist/domain/service/SeoMetaComposer.d.ts +47 -0
  136. package/dist/domain/service/SeoMetaComposer.d.ts.map +1 -0
  137. package/dist/domain/service/SeoMetaComposer.js +174 -0
  138. package/dist/domain/service/SeoMetaComposer.js.map +1 -0
  139. package/dist/domain/service/SitemapSerializer.d.ts +19 -0
  140. package/dist/domain/service/SitemapSerializer.d.ts.map +1 -0
  141. package/dist/domain/service/SitemapSerializer.js +27 -0
  142. package/dist/domain/service/SitemapSerializer.js.map +1 -0
  143. package/dist/domain/service/TriggerIndex.d.ts +27 -0
  144. package/dist/domain/service/TriggerIndex.d.ts.map +1 -0
  145. package/dist/domain/service/TriggerIndex.js +52 -0
  146. package/dist/domain/service/TriggerIndex.js.map +1 -0
  147. package/dist/domain/service/ViewParamCoercer.d.ts +20 -0
  148. package/dist/domain/service/ViewParamCoercer.d.ts.map +1 -0
  149. package/dist/domain/service/ViewParamCoercer.js +82 -0
  150. package/dist/domain/service/ViewParamCoercer.js.map +1 -0
  151. package/dist/domain/service/ViewSqlCompiler.d.ts +29 -0
  152. package/dist/domain/service/ViewSqlCompiler.d.ts.map +1 -0
  153. package/dist/domain/service/ViewSqlCompiler.js +147 -0
  154. package/dist/domain/service/ViewSqlCompiler.js.map +1 -0
  155. package/dist/domain/service/index.d.ts +28 -0
  156. package/dist/domain/service/index.d.ts.map +1 -0
  157. package/dist/domain/service/index.js +28 -0
  158. package/dist/domain/service/index.js.map +1 -0
  159. package/dist/domain/service/io/EntryWriteGuard.d.ts +19 -0
  160. package/dist/domain/service/io/EntryWriteGuard.d.ts.map +1 -0
  161. package/dist/domain/service/io/EntryWriteGuard.js +109 -0
  162. package/dist/domain/service/io/EntryWriteGuard.js.map +1 -0
  163. package/dist/domain/service/io/JoinedEntryReader.d.ts +33 -0
  164. package/dist/domain/service/io/JoinedEntryReader.d.ts.map +1 -0
  165. package/dist/domain/service/io/JoinedEntryReader.js +95 -0
  166. package/dist/domain/service/io/JoinedEntryReader.js.map +1 -0
  167. package/dist/domain/service/io/PublishedEntries.d.ts +69 -0
  168. package/dist/domain/service/io/PublishedEntries.d.ts.map +1 -0
  169. package/dist/domain/service/io/PublishedEntries.js +116 -0
  170. package/dist/domain/service/io/PublishedEntries.js.map +1 -0
  171. package/dist/domain/service/io/index.d.ts +9 -0
  172. package/dist/domain/service/io/index.d.ts.map +1 -0
  173. package/dist/domain/service/io/index.js +9 -0
  174. package/dist/domain/service/io/index.js.map +1 -0
  175. package/dist/index.d.ts +41 -0
  176. package/dist/index.d.ts.map +1 -0
  177. package/dist/index.js +45 -0
  178. package/dist/index.js.map +1 -0
  179. package/dist/infrastructure/boot/canonicalMigrations.d.ts +9 -0
  180. package/dist/infrastructure/boot/canonicalMigrations.d.ts.map +1 -0
  181. package/dist/infrastructure/boot/canonicalMigrations.js +162 -0
  182. package/dist/infrastructure/boot/canonicalMigrations.js.map +1 -0
  183. package/dist/infrastructure/boot/index.d.ts +2 -0
  184. package/dist/infrastructure/boot/index.d.ts.map +1 -0
  185. package/dist/infrastructure/boot/index.js +2 -0
  186. package/dist/infrastructure/boot/index.js.map +1 -0
  187. package/dist/infrastructure/http/DiagnosticResponse.d.ts +12 -0
  188. package/dist/infrastructure/http/DiagnosticResponse.d.ts.map +1 -0
  189. package/dist/infrastructure/http/DiagnosticResponse.js +14 -0
  190. package/dist/infrastructure/http/DiagnosticResponse.js.map +1 -0
  191. package/dist/infrastructure/http/index.d.ts +2 -0
  192. package/dist/infrastructure/http/index.d.ts.map +1 -0
  193. package/dist/infrastructure/http/index.js +2 -0
  194. package/dist/infrastructure/http/index.js.map +1 -0
  195. package/dist/infrastructure/index.d.ts +12 -0
  196. package/dist/infrastructure/index.d.ts.map +1 -0
  197. package/dist/infrastructure/index.js +12 -0
  198. package/dist/infrastructure/index.js.map +1 -0
  199. package/dist/infrastructure/mcp/McpJsonRpcDispatcher.d.ts +60 -0
  200. package/dist/infrastructure/mcp/McpJsonRpcDispatcher.d.ts.map +1 -0
  201. package/dist/infrastructure/mcp/McpJsonRpcDispatcher.js +281 -0
  202. package/dist/infrastructure/mcp/McpJsonRpcDispatcher.js.map +1 -0
  203. package/dist/infrastructure/mcp/McpResponses.d.ts +14 -0
  204. package/dist/infrastructure/mcp/McpResponses.d.ts.map +1 -0
  205. package/dist/infrastructure/mcp/McpResponses.js +49 -0
  206. package/dist/infrastructure/mcp/McpResponses.js.map +1 -0
  207. package/dist/infrastructure/mcp/McpToolCatalog.d.ts +68 -0
  208. package/dist/infrastructure/mcp/McpToolCatalog.d.ts.map +1 -0
  209. package/dist/infrastructure/mcp/McpToolCatalog.js +231 -0
  210. package/dist/infrastructure/mcp/McpToolCatalog.js.map +1 -0
  211. package/dist/infrastructure/mcp/index.d.ts +4 -0
  212. package/dist/infrastructure/mcp/index.d.ts.map +1 -0
  213. package/dist/infrastructure/mcp/index.js +4 -0
  214. package/dist/infrastructure/mcp/index.js.map +1 -0
  215. package/dist/infrastructure/persistence/DatabaseEntryRepository.d.ts +35 -0
  216. package/dist/infrastructure/persistence/DatabaseEntryRepository.d.ts.map +1 -0
  217. package/dist/infrastructure/persistence/DatabaseEntryRepository.js +228 -0
  218. package/dist/infrastructure/persistence/DatabaseEntryRepository.js.map +1 -0
  219. package/dist/infrastructure/persistence/DatabaseSiteConfigRepository.d.ts +12 -0
  220. package/dist/infrastructure/persistence/DatabaseSiteConfigRepository.d.ts.map +1 -0
  221. package/dist/infrastructure/persistence/DatabaseSiteConfigRepository.js +101 -0
  222. package/dist/infrastructure/persistence/DatabaseSiteConfigRepository.js.map +1 -0
  223. package/dist/infrastructure/persistence/LifecycleHookingEntryRepository.d.ts +74 -0
  224. package/dist/infrastructure/persistence/LifecycleHookingEntryRepository.d.ts.map +1 -0
  225. package/dist/infrastructure/persistence/LifecycleHookingEntryRepository.js +208 -0
  226. package/dist/infrastructure/persistence/LifecycleHookingEntryRepository.js.map +1 -0
  227. package/dist/infrastructure/persistence/index.d.ts +4 -0
  228. package/dist/infrastructure/persistence/index.d.ts.map +1 -0
  229. package/dist/infrastructure/persistence/index.js +4 -0
  230. package/dist/infrastructure/persistence/index.js.map +1 -0
  231. package/dist/infrastructure/render/HtmlPublishOrchestrator.d.ts +34 -0
  232. package/dist/infrastructure/render/HtmlPublishOrchestrator.d.ts.map +1 -0
  233. package/dist/infrastructure/render/HtmlPublishOrchestrator.js +116 -0
  234. package/dist/infrastructure/render/HtmlPublishOrchestrator.js.map +1 -0
  235. package/dist/infrastructure/render/index.d.ts +2 -0
  236. package/dist/infrastructure/render/index.d.ts.map +1 -0
  237. package/dist/infrastructure/render/index.js +2 -0
  238. package/dist/infrastructure/render/index.js.map +1 -0
  239. package/dist/runtime.d.ts +132 -0
  240. package/dist/runtime.d.ts.map +1 -0
  241. package/dist/runtime.js +142 -0
  242. package/dist/runtime.js.map +1 -0
  243. package/dist/usecase/boot/ValidateBootUseCase.d.ts +57 -0
  244. package/dist/usecase/boot/ValidateBootUseCase.d.ts.map +1 -0
  245. package/dist/usecase/boot/ValidateBootUseCase.js +181 -0
  246. package/dist/usecase/boot/ValidateBootUseCase.js.map +1 -0
  247. package/dist/usecase/boot/index.d.ts +2 -0
  248. package/dist/usecase/boot/index.d.ts.map +1 -0
  249. package/dist/usecase/boot/index.js +2 -0
  250. package/dist/usecase/boot/index.js.map +1 -0
  251. package/dist/usecase/content/ArchiveUseCase.d.ts +20 -0
  252. package/dist/usecase/content/ArchiveUseCase.d.ts.map +1 -0
  253. package/dist/usecase/content/ArchiveUseCase.js +47 -0
  254. package/dist/usecase/content/ArchiveUseCase.js.map +1 -0
  255. package/dist/usecase/content/ContentPublishEffects.d.ts +11 -0
  256. package/dist/usecase/content/ContentPublishEffects.d.ts.map +1 -0
  257. package/dist/usecase/content/ContentPublishEffects.js +21 -0
  258. package/dist/usecase/content/ContentPublishEffects.js.map +1 -0
  259. package/dist/usecase/content/CreateDraftUseCase.d.ts +22 -0
  260. package/dist/usecase/content/CreateDraftUseCase.d.ts.map +1 -0
  261. package/dist/usecase/content/CreateDraftUseCase.js +61 -0
  262. package/dist/usecase/content/CreateDraftUseCase.js.map +1 -0
  263. package/dist/usecase/content/DeleteEntryUseCase.d.ts +20 -0
  264. package/dist/usecase/content/DeleteEntryUseCase.d.ts.map +1 -0
  265. package/dist/usecase/content/DeleteEntryUseCase.js +34 -0
  266. package/dist/usecase/content/DeleteEntryUseCase.js.map +1 -0
  267. package/dist/usecase/content/GetEntryUseCase.d.ts +13 -0
  268. package/dist/usecase/content/GetEntryUseCase.d.ts.map +1 -0
  269. package/dist/usecase/content/GetEntryUseCase.js +24 -0
  270. package/dist/usecase/content/GetEntryUseCase.js.map +1 -0
  271. package/dist/usecase/content/ListEntriesUseCase.d.ts +39 -0
  272. package/dist/usecase/content/ListEntriesUseCase.d.ts.map +1 -0
  273. package/dist/usecase/content/ListEntriesUseCase.js +58 -0
  274. package/dist/usecase/content/ListEntriesUseCase.js.map +1 -0
  275. package/dist/usecase/content/RequestPublishUseCase.d.ts +30 -0
  276. package/dist/usecase/content/RequestPublishUseCase.d.ts.map +1 -0
  277. package/dist/usecase/content/RequestPublishUseCase.js +111 -0
  278. package/dist/usecase/content/RequestPublishUseCase.js.map +1 -0
  279. package/dist/usecase/content/UnpublishUseCase.d.ts +19 -0
  280. package/dist/usecase/content/UnpublishUseCase.d.ts.map +1 -0
  281. package/dist/usecase/content/UnpublishUseCase.js +46 -0
  282. package/dist/usecase/content/UnpublishUseCase.js.map +1 -0
  283. package/dist/usecase/content/UpdateDraftUseCase.d.ts +20 -0
  284. package/dist/usecase/content/UpdateDraftUseCase.d.ts.map +1 -0
  285. package/dist/usecase/content/UpdateDraftUseCase.js +86 -0
  286. package/dist/usecase/content/UpdateDraftUseCase.js.map +1 -0
  287. package/dist/usecase/content/diagnostics.d.ts +26 -0
  288. package/dist/usecase/content/diagnostics.d.ts.map +1 -0
  289. package/dist/usecase/content/diagnostics.js +100 -0
  290. package/dist/usecase/content/diagnostics.js.map +1 -0
  291. package/dist/usecase/content/index.d.ts +15 -0
  292. package/dist/usecase/content/index.d.ts.map +1 -0
  293. package/dist/usecase/content/index.js +15 -0
  294. package/dist/usecase/content/index.js.map +1 -0
  295. package/dist/usecase/dto/content/index.d.ts +73 -0
  296. package/dist/usecase/dto/content/index.d.ts.map +1 -0
  297. package/dist/usecase/dto/content/index.js +2 -0
  298. package/dist/usecase/dto/content/index.js.map +1 -0
  299. package/dist/usecase/dto/index.d.ts +13 -0
  300. package/dist/usecase/dto/index.d.ts.map +1 -0
  301. package/dist/usecase/dto/index.js +13 -0
  302. package/dist/usecase/dto/index.js.map +1 -0
  303. package/dist/usecase/dto/lifecycle/index.d.ts +15 -0
  304. package/dist/usecase/dto/lifecycle/index.d.ts.map +1 -0
  305. package/dist/usecase/dto/lifecycle/index.js +2 -0
  306. package/dist/usecase/dto/lifecycle/index.js.map +1 -0
  307. package/dist/usecase/dto/media/index.d.ts +32 -0
  308. package/dist/usecase/dto/media/index.d.ts.map +1 -0
  309. package/dist/usecase/dto/media/index.js +8 -0
  310. package/dist/usecase/dto/media/index.js.map +1 -0
  311. package/dist/usecase/dto/procedure/index.d.ts +37 -0
  312. package/dist/usecase/dto/procedure/index.d.ts.map +1 -0
  313. package/dist/usecase/dto/procedure/index.js +2 -0
  314. package/dist/usecase/dto/procedure/index.js.map +1 -0
  315. package/dist/usecase/dto/render/ComposeEntrySeoMetaRequest.d.ts +14 -0
  316. package/dist/usecase/dto/render/ComposeEntrySeoMetaRequest.d.ts.map +1 -0
  317. package/dist/usecase/dto/render/ComposeEntrySeoMetaRequest.js +2 -0
  318. package/dist/usecase/dto/render/ComposeEntrySeoMetaRequest.js.map +1 -0
  319. package/dist/usecase/dto/render/ComposeLlmsTxtRequest.d.ts +8 -0
  320. package/dist/usecase/dto/render/ComposeLlmsTxtRequest.d.ts.map +1 -0
  321. package/dist/usecase/dto/render/ComposeLlmsTxtRequest.js +2 -0
  322. package/dist/usecase/dto/render/ComposeLlmsTxtRequest.js.map +1 -0
  323. package/dist/usecase/dto/render/ComposeSitemapRequest.d.ts +11 -0
  324. package/dist/usecase/dto/render/ComposeSitemapRequest.d.ts.map +1 -0
  325. package/dist/usecase/dto/render/ComposeSitemapRequest.js +2 -0
  326. package/dist/usecase/dto/render/ComposeSitemapRequest.js.map +1 -0
  327. package/dist/usecase/dto/render/PreviewEntryRequest.d.ts +27 -0
  328. package/dist/usecase/dto/render/PreviewEntryRequest.d.ts.map +1 -0
  329. package/dist/usecase/dto/render/PreviewEntryRequest.js +2 -0
  330. package/dist/usecase/dto/render/PreviewEntryRequest.js.map +1 -0
  331. package/dist/usecase/dto/render/RenderEntryLiveRequest.d.ts +17 -0
  332. package/dist/usecase/dto/render/RenderEntryLiveRequest.d.ts.map +1 -0
  333. package/dist/usecase/dto/render/RenderEntryLiveRequest.js +2 -0
  334. package/dist/usecase/dto/render/RenderEntryLiveRequest.js.map +1 -0
  335. package/dist/usecase/dto/render/RenderListLiveRequest.d.ts +11 -0
  336. package/dist/usecase/dto/render/RenderListLiveRequest.d.ts.map +1 -0
  337. package/dist/usecase/dto/render/RenderListLiveRequest.js +2 -0
  338. package/dist/usecase/dto/render/RenderListLiveRequest.js.map +1 -0
  339. package/dist/usecase/dto/render/index.d.ts +7 -0
  340. package/dist/usecase/dto/render/index.d.ts.map +1 -0
  341. package/dist/usecase/dto/render/index.js +7 -0
  342. package/dist/usecase/dto/render/index.js.map +1 -0
  343. package/dist/usecase/dto/view/ExecuteViewRequest.d.ts +16 -0
  344. package/dist/usecase/dto/view/ExecuteViewRequest.d.ts.map +1 -0
  345. package/dist/usecase/dto/view/ExecuteViewRequest.js +2 -0
  346. package/dist/usecase/dto/view/ExecuteViewRequest.js.map +1 -0
  347. package/dist/usecase/dto/view/index.d.ts +2 -0
  348. package/dist/usecase/dto/view/index.d.ts.map +1 -0
  349. package/dist/usecase/dto/view/index.js +2 -0
  350. package/dist/usecase/dto/view/index.js.map +1 -0
  351. package/dist/usecase/index.d.ts +16 -0
  352. package/dist/usecase/index.d.ts.map +1 -0
  353. package/dist/usecase/index.js +16 -0
  354. package/dist/usecase/index.js.map +1 -0
  355. package/dist/usecase/lifecycle/RunDeferredHookUseCase.d.ts +26 -0
  356. package/dist/usecase/lifecycle/RunDeferredHookUseCase.d.ts.map +1 -0
  357. package/dist/usecase/lifecycle/RunDeferredHookUseCase.js +44 -0
  358. package/dist/usecase/lifecycle/RunDeferredHookUseCase.js.map +1 -0
  359. package/dist/usecase/lifecycle/RunLifecycleHooksUseCase.d.ts +38 -0
  360. package/dist/usecase/lifecycle/RunLifecycleHooksUseCase.d.ts.map +1 -0
  361. package/dist/usecase/lifecycle/RunLifecycleHooksUseCase.js +67 -0
  362. package/dist/usecase/lifecycle/RunLifecycleHooksUseCase.js.map +1 -0
  363. package/dist/usecase/lifecycle/index.d.ts +3 -0
  364. package/dist/usecase/lifecycle/index.d.ts.map +1 -0
  365. package/dist/usecase/lifecycle/index.js +3 -0
  366. package/dist/usecase/lifecycle/index.js.map +1 -0
  367. package/dist/usecase/media/CommitMediaUploadUseCase.d.ts +15 -0
  368. package/dist/usecase/media/CommitMediaUploadUseCase.d.ts.map +1 -0
  369. package/dist/usecase/media/CommitMediaUploadUseCase.js +43 -0
  370. package/dist/usecase/media/CommitMediaUploadUseCase.js.map +1 -0
  371. package/dist/usecase/media/CreateMediaUploadUseCase.d.ts +18 -0
  372. package/dist/usecase/media/CreateMediaUploadUseCase.d.ts.map +1 -0
  373. package/dist/usecase/media/CreateMediaUploadUseCase.js +71 -0
  374. package/dist/usecase/media/CreateMediaUploadUseCase.js.map +1 -0
  375. package/dist/usecase/media/PendingUploadRecord.d.ts +17 -0
  376. package/dist/usecase/media/PendingUploadRecord.d.ts.map +1 -0
  377. package/dist/usecase/media/PendingUploadRecord.js +2 -0
  378. package/dist/usecase/media/PendingUploadRecord.js.map +1 -0
  379. package/dist/usecase/media/diagnostics.d.ts +15 -0
  380. package/dist/usecase/media/diagnostics.d.ts.map +1 -0
  381. package/dist/usecase/media/diagnostics.js +88 -0
  382. package/dist/usecase/media/diagnostics.js.map +1 -0
  383. package/dist/usecase/media/index.d.ts +4 -0
  384. package/dist/usecase/media/index.d.ts.map +1 -0
  385. package/dist/usecase/media/index.js +4 -0
  386. package/dist/usecase/media/index.js.map +1 -0
  387. package/dist/usecase/media/mediaAllowlist.d.ts +30 -0
  388. package/dist/usecase/media/mediaAllowlist.d.ts.map +1 -0
  389. package/dist/usecase/media/mediaAllowlist.js +53 -0
  390. package/dist/usecase/media/mediaAllowlist.js.map +1 -0
  391. package/dist/usecase/procedure/InvokeBuiltinUseCase.d.ts +43 -0
  392. package/dist/usecase/procedure/InvokeBuiltinUseCase.d.ts.map +1 -0
  393. package/dist/usecase/procedure/InvokeBuiltinUseCase.js +202 -0
  394. package/dist/usecase/procedure/InvokeBuiltinUseCase.js.map +1 -0
  395. package/dist/usecase/procedure/InvokeProcedureUseCase.d.ts +50 -0
  396. package/dist/usecase/procedure/InvokeProcedureUseCase.d.ts.map +1 -0
  397. package/dist/usecase/procedure/InvokeProcedureUseCase.js +191 -0
  398. package/dist/usecase/procedure/InvokeProcedureUseCase.js.map +1 -0
  399. package/dist/usecase/procedure/index.d.ts +3 -0
  400. package/dist/usecase/procedure/index.d.ts.map +1 -0
  401. package/dist/usecase/procedure/index.js +3 -0
  402. package/dist/usecase/procedure/index.js.map +1 -0
  403. package/dist/usecase/render/ComposeEntrySeoMetaUseCase.d.ts +25 -0
  404. package/dist/usecase/render/ComposeEntrySeoMetaUseCase.d.ts.map +1 -0
  405. package/dist/usecase/render/ComposeEntrySeoMetaUseCase.js +55 -0
  406. package/dist/usecase/render/ComposeEntrySeoMetaUseCase.js.map +1 -0
  407. package/dist/usecase/render/ComposeLlmsTxtUseCase.d.ts +19 -0
  408. package/dist/usecase/render/ComposeLlmsTxtUseCase.d.ts.map +1 -0
  409. package/dist/usecase/render/ComposeLlmsTxtUseCase.js +40 -0
  410. package/dist/usecase/render/ComposeLlmsTxtUseCase.js.map +1 -0
  411. package/dist/usecase/render/ComposeSitemapUseCase.d.ts +15 -0
  412. package/dist/usecase/render/ComposeSitemapUseCase.d.ts.map +1 -0
  413. package/dist/usecase/render/ComposeSitemapUseCase.js +29 -0
  414. package/dist/usecase/render/ComposeSitemapUseCase.js.map +1 -0
  415. package/dist/usecase/render/PreviewEntryUseCase.d.ts +26 -0
  416. package/dist/usecase/render/PreviewEntryUseCase.d.ts.map +1 -0
  417. package/dist/usecase/render/PreviewEntryUseCase.js +69 -0
  418. package/dist/usecase/render/PreviewEntryUseCase.js.map +1 -0
  419. package/dist/usecase/render/RenderEntryLiveUseCase.d.ts +35 -0
  420. package/dist/usecase/render/RenderEntryLiveUseCase.d.ts.map +1 -0
  421. package/dist/usecase/render/RenderEntryLiveUseCase.js +59 -0
  422. package/dist/usecase/render/RenderEntryLiveUseCase.js.map +1 -0
  423. package/dist/usecase/render/RenderListLiveUseCase.d.ts +23 -0
  424. package/dist/usecase/render/RenderListLiveUseCase.d.ts.map +1 -0
  425. package/dist/usecase/render/RenderListLiveUseCase.js +41 -0
  426. package/dist/usecase/render/RenderListLiveUseCase.js.map +1 -0
  427. package/dist/usecase/render/index.d.ts +7 -0
  428. package/dist/usecase/render/index.d.ts.map +1 -0
  429. package/dist/usecase/render/index.js +10 -0
  430. package/dist/usecase/render/index.js.map +1 -0
  431. package/dist/usecase/view/ExecuteViewUseCase.d.ts +31 -0
  432. package/dist/usecase/view/ExecuteViewUseCase.d.ts.map +1 -0
  433. package/dist/usecase/view/ExecuteViewUseCase.js +78 -0
  434. package/dist/usecase/view/ExecuteViewUseCase.js.map +1 -0
  435. package/dist/usecase/view/index.d.ts +2 -0
  436. package/dist/usecase/view/index.d.ts.map +1 -0
  437. package/dist/usecase/view/index.js +2 -0
  438. package/dist/usecase/view/index.js.map +1 -0
  439. package/package.json +49 -0
@@ -0,0 +1,86 @@
1
+ import { DiagnosticError, runtimeDiagnostic, } from "@aotter/mantle-spec";
2
+ import { projectUpdateAndStamp } from "../../domain/service/BuiltinProjector.js";
3
+ import { notFoundDiagnostic, withConflictDiagnostic, } from "./diagnostics.js";
4
+ import { assertEntryWritable } from "../../domain/service/io/EntryWriteGuard.js";
5
+ /**
6
+ * `UpdateDraftUseCase` — update a draft's data. Only entries in
7
+ * `'draft'` status are editable — `published` / `archived` go via the
8
+ * unpublish (back to draft) path first.
9
+ */
10
+ export class UpdateDraftUseCase {
11
+ entries;
12
+ schemas;
13
+ clock;
14
+ siteConfig;
15
+ constructor(entries, schemas, clock, siteConfig) {
16
+ this.entries = entries;
17
+ this.schemas = schemas;
18
+ this.clock = clock;
19
+ this.siteConfig = siteConfig;
20
+ }
21
+ async execute(request) {
22
+ const opPath = `usecase/UpdateDraft/${request.id}`;
23
+ const existing = await this.entries.get(request.id);
24
+ if (!existing) {
25
+ throw new DiagnosticError(notFoundDiagnostic(opPath, "<unknown>", request.id));
26
+ }
27
+ if (existing.status !== "draft") {
28
+ throw new DiagnosticError(runtimeDiagnostic({
29
+ code: "CONFLICT",
30
+ severity: "error",
31
+ path: opPath,
32
+ value: existing.status,
33
+ expected: "row.status === 'draft'",
34
+ message: `Entry '${request.id}' is in status '${existing.status}'; only drafts are editable. Unpublish first.`,
35
+ }));
36
+ }
37
+ const schema = this.schemas.get(existing.collection);
38
+ if (!schema) {
39
+ throw new DiagnosticError(runtimeDiagnostic({
40
+ code: "BUILTIN_HANDLER_SCHEMA_UNKNOWN",
41
+ severity: "error",
42
+ path: `${opPath}#/collection`,
43
+ value: existing.collection,
44
+ expected: "name of a declared Schema",
45
+ candidates: [...this.schemas.keys()],
46
+ message: `Entry '${request.id}' belongs to unknown Schema '${existing.collection}'.`,
47
+ }));
48
+ }
49
+ const now = this.clock.now();
50
+ const ctx = authoringContext(request.ctx, existing.authorId);
51
+ const data = projectUpdateAndStamp({
52
+ schema,
53
+ existing: existing.data,
54
+ patch: request.data,
55
+ ctx,
56
+ clockNow: now,
57
+ });
58
+ await assertEntryWritable({
59
+ opPath,
60
+ entries: this.entries,
61
+ schema,
62
+ data,
63
+ excludeId: existing.id,
64
+ siteConfig: this.siteConfig,
65
+ });
66
+ return withConflictDiagnostic(opPath, () => this.entries.update({
67
+ id: request.id,
68
+ collection: existing.collection,
69
+ expectedVersion: request.expectedVersion,
70
+ data,
71
+ now,
72
+ hookContext: ctx,
73
+ originalInput: request.originalInput,
74
+ }));
75
+ }
76
+ }
77
+ function authoringContext(ctx, authorId) {
78
+ if (ctx)
79
+ return ctx;
80
+ return {
81
+ user: authorId ? { id: authorId } : null,
82
+ staff: null,
83
+ env: {},
84
+ };
85
+ }
86
+ //# sourceMappingURL=UpdateDraftUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpdateDraftUseCase.js","sourceRoot":"","sources":["../../../src/usecase/content/UpdateDraftUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,iBAAiB,GAElB,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAEjF,OAAO,EACL,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AAEjF;;;;GAIG;AACH,MAAM,OAAO,kBAAkB;IAEV;IACA;IACA;IACA;IAJnB,YACmB,OAAwB,EACxB,OAA4C,EAC5C,KAAY,EACZ,UAAiC;QAHjC,YAAO,GAAP,OAAO,CAAiB;QACxB,YAAO,GAAP,OAAO,CAAqC;QAC5C,UAAK,GAAL,KAAK,CAAO;QACZ,eAAU,GAAV,UAAU,CAAuB;IACjD,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,OAA2B;QACvC,MAAM,MAAM,GAAG,uBAAuB,OAAO,CAAC,EAAE,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,eAAe,CAAC,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QACjF,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAChC,MAAM,IAAI,eAAe,CACvB,iBAAiB,CAAC;gBAChB,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,QAAQ,CAAC,MAAM;gBACtB,QAAQ,EAAE,wBAAwB;gBAClC,OAAO,EAAE,UAAU,OAAO,CAAC,EAAE,mBAAmB,QAAQ,CAAC,MAAM,+CAA+C;aAC/G,CAAC,CACH,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,eAAe,CACvB,iBAAiB,CAAC;gBAChB,IAAI,EAAE,gCAAgC;gBACtC,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,GAAG,MAAM,cAAc;gBAC7B,KAAK,EAAE,QAAQ,CAAC,UAAU;gBAC1B,QAAQ,EAAE,2BAA2B;gBACrC,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpC,OAAO,EAAE,UAAU,OAAO,CAAC,EAAE,gCAAgC,QAAQ,CAAC,UAAU,IAAI;aACrF,CAAC,CACH,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,qBAAqB,CAAC;YACjC,MAAM;YACN,QAAQ,EAAE,QAAQ,CAAC,IAAI;YACvB,KAAK,EAAE,OAAO,CAAC,IAAI;YACnB,GAAG;YACH,QAAQ,EAAE,GAAG;SACd,CAAC,CAAC;QACH,MAAM,mBAAmB,CAAC;YACxB,MAAM;YACN,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM;YACN,IAAI;YACJ,SAAS,EAAE,QAAQ,CAAC,EAAE;YACtB,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC,CAAC;QACH,OAAO,sBAAsB,CAAC,MAAM,EAAE,GAAG,EAAE,CACzC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YAClB,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,IAAI;YACJ,GAAG;YACH,WAAW,EAAE,GAAG;YAChB,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC,CAAC,CACH,CAAC;IACJ,CAAC;CACF;AAED,SAAS,gBAAgB,CAAC,GAA+B,EAAE,QAAuB;IAChF,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IACpB,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI;QACxC,KAAK,EAAE,IAAI;QACX,GAAG,EAAE,EAAE;KACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { type ContentState, type Diagnostic } from "@aotter/mantle-spec";
2
+ /**
3
+ * Wrap a content-op repository call: convert chokepoint conflict
4
+ * throws into structured `CONFLICT` diagnostics. Other throws
5
+ * propagate.
6
+ *
7
+ * Used by every content-op use case so the catch shape stays uniform.
8
+ */
9
+ export declare function withConflictDiagnostic<T>(path: string, fn: () => Promise<T>): Promise<T>;
10
+ export declare function notFoundDiagnostic(path: string, collection: string, id: string): Diagnostic;
11
+ export declare function illegalTransitionDiagnostic(path: string, from: ContentState, to: ContentState): Diagnostic;
12
+ export declare function schemaUnknownDiagnostic(path: string, collection: string, candidates: readonly string[]): Diagnostic;
13
+ /**
14
+ * Field names that are persisted as native columns on the entry row
15
+ * and must not be carried in the `data` JSON blob — otherwise the
16
+ * blob would round-trip back out of `entries.get()` claiming an
17
+ * identity / version / lifecycle that disagrees with the columns.
18
+ *
19
+ * SQL bindings are taken from explicit `CreateEntryArgs` /
20
+ * `UpdateEntryArgs` fields, so a reserved key in `data` cannot
21
+ * overwrite a column — but it can lie. Strip at the entry-writer
22
+ * chokepoint so `data` reflects only author-defined fields.
23
+ */
24
+ export declare const RESERVED_DATA_KEYS: readonly string[];
25
+ export declare function stripReservedDataKeys(data: Record<string, unknown>): Record<string, unknown>;
26
+ //# sourceMappingURL=diagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../../src/usecase/content/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,UAAU,EAChB,MAAM,qBAAqB,CAAC;AAM7B;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAAC,CAAC,EAC5C,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CA8BZ;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,GACT,UAAU,CASZ;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,YAAY,EAClB,EAAE,EAAE,YAAY,GACf,UAAU,CASZ;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,SAAS,MAAM,EAAE,GAC5B,UAAU,CAUZ;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAQ/C,CAAC;AAEF,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CASzB"}
@@ -0,0 +1,100 @@
1
+ import { DiagnosticError, runtimeDiagnostic, } from "@aotter/mantle-spec";
2
+ import { EntryStatusConflict, EntryVersionConflict, } from "../../domain/model/EntryRow.js";
3
+ /**
4
+ * Wrap a content-op repository call: convert chokepoint conflict
5
+ * throws into structured `CONFLICT` diagnostics. Other throws
6
+ * propagate.
7
+ *
8
+ * Used by every content-op use case so the catch shape stays uniform.
9
+ */
10
+ export async function withConflictDiagnostic(path, fn) {
11
+ try {
12
+ return await fn();
13
+ }
14
+ catch (err) {
15
+ if (err instanceof EntryVersionConflict) {
16
+ throw new DiagnosticError(runtimeDiagnostic({
17
+ code: "CONFLICT",
18
+ severity: "error",
19
+ path,
20
+ value: { expected: err.expected, found: err.actual },
21
+ expected: `version === ${err.expected}`,
22
+ message: `Version mismatch on entry '${err.id}': expected ${err.expected}, found ${err.actual}.`,
23
+ }));
24
+ }
25
+ if (err instanceof EntryStatusConflict) {
26
+ throw new DiagnosticError(runtimeDiagnostic({
27
+ code: "CONFLICT",
28
+ severity: "error",
29
+ path,
30
+ value: err.actual,
31
+ expected: `status === '${err.expected}'`,
32
+ message: `Status mismatch on entry '${err.id}': expected '${err.expected}', found '${err.actual}'. Probably a concurrent state change.`,
33
+ }));
34
+ }
35
+ throw err;
36
+ }
37
+ }
38
+ export function notFoundDiagnostic(path, collection, id) {
39
+ return runtimeDiagnostic({
40
+ code: "NOT_FOUND",
41
+ severity: "error",
42
+ path,
43
+ value: id,
44
+ expected: `existing entry id in collection '${collection}'`,
45
+ message: `No entry with id '${id}' in collection '${collection}'.`,
46
+ });
47
+ }
48
+ export function illegalTransitionDiagnostic(path, from, to) {
49
+ return runtimeDiagnostic({
50
+ code: "CONFLICT",
51
+ severity: "error",
52
+ path,
53
+ value: { from, to },
54
+ expected: `valid transition from '${from}' (per Schema lifecycle)`,
55
+ message: `Illegal state transition: ${from} → ${to}.`,
56
+ });
57
+ }
58
+ export function schemaUnknownDiagnostic(path, collection, candidates) {
59
+ return runtimeDiagnostic({
60
+ code: "NOT_FOUND",
61
+ severity: "error",
62
+ path,
63
+ value: collection,
64
+ expected: "name of a declared Schema",
65
+ candidates,
66
+ message: `No Schema with name '${collection}'.`,
67
+ });
68
+ }
69
+ /**
70
+ * Field names that are persisted as native columns on the entry row
71
+ * and must not be carried in the `data` JSON blob — otherwise the
72
+ * blob would round-trip back out of `entries.get()` claiming an
73
+ * identity / version / lifecycle that disagrees with the columns.
74
+ *
75
+ * SQL bindings are taken from explicit `CreateEntryArgs` /
76
+ * `UpdateEntryArgs` fields, so a reserved key in `data` cannot
77
+ * overwrite a column — but it can lie. Strip at the entry-writer
78
+ * chokepoint so `data` reflects only author-defined fields.
79
+ */
80
+ export const RESERVED_DATA_KEYS = [
81
+ "id",
82
+ "status",
83
+ "version",
84
+ "expectedVersion",
85
+ "createdAt",
86
+ "updatedAt",
87
+ "authorId",
88
+ ];
89
+ export function stripReservedDataKeys(data) {
90
+ let out = null;
91
+ for (const key of RESERVED_DATA_KEYS) {
92
+ if (key in data) {
93
+ if (!out)
94
+ out = { ...data };
95
+ delete out[key];
96
+ }
97
+ }
98
+ return out ?? data;
99
+ }
100
+ //# sourceMappingURL=diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../../src/usecase/content/diagnostics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Content-op use cases. Each verb is a class with constructor-injected
3
+ * ports + clock + idgen. Per the clean-arch DTO rule, every use case
4
+ * accepts a request DTO.
5
+ */
6
+ export { CreateDraftUseCase } from "./CreateDraftUseCase.js";
7
+ export { UpdateDraftUseCase } from "./UpdateDraftUseCase.js";
8
+ export { GetEntryUseCase } from "./GetEntryUseCase.js";
9
+ export { ListEntriesUseCase } from "./ListEntriesUseCase.js";
10
+ export { RequestPublishUseCase } from "./RequestPublishUseCase.js";
11
+ export { UnpublishUseCase } from "./UnpublishUseCase.js";
12
+ export { ArchiveUseCase } from "./ArchiveUseCase.js";
13
+ export { DeleteEntryUseCase } from "./DeleteEntryUseCase.js";
14
+ export { withConflictDiagnostic, notFoundDiagnostic, illegalTransitionDiagnostic, schemaUnknownDiagnostic, } from "./diagnostics.js";
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/usecase/content/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,2BAA2B,EAC3B,uBAAuB,GACxB,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Content-op use cases. Each verb is a class with constructor-injected
3
+ * ports + clock + idgen. Per the clean-arch DTO rule, every use case
4
+ * accepts a request DTO.
5
+ */
6
+ export { CreateDraftUseCase } from "./CreateDraftUseCase.js";
7
+ export { UpdateDraftUseCase } from "./UpdateDraftUseCase.js";
8
+ export { GetEntryUseCase } from "./GetEntryUseCase.js";
9
+ export { ListEntriesUseCase } from "./ListEntriesUseCase.js";
10
+ export { RequestPublishUseCase } from "./RequestPublishUseCase.js";
11
+ export { UnpublishUseCase } from "./UnpublishUseCase.js";
12
+ export { ArchiveUseCase } from "./ArchiveUseCase.js";
13
+ export { DeleteEntryUseCase } from "./DeleteEntryUseCase.js";
14
+ export { withConflictDiagnostic, notFoundDiagnostic, illegalTransitionDiagnostic, schemaUnknownDiagnostic, } from "./diagnostics.js";
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/usecase/content/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,2BAA2B,EAC3B,uBAAuB,GACxB,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,73 @@
1
+ import type { ContentState } from "@aotter/mantle-spec";
2
+ import type { HandlerContext } from "../../../domain/model/HandlerContext.js";
3
+ /**
4
+ * Content-op request DTOs. Each verb takes its own request type;
5
+ * response is `EntryRow` (or `{ removed: boolean }` for delete) which
6
+ * lives in `domain/model/`. Per the clean-arch DTO rule, no loose
7
+ * primitives — every input field is named on the DTO.
8
+ *
9
+ * Mutating verbs carry an optional `ctx: HandlerContext` so the
10
+ * `LifecycleHookingEntryRepository` decorator can fire hooks with the
11
+ * caller's auth + env when invoked from a real dispatcher (HTTP
12
+ * Trigger, MCP, admin endpoint). Test paths and internal writes leave
13
+ * it unset and the decorator falls back to an anonymous ctx.
14
+ */
15
+ export interface ContentMutationFields {
16
+ readonly ctx?: HandlerContext;
17
+ /** Pre-projection original input forwarded to lifecycle hooks
18
+ * (`ctx.event.originalInput` on the hook's procedure call). When
19
+ * unset, hooks see the row data instead. The builtin Procedure path
20
+ * populates this with the full procedure input so hooks can read
21
+ * side-channel fields like CAPTCHA tokens. */
22
+ readonly originalInput?: unknown;
23
+ }
24
+ export interface CreateDraftRequest extends ContentMutationFields {
25
+ readonly collection: string;
26
+ readonly data: Record<string, unknown>;
27
+ readonly authorId: string | null;
28
+ }
29
+ export interface UpdateDraftRequest extends ContentMutationFields {
30
+ readonly id: string;
31
+ readonly expectedVersion: number;
32
+ /** Partial data — merged onto the existing row's `data` blob. */
33
+ readonly data: Record<string, unknown>;
34
+ }
35
+ export interface GetEntryRequest {
36
+ readonly id: string;
37
+ /** When set, asserts the row's collection matches; rejects with
38
+ * `NOT_FOUND` otherwise. */
39
+ readonly collection?: string;
40
+ }
41
+ export interface ListEntriesRequest {
42
+ readonly collection: string;
43
+ readonly status?: ContentState;
44
+ readonly limit?: number;
45
+ /** Opaque cursor from a prior `ListEntriesResponse.nextCursor`. */
46
+ readonly cursor?: string;
47
+ }
48
+ export interface ListEntriesResponse<R> {
49
+ readonly rows: readonly R[];
50
+ /** Present when there may be more rows; pass back as `cursor`. */
51
+ readonly nextCursor?: string;
52
+ }
53
+ export interface RequestPublishRequest extends ContentMutationFields {
54
+ readonly id: string;
55
+ }
56
+ export interface UnpublishRequest extends ContentMutationFields {
57
+ readonly id: string;
58
+ }
59
+ export interface ArchiveRequest extends ContentMutationFields {
60
+ readonly id: string;
61
+ /** @deprecated Ignored. `ArchiveUseCase` pins OCC to the version it
62
+ * reads internally so the transition guard and the chokepoint
63
+ * check see the same snapshot. Field kept optional for backwards
64
+ * compat; remove in v0.2. */
65
+ readonly expectedVersion?: number;
66
+ }
67
+ export interface DeleteEntryRequest extends ContentMutationFields {
68
+ readonly id: string;
69
+ }
70
+ export interface DeleteEntryResponse {
71
+ readonly removed: boolean;
72
+ }
73
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/usecase/dto/content/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAE9E;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC;IAC9B;;;;mDAI+C;IAC/C,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,kBAAmB,SAAQ,qBAAqB;IAC/D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,kBAAmB,SAAQ,qBAAqB;IAC/D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,iEAAiE;IACjE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;iCAC6B;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,mEAAmE;IACnE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB,CAAC,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;IAC5B,kEAAkE;IAClE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAClE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAiB,SAAQ,qBAAqB;IAC7D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAe,SAAQ,qBAAqB;IAC3D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;;;kCAG8B;IAC9B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,kBAAmB,SAAQ,qBAAqB;IAC/D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/usecase/dto/content/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * `usecase/dto/` — request and response shapes use cases consume.
3
+ * Per the Aotter clean-arch convention (mirrors clam/core), each use
4
+ * case takes a request DTO + returns a response DTO; no loose
5
+ * primitives.
6
+ */
7
+ export * from "./content/index.js";
8
+ export * from "./procedure/index.js";
9
+ export * from "./view/index.js";
10
+ export * from "./render/index.js";
11
+ export * from "./media/index.js";
12
+ export * from "./lifecycle/index.js";
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/usecase/dto/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * `usecase/dto/` — request and response shapes use cases consume.
3
+ * Per the Aotter clean-arch convention (mirrors clam/core), each use
4
+ * case takes a request DTO + returns a response DTO; no loose
5
+ * primitives.
6
+ */
7
+ export * from "./content/index.js";
8
+ export * from "./procedure/index.js";
9
+ export * from "./view/index.js";
10
+ export * from "./render/index.js";
11
+ export * from "./media/index.js";
12
+ export * from "./lifecycle/index.js";
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/usecase/dto/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { DeferredHookEnvelope } from "../../../domain/port/DeferredHookDispatcher.js";
2
+ /**
3
+ * Lifecycle use-case request DTOs. Per the clean-arch rule, every
4
+ * use-case `execute` takes a single named DTO — no loose positional
5
+ * primitives.
6
+ */
7
+ export interface RunDeferredHookRequest {
8
+ readonly envelope: DeferredHookEnvelope;
9
+ /** Adapter binding bag from the consume-side invocation. Threaded
10
+ * into the rebuilt `HandlerContext` so handlers reach platform
11
+ * resources (D1, KV, queues, …) the same way they do on the
12
+ * inline path. Different invocation than the producer side. */
13
+ readonly env: unknown;
14
+ }
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/usecase/dto/lifecycle/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AAE3F;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC;;;oEAGgE;IAChE,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CACvB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/usecase/dto/lifecycle/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Media use-case DTOs. Distinct from `MediaStorage` port request types:
3
+ * the use case receives caller-supplied fields, derives the rest
4
+ * (storageKey via the adapter, expiresAt via the clock, maxBytes via
5
+ * adapter config), and forwards a port-shaped request internally.
6
+ */
7
+ export interface CreateMediaUploadRequest {
8
+ readonly filename: string;
9
+ readonly mimeType: string;
10
+ /** Required so the use case enforces the byte ceiling before
11
+ * signing a PUT URL — without it the presigned URL accepts an
12
+ * unbounded body and the cap only applies at commit, which is
13
+ * too late if storage doesn't honor `Content-Length`. */
14
+ readonly byteSize: number;
15
+ readonly alt?: string;
16
+ readonly caption?: string;
17
+ readonly purpose?: string;
18
+ }
19
+ export interface CreateMediaUploadResponse {
20
+ readonly uploadId: string;
21
+ readonly uploadUrl: string;
22
+ readonly method: "PUT";
23
+ readonly requiredHeaders?: Readonly<Record<string, string>>;
24
+ readonly expiresAt: number;
25
+ }
26
+ export interface CommitMediaUploadRequest {
27
+ readonly uploadId: string;
28
+ readonly alt?: string;
29
+ readonly caption?: string;
30
+ readonly checksum?: string;
31
+ }
32
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/usecase/dto/media/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;;;8DAG0D;IAC1D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Media use-case DTOs. Distinct from `MediaStorage` port request types:
3
+ * the use case receives caller-supplied fields, derives the rest
4
+ * (storageKey via the adapter, expiresAt via the clock, maxBytes via
5
+ * adapter config), and forwards a port-shaped request internally.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/usecase/dto/media/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,37 @@
1
+ import type { Diagnostic, Phase, ProcedureManifest } from "@aotter/mantle-spec";
2
+ import type { HandlerContext } from "../../../domain/model/HandlerContext.js";
3
+ /**
4
+ * Procedure-dispatch DTOs. `InvokeProcedureUseCase` is the entry point
5
+ * for both `handler.kind: ref` and `handler.kind: builtin` Procedures
6
+ * (it routes by kind); `InvokeBuiltinUseCase` is the collaborator the
7
+ * router delegates to for the builtin op execution path.
8
+ *
9
+ * `InvokeFailure` (the thrown carrier handlers use to surface a
10
+ * structured Diagnostic) lives next to the use case class — it's a
11
+ * runtime value, not a DTO type.
12
+ */
13
+ export interface InvokeProcedureRequest {
14
+ readonly procedure: ProcedureManifest;
15
+ readonly input: unknown;
16
+ readonly ctx: HandlerContext;
17
+ /** Path-locator prefix for `Diagnostic.path`. The HTTP mount passes
18
+ * e.g. `POST /api/contact`; the test harness passes
19
+ * `manifest:Procedure/<name>`. */
20
+ readonly pathPrefix?: string;
21
+ /** Phase to stamp on emitted diagnostics. Default: `"runtime"`. */
22
+ readonly phase?: Phase;
23
+ }
24
+ export type InvokeProcedureResponse<O = unknown> = {
25
+ readonly ok: true;
26
+ readonly data: O;
27
+ } | {
28
+ readonly ok: false;
29
+ readonly diagnostic: Diagnostic;
30
+ };
31
+ export interface InvokeBuiltinRequest {
32
+ readonly procedure: ProcedureManifest;
33
+ /** Procedure input that has already cleared zod validation. */
34
+ readonly validatedInput: Record<string, unknown>;
35
+ readonly ctx: HandlerContext;
36
+ }
37
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/usecase/dto/procedure/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,KAAK,EACL,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAE9E;;;;;;;;;GASG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC;IAC7B;;uCAEmC;IACnC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,mEAAmE;IACnE,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;CACxB;AAED,MAAM,MAAM,uBAAuB,CAAC,CAAC,GAAG,OAAO,IAC3C;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GACvC;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAA;CAAE,CAAC;AAE5D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,+DAA+D;IAC/D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjD,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC;CAC9B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/usecase/dto/procedure/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import type { Entry, SiteConfig } from "@aotter/mantle-spec";
2
+ import type { PublicPathResolver } from "../../../domain/service/PublicPathResolver.js";
3
+ /**
4
+ * Request DTO for `ComposeEntrySeoMetaUseCase`. Caller passes the
5
+ * entry, the site, and the resolver; the use case figures out
6
+ * sibling translations for hreflang.
7
+ */
8
+ export interface ComposeEntrySeoMetaRequest {
9
+ readonly entry: Entry;
10
+ readonly site: SiteConfig;
11
+ readonly paths: PublicPathResolver;
12
+ readonly type?: "article" | "website";
13
+ }
14
+ //# sourceMappingURL=ComposeEntrySeoMetaRequest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComposeEntrySeoMetaRequest.d.ts","sourceRoot":"","sources":["../../../../src/usecase/dto/render/ComposeEntrySeoMetaRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AAExF;;;;GAIG;AACH,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CACvC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ComposeEntrySeoMetaRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComposeEntrySeoMetaRequest.js","sourceRoot":"","sources":["../../../../src/usecase/dto/render/ComposeEntrySeoMetaRequest.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import type { SiteConfig } from "@aotter/mantle-spec";
2
+ export interface ComposeLlmsTxtRequest {
3
+ readonly site: SiteConfig;
4
+ /** locale: string → entries with that locale; locale: null →
5
+ * non-localized only (matches publish-pipeline semantic). */
6
+ readonly locale: string | null;
7
+ }
8
+ //# sourceMappingURL=ComposeLlmsTxtRequest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComposeLlmsTxtRequest.d.ts","sourceRoot":"","sources":["../../../../src/usecase/dto/render/ComposeLlmsTxtRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B;kEAC8D;IAC9D,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ComposeLlmsTxtRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComposeLlmsTxtRequest.js","sourceRoot":"","sources":["../../../../src/usecase/dto/render/ComposeLlmsTxtRequest.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import type { Entry, SiteConfig } from "@aotter/mantle-spec";
2
+ export interface ComposeSitemapRequest {
3
+ readonly site: SiteConfig;
4
+ /** Map storage row → public route. Returning `null` skips. */
5
+ readonly pathFor?: (entry: Entry) => string | null;
6
+ /** Caps the SQL read + memory cost. Defaults to
7
+ * SITEMAP_MAX_URLS_DEFAULT (50,000 — the sitemap-protocol per-file
8
+ * ceiling). */
9
+ readonly maxUrls?: number;
10
+ }
11
+ //# sourceMappingURL=ComposeSitemapRequest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComposeSitemapRequest.d.ts","sourceRoot":"","sources":["../../../../src/usecase/dto/render/ComposeSitemapRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,8DAA8D;IAC9D,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,GAAG,IAAI,CAAC;IACnD;;oBAEgB;IAChB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ComposeSitemapRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComposeSitemapRequest.js","sourceRoot":"","sources":["../../../../src/usecase/dto/render/ComposeSitemapRequest.ts"],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
1
+ import type { ContentState, SiteConfig } from "@aotter/mantle-spec";
2
+ /**
3
+ * Request DTO for `PreviewEntryUseCase`. Looks up the entry,
4
+ * preferring `statusOrder` left-to-right (default: draft → published
5
+ * → archived); renders via the registered template; injects a
6
+ * preview banner.
7
+ */
8
+ export interface PreviewEntryRequest {
9
+ readonly collection: string;
10
+ readonly slug: string;
11
+ readonly locale: string;
12
+ readonly site: SiteConfig;
13
+ /** Override the default fallback order. Empty array = no fallback;
14
+ * use the single-status RenderEntryLiveUseCase if you want one
15
+ * state only. */
16
+ readonly statusOrder?: ReadonlyArray<ContentState>;
17
+ /** Banner HTML appended just inside `<body>`. Caller composes the
18
+ * text — runtime doesn't own the localization. Defaults to a bare
19
+ * `Preview · {status} · {slug}` block when omitted (HTML-escaped
20
+ * via `defaultPreviewBanner`).
21
+ *
22
+ * ⚠ Caller-supplied `banner` is injected verbatim — the runtime
23
+ * does not escape it. Treat it the same as any other adapter HTML
24
+ * payload: the caller owns sanitization. */
25
+ readonly banner?: string;
26
+ }
27
+ //# sourceMappingURL=PreviewEntryRequest.d.ts.map