@galaxy-tool-util/schema 1.13.1 → 1.15.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 +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/test-format/tests.schema.generated.d.ts +47 -0
- package/dist/test-format/tests.schema.generated.d.ts.map +1 -1
- package/dist/test-format/tests.schema.generated.js +62 -0
- package/dist/test-format/tests.schema.generated.js.map +1 -1
- package/dist/user-tool-source/schema.generated.d.ts +1203 -266
- package/dist/user-tool-source/schema.generated.d.ts.map +1 -1
- package/dist/user-tool-source/schema.generated.js +1522 -367
- package/dist/user-tool-source/schema.generated.js.map +1 -1
- package/dist/workflow/draft-checks.d.ts.map +1 -1
- package/dist/workflow/draft-checks.js +105 -59
- package/dist/workflow/draft-checks.js.map +1 -1
- package/dist/workflow/index.d.ts +5 -3
- package/dist/workflow/index.d.ts.map +1 -1
- package/dist/workflow/index.js +5 -3
- package/dist/workflow/index.js.map +1 -1
- package/dist/workflow/input-parameter.d.ts +280 -0
- package/dist/workflow/input-parameter.d.ts.map +1 -0
- package/dist/workflow/input-parameter.js +38 -0
- package/dist/workflow/input-parameter.js.map +1 -0
- package/dist/workflow/layout-properties.d.ts +10 -0
- package/dist/workflow/layout-properties.d.ts.map +1 -0
- package/dist/workflow/layout-properties.js +112 -0
- package/dist/workflow/layout-properties.js.map +1 -0
- package/dist/workflow/layout.d.ts +84 -0
- package/dist/workflow/layout.d.ts.map +1 -0
- package/dist/workflow/layout.js +356 -0
- package/dist/workflow/layout.js.map +1 -0
- package/dist/workflow/lint-rules.d.ts +6 -0
- package/dist/workflow/lint-rules.d.ts.map +1 -1
- package/dist/workflow/lint-rules.js +6 -0
- package/dist/workflow/lint-rules.js.map +1 -1
- package/dist/workflow/lint.d.ts +1 -1
- package/dist/workflow/lint.d.ts.map +1 -1
- package/dist/workflow/lint.js +232 -58
- package/dist/workflow/lint.js.map +1 -1
- package/dist/workflow/lint_profiles.yml +1 -0
- package/dist/workflow/mermaid.d.ts.map +1 -1
- package/dist/workflow/mermaid.js +1 -0
- package/dist/workflow/mermaid.js.map +1 -1
- package/dist/workflow/normalized/expanded.d.ts +12 -0
- package/dist/workflow/normalized/expanded.d.ts.map +1 -1
- package/dist/workflow/normalized/expanded.js +42 -1
- package/dist/workflow/normalized/expanded.js.map +1 -1
- package/dist/workflow/normalized/index.d.ts +2 -2
- package/dist/workflow/normalized/index.d.ts.map +1 -1
- package/dist/workflow/normalized/index.js +2 -2
- package/dist/workflow/normalized/index.js.map +1 -1
- package/dist/workflow/normalized/labels.d.ts +7 -0
- package/dist/workflow/normalized/labels.d.ts.map +1 -1
- package/dist/workflow/normalized/labels.js +11 -0
- package/dist/workflow/normalized/labels.js.map +1 -1
- package/dist/workflow/normalized/native.js +5 -4
- package/dist/workflow/normalized/native.js.map +1 -1
- package/dist/workflow/normalized/toFormat2.d.ts +2 -0
- package/dist/workflow/normalized/toFormat2.d.ts.map +1 -1
- package/dist/workflow/normalized/toFormat2.js +28 -14
- package/dist/workflow/normalized/toFormat2.js.map +1 -1
- package/dist/workflow/normalized/toNative.d.ts +19 -2
- package/dist/workflow/normalized/toNative.d.ts.map +1 -1
- package/dist/workflow/normalized/toNative.js +55 -17
- package/dist/workflow/normalized/toNative.js.map +1 -1
- package/dist/workflow/raw/gxformat2-draft.d.ts +67 -9
- package/dist/workflow/raw/gxformat2-draft.d.ts.map +1 -1
- package/dist/workflow/raw/gxformat2-draft.effect.d.ts +1073 -161
- package/dist/workflow/raw/gxformat2-draft.effect.d.ts.map +1 -1
- package/dist/workflow/raw/gxformat2-draft.effect.js +184 -120
- package/dist/workflow/raw/gxformat2-draft.effect.js.map +1 -1
- package/dist/workflow/raw/gxformat2-draft.js +6 -0
- package/dist/workflow/raw/gxformat2-draft.js.map +1 -1
- package/dist/workflow/raw/gxformat2.d.ts +67 -9
- package/dist/workflow/raw/gxformat2.d.ts.map +1 -1
- package/dist/workflow/raw/gxformat2.effect.d.ts +591 -143
- package/dist/workflow/raw/gxformat2.effect.d.ts.map +1 -1
- package/dist/workflow/raw/gxformat2.effect.js +169 -105
- package/dist/workflow/raw/gxformat2.effect.js.map +1 -1
- package/dist/workflow/raw/gxformat2.js +6 -0
- package/dist/workflow/raw/gxformat2.js.map +1 -1
- package/dist/workflow/raw/native.d.ts +14 -0
- package/dist/workflow/raw/native.d.ts.map +1 -1
- package/dist/workflow/raw/native.effect.d.ts +45 -30
- package/dist/workflow/raw/native.effect.d.ts.map +1 -1
- package/dist/workflow/raw/native.effect.js +40 -26
- package/dist/workflow/raw/native.effect.js.map +1 -1
- package/dist/workflow/raw/native.js.map +1 -1
- package/dist/workflow/schema_rules.yml +9 -0
- package/dist/workflow/semantic-validators.d.ts +9 -0
- package/dist/workflow/semantic-validators.d.ts.map +1 -1
- package/dist/workflow/semantic-validators.js +42 -20
- package/dist/workflow/semantic-validators.js.map +1 -1
- package/dist/workflow/strict-checks.d.ts.map +1 -1
- package/dist/workflow/strict-checks.js +2 -3
- package/dist/workflow/strict-checks.js.map +1 -1
- package/dist/workflow/validators.d.ts +7 -4
- package/dist/workflow/validators.d.ts.map +1 -1
- package/dist/workflow/validators.js +20 -9
- package/dist/workflow/validators.js.map +1 -1
- package/package.json +1 -1
|
@@ -10,8 +10,15 @@
|
|
|
10
10
|
* (runtime tool-state validation): these are structural-but-cross-field
|
|
11
11
|
* Format2 rules.
|
|
12
12
|
*/
|
|
13
|
+
import { inputTypesDeclaring } from "./input-parameter.js";
|
|
13
14
|
const COLUMN_NAME_RE = /^[\w\-_ ?]*$/;
|
|
14
|
-
|
|
15
|
+
// Galaxy offers `multiple` on neither.
|
|
16
|
+
const SCALAR_ONLY_TYPE_VALUES = new Set(["color", "directory_uri"]);
|
|
17
|
+
// Parameter fields valid only on the input types whose schema declares them.
|
|
18
|
+
const PARAMETER_FIELD_TYPE_VALUES = new Map(["restrictions", "suggestions", "restrictOnConnections", "validators"].map((field) => [
|
|
19
|
+
field,
|
|
20
|
+
inputTypesDeclaring(field),
|
|
21
|
+
]));
|
|
15
22
|
const COLLECTION_TYPE_VALUES = new Set(["collection", "data_collection", "data_collection_input"]);
|
|
16
23
|
function _columnDefaultMatchesType(columnType, value) {
|
|
17
24
|
if (value == null)
|
|
@@ -27,8 +34,9 @@ function _columnDefaultMatchesType(columnType, value) {
|
|
|
27
34
|
return true;
|
|
28
35
|
}
|
|
29
36
|
function validateColumnDefinition(column) {
|
|
30
|
-
if (!column || typeof column !== "object")
|
|
31
|
-
|
|
37
|
+
if (!column || typeof column !== "object" || Array.isArray(column)) {
|
|
38
|
+
throw new Error("Expected a mapping for semantic validation");
|
|
39
|
+
}
|
|
32
40
|
const col = column;
|
|
33
41
|
const name = col.name;
|
|
34
42
|
if (typeof name === "string" && !COLUMN_NAME_RE.test(name)) {
|
|
@@ -41,8 +49,11 @@ function validateColumnDefinition(column) {
|
|
|
41
49
|
}
|
|
42
50
|
for (const field of ["restrictions", "suggestions"]) {
|
|
43
51
|
const values = col[field];
|
|
44
|
-
if (
|
|
52
|
+
if (values == null || (Array.isArray(values) && values.length === 0))
|
|
45
53
|
continue;
|
|
54
|
+
if (!Array.isArray(values)) {
|
|
55
|
+
throw new Error(`Sample sheet column '${String(name)}' ${field} must be a list`);
|
|
56
|
+
}
|
|
46
57
|
for (const v of values) {
|
|
47
58
|
if (!_columnDefaultMatchesType(columnType, v)) {
|
|
48
59
|
throw new Error(`Sample sheet column '${String(name)}' ${field} entry ${JSON.stringify(v)} does not match column type ${JSON.stringify(columnType)}`);
|
|
@@ -57,14 +68,22 @@ function _typeList(typeValue) {
|
|
|
57
68
|
return [];
|
|
58
69
|
return [String(typeValue)];
|
|
59
70
|
}
|
|
60
|
-
function validateInputParameter(inputParam) {
|
|
71
|
+
export function validateInputParameter(inputParam) {
|
|
61
72
|
if (!inputParam || typeof inputParam !== "object")
|
|
62
73
|
return;
|
|
63
74
|
const data = inputParam;
|
|
64
75
|
const typeValues = _typeList(data.type);
|
|
65
|
-
const isTextOnly = typeValues.length > 0 && typeValues.every((t) => TEXT_TYPE_VALUES.has(t));
|
|
66
76
|
const isCollectionOnly = typeValues.length > 0 && typeValues.every((t) => COLLECTION_TYPE_VALUES.has(t));
|
|
77
|
+
if (Array.isArray(data.type) && typeValues.some((t) => SCALAR_ONLY_TYPE_VALUES.has(t))) {
|
|
78
|
+
throw new Error(`multiple values are not supported for type=${JSON.stringify(data.type)}`);
|
|
79
|
+
}
|
|
80
|
+
if (data.collection_type != null && typeof data.collection_type !== "string") {
|
|
81
|
+
throw new Error("collection_type must be a string");
|
|
82
|
+
}
|
|
67
83
|
const columnDefinitions = data.column_definitions;
|
|
84
|
+
if (columnDefinitions != null && !Array.isArray(columnDefinitions)) {
|
|
85
|
+
throw new Error("column_definitions must be a list");
|
|
86
|
+
}
|
|
68
87
|
if (Array.isArray(columnDefinitions) && columnDefinitions.length > 0) {
|
|
69
88
|
if (!isCollectionOnly && typeValues.length > 0) {
|
|
70
89
|
throw new Error(`column_definitions is only valid on collection inputs, got type=${JSON.stringify(data.type)}`);
|
|
@@ -77,26 +96,29 @@ function validateInputParameter(inputParam) {
|
|
|
77
96
|
validateColumnDefinition(column);
|
|
78
97
|
}
|
|
79
98
|
}
|
|
80
|
-
for (const field of ["restrictions", "suggestions", "restrictOnConnections"]) {
|
|
81
|
-
const value = data[field];
|
|
82
|
-
if (value == null)
|
|
83
|
-
continue;
|
|
84
|
-
if (Array.isArray(value) && value.length === 0)
|
|
85
|
-
continue;
|
|
86
|
-
if (value === false)
|
|
87
|
-
continue;
|
|
88
|
-
if (typeValues.length > 0 && !isTextOnly) {
|
|
89
|
-
throw new Error(`${field} is only valid on text/string inputs, got type=${JSON.stringify(data.type)}`);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
99
|
// Record-input fields validation (mirrors gxformat2 #216).
|
|
93
100
|
const fields = data.fields;
|
|
94
101
|
if (Array.isArray(fields) && fields.length > 0) {
|
|
102
|
+
if (!isCollectionOnly && typeValues.length > 0) {
|
|
103
|
+
throw new Error(`fields is only valid on collection inputs, got type=${JSON.stringify(data.type)}`);
|
|
104
|
+
}
|
|
95
105
|
const collectionType = typeof data.collection_type === "string" ? data.collection_type : "";
|
|
96
106
|
if (!collectionType.split(":").some((part) => part === "record")) {
|
|
97
107
|
throw new Error(`fields is only valid on record-typed collection inputs, got collection_type=${JSON.stringify(data.collection_type)}`);
|
|
98
108
|
}
|
|
99
109
|
}
|
|
110
|
+
for (const [field, allowedTypes] of PARAMETER_FIELD_TYPE_VALUES) {
|
|
111
|
+
const value = data[field];
|
|
112
|
+
// restrictOnConnections=false is the schema default and harmless.
|
|
113
|
+
if (value == null || value === false)
|
|
114
|
+
continue;
|
|
115
|
+
if (Array.isArray(value) && value.length === 0)
|
|
116
|
+
continue;
|
|
117
|
+
if (typeValues.length > 0 && !typeValues.every((t) => allowedTypes.has(t))) {
|
|
118
|
+
const allowed = [...allowedTypes].sort().join("/");
|
|
119
|
+
throw new Error(`${field} is only valid on ${allowed} inputs, got type=${JSON.stringify(data.type)}`);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
100
122
|
}
|
|
101
123
|
/**
|
|
102
124
|
* True when a step's `state`/`tool_state` field actually carries content.
|
|
@@ -124,7 +146,7 @@ function _stateIsSpecified(value) {
|
|
|
124
146
|
* says "Only one or the other should be specified") — they are two encodings of
|
|
125
147
|
* the same tool state, so carrying both is ambiguous.
|
|
126
148
|
*/
|
|
127
|
-
function validateStep(step) {
|
|
149
|
+
export function validateStep(step) {
|
|
128
150
|
if (_stateIsSpecified(step.state) && _stateIsSpecified(step.tool_state)) {
|
|
129
151
|
throw new Error("Workflow step specifies both 'state' and 'tool_state'; only one may be set");
|
|
130
152
|
}
|
|
@@ -161,7 +183,7 @@ export function validateWorkflowSemantics(workflow) {
|
|
|
161
183
|
const run = step.run;
|
|
162
184
|
if (run &&
|
|
163
185
|
typeof run === "object" &&
|
|
164
|
-
run.class
|
|
186
|
+
["GalaxyWorkflow", "GalaxyWorkflowDraft"].includes(String(run.class))) {
|
|
165
187
|
validateWorkflowSemantics(run);
|
|
166
188
|
}
|
|
167
189
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semantic-validators.js","sourceRoot":"","sources":["../../src/workflow/semantic-validators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,cAAc,GAAG,cAAc,CAAC;AAEtC,MAAM,
|
|
1
|
+
{"version":3,"file":"semantic-validators.js","sourceRoot":"","sources":["../../src/workflow/semantic-validators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,cAAc,GAAG,cAAc,CAAC;AAEtC,uCAAuC;AACvC,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;AACpE,6EAA6E;AAC7E,MAAM,2BAA2B,GAAG,IAAI,GAAG,CACxC,CAAC,cAAc,EAAE,aAAa,EAAE,uBAAuB,EAAE,YAAY,CAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;IAC/F,KAAK;IACL,mBAAmB,CAAC,KAAK,CAAC;CAC3B,CAAC,CACH,CAAC;AACF,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,iBAAiB,EAAE,uBAAuB,CAAC,CAAC,CAAC;AAEnG,SAAS,yBAAyB,CAAC,UAAmB,EAAE,KAAc;IACpE,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,oBAAoB;QAChE,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;IACnC,IAAI,UAAU,KAAK,KAAK;QACtB,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,SAAS,CAAC;IAC5F,IAAI,UAAU,KAAK,OAAO;QAAE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,CAAC;IAC3F,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,OAAO,KAAK,KAAK,SAAS,CAAC;IAChE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,wBAAwB,CAAC,MAAe;IAC/C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,GAAG,GAAG,MAAiC,CAAC;IAC9C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACtB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,kCAAkC,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC;IAC5B,MAAM,YAAY,GAAG,GAAG,CAAC,aAAa,CAAC;IACvC,IAAI,CAAC,yBAAyB,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CACb,wBAAwB,MAAM,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,+BAA+B,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAC/I,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,CAAC,cAAc,EAAE,aAAa,CAAU,EAAE,CAAC;QAC7D,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;YAAE,SAAS;QAC/E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,iBAAiB,CAAC,CAAC;QACnF,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,IAAI,CAAC,yBAAyB,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC;gBAC9C,MAAM,IAAI,KAAK,CACb,wBAAwB,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,UAAU,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,+BAA+B,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CACrI,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,SAAkB;IACnC,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3D,IAAI,SAAS,IAAI,IAAI;QAAE,OAAO,EAAE,CAAC;IACjC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,UAAmB;IACxD,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ;QAAE,OAAO;IAC1D,MAAM,IAAI,GAAG,UAAqC,CAAC;IACnD,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,gBAAgB,GACpB,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAClF,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,MAAM,IAAI,KAAK,CAAC,8CAA8C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;QAC7E,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC;IAClD,IAAI,iBAAiB,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrE,IAAI,CAAC,gBAAgB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CACb,mEAAmE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC/F,CAAC;QACJ,CAAC;QACD,MAAM,cAAc,GAAG,OAAO,IAAI,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5F,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CACb,iFAAiF,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,CAClH,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,iBAAiB,EAAE,CAAC;YACvC,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,2DAA2D;IAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/C,IAAI,CAAC,gBAAgB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CACb,uDAAuD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACnF,CAAC;QACJ,CAAC;QACD,MAAM,cAAc,GAAG,OAAO,IAAI,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5F,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;YACjE,MAAM,IAAI,KAAK,CACb,+EAA+E,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CACtH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,2BAA2B,EAAE,CAAC;QAChE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,kEAAkE;QAClE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK;YAAE,SAAS;QAC/C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACzD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,MAAM,OAAO,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnD,MAAM,IAAI,KAAK,CACb,GAAG,KAAK,qBAAqB,OAAO,qBAAqB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACrF,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IAChC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC;IAChC,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAgC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/F,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,IAA6B;IACxD,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;IAChG,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,QAAiB;IACzD,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO;IACtD,MAAM,IAAI,GAAG,QAAmC,CAAC;IAEjD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,IAAI,UAAU,GAAc,EAAE,CAAC;IAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,UAAU,GAAG,MAAM,CAAC;SAC1C,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClF,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,SAAS;QACtC,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACzB,IAAI,SAAS,GAAc,EAAE,CAAC;IAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,SAAS,GAAG,KAAK,CAAC;SACvC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9E,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,SAAS;QAChD,YAAY,CAAC,IAA+B,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAI,IAAgC,CAAC,GAAG,CAAC;QAClD,IACE,GAAG;YACH,OAAO,GAAG,KAAK,QAAQ;YACvB,CAAC,gBAAgB,EAAE,qBAAqB,CAAC,CAAC,QAAQ,CAChD,MAAM,CAAE,GAA+B,CAAC,KAAK,CAAC,CAC/C,EACD,CAAC;YACD,yBAAyB,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strict-checks.d.ts","sourceRoot":"","sources":["../../src/workflow/strict-checks.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAQzD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAqBtF;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAiBvF;AAED,8DAA8D;AAC9D,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,MAAM,CAAC,EAAE,cAAc,GACtB,MAAM,EAAE,CAKV;AASD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,MAAM,CAAC,EAAE,cAAc,GACtB,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"strict-checks.d.ts","sourceRoot":"","sources":["../../src/workflow/strict-checks.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAQzD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAqBtF;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAiBvF;AAED,8DAA8D;AAC9D,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,MAAM,CAAC,EAAE,cAAc,GACtB,MAAM,EAAE,CAKV;AASD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,MAAM,CAAC,EAAE,cAAc,GACtB,MAAM,EAAE,CAaV"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { NativeGalaxyWorkflowSchema, GalaxyWorkflowSchema } from "./raw/index.js";
|
|
8
8
|
import { detectFormat } from "./detect-format.js";
|
|
9
|
-
import {
|
|
9
|
+
import { withDecodeClass } from "./validators.js";
|
|
10
10
|
import * as ParseResult from "effect/ParseResult";
|
|
11
11
|
import * as S from "effect/Schema";
|
|
12
12
|
// ── Encoding checks ──────────────────────────────────────────────────
|
|
@@ -82,8 +82,7 @@ function formatIssues(error) {
|
|
|
82
82
|
*/
|
|
83
83
|
export function checkStrictStructure(workflowDict, format) {
|
|
84
84
|
const fmt = format ?? detectFormat(workflowDict);
|
|
85
|
-
const
|
|
86
|
-
const data = withClass(workflowDict, cls);
|
|
85
|
+
const data = withDecodeClass(workflowDict, fmt);
|
|
87
86
|
const schema = fmt === "native" ? NativeGalaxyWorkflowSchema : GalaxyWorkflowSchema;
|
|
88
87
|
const decode = S.decodeUnknownEither(schema, { onExcessProperty: "error" });
|
|
89
88
|
const result = decode(data);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strict-checks.js","sourceRoot":"","sources":["../../src/workflow/strict-checks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAElF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"strict-checks.js","sourceRoot":"","sources":["../../src/workflow/strict-checks.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,11 +5,12 @@
|
|
|
5
5
|
* back the decoded value or throw on validation failure. Used by the schema-rule
|
|
6
6
|
* catalog runner and declarative-operation tests.
|
|
7
7
|
*
|
|
8
|
-
* The generated Effect schemas make `class` a required literal
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
8
|
+
* The generated Effect schemas make `class` a required literal. Native `.ga`
|
|
9
|
+
* files never carry it and Format2 inline `run:` subworkflows may omit it, so
|
|
10
|
+
* `withDecodeClass` injects it there; a Format2 root must declare it
|
|
11
|
+
* (`Format2MissingClass`, gxformat2 #278).
|
|
12
12
|
*/
|
|
13
|
+
import type { WorkflowFormat } from "./detect-format.js";
|
|
13
14
|
/**
|
|
14
15
|
* Return `raw` with `class: cls` injected if missing, and the same injection
|
|
15
16
|
* applied recursively to step subworkflows. Native steps embed subworkflows
|
|
@@ -20,6 +21,8 @@
|
|
|
20
21
|
* subworkflows inherit `"GalaxyWorkflow"`, native inherit `"NativeGalaxyWorkflow"`.
|
|
21
22
|
*/
|
|
22
23
|
export declare function withClass(raw: unknown, cls: string): unknown;
|
|
24
|
+
/** Inject `class` where decoding needs it: everywhere for native, inline runs only for Format2. */
|
|
25
|
+
export declare function withDecodeClass(raw: unknown, format: WorkflowFormat): unknown;
|
|
23
26
|
export declare function validateFormat2(wf: unknown): unknown;
|
|
24
27
|
export declare function validateFormat2Strict(wf: unknown): unknown;
|
|
25
28
|
export declare function validateNative(wf: unknown): unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/workflow/validators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/workflow/validators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAKzD;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAI5D;AAED,mGAAmG;AACnG,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAI7E;AAoCD,wBAAgB,eAAe,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAMpD;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAM1D;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAInD;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAIzD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,OAAO,GACd,CAAC,EAAE,EAAE,OAAO,KAAK,OAAO,CAK1B"}
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
* back the decoded value or throw on validation failure. Used by the schema-rule
|
|
6
6
|
* catalog runner and declarative-operation tests.
|
|
7
7
|
*
|
|
8
|
-
* The generated Effect schemas make `class` a required literal
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
8
|
+
* The generated Effect schemas make `class` a required literal. Native `.ga`
|
|
9
|
+
* files never carry it and Format2 inline `run:` subworkflows may omit it, so
|
|
10
|
+
* `withDecodeClass` injects it there; a Format2 root must declare it
|
|
11
|
+
* (`Format2MissingClass`, gxformat2 #278).
|
|
12
12
|
*/
|
|
13
13
|
import { Schema } from "effect";
|
|
14
14
|
import { GalaxyWorkflowSchema } from "./raw/gxformat2.effect.js";
|
|
@@ -27,7 +27,18 @@ export function withClass(raw, cls) {
|
|
|
27
27
|
if (!raw || typeof raw !== "object" || Array.isArray(raw))
|
|
28
28
|
return raw;
|
|
29
29
|
const obj = raw;
|
|
30
|
-
|
|
30
|
+
return withStepSubworkflowClass("class" in obj ? obj : { ...obj, class: cls }, cls);
|
|
31
|
+
}
|
|
32
|
+
/** Inject `class` where decoding needs it: everywhere for native, inline runs only for Format2. */
|
|
33
|
+
export function withDecodeClass(raw, format) {
|
|
34
|
+
if (format === "native")
|
|
35
|
+
return withClass(raw, "NativeGalaxyWorkflow");
|
|
36
|
+
if (!raw || typeof raw !== "object" || Array.isArray(raw))
|
|
37
|
+
return raw;
|
|
38
|
+
return withStepSubworkflowClass(raw, "GalaxyWorkflow");
|
|
39
|
+
}
|
|
40
|
+
function withStepSubworkflowClass(obj, cls) {
|
|
41
|
+
const result = { ...obj };
|
|
31
42
|
const steps = result.steps;
|
|
32
43
|
if (!steps || typeof steps !== "object")
|
|
33
44
|
return result;
|
|
@@ -58,20 +69,20 @@ function injectStepSubworkflow(step, cls) {
|
|
|
58
69
|
return s;
|
|
59
70
|
}
|
|
60
71
|
export function validateFormat2(wf) {
|
|
61
|
-
const decoded = Schema.decodeUnknownSync(GalaxyWorkflowSchema, { onExcessProperty: "ignore" })(
|
|
72
|
+
const decoded = Schema.decodeUnknownSync(GalaxyWorkflowSchema, { onExcessProperty: "ignore" })(withDecodeClass(wf, "format2"));
|
|
62
73
|
validateWorkflowSemantics(wf);
|
|
63
74
|
return decoded;
|
|
64
75
|
}
|
|
65
76
|
export function validateFormat2Strict(wf) {
|
|
66
|
-
const decoded = Schema.decodeUnknownSync(GalaxyWorkflowSchema, { onExcessProperty: "error" })(
|
|
77
|
+
const decoded = Schema.decodeUnknownSync(GalaxyWorkflowSchema, { onExcessProperty: "error" })(withDecodeClass(wf, "format2"));
|
|
67
78
|
validateWorkflowSemantics(wf);
|
|
68
79
|
return decoded;
|
|
69
80
|
}
|
|
70
81
|
export function validateNative(wf) {
|
|
71
|
-
return Schema.decodeUnknownSync(NativeGalaxyWorkflowSchema, { onExcessProperty: "ignore" })(
|
|
82
|
+
return Schema.decodeUnknownSync(NativeGalaxyWorkflowSchema, { onExcessProperty: "ignore" })(withDecodeClass(wf, "native"));
|
|
72
83
|
}
|
|
73
84
|
export function validateNativeStrict(wf) {
|
|
74
|
-
return Schema.decodeUnknownSync(NativeGalaxyWorkflowSchema, { onExcessProperty: "error" })(
|
|
85
|
+
return Schema.decodeUnknownSync(NativeGalaxyWorkflowSchema, { onExcessProperty: "error" })(withDecodeClass(wf, "native"));
|
|
75
86
|
}
|
|
76
87
|
/**
|
|
77
88
|
* Pick the validator matching a fixture filename's format.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/workflow/validators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/workflow/validators.ts"],"names":[],"mappings":"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"}
|