@rotorsoft/act 1.32.29 → 1.33.0
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 +0 -1
- package/dist/.tsbuildinfo +1 -1
- package/dist/@types/act.d.ts +41 -233
- package/dist/@types/act.d.ts.map +1 -1
- package/dist/@types/adapters/in-memory-store.d.ts.map +1 -1
- package/dist/@types/builders/act-builder.d.ts +2 -115
- package/dist/@types/builders/act-builder.d.ts.map +1 -1
- package/dist/@types/builders/builder-utils.d.ts +1 -1
- package/dist/@types/builders/builder-utils.d.ts.map +1 -1
- package/dist/@types/builders/event-builder.d.ts +5 -5
- package/dist/@types/builders/event-builder.d.ts.map +1 -1
- package/dist/@types/builders/merge.d.ts +1 -1
- package/dist/@types/builders/merge.d.ts.map +1 -1
- package/dist/@types/builders/projection-builder.d.ts +2 -144
- package/dist/@types/builders/projection-builder.d.ts.map +1 -1
- package/dist/@types/builders/slice-builder.d.ts +2 -71
- package/dist/@types/builders/slice-builder.d.ts.map +1 -1
- package/dist/@types/builders/state-builder.d.ts +2 -376
- package/dist/@types/builders/state-builder.d.ts.map +1 -1
- package/dist/@types/config.d.ts +6 -43
- package/dist/@types/config.d.ts.map +1 -1
- package/dist/@types/csv.d.ts +1 -15
- package/dist/@types/csv.d.ts.map +1 -1
- package/dist/@types/index.d.ts +0 -1
- package/dist/@types/index.d.ts.map +1 -1
- package/dist/@types/internal/autoclose-policy.d.ts +9 -108
- package/dist/@types/internal/autoclose-policy.d.ts.map +1 -1
- package/dist/@types/internal/autoclose-reaction.d.ts +1 -9
- package/dist/@types/internal/autoclose-reaction.d.ts.map +1 -1
- package/dist/@types/internal/autoclose-window.d.ts +2 -15
- package/dist/@types/internal/autoclose-window.d.ts.map +1 -1
- package/dist/@types/internal/backoff.d.ts +1 -6
- package/dist/@types/internal/backoff.d.ts.map +1 -1
- package/dist/@types/internal/circuit-breaker.d.ts +1 -4
- package/dist/@types/internal/circuit-breaker.d.ts.map +1 -1
- package/dist/@types/{builders/build-classify.d.ts → internal/classify.d.ts} +2 -15
- package/dist/@types/internal/classify.d.ts.map +1 -0
- package/dist/@types/internal/close-cycle.d.ts +0 -13
- package/dist/@types/internal/close-cycle.d.ts.map +1 -1
- package/dist/@types/internal/config.d.ts +9 -81
- package/dist/@types/internal/config.d.ts.map +1 -1
- package/dist/@types/internal/correlate-cycle.d.ts +1 -1
- package/dist/@types/internal/correlate-cycle.d.ts.map +1 -1
- package/dist/@types/internal/{correlator.d.ts → correlation-id.d.ts} +1 -8
- package/dist/@types/internal/correlation-id.d.ts.map +1 -0
- package/dist/@types/internal/date-reviver.d.ts +0 -5
- package/dist/@types/internal/date-reviver.d.ts.map +1 -1
- package/dist/@types/internal/defer-config.d.ts +0 -13
- package/dist/@types/internal/defer-config.d.ts.map +1 -1
- package/dist/@types/internal/defer-timer.d.ts +1 -5
- package/dist/@types/internal/defer-timer.d.ts.map +1 -1
- package/dist/@types/internal/drain-cycle.d.ts +1 -1
- package/dist/@types/internal/drain-cycle.d.ts.map +1 -1
- package/dist/@types/internal/{drain.d.ts → drain-ops.d.ts} +1 -7
- package/dist/@types/internal/drain-ops.d.ts.map +1 -0
- package/dist/@types/internal/drain-ratio.d.ts +0 -5
- package/dist/@types/internal/drain-ratio.d.ts.map +1 -1
- package/dist/@types/internal/event-sourcing.d.ts +1 -8
- package/dist/@types/internal/event-sourcing.d.ts.map +1 -1
- package/dist/@types/internal/event-versions.d.ts +0 -9
- package/dist/@types/internal/event-versions.d.ts.map +1 -1
- package/dist/@types/internal/lru-map.d.ts +0 -9
- package/dist/@types/internal/lru-map.d.ts.map +1 -1
- package/dist/@types/internal/pii.d.ts +78 -0
- package/dist/@types/internal/pii.d.ts.map +1 -0
- package/dist/@types/internal/projection-fold.d.ts +1 -5
- package/dist/@types/internal/projection-fold.d.ts.map +1 -1
- package/dist/@types/internal/{close-signal.d.ts → reaction-dispatch.d.ts} +46 -6
- package/dist/@types/internal/reaction-dispatch.d.ts.map +1 -0
- package/dist/@types/internal/report-once.d.ts +1 -8
- package/dist/@types/internal/report-once.d.ts.map +1 -1
- package/dist/@types/internal/settle.d.ts +21 -21
- package/dist/@types/internal/settle.d.ts.map +1 -1
- package/dist/@types/internal/tracing.d.ts +3 -14
- package/dist/@types/internal/tracing.d.ts.map +1 -1
- package/dist/@types/internal/walk-streams.d.ts +0 -2
- package/dist/@types/internal/walk-streams.d.ts.map +1 -1
- package/dist/@types/ports.d.ts +3 -43
- package/dist/@types/ports.d.ts.map +1 -1
- package/dist/@types/scoped.d.ts +1 -6
- package/dist/@types/scoped.d.ts.map +1 -1
- package/dist/@types/sensitive.d.ts +56 -0
- package/dist/@types/sensitive.d.ts.map +1 -0
- package/dist/@types/test/index.d.ts +1 -0
- package/dist/@types/test/index.d.ts.map +1 -1
- package/dist/@types/test/sandbox.d.ts +2 -26
- package/dist/@types/test/sandbox.d.ts.map +1 -1
- package/dist/@types/types/act.d.ts +216 -0
- package/dist/@types/types/act.d.ts.map +1 -0
- package/dist/@types/types/action.d.ts +67 -0
- package/dist/@types/types/action.d.ts.map +1 -1
- package/dist/@types/types/builders.d.ts +722 -0
- package/dist/@types/types/builders.d.ts.map +1 -0
- package/dist/@types/types/errors.d.ts +31 -1
- package/dist/@types/types/errors.d.ts.map +1 -1
- package/dist/@types/types/index.d.ts +38 -0
- package/dist/@types/types/index.d.ts.map +1 -1
- package/dist/@types/types/ports.d.ts +16 -10
- package/dist/@types/types/ports.d.ts.map +1 -1
- package/dist/@types/types/reaction.d.ts +11 -1
- package/dist/@types/types/reaction.d.ts.map +1 -1
- package/dist/@types/types/sandbox.d.ts +31 -0
- package/dist/@types/types/sandbox.d.ts.map +1 -0
- package/dist/@types/types/schemas.d.ts +12 -17
- package/dist/@types/types/schemas.d.ts.map +1 -1
- package/dist/{chunk-F7K7SIG6.js → chunk-2PMUONGF.js} +38 -57
- package/dist/chunk-2PMUONGF.js.map +1 -0
- package/dist/chunk-HF433MAF.cjs +264 -0
- package/dist/chunk-HF433MAF.cjs.map +1 -0
- package/dist/{chunk-5FXT63KF.js → chunk-JABYJGT7.js} +184 -24
- package/dist/chunk-JABYJGT7.js.map +1 -0
- package/dist/chunk-VE3MTY4A.cjs +1233 -0
- package/dist/chunk-VE3MTY4A.cjs.map +1 -0
- package/dist/index.cjs +1615 -3003
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +751 -813
- package/dist/index.js.map +1 -1
- package/dist/test/index.cjs +16 -1105
- package/dist/test/index.cjs.map +1 -1
- package/dist/test/index.js +2 -2
- package/dist/test/index.js.map +1 -1
- package/dist/types/index.cjs +58 -276
- package/dist/types/index.cjs.map +1 -1
- package/dist/types/index.js +15 -1
- package/package.json +1 -1
- package/dist/@types/builders/build-classify.d.ts.map +0 -1
- package/dist/@types/builders/builder-base.d.ts +0 -70
- package/dist/@types/builders/builder-base.d.ts.map +0 -1
- package/dist/@types/builders/reaction-builder.d.ts +0 -55
- package/dist/@types/builders/reaction-builder.d.ts.map +0 -1
- package/dist/@types/internal/close-signal.d.ts.map +0 -1
- package/dist/@types/internal/correlator.d.ts.map +0 -1
- package/dist/@types/internal/defer-signal.d.ts +0 -35
- package/dist/@types/internal/defer-signal.d.ts.map +0 -1
- package/dist/@types/internal/drain.d.ts.map +0 -1
- package/dist/@types/internal/index.d.ts +0 -43
- package/dist/@types/internal/index.d.ts.map +0 -1
- package/dist/@types/internal/sensitive.d.ts +0 -177
- package/dist/@types/internal/sensitive.d.ts.map +0 -1
- package/dist/chunk-5FXT63KF.js.map +0 -1
- package/dist/chunk-F7K7SIG6.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/internal/config.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/internal/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,qBAAqB,EACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,YAAY,EACZ,WAAW,EACX,UAAU,EACV,eAAe,EACf,aAAa,EACb,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAmB3B;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,cAG7B,CAAC;AAEF,8EAA8E;AAC9E,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,cAAc,GAAG,SAAS,GAClC,cAAc,GAAG,SAAS,CAI5B;AAMD,+EAA+E;AAC/E,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,iEAAiE;AACjE,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAE3C,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;iBAIzB,CAAC;AAEH,iCAAiC;AACjC,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEnE,0EAA0E;AAC1E,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,eAAe,GACvB,cAAc,CAEhB;AAMD,QAAA,MAAM,mBAAmB;;;;;;;;;;;;iBAGvB,CAAC;AAEH,+BAA+B;AAC/B,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAE/D,yDAAyD;AACzD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,GAAG,YAAY,CAExE;AAaD,0EAA0E;AAC1E,wBAAgB,iBAAiB,CAAC,KAAK,SAAS,MAAM,EACpD,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,GACzB,UAAU,CAAC,KAAK,CAAC,CAGnB;AAMD,wCAAwC;AACxC,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,iDAAiD;AACjD,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,oDAAoD;AACpD,eAAO,MAAM,oBAAoB,QAAS,CAAC;AAQ3C,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,YAAY,GAAG,SAAS,GAChC,YAAY,GAAG,SAAS,CAI1B;AAoBD,+EAA+E;AAC/E,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,aAAa,GAAG,SAAS,GACjC,aAAa,GAAG,SAAS,CAI3B;AAID;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,QAAS,CAAC;AAU5C,iFAAiF;AACjF,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,eAAe,GAAG,SAAS,GACnC,eAAe,GAAG,SAAS,CAI7B;AAeD,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,UAAU,GAAG,SAAS,GAC9B,UAAU,GAAG,SAAS,CAIxB;AA+CD,iFAAiF;AACjF,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,UAAU,GAAG,SAAS,GAC9B,eAAe,CAIjB;AAsBD,8CAA8C;AAC9C,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAAC;AAEnE,wEAAwE;AACxE,eAAO,MAAM,2BAA2B,aAC5B,qBAAqB,KAC9B,oBAAwE,CAAC;AAO5E,QAAA,MAAM,iBAAiB;;;iBAGrB,CAAC;AAEH,mCAAmC;AACnC,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE3D,4DAA4D;AAC5D,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,UAAU,CAElE"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* which is what `claim` reads. See docs/architecture/correlation-and-drain.
|
|
5
5
|
*/
|
|
6
6
|
import type { Query, Registry, SchemaRegister, Schemas } from "../types/index.js";
|
|
7
|
-
import type { DrainOps } from "./drain.js";
|
|
7
|
+
import type { DrainOps } from "./drain-ops.js";
|
|
8
8
|
/** Static resolver target collected at build time and subscribed at init. */
|
|
9
9
|
export type StaticTarget = {
|
|
10
10
|
readonly stream: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"correlate-cycle.d.ts","sourceRoot":"","sources":["../../../src/internal/correlate-cycle.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAEV,KAAK,EACL,QAAQ,EAER,cAAc,EACd,OAAO,EAGR,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"correlate-cycle.d.ts","sourceRoot":"","sources":["../../../src/internal/correlate-cycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @module correlator
|
|
3
|
-
* @category Internal
|
|
4
|
-
*
|
|
5
2
|
* Correlation-id generator and the default implementation.
|
|
6
3
|
*
|
|
7
4
|
* The default produces a readable, time-monotonic-within-window, lowercase
|
|
@@ -11,8 +8,6 @@
|
|
|
11
8
|
*
|
|
12
9
|
* Apps override via {@link ActOptions.correlator} to plug in any scheme
|
|
13
10
|
* (tenant-prefixed, trace-id-propagated, DB-sequence-backed, etc.).
|
|
14
|
-
*
|
|
15
|
-
* @internal
|
|
16
11
|
*/
|
|
17
12
|
import type { Actor, Correlator } from "../types/index.js";
|
|
18
13
|
/**
|
|
@@ -37,8 +32,6 @@ export declare const default_correlator: Correlator;
|
|
|
37
32
|
* Close runs outside any user action, so we synthesize a context with
|
|
38
33
|
* sentinel state/action names — visible in the id when overrides aren't
|
|
39
34
|
* configured.
|
|
40
|
-
*
|
|
41
|
-
* @internal
|
|
42
35
|
*/
|
|
43
36
|
export declare function close_correlation(correlator: Correlator, actor: Actor): string;
|
|
44
|
-
//# sourceMappingURL=
|
|
37
|
+
//# sourceMappingURL=correlation-id.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"correlation-id.d.ts","sourceRoot":"","sources":["../../../src/internal/correlation-id.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAU3D;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,kBAAkB,EAAE,UAMhC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,KAAK,GACX,MAAM,CAOR"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @module date-reviver
|
|
3
|
-
* @category Internal
|
|
4
|
-
*
|
|
5
2
|
* Turning stored text back into `Date`s, driven by the declared schema.
|
|
6
3
|
*
|
|
7
4
|
* JSON has no date type, so a `Date` is stored as its ISO form and something
|
|
@@ -19,8 +16,6 @@
|
|
|
19
16
|
* The shape-based {@link dateReviver} in `utils.ts` is the predecessor this
|
|
20
17
|
* replaced — it revived anything ISO-8601-looking, including fields declared
|
|
21
18
|
* `z.string()`.
|
|
22
|
-
*
|
|
23
|
-
* @internal
|
|
24
19
|
*/
|
|
25
20
|
import { z } from "zod";
|
|
26
21
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-reviver.d.ts","sourceRoot":"","sources":["../../../src/internal/date-reviver.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"date-reviver.d.ts","sourceRoot":"","sources":["../../../src/internal/date-reviver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA6CxB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,CAAC,CAAC,OAAO,GAAG,SAAS,CAwD1E"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @module defer-config
|
|
3
|
-
* @category Internal
|
|
4
|
-
*
|
|
5
2
|
* The `when` options for the public `defer` surface. A
|
|
6
3
|
* reaction defers itself to a future time either declaratively (the
|
|
7
4
|
* `.defer(when)` builder step) or imperatively (`throw new DeferSignal(when)`
|
|
@@ -18,8 +15,6 @@
|
|
|
18
15
|
* Validation follows the config-schema standard (CLAUDE.md): an internal
|
|
19
16
|
* `*OptionsSchema` const, a public inferred type, and a resolver. Slice 2
|
|
20
17
|
* ships `after` / `at`; recurrence (`every`) extends this in Slice 3.
|
|
21
|
-
*
|
|
22
|
-
* @internal
|
|
23
18
|
*/
|
|
24
19
|
import type { Committed, DeferWhen, Schemas } from "../types/index.js";
|
|
25
20
|
/**
|
|
@@ -28,16 +23,12 @@ import type { Committed, DeferWhen, Schemas } from "../types/index.js";
|
|
|
28
23
|
* on a bad shape), then derives the time: `after` from `event.created`, `at`
|
|
29
24
|
* from its absolute `Date`. Never reads `Date.now()`, so the result is stable
|
|
30
25
|
* across re-delivery.
|
|
31
|
-
*
|
|
32
|
-
* @internal
|
|
33
26
|
*/
|
|
34
27
|
export declare function resolve_defer_at<E extends Schemas>(when: DeferWhen, event: Committed<E, keyof E>): number;
|
|
35
28
|
/**
|
|
36
29
|
* The schedule handed to the declarative `.defer` builder step: either a
|
|
37
30
|
* literal {@link DeferWhen} (fixed cooldown/deadline) or a function of the
|
|
38
31
|
* triggering event (read the payload to choose the schedule).
|
|
39
|
-
*
|
|
40
|
-
* @internal
|
|
41
32
|
*/
|
|
42
33
|
export type DeferSchedule<TEvent> = DeferWhen | ((event: TEvent) => DeferWhen);
|
|
43
34
|
/**
|
|
@@ -45,8 +36,6 @@ export type DeferSchedule<TEvent> = DeferWhen | ((event: TEvent) => DeferWhen);
|
|
|
45
36
|
* standard) — throws `ZodError` on a bad shape (both/neither of `after`/`at`,
|
|
46
37
|
* an empty or non-positive duration). The function form of a `.defer` schedule
|
|
47
38
|
* can only be checked when it runs, so builders pass just the literal here.
|
|
48
|
-
*
|
|
49
|
-
* @internal
|
|
50
39
|
*/
|
|
51
40
|
export declare function assert_defer_when(when: DeferWhen): void;
|
|
52
41
|
/**
|
|
@@ -57,8 +46,6 @@ export declare function assert_defer_when(when: DeferWhen): void;
|
|
|
57
46
|
* real handler. The wrapper keeps the original handler's `name` so reaction
|
|
58
47
|
* registration and de-dup are unaffected, and preserves the handler's exact
|
|
59
48
|
* type so the builder step is transparent.
|
|
60
|
-
*
|
|
61
|
-
* @internal
|
|
62
49
|
*/
|
|
63
50
|
export declare function make_deferred<H extends (...args: any[]) => Promise<unknown>>(handler: H, schedule: DeferSchedule<Parameters<H>[0]>): H;
|
|
64
51
|
//# sourceMappingURL=defer-config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defer-config.d.ts","sourceRoot":"","sources":["../../../src/internal/defer-config.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"defer-config.d.ts","sourceRoot":"","sources":["../../../src/internal/defer-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AA8CvE;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,OAAO,EAChD,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAC3B,MAAM,CAIR;AAED;;;;GAIG;AACH,MAAM,MAAM,aAAa,CAAC,MAAM,IAAI,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC;AAE/E;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAEvD;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,EAC1E,OAAO,EAAE,CAAC,EACV,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACxC,CAAC,CAaH"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @module defer-timer
|
|
3
|
-
* @category Internal
|
|
4
|
-
*
|
|
5
2
|
* The shared "next visit time" primitive. A `DeferTimer` holds a
|
|
6
3
|
* `stream → due-time` map and a single collapsed wake timer: it parks
|
|
7
4
|
* streams that should be re-visited later and fires one `on_wake` callback
|
|
@@ -25,9 +22,8 @@
|
|
|
25
22
|
* onto the owning lane's timer via {@link "drain-cycle".DrainController.seed_defer},
|
|
26
23
|
* so an idle deferred stream re-arms at its due-time with no
|
|
27
24
|
* intervening commit.
|
|
28
|
-
*
|
|
29
|
-
* @internal
|
|
30
25
|
*/
|
|
26
|
+
/** A linear scan finds the earliest entry: the map is bounded by claim limits. */
|
|
31
27
|
export declare class DeferTimer {
|
|
32
28
|
private readonly _due;
|
|
33
29
|
private _timer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defer-timer.d.ts","sourceRoot":"","sources":["../../../src/internal/defer-timer.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"defer-timer.d.ts","sourceRoot":"","sources":["../../../src/internal/defer-timer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAQH,kFAAkF;AAClF,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA6B;IAClD,OAAO,CAAC,MAAM,CAA4C;IAC1D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IAEtC;;;OAGG;IACH,YAAY,OAAO,EAAE,MAAM,IAAI,EAE9B;IAED,0CAA0C;IAC1C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;;OAKG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAEpC;IAED,6EAA6E;IAC7E,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAE3B;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAG1B;IAED;;;;;;;OAOG;IACH,QAAQ,IAAI,IAAI,CAmBf;IAED,+EAA+E;IAC/E,IAAI,IAAI,IAAI,CAKX;CACF"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import type { BatchHandler, BlockedLease, CloseTarget, Drain, DrainOptions, Lease, Logger, ReactionOptions, ReactionPayload, Registry, SchemaRegister, Schemas } from "../types/index.js";
|
|
7
7
|
import type { CircuitBreaker } from "./circuit-breaker.js";
|
|
8
|
-
import type { DrainOps } from "./drain.js";
|
|
8
|
+
import type { DrainOps } from "./drain-ops.js";
|
|
9
9
|
/** Outcome of handling one leased stream; drives its ack/block. */
|
|
10
10
|
export type HandleResult = Readonly<{
|
|
11
11
|
lease: Lease;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drain-cycle.d.ts","sourceRoot":"","sources":["../../../src/internal/drain-cycle.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,KAAK,EACL,YAAY,EAEZ,KAAK,EACL,MAAM,EACN,eAAe,EACf,eAAe,EACf,QAAQ,EAER,cAAc,EACd,OAAO,EACR,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAQ3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"drain-cycle.d.ts","sourceRoot":"","sources":["../../../src/internal/drain-cycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @module drain
|
|
3
|
-
* @category Internal
|
|
4
|
-
*
|
|
5
2
|
* Pipeline operations consumed by the drain/correlate loop. Each op is a
|
|
6
3
|
* single async step the orchestrator invokes per drain cycle:
|
|
7
4
|
*
|
|
@@ -15,11 +12,8 @@
|
|
|
15
12
|
* mirroring the shape of {@link "event-sourcing"}. Trace decoration is
|
|
16
13
|
* layered on top in {@link "tracing"} and selected by the orchestrator at
|
|
17
14
|
* construction time. No tracing imports here.
|
|
18
|
-
*
|
|
19
|
-
* @internal
|
|
20
15
|
*/
|
|
21
16
|
import type { BlockedLease, Fetch, Lease, Schemas, SubscribeInput, SubscribeResult } from "../types/index.js";
|
|
22
|
-
/** @internal */
|
|
23
17
|
export interface DrainOps<TEvents extends Schemas> {
|
|
24
18
|
claim: typeof claim;
|
|
25
19
|
fetch: typeof fetch<TEvents>;
|
|
@@ -36,4 +30,4 @@ export declare const subscribe: (streams: SubscribeInput[], correlated_at?: numb
|
|
|
36
30
|
by: string;
|
|
37
31
|
millis: number;
|
|
38
32
|
}) => Promise<SubscribeResult>;
|
|
39
|
-
//# sourceMappingURL=drain.d.ts.map
|
|
33
|
+
//# sourceMappingURL=drain-ops.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drain-ops.d.ts","sourceRoot":"","sources":["../../../src/internal/drain-ops.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EACV,YAAY,EAEZ,KAAK,EACL,KAAK,EACL,OAAO,EACP,cAAc,EACd,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAG3B,MAAM,WAAW,QAAQ,CAAC,OAAO,SAAS,OAAO;IAC/C,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,KAAK,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,GAAG,EAAE,OAAO,GAAG,CAAC;IAChB,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,SAAS,EAAE,OAAO,SAAS,CAAC;CAC7B;AAED,eAAO,MAAM,KAAK,YACP,MAAM,WACN,MAAM,MACX,MAAM,UACF,MAAM,SACP,MAAM,KACZ,OAAO,CAAC,KAAK,EAAE,CAAsD,CAAC;AAEzE,wBAAsB,KAAK,CAAC,OAAO,SAAS,OAAO,EACjD,MAAM,EAAE,KAAK,EAAE,EACf,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAwCzB;AAKD,eAAO,MAAM,GAAG,WAAY,KAAK,EAAE,KAAG,OAAO,CAAC,KAAK,EAAE,CAAwB,CAAC;AAE9E,eAAO,MAAM,KAAK,WAAY,YAAY,EAAE,KAAG,OAAO,CAAC,YAAY,EAAE,CAC9C,CAAC;AAExB,eAAO,MAAM,SAAS,YACX,cAAc,EAAE,kBACT,MAAM,eACT;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,KACvD,OAAO,CAAC,eAAe,CAC6B,CAAC"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @module drain-ratio
|
|
3
|
-
* @category Internal
|
|
4
|
-
*
|
|
5
2
|
* Adaptive lag-to-lead ratio for the dual-frontier drain strategy.
|
|
6
3
|
*
|
|
7
4
|
* The orchestrator splits its per-cycle stream budget between two frontiers:
|
|
@@ -13,8 +10,6 @@
|
|
|
13
10
|
* handled in each frontier and shifts the next cycle's split toward
|
|
14
11
|
* whichever frontier had the higher per-stream throughput. The result is
|
|
15
12
|
* clamped to `[0.2, 0.8]` so neither frontier can be starved.
|
|
16
|
-
*
|
|
17
|
-
* @internal
|
|
18
13
|
*/
|
|
19
14
|
import type { HandleResult } from "./drain-cycle.js";
|
|
20
15
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drain-ratio.d.ts","sourceRoot":"","sources":["../../../src/internal/drain-ratio.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"drain-ratio.d.ts","sourceRoot":"","sources":["../../../src/internal/drain-ratio.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAQrD;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,aAAa,CAAC,YAAY,CAAC,EACpC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,MAAM,CAYR"}
|
|
@@ -2,14 +2,7 @@
|
|
|
2
2
|
* Event-sourcing primitives: `snap`, `load`, `action`, `tombstone`, `scan`.
|
|
3
3
|
* Bare implementations; tracing wraps them in `tracing.ts`.
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
6
|
-
import type { Committed, DoOptions, EventSource, LoadTarget, ScanOptions, ScanResult, Schema, Schemas, Snapshot, State, Target } from "../types/index.js";
|
|
7
|
-
/**
|
|
8
|
-
* The patch step: merges a reducer's partial into state. Chosen once at
|
|
9
|
-
* construction (`build_es`), never per event. `me`/`event` only serve
|
|
10
|
-
* {@link validating_patch}, to name the failing reduction.
|
|
11
|
-
*/
|
|
12
|
-
export type PatchFn = <TState extends Schema, TEvents extends Schemas, TActions extends Schemas>(me: State<TState, TEvents, TActions>, state: TState, partial: Readonly<Patch<TState>>, event: Committed<TEvents, keyof TEvents>) => TState;
|
|
5
|
+
import type { Committed, DoOptions, EventSource, LoadTarget, PatchFn, ScanOptions, ScanResult, Schema, Schemas, Snapshot, State, Target } from "../types/index.js";
|
|
13
6
|
/** The default patch step: a bare merge, so the hot path pays nothing. */
|
|
14
7
|
export declare const bare_patch: PatchFn;
|
|
15
8
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-sourcing.d.ts","sourceRoot":"","sources":["../../../src/internal/event-sourcing.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"event-sourcing.d.ts","sourceRoot":"","sources":["../../../src/internal/event-sourcing.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @module event-versions
|
|
3
|
-
* @category Internal
|
|
4
|
-
*
|
|
5
2
|
* Auto-deprecation of legacy event versions via the `_v<digits>` naming
|
|
6
3
|
* convention.
|
|
7
4
|
*
|
|
@@ -14,8 +11,6 @@
|
|
|
14
11
|
* Convention pin: only `_v<digits>` with digits ≥ 2 counts as a version
|
|
15
12
|
* suffix. `Foo_v1` is just a literal event name (the base `Foo` is
|
|
16
13
|
* implicitly v1). Pinning here keeps the contract surface small.
|
|
17
|
-
*
|
|
18
|
-
* @internal
|
|
19
14
|
*/
|
|
20
15
|
/**
|
|
21
16
|
* Returns the set of event names that are deprecated by virtue of having
|
|
@@ -26,8 +21,6 @@
|
|
|
26
21
|
* current. The framework picks the max regardless of contiguity.
|
|
27
22
|
*
|
|
28
23
|
* Single-version groups (no siblings) yield no deprecations.
|
|
29
|
-
*
|
|
30
|
-
* @internal
|
|
31
24
|
*/
|
|
32
25
|
export declare function deprecated_event_names(names: Iterable<string>): Set<string>;
|
|
33
26
|
/**
|
|
@@ -37,8 +30,6 @@ export declare function deprecated_event_names(names: Iterable<string>): Set<str
|
|
|
37
30
|
*
|
|
38
31
|
* Returns `undefined` if the event has no higher-versioned sibling (which
|
|
39
32
|
* means the caller's classification is stale or wrong).
|
|
40
|
-
*
|
|
41
|
-
* @internal
|
|
42
33
|
*/
|
|
43
34
|
export declare function current_version_of(deprecated_name: string, all_names: Iterable<string>): string | undefined;
|
|
44
35
|
//# sourceMappingURL=event-versions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-versions.d.ts","sourceRoot":"","sources":["../../../src/internal/event-versions.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"event-versions.d.ts","sourceRoot":"","sources":["../../../src/internal/event-versions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAmBH;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAiC3E;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,GAC1B,MAAM,GAAG,SAAS,CASpB"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @module lru-map
|
|
3
|
-
* @category Internal
|
|
4
|
-
*
|
|
5
2
|
* Tiny bounded LRU map / set built on insertion-ordered `Map`. Used to cap
|
|
6
3
|
* memory in long-running orchestrators that mint large numbers of keys —
|
|
7
4
|
* notably:
|
|
@@ -11,14 +8,10 @@
|
|
|
11
8
|
*
|
|
12
9
|
* Apps with millions of dynamic streams (one target per aggregate) can't
|
|
13
10
|
* afford an unbounded `Set<string>` — eviction is required.
|
|
14
|
-
*
|
|
15
|
-
* @internal
|
|
16
11
|
*/
|
|
17
12
|
/**
|
|
18
13
|
* Bounded LRU map. `get()` promotes; `has()` does not. `set()` always
|
|
19
14
|
* promotes and evicts the oldest entry when at capacity.
|
|
20
|
-
*
|
|
21
|
-
* @internal
|
|
22
15
|
*/
|
|
23
16
|
export declare class LruMap<K, V> {
|
|
24
17
|
private readonly _entries;
|
|
@@ -35,8 +28,6 @@ export declare class LruMap<K, V> {
|
|
|
35
28
|
* Bounded LRU set built on top of {@link LruMap}. `has()` does not promote;
|
|
36
29
|
* `add()` does (re-inserting if already present, evicting the oldest at
|
|
37
30
|
* capacity).
|
|
38
|
-
*
|
|
39
|
-
* @internal
|
|
40
31
|
*/
|
|
41
32
|
export declare class LruSet<T> {
|
|
42
33
|
private readonly _map;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lru-map.d.ts","sourceRoot":"","sources":["../../../src/internal/lru-map.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"lru-map.d.ts","sourceRoot":"","sources":["../../../src/internal/lru-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;GAGG;AACH,qBAAa,MAAM,CAAC,CAAC,EAAE,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC,YAAY,OAAO,EAAE,MAAM,EAE1B;IAED,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,CAOzB;IAED,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAEnB;IAED,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAS1B;IAED,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAEtB;IAED,KAAK,IAAI,IAAI,CAEZ;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF;AAED;;;;GAIG;AACH,qBAAa,MAAM,CAAC,CAAC;IACnB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAkB;IAEvC,YAAY,OAAO,EAAE,MAAM,EAE1B;IAED,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAErB;IAED,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAElB;IAED,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAExB;IAED,KAAK,IAAI,IAAI,CAEZ;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The transforms that apply the sensitive-data marker (`../sensitive.ts`):
|
|
3
|
+
* split sensitive fields out at commit, gate them on read, and strip them
|
|
4
|
+
* before projection and reaction handlers.
|
|
5
|
+
*/
|
|
6
|
+
import type { Actor, Committed, Schemas } from "../types/index.js";
|
|
7
|
+
/**
|
|
8
|
+
* Split an emitted event's `data` into `data` (non-sensitive) + `pii`
|
|
9
|
+
* (sensitive) using the field list precomputed at build time. Used by the
|
|
10
|
+
* State's `_pii_split` decorator just before `Store.commit`.
|
|
11
|
+
*
|
|
12
|
+
* Single forward pass over `Object.keys(validated)` — same shape as the
|
|
13
|
+
* spread-and-delete-free implementation in slice 3, just hoisted out of the
|
|
14
|
+
* orchestrator hot path so it's only invoked when the State actually has a
|
|
15
|
+
* sensitive event.
|
|
16
|
+
*/
|
|
17
|
+
export declare function pii_split<TName, TData extends Record<string, unknown>>(emitted: {
|
|
18
|
+
name: TName;
|
|
19
|
+
data: TData;
|
|
20
|
+
}, fields: readonly string[]): {
|
|
21
|
+
name: TName;
|
|
22
|
+
data: TData;
|
|
23
|
+
pii: Record<string, unknown>;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* A prebuilt per-event read gate: given a committed event and the reading
|
|
27
|
+
* actor, return the caller-visible form. This is the single gating primitive
|
|
28
|
+
* the builder prebuilds for **every** read surface — both the actor-less
|
|
29
|
+
* `query` / `query_array` (which pass no actor → default-deny) and the
|
|
30
|
+
* actor-aware `load` / `do`-return view (which pass the reader). Non-sensitive
|
|
31
|
+
* events use the shared {@link IDENTITY_GATE}; sensitive events use a redactor
|
|
32
|
+
* built by {@link make_gate} that closes over the field list and the state's
|
|
33
|
+
* disclosure predicate, so the read path never recomputes the sensitive-field
|
|
34
|
+
* lookup nor allocates per event.
|
|
35
|
+
*
|
|
36
|
+
* The `actor` is optional so the actor-less surfaces can call `gate(event)`.
|
|
37
|
+
*/
|
|
38
|
+
export type EventGate = <TEvents extends Schemas, TKey extends keyof TEvents>(event: Committed<TEvents, TKey>, actor?: Actor) => Committed<TEvents, TKey>;
|
|
39
|
+
/**
|
|
40
|
+
* Shared zero-cost gate for every event with no `sensitive(...)` fields — a
|
|
41
|
+
* single frozen reference the builder hands back for non-sensitive events, so
|
|
42
|
+
* the common path is one `Map` miss and an identity call, no allocation. This
|
|
43
|
+
* is the "by default, return the event" half of the prebuilt per-event gate.
|
|
44
|
+
*/
|
|
45
|
+
export declare const IDENTITY_GATE: EventGate;
|
|
46
|
+
/**
|
|
47
|
+
* Prebuild a read gate for a sensitive event, capturing its field list and the
|
|
48
|
+
* disclosure predicate once at build time. The returned closure defers to
|
|
49
|
+
* {@link pii_gate} with the reading actor supplied per call:
|
|
50
|
+
*
|
|
51
|
+
* - `predicate = null` (the actor-less `query` surfaces, or a state that never
|
|
52
|
+
* declared `.discloses`) → default-deny: declared fields come back
|
|
53
|
+
* {@link REDACTED} (or {@link SHREDDED} once the pii column is forgotten).
|
|
54
|
+
* - `predicate` set + an authorized actor → plaintext merged into `data`.
|
|
55
|
+
*
|
|
56
|
+
* Either way the isolated `pii` sidecar is dropped. The builder stores one gate
|
|
57
|
+
* per sensitive event (per state for the load path; predicate-less for the
|
|
58
|
+
* query path); non-sensitive events fall back to {@link IDENTITY_GATE}.
|
|
59
|
+
*/
|
|
60
|
+
export declare function make_gate(fields: readonly string[], predicate: ((event: any, actor: Actor) => boolean) | null): EventGate;
|
|
61
|
+
/**
|
|
62
|
+
* Build the **handler view** — sensitive keys removed entirely from `data`
|
|
63
|
+
* and the `pii` field dropped from the event. Used before invoking projection
|
|
64
|
+
* handlers and reaction handlers, which never see PII by framework rule.
|
|
65
|
+
*
|
|
66
|
+
* Different from {@link pii_gate} (which substitutes {@link REDACTED} or
|
|
67
|
+
* {@link SHREDDED}) — projection tables and reaction sinks shouldn't even
|
|
68
|
+
* structurally observe the keys, so a handler that mistakenly writes
|
|
69
|
+
* `event.data.email` into a column would get `undefined`, not a sentinel
|
|
70
|
+
* string that looks like real data. The strictness is deliberate.
|
|
71
|
+
*
|
|
72
|
+
* Reactions that genuinely need PII (e.g. a welcome-email reaction reading
|
|
73
|
+
* `email`) opt back in by explicitly calling `app.load(stream, { actor:
|
|
74
|
+
* system_actor })` inside the handler — pulling PII through the gate at the
|
|
75
|
+
* call site makes the security-relevant path visible in code review.
|
|
76
|
+
*/
|
|
77
|
+
export declare function pii_strip<TEvents extends Schemas, TKey extends keyof TEvents & string>(event: Committed<TEvents, TKey>, fields: readonly string[]): Committed<TEvents, TKey>;
|
|
78
|
+
//# sourceMappingURL=pii.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pii.d.ts","sourceRoot":"","sources":["../../../src/internal/pii.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAGnE;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpE,OAAO,EAAE;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,KAAK,CAAA;CAAE,EACrC,MAAM,EAAE,SAAS,MAAM,EAAE,GACxB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAU5D;AAsDD;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,SAAS,OAAO,EAAE,IAAI,SAAS,MAAM,OAAO,EAC1E,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,EAC/B,KAAK,CAAC,EAAE,KAAK,KACV,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAE9B;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,SAA4B,CAAC;AAEzD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CACvB,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,GAAG,IAAI,GACxD,SAAS,CAEX;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,SAAS,CACvB,OAAO,SAAS,OAAO,EACvB,IAAI,SAAS,MAAM,OAAO,GAAG,MAAM,EAEnC,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,EAC/B,MAAM,EAAE,SAAS,MAAM,EAAE,GACxB,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAe1B"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @module projection-fold
|
|
3
|
-
* @category Internal
|
|
4
|
-
*
|
|
5
2
|
* Fold engine behind `projection(name).of(state)` — maintains per-stream
|
|
6
3
|
* folded states in a bounded in-memory cache and flushes one row per dirty
|
|
7
4
|
* stream per round, so write amplification tracks the distinct-key count
|
|
@@ -25,9 +22,8 @@
|
|
|
25
22
|
* - Eviction under `maxCachedStates` pressure flushes the evictee first
|
|
26
23
|
* (flush-before-evict) — eviction never loses folded work.
|
|
27
24
|
*/
|
|
28
|
-
import type { BatchHandler, CacheEntry, Schema, Schemas, State } from "../types/index.js";
|
|
25
|
+
import type { BatchHandler, CacheEntry, PatchFn, Schema, Schemas, State } from "../types/index.js";
|
|
29
26
|
import type { FoldConfig } from "./config.js";
|
|
30
|
-
import { type PatchFn } from "./event-sourcing.js";
|
|
31
27
|
/**
|
|
32
28
|
* Internal handle a fold handler exposes so the orchestrator can drop its
|
|
33
29
|
* process-local state.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection-fold.d.ts","sourceRoot":"","sources":["../../../src/internal/projection-fold.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"projection-fold.d.ts","sourceRoot":"","sources":["../../../src/internal/projection-fold.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,OAAO,EACP,MAAM,EACN,OAAO,EACP,KAAK,EACN,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAgB9C;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,UAAU,eAA2B,CAAC;AAEnD,qEAAqE;AACrE,MAAM,MAAM,sBAAsB,CAAC,OAAO,SAAS,OAAO,IACxD,YAAY,CAAC,OAAO,CAAC,GAAG;IACtB,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC;CACpC,CAAC;AAEJ;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,OAAO,EACvB,QAAQ,SAAS,OAAO,EAExB,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,EACpC,KAAK,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,EACjE,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,OAAO,YAAa,EAC9B,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,SAAS,MAAM,EAAE,GAC1D,YAAY,CAAC,OAAO,CAAC,CAyIvB"}
|
|
@@ -1,9 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* Reaction dispatch — what runs inside the drain pipeline once `run_drain_cycle`
|
|
3
|
+
* has fetched events for a leased stream. Two shapes:
|
|
4
4
|
*
|
|
5
|
+
* - per-event `handle`: walks payloads sequentially, running each handler
|
|
6
|
+
* inside the reaction scope so `action()` threads `reactingTo`
|
|
7
|
+
* - bulk `handle_batch`: hands every event for a static-target projection to
|
|
8
|
+
* a single batch callback, enabling one-transaction replays
|
|
9
|
+
*
|
|
10
|
+
* Both finish through the drain's `finalize`, the one retry-or-block
|
|
11
|
+
* decision for every per-stream failure. A handler steers its outcome by
|
|
12
|
+
* throwing `DeferSignal` (hold until due) or {@link CloseSignal} (retire the
|
|
13
|
+
* stream); dispatch turns either into a `HandleResult`.
|
|
14
|
+
*/
|
|
15
|
+
import type { ReactionScope } from "../scoped.js";
|
|
16
|
+
import type { Actor, Logger, Schemas } from "../types/index.js";
|
|
17
|
+
import { type Handle, type HandleBatch } from "./drain-cycle.js";
|
|
18
|
+
/**
|
|
5
19
|
* The control-flow signal a reaction handler throws to *close* a stream.
|
|
6
|
-
* Like
|
|
20
|
+
* Like `DeferSignal` it rides the dispatcher's
|
|
7
21
|
* `try/catch`, but where a defer holds the stream for later, a close asks the
|
|
8
22
|
* orchestrator to retire it: `build_handle` turns the signal into a
|
|
9
23
|
* `HandleResult.close` (a {@link CloseTarget}), `run_drain_cycle` acks the
|
|
@@ -21,8 +35,6 @@
|
|
|
21
35
|
* *target* distinct from the reaction's lease stream, so the signal carries the
|
|
22
36
|
* stream to close explicitly (`stream`); when omitted (a user reaction closing
|
|
23
37
|
* its own stream) it defaults to the lease stream.
|
|
24
|
-
*
|
|
25
|
-
* @internal
|
|
26
38
|
*/
|
|
27
39
|
export declare class CloseSignal extends Error {
|
|
28
40
|
/**
|
|
@@ -56,4 +68,32 @@ export declare class CloseSignal extends Error {
|
|
|
56
68
|
before?: Date;
|
|
57
69
|
});
|
|
58
70
|
}
|
|
59
|
-
|
|
71
|
+
/**
|
|
72
|
+
* What the dispatcher needs from the orchestrator: a logger for retry and
|
|
73
|
+
* error breadcrumbs, and the scope a handler runs inside.
|
|
74
|
+
*/
|
|
75
|
+
export type ReactionDeps<TEvents extends Schemas, TActions extends Schemas, TActor extends Actor = Actor> = {
|
|
76
|
+
readonly logger: Logger;
|
|
77
|
+
/**
|
|
78
|
+
* What a handler runs inside — its `IAct` facade and its triggering-event
|
|
79
|
+
* context — assembled by the orchestrator. How either half works is not
|
|
80
|
+
* this module's business; it receives the scope whole and calls it.
|
|
81
|
+
*/
|
|
82
|
+
readonly reaction_scope: ReactionScope<TEvents, TActions, TActor>;
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Builds the per-event reaction dispatcher passed to `run_drain_cycle`.
|
|
86
|
+
*
|
|
87
|
+
* The triggering event is installed as ambient context around each handler
|
|
88
|
+
* call, so `action()` resolves it as `reactingTo`. Ambient
|
|
89
|
+
* rather than bound to the `IAct` argument, so a handler that dispatches
|
|
90
|
+
* through a captured `app` inherits the chain too.
|
|
91
|
+
*/
|
|
92
|
+
export declare function build_handle<TEvents extends Schemas, TActions extends Schemas, TActor extends Actor = Actor>(deps: ReactionDeps<TEvents, TActions, TActor>): Handle<TEvents>;
|
|
93
|
+
/**
|
|
94
|
+
* Builds the bulk reaction dispatcher passed to `run_drain_cycle`. All events
|
|
95
|
+
* for a static-target projection are handed to a single callback so the
|
|
96
|
+
* projection can do one transaction per drain (catch-up replays especially).
|
|
97
|
+
*/
|
|
98
|
+
export declare function build_handle_batch<TEvents extends Schemas>(logger: Logger): HandleBatch<TEvents>;
|
|
99
|
+
//# sourceMappingURL=reaction-dispatch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reaction-dispatch.d.ts","sourceRoot":"","sources":["../../../src/internal/reaction-dispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,KAAK,EACV,KAAK,EAIL,MAAM,EAEN,OAAO,EACR,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAY,KAAK,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,WAAY,SAAQ,KAAK;IACpC;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,oEAAoE;IACpE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC;IAEvB,YAAY,IAAI,CAAC,EAAE;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,MAAM,CAAC,EAAE,IAAI,CAAC;KACf,EAOA;CACF;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,CACtB,OAAO,SAAS,OAAO,EACvB,QAAQ,SAAS,OAAO,EACxB,MAAM,SAAS,KAAK,GAAG,KAAK,IAC1B;IACF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;CACnE,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,OAAO,SAAS,OAAO,EACvB,QAAQ,SAAS,OAAO,EACxB,MAAM,SAAS,KAAK,GAAG,KAAK,EAC5B,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAsFhE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,SAAS,OAAO,EACxD,MAAM,EAAE,MAAM,GACb,WAAW,CAAC,OAAO,CAAC,CAsCtB"}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @module report-once
|
|
3
|
-
* @category Internal
|
|
4
|
-
*
|
|
5
2
|
* One-shot reporting for a misdeclaration that a build-time guard could not
|
|
6
3
|
* catch.
|
|
7
4
|
*
|
|
8
|
-
* The guards in `build_events` and `
|
|
5
|
+
* The guards in `build_events` and `classify` can only inspect a static
|
|
9
6
|
* `.to({...})` — a `.to(fn)` target, lane and priority are a function until an
|
|
10
7
|
* event arrives. The pipelines that resolve them (correlate for lane and
|
|
11
8
|
* target, drain for the payload) are therefore where the same rules have to be
|
|
@@ -29,8 +26,6 @@
|
|
|
29
26
|
* Never throws. A throw inside correlate pins the checkpoint for the whole app;
|
|
30
27
|
* inside drain it reaches the circuit breaker as a store failure and
|
|
31
28
|
* stalls every stream.
|
|
32
|
-
*
|
|
33
|
-
* @internal
|
|
34
29
|
*/
|
|
35
30
|
/**
|
|
36
31
|
* Report `message` the first time `key` is seen, and never again.
|
|
@@ -43,8 +38,6 @@
|
|
|
43
38
|
* @param key - Identifies the offending declaration, not the occurrence —
|
|
44
39
|
* declared identifiers only, never a runtime-resolved target.
|
|
45
40
|
* @param message - Wrapped in an `Error` so the logger renders a stack.
|
|
46
|
-
*
|
|
47
|
-
* @internal
|
|
48
41
|
*/
|
|
49
42
|
export declare function report_once(seen: Set<string>, key: string, message: string): void;
|
|
50
43
|
//# sourceMappingURL=report-once.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report-once.d.ts","sourceRoot":"","sources":["../../../src/internal/report-once.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"report-once.d.ts","sourceRoot":"","sources":["../../../src/internal/report-once.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAIH;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,EACjB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GACd,IAAI,CAIN"}
|