@aotter/mantle-runtime 0.0.11-alpha.73 → 0.1.0-alpha.10

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 (337) hide show
  1. package/README.md +37 -4
  2. package/dist/MantleRuntime.d.ts +96 -0
  3. package/dist/MantleRuntime.d.ts.map +1 -0
  4. package/dist/MantleRuntime.js +197 -0
  5. package/dist/MantleRuntime.js.map +1 -0
  6. package/dist/domain/model/EntryRow.d.ts +2 -2
  7. package/dist/domain/model/HandlerContext.d.ts +3 -4
  8. package/dist/domain/model/HandlerContext.d.ts.map +1 -1
  9. package/dist/domain/model/PreparedMantleRevision.d.ts +14 -0
  10. package/dist/domain/model/PreparedMantleRevision.d.ts.map +1 -0
  11. package/dist/domain/model/PreparedMantleRevision.js +8 -0
  12. package/dist/domain/model/PreparedMantleRevision.js.map +1 -0
  13. package/dist/domain/model/index.d.ts +1 -2
  14. package/dist/domain/model/index.d.ts.map +1 -1
  15. package/dist/domain/model/index.js +0 -1
  16. package/dist/domain/model/index.js.map +1 -1
  17. package/dist/domain/port/Clock.d.ts +1 -2
  18. package/dist/domain/port/Clock.d.ts.map +1 -1
  19. package/dist/domain/port/Clock.js.map +1 -1
  20. package/dist/domain/port/DatabaseDriver.d.ts +13 -21
  21. package/dist/domain/port/DatabaseDriver.d.ts.map +1 -1
  22. package/dist/domain/port/EntryReader.d.ts +1 -1
  23. package/dist/domain/port/EntryReader.d.ts.map +1 -1
  24. package/dist/domain/port/EntryRepository.d.ts +19 -4
  25. package/dist/domain/port/EntryRepository.d.ts.map +1 -1
  26. package/dist/domain/port/HandlerRegistry.d.ts +1 -1
  27. package/dist/domain/port/IdGenerator.d.ts +3 -4
  28. package/dist/domain/port/IdGenerator.d.ts.map +1 -1
  29. package/dist/domain/port/IdGenerator.js.map +1 -1
  30. package/dist/domain/port/MantleStorageAdapter.d.ts +23 -0
  31. package/dist/domain/port/MantleStorageAdapter.d.ts.map +1 -0
  32. package/dist/domain/port/MantleStorageAdapter.js +2 -0
  33. package/dist/domain/port/MantleStorageAdapter.js.map +1 -0
  34. package/dist/domain/port/SiteConfigRepository.d.ts +12 -10
  35. package/dist/domain/port/SiteConfigRepository.d.ts.map +1 -1
  36. package/dist/domain/port/ViewQueryExecutor.d.ts +29 -0
  37. package/dist/domain/port/ViewQueryExecutor.d.ts.map +1 -0
  38. package/dist/domain/port/ViewQueryExecutor.js +2 -0
  39. package/dist/domain/port/ViewQueryExecutor.js.map +1 -0
  40. package/dist/domain/port/index.d.ts +5 -4
  41. package/dist/domain/port/index.d.ts.map +1 -1
  42. package/dist/domain/port/index.js.map +1 -1
  43. package/dist/domain/service/LocaleNegotiator.d.ts.map +1 -1
  44. package/dist/domain/service/LocaleNegotiator.js +2 -2
  45. package/dist/domain/service/LocaleNegotiator.js.map +1 -1
  46. package/dist/domain/service/RuntimePlanCompiler.d.ts +89 -0
  47. package/dist/domain/service/RuntimePlanCompiler.d.ts.map +1 -0
  48. package/dist/domain/service/RuntimePlanCompiler.js +230 -0
  49. package/dist/domain/service/RuntimePlanCompiler.js.map +1 -0
  50. package/dist/domain/service/TriggerIndex.d.ts +5 -3
  51. package/dist/domain/service/TriggerIndex.d.ts.map +1 -1
  52. package/dist/domain/service/TriggerIndex.js +16 -4
  53. package/dist/domain/service/TriggerIndex.js.map +1 -1
  54. package/dist/domain/service/ViewParamCoercer.d.ts +1 -1
  55. package/dist/domain/service/ViewParamCoercer.js +1 -1
  56. package/dist/domain/service/index.d.ts +1 -10
  57. package/dist/domain/service/index.d.ts.map +1 -1
  58. package/dist/domain/service/index.js +1 -10
  59. package/dist/domain/service/index.js.map +1 -1
  60. package/dist/domain/service/io/EntryDeleteGuard.js +1 -1
  61. package/dist/domain/service/io/EntryDeleteGuard.js.map +1 -1
  62. package/dist/domain/service/io/EntryWriteGuard.d.ts +4 -3
  63. package/dist/domain/service/io/EntryWriteGuard.d.ts.map +1 -1
  64. package/dist/domain/service/io/EntryWriteGuard.js +3 -6
  65. package/dist/domain/service/io/EntryWriteGuard.js.map +1 -1
  66. package/dist/domain/service/io/JoinedEntryReader.d.ts +2 -3
  67. package/dist/domain/service/io/JoinedEntryReader.d.ts.map +1 -1
  68. package/dist/domain/service/io/JoinedEntryReader.js +2 -3
  69. package/dist/domain/service/io/JoinedEntryReader.js.map +1 -1
  70. package/dist/index.d.ts +17 -14
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +10 -12
  73. package/dist/index.js.map +1 -1
  74. package/dist/infrastructure/boot/SqliteMigrationRunner.d.ts +10 -0
  75. package/dist/infrastructure/boot/SqliteMigrationRunner.d.ts.map +1 -0
  76. package/dist/infrastructure/boot/SqliteMigrationRunner.js +41 -0
  77. package/dist/infrastructure/boot/SqliteMigrationRunner.js.map +1 -0
  78. package/dist/infrastructure/boot/bootState.d.ts +9 -0
  79. package/dist/infrastructure/boot/bootState.d.ts.map +1 -0
  80. package/dist/infrastructure/boot/bootState.js +32 -0
  81. package/dist/infrastructure/boot/bootState.js.map +1 -0
  82. package/dist/infrastructure/boot/canonicalMigrations.d.ts +2 -0
  83. package/dist/infrastructure/boot/canonicalMigrations.d.ts.map +1 -1
  84. package/dist/infrastructure/boot/canonicalMigrations.js +181 -88
  85. package/dist/infrastructure/boot/canonicalMigrations.js.map +1 -1
  86. package/dist/infrastructure/boot/index.d.ts +3 -1
  87. package/dist/infrastructure/boot/index.d.ts.map +1 -1
  88. package/dist/infrastructure/boot/index.js +3 -1
  89. package/dist/infrastructure/boot/index.js.map +1 -1
  90. package/dist/infrastructure/http/createMantleRequestHandler.d.ts +12 -0
  91. package/dist/infrastructure/http/createMantleRequestHandler.d.ts.map +1 -0
  92. package/dist/infrastructure/http/createMantleRequestHandler.js +127 -0
  93. package/dist/infrastructure/http/createMantleRequestHandler.js.map +1 -0
  94. package/dist/infrastructure/index.d.ts +0 -1
  95. package/dist/infrastructure/index.d.ts.map +1 -1
  96. package/dist/infrastructure/index.js +0 -1
  97. package/dist/infrastructure/index.js.map +1 -1
  98. package/dist/infrastructure/mcp/McpJsonRpcDispatcher.d.ts +18 -23
  99. package/dist/infrastructure/mcp/McpJsonRpcDispatcher.d.ts.map +1 -1
  100. package/dist/infrastructure/mcp/McpJsonRpcDispatcher.js +64 -39
  101. package/dist/infrastructure/mcp/McpJsonRpcDispatcher.js.map +1 -1
  102. package/dist/infrastructure/mcp/McpToolCatalog.d.ts.map +1 -1
  103. package/dist/infrastructure/mcp/McpToolCatalog.js +84 -19
  104. package/dist/infrastructure/mcp/McpToolCatalog.js.map +1 -1
  105. package/dist/infrastructure/mcp/index.d.ts +1 -1
  106. package/dist/infrastructure/mcp/index.d.ts.map +1 -1
  107. package/dist/infrastructure/mcp/index.js.map +1 -1
  108. package/dist/infrastructure/persistence/DatabaseEntryRepository.d.ts +4 -8
  109. package/dist/infrastructure/persistence/DatabaseEntryRepository.d.ts.map +1 -1
  110. package/dist/infrastructure/persistence/DatabaseEntryRepository.js +80 -35
  111. package/dist/infrastructure/persistence/DatabaseEntryRepository.js.map +1 -1
  112. package/dist/infrastructure/persistence/DatabaseSiteConfigRepository.d.ts.map +1 -1
  113. package/dist/infrastructure/persistence/DatabaseSiteConfigRepository.js +39 -31
  114. package/dist/infrastructure/persistence/DatabaseSiteConfigRepository.js.map +1 -1
  115. package/dist/infrastructure/persistence/Pagination.d.ts +5 -0
  116. package/dist/infrastructure/persistence/Pagination.d.ts.map +1 -1
  117. package/dist/infrastructure/persistence/Pagination.js +49 -0
  118. package/dist/infrastructure/persistence/Pagination.js.map +1 -1
  119. package/dist/infrastructure/storage/SqliteMantleStorageAdapter.d.ts +22 -0
  120. package/dist/infrastructure/storage/SqliteMantleStorageAdapter.d.ts.map +1 -0
  121. package/dist/infrastructure/storage/SqliteMantleStorageAdapter.js +86 -0
  122. package/dist/infrastructure/storage/SqliteMantleStorageAdapter.js.map +1 -0
  123. package/dist/{domain/service/ViewSqlCompiler.d.ts → infrastructure/storage/SqliteViewCompiler.d.ts} +12 -10
  124. package/dist/infrastructure/storage/SqliteViewCompiler.d.ts.map +1 -0
  125. package/dist/infrastructure/storage/SqliteViewCompiler.js +307 -0
  126. package/dist/infrastructure/storage/SqliteViewCompiler.js.map +1 -0
  127. package/dist/infrastructure/testing/IndexCoverageHarness.d.ts +2 -2
  128. package/dist/infrastructure/testing/IndexCoverageHarness.d.ts.map +1 -1
  129. package/dist/infrastructure/testing/IndexCoverageHarness.js +10 -9
  130. package/dist/infrastructure/testing/IndexCoverageHarness.js.map +1 -1
  131. package/dist/usecase/boot/ValidateBootUseCase.d.ts +16 -35
  132. package/dist/usecase/boot/ValidateBootUseCase.d.ts.map +1 -1
  133. package/dist/usecase/boot/ValidateBootUseCase.js +79 -254
  134. package/dist/usecase/boot/ValidateBootUseCase.js.map +1 -1
  135. package/dist/usecase/boot/index.d.ts +1 -1
  136. package/dist/usecase/boot/index.d.ts.map +1 -1
  137. package/dist/usecase/boot/index.js +1 -1
  138. package/dist/usecase/boot/index.js.map +1 -1
  139. package/dist/usecase/content/ArchiveUseCase.d.ts +2 -4
  140. package/dist/usecase/content/ArchiveUseCase.d.ts.map +1 -1
  141. package/dist/usecase/content/ArchiveUseCase.js +2 -6
  142. package/dist/usecase/content/ArchiveUseCase.js.map +1 -1
  143. package/dist/usecase/content/CreateDraftUseCase.d.ts +5 -4
  144. package/dist/usecase/content/CreateDraftUseCase.d.ts.map +1 -1
  145. package/dist/usecase/content/CreateDraftUseCase.js +10 -7
  146. package/dist/usecase/content/CreateDraftUseCase.js.map +1 -1
  147. package/dist/usecase/content/DeleteEntryUseCase.d.ts +3 -5
  148. package/dist/usecase/content/DeleteEntryUseCase.d.ts.map +1 -1
  149. package/dist/usecase/content/DeleteEntryUseCase.js +3 -5
  150. package/dist/usecase/content/DeleteEntryUseCase.js.map +1 -1
  151. package/dist/usecase/content/ListEntriesUseCase.d.ts.map +1 -1
  152. package/dist/usecase/content/ListEntriesUseCase.js +30 -3
  153. package/dist/usecase/content/ListEntriesUseCase.js.map +1 -1
  154. package/dist/usecase/content/RequestPublishUseCase.d.ts +6 -15
  155. package/dist/usecase/content/RequestPublishUseCase.d.ts.map +1 -1
  156. package/dist/usecase/content/RequestPublishUseCase.js +7 -26
  157. package/dist/usecase/content/RequestPublishUseCase.js.map +1 -1
  158. package/dist/usecase/content/UnpublishUseCase.d.ts +1 -3
  159. package/dist/usecase/content/UnpublishUseCase.d.ts.map +1 -1
  160. package/dist/usecase/content/UnpublishUseCase.js +1 -5
  161. package/dist/usecase/content/UnpublishUseCase.js.map +1 -1
  162. package/dist/usecase/content/UpdateDraftUseCase.d.ts +4 -3
  163. package/dist/usecase/content/UpdateDraftUseCase.d.ts.map +1 -1
  164. package/dist/usecase/content/UpdateDraftUseCase.js +9 -6
  165. package/dist/usecase/content/UpdateDraftUseCase.js.map +1 -1
  166. package/dist/usecase/content/diagnostics.d.ts +1 -0
  167. package/dist/usecase/content/diagnostics.d.ts.map +1 -1
  168. package/dist/usecase/content/diagnostics.js +10 -0
  169. package/dist/usecase/content/diagnostics.js.map +1 -1
  170. package/dist/usecase/dto/content/index.d.ts +10 -1
  171. package/dist/usecase/dto/content/index.d.ts.map +1 -1
  172. package/dist/usecase/dto/index.d.ts +0 -1
  173. package/dist/usecase/dto/index.d.ts.map +1 -1
  174. package/dist/usecase/dto/index.js +0 -1
  175. package/dist/usecase/dto/index.js.map +1 -1
  176. package/dist/usecase/dto/view/ExecuteViewRequest.d.ts +2 -2
  177. package/dist/usecase/dto/view/ExecuteViewRequest.d.ts.map +1 -1
  178. package/dist/usecase/index.d.ts +0 -1
  179. package/dist/usecase/index.d.ts.map +1 -1
  180. package/dist/usecase/index.js +0 -1
  181. package/dist/usecase/index.js.map +1 -1
  182. package/dist/usecase/media/diagnostics.js +1 -1
  183. package/dist/usecase/procedure/InvokeBuiltinUseCase.d.ts +5 -4
  184. package/dist/usecase/procedure/InvokeBuiltinUseCase.d.ts.map +1 -1
  185. package/dist/usecase/procedure/InvokeBuiltinUseCase.js +8 -4
  186. package/dist/usecase/procedure/InvokeBuiltinUseCase.js.map +1 -1
  187. package/dist/usecase/site/UpdateSiteSettingsUseCase.d.ts +4 -5
  188. package/dist/usecase/site/UpdateSiteSettingsUseCase.d.ts.map +1 -1
  189. package/dist/usecase/site/UpdateSiteSettingsUseCase.js +36 -6
  190. package/dist/usecase/site/UpdateSiteSettingsUseCase.js.map +1 -1
  191. package/dist/usecase/view/ExecuteViewUseCase.d.ts +8 -16
  192. package/dist/usecase/view/ExecuteViewUseCase.d.ts.map +1 -1
  193. package/dist/usecase/view/ExecuteViewUseCase.js +24 -94
  194. package/dist/usecase/view/ExecuteViewUseCase.js.map +1 -1
  195. package/dist/usecase/view/index.d.ts +2 -1
  196. package/dist/usecase/view/index.d.ts.map +1 -1
  197. package/dist/usecase/view/index.js.map +1 -1
  198. package/package.json +4 -4
  199. package/dist/domain/model/SeoMeta.d.ts +0 -47
  200. package/dist/domain/model/SeoMeta.d.ts.map +0 -1
  201. package/dist/domain/model/SeoMeta.js +0 -2
  202. package/dist/domain/model/SeoMeta.js.map +0 -1
  203. package/dist/domain/model/TemplateRegistry.d.ts +0 -50
  204. package/dist/domain/model/TemplateRegistry.d.ts.map +0 -1
  205. package/dist/domain/model/TemplateRegistry.js +0 -17
  206. package/dist/domain/model/TemplateRegistry.js.map +0 -1
  207. package/dist/domain/port/AssetServer.d.ts +0 -21
  208. package/dist/domain/port/AssetServer.d.ts.map +0 -1
  209. package/dist/domain/port/AssetServer.js +0 -2
  210. package/dist/domain/port/AssetServer.js.map +0 -1
  211. package/dist/domain/port/KvCache.d.ts +0 -34
  212. package/dist/domain/port/KvCache.d.ts.map +0 -1
  213. package/dist/domain/port/KvCache.js +0 -2
  214. package/dist/domain/port/KvCache.js.map +0 -1
  215. package/dist/domain/port/PublishOrchestrator.d.ts +0 -26
  216. package/dist/domain/port/PublishOrchestrator.d.ts.map +0 -1
  217. package/dist/domain/port/PublishOrchestrator.js +0 -2
  218. package/dist/domain/port/PublishOrchestrator.js.map +0 -1
  219. package/dist/domain/service/AbsoluteUrl.d.ts +0 -6
  220. package/dist/domain/service/AbsoluteUrl.d.ts.map +0 -1
  221. package/dist/domain/service/AbsoluteUrl.js +0 -33
  222. package/dist/domain/service/AbsoluteUrl.js.map +0 -1
  223. package/dist/domain/service/HtmlEscaping.d.ts +0 -2
  224. package/dist/domain/service/HtmlEscaping.d.ts.map +0 -1
  225. package/dist/domain/service/HtmlEscaping.js +0 -9
  226. package/dist/domain/service/HtmlEscaping.js.map +0 -1
  227. package/dist/domain/service/HtmlRenderer.d.ts +0 -36
  228. package/dist/domain/service/HtmlRenderer.d.ts.map +0 -1
  229. package/dist/domain/service/HtmlRenderer.js +0 -78
  230. package/dist/domain/service/HtmlRenderer.js.map +0 -1
  231. package/dist/domain/service/MarkdownSerializer.d.ts +0 -48
  232. package/dist/domain/service/MarkdownSerializer.d.ts.map +0 -1
  233. package/dist/domain/service/MarkdownSerializer.js +0 -109
  234. package/dist/domain/service/MarkdownSerializer.js.map +0 -1
  235. package/dist/domain/service/McpToolNaming.d.ts +0 -31
  236. package/dist/domain/service/McpToolNaming.d.ts.map +0 -1
  237. package/dist/domain/service/McpToolNaming.js +0 -48
  238. package/dist/domain/service/McpToolNaming.js.map +0 -1
  239. package/dist/domain/service/PreviewBanner.d.ts +0 -10
  240. package/dist/domain/service/PreviewBanner.d.ts.map +0 -1
  241. package/dist/domain/service/PreviewBanner.js +0 -30
  242. package/dist/domain/service/PreviewBanner.js.map +0 -1
  243. package/dist/domain/service/PublicPathResolver.d.ts +0 -41
  244. package/dist/domain/service/PublicPathResolver.d.ts.map +0 -1
  245. package/dist/domain/service/PublicPathResolver.js +0 -24
  246. package/dist/domain/service/PublicPathResolver.js.map +0 -1
  247. package/dist/domain/service/PublishKeys.d.ts +0 -42
  248. package/dist/domain/service/PublishKeys.d.ts.map +0 -1
  249. package/dist/domain/service/PublishKeys.js +0 -71
  250. package/dist/domain/service/PublishKeys.js.map +0 -1
  251. package/dist/domain/service/SeoMetaComposer.d.ts +0 -47
  252. package/dist/domain/service/SeoMetaComposer.d.ts.map +0 -1
  253. package/dist/domain/service/SeoMetaComposer.js +0 -164
  254. package/dist/domain/service/SeoMetaComposer.js.map +0 -1
  255. package/dist/domain/service/SitemapSerializer.d.ts +0 -19
  256. package/dist/domain/service/SitemapSerializer.d.ts.map +0 -1
  257. package/dist/domain/service/SitemapSerializer.js +0 -27
  258. package/dist/domain/service/SitemapSerializer.js.map +0 -1
  259. package/dist/domain/service/ViewSqlCompiler.d.ts.map +0 -1
  260. package/dist/domain/service/ViewSqlCompiler.js +0 -193
  261. package/dist/domain/service/ViewSqlCompiler.js.map +0 -1
  262. package/dist/domain/service/io/MediaAssetReferences.d.ts +0 -13
  263. package/dist/domain/service/io/MediaAssetReferences.d.ts.map +0 -1
  264. package/dist/domain/service/io/MediaAssetReferences.js +0 -48
  265. package/dist/domain/service/io/MediaAssetReferences.js.map +0 -1
  266. package/dist/infrastructure/render/HtmlPublishOrchestrator.d.ts +0 -38
  267. package/dist/infrastructure/render/HtmlPublishOrchestrator.d.ts.map +0 -1
  268. package/dist/infrastructure/render/HtmlPublishOrchestrator.js +0 -129
  269. package/dist/infrastructure/render/HtmlPublishOrchestrator.js.map +0 -1
  270. package/dist/infrastructure/render/index.d.ts +0 -2
  271. package/dist/infrastructure/render/index.d.ts.map +0 -1
  272. package/dist/infrastructure/render/index.js +0 -2
  273. package/dist/infrastructure/render/index.js.map +0 -1
  274. package/dist/runtime.d.ts +0 -150
  275. package/dist/runtime.d.ts.map +0 -1
  276. package/dist/runtime.js +0 -181
  277. package/dist/runtime.js.map +0 -1
  278. package/dist/usecase/content/ContentPublishEffects.d.ts +0 -11
  279. package/dist/usecase/content/ContentPublishEffects.d.ts.map +0 -1
  280. package/dist/usecase/content/ContentPublishEffects.js +0 -21
  281. package/dist/usecase/content/ContentPublishEffects.js.map +0 -1
  282. package/dist/usecase/dto/render/ComposeEntrySeoMetaRequest.d.ts +0 -14
  283. package/dist/usecase/dto/render/ComposeEntrySeoMetaRequest.d.ts.map +0 -1
  284. package/dist/usecase/dto/render/ComposeEntrySeoMetaRequest.js +0 -2
  285. package/dist/usecase/dto/render/ComposeEntrySeoMetaRequest.js.map +0 -1
  286. package/dist/usecase/dto/render/ComposeLlmsTxtRequest.d.ts +0 -8
  287. package/dist/usecase/dto/render/ComposeLlmsTxtRequest.d.ts.map +0 -1
  288. package/dist/usecase/dto/render/ComposeLlmsTxtRequest.js +0 -2
  289. package/dist/usecase/dto/render/ComposeLlmsTxtRequest.js.map +0 -1
  290. package/dist/usecase/dto/render/ComposeSitemapRequest.d.ts +0 -11
  291. package/dist/usecase/dto/render/ComposeSitemapRequest.d.ts.map +0 -1
  292. package/dist/usecase/dto/render/ComposeSitemapRequest.js +0 -2
  293. package/dist/usecase/dto/render/ComposeSitemapRequest.js.map +0 -1
  294. package/dist/usecase/dto/render/PreviewEntryRequest.d.ts +0 -13
  295. package/dist/usecase/dto/render/PreviewEntryRequest.d.ts.map +0 -1
  296. package/dist/usecase/dto/render/PreviewEntryRequest.js +0 -2
  297. package/dist/usecase/dto/render/PreviewEntryRequest.js.map +0 -1
  298. package/dist/usecase/dto/render/RenderEntryLiveRequest.d.ts +0 -14
  299. package/dist/usecase/dto/render/RenderEntryLiveRequest.d.ts.map +0 -1
  300. package/dist/usecase/dto/render/RenderEntryLiveRequest.js +0 -2
  301. package/dist/usecase/dto/render/RenderEntryLiveRequest.js.map +0 -1
  302. package/dist/usecase/dto/render/RenderListLiveRequest.d.ts +0 -11
  303. package/dist/usecase/dto/render/RenderListLiveRequest.d.ts.map +0 -1
  304. package/dist/usecase/dto/render/RenderListLiveRequest.js +0 -2
  305. package/dist/usecase/dto/render/RenderListLiveRequest.js.map +0 -1
  306. package/dist/usecase/dto/render/index.d.ts +0 -7
  307. package/dist/usecase/dto/render/index.d.ts.map +0 -1
  308. package/dist/usecase/dto/render/index.js +0 -7
  309. package/dist/usecase/dto/render/index.js.map +0 -1
  310. package/dist/usecase/render/ComposeEntrySeoMetaUseCase.d.ts +0 -28
  311. package/dist/usecase/render/ComposeEntrySeoMetaUseCase.d.ts.map +0 -1
  312. package/dist/usecase/render/ComposeEntrySeoMetaUseCase.js +0 -59
  313. package/dist/usecase/render/ComposeEntrySeoMetaUseCase.js.map +0 -1
  314. package/dist/usecase/render/ComposeLlmsTxtUseCase.d.ts +0 -19
  315. package/dist/usecase/render/ComposeLlmsTxtUseCase.d.ts.map +0 -1
  316. package/dist/usecase/render/ComposeLlmsTxtUseCase.js +0 -39
  317. package/dist/usecase/render/ComposeLlmsTxtUseCase.js.map +0 -1
  318. package/dist/usecase/render/ComposeSitemapUseCase.d.ts +0 -15
  319. package/dist/usecase/render/ComposeSitemapUseCase.d.ts.map +0 -1
  320. package/dist/usecase/render/ComposeSitemapUseCase.js +0 -28
  321. package/dist/usecase/render/ComposeSitemapUseCase.js.map +0 -1
  322. package/dist/usecase/render/PreviewEntryUseCase.d.ts +0 -28
  323. package/dist/usecase/render/PreviewEntryUseCase.d.ts.map +0 -1
  324. package/dist/usecase/render/PreviewEntryUseCase.js +0 -72
  325. package/dist/usecase/render/PreviewEntryUseCase.js.map +0 -1
  326. package/dist/usecase/render/RenderEntryLiveUseCase.d.ts +0 -37
  327. package/dist/usecase/render/RenderEntryLiveUseCase.d.ts.map +0 -1
  328. package/dist/usecase/render/RenderEntryLiveUseCase.js +0 -63
  329. package/dist/usecase/render/RenderEntryLiveUseCase.js.map +0 -1
  330. package/dist/usecase/render/RenderListLiveUseCase.d.ts +0 -25
  331. package/dist/usecase/render/RenderListLiveUseCase.d.ts.map +0 -1
  332. package/dist/usecase/render/RenderListLiveUseCase.js +0 -45
  333. package/dist/usecase/render/RenderListLiveUseCase.js.map +0 -1
  334. package/dist/usecase/render/index.d.ts +0 -7
  335. package/dist/usecase/render/index.d.ts.map +0 -1
  336. package/dist/usecase/render/index.js +0 -7
  337. package/dist/usecase/render/index.js.map +0 -1
