@rotorsoft/act 1.32.4 → 1.32.6
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 +3 -3
- package/dist/@types/builders/merge.d.ts.map +1 -1
- package/dist/@types/internal/close-cycle.d.ts +7 -3
- package/dist/@types/internal/close-cycle.d.ts.map +1 -1
- package/dist/@types/internal/drain-cycle.d.ts.map +1 -1
- package/dist/index.cjs +59 -22
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +59 -22
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/@types/act.d.ts
CHANGED
|
@@ -394,9 +394,9 @@ export declare class Act<TSchemaReg extends SchemaRegister<TActions>, TEvents ex
|
|
|
394
394
|
*/
|
|
395
395
|
private readonly _close_locks;
|
|
396
396
|
/**
|
|
397
|
-
* Run `work` under the per-stream close lock (#1222). Serializes
|
|
398
|
-
*
|
|
399
|
-
* different streams proceed in parallel.
|
|
397
|
+
* Run `work` under the per-stream close lock (#1222). Serializes close
|
|
398
|
+
* critical sections for the same stream (windowed prunes, and full closes
|
|
399
|
+
* since #1738) while letting different streams proceed in parallel.
|
|
400
400
|
*/
|
|
401
401
|
private _with_close_lock;
|
|
402
402
|
/** Drain lanes declared via `.withLane(...)`. Implicit default not included. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../../src/builders/merge.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAU,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../../src/builders/merge.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAU,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AA0E1D;;;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;AAuMD;;;;;;;;GAQG;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,CAcN;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,EACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,IAAI,CA+BN;AAGD,eAAO,MAAM,MAAM,eAAgB;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE;IACnD,MAAM;IACN,MAAM;CACN,CAAC"}
|
|
@@ -70,9 +70,13 @@ export type CloseCycleDeps = {
|
|
|
70
70
|
* same prefix — a double S3 upload / double JSONL append. This runs the
|
|
71
71
|
* given work under a process-local per-stream lock so the two closers
|
|
72
72
|
* serialize; the second sees the already-pruned prefix and skips its
|
|
73
|
-
* archive.
|
|
74
|
-
*
|
|
75
|
-
*
|
|
73
|
+
* archive. The full (tombstone/restart) path takes the same lock for
|
|
74
|
+
* every stream it closes: without it, a second full closer that arrives
|
|
75
|
+
* while the first is archiving mistakes the first closer's tombstone for
|
|
76
|
+
* an interrupted close, resumes it, and both archive and truncate (#1738).
|
|
77
|
+
* Provided by the Act orchestrator (shared across `app.close` and the
|
|
78
|
+
* drain's `on_close`); defaults to identity (no serialization) when the
|
|
79
|
+
* cycle is exercised in isolation.
|
|
76
80
|
*/
|
|
77
81
|
readonly with_stream_lock?: <T>(stream: string, work: () => Promise<T>) => Promise<T>;
|
|
78
82
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"close-cycle.d.ts","sourceRoot":"","sources":["../../../src/internal/close-cycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,MAAM,EAEN,KAAK,EACN,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACnE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,oBAAoB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAClE
|
|
1
|
+
{"version":3,"file":"close-cycle.d.ts","sourceRoot":"","sources":["../../../src/internal/close-cycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,MAAM,EAEN,KAAK,EACN,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACnE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,oBAAoB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAClE;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,EAC5B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KACnB,OAAO,CAAC,CAAC,CAAC,CAAC;CACjB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAuB3C;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,WAAW,EAAE,EACtB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,WAAW,CAAC,CA0BtB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drain-cycle.d.ts","sourceRoot":"","sources":["../../../src/internal/drain-cycle.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"drain-cycle.d.ts","sourceRoot":"","sources":["../../../src/internal/drain-cycle.ts"],"names":[],"mappings":"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"}
|
package/dist/index.cjs
CHANGED
|
@@ -2720,6 +2720,23 @@ async function run_close_cycle(targets, deps) {
|
|
|
2720
2720
|
const skipped = [];
|
|
2721
2721
|
const windowed_result = windowed.length ? await run_windowed_closes(windowed, deps, skipped) : /* @__PURE__ */ new Map();
|
|
2722
2722
|
if (!full.length) return { truncated: windowed_result, skipped };
|
|
2723
|
+
const truncated = await with_stream_locks(
|
|
2724
|
+
full.map((t) => t.stream),
|
|
2725
|
+
deps,
|
|
2726
|
+
() => run_full_closes(full, target_map, deps, skipped)
|
|
2727
|
+
);
|
|
2728
|
+
for (const [stream, entry] of windowed_result) truncated.set(stream, entry);
|
|
2729
|
+
return { truncated, skipped };
|
|
2730
|
+
}
|
|
2731
|
+
function with_stream_locks(streams, deps, work) {
|
|
2732
|
+
const with_lock = deps.with_stream_lock ?? ((_stream, w) => w());
|
|
2733
|
+
return [...streams].sort().reduceRight(
|
|
2734
|
+
(inner, stream) => () => with_lock(stream, inner),
|
|
2735
|
+
work
|
|
2736
|
+
)();
|
|
2737
|
+
}
|
|
2738
|
+
async function run_full_closes(full, target_map, deps, skipped) {
|
|
2739
|
+
const none = /* @__PURE__ */ new Map();
|
|
2723
2740
|
const streams = full.map((t) => t.stream);
|
|
2724
2741
|
const stream_info = await scan_stream_heads(streams);
|
|
2725
2742
|
for (const target of full) {
|
|
@@ -2742,7 +2759,7 @@ async function run_close_cycle(targets, deps) {
|
|
|
2742
2759
|
deps.probe_page_size ?? SAFETY_PROBE_PAGE_SIZE,
|
|
2743
2760
|
deps.catch_up_correlation
|
|
2744
2761
|
);
|
|
2745
|
-
if (!safe.length) return
|
|
2762
|
+
if (!safe.length) return none;
|
|
2746
2763
|
const { guarded, guard_events } = await guard_with_tombstones(
|
|
2747
2764
|
safe,
|
|
2748
2765
|
stream_info,
|
|
@@ -2750,7 +2767,7 @@ async function run_close_cycle(targets, deps) {
|
|
|
2750
2767
|
deps.tombstone,
|
|
2751
2768
|
skipped
|
|
2752
2769
|
);
|
|
2753
|
-
if (!guarded.length) return
|
|
2770
|
+
if (!guarded.length) return none;
|
|
2754
2771
|
const seed_states = await load_restart_seeds(
|
|
2755
2772
|
guarded,
|
|
2756
2773
|
target_map,
|
|
@@ -2760,14 +2777,18 @@ async function run_close_cycle(targets, deps) {
|
|
|
2760
2777
|
deps.logger
|
|
2761
2778
|
);
|
|
2762
2779
|
await run_archive_callbacks(guarded, target_map);
|
|
2763
|
-
const
|
|
2780
|
+
const still_guarded = await heads_still_guarded(
|
|
2764
2781
|
guarded,
|
|
2782
|
+
guard_events,
|
|
2783
|
+
skipped
|
|
2784
|
+
);
|
|
2785
|
+
if (!still_guarded.length) return none;
|
|
2786
|
+
return truncate_and_warm_cache(
|
|
2787
|
+
still_guarded,
|
|
2765
2788
|
seed_states,
|
|
2766
2789
|
guard_events,
|
|
2767
2790
|
deps.correlation
|
|
2768
2791
|
);
|
|
2769
|
-
for (const [stream, entry] of windowed_result) truncated.set(stream, entry);
|
|
2770
|
-
return { truncated, skipped };
|
|
2771
2792
|
}
|
|
2772
2793
|
async function run_windowed_closes(windowed, deps, skipped) {
|
|
2773
2794
|
const checkpoint = deps.reactive_events_size > 0 ? await deps.catch_up_correlation(Number.MAX_SAFE_INTEGER) : -1;
|
|
@@ -2957,6 +2978,15 @@ async function run_archive_callbacks(guarded, target_map) {
|
|
|
2957
2978
|
if (archive_fn) await archive_fn();
|
|
2958
2979
|
}
|
|
2959
2980
|
}
|
|
2981
|
+
async function heads_still_guarded(guarded, guard_events, skipped) {
|
|
2982
|
+
const heads = await store2().query_stats(guarded, {});
|
|
2983
|
+
return guarded.filter((stream) => {
|
|
2984
|
+
if (heads.get(stream)?.head.id === guard_events.get(stream).id)
|
|
2985
|
+
return true;
|
|
2986
|
+
skipped.push(stream);
|
|
2987
|
+
return false;
|
|
2988
|
+
});
|
|
2989
|
+
}
|
|
2960
2990
|
async function truncate_and_warm_cache(guarded, seed_states, guard_events, correlation) {
|
|
2961
2991
|
const trunc_targets = guarded.map((stream) => {
|
|
2962
2992
|
const snapshot = seed_states.get(stream);
|
|
@@ -4700,6 +4730,7 @@ var DrainController = class {
|
|
|
4700
4730
|
if (!cycle) {
|
|
4701
4731
|
this._deps.breaker.passed();
|
|
4702
4732
|
this._armed = false;
|
|
4733
|
+
if (this._defer.size > 0) this._defer.schedule();
|
|
4703
4734
|
return EMPTY_DRAIN;
|
|
4704
4735
|
}
|
|
4705
4736
|
const { leased, fetched, handled, acked, blocked, closeable } = cycle;
|
|
@@ -5230,9 +5261,9 @@ var Act = class {
|
|
|
5230
5261
|
*/
|
|
5231
5262
|
_close_locks = /* @__PURE__ */ new Map();
|
|
5232
5263
|
/**
|
|
5233
|
-
* Run `work` under the per-stream close lock (#1222). Serializes
|
|
5234
|
-
*
|
|
5235
|
-
* different streams proceed in parallel.
|
|
5264
|
+
* Run `work` under the per-stream close lock (#1222). Serializes close
|
|
5265
|
+
* critical sections for the same stream (windowed prunes, and full closes
|
|
5266
|
+
* since #1738) while letting different streams proceed in parallel.
|
|
5236
5267
|
*/
|
|
5237
5268
|
_with_close_lock(stream, work) {
|
|
5238
5269
|
const prev = this._close_locks.get(stream) ?? Promise.resolve();
|
|
@@ -6600,23 +6631,29 @@ function base_type_name(zodType) {
|
|
|
6600
6631
|
return t.constructor.name;
|
|
6601
6632
|
}
|
|
6602
6633
|
function merge_schemas(existing, incoming, state_name) {
|
|
6603
|
-
if (existing
|
|
6604
|
-
|
|
6605
|
-
|
|
6606
|
-
|
|
6607
|
-
|
|
6608
|
-
|
|
6609
|
-
|
|
6610
|
-
|
|
6611
|
-
|
|
6612
|
-
|
|
6613
|
-
|
|
6614
|
-
|
|
6634
|
+
if (existing === incoming) return existing;
|
|
6635
|
+
const existing_object = as_object(existing, "existing", state_name);
|
|
6636
|
+
const incoming_object = as_object(incoming, "incoming", state_name);
|
|
6637
|
+
const existing_shape = existing_object.shape;
|
|
6638
|
+
const incoming_shape = incoming_object.shape;
|
|
6639
|
+
for (const key of Object.keys(incoming_shape)) {
|
|
6640
|
+
if (key in existing_shape) {
|
|
6641
|
+
const existing_base = base_type_name(existing_shape[key]);
|
|
6642
|
+
const incoming_base = base_type_name(incoming_shape[key]);
|
|
6643
|
+
if (existing_base !== incoming_base) {
|
|
6644
|
+
throw new Error(
|
|
6645
|
+
`Schema conflict in "${state_name}": key "${key}" has type "${existing_base}" but incoming partial declares "${incoming_base}"`
|
|
6646
|
+
);
|
|
6615
6647
|
}
|
|
6616
6648
|
}
|
|
6617
|
-
return existing.extend(incoming_shape);
|
|
6618
6649
|
}
|
|
6619
|
-
return
|
|
6650
|
+
return existing_object.extend(incoming_shape);
|
|
6651
|
+
}
|
|
6652
|
+
function as_object(schema, side, state_name) {
|
|
6653
|
+
if (schema instanceof import_zod9.ZodObject) return schema;
|
|
6654
|
+
throw new Error(
|
|
6655
|
+
`Cannot merge state schemas for "${state_name}": the ${side} partial's schema is a ${schema.constructor.name}, not a z.object. Partials of the same state are merged by extending their shapes, so declare every partial's state as a plain z.object({ ... }).`
|
|
6656
|
+
);
|
|
6620
6657
|
}
|
|
6621
6658
|
function merge_inits(existing, incoming) {
|
|
6622
6659
|
return () => ({ ...existing(), ...incoming() });
|