@rotorsoft/act 0.44.0 → 0.45.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 +87 -379
- package/dist/.tsbuildinfo +1 -1
- package/dist/@types/act.d.ts +43 -5
- package/dist/@types/act.d.ts.map +1 -1
- package/dist/@types/adapters/console-logger.d.ts.map +1 -1
- package/dist/@types/adapters/in-memory-store.d.ts +4 -1
- package/dist/@types/adapters/in-memory-store.d.ts.map +1 -1
- package/dist/@types/builders/act-builder.d.ts +33 -9
- package/dist/@types/builders/act-builder.d.ts.map +1 -1
- package/dist/@types/builders/slice-builder.d.ts +23 -8
- package/dist/@types/builders/slice-builder.d.ts.map +1 -1
- package/dist/@types/internal/build-classify.d.ts +20 -0
- package/dist/@types/internal/build-classify.d.ts.map +1 -1
- package/dist/@types/internal/correlate-cycle.d.ts +1 -0
- package/dist/@types/internal/correlate-cycle.d.ts.map +1 -1
- package/dist/@types/internal/drain-cycle.d.ts +43 -3
- package/dist/@types/internal/drain-cycle.d.ts.map +1 -1
- package/dist/@types/internal/drain.d.ts +3 -1
- package/dist/@types/internal/drain.d.ts.map +1 -1
- package/dist/@types/internal/index.d.ts +3 -2
- package/dist/@types/internal/index.d.ts.map +1 -1
- package/dist/@types/internal/reactions.d.ts.map +1 -1
- package/dist/@types/internal/tracing.d.ts +51 -0
- package/dist/@types/internal/tracing.d.ts.map +1 -1
- package/dist/@types/ports.d.ts +10 -0
- package/dist/@types/ports.d.ts.map +1 -1
- package/dist/@types/test/sandbox.d.ts +1 -1
- package/dist/@types/test/sandbox.d.ts.map +1 -1
- package/dist/@types/types/ports.d.ts +9 -2
- package/dist/@types/types/ports.d.ts.map +1 -1
- package/dist/@types/types/reaction.d.ts +20 -2
- package/dist/@types/types/reaction.d.ts.map +1 -1
- package/dist/{chunk-LKRNWD7C.js → chunk-PGTC7VOC.js} +46 -11
- package/dist/chunk-PGTC7VOC.js.map +1 -0
- package/dist/index.cjs +1139 -884
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1097 -876
- package/dist/index.js.map +1 -1
- package/dist/test/index.cjs +45 -11
- package/dist/test/index.cjs.map +1 -1
- package/dist/test/index.js +3 -3
- package/dist/test/index.js.map +1 -1
- package/package.json +2 -2
- package/dist/chunk-LKRNWD7C.js.map +0 -1
|
@@ -16,7 +16,8 @@
|
|
|
16
16
|
*
|
|
17
17
|
* @internal
|
|
18
18
|
*/
|
|
19
|
-
export {
|
|
19
|
+
export type { EventLaneSet } from "./build-classify.js";
|
|
20
|
+
export { ALL_LANES, classifyRegistry } from "./build-classify.js";
|
|
20
21
|
export { runCloseCycle } from "./close-cycle.js";
|
|
21
22
|
export { CorrelateCycle } from "./correlate-cycle.js";
|
|
22
23
|
export { closeCorrelation, defaultCorrelator } from "./correlator.js";
|
|
@@ -27,5 +28,5 @@ export { currentVersionOf, deprecatedEventNames, } from "./event-versions.js";
|
|
|
27
28
|
export { _this_, mergeEventRegister, mergeProjection, registerState, } from "./merge.js";
|
|
28
29
|
export { buildHandle, buildHandleBatch } from "./reactions.js";
|
|
29
30
|
export { SettleLoop } from "./settle.js";
|
|
30
|
-
export { buildDrain, buildEs } from "./tracing.js";
|
|
31
|
+
export { buildDrain, buildEs, traceCycle } from "./tracing.js";
|
|
31
32
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/internal/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/internal/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACtE,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,EACL,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,MAAM,EACN,kBAAkB,EAClB,eAAe,EACf,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactions.d.ts","sourceRoot":"","sources":["../../../src/internal/reactions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EACL,KAAK,KAAK,EAGV,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,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;IACxD,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5D,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;IAC9D,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;CAC1E,CAAC;
|
|
1
|
+
{"version":3,"file":"reactions.d.ts","sourceRoot":"","sources":["../../../src/internal/reactions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EACL,KAAK,KAAK,EAGV,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,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;IACxD,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5D,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;IAC9D,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;CAC1E,CAAC;AAmDF;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,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,CAqDhE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,SAAS,OAAO,EACtD,MAAM,EAAE,MAAM,GACb,WAAW,CAAC,OAAO,CAAC,CA2BtB"}
|
|
@@ -42,4 +42,55 @@ export declare function buildEs(logger: Logger, correlator?: Correlator): EsOps;
|
|
|
42
42
|
* @internal
|
|
43
43
|
*/
|
|
44
44
|
export declare function buildDrain<TEvents extends Schemas>(logger: Logger): DrainOps<TEvents>;
|
|
45
|
+
/**
|
|
46
|
+
* Emit one cycle-level drain trace summarizing what happened in a
|
|
47
|
+
* single `runDrainCycle` pass. Per-stream rendering shape — outcome +
|
|
48
|
+
* post-state anchored on the right:
|
|
49
|
+
*
|
|
50
|
+
* stream<-source [events] ✓ @<acked-at> — full success
|
|
51
|
+
* stream<-source [events] ✗ @<failed-at>/<retry> (error) — total failure → blocked
|
|
52
|
+
* stream<-source [events] ⚠ @<failed-at>/<retry> (error) — total failure → retrying
|
|
53
|
+
* stream<-source [events] ✓ @<acked-at> ✗ @<failed-at>/<retry> (error) — partial then blocked
|
|
54
|
+
* stream<-source [events] ✓ @<acked-at> ⚠ @<failed-at>/<retry> (error) — partial then retrying
|
|
55
|
+
* stream<-source ⊘ @<at>/<retry> — deferred (backoff)
|
|
56
|
+
*
|
|
57
|
+
* Partial-success-then-failure is the dual-outcome case: events
|
|
58
|
+
* 1..K succeeded (watermark advanced to K), event K+1 threw. The
|
|
59
|
+
* trace renders both the lime `✓ @K` and the red/amber `✗`/`⚠ @K+1`
|
|
60
|
+
* on the same line so an operator sees "we made progress *and* then
|
|
61
|
+
* something broke" at a glance.
|
|
62
|
+
*
|
|
63
|
+
* Lane prefixes the caption in lilac when non-default. The outcome
|
|
64
|
+
* marker and its adjacent post-state share the marker's color so the
|
|
65
|
+
* eye reads "outcome + where it landed" as one unit. Per-stream
|
|
66
|
+
* `[events]` and `(error)` stay dim — secondary context.
|
|
67
|
+
*
|
|
68
|
+
* @internal
|
|
69
|
+
*/
|
|
70
|
+
export declare function traceCycle<TEvents extends Schemas>(logger: Logger, leased: ReadonlyArray<{
|
|
71
|
+
readonly stream: string;
|
|
72
|
+
readonly at: number;
|
|
73
|
+
readonly retry: number;
|
|
74
|
+
readonly lane?: string;
|
|
75
|
+
}>, fetched: ReadonlyArray<{
|
|
76
|
+
readonly stream: string;
|
|
77
|
+
readonly source?: string;
|
|
78
|
+
readonly events: ReadonlyArray<{
|
|
79
|
+
readonly id: number;
|
|
80
|
+
readonly name: keyof TEvents;
|
|
81
|
+
}>;
|
|
82
|
+
}>, handled: ReadonlyArray<{
|
|
83
|
+
readonly lease: {
|
|
84
|
+
readonly stream: string;
|
|
85
|
+
};
|
|
86
|
+
readonly error?: string;
|
|
87
|
+
readonly block?: boolean;
|
|
88
|
+
readonly failed_at?: number;
|
|
89
|
+
}>, acked: ReadonlyArray<{
|
|
90
|
+
readonly stream: string;
|
|
91
|
+
readonly at: number;
|
|
92
|
+
}>, blocked: ReadonlyArray<{
|
|
93
|
+
readonly stream: string;
|
|
94
|
+
readonly error: string;
|
|
95
|
+
}>): void;
|
|
45
96
|
//# sourceMappingURL=tracing.d.ts.map
|
|
@@ -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;
|
|
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,OAAO,CACrB,MAAM,EAAE,MAAM,EACd,UAAU,GAAE,UAA8B,GACzC,KAAK,CAoFP;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,SAAS,OAAO,EAChD,MAAM,EAAE,MAAM,GACb,QAAQ,CAAC,OAAO,CAAC,CAiCnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,UAAU,CAAC,OAAO,SAAS,OAAO,EAChD,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"}
|
package/dist/@types/ports.d.ts
CHANGED
|
@@ -151,5 +151,15 @@ export declare const SNAP_EVENT = "__snapshot__";
|
|
|
151
151
|
* @see {@link Act.close} for the close-the-books API
|
|
152
152
|
*/
|
|
153
153
|
export declare const TOMBSTONE_EVENT = "__tombstone__";
|
|
154
|
+
/**
|
|
155
|
+
* Name of the implicit lane every reaction lands in unless its `.to({lane})`
|
|
156
|
+
* declaration says otherwise (ACT-1103). Acts that don't call
|
|
157
|
+
* `.withLane(...)` see only this lane, and behavior is identical to
|
|
158
|
+
* pre-1103 single-controller drain.
|
|
159
|
+
*
|
|
160
|
+
* Persisted on `streams.lane` and threaded as the strict-typed default in
|
|
161
|
+
* builder generics — `lane?: TLanes` always includes `"default"`.
|
|
162
|
+
*/
|
|
163
|
+
export declare const DEFAULT_LANE = "default";
|
|
154
164
|
export {};
|
|
155
165
|
//# sourceMappingURL=ports.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../../src/ports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAI7D,OAAO,KAAK,EACV,KAAK,EACL,UAAU,EACV,QAAQ,EACR,MAAM,EACN,KAAK,EACN,MAAM,kBAAkB,CAAC;AAE1B,uHAAuH;AACvH,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;CACvB,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,MAAM,2BAAkC,CAAC;AAEtD;;;;;;;;;;;;;GAaG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,SAAS,4BAA6B,CAAC;AAEpD;;;;;;;GAOG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAMlD;;;GAGG;AACH,KAAK,QAAQ,CAAC,IAAI,SAAS,UAAU,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,KAAK,IAAI,CAAC;AAKlE;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,IAAI,CAAC,IAAI,SAAS,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,IAC5D,UAAU,IAAI,KAAG,IAAI,CAW9B;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,GAAG,0EASd,CAAC;AA4CH,eAAO,MAAM,KAAK,EAEZ,CAAC,OAAO,CAAC,EAAE,KAAK,KAAK,KAAK,CAAC;AAmBjC,eAAO,MAAM,KAAK,EAEZ,CAAC,OAAO,CAAC,EAAE,KAAK,KAAK,KAAK,CAAC;AASjC;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,cAAc,CAAC,IAAI,GAAE,QAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuB3E;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,OAAO,CACrB,QAAQ,CAAC,EAAE,QAAQ,GAClB,CAAC,IAAI,CAAC,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAGpC;AAMD;;;;GAIG;AACH,eAAO,MAAM,UAAU,iBAAiB,CAAC;AAEzC;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../../src/ports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAI7D,OAAO,KAAK,EACV,KAAK,EACL,UAAU,EACV,QAAQ,EACR,MAAM,EACN,KAAK,EACN,MAAM,kBAAkB,CAAC;AAE1B,uHAAuH;AACvH,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;CACvB,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,MAAM,2BAAkC,CAAC;AAEtD;;;;;;;;;;;;;GAaG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,SAAS,4BAA6B,CAAC;AAEpD;;;;;;;GAOG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAMlD;;;GAGG;AACH,KAAK,QAAQ,CAAC,IAAI,SAAS,UAAU,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,KAAK,IAAI,CAAC;AAKlE;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,IAAI,CAAC,IAAI,SAAS,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,IAC5D,UAAU,IAAI,KAAG,IAAI,CAW9B;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,GAAG,0EASd,CAAC;AA4CH,eAAO,MAAM,KAAK,EAEZ,CAAC,OAAO,CAAC,EAAE,KAAK,KAAK,KAAK,CAAC;AAmBjC,eAAO,MAAM,KAAK,EAEZ,CAAC,OAAO,CAAC,EAAE,KAAK,KAAK,KAAK,CAAC;AASjC;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,cAAc,CAAC,IAAI,GAAE,QAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuB3E;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,OAAO,CACrB,QAAQ,CAAC,EAAE,QAAQ,GAClB,CAAC,IAAI,CAAC,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAGpC;AAMD;;;;GAIG;AACH,eAAO,MAAM,UAAU,iBAAiB,CAAC;AAEzC;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,kBAAkB,CAAC;AAE/C;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,YAAY,CAAC"}
|
|
@@ -7,7 +7,7 @@ import type { Cache, Store } from "../types/index.js";
|
|
|
7
7
|
* generic when called across package boundaries.
|
|
8
8
|
*/
|
|
9
9
|
type AnyActBuilder<TApp> = {
|
|
10
|
-
build: (options?: ActOptions) => TApp;
|
|
10
|
+
build: (options?: ActOptions<any>) => TApp;
|
|
11
11
|
};
|
|
12
12
|
/**
|
|
13
13
|
* Options for {@link sandbox} / {@link fixture}.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../../src/test/sandbox.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAO,UAAU,EAAE,MAAM,WAAW,CAAC;AAGjD,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEtD;;;;;GAKG;AACH,KAAK,aAAa,CAAC,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../../src/test/sandbox.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAO,UAAU,EAAE,MAAM,WAAW,CAAC;AAGjD,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEtD;;;;;GAKG;AACH,KAAK,aAAa,CAAC,IAAI,IAAI;IAOzB,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;CAC5C,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,yEAAyE;IACzE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9C,yEAAyE;IACzE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9C,oEAAoE;IACpE,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;CAClD,CAAC;AAEF,uCAAuC;AACvC,MAAM,MAAM,OAAO,CAAC,IAAI,IAAI;IAC1B,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,wDAAwD;IACxD,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAChC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,EAC5B,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAuBxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAC1B,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,EAC5B,QAAQ,GAAE,cAAmB;;GAgB9B"}
|
|
@@ -101,6 +101,7 @@ export type NotifyDisposer = () => void | Promise<void>;
|
|
|
101
101
|
* @property leased_until - Lease expiration timestamp (when leased)
|
|
102
102
|
* @property priority - Scheduling priority (default 0). Biases the
|
|
103
103
|
* lagging-frontier `claim()` ordering — see {@link Store.prioritize}.
|
|
104
|
+
* @property lane - Drain lane bound to the stream (ACT-1103)
|
|
104
105
|
*/
|
|
105
106
|
export type StreamPosition = {
|
|
106
107
|
readonly stream: string;
|
|
@@ -112,6 +113,7 @@ export type StreamPosition = {
|
|
|
112
113
|
readonly priority: number;
|
|
113
114
|
readonly leased_by?: string;
|
|
114
115
|
readonly leased_until?: Date;
|
|
116
|
+
readonly lane?: string;
|
|
115
117
|
};
|
|
116
118
|
/**
|
|
117
119
|
* Filter options for {@link Store.query_streams}.
|
|
@@ -143,6 +145,7 @@ export type StreamPosition = {
|
|
|
143
145
|
* `source`.
|
|
144
146
|
* @property blocked - Restrict to blocked (`true`) or unblocked (`false`)
|
|
145
147
|
* streams. Omit for all.
|
|
148
|
+
* @property lane - Restrict to streams in this drain lane (ACT-1103). Exact match.
|
|
146
149
|
* @property after - Keyset pagination cursor: returns only streams with
|
|
147
150
|
* `stream > after` (lexicographic). Pass the last seen `stream` to fetch
|
|
148
151
|
* the next page.
|
|
@@ -154,6 +157,7 @@ export type QueryStreams = {
|
|
|
154
157
|
readonly source?: string;
|
|
155
158
|
readonly source_exact?: boolean;
|
|
156
159
|
readonly blocked?: boolean;
|
|
160
|
+
readonly lane?: string;
|
|
157
161
|
readonly after?: string;
|
|
158
162
|
readonly limit?: number;
|
|
159
163
|
};
|
|
@@ -187,7 +191,7 @@ export type QueryStreamsResult = {
|
|
|
187
191
|
* @property blocked - Restrict to blocked / unblocked streams. Omit
|
|
188
192
|
* for both.
|
|
189
193
|
*/
|
|
190
|
-
export type StreamFilter = Pick<QueryStreams, "stream" | "stream_exact" | "source" | "source_exact" | "blocked">;
|
|
194
|
+
export type StreamFilter = Pick<QueryStreams, "stream" | "stream_exact" | "source" | "source_exact" | "blocked" | "lane">;
|
|
191
195
|
/**
|
|
192
196
|
* Alias of {@link StreamFilter}. Retained for backward compatibility
|
|
193
197
|
* with code that imports the filter by its prioritize-specific name.
|
|
@@ -424,6 +428,7 @@ export interface Store extends Disposable {
|
|
|
424
428
|
* @param leading - Max streams from the leading frontier (descending watermark)
|
|
425
429
|
* @param by - Unique lease holder identifier (UUID)
|
|
426
430
|
* @param millis - Lease duration in milliseconds
|
|
431
|
+
* @param lane - Optional lane filter (ACT-1103)
|
|
427
432
|
* @returns Array of successfully leased streams with metadata
|
|
428
433
|
*
|
|
429
434
|
* @example
|
|
@@ -438,7 +443,7 @@ export interface Store extends Disposable {
|
|
|
438
443
|
* @see {@link ack} for acknowledging completion
|
|
439
444
|
* @see {@link block} for blocking failed streams
|
|
440
445
|
*/
|
|
441
|
-
claim: (lagging: number, leading: number, by: string, millis: number) => Promise<Lease[]>;
|
|
446
|
+
claim: (lagging: number, leading: number, by: string, millis: number, lane?: string) => Promise<Lease[]>;
|
|
442
447
|
/**
|
|
443
448
|
* Registers streams for event processing.
|
|
444
449
|
*
|
|
@@ -474,6 +479,8 @@ export interface Store extends Disposable {
|
|
|
474
479
|
* overrides that ignore this max — operator-driven changes.
|
|
475
480
|
*/
|
|
476
481
|
priority?: number;
|
|
482
|
+
/** Drain lane (ACT-1103). Adapter UPSERTs on every subscribe. */
|
|
483
|
+
lane?: string;
|
|
477
484
|
}>) => Promise<{
|
|
478
485
|
subscribed: number;
|
|
479
486
|
watermark: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../../../src/types/ports.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EACV,SAAS,EACT,SAAS,EACT,OAAO,EACP,KAAK,EACL,MAAM,EACN,OAAO,EACR,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEzD;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAE3C;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IAAE,OAAO,EAAE,QAAQ,CAAA;CAAE,CAAC;AAM/C;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,MAAO,SAAQ,UAAU;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC;CAClD;AAMD;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,GAAG,CAC9B,MAAM,EACN;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,CAAA;CAAE,CAClE,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;QAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;KACvB,CAAC,CAAC;CACJ,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAExD
|
|
1
|
+
{"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../../../src/types/ports.ts"],"names":[],"mappings":"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"}
|
|
@@ -93,7 +93,7 @@ export type ReactionHandler<TEvents extends Schemas, TKey extends keyof TEvents,
|
|
|
93
93
|
* @see {@link Reaction} for complete reaction configuration
|
|
94
94
|
* @see {@link Resolved} for the resolved-target shape
|
|
95
95
|
*/
|
|
96
|
-
export type ReactionResolver<TEvents extends Schemas, TKey extends keyof TEvents> = Resolved | ((event: Committed<TEvents, TKey>) => Resolved | undefined);
|
|
96
|
+
export type ReactionResolver<TEvents extends Schemas, TKey extends keyof TEvents, TLane extends string = string> = Resolved<TLane> | ((event: Committed<TEvents, TKey>) => Resolved<TLane> | undefined);
|
|
97
97
|
/**
|
|
98
98
|
* Resolver output shape — what `.to(...)` returns for a static or dynamic
|
|
99
99
|
* resolver.
|
|
@@ -108,11 +108,27 @@ export type ReactionResolver<TEvents extends Schemas, TKey extends keyof TEvents
|
|
|
108
108
|
* than the worker can claim per cycle); idle systems are unaffected.
|
|
109
109
|
* See `libs/act-pg/PERFORMANCE.md` for the benchmark that motivated this
|
|
110
110
|
* knob.
|
|
111
|
+
* @property lane - Optional drain lane (ACT-1103). Defaults to `"default"`.
|
|
111
112
|
*/
|
|
112
|
-
export type Resolved = {
|
|
113
|
+
export type Resolved<TLane extends string = string> = {
|
|
113
114
|
readonly target: string;
|
|
114
115
|
readonly source?: string;
|
|
115
116
|
readonly priority?: number;
|
|
117
|
+
readonly lane?: TLane;
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* Build-time configuration for a drain lane (ACT-1103).
|
|
121
|
+
*
|
|
122
|
+
* @property name - Lane name (`"default"` is reserved for the implicit lane)
|
|
123
|
+
* @property leaseMillis - Lease window for `claim()` calls in this lane
|
|
124
|
+
* @property streamLimit - Max streams claimed per cycle in this lane
|
|
125
|
+
* @property cycleMs - Cycle frequency for this lane's controller
|
|
126
|
+
*/
|
|
127
|
+
export type LaneConfig<TName extends string = string> = {
|
|
128
|
+
readonly name: TName;
|
|
129
|
+
readonly leaseMillis?: number;
|
|
130
|
+
readonly streamLimit?: number;
|
|
131
|
+
readonly cycleMs?: number;
|
|
116
132
|
};
|
|
117
133
|
/**
|
|
118
134
|
* Backoff strategy for delaying the next retry attempt after a reaction
|
|
@@ -278,6 +294,7 @@ export type Fetch<TEvents extends Schemas> = Array<{
|
|
|
278
294
|
* @property by - Unique identifier of the lease holder (UUID)
|
|
279
295
|
* @property retry - Number of retry attempts (0 = first attempt)
|
|
280
296
|
* @property lagging - Whether this stream is behind (lagging frontier)
|
|
297
|
+
* @property lane - Drain lane the stream is bound to (ACT-1103)
|
|
281
298
|
*
|
|
282
299
|
* @example
|
|
283
300
|
* ```typescript
|
|
@@ -303,6 +320,7 @@ export type Lease = {
|
|
|
303
320
|
readonly by: string;
|
|
304
321
|
readonly retry: number;
|
|
305
322
|
readonly lagging: boolean;
|
|
323
|
+
readonly lane?: string;
|
|
306
324
|
};
|
|
307
325
|
/**
|
|
308
326
|
* A {@link Lease} augmented with the failure reason that pushed it past
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reaction.d.ts","sourceRoot":"","sources":["../../../src/types/reaction.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EACV,KAAK,EACL,SAAS,EACT,IAAI,EACJ,KAAK,EACL,MAAM,EACN,OAAO,EACP,QAAQ,EACT,MAAM,aAAa,CAAC;AAErB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,MAAM,eAAe,CACzB,OAAO,SAAS,OAAO,EACvB,IAAI,SAAS,MAAM,OAAO,EAC1B,QAAQ,SAAS,OAAO,GAAG,OAAO,EAClC,MAAM,SAAS,KAAK,GAAG,KAAK,IAC1B,CACF,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,EAC/B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,KACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,MAAM,MAAM,gBAAgB,CAC1B,OAAO,SAAS,OAAO,EACvB,IAAI,SAAS,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"reaction.d.ts","sourceRoot":"","sources":["../../../src/types/reaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -74,6 +74,12 @@ var ConsoleLogger = class _ConsoleLogger {
|
|
|
74
74
|
if (typeof objOrMsg === "string") {
|
|
75
75
|
message = objOrMsg;
|
|
76
76
|
obj = {};
|
|
77
|
+
} else if (objOrMsg instanceof Error) {
|
|
78
|
+
message = msg ?? objOrMsg.message;
|
|
79
|
+
obj = {
|
|
80
|
+
error: { message: objOrMsg.message, name: objOrMsg.name },
|
|
81
|
+
stack: objOrMsg.stack
|
|
82
|
+
};
|
|
77
83
|
} else if (objOrMsg !== null && typeof objOrMsg === "object") {
|
|
78
84
|
message = msg;
|
|
79
85
|
obj = { ...objOrMsg };
|
|
@@ -104,6 +110,9 @@ var ConsoleLogger = class _ConsoleLogger {
|
|
|
104
110
|
let data;
|
|
105
111
|
if (typeof objOrMsg === "string") {
|
|
106
112
|
message = objOrMsg;
|
|
113
|
+
} else if (objOrMsg instanceof Error) {
|
|
114
|
+
message = msg ?? objOrMsg.message;
|
|
115
|
+
data = objOrMsg.stack;
|
|
107
116
|
} else {
|
|
108
117
|
message = msg ?? "";
|
|
109
118
|
if (objOrMsg !== void 0 && objOrMsg !== null) {
|
|
@@ -240,10 +249,11 @@ async function sleep(ms) {
|
|
|
240
249
|
|
|
241
250
|
// src/adapters/in-memory-store.ts
|
|
242
251
|
var InMemoryStream = class {
|
|
243
|
-
constructor(stream, source, priority = 0) {
|
|
252
|
+
constructor(stream, source, priority = 0, lane = DEFAULT_LANE) {
|
|
244
253
|
this.stream = stream;
|
|
245
254
|
this.source = source;
|
|
246
255
|
this._priority = priority;
|
|
256
|
+
this._lane = lane;
|
|
247
257
|
}
|
|
248
258
|
_at = -1;
|
|
249
259
|
_retry = -1;
|
|
@@ -252,9 +262,17 @@ var InMemoryStream = class {
|
|
|
252
262
|
_leased_by = void 0;
|
|
253
263
|
_leased_until = void 0;
|
|
254
264
|
_priority = 0;
|
|
265
|
+
_lane = DEFAULT_LANE;
|
|
255
266
|
get priority() {
|
|
256
267
|
return this._priority;
|
|
257
268
|
}
|
|
269
|
+
get lane() {
|
|
270
|
+
return this._lane;
|
|
271
|
+
}
|
|
272
|
+
/** Replace on every subscribe — current builder config wins on restart. */
|
|
273
|
+
set lane(value) {
|
|
274
|
+
this._lane = value;
|
|
275
|
+
}
|
|
258
276
|
/**
|
|
259
277
|
* Bump the priority via {@link subscribe}: keeps the maximum across
|
|
260
278
|
* reactions so the highest-priority registrant wins.
|
|
@@ -308,7 +326,8 @@ var InMemoryStream = class {
|
|
|
308
326
|
at: lease.at,
|
|
309
327
|
by: lease.by,
|
|
310
328
|
retry: this._retry,
|
|
311
|
-
lagging: lease.lagging
|
|
329
|
+
lagging: lease.lagging,
|
|
330
|
+
lane: this._lane
|
|
312
331
|
};
|
|
313
332
|
}
|
|
314
333
|
/**
|
|
@@ -327,7 +346,8 @@ var InMemoryStream = class {
|
|
|
327
346
|
at: this._at,
|
|
328
347
|
by: lease.by,
|
|
329
348
|
retry: this._retry,
|
|
330
|
-
lagging: lease.lagging
|
|
349
|
+
lagging: lease.lagging,
|
|
350
|
+
lane: this._lane
|
|
331
351
|
};
|
|
332
352
|
}
|
|
333
353
|
}
|
|
@@ -347,7 +367,8 @@ var InMemoryStream = class {
|
|
|
347
367
|
by: this._leased_by,
|
|
348
368
|
retry: this._retry,
|
|
349
369
|
error: this._error,
|
|
350
|
-
lagging: lease.lagging
|
|
370
|
+
lagging: lease.lagging,
|
|
371
|
+
lane: this._lane
|
|
351
372
|
};
|
|
352
373
|
}
|
|
353
374
|
}
|
|
@@ -523,7 +544,7 @@ var InMemoryStore = class {
|
|
|
523
544
|
* @param millis - Lease duration in milliseconds.
|
|
524
545
|
* @returns Granted leases.
|
|
525
546
|
*/
|
|
526
|
-
async claim(lagging, leading, by, millis) {
|
|
547
|
+
async claim(lagging, leading, by, millis, lane) {
|
|
527
548
|
await sleep();
|
|
528
549
|
const sourceRegex = /* @__PURE__ */ new Map();
|
|
529
550
|
const getRegex = (source) => {
|
|
@@ -544,7 +565,7 @@ var InMemoryStore = class {
|
|
|
544
565
|
return false;
|
|
545
566
|
};
|
|
546
567
|
const available = [...this._streams.values()].filter(
|
|
547
|
-
(s) => s.is_available && hasWork(s)
|
|
568
|
+
(s) => s.is_available && hasWork(s) && (lane === void 0 || s.lane === lane)
|
|
548
569
|
);
|
|
549
570
|
const lag = available.sort((a, b) => b.priority - a.priority || a.at - b.at).slice(0, lagging).map((s) => ({
|
|
550
571
|
stream: s.stream,
|
|
@@ -580,12 +601,21 @@ var InMemoryStore = class {
|
|
|
580
601
|
async subscribe(streams) {
|
|
581
602
|
await sleep();
|
|
582
603
|
let subscribed = 0;
|
|
583
|
-
for (const {
|
|
604
|
+
for (const {
|
|
605
|
+
stream,
|
|
606
|
+
source,
|
|
607
|
+
priority = 0,
|
|
608
|
+
lane = DEFAULT_LANE
|
|
609
|
+
} of streams) {
|
|
584
610
|
const existing = this._streams.get(stream);
|
|
585
611
|
if (existing) {
|
|
586
612
|
existing.bumpPriority(priority);
|
|
613
|
+
existing.lane = lane;
|
|
587
614
|
} else {
|
|
588
|
-
this._streams.set(
|
|
615
|
+
this._streams.set(
|
|
616
|
+
stream,
|
|
617
|
+
new InMemoryStream(stream, source, priority, lane)
|
|
618
|
+
);
|
|
589
619
|
subscribed++;
|
|
590
620
|
}
|
|
591
621
|
}
|
|
@@ -632,6 +662,7 @@ var InMemoryStore = class {
|
|
|
632
662
|
}
|
|
633
663
|
if (filter.blocked !== void 0 && s.blocked !== filter.blocked)
|
|
634
664
|
return false;
|
|
665
|
+
if (filter.lane !== void 0 && s.lane !== filter.lane) return false;
|
|
635
666
|
return true;
|
|
636
667
|
};
|
|
637
668
|
}
|
|
@@ -742,6 +773,7 @@ var InMemoryStore = class {
|
|
|
742
773
|
continue;
|
|
743
774
|
}
|
|
744
775
|
if (blocked !== void 0 && s.blocked !== blocked) continue;
|
|
776
|
+
if (query?.lane !== void 0 && s.lane !== query.lane) continue;
|
|
745
777
|
callback({
|
|
746
778
|
stream: s.stream,
|
|
747
779
|
source: s.source,
|
|
@@ -751,7 +783,8 @@ var InMemoryStore = class {
|
|
|
751
783
|
error: s.error,
|
|
752
784
|
priority: s.priority,
|
|
753
785
|
leased_by: s.leased_by,
|
|
754
|
-
leased_until: s.leased_until
|
|
786
|
+
leased_until: s.leased_until,
|
|
787
|
+
lane: s.lane
|
|
755
788
|
});
|
|
756
789
|
count++;
|
|
757
790
|
if (count >= limit) break;
|
|
@@ -934,6 +967,7 @@ function dispose(disposer) {
|
|
|
934
967
|
}
|
|
935
968
|
var SNAP_EVENT = "__snapshot__";
|
|
936
969
|
var TOMBSTONE_EVENT = "__tombstone__";
|
|
970
|
+
var DEFAULT_LANE = "default";
|
|
937
971
|
|
|
938
972
|
// src/config.ts
|
|
939
973
|
var PackageSchema = z.object({
|
|
@@ -1008,6 +1042,7 @@ export {
|
|
|
1008
1042
|
disposeAndExit,
|
|
1009
1043
|
dispose,
|
|
1010
1044
|
SNAP_EVENT,
|
|
1011
|
-
TOMBSTONE_EVENT
|
|
1045
|
+
TOMBSTONE_EVENT,
|
|
1046
|
+
DEFAULT_LANE
|
|
1012
1047
|
};
|
|
1013
|
-
//# sourceMappingURL=chunk-
|
|
1048
|
+
//# sourceMappingURL=chunk-PGTC7VOC.js.map
|