@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,29 +1,8 @@
1
- import { type Diagnostic, type Manifest } from "@aotter/mantle-spec";
1
+ import { type Diagnostic } from "@aotter/mantle-spec";
2
+ import { type PreparedMantleRevision } from "../../domain/model/PreparedMantleRevision.js";
2
3
  import type { HandlerRegistry } from "../../domain/port/HandlerRegistry.js";
3
- /**
4
- * `ValidateBootUseCase` — Loop 3 of the SDK authoring contract (see
5
- * ADR-0007). Walks the parsed manifest set + in-memory handler
6
- * registry; refuses to proceed if any load-bearing invariant is violated. A
7
- * failure rejects `bootInit()` with `BootValidationError`; adapters must not
8
- * dispatch through an unbooted runtime. The conventional Cloudflare adapter
9
- * resets its rejected lazy-boot promise so transient infrastructure failures
10
- * can retry, while readiness/smoke requests surface deterministic authoring
11
- * failures before production traffic.
12
- *
13
- * v0.1.0 invariants:
14
- * - Every `Procedure.handler.ref` is in the supplied registry.
15
- * - Every `Procedure.handler.builtin.schema` resolves to a declared
16
- * Schema (`BUILTIN_HANDLER_SCHEMA_UNKNOWN`). Builtin op execution
17
- * itself ships in `InvokeBuiltinUseCase`.
18
- * - Every `Trigger.target.procedure` resolves to a manifest.
19
- * - Every `http` Trigger has a unique `(method, path)` pair and a
20
- * `/api/` prefix.
21
- * - Every `Trigger.source.kind: lifecycle` watches a declared Schema
22
- * (`LIFECYCLE_SCHEMA_UNKNOWN`). The hook runtime is the
23
- * `LifecycleHookingEntryRepository` decorator.
24
- * - Schema index declarations resolve to supported scalar fields.
25
- * - Locale + translates cross-Schema invariants (ADR-0010) hold.
26
- */
4
+ import type { MantleStorageAdapter } from "../../domain/port/MantleStorageAdapter.js";
5
+ import type { RuntimePlan } from "../../domain/service/RuntimePlanCompiler.js";
27
6
  export type ValidateBootResponse = {
28
7
  readonly ok: true;
29
8
  } | {
@@ -31,23 +10,25 @@ export type ValidateBootResponse = {
31
10
  readonly diagnostics: readonly Diagnostic[];
32
11
  };
33
12
  export interface ValidateBootRequest {
34
- readonly manifests: readonly Manifest[];
13
+ readonly plan: RuntimePlan;
35
14
  readonly registry: HandlerRegistry;
36
- /** Site config locales (ADR-0010). Empty/absent enables the
37
- * zero-locale-site path: any localized Schema fails boot with
38
- * `SCHEMA_LOCALIZED_REQUIRES_SITE_LOCALES`. The runtime's
39
- * bootInit reads this from `site_config` before validating. */
15
+ /** Selected adapter/module route prefixes checked during deployment readiness. */
16
+ readonly reservedHttpPathPrefixes?: readonly string[];
40
17
  readonly siteLocales?: readonly string[];
41
18
  }
19
+ export interface DeploymentPreparationOptions {
20
+ /** Registered handlers to validate. Omit when this embedding never dispatches Procedures. */
21
+ readonly handlerNames?: readonly string[];
22
+ readonly reservedHttpPathPrefixes?: readonly string[];
23
+ readonly siteLocales?: readonly string[];
24
+ }
25
+ export declare function prepareDeployment(plan: RuntimePlan, storage: MantleStorageAdapter, options?: DeploymentPreparationOptions): Promise<PreparedMantleRevision>;
26
+ export declare function assertDeploymentPlan(plan: RuntimePlan, options?: DeploymentPreparationOptions): void;
27
+ /** Deployment checks only; all pure graph rules belong to `linkManifestSet`. */
42
28
  export declare class ValidateBootUseCase {
43
29
  execute(request: ValidateBootRequest): ValidateBootResponse;
44
- /** Validate; on failure, throw `BootValidationError`. */
45
30
  assert(request: ValidateBootRequest): void;
46
31
  }
47
- /**
48
- * Single Error wrapping every boot diagnostic. The runtime throws this
49
- * during `bootInit`; adapters surface it in their init logs.
50
- */
51
32
  export declare class BootValidationError extends Error {
52
33
  readonly diagnostics: readonly Diagnostic[];
53
34
  constructor(diagnostics: readonly Diagnostic[]);
@@ -1 +1 @@
1
- {"version":3,"file":"ValidateBootUseCase.d.ts","sourceRoot":"","sources":["../../../src/usecase/boot/ValidateBootUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,QAAQ,EAId,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAO5E;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,oBAAoB,GAC5B;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;CAAE,GACrB;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAA;CAAE,CAAC;AAExE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC;;;oEAGgE;IAChE,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,OAAO,EAAE,mBAAmB,GAAG,oBAAoB;IAyK3D,yDAAyD;IACzD,MAAM,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;CAI3C;AA2ID;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;aAChB,WAAW,EAAE,SAAS,UAAU,EAAE;gBAAlC,WAAW,EAAE,SAAS,UAAU,EAAE;CAW/D"}
1
+ {"version":3,"file":"ValidateBootUseCase.d.ts","sourceRoot":"","sources":["../../../src/usecase/boot/ValidateBootUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,8CAA8C,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6CAA6C,CAAC;AAE/E,MAAM,MAAM,oBAAoB,GAC5B;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;CAAE,GACrB;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAA;CAAE,CAAC;AAExE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,kFAAkF;IAClF,QAAQ,CAAC,wBAAwB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtD,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,4BAA4B;IAC3C,6FAA6F;IAC7F,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,wBAAwB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtD,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,oBAAoB,EAC7B,OAAO,GAAE,4BAAiC,GACzC,OAAO,CAAC,sBAAsB,CAAC,CAQjC;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,WAAW,EACjB,OAAO,GAAE,4BAAiC,GACzC,IAAI,CAGN;AAED,gFAAgF;AAChF,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,OAAO,EAAE,mBAAmB,GAAG,oBAAoB;IAY3D,MAAM,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;CAI3C;AAuED,qBAAa,mBAAoB,SAAQ,KAAK;aAChB,WAAW,EAAE,SAAS,UAAU,EAAE;gBAAlC,WAAW,EAAE,SAAS,UAAU,EAAE;CAS/D"}
@@ -1,285 +1,110 @@
1
- import { bootDiagnostic, checkLocaleAndTranslates, ValidateManifestsUseCase, } from "@aotter/mantle-spec";
2
- import { partitionManifests } from "@aotter/mantle-spec/partition";
3
- import { mcpToolNameSegment, RESERVED_MCP_GENERIC_TOOL_NAMES, RESERVED_MCP_TOOL_PREFIXES, } from "../../domain/service/McpToolNaming.js";
1
+ import { bootDiagnostic, checkSiteLocales, } from "@aotter/mantle-spec";
2
+ import { sealPreparedMantleRevision, } from "../../domain/model/PreparedMantleRevision.js";
3
+ export async function prepareDeployment(plan, storage, options = {}) {
4
+ const diagnostics = deploymentDiagnostics(plan, {
5
+ ...options,
6
+ nativeViewDialects: storage.nativeViewDialects ?? [],
7
+ });
8
+ if (diagnostics.length > 0)
9
+ throw new BootValidationError(diagnostics);
10
+ const prepared = await storage.prepare(plan);
11
+ return sealPreparedMantleRevision(plan, prepared, options.handlerNames);
12
+ }
13
+ export function assertDeploymentPlan(plan, options = {}) {
14
+ const diagnostics = deploymentDiagnostics(plan, options);
15
+ if (diagnostics.length > 0)
16
+ throw new BootValidationError(diagnostics);
17
+ }
18
+ /** Deployment checks only; all pure graph rules belong to `linkManifestSet`. */
4
19
  export class ValidateBootUseCase {
5
20
  execute(request) {
6
- const partitioned = partitionManifests([...request.manifests]);
7
- const proceduresByName = new Map();
8
- for (const p of partitioned.procedures)
9
- proceduresByName.set(p.metadata.name, p);
10
- const schemasByName = new Map();
11
- for (const s of partitioned.schemas)
12
- schemasByName.set(s.metadata.name, s);
13
- const diagnostics = [];
14
- const procedureCandidates = [...proceduresByName.keys()];
15
- const schemaCandidates = [...schemasByName.keys()];
16
- const handlerCandidates = request.registry.list();
17
- for (const diagnostic of ValidateManifestsUseCase.run({
18
- manifests: request.manifests,
19
- }).diagnostics) {
20
- if (isSchemaIndexDiagnostic(diagnostic)) {
21
- diagnostics.push({ ...diagnostic, phase: "boot" });
22
- }
23
- }
24
- // 1. Procedure handler refs + builtin schema cross-resolution.
25
- for (const p of partitioned.procedures) {
26
- const h = p.spec.handler;
27
- if (h.kind === "ref" && !request.registry.has(h.ref)) {
28
- diagnostics.push(bootDiagnostic({
29
- code: "HANDLER_NOT_REGISTERED",
30
- severity: "error",
31
- path: `manifest:Procedure/${p.metadata.name}#/spec/handler/ref`,
32
- value: h.ref,
33
- expected: `a function passed through the handlers option under key '${h.ref}'`,
34
- candidates: handlerCandidates,
35
- message: `Procedure '${p.metadata.name}' declares handler.ref '${h.ref}' but no handler is registered for that key. Wire it in your project's handlers map: { '${h.ref}': ... }.`,
36
- }));
37
- }
38
- if (h.kind === "builtin" && !schemasByName.has(h.schema)) {
39
- diagnostics.push(bootDiagnostic({
40
- code: "BUILTIN_HANDLER_SCHEMA_UNKNOWN",
41
- severity: "error",
42
- path: `manifest:Procedure/${p.metadata.name}#/spec/handler/schema`,
43
- value: h.schema,
44
- expected: "name of a declared Schema",
45
- candidates: schemaCandidates,
46
- message: `Procedure '${p.metadata.name}' (handler.kind: builtin) targets unknown Schema '${h.schema}'.`,
47
- }));
48
- }
49
- }
50
- // Guard Procedures are ordinary ref handlers, but the guard graph
51
- // is intentionally one level deep. Validate it again at boot so
52
- // programmatically-built manifests cannot bypass the spec CLI.
53
- for (const target of [...partitioned.procedures, ...partitioned.views]) {
54
- const guardName = target.spec.requires?.guard?.procedure;
55
- if (!guardName)
56
- continue;
57
- const path = `manifest:${target.kind}/${target.metadata.name}#/spec/requires/guard/procedure`;
58
- const guard = proceduresByName.get(guardName);
59
- if (!guard) {
60
- diagnostics.push(bootDiagnostic({
61
- code: "GUARD_PROCEDURE_UNKNOWN",
62
- severity: "error",
63
- path,
64
- value: guardName,
65
- expected: "name of a declared Procedure",
66
- candidates: procedureCandidates,
67
- message: `${target.kind} '${target.metadata.name}' references unknown guard Procedure '${guardName}'.`,
68
- }));
69
- continue;
70
- }
71
- if (target.kind === "Procedure" && target.metadata.name === guardName) {
72
- diagnostics.push(bootDiagnostic({
73
- code: "GUARD_SELF_REFERENCE",
74
- severity: "error",
75
- path,
76
- value: guardName,
77
- expected: "a different, unguarded Procedure",
78
- message: `Procedure '${target.metadata.name}' cannot guard itself.`,
79
- }));
80
- continue;
81
- }
82
- if (guard.spec.handler.kind !== "ref") {
83
- diagnostics.push(bootDiagnostic({
84
- code: "GUARD_PROCEDURE_BUILTIN",
85
- severity: "error",
86
- path,
87
- value: guardName,
88
- expected: "a Procedure with handler.kind: ref",
89
- message: `${target.kind} '${target.metadata.name}' uses '${guardName}' as a guard, but guard Procedures cannot use builtin handlers.`,
90
- }));
91
- }
92
- if (guard.spec.requires?.guard) {
93
- diagnostics.push(bootDiagnostic({
94
- code: "GUARD_CHAIN_NOT_ALLOWED",
95
- severity: "error",
96
- path,
97
- value: guardName,
98
- expected: "an unguarded Procedure",
99
- message: `${target.kind} '${target.metadata.name}' uses '${guardName}' as a guard, but guard chains are not allowed.`,
100
- }));
101
- }
102
- }
103
- // 2. Trigger.target.procedure resolves.
104
- for (const t of partitioned.triggers) {
105
- if (!proceduresByName.has(t.spec.target.procedure)) {
106
- diagnostics.push(bootDiagnostic({
107
- code: "TRIGGER_TARGET_PROCEDURE_UNKNOWN",
108
- severity: "error",
109
- path: `manifest:Trigger/${t.metadata.name}#/spec/target/procedure`,
110
- value: t.spec.target.procedure,
111
- expected: "name of a declared Procedure",
112
- candidates: procedureCandidates,
113
- message: `Trigger '${t.metadata.name}' targets unknown Procedure '${t.spec.target.procedure}'.`,
114
- }));
115
- }
116
- if (t.spec.source.kind === "lifecycle") {
117
- if (!schemasByName.has(t.spec.source.schema)) {
118
- diagnostics.push(bootDiagnostic({
119
- code: "LIFECYCLE_SCHEMA_UNKNOWN",
120
- severity: "error",
121
- path: `manifest:Trigger/${t.metadata.name}#/spec/source/schema`,
122
- value: t.spec.source.schema,
123
- expected: "name of a declared Schema",
124
- candidates: schemaCandidates,
125
- message: `Trigger '${t.metadata.name}' watches unknown Schema '${t.spec.source.schema}'.`,
126
- }));
127
- }
128
- }
129
- }
130
- // 3. HTTP trigger uniqueness + /api/ prefix.
131
- diagnostics.push(...checkHttpRouteCollisions(partitioned.triggers));
132
- diagnostics.push(...checkHttpRoutePrefix(partitioned.triggers));
133
- // 4. MCP tool-name collision (POC PR #48): per-collection tool
134
- // emission lowercases + kebab→snake the Schema name; two
135
- // Schemas that mangle to the same suffix would silently
136
- // overwrite each other in `tools/list`.
137
- diagnostics.push(...checkMcpToolNameCollisions(partitioned.schemas, partitioned.procedures));
138
- // 5. Locale + translates cross-Schema invariants.
139
- diagnostics.push(...checkLocaleAndTranslates({
140
- schemas: partitioned.schemas,
141
- phase: "boot",
21
+ const diagnostics = deploymentDiagnostics(request.plan, {
22
+ handlerNames: request.registry.list(),
23
+ reservedHttpPathPrefixes: request.reservedHttpPathPrefixes,
142
24
  siteLocales: request.siteLocales,
143
- }));
144
- if (diagnostics.length === 0)
145
- return { ok: true };
146
- return { ok: false, diagnostics };
25
+ });
26
+ return diagnostics.length === 0
27
+ ? { ok: true }
28
+ : { ok: false, diagnostics };
147
29
  }
148
- /** Validate; on failure, throw `BootValidationError`. */
149
30
  assert(request) {
150
31
  const result = this.execute(request);
151
32
  if (!result.ok)
152
33
  throw new BootValidationError(result.diagnostics);
153
34
  }
154
35
  }
155
- function isSchemaIndexDiagnostic(diagnostic) {
156
- return diagnostic.code === "SCHEMA_INDEX_INVALID" ||
157
- diagnostic.code === "SCHEMA_INDEX_FIELD_UNKNOWN" ||
158
- diagnostic.code === "UNIQUE_INDEX_FIELD_UNKNOWN";
159
- }
160
- function checkHttpRouteCollisions(triggers) {
161
- const seen = new Map();
162
- const out = [];
163
- for (const t of triggers) {
164
- if (t.spec.source.kind !== "http")
165
- continue;
166
- const key = `${t.spec.source.method} ${t.spec.source.path}`;
167
- const prior = seen.get(key);
168
- if (prior) {
169
- out.push(bootDiagnostic({
170
- code: "TRIGGER_PATH_COLLISION",
36
+ function deploymentDiagnostics(plan, options) {
37
+ const diagnostics = [];
38
+ if (options.handlerNames) {
39
+ const candidates = [...new Set(options.handlerNames)].sort();
40
+ const handlerNames = new Set(candidates);
41
+ for (const procedure of Object.values(plan.procedures)) {
42
+ const handler = procedure.manifest.spec.handler;
43
+ if (handler.kind !== "ref" || handlerNames.has(handler.ref))
44
+ continue;
45
+ const path = `manifest:Procedure/${procedure.name}#/spec/handler/ref`;
46
+ diagnostics.push(bootDiagnostic({
47
+ code: "HANDLER_NOT_REGISTERED",
171
48
  severity: "error",
172
- path: `manifest:Trigger/${t.metadata.name}#/spec/source`,
173
- value: key,
174
- expected: `unique (method, path) across http Triggers (also declared by '${prior}')`,
175
- message: `Trigger '${t.metadata.name}' shares route ${key} with Trigger '${prior}'.`,
49
+ path,
50
+ value: handler.ref,
51
+ expected: `a function passed through the handlers option under key '${handler.ref}'`,
52
+ candidates,
53
+ message: `Procedure '${procedure.name}' declares handler.ref '${handler.ref}' but no handler is registered for that key.`,
176
54
  }));
177
55
  }
178
- else {
179
- seen.set(key, t.metadata.name);
180
- }
181
56
  }
182
- return out;
183
- }
184
- function checkHttpRoutePrefix(triggers) {
185
- const out = [];
186
- for (const t of triggers) {
187
- if (t.spec.source.kind !== "http")
57
+ const prefixes = [...new Set(options.reservedHttpPathPrefixes ?? [])].sort();
58
+ for (const route of plan.httpRoutes) {
59
+ const prefix = prefixes.find((candidate) => candidate.length > 0 && hasPathPrefix(route.path, candidate));
60
+ if (!prefix)
188
61
  continue;
189
- const path = t.spec.source.path;
190
- if (!path.startsWith("/api/")) {
191
- out.push(bootDiagnostic({
192
- code: "TRIGGER_PATH_INVALID",
193
- severity: "error",
194
- path: `manifest:Trigger/${t.metadata.name}#/spec/source/path`,
195
- value: path,
196
- expected: "path starting with '/api/'",
197
- message: `Trigger '${t.metadata.name}' has path '${path}' — http Trigger ` +
198
- `paths MUST start with '/api/' so adapters can route public ` +
199
- `pages and Procedure endpoints without ambiguity.`,
200
- }));
201
- }
62
+ const path = `manifest:Trigger/${route.trigger}#/spec/source/path`;
63
+ diagnostics.push(bootDiagnostic({
64
+ code: "TRIGGER_PATH_INVALID",
65
+ severity: "error",
66
+ path,
67
+ value: route.path,
68
+ expected: `path outside selected reserved prefix '${prefix}'`,
69
+ message: `Trigger '${route.trigger}' has path '${route.path}', which is reserved under '${prefix}'.`,
70
+ }));
202
71
  }
203
- return out;
204
- }
205
- function checkMcpToolNameCollisions(schemas, procedures) {
206
- const seen = new Map();
207
- const out = [];
208
- for (const s of schemas) {
209
- const segment = mcpToolNameSegment(s.metadata.name);
210
- const prior = seen.get(segment);
211
- if (prior && !sameOwner(prior, "Schema", s.metadata.name)) {
212
- out.push(bootDiagnostic({
213
- code: "MCP_TOOL_NAME_COLLISION",
214
- severity: "error",
215
- path: `manifest:Schema/${s.metadata.name}#/metadata/name`,
216
- value: segment,
217
- expected: `Schema name unique after kebab→snake mangling (collides with '${prior.name}')`,
218
- message: `Schema '${s.metadata.name}' mangles to MCP tool suffix '${segment}', ` +
219
- `which already comes from Schema '${prior.name}'. Rename one of the Schemas ` +
220
- `(e.g. avoid mixing '${prior.name}' and '${s.metadata.name}') so per-collection ` +
221
- `MCP tool emission stays unambiguous.`,
222
- }));
223
- }
224
- else if (!prior) {
225
- seen.set(segment, { kind: "Schema", name: s.metadata.name });
226
- }
72
+ if (options.siteLocales) {
73
+ diagnostics.push(...checkSiteLocales({
74
+ schemas: Object.values(plan.schemas).map((schema) => schema.manifest),
75
+ phase: "boot",
76
+ siteLocales: options.siteLocales,
77
+ }));
227
78
  }
228
- // Procedure tool names (#281) share the catalog namespace. Reject
229
- // anything that collides with a generic tool, a reserved
230
- // content/record authoring or query_view_ prefix, a schema-mangled
231
- // segment, or another procedure. We don't gate by whether the
232
- // Procedure has an `mcp` Trigger today — names must stay portable
233
- // so an adopter can add the Trigger later without renaming.
234
- for (const p of procedures) {
235
- const name = mcpToolNameSegment(p.metadata.name);
236
- let conflict = null;
237
- if (RESERVED_MCP_GENERIC_TOOL_NAMES.has(name)) {
238
- conflict = `built-in MCP tool '${name}'`;
239
- }
240
- else if (RESERVED_MCP_TOOL_PREFIXES.some((pfx) => name.startsWith(pfx))) {
241
- const prefix = RESERVED_MCP_TOOL_PREFIXES.find((pfx) => name.startsWith(pfx));
242
- conflict = `reserved tool-name prefix '${prefix}' (used by Schema / View tools)`;
243
- }
244
- else {
245
- const prior = seen.get(name);
246
- if (prior && !sameOwner(prior, "Procedure", p.metadata.name)) {
247
- conflict = `${prior.kind} '${prior.name}'`;
248
- }
249
- }
250
- if (conflict) {
251
- out.push(bootDiagnostic({
252
- code: "MCP_TOOL_NAME_COLLISION",
79
+ if (options.nativeViewDialects) {
80
+ const supported = new Set(options.nativeViewDialects);
81
+ for (const view of Object.values(plan.views)) {
82
+ if (view.query.kind !== "native" || supported.has(view.query.dialect))
83
+ continue;
84
+ diagnostics.push(bootDiagnostic({
85
+ code: "VIEW_DIALECT_UNSUPPORTED",
253
86
  severity: "error",
254
- path: `manifest:Procedure/${p.metadata.name}#/metadata/name`,
255
- value: name,
256
- expected: `Procedure name unique after kebab→snake mangling (collides with ${conflict})`,
257
- message: `Procedure '${p.metadata.name}' mangles to MCP tool name '${name}', ` +
258
- `which collides with ${conflict}. Rename the Procedure so its MCP tool ` +
259
- `name does not shadow the existing tool surface.`,
87
+ path: `manifest:View/${view.name}#/spec/sql`,
88
+ value: view.query.dialect,
89
+ expected: supported.size > 0
90
+ ? `one of: ${[...supported].sort().join(", ")}`
91
+ : "a declarative View",
92
+ message: `Storage adapter does not support native View dialect '${view.query.dialect}'.`,
260
93
  }));
261
- continue;
262
94
  }
263
- seen.set(name, { kind: "Procedure", name: p.metadata.name });
264
95
  }
265
- return out;
96
+ return diagnostics;
266
97
  }
267
- function sameOwner(prior, candidateKind, candidateName) {
268
- return prior.kind === candidateKind && prior.name === candidateName;
98
+ function hasPathPrefix(path, prefix) {
99
+ return path === prefix || path.startsWith(`${prefix}/`) || path.startsWith(`${prefix}{`);
269
100
  }
270
- /**
271
- * Single Error wrapping every boot diagnostic. The runtime throws this
272
- * during `bootInit`; adapters surface it in their init logs.
273
- */
274
101
  export class BootValidationError extends Error {
275
102
  diagnostics;
276
103
  constructor(diagnostics) {
277
104
  const summary = diagnostics
278
- .map((d) => ` - ${d.code} (phase: ${d.phase}) at ${d.path}: ${d.message}`)
105
+ .map((diagnostic) => ` - ${diagnostic.code} (phase: ${diagnostic.phase}) at ${diagnostic.path}: ${diagnostic.message}`)
279
106
  .join("\n");
280
- super(`Runtime boot validation failed (${diagnostics.length} error(s)):\n${summary}\n\n` +
281
- `See ADR-0007 (boot-time fail-fast) for context. Diagnostics also ` +
282
- `available on the .diagnostics field of this error for programmatic handling.`);
107
+ super(`Runtime boot validation failed (${diagnostics.length} error(s)):\n${summary}`);
283
108
  this.diagnostics = diagnostics;
284
109
  this.name = "BootValidationError";
285
110
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ValidateBootUseCase.js","sourceRoot":"","sources":["../../../src/usecase/boot/ValidateBootUseCase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ValidateBootUseCase.js","sourceRoot":"","sources":["../../../src/usecase/boot/ValidateBootUseCase.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export { ValidateBootUseCase, BootValidationError, type ValidateBootRequest, type ValidateBootResponse, } from "./ValidateBootUseCase.js";
1
+ export { ValidateBootUseCase, BootValidationError, prepareDeployment, type DeploymentPreparationOptions, type ValidateBootRequest, type ValidateBootResponse, } from "./ValidateBootUseCase.js";
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/usecase/boot/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,GAC1B,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/usecase/boot/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,4BAA4B,EACjC,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,GAC1B,MAAM,0BAA0B,CAAC"}
@@ -1,2 +1,2 @@
1
- export { ValidateBootUseCase, BootValidationError, } from "./ValidateBootUseCase.js";
1
+ export { ValidateBootUseCase, BootValidationError, prepareDeployment, } from "./ValidateBootUseCase.js";
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/usecase/boot/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,mBAAmB,GAGpB,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/usecase/boot/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,GAIlB,MAAM,0BAA0B,CAAC"}
@@ -3,9 +3,8 @@ import type { EntryRow } from "../../domain/model/EntryRow.js";
3
3
  import type { Clock } from "../../domain/port/Clock.js";
4
4
  import type { EntryRepository } from "../../domain/port/EntryRepository.js";
5
5
  import type { ArchiveRequest } from "../dto/content/index.js";
6
- import { type ContentPublishEffects } from "./ContentPublishEffects.js";
7
6
  /**
8
- * `ArchiveUseCase` — flip an entry to `'archived'`. Per the simple-
7
+ * `ArchiveUseCase` — flip an entry to `'archived'`. Per the publishing-
9
8
  * lifecycle state machine, draft and published rows can both be
10
9
  * archived; archived rows go back to draft via `Unpublish`.
11
10
  */
@@ -13,8 +12,7 @@ export declare class ArchiveUseCase {
13
12
  private readonly entries;
14
13
  private readonly schemas;
15
14
  private readonly clock;
16
- private readonly effects?;
17
- constructor(entries: EntryRepository, schemas: ReadonlyMap<string, SchemaManifest>, clock: Clock, effects?: ContentPublishEffects | undefined);
15
+ constructor(entries: EntryRepository, schemas: ReadonlyMap<string, SchemaManifest>, clock: Clock);
18
16
  execute(request: ArchiveRequest): Promise<EntryRow>;
19
17
  }
20
18
  //# sourceMappingURL=ArchiveUseCase.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArchiveUseCase.d.ts","sourceRoot":"","sources":["../../../src/usecase/content/ArchiveUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,4BAA4B,CAAC;AAOpC;;;;GAIG;AACH,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAHR,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,EAC5C,KAAK,EAAE,KAAK,EACZ,OAAO,CAAC,EAAE,qBAAqB,YAAA;IAG5C,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;CA4B1D"}
1
+ {"version":3,"file":"ArchiveUseCase.d.ts","sourceRoot":"","sources":["../../../src/usecase/content/ArchiveUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAO9D;;;;GAIG;AACH,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAFL,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,EAC5C,KAAK,EAAE,KAAK;IAGzB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;CA2B1D"}
@@ -1,8 +1,7 @@
1
1
  import { canTransition, DiagnosticError, } from "@aotter/mantle-spec";
2
- import { unpublishCache, } from "./ContentPublishEffects.js";
3
2
  import { illegalTransitionDiagnostic, notFoundDiagnostic, withConflictDiagnostic, } from "./diagnostics.js";
4
3
  /**
5
- * `ArchiveUseCase` — flip an entry to `'archived'`. Per the simple-
4
+ * `ArchiveUseCase` — flip an entry to `'archived'`. Per the publishing-
6
5
  * lifecycle state machine, draft and published rows can both be
7
6
  * archived; archived rows go back to draft via `Unpublish`.
8
7
  */
@@ -10,12 +9,10 @@ export class ArchiveUseCase {
10
9
  entries;
11
10
  schemas;
12
11
  clock;
13
- effects;
14
- constructor(entries, schemas, clock, effects) {
12
+ constructor(entries, schemas, clock) {
15
13
  this.entries = entries;
16
14
  this.schemas = schemas;
17
15
  this.clock = clock;
18
- this.effects = effects;
19
16
  }
20
17
  async execute(request) {
21
18
  const opPath = `usecase/Archive/${request.id}`;
@@ -38,7 +35,6 @@ export class ArchiveUseCase {
38
35
  hookContext: request.ctx,
39
36
  originalInput: request.originalInput,
40
37
  }));
41
- await unpublishCache(this.effects, archived.id);
42
38
  return archived;
43
39
  }
44
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ArchiveUseCase.js","sourceRoot":"","sources":["../../../src/usecase/content/ArchiveUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,eAAe,GAEhB,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EACL,cAAc,GAEf,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,2BAA2B,EAC3B,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAE1B;;;;GAIG;AACH,MAAM,OAAO,cAAc;IAEN;IACA;IACA;IACA;IAJnB,YACmB,OAAwB,EACxB,OAA4C,EAC5C,KAAY,EACZ,OAA+B;QAH/B,YAAO,GAAP,OAAO,CAAiB;QACxB,YAAO,GAAP,OAAO,CAAqC;QAC5C,UAAK,GAAL,KAAK,CAAO;QACZ,YAAO,GAAP,OAAO,CAAwB;IAC/C,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,OAAuB;QACnC,MAAM,MAAM,GAAG,mBAAmB,OAAO,CAAC,EAAE,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,eAAe,CAAC,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QACjF,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACrD,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,eAAe,CACvB,2BAA2B,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CACjE,CAAC;QACJ,CAAC;QACD,gEAAgE;QAChE,kDAAkD;QAClD,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,MAAM,EAAE,GAAG,EAAE,CACzD,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;YAC5B,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,EAAE,EAAE,UAAU;YACd,eAAe,EAAE,QAAQ,CAAC,OAAO;YACjC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;YACrB,WAAW,EAAE,OAAO,CAAC,GAAG;YACxB,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC,CAAC,CACH,CAAC;QACF,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QAChD,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
1
+ {"version":3,"file":"ArchiveUseCase.js","sourceRoot":"","sources":["../../../src/usecase/content/ArchiveUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,eAAe,GAEhB,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EACL,2BAA2B,EAC3B,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAE1B;;;;GAIG;AACH,MAAM,OAAO,cAAc;IAEN;IACA;IACA;IAHnB,YACmB,OAAwB,EACxB,OAA4C,EAC5C,KAAY;QAFZ,YAAO,GAAP,OAAO,CAAiB;QACxB,YAAO,GAAP,OAAO,CAAqC;QAC5C,UAAK,GAAL,KAAK,CAAO;IAC5B,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,OAAuB;QACnC,MAAM,MAAM,GAAG,mBAAmB,OAAO,CAAC,EAAE,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,eAAe,CAAC,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QACjF,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACrD,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,eAAe,CACvB,2BAA2B,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CACjE,CAAC;QACJ,CAAC;QACD,gEAAgE;QAChE,kDAAkD;QAClD,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,MAAM,EAAE,GAAG,EAAE,CACzD,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;YAC5B,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,EAAE,EAAE,UAAU;YACd,eAAe,EAAE,QAAQ,CAAC,OAAO;YACjC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;YACrB,WAAW,EAAE,OAAO,CAAC,GAAG;YACxB,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC,CAAC,CACH,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
@@ -1,13 +1,13 @@
1
- import { type SchemaManifest } from "@aotter/mantle-spec";
1
+ import { EntryDataValidator, type SchemaManifest } from "@aotter/mantle-spec";
2
2
  import type { EntryRow } from "../../domain/model/EntryRow.js";
3
3
  import type { Clock } from "../../domain/port/Clock.js";
4
4
  import type { EntryRepository } from "../../domain/port/EntryRepository.js";
5
5
  import type { IdGenerator } from "../../domain/port/IdGenerator.js";
6
- import type { SiteConfigRepository } from "../../domain/port/SiteConfigRepository.js";
6
+ import type { LocalePolicyReader } from "../../domain/port/SiteConfigRepository.js";
7
7
  import type { CreateDraftRequest } from "../dto/content/index.js";
8
8
  /**
9
9
  * `CreateDraftUseCase` — create a draft for content lifecycles, or a
10
- * live row for `lifecycle: none` operational records.
10
+ * live row for `lifecycle: operational` records.
11
11
  */
12
12
  export declare class CreateDraftUseCase {
13
13
  private readonly entries;
@@ -15,7 +15,8 @@ export declare class CreateDraftUseCase {
15
15
  private readonly clock;
16
16
  private readonly idgen;
17
17
  private readonly siteConfig?;
18
- constructor(entries: EntryRepository, schemas: ReadonlyMap<string, SchemaManifest>, clock: Clock, idgen: IdGenerator, siteConfig?: SiteConfigRepository | undefined);
18
+ private readonly validator;
19
+ constructor(entries: EntryRepository, schemas: ReadonlyMap<string, SchemaManifest>, clock: Clock, idgen: IdGenerator, siteConfig?: LocalePolicyReader | undefined, validator?: EntryDataValidator);
19
20
  execute(request: CreateDraftRequest): Promise<EntryRow>;
20
21
  }
21
22
  //# sourceMappingURL=CreateDraftUseCase.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CreateDraftUseCase.d.ts","sourceRoot":"","sources":["../../../src/usecase/content/CreateDraftUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEtF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAQlE;;;GAGG;AACH,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAJX,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,EAC5C,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,WAAW,EAClB,UAAU,CAAC,EAAE,oBAAoB,YAAA;IAG9C,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC;CAqC9D"}
1
+ {"version":3,"file":"CreateDraftUseCase.d.ts","sourceRoot":"","sources":["../../../src/usecase/content/CreateDraftUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,EAElB,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAEpF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAQlE;;;GAGG;AACH,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBALT,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,EAC5C,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,WAAW,EAClB,UAAU,CAAC,EAAE,kBAAkB,YAAA,EAC/B,SAAS,qBAA2B;IAGjD,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC;CAsC9D"}