@aotter/mantle-runtime 0.1.0-alpha.6 → 0.1.0-alpha.8
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/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/HandlerRegistry.d.ts +1 -1
- package/dist/domain/port/IdGenerator.d.ts +1 -2
- 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 +10 -8
- 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 -2
- package/dist/domain/port/index.d.ts.map +1 -1
- package/dist/domain/port/index.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 +3 -0
- package/dist/domain/service/TriggerIndex.d.ts.map +1 -1
- package/dist/domain/service/TriggerIndex.js +14 -1
- package/dist/domain/service/TriggerIndex.js.map +1 -1
- package/dist/domain/service/index.d.ts +1 -9
- package/dist/domain/service/index.d.ts.map +1 -1
- package/dist/domain/service/index.js +1 -9
- package/dist/domain/service/index.js.map +1 -1
- package/dist/domain/service/io/EntryWriteGuard.d.ts +2 -2
- package/dist/domain/service/io/EntryWriteGuard.d.ts.map +1 -1
- package/dist/domain/service/io/EntryWriteGuard.js +1 -3
- package/dist/domain/service/io/EntryWriteGuard.js.map +1 -1
- package/dist/index.d.ts +15 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -11
- 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 +2 -4
- package/dist/infrastructure/boot/bootState.d.ts.map +1 -1
- package/dist/infrastructure/boot/bootState.js +1 -1
- package/dist/infrastructure/boot/bootState.js.map +1 -1
- package/dist/infrastructure/boot/canonicalMigrations.d.ts.map +1 -1
- package/dist/infrastructure/boot/canonicalMigrations.js +124 -60
- package/dist/infrastructure/boot/canonicalMigrations.js.map +1 -1
- package/dist/infrastructure/boot/index.d.ts +1 -0
- package/dist/infrastructure/boot/index.d.ts.map +1 -1
- package/dist/infrastructure/boot/index.js +1 -0
- 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/mcp/McpJsonRpcDispatcher.d.ts +2 -2
- package/dist/infrastructure/mcp/McpJsonRpcDispatcher.d.ts.map +1 -1
- package/dist/infrastructure/mcp/McpJsonRpcDispatcher.js +1 -1
- 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 +6 -7
- package/dist/infrastructure/mcp/McpToolCatalog.js.map +1 -1
- package/dist/infrastructure/persistence/DatabaseEntryRepository.d.ts +1 -1
- package/dist/infrastructure/persistence/DatabaseEntryRepository.d.ts.map +1 -1
- package/dist/infrastructure/persistence/DatabaseEntryRepository.js +1 -1
- package/dist/infrastructure/persistence/DatabaseEntryRepository.js.map +1 -1
- package/dist/infrastructure/persistence/DatabaseSiteConfigRepository.js +3 -3
- 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} +9 -20
- 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 +4 -4
- package/dist/infrastructure/testing/IndexCoverageHarness.js.map +1 -1
- package/dist/usecase/boot/ValidateBootUseCase.d.ts +15 -38
- package/dist/usecase/boot/ValidateBootUseCase.d.ts.map +1 -1
- package/dist/usecase/boot/ValidateBootUseCase.js +79 -274
- 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/CreateDraftUseCase.d.ts +2 -2
- package/dist/usecase/content/CreateDraftUseCase.d.ts.map +1 -1
- package/dist/usecase/content/CreateDraftUseCase.js.map +1 -1
- package/dist/usecase/content/RequestPublishUseCase.d.ts +2 -2
- package/dist/usecase/content/RequestPublishUseCase.d.ts.map +1 -1
- package/dist/usecase/content/RequestPublishUseCase.js.map +1 -1
- package/dist/usecase/content/UpdateDraftUseCase.d.ts +2 -2
- package/dist/usecase/content/UpdateDraftUseCase.d.ts.map +1 -1
- package/dist/usecase/content/UpdateDraftUseCase.js.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 +2 -2
- package/dist/usecase/procedure/InvokeBuiltinUseCase.d.ts.map +1 -1
- package/dist/usecase/procedure/InvokeBuiltinUseCase.js.map +1 -1
- package/dist/usecase/site/UpdateSiteSettingsUseCase.d.ts.map +1 -1
- package/dist/usecase/site/UpdateSiteSettingsUseCase.js +8 -1
- 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 +19 -95
- 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 -49
- 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 -22
- 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/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 -38
- package/dist/domain/service/HtmlRenderer.d.ts.map +0 -1
- package/dist/domain/service/HtmlRenderer.js +0 -73
- package/dist/domain/service/HtmlRenderer.js.map +0 -1
- package/dist/domain/service/MarkdownSerializer.d.ts +0 -45
- package/dist/domain/service/MarkdownSerializer.d.ts.map +0 -1
- package/dist/domain/service/MarkdownSerializer.js +0 -154
- 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 -46
- package/dist/domain/service/PublicPathResolver.d.ts.map +0 -1
- package/dist/domain/service/PublicPathResolver.js +0 -36
- package/dist/domain/service/PublicPathResolver.js.map +0 -1
- package/dist/domain/service/SeoMetaComposer.d.ts +0 -60
- package/dist/domain/service/SeoMetaComposer.d.ts.map +0 -1
- package/dist/domain/service/SeoMetaComposer.js +0 -213
- 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 -244
- 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/runtime.d.ts +0 -145
- package/dist/runtime.d.ts.map +0 -1
- package/dist/runtime.js +0 -224
- package/dist/runtime.js.map +0 -1
- package/dist/usecase/dto/render/ComposeEntrySeoMetaRequest.d.ts +0 -18
- 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 -13
- 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 -13
- 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 -18
- 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 -19
- 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 -15
- 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 -66
- package/dist/usecase/render/ComposeEntrySeoMetaUseCase.js.map +0 -1
- package/dist/usecase/render/ComposeLlmsTxtUseCase.d.ts +0 -18
- package/dist/usecase/render/ComposeLlmsTxtUseCase.d.ts.map +0 -1
- package/dist/usecase/render/ComposeLlmsTxtUseCase.js +0 -47
- 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 -38
- 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 -36
- package/dist/usecase/render/RenderEntryLiveUseCase.d.ts.map +0 -1
- package/dist/usecase/render/RenderEntryLiveUseCase.js +0 -62
- 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 -46
- 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
package/README.md
CHANGED
|
@@ -2,9 +2,42 @@
|
|
|
2
2
|
|
|
3
3
|
Runtime engine for mantle.
|
|
4
4
|
|
|
5
|
-
This package owns the adapter-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
This package owns the adapter-neutral Core pipeline after semantic compilation.
|
|
6
|
+
Storage adapters prepare `RuntimePlan` into existing content repositories/readers
|
|
7
|
+
and a `ViewQueryExecutor`; SQL-shaped drivers remain SQLite/D1 implementation
|
|
8
|
+
details rather than a universal database contract.
|
|
9
|
+
|
|
10
|
+
```ts
|
|
11
|
+
const runtime = await bootMantleRuntime({
|
|
12
|
+
plan,
|
|
13
|
+
storage,
|
|
14
|
+
handlers,
|
|
15
|
+
ports,
|
|
16
|
+
deployment: deploymentOptions,
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
await runtime.invokeProcedure({ procedure: "recompute", input, ctx });
|
|
20
|
+
await runtime.executeView({ view: "open-orders", options: { params }, ctx });
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
`bootMantleRuntime` makes one preparation attempt and derives handler readiness
|
|
24
|
+
from `handlers`; hosts still own lazy initialization, caching, retries, and
|
|
25
|
+
resource shutdown.
|
|
26
|
+
|
|
27
|
+
Advanced hosts may keep the stages explicit. `prepareDeployment()` returns the
|
|
28
|
+
exact plan together with its prepared semantic storage, so binding cannot
|
|
29
|
+
accidentally pair storage from one revision with another plan:
|
|
30
|
+
|
|
31
|
+
```ts
|
|
32
|
+
const prepared = await prepareDeployment(plan, storage, deploymentOptions);
|
|
33
|
+
const runtime = createMantleRuntime({ prepared, handlers, ports });
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Pass `handlerNames` during explicit preparation when the embedding dispatches
|
|
37
|
+
Procedures. A projection-only embedding may omit it.
|
|
38
|
+
|
|
39
|
+
Binding is synchronous and performs no migrations, parsing, linking, or hidden
|
|
40
|
+
preparation. Request identity is supplied to each invocation.
|
|
8
41
|
|
|
9
42
|
Node-based tooling may import `@aotter/mantle-runtime/testing` for the real
|
|
10
43
|
SQLite access-path and HTTP sampling helpers. That subpath is intentionally
|
|
@@ -12,7 +45,7 @@ separate from the Worker-safe package entry.
|
|
|
12
45
|
|
|
13
46
|
For a fresh adapter implementation, start with
|
|
14
47
|
[`docs/adapter-guide.md`](../../docs/adapter-guide.md) and
|
|
15
|
-
[`docs/adr/
|
|
48
|
+
[`docs/adr/0019-sealed-manifest-runtime-pipeline.md`](../../docs/adr/0019-sealed-manifest-runtime-pipeline.md).
|
|
16
49
|
|
|
17
50
|
Queue-backed `after_*` lifecycle delivery is optional and at-least-once. See
|
|
18
51
|
[`docs/deferred-lifecycle-queues.md`](../../docs/deferred-lifecycle-queues.md)
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { type SchemaManifest } from "@aotter/mantle-spec";
|
|
2
|
+
import type { AnyHandler, HandlerContext } from "./domain/model/HandlerContext.js";
|
|
3
|
+
import type { PreparedMantleRevision } from "./domain/model/PreparedMantleRevision.js";
|
|
4
|
+
import { type Clock } from "./domain/port/Clock.js";
|
|
5
|
+
import type { DeferredHookDispatcher } from "./domain/port/DeferredHookDispatcher.js";
|
|
6
|
+
import type { EntryReader } from "./domain/port/EntryReader.js";
|
|
7
|
+
import type { MediaAsset, MediaStorage } from "./domain/port/MediaStorage.js";
|
|
8
|
+
import { type IdGenerator } from "./domain/port/IdGenerator.js";
|
|
9
|
+
import type { MantleStorageAdapter } from "./domain/port/MantleStorageAdapter.js";
|
|
10
|
+
import type { LocalePolicyReader, SiteConfigRepository } from "./domain/port/SiteConfigRepository.js";
|
|
11
|
+
import type { ViewQueryOptions } from "./domain/port/ViewQueryExecutor.js";
|
|
12
|
+
import type { RuntimePlan } from "./domain/service/RuntimePlanCompiler.js";
|
|
13
|
+
import { ArchiveUseCase, CreateDraftUseCase, DeleteEntryUseCase, GetEntryUseCase, ListEntriesUseCase, RequestPublishUseCase, UnpublishUseCase, UpdateDraftUseCase } from "./usecase/content/index.js";
|
|
14
|
+
import type { RunDeferredHookRequest } from "./usecase/dto/lifecycle/index.js";
|
|
15
|
+
import type { InvokeProcedureResponse } from "./usecase/dto/procedure/index.js";
|
|
16
|
+
import { CommitMediaUploadUseCase, CreateMediaUploadUseCase, DeleteMediaAssetUseCase, GetMediaAssetUseCase, ListMediaAssetsUseCase, UpdateMediaAssetUseCase } from "./usecase/media/index.js";
|
|
17
|
+
import { type ExecuteViewResponse } from "./usecase/view/index.js";
|
|
18
|
+
import { UpdateSiteSettingsUseCase } from "./usecase/site/index.js";
|
|
19
|
+
import { type DeploymentPreparationOptions } from "./usecase/boot/ValidateBootUseCase.js";
|
|
20
|
+
export interface MantleRuntimePorts {
|
|
21
|
+
readonly localePolicy?: LocalePolicyReader;
|
|
22
|
+
readonly deferredHookDispatcher?: DeferredHookDispatcher;
|
|
23
|
+
readonly clock?: Clock;
|
|
24
|
+
readonly idgen?: IdGenerator;
|
|
25
|
+
/** Host callback after a successful publishing-content mutation. */
|
|
26
|
+
readonly onPublishingContentChange?: () => Promise<void>;
|
|
27
|
+
readonly mediaStorage?: MediaStorage;
|
|
28
|
+
readonly mediaAllowSvg?: boolean;
|
|
29
|
+
}
|
|
30
|
+
export interface CreateMantleRuntimeArgs {
|
|
31
|
+
readonly prepared: PreparedMantleRevision;
|
|
32
|
+
readonly ports?: MantleRuntimePorts;
|
|
33
|
+
readonly handlers?: Readonly<Record<string, AnyHandler>>;
|
|
34
|
+
}
|
|
35
|
+
export interface BootMantleRuntimeArgs {
|
|
36
|
+
readonly plan: RuntimePlan;
|
|
37
|
+
readonly storage: MantleStorageAdapter;
|
|
38
|
+
readonly ports?: MantleRuntimePorts;
|
|
39
|
+
readonly handlers?: Readonly<Record<string, AnyHandler>>;
|
|
40
|
+
readonly deployment?: Omit<DeploymentPreparationOptions, "handlerNames">;
|
|
41
|
+
}
|
|
42
|
+
export interface InvokeMantleProcedureRequest {
|
|
43
|
+
readonly procedure: string;
|
|
44
|
+
readonly input: unknown;
|
|
45
|
+
readonly ctx: HandlerContext;
|
|
46
|
+
readonly pathPrefix?: string;
|
|
47
|
+
}
|
|
48
|
+
export interface ExecuteMantleViewRequest {
|
|
49
|
+
readonly view: string;
|
|
50
|
+
readonly options?: ViewQueryOptions;
|
|
51
|
+
readonly ctx?: HandlerContext;
|
|
52
|
+
readonly pathPrefix?: string;
|
|
53
|
+
}
|
|
54
|
+
export interface InvokeMantleTriggerRequest {
|
|
55
|
+
readonly trigger: string;
|
|
56
|
+
readonly input: unknown;
|
|
57
|
+
readonly ctx: HandlerContext;
|
|
58
|
+
readonly pathPrefix?: string;
|
|
59
|
+
}
|
|
60
|
+
/** Programmatic Core bound to one prepared semantic revision. */
|
|
61
|
+
export interface MantleRuntime {
|
|
62
|
+
readonly revision: string;
|
|
63
|
+
/** Linked schemas needed by optional projections such as Mantle Web. */
|
|
64
|
+
readonly schemas: ReadonlyMap<string, SchemaManifest>;
|
|
65
|
+
readonly entries: EntryReader;
|
|
66
|
+
readonly siteConfig: SiteConfigRepository | null;
|
|
67
|
+
readonly updateSiteSettings: UpdateSiteSettingsUseCase | null;
|
|
68
|
+
readonly media: MantleMedia | null;
|
|
69
|
+
readonly createDraft: CreateDraftUseCase;
|
|
70
|
+
readonly updateDraft: UpdateDraftUseCase;
|
|
71
|
+
readonly getEntry: GetEntryUseCase;
|
|
72
|
+
readonly listEntries: ListEntriesUseCase;
|
|
73
|
+
readonly requestPublish: RequestPublishUseCase;
|
|
74
|
+
readonly unpublish: UnpublishUseCase;
|
|
75
|
+
readonly archive: ArchiveUseCase;
|
|
76
|
+
readonly deleteEntry: DeleteEntryUseCase;
|
|
77
|
+
invokeProcedure<O = unknown>(request: InvokeMantleProcedureRequest): Promise<InvokeProcedureResponse<O>>;
|
|
78
|
+
executeView<R = Record<string, unknown>>(request: ExecuteMantleViewRequest): Promise<ExecuteViewResponse<R>>;
|
|
79
|
+
invokeTrigger<O = unknown>(request: InvokeMantleTriggerRequest): Promise<InvokeProcedureResponse<O>>;
|
|
80
|
+
runDeferredHook(request: RunDeferredHookRequest): Promise<void>;
|
|
81
|
+
}
|
|
82
|
+
export interface MantleMedia {
|
|
83
|
+
readonly storage: MediaStorage;
|
|
84
|
+
readonly createUpload: CreateMediaUploadUseCase;
|
|
85
|
+
readonly commitUpload: CommitMediaUploadUseCase;
|
|
86
|
+
readonly listAssets: ListMediaAssetsUseCase;
|
|
87
|
+
readonly getAsset: GetMediaAssetUseCase;
|
|
88
|
+
readonly updateAsset: UpdateMediaAssetUseCase;
|
|
89
|
+
readonly deleteAsset: DeleteMediaAssetUseCase;
|
|
90
|
+
resolve(id: string): Promise<MediaAsset | null>;
|
|
91
|
+
resolveMany(ids: readonly string[]): Promise<ReadonlyMap<string, MediaAsset>>;
|
|
92
|
+
}
|
|
93
|
+
/** Prepare and bind once. Hosts remain responsible for caching and retry policy. */
|
|
94
|
+
export declare function bootMantleRuntime(args: BootMantleRuntimeArgs): Promise<MantleRuntime>;
|
|
95
|
+
export declare function createMantleRuntime(args: CreateMantleRuntimeArgs): MantleRuntime;
|
|
96
|
+
//# sourceMappingURL=MantleRuntime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MantleRuntime.d.ts","sourceRoot":"","sources":["../src/MantleRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACnF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AACvF,OAAO,EAAe,KAAK,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAGhE,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAK9E,OAAO,EAEL,KAAK,WAAW,EACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAG3E,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAKhF,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACxB,MAAM,0BAA0B,CAAC;AAKlC,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAGL,KAAK,4BAA4B,EAClC,MAAM,uCAAuC,CAAC;AAE/C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAC3C,QAAQ,CAAC,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IACzD,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IAC7B,oEAAoE;IACpE,QAAQ,CAAC,yBAAyB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IACrC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IACzD,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,4BAA4B,EAAE,cAAc,CAAC,CAAC;CAC1E;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,iEAAiE;AACjE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,wEAAwE;IACxE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACtD,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACjD,QAAQ,CAAC,kBAAkB,EAAE,yBAAyB,GAAG,IAAI,CAAC;IAC9D,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IACnC,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,eAAe,CAAC,CAAC,GAAG,OAAO,EACzB,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,WAAW,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,aAAa,CAAC,CAAC,GAAG,OAAO,EACvB,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjE;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,wBAAwB,CAAC;IAChD,QAAQ,CAAC,YAAY,EAAE,wBAAwB,CAAC;IAChD,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,uBAAuB,CAAC;IAC9C,QAAQ,CAAC,WAAW,EAAE,uBAAuB,CAAC;IAC9C,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAChD,WAAW,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;CAC/E;AAED,oFAAoF;AACpF,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC,CAO3F;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,uBAAuB,GAAG,aAAa,CA6JhF"}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import { EntryDataValidator, runtimeDiagnostic, } from "@aotter/mantle-spec";
|
|
2
|
+
import { SystemClock } from "./domain/port/Clock.js";
|
|
3
|
+
import { buildHandlerRegistry, } from "./domain/port/HandlerRegistry.js";
|
|
4
|
+
import { RandomUuidGenerator, } from "./domain/port/IdGenerator.js";
|
|
5
|
+
import { TriggerIndex } from "./domain/service/TriggerIndex.js";
|
|
6
|
+
import { LifecycleHookingEntryRepository } from "./infrastructure/persistence/LifecycleHookingEntryRepository.js";
|
|
7
|
+
import { ArchiveUseCase, CreateDraftUseCase, DeleteEntryUseCase, GetEntryUseCase, ListEntriesUseCase, RequestPublishUseCase, UnpublishUseCase, UpdateDraftUseCase, } from "./usecase/content/index.js";
|
|
8
|
+
import { RunDeferredHookUseCase, RunLifecycleHooksUseCase, } from "./usecase/lifecycle/index.js";
|
|
9
|
+
import { CommitMediaUploadUseCase, CreateMediaUploadUseCase, DeleteMediaAssetUseCase, GetMediaAssetUseCase, ListMediaAssetsUseCase, UpdateMediaAssetUseCase, } from "./usecase/media/index.js";
|
|
10
|
+
import { InvokeBuiltinUseCase, InvokeProcedureUseCase, } from "./usecase/procedure/index.js";
|
|
11
|
+
import { ExecuteViewUseCase, } from "./usecase/view/index.js";
|
|
12
|
+
import { UpdateSiteSettingsUseCase } from "./usecase/site/index.js";
|
|
13
|
+
import { assertDeploymentPlan, prepareDeployment, } from "./usecase/boot/ValidateBootUseCase.js";
|
|
14
|
+
/** Prepare and bind once. Hosts remain responsible for caching and retry policy. */
|
|
15
|
+
export async function bootMantleRuntime(args) {
|
|
16
|
+
const handlers = { ...(args.handlers ?? {}) };
|
|
17
|
+
const prepared = await prepareDeployment(args.plan, args.storage, {
|
|
18
|
+
...args.deployment,
|
|
19
|
+
handlerNames: Object.keys(handlers),
|
|
20
|
+
});
|
|
21
|
+
return createMantleRuntime({ prepared, handlers, ports: args.ports });
|
|
22
|
+
}
|
|
23
|
+
export function createMantleRuntime(args) {
|
|
24
|
+
const { plan, storage: prepared } = args.prepared;
|
|
25
|
+
const ports = args.ports ?? {};
|
|
26
|
+
if (args.prepared.handlerNames) {
|
|
27
|
+
assertDeploymentPlan(plan, { handlerNames: Object.keys(args.handlers ?? {}) });
|
|
28
|
+
}
|
|
29
|
+
const schemasByName = manifestMap(plan.schemas);
|
|
30
|
+
const proceduresByName = manifestMap(plan.procedures);
|
|
31
|
+
const viewsByName = manifestMap(plan.views);
|
|
32
|
+
const triggersByName = manifestMap(plan.triggers);
|
|
33
|
+
const registry = buildHandlerRegistry(args.handlers ?? {});
|
|
34
|
+
const clock = ports.clock ?? SystemClock;
|
|
35
|
+
const idgen = ports.idgen ?? RandomUuidGenerator;
|
|
36
|
+
const localePolicy = ports.localePolicy ?? prepared.localePolicy;
|
|
37
|
+
const validator = new EntryDataValidator();
|
|
38
|
+
const triggerIndex = TriggerIndex.fromPlan(plan.lifecycleHooks, plan.triggers);
|
|
39
|
+
let entries;
|
|
40
|
+
const entriesProxy = {
|
|
41
|
+
create: (request) => entries.create(request),
|
|
42
|
+
get: (id) => entries.get(id),
|
|
43
|
+
update: (request) => entries.update(request),
|
|
44
|
+
delete: (request) => entries.delete(request),
|
|
45
|
+
transitionStatus: (request) => entries.transitionStatus(request),
|
|
46
|
+
list: (request) => entries.list(request),
|
|
47
|
+
findByDataField: (request) => entries.findByDataField(request),
|
|
48
|
+
findByDataFields: (request) => entries.findByDataFields(request),
|
|
49
|
+
};
|
|
50
|
+
const invokeBuiltin = new InvokeBuiltinUseCase(entriesProxy, schemasByName, clock, idgen, localePolicy, validator);
|
|
51
|
+
const invokeProcedure = new InvokeProcedureUseCase(registry, invokeBuiltin, proceduresByName);
|
|
52
|
+
const lifecycleHooks = new RunLifecycleHooksUseCase(triggerIndex, proceduresByName, (request) => invokeProcedure.execute(request));
|
|
53
|
+
entries = invalidateAfterWrites(new LifecycleHookingEntryRepository(prepared.entries, triggerIndex, lifecycleHooks, idgen, ports.deferredHookDispatcher), ports.onPublishingContentChange, (collection) => (schemasByName.get(collection)?.spec.lifecycle ?? "publishing") === "publishing");
|
|
54
|
+
const createDraft = new CreateDraftUseCase(entries, schemasByName, clock, idgen, localePolicy, validator);
|
|
55
|
+
const updateDraft = new UpdateDraftUseCase(entries, schemasByName, clock, localePolicy, validator);
|
|
56
|
+
const getEntry = new GetEntryUseCase(entries);
|
|
57
|
+
const listEntries = new ListEntriesUseCase(entries, schemasByName);
|
|
58
|
+
const requestPublish = new RequestPublishUseCase(entries, schemasByName, clock, localePolicy, validator);
|
|
59
|
+
const unpublish = new UnpublishUseCase(entries, schemasByName, clock);
|
|
60
|
+
const archive = new ArchiveUseCase(entries, schemasByName, clock);
|
|
61
|
+
const deleteEntry = new DeleteEntryUseCase(entries, schemasByName);
|
|
62
|
+
const executeView = new ExecuteViewUseCase(prepared.views, async (request) => {
|
|
63
|
+
const procedure = proceduresByName.get(request.procedure);
|
|
64
|
+
if (!procedure)
|
|
65
|
+
return unknown("Procedure", request.procedure, request.pathPrefix);
|
|
66
|
+
return invokeProcedure.execute({
|
|
67
|
+
procedure,
|
|
68
|
+
input: request.input,
|
|
69
|
+
ctx: request.ctx,
|
|
70
|
+
pathPrefix: request.pathPrefix,
|
|
71
|
+
});
|
|
72
|
+
}, plan.views);
|
|
73
|
+
const runDeferredHook = new RunDeferredHookUseCase(lifecycleHooks);
|
|
74
|
+
const siteConfig = prepared.siteConfig ?? null;
|
|
75
|
+
const updateSiteSettings = siteConfig
|
|
76
|
+
? new UpdateSiteSettingsUseCase(siteConfig, ports.onPublishingContentChange)
|
|
77
|
+
: null;
|
|
78
|
+
const media = ports.mediaStorage
|
|
79
|
+
? createMedia(ports.mediaStorage, prepared.mediaAssets, prepared.pendingUploads, {
|
|
80
|
+
clock,
|
|
81
|
+
idgen,
|
|
82
|
+
siteConfig,
|
|
83
|
+
allowSvg: ports.mediaAllowSvg ?? false,
|
|
84
|
+
})
|
|
85
|
+
: null;
|
|
86
|
+
return {
|
|
87
|
+
revision: plan.semanticFingerprint,
|
|
88
|
+
schemas: schemasByName,
|
|
89
|
+
entries: prepared.entries,
|
|
90
|
+
siteConfig,
|
|
91
|
+
updateSiteSettings,
|
|
92
|
+
media,
|
|
93
|
+
createDraft,
|
|
94
|
+
updateDraft,
|
|
95
|
+
getEntry,
|
|
96
|
+
listEntries,
|
|
97
|
+
requestPublish,
|
|
98
|
+
unpublish,
|
|
99
|
+
archive,
|
|
100
|
+
deleteEntry,
|
|
101
|
+
invokeProcedure: (request) => {
|
|
102
|
+
const procedure = proceduresByName.get(request.procedure);
|
|
103
|
+
if (!procedure) {
|
|
104
|
+
return Promise.resolve(unknown("Procedure", request.procedure, request.pathPrefix));
|
|
105
|
+
}
|
|
106
|
+
return invokeProcedure.execute({ ...request, procedure });
|
|
107
|
+
},
|
|
108
|
+
executeView: (request) => {
|
|
109
|
+
const view = viewsByName.get(request.view);
|
|
110
|
+
if (!view)
|
|
111
|
+
return Promise.resolve(unknown("View", request.view, request.pathPrefix));
|
|
112
|
+
return executeView.execute({ ...request, view });
|
|
113
|
+
},
|
|
114
|
+
invokeTrigger: (request) => {
|
|
115
|
+
const trigger = plan.triggers[request.trigger];
|
|
116
|
+
if (!trigger)
|
|
117
|
+
return Promise.resolve(unknown("Trigger", request.trigger, request.pathPrefix));
|
|
118
|
+
const procedure = proceduresByName.get(trigger.target);
|
|
119
|
+
if (!procedure) {
|
|
120
|
+
return Promise.resolve(unknown("Procedure", trigger.target, request.pathPrefix));
|
|
121
|
+
}
|
|
122
|
+
return invokeProcedure.execute({
|
|
123
|
+
procedure,
|
|
124
|
+
input: request.input,
|
|
125
|
+
ctx: request.ctx,
|
|
126
|
+
pathPrefix: request.pathPrefix ?? `manifest:Trigger/${request.trigger}`,
|
|
127
|
+
});
|
|
128
|
+
},
|
|
129
|
+
runDeferredHook: (request) => runDeferredHook.execute(request),
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
function createMedia(storage, assets, pending, options) {
|
|
133
|
+
if (!assets || !pending || !options.siteConfig) {
|
|
134
|
+
throw new Error("mediaStorage requires prepared media and site-config repositories");
|
|
135
|
+
}
|
|
136
|
+
return {
|
|
137
|
+
storage,
|
|
138
|
+
createUpload: new CreateMediaUploadUseCase(storage, pending, options.clock, options.idgen, options.siteConfig, { allowSvg: options.allowSvg }),
|
|
139
|
+
commitUpload: new CommitMediaUploadUseCase(storage, pending, options.clock, assets),
|
|
140
|
+
listAssets: new ListMediaAssetsUseCase(assets),
|
|
141
|
+
getAsset: new GetMediaAssetUseCase(assets),
|
|
142
|
+
updateAsset: new UpdateMediaAssetUseCase(assets),
|
|
143
|
+
deleteAsset: new DeleteMediaAssetUseCase(storage, assets),
|
|
144
|
+
resolve: (id) => assets.findById(id),
|
|
145
|
+
resolveMany: (ids) => assets.findManyByIds(ids),
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
function manifestMap(record) {
|
|
149
|
+
return new Map(Object.values(record).map((item) => [item.name, item.manifest]));
|
|
150
|
+
}
|
|
151
|
+
function unknown(kind, name, pathPrefix) {
|
|
152
|
+
return {
|
|
153
|
+
ok: false,
|
|
154
|
+
diagnostic: runtimeDiagnostic({
|
|
155
|
+
code: kind === "Procedure" ? "PROCEDURE_NOT_FOUND" : "NOT_FOUND",
|
|
156
|
+
severity: "error",
|
|
157
|
+
path: pathPrefix ?? `runtime:${kind}/${name}`,
|
|
158
|
+
value: name,
|
|
159
|
+
expected: `name of a ${kind} in the bound RuntimePlan`,
|
|
160
|
+
}),
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
function invalidateAfterWrites(inner, invalidate, affectsPublishingContent) {
|
|
164
|
+
if (!invalidate)
|
|
165
|
+
return inner;
|
|
166
|
+
return {
|
|
167
|
+
async create(args) {
|
|
168
|
+
const row = await inner.create(args);
|
|
169
|
+
if (affectsPublishingContent(args.collection))
|
|
170
|
+
await invalidate();
|
|
171
|
+
return row;
|
|
172
|
+
},
|
|
173
|
+
get: (id) => inner.get(id),
|
|
174
|
+
async update(args) {
|
|
175
|
+
const row = await inner.update(args);
|
|
176
|
+
if (affectsPublishingContent(args.collection))
|
|
177
|
+
await invalidate();
|
|
178
|
+
return row;
|
|
179
|
+
},
|
|
180
|
+
async delete(args) {
|
|
181
|
+
const result = await inner.delete(args);
|
|
182
|
+
if (result.removed && affectsPublishingContent(args.collection))
|
|
183
|
+
await invalidate();
|
|
184
|
+
return result;
|
|
185
|
+
},
|
|
186
|
+
async transitionStatus(args) {
|
|
187
|
+
const row = await inner.transitionStatus(args);
|
|
188
|
+
if (affectsPublishingContent(args.collection))
|
|
189
|
+
await invalidate();
|
|
190
|
+
return row;
|
|
191
|
+
},
|
|
192
|
+
list: (args) => inner.list(args),
|
|
193
|
+
findByDataField: (args) => inner.findByDataField(args),
|
|
194
|
+
findByDataFields: (args) => inner.findByDataFields(args),
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
//# sourceMappingURL=MantleRuntime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MantleRuntime.js","sourceRoot":"","sources":["../src/MantleRuntime.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,10 +31,9 @@ export interface HandlerContext<Env = unknown> {
|
|
|
31
31
|
/** Adapter-specific bindings. The default stays portable; consumers may
|
|
32
32
|
* supply their Worker Env type through `HandlerFn`/generated handlers. */
|
|
33
33
|
readonly env: Env;
|
|
34
|
-
/**
|
|
35
|
-
*
|
|
36
|
-
* it for deferred lifecycle-hook fallback.
|
|
37
|
-
* adapters can leave it out. */
|
|
34
|
+
/** Platform `waitUntil`-style fire-and-forget bridge. An adapter may
|
|
35
|
+
* populate it from Cloudflare `ExecutionContext` or Vercel Functions;
|
|
36
|
+
* runtime uses it for deferred lifecycle-hook fallback. */
|
|
38
37
|
readonly waitUntil?: (p: Promise<unknown>) => void;
|
|
39
38
|
/** Lifecycle event metadata. Populated by `RunLifecycleHooksUseCase`
|
|
40
39
|
* when this ctx is passed to a Procedure invoked AS a lifecycle hook
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HandlerContext.d.ts","sourceRoot":"","sources":["../../../src/domain/model/HandlerContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,cAAc,CAAC,GAAG,GAAG,OAAO;IAC3C,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9C,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;KAAE,GAAG,IAAI,CAAC;IACzE;;gEAE4D;IAC5D,QAAQ,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC;IACnC;+EAC2E;IAC3E,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB
|
|
1
|
+
{"version":3,"file":"HandlerContext.d.ts","sourceRoot":"","sources":["../../../src/domain/model/HandlerContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,cAAc,CAAC,GAAG,GAAG,OAAO;IAC3C,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9C,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;KAAE,GAAG,IAAI,CAAC;IACzE;;gEAE4D;IAC5D,QAAQ,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC;IACnC;+EAC2E;IAC3E,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB;;gEAE4D;IAC5D,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACnD;;;iCAG6B;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,CAAC;CACxC;AAED,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,gBAAgB,CAAC;AAEhF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IACpC,mEAAmE;IACnE,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,qBAAqB;IACpC,sEAAsE;IACtE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;iEAC6D;IAC7D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;yEACqE;IACrE,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;CACjC;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,GAAG,GAAG,OAAO,IAAI,CAC/D,KAAK,EAAE,CAAC,EACR,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,KACrB,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAEpB;;;;;GAKG;AAEH,MAAM,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { PreparedMantleStorage } from "../port/MantleStorageAdapter.js";
|
|
2
|
+
import type { RuntimePlan } from "../service/RuntimePlanCompiler.js";
|
|
3
|
+
declare const preparedMantleRevision: unique symbol;
|
|
4
|
+
/** Exact plan plus semantic storage proven ready for that revision. */
|
|
5
|
+
export interface PreparedMantleRevision {
|
|
6
|
+
readonly [preparedMantleRevision]: true;
|
|
7
|
+
readonly plan: RuntimePlan;
|
|
8
|
+
readonly storage: PreparedMantleStorage;
|
|
9
|
+
/** Present when preparation validated Procedure handler availability. */
|
|
10
|
+
readonly handlerNames?: readonly string[];
|
|
11
|
+
}
|
|
12
|
+
export declare function sealPreparedMantleRevision(plan: RuntimePlan, storage: PreparedMantleStorage, handlerNames?: readonly string[]): PreparedMantleRevision;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=PreparedMantleRevision.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PreparedMantleRevision.d.ts","sourceRoot":"","sources":["../../../src/domain/model/PreparedMantleRevision.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAErE,OAAO,CAAC,MAAM,sBAAsB,EAAE,OAAO,MAAM,CAAC;AAEpD,uEAAuE;AACvE,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,CAAC,sBAAsB,CAAC,EAAE,IAAI,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC;IACxC,yEAAyE;IACzE,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C;AAED,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,qBAAqB,EAC9B,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,GAC/B,sBAAsB,CAMxB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export function sealPreparedMantleRevision(plan, storage, handlerNames) {
|
|
2
|
+
return Object.freeze({
|
|
3
|
+
plan,
|
|
4
|
+
storage,
|
|
5
|
+
...(handlerNames ? { handlerNames: Object.freeze([...new Set(handlerNames)].sort()) } : {}),
|
|
6
|
+
});
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=PreparedMantleRevision.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PreparedMantleRevision.js","sourceRoot":"","sources":["../../../src/domain/model/PreparedMantleRevision.ts"],"names":[],"mappings":"AAcA,MAAM,UAAU,0BAA0B,CACxC,IAAiB,EACjB,OAA8B,EAC9B,YAAgC;IAEhC,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,IAAI;QACJ,OAAO;QACP,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5F,CAA2B,CAAC;AAC/B,CAAC"}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* `@aotter/mantle-spec`. */
|
|
3
3
|
export * from "./EntryRow.js";
|
|
4
4
|
export * from "./HandlerContext.js";
|
|
5
|
+
export type { PreparedMantleRevision } from "./PreparedMantleRevision.js";
|
|
5
6
|
export type { PendingUploadRecord, PendingUploadVariant, } from "./PendingUploadRecord.js";
|
|
6
|
-
export type { SeoMeta } from "./SeoMeta.js";
|
|
7
|
-
export { TemplateRegistry, type EntryContext, type ListContext, type EntryTemplate, type ListTemplate, } from "./TemplateRegistry.js";
|
|
8
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/model/index.ts"],"names":[],"mappings":"AAAA;6BAC6B;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/model/index.ts"],"names":[],"mappings":"AAAA;6BAC6B;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,YAAY,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,YAAY,EACV,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/model/index.ts"],"names":[],"mappings":"AAAA;6BAC6B;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/model/index.ts"],"names":[],"mappings":"AAAA;6BAC6B;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC"}
|
|
@@ -3,8 +3,7 @@
|
|
|
3
3
|
* calling `Date.now()` directly so tests can run with a fixed clock
|
|
4
4
|
* and production stays on real time without ceremony.
|
|
5
5
|
*
|
|
6
|
-
* Defaults: `Date.now`.
|
|
7
|
-
* binds the default; tests override.
|
|
6
|
+
* Defaults: `Date.now`. `createMantleRuntime` binds the default; tests override.
|
|
8
7
|
*/
|
|
9
8
|
export interface Clock {
|
|
10
9
|
now(): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Clock.d.ts","sourceRoot":"","sources":["../../../src/domain/port/Clock.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Clock.d.ts","sourceRoot":"","sources":["../../../src/domain/port/Clock.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,KAAK;IACpB,GAAG,IAAI,MAAM,CAAC;CACf;AAED,eAAO,MAAM,WAAW,EAAE,KAAiC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Clock.js","sourceRoot":"","sources":["../../../src/domain/port/Clock.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Clock.js","sourceRoot":"","sources":["../../../src/domain/port/Clock.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,WAAW,GAAU,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC"}
|
|
@@ -1,24 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* behind this surface; the runtime never sees `D1Database`, `Pool` (postgres),
|
|
6
|
-
* or any concrete driver.
|
|
2
|
+
* SQLite-shaped implementation detail used by the official SQLite/D1
|
|
3
|
+
* storage preparation path. Portable runtime use cases depend on semantic
|
|
4
|
+
* repositories and `ViewQueryExecutor`, never this SQL surface.
|
|
7
5
|
*
|
|
8
|
-
* The shape
|
|
9
|
-
*
|
|
10
|
-
* across the adapters we expect to ship. Adapters wrap their native
|
|
11
|
-
* driver to this shape:
|
|
6
|
+
* The shape stays intentionally close to D1's API. Adapters that reuse the
|
|
7
|
+
* shipped SQLite implementation wrap their native driver to this shape:
|
|
12
8
|
*
|
|
13
9
|
* - `mantle-cloudflare` wraps `env.DB` (D1) directly (1:1 surface).
|
|
14
|
-
* - A future Postgres adapter wraps `pg` to the same shape.
|
|
15
10
|
* - Core tests supply in-memory implementations under `test/fakes/`.
|
|
16
11
|
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* naming convention (no `Port` suffix; ports are discoverable by
|
|
21
|
-
* package alone).
|
|
12
|
+
* PostgreSQL, MongoDB, and application-owned tables implement
|
|
13
|
+
* `MantleStorageAdapter` with semantic ports instead of emulating SQLite.
|
|
14
|
+
* See ADR-0019.
|
|
22
15
|
*/
|
|
23
16
|
export interface DatabaseDriver {
|
|
24
17
|
/** Build a parameterised statement. Bind values then execute. */
|
|
@@ -27,9 +20,7 @@ export interface DatabaseDriver {
|
|
|
27
20
|
* all-or-nothing semantics — a child-row delete + parent delete
|
|
28
21
|
* can't half-land. */
|
|
29
22
|
batch(stmts: ReadonlyArray<PreparedStatement>): Promise<readonly BatchResult[]>;
|
|
30
|
-
/** Migration runner
|
|
31
|
-
* `migrations.runAll()` once per isolate. Adapters supply the
|
|
32
|
-
* storage; the runtime supplies the canonical migration list. */
|
|
23
|
+
/** Migration runner used by SQLite storage preparation. */
|
|
33
24
|
readonly migrations: MigrationRunner;
|
|
34
25
|
}
|
|
35
26
|
/**
|
|
@@ -64,9 +55,10 @@ export interface BatchResult {
|
|
|
64
55
|
readonly results?: readonly Record<string, unknown>[];
|
|
65
56
|
}
|
|
66
57
|
/**
|
|
67
|
-
* Migration runner contract. The adapter
|
|
68
|
-
*
|
|
69
|
-
*
|
|
58
|
+
* Migration runner contract. The adapter supplies this against its driver;
|
|
59
|
+
* SQLite adapters can reuse `SqliteMigrationRunner`. Selected SQLite
|
|
60
|
+
* preparation calls `runAll(migrations)`.
|
|
61
|
+
* Migration order is the array index — Core supplies the
|
|
70
62
|
* canonical list (see `infrastructure/boot/canonicalMigrations.ts`);
|
|
71
63
|
* adapter just executes.
|
|
72
64
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatabaseDriver.d.ts","sourceRoot":"","sources":["../../../src/domain/port/DatabaseDriver.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"DatabaseDriver.d.ts","sourceRoot":"","sources":["../../../src/domain/port/DatabaseDriver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,cAAc;IAC7B,iEAAiE;IACjE,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAC;IACxC;;2BAEuB;IACvB,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC,CAAC;IAChF,2DAA2D;IAC3D,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;CACtC;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC;;8BAE0B;IAC1B,IAAI,CAAC,GAAG,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,iBAAiB,CAAC;IAC3D,qEAAqE;IACrE,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACxD,+BAA+B;IAC/B,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC1D;8EAC0E;IAC1E,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;CAC3B;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;CACvD;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,SAAS;IACxB;iDAC6C;IAC7C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;kDAC8C;IAC9C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB"}
|
|
@@ -2,7 +2,7 @@ import type { AnyHandler, HandlerFn } from "../model/HandlerContext.js";
|
|
|
2
2
|
/**
|
|
3
3
|
* Handler registry keyed by `Procedure.handler.ref`. Consumers call
|
|
4
4
|
* `register` at boot — typically via the `handlers` option of
|
|
5
|
-
* `
|
|
5
|
+
* `createMantleRuntime` — and the dispatcher resolves per request via
|
|
6
6
|
* `get`.
|
|
7
7
|
*
|
|
8
8
|
* The registry is a usecase-level port: use cases (specifically
|
|
@@ -16,8 +16,7 @@
|
|
|
16
16
|
*
|
|
17
17
|
* The default `RandomUuidGenerator` (UUID v4 via Web Crypto) satisfies
|
|
18
18
|
* this. Counter-based / sortable / "debuggable" alternatives MUST be
|
|
19
|
-
* confined to test code — never wired into a
|
|
20
|
-
* adapter ctor at runtime.
|
|
19
|
+
* confined to test code — never wired into a production runtime or adapter.
|
|
21
20
|
*/
|
|
22
21
|
export interface IdGenerator {
|
|
23
22
|
next(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IdGenerator.d.ts","sourceRoot":"","sources":["../../../src/domain/port/IdGenerator.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"IdGenerator.d.ts","sourceRoot":"","sources":["../../../src/domain/port/IdGenerator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,IAAI,MAAM,CAAC;CAChB;AAED;;wCAEwC;AACxC,eAAO,MAAM,mBAAmB,EAAE,WAAiD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IdGenerator.js","sourceRoot":"","sources":["../../../src/domain/port/IdGenerator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"IdGenerator.js","sourceRoot":"","sources":["../../../src/domain/port/IdGenerator.ts"],"names":[],"mappings":"AAwBA;;wCAEwC;AACxC,MAAM,CAAC,MAAM,mBAAmB,GAAgB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { RuntimePlan } from "../service/RuntimePlanCompiler.js";
|
|
2
|
+
import type { EntryReader } from "./EntryReader.js";
|
|
3
|
+
import type { EntryRepository } from "./EntryRepository.js";
|
|
4
|
+
import type { MediaAssetRepository } from "./MediaAssetRepository.js";
|
|
5
|
+
import type { PendingUploadRepository } from "./PendingUploadRepository.js";
|
|
6
|
+
import type { LocalePolicyReader } from "./SiteConfigRepository.js";
|
|
7
|
+
import type { SiteConfigRepository } from "./SiteConfigRepository.js";
|
|
8
|
+
import type { ViewQueryExecutor } from "./ViewQueryExecutor.js";
|
|
9
|
+
export interface PreparedMantleStorage {
|
|
10
|
+
readonly entries: EntryRepository & EntryReader;
|
|
11
|
+
readonly views: ViewQueryExecutor;
|
|
12
|
+
readonly localePolicy?: LocalePolicyReader;
|
|
13
|
+
readonly siteConfig?: SiteConfigRepository;
|
|
14
|
+
readonly mediaAssets?: MediaAssetRepository;
|
|
15
|
+
readonly pendingUploads?: PendingUploadRepository;
|
|
16
|
+
}
|
|
17
|
+
/** Prepare one immutable plan against storage already owned by the host. */
|
|
18
|
+
export interface MantleStorageAdapter {
|
|
19
|
+
/** Native View dialects accepted by this adapter. Declarative Views are required. */
|
|
20
|
+
readonly nativeViewDialects?: readonly string[];
|
|
21
|
+
prepare(plan: RuntimePlan): Promise<PreparedMantleStorage>;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=MantleStorageAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MantleStorageAdapter.d.ts","sourceRoot":"","sources":["../../../src/domain/port/MantleStorageAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,WAAW,CAAC;IAChD,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,QAAQ,CAAC,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,WAAW,CAAC,EAAE,oBAAoB,CAAC;IAC5C,QAAQ,CAAC,cAAc,CAAC,EAAE,uBAAuB,CAAC;CACnD;AAED,4EAA4E;AAC5E,MAAM,WAAW,oBAAoB;IACnC,qFAAqF;IACrF,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;CAC5D"}
|