@galaxy-tool-util/schema 0.1.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/README.md +13 -0
- package/dist/index.d.ts +69 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +69 -0
- package/dist/index.js.map +1 -0
- package/dist/schema/bundle-types.d.ts +249 -0
- package/dist/schema/bundle-types.d.ts.map +1 -0
- package/dist/schema/bundle-types.js +74 -0
- package/dist/schema/bundle-types.js.map +1 -0
- package/dist/schema/index.d.ts +6 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +6 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/model-factory.d.ts +14 -0
- package/dist/schema/model-factory.d.ts.map +1 -0
- package/dist/schema/model-factory.js +96 -0
- package/dist/schema/model-factory.js.map +1 -0
- package/dist/schema/parameters/base.d.ts +62 -0
- package/dist/schema/parameters/base.d.ts.map +1 -0
- package/dist/schema/parameters/base.js +51 -0
- package/dist/schema/parameters/base.js.map +1 -0
- package/dist/schema/parameters/gx-baseurl.d.ts +2 -0
- package/dist/schema/parameters/gx-baseurl.d.ts.map +1 -0
- package/dist/schema/parameters/gx-baseurl.js +16 -0
- package/dist/schema/parameters/gx-baseurl.js.map +1 -0
- package/dist/schema/parameters/gx-boolean.d.ts +2 -0
- package/dist/schema/parameters/gx-boolean.d.ts.map +1 -0
- package/dist/schema/parameters/gx-boolean.js +29 -0
- package/dist/schema/parameters/gx-boolean.js.map +1 -0
- package/dist/schema/parameters/gx-color.d.ts +2 -0
- package/dist/schema/parameters/gx-color.d.ts.map +1 -0
- package/dist/schema/parameters/gx-color.js +26 -0
- package/dist/schema/parameters/gx-color.js.map +1 -0
- package/dist/schema/parameters/gx-conditional.d.ts +2 -0
- package/dist/schema/parameters/gx-conditional.d.ts.map +1 -0
- package/dist/schema/parameters/gx-conditional.js +56 -0
- package/dist/schema/parameters/gx-conditional.js.map +1 -0
- package/dist/schema/parameters/gx-data-collection.d.ts +2 -0
- package/dist/schema/parameters/gx-data-collection.d.ts.map +1 -0
- package/dist/schema/parameters/gx-data-collection.js +146 -0
- package/dist/schema/parameters/gx-data-collection.js.map +1 -0
- package/dist/schema/parameters/gx-data-column.d.ts +2 -0
- package/dist/schema/parameters/gx-data-column.d.ts.map +1 -0
- package/dist/schema/parameters/gx-data-column.js +49 -0
- package/dist/schema/parameters/gx-data-column.js.map +1 -0
- package/dist/schema/parameters/gx-data.d.ts +2 -0
- package/dist/schema/parameters/gx-data.d.ts.map +1 -0
- package/dist/schema/parameters/gx-data.js +107 -0
- package/dist/schema/parameters/gx-data.js.map +1 -0
- package/dist/schema/parameters/gx-directory-uri.d.ts +2 -0
- package/dist/schema/parameters/gx-directory-uri.d.ts.map +1 -0
- package/dist/schema/parameters/gx-directory-uri.js +19 -0
- package/dist/schema/parameters/gx-directory-uri.js.map +1 -0
- package/dist/schema/parameters/gx-drill-down.d.ts +2 -0
- package/dist/schema/parameters/gx-drill-down.d.ts.map +1 -0
- package/dist/schema/parameters/gx-drill-down.js +40 -0
- package/dist/schema/parameters/gx-drill-down.js.map +1 -0
- package/dist/schema/parameters/gx-float.d.ts +2 -0
- package/dist/schema/parameters/gx-float.d.ts.map +1 -0
- package/dist/schema/parameters/gx-float.js +46 -0
- package/dist/schema/parameters/gx-float.js.map +1 -0
- package/dist/schema/parameters/gx-genomebuild.d.ts +2 -0
- package/dist/schema/parameters/gx-genomebuild.d.ts.map +1 -0
- package/dist/schema/parameters/gx-genomebuild.js +23 -0
- package/dist/schema/parameters/gx-genomebuild.js.map +1 -0
- package/dist/schema/parameters/gx-group-tag.d.ts +2 -0
- package/dist/schema/parameters/gx-group-tag.d.ts.map +1 -0
- package/dist/schema/parameters/gx-group-tag.js +23 -0
- package/dist/schema/parameters/gx-group-tag.js.map +1 -0
- package/dist/schema/parameters/gx-hidden.d.ts +2 -0
- package/dist/schema/parameters/gx-hidden.d.ts.map +1 -0
- package/dist/schema/parameters/gx-hidden.js +33 -0
- package/dist/schema/parameters/gx-hidden.js.map +1 -0
- package/dist/schema/parameters/gx-integer.d.ts +2 -0
- package/dist/schema/parameters/gx-integer.d.ts.map +1 -0
- package/dist/schema/parameters/gx-integer.js +47 -0
- package/dist/schema/parameters/gx-integer.js.map +1 -0
- package/dist/schema/parameters/gx-repeat.d.ts +2 -0
- package/dist/schema/parameters/gx-repeat.d.ts.map +1 -0
- package/dist/schema/parameters/gx-repeat.js +30 -0
- package/dist/schema/parameters/gx-repeat.js.map +1 -0
- package/dist/schema/parameters/gx-rules.d.ts +2 -0
- package/dist/schema/parameters/gx-rules.d.ts.map +1 -0
- package/dist/schema/parameters/gx-rules.js +91 -0
- package/dist/schema/parameters/gx-rules.js.map +1 -0
- package/dist/schema/parameters/gx-section.d.ts +2 -0
- package/dist/schema/parameters/gx-section.d.ts.map +1 -0
- package/dist/schema/parameters/gx-section.js +17 -0
- package/dist/schema/parameters/gx-section.js.map +1 -0
- package/dist/schema/parameters/gx-select.d.ts +2 -0
- package/dist/schema/parameters/gx-select.d.ts.map +1 -0
- package/dist/schema/parameters/gx-select.js +63 -0
- package/dist/schema/parameters/gx-select.js.map +1 -0
- package/dist/schema/parameters/gx-text.d.ts +2 -0
- package/dist/schema/parameters/gx-text.d.ts.map +1 -0
- package/dist/schema/parameters/gx-text.js +22 -0
- package/dist/schema/parameters/gx-text.js.map +1 -0
- package/dist/schema/parameters/index.d.ts +21 -0
- package/dist/schema/parameters/index.d.ts.map +1 -0
- package/dist/schema/parameters/index.js +24 -0
- package/dist/schema/parameters/index.js.map +1 -0
- package/dist/schema/parameters/registry.d.ts +6 -0
- package/dist/schema/parameters/registry.d.ts.map +1 -0
- package/dist/schema/parameters/registry.js +18 -0
- package/dist/schema/parameters/registry.js.map +1 -0
- package/dist/schema/state-representations.d.ts +14 -0
- package/dist/schema/state-representations.d.ts.map +1 -0
- package/dist/schema/state-representations.js +61 -0
- package/dist/schema/state-representations.js.map +1 -0
- package/dist/schema/validators/empty-field.d.ts +2 -0
- package/dist/schema/validators/empty-field.d.ts.map +1 -0
- package/dist/schema/validators/empty-field.js +12 -0
- package/dist/schema/validators/empty-field.js.map +1 -0
- package/dist/schema/validators/expression.d.ts +2 -0
- package/dist/schema/validators/expression.d.ts.map +1 -0
- package/dist/schema/validators/expression.js +42 -0
- package/dist/schema/validators/expression.js.map +1 -0
- package/dist/schema/validators/in-range.d.ts +2 -0
- package/dist/schema/validators/in-range.d.ts.map +1 -0
- package/dist/schema/validators/in-range.js +36 -0
- package/dist/schema/validators/in-range.js.map +1 -0
- package/dist/schema/validators/index.d.ts +8 -0
- package/dist/schema/validators/index.d.ts.map +1 -0
- package/dist/schema/validators/index.js +10 -0
- package/dist/schema/validators/index.js.map +1 -0
- package/dist/schema/validators/length.d.ts +2 -0
- package/dist/schema/validators/length.d.ts.map +1 -0
- package/dist/schema/validators/length.js +29 -0
- package/dist/schema/validators/length.js.map +1 -0
- package/dist/schema/validators/no-options.d.ts +2 -0
- package/dist/schema/validators/no-options.d.ts.map +1 -0
- package/dist/schema/validators/no-options.js +10 -0
- package/dist/schema/validators/no-options.js.map +1 -0
- package/dist/schema/validators/regex.d.ts +27 -0
- package/dist/schema/validators/regex.d.ts.map +1 -0
- package/dist/schema/validators/regex.js +100 -0
- package/dist/schema/validators/regex.js.map +1 -0
- package/dist/schema/validators/registry.d.ts +19 -0
- package/dist/schema/validators/registry.d.ts.map +1 -0
- package/dist/schema/validators/registry.js +29 -0
- package/dist/schema/validators/registry.js.map +1 -0
- package/dist/workflow/clean.d.ts +13 -0
- package/dist/workflow/clean.d.ts.map +1 -0
- package/dist/workflow/clean.js +131 -0
- package/dist/workflow/clean.js.map +1 -0
- package/dist/workflow/detect-format.d.ts +5 -0
- package/dist/workflow/detect-format.d.ts.map +1 -0
- package/dist/workflow/detect-format.js +11 -0
- package/dist/workflow/detect-format.js.map +1 -0
- package/dist/workflow/index.d.ts +9 -0
- package/dist/workflow/index.d.ts.map +1 -0
- package/dist/workflow/index.js +11 -0
- package/dist/workflow/index.js.map +1 -0
- package/dist/workflow/legacy-encoding.d.ts +40 -0
- package/dist/workflow/legacy-encoding.d.ts.map +1 -0
- package/dist/workflow/legacy-encoding.js +81 -0
- package/dist/workflow/legacy-encoding.js.map +1 -0
- package/dist/workflow/lint.d.ts +49 -0
- package/dist/workflow/lint.d.ts.map +1 -0
- package/dist/workflow/lint.js +402 -0
- package/dist/workflow/lint.js.map +1 -0
- package/dist/workflow/normalized/comments.d.ts +21 -0
- package/dist/workflow/normalized/comments.d.ts.map +1 -0
- package/dist/workflow/normalized/comments.js +80 -0
- package/dist/workflow/normalized/comments.js.map +1 -0
- package/dist/workflow/normalized/ensure.d.ts +21 -0
- package/dist/workflow/normalized/ensure.d.ts.map +1 -0
- package/dist/workflow/normalized/ensure.js +43 -0
- package/dist/workflow/normalized/ensure.js.map +1 -0
- package/dist/workflow/normalized/expanded.d.ts +62 -0
- package/dist/workflow/normalized/expanded.d.ts.map +1 -0
- package/dist/workflow/normalized/expanded.js +173 -0
- package/dist/workflow/normalized/expanded.js.map +1 -0
- package/dist/workflow/normalized/format2.d.ts +149 -0
- package/dist/workflow/normalized/format2.d.ts.map +1 -0
- package/dist/workflow/normalized/format2.js +416 -0
- package/dist/workflow/normalized/format2.js.map +1 -0
- package/dist/workflow/normalized/index.d.ts +9 -0
- package/dist/workflow/normalized/index.d.ts.map +1 -0
- package/dist/workflow/normalized/index.js +9 -0
- package/dist/workflow/normalized/index.js.map +1 -0
- package/dist/workflow/normalized/labels.d.ts +27 -0
- package/dist/workflow/normalized/labels.d.ts.map +1 -0
- package/dist/workflow/normalized/labels.js +59 -0
- package/dist/workflow/normalized/labels.js.map +1 -0
- package/dist/workflow/normalized/native.d.ts +97 -0
- package/dist/workflow/normalized/native.d.ts.map +1 -0
- package/dist/workflow/normalized/native.js +189 -0
- package/dist/workflow/normalized/native.js.map +1 -0
- package/dist/workflow/normalized/toFormat2.d.ts +11 -0
- package/dist/workflow/normalized/toFormat2.d.ts.map +1 -0
- package/dist/workflow/normalized/toFormat2.js +416 -0
- package/dist/workflow/normalized/toFormat2.js.map +1 -0
- package/dist/workflow/normalized/toNative.d.ts +11 -0
- package/dist/workflow/normalized/toNative.d.ts.map +1 -0
- package/dist/workflow/normalized/toNative.js +576 -0
- package/dist/workflow/normalized/toNative.js.map +1 -0
- package/dist/workflow/raw/gxformat2.d.ts +402 -0
- package/dist/workflow/raw/gxformat2.d.ts.map +1 -0
- package/dist/workflow/raw/gxformat2.effect.d.ts +1140 -0
- package/dist/workflow/raw/gxformat2.effect.d.ts.map +1 -0
- package/dist/workflow/raw/gxformat2.effect.js +453 -0
- package/dist/workflow/raw/gxformat2.effect.js.map +1 -0
- package/dist/workflow/raw/gxformat2.js +3 -0
- package/dist/workflow/raw/gxformat2.js.map +1 -0
- package/dist/workflow/raw/index.d.ts +5 -0
- package/dist/workflow/raw/index.d.ts.map +1 -0
- package/dist/workflow/raw/index.js +4 -0
- package/dist/workflow/raw/index.js.map +1 -0
- package/dist/workflow/raw/native.d.ts +439 -0
- package/dist/workflow/raw/native.d.ts.map +1 -0
- package/dist/workflow/raw/native.effect.d.ts +947 -0
- package/dist/workflow/raw/native.effect.d.ts.map +1 -0
- package/dist/workflow/raw/native.effect.js +474 -0
- package/dist/workflow/raw/native.effect.js.map +1 -0
- package/dist/workflow/raw/native.js +20 -0
- package/dist/workflow/raw/native.js.map +1 -0
- package/dist/workflow/replacement-scan.d.ts +21 -0
- package/dist/workflow/replacement-scan.d.ts.map +1 -0
- package/dist/workflow/replacement-scan.js +92 -0
- package/dist/workflow/replacement-scan.js.map +1 -0
- package/dist/workflow/state-merge.d.ts +49 -0
- package/dist/workflow/state-merge.d.ts.map +1 -0
- package/dist/workflow/state-merge.js +248 -0
- package/dist/workflow/state-merge.js.map +1 -0
- package/package.json +45 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detect legacy replacement parameters (${...}) in workflow tool state.
|
|
3
|
+
*
|
|
4
|
+
* Port of Python galaxy.tool_util.workflow_state.legacy_parameters.
|
|
5
|
+
*
|
|
6
|
+
* Walks the parameter tree type-aware: ${...} in text/hidden fields is
|
|
7
|
+
* MAYBE (could be literal), in typed fields (integer, float, etc.) is YES
|
|
8
|
+
* (definitely a replacement). Validation should be skipped when YES.
|
|
9
|
+
*/
|
|
10
|
+
/** Check if a string value contains legacy replacement syntax. */
|
|
11
|
+
function _isReplacementParam(value) {
|
|
12
|
+
return typeof value === "string" && value.includes("${");
|
|
13
|
+
}
|
|
14
|
+
const _MAYBE_TYPES = new Set(["gx_text", "gx_hidden"]);
|
|
15
|
+
const _SKIP_TYPES = new Set(["gx_data", "gx_data_collection", "gx_rules"]);
|
|
16
|
+
function _classifyHit(parameterType) {
|
|
17
|
+
if (_MAYBE_TYPES.has(parameterType))
|
|
18
|
+
return "maybe_assumed_no";
|
|
19
|
+
return "yes";
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Scan a state dict for replacement parameters, walking the tool input tree
|
|
23
|
+
* for type-aware classification.
|
|
24
|
+
*
|
|
25
|
+
* Returns "yes" if any typed field contains ${...} (skip validation),
|
|
26
|
+
* "maybe_assumed_no" if only text/hidden fields have it (still validate),
|
|
27
|
+
* "no" if no replacement params found.
|
|
28
|
+
*/
|
|
29
|
+
export function scanForReplacements(toolInputs, state) {
|
|
30
|
+
let hasYes = false;
|
|
31
|
+
let hasMaybe = false;
|
|
32
|
+
_scanParams(toolInputs, state, (classification) => {
|
|
33
|
+
if (classification === "yes")
|
|
34
|
+
hasYes = true;
|
|
35
|
+
else
|
|
36
|
+
hasMaybe = true;
|
|
37
|
+
});
|
|
38
|
+
if (hasYes)
|
|
39
|
+
return "yes";
|
|
40
|
+
if (hasMaybe)
|
|
41
|
+
return "maybe_assumed_no";
|
|
42
|
+
return "no";
|
|
43
|
+
}
|
|
44
|
+
function _scanParams(toolInputs, state, onHit) {
|
|
45
|
+
for (const param of toolInputs) {
|
|
46
|
+
const paramType = param.parameter_type;
|
|
47
|
+
if (paramType === "gx_conditional") {
|
|
48
|
+
const cond = param;
|
|
49
|
+
const condState = state[param.name];
|
|
50
|
+
if (condState) {
|
|
51
|
+
// Check test parameter
|
|
52
|
+
const testValue = condState[cond.test_parameter.name];
|
|
53
|
+
if (_isReplacementParam(testValue) &&
|
|
54
|
+
!_SKIP_TYPES.has(cond.test_parameter.parameter_type)) {
|
|
55
|
+
onHit(_classifyHit(cond.test_parameter.parameter_type));
|
|
56
|
+
}
|
|
57
|
+
// Check all when branches (scan all since we can't always determine the active branch)
|
|
58
|
+
for (const when of cond.whens) {
|
|
59
|
+
_scanParams(when.parameters, condState, onHit);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
else if (paramType === "gx_repeat") {
|
|
64
|
+
const repeat = param;
|
|
65
|
+
const repeatState = state[param.name];
|
|
66
|
+
if (Array.isArray(repeatState)) {
|
|
67
|
+
for (const instance of repeatState) {
|
|
68
|
+
if (instance && typeof instance === "object") {
|
|
69
|
+
_scanParams(repeat.parameters, instance, onHit);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
else if (paramType === "gx_section") {
|
|
75
|
+
const section = param;
|
|
76
|
+
const sectionState = state[param.name];
|
|
77
|
+
if (sectionState) {
|
|
78
|
+
_scanParams(section.parameters, sectionState, onHit);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
// Leaf parameter
|
|
83
|
+
if (_SKIP_TYPES.has(paramType))
|
|
84
|
+
continue;
|
|
85
|
+
const value = state[param.name];
|
|
86
|
+
if (_isReplacementParam(value)) {
|
|
87
|
+
onHit(_classifyHit(paramType));
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=replacement-scan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replacement-scan.js","sourceRoot":"","sources":["../../src/workflow/replacement-scan.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAWH,kEAAkE;AAClE,SAAS,mBAAmB,CAAC,KAAc;IACzC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;AACvD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,oBAAoB,EAAE,UAAU,CAAC,CAAC,CAAC;AAE3E,SAAS,YAAY,CAAC,aAAqB;IACzC,IAAI,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC;QAAE,OAAO,kBAAkB,CAAC;IAC/D,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CACjC,UAAgC,EAChC,KAA8B;IAE9B,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,WAAW,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,cAAc,EAAE,EAAE;QAChD,IAAI,cAAc,KAAK,KAAK;YAAE,MAAM,GAAG,IAAI,CAAC;;YACvC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,IAAI,MAAM;QAAE,OAAO,KAAK,CAAC;IACzB,IAAI,QAAQ;QAAE,OAAO,kBAAkB,CAAC;IACxC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAClB,UAAgC,EAChC,KAA8B,EAC9B,KAA2D;IAE3D,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,KAAK,CAAC,cAAc,CAAC;QAEvC,IAAI,SAAS,KAAK,gBAAgB,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,KAAkC,CAAC;YAChD,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAwC,CAAC;YAC3E,IAAI,SAAS,EAAE,CAAC;gBACd,uBAAuB;gBACvB,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBACtD,IACE,mBAAmB,CAAC,SAAS,CAAC;oBAC9B,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EACpD,CAAC;oBACD,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;gBAC1D,CAAC;gBACD,uFAAuF;gBACvF,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC9B,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;gBACjD,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,KAA6B,CAAC;YAC7C,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC/B,KAAK,MAAM,QAAQ,IAAI,WAAW,EAAE,CAAC;oBACnC,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;wBAC7C,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,QAAmC,EAAE,KAAK,CAAC,CAAC;oBAC7E,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,SAAS,KAAK,YAAY,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,KAA8B,CAAC;YAC/C,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAwC,CAAC;YAC9E,IAAI,YAAY,EAAE,CAAC;gBACjB,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,iBAAiB;YACjB,IAAI,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC;gBAAE,SAAS;YACzC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/B,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inject ConnectedValue markers into workflow state dicts.
|
|
3
|
+
*
|
|
4
|
+
* Port of Python galaxy.tool_util.workflow_state._state_merge +
|
|
5
|
+
* helper functions from galaxy.tool_util.parameters.visitor.
|
|
6
|
+
*
|
|
7
|
+
* Walks the parameter tree to match pipe-separated connection paths
|
|
8
|
+
* (e.g. "queries_0|input2") to tool parameters. Handles conditionals,
|
|
9
|
+
* repeats, and sections. Used by validate-workflow for both native
|
|
10
|
+
* and format2 validation paths.
|
|
11
|
+
*/
|
|
12
|
+
import type { ToolParameterModel, ConditionalParameterModel, ConditionalWhen } from "../schema/bundle-types.js";
|
|
13
|
+
/** Build flat pipe-separated state path: `name` or `prefix|name`. */
|
|
14
|
+
export declare function flatStatePath(name: string, prefix?: string): string;
|
|
15
|
+
/** Filter a flat key→value map to keys starting with a given prefix. */
|
|
16
|
+
export declare function keysStartingWith<T>(map: Record<string, T>, prefix: string): Record<string, T>;
|
|
17
|
+
/**
|
|
18
|
+
* Split flat connection keys for a repeat into per-instance arrays.
|
|
19
|
+
*
|
|
20
|
+
* Connection keys use the pattern `repeatName_N|paramName`.
|
|
21
|
+
* Returns an array of per-instance connection dicts.
|
|
22
|
+
*/
|
|
23
|
+
export declare function repeatInputsToArray<T>(statePath: string, inputs: Record<string, T>): Record<string, T>[];
|
|
24
|
+
/**
|
|
25
|
+
* Select the matching ConditionalWhen for a conditional state dict.
|
|
26
|
+
*
|
|
27
|
+
* Matches the test parameter's value in state against each when's
|
|
28
|
+
* discriminator. Falls back to the default when if no match found.
|
|
29
|
+
* Returns null if no match at all (graceful degradation).
|
|
30
|
+
*/
|
|
31
|
+
export declare function selectWhichWhen(conditional: ConditionalParameterModel, state: Record<string, unknown>): ConditionalWhen | null;
|
|
32
|
+
/**
|
|
33
|
+
* Inject ConnectedValue markers into a state dict for all connections.
|
|
34
|
+
*
|
|
35
|
+
* Walks the parameter tree to match connection paths to tool parameters,
|
|
36
|
+
* setting matched leaves to `{"__class__": "ConnectedValue"}`.
|
|
37
|
+
* Mutates `state` in-place.
|
|
38
|
+
*
|
|
39
|
+
* @returns remaining unmatched connection paths (empty if all consumed)
|
|
40
|
+
*/
|
|
41
|
+
export declare function injectConnectionsIntoState(toolInputs: ToolParameterModel[], state: Record<string, unknown>, connections: Record<string, unknown>): Record<string, unknown>;
|
|
42
|
+
/**
|
|
43
|
+
* Strip ConnectedValue markers from a state dict using the parameter tree.
|
|
44
|
+
*
|
|
45
|
+
* Walks conditionals, repeats, and sections so nested markers inside
|
|
46
|
+
* container parameters are removed. Mutates `state` in-place.
|
|
47
|
+
*/
|
|
48
|
+
export declare function stripConnectedValues(toolInputs: ToolParameterModel[], state: Record<string, unknown>): void;
|
|
49
|
+
//# sourceMappingURL=state-merge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-merge.d.ts","sourceRoot":"","sources":["../../src/workflow/state-merge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAClB,yBAAyB,EACzB,eAAe,EAKhB,MAAM,2BAA2B,CAAC;AAInC,qEAAqE;AACrE,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,wEAAwE;AACxE,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAQ7F;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GACxB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAuBrB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,yBAAyB,EACtC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,eAAe,GAAG,IAAI,CAmBxB;AAgCD;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,kBAAkB,EAAE,EAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMzB;AA2GD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,kBAAkB,EAAE,EAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,IAAI,CAIN"}
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inject ConnectedValue markers into workflow state dicts.
|
|
3
|
+
*
|
|
4
|
+
* Port of Python galaxy.tool_util.workflow_state._state_merge +
|
|
5
|
+
* helper functions from galaxy.tool_util.parameters.visitor.
|
|
6
|
+
*
|
|
7
|
+
* Walks the parameter tree to match pipe-separated connection paths
|
|
8
|
+
* (e.g. "queries_0|input2") to tool parameters. Handles conditionals,
|
|
9
|
+
* repeats, and sections. Used by validate-workflow for both native
|
|
10
|
+
* and format2 validation paths.
|
|
11
|
+
*/
|
|
12
|
+
// --- Helpers (ported from Python visitor.py) ---
|
|
13
|
+
/** Build flat pipe-separated state path: `name` or `prefix|name`. */
|
|
14
|
+
export function flatStatePath(name, prefix) {
|
|
15
|
+
return prefix != null ? `${prefix}|${name}` : name;
|
|
16
|
+
}
|
|
17
|
+
/** Filter a flat key→value map to keys starting with a given prefix. */
|
|
18
|
+
export function keysStartingWith(map, prefix) {
|
|
19
|
+
const result = {};
|
|
20
|
+
for (const [key, value] of Object.entries(map)) {
|
|
21
|
+
if (key.startsWith(prefix)) {
|
|
22
|
+
result[key] = value;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return result;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Split flat connection keys for a repeat into per-instance arrays.
|
|
29
|
+
*
|
|
30
|
+
* Connection keys use the pattern `repeatName_N|paramName`.
|
|
31
|
+
* Returns an array of per-instance connection dicts.
|
|
32
|
+
*/
|
|
33
|
+
export function repeatInputsToArray(statePath, inputs) {
|
|
34
|
+
const repeatInputs = keysStartingWith(inputs, statePath + "_");
|
|
35
|
+
let highestCount = -1;
|
|
36
|
+
for (const key of Object.keys(repeatInputs)) {
|
|
37
|
+
const numStr = key.slice(statePath.length + 1).split("|")[0];
|
|
38
|
+
const num = parseInt(numStr, 10);
|
|
39
|
+
if (!isNaN(num) && num > highestCount) {
|
|
40
|
+
highestCount = num;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
const params = [];
|
|
44
|
+
for (let i = 0; i <= highestCount; i++) {
|
|
45
|
+
params.push({});
|
|
46
|
+
}
|
|
47
|
+
for (const [key, value] of Object.entries(repeatInputs)) {
|
|
48
|
+
const numStr = key.slice(statePath.length + 1).split("|")[0];
|
|
49
|
+
const num = parseInt(numStr, 10);
|
|
50
|
+
if (!isNaN(num)) {
|
|
51
|
+
params[num][key] = value;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return params;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Select the matching ConditionalWhen for a conditional state dict.
|
|
58
|
+
*
|
|
59
|
+
* Matches the test parameter's value in state against each when's
|
|
60
|
+
* discriminator. Falls back to the default when if no match found.
|
|
61
|
+
* Returns null if no match at all (graceful degradation).
|
|
62
|
+
*/
|
|
63
|
+
export function selectWhichWhen(conditional, state) {
|
|
64
|
+
const testParam = conditional.test_parameter;
|
|
65
|
+
const testValue = state[testParam.name];
|
|
66
|
+
// Try exact match first
|
|
67
|
+
for (const when of conditional.whens) {
|
|
68
|
+
if (_testValueMatchesDiscriminator(testParam, testValue, when.discriminator)) {
|
|
69
|
+
return when;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
// Fall back to default when
|
|
73
|
+
for (const when of conditional.whens) {
|
|
74
|
+
if (when.is_default_when) {
|
|
75
|
+
return when;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
function _testValueMatchesDiscriminator(testParam, testValue, discriminator) {
|
|
81
|
+
if (testParam.parameter_type === "gx_boolean") {
|
|
82
|
+
// Boolean coercion: handle string "true"/"false"/"True"/"False" and actual booleans
|
|
83
|
+
const boolValue = _coerceToBool(testValue);
|
|
84
|
+
const discBool = typeof discriminator === "boolean" ? discriminator : _coerceToBool(discriminator);
|
|
85
|
+
return boolValue === discBool;
|
|
86
|
+
}
|
|
87
|
+
// Select: string comparison
|
|
88
|
+
return String(testValue) === String(discriminator);
|
|
89
|
+
}
|
|
90
|
+
function _coerceToBool(value) {
|
|
91
|
+
if (typeof value === "boolean")
|
|
92
|
+
return value;
|
|
93
|
+
if (typeof value === "string") {
|
|
94
|
+
const lower = value.toLowerCase();
|
|
95
|
+
if (lower === "true")
|
|
96
|
+
return true;
|
|
97
|
+
if (lower === "false")
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
// --- Main injection function ---
|
|
103
|
+
const CONNECTED_VALUE = { __class__: "ConnectedValue" };
|
|
104
|
+
/**
|
|
105
|
+
* Inject ConnectedValue markers into a state dict for all connections.
|
|
106
|
+
*
|
|
107
|
+
* Walks the parameter tree to match connection paths to tool parameters,
|
|
108
|
+
* setting matched leaves to `{"__class__": "ConnectedValue"}`.
|
|
109
|
+
* Mutates `state` in-place.
|
|
110
|
+
*
|
|
111
|
+
* @returns remaining unmatched connection paths (empty if all consumed)
|
|
112
|
+
*/
|
|
113
|
+
export function injectConnectionsIntoState(toolInputs, state, connections) {
|
|
114
|
+
const remaining = { ...connections };
|
|
115
|
+
for (const toolInput of toolInputs) {
|
|
116
|
+
_mergeParam(remaining, toolInput, state);
|
|
117
|
+
}
|
|
118
|
+
return remaining;
|
|
119
|
+
}
|
|
120
|
+
function _mergeParam(connections, toolInput, state, prefix, branchConnections) {
|
|
121
|
+
if (branchConnections == null) {
|
|
122
|
+
branchConnections = connections;
|
|
123
|
+
}
|
|
124
|
+
const name = toolInput.name;
|
|
125
|
+
const parameterType = toolInput.parameter_type;
|
|
126
|
+
const statePath = flatStatePath(name, prefix);
|
|
127
|
+
if (parameterType === "gx_conditional") {
|
|
128
|
+
const conditional = toolInput;
|
|
129
|
+
let conditionalState = state[name];
|
|
130
|
+
if (conditionalState == null) {
|
|
131
|
+
conditionalState = {};
|
|
132
|
+
state[name] = conditionalState;
|
|
133
|
+
}
|
|
134
|
+
const when = selectWhichWhen(conditional, conditionalState);
|
|
135
|
+
const conditionalConnections = keysStartingWith(branchConnections, statePath);
|
|
136
|
+
_mergeParam(connections, conditional.test_parameter, conditionalState, statePath, conditionalConnections);
|
|
137
|
+
if (when != null) {
|
|
138
|
+
for (const whenParameter of when.parameters) {
|
|
139
|
+
_mergeParam(connections, whenParameter, conditionalState, statePath, conditionalConnections);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
else if (parameterType === "gx_repeat") {
|
|
144
|
+
const repeat = toolInput;
|
|
145
|
+
let repeatStateArray = state[name];
|
|
146
|
+
if (repeatStateArray == null) {
|
|
147
|
+
repeatStateArray = [];
|
|
148
|
+
}
|
|
149
|
+
const repeatInstanceConnects = repeatInputsToArray(statePath, connections);
|
|
150
|
+
for (let i = 0; i < repeatInstanceConnects.length; i++) {
|
|
151
|
+
while (repeatStateArray.length <= i) {
|
|
152
|
+
repeatStateArray.push({});
|
|
153
|
+
}
|
|
154
|
+
const instancePrefix = `${statePath}_${i}`;
|
|
155
|
+
for (const repeatParameter of repeat.parameters) {
|
|
156
|
+
_mergeParam(connections, repeatParameter, repeatStateArray[i], instancePrefix, repeatInstanceConnects[i]);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
if (repeatStateArray.length > 0 && !(name in state)) {
|
|
160
|
+
state[name] = repeatStateArray;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
else if (parameterType === "gx_section") {
|
|
164
|
+
const section = toolInput;
|
|
165
|
+
let sectionState = state[name];
|
|
166
|
+
if (sectionState == null) {
|
|
167
|
+
sectionState = {};
|
|
168
|
+
state[name] = sectionState;
|
|
169
|
+
}
|
|
170
|
+
const sectionConnections = keysStartingWith(branchConnections, statePath);
|
|
171
|
+
for (const sectionParameter of section.parameters) {
|
|
172
|
+
_mergeParam(connections, sectionParameter, sectionState, statePath, sectionConnections);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
// Leaf parameter
|
|
177
|
+
if (statePath in branchConnections) {
|
|
178
|
+
state[name] = { ...CONNECTED_VALUE };
|
|
179
|
+
delete connections[statePath];
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
// --- ConnectedValue stripping ---
|
|
184
|
+
function _isConnectedValue(value) {
|
|
185
|
+
return (value != null &&
|
|
186
|
+
typeof value === "object" &&
|
|
187
|
+
!Array.isArray(value) &&
|
|
188
|
+
value.__class__ === "ConnectedValue");
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Strip ConnectedValue markers from a state dict using the parameter tree.
|
|
192
|
+
*
|
|
193
|
+
* Walks conditionals, repeats, and sections so nested markers inside
|
|
194
|
+
* container parameters are removed. Mutates `state` in-place.
|
|
195
|
+
*/
|
|
196
|
+
export function stripConnectedValues(toolInputs, state) {
|
|
197
|
+
for (const toolInput of toolInputs) {
|
|
198
|
+
_stripParam(toolInput, state);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
function _stripParam(toolInput, state, prefix) {
|
|
202
|
+
const name = toolInput.name;
|
|
203
|
+
const parameterType = toolInput.parameter_type;
|
|
204
|
+
if (parameterType === "gx_conditional") {
|
|
205
|
+
const conditional = toolInput;
|
|
206
|
+
const conditionalState = state[name];
|
|
207
|
+
if (conditionalState == null)
|
|
208
|
+
return;
|
|
209
|
+
const statePath = flatStatePath(name, prefix);
|
|
210
|
+
_stripParam(conditional.test_parameter, conditionalState, statePath);
|
|
211
|
+
const when = selectWhichWhen(conditional, conditionalState);
|
|
212
|
+
if (when != null) {
|
|
213
|
+
for (const whenParameter of when.parameters) {
|
|
214
|
+
_stripParam(whenParameter, conditionalState, statePath);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
else if (parameterType === "gx_repeat") {
|
|
219
|
+
const repeat = toolInput;
|
|
220
|
+
const repeatStateArray = state[name];
|
|
221
|
+
if (!Array.isArray(repeatStateArray))
|
|
222
|
+
return;
|
|
223
|
+
const statePath = flatStatePath(name, prefix);
|
|
224
|
+
for (let i = 0; i < repeatStateArray.length; i++) {
|
|
225
|
+
const instancePrefix = `${statePath}_${i}`;
|
|
226
|
+
for (const repeatParameter of repeat.parameters) {
|
|
227
|
+
_stripParam(repeatParameter, repeatStateArray[i], instancePrefix);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
else if (parameterType === "gx_section") {
|
|
232
|
+
const section = toolInput;
|
|
233
|
+
const sectionState = state[name];
|
|
234
|
+
if (sectionState == null)
|
|
235
|
+
return;
|
|
236
|
+
const statePath = flatStatePath(name, prefix);
|
|
237
|
+
for (const sectionParameter of section.parameters) {
|
|
238
|
+
_stripParam(sectionParameter, sectionState, statePath);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
// Leaf parameter
|
|
243
|
+
if (_isConnectedValue(state[name])) {
|
|
244
|
+
delete state[name];
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
//# sourceMappingURL=state-merge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-merge.js","sourceRoot":"","sources":["../../src/workflow/state-merge.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@galaxy-tool-util/schema",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Effect Schema parameter types and validators for Galaxy tools",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"exports": {
|
|
7
|
+
".": {
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"import": "./dist/index.js"
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
"files": ["dist", "README.md", "LICENSE"],
|
|
13
|
+
"repository": {
|
|
14
|
+
"type": "git",
|
|
15
|
+
"url": "https://github.com/jmchilton/galaxy-tool-util-ts",
|
|
16
|
+
"directory": "packages/schema"
|
|
17
|
+
},
|
|
18
|
+
"publishConfig": {
|
|
19
|
+
"access": "public",
|
|
20
|
+
"provenance": true
|
|
21
|
+
},
|
|
22
|
+
"scripts": {
|
|
23
|
+
"build": "tsc",
|
|
24
|
+
"typecheck": "tsc --noEmit",
|
|
25
|
+
"test": "tsc --noEmit && vitest run",
|
|
26
|
+
"test:watch": "vitest",
|
|
27
|
+
"lint": "eslint src/ test/",
|
|
28
|
+
"format": "prettier --check 'src/**/*.ts' 'test/**/*.ts'",
|
|
29
|
+
"format-fix": "prettier --write 'src/**/*.ts' 'test/**/*.ts'"
|
|
30
|
+
},
|
|
31
|
+
"keywords": [
|
|
32
|
+
"galaxy",
|
|
33
|
+
"tool-util",
|
|
34
|
+
"schema"
|
|
35
|
+
],
|
|
36
|
+
"license": "MIT",
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"effect": "^3.21.0"
|
|
39
|
+
},
|
|
40
|
+
"devDependencies": {
|
|
41
|
+
"@galaxy-tool-util/core": "workspace:*",
|
|
42
|
+
"ajv": "^8.18.0",
|
|
43
|
+
"yaml": "^2.8.3"
|
|
44
|
+
}
|
|
45
|
+
}
|