@dudousxd/nestjs-durable-dashboard 0.48.0 → 0.49.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/dist/client/folded-children.d.ts +11 -0
- package/dist/client/folded-children.d.ts.map +1 -0
- package/dist/client/folded-children.js +21 -0
- package/dist/client/folded-children.js.map +1 -0
- package/dist/client/group-parallel-spans.d.ts.map +1 -1
- package/dist/client/group-parallel-spans.js +7 -1
- package/dist/client/group-parallel-spans.js.map +1 -1
- package/dist/spa/assets/{bench-DBT4MTjB.js → bench-DH4bTOwJ.js} +1 -1
- package/dist/spa/assets/{index-D9HzYedm.js → index-DCWWFODc.js} +1 -1
- package/dist/spa/assets/index-xUQjm-z_.js +66 -0
- package/dist/spa/assets/{preview-BDJd2aOJ.js → preview-DeC52LPJ.js} +1 -1
- package/dist/spa/bench.html +2 -2
- package/dist/spa/index.html +2 -2
- package/dist/spa/preview.html +2 -2
- package/package.json +4 -4
- package/dist/spa/assets/index-BYg_w0aX.js +0 -66
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** How many child runs a folded checkpoint stands for, or undefined for any other step. */
|
|
2
|
+
export declare function foldedChildCount(step: {
|
|
3
|
+
name: string;
|
|
4
|
+
output?: unknown;
|
|
5
|
+
}): number | undefined;
|
|
6
|
+
/** The name to show for a step: a folded group reads as its child-run count. */
|
|
7
|
+
export declare function stepDisplayName(step: {
|
|
8
|
+
name: string;
|
|
9
|
+
output?: unknown;
|
|
10
|
+
}): string;
|
|
11
|
+
//# sourceMappingURL=folded-children.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"folded-children.d.ts","sourceRoot":"","sources":["../../src/client/folded-children.ts"],"names":[],"mappings":"AAOA,2FAA2F;AAC3F,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,GAAG,SAAS,CAI7F;AAED,gFAAgF;AAChF,wBAAgB,eAAe,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAIhF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A settled `ctx.all` group (a fan, or one wave of it) is folded by the engine into a single
|
|
3
|
+
* `fan:<child id base>` checkpoint whose output holds the children's values. These read it as the
|
|
4
|
+
* child runs it stands for, instead of showing its raw checkpoint name.
|
|
5
|
+
*/
|
|
6
|
+
const FOLDED_PREFIX = 'fan:';
|
|
7
|
+
/** How many child runs a folded checkpoint stands for, or undefined for any other step. */
|
|
8
|
+
export function foldedChildCount(step) {
|
|
9
|
+
if (!step.name.startsWith(FOLDED_PREFIX))
|
|
10
|
+
return undefined;
|
|
11
|
+
const values = step.output?.values;
|
|
12
|
+
return Array.isArray(values) ? values.length : undefined;
|
|
13
|
+
}
|
|
14
|
+
/** The name to show for a step: a folded group reads as its child-run count. */
|
|
15
|
+
export function stepDisplayName(step) {
|
|
16
|
+
const count = foldedChildCount(step);
|
|
17
|
+
if (count === undefined)
|
|
18
|
+
return step.name;
|
|
19
|
+
return `${count} child run${count === 1 ? '' : 's'}`;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=folded-children.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"folded-children.js","sourceRoot":"","sources":["../../src/client/folded-children.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,aAAa,GAAG,MAAM,CAAC;AAE7B,2FAA2F;AAC3F,MAAM,UAAU,gBAAgB,CAAC,IAAwC;IACvE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3D,MAAM,MAAM,GAAI,IAAI,CAAC,MAAkD,EAAE,MAAM,CAAC;IAChF,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3D,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,eAAe,CAAC,IAAwC;IACtE,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IAC1C,OAAO,GAAG,KAAK,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACvD,CAAC"}
|
|
@@ -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;
|
|
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,3 +1,4 @@
|
|
|
1
|
+
import { foldedChildCount } from './folded-children.js';
|
|
1
2
|
/** Longest shared leading word-ish prefix across names, trimmed of trailing separators. */
|
|
2
3
|
function commonPrefix(names) {
|
|
3
4
|
if (names.length === 0)
|
|
@@ -12,8 +13,13 @@ function commonPrefix(names) {
|
|
|
12
13
|
// Trim trailing separators (`handle_` → `handle`) so the label reads cleanly.
|
|
13
14
|
return prefix.replace(/[\s._:-]+$/, '');
|
|
14
15
|
}
|
|
15
|
-
/** A concise summary of a fan: a name-derived label like `handle ×7` (NOT the group prefix).
|
|
16
|
+
/** A concise summary of a fan: a name-derived label like `handle ×7` (NOT the group prefix). A
|
|
17
|
+
* `ctx.all` fan with folded waves counts the child runs each folded wave stands for. */
|
|
16
18
|
function fanLabel(steps) {
|
|
19
|
+
if (steps.some((s) => foldedChildCount(s) !== undefined)) {
|
|
20
|
+
const runs = steps.reduce((sum, s) => sum + (foldedChildCount(s) ?? 1), 0);
|
|
21
|
+
return `child runs ×${runs}`;
|
|
22
|
+
}
|
|
17
23
|
const prefix = commonPrefix(steps.map((s) => s.name));
|
|
18
24
|
// A single-character shared prefix (e.g. `a`/`b` → ``, but `fA`/`fB` → `f`) reads as noise, not a
|
|
19
25
|
// meaningful label — fall back to `parallel` unless the shared prefix is at least two chars.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group-parallel-spans.js","sourceRoot":"","sources":["../../src/client/group-parallel-spans.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"group-parallel-spans.js","sourceRoot":"","sources":["../../src/client/group-parallel-spans.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{c as A,j as _,Q as y,a as v,A as R}from"./index-
|
|
1
|
+
import{c as A,j as _,Q as y,a as v,A as R}from"./index-xUQjm-z_.js";window.__bench={polls:0,runs:0,longTasks:[],longTaskAt:[]};new PerformanceObserver(t=>{for(const e of t.getEntries())window.__bench.longTasks.push(Math.round(e.duration)),window.__bench.longTaskAt.push(Math.round(e.startTime))}).observe({entryTypes:["longtask"]});const m=new URLSearchParams(window.location.search),T=Number(m.get("runs")??"10000"),j=Number(m.get("steps")??"488"),b=Number(m.get("churn")??"5"),l=["ingestion","catalog.workflow-run","link-subwo-to-mvr","etl","dpas-extraction"],g=["@dudousxd/nestjs-catalog-pipeline","@dudousxd/nestjs-agent",void 0],I=Array.from({length:12},(t,e)=>` at frame${e} (/app/dist/src/step-${e}.js:${e*7}:19)`).join(`
|
|
2
2
|
`),f=Date.parse("2026-08-01T00:00:00.000Z");function $(t){const e=t%5<2,n=e?"failed":t%97===0?"suspended":"completed",o=new Date(f+t*6e4).toISOString();return{id:`${l[t%l.length]}:${t}:2026-08-01T00:00`,workflow:l[t%l.length],workflowVersion:"4",status:n,namespace:"default",...g[t%g.length]!==void 0?{origin:g[t%g.length]}:{},tags:[`tier:${t%3}`,`region:r${t%4}`],createdAt:o,updatedAt:o,input:{file:`drop-${t}.csv`,base:`base-${t%12}`},...e?{error:{message:`step ${t} failed after 3 attempts`,stack:I}}:{}}}let u=Array.from({length:T},(t,e)=>$(e));window.__bench.runs=u.length;const O=l.map(t=>({group:t,kind:"workflow",depth:0,liveWorkers:[{group:t,instanceId:`worker-${t}`,lastBeatAt:f}]}));function N(){if(b<=0)return;const t=new Date().toISOString();u=u.map((e,n)=>n<b?{...e,updatedAt:t}:e)}function x(t){return{run:$(0),timeline:Array.from({length:j},(e,n)=>({runId:t,seq:n,name:`handle_chunk_${n}`,kind:n%3===0?"remote":"local",status:"completed",attempts:1,workerGroup:"ingestion",startedAt:new Date(f+n*900).toISOString(),finishedAt:new Date(f+n*900+700).toISOString()})),children:[]}}function D(t,e){var k;const n=t.match(/^\/runs\/(.+)$/);if(n!=null&&n[1]&&n[1]!=="facets")return x(decodeURIComponent(n[1]));if(t==="/runs/facets"){const s=new Map;for(const a of u){const p=(k=a.origin)!=null&&k.trim()?a.origin:null,w=`${a.status}|${p??""}`,d=s.get(w);d?d.count+=1:s.set(w,{status:a.status,origin:p,count:1})}return[...s.values()]}if(t!=="/runs")return;window.__bench.polls+=1,N();const o=e.getAll("status"),i=e.get("origin"),c=e.get("limit");let r=u;return o.length&&(r=r.filter(s=>o.includes(s.status))),e.get("unattributed")==="true"?r=r.filter(s=>{var a;return!((a=s.origin)!=null&&a.trim())}):i&&(r=r.filter(s=>s.origin===i)),(c?r.slice(0,Number(c)):r).map(s=>{const{input:a,output:p,error:w,...d}=s;return d})}const S=window.fetch.bind(window);window.fetch=async(t,e)=>{const o=(typeof t=="string"?t:t instanceof URL?t.href:t.url).match(/\/durable\/api(\/[^?]*)\??(.*)$/),i=o==null?void 0:o[1];if(!i)return S(t,e);const c=h=>new Response(JSON.stringify(h),{status:200,headers:{"content-type":"application/json"}});if(i==="/workers")return c(O);if(i==="/topology")return c({role:"control-plane"});const r=D(i,new URLSearchParams((o==null?void 0:o[2])??""));return r===void 0?S(t,e):c(r)};A(document.getElementById("root")).render(_.jsx(y,{client:new v,children:_.jsx(R,{})}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as t,c as r,j as e,r as s,Q as n,A as o}from"./index-
|
|
1
|
+
import{a as t,c as r,j as e,r as s,Q as n,A as o}from"./index-xUQjm-z_.js";const i=new t({defaultOptions:{queries:{refetchInterval:2e3,refetchOnWindowFocus:!1}}});r(document.getElementById("root")).render(e.jsx(s.StrictMode,{children:e.jsx(n,{client:i,children:e.jsx(o,{})})}));
|