@galaxy-tool-util/schema 1.0.0 → 1.2.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/index.d.ts +9 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/dist/schema/parsed-tool.d.ts +346 -1
- package/dist/schema/parsed-tool.d.ts.map +1 -1
- package/dist/schema/parsed-tool.js +73 -2
- package/dist/schema/parsed-tool.js.map +1 -1
- package/dist/test-format/tests.schema.generated.d.ts +619 -459
- package/dist/test-format/tests.schema.generated.d.ts.map +1 -1
- package/dist/test-format/tests.schema.generated.js +738 -546
- package/dist/test-format/tests.schema.generated.js.map +1 -1
- package/dist/workflow/cytoscape-layout.d.ts +23 -0
- package/dist/workflow/cytoscape-layout.d.ts.map +1 -0
- package/dist/workflow/cytoscape-layout.js +115 -0
- package/dist/workflow/cytoscape-layout.js.map +1 -0
- package/dist/workflow/cytoscape-models.d.ts +67 -0
- package/dist/workflow/cytoscape-models.d.ts.map +1 -0
- package/dist/workflow/cytoscape-models.js +10 -0
- package/dist/workflow/cytoscape-models.js.map +1 -0
- package/dist/workflow/cytoscape.d.ts +29 -0
- package/dist/workflow/cytoscape.d.ts.map +1 -0
- package/dist/workflow/cytoscape.js +172 -0
- package/dist/workflow/cytoscape.js.map +1 -0
- package/dist/workflow/edge-annotation.d.ts +24 -0
- package/dist/workflow/edge-annotation.d.ts.map +1 -0
- package/dist/workflow/edge-annotation.js +16 -0
- package/dist/workflow/edge-annotation.js.map +1 -0
- package/dist/workflow/index.d.ts +4 -0
- package/dist/workflow/index.d.ts.map +1 -1
- package/dist/workflow/index.js +4 -0
- package/dist/workflow/index.js.map +1 -1
- package/dist/workflow/mermaid.d.ts +6 -0
- package/dist/workflow/mermaid.d.ts.map +1 -1
- package/dist/workflow/mermaid.js +37 -4
- package/dist/workflow/mermaid.js.map +1 -1
- package/dist/workflow/report-models.d.ts +13 -0
- package/dist/workflow/report-models.d.ts.map +1 -1
- package/dist/workflow/report-models.js +2 -0
- package/dist/workflow/report-models.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cytoscape-layout.js","sourceRoot":"","sources":["../../src/workflow/cytoscape-layout.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Output-only TS interfaces for Cytoscape.js workflow visualization elements.
|
|
3
|
+
*
|
|
4
|
+
* Port of gxformat2/cytoscape/models.py. Field names stay snake_case so the
|
|
5
|
+
* emitted JSON is byte-identical to the Python builder.
|
|
6
|
+
*/
|
|
7
|
+
export interface CytoscapePosition {
|
|
8
|
+
x: number;
|
|
9
|
+
y: number;
|
|
10
|
+
}
|
|
11
|
+
export interface CytoscapeNodeData {
|
|
12
|
+
id: string;
|
|
13
|
+
label: string;
|
|
14
|
+
doc: string | null;
|
|
15
|
+
tool_id: string | null;
|
|
16
|
+
step_type: string;
|
|
17
|
+
repo_link: string | null;
|
|
18
|
+
}
|
|
19
|
+
export interface CytoscapeEdgeData {
|
|
20
|
+
id: string;
|
|
21
|
+
source: string;
|
|
22
|
+
target: string;
|
|
23
|
+
input: string;
|
|
24
|
+
output: string | null;
|
|
25
|
+
/**
|
|
26
|
+
* Map-over depth applied at this connection, when annotated. Optional so the
|
|
27
|
+
* default emit shape stays byte-identical with the Python builder.
|
|
28
|
+
*/
|
|
29
|
+
map_depth?: number;
|
|
30
|
+
/** True when the connection reduces a list-like source into a multi-data scalar input. */
|
|
31
|
+
reduction?: boolean;
|
|
32
|
+
/** Textual mapping (e.g. "list", "list:paired"); mirrors `ConnectionResult.mapping`. */
|
|
33
|
+
mapping?: string | null;
|
|
34
|
+
}
|
|
35
|
+
export interface CytoscapeNode {
|
|
36
|
+
group: "nodes";
|
|
37
|
+
data: CytoscapeNodeData;
|
|
38
|
+
classes: string[];
|
|
39
|
+
/**
|
|
40
|
+
* Present for `preset` and `topological` layouts; omitted for hint-only
|
|
41
|
+
* layouts (`dagre`, `breadthfirst`, `grid`, `cose`, `random`) so the runtime
|
|
42
|
+
* renderer is responsible for placement.
|
|
43
|
+
*/
|
|
44
|
+
position?: CytoscapePosition;
|
|
45
|
+
}
|
|
46
|
+
export interface CytoscapeEdge {
|
|
47
|
+
group: "edges";
|
|
48
|
+
data: CytoscapeEdgeData;
|
|
49
|
+
/** Optional class hints (e.g. "mapover_2", "reduction") used by the HTML viewer's stylesheet. */
|
|
50
|
+
classes?: string[];
|
|
51
|
+
}
|
|
52
|
+
export interface CytoscapeLayoutHint {
|
|
53
|
+
name: string;
|
|
54
|
+
}
|
|
55
|
+
export interface CytoscapeElements {
|
|
56
|
+
nodes: CytoscapeNode[];
|
|
57
|
+
edges: CytoscapeEdge[];
|
|
58
|
+
/**
|
|
59
|
+
* Present only when the builder was invoked with a non-`preset` layout.
|
|
60
|
+
* Carried out-of-band so `elementsToList` keeps Python parity for the flat
|
|
61
|
+
* list shape.
|
|
62
|
+
*/
|
|
63
|
+
layout?: CytoscapeLayoutHint;
|
|
64
|
+
}
|
|
65
|
+
export type CytoscapeListItem = CytoscapeNode | CytoscapeEdge;
|
|
66
|
+
export declare function elementsToList(els: CytoscapeElements): CytoscapeListItem[];
|
|
67
|
+
//# sourceMappingURL=cytoscape-models.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cytoscape-models.d.ts","sourceRoot":"","sources":["../../src/workflow/cytoscape-models.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,iBAAiB;IAChC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0FAA0F;IAC1F,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wFAAwF;IACxF,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,iBAAiB,CAAC;IACxB,iGAAiG;IACjG,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB;;;;OAIG;IACH,MAAM,CAAC,EAAE,mBAAmB,CAAC;CAC9B;AAED,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG,aAAa,CAAC;AAE9D,wBAAgB,cAAc,CAAC,GAAG,EAAE,iBAAiB,GAAG,iBAAiB,EAAE,CAE1E"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Output-only TS interfaces for Cytoscape.js workflow visualization elements.
|
|
3
|
+
*
|
|
4
|
+
* Port of gxformat2/cytoscape/models.py. Field names stay snake_case so the
|
|
5
|
+
* emitted JSON is byte-identical to the Python builder.
|
|
6
|
+
*/
|
|
7
|
+
export function elementsToList(els) {
|
|
8
|
+
return [...els.nodes, ...els.edges];
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=cytoscape-models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cytoscape-models.js","sourceRoot":"","sources":["../../src/workflow/cytoscape-models.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqEH,MAAM,UAAU,cAAc,CAAC,GAAsB;IACnD,OAAO,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build Cytoscape.js elements from a Galaxy workflow.
|
|
3
|
+
*
|
|
4
|
+
* Port of gxformat2/cytoscape/_builder.py. Snake_case field names + edge id
|
|
5
|
+
* format are preserved byte-for-byte to interop with the Python emitter and
|
|
6
|
+
* the standalone HTML template.
|
|
7
|
+
*/
|
|
8
|
+
import type { CytoscapeElements } from "./cytoscape-models.js";
|
|
9
|
+
import type { LayoutName } from "./cytoscape-layout.js";
|
|
10
|
+
import type { EdgeAnnotation } from "./edge-annotation.js";
|
|
11
|
+
import type { NormalizedFormat2Workflow } from "./normalized/format2.js";
|
|
12
|
+
export interface CytoscapeOptions {
|
|
13
|
+
/**
|
|
14
|
+
* Optional `EdgeAnnotation` map keyed by `edgeAnnotationKey(...)`. When
|
|
15
|
+
* present, edges gain `data.map_depth`, `data.reduction`, `data.mapping`
|
|
16
|
+
* and class hints (`mapover_<n>`, `reduction`).
|
|
17
|
+
*/
|
|
18
|
+
edgeAnnotations?: Map<string, EdgeAnnotation>;
|
|
19
|
+
/**
|
|
20
|
+
* Layout strategy. `preset` (default) keeps today's coordinate-from-NF2
|
|
21
|
+
* behavior with a `(10*i, 10*i)` fallback. `topological` overwrites
|
|
22
|
+
* coordinates per `cytoscape-layout.ts`. Hint-only layouts (`dagre`,
|
|
23
|
+
* `breadthfirst`, `grid`, `cose`, `random`) drop coordinates and emit a
|
|
24
|
+
* top-level `elements.layout = { name }` hint for the runtime renderer.
|
|
25
|
+
*/
|
|
26
|
+
layout?: LayoutName;
|
|
27
|
+
}
|
|
28
|
+
export declare function cytoscapeElements(workflow: unknown | NormalizedFormat2Workflow, opts?: CytoscapeOptions): CytoscapeElements;
|
|
29
|
+
//# sourceMappingURL=cytoscape.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cytoscape.d.ts","sourceRoot":"","sources":["../../src/workflow/cytoscape.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAEV,iBAAiB,EAGlB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,KAAK,EAGV,yBAAyB,EAC1B,MAAM,yBAAyB,CAAC;AAKjC,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC9C;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,OAAO,GAAG,yBAAyB,EAC7C,IAAI,GAAE,gBAAqB,GAC1B,iBAAiB,CAiDnB"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build Cytoscape.js elements from a Galaxy workflow.
|
|
3
|
+
*
|
|
4
|
+
* Port of gxformat2/cytoscape/_builder.py. Snake_case field names + edge id
|
|
5
|
+
* format are preserved byte-for-byte to interop with the Python emitter and
|
|
6
|
+
* the standalone HTML template.
|
|
7
|
+
*/
|
|
8
|
+
import { bakesCoordinates, topologicalPositions } from "./cytoscape-layout.js";
|
|
9
|
+
import { edgeAnnotationKey } from "./edge-annotation.js";
|
|
10
|
+
import { ensureFormat2 } from "./normalized/ensure.js";
|
|
11
|
+
import { isUnlabeledStep, resolveSourceReference } from "./normalized/labels.js";
|
|
12
|
+
const MAIN_TS_PREFIX = "toolshed.g2.bx.psu.edu/repos/";
|
|
13
|
+
export function cytoscapeElements(workflow, opts = {}) {
|
|
14
|
+
const wf = typeof workflow === "object" &&
|
|
15
|
+
workflow !== null &&
|
|
16
|
+
workflow.class === "GalaxyWorkflow" &&
|
|
17
|
+
Array.isArray(workflow.inputs) &&
|
|
18
|
+
"unique_tools" in workflow
|
|
19
|
+
? workflow
|
|
20
|
+
: ensureFormat2(workflow);
|
|
21
|
+
const layout = opts.layout ?? "preset";
|
|
22
|
+
const nodes = [];
|
|
23
|
+
const edges = [];
|
|
24
|
+
wf.inputs.forEach((inp, i) => {
|
|
25
|
+
nodes.push(_inputNode(inp, i));
|
|
26
|
+
});
|
|
27
|
+
const inputsOffset = wf.inputs.length;
|
|
28
|
+
const knownLabels = new Set();
|
|
29
|
+
for (const inp of wf.inputs)
|
|
30
|
+
knownLabels.add(inp.id);
|
|
31
|
+
for (const step of wf.steps)
|
|
32
|
+
knownLabels.add(step.label || step.id);
|
|
33
|
+
wf.steps.forEach((step, i) => {
|
|
34
|
+
nodes.push(_stepNode(step, i + inputsOffset));
|
|
35
|
+
edges.push(..._stepEdges(step, knownLabels, opts.edgeAnnotations));
|
|
36
|
+
});
|
|
37
|
+
const elements = { nodes, edges };
|
|
38
|
+
if (layout === "preset") {
|
|
39
|
+
return elements;
|
|
40
|
+
}
|
|
41
|
+
if (bakesCoordinates(layout)) {
|
|
42
|
+
// Currently only `topological` reaches here; computed off the
|
|
43
|
+
// already-built elements per docs/architecture/cytoscape-layout.md.
|
|
44
|
+
const positions = topologicalPositions(elements);
|
|
45
|
+
for (const node of nodes) {
|
|
46
|
+
const p = positions.get(node.data.id);
|
|
47
|
+
if (p)
|
|
48
|
+
node.position = p;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
// Hint-only layout: positions are the renderer's job.
|
|
53
|
+
for (const node of nodes)
|
|
54
|
+
delete node.position;
|
|
55
|
+
}
|
|
56
|
+
elements.layout = { name: layout };
|
|
57
|
+
return elements;
|
|
58
|
+
}
|
|
59
|
+
function _fallbackPosition(orderIndex) {
|
|
60
|
+
return { x: 10 * orderIndex, y: 10 * orderIndex };
|
|
61
|
+
}
|
|
62
|
+
function _toPosition(raw, orderIndex) {
|
|
63
|
+
if (raw == null)
|
|
64
|
+
return _fallbackPosition(orderIndex);
|
|
65
|
+
const left = raw.left;
|
|
66
|
+
const top = raw.top;
|
|
67
|
+
const x = typeof left === "number" ? Math.trunc(left) : Number.parseInt(String(left ?? 0), 10);
|
|
68
|
+
const y = typeof top === "number" ? Math.trunc(top) : Number.parseInt(String(top ?? 0), 10);
|
|
69
|
+
return {
|
|
70
|
+
x: Number.isFinite(x) ? x : 0,
|
|
71
|
+
y: Number.isFinite(y) ? y : 0,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
function _inputTypeStr(type) {
|
|
75
|
+
if (type == null)
|
|
76
|
+
return "input";
|
|
77
|
+
if (typeof type === "string")
|
|
78
|
+
return type;
|
|
79
|
+
return type.length > 0 ? `${type[0]}[]` : "input";
|
|
80
|
+
}
|
|
81
|
+
function _inputNode(inp, orderIndex) {
|
|
82
|
+
const inputId = inp.id || String(orderIndex);
|
|
83
|
+
const typeStr = _inputTypeStr(inp.type);
|
|
84
|
+
return {
|
|
85
|
+
group: "nodes",
|
|
86
|
+
data: {
|
|
87
|
+
id: inputId,
|
|
88
|
+
label: inputId,
|
|
89
|
+
doc: typeof inp.doc === "string" ? inp.doc : null,
|
|
90
|
+
tool_id: null,
|
|
91
|
+
step_type: typeStr,
|
|
92
|
+
repo_link: null,
|
|
93
|
+
},
|
|
94
|
+
classes: [`type_${typeStr}`, "input"],
|
|
95
|
+
position: _toPosition(inp.position, orderIndex),
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
function _stepNode(step, orderIndex) {
|
|
99
|
+
const stepId = step.label || step.id;
|
|
100
|
+
// The TS normalizer doesn't infer step.type the way gxformat2 does, so fall
|
|
101
|
+
// back to a `run`-derived hint for subworkflows (matches mermaid emitter).
|
|
102
|
+
const stepType = step.type || (step.run != null ? "subworkflow" : "tool");
|
|
103
|
+
let strippedToolId = step.tool_id ?? null;
|
|
104
|
+
if (strippedToolId && strippedToolId.startsWith(MAIN_TS_PREFIX)) {
|
|
105
|
+
strippedToolId = strippedToolId.slice(MAIN_TS_PREFIX.length);
|
|
106
|
+
}
|
|
107
|
+
const displayId = step.id && !isUnlabeledStep(step.id) ? step.id : null;
|
|
108
|
+
const label = step.label || displayId || (strippedToolId ? `tool:${strippedToolId}` : String(orderIndex));
|
|
109
|
+
let repoLink = null;
|
|
110
|
+
const repo = step.tool_shed_repository;
|
|
111
|
+
if (repo) {
|
|
112
|
+
const toolShed = repo.tool_shed;
|
|
113
|
+
const owner = repo.owner;
|
|
114
|
+
const name = repo.name;
|
|
115
|
+
const changesetRevision = repo.changeset_revision;
|
|
116
|
+
repoLink = `https://${toolShed}/view/${owner}/${name}/${changesetRevision}`;
|
|
117
|
+
}
|
|
118
|
+
return {
|
|
119
|
+
group: "nodes",
|
|
120
|
+
data: {
|
|
121
|
+
id: stepId,
|
|
122
|
+
label,
|
|
123
|
+
doc: typeof step.doc === "string" ? step.doc : null,
|
|
124
|
+
tool_id: step.tool_id ?? null,
|
|
125
|
+
step_type: stepType,
|
|
126
|
+
repo_link: repoLink,
|
|
127
|
+
},
|
|
128
|
+
classes: [`type_${stepType}`, "runnable"],
|
|
129
|
+
position: _toPosition(step.position, orderIndex),
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
function _stepEdges(step, knownLabels, edgeAnnotations) {
|
|
133
|
+
const stepId = step.label || step.id;
|
|
134
|
+
const edges = [];
|
|
135
|
+
for (const stepInput of step.in) {
|
|
136
|
+
if (stepInput.source == null)
|
|
137
|
+
continue;
|
|
138
|
+
const inputId = stepInput.id || "unknown";
|
|
139
|
+
const sources = Array.isArray(stepInput.source) ? stepInput.source : [stepInput.source];
|
|
140
|
+
for (const source of sources) {
|
|
141
|
+
const [sourceLabel, outputName] = resolveSourceReference(source, knownLabels);
|
|
142
|
+
const output = outputName === "output" ? null : outputName;
|
|
143
|
+
const edgeId = `${stepId}__${inputId}__from__${sourceLabel}`;
|
|
144
|
+
const edge = {
|
|
145
|
+
group: "edges",
|
|
146
|
+
data: {
|
|
147
|
+
id: edgeId,
|
|
148
|
+
source: sourceLabel,
|
|
149
|
+
target: stepId,
|
|
150
|
+
input: inputId,
|
|
151
|
+
output,
|
|
152
|
+
},
|
|
153
|
+
};
|
|
154
|
+
const annotation = edgeAnnotations?.get(edgeAnnotationKey(sourceLabel, outputName, stepId, inputId));
|
|
155
|
+
if (annotation) {
|
|
156
|
+
edge.data.map_depth = annotation.mapDepth;
|
|
157
|
+
edge.data.reduction = annotation.reduction;
|
|
158
|
+
edge.data.mapping = annotation.mapping ?? null;
|
|
159
|
+
const classes = [];
|
|
160
|
+
if (annotation.mapDepth > 0)
|
|
161
|
+
classes.push(`mapover_${annotation.mapDepth}`);
|
|
162
|
+
if (annotation.reduction)
|
|
163
|
+
classes.push("reduction");
|
|
164
|
+
if (classes.length > 0)
|
|
165
|
+
edge.classes = classes;
|
|
166
|
+
}
|
|
167
|
+
edges.push(edge);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
return edges;
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=cytoscape.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cytoscape.js","sourceRoot":"","sources":["../../src/workflow/cytoscape.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Edge-annotation contract consumed by workflow visualizers (mermaid,
|
|
3
|
+
* cytoscape) when encoding map-over depth and reductions on edges.
|
|
4
|
+
*
|
|
5
|
+
* This is a structural duplicate of the type re-exported from
|
|
6
|
+
* `@galaxy-tool-util/connection-validation`. Schema cannot import the
|
|
7
|
+
* validator (dep chain points the other way), so it defines the contract
|
|
8
|
+
* locally; pass-through is via structural typing.
|
|
9
|
+
*
|
|
10
|
+
* Lookup keys use step *labels* (falling back to native stepId when a
|
|
11
|
+
* label is absent), matching what format2-driven emitters key off.
|
|
12
|
+
*/
|
|
13
|
+
export interface EdgeAnnotation {
|
|
14
|
+
sourceStep: string;
|
|
15
|
+
sourceOutput: string;
|
|
16
|
+
targetStep: string;
|
|
17
|
+
targetInput: string;
|
|
18
|
+
mapDepth: number;
|
|
19
|
+
reduction: boolean;
|
|
20
|
+
mapping?: string | null;
|
|
21
|
+
status?: "ok" | "invalid" | "skip";
|
|
22
|
+
}
|
|
23
|
+
export declare function edgeAnnotationKey(sourceStep: string, sourceOutput: string, targetStep: string, targetInput: string): string;
|
|
24
|
+
//# sourceMappingURL=edge-annotation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edge-annotation.d.ts","sourceRoot":"","sources":["../../src/workflow/edge-annotation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC;CACpC;AAED,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,MAAM,CAER"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Edge-annotation contract consumed by workflow visualizers (mermaid,
|
|
3
|
+
* cytoscape) when encoding map-over depth and reductions on edges.
|
|
4
|
+
*
|
|
5
|
+
* This is a structural duplicate of the type re-exported from
|
|
6
|
+
* `@galaxy-tool-util/connection-validation`. Schema cannot import the
|
|
7
|
+
* validator (dep chain points the other way), so it defines the contract
|
|
8
|
+
* locally; pass-through is via structural typing.
|
|
9
|
+
*
|
|
10
|
+
* Lookup keys use step *labels* (falling back to native stepId when a
|
|
11
|
+
* label is absent), matching what format2-driven emitters key off.
|
|
12
|
+
*/
|
|
13
|
+
export function edgeAnnotationKey(sourceStep, sourceOutput, targetStep, targetInput) {
|
|
14
|
+
return `${sourceStep}|${sourceOutput}->${targetStep}|${targetInput}`;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=edge-annotation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edge-annotation.js","sourceRoot":"","sources":["../../src/workflow/edge-annotation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAaH,MAAM,UAAU,iBAAiB,CAC/B,UAAkB,EAClB,YAAoB,EACpB,UAAkB,EAClB,WAAmB;IAEnB,OAAO,GAAG,UAAU,IAAI,YAAY,KAAK,UAAU,IAAI,WAAW,EAAE,CAAC;AACvE,CAAC"}
|
package/dist/workflow/index.d.ts
CHANGED
|
@@ -16,6 +16,10 @@ export { findParamAtPath, type ParamNavigationResult } from "./param-navigation.
|
|
|
16
16
|
export { roundtripValidate, type RoundtripResult, type RoundtripStrictOptions, type StepRoundtripResult, type BenignArtifactKind, type RoundtripFailureClass, } from "./roundtrip.js";
|
|
17
17
|
export { cleanWorkflow, type CleanWorkflowOptions, type CleanWorkflowResult } from "./clean.js";
|
|
18
18
|
export { workflowToMermaid, type MermaidOptions } from "./mermaid.js";
|
|
19
|
+
export { edgeAnnotationKey, type EdgeAnnotation } from "./edge-annotation.js";
|
|
20
|
+
export { cytoscapeElements, type CytoscapeOptions } from "./cytoscape.js";
|
|
21
|
+
export { elementsToList, type CytoscapeEdge, type CytoscapeEdgeData, type CytoscapeElements, type CytoscapeLayoutHint, type CytoscapeListItem, type CytoscapeNode, type CytoscapeNodeData, type CytoscapePosition, } from "./cytoscape-models.js";
|
|
22
|
+
export { COL_STRIDE, ROW_STRIDE, LAYOUT_NAMES, bakesCoordinates, isLayoutName, topologicalPositions, type LayoutName, } from "./cytoscape-layout.js";
|
|
19
23
|
export { detectFormat, type WorkflowFormat } from "./detect-format.js";
|
|
20
24
|
export { withClass, validateFormat2, validateFormat2Strict, validateNative, validateNativeStrict, validatorForFixture, } from "./validators.js";
|
|
21
25
|
export { validateEncodingNative, validateEncodingFormat2, checkStrictEncoding, checkStrictStructure, } from "./strict-checks.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/workflow/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/workflow/index.ts"],"names":[],"mappings":"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"}
|
package/dist/workflow/index.js
CHANGED
|
@@ -19,6 +19,10 @@ export { findParamAtPath } from "./param-navigation.js";
|
|
|
19
19
|
export { roundtripValidate, } from "./roundtrip.js";
|
|
20
20
|
export { cleanWorkflow } from "./clean.js";
|
|
21
21
|
export { workflowToMermaid } from "./mermaid.js";
|
|
22
|
+
export { edgeAnnotationKey } from "./edge-annotation.js";
|
|
23
|
+
export { cytoscapeElements } from "./cytoscape.js";
|
|
24
|
+
export { elementsToList, } from "./cytoscape-models.js";
|
|
25
|
+
export { COL_STRIDE, ROW_STRIDE, LAYOUT_NAMES, bakesCoordinates, isLayoutName, topologicalPositions, } from "./cytoscape-layout.js";
|
|
22
26
|
export { detectFormat } from "./detect-format.js";
|
|
23
27
|
export { withClass, validateFormat2, validateFormat2Strict, validateNative, validateNativeStrict, validatorForFixture, } from "./validators.js";
|
|
24
28
|
export { validateEncodingNative, validateEncodingFormat2, checkStrictEncoding, checkStrictStructure, } from "./strict-checks.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/workflow/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/workflow/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,9 +3,15 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Port of gxformat2/mermaid/_builder.py.
|
|
5
5
|
*/
|
|
6
|
+
import type { EdgeAnnotation } from "./edge-annotation.js";
|
|
6
7
|
import type { NormalizedFormat2Workflow } from "./normalized/format2.js";
|
|
7
8
|
export interface MermaidOptions {
|
|
8
9
|
comments?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Optional map of `EdgeAnnotation` keyed by `edgeAnnotationKey(...)`. When
|
|
12
|
+
* provided, edges with map-over depth or reductions are styled distinctly.
|
|
13
|
+
*/
|
|
14
|
+
edgeAnnotations?: Map<string, EdgeAnnotation>;
|
|
9
15
|
}
|
|
10
16
|
export declare function workflowToMermaid(workflow: unknown | NormalizedFormat2Workflow, opts?: MermaidOptions): string;
|
|
11
17
|
//# sourceMappingURL=mermaid.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mermaid.d.ts","sourceRoot":"","sources":["../../src/workflow/mermaid.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"mermaid.d.ts","sourceRoot":"","sources":["../../src/workflow/mermaid.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAyBzE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC/C;AA+CD,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,OAAO,GAAG,yBAAyB,EAC7C,IAAI,GAAE,cAAmB,GACxB,MAAM,CA8GR"}
|
package/dist/workflow/mermaid.js
CHANGED
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Port of gxformat2/mermaid/_builder.py.
|
|
5
5
|
*/
|
|
6
|
+
import { edgeAnnotationKey } from "./edge-annotation.js";
|
|
6
7
|
import { ensureFormat2 } from "./normalized/ensure.js";
|
|
7
|
-
import { resolveSourceReference } from "./normalized/labels.js";
|
|
8
|
+
import { isUnlabeledStep, resolveSourceReference } from "./normalized/labels.js";
|
|
8
9
|
const SHAPE_INPUT = [">", "]"];
|
|
9
10
|
const SHAPE_PARAM = ["{{", "}}"];
|
|
10
11
|
const SHAPE_TOOL = ["[", "]"];
|
|
@@ -94,7 +95,8 @@ export function workflowToMermaid(workflow, opts = {}) {
|
|
|
94
95
|
if (toolId && toolId.startsWith(MAIN_TS_PREFIX)) {
|
|
95
96
|
toolId = toolId.slice(MAIN_TS_PREFIX.length);
|
|
96
97
|
}
|
|
97
|
-
const
|
|
98
|
+
const displayId = step.id && !isUnlabeledStep(step.id) ? step.id : null;
|
|
99
|
+
const rawLabel = step.label || displayId || (toolId ? `tool:${toolId}` : String(i));
|
|
98
100
|
const label = sanitizeLabel(rawLabel);
|
|
99
101
|
// The TS normalizer does not infer step.type the way gxformat2 does, so
|
|
100
102
|
// fall back to `run` shape: anything non-null implies a subworkflow.
|
|
@@ -134,14 +136,18 @@ export function workflowToMermaid(workflow, opts = {}) {
|
|
|
134
136
|
// Build the set of known labels for source resolution: input ids + step labels/ids.
|
|
135
137
|
const knownLabels = new Set([...inputIds.keys(), ...stepIds.keys()]);
|
|
136
138
|
const seenEdges = new Set();
|
|
139
|
+
const linkStyles = [];
|
|
140
|
+
let edgeIndex = 0;
|
|
137
141
|
wf.steps.forEach((step, i) => {
|
|
138
142
|
const nodeId = `step_${i}`;
|
|
143
|
+
const targetLabel = step.label || step.id;
|
|
139
144
|
for (const stepInput of step.in) {
|
|
140
145
|
if (stepInput.source == null)
|
|
141
146
|
continue;
|
|
147
|
+
const inputId = stepInput.id || "";
|
|
142
148
|
const sources = Array.isArray(stepInput.source) ? stepInput.source : [stepInput.source];
|
|
143
149
|
for (const source of sources) {
|
|
144
|
-
const [sourceLabel] = resolveSourceReference(source, knownLabels);
|
|
150
|
+
const [sourceLabel, outputName] = resolveSourceReference(source, knownLabels);
|
|
145
151
|
const sourceId = inputIds.get(sourceLabel) ?? stepIds.get(sourceLabel);
|
|
146
152
|
if (!sourceId)
|
|
147
153
|
continue;
|
|
@@ -149,10 +155,37 @@ export function workflowToMermaid(workflow, opts = {}) {
|
|
|
149
155
|
if (seenEdges.has(edgeKey))
|
|
150
156
|
continue;
|
|
151
157
|
seenEdges.add(edgeKey);
|
|
152
|
-
|
|
158
|
+
const annotation = opts.edgeAnnotations?.get(edgeAnnotationKey(sourceLabel, outputName, targetLabel, inputId));
|
|
159
|
+
const { line, linkStyle } = _renderEdge(sourceId, nodeId, annotation, edgeIndex);
|
|
160
|
+
lines.push(` ${line}`);
|
|
161
|
+
if (linkStyle)
|
|
162
|
+
linkStyles.push(linkStyle);
|
|
163
|
+
edgeIndex++;
|
|
153
164
|
}
|
|
154
165
|
}
|
|
155
166
|
});
|
|
167
|
+
for (const ls of linkStyles) {
|
|
168
|
+
lines.push(` ${ls}`);
|
|
169
|
+
}
|
|
156
170
|
return lines.join("\n");
|
|
157
171
|
}
|
|
172
|
+
function _renderEdge(sourceId, targetId, annotation, edgeIndex) {
|
|
173
|
+
if (!annotation || (annotation.mapDepth === 0 && !annotation.reduction)) {
|
|
174
|
+
return { line: `${sourceId} --> ${targetId}`, linkStyle: null };
|
|
175
|
+
}
|
|
176
|
+
if (annotation.reduction) {
|
|
177
|
+
const label = annotation.mapping ? sanitizeLabel(`reduce ${annotation.mapping}`) : "reduce";
|
|
178
|
+
return {
|
|
179
|
+
line: `${sourceId} -. "${label}" .-> ${targetId}`,
|
|
180
|
+
linkStyle: `linkStyle ${edgeIndex} stroke:#a55,stroke-dasharray:6 4`,
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
const labelText = annotation.mapping ?? "map";
|
|
184
|
+
const label = sanitizeLabel(labelText);
|
|
185
|
+
const width = 2 + annotation.mapDepth;
|
|
186
|
+
return {
|
|
187
|
+
line: `${sourceId} ==>|"${label}"| ${targetId}`,
|
|
188
|
+
linkStyle: `linkStyle ${edgeIndex} stroke:#5a8,stroke-width:${width}px`,
|
|
189
|
+
};
|
|
190
|
+
}
|
|
158
191
|
//# sourceMappingURL=mermaid.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mermaid.js","sourceRoot":"","sources":["../../src/workflow/mermaid.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"mermaid.js","sourceRoot":"","sources":["../../src/workflow/mermaid.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,10 +37,19 @@ export interface ConnectionResult {
|
|
|
37
37
|
target_input: string;
|
|
38
38
|
status: "ok" | "invalid" | "skip";
|
|
39
39
|
mapping: string | null;
|
|
40
|
+
/**
|
|
41
|
+
* Map-over depth applied at this connection (TS-only enrichment; not yet present in Galaxy/Python).
|
|
42
|
+
* 0 = scalar passthrough, 1 = list, 2 = list:paired, …
|
|
43
|
+
*/
|
|
44
|
+
map_depth?: number;
|
|
45
|
+
/** True if this connection reduces a list-like source into a multi-data scalar input (TS-only). */
|
|
46
|
+
reduction?: boolean;
|
|
40
47
|
errors: string[];
|
|
41
48
|
}
|
|
42
49
|
export interface ConnectionStepResult {
|
|
43
50
|
step: string;
|
|
51
|
+
/** Step label when distinct from `step` (TS-only enrichment used by edge-annotation lookup). */
|
|
52
|
+
label?: string | null;
|
|
44
53
|
tool_id: string | null;
|
|
45
54
|
version: string | null;
|
|
46
55
|
step_type: string;
|
|
@@ -82,6 +91,8 @@ export interface SingleLintReport {
|
|
|
82
91
|
workflow: string;
|
|
83
92
|
lint_errors: number;
|
|
84
93
|
lint_warnings: number;
|
|
94
|
+
lint_error_messages: string[];
|
|
95
|
+
lint_warning_messages: string[];
|
|
85
96
|
results: ValidationStepResult[];
|
|
86
97
|
structure_errors: string[];
|
|
87
98
|
encoding_errors: string[];
|
|
@@ -315,6 +326,8 @@ export declare function buildSingleValidationReport(workflow: string, results: V
|
|
|
315
326
|
export declare function buildSingleLintReport(workflow: string, lint_errors: number, lint_warnings: number, results: ValidationStepResult[], opts?: {
|
|
316
327
|
structure_errors?: string[];
|
|
317
328
|
encoding_errors?: string[];
|
|
329
|
+
lint_error_messages?: string[];
|
|
330
|
+
lint_warning_messages?: string[];
|
|
318
331
|
}): SingleLintReport;
|
|
319
332
|
export declare function buildSingleCleanReport(workflow: string, results: CleanStepResult[]): SingleCleanReport;
|
|
320
333
|
export declare function buildWorkflowValidationResult(relativePath: string, stepResults: ValidationStepResult[], opts?: {
|