@dudousxd/nestjs-durable-dashboard 0.49.0 → 0.51.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.
Files changed (37) hide show
  1. package/dist/client/durable-client.d.ts +23 -1
  2. package/dist/client/durable-client.d.ts.map +1 -1
  3. package/dist/client/durable-client.js +21 -0
  4. package/dist/client/durable-client.js.map +1 -1
  5. package/dist/client/fan-pages.d.ts +8 -0
  6. package/dist/client/fan-pages.d.ts.map +1 -0
  7. package/dist/client/fan-pages.js +16 -0
  8. package/dist/client/fan-pages.js.map +1 -0
  9. package/dist/client/group-parallel-spans.d.ts +39 -4
  10. package/dist/client/group-parallel-spans.d.ts.map +1 -1
  11. package/dist/client/group-parallel-spans.js +65 -1
  12. package/dist/client/group-parallel-spans.js.map +1 -1
  13. package/dist/client/merge-live-events.d.ts +6 -1
  14. package/dist/client/merge-live-events.d.ts.map +1 -1
  15. package/dist/client/merge-live-events.js +15 -0
  16. package/dist/client/merge-live-events.js.map +1 -1
  17. package/dist/client/throttle.d.ts +11 -0
  18. package/dist/client/throttle.d.ts.map +1 -0
  19. package/dist/client/throttle.js +30 -0
  20. package/dist/client/throttle.js.map +1 -0
  21. package/dist/server/index.cjs +408 -278
  22. package/dist/server/index.cjs.map +1 -1
  23. package/dist/server/index.d.cts +24 -3
  24. package/dist/server/index.d.ts +24 -3
  25. package/dist/server/index.js +286 -156
  26. package/dist/server/index.js.map +1 -1
  27. package/dist/spa/assets/{bench-DH4bTOwJ.js → bench-UvOjwMnz.js} +1 -1
  28. package/dist/spa/assets/index-BbR4CZ1K.css +1 -0
  29. package/dist/spa/assets/index-DnQL-Xbv.js +66 -0
  30. package/dist/spa/assets/{index-DCWWFODc.js → index-ov2ocqi5.js} +1 -1
  31. package/dist/spa/assets/{preview-DeC52LPJ.js → preview-BSiqTdta.js} +1 -1
  32. package/dist/spa/bench.html +3 -3
  33. package/dist/spa/index.html +3 -3
  34. package/dist/spa/preview.html +3 -3
  35. package/package.json +2 -2
  36. package/dist/spa/assets/index-LBQc7d3p.css +0 -1
  37. package/dist/spa/assets/index-xUQjm-z_.js +0 -66
@@ -1,4 +1,4 @@
1
- import type { RunListItem as CoreRunListItem, RunStatus as CoreRunStatus, RunWaiting as CoreRunWaiting, ScheduleDescription as CoreScheduleDescription, StepCheckpoint as CoreStepCheckpoint, StepEvent as CoreStepEvent, StepKind as CoreStepKind, StepError, WireDates } from '@dudousxd/nestjs-durable-core';
1
+ import type { FanSummary as CoreFanSummary, RunListItem as CoreRunListItem, RunStatus as CoreRunStatus, RunWaiting as CoreRunWaiting, ScheduleDescription as CoreScheduleDescription, StepCheckpoint as CoreStepCheckpoint, StepEvent as CoreStepEvent, StepKind as CoreStepKind, StepError, WireDates } from '@dudousxd/nestjs-durable-core';
2
2
  export { ConsoleSessionError, durableConsoleSessionUrl, durableConsoleUrl, mintDurableConsoleSession, openDurableConsole, type OpenConsoleOptions, } from './console-session.js';
3
3
  export { type RunPredicates, type RunValueField, type RunValueRow, runQueryString, } from './run-query-string.js';
4
4
  import { type RunPredicates, type RunValueField, type RunValueRow } from './run-query-string.js';
