@aotter/mantle-runtime 0.0.11-alpha.59 → 0.0.11-alpha.61
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 +5 -0
- package/dist/domain/model/HandlerContext.d.ts +7 -1
- package/dist/domain/model/HandlerContext.d.ts.map +1 -1
- package/dist/domain/port/DeferredHookDispatcher.d.ts +21 -17
- package/dist/domain/port/DeferredHookDispatcher.d.ts.map +1 -1
- package/dist/domain/port/DeferredHookDispatcher.js +17 -1
- package/dist/domain/port/DeferredHookDispatcher.js.map +1 -1
- package/dist/domain/port/EntryRepository.d.ts +2 -1
- package/dist/domain/port/EntryRepository.d.ts.map +1 -1
- package/dist/domain/port/IdGenerator.d.ts +2 -1
- package/dist/domain/port/IdGenerator.d.ts.map +1 -1
- package/dist/domain/port/IdGenerator.js.map +1 -1
- package/dist/domain/port/index.d.ts +2 -2
- package/dist/domain/port/index.d.ts.map +1 -1
- package/dist/domain/port/index.js +1 -1
- package/dist/domain/port/index.js.map +1 -1
- package/dist/domain/service/BuiltinProjector.d.ts +2 -2
- package/dist/domain/service/TriggerIndex.d.ts +0 -4
- package/dist/domain/service/TriggerIndex.d.ts.map +1 -1
- package/dist/domain/service/TriggerIndex.js +0 -6
- package/dist/domain/service/TriggerIndex.js.map +1 -1
- package/dist/domain/service/ViewSqlCompiler.d.ts +7 -6
- package/dist/domain/service/ViewSqlCompiler.d.ts.map +1 -1
- package/dist/domain/service/ViewSqlCompiler.js +31 -18
- package/dist/domain/service/ViewSqlCompiler.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/boot/canonicalMigrations.d.ts +1 -1
- package/dist/infrastructure/boot/canonicalMigrations.d.ts.map +1 -1
- package/dist/infrastructure/boot/canonicalMigrations.js +80 -19
- package/dist/infrastructure/boot/canonicalMigrations.js.map +1 -1
- package/dist/infrastructure/boot/index.d.ts +1 -1
- package/dist/infrastructure/boot/index.d.ts.map +1 -1
- package/dist/infrastructure/boot/index.js +1 -1
- package/dist/infrastructure/boot/index.js.map +1 -1
- package/dist/infrastructure/mcp/McpJsonRpcDispatcher.d.ts.map +1 -1
- package/dist/infrastructure/mcp/McpJsonRpcDispatcher.js +27 -10
- package/dist/infrastructure/mcp/McpJsonRpcDispatcher.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 +19 -19
- package/dist/infrastructure/persistence/DatabaseEntryRepository.js.map +1 -1
- package/dist/infrastructure/persistence/LifecycleHookingEntryRepository.d.ts +9 -46
- package/dist/infrastructure/persistence/LifecycleHookingEntryRepository.d.ts.map +1 -1
- package/dist/infrastructure/persistence/LifecycleHookingEntryRepository.js +82 -99
- package/dist/infrastructure/persistence/LifecycleHookingEntryRepository.js.map +1 -1
- package/dist/runtime.d.ts +6 -9
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +9 -10
- package/dist/runtime.js.map +1 -1
- package/dist/usecase/boot/ValidateBootUseCase.d.ts +1 -0
- package/dist/usecase/boot/ValidateBootUseCase.d.ts.map +1 -1
- package/dist/usecase/boot/ValidateBootUseCase.js +13 -1
- package/dist/usecase/boot/ValidateBootUseCase.js.map +1 -1
- package/dist/usecase/dto/content/index.d.ts +3 -5
- package/dist/usecase/dto/content/index.d.ts.map +1 -1
- package/dist/usecase/dto/lifecycle/index.d.ts +3 -2
- package/dist/usecase/dto/lifecycle/index.d.ts.map +1 -1
- package/dist/usecase/lifecycle/RunDeferredHookUseCase.d.ts +7 -15
- package/dist/usecase/lifecycle/RunDeferredHookUseCase.d.ts.map +1 -1
- package/dist/usecase/lifecycle/RunDeferredHookUseCase.js +96 -24
- package/dist/usecase/lifecycle/RunDeferredHookUseCase.js.map +1 -1
- package/dist/usecase/lifecycle/RunLifecycleHooksUseCase.d.ts +15 -26
- package/dist/usecase/lifecycle/RunLifecycleHooksUseCase.d.ts.map +1 -1
- package/dist/usecase/lifecycle/RunLifecycleHooksUseCase.js +66 -31
- package/dist/usecase/lifecycle/RunLifecycleHooksUseCase.js.map +1 -1
- package/dist/usecase/procedure/InvokeBuiltinUseCase.d.ts +3 -3
- package/dist/usecase/procedure/InvokeBuiltinUseCase.js +3 -3
- package/dist/usecase/view/ExecuteViewUseCase.d.ts +3 -2
- package/dist/usecase/view/ExecuteViewUseCase.d.ts.map +1 -1
- package/dist/usecase/view/ExecuteViewUseCase.js +4 -2
- package/dist/usecase/view/ExecuteViewUseCase.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -10,5 +10,10 @@ For a fresh adapter implementation, start with
|
|
|
10
10
|
[`docs/adapter-guide.md`](../../docs/adapter-guide.md) and
|
|
11
11
|
[`docs/adr/0011-adapter-port-spec.md`](../../docs/adr/0011-adapter-port-spec.md).
|
|
12
12
|
|
|
13
|
+
Queue-backed `after_*` lifecycle delivery is optional and at-least-once. See
|
|
14
|
+
[`docs/deferred-lifecycle-queues.md`](../../docs/deferred-lifecycle-queues.md)
|
|
15
|
+
for the strict envelope, idempotency key, Cloudflare bindings, retry/DLQ
|
|
16
|
+
behavior, and upgrade procedure.
|
|
17
|
+
|
|
13
18
|
`0.0.7-alpha` is an early prerelease for the agent-provisioning proof. The API
|
|
14
19
|
surface remains in flux until `v0.1.0`.
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { LifecycleHook, StaffRole } from "@aotter/mantle-spec";
|
|
2
|
+
import type { EntryRow } from "./EntryRow.js";
|
|
2
3
|
/**
|
|
3
4
|
* `HandlerContext` — auth + bindings handed to every Procedure
|
|
4
5
|
* handler. The dispatcher fills this from the request:
|
|
@@ -52,11 +53,16 @@ export interface HandlerAuthContext {
|
|
|
52
53
|
readonly scopes: readonly string[];
|
|
53
54
|
}
|
|
54
55
|
export interface HandlerLifecycleEvent {
|
|
56
|
+
/** Stable for one lifecycle event across deferred retries/replays. */
|
|
57
|
+
readonly id: string;
|
|
58
|
+
/** Trigger currently consuming the event. Pair with `id` for an
|
|
59
|
+
* idempotency key when several Triggers share one event. */
|
|
60
|
+
readonly trigger: string;
|
|
55
61
|
readonly hook: LifecycleHook;
|
|
56
62
|
readonly schema: string;
|
|
57
63
|
/** Pre-mutation row for `before_*` hooks; persisted post-mutation
|
|
58
64
|
* row for `after_*`. `null` for `before_create` (no row exists). */
|
|
59
|
-
readonly entry:
|
|
65
|
+
readonly entry: EntryRow | null;
|
|
60
66
|
}
|
|
61
67
|
/**
|
|
62
68
|
* Procedure handler signature. The dispatcher validates `input`
|
|
@@ -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;
|
|
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;IAC7B,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;;;qDAGiD;IACjD,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB;;;qEAGiE;IACjE,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,IAAI,CAChD,KAAK,EAAE,CAAC,EACR,GAAG,EAAE,cAAc,KAChB,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAEpB;;;;;GAKG;AAEH,MAAM,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC"}
|
|
@@ -3,25 +3,24 @@ import type { EntryRow } from "../model/EntryRow.js";
|
|
|
3
3
|
import type { HandlerAuthContext, HandlerContext } from "../model/HandlerContext.js";
|
|
4
4
|
/**
|
|
5
5
|
* Optional adapter port for delivering `after_*` lifecycle hooks
|
|
6
|
-
* out-of-band
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* `ctx.waitUntil` then inline-await.
|
|
6
|
+
* out-of-band. A successful `enqueue` means only that the adapter
|
|
7
|
+
* accepted the message; the entry mutation and enqueue do not share a
|
|
8
|
+
* transaction. Consumption is at-least-once, so handlers must use
|
|
9
|
+
* `eventId` + Trigger name as an idempotency key.
|
|
11
10
|
*
|
|
12
11
|
* Contract: a thrown rejection from `enqueue` is treated as a hard
|
|
13
|
-
* delivery failure — the decorator catches it and downgrades to
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
12
|
+
* delivery failure — the decorator catches it and downgrades to
|
|
13
|
+
* best-effort `ctx.waitUntil`, then inline execution. An ambiguous
|
|
14
|
+
* enqueue can therefore run both paths; both preserve the same event
|
|
15
|
+
* identity.
|
|
17
16
|
*/
|
|
18
17
|
export interface DeferredHookDispatcher {
|
|
19
18
|
enqueue(envelope: DeferredHookEnvelope): Promise<void>;
|
|
20
19
|
}
|
|
21
20
|
/**
|
|
22
|
-
* Wire envelope for a deferred `after_*` lifecycle hook.
|
|
23
|
-
*
|
|
24
|
-
*
|
|
21
|
+
* Wire envelope for a deferred `after_*` lifecycle hook. Version 1
|
|
22
|
+
* deliberately carries persisted entry data, not arbitrary request
|
|
23
|
+
* input (which may contain credentials or exceed queue limits).
|
|
25
24
|
*
|
|
26
25
|
* `entry` is the row at fire time — for `after_delete` the row is
|
|
27
26
|
* already gone from the DB, so the envelope must carry it. For other
|
|
@@ -33,20 +32,25 @@ export interface DeferredHookDispatcher {
|
|
|
33
32
|
* the consume invocation owns its own request lifetime — and `env` is
|
|
34
33
|
* filled from the consume-side adapter binding.
|
|
35
34
|
*/
|
|
35
|
+
export declare const DEFERRED_HOOK_ENVELOPE_VERSION: 1;
|
|
36
|
+
export type DeferredLifecycleHook = Extract<LifecycleHook, `after_${string}`>;
|
|
36
37
|
export interface DeferredHookEnvelope {
|
|
37
|
-
readonly
|
|
38
|
+
readonly version: typeof DEFERRED_HOOK_ENVELOPE_VERSION;
|
|
39
|
+
/** Stable across enqueue fallback, Queue retries, and replay. */
|
|
40
|
+
readonly eventId: string;
|
|
41
|
+
/** Captured at production time so a later deploy cannot add a new
|
|
42
|
+
* Trigger to an already-enqueued event. Ordered firing list. */
|
|
43
|
+
readonly triggerNames: readonly string[];
|
|
44
|
+
readonly hook: DeferredLifecycleHook;
|
|
38
45
|
readonly schema: string;
|
|
39
46
|
readonly entry: EntryRow;
|
|
40
|
-
readonly originalInput?: unknown;
|
|
41
47
|
readonly ctxSnapshot: CtxSnapshot | null;
|
|
42
48
|
}
|
|
43
49
|
export interface CtxSnapshot {
|
|
44
50
|
readonly userId: string | null;
|
|
45
51
|
readonly staffId: string | null;
|
|
46
52
|
readonly staffRole: StaffRole | null;
|
|
47
|
-
|
|
48
|
-
* credential context was introduced. */
|
|
49
|
-
readonly auth?: HandlerAuthContext | null;
|
|
53
|
+
readonly auth: HandlerAuthContext | null;
|
|
50
54
|
}
|
|
51
55
|
/**
|
|
52
56
|
* Capture identity from a `HandlerContext` into the wire-friendly
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeferredHookDispatcher.d.ts","sourceRoot":"","sources":["../../../src/domain/port/DeferredHookDispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAErF
|
|
1
|
+
{"version":3,"file":"DeferredHookDispatcher.d.ts","sourceRoot":"","sources":["../../../src/domain/port/DeferredHookDispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAErF;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxD;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,8BAA8B,EAAG,CAAU,CAAC;AAEzD,MAAM,MAAM,qBAAqB,GAAG,OAAO,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;AAE9E,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,OAAO,8BAA8B,CAAC;IACxD,iEAAiE;IACjE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;qEACiE;IACjE,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;CAC1C;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAAC;CAC1C;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,cAAc,GAAG,WAAW,GAAG,IAAI,CAQvE"}
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wire envelope for a deferred `after_*` lifecycle hook. Version 1
|
|
3
|
+
* deliberately carries persisted entry data, not arbitrary request
|
|
4
|
+
* input (which may contain credentials or exceed queue limits).
|
|
5
|
+
*
|
|
6
|
+
* `entry` is the row at fire time — for `after_delete` the row is
|
|
7
|
+
* already gone from the DB, so the envelope must carry it. For other
|
|
8
|
+
* `after_*` hooks the row also matches what the in-process firing path
|
|
9
|
+
* would have seen, avoiding read-skew with subsequent mutations.
|
|
10
|
+
*
|
|
11
|
+
* `ctxSnapshot` carries enough identity to rebuild a `HandlerContext`
|
|
12
|
+
* with the original actor's user/staff fields. `waitUntil` is dropped —
|
|
13
|
+
* the consume invocation owns its own request lifetime — and `env` is
|
|
14
|
+
* filled from the consume-side adapter binding.
|
|
15
|
+
*/
|
|
16
|
+
export const DEFERRED_HOOK_ENVELOPE_VERSION = 1;
|
|
1
17
|
/**
|
|
2
18
|
* Capture identity from a `HandlerContext` into the wire-friendly
|
|
3
19
|
* `CtxSnapshot`. Returns `null` for fully anonymous contexts so the
|
|
@@ -11,7 +27,7 @@ export function ctxSnapshotFrom(ctx) {
|
|
|
11
27
|
userId: ctx.user?.id ?? null,
|
|
12
28
|
staffId: ctx.staff?.id ?? null,
|
|
13
29
|
staffRole: ctx.staff?.role ?? null,
|
|
14
|
-
|
|
30
|
+
auth: ctx.auth ?? null,
|
|
15
31
|
};
|
|
16
32
|
}
|
|
17
33
|
//# sourceMappingURL=DeferredHookDispatcher.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeferredHookDispatcher.js","sourceRoot":"","sources":["../../../src/domain/port/DeferredHookDispatcher.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DeferredHookDispatcher.js","sourceRoot":"","sources":["../../../src/domain/port/DeferredHookDispatcher.ts"],"names":[],"mappings":"AAqBA;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAU,CAAC;AAwBzD;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,GAAmB;IACjD,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACtD,OAAO;QACL,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,IAAI;QAC5B,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,IAAI;QAC9B,SAAS,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,IAAI,IAAI;QAClC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI;KACvB,CAAC;AACJ,CAAC"}
|
|
@@ -47,7 +47,8 @@ export interface EntryRepository {
|
|
|
47
47
|
* Hook-related fields shared by every mutating chokepoint args type.
|
|
48
48
|
* The persistence-layer impl ignores these; the
|
|
49
49
|
* `LifecycleHookingEntryRepository` decorator reads them to fire
|
|
50
|
-
* before_/after_ Triggers with the right
|
|
50
|
+
* before_/after_ Triggers with the right context. Only synchronous
|
|
51
|
+
* `before_*` handlers receive the original input.
|
|
51
52
|
*
|
|
52
53
|
* `hookContext` defaults to an anonymous `HandlerContext` in the
|
|
53
54
|
* decorator when callers don't supply one (test paths, internal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntryRepository.d.ts","sourceRoot":"","sources":["../../../src/domain/port/EntryRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAC1C,qDAAqD;IACrD,MAAM,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjD,qEAAqE;IACrE,MAAM,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC;QAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACtE;;;0DAGsD;IACtD,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChE;;;;sEAIkE;IAClE,IAAI,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACxD;+DAC2D;IAC3D,eAAe,CAAC,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAC1E;;gCAE4B;IAC5B,gBAAgB,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;CAC7E;AAED
|
|
1
|
+
{"version":3,"file":"EntryRepository.d.ts","sourceRoot":"","sources":["../../../src/domain/port/EntryRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;;;;;;;;;;;;;;;;;;;;GAoBG;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":"AAyBA;;wCAEwC;AACxC,MAAM,CAAC,MAAM,mBAAmB,GAAgB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC"}
|
|
@@ -23,8 +23,8 @@ export type { MediaStorage, CreateUploadArgs, CreateUploadVariantSpec, CreateUpl
|
|
|
23
23
|
export { pickPrimaryVariant } from "./MediaStorage.js";
|
|
24
24
|
export type { MediaAssetRepository } from "./MediaAssetRepository.js";
|
|
25
25
|
export type { EmailSender, EmailSendArgs, } from "./EmailSender.js";
|
|
26
|
-
export type { DeferredHookDispatcher, DeferredHookEnvelope, CtxSnapshot, } from "./DeferredHookDispatcher.js";
|
|
27
|
-
export { ctxSnapshotFrom } from "./DeferredHookDispatcher.js";
|
|
26
|
+
export type { DeferredHookDispatcher, DeferredHookEnvelope, DeferredLifecycleHook, CtxSnapshot, } from "./DeferredHookDispatcher.js";
|
|
27
|
+
export { DEFERRED_HOOK_ENVELOPE_VERSION, ctxSnapshotFrom, } from "./DeferredHookDispatcher.js";
|
|
28
28
|
export { type Clock, SystemClock } from "./Clock.js";
|
|
29
29
|
export { type IdGenerator, RandomUuidGenerator } from "./IdGenerator.js";
|
|
30
30
|
export { type HandlerRegistry, InMemoryHandlerRegistry, buildHandlerRegistry, } from "./HandlerRegistry.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/port/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,eAAe,EACf,SAAS,GACV,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACxE,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,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,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,YAAY,EACV,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAClC,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,EACV,WAAW,EACX,aAAa,GACd,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,sBAAsB,EACtB,oBAAoB,EACpB,WAAW,GACZ,MAAM,6BAA6B,CAAC;AACrC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/port/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,eAAe,EACf,SAAS,GACV,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACxE,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,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,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,YAAY,EACV,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAClC,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,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,5 +1,5 @@
|
|
|
1
1
|
export { pickPrimaryVariant } from "./MediaStorage.js";
|
|
2
|
-
export { ctxSnapshotFrom } from "./DeferredHookDispatcher.js";
|
|
2
|
+
export { DEFERRED_HOOK_ENVELOPE_VERSION, ctxSnapshotFrom, } from "./DeferredHookDispatcher.js";
|
|
3
3
|
export { SystemClock } from "./Clock.js";
|
|
4
4
|
export { RandomUuidGenerator } from "./IdGenerator.js";
|
|
5
5
|
export { InMemoryHandlerRegistry, buildHandlerRegistry, } from "./HandlerRegistry.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/port/index.ts"],"names":[],"mappings":"AAwDA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/port/index.ts"],"names":[],"mappings":"AAwDA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAYvD,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"}
|
|
@@ -10,8 +10,8 @@ import type { HandlerContext } from "../model/HandlerContext.js";
|
|
|
10
10
|
* Schema's `spec.schema.properties`. Side-channel fields (CAPTCHA
|
|
11
11
|
* tokens, hCaptcha challenges, etc.) declared in the Procedure's
|
|
12
12
|
* input but not in the Schema's properties are silently dropped
|
|
13
|
-
* from the row. They remain available
|
|
14
|
-
* `
|
|
13
|
+
* from the row. They remain available as the input to matching
|
|
14
|
+
* synchronous `before_*` lifecycle hooks only.
|
|
15
15
|
*
|
|
16
16
|
* 2. **Stamping**: any Schema property carrying `x-mantle-bind: <value>`
|
|
17
17
|
* gets its value computed at write time:
|
|
@@ -19,9 +19,5 @@ export declare class TriggerIndex {
|
|
|
19
19
|
/** Triggers bound to (schema, hook), in firing order. Empty array
|
|
20
20
|
* when nothing matches — callers don't need a null check. */
|
|
21
21
|
forHook(schema: string, hook: LifecycleHook): readonly TriggerManifest[];
|
|
22
|
-
/** True when at least one lifecycle Trigger bound to this Schema
|
|
23
|
-
* exists (any hook). Used by the entry-writer decorator to short-
|
|
24
|
-
* circuit when no hooks could fire. */
|
|
25
|
-
hasAny(schema: string): boolean;
|
|
26
22
|
}
|
|
27
23
|
//# sourceMappingURL=TriggerIndex.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TriggerIndex.d.ts","sourceRoot":"","sources":["../../../src/domain/service/TriggerIndex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE1E;;;;;;;;;;;;;GAaG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqD;gBAEzE,QAAQ,EAAE,SAAS,eAAe,EAAE;IAuBhD;kEAC8D;IAC9D,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,SAAS,eAAe,EAAE;
|
|
1
|
+
{"version":3,"file":"TriggerIndex.d.ts","sourceRoot":"","sources":["../../../src/domain/service/TriggerIndex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE1E;;;;;;;;;;;;;GAaG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqD;gBAEzE,QAAQ,EAAE,SAAS,eAAe,EAAE;IAuBhD;kEAC8D;IAC9D,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,SAAS,eAAe,EAAE;CAGzE"}
|
|
@@ -42,11 +42,5 @@ export class TriggerIndex {
|
|
|
42
42
|
forHook(schema, hook) {
|
|
43
43
|
return this.bySchemaAndHook.get(schema)?.get(hook) ?? [];
|
|
44
44
|
}
|
|
45
|
-
/** True when at least one lifecycle Trigger bound to this Schema
|
|
46
|
-
* exists (any hook). Used by the entry-writer decorator to short-
|
|
47
|
-
* circuit when no hooks could fire. */
|
|
48
|
-
hasAny(schema) {
|
|
49
|
-
return this.bySchemaAndHook.has(schema);
|
|
50
|
-
}
|
|
51
45
|
}
|
|
52
46
|
//# sourceMappingURL=TriggerIndex.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TriggerIndex.js","sourceRoot":"","sources":["../../../src/domain/service/TriggerIndex.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,YAAY;IACN,eAAe,CAAqD;IAErF,YAAY,QAAoC;QAC9C,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,EAAE,CAAC;QACjC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,WAAW;gBAAE,SAAS;YACjD,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YACpC,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;gBAClB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC1C,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBACpC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACb,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;YAClD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBAClC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;IACH,CAAC;IAED;kEAC8D;IAC9D,OAAO,CAAC,MAAc,EAAE,IAAmB;QACzC,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC3D,CAAC;
|
|
1
|
+
{"version":3,"file":"TriggerIndex.js","sourceRoot":"","sources":["../../../src/domain/service/TriggerIndex.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,YAAY;IACN,eAAe,CAAqD;IAErF,YAAY,QAAoC;QAC9C,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,EAAE,CAAC;QACjC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,WAAW;gBAAE,SAAS;YACjD,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YACpC,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;gBAClB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC1C,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBACpC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACb,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;YAClD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBAClC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;IACH,CAAC;IAED;kEAC8D;IAC9D,OAAO,CAAC,MAAc,EAAE,IAAmB;QACzC,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC3D,CAAC;CACF"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { type ViewManifest } from "@aotter/mantle-spec";
|
|
1
|
+
import { type SchemaManifest, type ViewManifest } from "@aotter/mantle-spec";
|
|
2
2
|
/**
|
|
3
3
|
* View → SQL compilation. Targets SQLite + JSON1 (D1's dialect).
|
|
4
|
-
* Reserved metadata fields project as native columns
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* Reserved metadata fields project as native columns. Declared Schema
|
|
5
|
+
* index fields use their generated columns; undeclared fields keep the
|
|
6
|
+
* `json_extract(data, '$.<field>')` fallback. SQL uses positional `?`
|
|
7
|
+
* parameters; field-name escapes are defense-in-depth on top of the
|
|
8
|
+
* Schema validator gate.
|
|
8
9
|
*
|
|
9
10
|
* v0.1 filter AST supports comparison operators (`eq`, `gt`, `gte`,
|
|
10
11
|
* `lt`, `lte`) plus `and` / `or`; comparison values may be literals or
|
|
@@ -26,5 +27,5 @@ export interface CompileViewOptions {
|
|
|
26
27
|
/** Caller's requested page size; clamped to View.spec.limit. */
|
|
27
28
|
readonly show?: number;
|
|
28
29
|
}
|
|
29
|
-
export declare function compileView(view: ViewManifest, options?: CompileViewOptions): CompiledView;
|
|
30
|
+
export declare function compileView(view: ViewManifest, options?: CompileViewOptions, schema?: SchemaManifest): CompiledView;
|
|
30
31
|
//# sourceMappingURL=ViewSqlCompiler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewSqlCompiler.d.ts","sourceRoot":"","sources":["../../../src/domain/service/ViewSqlCompiler.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ViewSqlCompiler.d.ts","sourceRoot":"","sources":["../../../src/domain/service/ViewSqlCompiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,cAAc,EACnB,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAG7B;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,kBAAkB;IACjC,mDAAmD;IACnD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAoCD,wBAAgB,WAAW,CACzB,IAAI,EAAE,YAAY,EAClB,OAAO,GAAE,kBAAuB,EAChC,MAAM,CAAC,EAAE,cAAc,GACtB,YAAY,CAmCd"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DiagnosticError, isParamRef, runtimeDiagnostic, } from "@aotter/mantle-spec";
|
|
1
|
+
import { DiagnosticError, isParamRef, runtimeDiagnostic, schemaIndexedFieldSql, } from "@aotter/mantle-spec";
|
|
2
2
|
import { clampPage, clampShow } from "./Pagination.js";
|
|
3
3
|
// alias → SQL column. Aliases mirror RESERVED_ENTRY_COLUMNS from
|
|
4
4
|
// spec; SQL column shape (snake_case) is local to the storage layout.
|
|
@@ -24,19 +24,29 @@ const SQL_COMPARISON_OP = {
|
|
|
24
24
|
lt: "<",
|
|
25
25
|
lte: "<=",
|
|
26
26
|
};
|
|
27
|
-
export function compileView(view, options = {}) {
|
|
27
|
+
export function compileView(view, options = {}, schema) {
|
|
28
|
+
if (schema && schema.metadata.name !== view.spec.from) {
|
|
29
|
+
throw new DiagnosticError(runtimeDiagnostic({
|
|
30
|
+
code: "INTERNAL_ERROR",
|
|
31
|
+
severity: "error",
|
|
32
|
+
path: "compileView/schema",
|
|
33
|
+
value: schema.metadata.name,
|
|
34
|
+
expected: `Schema '${view.spec.from}' referenced by View.spec.from`,
|
|
35
|
+
message: `View '${view.metadata.name}' cannot compile against Schema '${schema.metadata.name}'.`,
|
|
36
|
+
}));
|
|
37
|
+
}
|
|
28
38
|
const sqlParams = [view.spec.from];
|
|
29
|
-
const selectExpr = buildSelect(view.spec.fields);
|
|
39
|
+
const selectExpr = buildSelect(view.spec.fields, schema);
|
|
30
40
|
const whereParts = ["collection = ?"];
|
|
31
41
|
if (view.spec.filter) {
|
|
32
|
-
const compiled = compileFilter(view.spec.filter, options.params ?? {});
|
|
42
|
+
const compiled = compileFilter(view.spec.filter, options.params ?? {}, schema);
|
|
33
43
|
if (compiled !== null) {
|
|
34
44
|
whereParts.push(`(${compiled.sql})`);
|
|
35
45
|
sqlParams.push(...compiled.params);
|
|
36
46
|
}
|
|
37
47
|
}
|
|
38
48
|
const where = `WHERE ${whereParts.join(" AND ")}`;
|
|
39
|
-
const orderBy = buildOrderBy(view.spec.orderBy);
|
|
49
|
+
const orderBy = buildOrderBy(view.spec.orderBy, schema);
|
|
40
50
|
const effectiveShow = clampShow(options.show, view.spec.limit);
|
|
41
51
|
const effectivePage = clampPage(options.page);
|
|
42
52
|
// Cap the offset so a huge `?page=` can't render in exponential
|
|
@@ -48,22 +58,25 @@ export function compileView(view, options = {}) {
|
|
|
48
58
|
const sql = `SELECT ${selectExpr} FROM entries ${where}${orderBy} LIMIT ${effectiveShow} OFFSET ${offset}`;
|
|
49
59
|
return { sql, params: sqlParams, effectivePage, effectiveShow };
|
|
50
60
|
}
|
|
51
|
-
function buildSelect(fields) {
|
|
61
|
+
function buildSelect(fields, schema) {
|
|
52
62
|
if (!fields || fields.length === 0)
|
|
53
63
|
return DEFAULT_PROJECTION;
|
|
54
|
-
return fields.map(fieldExpr).join(", ");
|
|
64
|
+
return fields.map((field) => fieldExpr(field, schema)).join(", ");
|
|
55
65
|
}
|
|
56
|
-
function fieldExpr(field) {
|
|
66
|
+
function fieldExpr(field, schema) {
|
|
57
67
|
const reserved = RESERVED_COLUMN[field];
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
return
|
|
68
|
+
const expression = fieldRefExpr(field, schema);
|
|
69
|
+
if (reserved === field)
|
|
70
|
+
return expression;
|
|
71
|
+
return `${expression} AS ${reserved ? field : quoteIdent(field)}`;
|
|
62
72
|
}
|
|
63
|
-
function fieldRefExpr(field) {
|
|
73
|
+
function fieldRefExpr(field, schema) {
|
|
64
74
|
const reserved = RESERVED_COLUMN[field];
|
|
65
75
|
if (reserved)
|
|
66
76
|
return reserved;
|
|
77
|
+
const indexed = schema ? schemaIndexedFieldSql(schema, field) : null;
|
|
78
|
+
if (indexed)
|
|
79
|
+
return indexed;
|
|
67
80
|
return `json_extract(data, ${quotedJsonPath(field)})`;
|
|
68
81
|
}
|
|
69
82
|
/**
|
|
@@ -77,7 +90,7 @@ function fieldRefExpr(field) {
|
|
|
77
90
|
* shared array) so a dropped sub-tree can never leave orphan params
|
|
78
91
|
* bound to the parent's `?` placeholders.
|
|
79
92
|
*/
|
|
80
|
-
function compileFilter(node, paramValues) {
|
|
93
|
+
function compileFilter(node, paramValues, schema) {
|
|
81
94
|
const comparison = getFilterComparison(node);
|
|
82
95
|
if (comparison) {
|
|
83
96
|
const value = comparison.node.value;
|
|
@@ -92,14 +105,14 @@ function compileFilter(node, paramValues) {
|
|
|
92
105
|
bound = value;
|
|
93
106
|
}
|
|
94
107
|
return {
|
|
95
|
-
sql: `${fieldRefExpr(comparison.node.field)} ${SQL_COMPARISON_OP[comparison.op]} ?`,
|
|
108
|
+
sql: `${fieldRefExpr(comparison.node.field, schema)} ${SQL_COMPARISON_OP[comparison.op]} ?`,
|
|
96
109
|
params: [bound],
|
|
97
110
|
};
|
|
98
111
|
}
|
|
99
112
|
const op = "and" in node ? "AND" : "OR";
|
|
100
113
|
const children = "and" in node ? node.and : "or" in node ? node.or : [];
|
|
101
114
|
const compiled = children
|
|
102
|
-
.map((c) => compileFilter(c, paramValues))
|
|
115
|
+
.map((c) => compileFilter(c, paramValues, schema))
|
|
103
116
|
.filter((c) => c !== null);
|
|
104
117
|
if (compiled.length === 0)
|
|
105
118
|
return null;
|
|
@@ -121,7 +134,7 @@ function getFilterComparison(node) {
|
|
|
121
134
|
return { op: "lte", node: node.lte };
|
|
122
135
|
return null;
|
|
123
136
|
}
|
|
124
|
-
function buildOrderBy(orderBy) {
|
|
137
|
+
function buildOrderBy(orderBy, schema) {
|
|
125
138
|
if (!orderBy || orderBy.length === 0)
|
|
126
139
|
return "";
|
|
127
140
|
const parts = orderBy.map((o) => {
|
|
@@ -130,7 +143,7 @@ function buildOrderBy(orderBy) {
|
|
|
130
143
|
// from YAML, so an out-of-enum string (e.g. `DESC LIMIT 0 --`)
|
|
131
144
|
// could otherwise reach the SQL string verbatim.
|
|
132
145
|
const dir = o.direction === "desc" ? "DESC" : "ASC";
|
|
133
|
-
return `${fieldRefExpr(o.field)} ${dir}`;
|
|
146
|
+
return `${fieldRefExpr(o.field, schema)} ${dir}`;
|
|
134
147
|
});
|
|
135
148
|
return ` ORDER BY ${parts.join(", ")}`;
|
|
136
149
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewSqlCompiler.js","sourceRoot":"","sources":["../../../src/domain/service/ViewSqlCompiler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAEf,UAAU,EACV,iBAAiB,
|
|
1
|
+
{"version":3,"file":"ViewSqlCompiler.js","sourceRoot":"","sources":["../../../src/domain/service/ViewSqlCompiler.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -23,9 +23,10 @@ export { pickPrimaryVariant } from "./domain/port/MediaStorage.js";
|
|
|
23
23
|
export type { MediaAssetRepository, MediaAssetListArgs, MediaAssetListResult, } from "./domain/port/MediaAssetRepository.js";
|
|
24
24
|
export type { EmailSender, EmailSendArgs, } from "./domain/port/EmailSender.js";
|
|
25
25
|
export { extensionForMime } from "./usecase/media/mediaAllowlist.js";
|
|
26
|
-
export type { DeferredHookDispatcher, DeferredHookEnvelope, CtxSnapshot, } from "./domain/port/DeferredHookDispatcher.js";
|
|
26
|
+
export type { DeferredHookDispatcher, DeferredHookEnvelope, DeferredLifecycleHook, CtxSnapshot, } from "./domain/port/DeferredHookDispatcher.js";
|
|
27
|
+
export { DEFERRED_HOOK_ENVELOPE_VERSION } from "./domain/port/DeferredHookDispatcher.js";
|
|
27
28
|
export { type IdGenerator, RandomUuidGenerator } from "./domain/port/IdGenerator.js";
|
|
28
|
-
export type { AnyHandler, HandlerContext, } from "./domain/model/HandlerContext.js";
|
|
29
|
+
export type { AnyHandler, HandlerContext, HandlerAuthContext, HandlerLifecycleEvent, } from "./domain/model/HandlerContext.js";
|
|
29
30
|
export type { SeoMeta } from "./domain/model/SeoMeta.js";
|
|
30
31
|
export { TemplateRegistry, type EntryContext, type ListContext, type EntryTemplate, type ListTemplate, } from "./domain/model/TemplateRegistry.js";
|
|
31
32
|
export { createPublicPathResolver, type PublicPathResolver, type PublicPathResolverConfig, type CollectionRoute, } from "./domain/service/PublicPathResolver.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EACL,gBAAgB,EAChB,KAAK,oBAAoB,EACzB,KAAK,UAAU,GAChB,MAAM,cAAc,CAAC;AAKtB,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,eAAe,EACf,SAAS,GACV,MAAM,iCAAiC,CAAC;AACzC,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACpF,YAAY,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,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,+BAA+B,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,YAAY,EACV,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,uCAAuC,CAAC;AAC/C,YAAY,EACV,WAAW,EACX,aAAa,GACd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,YAAY,EACV,sBAAsB,EACtB,oBAAoB,EACpB,WAAW,GACZ,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EACL,gBAAgB,EAChB,KAAK,oBAAoB,EACzB,KAAK,UAAU,GAChB,MAAM,cAAc,CAAC;AAKtB,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,eAAe,EACf,SAAS,GACV,MAAM,iCAAiC,CAAC;AACzC,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACpF,YAAY,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,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,+BAA+B,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,YAAY,EACV,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,uCAAuC,CAAC;AAC/C,YAAY,EACV,WAAW,EACX,aAAa,GACd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,YAAY,EACV,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,WAAW,GACZ,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAKzF,OAAO,EAAE,KAAK,WAAW,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAGrF,YAAY,EACV,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EACL,gBAAgB,EAChB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,eAAe,GACrB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,GACxB,MAAM,qCAAqC,CAAC;AAI7C,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,EACzB,WAAW,EACX,UAAU,GACX,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,sBAAsB,EACtB,WAAW,GACZ,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAC7E,OAAO,EACL,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,sCAAsC,CAAC;AAI9C,OAAO,EACL,oBAAoB,EACpB,KAAK,cAAc,EACnB,KAAK,WAAW,GACjB,MAAM,8CAA8C,CAAC;AAItD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AAIpF,OAAO,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
export { createCmsRuntime, } from "./runtime.js";
|
|
19
19
|
export { pickPrimaryVariant } from "./domain/port/MediaStorage.js";
|
|
20
20
|
export { extensionForMime } from "./usecase/media/mediaAllowlist.js";
|
|
21
|
+
export { DEFERRED_HOOK_ENVELOPE_VERSION } from "./domain/port/DeferredHookDispatcher.js";
|
|
21
22
|
// ID source — adapters wire this into binding-side helpers that need
|
|
22
23
|
// random IDs. Default `RandomUuidGenerator` (`crypto.randomUUID()`)
|
|
23
24
|
// can be swapped in tests with a deterministic counter.
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,iBAAiB;AACjB,OAAO,EACL,gBAAgB,GAGjB,MAAM,cAAc,CAAC;AA6BtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAUnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAOrE,qEAAqE;AACrE,oEAAoE;AACpE,wDAAwD;AACxD,OAAO,EAAoB,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,iBAAiB;AACjB,OAAO,EACL,gBAAgB,GAGjB,MAAM,cAAc,CAAC;AA6BtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAUnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAOrE,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAEzF,qEAAqE;AACrE,oEAAoE;AACpE,wDAAwD;AACxD,OAAO,EAAoB,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAUrF,OAAO,EACL,gBAAgB,GAKjB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,wBAAwB,GAIzB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAGlB,MAAM,qCAAqC,CAAC;AAE7C,kEAAkE;AAClE,oEAAoE;AACpE,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,EACzB,WAAW,EACX,UAAU,GACX,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,sBAAsB,EACtB,WAAW,GACZ,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAC7E,OAAO,EACL,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,sCAAsC,CAAC;AAE9C,iEAAiE;AACjE,4DAA4D;AAC5D,OAAO,EACL,oBAAoB,GAGrB,MAAM,8CAA8C,CAAC;AAEtD,6DAA6D;AAC7D,4DAA4D;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AAEpF,qEAAqE;AACrE,gCAAgC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAC"}
|
|
@@ -13,5 +13,5 @@ export declare function schemaIndexMigrations(schemas: Iterable<SchemaManifest>)
|
|
|
13
13
|
* Keep generated columns: SQLite cannot remove them safely across the
|
|
14
14
|
* D1 versions Mantle supports, and unused virtual columns are harmless.
|
|
15
15
|
*/
|
|
16
|
-
export declare function
|
|
16
|
+
export declare function reconcileSchemaIndexes(db: DatabaseDriver, current: readonly Migration[], schemas: Iterable<SchemaManifest>): Promise<void>;
|
|
17
17
|
//# sourceMappingURL=canonicalMigrations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonicalMigrations.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/boot/canonicalMigrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EACV,MAAM,qCAAqC,CAAC;AAE7C;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,SAAS,EA0NpD,CAAC;AAEF,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,GAChC,SAAS,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"canonicalMigrations.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/boot/canonicalMigrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EACV,MAAM,qCAAqC,CAAC;AAE7C;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,SAAS,EA0NpD,CAAC;AAEF,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,GAChC,SAAS,SAAS,EAAE,CAsBtB;AAOD;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,cAAc,EAClB,OAAO,EAAE,SAAS,SAAS,EAAE,EAC7B,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC,CAiCf"}
|