@galaxy-tool-util/schema 1.10.0 → 1.12.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.
Files changed (75) hide show
  1. package/dist/index.d.ts +26 -3
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +20 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/schema/bundle-types.d.ts +6 -2
  6. package/dist/schema/bundle-types.d.ts.map +1 -1
  7. package/dist/schema/bundle-types.js.map +1 -1
  8. package/dist/schema/parameter-defaults.d.ts.map +1 -1
  9. package/dist/schema/parameter-defaults.js +7 -3
  10. package/dist/schema/parameter-defaults.js.map +1 -1
  11. package/dist/schema/parameters/base.d.ts.map +1 -1
  12. package/dist/schema/parameters/base.js +3 -1
  13. package/dist/schema/parameters/base.js.map +1 -1
  14. package/dist/schema/parameters/gx-drill-down.js +2 -1
  15. package/dist/schema/parameters/gx-drill-down.js.map +1 -1
  16. package/dist/schema/parameters/gx-text.js +2 -2
  17. package/dist/schema/parameters/gx-text.js.map +1 -1
  18. package/dist/schema/parsed-tool.d.ts +180 -10
  19. package/dist/schema/parsed-tool.d.ts.map +1 -1
  20. package/dist/schema/parsed-tool.js +56 -2
  21. package/dist/schema/parsed-tool.js.map +1 -1
  22. package/dist/schema/state-representations.js +1 -1
  23. package/dist/schema/state-representations.js.map +1 -1
  24. package/dist/tool-state-validator.d.ts +2 -2
  25. package/dist/tool-state-validator.d.ts.map +1 -1
  26. package/dist/tool-state-validator.js +4 -4
  27. package/dist/tool-state-validator.js.map +1 -1
  28. package/dist/trs/index.d.ts +110 -0
  29. package/dist/trs/index.d.ts.map +1 -0
  30. package/dist/trs/index.js +64 -0
  31. package/dist/trs/index.js.map +1 -0
  32. package/dist/user-tool-parse/index.d.ts +4 -1
  33. package/dist/user-tool-parse/index.d.ts.map +1 -1
  34. package/dist/user-tool-parse/index.js +4 -1
  35. package/dist/user-tool-parse/index.js.map +1 -1
  36. package/dist/user-tool-parse/input-source.d.ts +105 -0
  37. package/dist/user-tool-parse/input-source.d.ts.map +1 -0
  38. package/dist/user-tool-parse/input-source.js +271 -0
  39. package/dist/user-tool-parse/input-source.js.map +1 -0
  40. package/dist/user-tool-parse/inputs.d.ts +15 -8
  41. package/dist/user-tool-parse/inputs.d.ts.map +1 -1
  42. package/dist/user-tool-parse/inputs.js +188 -295
  43. package/dist/user-tool-parse/inputs.js.map +1 -1
  44. package/dist/user-tool-parse/outputs.d.ts +2 -1
  45. package/dist/user-tool-parse/outputs.d.ts.map +1 -1
  46. package/dist/user-tool-parse/outputs.js +4 -3
  47. package/dist/user-tool-parse/outputs.js.map +1 -1
  48. package/dist/user-tool-parse/parse.d.ts +17 -2
  49. package/dist/user-tool-parse/parse.d.ts.map +1 -1
  50. package/dist/user-tool-parse/parse.js +23 -6
  51. package/dist/user-tool-parse/parse.js.map +1 -1
  52. package/dist/workflow/draft-checks.d.ts.map +1 -1
  53. package/dist/workflow/draft-checks.js +58 -37
  54. package/dist/workflow/draft-checks.js.map +1 -1
  55. package/dist/workflow/normalized/stateful-runner.d.ts +3 -1
  56. package/dist/workflow/normalized/stateful-runner.d.ts.map +1 -1
  57. package/dist/workflow/normalized/stateful-runner.js +1 -1
  58. package/dist/workflow/normalized/stateful-runner.js.map +1 -1
  59. package/dist/workflow/normalized/toFormat2Stateful.js +8 -10
  60. package/dist/workflow/normalized/toFormat2Stateful.js.map +1 -1
  61. package/dist/workflow/normalized/toNativeStateful.d.ts.map +1 -1
  62. package/dist/workflow/normalized/toNativeStateful.js +3 -10
  63. package/dist/workflow/normalized/toNativeStateful.js.map +1 -1
  64. package/dist/workflow/report-models.d.ts +1 -1
  65. package/dist/workflow/report-models.d.ts.map +1 -1
  66. package/dist/workflow/report-models.js +1 -0
  67. package/dist/workflow/report-models.js.map +1 -1
  68. package/dist/workflow/stateful-convert.d.ts.map +1 -1
  69. package/dist/workflow/stateful-convert.js +6 -0
  70. package/dist/workflow/stateful-convert.js.map +1 -1
  71. package/dist/workflow/stateful-validate.d.ts +12 -5
  72. package/dist/workflow/stateful-validate.d.ts.map +1 -1
  73. package/dist/workflow/stateful-validate.js +62 -24
  74. package/dist/workflow/stateful-validate.js.map +1 -1
  75. package/package.json +1 -1
