@galaxy-tool-util/schema 0.4.0 → 1.0.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 +13 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -1
- package/dist/index.js.map +1 -1
- package/dist/schema/parameter-defaults.d.ts +36 -0
- package/dist/schema/parameter-defaults.d.ts.map +1 -0
- package/dist/schema/parameter-defaults.js +128 -0
- package/dist/schema/parameter-defaults.js.map +1 -0
- package/dist/schema/parsed-tool.d.ts +47 -0
- package/dist/schema/parsed-tool.d.ts.map +1 -0
- package/dist/schema/parsed-tool.js +49 -0
- package/dist/schema/parsed-tool.js.map +1 -0
- package/dist/tool-state-validator.d.ts +11 -4
- package/dist/tool-state-validator.d.ts.map +1 -1
- package/dist/tool-state-validator.js +2 -2
- package/dist/tool-state-validator.js.map +1 -1
- package/dist/workflow/fill-defaults.d.ts +39 -0
- package/dist/workflow/fill-defaults.d.ts.map +1 -0
- package/dist/workflow/fill-defaults.js +53 -0
- package/dist/workflow/fill-defaults.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 +11 -0
- package/dist/workflow/mermaid.d.ts.map +1 -0
- package/dist/workflow/mermaid.js +158 -0
- package/dist/workflow/mermaid.js.map +1 -0
- package/dist/workflow/minimal-tool-state.d.ts +15 -0
- package/dist/workflow/minimal-tool-state.d.ts.map +1 -0
- package/dist/workflow/minimal-tool-state.js +16 -0
- package/dist/workflow/minimal-tool-state.js.map +1 -0
- package/dist/workflow/step-skeleton.d.ts +29 -0
- package/dist/workflow/step-skeleton.d.ts.map +1 -0
- package/dist/workflow/step-skeleton.js +55 -0
- package/dist/workflow/step-skeleton.js.map +1 -0
- package/dist/workflow/walker.d.ts +10 -0
- package/dist/workflow/walker.d.ts.map +1 -1
- package/dist/workflow/walker.js +16 -7
- package/dist/workflow/walker.js.map +1 -1
- package/package.json +2 -4
package/dist/index.d.ts
CHANGED
|
@@ -31,7 +31,7 @@ type GalaxyParameterModel,
|
|
|
31
31
|
/** Union of container parameter types (section, repeat, conditional). */
|
|
32
32
|
type ContainerParameterModel,
|
|
33
33
|
/** Base fields shared by all leaf Galaxy parameter types. */
|
|
34
|
-
type BaseGalaxyParameterModel, type SelectParameterModel, type GenomeBuildParameterModel, type DrillDownParameterModel, type BooleanParameterModel, type SectionParameterModel, type RepeatParameterModel, type ConditionalParameterModel,
|
|
34
|
+
type BaseGalaxyParameterModel, type IntegerParameterModel, type FloatParameterModel, type TextParameterModel, type SelectParameterModel, type GenomeBuildParameterModel, type DrillDownParameterModel, type BooleanParameterModel, type SectionParameterModel, type RepeatParameterModel, type ConditionalParameterModel,
|
|
35
35
|
/** A single branch of a ConditionalParameterModel. */
|
|
36
36
|
type ConditionalWhen,
|
|
37
37
|
/** A label/value pair used in select and genomebuild options. */
|
|
@@ -39,6 +39,7 @@ type LabelValue, } from "./schema/bundle-types.js";
|
|
|
39
39
|
export {
|
|
40
40
|
/** True for gx_select, gx_genomebuild, gx_drill_down — params with an options list. */
|
|
41
41
|
isSelectLikeParam, isBooleanParam, isSectionParam, isRepeatParam, isConditionalParam, } from "./schema/type-guards.js";
|
|
42
|
+
export { ParsedTool, HelpContent, XrefDict, Citation } from "./schema/parsed-tool.js";
|
|
42
43
|
export { type GalaxyWorkflow,
|
|
43
44
|
/** Union schema accepting any Galaxy workflow format (format2 or native). */
|
|
44
45
|
GalaxyWorkflowSchema, type NativeGalaxyWorkflow,
|
|
@@ -52,6 +53,16 @@ normalizedNative, NormalizedNativeWorkflowSchema, NormalizedNativeStepSchema, To
|
|
|
52
53
|
injectConnectionsIntoState,
|
|
53
54
|
/** Strip ConnectedValue markers from state using parameter tree. */
|
|
54
55
|
stripConnectedValues,
|
|
56
|
+
/** Expand defaults into a tool state dict (port of Python fill_static_defaults). */
|
|
57
|
+
expandToolStateDefaults,
|
|
58
|
+
/** Build the minimal `tool_state` for a freshly inserted step. Today returns `{}`; designated extension point. */
|
|
59
|
+
buildMinimalToolState,
|
|
60
|
+
/** Build a native (.ga) step skeleton for an inserted tool. */
|
|
61
|
+
buildNativeStep,
|
|
62
|
+
/** Build a format2 (.gxwf.yml) step skeleton for an inserted tool. */
|
|
63
|
+
buildFormat2Step,
|
|
64
|
+
/** Build a step skeleton for an inserted tool; dispatches on format. */
|
|
65
|
+
buildStep, type StepSkeletonInputs,
|
|
55
66
|
/** Flatten a nested parameter path to a dot-separated string. */
|
|
56
67
|
flatStatePath, keysStartingWith,
|
|
57
68
|
/** Convert repeat block inputs to arrays. */
|
|
@@ -87,7 +98,7 @@ roundtripValidate, type RoundtripResult, type RoundtripStrictOptions, type StepR
|
|
|
87
98
|
/** Scan native workflow tool_state for legacy parameter encoding signals. */
|
|
88
99
|
scanToolState, type LegacyEncodingClassification, type LegacyEncodingHit, type LegacyEncodingScanResult,
|
|
89
100
|
/** Clean a workflow — strip stale keys, decode legacy tool_state encoding. */
|
|
90
|
-
cleanWorkflow, type CleanWorkflowResult,
|
|
101
|
+
cleanWorkflow, type CleanWorkflowResult, workflowToMermaid, type MermaidOptions,
|
|
91
102
|
/** Detect whether a workflow dict is native (.ga) or format2 (.gxwf.yml). */
|
|
92
103
|
detectFormat, type WorkflowFormat,
|
|
93
104
|
/** Format-aware workflow serializer (JSON/YAML, configurable indent and newline). */
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO;AACL,0FAA0F;AAC1F,gBAAgB,EAChB,KAAK,mBAAmB;AACxB,4CAA4C;AAC5C,qBAAqB;AACrB,wEAAwE;AACxE,yBAAyB;AACzB,6DAA6D;AAC7D,wBAAwB;AACxB,wEAAwE;AACxE,yBAAyB;AACzB,6DAA6D;AAC7D,wBAAwB;AACxB,gEAAgE;AAChE,qBAAqB;AACrB,gEAAgE;AAChE,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAE3B,OAAO;AACL,2CAA2C;AAC3C,KAAK,wBAAwB;AAC7B,2EAA2E;AAC3E,KAAK,kBAAkB;AACvB,4DAA4D;AAC5D,KAAK,oBAAoB;AACzB,yEAAyE;AACzE,KAAK,uBAAuB;AAC5B,6DAA6D;AAC7D,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,yBAAyB;AAC9B,sDAAsD;AACtD,KAAK,eAAe;AACpB,iEAAiE;AACjE,KAAK,UAAU,GAChB,MAAM,0BAA0B,CAAC;AAElC,OAAO;AACL,uFAAuF;AACvF,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,aAAa,EACb,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,KAAK,cAAc;AACnB,6EAA6E;AAC7E,oBAAoB,EACpB,KAAK,oBAAoB;AACzB,oDAAoD;AACpD,0BAA0B;AAC1B,mFAAmF;AACnF,iBAAiB,EACjB,+BAA+B,EAC/B,2BAA2B,EAC3B,4BAA4B,EAC5B,6BAA6B,EAC7B,gCAAgC,EAChC,iCAAiC,EACjC,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B;AAChC,wFAAwF;AACxF,gBAAgB,EAChB,8BAA8B,EAC9B,0BAA0B,EAC1B,mBAAmB,EACnB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,aAAa;AAClB,iEAAiE;AACjE,0BAA0B;AAC1B,oEAAoE;AACpE,oBAAoB;AACpB,iEAAiE;AACjE,aAAa,EACb,gBAAgB;AAChB,6CAA6C;AAC7C,mBAAmB;AACnB,qEAAqE;AACrE,eAAe;AACf,6DAA6D;AAC7D,mBAAmB;AACnB,gFAAgF;AAChF,eAAe;AACf,+EAA+E;AAC/E,cAAc;AACd,mEAAmE;AACnE,QAAQ,EACR,mBAAmB,EACnB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,gBAAgB;AACrB,qDAAqD;AACrD,SAAS;AACT,qDAAqD;AACrD,QAAQ;AACR,0EAA0E;AAC1E,iBAAiB;AACjB,0EAA0E;AAC1E,gBAAgB,EAChB,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,EAC/B,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB;AACvB,+EAA+E;AAC/E,sBAAsB,EACtB,kBAAkB,EAClB,KAAK,cAAc,EACnB,KAAK,kBAAkB;AACvB,4EAA4E;AAC5E,2BAA2B,EAC3B,uBAAuB,EACvB,wBAAwB;AACxB,6EAA6E;AAC7E,8BAA8B,EAC9B,KAAK,eAAe;AACpB,kFAAkF;AAClF,eAAe,EACf,KAAK,qBAAqB;AAC1B,yFAAyF;AACzF,iBAAiB,EACjB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB;AAC1B,6EAA6E;AAC7E,aAAa,EACb,KAAK,4BAA4B,EACjC,KAAK,iBAAiB,EACtB,KAAK,wBAAwB;AAC7B,8EAA8E;AAC9E,aAAa,EACb,KAAK,mBAAmB;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -24,6 +24,7 @@ collectValidatorTypes, } from "./schema/index.js";
|
|
|
24
24
|
export {
|
|
25
25
|
/** True for gx_select, gx_genomebuild, gx_drill_down — params with an options list. */
|
|
26
26
|
isSelectLikeParam, isBooleanParam, isSectionParam, isRepeatParam, isConditionalParam, } from "./schema/type-guards.js";
|
|
27
|
+
export { ParsedTool, HelpContent, XrefDict, Citation } from "./schema/parsed-tool.js";
|
|
27
28
|
export {
|
|
28
29
|
/** Union schema accepting any Galaxy workflow format (format2 or native). */
|
|
29
30
|
GalaxyWorkflowSchema,
|
|
@@ -37,6 +38,16 @@ normalizedNative, NormalizedNativeWorkflowSchema, NormalizedNativeStepSchema, To
|
|
|
37
38
|
injectConnectionsIntoState,
|
|
38
39
|
/** Strip ConnectedValue markers from state using parameter tree. */
|
|
39
40
|
stripConnectedValues,
|
|
41
|
+
/** Expand defaults into a tool state dict (port of Python fill_static_defaults). */
|
|
42
|
+
expandToolStateDefaults,
|
|
43
|
+
/** Build the minimal `tool_state` for a freshly inserted step. Today returns `{}`; designated extension point. */
|
|
44
|
+
buildMinimalToolState,
|
|
45
|
+
/** Build a native (.ga) step skeleton for an inserted tool. */
|
|
46
|
+
buildNativeStep,
|
|
47
|
+
/** Build a format2 (.gxwf.yml) step skeleton for an inserted tool. */
|
|
48
|
+
buildFormat2Step,
|
|
49
|
+
/** Build a step skeleton for an inserted tool; dispatches on format. */
|
|
50
|
+
buildStep,
|
|
40
51
|
/** Flatten a nested parameter path to a dot-separated string. */
|
|
41
52
|
flatStatePath, keysStartingWith,
|
|
42
53
|
/** Convert repeat block inputs to arrays. */
|
|
@@ -72,7 +83,7 @@ roundtripValidate,
|
|
|
72
83
|
/** Scan native workflow tool_state for legacy parameter encoding signals. */
|
|
73
84
|
scanToolState,
|
|
74
85
|
/** Clean a workflow — strip stale keys, decode legacy tool_state encoding. */
|
|
75
|
-
cleanWorkflow,
|
|
86
|
+
cleanWorkflow, workflowToMermaid,
|
|
76
87
|
/** Detect whether a workflow dict is native (.ga) or format2 (.gxwf.yml). */
|
|
77
88
|
detectFormat,
|
|
78
89
|
/** Format-aware workflow serializer (JSON/YAML, configurable indent and newline). */
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO;AACL,0FAA0F;AAC1F,gBAAgB;AAEhB,4CAA4C;AAC5C,qBAAqB;AACrB,wEAAwE;AACxE,yBAAyB;AACzB,6DAA6D;AAC7D,wBAAwB;AACxB,wEAAwE;AACxE,yBAAyB;AACzB,6DAA6D;AAC7D,wBAAwB;AACxB,gEAAgE;AAChE,qBAAqB;AACrB,gEAAgE;AAChE,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-parameter-type default emission.
|
|
3
|
+
*
|
|
4
|
+
* Port of scalar branches of `galaxy.tool_util.parameters.convert._fill_default_for`.
|
|
5
|
+
* Container types (conditional, repeat, section) are handled by the walker in
|
|
6
|
+
* `workflow/fill-defaults.ts`, not here.
|
|
7
|
+
*/
|
|
8
|
+
import type { ToolParameterModel } from "./bundle-types.js";
|
|
9
|
+
/** Sentinel: return from scalarParameterDefault to leave the key absent. */
|
|
10
|
+
export declare const NO_DEFAULT: unique symbol;
|
|
11
|
+
/**
|
|
12
|
+
* Return the default value to emit for a scalar (leaf) parameter when the key
|
|
13
|
+
* is absent from tool state, or NO_DEFAULT to leave the key absent.
|
|
14
|
+
*
|
|
15
|
+
* Mirrors `_fill_default_for` scalar branches in convert.py. Container types
|
|
16
|
+
* (gx_conditional, gx_repeat, gx_section) are not handled here — they are
|
|
17
|
+
* the walker's concern. CWL parameter types fall through to NO_DEFAULT.
|
|
18
|
+
*
|
|
19
|
+
* Dynamic-options selects (`options === null`) return NO_DEFAULT; the value
|
|
20
|
+
* is resolved at runtime.
|
|
21
|
+
*
|
|
22
|
+
* Never emits placeholder values (e.g. RuntimeValue) for data / data_column /
|
|
23
|
+
* data_collection-nonoptional / baseurl / color / directory_uri / group_tag /
|
|
24
|
+
* rules — those keys stay absent so the caller wires them explicitly, rather
|
|
25
|
+
* than mimicking the Galaxy UI's runtime-value scaffolding.
|
|
26
|
+
*/
|
|
27
|
+
export declare function scalarParameterDefault(param: ToolParameterModel): unknown | typeof NO_DEFAULT;
|
|
28
|
+
/**
|
|
29
|
+
* Text-null coercion: if a text parameter is present with `null` and is
|
|
30
|
+
* non-optional, coerce to default_value ?? "". This is the only place
|
|
31
|
+
* expand-defaults mutates a present key. Idempotent because "" stays "".
|
|
32
|
+
*
|
|
33
|
+
* Returns the coerced value, or the sentinel to signal "no coercion needed".
|
|
34
|
+
*/
|
|
35
|
+
export declare function coerceTextNullIfNeeded(param: ToolParameterModel, value: unknown): unknown | typeof NO_DEFAULT;
|
|
36
|
+
//# sourceMappingURL=parameter-defaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parameter-defaults.d.ts","sourceRoot":"","sources":["../../src/schema/parameter-defaults.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAIV,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAE3B,4EAA4E;AAC5E,eAAO,MAAM,UAAU,EAAE,OAAO,MAA6B,CAAC;AA4C9D;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,GAAG,OAAO,UAAU,CAuC7F;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,kBAAkB,EACzB,KAAK,EAAE,OAAO,GACb,OAAO,GAAG,OAAO,UAAU,CAK7B"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-parameter-type default emission.
|
|
3
|
+
*
|
|
4
|
+
* Port of scalar branches of `galaxy.tool_util.parameters.convert._fill_default_for`.
|
|
5
|
+
* Container types (conditional, repeat, section) are handled by the walker in
|
|
6
|
+
* `workflow/fill-defaults.ts`, not here.
|
|
7
|
+
*/
|
|
8
|
+
/** Sentinel: return from scalarParameterDefault to leave the key absent. */
|
|
9
|
+
export const NO_DEFAULT = Symbol("NO_DEFAULT");
|
|
10
|
+
/**
|
|
11
|
+
* First selected option value (single-select), else first option when required,
|
|
12
|
+
* else null. Mirrors `SelectParameterModel.default_value` in Python.
|
|
13
|
+
*/
|
|
14
|
+
function selectDefaultSingle(param) {
|
|
15
|
+
if (!param.options || param.options.length === 0)
|
|
16
|
+
return null;
|
|
17
|
+
for (const opt of param.options) {
|
|
18
|
+
if (opt.selected)
|
|
19
|
+
return opt.value;
|
|
20
|
+
}
|
|
21
|
+
if (!param.optional)
|
|
22
|
+
return param.options[0].value;
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
/** Selected option values (multi-select). Mirrors `default_values` in Python. */
|
|
26
|
+
function selectDefaultMultiple(param) {
|
|
27
|
+
if (!param.options)
|
|
28
|
+
return null;
|
|
29
|
+
return param.options.filter((o) => o.selected).map((o) => o.value);
|
|
30
|
+
}
|
|
31
|
+
/** Walk drill-down option tree collecting values of selected nodes (any depth). */
|
|
32
|
+
function selectedDrillDownOptions(options) {
|
|
33
|
+
const out = [];
|
|
34
|
+
const walk = (opts) => {
|
|
35
|
+
for (const opt of opts) {
|
|
36
|
+
if (opt.selected && opt.value)
|
|
37
|
+
out.push(opt.value);
|
|
38
|
+
if (opt.options && opt.options.length > 0)
|
|
39
|
+
walk(opt.options);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
walk(options);
|
|
43
|
+
return out;
|
|
44
|
+
}
|
|
45
|
+
function drillDownDefaultSingle(param) {
|
|
46
|
+
const selected = selectedDrillDownOptions(param.options);
|
|
47
|
+
return selected.length > 0 ? selected[0] : null;
|
|
48
|
+
}
|
|
49
|
+
function drillDownDefaultMultiple(param) {
|
|
50
|
+
if (!param.options || param.options.length === 0)
|
|
51
|
+
return null;
|
|
52
|
+
return selectedDrillDownOptions(param.options);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Return the default value to emit for a scalar (leaf) parameter when the key
|
|
56
|
+
* is absent from tool state, or NO_DEFAULT to leave the key absent.
|
|
57
|
+
*
|
|
58
|
+
* Mirrors `_fill_default_for` scalar branches in convert.py. Container types
|
|
59
|
+
* (gx_conditional, gx_repeat, gx_section) are not handled here — they are
|
|
60
|
+
* the walker's concern. CWL parameter types fall through to NO_DEFAULT.
|
|
61
|
+
*
|
|
62
|
+
* Dynamic-options selects (`options === null`) return NO_DEFAULT; the value
|
|
63
|
+
* is resolved at runtime.
|
|
64
|
+
*
|
|
65
|
+
* Never emits placeholder values (e.g. RuntimeValue) for data / data_column /
|
|
66
|
+
* data_collection-nonoptional / baseurl / color / directory_uri / group_tag /
|
|
67
|
+
* rules — those keys stay absent so the caller wires them explicitly, rather
|
|
68
|
+
* than mimicking the Galaxy UI's runtime-value scaffolding.
|
|
69
|
+
*/
|
|
70
|
+
export function scalarParameterDefault(param) {
|
|
71
|
+
switch (param.parameter_type) {
|
|
72
|
+
case "gx_boolean":
|
|
73
|
+
// TS schema types value as non-nullable boolean; Python tolerates None and
|
|
74
|
+
// coerces via `value or False` (convert.py:348).
|
|
75
|
+
return param.value;
|
|
76
|
+
case "gx_integer":
|
|
77
|
+
case "gx_float":
|
|
78
|
+
case "gx_hidden":
|
|
79
|
+
return param.value;
|
|
80
|
+
case "gx_genomebuild":
|
|
81
|
+
return param.optional ? null : NO_DEFAULT;
|
|
82
|
+
case "gx_select": {
|
|
83
|
+
if (param.options === null)
|
|
84
|
+
return NO_DEFAULT; // dynamic
|
|
85
|
+
if (param.multiple) {
|
|
86
|
+
const values = selectDefaultMultiple(param);
|
|
87
|
+
return values && values.length > 0 ? values : null;
|
|
88
|
+
}
|
|
89
|
+
return selectDefaultSingle(param);
|
|
90
|
+
}
|
|
91
|
+
case "gx_drill_down": {
|
|
92
|
+
if (param.multiple) {
|
|
93
|
+
const opts = drillDownDefaultMultiple(param);
|
|
94
|
+
return opts !== null ? opts : NO_DEFAULT;
|
|
95
|
+
}
|
|
96
|
+
const opt = drillDownDefaultSingle(param);
|
|
97
|
+
return opt !== null ? opt : NO_DEFAULT;
|
|
98
|
+
}
|
|
99
|
+
case "gx_data_collection":
|
|
100
|
+
return param.optional ? null : NO_DEFAULT;
|
|
101
|
+
case "gx_text":
|
|
102
|
+
if (!param.optional)
|
|
103
|
+
return param.value ?? "";
|
|
104
|
+
return param.value;
|
|
105
|
+
default:
|
|
106
|
+
// gx_data, gx_data_column, gx_baseurl, gx_color, gx_directory_uri,
|
|
107
|
+
// gx_group_tag, gx_rules, cwl_*, and containers (which shouldn't reach
|
|
108
|
+
// here via the walker leaf callback) all fall through.
|
|
109
|
+
return NO_DEFAULT;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Text-null coercion: if a text parameter is present with `null` and is
|
|
114
|
+
* non-optional, coerce to default_value ?? "". This is the only place
|
|
115
|
+
* expand-defaults mutates a present key. Idempotent because "" stays "".
|
|
116
|
+
*
|
|
117
|
+
* Returns the coerced value, or the sentinel to signal "no coercion needed".
|
|
118
|
+
*/
|
|
119
|
+
export function coerceTextNullIfNeeded(param, value) {
|
|
120
|
+
if (param.parameter_type !== "gx_text")
|
|
121
|
+
return NO_DEFAULT;
|
|
122
|
+
if (value !== null)
|
|
123
|
+
return NO_DEFAULT;
|
|
124
|
+
if (param.optional)
|
|
125
|
+
return NO_DEFAULT;
|
|
126
|
+
return param.value ?? "";
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=parameter-defaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parameter-defaults.js","sourceRoot":"","sources":["../../src/schema/parameter-defaults.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import * as S from "effect/Schema";
|
|
2
|
+
import type { ToolParameterModel } from "./bundle-types.js";
|
|
3
|
+
/** Tool help content with format (rst, markdown, etc.) and rendered content. */
|
|
4
|
+
export declare const HelpContent: S.Struct<{
|
|
5
|
+
format: typeof S.String;
|
|
6
|
+
content: typeof S.String;
|
|
7
|
+
}>;
|
|
8
|
+
/** External reference (e.g. bio.tools ID, bioconductor package). */
|
|
9
|
+
export declare const XrefDict: S.Struct<{
|
|
10
|
+
value: typeof S.String;
|
|
11
|
+
type: typeof S.String;
|
|
12
|
+
}>;
|
|
13
|
+
/** Tool citation entry (bibtex, doi, etc.). */
|
|
14
|
+
export declare const Citation: S.Struct<{
|
|
15
|
+
type: typeof S.String;
|
|
16
|
+
content: typeof S.String;
|
|
17
|
+
}>;
|
|
18
|
+
/**
|
|
19
|
+
* Effect Schema for parsed Galaxy tool metadata as returned by the ToolShed TRS API
|
|
20
|
+
* or Galaxy's /api/tools/:id/parsed endpoint.
|
|
21
|
+
*/
|
|
22
|
+
export declare const ParsedTool: S.Struct<{
|
|
23
|
+
id: typeof S.String;
|
|
24
|
+
version: S.NullOr<typeof S.String>;
|
|
25
|
+
name: typeof S.String;
|
|
26
|
+
description: S.transform<S.NullOr<typeof S.String>, S.NullOr<typeof S.String>>;
|
|
27
|
+
inputs: S.Array$<S.Schema<ToolParameterModel, ToolParameterModel, never>>;
|
|
28
|
+
outputs: S.Array$<typeof S.Unknown>;
|
|
29
|
+
citations: S.Array$<S.Struct<{
|
|
30
|
+
type: typeof S.String;
|
|
31
|
+
content: typeof S.String;
|
|
32
|
+
}>>;
|
|
33
|
+
license: S.NullOr<typeof S.String>;
|
|
34
|
+
profile: S.NullOr<typeof S.String>;
|
|
35
|
+
edam_operations: S.Array$<typeof S.String>;
|
|
36
|
+
edam_topics: S.Array$<typeof S.String>;
|
|
37
|
+
xrefs: S.Array$<S.Struct<{
|
|
38
|
+
value: typeof S.String;
|
|
39
|
+
type: typeof S.String;
|
|
40
|
+
}>>;
|
|
41
|
+
help: S.optional<S.Union<[S.Struct<{
|
|
42
|
+
format: typeof S.String;
|
|
43
|
+
content: typeof S.String;
|
|
44
|
+
}>, typeof S.Null]>>;
|
|
45
|
+
}>;
|
|
46
|
+
export type ParsedTool = S.Schema.Type<typeof ParsedTool>;
|
|
47
|
+
//# sourceMappingURL=parsed-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parsed-tool.d.ts","sourceRoot":"","sources":["../../src/schema/parsed-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,eAAe,CAAC;AAEnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,gFAAgF;AAChF,eAAO,MAAM,WAAW;;;EAGtB,CAAC;AAEH,oEAAoE;AACpE,eAAO,MAAM,QAAQ;;;EAGnB,CAAC;AAEH,+CAA+C;AAC/C,eAAO,MAAM,QAAQ;;;EAGnB,CAAC;AAoBH;;;GAGG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;EAcrB,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import * as S from "effect/Schema";
|
|
2
|
+
/** Tool help content with format (rst, markdown, etc.) and rendered content. */
|
|
3
|
+
export const HelpContent = S.Struct({
|
|
4
|
+
format: S.String,
|
|
5
|
+
content: S.String,
|
|
6
|
+
});
|
|
7
|
+
/** External reference (e.g. bio.tools ID, bioconductor package). */
|
|
8
|
+
export const XrefDict = S.Struct({
|
|
9
|
+
value: S.String,
|
|
10
|
+
type: S.String,
|
|
11
|
+
});
|
|
12
|
+
/** Tool citation entry (bibtex, doi, etc.). */
|
|
13
|
+
export const Citation = S.Struct({
|
|
14
|
+
type: S.String,
|
|
15
|
+
content: S.String,
|
|
16
|
+
});
|
|
17
|
+
/** Normalize empty string to null for description field. */
|
|
18
|
+
const NullableDescription = S.transform(S.NullOr(S.String), S.NullOr(S.String), {
|
|
19
|
+
decode: (val) => (val === "" ? null : val),
|
|
20
|
+
encode: (val) => val,
|
|
21
|
+
});
|
|
22
|
+
/**
|
|
23
|
+
* Trusted-peer schema for a single tool input parameter. Effect Schema does
|
|
24
|
+
* not describe the full `ToolParameterModel` discriminated union (that lives
|
|
25
|
+
* as plain TS interfaces in `bundle-types.ts`), so we use a permissive
|
|
26
|
+
* object-shaped guard here and supply the TS type via the generic parameter.
|
|
27
|
+
* `ParsedTool` payloads come from Python's `model_dump()` — already trusted.
|
|
28
|
+
*/
|
|
29
|
+
const ToolParameterModelSchema = S.declare((input) => typeof input === "object" && input !== null && !Array.isArray(input));
|
|
30
|
+
/**
|
|
31
|
+
* Effect Schema for parsed Galaxy tool metadata as returned by the ToolShed TRS API
|
|
32
|
+
* or Galaxy's /api/tools/:id/parsed endpoint.
|
|
33
|
+
*/
|
|
34
|
+
export const ParsedTool = S.Struct({
|
|
35
|
+
id: S.String,
|
|
36
|
+
version: S.NullOr(S.String),
|
|
37
|
+
name: S.String,
|
|
38
|
+
description: NullableDescription,
|
|
39
|
+
inputs: S.Array(ToolParameterModelSchema),
|
|
40
|
+
outputs: S.Array(S.Unknown),
|
|
41
|
+
citations: S.Array(Citation),
|
|
42
|
+
license: S.NullOr(S.String),
|
|
43
|
+
profile: S.NullOr(S.String),
|
|
44
|
+
edam_operations: S.Array(S.String),
|
|
45
|
+
edam_topics: S.Array(S.String),
|
|
46
|
+
xrefs: S.Array(XrefDict),
|
|
47
|
+
help: S.optional(S.Union(HelpContent, S.Null)),
|
|
48
|
+
});
|
|
49
|
+
//# sourceMappingURL=parsed-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parsed-tool.js","sourceRoot":"","sources":["../../src/schema/parsed-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,eAAe,CAAC;AAInC,gFAAgF;AAChF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM;IAChB,OAAO,EAAE,CAAC,CAAC,MAAM;CAClB,CAAC,CAAC;AAEH,oEAAoE;AACpE,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,KAAK,EAAE,CAAC,CAAC,MAAM;IACf,IAAI,EAAE,CAAC,CAAC,MAAM;CACf,CAAC,CAAC;AAEH,+CAA+C;AAC/C,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC,MAAM;IACd,OAAO,EAAE,CAAC,CAAC,MAAM;CAClB,CAAC,CAAC;AAEH,4DAA4D;AAC5D,MAAM,mBAAmB,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;IAC9E,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IAC1C,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG;CACrB,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,wBAAwB,GAAiC,CAAC,CAAC,OAAO,CACtE,CAAC,KAAc,EAA+B,EAAE,CAC9C,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CACvE,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,EAAE,EAAE,CAAC,CAAC,MAAM;IACZ,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM;IACd,WAAW,EAAE,mBAAmB;IAChC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC;IACzC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;IAC3B,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAC3B,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IAClC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;IACxB,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;CAC/C,CAAC,CAAC"}
|
|
@@ -1,13 +1,20 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ParsedTool } from "./schema/parsed-tool.js";
|
|
2
2
|
import { type ToolStateDiagnostic } from "./workflow/stateful-validate.js";
|
|
3
3
|
export type { ToolStateDiagnostic };
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* Minimal lookup surface required by {@link ToolStateValidator}. Decouples
|
|
6
|
+
* schema from core — `ToolInfoService` satisfies it structurally.
|
|
7
|
+
*/
|
|
8
|
+
export interface ToolInfoLookup {
|
|
9
|
+
getToolInfo(toolId: string, toolVersion?: string | null): Promise<ParsedTool | null>;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* High-level bridge: given a tool-info lookup, validate tool_state for a
|
|
13
|
+
* single workflow step without exposing Effect internals to callers.
|
|
7
14
|
*/
|
|
8
15
|
export declare class ToolStateValidator {
|
|
9
16
|
private readonly toolInfo;
|
|
10
|
-
constructor(toolInfo:
|
|
17
|
+
constructor(toolInfo: ToolInfoLookup);
|
|
11
18
|
validateNativeStep(toolId: string, toolVersion: string | null, toolState: Record<string, unknown>, inputConnections?: Record<string, unknown>): Promise<ToolStateDiagnostic[]>;
|
|
12
19
|
validateFormat2Step(toolId: string, toolVersion: string | null, format2State: Record<string, unknown>): Promise<ToolStateDiagnostic[]>;
|
|
13
20
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-state-validator.d.ts","sourceRoot":"","sources":["../src/tool-state-validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"tool-state-validator.d.ts","sourceRoot":"","sources":["../src/tool-state-validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAKL,KAAK,mBAAmB,EACzB,MAAM,iCAAiC,CAAC;AAIzC,YAAY,EAAE,mBAAmB,EAAE,CAAC;AAEpC;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;CACtF;AAED;;;GAGG;AACH,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,cAAc;IAE/C,kBAAkB,CACtB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,gBAAgB,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAC7C,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAe3B,mBAAmB,CACvB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACpC,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAejC;;;;;;;OAOG;IACG,yBAAyB,CAC7B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACpC,OAAO,CAAC,mBAAmB,EAAE,CAAC;CAMlC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ConversionValidationFailure, validateFormat2StepState, validateFormat2StepStateStrict, validateNativeStepState, } from "./workflow/stateful-validate.js";
|
|
2
2
|
/**
|
|
3
|
-
* High-level bridge: given a
|
|
4
|
-
*
|
|
3
|
+
* High-level bridge: given a tool-info lookup, validate tool_state for a
|
|
4
|
+
* single workflow step without exposing Effect internals to callers.
|
|
5
5
|
*/
|
|
6
6
|
export class ToolStateValidator {
|
|
7
7
|
toolInfo;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-state-validator.js","sourceRoot":"","sources":["../src/tool-state-validator.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,8BAA8B,EAC9B,uBAAuB,GAExB,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-state-validator.js","sourceRoot":"","sources":["../src/tool-state-validator.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,8BAA8B,EAC9B,uBAAuB,GAExB,MAAM,iCAAiC,CAAC;AAczC;;;GAGG;AACH,MAAM,OAAO,kBAAkB;IACA;IAA7B,YAA6B,QAAwB;QAAxB,aAAQ,GAAR,QAAQ,CAAgB;IAAG,CAAC;IAEzD,KAAK,CAAC,kBAAkB,CACtB,MAAc,EACd,WAA0B,EAC1B,SAAkC,EAClC,mBAA4C,EAAE;QAE9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACtF,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,MAAM,CAAC,MAA8B,CAAC;QACrD,IAAI,CAAC;YACH,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAC7D,OAAO,EAAE,CAAC;QACZ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,2BAA2B,EAAE,CAAC;gBAC7C,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAgB,EAAE,CAAC,CAAC,CAAC;YACzF,CAAC;YACD,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,MAAc,EACd,WAA0B,EAC1B,YAAqC;QAErC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACtF,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,MAAM,CAAC,MAA8B,CAAC;QACrD,IAAI,CAAC;YACH,wBAAwB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YAC/C,OAAO,EAAE,CAAC;QACZ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,2BAA2B,EAAE,CAAC;gBAC7C,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAgB,EAAE,CAAC,CAAC,CAAC;YACzF,CAAC;YACD,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,yBAAyB,CAC7B,MAAc,EACd,WAA0B,EAC1B,YAAqC;QAErC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACtF,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,MAAM,CAAC,MAA8B,CAAC;QACrD,OAAO,8BAA8B,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC9D,CAAC;CACF"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Expand defaults into a tool state dict.
|
|
3
|
+
*
|
|
4
|
+
* Port of `galaxy.tool_util.parameters.convert.fill_static_defaults` (partial=True).
|
|
5
|
+
* Pure, idempotent. Reads currentState so conditional branches honor the user's
|
|
6
|
+
* active `test_value`, repeats preserve existing instances, and sections recurse
|
|
7
|
+
* into present subdicts. Does not validate. Does not pre-fill data /
|
|
8
|
+
* data_collection (non-optional) / data_column / baseurl / color / directory_uri /
|
|
9
|
+
* group_tag / rules inputs — the user must wire those explicitly.
|
|
10
|
+
*
|
|
11
|
+
* Designed for user-invoked "expand defaults" actions and scripting use cases
|
|
12
|
+
* where an explicit dump of defaults is wanted. Not used by the step-skeleton
|
|
13
|
+
* generator (which builds minimal state via `buildMinimalToolState`).
|
|
14
|
+
*
|
|
15
|
+
* Divergence from Python: when a conditional's `test_value` matches no `when`
|
|
16
|
+
* and no branch is flagged `is_default_when`, Python raises. Here, we stay
|
|
17
|
+
* lenient via the existing walker semantics — the test parameter still gets
|
|
18
|
+
* its default filled, but no branch defaults are emitted. This avoids crashing
|
|
19
|
+
* on corrupt/partially-authored workflows, which matters for a user-invoked
|
|
20
|
+
* UI action.
|
|
21
|
+
*/
|
|
22
|
+
import type { ToolParameterModel } from "../schema/bundle-types.js";
|
|
23
|
+
/**
|
|
24
|
+
* Return a new tool state dict with defaults filled in for any parameter
|
|
25
|
+
* absent from `currentState`. Does not validate.
|
|
26
|
+
*
|
|
27
|
+
* Idempotent: `expandToolStateDefaults(t, expandToolStateDefaults(t, s))`
|
|
28
|
+
* deep-equals `expandToolStateDefaults(t, s)`.
|
|
29
|
+
*
|
|
30
|
+
* Honors the user's active conditional `test_value` (only the chosen branch's
|
|
31
|
+
* defaults are filled). Existing repeat instances are preserved and recursed
|
|
32
|
+
* into; empty repeats are padded to `repeat.min`. Sections present in state
|
|
33
|
+
* are recursed; absent sections are created as `{}` and filled.
|
|
34
|
+
*
|
|
35
|
+
* Unknown keys (including bookkeeping like `__current_case__`) are preserved
|
|
36
|
+
* in the output.
|
|
37
|
+
*/
|
|
38
|
+
export declare function expandToolStateDefaults(toolInputs: ToolParameterModel[], currentState: Record<string, unknown>): Record<string, unknown>;
|
|
39
|
+
//# sourceMappingURL=fill-defaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fill-defaults.d.ts","sourceRoot":"","sources":["../../src/workflow/fill-defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAQpE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,kBAAkB,EAAE,EAChC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACpC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiBzB"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Expand defaults into a tool state dict.
|
|
3
|
+
*
|
|
4
|
+
* Port of `galaxy.tool_util.parameters.convert.fill_static_defaults` (partial=True).
|
|
5
|
+
* Pure, idempotent. Reads currentState so conditional branches honor the user's
|
|
6
|
+
* active `test_value`, repeats preserve existing instances, and sections recurse
|
|
7
|
+
* into present subdicts. Does not validate. Does not pre-fill data /
|
|
8
|
+
* data_collection (non-optional) / data_column / baseurl / color / directory_uri /
|
|
9
|
+
* group_tag / rules inputs — the user must wire those explicitly.
|
|
10
|
+
*
|
|
11
|
+
* Designed for user-invoked "expand defaults" actions and scripting use cases
|
|
12
|
+
* where an explicit dump of defaults is wanted. Not used by the step-skeleton
|
|
13
|
+
* generator (which builds minimal state via `buildMinimalToolState`).
|
|
14
|
+
*
|
|
15
|
+
* Divergence from Python: when a conditional's `test_value` matches no `when`
|
|
16
|
+
* and no branch is flagged `is_default_when`, Python raises. Here, we stay
|
|
17
|
+
* lenient via the existing walker semantics — the test parameter still gets
|
|
18
|
+
* its default filled, but no branch defaults are emitted. This avoids crashing
|
|
19
|
+
* on corrupt/partially-authored workflows, which matters for a user-invoked
|
|
20
|
+
* UI action.
|
|
21
|
+
*/
|
|
22
|
+
import { NO_DEFAULT, coerceTextNullIfNeeded, scalarParameterDefault, } from "../schema/parameter-defaults.js";
|
|
23
|
+
import { SKIP_VALUE, walkNativeState } from "./walker.js";
|
|
24
|
+
/**
|
|
25
|
+
* Return a new tool state dict with defaults filled in for any parameter
|
|
26
|
+
* absent from `currentState`. Does not validate.
|
|
27
|
+
*
|
|
28
|
+
* Idempotent: `expandToolStateDefaults(t, expandToolStateDefaults(t, s))`
|
|
29
|
+
* deep-equals `expandToolStateDefaults(t, s)`.
|
|
30
|
+
*
|
|
31
|
+
* Honors the user's active conditional `test_value` (only the chosen branch's
|
|
32
|
+
* defaults are filled). Existing repeat instances are preserved and recursed
|
|
33
|
+
* into; empty repeats are padded to `repeat.min`. Sections present in state
|
|
34
|
+
* are recursed; absent sections are created as `{}` and filled.
|
|
35
|
+
*
|
|
36
|
+
* Unknown keys (including bookkeeping like `__current_case__`) are preserved
|
|
37
|
+
* in the output.
|
|
38
|
+
*/
|
|
39
|
+
export function expandToolStateDefaults(toolInputs, currentState) {
|
|
40
|
+
return walkNativeState({}, toolInputs, currentState, (param, value) => {
|
|
41
|
+
if (value === undefined) {
|
|
42
|
+
const def = scalarParameterDefault(param);
|
|
43
|
+
if (def === NO_DEFAULT)
|
|
44
|
+
return SKIP_VALUE;
|
|
45
|
+
return def;
|
|
46
|
+
}
|
|
47
|
+
const coerced = coerceTextNullIfNeeded(param, value);
|
|
48
|
+
if (coerced !== NO_DEFAULT)
|
|
49
|
+
return coerced;
|
|
50
|
+
return value;
|
|
51
|
+
}, { preserveUnknownKeys: true, repeatMinPad: true });
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=fill-defaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fill-defaults.js","sourceRoot":"","sources":["../../src/workflow/fill-defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,EACL,UAAU,EACV,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE1D;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,uBAAuB,CACrC,UAAgC,EAChC,YAAqC;IAErC,OAAO,eAAe,CACpB,EAAE,EACF,UAAU,EACV,YAAY,EACZ,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACf,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,GAAG,KAAK,UAAU;gBAAE,OAAO,UAAU,CAAC;YAC1C,OAAO,GAAG,CAAC;QACb,CAAC;QACD,MAAM,OAAO,GAAG,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACrD,IAAI,OAAO,KAAK,UAAU;YAAE,OAAO,OAAO,CAAC;QAC3C,OAAO,KAAK,CAAC;IACf,CAAC,EACD,EAAE,mBAAmB,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAClD,CAAC;AACJ,CAAC"}
|
package/dist/workflow/index.d.ts
CHANGED
|
@@ -3,6 +3,9 @@ export { type GalaxyWorkflow, GalaxyWorkflowSchema, type NativeGalaxyWorkflow, N
|
|
|
3
3
|
export { normalizedFormat2, NormalizedFormat2WorkflowSchema, NormalizedFormat2StepSchema, NormalizedFormat2InputSchema, NormalizedFormat2OutputSchema, NormalizedFormat2StepInputSchema, NormalizedFormat2StepOutputSchema, type NormalizedFormat2Workflow, type NormalizedFormat2Step, type NormalizedFormat2Input, type NormalizedFormat2Output, type NormalizedFormat2StepInput, type NormalizedFormat2StepOutput, normalizedNative, NormalizedNativeWorkflowSchema, NormalizedNativeStepSchema, ToolReferenceSchema, type NormalizedNativeWorkflow, type NormalizedNativeStep, type ToolReference, toFormat2, type ToFormat2Options, type Format2StateOverride, toNative, type ToNativeOptions, toFormat2Stateful, toNativeStateful, type StepConversionStatus, type StepConversionFailureClass, type StatefulExportResult, type StatefulNativeResult, type ToolInputsResolver, ensureFormat2, ensureNative, expandedFormat2, expandedNative, isTrsUrl, MAX_EXPANSION_DEPTH, type ExpandedFormat2Workflow, type ExpandedFormat2Step, type ExpandedNativeWorkflow, type ExpandedNativeStep, type RefResolver, type ExpansionOptions, flattenCommentData, unflattenCommentData, resolveSourceReference, UNLABELED_INPUT_PREFIX, UNLABELED_STEP_PREFIX, } from "./normalized/index.js";
|
|
4
4
|
export { flatStatePath, keysStartingWith, repeatInputsToArray, selectWhichWhen, } from "./walk-helpers.js";
|
|
5
5
|
export { injectConnectionsIntoState, stripConnectedValues } from "./state-merge.js";
|
|
6
|
+
export { expandToolStateDefaults } from "./fill-defaults.js";
|
|
7
|
+
export { buildMinimalToolState } from "./minimal-tool-state.js";
|
|
8
|
+
export { buildNativeStep, buildFormat2Step, buildStep, type StepSkeletonInputs, } from "./step-skeleton.js";
|
|
6
9
|
export { scanForReplacements, type ReplacementClassification } from "./replacement-scan.js";
|
|
7
10
|
export { scanToolState, type LegacyEncodingClassification, type LegacyEncodingHit, type LegacyEncodingScanResult, } from "./legacy-encoding.js";
|
|
8
11
|
export { walkNativeState, walkFormat2State, SKIP_VALUE, UnknownKeyError, type LeafCallback, type WalkNativeOptions, } from "./walker.js";
|
|
@@ -12,6 +15,7 @@ export { ConversionValidationFailure, validateNativeStepState, validateFormat2St
|
|
|
12
15
|
export { findParamAtPath, type ParamNavigationResult } from "./param-navigation.js";
|
|
13
16
|
export { roundtripValidate, type RoundtripResult, type RoundtripStrictOptions, type StepRoundtripResult, type BenignArtifactKind, type RoundtripFailureClass, } from "./roundtrip.js";
|
|
14
17
|
export { cleanWorkflow, type CleanWorkflowOptions, type CleanWorkflowResult } from "./clean.js";
|
|
18
|
+
export { workflowToMermaid, type MermaidOptions } from "./mermaid.js";
|
|
15
19
|
export { detectFormat, type WorkflowFormat } from "./detect-format.js";
|
|
16
20
|
export { withClass, validateFormat2, validateFormat2Strict, validateNative, validateNativeStrict, validatorForFixture, } from "./validators.js";
|
|
17
21
|
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":"AACA,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,KAAK,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAGjG,OAAO,EACL,KAAK,cAAc,EACnB,oBAAoB,EACpB,KAAK,oBAAoB,EACzB,0BAA0B,GAC3B,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,iBAAiB,EACjB,+BAA+B,EAC/B,2BAA2B,EAC3B,4BAA4B,EAC5B,6BAA6B,EAC7B,gCAAgC,EAChC,iCAAiC,EACjC,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,EAChC,gBAAgB,EAChB,8BAA8B,EAC9B,0BAA0B,EAC1B,mBAAmB,EACnB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,SAAS,EACT,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,QAAQ,EACR,KAAK,eAAe,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,EAC/B,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,aAAa,EACb,YAAY,EACZ,eAAe,EACf,cAAc,EACd,QAAQ,EACR,mBAAmB,EACnB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAEpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,SAAS,EACT,KAAK,kBAAkB,GACxB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,mBAAmB,EAAE,KAAK,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAE5F,OAAO,EACL,aAAa,EACb,KAAK,4BAA4B,EACjC,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,GAC9B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,KAAK,YAAY,EACjB,KAAK,iBAAiB,GACvB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,KAAK,qBAAqB,GAC3B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,KAAK,cAAc,EACnB,KAAK,kBAAkB,GACxB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,EACvB,wBAAwB,EACxB,8BAA8B,EAC9B,KAAK,mBAAmB,EACxB,KAAK,eAAe,GACrB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEpF,OAAO,EACL,iBAAiB,EACjB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,GAC3B,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEhG,OAAO,EAAE,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAEtE,OAAO,EAAE,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEvE,OAAO,EACL,SAAS,EACT,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,WAAW,EACX,WAAW,EACX,MAAM,EACN,WAAW,EACX,UAAU,EACV,UAAU,EACV,WAAW,EACX,YAAY,EACZ,wBAAwB,EACxB,uBAAuB,EACvB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,WAAW,GACjB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,sBAAsB,EACtB,iBAAiB,EACjB,KAAK,WAAW,GACjB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,KAAK,UAAU,EACf,aAAa,EACb,KAAK,oBAAoB,EACzB,KAAK,eAAe,EAEpB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,EAE/B,KAAK,aAAa,EAClB,KAAK,aAAa,EAElB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EAEtB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAE1B,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EAEnB,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,aAAa,EAElB,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,eAAe,EACf,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,EACtB,6BAA6B,EAC7B,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,EACnB,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,EACrB,2BAA2B,EAC3B,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC"}
|
package/dist/workflow/index.js
CHANGED
|
@@ -6,6 +6,9 @@ export { GalaxyWorkflowSchema, NativeGalaxyWorkflowSchema, } from "./raw/index.j
|
|
|
6
6
|
export { normalizedFormat2, NormalizedFormat2WorkflowSchema, NormalizedFormat2StepSchema, NormalizedFormat2InputSchema, NormalizedFormat2OutputSchema, NormalizedFormat2StepInputSchema, NormalizedFormat2StepOutputSchema, normalizedNative, NormalizedNativeWorkflowSchema, NormalizedNativeStepSchema, ToolReferenceSchema, toFormat2, toNative, toFormat2Stateful, toNativeStateful, ensureFormat2, ensureNative, expandedFormat2, expandedNative, isTrsUrl, MAX_EXPANSION_DEPTH, flattenCommentData, unflattenCommentData, resolveSourceReference, UNLABELED_INPUT_PREFIX, UNLABELED_STEP_PREFIX, } from "./normalized/index.js";
|
|
7
7
|
export { flatStatePath, keysStartingWith, repeatInputsToArray, selectWhichWhen, } from "./walk-helpers.js";
|
|
8
8
|
export { injectConnectionsIntoState, stripConnectedValues } from "./state-merge.js";
|
|
9
|
+
export { expandToolStateDefaults } from "./fill-defaults.js";
|
|
10
|
+
export { buildMinimalToolState } from "./minimal-tool-state.js";
|
|
11
|
+
export { buildNativeStep, buildFormat2Step, buildStep, } from "./step-skeleton.js";
|
|
9
12
|
export { scanForReplacements } from "./replacement-scan.js";
|
|
10
13
|
export { scanToolState, } from "./legacy-encoding.js";
|
|
11
14
|
export { walkNativeState, walkFormat2State, SKIP_VALUE, UnknownKeyError, } from "./walker.js";
|
|
@@ -15,6 +18,7 @@ export { ConversionValidationFailure, validateNativeStepState, validateFormat2St
|
|
|
15
18
|
export { findParamAtPath } from "./param-navigation.js";
|
|
16
19
|
export { roundtripValidate, } from "./roundtrip.js";
|
|
17
20
|
export { cleanWorkflow } from "./clean.js";
|
|
21
|
+
export { workflowToMermaid } from "./mermaid.js";
|
|
18
22
|
export { detectFormat } from "./detect-format.js";
|
|
19
23
|
export { withClass, validateFormat2, validateFormat2Strict, validateNative, validateNativeStrict, validatorForFixture, } from "./validators.js";
|
|
20
24
|
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":"AAAA,qCAAqC;AACrC,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAiC,MAAM,gBAAgB,CAAC;AAEjG,wCAAwC;AACxC,OAAO,EAEL,oBAAoB,EAEpB,0BAA0B,GAC3B,MAAM,gBAAgB,CAAC;AAExB,0CAA0C;AAC1C,OAAO,EACL,iBAAiB,EACjB,+BAA+B,EAC/B,2BAA2B,EAC3B,4BAA4B,EAC5B,6BAA6B,EAC7B,gCAAgC,EAChC,iCAAiC,EAOjC,gBAAgB,EAChB,8BAA8B,EAC9B,0BAA0B,EAC1B,mBAAmB,EAInB,SAAS,EAGT,QAAQ,EAER,iBAAiB,EACjB,gBAAgB,EAMhB,aAAa,EACb,YAAY,EACZ,eAAe,EACf,cAAc,EACd,QAAQ,EACR,mBAAmB,EAOnB,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAEpF,OAAO,EAAE,mBAAmB,EAAkC,MAAM,uBAAuB,CAAC;AAE5F,OAAO,EACL,aAAa,GAId,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,eAAe,GAGhB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,GAEpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,sBAAsB,EACtB,kBAAkB,GAGnB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,EACvB,wBAAwB,EACxB,8BAA8B,GAG/B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,eAAe,EAA8B,MAAM,uBAAuB,CAAC;AAEpF,OAAO,EACL,iBAAiB,GAMlB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,aAAa,EAAuD,MAAM,YAAY,CAAC;AAEhG,OAAO,EAAE,YAAY,EAAuB,MAAM,oBAAoB,CAAC;AAEvE,OAAO,EACL,SAAS,EACT,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,WAAW,EACX,WAAW,EACX,MAAM,EACN,WAAW,EACX,UAAU,EACV,UAAU,EACV,WAAW,EACX,YAAY,EACZ,wBAAwB,EACxB,uBAAuB,GAKxB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,sBAAsB,EACtB,iBAAiB,GAElB,MAAM,oBAAoB,CAAC;AAE5B,8DAA8D;AAC9D,OAAO,EAEL,aAAa,EAiDb,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,eAAe,EACf,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,EACtB,6BAA6B,EAC7B,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,EACnB,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,EACrB,2BAA2B,EAC3B,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/workflow/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build Mermaid flowchart diagrams from Galaxy workflows.
|
|
3
|
+
*
|
|
4
|
+
* Port of gxformat2/mermaid/_builder.py.
|
|
5
|
+
*/
|
|
6
|
+
import type { NormalizedFormat2Workflow } from "./normalized/format2.js";
|
|
7
|
+
export interface MermaidOptions {
|
|
8
|
+
comments?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare function workflowToMermaid(workflow: unknown | NormalizedFormat2Workflow, opts?: MermaidOptions): string;
|
|
11
|
+
//# sourceMappingURL=mermaid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mermaid.d.ts","sourceRoot":"","sources":["../../src/workflow/mermaid.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAyBzE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA+CD,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,OAAO,GAAG,yBAAyB,EAC7C,IAAI,GAAE,cAAmB,GACxB,MAAM,CA8FR"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build Mermaid flowchart diagrams from Galaxy workflows.
|
|
3
|
+
*
|
|
4
|
+
* Port of gxformat2/mermaid/_builder.py.
|
|
5
|
+
*/
|
|
6
|
+
import { ensureFormat2 } from "./normalized/ensure.js";
|
|
7
|
+
import { resolveSourceReference } from "./normalized/labels.js";
|
|
8
|
+
const SHAPE_INPUT = [">", "]"];
|
|
9
|
+
const SHAPE_PARAM = ["{{", "}}"];
|
|
10
|
+
const SHAPE_TOOL = ["[", "]"];
|
|
11
|
+
const SHAPE_SUBWORKFLOW = ["[[", "]]"];
|
|
12
|
+
const STEP_TYPE_SHAPES = {
|
|
13
|
+
data: SHAPE_INPUT,
|
|
14
|
+
collection: SHAPE_INPUT,
|
|
15
|
+
integer: SHAPE_PARAM,
|
|
16
|
+
float: SHAPE_PARAM,
|
|
17
|
+
text: SHAPE_PARAM,
|
|
18
|
+
boolean: SHAPE_PARAM,
|
|
19
|
+
color: SHAPE_PARAM,
|
|
20
|
+
input: SHAPE_INPUT,
|
|
21
|
+
tool: SHAPE_TOOL,
|
|
22
|
+
subworkflow: SHAPE_SUBWORKFLOW,
|
|
23
|
+
};
|
|
24
|
+
const MAIN_TS_PREFIX = "toolshed.g2.bx.psu.edu/repos/";
|
|
25
|
+
function sanitizeLabel(label) {
|
|
26
|
+
let out = label.replace(/"/g, "#quot;");
|
|
27
|
+
for (const ch of "()[]{}<>") {
|
|
28
|
+
out = out.replaceAll(ch, `#${ch.charCodeAt(0)};`);
|
|
29
|
+
}
|
|
30
|
+
return out;
|
|
31
|
+
}
|
|
32
|
+
function inputTypeStr(type) {
|
|
33
|
+
if (type == null)
|
|
34
|
+
return "input";
|
|
35
|
+
if (Array.isArray(type))
|
|
36
|
+
return type.length > 0 ? type[0] : "input";
|
|
37
|
+
return type;
|
|
38
|
+
}
|
|
39
|
+
function nodeLine(nodeId, label, shape) {
|
|
40
|
+
return `${nodeId}${shape[0]}"${label}"${shape[1]}`;
|
|
41
|
+
}
|
|
42
|
+
function collectFrames(commentsRaw) {
|
|
43
|
+
if (commentsRaw == null)
|
|
44
|
+
return [];
|
|
45
|
+
const entries = Array.isArray(commentsRaw)
|
|
46
|
+
? commentsRaw
|
|
47
|
+
: typeof commentsRaw === "object"
|
|
48
|
+
? Object.values(commentsRaw)
|
|
49
|
+
: [];
|
|
50
|
+
const frames = [];
|
|
51
|
+
for (const entry of entries) {
|
|
52
|
+
if (!entry || typeof entry !== "object")
|
|
53
|
+
continue;
|
|
54
|
+
const c = entry;
|
|
55
|
+
if (c.type !== "frame")
|
|
56
|
+
continue;
|
|
57
|
+
const contains = c.contains_steps;
|
|
58
|
+
if (!Array.isArray(contains) || contains.length === 0)
|
|
59
|
+
continue;
|
|
60
|
+
frames.push({
|
|
61
|
+
title: typeof c.title === "string" ? c.title : null,
|
|
62
|
+
containsSteps: contains.map((s) => String(s)),
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
return frames;
|
|
66
|
+
}
|
|
67
|
+
export function workflowToMermaid(workflow, opts = {}) {
|
|
68
|
+
const wf = typeof workflow === "object" &&
|
|
69
|
+
workflow !== null &&
|
|
70
|
+
workflow.class === "GalaxyWorkflow" &&
|
|
71
|
+
Array.isArray(workflow.inputs) &&
|
|
72
|
+
"unique_tools" in workflow
|
|
73
|
+
? workflow
|
|
74
|
+
: ensureFormat2(workflow);
|
|
75
|
+
const lines = ["graph LR"];
|
|
76
|
+
const inputIds = new Map();
|
|
77
|
+
const inputLines = new Map();
|
|
78
|
+
wf.inputs.forEach((inp, i) => {
|
|
79
|
+
const nodeId = `input_${i}`;
|
|
80
|
+
const inpLabel = inp.id || String(i);
|
|
81
|
+
inputIds.set(inpLabel, nodeId);
|
|
82
|
+
const label = sanitizeLabel(inpLabel);
|
|
83
|
+
const typeStr = inputTypeStr(inp.type);
|
|
84
|
+
const shape = STEP_TYPE_SHAPES[typeStr] ?? SHAPE_INPUT;
|
|
85
|
+
inputLines.set(inpLabel, nodeLine(nodeId, `${label}<br/><i>${typeStr}</i>`, shape));
|
|
86
|
+
});
|
|
87
|
+
const stepIds = new Map();
|
|
88
|
+
const stepLines = new Map();
|
|
89
|
+
wf.steps.forEach((step, i) => {
|
|
90
|
+
const nodeId = `step_${i}`;
|
|
91
|
+
const stepLabel = step.label || step.id;
|
|
92
|
+
stepIds.set(stepLabel, nodeId);
|
|
93
|
+
let toolId = step.tool_id ?? null;
|
|
94
|
+
if (toolId && toolId.startsWith(MAIN_TS_PREFIX)) {
|
|
95
|
+
toolId = toolId.slice(MAIN_TS_PREFIX.length);
|
|
96
|
+
}
|
|
97
|
+
const rawLabel = step.label || step.id || (toolId ? `tool:${toolId}` : String(i));
|
|
98
|
+
const label = sanitizeLabel(rawLabel);
|
|
99
|
+
// The TS normalizer does not infer step.type the way gxformat2 does, so
|
|
100
|
+
// fall back to `run` shape: anything non-null implies a subworkflow.
|
|
101
|
+
const stepType = step.type || (step.run != null ? "subworkflow" : "tool");
|
|
102
|
+
const shape = STEP_TYPE_SHAPES[stepType] ?? SHAPE_TOOL;
|
|
103
|
+
stepLines.set(stepLabel, nodeLine(nodeId, label, shape));
|
|
104
|
+
});
|
|
105
|
+
const framed = new Set();
|
|
106
|
+
const frames = [];
|
|
107
|
+
if (opts.comments) {
|
|
108
|
+
const commentsRaw = wf.comments;
|
|
109
|
+
for (const frame of collectFrames(commentsRaw)) {
|
|
110
|
+
frames.push(frame);
|
|
111
|
+
for (const ref of frame.containsSteps)
|
|
112
|
+
framed.add(ref);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
for (const [inpLabel, line] of inputLines) {
|
|
116
|
+
if (!framed.has(inpLabel))
|
|
117
|
+
lines.push(` ${line}`);
|
|
118
|
+
}
|
|
119
|
+
for (const [stepLabel, line] of stepLines) {
|
|
120
|
+
if (!framed.has(stepLabel))
|
|
121
|
+
lines.push(` ${line}`);
|
|
122
|
+
}
|
|
123
|
+
frames.forEach((frame, i) => {
|
|
124
|
+
const title = sanitizeLabel(frame.title || `Group ${i}`);
|
|
125
|
+
lines.push(` subgraph sub_${i} ["${title}"]`);
|
|
126
|
+
for (const ref of frame.containsSteps) {
|
|
127
|
+
if (inputLines.has(ref))
|
|
128
|
+
lines.push(` ${inputLines.get(ref)}`);
|
|
129
|
+
else if (stepLines.has(ref))
|
|
130
|
+
lines.push(` ${stepLines.get(ref)}`);
|
|
131
|
+
}
|
|
132
|
+
lines.push(" end");
|
|
133
|
+
});
|
|
134
|
+
// Build the set of known labels for source resolution: input ids + step labels/ids.
|
|
135
|
+
const knownLabels = new Set([...inputIds.keys(), ...stepIds.keys()]);
|
|
136
|
+
const seenEdges = new Set();
|
|
137
|
+
wf.steps.forEach((step, i) => {
|
|
138
|
+
const nodeId = `step_${i}`;
|
|
139
|
+
for (const stepInput of step.in) {
|
|
140
|
+
if (stepInput.source == null)
|
|
141
|
+
continue;
|
|
142
|
+
const sources = Array.isArray(stepInput.source) ? stepInput.source : [stepInput.source];
|
|
143
|
+
for (const source of sources) {
|
|
144
|
+
const [sourceLabel] = resolveSourceReference(source, knownLabels);
|
|
145
|
+
const sourceId = inputIds.get(sourceLabel) ?? stepIds.get(sourceLabel);
|
|
146
|
+
if (!sourceId)
|
|
147
|
+
continue;
|
|
148
|
+
const edgeKey = `${sourceId}->${nodeId}`;
|
|
149
|
+
if (seenEdges.has(edgeKey))
|
|
150
|
+
continue;
|
|
151
|
+
seenEdges.add(edgeKey);
|
|
152
|
+
lines.push(` ${sourceId} --> ${nodeId}`);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
return lines.join("\n");
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=mermaid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mermaid.js","sourceRoot":"","sources":["../../src/workflow/mermaid.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ParsedTool } from "../schema/parsed-tool.js";
|
|
2
|
+
/**
|
|
3
|
+
* Returns the smallest `tool_state` object such that a freshly inserted step
|
|
4
|
+
* is valid. Today this is always `{}` — schema decoders and state validators
|
|
5
|
+
* handle missing keys via default conditional branches and parameter defaults,
|
|
6
|
+
* so there is no need to seed anything.
|
|
7
|
+
*
|
|
8
|
+
* This function exists as the designated extension point if that ever changes
|
|
9
|
+
* (a new parameter type, a decoder tightening, a validator that needs explicit
|
|
10
|
+
* scaffolding). Callers — the step-skeleton generator, the LSP server, future
|
|
11
|
+
* consumers — invoke this instead of hardcoding `{}`, so a single patch shifts
|
|
12
|
+
* the semantics without a codebase sweep.
|
|
13
|
+
*/
|
|
14
|
+
export declare function buildMinimalToolState(_tool: ParsedTool): Record<string, unknown>;
|
|
15
|
+
//# sourceMappingURL=minimal-tool-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"minimal-tool-state.d.ts","sourceRoot":"","sources":["../../src/workflow/minimal-tool-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEhF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns the smallest `tool_state` object such that a freshly inserted step
|
|
3
|
+
* is valid. Today this is always `{}` — schema decoders and state validators
|
|
4
|
+
* handle missing keys via default conditional branches and parameter defaults,
|
|
5
|
+
* so there is no need to seed anything.
|
|
6
|
+
*
|
|
7
|
+
* This function exists as the designated extension point if that ever changes
|
|
8
|
+
* (a new parameter type, a decoder tightening, a validator that needs explicit
|
|
9
|
+
* scaffolding). Callers — the step-skeleton generator, the LSP server, future
|
|
10
|
+
* consumers — invoke this instead of hardcoding `{}`, so a single patch shifts
|
|
11
|
+
* the semantics without a codebase sweep.
|
|
12
|
+
*/
|
|
13
|
+
export function buildMinimalToolState(_tool) {
|
|
14
|
+
return {};
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=minimal-tool-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"minimal-tool-state.js","sourceRoot":"","sources":["../../src/workflow/minimal-tool-state.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAiB;IACrD,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build a fresh workflow-step skeleton for an inserted tool.
|
|
3
|
+
*
|
|
4
|
+
* Two variants: `buildNativeStep` for `.ga` workflows, `buildFormat2Step` for
|
|
5
|
+
* `.gxwf.yml` workflows. Both seed `tool_state` / `state` via
|
|
6
|
+
* `buildMinimalToolState` so that if the minimum-state rules ever change, the
|
|
7
|
+
* skeleton follows automatically.
|
|
8
|
+
*
|
|
9
|
+
* Defaults are deliberately uncreative: position `{0,0}`, no `input_connections`,
|
|
10
|
+
* no outputs wiring. The consumer (VS Code AST inserter, CLI, etc.) is expected
|
|
11
|
+
* to place and wire the step.
|
|
12
|
+
*/
|
|
13
|
+
import type { ParsedTool } from "../schema/parsed-tool.js";
|
|
14
|
+
import type { NativeStep, StepPosition } from "./raw/native.effect.js";
|
|
15
|
+
import type { WorkflowStep } from "./raw/gxformat2.effect.js";
|
|
16
|
+
export interface StepSkeletonInputs {
|
|
17
|
+
tool: ParsedTool;
|
|
18
|
+
stepIndex?: number;
|
|
19
|
+
label?: string;
|
|
20
|
+
position?: StepPosition;
|
|
21
|
+
}
|
|
22
|
+
type FormatStepSkeletonInputs = StepSkeletonInputs & {
|
|
23
|
+
format: "native" | "format2";
|
|
24
|
+
};
|
|
25
|
+
export declare function buildNativeStep(inputs: StepSkeletonInputs): NativeStep;
|
|
26
|
+
export declare function buildFormat2Step(inputs: StepSkeletonInputs): WorkflowStep;
|
|
27
|
+
export declare function buildStep(inputs: FormatStepSkeletonInputs): NativeStep | WorkflowStep;
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=step-skeleton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-skeleton.d.ts","sourceRoot":"","sources":["../../src/workflow/step-skeleton.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED,KAAK,wBAAwB,GAAG,kBAAkB,GAAG;IAAE,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAA;CAAE,CAAC;AAItF,wBAAgB,eAAe,CAAC,MAAM,EAAE,kBAAkB,GAAG,UAAU,CAqBtE;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,kBAAkB,GAAG,YAAY,CAazE;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,wBAAwB,GAAG,UAAU,GAAG,YAAY,CAGrF"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build a fresh workflow-step skeleton for an inserted tool.
|
|
3
|
+
*
|
|
4
|
+
* Two variants: `buildNativeStep` for `.ga` workflows, `buildFormat2Step` for
|
|
5
|
+
* `.gxwf.yml` workflows. Both seed `tool_state` / `state` via
|
|
6
|
+
* `buildMinimalToolState` so that if the minimum-state rules ever change, the
|
|
7
|
+
* skeleton follows automatically.
|
|
8
|
+
*
|
|
9
|
+
* Defaults are deliberately uncreative: position `{0,0}`, no `input_connections`,
|
|
10
|
+
* no outputs wiring. The consumer (VS Code AST inserter, CLI, etc.) is expected
|
|
11
|
+
* to place and wire the step.
|
|
12
|
+
*/
|
|
13
|
+
import { buildMinimalToolState } from "./minimal-tool-state.js";
|
|
14
|
+
const DEFAULT_POSITION = { top: 0, left: 0 };
|
|
15
|
+
export function buildNativeStep(inputs) {
|
|
16
|
+
const { tool, stepIndex = 0, label, position = DEFAULT_POSITION } = inputs;
|
|
17
|
+
const step = {
|
|
18
|
+
id: stepIndex,
|
|
19
|
+
type: "tool",
|
|
20
|
+
name: tool.name,
|
|
21
|
+
tool_id: tool.id,
|
|
22
|
+
tool_version: tool.version,
|
|
23
|
+
content_id: tool.id,
|
|
24
|
+
label: label ?? null,
|
|
25
|
+
annotation: null,
|
|
26
|
+
errors: null,
|
|
27
|
+
position,
|
|
28
|
+
tool_state: buildMinimalToolState(tool),
|
|
29
|
+
input_connections: {},
|
|
30
|
+
inputs: [],
|
|
31
|
+
outputs: [],
|
|
32
|
+
workflow_outputs: [],
|
|
33
|
+
post_job_actions: {},
|
|
34
|
+
};
|
|
35
|
+
return step;
|
|
36
|
+
}
|
|
37
|
+
export function buildFormat2Step(inputs) {
|
|
38
|
+
const { tool, label, position = DEFAULT_POSITION } = inputs;
|
|
39
|
+
const step = {
|
|
40
|
+
label: label ?? tool.name,
|
|
41
|
+
type: "tool",
|
|
42
|
+
tool_id: tool.id,
|
|
43
|
+
tool_version: tool.version,
|
|
44
|
+
position,
|
|
45
|
+
state: buildMinimalToolState(tool),
|
|
46
|
+
in: {},
|
|
47
|
+
out: [],
|
|
48
|
+
};
|
|
49
|
+
return step;
|
|
50
|
+
}
|
|
51
|
+
export function buildStep(inputs) {
|
|
52
|
+
const { format, ...rest } = inputs;
|
|
53
|
+
return format === "native" ? buildNativeStep(rest) : buildFormat2Step(rest);
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=step-skeleton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-skeleton.js","sourceRoot":"","sources":["../../src/workflow/step-skeleton.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAahE,MAAM,gBAAgB,GAAiB,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AAE3D,MAAM,UAAU,eAAe,CAAC,MAA0B;IACxD,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,GAAG,gBAAgB,EAAE,GAAG,MAAM,CAAC;IAC3E,MAAM,IAAI,GAAe;QACvB,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,EAAE;QAChB,YAAY,EAAE,IAAI,CAAC,OAAO;QAC1B,UAAU,EAAE,IAAI,CAAC,EAAE;QACnB,KAAK,EAAE,KAAK,IAAI,IAAI;QACpB,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,IAAI;QACZ,QAAQ;QACR,UAAU,EAAE,qBAAqB,CAAC,IAAI,CAAC;QACvC,iBAAiB,EAAE,EAAE;QACrB,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,EAAE;QACX,gBAAgB,EAAE,EAAE;QACpB,gBAAgB,EAAE,EAAE;KACrB,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAA0B;IACzD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,GAAG,gBAAgB,EAAE,GAAG,MAAM,CAAC;IAC5D,MAAM,IAAI,GAAiB;QACzB,KAAK,EAAE,KAAK,IAAI,IAAI,CAAC,IAAI;QACzB,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,IAAI,CAAC,EAAE;QAChB,YAAY,EAAE,IAAI,CAAC,OAAO;QAC1B,QAAQ;QACR,KAAK,EAAE,qBAAqB,CAAC,IAAI,CAAC;QAClC,EAAE,EAAE,EAAE;QACN,GAAG,EAAE,EAAE;KACR,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,MAAgC;IACxD,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IACnC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAC9E,CAAC"}
|
|
@@ -22,6 +22,16 @@ export interface WalkNativeOptions {
|
|
|
22
22
|
checkUnknownKeys?: boolean;
|
|
23
23
|
/** Copy undeclared keys from input state to output (default: false). */
|
|
24
24
|
preserveUnknownKeys?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Switch repeat handling to `_initialize_repeat_state` semantics (default: false).
|
|
27
|
+
* When true:
|
|
28
|
+
* - inputConnections are ignored for instance count,
|
|
29
|
+
* - instance count is padded to `repeat.min` (never shrinks existing state),
|
|
30
|
+
* - the repeat key is always written to output, even when empty (`[]`).
|
|
31
|
+
* Used by expand-defaults, which must surface every declared repeat as a
|
|
32
|
+
* container the user can populate.
|
|
33
|
+
*/
|
|
34
|
+
repeatMinPad?: boolean;
|
|
25
35
|
}
|
|
26
36
|
/**
|
|
27
37
|
* Walk native workflow tool_state using the parameter tree.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walker.d.ts","sourceRoot":"","sources":["../../src/workflow/walker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAInB,MAAM,2BAA2B,CAAC;AAKnC,uEAAuE;AACvE,eAAO,MAAM,UAAU,EAAE,OAAO,MAA6B,CAAC;AAE9D,MAAM,MAAM,YAAY,GAAG,CACzB,SAAS,EAAE,kBAAkB,EAC7B,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM,KACd,OAAO,GAAG,OAAO,UAAU,CAAC;AAEjC,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,wEAAwE;IACxE,mBAAmB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"walker.d.ts","sourceRoot":"","sources":["../../src/workflow/walker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAInB,MAAM,2BAA2B,CAAC;AAKnC,uEAAuE;AACvE,eAAO,MAAM,UAAU,EAAE,OAAO,MAA6B,CAAC;AAE9D,MAAM,MAAM,YAAY,GAAG,CACzB,SAAS,EAAE,kBAAkB,EAC7B,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM,KACd,OAAO,GAAG,OAAO,UAAU,CAAC;AAEjC,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,wEAAwE;IACxE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzC,UAAU,EAAE,kBAAkB,EAAE,EAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,YAAY,EAAE,YAAY,EAC1B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAqHzB;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,kBAAkB,EAAE,EAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,YAAY,EAAE,YAAY,EAC1B,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA4EzB;AAED,mEAAmE;AACnE,qBAAa,eAAgB,SAAQ,KAAK;aAEtB,GAAG,EAAE,MAAM;aACX,MAAM,CAAC,EAAE,MAAM;gBADf,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,YAAA;CAMlC"}
|
package/dist/workflow/walker.js
CHANGED
|
@@ -33,6 +33,7 @@ export function walkNativeState(inputConnections, toolInputs, state, leafCallbac
|
|
|
33
33
|
const prefix = options?.prefix;
|
|
34
34
|
const checkUnknownKeys = options?.checkUnknownKeys ?? false;
|
|
35
35
|
const preserveUnknownKeys = options?.preserveUnknownKeys ?? false;
|
|
36
|
+
const repeatMinPad = options?.repeatMinPad ?? false;
|
|
36
37
|
const result = {};
|
|
37
38
|
const visitedKeys = new Set();
|
|
38
39
|
for (const toolInput of toolInputs) {
|
|
@@ -48,7 +49,7 @@ export function walkNativeState(inputConnections, toolInputs, state, leafCallbac
|
|
|
48
49
|
const when = selectWhichWhen(conditional, stateDict);
|
|
49
50
|
const branchParams = when != null ? when.parameters : [];
|
|
50
51
|
// Walk the test parameter + branch parameters
|
|
51
|
-
const innerResult = walkNativeState(inputConnections, [conditional.test_parameter, ...branchParams], stateDict, leafCallback, { prefix: statePath, checkUnknownKeys, preserveUnknownKeys });
|
|
52
|
+
const innerResult = walkNativeState(inputConnections, [conditional.test_parameter, ...branchParams], stateDict, leafCallback, { prefix: statePath, checkUnknownKeys, preserveUnknownKeys, repeatMinPad });
|
|
52
53
|
if (Object.keys(innerResult).length > 0) {
|
|
53
54
|
result[name] = innerResult;
|
|
54
55
|
}
|
|
@@ -61,17 +62,25 @@ export function walkNativeState(inputConnections, toolInputs, state, leafCallbac
|
|
|
61
62
|
const stateArray = Array.isArray(repeatState)
|
|
62
63
|
? repeatState
|
|
63
64
|
: [];
|
|
64
|
-
|
|
65
|
-
|
|
65
|
+
let instanceCount;
|
|
66
|
+
if (repeatMinPad) {
|
|
67
|
+
instanceCount = Math.max(stateArray.length, repeat.min ?? 0);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
const connectionInstances = repeatInputsToArray(statePath, inputConnections);
|
|
71
|
+
instanceCount = Math.max(stateArray.length, connectionInstances.length);
|
|
72
|
+
}
|
|
66
73
|
const instances = [];
|
|
67
74
|
for (let i = 0; i < instanceCount; i++) {
|
|
68
75
|
const instanceState = stateArray[i] ?? {};
|
|
69
76
|
const instancePrefix = `${statePath}_${i}`;
|
|
70
|
-
const instanceResult = walkNativeState(inputConnections, repeat.parameters, instanceState, leafCallback, { prefix: instancePrefix, checkUnknownKeys, preserveUnknownKeys });
|
|
77
|
+
const instanceResult = walkNativeState(inputConnections, repeat.parameters, instanceState, leafCallback, { prefix: instancePrefix, checkUnknownKeys, preserveUnknownKeys, repeatMinPad });
|
|
71
78
|
instances.push(instanceResult);
|
|
72
79
|
}
|
|
73
|
-
// Preserve explicit empty arrays (valid state); omit only when key is absent
|
|
74
|
-
|
|
80
|
+
// Preserve explicit empty arrays (valid state); omit only when key is absent.
|
|
81
|
+
// In repeatMinPad mode (expand-defaults), always write the key — mirrors
|
|
82
|
+
// Python's _initialize_repeat_state which creates tool_state[name] = [].
|
|
83
|
+
if (repeatMinPad || name in state || instances.length > 0) {
|
|
75
84
|
result[name] = instances;
|
|
76
85
|
}
|
|
77
86
|
}
|
|
@@ -80,7 +89,7 @@ export function walkNativeState(inputConnections, toolInputs, state, leafCallbac
|
|
|
80
89
|
const sectionState = state[name];
|
|
81
90
|
_assertNotStringContainer(name, parameterType, sectionState);
|
|
82
91
|
const stateDict = sectionState ?? {};
|
|
83
|
-
const innerResult = walkNativeState(inputConnections, section.parameters, stateDict, leafCallback, { prefix: statePath, checkUnknownKeys, preserveUnknownKeys });
|
|
92
|
+
const innerResult = walkNativeState(inputConnections, section.parameters, stateDict, leafCallback, { prefix: statePath, checkUnknownKeys, preserveUnknownKeys, repeatMinPad });
|
|
84
93
|
if (Object.keys(innerResult).length > 0) {
|
|
85
94
|
result[name] = innerResult;
|
|
86
95
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walker.js","sourceRoot":"","sources":["../../src/workflow/walker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AASH,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,uEAAuE;AACvE,MAAM,CAAC,MAAM,UAAU,GAAkB,MAAM,CAAC,YAAY,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"walker.js","sourceRoot":"","sources":["../../src/workflow/walker.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@galaxy-tool-util/schema",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "Effect Schema parameter types and validators for Galaxy tools",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -35,9 +35,7 @@
|
|
|
35
35
|
"effect": "^3.21.0",
|
|
36
36
|
"yaml": "^2.8.3"
|
|
37
37
|
},
|
|
38
|
-
"devDependencies": {
|
|
39
|
-
"@galaxy-tool-util/core": "0.3.0"
|
|
40
|
-
},
|
|
38
|
+
"devDependencies": {},
|
|
41
39
|
"scripts": {
|
|
42
40
|
"build": "tsc && node ../../scripts/copy-schema-assets.mjs",
|
|
43
41
|
"typecheck": "tsc --noEmit",
|