@galaxy-tool-util/schema 0.2.0 → 0.4.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 (137) hide show
  1. package/dist/index.d.ts +75 -5
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +48 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/schema/type-guards.d.ts +14 -0
  6. package/dist/schema/type-guards.d.ts.map +1 -0
  7. package/dist/schema/type-guards.js +25 -0
  8. package/dist/schema/type-guards.js.map +1 -0
  9. package/dist/test-format/cross-check/check.d.ts +18 -0
  10. package/dist/test-format/cross-check/check.d.ts.map +1 -0
  11. package/dist/test-format/cross-check/check.js +89 -0
  12. package/dist/test-format/cross-check/check.js.map +1 -0
  13. package/dist/test-format/cross-check/extract-format2.d.ts +13 -0
  14. package/dist/test-format/cross-check/extract-format2.d.ts.map +1 -0
  15. package/dist/test-format/cross-check/extract-format2.js +98 -0
  16. package/dist/test-format/cross-check/extract-format2.js.map +1 -0
  17. package/dist/test-format/cross-check/extract-native.d.ts +4 -0
  18. package/dist/test-format/cross-check/extract-native.d.ts.map +1 -0
  19. package/dist/test-format/cross-check/extract-native.js +89 -0
  20. package/dist/test-format/cross-check/extract-native.js.map +1 -0
  21. package/dist/test-format/cross-check/extract.d.ts +9 -0
  22. package/dist/test-format/cross-check/extract.d.ts.map +1 -0
  23. package/dist/test-format/cross-check/extract.js +16 -0
  24. package/dist/test-format/cross-check/extract.js.map +1 -0
  25. package/dist/test-format/cross-check/index.d.ts +7 -0
  26. package/dist/test-format/cross-check/index.d.ts.map +1 -0
  27. package/dist/test-format/cross-check/index.js +6 -0
  28. package/dist/test-format/cross-check/index.js.map +1 -0
  29. package/dist/test-format/cross-check/type-compat.d.ts +23 -0
  30. package/dist/test-format/cross-check/type-compat.d.ts.map +1 -0
  31. package/dist/test-format/cross-check/type-compat.js +48 -0
  32. package/dist/test-format/cross-check/type-compat.js.map +1 -0
  33. package/dist/test-format/cross-check/types.d.ts +23 -0
  34. package/dist/test-format/cross-check/types.d.ts.map +1 -0
  35. package/dist/test-format/cross-check/types.js +10 -0
  36. package/dist/test-format/cross-check/types.js.map +1 -0
  37. package/dist/test-format/index.d.ts +3 -0
  38. package/dist/test-format/index.d.ts.map +1 -0
  39. package/dist/test-format/index.js +3 -0
  40. package/dist/test-format/index.js.map +1 -0
  41. package/dist/test-format/tests.schema.generated.d.ts +5610 -0
  42. package/dist/test-format/tests.schema.generated.d.ts.map +1 -0
  43. package/dist/test-format/tests.schema.generated.js +6899 -0
  44. package/dist/test-format/tests.schema.generated.js.map +1 -0
  45. package/dist/test-format/validate.d.ts +20 -0
  46. package/dist/test-format/validate.d.ts.map +1 -0
  47. package/dist/test-format/validate.js +41 -0
  48. package/dist/test-format/validate.js.map +1 -0
  49. package/dist/tool-state-validator.d.ts +23 -0
  50. package/dist/tool-state-validator.d.ts.map +1 -0
  51. package/dist/tool-state-validator.js +59 -0
  52. package/dist/tool-state-validator.js.map +1 -0
  53. package/dist/workflow/clean.d.ts +29 -3
  54. package/dist/workflow/clean.d.ts.map +1 -1
  55. package/dist/workflow/clean.js +199 -28
  56. package/dist/workflow/clean.js.map +1 -1
  57. package/dist/workflow/index.d.ts +13 -5
  58. package/dist/workflow/index.d.ts.map +1 -1
  59. package/dist/workflow/index.js +13 -3
  60. package/dist/workflow/index.js.map +1 -1
  61. package/dist/workflow/lint-profiles.d.ts +27 -0
  62. package/dist/workflow/lint-profiles.d.ts.map +1 -0
  63. package/dist/workflow/lint-profiles.js +49 -0
  64. package/dist/workflow/lint-profiles.js.map +1 -0
  65. package/dist/workflow/lint-rules.d.ts +15 -0
  66. package/dist/workflow/lint-rules.d.ts.map +1 -0
  67. package/dist/workflow/lint-rules.js +15 -0
  68. package/dist/workflow/lint-rules.js.map +1 -0
  69. package/dist/workflow/lint.d.ts +4 -18
  70. package/dist/workflow/lint.d.ts.map +1 -1
  71. package/dist/workflow/lint.js +9 -30
  72. package/dist/workflow/lint.js.map +1 -1
  73. package/dist/workflow/lint_profiles.yml +41 -0
  74. package/dist/workflow/linting.d.ts +54 -0
  75. package/dist/workflow/linting.d.ts.map +1 -0
  76. package/dist/workflow/linting.js +71 -0
  77. package/dist/workflow/linting.js.map +1 -0
  78. package/dist/workflow/param-navigation.d.ts +26 -0
  79. package/dist/workflow/param-navigation.d.ts.map +1 -0
  80. package/dist/workflow/param-navigation.js +60 -0
  81. package/dist/workflow/param-navigation.js.map +1 -0
  82. package/dist/workflow/raw/gxformat2.effect.d.ts +341 -117
  83. package/dist/workflow/raw/gxformat2.effect.d.ts.map +1 -1
  84. package/dist/workflow/raw/gxformat2.effect.js +107 -109
  85. package/dist/workflow/raw/gxformat2.effect.js.map +1 -1
  86. package/dist/workflow/raw/native.d.ts +2 -2
  87. package/dist/workflow/raw/native.d.ts.map +1 -1
  88. package/dist/workflow/raw/native.effect.d.ts +150 -3
  89. package/dist/workflow/raw/native.effect.d.ts.map +1 -1
  90. package/dist/workflow/raw/native.effect.js +3 -5
  91. package/dist/workflow/raw/native.effect.js.map +1 -1
  92. package/dist/workflow/report-models.d.ts +412 -0
  93. package/dist/workflow/report-models.d.ts.map +1 -0
  94. package/dist/workflow/report-models.js +342 -0
  95. package/dist/workflow/report-models.js.map +1 -0
  96. package/dist/workflow/roundtrip.d.ts +31 -8
  97. package/dist/workflow/roundtrip.d.ts.map +1 -1
  98. package/dist/workflow/roundtrip.js +107 -26
  99. package/dist/workflow/roundtrip.js.map +1 -1
  100. package/dist/workflow/schema-rules.d.ts +38 -0
  101. package/dist/workflow/schema-rules.d.ts.map +1 -0
  102. package/dist/workflow/schema-rules.js +28 -0
  103. package/dist/workflow/schema-rules.js.map +1 -0
  104. package/dist/workflow/schema_rules.yml +69 -0
  105. package/dist/workflow/serialize.d.ts +30 -0
  106. package/dist/workflow/serialize.d.ts.map +1 -0
  107. package/dist/workflow/serialize.js +37 -0
  108. package/dist/workflow/serialize.js.map +1 -0
  109. package/dist/workflow/state-merge.d.ts +15 -32
  110. package/dist/workflow/state-merge.d.ts.map +1 -1
  111. package/dist/workflow/state-merge.js +30 -207
  112. package/dist/workflow/state-merge.js.map +1 -1
  113. package/dist/workflow/stateful-validate.d.ts +21 -0
  114. package/dist/workflow/stateful-validate.d.ts.map +1 -1
  115. package/dist/workflow/stateful-validate.js +27 -0
  116. package/dist/workflow/stateful-validate.js.map +1 -1
  117. package/dist/workflow/strict-checks.d.ts +22 -0
  118. package/dist/workflow/strict-checks.d.ts.map +1 -0
  119. package/dist/workflow/strict-checks.js +95 -0
  120. package/dist/workflow/strict-checks.js.map +1 -0
  121. package/dist/workflow/tool-state-io.d.ts +14 -0
  122. package/dist/workflow/tool-state-io.d.ts.map +1 -0
  123. package/dist/workflow/tool-state-io.js +33 -0
  124. package/dist/workflow/tool-state-io.js.map +1 -0
  125. package/dist/workflow/validators.d.ts +34 -0
  126. package/dist/workflow/validators.d.ts.map +1 -0
  127. package/dist/workflow/validators.js +83 -0
  128. package/dist/workflow/validators.js.map +1 -0
  129. package/dist/workflow/walk-helpers.d.ts +29 -0
  130. package/dist/workflow/walk-helpers.d.ts.map +1 -0
  131. package/dist/workflow/walk-helpers.js +89 -0
  132. package/dist/workflow/walk-helpers.js.map +1 -0
  133. package/dist/workflow/walker.d.ts +2 -0
  134. package/dist/workflow/walker.d.ts.map +1 -1
  135. package/dist/workflow/walker.js +16 -6
  136. package/dist/workflow/walker.js.map +1 -1
  137. package/package.json +7 -6
