@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.
- package/README.md +37 -4
- package/dist/MantleRuntime.d.ts +96 -0
- package/dist/MantleRuntime.d.ts.map +1 -0
- package/dist/MantleRuntime.js +197 -0
- package/dist/MantleRuntime.js.map +1 -0
- package/dist/domain/model/EntryRow.d.ts +2 -2
- package/dist/domain/model/HandlerContext.d.ts +3 -4
- package/dist/domain/model/HandlerContext.d.ts.map +1 -1
- package/dist/domain/model/PreparedMantleRevision.d.ts +14 -0
- package/dist/domain/model/PreparedMantleRevision.d.ts.map +1 -0
- package/dist/domain/model/PreparedMantleRevision.js +8 -0
- package/dist/domain/model/PreparedMantleRevision.js.map +1 -0
- package/dist/domain/model/index.d.ts +1 -2
- package/dist/domain/model/index.d.ts.map +1 -1
- package/dist/domain/model/index.js +0 -1
- package/dist/domain/model/index.js.map +1 -1
- package/dist/domain/port/Clock.d.ts +1 -2
- package/dist/domain/port/Clock.d.ts.map +1 -1
- package/dist/domain/port/Clock.js.map +1 -1
- package/dist/domain/port/DatabaseDriver.d.ts +13 -21
- package/dist/domain/port/DatabaseDriver.d.ts.map +1 -1
- package/dist/domain/port/EntryReader.d.ts +1 -1
- package/dist/domain/port/EntryReader.d.ts.map +1 -1
- package/dist/domain/port/EntryRepository.d.ts +19 -4
- package/dist/domain/port/EntryRepository.d.ts.map +1 -1
- package/dist/domain/port/HandlerRegistry.d.ts +1 -1
- package/dist/domain/port/IdGenerator.d.ts +3 -4
- package/dist/domain/port/IdGenerator.d.ts.map +1 -1
- package/dist/domain/port/IdGenerator.js.map +1 -1
- package/dist/domain/port/MantleStorageAdapter.d.ts +23 -0
- package/dist/domain/port/MantleStorageAdapter.d.ts.map +1 -0
- package/dist/domain/port/MantleStorageAdapter.js +2 -0
- package/dist/domain/port/MantleStorageAdapter.js.map +1 -0
- package/dist/domain/port/SiteConfigRepository.d.ts +12 -10
- package/dist/domain/port/SiteConfigRepository.d.ts.map +1 -1
- package/dist/domain/port/ViewQueryExecutor.d.ts +29 -0
- package/dist/domain/port/ViewQueryExecutor.d.ts.map +1 -0
- package/dist/domain/port/ViewQueryExecutor.js +2 -0
- package/dist/domain/port/ViewQueryExecutor.js.map +1 -0
- package/dist/domain/port/index.d.ts +5 -4
- package/dist/domain/port/index.d.ts.map +1 -1
- package/dist/domain/port/index.js.map +1 -1
- package/dist/domain/service/LocaleNegotiator.d.ts.map +1 -1
- package/dist/domain/service/LocaleNegotiator.js +2 -2
- package/dist/domain/service/LocaleNegotiator.js.map +1 -1
- package/dist/domain/service/RuntimePlanCompiler.d.ts +89 -0
- package/dist/domain/service/RuntimePlanCompiler.d.ts.map +1 -0
- package/dist/domain/service/RuntimePlanCompiler.js +230 -0
- package/dist/domain/service/RuntimePlanCompiler.js.map +1 -0
- package/dist/domain/service/TriggerIndex.d.ts +5 -3
- package/dist/domain/service/TriggerIndex.d.ts.map +1 -1
- package/dist/domain/service/TriggerIndex.js +16 -4
- package/dist/domain/service/TriggerIndex.js.map +1 -1
- package/dist/domain/service/ViewParamCoercer.d.ts +1 -1
- package/dist/domain/service/ViewParamCoercer.js +1 -1
- package/dist/domain/service/index.d.ts +1 -10
- package/dist/domain/service/index.d.ts.map +1 -1
- package/dist/domain/service/index.js +1 -10
- package/dist/domain/service/index.js.map +1 -1
- package/dist/domain/service/io/EntryDeleteGuard.js +1 -1
- package/dist/domain/service/io/EntryDeleteGuard.js.map +1 -1
- package/dist/domain/service/io/EntryWriteGuard.d.ts +4 -3
- package/dist/domain/service/io/EntryWriteGuard.d.ts.map +1 -1
- package/dist/domain/service/io/EntryWriteGuard.js +3 -6
- package/dist/domain/service/io/EntryWriteGuard.js.map +1 -1
- package/dist/domain/service/io/JoinedEntryReader.d.ts +2 -3
- package/dist/domain/service/io/JoinedEntryReader.d.ts.map +1 -1
- package/dist/domain/service/io/JoinedEntryReader.js +2 -3
- package/dist/domain/service/io/JoinedEntryReader.js.map +1 -1
- package/dist/index.d.ts +17 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -12
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/boot/SqliteMigrationRunner.d.ts +10 -0
- package/dist/infrastructure/boot/SqliteMigrationRunner.d.ts.map +1 -0
- package/dist/infrastructure/boot/SqliteMigrationRunner.js +41 -0
- package/dist/infrastructure/boot/SqliteMigrationRunner.js.map +1 -0
- package/dist/infrastructure/boot/bootState.d.ts +9 -0
- package/dist/infrastructure/boot/bootState.d.ts.map +1 -0
- package/dist/infrastructure/boot/bootState.js +32 -0
- package/dist/infrastructure/boot/bootState.js.map +1 -0
- package/dist/infrastructure/boot/canonicalMigrations.d.ts +2 -0
- package/dist/infrastructure/boot/canonicalMigrations.d.ts.map +1 -1
- package/dist/infrastructure/boot/canonicalMigrations.js +181 -88
- package/dist/infrastructure/boot/canonicalMigrations.js.map +1 -1
- package/dist/infrastructure/boot/index.d.ts +3 -1
- package/dist/infrastructure/boot/index.d.ts.map +1 -1
- package/dist/infrastructure/boot/index.js +3 -1
- package/dist/infrastructure/boot/index.js.map +1 -1
- package/dist/infrastructure/http/createMantleRequestHandler.d.ts +12 -0
- package/dist/infrastructure/http/createMantleRequestHandler.d.ts.map +1 -0
- package/dist/infrastructure/http/createMantleRequestHandler.js +127 -0
- package/dist/infrastructure/http/createMantleRequestHandler.js.map +1 -0
- package/dist/infrastructure/index.d.ts +0 -1
- package/dist/infrastructure/index.d.ts.map +1 -1
- package/dist/infrastructure/index.js +0 -1
- package/dist/infrastructure/index.js.map +1 -1
- package/dist/infrastructure/mcp/McpJsonRpcDispatcher.d.ts +18 -23
- package/dist/infrastructure/mcp/McpJsonRpcDispatcher.d.ts.map +1 -1
- package/dist/infrastructure/mcp/McpJsonRpcDispatcher.js +64 -39
- package/dist/infrastructure/mcp/McpJsonRpcDispatcher.js.map +1 -1
- package/dist/infrastructure/mcp/McpToolCatalog.d.ts.map +1 -1
- package/dist/infrastructure/mcp/McpToolCatalog.js +84 -19
- package/dist/infrastructure/mcp/McpToolCatalog.js.map +1 -1
- package/dist/infrastructure/mcp/index.d.ts +1 -1
- package/dist/infrastructure/mcp/index.d.ts.map +1 -1
- package/dist/infrastructure/mcp/index.js.map +1 -1
- package/dist/infrastructure/persistence/DatabaseEntryRepository.d.ts +4 -8
- package/dist/infrastructure/persistence/DatabaseEntryRepository.d.ts.map +1 -1
- package/dist/infrastructure/persistence/DatabaseEntryRepository.js +80 -35
- package/dist/infrastructure/persistence/DatabaseEntryRepository.js.map +1 -1
- package/dist/infrastructure/persistence/DatabaseSiteConfigRepository.d.ts.map +1 -1
- package/dist/infrastructure/persistence/DatabaseSiteConfigRepository.js +39 -31
- package/dist/infrastructure/persistence/DatabaseSiteConfigRepository.js.map +1 -1
- package/dist/infrastructure/persistence/Pagination.d.ts +5 -0
- package/dist/infrastructure/persistence/Pagination.d.ts.map +1 -1
- package/dist/infrastructure/persistence/Pagination.js +49 -0
- package/dist/infrastructure/persistence/Pagination.js.map +1 -1
- package/dist/infrastructure/storage/SqliteMantleStorageAdapter.d.ts +22 -0
- package/dist/infrastructure/storage/SqliteMantleStorageAdapter.d.ts.map +1 -0
- package/dist/infrastructure/storage/SqliteMantleStorageAdapter.js +86 -0
- package/dist/infrastructure/storage/SqliteMantleStorageAdapter.js.map +1 -0
- package/dist/{domain/service/ViewSqlCompiler.d.ts → infrastructure/storage/SqliteViewCompiler.d.ts} +12 -10
- package/dist/infrastructure/storage/SqliteViewCompiler.d.ts.map +1 -0
- package/dist/infrastructure/storage/SqliteViewCompiler.js +307 -0
- package/dist/infrastructure/storage/SqliteViewCompiler.js.map +1 -0
- package/dist/infrastructure/testing/IndexCoverageHarness.d.ts +2 -2
- package/dist/infrastructure/testing/IndexCoverageHarness.d.ts.map +1 -1
- package/dist/infrastructure/testing/IndexCoverageHarness.js +10 -9
- package/dist/infrastructure/testing/IndexCoverageHarness.js.map +1 -1
- package/dist/usecase/boot/ValidateBootUseCase.d.ts +16 -35
- package/dist/usecase/boot/ValidateBootUseCase.d.ts.map +1 -1
- package/dist/usecase/boot/ValidateBootUseCase.js +79 -254
- package/dist/usecase/boot/ValidateBootUseCase.js.map +1 -1
- package/dist/usecase/boot/index.d.ts +1 -1
- package/dist/usecase/boot/index.d.ts.map +1 -1
- package/dist/usecase/boot/index.js +1 -1
- package/dist/usecase/boot/index.js.map +1 -1
- package/dist/usecase/content/ArchiveUseCase.d.ts +2 -4
- package/dist/usecase/content/ArchiveUseCase.d.ts.map +1 -1
- package/dist/usecase/content/ArchiveUseCase.js +2 -6
- package/dist/usecase/content/ArchiveUseCase.js.map +1 -1
- package/dist/usecase/content/CreateDraftUseCase.d.ts +5 -4
- package/dist/usecase/content/CreateDraftUseCase.d.ts.map +1 -1
- package/dist/usecase/content/CreateDraftUseCase.js +10 -7
- package/dist/usecase/content/CreateDraftUseCase.js.map +1 -1
- package/dist/usecase/content/DeleteEntryUseCase.d.ts +3 -5
- package/dist/usecase/content/DeleteEntryUseCase.d.ts.map +1 -1
- package/dist/usecase/content/DeleteEntryUseCase.js +3 -5
- package/dist/usecase/content/DeleteEntryUseCase.js.map +1 -1
- package/dist/usecase/content/ListEntriesUseCase.d.ts.map +1 -1
- package/dist/usecase/content/ListEntriesUseCase.js +30 -3
- package/dist/usecase/content/ListEntriesUseCase.js.map +1 -1
- package/dist/usecase/content/RequestPublishUseCase.d.ts +6 -15
- package/dist/usecase/content/RequestPublishUseCase.d.ts.map +1 -1
- package/dist/usecase/content/RequestPublishUseCase.js +7 -26
- package/dist/usecase/content/RequestPublishUseCase.js.map +1 -1
- package/dist/usecase/content/UnpublishUseCase.d.ts +1 -3
- package/dist/usecase/content/UnpublishUseCase.d.ts.map +1 -1
- package/dist/usecase/content/UnpublishUseCase.js +1 -5
- package/dist/usecase/content/UnpublishUseCase.js.map +1 -1
- package/dist/usecase/content/UpdateDraftUseCase.d.ts +4 -3
- package/dist/usecase/content/UpdateDraftUseCase.d.ts.map +1 -1
- package/dist/usecase/content/UpdateDraftUseCase.js +9 -6
- package/dist/usecase/content/UpdateDraftUseCase.js.map +1 -1
- package/dist/usecase/content/diagnostics.d.ts +1 -0
- package/dist/usecase/content/diagnostics.d.ts.map +1 -1
- package/dist/usecase/content/diagnostics.js +10 -0
- package/dist/usecase/content/diagnostics.js.map +1 -1
- package/dist/usecase/dto/content/index.d.ts +10 -1
- package/dist/usecase/dto/content/index.d.ts.map +1 -1
- package/dist/usecase/dto/index.d.ts +0 -1
- package/dist/usecase/dto/index.d.ts.map +1 -1
- package/dist/usecase/dto/index.js +0 -1
- package/dist/usecase/dto/index.js.map +1 -1
- package/dist/usecase/dto/view/ExecuteViewRequest.d.ts +2 -2
- package/dist/usecase/dto/view/ExecuteViewRequest.d.ts.map +1 -1
- package/dist/usecase/index.d.ts +0 -1
- package/dist/usecase/index.d.ts.map +1 -1
- package/dist/usecase/index.js +0 -1
- package/dist/usecase/index.js.map +1 -1
- package/dist/usecase/media/diagnostics.js +1 -1
- package/dist/usecase/procedure/InvokeBuiltinUseCase.d.ts +5 -4
- package/dist/usecase/procedure/InvokeBuiltinUseCase.d.ts.map +1 -1
- package/dist/usecase/procedure/InvokeBuiltinUseCase.js +8 -4
- package/dist/usecase/procedure/InvokeBuiltinUseCase.js.map +1 -1
- package/dist/usecase/site/UpdateSiteSettingsUseCase.d.ts +4 -5
- package/dist/usecase/site/UpdateSiteSettingsUseCase.d.ts.map +1 -1
- package/dist/usecase/site/UpdateSiteSettingsUseCase.js +36 -6
- package/dist/usecase/site/UpdateSiteSettingsUseCase.js.map +1 -1
- package/dist/usecase/view/ExecuteViewUseCase.d.ts +8 -16
- package/dist/usecase/view/ExecuteViewUseCase.d.ts.map +1 -1
- package/dist/usecase/view/ExecuteViewUseCase.js +24 -94
- package/dist/usecase/view/ExecuteViewUseCase.js.map +1 -1
- package/dist/usecase/view/index.d.ts +2 -1
- package/dist/usecase/view/index.d.ts.map +1 -1
- package/dist/usecase/view/index.js.map +1 -1
- package/package.json +4 -4
- package/dist/domain/model/SeoMeta.d.ts +0 -47
- package/dist/domain/model/SeoMeta.d.ts.map +0 -1
- package/dist/domain/model/SeoMeta.js +0 -2
- package/dist/domain/model/SeoMeta.js.map +0 -1
- package/dist/domain/model/TemplateRegistry.d.ts +0 -50
- package/dist/domain/model/TemplateRegistry.d.ts.map +0 -1
- package/dist/domain/model/TemplateRegistry.js +0 -17
- package/dist/domain/model/TemplateRegistry.js.map +0 -1
- package/dist/domain/port/AssetServer.d.ts +0 -21
- package/dist/domain/port/AssetServer.d.ts.map +0 -1
- package/dist/domain/port/AssetServer.js +0 -2
- package/dist/domain/port/AssetServer.js.map +0 -1
- package/dist/domain/port/KvCache.d.ts +0 -34
- package/dist/domain/port/KvCache.d.ts.map +0 -1
- package/dist/domain/port/KvCache.js +0 -2
- package/dist/domain/port/KvCache.js.map +0 -1
- package/dist/domain/port/PublishOrchestrator.d.ts +0 -26
- package/dist/domain/port/PublishOrchestrator.d.ts.map +0 -1
- package/dist/domain/port/PublishOrchestrator.js +0 -2
- package/dist/domain/port/PublishOrchestrator.js.map +0 -1
- package/dist/domain/service/AbsoluteUrl.d.ts +0 -6
- package/dist/domain/service/AbsoluteUrl.d.ts.map +0 -1
- package/dist/domain/service/AbsoluteUrl.js +0 -33
- package/dist/domain/service/AbsoluteUrl.js.map +0 -1
- package/dist/domain/service/HtmlEscaping.d.ts +0 -2
- package/dist/domain/service/HtmlEscaping.d.ts.map +0 -1
- package/dist/domain/service/HtmlEscaping.js +0 -9
- package/dist/domain/service/HtmlEscaping.js.map +0 -1
- package/dist/domain/service/HtmlRenderer.d.ts +0 -36
- package/dist/domain/service/HtmlRenderer.d.ts.map +0 -1
- package/dist/domain/service/HtmlRenderer.js +0 -78
- package/dist/domain/service/HtmlRenderer.js.map +0 -1
- package/dist/domain/service/MarkdownSerializer.d.ts +0 -48
- package/dist/domain/service/MarkdownSerializer.d.ts.map +0 -1
- package/dist/domain/service/MarkdownSerializer.js +0 -109
- package/dist/domain/service/MarkdownSerializer.js.map +0 -1
- package/dist/domain/service/McpToolNaming.d.ts +0 -31
- package/dist/domain/service/McpToolNaming.d.ts.map +0 -1
- package/dist/domain/service/McpToolNaming.js +0 -48
- package/dist/domain/service/McpToolNaming.js.map +0 -1
- package/dist/domain/service/PreviewBanner.d.ts +0 -10
- package/dist/domain/service/PreviewBanner.d.ts.map +0 -1
- package/dist/domain/service/PreviewBanner.js +0 -30
- package/dist/domain/service/PreviewBanner.js.map +0 -1
- package/dist/domain/service/PublicPathResolver.d.ts +0 -41
- package/dist/domain/service/PublicPathResolver.d.ts.map +0 -1
- package/dist/domain/service/PublicPathResolver.js +0 -24
- package/dist/domain/service/PublicPathResolver.js.map +0 -1
- package/dist/domain/service/PublishKeys.d.ts +0 -42
- package/dist/domain/service/PublishKeys.d.ts.map +0 -1
- package/dist/domain/service/PublishKeys.js +0 -71
- package/dist/domain/service/PublishKeys.js.map +0 -1
- package/dist/domain/service/SeoMetaComposer.d.ts +0 -47
- package/dist/domain/service/SeoMetaComposer.d.ts.map +0 -1
- package/dist/domain/service/SeoMetaComposer.js +0 -164
- package/dist/domain/service/SeoMetaComposer.js.map +0 -1
- package/dist/domain/service/SitemapSerializer.d.ts +0 -19
- package/dist/domain/service/SitemapSerializer.d.ts.map +0 -1
- package/dist/domain/service/SitemapSerializer.js +0 -27
- package/dist/domain/service/SitemapSerializer.js.map +0 -1
- package/dist/domain/service/ViewSqlCompiler.d.ts.map +0 -1
- package/dist/domain/service/ViewSqlCompiler.js +0 -193
- package/dist/domain/service/ViewSqlCompiler.js.map +0 -1
- package/dist/domain/service/io/MediaAssetReferences.d.ts +0 -13
- package/dist/domain/service/io/MediaAssetReferences.d.ts.map +0 -1
- package/dist/domain/service/io/MediaAssetReferences.js +0 -48
- package/dist/domain/service/io/MediaAssetReferences.js.map +0 -1
- package/dist/infrastructure/render/HtmlPublishOrchestrator.d.ts +0 -38
- package/dist/infrastructure/render/HtmlPublishOrchestrator.d.ts.map +0 -1
- package/dist/infrastructure/render/HtmlPublishOrchestrator.js +0 -129
- package/dist/infrastructure/render/HtmlPublishOrchestrator.js.map +0 -1
- package/dist/infrastructure/render/index.d.ts +0 -2
- package/dist/infrastructure/render/index.d.ts.map +0 -1
- package/dist/infrastructure/render/index.js +0 -2
- package/dist/infrastructure/render/index.js.map +0 -1
- package/dist/runtime.d.ts +0 -150
- package/dist/runtime.d.ts.map +0 -1
- package/dist/runtime.js +0 -181
- package/dist/runtime.js.map +0 -1
- package/dist/usecase/content/ContentPublishEffects.d.ts +0 -11
- package/dist/usecase/content/ContentPublishEffects.d.ts.map +0 -1
- package/dist/usecase/content/ContentPublishEffects.js +0 -21
- package/dist/usecase/content/ContentPublishEffects.js.map +0 -1
- package/dist/usecase/dto/render/ComposeEntrySeoMetaRequest.d.ts +0 -14
- package/dist/usecase/dto/render/ComposeEntrySeoMetaRequest.d.ts.map +0 -1
- package/dist/usecase/dto/render/ComposeEntrySeoMetaRequest.js +0 -2
- package/dist/usecase/dto/render/ComposeEntrySeoMetaRequest.js.map +0 -1
- package/dist/usecase/dto/render/ComposeLlmsTxtRequest.d.ts +0 -8
- package/dist/usecase/dto/render/ComposeLlmsTxtRequest.d.ts.map +0 -1
- package/dist/usecase/dto/render/ComposeLlmsTxtRequest.js +0 -2
- package/dist/usecase/dto/render/ComposeLlmsTxtRequest.js.map +0 -1
- package/dist/usecase/dto/render/ComposeSitemapRequest.d.ts +0 -11
- package/dist/usecase/dto/render/ComposeSitemapRequest.d.ts.map +0 -1
- package/dist/usecase/dto/render/ComposeSitemapRequest.js +0 -2
- package/dist/usecase/dto/render/ComposeSitemapRequest.js.map +0 -1
- package/dist/usecase/dto/render/PreviewEntryRequest.d.ts +0 -13
- package/dist/usecase/dto/render/PreviewEntryRequest.d.ts.map +0 -1
- package/dist/usecase/dto/render/PreviewEntryRequest.js +0 -2
- package/dist/usecase/dto/render/PreviewEntryRequest.js.map +0 -1
- package/dist/usecase/dto/render/RenderEntryLiveRequest.d.ts +0 -14
- package/dist/usecase/dto/render/RenderEntryLiveRequest.d.ts.map +0 -1
- package/dist/usecase/dto/render/RenderEntryLiveRequest.js +0 -2
- package/dist/usecase/dto/render/RenderEntryLiveRequest.js.map +0 -1
- package/dist/usecase/dto/render/RenderListLiveRequest.d.ts +0 -11
- package/dist/usecase/dto/render/RenderListLiveRequest.d.ts.map +0 -1
- package/dist/usecase/dto/render/RenderListLiveRequest.js +0 -2
- package/dist/usecase/dto/render/RenderListLiveRequest.js.map +0 -1
- package/dist/usecase/dto/render/index.d.ts +0 -7
- package/dist/usecase/dto/render/index.d.ts.map +0 -1
- package/dist/usecase/dto/render/index.js +0 -7
- package/dist/usecase/dto/render/index.js.map +0 -1
- package/dist/usecase/render/ComposeEntrySeoMetaUseCase.d.ts +0 -28
- package/dist/usecase/render/ComposeEntrySeoMetaUseCase.d.ts.map +0 -1
- package/dist/usecase/render/ComposeEntrySeoMetaUseCase.js +0 -59
- package/dist/usecase/render/ComposeEntrySeoMetaUseCase.js.map +0 -1
- package/dist/usecase/render/ComposeLlmsTxtUseCase.d.ts +0 -19
- package/dist/usecase/render/ComposeLlmsTxtUseCase.d.ts.map +0 -1
- package/dist/usecase/render/ComposeLlmsTxtUseCase.js +0 -39
- package/dist/usecase/render/ComposeLlmsTxtUseCase.js.map +0 -1
- package/dist/usecase/render/ComposeSitemapUseCase.d.ts +0 -15
- package/dist/usecase/render/ComposeSitemapUseCase.d.ts.map +0 -1
- package/dist/usecase/render/ComposeSitemapUseCase.js +0 -28
- package/dist/usecase/render/ComposeSitemapUseCase.js.map +0 -1
- package/dist/usecase/render/PreviewEntryUseCase.d.ts +0 -28
- package/dist/usecase/render/PreviewEntryUseCase.d.ts.map +0 -1
- package/dist/usecase/render/PreviewEntryUseCase.js +0 -72
- package/dist/usecase/render/PreviewEntryUseCase.js.map +0 -1
- package/dist/usecase/render/RenderEntryLiveUseCase.d.ts +0 -37
- package/dist/usecase/render/RenderEntryLiveUseCase.d.ts.map +0 -1
- package/dist/usecase/render/RenderEntryLiveUseCase.js +0 -63
- package/dist/usecase/render/RenderEntryLiveUseCase.js.map +0 -1
- package/dist/usecase/render/RenderListLiveUseCase.d.ts +0 -25
- package/dist/usecase/render/RenderListLiveUseCase.d.ts.map +0 -1
- package/dist/usecase/render/RenderListLiveUseCase.js +0 -45
- package/dist/usecase/render/RenderListLiveUseCase.js.map +0 -1
- package/dist/usecase/render/index.d.ts +0 -7
- package/dist/usecase/render/index.d.ts.map +0 -1
- package/dist/usecase/render/index.js +0 -7
- package/dist/usecase/render/index.js.map +0 -1
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
import { DiagnosticError, isParamRef, runtimeDiagnostic, schemaIndexedFieldSql, } from "@aotter/mantle-spec";
|
|
2
|
-
import { clampPage, clampShow } from "./Pagination.js";
|
|
3
|
-
// alias → SQL column. Aliases mirror RESERVED_ENTRY_COLUMNS from
|
|
4
|
-
// spec; SQL column shape (snake_case) is local to the storage layout.
|
|
5
|
-
// The compile-time check below ensures the alias set stays in sync —
|
|
6
|
-
// adding to spec without updating here is a type error.
|
|
7
|
-
const RESERVED_COLUMN = {
|
|
8
|
-
id: "id",
|
|
9
|
-
status: "status",
|
|
10
|
-
version: "version",
|
|
11
|
-
createdAt: "created_at",
|
|
12
|
-
updatedAt: "updated_at",
|
|
13
|
-
authorId: "author_id",
|
|
14
|
-
};
|
|
15
|
-
const _aliasCheck = RESERVED_COLUMN;
|
|
16
|
-
void _aliasCheck;
|
|
17
|
-
const DEFAULT_PROJECTION = Object.entries(RESERVED_COLUMN)
|
|
18
|
-
.map(([alias, col]) => (alias === col ? col : `${col} AS ${alias}`))
|
|
19
|
-
.join(", ");
|
|
20
|
-
const SQL_COMPARISON_OP = {
|
|
21
|
-
eq: "=",
|
|
22
|
-
gt: ">",
|
|
23
|
-
gte: ">=",
|
|
24
|
-
lt: "<",
|
|
25
|
-
lte: "<=",
|
|
26
|
-
};
|
|
27
|
-
export function compileView(view, options = {}, schema) {
|
|
28
|
-
if (schema && schema.metadata.name !== view.spec.from) {
|
|
29
|
-
throw new DiagnosticError(runtimeDiagnostic({
|
|
30
|
-
code: "INTERNAL_ERROR",
|
|
31
|
-
severity: "error",
|
|
32
|
-
path: "compileView/schema",
|
|
33
|
-
value: schema.metadata.name,
|
|
34
|
-
expected: `Schema '${view.spec.from}' referenced by View.spec.from`,
|
|
35
|
-
message: `View '${view.metadata.name}' cannot compile against Schema '${schema.metadata.name}'.`,
|
|
36
|
-
}));
|
|
37
|
-
}
|
|
38
|
-
const sqlParams = [view.spec.from];
|
|
39
|
-
const selectExpr = buildSelect(view.spec.fields, schema);
|
|
40
|
-
const whereParts = ["collection = ?"];
|
|
41
|
-
if (view.spec.filter) {
|
|
42
|
-
const compiled = compileFilter(view.spec.filter, options.params ?? {}, schema);
|
|
43
|
-
if (compiled !== null) {
|
|
44
|
-
whereParts.push(`(${compiled.sql})`);
|
|
45
|
-
sqlParams.push(...compiled.params);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
const where = `WHERE ${whereParts.join(" AND ")}`;
|
|
49
|
-
const orderBy = buildOrderBy(view.spec.orderBy, schema);
|
|
50
|
-
const effectiveShow = clampShow(options.show, view.spec.limit);
|
|
51
|
-
const effectivePage = clampPage(options.page);
|
|
52
|
-
// Cap the offset so a huge `?page=` can't render in exponential
|
|
53
|
-
// notation (`5e+21`) or exceed SQLite's INT64 range — either makes
|
|
54
|
-
// D1 reject the literal and surfaces as a 500 instead of an empty
|
|
55
|
-
// page. MAX_SAFE_INTEGER (~9e15) stringifies as plain digits and is
|
|
56
|
-
// well under INT64 max; any page past the data just returns no rows.
|
|
57
|
-
const offset = Math.min((effectivePage - 1) * effectiveShow, Number.MAX_SAFE_INTEGER);
|
|
58
|
-
const sql = `SELECT ${selectExpr} FROM entries ${where}${orderBy} LIMIT ${effectiveShow} OFFSET ${offset}`;
|
|
59
|
-
return { sql, params: sqlParams, effectivePage, effectiveShow };
|
|
60
|
-
}
|
|
61
|
-
function buildSelect(fields, schema) {
|
|
62
|
-
if (!fields || fields.length === 0)
|
|
63
|
-
return DEFAULT_PROJECTION;
|
|
64
|
-
return fields.map((field) => fieldExpr(field, schema)).join(", ");
|
|
65
|
-
}
|
|
66
|
-
function fieldExpr(field, schema) {
|
|
67
|
-
const reserved = RESERVED_COLUMN[field];
|
|
68
|
-
const expression = fieldRefExpr(field, schema);
|
|
69
|
-
if (reserved === field)
|
|
70
|
-
return expression;
|
|
71
|
-
return `${expression} AS ${reserved ? field : quoteIdent(field)}`;
|
|
72
|
-
}
|
|
73
|
-
function fieldRefExpr(field, schema) {
|
|
74
|
-
const reserved = RESERVED_COLUMN[field];
|
|
75
|
-
if (reserved)
|
|
76
|
-
return reserved;
|
|
77
|
-
const indexed = schema ? schemaIndexedFieldSql(schema, field) : null;
|
|
78
|
-
if (indexed)
|
|
79
|
-
return indexed;
|
|
80
|
-
return `json_extract(data, ${quotedJsonPath(field)})`;
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Returns `null` when the node has no constraint to emit: an `eq`
|
|
84
|
-
* whose `{ $param }` ref is unresolved, or an AND/OR whose children
|
|
85
|
-
* all dropped. v0.1.0 parser enforces required-only param refs so
|
|
86
|
-
* the drop path is dead today; kept so v0.1.x "optional param ref"
|
|
87
|
-
* promotion is a parser-only change.
|
|
88
|
-
*
|
|
89
|
-
* Each node returns its own `{ sql, params }` (vs. pushing into a
|
|
90
|
-
* shared array) so a dropped sub-tree can never leave orphan params
|
|
91
|
-
* bound to the parent's `?` placeholders.
|
|
92
|
-
*/
|
|
93
|
-
function compileFilter(node, paramValues, schema) {
|
|
94
|
-
const comparison = getFilterComparison(node);
|
|
95
|
-
if (comparison) {
|
|
96
|
-
const value = comparison.node.value;
|
|
97
|
-
let bound;
|
|
98
|
-
if (isParamRef(value)) {
|
|
99
|
-
const resolved = paramValues[value.$param];
|
|
100
|
-
if (resolved === undefined)
|
|
101
|
-
return null;
|
|
102
|
-
bound = resolved;
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
bound = value;
|
|
106
|
-
}
|
|
107
|
-
return {
|
|
108
|
-
sql: `${fieldRefExpr(comparison.node.field, schema)} ${SQL_COMPARISON_OP[comparison.op]} ?`,
|
|
109
|
-
params: [bound],
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
const op = "and" in node ? "AND" : "OR";
|
|
113
|
-
const children = "and" in node ? node.and : "or" in node ? node.or : [];
|
|
114
|
-
const compiled = children
|
|
115
|
-
.map((c) => compileFilter(c, paramValues, schema))
|
|
116
|
-
.filter((c) => c !== null);
|
|
117
|
-
if (compiled.length === 0)
|
|
118
|
-
return null;
|
|
119
|
-
return {
|
|
120
|
-
sql: compiled.map((c) => `(${c.sql})`).join(` ${op} `),
|
|
121
|
-
params: compiled.flatMap((c) => c.params),
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
function getFilterComparison(node) {
|
|
125
|
-
if ("eq" in node)
|
|
126
|
-
return { op: "eq", node: node.eq };
|
|
127
|
-
if ("gt" in node)
|
|
128
|
-
return { op: "gt", node: node.gt };
|
|
129
|
-
if ("gte" in node)
|
|
130
|
-
return { op: "gte", node: node.gte };
|
|
131
|
-
if ("lt" in node)
|
|
132
|
-
return { op: "lt", node: node.lt };
|
|
133
|
-
if ("lte" in node)
|
|
134
|
-
return { op: "lte", node: node.lte };
|
|
135
|
-
return null;
|
|
136
|
-
}
|
|
137
|
-
function buildOrderBy(orderBy, schema) {
|
|
138
|
-
if (!orderBy || orderBy.length === 0)
|
|
139
|
-
return "";
|
|
140
|
-
const parts = orderBy.map((o) => {
|
|
141
|
-
// Closed-set map, never interpolate the raw value: `direction` is
|
|
142
|
-
// only a compile-time "asc"|"desc" type, but manifests are parsed
|
|
143
|
-
// from YAML, so an out-of-enum string (e.g. `DESC LIMIT 0 --`)
|
|
144
|
-
// could otherwise reach the SQL string verbatim.
|
|
145
|
-
const dir = o.direction === "desc" ? "DESC" : "ASC";
|
|
146
|
-
return `${fieldRefExpr(o.field, schema)} ${dir}`;
|
|
147
|
-
});
|
|
148
|
-
return ` ORDER BY ${parts.join(", ")}`;
|
|
149
|
-
}
|
|
150
|
-
// Schema JSON property keys can be arbitrary strings per RFC 8259,
|
|
151
|
-
// but SQLite's JSON1 path syntax (`$."key"`) has no documented way
|
|
152
|
-
// to escape an inner `"` or `\` inside a quoted key — doubled-quote
|
|
153
|
-
// escaping is the SQLite identifier convention, NOT a JSON-path
|
|
154
|
-
// convention. So we always quote the path/alias (admitting hyphens,
|
|
155
|
-
// spaces, etc.) but refuse `"`, `\`, and `\0` in field names —
|
|
156
|
-
// those break either the JSON-path resolution or the SQL string
|
|
157
|
-
// literal. Real Schema authors don't use those characters in keys;
|
|
158
|
-
// rejecting them keeps the path always-resolvable.
|
|
159
|
-
const FORBIDDEN_FIELD_CHARS = /["\\\0]/;
|
|
160
|
-
function assertFieldNameSafe(name, callsite) {
|
|
161
|
-
if (!FORBIDDEN_FIELD_CHARS.test(name))
|
|
162
|
-
return;
|
|
163
|
-
throw new DiagnosticError(runtimeDiagnostic({
|
|
164
|
-
code: "INTERNAL_ERROR",
|
|
165
|
-
severity: "error",
|
|
166
|
-
path: `compileView/${callsite}`,
|
|
167
|
-
value: name,
|
|
168
|
-
expected: 'field name without `"`, `\\`, or NUL',
|
|
169
|
-
message: `field name '${name}' contains an unrepresentable character (\", \\, or NUL); Schema validation should have caught this.`,
|
|
170
|
-
}));
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* Emit `'$."<field>"'` — a SQL string literal containing a SQLite
|
|
174
|
-
* JSON path. Doubles single quotes for the surrounding SQL literal
|
|
175
|
-
* (SQLite literal escape). Field name itself is guaranteed free of
|
|
176
|
-
* `"` / `\` / NUL by `assertFieldNameSafe`, so the inner double-
|
|
177
|
-
* quoted key needs no further escape.
|
|
178
|
-
*/
|
|
179
|
-
function quotedJsonPath(field) {
|
|
180
|
-
assertFieldNameSafe(field, "quotedJsonPath");
|
|
181
|
-
// Only `'` needs escaping for the surrounding SQL literal; field
|
|
182
|
-
// is guaranteed free of `"` / `\` / NUL.
|
|
183
|
-
return `'$."${field.replace(/'/g, "''")}"'`;
|
|
184
|
-
}
|
|
185
|
-
/**
|
|
186
|
-
* SQLite quoted-identifier alias (`"hero-image"`). Used as the result
|
|
187
|
-
* column name so callers read the field back under its declared key.
|
|
188
|
-
*/
|
|
189
|
-
function quoteIdent(name) {
|
|
190
|
-
assertFieldNameSafe(name, "quoteIdent");
|
|
191
|
-
return `"${name}"`;
|
|
192
|
-
}
|
|
193
|
-
//# sourceMappingURL=ViewSqlCompiler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ViewSqlCompiler.js","sourceRoot":"","sources":["../../../src/domain/service/ViewSqlCompiler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAEf,UAAU,EACV,iBAAiB,EACjB,qBAAqB,GAItB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAgCvD,iEAAiE;AACjE,sEAAsE;AACtE,qEAAqE;AACrE,wDAAwD;AACxD,MAAM,eAAe,GAAqC;IACxD,EAAE,EAAE,IAAI;IACR,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,YAAY;IACvB,SAAS,EAAE,YAAY;IACvB,QAAQ,EAAE,WAAW;CACtB,CAAC;AACF,MAAM,WAAW,GACf,eAAe,CAAC;AAClB,KAAK,WAAW,CAAC;AAEjB,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC;KACvD,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,EAAE,CAAC,CAAC;KACnE,IAAI,CAAC,IAAI,CAAC,CAAC;AAQd,MAAM,iBAAiB,GAAiD;IACtE,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,GAAG;IACP,GAAG,EAAE,IAAI;IACT,EAAE,EAAE,GAAG;IACP,GAAG,EAAE,IAAI;CACV,CAAC;AAEF,MAAM,UAAU,WAAW,CACzB,IAAkB,EAClB,UAA8B,EAAE,EAChC,MAAuB;IAEvB,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACtD,MAAM,IAAI,eAAe,CACvB,iBAAiB,CAAC;YAChB,IAAI,EAAE,gBAAgB;YACtB,QAAQ,EAAE,OAAO;YACjB,IAAI,EAAE,oBAAoB;YAC1B,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;YAC3B,QAAQ,EAAE,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI,gCAAgC;YACnE,OAAO,EAAE,SAAS,IAAI,CAAC,QAAQ,CAAC,IAAI,oCAAoC,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI;SACjG,CAAC,CACH,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzD,MAAM,UAAU,GAAa,CAAC,gBAAgB,CAAC,CAAC;IAChD,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACrB,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;QAC/E,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,UAAU,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC;YACrC,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAG,SAAS,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IAClD,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACxD,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/D,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,gEAAgE;IAChE,mEAAmE;IACnE,kEAAkE;IAClE,oEAAoE;IACpE,qEAAqE;IACrE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,GAAG,aAAa,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACtF,MAAM,GAAG,GAAG,UAAU,UAAU,iBAAiB,KAAK,GAAG,OAAO,UAAU,aAAa,WAAW,MAAM,EAAE,CAAC;IAC3G,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;AAClE,CAAC;AAED,SAAS,WAAW,CAClB,MAA0B,EAC1B,MAAuB;IAEvB,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,kBAAkB,CAAC;IAC9D,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,MAAuB;IACvD,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC/C,IAAI,QAAQ,KAAK,KAAK;QAAE,OAAO,UAAU,CAAC;IAC1C,OAAO,GAAG,UAAU,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;AACpE,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,MAAuB;IAC1D,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrE,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAC5B,OAAO,sBAAsB,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC;AACxD,CAAC;AAOD;;;;;;;;;;GAUG;AACH,SAAS,aAAa,CACpB,IAAe,EACf,WAAoC,EACpC,MAAuB;IAEvB,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;QACpC,IAAI,KAAc,CAAC;QACnB,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAI,QAAQ,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC;YACxC,KAAK,GAAG,QAAQ,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,KAAK,CAAC;QAChB,CAAC;QACD,OAAO;YACL,GAAG,EAAE,GAAG,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI;YAC3F,MAAM,EAAE,CAAC,KAAK,CAAC;SAChB,CAAC;IACJ,CAAC;IACD,MAAM,EAAE,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACxC,MAAM,QAAQ,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACxE,MAAM,QAAQ,GAAG,QAAQ;SACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;SACjD,MAAM,CAAC,CAAC,CAAC,EAAyB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IACpD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,OAAO;QACL,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;QACtD,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;KAC1C,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,IAAe;IAEf,IAAI,IAAI,IAAI,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAA0B,EAAE,CAAC;IAC7E,IAAI,IAAI,IAAI,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAA0B,EAAE,CAAC;IAC7E,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,GAA2B,EAAE,CAAC;IAChF,IAAI,IAAI,IAAI,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAA0B,EAAE,CAAC;IAC7E,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,GAA2B,EAAE,CAAC;IAChF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CACnB,OAAwF,EACxF,MAAuB;IAEvB,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAChD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC9B,kEAAkE;QAClE,kEAAkE;QAClE,+DAA+D;QAC/D,iDAAiD;QACjD,MAAM,GAAG,GAAG,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QACpD,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;IACnD,CAAC,CAAC,CAAC;IACH,OAAO,aAAa,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AACzC,CAAC;AAED,mEAAmE;AACnE,mEAAmE;AACnE,oEAAoE;AACpE,gEAAgE;AAChE,oEAAoE;AACpE,+DAA+D;AAC/D,gEAAgE;AAChE,mEAAmE;AACnE,mDAAmD;AAEnD,MAAM,qBAAqB,GAAG,SAAS,CAAC;AAExC,SAAS,mBAAmB,CAAC,IAAY,EAAE,QAAgB;IACzD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO;IAC9C,MAAM,IAAI,eAAe,CACvB,iBAAiB,CAAC;QAChB,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,OAAO;QACjB,IAAI,EAAE,eAAe,QAAQ,EAAE;QAC/B,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,sCAAsC;QAChD,OAAO,EAAE,eAAe,IAAI,sGAAsG;KACnI,CAAC,CACH,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,KAAa;IACnC,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IAC7C,iEAAiE;IACjE,yCAAyC;IACzC,OAAO,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CAAC,IAAY;IAC9B,mBAAmB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IACxC,OAAO,IAAI,IAAI,GAAG,CAAC;AACrB,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { Entry } from "@aotter/mantle-spec";
|
|
2
|
-
import type { MediaAssetRepository } from "../../port/MediaAssetRepository.js";
|
|
3
|
-
import type { MediaAsset } from "../../port/MediaStorage.js";
|
|
4
|
-
/**
|
|
5
|
-
* Extract media asset references from entry data by convention.
|
|
6
|
-
* Starters use `coverAssetId`, `imageAssetId`, nested `{ assetId }`, etc.
|
|
7
|
-
* The schema-level source of truth remains `x-mantle-ref: media_assets`;
|
|
8
|
-
* this convention keeps the render path schema-agnostic until the
|
|
9
|
-
* manifest compiler exposes field metadata at runtime.
|
|
10
|
-
*/
|
|
11
|
-
export declare function collectMediaAssetIds(value: unknown): readonly string[];
|
|
12
|
-
export declare function resolveMediaAssetsForEntries(repo: MediaAssetRepository | null, entries: readonly Entry[]): Promise<ReadonlyMap<string, MediaAsset> | undefined>;
|
|
13
|
-
//# sourceMappingURL=MediaAssetReferences.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MediaAssetReferences.d.ts","sourceRoot":"","sources":["../../../../src/domain/service/io/MediaAssetReferences.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAE7D;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,MAAM,EAAE,CAItE;AAED,wBAAsB,4BAA4B,CAChD,IAAI,EAAE,oBAAoB,GAAG,IAAI,EACjC,OAAO,EAAE,SAAS,KAAK,EAAE,GACxB,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,SAAS,CAAC,CAKtD"}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Extract media asset references from entry data by convention.
|
|
3
|
-
* Starters use `coverAssetId`, `imageAssetId`, nested `{ assetId }`, etc.
|
|
4
|
-
* The schema-level source of truth remains `x-mantle-ref: media_assets`;
|
|
5
|
-
* this convention keeps the render path schema-agnostic until the
|
|
6
|
-
* manifest compiler exposes field metadata at runtime.
|
|
7
|
-
*/
|
|
8
|
-
export function collectMediaAssetIds(value) {
|
|
9
|
-
const out = [];
|
|
10
|
-
collect(value, out);
|
|
11
|
-
return [...new Set(out)];
|
|
12
|
-
}
|
|
13
|
-
export async function resolveMediaAssetsForEntries(repo, entries) {
|
|
14
|
-
if (!repo)
|
|
15
|
-
return undefined;
|
|
16
|
-
const ids = collectMediaAssetIds(entries.map((entry) => entry.data));
|
|
17
|
-
if (ids.length === 0)
|
|
18
|
-
return undefined;
|
|
19
|
-
return repo.findManyByIds(ids);
|
|
20
|
-
}
|
|
21
|
-
function collect(value, out) {
|
|
22
|
-
if (value == null)
|
|
23
|
-
return;
|
|
24
|
-
if (Array.isArray(value)) {
|
|
25
|
-
for (const item of value)
|
|
26
|
-
collect(item, out);
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
if (typeof value !== "object")
|
|
30
|
-
return;
|
|
31
|
-
for (const [key, child] of Object.entries(value)) {
|
|
32
|
-
if (typeof child === "string" &&
|
|
33
|
-
(key === "assetId" || key.endsWith("AssetId")) &&
|
|
34
|
-
child.length > 0) {
|
|
35
|
-
out.push(child);
|
|
36
|
-
continue;
|
|
37
|
-
}
|
|
38
|
-
if (Array.isArray(child) && key.endsWith("AssetIds")) {
|
|
39
|
-
for (const item of child) {
|
|
40
|
-
if (typeof item === "string" && item.length > 0)
|
|
41
|
-
out.push(item);
|
|
42
|
-
}
|
|
43
|
-
continue;
|
|
44
|
-
}
|
|
45
|
-
collect(child, out);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=MediaAssetReferences.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MediaAssetReferences.js","sourceRoot":"","sources":["../../../../src/domain/service/io/MediaAssetReferences.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACpB,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,IAAiC,EACjC,OAAyB;IAEzB,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,MAAM,GAAG,GAAG,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACrE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACvC,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,OAAO,CAAC,KAAc,EAAE,GAAa;IAC5C,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO;IAC1B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC7C,OAAO;IACT,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO;IACtC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;QAC5E,IACE,OAAO,KAAK,KAAK,QAAQ;YACzB,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC9C,KAAK,CAAC,MAAM,GAAG,CAAC,EAChB,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChB,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACrD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;oBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClE,CAAC;YACD,SAAS;QACX,CAAC;QACD,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACtB,CAAC;AACH,CAAC"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { type SchemaManifest, type SiteConfig } from "@aotter/mantle-spec";
|
|
2
|
-
import type { EntryReader } from "../../domain/port/EntryReader.js";
|
|
3
|
-
import type { KvCache } from "../../domain/port/KvCache.js";
|
|
4
|
-
import type { MediaAssetRepository } from "../../domain/port/MediaAssetRepository.js";
|
|
5
|
-
import type { PublishEntryRequest, PublishOrchestrator } from "../../domain/port/PublishOrchestrator.js";
|
|
6
|
-
import type { PublicPathResolver } from "../../domain/service/PublicPathResolver.js";
|
|
7
|
-
import { type ComposeEntrySeoMetaUseCase } from "../../usecase/render/ComposeEntrySeoMetaUseCase.js";
|
|
8
|
-
/**
|
|
9
|
-
* Structural contract of the llms.txt composer the orchestrator
|
|
10
|
-
* accepts. Kept here (vs. importing the concrete use-case class) so
|
|
11
|
-
* infrastructure doesn't cross the `infrastructure→usecase` boundary
|
|
12
|
-
* — the runtime assembly root wires in `ComposeLlmsTxtUseCase`,
|
|
13
|
-
* which satisfies this shape.
|
|
14
|
-
*/
|
|
15
|
-
export interface LlmsTxtComposer {
|
|
16
|
-
execute(args: {
|
|
17
|
-
readonly site: SiteConfig;
|
|
18
|
-
readonly locale: string | null;
|
|
19
|
-
}): Promise<string>;
|
|
20
|
-
}
|
|
21
|
-
export declare class HtmlPublishOrchestrator implements PublishOrchestrator {
|
|
22
|
-
private readonly reader;
|
|
23
|
-
private readonly kv;
|
|
24
|
-
private readonly paths;
|
|
25
|
-
private readonly composeSeo;
|
|
26
|
-
private readonly composeLlmsTxt;
|
|
27
|
-
private readonly schemas;
|
|
28
|
-
private readonly mediaAssets;
|
|
29
|
-
constructor(reader: EntryReader, kv: KvCache, paths: PublicPathResolver | null, composeSeo: Pick<ComposeEntrySeoMetaUseCase, "execute">, composeLlmsTxt: LlmsTxtComposer, schemas: ReadonlyMap<string, SchemaManifest>, mediaAssets?: MediaAssetRepository | null);
|
|
30
|
-
publish(request: PublishEntryRequest): Promise<void>;
|
|
31
|
-
unpublish(request: PublishEntryRequest): Promise<void>;
|
|
32
|
-
invalidateAll(): Promise<void>;
|
|
33
|
-
private deletePrefix;
|
|
34
|
-
private renderEntry;
|
|
35
|
-
private renderList;
|
|
36
|
-
private renderLlmsTxt;
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=HtmlPublishOrchestrator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"HtmlPublishOrchestrator.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/render/HtmlPublishOrchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,UAAU,EAChB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,0CAA0C,CAAC;AAgBlD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAErF,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,oDAAoD,CAAC;AAE5D;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,IAAI,EAAE;QACZ,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;QAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;KAChC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACrB;AAgBD,qBAAa,uBAAwB,YAAW,mBAAmB;IAE/D,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW;gBANX,MAAM,EAAE,WAAW,EACnB,EAAE,EAAE,OAAO,EACX,KAAK,EAAE,kBAAkB,GAAG,IAAI,EAChC,UAAU,EAAE,IAAI,CAAC,0BAA0B,EAAE,SAAS,CAAC,EACvD,cAAc,EAAE,eAAe,EAC/B,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,EAC5C,WAAW,GAAE,oBAAoB,GAAG,IAAW;IAG5D,OAAO,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBpD,SAAS,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBtD,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;YAQtB,YAAY;YASZ,WAAW;YAkBX,UAAU;YA0BV,aAAa;CAI5B"}
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
import { DiagnosticError, runtimeDiagnostic, } from "@aotter/mantle-spec";
|
|
2
|
-
import { entryHtmlKey, entryMarkdownKey, listHtmlKey, llmsTxtKey, } from "../../domain/service/PublishKeys.js";
|
|
3
|
-
import { joinParentForList, joinParentIfTranslation, } from "../../domain/service/io/JoinedEntryReader.js";
|
|
4
|
-
import { serializeEntryAsMarkdown } from "../../domain/service/MarkdownSerializer.js";
|
|
5
|
-
import { renderEntryHtml, renderListHtml, } from "../../domain/service/HtmlRenderer.js";
|
|
6
|
-
import { resolveMediaAssetsForEntries } from "../../domain/service/io/MediaAssetReferences.js";
|
|
7
|
-
import { composeSeoIfPathed, } from "../../usecase/render/ComposeEntrySeoMetaUseCase.js";
|
|
8
|
-
/**
|
|
9
|
-
* `HtmlPublishOrchestrator` — the publish pipeline. Renders + writes
|
|
10
|
-
* to `KvCache`:
|
|
11
|
-
* 1. Entry HTML (if a template is registered for the collection)
|
|
12
|
-
* 2. Entry `.md` mirror (if the entry has a `content` field)
|
|
13
|
-
* 3. Collection list HTML for the entry's locale
|
|
14
|
-
* 4. `/llms.txt` for the entry's locale (composed by ComposeLlmsTxtUseCase)
|
|
15
|
-
*
|
|
16
|
-
* Idempotent — invoking twice with the same entry id is safe; KV
|
|
17
|
-
* writes overwrite. Non-localized entries publish under empty-string
|
|
18
|
-
* locale.
|
|
19
|
-
*/
|
|
20
|
-
const DEFAULT_DOCTYPE = "<!DOCTYPE html>\n";
|
|
21
|
-
export class HtmlPublishOrchestrator {
|
|
22
|
-
reader;
|
|
23
|
-
kv;
|
|
24
|
-
paths;
|
|
25
|
-
composeSeo;
|
|
26
|
-
composeLlmsTxt;
|
|
27
|
-
schemas;
|
|
28
|
-
mediaAssets;
|
|
29
|
-
constructor(reader, kv, paths, composeSeo, composeLlmsTxt, schemas, mediaAssets = null) {
|
|
30
|
-
this.reader = reader;
|
|
31
|
-
this.kv = kv;
|
|
32
|
-
this.paths = paths;
|
|
33
|
-
this.composeSeo = composeSeo;
|
|
34
|
-
this.composeLlmsTxt = composeLlmsTxt;
|
|
35
|
-
this.schemas = schemas;
|
|
36
|
-
this.mediaAssets = mediaAssets;
|
|
37
|
-
}
|
|
38
|
-
async publish(request) {
|
|
39
|
-
const raw = await requireEntry(this.reader, request.entryId, "usecase/PublishEntry");
|
|
40
|
-
// Materialize parent fields into the translation's data before
|
|
41
|
-
// rendering (ADR-0010). RequestPublishUseCase has already asserted
|
|
42
|
-
// the parent is published, so a status filter is safe here.
|
|
43
|
-
const entry = await joinParentIfTranslation(this.reader, this.schemas, raw, {
|
|
44
|
-
parentStatus: "published",
|
|
45
|
-
});
|
|
46
|
-
const indexLocale = entry.locale ?? null;
|
|
47
|
-
await Promise.all([
|
|
48
|
-
this.renderEntry(entry, request.site, request.templates, DEFAULT_DOCTYPE),
|
|
49
|
-
this.renderList(entry.collection, indexLocale, request.site, request.templates, DEFAULT_DOCTYPE),
|
|
50
|
-
this.renderLlmsTxt(indexLocale, request.site),
|
|
51
|
-
...(indexLocale === null ? [] : [this.kv.delete(llmsTxtKey(""))]),
|
|
52
|
-
]);
|
|
53
|
-
}
|
|
54
|
-
async unpublish(request) {
|
|
55
|
-
const entry = await requireEntry(this.reader, request.entryId, "usecase/UnpublishEntryCache");
|
|
56
|
-
const indexLocale = entry.locale ?? null;
|
|
57
|
-
await Promise.all([
|
|
58
|
-
this.kv.delete(entryHtmlKey(entry)),
|
|
59
|
-
this.kv.delete(entryMarkdownKey(entry)),
|
|
60
|
-
this.renderList(entry.collection, indexLocale, request.site, request.templates, DEFAULT_DOCTYPE),
|
|
61
|
-
this.renderLlmsTxt(indexLocale, request.site),
|
|
62
|
-
...(indexLocale === null ? [] : [this.kv.delete(llmsTxtKey(""))]),
|
|
63
|
-
]);
|
|
64
|
-
}
|
|
65
|
-
async invalidateAll() {
|
|
66
|
-
await Promise.all([
|
|
67
|
-
this.deletePrefix("entry:html:"),
|
|
68
|
-
this.deletePrefix("list:html:"),
|
|
69
|
-
this.deletePrefix("llms:"),
|
|
70
|
-
]);
|
|
71
|
-
}
|
|
72
|
-
async deletePrefix(prefix) {
|
|
73
|
-
let cursor = null;
|
|
74
|
-
do {
|
|
75
|
-
const page = await this.kv.list(prefix, cursor);
|
|
76
|
-
await Promise.all(page.keys.map((key) => this.kv.delete(key)));
|
|
77
|
-
cursor = page.cursor;
|
|
78
|
-
} while (cursor);
|
|
79
|
-
}
|
|
80
|
-
async renderEntry(entry, site, templates, doctype) {
|
|
81
|
-
const seo = await composeSeoIfPathed(this.composeSeo, this.paths, entry, site);
|
|
82
|
-
const mediaAssets = await resolveMediaAssetsForEntries(this.mediaAssets, [entry]);
|
|
83
|
-
const html = renderEntryHtml({ entry, site, templates, doctype, mediaAssets, seo });
|
|
84
|
-
if (html !== null) {
|
|
85
|
-
await this.kv.put(entryHtmlKey(entry), html);
|
|
86
|
-
}
|
|
87
|
-
const md = serializeEntryAsMarkdown(entry);
|
|
88
|
-
if (md) {
|
|
89
|
-
await this.kv.put(entryMarkdownKey(entry), md);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
async renderList(collection, locale, site, templates, doctype) {
|
|
93
|
-
const raw = await this.reader.readPublished({ locale, collection });
|
|
94
|
-
const entries = await joinParentForList(this.reader, this.schemas, raw, {
|
|
95
|
-
parentStatus: "published",
|
|
96
|
-
});
|
|
97
|
-
const mediaAssets = await resolveMediaAssetsForEntries(this.mediaAssets, entries);
|
|
98
|
-
const html = renderListHtml({
|
|
99
|
-
collection,
|
|
100
|
-
locale: locale ?? "",
|
|
101
|
-
entries,
|
|
102
|
-
site,
|
|
103
|
-
templates,
|
|
104
|
-
doctype,
|
|
105
|
-
mediaAssets,
|
|
106
|
-
});
|
|
107
|
-
if (html !== null) {
|
|
108
|
-
await this.kv.put(listHtmlKey(collection, locale ?? ""), html);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
async renderLlmsTxt(locale, site) {
|
|
112
|
-
const body = await this.composeLlmsTxt.execute({ site, locale });
|
|
113
|
-
await this.kv.put(llmsTxtKey(locale ?? ""), body);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
async function requireEntry(reader, entryId, pathPrefix) {
|
|
117
|
-
const entry = await reader.readById(entryId);
|
|
118
|
-
if (entry)
|
|
119
|
-
return entry;
|
|
120
|
-
throw new DiagnosticError(runtimeDiagnostic({
|
|
121
|
-
code: "NOT_FOUND",
|
|
122
|
-
severity: "error",
|
|
123
|
-
path: `${pathPrefix}/${entryId}`,
|
|
124
|
-
value: entryId,
|
|
125
|
-
expected: "id of an existing entry",
|
|
126
|
-
message: `Entry not found: ${entryId}.`,
|
|
127
|
-
}));
|
|
128
|
-
}
|
|
129
|
-
//# sourceMappingURL=HtmlPublishOrchestrator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"HtmlPublishOrchestrator.js","sourceRoot":"","sources":["../../../src/infrastructure/render/HtmlPublishOrchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/render/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/infrastructure/render/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC"}
|
package/dist/runtime.d.ts
DELETED
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
import { type Manifest, type ProcedureManifest, type SchemaManifest, type SiteDefaults, type TriggerManifest, type ViewManifest } from "@aotter/mantle-spec";
|
|
2
|
-
import type { AnyHandler } from "./domain/model/HandlerContext.js";
|
|
3
|
-
import type { TemplateRegistry } from "./domain/model/TemplateRegistry.js";
|
|
4
|
-
import type { AssetServer } from "./domain/port/AssetServer.js";
|
|
5
|
-
import type { DatabaseDriver } from "./domain/port/DatabaseDriver.js";
|
|
6
|
-
import type { DeferredHookDispatcher } from "./domain/port/DeferredHookDispatcher.js";
|
|
7
|
-
import type { EntryReader } from "./domain/port/EntryReader.js";
|
|
8
|
-
import type { KvCache } from "./domain/port/KvCache.js";
|
|
9
|
-
import type { MediaStorage } from "./domain/port/MediaStorage.js";
|
|
10
|
-
import type { PublishOrchestrator } from "./domain/port/PublishOrchestrator.js";
|
|
11
|
-
import type { SiteConfigRepository } from "./domain/port/SiteConfigRepository.js";
|
|
12
|
-
import { type Clock } from "./domain/port/Clock.js";
|
|
13
|
-
import { type IdGenerator } from "./domain/port/IdGenerator.js";
|
|
14
|
-
import { type HandlerRegistry } from "./domain/port/HandlerRegistry.js";
|
|
15
|
-
import { ArchiveUseCase, CreateDraftUseCase, DeleteEntryUseCase, GetEntryUseCase, ListEntriesUseCase, RequestPublishUseCase, UnpublishUseCase, UpdateDraftUseCase } from "./usecase/content/index.js";
|
|
16
|
-
import { InvokeProcedureUseCase } from "./usecase/procedure/index.js";
|
|
17
|
-
import { ExecuteViewUseCase } from "./usecase/view/index.js";
|
|
18
|
-
import { ValidateBootUseCase } from "./usecase/boot/index.js";
|
|
19
|
-
import { RunDeferredHookUseCase } from "./usecase/lifecycle/index.js";
|
|
20
|
-
import { ComposeEntrySeoMetaUseCase, ComposeLlmsTxtUseCase, ComposeSitemapUseCase, PreviewEntryUseCase, RenderEntryLiveUseCase, RenderListLiveUseCase } from "./usecase/render/index.js";
|
|
21
|
-
import { CommitMediaUploadUseCase, CreateMediaUploadUseCase, ListMediaAssetsUseCase, GetMediaAssetUseCase, UpdateMediaAssetUseCase, DeleteMediaAssetUseCase } from "./usecase/media/index.js";
|
|
22
|
-
import { UpdateSiteSettingsUseCase } from "./usecase/site/index.js";
|
|
23
|
-
import type { PublicPathResolver } from "./domain/service/PublicPathResolver.js";
|
|
24
|
-
import type { MediaAsset } from "./domain/port/MediaStorage.js";
|
|
25
|
-
/**
|
|
26
|
-
* `createCmsRuntime` — assembly root. Per the clean-architecture
|
|
27
|
-
* convention, this file is the only place that wires concrete
|
|
28
|
-
* adapters (`infrastructure/persistence/*`, `infrastructure/render/*`)
|
|
29
|
-
* to use cases (`usecase/content/*`, etc.) via ports
|
|
30
|
-
* (`domain/port/*`).
|
|
31
|
-
*
|
|
32
|
-
* Adapters call this once at boot, pass the required ADR-0011 ports +
|
|
33
|
-
* the consumer's manifests + handlers + templates + siteDefaults, and
|
|
34
|
-
* receive a `CmsRuntime` they expose to their HTTP framework's
|
|
35
|
-
* routing layer.
|
|
36
|
-
*
|
|
37
|
-
* `bootInit()` runs migrations, seeds `siteDefaults`, and validates
|
|
38
|
-
* the manifest set against the registry. Throws `BootValidationError`
|
|
39
|
-
* on any boot diagnostic — adapters surface the error in their init
|
|
40
|
-
* logs.
|
|
41
|
-
*/
|
|
42
|
-
export interface CreateCmsRuntimeArgs {
|
|
43
|
-
readonly manifests: readonly Manifest[];
|
|
44
|
-
readonly handlers?: Readonly<Record<string, AnyHandler>>;
|
|
45
|
-
readonly templates?: TemplateRegistry;
|
|
46
|
-
readonly siteDefaults?: SiteDefaults;
|
|
47
|
-
/** Required ADR-0011 ports. */
|
|
48
|
-
readonly db: DatabaseDriver;
|
|
49
|
-
readonly kv: KvCache;
|
|
50
|
-
readonly assets: AssetServer;
|
|
51
|
-
/** Optional public-path resolver. When set, the publish pipeline
|
|
52
|
-
* composes SEO/AEO meta on every entry render and the resolved
|
|
53
|
-
* paths drive sitemap / hreflang sibling URLs. Adapters that
|
|
54
|
-
* expose request-time render routes should also pass this through
|
|
55
|
-
* so request-time HTML matches publish-time HTML. */
|
|
56
|
-
readonly publicPathResolver?: PublicPathResolver;
|
|
57
|
-
/** Optional media storage adapter. When unset, media MCP tools and
|
|
58
|
-
* admin upload endpoints are not registered — uploads return 404 /
|
|
59
|
-
* `MEDIA_NOT_CONFIGURED`. When set, the runtime wires
|
|
60
|
-
* `CreateMediaUpload` + `CommitMediaUpload` use cases backed by
|
|
61
|
-
* this adapter. Pending create-to-commit state remains canonical in DB. */
|
|
62
|
-
readonly mediaStorage?: MediaStorage;
|
|
63
|
-
/** Whether the SVG mime is allowed in `CreateMediaUpload`. Default
|
|
64
|
-
* false; object stores don't sanitize SVG payloads. */
|
|
65
|
-
readonly mediaAllowSvg?: boolean;
|
|
66
|
-
/** Optional at-least-once dispatcher for `after_*` lifecycle hooks.
|
|
67
|
-
* Queue acceptance is not atomic with the entry write. A rejection
|
|
68
|
-
* falls back, with the same event id, to best-effort `waitUntil`
|
|
69
|
-
* then inline execution. */
|
|
70
|
-
readonly deferredHookDispatcher?: DeferredHookDispatcher;
|
|
71
|
-
/** Optional clock — test seam. Defaults to `SystemClock`. */
|
|
72
|
-
readonly clock?: Clock;
|
|
73
|
-
/** Optional id generator — test seam. Defaults to `RandomUuidGenerator`. */
|
|
74
|
-
readonly idgen?: IdGenerator;
|
|
75
|
-
}
|
|
76
|
-
export interface CmsRuntime {
|
|
77
|
-
/** Raw ADR-0011 database driver, retained for adapter compatibility.
|
|
78
|
-
* @deprecated Use purpose-shaped surfaces such as `entryReader` and
|
|
79
|
-
* `siteConfig`; adapters should retain their injected driver for tables
|
|
80
|
-
* they own. */
|
|
81
|
-
readonly db: DatabaseDriver;
|
|
82
|
-
readonly kv: KvCache;
|
|
83
|
-
readonly assets: AssetServer;
|
|
84
|
-
/** Schema-aware, lifecycle-neutral entry reads for adapter-owned routes. */
|
|
85
|
-
readonly entryReader: EntryReader;
|
|
86
|
-
/** Use cases (pre-wired with ports + clock + idgen). */
|
|
87
|
-
readonly createDraft: CreateDraftUseCase;
|
|
88
|
-
readonly updateDraft: UpdateDraftUseCase;
|
|
89
|
-
readonly getEntry: GetEntryUseCase;
|
|
90
|
-
readonly listEntries: ListEntriesUseCase;
|
|
91
|
-
readonly requestPublish: RequestPublishUseCase;
|
|
92
|
-
readonly unpublish: UnpublishUseCase;
|
|
93
|
-
readonly archive: ArchiveUseCase;
|
|
94
|
-
readonly deleteEntry: DeleteEntryUseCase;
|
|
95
|
-
readonly invokeProcedure: InvokeProcedureUseCase;
|
|
96
|
-
readonly executeView: ExecuteViewUseCase;
|
|
97
|
-
readonly composeLlmsTxt: ComposeLlmsTxtUseCase;
|
|
98
|
-
readonly composeSitemap: ComposeSitemapUseCase;
|
|
99
|
-
readonly composeEntrySeoMeta: ComposeEntrySeoMetaUseCase;
|
|
100
|
-
readonly renderEntryLive: RenderEntryLiveUseCase;
|
|
101
|
-
readonly renderListLive: RenderListLiveUseCase;
|
|
102
|
-
readonly previewEntry: PreviewEntryUseCase;
|
|
103
|
-
readonly validateBoot: ValidateBootUseCase;
|
|
104
|
-
readonly publishOrchestrator: PublishOrchestrator;
|
|
105
|
-
readonly siteConfig: SiteConfigRepository;
|
|
106
|
-
readonly updateSiteSettings: UpdateSiteSettingsUseCase;
|
|
107
|
-
/** The resolver passed at boot, or `null` when the consumer didn't
|
|
108
|
-
* supply one. Adapters use this to derive URLs (sitemap, SEO
|
|
109
|
-
* hreflangs) without rebuilding the mapping. */
|
|
110
|
-
readonly publicPathResolver: PublicPathResolver | null;
|
|
111
|
-
/** Pre-wired media use cases when `mediaStorage` was supplied; null
|
|
112
|
-
* otherwise. Adapters route admin endpoints + MCP tools off this.
|
|
113
|
-
*
|
|
114
|
-
* `resolve` / `resolveMany` materialise the variants set of a
|
|
115
|
-
* committed asset by id — entry data references assets via
|
|
116
|
-
* `x-mantle-ref: media_assets`, and renderers call these to emit
|
|
117
|
-
* `<picture>`. `resolveMany` batches a render-pass's worth of
|
|
118
|
-
* references in one DB round trip. */
|
|
119
|
-
readonly media: {
|
|
120
|
-
readonly storage: MediaStorage;
|
|
121
|
-
readonly createUpload: CreateMediaUploadUseCase;
|
|
122
|
-
readonly commitUpload: CommitMediaUploadUseCase;
|
|
123
|
-
/** Admin media-library use cases (#434): list/get/patch/delete over
|
|
124
|
-
* committed assets. Adapters route `/admin/api/media*` off these. */
|
|
125
|
-
readonly listAssets: ListMediaAssetsUseCase;
|
|
126
|
-
readonly getAsset: GetMediaAssetUseCase;
|
|
127
|
-
readonly updateAsset: UpdateMediaAssetUseCase;
|
|
128
|
-
readonly deleteAsset: DeleteMediaAssetUseCase;
|
|
129
|
-
resolve(id: string): Promise<MediaAsset | null>;
|
|
130
|
-
resolveMany(ids: readonly string[]): Promise<ReadonlyMap<string, MediaAsset>>;
|
|
131
|
-
} | null;
|
|
132
|
-
/** Validate and drive a deferred after-hook from an untrusted Queue
|
|
133
|
-
* body. Failures escape so the adapter can retry/DLQ the event. */
|
|
134
|
-
readonly runDeferredHook: RunDeferredHookUseCase;
|
|
135
|
-
/** Adapter-helper bag. */
|
|
136
|
-
readonly registry: HandlerRegistry;
|
|
137
|
-
readonly templates: TemplateRegistry;
|
|
138
|
-
readonly schemasByName: ReadonlyMap<string, SchemaManifest>;
|
|
139
|
-
readonly proceduresByName: ReadonlyMap<string, ProcedureManifest>;
|
|
140
|
-
readonly viewsByName: ReadonlyMap<string, ViewManifest>;
|
|
141
|
-
readonly triggers: readonly TriggerManifest[];
|
|
142
|
-
readonly triggersByName: ReadonlyMap<string, TriggerManifest>;
|
|
143
|
-
readonly clock: Clock;
|
|
144
|
-
readonly idgen: IdGenerator;
|
|
145
|
-
/** Run migrations, seed siteDefaults, and validate boot. Adapters
|
|
146
|
-
* call this once per isolate before routing requests. */
|
|
147
|
-
bootInit(): Promise<void>;
|
|
148
|
-
}
|
|
149
|
-
export declare function createCmsRuntime(args: CreateCmsRuntimeArgs): CmsRuntime;
|
|
150
|
-
//# sourceMappingURL=runtime.d.ts.map
|
package/dist/runtime.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,EAAe,KAAK,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAEL,KAAK,WAAW,EACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEL,sBAAsB,EACvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EACL,sBAAsB,EAEvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAEjF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAehE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IACrC,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC;IAC5B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B;;;;0DAIsD;IACtD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACjD;;;;gFAI4E;IAC5E,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IACrC;4DACwD;IACxD,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC;;;iCAG6B;IAC7B,QAAQ,CAAC,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IACzD,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;CAC9B;AAED,MAAM,WAAW,UAAU;IACzB;;;oBAGgB;IAChB,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC;IAC5B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,4EAA4E;IAC5E,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAElC,wDAAwD;IACxD,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAC;IAC/C,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,eAAe,EAAE,sBAAsB,CAAC;IACjD,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAC;IAC/C,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAC;IAC/C,QAAQ,CAAC,mBAAmB,EAAE,0BAA0B,CAAC;IACzD,QAAQ,CAAC,eAAe,EAAE,sBAAsB,CAAC;IACjD,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAC;IAC/C,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC;IAC3C,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC;IAC3C,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAClD,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,QAAQ,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;IACvD;;qDAEiD;IACjD,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACvD;;;;;;;2CAOuC;IACvC,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;QAC/B,QAAQ,CAAC,YAAY,EAAE,wBAAwB,CAAC;QAChD,QAAQ,CAAC,YAAY,EAAE,wBAAwB,CAAC;QAChD;8EACsE;QACtE,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC;QAC5C,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;QACxC,QAAQ,CAAC,WAAW,EAAE,uBAAuB,CAAC;QAC9C,QAAQ,CAAC,WAAW,EAAE,uBAAuB,CAAC;QAC9C,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;QAChD,WAAW,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;KAC/E,GAAG,IAAI,CAAC;IACT;wEACoE;IACpE,QAAQ,CAAC,eAAe,EAAE,sBAAsB,CAAC;IAEjD,0BAA0B;IAC1B,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC5D,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAClE,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACxD,QAAQ,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAC;IAC9C,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC9D,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAE5B;8DAC0D;IAC1D,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,UAAU,CAqOvE"}
|