@@ -15,6 +15,8 @@ export interface DurableTopology {
15
15
  export type RunWaiting = CoreRunWaiting;
16
16
  /** No `Date` fields and already an exact structural match to core's `StepEvent` — derived directly. */
17
17
  export type StepEvent = CoreStepEvent;
18
+ /** A failure as the server reports it: message, machine `code`, structured `details`. */
19
+ export type { StepError };
18
20
  export type StepCheckpoint = Omit<WireDates<CoreStepCheckpoint>, 'stepId' | 'enqueuedAt' | 'error'> & {
19
21
  /**
20
22
  * Kept OPTIONAL here (core's `enqueuedAt` is a required `Date`, always populated) — the two SPA
@@ -48,6 +50,24 @@ export interface RunDetail {
48
50
  * it, and every read already guards with `?.`. Deliberate, load-bearing local divergence.
49
51
  */
50
52
  children?: string[];
53
+ /** The fans drawn as one node each: their members are absent from `timeline`. */
54
+ fans?: FanSummary[] | undefined;
55
+ /** How many children the run has, when `children` lists only the first of them. */
56
+ childCount?: number | undefined;
57
+ }
58
+ export type FanSummary = Omit<WireDates<CoreFanSummary>, 'failures'> & {
59
+ failures: StepCheckpoint[];
60
+ };
61
+ /** One page of a summarized fan's members, in seq order. `total` counts every matching member. */
62
+ export interface FanPage {
63
+ items: StepCheckpoint[];
64
+ total: number;
65
+ }
66
+ export interface FanPageOptions {
67
+ offset?: number | undefined;
68
+ limit?: number | undefined;
69
+ /** Only failed members (a failed step, or a child that failed). */
70
+ failed?: boolean | undefined;
51
71
  }
52
72
  /** How long a remote step may sit `pending` (dispatched, no result) before it's presumed a LOST
53
73
  * dispatch — the worker crashed or the transport dropped the job. Reconcile-wake can't recover this
@@ -252,6 +272,8 @@ export declare const durableClient: {
252
272
  search?: string;
253
273
  }): Promise<RunValueRow[]>;
254
274
  run(id: string): Promise<RunDetail>;
275
+ /** One page of a summarized fan's members — the ones {@link run} left out of its timeline. */
276
+ fanMembers(runId: string, group: string, opts?: FanPageOptions): Promise<FanPage>;
255
277
  /** Per-group worker health (queue backlog + live worker heartbeats) for the Workers panel. */
256
278
  workers(): Promise<GroupHealth[]>;
257
279
  /** Persisted schedules (`engine.schedules`), soonest-due first. Empty when unsupported. */
@@ -1 +1 @@
1
- {"version":3,"file":"durable-client.d.ts","sourceRoot":"","sources":["../../src/client/durable-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"durable-client.d.ts","sourceRoot":"","sources":["../../src/client/durable-client.ts"],"names":[],"mappings":"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"}
@@ -109,6 +109,14 @@ export function deriveRunState(run, ctx) {
109
109
  // Detail view: the timeline says exactly what's in flight — a step, a signal wait, or a sleep.
110
110
  const pending = ctx.timeline?.find((s) => s.status === 'pending' || s.status === 'running');
111
111
  if (pending) {
112
+ // The run failed and handed its failure to an onError handler, whose name the waiter's input holds.
113
+ if (pending.name.startsWith(`signal:child:${run.id}.onError.`)) {
114
+ const handler = pending.input?.workflow;
115
+ return {
116
+ status: 'awaiting',
117
+ detail: typeof handler === 'string' ? `failure handler ${handler}` : 'failure handler',
118
+ };
119
+ }
112
120
  if (pending.kind === 'signal')
113
121
  return { status: 'awaiting', detail: tokenDetail(pending.name) };
114
122
  if (pending.kind === 'sleep')
@@ -269,6 +277,19 @@ export const durableClient = {
269
277
  run(id) {
270
278
  return http(`/runs/${encodeURIComponent(id)}`);
271
279
  },
280
+ /** One page of a summarized fan's members — the ones {@link run} left out of its timeline. */
281
+ fanMembers(runId, group, opts = {}) {
282
+ const params = new URLSearchParams();
283
+ if (opts.offset !== undefined)
284
+ params.set('offset', String(opts.offset));
285
+ if (opts.limit !== undefined)
286
+ params.set('limit', String(opts.limit));
287
+ if (opts.failed)
288
+ params.set('failed', 'true');
289
+ const qs = params.toString();
290
+ const path = `/runs/${encodeURIComponent(runId)}/fans/${encodeURIComponent(group)}`;
291
+ return http(qs ? `${path}?${qs}` : path);
292
+ },
272
293
  /** Per-group worker health (queue backlog + live worker heartbeats) for the Workers panel. */
273
294
  workers() {
274
295
  return http('/workers');
@@ -1 +1 @@
1
- {"version":3,"file":"durable-client.js","sourceRoot":"","sources":["../../src/client/durable-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"durable-client.js","sourceRoot":"","sources":["../../src/client/durable-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /** Members per page when a summarized fan's members are listed. */
2
+ export declare const FAN_PAGE_SIZE = 100;
3
+ /**
4
+ * The pages holding rows `first`..`last` of a virtualized member list: the only pages it fetches.
5
+ * With no rows in view (the total is not known yet) it asks for page 0, which reports the total.
6
+ */
7
+ export declare function fanPagesInView(first: number | undefined, last: number | undefined, pageSize?: number): number[];
8
+ //# sourceMappingURL=fan-pages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fan-pages.d.ts","sourceRoot":"","sources":["../../src/client/fan-pages.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,eAAO,MAAM,aAAa,MAAM,CAAC;AAEjC;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,QAAQ,SAAgB,GACvB,MAAM,EAAE,CAOV"}
@@ -0,0 +1,16 @@
1
+ /** Members per page when a summarized fan's members are listed. */
2
+ export const FAN_PAGE_SIZE = 100;
3
+ /**
4
+ * The pages holding rows `first`..`last` of a virtualized member list: the only pages it fetches.
5
+ * With no rows in view (the total is not known yet) it asks for page 0, which reports the total.
6
+ */
7
+ export function fanPagesInView(first, last, pageSize = FAN_PAGE_SIZE) {
8
+ if (first === undefined || last === undefined)
9
+ return [0];
10
+ const pages = [];
11
+ for (let page = Math.floor(first / pageSize); page <= Math.floor(last / pageSize); page += 1) {
12
+ pages.push(page);
13
+ }
14
+ return pages;
15
+ }
16
+ //# sourceMappingURL=fan-pages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fan-pages.js","sourceRoot":"","sources":["../../src/client/fan-pages.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC;AAEjC;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAyB,EACzB,IAAwB,EACxB,QAAQ,GAAG,aAAa;IAExB,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;QAC7F,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,8 +1,10 @@
1
- import type { StepCheckpoint } from './durable-client.js';
1
+ import type { FanSummary, StepCheckpoint } from './durable-client.js';
2
2
  /**
3
- * A timeline rendered as a sequence of nodes: a plain `single` step, or a `fan` — N steps that the
3
+ * A timeline rendered as a sequence of nodes: a plain `single` step, a `fan` — N steps that the
4
4
  * engine tagged with the same `parallelGroup` (a `ctx.gather`/`ctx.all` fan-out, e.g. processing's 7
5
- * handlers) and that therefore ran as siblings, to be laid out at the same level rather than stacked.
5
+ * handlers) and that therefore ran as siblings, to be laid out at the same level rather than stacked —
6
+ * or a `summary`: a fan too wide for the detail to list, which the server sent as a {@link FanSummary}
7
+ * with its members left out of the timeline.
6
8
  */
7
9
  export type TimelineNode = {
8
10
  kind: 'single';
@@ -12,6 +14,9 @@ export type TimelineNode = {
12
14
  group: string;
13
15
  steps: StepCheckpoint[];
14
16
  label: string;
17
+ } | {
18
+ kind: 'summary';
19
+ fan: FanSummary;
15
20
  };
16
21
  /**
17
22
  * Collapse consecutive steps that share a non-empty `parallelGroup` into one `fan` node (the engine
@@ -19,6 +24,36 @@ export type TimelineNode = {
19
24
  * `gather:`/`all:` prefix is cosmetic, grouping is by exact string). A fan keeps its position where
20
25
  * its first member sat; input order is preserved. Steps with no `parallelGroup`, or a group of one,
21
26
  * stay `single`.
27
+ *
28
+ * Each of `fans` becomes one `summary` node, placed where its first member would have sat: before the
29
+ * first node whose first seq is past the fan's `firstSeq`.
30
+ */
31
+ export declare function groupParallelSpans(timeline: StepCheckpoint[], fans?: readonly FanSummary[]): TimelineNode[];
32
+ /**
33
+ * A summarized fan's members by status, every status present. While its run is live, members not
34
+ * started yet are `notStarted` (waves still to send). Once the run has finished, members still
35
+ * `running`/`pending` are `interrupted` and the never-started ones `skipped`: a failFast fan that
36
+ * stopped early, or a run cancelled mid-fan.
22
37
  */
23
- export declare function groupParallelSpans(timeline: StepCheckpoint[]): TimelineNode[];
38
+ export interface FanProgress {
39
+ completed: number;
40
+ failed: number;
41
+ running: number;
42
+ pending: number;
43
+ interrupted: number;
44
+ notStarted: number;
45
+ skipped: number;
46
+ /** Members started so far. */
47
+ started: number;
48
+ /** The fan's declared size, or `started` when its group does not carry one. */
49
+ total: number;
50
+ }
51
+ export declare function fanProgress(fan: FanSummary, runFinished?: boolean): FanProgress;
52
+ /** One status for a summarized fan's node: in flight while anything is left to run, else failed if
53
+ * any member failed or was cut short. */
54
+ export declare function fanStatus(fan: FanSummary, runFinished?: boolean): StepCheckpoint['status'];
55
+ /** The fan's size as a node shows it: `×N`, or `started of N` while (or when) not all of it ran. */
56
+ export declare function fanSizeLabel(p: FanProgress): string;
57
+ /** A run is past its fans once it can no longer start or finish a member. */
58
+ export declare function runFinished(status: string): boolean;
24
59
  //# sourceMappingURL=group-parallel-spans.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"group-parallel-spans.d.ts","sourceRoot":"","sources":["../../src/client/group-parallel-spans.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAG1D;;;;GAIG;AACH,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,cAAc,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AA4B3E;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,YAAY,EAAE,CAgC7E"}
1
+ {"version":3,"file":"group-parallel-spans.d.ts","sourceRoot":"","sources":["../../src/client/group-parallel-spans.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGtE;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,cAAc,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACtE;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,UAAU,CAAA;CAAE,CAAC;AAkCzC;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,cAAc,EAAE,EAC1B,IAAI,GAAE,SAAS,UAAU,EAAO,GAC/B,YAAY,EAAE,CAiBhB;AAoCD;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,WAAW,UAAQ,GAAG,WAAW,CAe7E;AAED;0CAC0C;AAC1C,wBAAgB,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,WAAW,UAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,CAKxF;AAED,oGAAoG;AACpG,wBAAgB,YAAY,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,CAEnD;AAID,6EAA6E;AAC7E,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEnD"}
@@ -25,14 +25,43 @@ function fanLabel(steps) {
25
25
  // meaningful label — fall back to `parallel` unless the shared prefix is at least two chars.
26
26
  return `${prefix.length >= 2 ? prefix : 'parallel'} ×${steps.length}`;
27
27
  }
28
+ function firstSeqOf(node) {
29
+ if (node.kind === 'single')
30
+ return node.step.seq;
31
+ if (node.kind === 'fan')
32
+ return node.steps[0]?.seq ?? Number.POSITIVE_INFINITY;
33
+ return node.fan.firstSeq;
34
+ }
28
35
  /**
29
36
  * Collapse consecutive steps that share a non-empty `parallelGroup` into one `fan` node (the engine
30
37
  * tags every sibling of one `ctx.gather`/`ctx.all` fan with the SAME exact group string — the
31
38
  * `gather:`/`all:` prefix is cosmetic, grouping is by exact string). A fan keeps its position where
32
39
  * its first member sat; input order is preserved. Steps with no `parallelGroup`, or a group of one,
33
40
  * stay `single`.
41
+ *
42
+ * Each of `fans` becomes one `summary` node, placed where its first member would have sat: before the
43
+ * first node whose first seq is past the fan's `firstSeq`.
34
44
  */
35
- export function groupParallelSpans(timeline) {
45
+ export function groupParallelSpans(timeline, fans = []) {
46
+ const nodes = groupSteps(timeline);
47
+ if (fans.length === 0)
48
+ return nodes;
49
+ const pending = [...fans].sort((a, b) => a.firstSeq - b.firstSeq);
50
+ const merged = [];
51
+ let f = 0;
52
+ for (const node of nodes) {
53
+ const seq = firstSeqOf(node);
54
+ while (f < pending.length && pending[f].firstSeq < seq) {
55
+ merged.push({ kind: 'summary', fan: pending[f] });
56
+ f += 1;
57
+ }
58
+ merged.push(node);
59
+ }
60
+ for (; f < pending.length; f += 1)
61
+ merged.push({ kind: 'summary', fan: pending[f] });
62
+ return merged;
63
+ }
64
+ function groupSteps(timeline) {
36
65
  const nodes = [];
37
66
  let i = 0;
38
67
  while (i < timeline.length) {
@@ -67,4 +96,39 @@ export function groupParallelSpans(timeline) {
67
96
  }
68
97
  return nodes;
69
98
  }
99
+ export function fanProgress(fan, runFinished = false) {
100
+ const running = fan.counts.running ?? 0;
101
+ const pending = fan.counts.pending ?? 0;
102
+ const notStarted = fan.notStarted ?? 0;
103
+ return {
104
+ completed: fan.counts.completed ?? 0,
105
+ failed: fan.counts.failed ?? 0,
106
+ running: runFinished ? 0 : running,
107
+ pending: runFinished ? 0 : pending,
108
+ interrupted: runFinished ? running + pending : 0,
109
+ notStarted: runFinished ? 0 : notStarted,
110
+ skipped: runFinished ? notStarted : 0,
111
+ started: fan.size,
112
+ total: fan.total ?? fan.size,
113
+ };
114
+ }
115
+ /** One status for a summarized fan's node: in flight while anything is left to run, else failed if
116
+ * any member failed or was cut short. */
117
+ export function fanStatus(fan, runFinished = false) {
118
+ const p = fanProgress(fan, runFinished);
119
+ if (p.running > 0)
120
+ return 'running';
121
+ if (p.pending > 0 || p.notStarted > 0)
122
+ return 'pending';
123
+ return p.failed > 0 || p.interrupted > 0 ? 'failed' : 'completed';
124
+ }
125
+ /** The fan's size as a node shows it: `×N`, or `started of N` while (or when) not all of it ran. */
126
+ export function fanSizeLabel(p) {
127
+ return p.started < p.total ? `${p.started} of ${p.total}` : `×${p.total}`;
128
+ }
129
+ const TERMINAL_RUN_STATUSES = new Set(['completed', 'failed', 'cancelled', 'dead']);
130
+ /** A run is past its fans once it can no longer start or finish a member. */
131
+ export function runFinished(status) {
132
+ return TERMINAL_RUN_STATUSES.has(status);
133
+ }
70
134
  //# sourceMappingURL=group-parallel-spans.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"group-parallel-spans.js","sourceRoot":"","sources":["../../src/client/group-parallel-spans.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"group-parallel-spans.js","sourceRoot":"","sources":["../../src/client/group-parallel-spans.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { RunDetail } from './durable-client.js';
1
+ import type { RunDetail, StepEvent } from './durable-client.js';
2
2
  /**
3
3
  * Merge a freshly-fetched run with the previously-cached one, preserving the live event trail the SSE
4
4
  * stream accumulated for in-flight steps.
@@ -12,4 +12,9 @@ import type { RunDetail } from './durable-client.js';
12
12
  * `completed`/`failed` step is authoritative and always uses the fetched events (even if empty).
13
13
  */
14
14
  export declare function mergeLiveEvents(prev: RunDetail | undefined, fresh: RunDetail): RunDetail;
15
+ /**
16
+ * Append one streamed event to the cached step it belongs to. A step the detail does not list — a
17
+ * member of a summarized fan — leaves the detail as it was (same identity, so nothing re-renders).
18
+ */
19
+ export declare function appendLiveEvent(prev: RunDetail | undefined, seq: number, event: StepEvent): RunDetail | undefined;
15
20
  //# sourceMappingURL=merge-live-events.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"merge-live-events.d.ts","sourceRoot":"","sources":["../../src/client/merge-live-events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,SAAS,CAcxF"}
1
+ {"version":3,"file":"merge-live-events.d.ts","sourceRoot":"","sources":["../../src/client/merge-live-events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhE;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,SAAS,CAcxF;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,SAAS,GAAG,SAAS,EAC3B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GACf,SAAS,GAAG,SAAS,CAQvB"}
@@ -27,4 +27,19 @@ export function mergeLiveEvents(prev, fresh) {
27
27
  }),
28
28
  };
29
29
  }
30
+ /**
31
+ * Append one streamed event to the cached step it belongs to. A step the detail does not list — a
32
+ * member of a summarized fan — leaves the detail as it was (same identity, so nothing re-renders).
33
+ */
34
+ export function appendLiveEvent(prev, seq, event) {
35
+ if (!prev)
36
+ return prev;
37
+ const index = prev.timeline.findIndex((step) => step.seq === seq);
38
+ const step = prev.timeline[index];
39
+ if (step === undefined)
40
+ return prev;
41
+ const timeline = [...prev.timeline];
42
+ timeline[index] = { ...step, events: [...(step.events ?? []), event] };
43
+ return { ...prev, timeline };
44
+ }
30
45
  //# sourceMappingURL=merge-live-events.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"merge-live-events.js","sourceRoot":"","sources":["../../src/client/merge-live-events.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAAC,IAA2B,EAAE,KAAgB;IAC3E,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACzE,OAAO;QACL,GAAG,KAAK;QACR,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC;YACxE,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjD,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;gBACjD,IAAI,QAAQ,EAAE,MAAM;oBAAE,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;YAC7D,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;KACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"merge-live-events.js","sourceRoot":"","sources":["../../src/client/merge-live-events.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAAC,IAA2B,EAAE,KAAgB;IAC3E,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACzE,OAAO;QACL,GAAG,KAAK;QACR,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC;YACxE,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjD,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;gBACjD,IAAI,QAAQ,EAAE,MAAM;oBAAE,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;YAC7D,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;KACH,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,IAA2B,EAC3B,GAAW,EACX,KAAgB;IAEhB,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;IAClE,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;IACvE,OAAO,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,11 @@
1
+ /** A throttled call: {@link Throttled.call} requests it, {@link Throttled.cancel} drops a pending one. */
2
+ export interface Throttled {
3
+ call(): void;
4
+ cancel(): void;
5
+ }
6
+ /**
7
+ * Run `fn` at most once per `ms`. A call outside the window runs at once; calls inside it collapse
8
+ * into one trailing run at the window's end, so the last request is never lost.
9
+ */
10
+ export declare function throttle(fn: () => void, ms: number, now?: () => number): Throttled;
11
+ //# sourceMappingURL=throttle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"throttle.d.ts","sourceRoot":"","sources":["../../src/client/throttle.ts"],"names":[],"mappings":"AAAA,0GAA0G;AAC1G,MAAM,WAAW,SAAS;IACxB,IAAI,IAAI,IAAI,CAAC;IACb,MAAM,IAAI,IAAI,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,MAAiB,GAAG,SAAS,CAoB5F"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Run `fn` at most once per `ms`. A call outside the window runs at once; calls inside it collapse
3
+ * into one trailing run at the window's end, so the last request is never lost.
4
+ */
5
+ export function throttle(fn, ms, now = Date.now) {
6
+ let lastRun = Number.NEGATIVE_INFINITY;
7
+ let timer;
8
+ const run = () => {
9
+ timer = undefined;
10
+ lastRun = now();
11
+ fn();
12
+ };
13
+ return {
14
+ call() {
15
+ if (timer !== undefined)
16
+ return;
17
+ const wait = lastRun + ms - now();
18
+ if (wait <= 0)
19
+ run();
20
+ else
21
+ timer = setTimeout(run, wait);
22
+ },
23
+ cancel() {
24
+ if (timer !== undefined)
25
+ clearTimeout(timer);
26
+ timer = undefined;
27
+ },
28
+ };
29
+ }
30
+ //# sourceMappingURL=throttle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"throttle.js","sourceRoot":"","sources":["../../src/client/throttle.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,EAAc,EAAE,EAAU,EAAE,MAAoB,IAAI,CAAC,GAAG;IAC/E,IAAI,OAAO,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACvC,IAAI,KAAgD,CAAC;IACrD,MAAM,GAAG,GAAG,GAAG,EAAE;QACf,KAAK,GAAG,SAAS,CAAC;QAClB,OAAO,GAAG,GAAG,EAAE,CAAC;QAChB,EAAE,EAAE,CAAC;IACP,CAAC,CAAC;IACF,OAAO;QACL,IAAI;YACF,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO;YAChC,MAAM,IAAI,GAAG,OAAO,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;YAClC,IAAI,IAAI,IAAI,CAAC;gBAAE,GAAG,EAAE,CAAC;;gBAChB,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACrC,CAAC;QACD,MAAM;YACJ,IAAI,KAAK,KAAK,SAAS;gBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;YAC7C,KAAK,GAAG,SAAS,CAAC;QACpB,CAAC;KACF,CAAC;AACJ,CAAC"}