@rotorsoft/act 1.10.0 → 1.10.2
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/dist/.tsbuildinfo +1 -1
- package/dist/@types/act.d.ts +22 -19
- package/dist/@types/act.d.ts.map +1 -1
- package/dist/@types/adapters/console-logger.d.ts +2 -2
- package/dist/@types/adapters/console-logger.d.ts.map +1 -1
- package/dist/@types/adapters/in-memory-store.d.ts +6 -6
- package/dist/@types/adapters/in-memory-store.d.ts.map +1 -1
- package/dist/@types/builders/act-builder.d.ts.map +1 -1
- package/dist/@types/builders/slice-builder.d.ts +1 -1
- package/dist/@types/builders/state-builder.d.ts +2 -2
- package/dist/@types/builders/state-builder.d.ts.map +1 -1
- package/dist/@types/internal/audit.d.ts +4 -4
- package/dist/@types/internal/audit.d.ts.map +1 -1
- package/dist/@types/internal/backoff.d.ts +1 -1
- package/dist/@types/internal/backoff.d.ts.map +1 -1
- package/dist/@types/internal/build-classify.d.ts +11 -11
- package/dist/@types/internal/build-classify.d.ts.map +1 -1
- package/dist/@types/internal/close-cycle.d.ts +3 -3
- package/dist/@types/internal/close-cycle.d.ts.map +1 -1
- package/dist/@types/internal/correlate-cycle.d.ts +4 -4
- package/dist/@types/internal/correlate-cycle.d.ts.map +1 -1
- package/dist/@types/internal/correlator.d.ts +2 -2
- package/dist/@types/internal/correlator.d.ts.map +1 -1
- package/dist/@types/internal/drain-cycle.d.ts +20 -20
- package/dist/@types/internal/drain-cycle.d.ts.map +1 -1
- package/dist/@types/internal/drain-ratio.d.ts +1 -1
- package/dist/@types/internal/drain-ratio.d.ts.map +1 -1
- package/dist/@types/internal/event-sourcing.d.ts +9 -9
- package/dist/@types/internal/event-sourcing.d.ts.map +1 -1
- package/dist/@types/internal/event-versions.d.ts +2 -2
- package/dist/@types/internal/event-versions.d.ts.map +1 -1
- package/dist/@types/internal/index.d.ts +8 -8
- package/dist/@types/internal/index.d.ts.map +1 -1
- package/dist/@types/internal/merge.d.ts +3 -3
- package/dist/@types/internal/merge.d.ts.map +1 -1
- package/dist/@types/internal/reactions.d.ts +6 -6
- package/dist/@types/internal/reactions.d.ts.map +1 -1
- package/dist/@types/internal/sensitive.d.ts +8 -25
- package/dist/@types/internal/sensitive.d.ts.map +1 -1
- package/dist/@types/internal/settle.d.ts +3 -3
- package/dist/@types/internal/settle.d.ts.map +1 -1
- package/dist/@types/internal/tracing.d.ts +5 -5
- package/dist/@types/internal/tracing.d.ts.map +1 -1
- package/dist/@types/types/action.d.ts +78 -16
- package/dist/@types/types/action.d.ts.map +1 -1
- package/dist/@types/types/registry.d.ts +12 -0
- package/dist/@types/types/registry.d.ts.map +1 -1
- package/dist/{chunk-3ZTFNAY7.js → chunk-5PWLGL5E.js} +134 -133
- package/dist/chunk-5PWLGL5E.js.map +1 -0
- package/dist/{chunk-XSBT63QX.js → chunk-NGVWJXEF.js} +9 -24
- package/dist/{chunk-XSBT63QX.js.map → chunk-NGVWJXEF.js.map} +1 -1
- package/dist/index.cjs +638 -658
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +500 -508
- package/dist/index.js.map +1 -1
- package/dist/test/index.cjs +134 -133
- package/dist/test/index.cjs.map +1 -1
- package/dist/test/index.js +4 -4
- package/dist/test/index.js.map +1 -1
- package/dist/types/index.cjs.map +1 -1
- package/dist/types/index.js +1 -1
- package/package.json +4 -4
- package/dist/chunk-3ZTFNAY7.js.map +0 -1
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Two layers of the drain pipeline:
|
|
6
6
|
*
|
|
7
|
-
* - {@link
|
|
7
|
+
* - {@link run_drain_cycle} — pure function for one round-trip of
|
|
8
8
|
* claim → fetch → group → dispatch → ack/block. No orchestrator state.
|
|
9
9
|
* Reusable for property tests and standalone benchmarks.
|
|
10
10
|
*
|
|
11
11
|
* - {@link DrainController} — stateful driver that owns the armed flag,
|
|
12
12
|
* the concurrency lock, and the adaptive lag/lead ratio. Wraps
|
|
13
|
-
* `
|
|
13
|
+
* `run_drain_cycle` with the lifecycle decisions Act used to make inline.
|
|
14
14
|
*
|
|
15
15
|
* @internal
|
|
16
16
|
*/
|
|
@@ -18,7 +18,7 @@ import type { BatchHandler, BlockedLease, Drain, DrainOptions, Fetch, Lease, Log
|
|
|
18
18
|
import type { DrainOps } from "./drain.js";
|
|
19
19
|
/**
|
|
20
20
|
* Outcome of processing a single leased stream — produced by Act's `handle`
|
|
21
|
-
* / `
|
|
21
|
+
* / `handle_batch` dispatchers, consumed by `run_drain_cycle` to drive ack/block.
|
|
22
22
|
*
|
|
23
23
|
* @internal
|
|
24
24
|
*/
|
|
@@ -41,7 +41,7 @@ export type HandleResult = Readonly<{
|
|
|
41
41
|
* where the reaction defined `options.backoff`. Undefined means "no
|
|
42
42
|
* backoff configured" — drain re-attempts as soon as the lease expires.
|
|
43
43
|
*/
|
|
44
|
-
|
|
44
|
+
next_attempt_at?: number;
|
|
45
45
|
/**
|
|
46
46
|
* Event id that threw, when a handler error occurred. Distinct from
|
|
47
47
|
* {@link acked_at}: `failed_at = acked_at + 1` in dense streams, but
|
|
@@ -57,12 +57,12 @@ export type HandleResult = Readonly<{
|
|
|
57
57
|
*/
|
|
58
58
|
export type Handle<TEvents extends Schemas> = (lease: Lease, payloads: ReactionPayload<TEvents>[]) => Promise<HandleResult>;
|
|
59
59
|
/**
|
|
60
|
-
* Bulk reaction dispatcher signature (matches `Act.
|
|
60
|
+
* Bulk reaction dispatcher signature (matches `Act.handle_batch`).
|
|
61
61
|
* @internal
|
|
62
62
|
*/
|
|
63
63
|
export type HandleBatch<TEvents extends Schemas> = (lease: Lease, payloads: ReactionPayload<TEvents>[], batchHandler: BatchHandler<TEvents>) => Promise<HandleResult>;
|
|
64
64
|
/**
|
|
65
|
-
* One drain cycle's results. Returned by {@link
|
|
65
|
+
* One drain cycle's results. Returned by {@link run_drain_cycle}; consumed by
|
|
66
66
|
* `Act.drain()` to update lifecycle state, the lag/lead ratio, and emit the
|
|
67
67
|
* `acked` / `blocked` lifecycle events.
|
|
68
68
|
*
|
|
@@ -82,7 +82,7 @@ export type DrainCycle<TEvents extends Schemas> = {
|
|
|
82
82
|
* Returns `undefined` when nothing was claimed — caller can short-circuit
|
|
83
83
|
* the rest of the drain pass.
|
|
84
84
|
*
|
|
85
|
-
* **Deferred streams.** When `
|
|
85
|
+
* **Deferred streams.** When `is_deferred(stream)` returns `true`, the
|
|
86
86
|
* cycle skips dispatch for that lease — no handle, no ack, no block. The
|
|
87
87
|
* lease holds for `leaseMillis` via the existing claim mechanism, which
|
|
88
88
|
* blocks competing workers from re-attempting during the backoff window
|
|
@@ -92,10 +92,10 @@ export type DrainCycle<TEvents extends Schemas> = {
|
|
|
92
92
|
*
|
|
93
93
|
* @internal
|
|
94
94
|
*/
|
|
95
|
-
export declare function
|
|
95
|
+
export declare function run_drain_cycle<TEvents extends Schemas, TActions extends Schemas, TSchemaReg extends SchemaRegister<TActions>>(ops: DrainOps<TEvents>, registry: Registry<TSchemaReg, TEvents, TActions>, batch_handlers: Map<string, BatchHandler<TEvents>>, handle: Handle<TEvents>, handle_batch: HandleBatch<TEvents>, lagging: number, leading: number, eventLimit: number, leaseMillis: number, is_deferred?: (stream: string) => boolean, lane?: string): Promise<DrainCycle<TEvents> | undefined>;
|
|
96
96
|
/**
|
|
97
97
|
* Dependencies the {@link DrainController} needs from the orchestrator.
|
|
98
|
-
* The lifecycle event sinks (`
|
|
98
|
+
* The lifecycle event sinks (`on_acked` / `on_blocked`) are callbacks so
|
|
99
99
|
* this module doesn't reach back into Act's emitter.
|
|
100
100
|
*
|
|
101
101
|
* @internal
|
|
@@ -104,11 +104,11 @@ export type DrainControllerDeps<TEvents extends Schemas, TActions extends Schema
|
|
|
104
104
|
readonly logger: Logger;
|
|
105
105
|
readonly ops: DrainOps<TEvents>;
|
|
106
106
|
readonly registry: Registry<TSchemaReg, TEvents, TActions>;
|
|
107
|
-
readonly
|
|
107
|
+
readonly batch_handlers: Map<string, BatchHandler<TEvents>>;
|
|
108
108
|
readonly handle: Handle<TEvents>;
|
|
109
|
-
readonly
|
|
110
|
-
readonly
|
|
111
|
-
readonly
|
|
109
|
+
readonly handle_batch: HandleBatch<TEvents>;
|
|
110
|
+
readonly on_acked: (acked: Lease[]) => void;
|
|
111
|
+
readonly on_blocked: (blocked: BlockedLease[]) => void;
|
|
112
112
|
/** Lane this controller drains. Undefined = spans all lanes (legacy single-controller). */
|
|
113
113
|
readonly lane?: string;
|
|
114
114
|
/** Per-lane defaults applied when caller doesn't override via DrainOptions. */
|
|
@@ -119,7 +119,7 @@ export type DrainControllerDeps<TEvents extends Schemas, TActions extends Schema
|
|
|
119
119
|
};
|
|
120
120
|
};
|
|
121
121
|
/**
|
|
122
|
-
* Stateful driver around {@link
|
|
122
|
+
* Stateful driver around {@link run_drain_cycle}. Owns:
|
|
123
123
|
*
|
|
124
124
|
* - `_armed` — has any commit / reset / cold-start signaled work to do?
|
|
125
125
|
* - `_locked` — concurrent-call guard (overlapping `drain()` calls return
|
|
@@ -136,14 +136,14 @@ export declare class DrainController<TEvents extends Schemas, TActions extends S
|
|
|
136
136
|
private _locked;
|
|
137
137
|
private _ratio;
|
|
138
138
|
/**
|
|
139
|
-
* Per-stream backoff: `stream →
|
|
140
|
-
* `_finalize` via `HandleResult.
|
|
139
|
+
* Per-stream backoff: `stream → next_attempt_at` (ms since epoch). Set by
|
|
140
|
+
* `_finalize` via `HandleResult.next_attempt_at`; cleared on successful
|
|
141
141
|
* ack or terminal block. Lives in process memory — per-worker pacing
|
|
142
142
|
* by design (see {@link BackoffOptions} for the multi-worker trade-off).
|
|
143
143
|
*/
|
|
144
144
|
private _backoff;
|
|
145
|
-
/** Timer re-arming drain at the earliest pending `
|
|
146
|
-
private
|
|
145
|
+
/** Timer re-arming drain at the earliest pending `next_attempt_at`. */
|
|
146
|
+
private _backoff_timer;
|
|
147
147
|
/** Worker timer (ACT-1103). Set when `start()` is active, undefined otherwise. */
|
|
148
148
|
private _worker;
|
|
149
149
|
private _stopped;
|
|
@@ -158,14 +158,14 @@ export declare class DrainController<TEvents extends Schemas, TActions extends S
|
|
|
158
158
|
/** Read-only flag — true while a commit / reset is unprocessed. */
|
|
159
159
|
get armed(): boolean;
|
|
160
160
|
/** Returns true when `stream` is currently within a backoff window. */
|
|
161
|
-
private
|
|
161
|
+
private is_deferred;
|
|
162
162
|
/**
|
|
163
163
|
* Schedule the next drain re-arm at the earliest pending backoff
|
|
164
164
|
* expiry. Called only when the backoff map is non-empty (caller guard).
|
|
165
165
|
* Idempotent — collapses many simultaneously deferred streams into a
|
|
166
166
|
* single timer.
|
|
167
167
|
*/
|
|
168
|
-
private
|
|
168
|
+
private schedule_backoff_wake;
|
|
169
169
|
/** Lane this controller drains (undefined = legacy single-lane span). */
|
|
170
170
|
get lane(): string | undefined;
|
|
171
171
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drain-cycle.d.ts","sourceRoot":"","sources":["../../../src/internal/drain-cycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,KAAK,EACL,YAAY,EACZ,KAAK,EACL,KAAK,EACL,MAAM,EACN,eAAe,EACf,QAAQ,EACR,cAAc,EACd,OAAO,EACR,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAI3C;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC;IAClC,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;;OAKG;IACH,
|
|
1
|
+
{"version":3,"file":"drain-cycle.d.ts","sourceRoot":"","sources":["../../../src/internal/drain-cycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,5 +22,5 @@ import type { HandleResult } from "./drain-cycle.js";
|
|
|
22
22
|
* the frontier sizes used to claim them. Returns `RATIO_DEFAULT` when no
|
|
23
23
|
* progress was made (nothing to base a decision on).
|
|
24
24
|
*/
|
|
25
|
-
export declare function
|
|
25
|
+
export declare function compute_lag_lead_ratio(handled: ReadonlyArray<HandleResult>, lagging: number, leading: number): number;
|
|
26
26
|
//# sourceMappingURL=drain-ratio.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drain-ratio.d.ts","sourceRoot":"","sources":["../../../src/internal/drain-ratio.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAQrD;;;;GAIG;AACH,wBAAgB,
|
|
1
|
+
{"version":3,"file":"drain-ratio.d.ts","sourceRoot":"","sources":["../../../src/internal/drain-ratio.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;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"}
|
|
@@ -14,15 +14,14 @@
|
|
|
14
14
|
*
|
|
15
15
|
* @internal
|
|
16
16
|
*/
|
|
17
|
-
import type {
|
|
18
|
-
import type { AsOf, Committed, Correlator, EventSource, ScanOptions, ScanResult, Schema, Schemas, Snapshot, State, Target } from "../types/index.js";
|
|
17
|
+
import type { Committed, DoOptions, EventSource, LoadTarget, ScanOptions, ScanResult, Schema, Schemas, Snapshot, State, Target } from "../types/index.js";
|
|
19
18
|
/**
|
|
20
19
|
* Internal action signature seen by the orchestrator — the {@link Correlator}
|
|
21
|
-
* is bound at `
|
|
20
|
+
* is bound at `build_es` time, so callers don't pass it through.
|
|
22
21
|
*
|
|
23
22
|
* @internal
|
|
24
23
|
*/
|
|
25
|
-
export type BoundAction = <TState extends Schema, TEvents extends Schemas, TActions extends Schemas, TKey extends keyof TActions>(me: State<TState, TEvents, TActions>, action: TKey, target: Target, payload: Readonly<TActions[TKey]>,
|
|
24
|
+
export type BoundAction = <TState extends Schema, TEvents extends Schemas, TActions extends Schemas, TKey extends keyof TActions>(me: State<TState, TEvents, TActions>, action: TKey, target: Target, payload: Readonly<TActions[TKey]>, options?: DoOptions<TEvents>) => Promise<Snapshot<TState, TEvents>[]>;
|
|
26
25
|
/** @internal */
|
|
27
26
|
export interface EsOps {
|
|
28
27
|
snap: typeof snap;
|
|
@@ -108,7 +107,7 @@ export declare function scan(source: EventSource, opts?: ScanOptions, callback?:
|
|
|
108
107
|
* @example
|
|
109
108
|
* const snapshot = await load(Counter, "counter1");
|
|
110
109
|
*/
|
|
111
|
-
export declare function load<TState extends Schema, TEvents extends Schemas, TActions extends Schemas>(me: State<TState, TEvents, TActions>,
|
|
110
|
+
export declare function load<TState extends Schema, TEvents extends Schemas, TActions extends Schemas>(me: State<TState, TEvents, TActions>, target: LoadTarget, callback?: (snapshot: Snapshot<TState, TEvents>) => void): Promise<Snapshot<TState, TEvents>>;
|
|
112
111
|
/**
|
|
113
112
|
* Executes an action and emits an event to be committed by the store.
|
|
114
113
|
*
|
|
@@ -126,18 +125,19 @@ export declare function load<TState extends Schema, TEvents extends Schemas, TAc
|
|
|
126
125
|
*
|
|
127
126
|
* @template TState The type of state
|
|
128
127
|
* @template TEvents The type of events
|
|
129
|
-
* @template TActions The type of
|
|
128
|
+
* @template TActions The type of action_schemas
|
|
130
129
|
* @template TKey The type of action to execute
|
|
131
130
|
* @param me The state machine definition
|
|
132
131
|
* @param action The action to execute
|
|
133
132
|
* @param target The target (stream, actor, etc.)
|
|
134
133
|
* @param payload The payload of the action
|
|
135
|
-
* @param
|
|
136
|
-
*
|
|
134
|
+
* @param options Per-call dispatch options ({@link DoOptions}) —
|
|
135
|
+
* `reactingTo` to thread correlation, `correlator` to override the
|
|
136
|
+
* framework or orchestrator-level correlator for this call only.
|
|
137
137
|
* @returns The snapshot of the committed event
|
|
138
138
|
*
|
|
139
139
|
* @example
|
|
140
140
|
* const snapshot = await action(Counter, "increment", { stream: "counter1", actor }, { by: 1 });
|
|
141
141
|
*/
|
|
142
|
-
export declare function action<TState extends Schema, TEvents extends Schemas, TActions extends Schemas, TKey extends keyof TActions>(me: State<TState, TEvents, TActions>, action: TKey, target: Target, payload: Readonly<TActions[TKey]>,
|
|
142
|
+
export declare function action<TState extends Schema, TEvents extends Schemas, TActions extends Schemas, TKey extends keyof TActions>(me: State<TState, TEvents, TActions>, action: TKey, target: Target, payload: Readonly<TActions[TKey]>, options?: DoOptions<TEvents>): Promise<Snapshot<TState, TEvents>[]>;
|
|
143
143
|
//# sourceMappingURL=event-sourcing.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-sourcing.d.ts","sourceRoot":"","sources":["../../../src/internal/event-sourcing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"event-sourcing.d.ts","sourceRoot":"","sources":["../../../src/internal/event-sourcing.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
*
|
|
30
30
|
* @internal
|
|
31
31
|
*/
|
|
32
|
-
export declare function
|
|
32
|
+
export declare function deprecated_event_names(names: Iterable<string>): Set<string>;
|
|
33
33
|
/**
|
|
34
34
|
* Given a deprecated event name and the full set of event names in its
|
|
35
35
|
* registry, returns the current (highest-version) sibling. Used to build
|
|
@@ -40,5 +40,5 @@ export declare function deprecatedEventNames(names: Iterable<string>): Set<strin
|
|
|
40
40
|
*
|
|
41
41
|
* @internal
|
|
42
42
|
*/
|
|
43
|
-
export declare function
|
|
43
|
+
export declare function current_version_of(deprecated_name: string, all_names: Iterable<string>): string | undefined;
|
|
44
44
|
//# 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;;;;;;;;;;;;;;;;;;GAkBG;AAmBH;;;;;;;;;;;GAWG;AACH,wBAAgB,
|
|
1
|
+
{"version":3,"file":"event-versions.d.ts","sourceRoot":"","sources":["../../../src/internal/event-versions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAmBH;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAgB3E;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,GAC1B,MAAM,GAAG,SAAS,CASpB"}
|
|
@@ -18,18 +18,18 @@
|
|
|
18
18
|
*/
|
|
19
19
|
export { type AuditDeps, audit } from "./audit.js";
|
|
20
20
|
export type { EventLaneSet } from "./build-classify.js";
|
|
21
|
-
export { ALL_LANES,
|
|
22
|
-
export {
|
|
21
|
+
export { ALL_LANES, classify_registry } from "./build-classify.js";
|
|
22
|
+
export { run_close_cycle } from "./close-cycle.js";
|
|
23
23
|
export { CorrelateCycle } from "./correlate-cycle.js";
|
|
24
|
-
export {
|
|
24
|
+
export { close_correlation, default_correlator } from "./correlator.js";
|
|
25
25
|
export type { DrainOps } from "./drain.js";
|
|
26
26
|
export { DrainController, type Handle, type HandleBatch, } from "./drain-cycle.js";
|
|
27
27
|
export type { BoundAction, EsOps } from "./event-sourcing.js";
|
|
28
28
|
export { scan } from "./event-sourcing.js";
|
|
29
|
-
export {
|
|
30
|
-
export { _this_,
|
|
31
|
-
export {
|
|
32
|
-
export { _registry, pii_fields, pii_gate,
|
|
29
|
+
export { current_version_of, deprecated_event_names, } from "./event-versions.js";
|
|
30
|
+
export { _this_, merge_event_register, merge_projection, register_state, } from "./merge.js";
|
|
31
|
+
export { build_handle, build_handle_batch } from "./reactions.js";
|
|
32
|
+
export { _registry, pii_fields, pii_gate, pii_split, pii_strip, REDACTED, SHREDDED, } from "./sensitive.js";
|
|
33
33
|
export { SettleLoop } from "./settle.js";
|
|
34
|
-
export {
|
|
34
|
+
export { build_drain, build_es, trace_cycle } from "./tracing.js";
|
|
35
35
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/internal/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnD,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/internal/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnD,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACxE,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EACL,eAAe,EACf,KAAK,MAAM,EACX,KAAK,WAAW,GACjB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EACL,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,MAAM,EACN,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EACL,SAAS,EACT,UAAU,EACV,QAAQ,EACR,SAAS,EACT,SAAS,EACT,QAAQ,EACR,QAAQ,GACT,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -4,7 +4,7 @@ import type { State } from "../types/index.js";
|
|
|
4
4
|
* Registers a state into a states map and action/event registries,
|
|
5
5
|
* merging with existing same-name states (partial state support).
|
|
6
6
|
*/
|
|
7
|
-
export declare function
|
|
7
|
+
export declare function register_state(state: State<any, any, any>, states: Map<string, State<any, any, any>>, actions: Record<string, any>, events: Record<string, any>): void;
|
|
8
8
|
/**
|
|
9
9
|
* Merges reactions from one event register into another. The target is
|
|
10
10
|
* assumed to already contain entries for every event name in the source
|
|
@@ -12,7 +12,7 @@ export declare function registerState(state: State<any, any, any>, states: Map<s
|
|
|
12
12
|
* which seeds the target events). Reaction names collide by `set()`
|
|
13
13
|
* semantics — last write wins.
|
|
14
14
|
*/
|
|
15
|
-
export declare function
|
|
15
|
+
export declare function merge_event_register(target: Record<string, {
|
|
16
16
|
reactions: Map<string, unknown>;
|
|
17
17
|
}>, source: Record<string, {
|
|
18
18
|
reactions: Map<string, unknown>;
|
|
@@ -21,7 +21,7 @@ export declare function mergeEventRegister(target: Record<string, {
|
|
|
21
21
|
* Merges a projection's event schemas and reactions into an event registry,
|
|
22
22
|
* deduplicating reaction names by appending "_p" on collision.
|
|
23
23
|
*/
|
|
24
|
-
export declare function
|
|
24
|
+
export declare function merge_projection(proj: Projection<any>, events: Record<string, any>): void;
|
|
25
25
|
export declare const _this_: ({ stream }: {
|
|
26
26
|
stream: string;
|
|
27
27
|
}) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../../src/internal/merge.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,KAAK,EAAU,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAuDvD;;;GAGG;AACH,wBAAgB,
|
|
1
|
+
{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../../src/internal/merge.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,KAAK,EAAU,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAuDvD;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC3B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EACzC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,IAAI,CAON;AAuID;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC,EAC3D,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC,GAC1D,IAAI,CAQN;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,EACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,IAAI,CAiBN;AAGD,eAAO,MAAM,MAAM,GAAI,YAAY;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE;;;CAGnD,CAAC"}
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
* @module reactions
|
|
3
3
|
* @category Internal
|
|
4
4
|
*
|
|
5
|
-
* Reaction dispatch — what runs inside the drain pipeline once `
|
|
5
|
+
* Reaction dispatch — what runs inside the drain pipeline once `run_drain_cycle`
|
|
6
6
|
* has fetched events for a leased stream. Two shapes:
|
|
7
7
|
*
|
|
8
8
|
* - per-event `handle`: walks payloads sequentially, builds a scoped `IAct`
|
|
9
9
|
* that auto-injects `reactingTo` so handlers don't have to thread it
|
|
10
10
|
* through manually
|
|
11
|
-
* - bulk `
|
|
11
|
+
* - bulk `handle_batch`: hands every event for a static-target projection to
|
|
12
12
|
* a single batch callback, enabling one-transaction replays
|
|
13
13
|
*
|
|
14
14
|
* Both share `_finalize`, which collapses the retry-vs-block decision and
|
|
@@ -34,7 +34,7 @@ export type ReactionDeps<TEvents extends Schemas, TActions extends Schemas, TAct
|
|
|
34
34
|
readonly bound_forget: IAct<TEvents, TActions, TActor>["forget"];
|
|
35
35
|
};
|
|
36
36
|
/**
|
|
37
|
-
* Builds the per-event reaction dispatcher passed to `
|
|
37
|
+
* Builds the per-event reaction dispatcher passed to `run_drain_cycle`.
|
|
38
38
|
*
|
|
39
39
|
* The scoped `IAct` proxy auto-injects the triggering event as `reactingTo`
|
|
40
40
|
* when handlers call `do()` without it (#587), keeping the correlation
|
|
@@ -43,13 +43,13 @@ export type ReactionDeps<TEvents extends Schemas, TActions extends Schemas, TAct
|
|
|
43
43
|
*
|
|
44
44
|
* @internal
|
|
45
45
|
*/
|
|
46
|
-
export declare function
|
|
46
|
+
export declare function build_handle<TEvents extends Schemas, TActions extends Schemas, TActor extends Actor = Actor>(deps: ReactionDeps<TEvents, TActions, TActor>): Handle<TEvents>;
|
|
47
47
|
/**
|
|
48
|
-
* Builds the bulk reaction dispatcher passed to `
|
|
48
|
+
* Builds the bulk reaction dispatcher passed to `run_drain_cycle`. All events
|
|
49
49
|
* for a static-target projection are handed to a single callback so the
|
|
50
50
|
* projection can do one transaction per drain (catch-up replays especially).
|
|
51
51
|
*
|
|
52
52
|
* @internal
|
|
53
53
|
*/
|
|
54
|
-
export declare function
|
|
54
|
+
export declare function build_handle_batch<TEvents extends Schemas>(logger: Logger): HandleBatch<TEvents>;
|
|
55
55
|
//# sourceMappingURL=reactions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactions.d.ts","sourceRoot":"","sources":["../../../src/internal/reactions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EACL,KAAK,KAAK,
|
|
1
|
+
{"version":3,"file":"reactions.d.ts","sourceRoot":"","sources":["../../../src/internal/reactions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EACL,KAAK,KAAK,EAIV,KAAK,IAAI,EAET,KAAK,MAAM,EAIX,KAAK,OAAO,EAEb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAgB,MAAM,kBAAkB,CAAC;AAE1E;;;;;;GAMG;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,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;IACzD,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;IAC7D,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;IAC/D,QAAQ,CAAC,iBAAiB,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;IAC3E,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;CAClE,CAAC;AAoDF;;;;;;;;;GASG;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,CA0DhE;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,SAAS,OAAO,EACxD,MAAM,EAAE,MAAM,GACb,WAAW,CAAC,OAAO,CAAC,CA6BtB"}
|
|
@@ -67,7 +67,7 @@ export declare const _registry: z.core.$ZodRegistry<{
|
|
|
67
67
|
* `z.object` declared inside the event payload would require recursive
|
|
68
68
|
* descent; that's deferred until a real callsite needs it.
|
|
69
69
|
*
|
|
70
|
-
* @internal — consumed by the registry's `sensitive_fields(
|
|
70
|
+
* @internal — consumed by the registry's `sensitive_fields(event_name)` lookup.
|
|
71
71
|
*/
|
|
72
72
|
export declare function pii_fields(schema: z.ZodType): readonly string[];
|
|
73
73
|
/**
|
|
@@ -82,31 +82,14 @@ export declare function pii_fields(schema: z.ZodType): readonly string[];
|
|
|
82
82
|
*
|
|
83
83
|
* @internal
|
|
84
84
|
*/
|
|
85
|
-
export declare function pii_split(emitted: {
|
|
86
|
-
name:
|
|
87
|
-
data:
|
|
85
|
+
export declare function pii_split<TName, TData extends Record<string, unknown>>(emitted: {
|
|
86
|
+
name: TName;
|
|
87
|
+
data: TData;
|
|
88
88
|
}, fields: readonly string[]): {
|
|
89
|
-
name:
|
|
90
|
-
data:
|
|
89
|
+
name: TName;
|
|
90
|
+
data: TData;
|
|
91
91
|
pii: Record<string, unknown>;
|
|
92
92
|
};
|
|
93
|
-
/**
|
|
94
|
-
* Build the **reducer view** of a committed event — sensitive fields merged
|
|
95
|
-
* back into `data` so per-state reducers always see plaintext.
|
|
96
|
-
*
|
|
97
|
-
* - Event with no `pii` payload AND no schema-declared sensitive fields →
|
|
98
|
-
* return the event unchanged (zero-cost path).
|
|
99
|
-
* - Event with a `pii` payload → merge into `data` (plaintext for the reducer).
|
|
100
|
-
* - Event whose schema *declares* sensitive fields but `pii` is null/undefined
|
|
101
|
-
* (post-`forget_pii`) → substitute {@link SHREDDED} for each declared field.
|
|
102
|
-
*
|
|
103
|
-
* Used inside `load()` before invoking the reducer chain. Reducer-visible PII
|
|
104
|
-
* is by design — the reducer is the source of truth for derived state. The
|
|
105
|
-
* external view returned to callers is separately gated by {@link pii_gate}.
|
|
106
|
-
*
|
|
107
|
-
* @internal
|
|
108
|
-
*/
|
|
109
|
-
export declare function pii_merge<TEvents extends Schemas, TKey extends keyof TEvents & string>(event: Committed<TEvents, TKey>, fields: readonly string[]): Committed<TEvents, TKey>;
|
|
110
93
|
/**
|
|
111
94
|
* Build the **external view** of a committed event — the form returned by
|
|
112
95
|
* `load()`, `query()`, `query_array()`, and the snapshot in `do()`'s reply.
|
|
@@ -124,7 +107,7 @@ export declare function pii_merge<TEvents extends Schemas, TKey extends keyof TE
|
|
|
124
107
|
*
|
|
125
108
|
* @internal
|
|
126
109
|
*/
|
|
127
|
-
export declare function pii_gate<TEvents extends Schemas, TKey extends keyof TEvents
|
|
110
|
+
export declare function pii_gate<TEvents extends Schemas, TKey extends keyof TEvents>(event: Committed<TEvents, TKey>, fields: readonly string[], predicate: ((event: any, actor: Actor) => boolean) | null, actor: Actor | undefined): Committed<TEvents, TKey>;
|
|
128
111
|
/**
|
|
129
112
|
* Build the **handler view** — sensitive keys removed entirely from `data`
|
|
130
113
|
* and the `pii` field dropped from the event. Used before invoking projection
|
|
@@ -138,7 +121,7 @@ export declare function pii_gate<TEvents extends Schemas, TKey extends keyof TEv
|
|
|
138
121
|
*
|
|
139
122
|
* Reactions that genuinely need PII (e.g. a welcome-email reaction reading
|
|
140
123
|
* `email`) opt back in by explicitly calling `app.load(stream, { actor:
|
|
141
|
-
*
|
|
124
|
+
* system_actor })` inside the handler — pulling PII through the gate at the
|
|
142
125
|
* call site makes the security-relevant path visible in code review.
|
|
143
126
|
*
|
|
144
127
|
* @internal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sensitive.d.ts","sourceRoot":"","sources":["../../../src/internal/sensitive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEnE;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,EAAG,YAAqB,CAAC;AAE9C;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,EAAG,YAAqB,CAAC;AAE9C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,SAAS;eAA2B,IAAI;iFAAK,CAAC;AAuB3D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,GAAG,SAAS,MAAM,EAAE,CAQ/D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,
|
|
1
|
+
{"version":3,"file":"sensitive.d.ts","sourceRoot":"","sources":["../../../src/internal/sensitive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEnE;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,EAAG,YAAqB,CAAC;AAE9C;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,EAAG,YAAqB,CAAC;AAE9C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,SAAS;eAA2B,IAAI;iFAAK,CAAC;AAuB3D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,GAAG,SAAS,MAAM,EAAE,CAQ/D;AAED;;;;;;;;;;;GAWG;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;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,QAAQ,CAAC,OAAO,SAAS,OAAO,EAAE,IAAI,SAAS,MAAM,OAAO,EAC1E,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,EAC/B,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,GAAG,IAAI,EACzD,KAAK,EAAE,KAAK,GAAG,SAAS,GACvB,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CA6B1B;AAED;;;;;;;;;;;;;;;;;GAiBG;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"}
|
|
@@ -29,7 +29,7 @@ export type SettleDeps<TEvents extends Schemas> = {
|
|
|
29
29
|
last_id: number;
|
|
30
30
|
}>;
|
|
31
31
|
readonly drain: (options: DrainOptions) => Promise<Drain<TEvents>>;
|
|
32
|
-
readonly
|
|
32
|
+
readonly on_settled: (drain: Drain<TEvents>) => void;
|
|
33
33
|
};
|
|
34
34
|
/**
|
|
35
35
|
* Drives the debounced correlate→drain catch-up cycle. One instance per
|
|
@@ -43,13 +43,13 @@ export declare class SettleLoop<TEvents extends Schemas> {
|
|
|
43
43
|
private readonly _deps;
|
|
44
44
|
/** Debounce window applied when the caller doesn't override via `SettleOptions.debounceMs`. */
|
|
45
45
|
private readonly _default_debounce_ms;
|
|
46
|
-
constructor(deps: SettleDeps<TEvents>,
|
|
46
|
+
constructor(deps: SettleDeps<TEvents>, default_debounce_ms: number);
|
|
47
47
|
/**
|
|
48
48
|
* Schedule a settle pass. Multiple calls inside the debounce window
|
|
49
49
|
* coalesce into one cycle. The cycle runs correlate→drain in a loop
|
|
50
50
|
* until no progress is made (no new subscriptions, no acks, no blocks)
|
|
51
51
|
* or `maxPasses` is reached, then emits the `"settled"` lifecycle event
|
|
52
|
-
* via {@link SettleDeps.
|
|
52
|
+
* via {@link SettleDeps.on_settled}.
|
|
53
53
|
*/
|
|
54
54
|
schedule(options?: SettleOptions): void;
|
|
55
55
|
/** Cancel any pending or active settle cycle. Idempotent. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settle.d.ts","sourceRoot":"","sources":["../../../src/internal/settle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,KAAK,EACL,YAAY,EACZ,MAAM,EACN,KAAK,EACL,OAAO,EACP,aAAa,EACd,MAAM,mBAAmB,CAAC;AAE3B;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,CAAC,OAAO,SAAS,OAAO,IAAI;IAChD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,CAClB,KAAK,EAAE,KAAK,KACT,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtD,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACnE,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"settle.d.ts","sourceRoot":"","sources":["../../../src/internal/settle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,KAAK,EACL,YAAY,EACZ,MAAM,EACN,KAAK,EACL,OAAO,EACP,aAAa,EACd,MAAM,mBAAmB,CAAC;AAE3B;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,CAAC,OAAO,SAAS,OAAO,IAAI;IAChD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,CAClB,KAAK,EAAE,KAAK,KACT,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtD,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACnE,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;CACtD,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,UAAU,CAAC,OAAO,SAAS,OAAO;IAC7C,OAAO,CAAC,MAAM,CAAwD;IACtE,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsB;IAC5C,+FAA+F;IAC/F,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;gBAElC,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,mBAAmB,EAAE,MAAM;IAKlE;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,GAAE,aAAkB,GAAG,IAAI;IA0C3C,6DAA6D;IAC7D,IAAI,IAAI,IAAI;CAMb"}
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
* - **Plain mode** (production / log aggregators) — every log gets a textual
|
|
19
19
|
* prefix; event-sourcing uses `caption: body`, drain uses `caption body`.
|
|
20
20
|
*
|
|
21
|
-
* The two factories — {@link
|
|
21
|
+
* The two factories — {@link build_es} and {@link build_drain} — let the
|
|
22
22
|
* orchestrator choose bare or traced variants once at `.build()` time based
|
|
23
23
|
* on the configured log level. Outside this module, no other source file
|
|
24
24
|
* imports tracing primitives.
|
|
@@ -34,17 +34,17 @@ import type { EsOps } from "./event-sourcing.js";
|
|
|
34
34
|
*
|
|
35
35
|
* @internal
|
|
36
36
|
*/
|
|
37
|
-
export declare function
|
|
37
|
+
export declare function build_es(logger: Logger, correlator?: Correlator): EsOps;
|
|
38
38
|
/**
|
|
39
39
|
* Selects bare or traced drain-pipeline ops. Called once by the orchestrator
|
|
40
40
|
* constructor.
|
|
41
41
|
*
|
|
42
42
|
* @internal
|
|
43
43
|
*/
|
|
44
|
-
export declare function
|
|
44
|
+
export declare function build_drain<TEvents extends Schemas>(logger: Logger): DrainOps<TEvents>;
|
|
45
45
|
/**
|
|
46
46
|
* Emit one cycle-level drain trace summarizing what happened in a
|
|
47
|
-
* single `
|
|
47
|
+
* single `run_drain_cycle` pass. Per-stream rendering shape — outcome +
|
|
48
48
|
* post-state anchored on the right:
|
|
49
49
|
*
|
|
50
50
|
* stream<-source [events] ✓ @<acked-at> — full success
|
|
@@ -67,7 +67,7 @@ export declare function buildDrain<TEvents extends Schemas>(logger: Logger): Dra
|
|
|
67
67
|
*
|
|
68
68
|
* @internal
|
|
69
69
|
*/
|
|
70
|
-
export declare function
|
|
70
|
+
export declare function trace_cycle<TEvents extends Schemas>(logger: Logger, leased: ReadonlyArray<{
|
|
71
71
|
readonly stream: string;
|
|
72
72
|
readonly at: number;
|
|
73
73
|
readonly retry: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracing.d.ts","sourceRoot":"","sources":["../../../src/internal/tracing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,KAAK,EAAQ,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE3E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAiIjD;;;;;GAKG;AACH,wBAAgB,
|
|
1
|
+
{"version":3,"file":"tracing.d.ts","sourceRoot":"","sources":["../../../src/internal/tracing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,KAAK,EAAQ,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE3E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAiIjD;;;;;GAKG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,MAAM,EACd,UAAU,GAAE,UAA+B,GAC1C,KAAK,CA0EP;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,SAAS,OAAO,EACjD,MAAM,EAAE,MAAM,GACb,QAAQ,CAAC,OAAO,CAAC,CAoCnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,WAAW,CAAC,OAAO,SAAS,OAAO,EACjD,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,aAAa,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC,EACF,OAAO,EAAE,aAAa,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;QAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC;KAC9B,CAAC,CAAC;CACJ,CAAC,EACF,OAAO,EAAE,aAAa,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC,EACF,KAAK,EAAE,aAAa,CAAC;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,EACtE,OAAO,EAAE,aAAa,CAAC;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,GAC1E,IAAI,CAyDN"}
|