@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
@@ -1,50 +0,0 @@
1
- import type { Entry, SiteConfig } from "@aotter/mantle-spec";
2
- import type { SeoMeta } from "./SeoMeta.js";
3
- import type { MediaAsset } from "../port/MediaStorage.js";
4
- /**
5
- * Render-pipeline types + consumer-supplied template registry.
6
- *
7
- * The runtime stays string-typed — templates return complete HTML
8
- * body strings (no doctype prefix; the publish pipeline adds it) so
9
- * the runtime carries no JSX dependency. Consumers using JSX in
10
- * their public surface (Hono + hono/jsx) call their JSX → string
11
- * function before the template returns.
12
- *
13
- * Schemas without a registered entry/list template still get
14
- * markdown / `llms.txt` mirrors — the HTML surfaces are simply
15
- * skipped (per ADR-0009-extended: the SDK ships zero opinionated
16
- * templates).
17
- *
18
- * `seo` is populated when the renderer is given a composed SeoMeta
19
- * block — templates render `<SeoTags seo={seo} />` (or read fields
20
- * directly) when present. Renderers that skip composition leave
21
- * `seo` undefined so opt-out templates don't break.
22
- *
23
- * Lives in `domain/model/` because both the `PublishOrchestrator`
24
- * port and the HTML adapter that implements it need to reference it.
25
- */
26
- export interface EntryContext {
27
- readonly entry: Entry;
28
- readonly site: SiteConfig;
29
- readonly mediaAssets?: ReadonlyMap<string, MediaAsset>;
30
- readonly seo?: SeoMeta;
31
- }
32
- export interface ListContext {
33
- readonly collection: string;
34
- readonly locale: string;
35
- readonly entries: readonly Entry[];
36
- readonly site: SiteConfig;
37
- readonly mediaAssets?: ReadonlyMap<string, MediaAsset>;
38
- readonly seo?: SeoMeta;
39
- }
40
- export type EntryTemplate = (ctx: EntryContext) => string;
41
- export type ListTemplate = (ctx: ListContext) => string;
42
- export declare class TemplateRegistry {
43
- private readonly entries;
44
- private readonly lists;
45
- registerEntryTemplate(collection: string, t: EntryTemplate): void;
46
- registerListTemplate(collection: string, t: ListTemplate): void;
47
- getEntryTemplate(collection: string): EntryTemplate | undefined;
48
- getListTemplate(collection: string): ListTemplate | undefined;
49
- }
50
- //# sourceMappingURL=TemplateRegistry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TemplateRegistry.d.ts","sourceRoot":"","sources":["../../../src/domain/model/TemplateRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACvD,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,SAAS,KAAK,EAAE,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACvD,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,YAAY,KAAK,MAAM,CAAC;AAC1D,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,WAAW,KAAK,MAAM,CAAC;AAExD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAC5D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmC;IAEzD,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,aAAa,GAAG,IAAI;IAIjE,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI;IAI/D,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAI/D,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;CAG9D"}
@@ -1,17 +0,0 @@
1
- export class TemplateRegistry {
2
- entries = new Map();
3
- lists = new Map();
4
- registerEntryTemplate(collection, t) {
5
- this.entries.set(collection, t);
6
- }
7
- registerListTemplate(collection, t) {
8
- this.lists.set(collection, t);
9
- }
10
- getEntryTemplate(collection) {
11
- return this.entries.get(collection);
12
- }
13
- getListTemplate(collection) {
14
- return this.lists.get(collection);
15
- }
16
- }
17
- //# sourceMappingURL=TemplateRegistry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TemplateRegistry.js","sourceRoot":"","sources":["../../../src/domain/model/TemplateRegistry.ts"],"names":[],"mappings":"AA6CA,MAAM,OAAO,gBAAgB;IACV,OAAO,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC3C,KAAK,GAAG,IAAI,GAAG,EAAwB,CAAC;IAEzD,qBAAqB,CAAC,UAAkB,EAAE,CAAgB;QACxD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,oBAAoB,CAAC,UAAkB,EAAE,CAAe;QACtD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,gBAAgB,CAAC,UAAkB;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED,eAAe,CAAC,UAAkB;QAChC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;CACF"}
@@ -1,21 +0,0 @@
1
- /**
2
- * `AssetServer` — static-asset serving for the admin SPA. The admin
3
- * SPA itself lives in `@aotter/mantle-admin-ui` as a pre-built
4
- * `dist/` (commit 5); the adapter binds `AssetServer` to whatever
5
- * actually serves that `dist/`. The runtime knows nothing about MIME
6
- * types, caching headers, or compression — it just asks the port and
7
- * returns the response.
8
- *
9
- * CF adapter: wraps `env.ASSETS.fetch(req)`. Future: filesystem read,
10
- * S3+CDN, Netlify static-publish dir.
11
- *
12
- * Returning `null` lets the runtime's HTTP layer fall back to the
13
- * SPA's `index.html` catchall — the React Router routing model.
14
- *
15
- * Renamed from `AssetsPort` per the clean-architecture naming
16
- * convention.
17
- */
18
- export interface AssetServer {
19
- fetch(req: Request): Promise<Response | null>;
20
- }
21
- //# sourceMappingURL=AssetServer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AssetServer.d.ts","sourceRoot":"","sources":["../../../src/domain/port/AssetServer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;CAC/C"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=AssetServer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AssetServer.js","sourceRoot":"","sources":["../../../src/domain/port/AssetServer.ts"],"names":[],"mappings":""}
@@ -1,34 +0,0 @@
1
- /**
2
- * `KvCache` — read-mostly cache for the publish pipeline. The runtime
3
- * stores pre-rendered HTML, per-locale `.md` mirrors, and `llms.txt`
4
- * here. Reads are on the public-content hot path; writes happen only
5
- * during publish / unpublish.
6
- *
7
- * CF adapter: Workers KV. Future: Redis, FS, S3-compatible store.
8
- *
9
- * Distinct from `DatabaseDriver` — KV is eventually-consistent across
10
- * regions (Workers KV) and tuned for high-fanout reads. The canonical
11
- * source of truth for entries lives in the DB; KV is a derivative
12
- * cache that the publish pipeline writes through.
13
- *
14
- * Renamed from `KvPort` per the clean-architecture naming convention.
15
- */
16
- export interface KvCache {
17
- get(key: string): Promise<string | null>;
18
- put(key: string, value: string, opts?: KvPutOptions): Promise<void>;
19
- delete(key: string): Promise<void>;
20
- /** List keys with a prefix. Used by sitemap / `llms.txt` aggregation
21
- * + cache invalidation paths. Cursor is opaque; consumers loop
22
- * until cursor is `null`. */
23
- list(prefix: string, cursor?: string | null): Promise<KvListResult>;
24
- }
25
- export interface KvPutOptions {
26
- /** Seconds until the entry expires. Adapters that don't support
27
- * TTL silently ignore. */
28
- readonly expirationTtl?: number;
29
- }
30
- export interface KvListResult {
31
- readonly keys: readonly string[];
32
- readonly cursor: string | null;
33
- }
34
- //# sourceMappingURL=KvCache.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"KvCache.d.ts","sourceRoot":"","sources":["../../../src/domain/port/KvCache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,OAAO;IACtB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC;;kCAE8B;IAC9B,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CACrE;AAED,MAAM,WAAW,YAAY;IAC3B;+BAC2B;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=KvCache.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"KvCache.js","sourceRoot":"","sources":["../../../src/domain/port/KvCache.ts"],"names":[],"mappings":""}
@@ -1,26 +0,0 @@
1
- import type { SiteConfig } from "@aotter/mantle-spec";
2
- import type { TemplateRegistry } from "../model/TemplateRegistry.js";
3
- /**
4
- * `PublishOrchestrator` — the publish-pipeline surface adapters call
5
- * after a successful `requestPublish` to materialize HTML / `.md` /
6
- * list pages / `llms.txt` into the `KvCache`.
7
- *
8
- * `TemplateRegistry` is consumer-supplied (`createCmsRuntime` accepts
9
- * it); rendering is idempotent — two invocations with the same entry
10
- * id are safe.
11
- *
12
- * The HTML implementation is in
13
- * `infrastructure/render/HtmlPublishOrchestrator`.
14
- */
15
- export interface PublishOrchestrator {
16
- publish(request: PublishEntryRequest): Promise<void>;
17
- unpublish(request: PublishEntryRequest): Promise<void>;
18
- /** Remove every public artifact affected by editable site settings. */
19
- invalidateAll(): Promise<void>;
20
- }
21
- export interface PublishEntryRequest {
22
- readonly entryId: string;
23
- readonly site: SiteConfig;
24
- readonly templates: TemplateRegistry;
25
- }
26
- //# sourceMappingURL=PublishOrchestrator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PublishOrchestrator.d.ts","sourceRoot":"","sources":["../../../src/domain/port/PublishOrchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAErE;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,SAAS,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,uEAAuE;IACvE,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;CACtC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=PublishOrchestrator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PublishOrchestrator.js","sourceRoot":"","sources":["../../../src/domain/port/PublishOrchestrator.ts"],"names":[],"mappings":""}
@@ -1,6 +0,0 @@
1
- export declare function absoluteUrl(origin: string, path: string): string;
2
- /** Append `.md` before any query string / hash. Used by the SEO
3
- * composer + sitemap to derive markdown-mirror URLs without
4
- * mangling query params. */
5
- export declare function appendMarkdownExt(absoluteOrPath: string): string;
6
- //# sourceMappingURL=AbsoluteUrl.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AbsoluteUrl.d.ts","sourceRoot":"","sources":["../../../src/domain/service/AbsoluteUrl.ts"],"names":[],"mappings":"AAcA,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMhE;AAED;;6BAE6B;AAC7B,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAIhE"}
@@ -1,33 +0,0 @@
1
- /**
2
- * Absolutize a path against a `SiteConfig.origin`. Single chokepoint
3
- * so trailing-slash handling is consistent across every URL the SDK
4
- * emits — sitemap, llms.txt mirrors, SEO canonical, hreflang siblings.
5
- *
6
- * Two divergent strip behaviors used to live across the codebase
7
- * (`/\/$/` vs `/\/+$/`); both flow through here now.
8
- *
9
- * Empty `origin` returns the path unchanged — useful for tests and
10
- * for templates that intentionally emit relative URLs. Already-
11
- * absolute `path` (http(s)://...) returns unchanged.
12
- */
13
- const TRAILING_SLASHES = /\/+$/;
14
- export function absoluteUrl(origin, path) {
15
- if (!origin)
16
- return path;
17
- if (path.startsWith("http://") || path.startsWith("https://"))
18
- return path;
19
- const cleanOrigin = origin.replace(TRAILING_SLASHES, "");
20
- if (!path)
21
- return cleanOrigin;
22
- return `${cleanOrigin}${path.startsWith("/") ? "" : "/"}${path}`;
23
- }
24
- /** Append `.md` before any query string / hash. Used by the SEO
25
- * composer + sitemap to derive markdown-mirror URLs without
26
- * mangling query params. */
27
- export function appendMarkdownExt(absoluteOrPath) {
28
- const match = /^([^?#]*)(.*)$/.exec(absoluteOrPath);
29
- if (!match)
30
- return `${absoluteOrPath}.md`;
31
- return `${match[1]}.md${match[2]}`;
32
- }
33
- //# sourceMappingURL=AbsoluteUrl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AbsoluteUrl.js","sourceRoot":"","sources":["../../../src/domain/service/AbsoluteUrl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEhC,MAAM,UAAU,WAAW,CAAC,MAAc,EAAE,IAAY;IACtD,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3E,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;IACzD,IAAI,CAAC,IAAI;QAAE,OAAO,WAAW,CAAC;IAC9B,OAAO,GAAG,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC;AACnE,CAAC;AAED;;6BAE6B;AAC7B,MAAM,UAAU,iBAAiB,CAAC,cAAsB;IACtD,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACpD,IAAI,CAAC,KAAK;QAAE,OAAO,GAAG,cAAc,KAAK,CAAC;IAC1C,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACrC,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function escapeHtml(value: string): string;
2
- //# sourceMappingURL=HtmlEscaping.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HtmlEscaping.d.ts","sourceRoot":"","sources":["../../../src/domain/service/HtmlEscaping.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOhD"}
@@ -1,9 +0,0 @@
1
- export function escapeHtml(value) {
2
- return value
3
- .replace(/&/g, "&amp;")
4
- .replace(/</g, "&lt;")
5
- .replace(/>/g, "&gt;")
6
- .replace(/"/g, "&quot;")
7
- .replace(/'/g, "&#39;");
8
- }
9
- //# sourceMappingURL=HtmlEscaping.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HtmlEscaping.js","sourceRoot":"","sources":["../../../src/domain/service/HtmlEscaping.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,OAAO,KAAK;SACT,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC5B,CAAC"}
@@ -1,36 +0,0 @@
1
- import type { Entry, SiteConfig } from "@aotter/mantle-spec";
2
- import type { TemplateRegistry } from "../model/TemplateRegistry.js";
3
- import type { SeoMeta } from "../model/SeoMeta.js";
4
- import type { MediaAsset } from "../port/MediaStorage.js";
5
- export interface RenderEntryArgs {
6
- readonly entry: Entry;
7
- readonly site: SiteConfig;
8
- readonly templates: TemplateRegistry;
9
- /** Defaults to `<!doctype html>`. Pipelines that want the
10
- * upper-case `<!DOCTYPE html>\n` shape pass it explicitly. */
11
- readonly doctype?: string;
12
- readonly mediaAssets?: ReadonlyMap<string, MediaAsset>;
13
- /** Optional pre-composed SEO/AEO block. Threaded into the
14
- * `EntryContext.seo` field so templates can emit `<SeoTags
15
- * seo={seo}/>` inside `<head>`. Renderers that skip composition
16
- * leave it undefined — opt-out templates keep working. */
17
- readonly seo?: SeoMeta;
18
- }
19
- /** Returns the full HTML doc (doctype + body) or `null` if no entry
20
- * template is registered for `entry.collection`. */
21
- export declare function renderEntryHtml(args: RenderEntryArgs): string | null;
22
- export interface RenderListArgs {
23
- readonly collection: string;
24
- readonly locale: string;
25
- readonly entries: ReadonlyArray<Entry>;
26
- readonly site: SiteConfig;
27
- readonly templates: TemplateRegistry;
28
- readonly doctype?: string;
29
- readonly mediaAssets?: ReadonlyMap<string, MediaAsset>;
30
- readonly seo?: SeoMeta;
31
- }
32
- /** Returns the full HTML doc or `null` if no list template is
33
- * registered for `collection`. */
34
- export declare function renderListHtml(args: RenderListArgs): string | null;
35
- export declare function renderTrackingTagsHtml(site: SiteConfig): string;
36
- //# sourceMappingURL=HtmlRenderer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HtmlRenderer.d.ts","sourceRoot":"","sources":["../../../src/domain/service/HtmlRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAGV,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAgB1D,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC;mEAC+D;IAC/D,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACvD;;;+DAG2D;IAC3D,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;qDACqD;AACrD,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAepE;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACvD,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;mCACmC;AACnC,wBAAgB,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI,CAelE;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAa/D"}
@@ -1,78 +0,0 @@
1
- /**
2
- * Pure render functions over the consumer-supplied template registry.
3
- * Used by:
4
- * - `HtmlPublishOrchestrator` (publish-time → write KV)
5
- * - request-time route handlers in adapters (live-render bypass,
6
- * preview surface)
7
- *
8
- * Both call sites previously inlined the template-lookup + doctype
9
- * concatenation. Extracting here keeps the contract single-sourced
10
- * — adding a doctype mode, an OG-meta wrapper, or a per-collection
11
- * pre/post hook is one edit. No I/O; no DB; no env access.
12
- */
13
- const DEFAULT_DOCTYPE = "<!doctype html>";
14
- /** Returns the full HTML doc (doctype + body) or `null` if no entry
15
- * template is registered for `entry.collection`. */
16
- export function renderEntryHtml(args) {
17
- const tpl = args.templates.getEntryTemplate(args.entry.collection);
18
- if (!tpl)
19
- return null;
20
- return injectTrackingTags((args.doctype ?? DEFAULT_DOCTYPE) +
21
- tpl({
22
- entry: args.entry,
23
- site: args.site,
24
- mediaAssets: args.mediaAssets,
25
- seo: args.seo,
26
- }), args.site);
27
- }
28
- /** Returns the full HTML doc or `null` if no list template is
29
- * registered for `collection`. */
30
- export function renderListHtml(args) {
31
- const tpl = args.templates.getListTemplate(args.collection);
32
- if (!tpl)
33
- return null;
34
- return injectTrackingTags((args.doctype ?? DEFAULT_DOCTYPE) +
35
- tpl({
36
- collection: args.collection,
37
- locale: args.locale,
38
- entries: args.entries,
39
- site: args.site,
40
- mediaAssets: args.mediaAssets,
41
- seo: args.seo,
42
- }), args.site);
43
- }
44
- export function renderTrackingTagsHtml(site) {
45
- const ga4Id = normalizeGa4MeasurementId(site.ga4MeasurementId);
46
- const pixelId = normalizeFacebookPixelId(site.facebookPixelId);
47
- const parts = [];
48
- if (ga4Id) {
49
- parts.push(`<script async src="https://www.googletagmanager.com/gtag/js?id=${ga4Id}"></script>`);
50
- parts.push(`<script>window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments);}gtag('js',new Date());gtag('config','${ga4Id}');</script>`);
51
- }
52
- if (pixelId) {
53
- parts.push(`<script>!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?n.callMethod.apply(n,arguments):n.queue.push(arguments);};if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s);}(window,document,'script','https://connect.facebook.net/en_US/fbevents.js');fbq('init','${pixelId}');fbq('track','PageView');</script>`);
54
- parts.push(`<noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=${pixelId}&ev=PageView&noscript=1"/></noscript>`);
55
- }
56
- return parts.length > 0 ? `\n${parts.join("\n")}\n` : "";
57
- }
58
- function injectTrackingTags(html, site) {
59
- const tags = renderTrackingTagsHtml(site);
60
- if (!tags)
61
- return html;
62
- const headClose = /<\/head>/i;
63
- if (headClose.test(html))
64
- return html.replace(headClose, `${tags}</head>`);
65
- const bodyOpen = /<body[^>]*>/i;
66
- if (bodyOpen.test(html))
67
- return html.replace(bodyOpen, (match) => `${match}${tags}`);
68
- return `${tags}${html}`;
69
- }
70
- function normalizeGa4MeasurementId(value) {
71
- const trimmed = value?.trim().toUpperCase() ?? "";
72
- return /^G-[A-Z0-9]{4,32}$/.test(trimmed) ? trimmed : null;
73
- }
74
- function normalizeFacebookPixelId(value) {
75
- const trimmed = value?.trim() ?? "";
76
- return /^[0-9]{5,32}$/.test(trimmed) ? trimmed : null;
77
- }
78
- //# sourceMappingURL=HtmlRenderer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HtmlRenderer.js","sourceRoot":"","sources":["../../../src/domain/service/HtmlRenderer.ts"],"names":[],"mappings":"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"}
@@ -1,48 +0,0 @@
1
- import type { Entry, SiteConfig } from "@aotter/mantle-spec";
2
- /**
3
- * Built-in markdown serializer. Fixed format, applied to every entry
4
- * whose Schema produces a `content` field. Intentionally not user-
5
- * customizable — agents that consume `.md` mirrors and `/llms.txt`
6
- * benefit from a predictable site-wide shape.
7
- *
8
- * ---
9
- * title: ...
10
- * description: ...
11
- * slug: ...
12
- * locale: ...
13
- * publishedAt: ...
14
- * ---
15
- *
16
- * # <title>
17
- *
18
- * > <description>
19
- *
20
- * <content>
21
- *
22
- * Entries without a `content` (or `body`) field skip the `.md`
23
- * mirror — see `getMarkdownBody` below for the dual-field rule.
24
- *
25
- * Pure transformation — no I/O. Lives in `domain/service/`.
26
- */
27
- /**
28
- * The canonical markdown source field. Spec-preferred name is
29
- * `content`; the reference starter (and likely consumers cribbing
30
- * from it) declares `body`. Both are markdown text under the hood;
31
- * accept either everywhere a markdown payload is read so consumers
32
- * don't have to choose. Single predicate so `serializeEntryAsMarkdown`,
33
- * `serializeLlmsTxt`, and the article-signal heuristic stay in sync.
34
- */
35
- export declare function getMarkdownBody(entry: Entry): string | null;
36
- export declare function hasMarkdownBody(entry: Entry): boolean;
37
- export declare function serializeEntryAsMarkdown(entry: Entry): string | null;
38
- /**
39
- * Per-locale `/llms.txt` index. One section per collection, one bullet
40
- * per entry. The shape follows the llms.txt convention (Howard, 2024-11)
41
- * so agent consumers can rely on a stable structure.
42
- */
43
- export declare function serializeLlmsTxt(args: {
44
- readonly site: SiteConfig;
45
- readonly locale: string;
46
- readonly entriesByCollection: ReadonlyMap<string, readonly Entry[]>;
47
- }): string;
48
- //# sourceMappingURL=MarkdownSerializer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MarkdownSerializer.d.ts","sourceRoot":"","sources":["../../../src/domain/service/MarkdownSerializer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAG7D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,CAK3D;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAErD;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,CAsBpE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IACrC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,mBAAmB,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC,CAAC;CACrE,GAAG,MAAM,CAsBT"}
@@ -1,109 +0,0 @@
1
- import { absoluteUrl, appendMarkdownExt } from "./AbsoluteUrl.js";
2
- /**
3
- * Built-in markdown serializer. Fixed format, applied to every entry
4
- * whose Schema produces a `content` field. Intentionally not user-
5
- * customizable — agents that consume `.md` mirrors and `/llms.txt`
6
- * benefit from a predictable site-wide shape.
7
- *
8
- * ---
9
- * title: ...
10
- * description: ...
11
- * slug: ...
12
- * locale: ...
13
- * publishedAt: ...
14
- * ---
15
- *
16
- * # <title>
17
- *
18
- * > <description>
19
- *
20
- * <content>
21
- *
22
- * Entries without a `content` (or `body`) field skip the `.md`
23
- * mirror — see `getMarkdownBody` below for the dual-field rule.
24
- *
25
- * Pure transformation — no I/O. Lives in `domain/service/`.
26
- */
27
- /**
28
- * The canonical markdown source field. Spec-preferred name is
29
- * `content`; the reference starter (and likely consumers cribbing
30
- * from it) declares `body`. Both are markdown text under the hood;
31
- * accept either everywhere a markdown payload is read so consumers
32
- * don't have to choose. Single predicate so `serializeEntryAsMarkdown`,
33
- * `serializeLlmsTxt`, and the article-signal heuristic stay in sync.
34
- */
35
- export function getMarkdownBody(entry) {
36
- const data = entry.data;
37
- if (typeof data["content"] === "string")
38
- return data["content"];
39
- if (typeof data["body"] === "string")
40
- return data["body"];
41
- return null;
42
- }
43
- export function hasMarkdownBody(entry) {
44
- return getMarkdownBody(entry) !== null;
45
- }
46
- export function serializeEntryAsMarkdown(entry) {
47
- const data = entry.data;
48
- const content = getMarkdownBody(entry);
49
- if (content == null)
50
- return null;
51
- const fm = [];
52
- for (const k of ["title", "description", "slug", "locale", "publishedAt"]) {
53
- const v = k === "locale" ? entry.locale : data[k];
54
- if (typeof v === "string" && v.length > 0)
55
- fm.push([k, v]);
56
- }
57
- const title = data["title"] ?? entry.id;
58
- const description = data["description"];
59
- let out = "---\n";
60
- for (const [k, v] of fm)
61
- out += `${k}: ${yamlScalar(v)}\n`;
62
- out += "---\n\n";
63
- out += `# ${title}\n\n`;
64
- if (description)
65
- out += `> ${description}\n\n`;
66
- out += content;
67
- if (!content.endsWith("\n"))
68
- out += "\n";
69
- return out;
70
- }
71
- /**
72
- * Per-locale `/llms.txt` index. One section per collection, one bullet
73
- * per entry. The shape follows the llms.txt convention (Howard, 2024-11)
74
- * so agent consumers can rely on a stable structure.
75
- */
76
- export function serializeLlmsTxt(args) {
77
- const { site, locale, entriesByCollection } = args;
78
- const urlLocale = locale.toLowerCase();
79
- let out = `# ${site.title}\n\n`;
80
- if (site.description)
81
- out += `> ${site.description}\n\n`;
82
- if (locale)
83
- out += `Locale: ${locale}\n\n`;
84
- for (const [collection, entries] of entriesByCollection) {
85
- if (entries.length === 0)
86
- continue;
87
- out += `## ${collection}\n\n`;
88
- for (const e of entries) {
89
- if (!hasMarkdownBody(e))
90
- continue;
91
- const data = e.data;
92
- const title = data["title"] ?? e.id;
93
- const slug = data["slug"] ?? e.id;
94
- const desc = data["description"] ?? "";
95
- const localePrefix = urlLocale ? `/${urlLocale}` : "";
96
- const url = appendMarkdownExt(absoluteUrl(site.origin, `${localePrefix}/${collection}/${slug}`));
97
- out += desc ? `- [${title}](${url}): ${desc}\n` : `- [${title}](${url})\n`;
98
- }
99
- out += "\n";
100
- }
101
- return out;
102
- }
103
- function yamlScalar(s) {
104
- if (/^[A-Za-z0-9._/-][\w. /:-]*$/.test(s) && !/^(true|false|null|yes|no|on|off)$/i.test(s)) {
105
- return s;
106
- }
107
- return JSON.stringify(s);
108
- }
109
- //# sourceMappingURL=MarkdownSerializer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MarkdownSerializer.js","sourceRoot":"","sources":["../../../src/domain/service/MarkdownSerializer.ts"],"names":[],"mappings":"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"}
@@ -1,31 +0,0 @@
1
- /**
2
- * `Schema.metadata.name` → MCP per-collection tool name suffix.
3
- * Lowercase + `kebab-` → `_snake`. Pure naming convention; the MCP
4
- * tool catalog factory and the boot collision check both reference
5
- * this so the rule lives in exactly one place.
6
- *
7
- * Lives in `domain/service/` (not `infrastructure/mcp/`) so the boot
8
- * use case can call it without violating the usecase→infrastructure
9
- * import rule.
10
- */
11
- export declare function mcpToolNameSegment(collection: string): string;
12
- /**
13
- * Built-in MCP tool names registered by the dispatcher regardless of
14
- * manifests. A Procedure exposed via `Trigger.source.kind: "mcp"`
15
- * (#281) MUST NOT mangle to any of these names — the dispatcher
16
- * routes by tool name and a collision would shadow the built-in.
17
- *
18
- * Mirror of the `name` fields in `McpToolCatalog.GENERIC_TOOLS` plus
19
- * the two media tool names. Lives here so the boot validator can
20
- * reference them without an infrastructure→usecase import.
21
- */
22
- export declare const RESERVED_MCP_GENERIC_TOOL_NAMES: ReadonlySet<string>;
23
- /**
24
- * Prefixes the catalog factory uses for Schema- / View-derived tools.
25
- * A Procedure tool name that starts with any of these would shadow
26
- * (or be shadowed by) a Schema's create/update tool or a View's
27
- * query tool, so boot rejects the manifest set with
28
- * `MCP_TOOL_NAME_COLLISION`.
29
- */
30
- export declare const RESERVED_MCP_TOOL_PREFIXES: readonly string[];
31
- //# sourceMappingURL=McpToolNaming.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"McpToolNaming.d.ts","sourceRoot":"","sources":["../../../src/domain/service/McpToolNaming.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,+BAA+B,EAAE,WAAW,CAAC,MAAM,CAS9D,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,EAAE,SAAS,MAAM,EAMvD,CAAC"}