@@ -5,20 +5,39 @@
5
5
  * (__page__, __rerun_remap_job_id__), runtime leak keys (chromInfo, __input_ext),
6
6
  * and decodes JSON-encoded tool_state strings into proper dicts.
7
7
  *
8
+ * Also strips Galaxy-injected structural properties (`uuid`, `errors`) from both
9
+ * native and format2 workflow and step dicts.
10
+ *
8
11
  * Also provides a tool-definition-aware strip (`stripStaleKeysToolAware`)
9
12
  * that mirrors Galaxy's `clean._strip_recursive`: uses the declared
10
13
  * parameter tree to drop any undeclared key (runtime leaks, stale-branch
11
14
  * params, tool-upgrade residue) honoring conditional branch selection,
12
15
  * repeat expansion, and section nesting.
13
16
  */
14
- import { walkNativeState, SKIP_VALUE } from "./walker.js";
17
+ import { cleanDisplayLabel } from "./report-models.js";
18
+ import { detectFormat } from "./detect-format.js";
19
+ import { walkNativeState, walkFormat2State, SKIP_VALUE } from "./walker.js";
15
20
  /** Keys injected by Galaxy's tool form machinery — never meaningful in saved workflows. */
16
21
  const BOOKKEEPING_KEYS = new Set(["__page__", "__rerun_remap_job_id__"]);
22
+ /** Canonical position keys — only left/top are kept; browser-computed extras are stripped. */
23
+ const POSITION_CANONICAL_KEYS = new Set(["left", "top"]);
17
24
  /** Keys leaked from runtime context into saved state. */
18
25
  const RUNTIME_LEAK_KEYS = new Set(["chromInfo", "__input_ext"]);
19
26
  /** Internal indexing keys within conditionals and repeats. */
20
27
  const INTERNAL_KEYS = new Set(["__current_case__", "__index__"]);
21
28
  const STALE_KEYS = new Set([...BOOKKEEPING_KEYS, ...RUNTIME_LEAK_KEYS, ...INTERNAL_KEYS]);
