@aotter/mantle-runtime 0.1.0-alpha.9 → 0.1.2-alpha.1
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 +74 -4
- package/dist/MantleRuntime.js +12 -4
- package/dist/MantleRuntime.js.map +1 -1
- package/dist/domain/model/EntryRow.d.ts +10 -1
- package/dist/domain/model/EntryRow.d.ts.map +1 -1
- package/dist/domain/model/EntryRow.js +19 -0
- package/dist/domain/model/EntryRow.js.map +1 -1
- package/dist/domain/port/EntryReader.d.ts +34 -0
- package/dist/domain/port/EntryReader.d.ts.map +1 -1
- package/dist/domain/port/EntryRepository.d.ts +5 -0
- package/dist/domain/port/EntryRepository.d.ts.map +1 -1
- package/dist/domain/port/index.d.ts +1 -1
- package/dist/domain/port/index.d.ts.map +1 -1
- package/dist/domain/port/index.js.map +1 -1
- package/dist/domain/service/CallableCapabilityProjector.d.ts +28 -0
- package/dist/domain/service/CallableCapabilityProjector.d.ts.map +1 -0
- package/dist/domain/service/CallableCapabilityProjector.js +67 -0
- package/dist/domain/service/CallableCapabilityProjector.js.map +1 -0
- package/dist/domain/service/EntryMutationDiagnostics.d.ts.map +1 -1
- package/dist/domain/service/EntryMutationDiagnostics.js +11 -1
- package/dist/domain/service/EntryMutationDiagnostics.js.map +1 -1
- package/dist/domain/service/PathMatcher.d.ts +7 -0
- package/dist/domain/service/PathMatcher.d.ts.map +1 -1
- package/dist/domain/service/PathMatcher.js +56 -0
- package/dist/domain/service/PathMatcher.js.map +1 -1
- package/dist/domain/service/RuntimePlanCompiler.d.ts +7 -2
- package/dist/domain/service/RuntimePlanCompiler.d.ts.map +1 -1
- package/dist/domain/service/RuntimePlanCompiler.js +1 -0
- package/dist/domain/service/RuntimePlanCompiler.js.map +1 -1
- package/dist/domain/service/index.d.ts +1 -0
- package/dist/domain/service/index.d.ts.map +1 -1
- package/dist/domain/service/index.js +1 -0
- package/dist/domain/service/index.js.map +1 -1
- 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 +8 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/boot/canonicalMigrations.d.ts +4 -2
- package/dist/infrastructure/boot/canonicalMigrations.d.ts.map +1 -1
- package/dist/infrastructure/boot/canonicalMigrations.js +9 -2
- package/dist/infrastructure/boot/canonicalMigrations.js.map +1 -1
- package/dist/infrastructure/http/createMantleRequestHandler.d.ts +3 -0
- package/dist/infrastructure/http/createMantleRequestHandler.d.ts.map +1 -1
- package/dist/infrastructure/http/createMantleRequestHandler.js +36 -15
- package/dist/infrastructure/http/createMantleRequestHandler.js.map +1 -1
- package/dist/infrastructure/http/readJsonBody.d.ts +8 -0
- package/dist/infrastructure/http/readJsonBody.d.ts.map +1 -0
- package/dist/infrastructure/http/readJsonBody.js +36 -0
- package/dist/infrastructure/http/readJsonBody.js.map +1 -0
- package/dist/infrastructure/mcp/McpJsonRpcDispatcher.d.ts +22 -17
- package/dist/infrastructure/mcp/McpJsonRpcDispatcher.d.ts.map +1 -1
- package/dist/infrastructure/mcp/McpJsonRpcDispatcher.js +74 -69
- package/dist/infrastructure/mcp/McpJsonRpcDispatcher.js.map +1 -1
- package/dist/infrastructure/mcp/McpToolCatalog.d.ts +11 -9
- package/dist/infrastructure/mcp/McpToolCatalog.d.ts.map +1 -1
- package/dist/infrastructure/mcp/McpToolCatalog.js +62 -72
- package/dist/infrastructure/mcp/McpToolCatalog.js.map +1 -1
- package/dist/infrastructure/persistence/DatabaseEntryRepository.d.ts +3 -1
- package/dist/infrastructure/persistence/DatabaseEntryRepository.d.ts.map +1 -1
- package/dist/infrastructure/persistence/DatabaseEntryRepository.js +141 -20
- package/dist/infrastructure/persistence/DatabaseEntryRepository.js.map +1 -1
- package/dist/infrastructure/persistence/DatabaseSiteConfigRepository.d.ts +2 -0
- package/dist/infrastructure/persistence/DatabaseSiteConfigRepository.d.ts.map +1 -1
- package/dist/infrastructure/persistence/DatabaseSiteConfigRepository.js +5 -1
- package/dist/infrastructure/persistence/DatabaseSiteConfigRepository.js.map +1 -1
- package/dist/infrastructure/persistence/Pagination.d.ts +6 -0
- package/dist/infrastructure/persistence/Pagination.d.ts.map +1 -1
- package/dist/infrastructure/persistence/Pagination.js +25 -0
- package/dist/infrastructure/persistence/Pagination.js.map +1 -1
- package/dist/infrastructure/storage/SqliteMantleStorageAdapter.d.ts +11 -1
- package/dist/infrastructure/storage/SqliteMantleStorageAdapter.d.ts.map +1 -1
- package/dist/infrastructure/storage/SqliteMantleStorageAdapter.js +7 -3
- package/dist/infrastructure/storage/SqliteMantleStorageAdapter.js.map +1 -1
- package/dist/infrastructure/testing/HttpBenchmarkHarness.d.ts +26 -1
- package/dist/infrastructure/testing/HttpBenchmarkHarness.d.ts.map +1 -1
- package/dist/infrastructure/testing/HttpBenchmarkHarness.js +27 -12
- package/dist/infrastructure/testing/HttpBenchmarkHarness.js.map +1 -1
- package/dist/infrastructure/testing/StorageConformance.d.ts +32 -0
- package/dist/infrastructure/testing/StorageConformance.d.ts.map +1 -0
- package/dist/infrastructure/testing/StorageConformance.js +305 -0
- package/dist/infrastructure/testing/StorageConformance.js.map +1 -0
- package/dist/testing-storage.d.ts +3 -0
- package/dist/testing-storage.d.ts.map +1 -0
- package/dist/testing-storage.js +3 -0
- package/dist/testing-storage.js.map +1 -0
- package/dist/usecase/content/ListEntriesUseCase.d.ts +1 -1
- package/dist/usecase/content/ListEntriesUseCase.d.ts.map +1 -1
- package/dist/usecase/content/ListEntriesUseCase.js +18 -2
- package/dist/usecase/content/ListEntriesUseCase.js.map +1 -1
- package/dist/usecase/dto/content/index.d.ts +2 -0
- package/dist/usecase/dto/content/index.d.ts.map +1 -1
- package/dist/usecase/media/DeleteMediaAssetUseCase.d.ts +3 -3
- package/dist/usecase/media/DeleteMediaAssetUseCase.d.ts.map +1 -1
- package/dist/usecase/media/DeleteMediaAssetUseCase.js +35 -19
- package/dist/usecase/media/DeleteMediaAssetUseCase.js.map +1 -1
- package/dist/usecase/procedure/InvokeBuiltinUseCase.d.ts +8 -2
- package/dist/usecase/procedure/InvokeBuiltinUseCase.d.ts.map +1 -1
- package/dist/usecase/procedure/InvokeBuiltinUseCase.js +96 -14
- package/dist/usecase/procedure/InvokeBuiltinUseCase.js.map +1 -1
- package/dist/usecase/procedure/InvokeProcedureUseCase.js +2 -2
- package/dist/usecase/procedure/InvokeProcedureUseCase.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/package.json +9 -5
package/README.md
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Runtime engine for mantle.
|
|
4
4
|
|
|
5
|
+
Documentation paths beginning with `node_modules/` below are relative to the
|
|
6
|
+
application root. Shared guides ship in the same-version `@aotter/mantle`
|
|
7
|
+
package; in an SDK checkout, those guides live under the root `docs/`.
|
|
8
|
+
|
|
5
9
|
This package owns the adapter-neutral Core pipeline after semantic compilation.
|
|
6
10
|
Storage adapters prepare `RuntimePlan` into existing content repositories/readers
|
|
7
11
|
and a `ViewQueryExecutor`; SQL-shaped drivers remain SQLite/D1 implementation
|
|
@@ -43,14 +47,80 @@ Node-based tooling may import `@aotter/mantle-runtime/testing` for the real
|
|
|
43
47
|
SQLite access-path and HTTP sampling helpers. That subpath is intentionally
|
|
44
48
|
separate from the Worker-safe package entry.
|
|
45
49
|
|
|
50
|
+
## Storage adapter conformance
|
|
51
|
+
|
|
52
|
+
Prefer an official adapter when its storage ownership fits your application.
|
|
53
|
+
Implement the existing `MantleStorageAdapter` ports when entries must participate
|
|
54
|
+
in application-owned storage or transactions. Test that implementation with
|
|
55
|
+
`runStorageConformance` from `@aotter/mantle-runtime/testing/storage` before
|
|
56
|
+
upgrading the SDK. This portable subpath works in browsers and server runtimes;
|
|
57
|
+
it imports neither a test framework nor the Node-only `/testing` helpers, and
|
|
58
|
+
the production entry does not import it.
|
|
59
|
+
|
|
60
|
+
The factory receives a sealed fixture `RuntimePlan` and must prepare a **fresh,
|
|
61
|
+
empty, disposable store for each check**. Return its `PreparedMantleStorage` and
|
|
62
|
+
a cleanup callback. If setup fails before returning, the factory owns cleanup.
|
|
63
|
+
For adapters with locale preparation, configure `en`, `zh-TW`, and `ja`.
|
|
64
|
+
|
|
65
|
+
For example, the official IndexedDB adapter can run the same contract as a
|
|
66
|
+
host-owned adapter:
|
|
67
|
+
|
|
68
|
+
```ts
|
|
69
|
+
import { IndexedDbMantleStorageAdapter } from "@aotter/mantle-indexeddb";
|
|
70
|
+
import { runStorageConformance } from "@aotter/mantle-runtime/testing/storage";
|
|
71
|
+
|
|
72
|
+
const report = await runStorageConformance({
|
|
73
|
+
async create(plan) {
|
|
74
|
+
const adapter = new IndexedDbMantleStorageAdapter({
|
|
75
|
+
databaseName: `conformance-${crypto.randomUUID()}`,
|
|
76
|
+
});
|
|
77
|
+
try {
|
|
78
|
+
return {
|
|
79
|
+
storage: await adapter.prepare(plan),
|
|
80
|
+
cleanup: () => adapter.deleteDatabase(),
|
|
81
|
+
};
|
|
82
|
+
} catch (error) {
|
|
83
|
+
await adapter.deleteDatabase();
|
|
84
|
+
throw error;
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
});
|
|
88
|
+
if (!report.ok) throw new Error(JSON.stringify(report.failures, null, 2));
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Seven checks cover CRUD and replacement updates, concurrent/stale version
|
|
92
|
+
conflicts, guarded status transitions/deletes, nested JSON clone isolation,
|
|
93
|
+
all public read helpers and their field projection, locale/null handling,
|
|
94
|
+
forward/backward cursors with equal timestamps, and declarative View projection,
|
|
95
|
+
parameters, nested `and`/`or`, ordering, and pagination. Cases run sequentially,
|
|
96
|
+
always attempt cleanup, and collect failures as `{ check, phase, message }`;
|
|
97
|
+
`phase` distinguishes setup, assertion, and cleanup failures. A fixture grammar
|
|
98
|
+
or compilation defect rejects the runner before creating storage.
|
|
99
|
+
|
|
100
|
+
The contract calls prepared storage directly. It does not run Runtime's locale
|
|
101
|
+
validation or lifecycle hooks; null/missing locale fixtures exercise the read
|
|
102
|
+
port's documented behavior. It uses JSON-compatible data, not arbitrary browser
|
|
103
|
+
objects. Native SQL, unique indexes, search, specialized sorts, migrations,
|
|
104
|
+
media/auth, cross-process races, and application transaction/lifecycle semantics
|
|
105
|
+
still need adapter-specific tests. A passing report is a version-specific
|
|
106
|
+
baseline, not certification of every storage feature.
|
|
107
|
+
|
|
46
108
|
For a fresh adapter implementation, start with
|
|
47
|
-
|
|
48
|
-
|
|
109
|
+
`node_modules/@aotter/mantle/docs/adapter-guide.md` and
|
|
110
|
+
`node_modules/@aotter/mantle/docs/adr/0019-sealed-manifest-runtime-pipeline.md`.
|
|
49
111
|
|
|
50
112
|
Queue-backed `after_*` lifecycle delivery is optional and at-least-once. See
|
|
51
|
-
|
|
113
|
+
`node_modules/@aotter/mantle/docs/handbook/cloudflare/deferred-hooks-queues.md`
|
|
52
114
|
for the strict envelope, idempotency key, Cloudflare bindings, retry/DLQ
|
|
53
115
|
behavior, and upgrade procedure.
|
|
54
116
|
|
|
55
117
|
This package is prerelease software. Its `package.json` is the exact version
|
|
56
|
-
authority; the API surface may change until `
|
|
118
|
+
authority; the API surface may change until the first stable `0.1.2` release.
|
|
119
|
+
|
|
120
|
+
## Port failures
|
|
121
|
+
|
|
122
|
+
Recognized storage/service rejections use `DiagnosticError` from `@aotter/mantle-spec`,
|
|
123
|
+
including optional safe `failure` outcome/retry facts. A thrown timeout is not
|
|
124
|
+
proof that a write or send did not happen. See the operation-by-operation
|
|
125
|
+
[failure contract](../../docs/adr/0023-port-failure-contract.md) for effects,
|
|
126
|
+
reconciliation and ownership. Runtime does not retry arbitrary side effects.
|
package/dist/MantleRuntime.js
CHANGED
|
@@ -167,26 +167,26 @@ function invalidateAfterWrites(inner, invalidate, affectsPublishingContent) {
|
|
|
167
167
|
async create(args) {
|
|
168
168
|
const row = await inner.create(args);
|
|
169
169
|
if (affectsPublishingContent(args.collection))
|
|
170
|
-
await invalidate
|
|
170
|
+
await invalidateBestEffort(invalidate);
|
|
171
171
|
return row;
|
|
172
172
|
},
|
|
173
173
|
get: (id) => inner.get(id),
|
|
174
174
|
async update(args) {
|
|
175
175
|
const row = await inner.update(args);
|
|
176
176
|
if (affectsPublishingContent(args.collection))
|
|
177
|
-
await invalidate
|
|
177
|
+
await invalidateBestEffort(invalidate);
|
|
178
178
|
return row;
|
|
179
179
|
},
|
|
180
180
|
async delete(args) {
|
|
181
181
|
const result = await inner.delete(args);
|
|
182
182
|
if (result.removed && affectsPublishingContent(args.collection))
|
|
183
|
-
await invalidate
|
|
183
|
+
await invalidateBestEffort(invalidate);
|
|
184
184
|
return result;
|
|
185
185
|
},
|
|
186
186
|
async transitionStatus(args) {
|
|
187
187
|
const row = await inner.transitionStatus(args);
|
|
188
188
|
if (affectsPublishingContent(args.collection))
|
|
189
|
-
await invalidate
|
|
189
|
+
await invalidateBestEffort(invalidate);
|
|
190
190
|
return row;
|
|
191
191
|
},
|
|
192
192
|
list: (args) => inner.list(args),
|
|
@@ -194,4 +194,12 @@ function invalidateAfterWrites(inner, invalidate, affectsPublishingContent) {
|
|
|
194
194
|
findByDataFields: (args) => inner.findByDataFields(args),
|
|
195
195
|
};
|
|
196
196
|
}
|
|
197
|
+
async function invalidateBestEffort(invalidate) {
|
|
198
|
+
try {
|
|
199
|
+
await invalidate();
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
console.error("[mantle] public cache invalidation failed after committed write", error);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
197
205
|
//# sourceMappingURL=MantleRuntime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MantleRuntime.js","sourceRoot":"","sources":["../src/MantleRuntime.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"MantleRuntime.js","sourceRoot":"","sources":["../src/MantleRuntime.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ import type { ContentState, Entry } from "@aotter/mantle-spec";
|
|
|
11
11
|
* other Schema-property field. `EntryRow.locale?` is a hydrated
|
|
12
12
|
* convenience: every repository impl lifts `data.locale` onto the
|
|
13
13
|
* top-level field at read time so renderers, path resolvers, and MCP
|
|
14
|
-
*
|
|
14
|
+
* entry readers can branch on `row.locale`
|
|
15
15
|
* without drilling into `data`. Mirrors spec `Entry`'s `locale?`
|
|
16
16
|
* field for the same reason. The DB column shape stays unchanged;
|
|
17
17
|
* this is purely a read-side projection.
|
|
@@ -59,4 +59,13 @@ export declare class EntryStatusConflict extends Error {
|
|
|
59
59
|
readonly actual: ContentState;
|
|
60
60
|
constructor(id: string, expected: ContentState, actual: ContentState);
|
|
61
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* Thrown by repository implementations when an insert or update violates
|
|
64
|
+
* a Schema unique index constraint.
|
|
65
|
+
*/
|
|
66
|
+
export declare class EntryUniqueConflict extends Error {
|
|
67
|
+
readonly collection: string;
|
|
68
|
+
readonly fields: Record<string, unknown> | readonly string[];
|
|
69
|
+
constructor(collection: string, fields: Record<string, unknown> | readonly string[], message?: string);
|
|
70
|
+
}
|
|
62
71
|
//# sourceMappingURL=EntryRow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntryRow.d.ts","sourceRoot":"","sources":["../../../src/domain/model/EntryRow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE/D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;kBAEc;IACd,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,MAAM,GAAG,SAAS,CAGpB;AAED;wEACwE;AACxE,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,QAAQ,GAAG,KAAK,CAWvD;AAED,qBAAa,oBAAqB,SAAQ,KAAK;aAE3B,EAAE,EAAE,MAAM;aACV,QAAQ,EAAE,MAAM;aAChB,MAAM,EAAE,MAAM;gBAFd,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM;CAKjC;AAED;;;;;;GAMG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;aAE1B,EAAE,EAAE,MAAM;aACV,QAAQ,EAAE,YAAY;aACtB,MAAM,EAAE,YAAY;gBAFpB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,YAAY;CAKvC"}
|
|
1
|
+
{"version":3,"file":"EntryRow.d.ts","sourceRoot":"","sources":["../../../src/domain/model/EntryRow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE/D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;kBAEc;IACd,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,MAAM,GAAG,SAAS,CAGpB;AAED;wEACwE;AACxE,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,QAAQ,GAAG,KAAK,CAWvD;AAED,qBAAa,oBAAqB,SAAQ,KAAK;aAE3B,EAAE,EAAE,MAAM;aACV,QAAQ,EAAE,MAAM;aAChB,MAAM,EAAE,MAAM;gBAFd,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM;CAKjC;AAED;;;;;;GAMG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;aAE1B,EAAE,EAAE,MAAM;aACV,QAAQ,EAAE,YAAY;aACtB,MAAM,EAAE,YAAY;gBAFpB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,YAAY;CAKvC;AAED;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;aAE1B,UAAU,EAAE,MAAM;aAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,MAAM,EAAE;gBADnD,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,MAAM,EAAE,EACnE,OAAO,CAAC,EAAE,MAAM;CAUnB"}
|
|
@@ -53,4 +53,23 @@ export class EntryStatusConflict extends Error {
|
|
|
53
53
|
this.name = "EntryStatusConflict";
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* Thrown by repository implementations when an insert or update violates
|
|
58
|
+
* a Schema unique index constraint.
|
|
59
|
+
*/
|
|
60
|
+
export class EntryUniqueConflict extends Error {
|
|
61
|
+
collection;
|
|
62
|
+
fields;
|
|
63
|
+
constructor(collection, fields, message) {
|
|
64
|
+
const detail = Array.isArray(fields)
|
|
65
|
+
? fields.join(", ")
|
|
66
|
+
: Object.entries(fields)
|
|
67
|
+
.map(([k, v]) => `${k}=${JSON.stringify(v)}`)
|
|
68
|
+
.join(", ");
|
|
69
|
+
super(message ?? `unique conflict in collection '${collection}' on (${detail})`);
|
|
70
|
+
this.collection = collection;
|
|
71
|
+
this.fields = fields;
|
|
72
|
+
this.name = "EntryUniqueConflict";
|
|
73
|
+
}
|
|
74
|
+
}
|
|
56
75
|
//# sourceMappingURL=EntryRow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntryRow.js","sourceRoot":"","sources":["../../../src/domain/model/EntryRow.ts"],"names":[],"mappings":"AAkCA;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CACxB,IAA6B;IAE7B,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzB,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/C,CAAC;AAED;wEACwE;AACxE,MAAM,UAAU,kBAAkB,CAAC,GAAa;IAC9C,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,SAAS,EAAE,GAAG,CAAC,SAAS;KACzB,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAE3B;IACA;IACA;IAHlB,YACkB,EAAU,EACV,QAAgB,EAChB,MAAc;QAE9B,KAAK,CAAC,uBAAuB,EAAE,cAAc,QAAQ,WAAW,MAAM,EAAE,CAAC,CAAC;QAJ1D,OAAE,GAAF,EAAE,CAAQ;QACV,aAAQ,GAAR,QAAQ,CAAQ;QAChB,WAAM,GAAN,MAAM,CAAQ;QAG9B,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAE1B;IACA;IACA;IAHlB,YACkB,EAAU,EACV,QAAsB,EACtB,MAAoB;QAEpC,KAAK,CAAC,sBAAsB,EAAE,cAAc,QAAQ,WAAW,MAAM,EAAE,CAAC,CAAC;QAJzD,OAAE,GAAF,EAAE,CAAQ;QACV,aAAQ,GAAR,QAAQ,CAAc;QACtB,WAAM,GAAN,MAAM,CAAc;QAGpC,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"EntryRow.js","sourceRoot":"","sources":["../../../src/domain/model/EntryRow.ts"],"names":[],"mappings":"AAkCA;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CACxB,IAA6B;IAE7B,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzB,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/C,CAAC;AAED;wEACwE;AACxE,MAAM,UAAU,kBAAkB,CAAC,GAAa;IAC9C,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,SAAS,EAAE,GAAG,CAAC,SAAS;KACzB,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAE3B;IACA;IACA;IAHlB,YACkB,EAAU,EACV,QAAgB,EAChB,MAAc;QAE9B,KAAK,CAAC,uBAAuB,EAAE,cAAc,QAAQ,WAAW,MAAM,EAAE,CAAC,CAAC;QAJ1D,OAAE,GAAF,EAAE,CAAQ;QACV,aAAQ,GAAR,QAAQ,CAAQ;QAChB,WAAM,GAAN,MAAM,CAAQ;QAG9B,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAE1B;IACA;IACA;IAHlB,YACkB,EAAU,EACV,QAAsB,EACtB,MAAoB;QAEpC,KAAK,CAAC,sBAAsB,EAAE,cAAc,QAAQ,WAAW,MAAM,EAAE,CAAC,CAAC;QAJzD,OAAE,GAAF,EAAE,CAAQ;QACV,aAAQ,GAAR,QAAQ,CAAc;QACtB,WAAM,GAAN,MAAM,CAAc;QAGpC,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAE1B;IACA;IAFlB,YACkB,UAAkB,EAClB,MAAmD,EACnE,OAAgB;QAEhB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAClC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YACnB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;iBACnB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC5C,IAAI,CAAC,IAAI,CAAC,CAAC;QAClB,KAAK,CAAC,OAAO,IAAI,kCAAkC,UAAU,SAAS,MAAM,GAAG,CAAC,CAAC;QATjE,eAAU,GAAV,UAAU,CAAQ;QAClB,WAAM,GAAN,MAAM,CAA6C;QASnE,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF"}
|
|
@@ -18,6 +18,8 @@ export interface ReadEntriesByDataFieldInArgs {
|
|
|
18
18
|
readonly collection: string;
|
|
19
19
|
readonly field: string;
|
|
20
20
|
readonly values: readonly EntryDataScalar[];
|
|
21
|
+
/** Return at most the newest matching row per value (translation list joins). */
|
|
22
|
+
readonly latestPerValue?: boolean;
|
|
21
23
|
readonly locale?: string | null;
|
|
22
24
|
readonly status?: ContentState;
|
|
23
25
|
}
|
|
@@ -26,6 +28,18 @@ export interface ReadPublishedEntriesArgs {
|
|
|
26
28
|
readonly collection?: string;
|
|
27
29
|
readonly limit?: number;
|
|
28
30
|
}
|
|
31
|
+
export interface ReadPublishedPageArgs extends ReadPublishedEntriesArgs {
|
|
32
|
+
/** Merge the exact locale with non-localized entries in the same ordered page. */
|
|
33
|
+
readonly includeUnlocalized?: boolean;
|
|
34
|
+
/** Opaque forward cursor in updatedAt DESC, id DESC order. */
|
|
35
|
+
readonly cursor?: string;
|
|
36
|
+
/** Select top-level data keys; omitted returns complete data. Missing keys become null. */
|
|
37
|
+
readonly dataFields?: readonly string[];
|
|
38
|
+
}
|
|
39
|
+
export interface PublishedEntryPage {
|
|
40
|
+
readonly rows: readonly Entry[];
|
|
41
|
+
readonly nextCursor?: string;
|
|
42
|
+
}
|
|
29
43
|
export interface FindManyEntriesByDataFieldArgs {
|
|
30
44
|
readonly collection: string;
|
|
31
45
|
readonly field: string;
|
|
@@ -38,12 +52,32 @@ export interface FindManyEntriesByDataFieldArgs {
|
|
|
38
52
|
* mutation hooks. Public results are projected to spec `Entry`, so persistence
|
|
39
53
|
* fields such as `authorId` cannot leak into templates or public helpers.
|
|
40
54
|
*/
|
|
55
|
+
export interface CreationStatisticsArgs {
|
|
56
|
+
readonly collection: string;
|
|
57
|
+
readonly from: number;
|
|
58
|
+
readonly to: number;
|
|
59
|
+
readonly bucketMs: number;
|
|
60
|
+
}
|
|
61
|
+
/** Current retained rows, all statuses; not a historical inventory/event log. */
|
|
62
|
+
export interface CreationStatistics {
|
|
63
|
+
readonly total: number;
|
|
64
|
+
readonly buckets: readonly {
|
|
65
|
+
readonly bucket: number;
|
|
66
|
+
readonly subtype: string | null;
|
|
67
|
+
readonly count: number;
|
|
68
|
+
}[];
|
|
69
|
+
}
|
|
41
70
|
export interface EntryReader {
|
|
71
|
+
/** Optional native aggregation; absence must not trigger a full entry scan in callers. */
|
|
72
|
+
readCreationStatistics?(args: CreationStatisticsArgs): Promise<CreationStatistics>;
|
|
42
73
|
readById(id: string): Promise<Entry | null>;
|
|
43
74
|
readBySlug(args: ReadEntryBySlugArgs): Promise<Entry | null>;
|
|
44
75
|
readByDataField(args: ReadEntryByDataFieldArgs): Promise<Entry | null>;
|
|
45
76
|
readByDataFieldIn(args: ReadEntriesByDataFieldInArgs): Promise<readonly Entry[]>;
|
|
46
77
|
readPublished(args?: ReadPublishedEntriesArgs): Promise<readonly Entry[]>;
|
|
78
|
+
/** At most 2,000 rows and 1 MiB of data JSON per page (default 50 rows).
|
|
79
|
+
* One oversized first entry is returned alone so iteration always advances. */
|
|
80
|
+
readPublishedPage(args?: ReadPublishedPageArgs): Promise<PublishedEntryPage>;
|
|
47
81
|
findManyByDataField(args: FindManyEntriesByDataFieldArgs): Promise<readonly Entry[]>;
|
|
48
82
|
}
|
|
49
83
|
//# sourceMappingURL=EntryReader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntryReader.d.ts","sourceRoot":"","sources":["../../../src/domain/port/EntryReader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE/D,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAExD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;CAChC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;CAChC;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;CAChC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IAC5C,UAAU,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IAC7D,eAAe,CAAC,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IACvE,iBAAiB,CAAC,IAAI,EAAE,4BAA4B,GAAG,OAAO,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC;IACjF,aAAa,CAAC,IAAI,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC;IAC1E,mBAAmB,CAAC,IAAI,EAAE,8BAA8B,GAAG,OAAO,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC;CACtF"}
|
|
1
|
+
{"version":3,"file":"EntryReader.d.ts","sourceRoot":"","sources":["../../../src/domain/port/EntryReader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE/D,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAExD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;CAChC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;CAChC;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;IAC5C,iFAAiF;IACjF,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;CAChC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,qBAAsB,SAAQ,wBAAwB;IACrE,kFAAkF;IAClF,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IACtC,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,2FAA2F;IAC3F,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,SAAS,KAAK,EAAE,CAAC;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,iFAAiF;AACjF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS;QACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;KACxB,EAAE,CAAC;CACL;AAED,MAAM,WAAW,WAAW;IAC1B,0FAA0F;IAC1F,sBAAsB,CAAC,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACnF,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IAC5C,UAAU,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IAC7D,eAAe,CAAC,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IACvE,iBAAiB,CAAC,IAAI,EAAE,4BAA4B,GAAG,OAAO,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC;IACjF,aAAa,CAAC,IAAI,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC;IAC1E;mFAC+E;IAC/E,iBAAiB,CAAC,IAAI,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC7E,mBAAmB,CAAC,IAAI,EAAE,8BAA8B,GAAG,OAAO,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC;CACtF"}
|
|
@@ -117,6 +117,11 @@ export interface ListEntriesArgs {
|
|
|
117
117
|
readonly field: string;
|
|
118
118
|
readonly value: string;
|
|
119
119
|
};
|
|
120
|
+
/** Trusted exact match on a required `x-mantle-ref` field (Admin parent scope). */
|
|
121
|
+
readonly scope?: {
|
|
122
|
+
readonly field: string;
|
|
123
|
+
readonly value: string;
|
|
124
|
+
};
|
|
120
125
|
/** Native fields or Schema-indexed scalar data fields only. */
|
|
121
126
|
readonly sort?: EntrySort;
|
|
122
127
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntryRepository.d.ts","sourceRoot":"","sources":["../../../src/domain/port/EntryRepository.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EntryRepository.d.ts","sourceRoot":"","sources":["../../../src/domain/port/EntryRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
*/
|
|
18
18
|
export type { DatabaseDriver, PreparedStatement, RunResult, BatchResult, MigrationRunner, Migration, } from "./DatabaseDriver.js";
|
|
19
19
|
export type { EntryRepository, CreateEntryArgs, UpdateEntryArgs, DeleteEntryArgs, TransitionStatusArgs, ListEntriesArgs, ListEntriesResult, FindEntryByDataFieldArgs, FindEntryByDataFieldsArgs, MutationHookFields, } from "./EntryRepository.js";
|
|
20
|
-
export type { EntryReader, EntryDataScalar, ReadEntryBySlugArgs, ReadEntryByDataFieldArgs, ReadEntriesByDataFieldInArgs, ReadPublishedEntriesArgs, FindManyEntriesByDataFieldArgs, } from "./EntryReader.js";
|
|
20
|
+
export type { EntryReader, CreationStatisticsArgs, CreationStatistics, EntryDataScalar, ReadEntryBySlugArgs, ReadEntryByDataFieldArgs, ReadEntriesByDataFieldInArgs, ReadPublishedEntriesArgs, ReadPublishedPageArgs, PublishedEntryPage, FindManyEntriesByDataFieldArgs, } from "./EntryReader.js";
|
|
21
21
|
export type { ViewQueryExecutor, ViewQueryOptions, ViewQueryRequest, ViewQueryResult, } from "./ViewQueryExecutor.js";
|
|
22
22
|
export type { MantleStorageAdapter, PreparedMantleStorage, } from "./MantleStorageAdapter.js";
|
|
23
23
|
export type { SiteConfigRepository, UpdateEditableSiteConfigArgs, } from "./SiteConfigRepository.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/port/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,eAAe,EACf,SAAS,GACV,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,wBAAwB,EACxB,4BAA4B,EAC5B,wBAAwB,EACxB,8BAA8B,GAC/B,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,YAAY,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,YAAY,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,YAAY,EACV,WAAW,EACX,aAAa,GACd,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,WAAW,GACZ,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,8BAA8B,EAC9B,eAAe,GAChB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,KAAK,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,KAAK,WAAW,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EACL,KAAK,eAAe,EACpB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/port/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,eAAe,EACf,SAAS,GACV,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,WAAW,EACX,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,wBAAwB,EACxB,4BAA4B,EAC5B,wBAAwB,EACxB,qBAAqB,EACrB,kBAAkB,EAClB,8BAA8B,GAC/B,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,YAAY,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,YAAY,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,YAAY,EACV,WAAW,EACX,aAAa,GACd,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,WAAW,GACZ,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,8BAA8B,EAC9B,eAAe,GAChB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,KAAK,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,KAAK,WAAW,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EACL,KAAK,eAAe,EACpB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/port/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/port/index.ts"],"names":[],"mappings":"AA8EA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAavD,OAAO,EACL,8BAA8B,EAC9B,eAAe,GAChB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAc,WAAW,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAoB,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAEL,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type JsonSchema, type ProcedureManifest, type ViewManifest } from "@aotter/mantle-spec";
|
|
2
|
+
import type { RuntimePlan } from "./RuntimePlanCompiler.js";
|
|
3
|
+
interface CallableCapabilityBase {
|
|
4
|
+
readonly name: string;
|
|
5
|
+
readonly surface: "staff" | "public";
|
|
6
|
+
readonly title?: string;
|
|
7
|
+
readonly description: string;
|
|
8
|
+
readonly inputSchema: JsonSchema;
|
|
9
|
+
}
|
|
10
|
+
export interface ViewCallableCapability extends CallableCapabilityBase {
|
|
11
|
+
readonly kind: "view";
|
|
12
|
+
readonly ownerName: string;
|
|
13
|
+
readonly manifest: ViewManifest;
|
|
14
|
+
}
|
|
15
|
+
export interface ProcedureCallableCapability extends CallableCapabilityBase {
|
|
16
|
+
readonly kind: "procedure";
|
|
17
|
+
readonly ownerName: string;
|
|
18
|
+
readonly trigger: string;
|
|
19
|
+
readonly manifest: ProcedureManifest;
|
|
20
|
+
readonly outputSchema: JsonSchema;
|
|
21
|
+
}
|
|
22
|
+
export type RuntimeCallableCapability = ViewCallableCapability | ProcedureCallableCapability;
|
|
23
|
+
/** Pure callable projection. Discovery and invocation consume this same slice. */
|
|
24
|
+
export declare function projectCallableCapabilities(plan: RuntimePlan, options?: {
|
|
25
|
+
readonly surface?: "staff" | "public";
|
|
26
|
+
}): readonly RuntimeCallableCapability[];
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=CallableCapabilityProjector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CallableCapabilityProjector.d.ts","sourceRoot":"","sources":["../../../src/domain/service/CallableCapabilityProjector.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,UAAU,sBAAsB;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,CAAC;IACrC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC;CAClC;AAED,MAAM,WAAW,sBAAuB,SAAQ,sBAAsB;IACpE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;CACjC;AAED,MAAM,WAAW,2BAA4B,SAAQ,sBAAsB;IACzE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC;CACnC;AAED,MAAM,MAAM,yBAAyB,GACjC,sBAAsB,GACtB,2BAA2B,CAAC;AAEhC,kFAAkF;AAClF,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,WAAW,EACjB,OAAO,GAAE;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;CAAO,GACtD,SAAS,yBAAyB,EAAE,CA8CtC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { resolveLocalizedText, } from "@aotter/mantle-spec";
|
|
2
|
+
/** Pure callable projection. Discovery and invocation consume this same slice. */
|
|
3
|
+
export function projectCallableCapabilities(plan, options = {}) {
|
|
4
|
+
const capabilities = [];
|
|
5
|
+
for (const tool of plan.mcpTools) {
|
|
6
|
+
if (tool.ownerKind !== "View")
|
|
7
|
+
continue;
|
|
8
|
+
const view = plan.views[tool.ownerName];
|
|
9
|
+
if (!view)
|
|
10
|
+
continue;
|
|
11
|
+
const manifest = view.manifest;
|
|
12
|
+
const title = resolveLocalizedText(manifest.spec.title, "en");
|
|
13
|
+
capabilities.push({
|
|
14
|
+
kind: "view",
|
|
15
|
+
name: tool.name,
|
|
16
|
+
ownerName: view.name,
|
|
17
|
+
surface: tool.surface,
|
|
18
|
+
...(title ? { title } : {}),
|
|
19
|
+
description: `Query ${manifest.spec.surface} View '${view.name}'.${manifest.spec.cache
|
|
20
|
+
? ` Anonymous REST responses may be shared for up to ${manifest.spec.cache.sharedMaxAge} seconds.`
|
|
21
|
+
: ""}`,
|
|
22
|
+
inputSchema: viewInputSchema(manifest),
|
|
23
|
+
manifest,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
for (const tool of plan.mcpTools) {
|
|
27
|
+
if (tool.ownerKind !== "Procedure")
|
|
28
|
+
continue;
|
|
29
|
+
const procedure = plan.procedures[tool.ownerName];
|
|
30
|
+
if (!procedure)
|
|
31
|
+
continue;
|
|
32
|
+
const title = resolveLocalizedText(procedure.manifest.spec.title, "en");
|
|
33
|
+
const description = resolveLocalizedText(procedure.manifest.spec.description, "en") ??
|
|
34
|
+
`Invoke Procedure '${procedure.name}'.`;
|
|
35
|
+
capabilities.push({
|
|
36
|
+
kind: "procedure",
|
|
37
|
+
name: tool.name,
|
|
38
|
+
ownerName: procedure.name,
|
|
39
|
+
trigger: tool.trigger,
|
|
40
|
+
surface: tool.surface,
|
|
41
|
+
...(title ? { title } : {}),
|
|
42
|
+
description,
|
|
43
|
+
inputSchema: procedure.manifest.spec.input,
|
|
44
|
+
outputSchema: procedure.manifest.spec.output,
|
|
45
|
+
manifest: procedure.manifest,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
return Object.freeze(capabilities
|
|
49
|
+
.filter((capability) => !options.surface || capability.surface === options.surface)
|
|
50
|
+
.sort((a, b) => compareText(`${a.surface}\0${a.name}\0${a.ownerName}`, `${b.surface}\0${b.name}\0${b.ownerName}`))
|
|
51
|
+
.map((capability) => Object.freeze(capability)));
|
|
52
|
+
}
|
|
53
|
+
function viewInputSchema(view) {
|
|
54
|
+
return {
|
|
55
|
+
type: "object",
|
|
56
|
+
properties: {
|
|
57
|
+
...(view.spec.params?.properties ?? {}),
|
|
58
|
+
page: { type: "number", description: "Optional 1-based page number." },
|
|
59
|
+
show: { type: "number", description: "Optional page size, capped by the View limit." },
|
|
60
|
+
},
|
|
61
|
+
...(view.spec.params?.required?.length ? { required: view.spec.params.required } : {}),
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
function compareText(a, b) {
|
|
65
|
+
return a < b ? -1 : a > b ? 1 : 0;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=CallableCapabilityProjector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CallableCapabilityProjector.js","sourceRoot":"","sources":["../../../src/domain/service/CallableCapabilityProjector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntryMutationDiagnostics.d.ts","sourceRoot":"","sources":["../../../src/domain/service/EntryMutationDiagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"EntryMutationDiagnostics.d.ts","sourceRoot":"","sources":["../../../src/domain/service/EntryMutationDiagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,qBAAqB,CAAC;AAO7B,wEAAwE;AACxE,wBAAsB,sBAAsB,CAAC,CAAC,EAC5C,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CA0CZ;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,GACT,UAAU,CASZ"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DiagnosticError, runtimeDiagnostic, } from "@aotter/mantle-spec";
|
|
2
|
-
import { EntryStatusConflict, EntryVersionConflict, } from "../model/EntryRow.js";
|
|
2
|
+
import { EntryStatusConflict, EntryUniqueConflict, EntryVersionConflict, } from "../model/EntryRow.js";
|
|
3
3
|
/** Translate repository OCC failures at any entry-mutation boundary. */
|
|
4
4
|
export async function withConflictDiagnostic(path, fn) {
|
|
5
5
|
try {
|
|
@@ -26,6 +26,16 @@ export async function withConflictDiagnostic(path, fn) {
|
|
|
26
26
|
message: `Status mismatch on entry '${err.id}': expected '${err.expected}', found '${err.actual}'. Probably a concurrent state change.`,
|
|
27
27
|
}));
|
|
28
28
|
}
|
|
29
|
+
if (err instanceof EntryUniqueConflict) {
|
|
30
|
+
throw new DiagnosticError(runtimeDiagnostic({
|
|
31
|
+
code: "CONFLICT",
|
|
32
|
+
severity: "error",
|
|
33
|
+
path,
|
|
34
|
+
value: err.fields,
|
|
35
|
+
expected: "unique entry data per Schema uniqueIndexes",
|
|
36
|
+
message: `Unique constraint violation in collection '${err.collection}': ${err.message}`,
|
|
37
|
+
}));
|
|
38
|
+
}
|
|
29
39
|
throw err;
|
|
30
40
|
}
|
|
31
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntryMutationDiagnostics.js","sourceRoot":"","sources":["../../../src/domain/service/EntryMutationDiagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,iBAAiB,GAElB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAE9B,wEAAwE;AACxE,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAY,EACZ,EAAoB;IAEpB,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,oBAAoB,EAAE,CAAC;YACxC,MAAM,IAAI,eAAe,CACvB,iBAAiB,CAAC;gBAChB,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,OAAO;gBACjB,IAAI;gBACJ,KAAK,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE;gBACpD,QAAQ,EAAE,eAAe,GAAG,CAAC,QAAQ,EAAE;gBACvC,OAAO,EAAE,8BAA8B,GAAG,CAAC,EAAE,eAAe,GAAG,CAAC,QAAQ,WAAW,GAAG,CAAC,MAAM,GAAG;aACjG,CAAC,CACH,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,YAAY,mBAAmB,EAAE,CAAC;YACvC,MAAM,IAAI,eAAe,CACvB,iBAAiB,CAAC;gBAChB,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,OAAO;gBACjB,IAAI;gBACJ,KAAK,EAAE,GAAG,CAAC,MAAM;gBACjB,QAAQ,EAAE,eAAe,GAAG,CAAC,QAAQ,GAAG;gBACxC,OAAO,EAAE,6BAA6B,GAAG,CAAC,EAAE,gBAAgB,GAAG,CAAC,QAAQ,aAAa,GAAG,CAAC,MAAM,wCAAwC;aACxI,CAAC,CACH,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,IAAY,EACZ,UAAkB,EAClB,EAAU;IAEV,OAAO,iBAAiB,CAAC;QACvB,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,OAAO;QACjB,IAAI;QACJ,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,oCAAoC,UAAU,GAAG;QAC3D,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,UAAU,IAAI;KACnE,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"EntryMutationDiagnostics.js","sourceRoot":"","sources":["../../../src/domain/service/EntryMutationDiagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,iBAAiB,GAElB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAE9B,wEAAwE;AACxE,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAY,EACZ,EAAoB;IAEpB,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,oBAAoB,EAAE,CAAC;YACxC,MAAM,IAAI,eAAe,CACvB,iBAAiB,CAAC;gBAChB,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,OAAO;gBACjB,IAAI;gBACJ,KAAK,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE;gBACpD,QAAQ,EAAE,eAAe,GAAG,CAAC,QAAQ,EAAE;gBACvC,OAAO,EAAE,8BAA8B,GAAG,CAAC,EAAE,eAAe,GAAG,CAAC,QAAQ,WAAW,GAAG,CAAC,MAAM,GAAG;aACjG,CAAC,CACH,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,YAAY,mBAAmB,EAAE,CAAC;YACvC,MAAM,IAAI,eAAe,CACvB,iBAAiB,CAAC;gBAChB,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,OAAO;gBACjB,IAAI;gBACJ,KAAK,EAAE,GAAG,CAAC,MAAM;gBACjB,QAAQ,EAAE,eAAe,GAAG,CAAC,QAAQ,GAAG;gBACxC,OAAO,EAAE,6BAA6B,GAAG,CAAC,EAAE,gBAAgB,GAAG,CAAC,QAAQ,aAAa,GAAG,CAAC,MAAM,wCAAwC;aACxI,CAAC,CACH,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,YAAY,mBAAmB,EAAE,CAAC;YACvC,MAAM,IAAI,eAAe,CACvB,iBAAiB,CAAC;gBAChB,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,OAAO;gBACjB,IAAI;gBACJ,KAAK,EAAE,GAAG,CAAC,MAAM;gBACjB,QAAQ,EAAE,4CAA4C;gBACtD,OAAO,EAAE,8CAA8C,GAAG,CAAC,UAAU,MAAM,GAAG,CAAC,OAAO,EAAE;aACzF,CAAC,CACH,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,IAAY,EACZ,UAAkB,EAClB,EAAU;IAEV,OAAO,iBAAiB,CAAC;QACvB,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,OAAO;QACjB,IAAI;QACJ,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,oCAAoC,UAAU,GAAG;QAC3D,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,UAAU,IAAI;KACnE,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -14,4 +14,11 @@
|
|
|
14
14
|
export declare function matchPath(triggerPath: string, requestPath: string): Record<string, string> | null;
|
|
15
15
|
/** Compile the immutable Trigger half once for mounted HTTP routes. */
|
|
16
16
|
export declare function compilePathMatcher(triggerPath: string): (requestPath: string) => Record<string, string> | null;
|
|
17
|
+
/** Index immutable routes; decode each request segment once, preserving input order. */
|
|
18
|
+
export declare function compileRouteMatcher<Route extends {
|
|
19
|
+
readonly path: string;
|
|
20
|
+
}>(routes: readonly Route[]): (path: string) => {
|
|
21
|
+
readonly route: Route;
|
|
22
|
+
readonly params: Record<string, string>;
|
|
23
|
+
} | null;
|
|
17
24
|
//# sourceMappingURL=PathMatcher.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PathMatcher.d.ts","sourceRoot":"","sources":["../../../src/domain/service/PathMatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CACvB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAE/B;AAED,uEAAuE;AACvE,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,GAClB,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CA0BxD"}
|
|
1
|
+
{"version":3,"file":"PathMatcher.d.ts","sourceRoot":"","sources":["../../../src/domain/service/PathMatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CACvB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAE/B;AAED,uEAAuE;AACvE,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,GAClB,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CA0BxD;AAeD,wFAAwF;AACxF,wBAAgB,mBAAmB,CAAC,KAAK,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EACzE,MAAM,EAAE,SAAS,KAAK,EAAE,GACvB,CAAC,IAAI,EAAE,MAAM,KAAK;IAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,IAAI,CAsD7F"}
|
|
@@ -57,4 +57,60 @@ function safeDecode(segment) {
|
|
|
57
57
|
function stripTrailingSlash(p) {
|
|
58
58
|
return p.length > 1 && p.endsWith("/") ? p.slice(0, -1) : p;
|
|
59
59
|
}
|
|
60
|
+
/** Index immutable routes; decode each request segment once, preserving input order. */
|
|
61
|
+
export function compileRouteMatcher(routes) {
|
|
62
|
+
const node = () => ({ literals: new Map(), first: Infinity });
|
|
63
|
+
const root = node();
|
|
64
|
+
routes.forEach((route, rank) => {
|
|
65
|
+
let current = root;
|
|
66
|
+
const params = [];
|
|
67
|
+
for (const [position, part] of stripTrailingSlash(route.path).split("/").entries()) {
|
|
68
|
+
current.first = Math.min(current.first, rank);
|
|
69
|
+
if (part.startsWith("{") && part.endsWith("}")) {
|
|
70
|
+
params.push([part.slice(1, -1), position]);
|
|
71
|
+
current = current.parameter ??= node();
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
let next = current.literals.get(part);
|
|
75
|
+
if (!next)
|
|
76
|
+
current.literals.set(part, next = node());
|
|
77
|
+
current = next;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
current.first = Math.min(current.first, rank);
|
|
81
|
+
current.leaf ??= { route, rank, params };
|
|
82
|
+
});
|
|
83
|
+
return (path) => {
|
|
84
|
+
const parts = stripTrailingSlash(path).split("/").map(safeDecode);
|
|
85
|
+
if (parts.includes(null))
|
|
86
|
+
return null;
|
|
87
|
+
let best;
|
|
88
|
+
// ponytail: overlapping wildcard shapes may visit multiple branches;
|
|
89
|
+
// subtree ranks prune losers. Use a DFA only if ambiguous-route profiles justify it.
|
|
90
|
+
const visit = (current, depth) => {
|
|
91
|
+
if (!current || current.first >= (best?.rank ?? Infinity))
|
|
92
|
+
return;
|
|
93
|
+
if (depth === parts.length) {
|
|
94
|
+
if (current.leaf && current.leaf.rank < (best?.rank ?? Infinity))
|
|
95
|
+
best = current.leaf;
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
const literal = current.literals.get(parts[depth]);
|
|
99
|
+
const parameter = current.parameter;
|
|
100
|
+
if ((literal?.first ?? Infinity) < (parameter?.first ?? Infinity)) {
|
|
101
|
+
visit(literal, depth + 1);
|
|
102
|
+
visit(parameter, depth + 1);
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
visit(parameter, depth + 1);
|
|
106
|
+
visit(literal, depth + 1);
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
visit(root, 0);
|
|
110
|
+
return best ? {
|
|
111
|
+
route: best.route,
|
|
112
|
+
params: Object.fromEntries(best.params.map(([name, position]) => [name, parts[position]])),
|
|
113
|
+
} : null;
|
|
114
|
+
};
|
|
115
|
+
}
|
|
60
116
|
//# sourceMappingURL=PathMatcher.js.map
|