@@ -0,0 +1,271 @@
1
+ /**
2
+ * `InputSource` / `PageSource` seam — the TS mirror of Galaxy's
3
+ * `galaxy.tool_util.parser.interface.InputSource` / `PageSource`. Decouples the
4
+ * input-tree walk (who reads the source) from the parameter-model factory in
5
+ * `./inputs.ts` (the `_from_input_source_galaxy` + `input_models_for_page`
6
+ * equivalent), so an XML-backed source in `@galaxy-tool-util/tool-xml` can feed
7
+ * the same factory.
8
+ *
9
+ * This module is the dependency-free interface plus the inline/YAML dict
10
+ * implementation (`DictInputSource` / `DictPageSource`), mirroring Galaxy's
11
+ * `YamlInputSource` / `YamlPageSource`. Coercion here is dict-native (native
12
+ * YAML bools/numbers pass through `get`; string coercion matches the previous
13
+ * inline reads) — it deliberately does NOT adopt XML's `string_as_bool`
14
+ * semantics, which live on the XML source in `tool-xml`.
15
+ *
16
+ * Only the methods the current factory consumes are on the interface. Further
17
+ * Galaxy accessors (dynamic options, `get_bool_or_none`, conversion tuples,
18
+ * sanitizers) land with the feature slices that need them.
19
+ */
20
+ export class DictPageSource {
21
+ raw;
22
+ constructor(raw) {
23
+ this.raw = raw;
24
+ }
25
+ parseInputSources() {
26
+ return normalizeInputList(this.raw).map((d) => new DictInputSource(d));
27
+ }
28
+ }
29
+ export class DictInputSource {
30
+ input;
31
+ constructor(input) {
32
+ this.input = input;
33
+ }
34
+ get(key, defaultValue) {
35
+ const v = this.input[key];
36
+ return v === undefined ? defaultValue : v;
37
+ }
38
+ getBool(key, defaultValue) {
39
+ return readBool(this.input[key], defaultValue);
40
+ }
41
+ parseInputType() {
42
+ const t = this.input.type;
43
+ if (t === "conditional")
44
+ return "conditional";
45
+ if (t === "repeat")
46
+ return "repeat";
47
+ return "param";
48
+ }
49
+ parseName() {
50
+ return readString(this.input.name);
51
+ }
52
+ parseLabel() {
53
+ return readNullableString(this.input.label);
54
+ }
55
+ parseHelp() {
56
+ return readNullableString(this.input.help);
57
+ }
58
+ parseOptional(defaultValue = false) {
59
+ return readBool(this.input.optional, defaultValue);
60
+ }
61
+ parseExtensions() {
62
+ const explicit = this.input.extensions;
63
+ let raw = explicit;
64
+ if (raw === undefined || raw === null || (Array.isArray(raw) && raw.length === 0)) {
65
+ raw = this.input.format ?? "data";
66
+ }
67
+ let list;
68
+ if (Array.isArray(raw)) {
69
+ list = raw;
70
+ }
71
+ else if (typeof raw === "string") {
72
+ list = raw.split(",");
73
+ }
74
+ else {
75
+ list = ["data"];
76
+ }
77
+ return list.map((v) => String(v).trim().toLowerCase()).filter((v) => v !== "");
78
+ }
79
+ hasDynamicOptions() {
80
+ // YAML/inline selects are always static (Galaxy's base `parse_dynamic_options`
81
+ // returns `None`; `YamlInputSource` does not override it).
82
+ return false;
83
+ }
84
+ hasDrillDownDynamicOptions() {
85
+ // As with `hasDynamicOptions`, the inline/YAML source is always static.
86
+ return false;
87
+ }
88
+ parseStaticOptions() {
89
+ const opts = this.input.options;
90
+ if (!Array.isArray(opts))
91
+ return null;
92
+ const out = [];
93
+ for (const item of opts) {
94
+ if (!isDict(item))
95
+ continue;
96
+ const value = item.value;
97
+ if (value === undefined)
98
+ continue;
99
+ const valueStr = String(value);
100
+ const label = typeof item.label === "string" ? item.label : valueStr;
101
+ const selected = readBool(item.selected, false);
102
+ out.push({ label, value: valueStr, selected });
103
+ }
104
+ return out;
105
+ }
106
+ parseDrillDownStaticOptions() {
107
+ return parseDrillDownOptions(this.input.options);
108
+ }
109
+ parseValidators() {
110
+ const raw = this.input.validators;
111
+ if (!Array.isArray(raw))
112
+ return [];
113
+ const all = [];
114
+ for (const entry of raw) {
115
+ if (!isDict(entry))
116
+ continue;
117
+ const v = parseValidatorDict(entry);
118
+ if (v)
119
+ all.push(v);
120
+ }
121
+ return all;
122
+ }
123
+ parseNestedInputsSource() {
124
+ const inner = this.input.blocks ?? this.input.parameters ?? this.input.inputs;
125
+ return new DictPageSource(inner);
126
+ }
127
+ parseTestInputSource() {
128
+ const testRaw = this.input.test_parameter;
129
+ if (!isDict(testRaw)) {
130
+ throw new Error(`conditional '${this.parseName()}' must define a 'test_parameter'`);
131
+ }
132
+ return new DictInputSource(testRaw);
133
+ }
134
+ parseWhenInputSources() {
135
+ const out = [];
136
+ // YAML supports two shapes: `when: {key: [params], ...}` (map) and `whens:
137
+ // [{discriminator, parameters: [...]}]` (list).
138
+ const whenMap = this.input.when;
139
+ const whenList = this.input.whens;
140
+ if (isDict(whenMap)) {
141
+ for (const [key, value] of Object.entries(whenMap)) {
142
+ out.push([key, new DictPageSource(Array.isArray(value) ? value : [])]);
143
+ }
144
+ }
145
+ else if (Array.isArray(whenList)) {
146
+ for (const item of whenList) {
147
+ if (!isDict(item))
148
+ continue;
149
+ out.push([item.discriminator, new DictPageSource(item.parameters)]);
150
+ }
151
+ }
152
+ return out;
153
+ }
154
+ parseDefault() {
155
+ return this.input.default;
156
+ }
157
+ }
158
+ function normalizeInputList(raw) {
159
+ if (Array.isArray(raw)) {
160
+ return raw.filter(isDict);
161
+ }
162
+ if (raw && typeof raw === "object") {
163
+ const out = [];
164
+ for (const [k, v] of Object.entries(raw)) {
165
+ if (isDict(v)) {
166
+ const merged = { ...v };
167
+ if (merged.name == null)
168
+ merged.name = k;
169
+ out.push(merged);
170
+ }
171
+ }
172
+ return out;
173
+ }
174
+ return [];
175
+ }
176
+ function parseDrillDownOptions(raw) {
177
+ if (!Array.isArray(raw))
178
+ return null;
179
+ return raw.filter(isDict).map(parseDrillDownOption);
180
+ }
181
+ function parseDrillDownOption(entry) {
182
+ return {
183
+ value: String(entry.value ?? ""),
184
+ name: String(entry.name ?? entry.value ?? ""),
185
+ options: parseDrillDownOptions(entry.options) ?? [],
186
+ selected: readBool(entry.selected, false),
187
+ };
188
+ }
189
+ function parseValidatorDict(entry) {
190
+ const type = readString(entry.type);
191
+ const negate = readBool(entry.negate, false);
192
+ switch (type) {
193
+ case "in_range":
194
+ return {
195
+ type: "in_range",
196
+ min: readNullableFloat(entry.min),
197
+ max: readNullableFloat(entry.max),
198
+ exclude_min: readBool(entry.exclude_min, false),
199
+ exclude_max: readBool(entry.exclude_max, false),
200
+ negate,
201
+ message: readNullableString(entry.message),
202
+ };
203
+ case "regex":
204
+ return { type: "regex", expression: readString(entry.expression), negate };
205
+ case "length":
206
+ return {
207
+ type: "length",
208
+ min: readNullableInt(entry.min),
209
+ max: readNullableInt(entry.max),
210
+ negate,
211
+ };
212
+ case "expression":
213
+ return { type: "expression", expression: readString(entry.expression), negate };
214
+ case "empty_field":
215
+ return { type: "empty_field", negate };
216
+ case "no_options":
217
+ return { type: "no_options", negate };
218
+ default:
219
+ return null;
220
+ }
221
+ }
222
+ // --- Shared dict coercion helpers (also used by the factory in ./inputs.ts). ---
223
+ export function isDict(v) {
224
+ return v != null && typeof v === "object" && !Array.isArray(v);
225
+ }
226
+ export function readString(v) {
227
+ return typeof v === "string" ? v : v == null ? "" : String(v);
228
+ }
229
+ export function readNullableString(v) {
230
+ if (v === undefined || v === null)
231
+ return null;
232
+ if (typeof v === "string")
233
+ return v;
234
+ return String(v);
235
+ }
236
+ export function readBool(v, fallback) {
237
+ if (typeof v === "boolean")
238
+ return v;
239
+ if (typeof v === "string") {
240
+ const lower = v.toLowerCase();
241
+ if (lower === "true" || lower === "yes" || lower === "1")
242
+ return true;
243
+ if (lower === "false" || lower === "no" || lower === "0")
244
+ return false;
245
+ }
246
+ return fallback;
247
+ }
248
+ export function coerceBool(v) {
249
+ if (typeof v === "boolean")
250
+ return v;
251
+ if (typeof v === "string") {
252
+ const lower = v.toLowerCase();
253
+ if (lower === "true" || lower === "yes" || lower === "1")
254
+ return true;
255
+ return false;
256
+ }
257
+ return Boolean(v);
258
+ }
259
+ export function readNullableInt(v) {
260
+ if (v === undefined || v === null || v === "")
261
+ return null;
262
+ const n = parseInt(String(v), 10);
263
+ return Number.isNaN(n) ? null : n;
264
+ }
265
+ export function readNullableFloat(v) {
266
+ if (v === undefined || v === null || v === "")
267
+ return null;
268
+ const n = Number(v);
269
+ return Number.isNaN(n) ? null : n;
270
+ }
271
+ //# sourceMappingURL=input-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-source.js","sourceRoot":"","sources":["../../src/user-tool-parse/input-source.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,20 @@
1
1
  /**
2
- * Inline tool input parser. Mirrors
3
- * `galaxy.tool_util.parameters.factory._from_input_source_galaxy`, normalized
4
- * to the YAML pathway only (no XML). Produces the Galaxy `ToolParameterModel`
5
- * union from `bundle-types.ts`. Validator handling is best-effort: we read
6
- * `validators: [{type, ...}]` entries verbatim, mirroring
7
- * `static_validators(parse_dict_validators(...))` once you've stripped the XML
8
- * shorthand handling and the `in_range` synthesis from `min`/`max` (which is
9
- * what Python does too).
2
+ * Tool input factory. Mirrors
3
+ * `galaxy.tool_util.parameters.factory._from_input_source_galaxy` +
4
+ * `input_models_for_page`: it consumes an `InputSource` (see `./input-source.ts`)
5
+ * rather than a raw dict, so both the inline/YAML source and an XML source in
6
+ * `@galaxy-tool-util/tool-xml` build the same `ToolParameterModel` union from
7
+ * `bundle-types.ts`. Validator handling is best-effort: `parse_validators`
8
+ * returns every parsed validator and the factory keeps the ones valid for the
9
+ * parameter type (mirrors `static_validators(...)`).
10
10
  */
11
11
  import type { ToolParameterModel } from "../schema/bundle-types.js";
12
+ import type { PageSource } from "./input-source.js";
12
13
  export declare function parseInputs(raw: unknown): ToolParameterModel[];
14
+ /**
15
+ * Mirror of `factory.input_models_for_page`: build the `ToolParameterModel`
16
+ * list for one `PageSource`, whatever backs it (the inline/YAML `DictPageSource`
17
+ * or an XML page source in `@galaxy-tool-util/tool-xml`).
18
+ */
19
+ export declare function inputModelsForPage(page: PageSource): ToolParameterModel[];
13
20
  //# sourceMappingURL=inputs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"inputs.d.ts","sourceRoot":"","sources":["../../src/user-tool-parse/inputs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAKV,kBAAkB,EAWnB,MAAM,2BAA2B,CAAC;AAwBnC,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,kBAAkB,EAAE,CAG9D"}
1
+ {"version":3,"file":"inputs.d.ts","sourceRoot":"","sources":["../../src/user-tool-parse/inputs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAKV,kBAAkB,EASnB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAe,UAAU,EAAE,MAAM,mBAAmB,CAAC;AA8BjE,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,kBAAkB,EAAE,CAE9D;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,kBAAkB,EAAE,CASzE"}