@rotorsoft/act 1.32.23 → 1.32.25
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 +20 -155
- package/dist/@types/act.d.ts.map +1 -1
- package/dist/@types/adapters/in-memory-store.d.ts +10 -190
- package/dist/@types/adapters/in-memory-store.d.ts.map +1 -1
- package/dist/@types/internal/audit.d.ts +5 -45
- package/dist/@types/internal/audit.d.ts.map +1 -1
- package/dist/@types/internal/close-cycle.d.ts +0 -8
- package/dist/@types/internal/close-cycle.d.ts.map +1 -1
- package/dist/@types/internal/correlate-cycle.d.ts +23 -163
- package/dist/@types/internal/correlate-cycle.d.ts.map +1 -1
- package/dist/@types/internal/drain-cycle.d.ts +19 -129
- package/dist/@types/internal/drain-cycle.d.ts.map +1 -1
- package/dist/@types/internal/event-sourcing.d.ts +21 -158
- package/dist/@types/internal/event-sourcing.d.ts.map +1 -1
- package/dist/@types/internal/index.d.ts +1 -1
- package/dist/@types/internal/index.d.ts.map +1 -1
- package/dist/{chunk-OG5O36AJ.js → chunk-QXW3JV2H.js} +21 -240
- package/dist/chunk-QXW3JV2H.js.map +1 -0
- package/dist/index.cjs +125 -654
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +107 -417
- package/dist/index.js.map +1 -1
- package/dist/test/index.cjs +20 -239
- package/dist/test/index.cjs.map +1 -1
- package/dist/test/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-OG5O36AJ.js.map +0 -1
|
@@ -1,190 +1,53 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* Pure event-sourcing primitives: `snap` persists state checkpoints, `load`
|
|
6
|
-
* reconstructs state by folding events through reducers, and `action`
|
|
7
|
-
* validates an action, runs invariants, emits events, and commits them
|
|
8
|
-
* atomically. `tombstone` commits the close-the-books guard with optimistic
|
|
9
|
-
* concurrency.
|
|
10
|
-
*
|
|
11
|
-
* These are the bare implementations — observability is layered on top in
|
|
12
|
-
* {@link "tracing"} and wired by the orchestrator at construction time.
|
|
13
|
-
* No tracing imports here, no module-level mutable state.
|
|
14
|
-
*
|
|
15
|
-
* @internal
|
|
2
|
+
* Event-sourcing primitives: `snap`, `load`, `action`, `tombstone`, `scan`.
|
|
3
|
+
* Bare implementations; tracing wraps them in `tracing.ts`.
|
|
16
4
|
*/
|
|
17
5
|
import { type Patch } from "@rotorsoft/act-patch";
|
|
18
6
|
import type { Committed, DoOptions, EventSource, LoadTarget, ScanOptions, ScanResult, Schema, Schemas, Snapshot, State, Target } from "../types/index.js";
|
|
19
7
|
/**
|
|
20
|
-
* The
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* - a **reducer** is a state's `.patch()` handler — it takes one event and
|
|
24
|
-
* returns a {@link Patch} *partial*;
|
|
25
|
-
* - a **patch step** ({@link bare_patch} / {@link validating_patch}) merges
|
|
26
|
-
* that partial into the current state, yielding the next full state;
|
|
27
|
-
* - the **fold** is the loop that applies the patch step across a stream's
|
|
28
|
-
* events (the reader loop in {@link load} / {@link action}, and the
|
|
29
|
-
* projection engine in {@link "projection-fold"}).
|
|
30
|
-
*
|
|
31
|
-
* `PatchFn` is the per-event patch step. The fold loop calls one of two
|
|
32
|
-
* implementations, selected **once** at construction (in
|
|
33
|
-
* {@link "tracing".build_es}) — never branched per event:
|
|
34
|
-
*
|
|
35
|
-
* - {@link bare_patch} — the default. Literally `patch(state, partial)`,
|
|
36
|
-
* no wrapper. No validation cost on the hot path.
|
|
37
|
-
* - {@link validating_patch} — the opt-in `ActOptions.validateFoldedState`
|
|
38
|
-
* path. Merges, then parses the merged full state against the state's
|
|
39
|
-
* declared Zod schema.
|
|
40
|
-
*
|
|
41
|
-
* The `me`/`event` arguments are unused by the bare implementation but
|
|
42
|
-
* carried on the shared signature so the fold loop is call-shape-identical
|
|
43
|
-
* regardless of which patch step was selected — the validating
|
|
44
|
-
* implementation needs them to name the failing reduction.
|
|
45
|
-
*
|
|
46
|
-
* @internal
|
|
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.
|
|
47
11
|
*/
|
|
48
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;
|
|
49
|
-
/**
|
|
50
|
-
* The default patch step: a bare `patch()` merge with no wrapper and no
|
|
51
|
-
* branch. The off-path is a plain reduction, so an
|
|
52
|
-
* app that leaves `validateFoldedState` off pays nothing — not even a
|
|
53
|
-
* comparison.
|
|
54
|
-
*
|
|
55
|
-
* @internal
|
|
56
|
-
*/
|
|
13
|
+
/** The default patch step: a bare merge, so the hot path pays nothing. */
|
|
57
14
|
export declare const bare_patch: PatchFn;
|
|
58
15
|
/**
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
* schema. A reducer that produces schema-violating state (the calculator
|
|
62
|
-
* divide-by-zero NaN class) fails here, at the triggering event,
|
|
63
|
-
* instead of propagating and surfacing hops later as a confusing
|
|
64
|
-
* downstream error.
|
|
65
|
-
*
|
|
66
|
-
* The `target` string names the state and the triggering event
|
|
67
|
-
* (`"<state>.<event>#<id>"`) so the resulting {@link ValidationError}
|
|
68
|
-
* points straight at the reduction that produced bad state. A debugging /
|
|
69
|
-
* CI aid, not a production guard — selected only when the operator opts
|
|
70
|
-
* in.
|
|
71
|
-
*
|
|
72
|
-
* @internal
|
|
16
|
+
* `validateFoldedState`: merge, then parse against the state schema, so a
|
|
17
|
+
* bad reducer fails at its own event. A debugging aid, not a production guard.
|
|
73
18
|
*/
|
|
74
19
|
export declare const validating_patch: PatchFn;
|
|
75
|
-
/**
|
|
76
|
-
* Internal action signature seen by the orchestrator — the {@link Correlator}
|
|
77
|
-
* is bound at `build_es` time, so callers don't pass it through.
|
|
78
|
-
*
|
|
79
|
-
* @internal
|
|
80
|
-
*/
|
|
20
|
+
/** `action` with the correlator and patch step bound by `build_es`. */
|
|
81
21
|
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>[]>;
|
|
82
|
-
/** @internal */
|
|
83
22
|
export interface EsOps {
|
|
84
23
|
snap: typeof snap;
|
|
85
24
|
load: typeof load;
|
|
86
25
|
action: BoundAction;
|
|
87
26
|
tombstone: typeof tombstone;
|
|
88
27
|
}
|
|
89
|
-
/**
|
|
90
|
-
* Event sourcing utilities for snapshotting, loading, and committing actions/events.
|
|
91
|
-
* Used internally by Act and state machines.
|
|
92
|
-
*/
|
|
93
|
-
/**
|
|
94
|
-
* Saves a snapshot of the state to the store.
|
|
95
|
-
*
|
|
96
|
-
* Snapshots are used to optimize state reconstruction for aggregates with long event streams.
|
|
97
|
-
*
|
|
98
|
-
* @template TState The type of state
|
|
99
|
-
* @template TEvents The type of events
|
|
100
|
-
* @param snapshot The snapshot to save
|
|
101
|
-
* @returns Promise that resolves when the snapshot is saved
|
|
102
|
-
*
|
|
103
|
-
* @example
|
|
104
|
-
* await snap(snapshot);
|
|
105
|
-
*/
|
|
28
|
+
/** Commits a snapshot event. Never throws: a failed snapshot must not fail the action. */
|
|
106
29
|
export declare function snap<TState extends Schema, TEvents extends Schemas>(snapshot: Snapshot<TState, TEvents>): Promise<Committed<TEvents, keyof TEvents> | undefined>;
|
|
107
30
|
/**
|
|
108
|
-
* Commits
|
|
109
|
-
*
|
|
110
|
-
* `expectedVersion` (concurrent write detected). Other store errors
|
|
111
|
-
* propagate.
|
|
112
|
-
*
|
|
113
|
-
* Used by `close()` to guard a stream while archive/truncate runs:
|
|
114
|
-
* subsequent `action()` calls see the tombstone at head and reject with
|
|
115
|
-
* {@link StreamClosedError} until the close completes.
|
|
116
|
-
*
|
|
117
|
-
* @internal
|
|
31
|
+
* Commits the close guard at `expectedVersion`; `undefined` when the stream
|
|
32
|
+
* moved. Actions then see the tombstone at head and throw {@link StreamClosedError}.
|
|
118
33
|
*/
|
|
119
34
|
export declare function tombstone(stream: string, expectedVersion: number, correlation: string): Promise<Committed<Schemas, keyof Schemas> | undefined>;
|
|
120
35
|
/**
|
|
121
|
-
*
|
|
122
|
-
*
|
|
123
|
-
*
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
* Pages the source with `limit`/`after`; a source that ignores the
|
|
127
|
-
* filter (`CsvFile`) returns everything at once and the loop ends. Throws
|
|
128
|
-
* on the first invalid event. Returns the result without `duration_ms`,
|
|
129
|
-
* which {@link Act.restore} adds.
|
|
130
|
-
*
|
|
131
|
-
* @internal
|
|
36
|
+
* Pages a restore source: validation, drop filters, migrations, progress and
|
|
37
|
+
* causation remap. Adapters supply only the per-event insert `callback`
|
|
38
|
+
* (see {@link Store.restore}). A source that ignores `limit` (`CsvFile`)
|
|
39
|
+
* returns everything in one page.
|
|
132
40
|
*/
|
|
133
41
|
export declare function scan(source: EventSource, opts?: ScanOptions, callback?: (event: Committed<Schemas, keyof Schemas>) => Promise<number>): Promise<Omit<ScanResult, "duration_ms">>;
|
|
134
42
|
/**
|
|
135
|
-
*
|
|
136
|
-
*
|
|
137
|
-
*
|
|
138
|
-
* First checks the cache for a checkpoint, then queries the store for events
|
|
139
|
-
* committed after the cached position. On cache miss, replays from the store
|
|
140
|
-
* (using snapshots if available to avoid full replay).
|
|
141
|
-
*
|
|
142
|
-
* @template TState The type of state
|
|
143
|
-
* @template TEvents The type of events
|
|
144
|
-
* @template TActions The type of actions
|
|
145
|
-
* @param me The state machine definition.
|
|
146
|
-
* @param stream The stream (instance) to load
|
|
147
|
-
* @param callback (Optional) Callback to receive the loaded snapshot as it is built
|
|
148
|
-
* @param asOf (Optional) Time-travel cursor; bypasses the cache.
|
|
149
|
-
* @param actor (Optional) Passed through to the state's `view` delegate
|
|
150
|
-
* when constructing the snapshot.event — semantics are the state's to
|
|
151
|
-
* define (see {@link state}).
|
|
152
|
-
* @returns The snapshot of the loaded state
|
|
153
|
-
*
|
|
154
|
-
* @example
|
|
155
|
-
* const snapshot = await load(Counter, "counter1");
|
|
43
|
+
* Folds a stream into state, from the cached checkpoint or the latest
|
|
44
|
+
* snapshot. `asOf` time-travels and bypasses the cache.
|
|
156
45
|
*/
|
|
157
46
|
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, patch_fn?: PatchFn): Promise<Snapshot<TState, TEvents>>;
|
|
158
47
|
/**
|
|
159
|
-
*
|
|
160
|
-
*
|
|
161
|
-
*
|
|
162
|
-
* commits them to the event store. When the action's
|
|
163
|
-
* {@link ActionOptions} declare a retry budget, the orchestrator owns
|
|
164
|
-
* the loop on {@link ConcurrencyError}: cache is invalidated, optional
|
|
165
|
-
* `backoff` delay is applied, and the action re-runs from `load`. Any
|
|
166
|
-
* other error rethrows immediately and does not consume the budget.
|
|
167
|
-
*
|
|
168
|
-
* Reactions skip optimistic concurrency (commit below passes
|
|
169
|
-
* `undefined` as `expectedVersion` when `reactingTo` is set), so
|
|
170
|
-
* `ConcurrencyError` cannot fire on the reaction-driven path — the
|
|
171
|
-
* loop is naturally a no-op there.
|
|
172
|
-
*
|
|
173
|
-
* @template TState The type of state
|
|
174
|
-
* @template TEvents The type of events
|
|
175
|
-
* @template TActions The type of action_schemas
|
|
176
|
-
* @template TKey The type of action to execute
|
|
177
|
-
* @param me The state machine definition
|
|
178
|
-
* @param action The action to execute
|
|
179
|
-
* @param target The target (stream, actor, etc.)
|
|
180
|
-
* @param payload The payload of the action
|
|
181
|
-
* @param options Per-call dispatch options ({@link DoOptions}) —
|
|
182
|
-
* `reactingTo` to thread correlation, `correlator` to override the
|
|
183
|
-
* framework or orchestrator-level correlator for this call only.
|
|
184
|
-
* @returns The snapshot of the committed event
|
|
185
|
-
*
|
|
186
|
-
* @example
|
|
187
|
-
* const snapshot = await action(Counter, "increment", { stream: "counter1", actor }, { by: 1 });
|
|
48
|
+
* Validates, checks invariants, emits and commits. On {@link ConcurrencyError}
|
|
49
|
+
* it re-runs from `load` within the action's `maxRetries`; any other error
|
|
50
|
+
* rethrows. Reactions commit without the inferred version guard.
|
|
188
51
|
*/
|
|
189
52
|
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>, patch_fn?: PatchFn): Promise<Snapshot<TState, TEvents>[]>;
|
|
190
53
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-sourcing.d.ts","sourceRoot":"","sources":["../../../src/internal/event-sourcing.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"event-sourcing.d.ts","sourceRoot":"","sources":["../../../src/internal/event-sourcing.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,7 +21,7 @@ export { type AutoclosePolicy, compile_autoclose_policy, policy_keep_days, polic
|
|
|
21
21
|
export { synthesize_autoclose_reactions } from "./autoclose-reaction.js";
|
|
22
22
|
export { compute_backoff_delay } from "./backoff.js";
|
|
23
23
|
export { CircuitBreaker, type CircuitState } from "./circuit-breaker.js";
|
|
24
|
-
export {
|
|
24
|
+
export { CloseLock, catch_up_correlation, run_close_cycle, } from "./close-cycle.js";
|
|
25
25
|
export { CloseSignal } from "./close-signal.js";
|
|
26
26
|
export { type AutocloseConfig, type CircuitBreakerOptions, DEFAULT_AUTOCLOSE_CYCLE_MINUTES, DEFAULT_BACKOFF, DEFAULT_BLOCK_ON_ERROR, DEFAULT_CLOSE_BATCH_SIZE, DEFAULT_CLOSE_YIELD_MS, DEFAULT_LEASE_MILLIS, DEFAULT_MAX_RETRIES, DEFAULT_MAX_SUBSCRIBED_STREAMS, DEFAULT_SETTLE_DEBOUNCE_MS, type FoldConfig, MAX_SHUTDOWN_GRACE_MS, resolveActConfig, resolveActionConfig, resolveAutocloseConfig, resolveCircuitBreakerConfig, resolveDrainConfig, resolveFoldConfig, resolveLaneConfig, resolveReactionConfig, resolveSettleConfig, resolveShutdownConfig, } from "./config.js";
|
|
27
27
|
export type { StaticTarget } from "./correlate-cycle.js";
|
|
@@ -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,OAAO,EACL,KAAK,eAAe,EACpB,wBAAwB,EACxB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,8BAA8B,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EACL,
|
|
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,OAAO,EACL,KAAK,eAAe,EACpB,wBAAwB,EACxB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,8BAA8B,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EACL,SAAS,EACT,oBAAoB,EACpB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,+BAA+B,EAC/B,eAAe,EACf,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,8BAA8B,EAC9B,0BAA0B,EAC1B,KAAK,UAAU,EACf,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,2BAA2B,EAC3B,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EACL,iBAAiB,EACjB,KAAK,aAAa,EAClB,aAAa,EACb,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EACL,eAAe,EACf,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,YAAY,GAClB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EACL,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,KAAK,sBAAsB,GAC5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,SAAS,EACd,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|