package/dist/runtime.js DELETED
@@ -1,181 +0,0 @@
1
- import { runtimeDiagnostic, } from "@aotter/mantle-spec";
2
- import { partitionManifests } from "@aotter/mantle-spec/partition";
3
- import { SystemClock } from "./domain/port/Clock.js";
4
- import { RandomUuidGenerator, } from "./domain/port/IdGenerator.js";
5
- import { buildHandlerRegistry, } from "./domain/port/HandlerRegistry.js";
6
- import { ArchiveUseCase, CreateDraftUseCase, DeleteEntryUseCase, GetEntryUseCase, ListEntriesUseCase, RequestPublishUseCase, UnpublishUseCase, UpdateDraftUseCase, } from "./usecase/content/index.js";
7
- import { InvokeBuiltinUseCase, InvokeProcedureUseCase, } from "./usecase/procedure/index.js";
8
- import { ExecuteViewUseCase } from "./usecase/view/index.js";
9
- import { ValidateBootUseCase } from "./usecase/boot/index.js";
10
- import { RunDeferredHookUseCase, RunLifecycleHooksUseCase, } from "./usecase/lifecycle/index.js";
11
- import { ComposeEntrySeoMetaUseCase, ComposeLlmsTxtUseCase, ComposeSitemapUseCase, PreviewEntryUseCase, RenderEntryLiveUseCase, RenderListLiveUseCase, } from "./usecase/render/index.js";
12
- import { CommitMediaUploadUseCase, CreateMediaUploadUseCase, ListMediaAssetsUseCase, GetMediaAssetUseCase, UpdateMediaAssetUseCase, DeleteMediaAssetUseCase, } from "./usecase/media/index.js";
13
- import { UpdateSiteSettingsUseCase } from "./usecase/site/index.js";
14
- import { TemplateRegistry as TemplateRegistryImpl } from "./domain/model/TemplateRegistry.js";
15
- import { TriggerIndex } from "./domain/service/TriggerIndex.js";
16
- import { DatabaseEntryRepository } from "./infrastructure/persistence/DatabaseEntryRepository.js";
17
- import { DatabaseMediaAssetRepository } from "./infrastructure/persistence/DatabaseMediaAssetRepository.js";
18
- import { DatabasePendingUploadRepository } from "./infrastructure/persistence/DatabasePendingUploadRepository.js";
19
- import { DatabaseSiteConfigRepository } from "./infrastructure/persistence/DatabaseSiteConfigRepository.js";
20
- import { LifecycleHookingEntryRepository } from "./infrastructure/persistence/LifecycleHookingEntryRepository.js";
21
- import { HtmlPublishOrchestrator } from "./infrastructure/render/index.js";
22
- import { CANONICAL_MIGRATIONS, reconcileSchemaIndexes, schemaIndexMigrations, } from "./infrastructure/boot/index.js";
23
- export function createCmsRuntime(args) {
24
- const partitioned = partitionManifests([...args.manifests]);
25
- const schemasByName = new Map();
26
- for (const s of partitioned.schemas)
27
- schemasByName.set(s.metadata.name, s);
28
- const proceduresByName = new Map();
29
- for (const p of partitioned.procedures)
30
- proceduresByName.set(p.metadata.name, p);
31
- const viewsByName = new Map();
32
- for (const v of partitioned.views)
33
- viewsByName.set(v.metadata.name, v);
34
- const triggersByName = new Map();
35
- for (const t of partitioned.triggers)
36
- triggersByName.set(t.metadata.name, t);
37
- const registry = buildHandlerRegistry(args.handlers ?? {});
38
- const templates = args.templates ?? new TemplateRegistryImpl();
39
- const clock = args.clock ?? SystemClock;
40
- const idgen = args.idgen ?? RandomUuidGenerator;
41
- // Repositories: DB-backed inner + lifecycle-hook decorator. Every
42
- // mutation through `entries` (create / update / delete /
43
- // transitionStatus) fires the matching Triggers via
44
- // `RunLifecycleHooksUseCase`. Symmetric chokepoint per POC ADR-0014:
45
- // MCP, admin, and builtin paths all hit the same wrapped repository.
46
- const innerEntries = new DatabaseEntryRepository(args.db, schemasByName);
47
- const entryReader = innerEntries;
48
- const triggerIndex = new TriggerIndex(partitioned.triggers);
49
- const siteConfig = new DatabaseSiteConfigRepository(args.db);
50
- // `entries` is filled below — assigned via `let` so the lifecycle
51
- // hooks (which run procedures, which can themselves write entries
52
- // via builtin handlers) close over the wrapped repo, not the bare
53
- // DB-backed one. Without this every builtin write inside a hook
54
- // would skip the decorator and silently bypass downstream hooks.
55
- let entries;
56
- const entriesProxy = {
57
- create: (a) => entries.create(a),
58
- get: (id) => entries.get(id),
59
- update: (a) => entries.update(a),
60
- delete: (a) => entries.delete(a),
61
- transitionStatus: (a) => entries.transitionStatus(a),
62
- list: (a) => entries.list(a),
63
- findByDataField: (a) => entries.findByDataField(a),
64
- findByDataFields: (a) => entries.findByDataFields(a),
65
- };
66
- const invokeBuiltin = new InvokeBuiltinUseCase(entriesProxy, schemasByName, clock, idgen, siteConfig);
67
- const invokeProcedure = new InvokeProcedureUseCase(registry, invokeBuiltin, proceduresByName);
68
- const lifecycleHooks = new RunLifecycleHooksUseCase(triggerIndex, proceduresByName, (req) => invokeProcedure.execute(req));
69
- entries = new LifecycleHookingEntryRepository(innerEntries, triggerIndex, lifecycleHooks, idgen, args.deferredHookDispatcher);
70
- const runDeferredHook = new RunDeferredHookUseCase(lifecycleHooks);
71
- const publicPathResolver = args.publicPathResolver ?? null;
72
- const composeEntrySeoMeta = new ComposeEntrySeoMetaUseCase(entryReader);
73
- const composeLlmsTxt = new ComposeLlmsTxtUseCase(entryReader);
74
- const mediaAssets = new DatabaseMediaAssetRepository(args.db);
75
- const pendingUploads = new DatabasePendingUploadRepository(args.db);
76
- const publishOrchestrator = new HtmlPublishOrchestrator(entryReader, args.kv, publicPathResolver, composeEntrySeoMeta, composeLlmsTxt, schemasByName, mediaAssets);
77
- const updateSiteSettings = new UpdateSiteSettingsUseCase(siteConfig, publishOrchestrator);
78
- // Content / view / boot use cases. They see `entries` only as the
79
- // chokepoint port — hook firing is invisible to them.
80
- const createDraft = new CreateDraftUseCase(entries, schemasByName, clock, idgen, siteConfig);
81
- const updateDraft = new UpdateDraftUseCase(entries, schemasByName, clock, siteConfig);
82
- const getEntry = new GetEntryUseCase(entries);
83
- const listEntries = new ListEntriesUseCase(entries, schemasByName);
84
- const contentPublishEffects = { publishOrchestrator, siteConfig, templates };
85
- const requestPublish = new RequestPublishUseCase(entries, schemasByName, clock, contentPublishEffects, siteConfig);
86
- const unpublish = new UnpublishUseCase(entries, schemasByName, clock, contentPublishEffects);
87
- const archive = new ArchiveUseCase(entries, schemasByName, clock, contentPublishEffects);
88
- const deleteEntry = new DeleteEntryUseCase(entries, schemasByName);
89
- const executeView = new ExecuteViewUseCase(args.db, async (request) => {
90
- const procedure = proceduresByName.get(request.procedure);
91
- if (!procedure) {
92
- return {
93
- ok: false,
94
- diagnostic: runtimeDiagnostic({
95
- code: "GUARD_PROCEDURE_UNKNOWN",
96
- severity: "error",
97
- path: request.pathPrefix,
98
- value: request.procedure,
99
- expected: "name of a declared Procedure",
100
- }),
101
- };
102
- }
103
- return invokeProcedure.execute({
104
- procedure,
105
- input: request.input,
106
- ctx: request.ctx,
107
- pathPrefix: request.pathPrefix,
108
- });
109
- }, schemasByName);
110
- const composeSitemap = new ComposeSitemapUseCase(entryReader);
111
- const renderEntryLive = new RenderEntryLiveUseCase(entryReader, templates, publicPathResolver, composeEntrySeoMeta, schemasByName, mediaAssets);
112
- const renderListLive = new RenderListLiveUseCase(entryReader, templates, schemasByName, mediaAssets);
113
- const previewEntry = new PreviewEntryUseCase(entryReader, templates, publicPathResolver, composeEntrySeoMeta, schemasByName, mediaAssets);
114
- const validateBoot = new ValidateBootUseCase();
115
- const media = args.mediaStorage
116
- ? {
117
- storage: args.mediaStorage,
118
- createUpload: new CreateMediaUploadUseCase(args.mediaStorage, pendingUploads, clock, idgen, siteConfig, { allowSvg: args.mediaAllowSvg ?? false }),
119
- commitUpload: new CommitMediaUploadUseCase(args.mediaStorage, pendingUploads, clock, mediaAssets),
120
- listAssets: new ListMediaAssetsUseCase(mediaAssets),
121
- getAsset: new GetMediaAssetUseCase(mediaAssets),
122
- updateAsset: new UpdateMediaAssetUseCase(mediaAssets),
123
- deleteAsset: new DeleteMediaAssetUseCase(args.mediaStorage, mediaAssets),
124
- resolve: (id) => mediaAssets.findById(id),
125
- resolveMany: (ids) => mediaAssets.findManyByIds(ids),
126
- }
127
- : null;
128
- return {
129
- db: args.db,
130
- kv: args.kv,
131
- assets: args.assets,
132
- entryReader,
133
- createDraft,
134
- updateDraft,
135
- getEntry,
136
- listEntries,
137
- requestPublish,
138
- unpublish,
139
- archive,
140
- deleteEntry,
141
- invokeProcedure,
142
- executeView,
143
- composeLlmsTxt,
144
- composeSitemap,
145
- composeEntrySeoMeta,
146
- renderEntryLive,
147
- renderListLive,
148
- previewEntry,
149
- validateBoot,
150
- publishOrchestrator,
151
- siteConfig,
152
- updateSiteSettings,
153
- publicPathResolver,
154
- media,
155
- runDeferredHook,
156
- registry,
157
- templates,
158
- schemasByName,
159
- proceduresByName,
160
- viewsByName,
161
- triggers: partitioned.triggers,
162
- triggersByName,
163
- clock,
164
- idgen,
165
- async bootInit() {
166
- const schemas = partitioned.schemas;
167
- await args.db.migrations.runAll(CANONICAL_MIGRATIONS);
168
- await siteConfig.seed(args.siteDefaults);
169
- const siteLocales = await siteConfig.readLocales();
170
- validateBoot.assert({
171
- manifests: args.manifests,
172
- registry,
173
- siteLocales,
174
- });
175
- const indexMigrations = schemaIndexMigrations(schemas);
176
- await args.db.migrations.runAll(indexMigrations);
177
- await reconcileSchemaIndexes(args.db, indexMigrations, schemas);
178
- },
179
- };
180
- }
181
- //# sourceMappingURL=runtime.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import type { TemplateRegistry } from "../../domain/model/TemplateRegistry.js";
2
- import type { PublishOrchestrator } from "../../domain/port/PublishOrchestrator.js";
3
- import type { SiteConfigRepository } from "../../domain/port/SiteConfigRepository.js";
4
- export interface ContentPublishEffects {
5
- readonly publishOrchestrator: PublishOrchestrator;
6
- readonly siteConfig: SiteConfigRepository;
7
- readonly templates: TemplateRegistry;
8
- }
9
- export declare function publishCache(effects: ContentPublishEffects | undefined, entryId: string): Promise<void>;
10
- export declare function unpublishCache(effects: ContentPublishEffects | undefined, entryId: string): Promise<void>;
11
- //# sourceMappingURL=ContentPublishEffects.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ContentPublishEffects.d.ts","sourceRoot":"","sources":["../../../src/usecase/content/ContentPublishEffects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEtF,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAClD,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;CACtC;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,qBAAqB,GAAG,SAAS,EAC1C,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAQf;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,qBAAqB,GAAG,SAAS,EAC1C,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAQf"}
@@ -1,21 +0,0 @@
1
- export async function publishCache(effects, entryId) {
2
- if (!effects)
3
- return;
4
- const site = await effects.siteConfig.load();
5
- await effects.publishOrchestrator.publish({
6
- entryId,
7
- site,
8
- templates: effects.templates,
9
- });
10
- }
11
- export async function unpublishCache(effects, entryId) {
12
- if (!effects)
13
- return;
14
- const site = await effects.siteConfig.load();
15
- await effects.publishOrchestrator.unpublish({
16
- entryId,
17
- site,
18
- templates: effects.templates,
19
- });
20
- }
21
- //# sourceMappingURL=ContentPublishEffects.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ContentPublishEffects.js","sourceRoot":"","sources":["../../../src/usecase/content/ContentPublishEffects.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAA0C,EAC1C,OAAe;IAEf,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAC7C,MAAM,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC;QACxC,OAAO;QACP,IAAI;QACJ,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAA0C,EAC1C,OAAe;IAEf,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAC7C,MAAM,OAAO,CAAC,mBAAmB,CAAC,SAAS,CAAC;QAC1C,OAAO;QACP,IAAI;QACJ,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC,CAAC;AACL,CAAC"}
@@ -1,14 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=ComposeEntrySeoMetaRequest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ComposeEntrySeoMetaRequest.js","sourceRoot":"","sources":["../../../../src/usecase/dto/render/ComposeEntrySeoMetaRequest.ts"],"names":[],"mappings":""}
@@ -1,8 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=ComposeLlmsTxtRequest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ComposeLlmsTxtRequest.js","sourceRoot":"","sources":["../../../../src/usecase/dto/render/ComposeLlmsTxtRequest.ts"],"names":[],"mappings":""}
@@ -1,11 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=ComposeSitemapRequest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ComposeSitemapRequest.js","sourceRoot":"","sources":["../../../../src/usecase/dto/render/ComposeSitemapRequest.ts"],"names":[],"mappings":""}
@@ -1,13 +0,0 @@
1
- import type { SiteConfig } from "@aotter/mantle-spec";
2
- /**
3
- * Request DTO for `PreviewEntryUseCase`. Looks up the entry,
4
- * preferring draft → published → archived; renders via the registered template; injects a
5
- * preview banner.
6
- */
7
- export interface PreviewEntryRequest {
8
- readonly collection: string;
9
- readonly slug: string;
10
- readonly locale: string;
11
- readonly site: SiteConfig;
12
- }
13
- //# sourceMappingURL=PreviewEntryRequest.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PreviewEntryRequest.d.ts","sourceRoot":"","sources":["../../../../src/usecase/dto/render/PreviewEntryRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=PreviewEntryRequest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PreviewEntryRequest.js","sourceRoot":"","sources":["../../../../src/usecase/dto/render/PreviewEntryRequest.ts"],"names":[],"mappings":""}
@@ -1,14 +0,0 @@
1
- import type { SiteConfig } from "@aotter/mantle-spec";
2
- /**
3
- * Request DTO for `RenderEntryLiveUseCase` — renders a single entry
4
- * from current DB state on demand (no KV read), returning either the
5
- * full HTML doc or `null` if no matching entry / no registered
6
- * template.
7
- */
8
- export interface RenderEntryLiveRequest {
9
- readonly collection: string;
10
- readonly slug: string;
11
- readonly locale: string;
12
- readonly site: SiteConfig;
13
- }
14
- //# sourceMappingURL=RenderEntryLiveRequest.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RenderEntryLiveRequest.d.ts","sourceRoot":"","sources":["../../../../src/usecase/dto/render/RenderEntryLiveRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=RenderEntryLiveRequest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RenderEntryLiveRequest.js","sourceRoot":"","sources":["../../../../src/usecase/dto/render/RenderEntryLiveRequest.ts"],"names":[],"mappings":""}
@@ -1,11 +0,0 @@
1
- import type { SiteConfig } from "@aotter/mantle-spec";
2
- /**
3
- * Request DTO for `RenderListLiveUseCase` — renders a collection's
4
- * list page from current DB state on demand (no KV read).
5
- */
6
- export interface RenderListLiveRequest {
7
- readonly collection: string;
8
- readonly locale: string;
9
- readonly site: SiteConfig;
10
- }
11
- //# sourceMappingURL=RenderListLiveRequest.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RenderListLiveRequest.d.ts","sourceRoot":"","sources":["../../../../src/usecase/dto/render/RenderListLiveRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=RenderListLiveRequest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RenderListLiveRequest.js","sourceRoot":"","sources":["../../../../src/usecase/dto/render/RenderListLiveRequest.ts"],"names":[],"mappings":""}
@@ -1,7 +0,0 @@
1
- export * from "./ComposeLlmsTxtRequest.js";
2
- export * from "./ComposeSitemapRequest.js";
3
- export * from "./RenderEntryLiveRequest.js";
4
- export * from "./RenderListLiveRequest.js";
5
- export * from "./PreviewEntryRequest.js";
6
- export * from "./ComposeEntrySeoMetaRequest.js";
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/usecase/dto/render/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC"}
@@ -1,7 +0,0 @@
1
- export * from "./ComposeLlmsTxtRequest.js";
2
- export * from "./ComposeSitemapRequest.js";
3
- export * from "./RenderEntryLiveRequest.js";
4
- export * from "./RenderListLiveRequest.js";
5
- export * from "./PreviewEntryRequest.js";
6
- export * from "./ComposeEntrySeoMetaRequest.js";
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/usecase/dto/render/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC"}
@@ -1,28 +0,0 @@
1
- import type { Entry, SiteConfig } from "@aotter/mantle-spec";
2
- import type { EntryReader } from "../../domain/port/EntryReader.js";
3
- import { type SeoMeta } from "../../domain/service/SeoMetaComposer.js";
4
- import type { PublicPathResolver } from "../../domain/service/PublicPathResolver.js";
5
- import type { ComposeEntrySeoMetaRequest } from "../dto/render/ComposeEntrySeoMetaRequest.js";
6
- /**
7
- * Compose the SEO/AEO meta block for an entry. Reads sibling
8
- * translations from the DB (same collection, same slug, other
9
- * locales) so hreflang links are accurate; calls the pure composer
10
- * for the rest.
11
- *
12
- * "Same collection" is a deliberate simplification — works correctly
13
- * for `post-translations`-style design where each locale has its own
14
- * row in the same collection. Sites that split locales across
15
- * collections (`posts-en`, `posts-zh`) need a custom resolver — out
16
- * of scope for v0.1.
17
- *
18
- * Sibling lookup is one indexed `readEntryBySlug` per non-current
19
- * locale — O(locales), not O(collection). Runs in parallel via
20
- * `Promise.all`.
21
- */
22
- export declare class ComposeEntrySeoMetaUseCase {
23
- private readonly reader;
24
- constructor(reader: EntryReader);
25
- execute(request: ComposeEntrySeoMetaRequest): Promise<SeoMeta>;
26
- }
27
- export declare function composeSeoIfPathed(composer: Pick<ComposeEntrySeoMetaUseCase, "execute">, paths: PublicPathResolver | null, entry: Entry, site: SiteConfig): Promise<SeoMeta | undefined>;
28
- //# sourceMappingURL=ComposeEntrySeoMetaUseCase.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ComposeEntrySeoMetaUseCase.d.ts","sourceRoot":"","sources":["../../../src/usecase/render/ComposeEntrySeoMetaUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAEL,KAAK,OAAO,EAEb,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AAE9F;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,0BAA0B;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,WAAW;IAE1C,OAAO,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,OAAO,CAAC;CAMrE;AAED,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,IAAI,CAAC,0BAA0B,EAAE,SAAS,CAAC,EACrD,KAAK,EAAE,kBAAkB,GAAG,IAAI,EAChC,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAG9B"}
@@ -1,59 +0,0 @@
1
- import { composeEntrySeoMeta, } from "../../domain/service/SeoMetaComposer.js";
2
- /**
3
- * Compose the SEO/AEO meta block for an entry. Reads sibling
4
- * translations from the DB (same collection, same slug, other
5
- * locales) so hreflang links are accurate; calls the pure composer
6
- * for the rest.
7
- *
8
- * "Same collection" is a deliberate simplification — works correctly
9
- * for `post-translations`-style design where each locale has its own
10
- * row in the same collection. Sites that split locales across
11
- * collections (`posts-en`, `posts-zh`) need a custom resolver — out
12
- * of scope for v0.1.
13
- *
14
- * Sibling lookup is one indexed `readEntryBySlug` per non-current
15
- * locale — O(locales), not O(collection). Runs in parallel via
16
- * `Promise.all`.
17
- */
18
- export class ComposeEntrySeoMetaUseCase {
19
- reader;
20
- constructor(reader) {
21
- this.reader = reader;
22
- }
23
- async execute(request) {
24
- const { entry, site, paths, type } = request;
25
- const publicPath = paths.forEntry(entry) ?? "";
26
- const siblings = await readSiblings(this.reader, entry, site, paths);
27
- return composeEntrySeoMeta({ entry, site, publicPath, siblings, type });
28
- }
29
- }
30
- export async function composeSeoIfPathed(composer, paths, entry, site) {
31
- if (!paths?.forEntry(entry))
32
- return undefined;
33
- return composer.execute({ entry, site, paths });
34
- }
35
- async function readSiblings(reader, current, site, paths) {
36
- const slug = current.data["slug"];
37
- if (typeof slug !== "string" || slug.length === 0)
38
- return [];
39
- if (site.locales.length <= 1)
40
- return [];
41
- const currentKey = current.locale?.toLowerCase();
42
- const targetLocales = site.locales.filter((l) => l.toLowerCase() !== currentKey);
43
- const lookups = await Promise.all(targetLocales.map((locale) => reader.readBySlug({
44
- collection: current.collection,
45
- slug,
46
- locale,
47
- status: "published",
48
- }).then((e) => ({ locale, entry: e }))));
49
- const out = [];
50
- for (const { locale, entry } of lookups) {
51
- if (!entry)
52
- continue;
53
- const path = paths.forEntry(entry);
54
- if (path)
55
- out.push({ locale, publicPath: path });
56
- }
57
- return out;
58
- }
59
- //# sourceMappingURL=ComposeEntrySeoMetaUseCase.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ComposeEntrySeoMetaUseCase.js","sourceRoot":"","sources":["../../../src/usecase/render/ComposeEntrySeoMetaUseCase.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,mBAAmB,GAGpB,MAAM,yCAAyC,CAAC;AAIjD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,0BAA0B;IACR;IAA7B,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IAEpD,KAAK,CAAC,OAAO,CAAC,OAAmC;QAC/C,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;QAC7C,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACrE,OAAO,mBAAmB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1E,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,QAAqD,EACrD,KAAgC,EAChC,KAAY,EACZ,IAAgB;IAEhB,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9C,OAAO,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,MAAmB,EACnB,OAAc,EACd,IAAgB,EAChB,KAAyB;IAEzB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC7D,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACxC,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC;IACjD,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,CAAC;IACjF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAC3B,MAAM,CAAC,UAAU,CAAC;QAChB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,IAAI;QACJ,MAAM;QACN,MAAM,EAAE,WAAW;KACpB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CACvC,CACF,CAAC;IACF,MAAM,GAAG,GAAyB,EAAE,CAAC;IACrC,KAAK,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,OAAO,EAAE,CAAC;QACxC,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,19 +0,0 @@
1
- import type { EntryReader } from "../../domain/port/EntryReader.js";
2
- import type { ComposeLlmsTxtRequest } from "../dto/render/ComposeLlmsTxtRequest.js";
3
- /**
4
- * Compose a `/llms.txt` body from currently-published entries.
5
- *
6
- * - locale: string → entries with `data.locale === locale`
7
- * - locale: null → non-localized entries only (publish-pipeline
8
- * semantic; matches what HtmlPublishOrchestrator
9
- * writes to the versioned root key on a non-localized
10
- * publish). Consumers that want a cross-locale
11
- * aggregate at the root URL should iterate
12
- * site.locales themselves and concat.
13
- */
14
- export declare class ComposeLlmsTxtUseCase {
15
- private readonly reader;
16
- constructor(reader: EntryReader);
17
- execute(request: ComposeLlmsTxtRequest): Promise<string>;
18
- }
19
- //# sourceMappingURL=ComposeLlmsTxtUseCase.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ComposeLlmsTxtUseCase.d.ts","sourceRoot":"","sources":["../../../src/usecase/render/ComposeLlmsTxtUseCase.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAEpE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAEpF;;;;;;;;;;GAUG;AACH,qBAAa,qBAAqB;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,WAAW;IAE1C,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;CAS/D"}
@@ -1,39 +0,0 @@
1
- import { serializeLlmsTxt } from "../../domain/service/MarkdownSerializer.js";
2
- /**
3
- * Compose a `/llms.txt` body from currently-published entries.
4
- *
5
- * - locale: string → entries with `data.locale === locale`
6
- * - locale: null → non-localized entries only (publish-pipeline
7
- * semantic; matches what HtmlPublishOrchestrator
8
- * writes to the versioned root key on a non-localized
9
- * publish). Consumers that want a cross-locale
10
- * aggregate at the root URL should iterate
11
- * site.locales themselves and concat.
12
- */
13
- export class ComposeLlmsTxtUseCase {
14
- reader;
15
- constructor(reader) {
16
- this.reader = reader;
17
- }
18
- async execute(request) {
19
- const entries = await this.reader.readPublished({ locale: request.locale });
20
- const grouped = groupByCollection(entries);
21
- return serializeLlmsTxt({
22
- site: request.site,
23
- locale: request.locale ?? "",
24
- entriesByCollection: grouped,
25
- });
26
- }
27
- }
28
- function groupByCollection(entries) {
29
- const out = new Map();
30
- for (const e of entries) {
31
- const arr = out.get(e.collection);
32
- if (arr)
33
- arr.push(e);
34
- else
35
- out.set(e.collection, [e]);
36
- }
37
- return out;
38
- }
39
- //# sourceMappingURL=ComposeLlmsTxtUseCase.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ComposeLlmsTxtUseCase.js","sourceRoot":"","sources":["../../../src/usecase/render/ComposeLlmsTxtUseCase.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAG9E;;;;;;;;;;GAUG;AACH,MAAM,OAAO,qBAAqB;IACH;IAA7B,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IAEpD,KAAK,CAAC,OAAO,CAAC,OAA8B;QAC1C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC3C,OAAO,gBAAgB,CAAC;YACtB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;YAC5B,mBAAmB,EAAE,OAAO;SAC7B,CAAC,CAAC;IACL,CAAC;CACF;AAED,SAAS,iBAAiB,CAAC,OAAyB;IAClD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAmB,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAClC,IAAI,GAAG;YAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;YAChB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,15 +0,0 @@
1
- import type { EntryReader } from "../../domain/port/EntryReader.js";
2
- import type { ComposeSitemapRequest } from "../dto/render/ComposeSitemapRequest.js";
3
- /**
4
- * Compose `sitemap.xml` from every published entry across all
5
- * collections + locales. Result is XML text; consumer routes it as
6
- * `application/xml`. See ComposeSitemapRequest for the pathFor +
7
- * maxUrls knobs.
8
- */
9
- export declare const SITEMAP_MAX_URLS_DEFAULT = 50000;
10
- export declare class ComposeSitemapUseCase {
11
- private readonly reader;
12
- constructor(reader: EntryReader);
13
- execute(request: ComposeSitemapRequest): Promise<string>;
14
- }
15
- //# sourceMappingURL=ComposeSitemapUseCase.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ComposeSitemapUseCase.d.ts","sourceRoot":"","sources":["../../../src/usecase/render/ComposeSitemapUseCase.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAGpE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAEpF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAE9C,qBAAa,qBAAqB;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,WAAW;IAE1C,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;CAW/D"}