29
+ /**
30
+ * Galaxy-injected structural properties — present on workflow and step dicts
31
+ * in both native and format2 exports, but not meaningful in saved/shared
32
+ * workflows. Stripped from workflow-level and step-level dicts.
33
+ *
34
+ * `position` is intentionally excluded — it is a legitimate workflow property
35
+ * that VS Code and other tools may use.
36
+ *
37
+ * `errors` is always stripped. `uuid` is stripped by default but can be
38
+ * suppressed with `CleanWorkflowOptions.skipUuid`.
39
+ */
40
+ const ALWAYS_STRIP_STEP_KEYS = new Set(["errors"]);
22
41
  /**
23
42
  * Decode a legacy JSON-encoded tool_state value. If the value is a string
24
43
  * that parses to a compound type (object/array), return the parsed value and
@@ -75,12 +94,14 @@ function parseToolState(toolState) {
75
94
  }
76
95
  return null;
77
96
  }
78
- /** Recursively remove stale keys from a tool_state dict. */
79
- function stripStaleKeys(state) {
97
+ /** Recursively remove stale keys from a tool_state dict, tracking removed top-level keys. */
98
+ function stripStaleKeys(state, removedKeys) {
80
99
  const result = {};
81
100
  for (const [key, value] of Object.entries(state)) {
82
- if (STALE_KEYS.has(key))
101
+ if (STALE_KEYS.has(key)) {
102
+ removedKeys?.push(key);
83
103
  continue;
104
+ }
84
105
  result[key] = stripStaleValue(value);
85
106
  }
86
107
  return result;
@@ -95,35 +116,114 @@ function stripStaleValue(value) {
95
116
  }
96
117
  return value;
97
118
  }
98
- /** Clean a single native step's tool_state in place. */
99
- function cleanNativeStep(stepDef) {
100
- const toolId = stepDef.tool_id;
101
- if (!toolId)
102
- return;
119
+ /**
120
+ * Strip Galaxy-injected structural properties from a step dict in-place.
121
+ * Always removes `errors`; removes `uuid` unless `skipUuid` is true.
122
+ * Returns the list of keys actually removed.
123
+ */
124
+ function stripStructuralStep(stepDict, skipUuid) {
125
+ const removed = [];
126
+ for (const key of ALWAYS_STRIP_STEP_KEYS) {
127
+ if (key in stepDict) {
128
+ delete stepDict[key];
129
+ removed.push(key);
130
+ }
131
+ }
132
+ if (!skipUuid && "uuid" in stepDict) {
133
+ delete stepDict.uuid;
134
+ removed.push("uuid");
135
+ }
136
+ return removed;
137
+ }
138
+ /** Clean a single native step's tool_state in place, returning step result info. */
139
+ async function cleanNativeStep(stepDef, stepLabel, opts) {
140
+ const toolId = stepDef.tool_id ?? null;
141
+ const toolVersion = stepDef.tool_version ?? null;
142
+ // Strip structural properties from the step dict itself (uuid, errors)
143
+ const removedKeys = stripStructuralStep(stepDef, opts.skipUuid ?? false);
144
+ if (!toolId) {
145
+ return {
146
+ step: stepLabel,
147
+ tool_id: null,
148
+ version: null,
149
+ removed_keys: removedKeys,
150
+ skipped: true,
151
+ skip_reason: "no tool_id",
152
+ display_label: cleanDisplayLabel(null, null),
153
+ };
154
+ }
103
155
  const rawState = stepDef.tool_state;
104
- if (rawState === undefined || rawState === null)
105
- return;
156
+ if (rawState === undefined || rawState === null) {
157
+ return {
158
+ step: stepLabel,
159
+ tool_id: toolId,
160
+ version: toolVersion,
161
+ removed_keys: removedKeys,
162
+ skipped: true,
163
+ skip_reason: "no tool_state",
164
+ display_label: cleanDisplayLabel(toolId, toolVersion),
165
+ };
166
+ }
106
167
  const parsed = parseToolState(rawState);
107
- if (!parsed)
108
- return;
109
- stepDef.tool_state = stripStaleKeys(parsed);
168
+ if (!parsed) {
169
+ return {
170
+ step: stepLabel,
171
+ tool_id: toolId,
172
+ version: toolVersion,
173
+ removed_keys: removedKeys,
174
+ skipped: true,
175
+ skip_reason: "unparseable tool_state",
176
+ display_label: cleanDisplayLabel(toolId, toolVersion),
177
+ };
178
+ }
179
+ let cleaned = stripStaleKeys(parsed, removedKeys);
180
+ // Tool-aware strip: drop keys not in the tool's parameter tree
181
+ if (opts.toolInputsResolver) {
182
+ const inputs = opts.toolInputsResolver(toolId, toolVersion);
183
+ if (inputs) {
184
+ const inputConnections = (stepDef.input_connections ?? {});
185
+ cleaned = stripStaleKeysToolAware(cleaned, inputs, inputConnections);
186
+ }
187
+ }
188
+ stepDef.tool_state = cleaned;
189
+ return {
190
+ step: stepLabel,
191
+ tool_id: toolId,
192
+ version: toolVersion,
193
+ removed_keys: removedKeys,
194
+ skipped: false,
195
+ skip_reason: "",
196
+ display_label: cleanDisplayLabel(toolId, toolVersion),
197
+ };
198
+ }
199
+ /** Normalize a step's position dict to only canonical keys (left, top). */
200
+ function normalizeStepPosition(stepDef) {
201
+ const pos = stepDef.position;
202
+ if (pos !== null && typeof pos === "object" && !Array.isArray(pos)) {
203
+ for (const key of Object.keys(pos)) {
204
+ if (!POSITION_CANONICAL_KEYS.has(key)) {
205
+ delete pos[key];
206
+ }
207
+ }
208
+ }
110
209
  }
111
210
  /** Recursively clean all steps in a native workflow dict. */
112
- function cleanNativeSteps(workflowDict) {
211
+ async function cleanNativeSteps(workflowDict, opts, prefix = "") {
113
212
  const steps = workflowDict.steps;
114
213
  if (!steps)
115
- return;
116
- for (const stepDef of Object.values(steps)) {
117
- // Subworkflow steps don't have meaningful tool_state — recurse into the
118
- // embedded subworkflow's steps instead.
214
+ return [];
215
+ const results = [];
216
+ for (const [key, stepDef] of Object.entries(steps)) {
217
+ const stepLabel = prefix ? `${prefix}${key}` : key;
218
+ normalizeStepPosition(stepDef);
119
219
  if (stepDef.type === "subworkflow" && stepDef.subworkflow) {
120
- cleanNativeSteps(stepDef.subworkflow);
220
+ results.push(...(await cleanNativeSteps(stepDef.subworkflow, opts, `${stepLabel}.`)));
121
221
  continue;
122
222
  }
123
- cleanNativeStep(stepDef);
223
+ results.push(await cleanNativeStep(stepDef, stepLabel, opts));
124
224
  }
225
+ return results;
125
226
  }
126
- import { detectFormat } from "./detect-format.js";
127
227
  /**
128
228
  * Strip all keys from a native step's `tool_state` that are not declared in
129
229
  * the tool's parameter tree. Mirrors Galaxy's `clean._strip_recursive`.
@@ -147,14 +247,85 @@ export function stripStaleKeysToolAware(state, toolInputs, inputConnections = {}
147
247
  return walkNativeState(inputConnections, toolInputs, state, (_input, value) => value === undefined ? SKIP_VALUE : value);
148
248
  }
149
249
  /**
150
- * Clean a workflow — strip stale keys and decode legacy tool_state encoding.
151
- * Mutates and returns the workflow dict. Format2 workflows pass through unchanged.
250
+ * Strip all keys from a format2 step's `state` that are not declared in
251
+ * the tool's parameter tree. Format2 analogue of `stripStaleKeysToolAware`.
252
+ */
253
+ function stripStaleKeysToolAwareFormat2(state, toolInputs) {
254
+ return walkFormat2State(toolInputs, state, (_input, value) => value === undefined ? SKIP_VALUE : value);
255
+ }
256
+ /** Clean a single format2 step dict in place, returning step result info. */
257
+ async function cleanFormat2Step(stepDef, stepLabel, opts) {
258
+ const toolId = stepDef.tool_id ?? null;
259
+ const toolVersion = stepDef.tool_version ?? null;
260
+ const removedKeys = stripStructuralStep(stepDef, opts.skipUuid ?? false);
261
+ // Tool-aware strip on `state` field
262
+ if (opts.toolInputsResolver && toolId) {
263
+ const inputs = opts.toolInputsResolver(toolId, toolVersion);
264
+ if (inputs) {
265
+ if (stepDef.state && typeof stepDef.state === "object" && !Array.isArray(stepDef.state)) {
266
+ stepDef.state = stripStaleKeysToolAwareFormat2(stepDef.state, inputs);
267
+ }
268
+ if (stepDef.tool_state &&
269
+ typeof stepDef.tool_state === "object" &&
270
+ !Array.isArray(stepDef.tool_state)) {
271
+ stepDef.tool_state = stripStaleKeysToolAwareFormat2(stepDef.tool_state, inputs);
272
+ }
273
+ }
274
+ }
275
+ return {
276
+ step: stepLabel,
277
+ tool_id: toolId,
278
+ version: toolVersion,
279
+ removed_keys: removedKeys,
280
+ skipped: false,
281
+ skip_reason: "",
282
+ display_label: cleanDisplayLabel(toolId, toolVersion),
283
+ };
284
+ }
285
+ /** Clean all steps in a format2 workflow dict. Steps may be a list or a dict. */
286
+ async function cleanFormat2Steps(workflowDict, opts) {
287
+ const rawSteps = workflowDict.steps;
288
+ if (!rawSteps)
289
+ return [];
290
+ const results = [];
291
+ if (Array.isArray(rawSteps)) {
292
+ for (let i = 0; i < rawSteps.length; i++) {
293
+ const stepDef = rawSteps[i];
294
+ const label = stepDef.label ?? stepDef.id ?? String(i);
295
+ results.push(await cleanFormat2Step(stepDef, label, opts));
296
+ }
297
+ }
298
+ else if (rawSteps !== null && typeof rawSteps === "object") {
299
+ for (const [key, stepDef] of Object.entries(rawSteps)) {
300
+ const step = stepDef;
301
+ const label = step.label ?? step.id ?? key;
302
+ results.push(await cleanFormat2Step(step, label, opts));
303
+ }
304
+ }
305
+ return results;
306
+ }
307
+ /**
308
+ * Clean a workflow — strip structural properties (`uuid`, `errors`), stale
309
+ * tool_state bookkeeping keys, and decode legacy tool_state encoding.
310
+ *
311
+ * Mutates the workflow dict in place. Handles both native and format2 formats.
312
+ * Returns both the mutated workflow and per-step clean results.
313
+ *
314
+ * When `opts.toolInputsResolver` is provided, also performs tool-aware stale
315
+ * key removal: drops any `tool_state` / `state` keys not declared in the
316
+ * tool's parameter tree (native via `stripStaleKeysToolAware`, format2 via
317
+ * `walkFormat2State`). Steps whose tool is not found in the resolver are
318
+ * left unchanged.
152
319
  */
153
- export function cleanWorkflow(workflowDict) {
320
+ export async function cleanWorkflow(workflowDict, opts = {}) {
321
+ // Strip workflow-level uuid from both formats
322
+ if (!opts.skipUuid)
323
+ delete workflowDict.uuid;
154
324
  if (detectFormat(workflowDict) === "format2") {
155
- return workflowDict;
325
+ const results = await cleanFormat2Steps(workflowDict, opts);
326
+ return { workflow: workflowDict, results };
156
327
  }
157
- cleanNativeSteps(workflowDict);
158
- return workflowDict;
328
+ const results = await cleanNativeSteps(workflowDict, opts);
329
+ return { workflow: workflowDict, results };
159
330
  }
160
331
  //# sourceMappingURL=clean.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"clean.js","sourceRoot":"","sources":["../../src/workflow/clean.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE1D,2FAA2F;AAC3F,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC,CAAC;AAEzE,yDAAyD;AACzD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;AAEhE,8DAA8D;AAC9D,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC,CAAC;AAEjE,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,gBAAgB,EAAE,GAAG,iBAAiB,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC;AAE1F;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAClD,kCAAkC;YAClC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,OAAO,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YACvC,CAAC;YACD,OAAO,gBAAgB,CAAC,MAAiC,CAAC,CAAC;QAC7D,CAAC;QACD,mCAAmC;QACnC,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,4EAA4E;AAC5E,SAAS,gBAAgB,CAAC,IAA6B;IACrD,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,MAAM,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAS,cAAc,CAAC,SAAkB;IACxC,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACrC,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5E,OAAO,gBAAgB,CAAC,MAAiC,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,oBAAoB;QACtB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,SAAS,KAAK,IAAI,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACrF,OAAO,SAAoC,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,4DAA4D;AAC5D,SAAS,cAAc,CAAC,KAA8B;IACpD,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAClC,MAAM,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,qEAAqE;AACrE,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,cAAc,CAAC,KAAgC,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,wDAAwD;AACxD,SAAS,eAAe,CAAC,OAAgC;IACvD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAC/B,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;IACpC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO;IAExD,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,OAAO,CAAC,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED,6DAA6D;AAC7D,SAAS,gBAAgB,CAAC,YAAqC;IAC7D,MAAM,KAAK,GAAG,YAAY,CAAC,KAA4D,CAAC;IACxF,IAAI,CAAC,KAAK;QAAE,OAAO;IAEnB,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,wEAAwE;QACxE,wCAAwC;QACxC,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YAC1D,gBAAgB,CAAC,OAAO,CAAC,WAAsC,CAAC,CAAC;YACjE,SAAS;QACX,CAAC;QACD,eAAe,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,uBAAuB,CACrC,KAA8B,EAC9B,UAAgC,EAChC,mBAA4C,EAAE;IAE9C,OAAO,eAAe,CAAC,gBAAgB,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAC5E,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CACzC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,YAAqC;IACjE,IAAI,YAAY,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;QAC7C,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAC/B,OAAO,YAAY,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"clean.js","sourceRoot":"","sources":["../../src/workflow/clean.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,22 @@
1
+ export { serializeWorkflow, resolveFormat, type SerializeWorkflowOptions } from "./serialize.js";
1
2
  export { type GalaxyWorkflow, GalaxyWorkflowSchema, type NativeGalaxyWorkflow, NativeGalaxyWorkflowSchema, } from "./raw/index.js";
2
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";
3
- export { injectConnectionsIntoState, stripConnectedValues, flatStatePath, keysStartingWith, repeatInputsToArray, selectWhichWhen, } from "./state-merge.js";
4
+ export { flatStatePath, keysStartingWith, repeatInputsToArray, selectWhichWhen, } from "./walk-helpers.js";
5
+ export { injectConnectionsIntoState, stripConnectedValues } from "./state-merge.js";
4
6
  export { scanForReplacements, type ReplacementClassification } from "./replacement-scan.js";
5
7
  export { scanToolState, type LegacyEncodingClassification, type LegacyEncodingHit, type LegacyEncodingScanResult, } from "./legacy-encoding.js";
6
8
  export { walkNativeState, walkFormat2State, SKIP_VALUE, UnknownKeyError, type LeafCallback, type WalkNativeOptions, } from "./walker.js";
7
9
  export { convertScalarValue, reverseScalarValue, convertStateToFormat2, encodeStateToNative, type Format2ConvertedState, } from "./stateful-convert.js";
8
10
  export { precheckNativeWorkflow, precheckNativeStep, type PrecheckResult, type StepPrecheckResult, } from "./precheck.js";
9
- export { ConversionValidationFailure, validateNativeStepState, validateFormat2StepState, type ValidationPhase, } from "./stateful-validate.js";
10
- export { roundtripValidate, type RoundtripResult, type StepRoundtripResult, type StepDiff, type DiffSeverity, type BenignArtifactKind, type RoundtripFailureClass, } from "./roundtrip.js";
11
- export { cleanWorkflow } from "./clean.js";
11
+ export { ConversionValidationFailure, validateNativeStepState, validateFormat2StepState, validateFormat2StepStateStrict, type ToolStateDiagnostic, type ValidationPhase, } from "./stateful-validate.js";
12
+ export { findParamAtPath, type ParamNavigationResult } from "./param-navigation.js";
13
+ export { roundtripValidate, type RoundtripResult, type RoundtripStrictOptions, type StepRoundtripResult, type BenignArtifactKind, type RoundtripFailureClass, } from "./roundtrip.js";
14
+ export { cleanWorkflow, type CleanWorkflowOptions, type CleanWorkflowResult } from "./clean.js";
12
15
  export { detectFormat, type WorkflowFormat } from "./detect-format.js";
13
- export { LintContext, lintNative, lintFormat2, lintWorkflow, lintBestPracticesFormat2, lintBestPracticesNative, type LintResult, } from "./lint.js";
16
+ export { withClass, validateFormat2, validateFormat2Strict, validateNative, validateNativeStrict, validatorForFixture, } from "./validators.js";
17
+ export { validateEncodingNative, validateEncodingFormat2, checkStrictEncoding, checkStrictStructure, } from "./strict-checks.js";
18
+ export { LintContext, LintMessage, Linter, LEVEL_ERROR, LEVEL_WARN, lintNative, lintFormat2, lintWorkflow, lintBestPracticesFormat2, lintBestPracticesNative, type LintLevel, type LintResult, type LinterRef, type EmitOptions, } from "./lint.js";
19
+ export { NativeStepKeyNotInteger } from "./lint-rules.js";
20
+ export { parseLintProfiles, lintProfilesById, rulesForProfile, iwcRuleIds, LINT_PROFILES_FILENAME, IWC_PROFILE_NAMES, type LintProfile, } from "./lint-profiles.js";
21
+ export { type StepStatus, SKIP_STATUSES, type ValidationStepResult, type CleanStepResult, type ResolvedOutputType, type ConnectionResult, type ConnectionStepResult, type ConnectionValidationReport, type WorkflowEntry, type WorkflowIndex, type SingleValidationReport, type SingleLintReport, type SingleCleanReport, type DiffType, type DiffSeverity, type BenignArtifact, type StepDiff, type SkipWorkflowReason, type FailureClass, type StepResult, type RoundTripResult, type StepIdMappingResult, type RoundTripValidationResult, type SingleRoundTripReport, type SingleExportReport, type StepEncodeStatus, type ToNativeResult, type WorkflowSourceFormat, type ExportResult, type ConvertResult, type WorkflowValidationResult, type LintWorkflowResult, type WorkflowCleanResult, type CategoryGroup, type TreeValidationReport, type LintTreeReport, type TreeCleanReport, type WorkflowExportResult, type ExportTreeReport, type WorkflowToNativeResult, type ToNativeTreeReport, type ToolFailureMode, type RoundTripTreeReport, validationSummary, validationFailures, cleanDisplayLabel, categoryOf, groupByCategory, buildSingleValidationReport, buildSingleLintReport, buildSingleCleanReport, buildWorkflowValidationResult, buildLintWorkflowResult, buildWorkflowCleanResult, buildTreeValidationReport, buildLintTreeReport, buildTreeCleanReport, buildWorkflowExportResult, buildExportTreeReport, buildWorkflowToNativeResult, buildToNativeTreeReport, buildRoundTripTreeReport, } from "./report-models.js";
14
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/workflow/index.ts"],"names":[],"mappings":"AACA,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,0BAA0B,EAC1B,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAE1B,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,KAAK,eAAe,GACrB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,iBAAiB,EACjB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,GAC3B,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEvE,OAAO,EACL,WAAW,EACX,UAAU,EACV,WAAW,EACX,YAAY,EACZ,wBAAwB,EACxB,uBAAuB,EACvB,KAAK,UAAU,GAChB,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/workflow/index.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,26 @@
1
+ // Format-aware serialization helpers
2
+ export { serializeWorkflow, resolveFormat } from "./serialize.js";
1
3
  // Raw (generated) workflow schema types
2
4
  export { GalaxyWorkflowSchema, NativeGalaxyWorkflowSchema, } from "./raw/index.js";
3
5
  // Normalized workflow types + normalizers
4
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";
5
- export { injectConnectionsIntoState, stripConnectedValues, flatStatePath, keysStartingWith, repeatInputsToArray, selectWhichWhen, } from "./state-merge.js";
7
+ export { flatStatePath, keysStartingWith, repeatInputsToArray, selectWhichWhen, } from "./walk-helpers.js";
8
+ export { injectConnectionsIntoState, stripConnectedValues } from "./state-merge.js";
6
9
  export { scanForReplacements } from "./replacement-scan.js";
7
10
  export { scanToolState, } from "./legacy-encoding.js";
8
11
  export { walkNativeState, walkFormat2State, SKIP_VALUE, UnknownKeyError, } from "./walker.js";
9
12
  export { convertScalarValue, reverseScalarValue, convertStateToFormat2, encodeStateToNative, } from "./stateful-convert.js";
10
13
  export { precheckNativeWorkflow, precheckNativeStep, } from "./precheck.js";
11
- export { ConversionValidationFailure, validateNativeStepState, validateFormat2StepState, } from "./stateful-validate.js";
14
+ export { ConversionValidationFailure, validateNativeStepState, validateFormat2StepState, validateFormat2StepStateStrict, } from "./stateful-validate.js";
15
+ export { findParamAtPath } from "./param-navigation.js";
12
16
  export { roundtripValidate, } from "./roundtrip.js";
13
17
  export { cleanWorkflow } from "./clean.js";
14
18
  export { detectFormat } from "./detect-format.js";
15
- export { LintContext, lintNative, lintFormat2, lintWorkflow, lintBestPracticesFormat2, lintBestPracticesNative, } from "./lint.js";
19
+ export { withClass, validateFormat2, validateFormat2Strict, validateNative, validateNativeStrict, validatorForFixture, } from "./validators.js";
20
+ export { validateEncodingNative, validateEncodingFormat2, checkStrictEncoding, checkStrictStructure, } from "./strict-checks.js";
21
+ export { LintContext, LintMessage, Linter, LEVEL_ERROR, LEVEL_WARN, lintNative, lintFormat2, lintWorkflow, lintBestPracticesFormat2, lintBestPracticesNative, } from "./lint.js";
22
+ export { NativeStepKeyNotInteger } from "./lint-rules.js";
23
+ export { parseLintProfiles, lintProfilesById, rulesForProfile, iwcRuleIds, LINT_PROFILES_FILENAME, IWC_PROFILE_NAMES, } from "./lint-profiles.js";
24
+ // Structured report models (mirrors Python _report_models.py)
25
+ export { SKIP_STATUSES, validationSummary, validationFailures, cleanDisplayLabel, categoryOf, groupByCategory, buildSingleValidationReport, buildSingleLintReport, buildSingleCleanReport, buildWorkflowValidationResult, buildLintWorkflowResult, buildWorkflowCleanResult, buildTreeValidationReport, buildLintTreeReport, buildTreeCleanReport, buildWorkflowExportResult, buildExportTreeReport, buildWorkflowToNativeResult, buildToNativeTreeReport, buildRoundTripTreeReport, } from "./report-models.js";
16
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/workflow/index.ts"],"names":[],"mappings":"AAAA,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,0BAA0B,EAC1B,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAE1B,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,GAEzB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,iBAAiB,GAOlB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAuB,MAAM,oBAAoB,CAAC;AAEvE,OAAO,EACL,WAAW,EACX,UAAU,EACV,WAAW,EACX,YAAY,EACZ,wBAAwB,EACxB,uBAAuB,GAExB,MAAM,WAAW,CAAC"}
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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Lint profile catalog types and parser.
3
+ *
4
+ * Mirrors gxformat2/lint_profiles.py. Profiles group lint-rule IDs into
5
+ * named sets (`structural`, `best-practices`, `release`). Unknown IDs are
6
+ * tolerated — audit tooling compares against registered `Linter` subclasses
7
+ * to flag unimplemented entries as INFO.
8
+ *
9
+ * The YAML file lives alongside this module at `./lint_profiles.yml`. This
10
+ * module stays fs-free so src/ remains browser-compatible — callers read
11
+ * the file themselves and hand the string to `parseLintProfiles`.
12
+ */
13
+ /** Relative path (from this module) to the profile catalog YAML. */
14
+ export declare const LINT_PROFILES_FILENAME = "lint_profiles.yml";
15
+ /** Canonical profile names whose union defines the IWC rule set. */
16
+ export declare const IWC_PROFILE_NAMES: readonly ["structural", "best-practices", "release"];
17
+ export interface LintProfile {
18
+ id: string;
19
+ description: string;
20
+ rules: string[];
21
+ }
22
+ export declare function parseLintProfiles(yamlContent: string): LintProfile[];
23
+ export declare function lintProfilesById(profiles: LintProfile[]): Map<string, LintProfile>;
24
+ export declare function rulesForProfile(profiles: LintProfile[], id: string): string[];
25
+ /** Union of rule ids across structural / best-practices / release profiles. */
26
+ export declare function iwcRuleIds(profiles: LintProfile[]): Set<string>;
27
+ //# sourceMappingURL=lint-profiles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lint-profiles.d.ts","sourceRoot":"","sources":["../../src/workflow/lint-profiles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,oEAAoE;AACpE,eAAO,MAAM,sBAAsB,sBAAsB,CAAC;AAE1D,oEAAoE;AACpE,eAAO,MAAM,iBAAiB,sDAAuD,CAAC;AAEtF,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAOD,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,EAAE,CAOpE;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAElF;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAM7E;AAED,+EAA+E;AAC/E,wBAAgB,UAAU,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAU/D"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Lint profile catalog types and parser.
3
+ *
4
+ * Mirrors gxformat2/lint_profiles.py. Profiles group lint-rule IDs into
5
+ * named sets (`structural`, `best-practices`, `release`). Unknown IDs are
6
+ * tolerated — audit tooling compares against registered `Linter` subclasses
7
+ * to flag unimplemented entries as INFO.
8
+ *
9
+ * The YAML file lives alongside this module at `./lint_profiles.yml`. This
10
+ * module stays fs-free so src/ remains browser-compatible — callers read
11
+ * the file themselves and hand the string to `parseLintProfiles`.
12
+ */
13
+ import * as yaml from "yaml";
14
+ /** Relative path (from this module) to the profile catalog YAML. */
15
+ export const LINT_PROFILES_FILENAME = "lint_profiles.yml";
16
+ /** Canonical profile names whose union defines the IWC rule set. */
17
+ export const IWC_PROFILE_NAMES = ["structural", "best-practices", "release"];
18
+ export function parseLintProfiles(yamlContent) {
19
+ const raw = (yaml.parse(yamlContent) ?? {});
20
+ return Object.entries(raw).map(([id, body]) => ({
21
+ id,
22
+ description: body.description ?? "",
23
+ rules: body.rules ?? [],
24
+ }));
25
+ }
26
+ export function lintProfilesById(profiles) {
27
+ return new Map(profiles.map((p) => [p.id, p]));
28
+ }
29
+ export function rulesForProfile(profiles, id) {
30
+ const profile = lintProfilesById(profiles).get(id);
31
+ if (!profile) {
32
+ throw new Error(`Unknown lint profile: ${id}`);
33
+ }
34
+ return profile.rules;
35
+ }
36
+ /** Union of rule ids across structural / best-practices / release profiles. */
37
+ export function iwcRuleIds(profiles) {
38
+ const byId = lintProfilesById(profiles);
39
+ const ids = new Set();
40
+ for (const name of IWC_PROFILE_NAMES) {
41
+ const profile = byId.get(name);
42
+ if (profile) {
43
+ for (const ruleId of profile.rules)
44
+ ids.add(ruleId);
45
+ }
46
+ }
47
+ return ids;
48
+ }
49
+ //# sourceMappingURL=lint-profiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lint-profiles.js","sourceRoot":"","sources":["../../src/workflow/lint-profiles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,oEAAoE;AACpE,MAAM,CAAC,MAAM,sBAAsB,GAAG,mBAAmB,CAAC;AAE1D,oEAAoE;AACpE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,YAAY,EAAE,gBAAgB,EAAE,SAAS,CAAU,CAAC;AAatF,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACnD,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAmC,CAAC;IAC9E,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9C,EAAE;QACF,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;QACnC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;KACxB,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAuB;IACtD,OAAO,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAuB,EAAE,EAAU;IACjE,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACnD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,OAAO,CAAC,KAAK,CAAC;AACvB,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,UAAU,CAAC,QAAuB;IAChD,MAAM,IAAI,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,KAAK;gBAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Lint rule classes.
3
+ *
4
+ * Each `Linter` subclass carries metadata only (severity, applies_to,
5
+ * profile). Emission happens in `lint.ts` via `LintContext.warn`/`error`
6
+ * with `linter=<Subclass>`.
7
+ */
8
+ import { Linter } from "./linting.js";
9
+ /** Native workflow step keys must be string representations of integers. */
10
+ export declare class NativeStepKeyNotInteger extends Linter {
11
+ static severity: "error";
12
+ static applies_to: readonly ["native"];
13
+ static profile: string;
14
+ }
15
+ //# sourceMappingURL=lint-rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lint-rules.d.ts","sourceRoot":"","sources":["../../src/workflow/lint-rules.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,4EAA4E;AAC5E,qBAAa,uBAAwB,SAAQ,MAAM;IACjD,MAAM,CAAC,QAAQ,EAAG,OAAO,CAAU;IACnC,MAAM,CAAC,UAAU,sBAAuB;IACxC,MAAM,CAAC,OAAO,SAAgB;CAC/B"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Lint rule classes.
3
+ *
4
+ * Each `Linter` subclass carries metadata only (severity, applies_to,
5
+ * profile). Emission happens in `lint.ts` via `LintContext.warn`/`error`
6
+ * with `linter=<Subclass>`.
7
+ */
8
+ import { Linter } from "./linting.js";
9
+ /** Native workflow step keys must be string representations of integers. */
10
+ export class NativeStepKeyNotInteger extends Linter {
11
+ static severity = "error";
12
+ static applies_to = ["native"];
13
+ static profile = "structural";
14
+ }
15
+ //# sourceMappingURL=lint-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lint-rules.js","sourceRoot":"","sources":["../../src/workflow/lint-rules.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,4EAA4E;AAC5E,MAAM,OAAO,uBAAwB,SAAQ,MAAM;IACjD,MAAM,CAAC,QAAQ,GAAG,OAAgB,CAAC;IACnC,MAAM,CAAC,UAAU,GAAG,CAAC,QAAQ,CAAU,CAAC;IACxC,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC"}
@@ -1,25 +1,11 @@
1
1
  /**
2
2
  * Workflow linting — structural checks and best-practice warnings.
3
3
  *
4
- * Port of gxformat2's lint.py + linting.py. Checks workflow structure,
5
- * output labels, step errors, tool references, output source resolution,
6
- * input default types, and report markdown.
4
+ * Port of gxformat2's lint.py. Emission primitives live in `linting.ts`
5
+ * (LintContext / LintMessage / Linter base); rule classes in `lint-rules.ts`.
7
6
  */
8
- export declare class LintContext {
9
- errors: string[];
10
- warnings: string[];
11
- private _prefix;
12
- constructor(prefix?: string);
13
- error(message: string): void;
14
- warn(message: string): void;
15
- child(prefix: string): LintContext;
16
- }
17
- export interface LintResult {
18
- errors: string[];
19
- warnings: string[];
20
- error_count: number;
21
- warn_count: number;
22
- }
7
+ import { type LintResult } from "./linting.js";
8
+ export { LintContext, LintMessage, Linter, LEVEL_ERROR, LEVEL_WARN, type LintLevel, type LintResult, type LinterRef, type EmitOptions, } from "./linting.js";
23
9
  /**
24
10
  * Lint a native Galaxy workflow (.ga format).
25
11
  * Returns structured lint results with errors and warnings.
@@ -1 +1 @@
1
- {"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../src/workflow/lint.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAaH,qBAAa,WAAW;IACtB,MAAM,EAAE,MAAM,EAAE,CAAM;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAM;IACxB,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,SAAK;IAIvB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI5B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI3B,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW;CASnC;AAMD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAkND;;;GAGG;AACH,wBAAgB,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAU5E;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAU7E;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAG9E;AA6HD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAY1F;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAyBzF"}
1
+ {"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../src/workflow/lint.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAG5D,OAAO,EACL,WAAW,EACX,WAAW,EACX,MAAM,EACN,WAAW,EACX,UAAU,EACV,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,WAAW,GACjB,MAAM,cAAc,CAAC;AAqNtB;;;GAGG;AACH,wBAAgB,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAU5E;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAU7E;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAG9E;AA6HD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAY1F;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAyBzF"}