@galaxy-tool-util/cli 0.1.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 (121) hide show
  1. package/LICENSE +21 -0
  2. package/dist/bin/galaxy-tool-cache.js +15 -0
  3. package/dist/bin/galaxy-tool-cache.js.map +1 -1
  4. package/dist/bin/gxwf.d.ts +3 -0
  5. package/dist/bin/gxwf.d.ts.map +1 -0
  6. package/dist/bin/gxwf.js +150 -0
  7. package/dist/bin/gxwf.js.map +1 -0
  8. package/dist/commands/add.js +2 -2
  9. package/dist/commands/add.js.map +1 -1
  10. package/dist/commands/clean-tree.d.ts +9 -0
  11. package/dist/commands/clean-tree.d.ts.map +1 -0
  12. package/dist/commands/clean-tree.js +69 -0
  13. package/dist/commands/clean-tree.js.map +1 -0
  14. package/dist/commands/clean.d.ts +10 -0
  15. package/dist/commands/clean.d.ts.map +1 -0
  16. package/dist/commands/clean.js +48 -0
  17. package/dist/commands/clean.js.map +1 -0
  18. package/dist/commands/clear.js +4 -4
  19. package/dist/commands/clear.js.map +1 -1
  20. package/dist/commands/convert-tree.d.ts +32 -0
  21. package/dist/commands/convert-tree.d.ts.map +1 -0
  22. package/dist/commands/convert-tree.js +229 -0
  23. package/dist/commands/convert-tree.js.map +1 -0
  24. package/dist/commands/convert.d.ts +13 -0
  25. package/dist/commands/convert.d.ts.map +1 -0
  26. package/dist/commands/convert.js +151 -0
  27. package/dist/commands/convert.js.map +1 -0
  28. package/dist/commands/info.d.ts.map +1 -1
  29. package/dist/commands/info.js +5 -4
  30. package/dist/commands/info.js.map +1 -1
  31. package/dist/commands/lint-tree.d.ts +11 -0
  32. package/dist/commands/lint-tree.d.ts.map +1 -0
  33. package/dist/commands/lint-tree.js +104 -0
  34. package/dist/commands/lint-tree.js.map +1 -0
  35. package/dist/commands/lint.d.ts +34 -0
  36. package/dist/commands/lint.d.ts.map +1 -0
  37. package/dist/commands/lint.js +195 -0
  38. package/dist/commands/lint.js.map +1 -0
  39. package/dist/commands/list.js +3 -3
  40. package/dist/commands/list.js.map +1 -1
  41. package/dist/commands/populate-workflow.d.ts +6 -0
  42. package/dist/commands/populate-workflow.d.ts.map +1 -0
  43. package/dist/commands/populate-workflow.js +55 -0
  44. package/dist/commands/populate-workflow.js.map +1 -0
  45. package/dist/commands/render-results.d.ts +11 -0
  46. package/dist/commands/render-results.d.ts.map +1 -0
  47. package/dist/commands/render-results.js +27 -0
  48. package/dist/commands/render-results.js.map +1 -0
  49. package/dist/commands/report-output.d.ts +34 -0
  50. package/dist/commands/report-output.d.ts.map +1 -0
  51. package/dist/commands/report-output.js +70 -0
  52. package/dist/commands/report-output.js.map +1 -0
  53. package/dist/commands/resolve-tool.js +1 -1
  54. package/dist/commands/resolve-tool.js.map +1 -1
  55. package/dist/commands/roundtrip-tree.d.ts +15 -0
  56. package/dist/commands/roundtrip-tree.d.ts.map +1 -0
  57. package/dist/commands/roundtrip-tree.js +178 -0
  58. package/dist/commands/roundtrip-tree.js.map +1 -0
  59. package/dist/commands/roundtrip.d.ts +31 -0
  60. package/dist/commands/roundtrip.d.ts.map +1 -0
  61. package/dist/commands/roundtrip.js +144 -0
  62. package/dist/commands/roundtrip.js.map +1 -0
  63. package/dist/commands/schema.js +2 -2
  64. package/dist/commands/schema.js.map +1 -1
  65. package/dist/commands/stateful-tool-inputs.d.ts +33 -0
  66. package/dist/commands/stateful-tool-inputs.d.ts.map +1 -0
  67. package/dist/commands/stateful-tool-inputs.js +73 -0
  68. package/dist/commands/stateful-tool-inputs.js.map +1 -0
  69. package/dist/commands/strict-options.d.ts +22 -0
  70. package/dist/commands/strict-options.d.ts.map +1 -0
  71. package/dist/commands/strict-options.js +18 -0
  72. package/dist/commands/strict-options.js.map +1 -0
  73. package/dist/commands/structural-schema.d.ts +6 -0
  74. package/dist/commands/structural-schema.d.ts.map +1 -0
  75. package/dist/commands/structural-schema.js +31 -0
  76. package/dist/commands/structural-schema.js.map +1 -0
  77. package/dist/commands/tree.d.ts +45 -0
  78. package/dist/commands/tree.d.ts.map +1 -0
  79. package/dist/commands/tree.js +155 -0
  80. package/dist/commands/tree.js.map +1 -0
  81. package/dist/commands/validate-tests-tree.d.ts +36 -0
  82. package/dist/commands/validate-tests-tree.d.ts.map +1 -0
  83. package/dist/commands/validate-tests-tree.js +191 -0
  84. package/dist/commands/validate-tests-tree.js.map +1 -0
  85. package/dist/commands/validate-tests.d.ts +21 -0
  86. package/dist/commands/validate-tests.d.ts.map +1 -0
  87. package/dist/commands/validate-tests.js +83 -0
  88. package/dist/commands/validate-tests.js.map +1 -0
  89. package/dist/commands/validate-tree.d.ts +12 -0
  90. package/dist/commands/validate-tree.d.ts.map +1 -0
  91. package/dist/commands/validate-tree.js +124 -0
  92. package/dist/commands/validate-tree.js.map +1 -0
  93. package/dist/commands/validate-workflow-json-schema.d.ts +8 -2
  94. package/dist/commands/validate-workflow-json-schema.d.ts.map +1 -1
  95. package/dist/commands/validate-workflow-json-schema.js +129 -50
  96. package/dist/commands/validate-workflow-json-schema.js.map +1 -1
  97. package/dist/commands/validate-workflow.d.ts +18 -10
  98. package/dist/commands/validate-workflow.d.ts.map +1 -1
  99. package/dist/commands/validate-workflow.js +215 -88
  100. package/dist/commands/validate-workflow.js.map +1 -1
  101. package/dist/commands/workflow-io.d.ts +7 -0
  102. package/dist/commands/workflow-io.d.ts.map +1 -0
  103. package/dist/commands/workflow-io.js +38 -0
  104. package/dist/commands/workflow-io.js.map +1 -0
  105. package/dist/index.d.ts +41 -0
  106. package/dist/index.d.ts.map +1 -1
  107. package/dist/index.js +36 -0
  108. package/dist/index.js.map +1 -1
  109. package/dist/workflow/_templates-bundled.d.ts +2 -0
  110. package/dist/workflow/_templates-bundled.d.ts.map +1 -0
  111. package/dist/workflow/_templates-bundled.js +324 -0
  112. package/dist/workflow/_templates-bundled.js.map +1 -0
  113. package/dist/workflow/report-templates.d.ts +13 -0
  114. package/dist/workflow/report-templates.d.ts.map +1 -0
  115. package/dist/workflow/report-templates.js +91 -0
  116. package/dist/workflow/report-templates.js.map +1 -0
  117. package/package.json +18 -16
  118. package/dist/bin/galaxy-workflow-validate.d.ts +0 -3
  119. package/dist/bin/galaxy-workflow-validate.d.ts.map +0 -1
  120. package/dist/bin/galaxy-workflow-validate.js +0 -17
  121. package/dist/bin/galaxy-workflow-validate.js.map +0 -1
@@ -1,38 +1,38 @@
1
- import { ToolCache } from "@galaxy-tool-util/core";
2
- import { createFieldModel, detectFormat, GalaxyWorkflowSchema, NativeGalaxyWorkflowSchema, expandedNative, expandedFormat2, injectConnectionsIntoState, stripConnectedValues, scanForReplacements, } from "@galaxy-tool-util/schema";
1
+ import { makeNodeToolCache } from "@galaxy-tool-util/core/node";
2
+ import { createFieldModel, GalaxyWorkflowSchema, NativeGalaxyWorkflowSchema, expandedNative, expandedFormat2, injectConnectionsIntoState, stripConnectedValues, scanForReplacements, checkStrictEncoding, checkStrictStructure, withClass, scanToolState, buildSingleValidationReport, } from "@galaxy-tool-util/schema";
3
3
  import * as ParseResult from "effect/ParseResult";
4
4
  import * as S from "effect/Schema";
5
- import { readFile } from "node:fs/promises";
6
5
  import { dirname } from "node:path";
7
- import * as YAML from "yaml";
8
6
  import { isResolveError, loadCachedTool } from "./resolve-tool.js";
9
7
  import { createDefaultResolver } from "./url-resolver.js";
8
+ import { renderStepResults } from "./render-results.js";
9
+ import { readWorkflowFile, resolveFormat } from "./workflow-io.js";
10
+ import { resolveStrictOptions } from "./strict-options.js";
11
+ import { writeReportHtml } from "./report-output.js";
10
12
  function formatIssues(error) {
11
13
  const issues = ParseResult.ArrayFormatter.formatErrorSync(error);
12
14
  return issues.map((i) => `${i.path.join(".")}: ${i.message}`);
13
15
  }
14
- export async function runValidateWorkflow(filePath, opts) {
15
- const raw = await readFile(filePath, "utf-8");
16
- let data;
17
- try {
18
- if (filePath.endsWith(".ga") || filePath.endsWith(".json")) {
19
- data = JSON.parse(raw);
20
- }
21
- else {
22
- data = YAML.parse(raw);
23
- }
16
+ /** Run Effect Schema decode on raw workflow data and return structural decode failures. */
17
+ export function decodeStructureErrors(data, format) {
18
+ const cls = format === "native" ? "NativeGalaxyWorkflow" : "GalaxyWorkflow";
19
+ const validationData = withClass(data, cls);
20
+ const schema = format === "native" ? NativeGalaxyWorkflowSchema : GalaxyWorkflowSchema;
21
+ const decode = S.decodeUnknownEither(schema, { onExcessProperty: "ignore" });
22
+ const result = decode(validationData);
23
+ if (result._tag === "Left") {
24
+ return formatIssues(result.left);
24
25
  }
25
- catch (e) {
26
- const msg = e instanceof Error ? e.message : String(e);
27
- console.error(`Failed to parse ${filePath}: ${msg}`);
28
- process.exitCode = 1;
26
+ return [];
27
+ }
28
+ export async function runValidateWorkflow(filePath, opts) {
29
+ const data = await readWorkflowFile(filePath);
30
+ if (!data)
29
31
  return;
30
- }
31
- const format = opts.format === "native" || opts.format === "format2"
32
- ? opts.format
33
- : detectFormat(data);
32
+ const format = resolveFormat(data, opts.format);
34
33
  const mode = opts.mode === "json-schema" ? "json-schema" : "effect";
35
- console.log(`Detected format: ${format}, mode: ${mode}`);
34
+ if (!opts.json)
35
+ console.log(`Detected format: ${format}, mode: ${mode}`);
36
36
  // Build expansion options for resolving external subworkflow references
37
37
  const workflowDirectory = dirname(filePath);
38
38
  const expansionOpts = {
@@ -40,71 +40,106 @@ export async function runValidateWorkflow(filePath, opts) {
40
40
  };
41
41
  if (mode === "json-schema") {
42
42
  const { runValidateWorkflowJsonSchema } = await import("./validate-workflow-json-schema.js");
43
- return runValidateWorkflowJsonSchema(data, format, opts, expansionOpts);
44
- }
45
- // --- structural validation (effect mode) ---
46
- const validationData = { ...data };
47
- if (format === "native" && !("class" in validationData)) {
48
- validationData.class = "NativeGalaxyWorkflow";
43
+ return runValidateWorkflowJsonSchema(filePath, data, format, opts, expansionOpts);
49
44
  }
50
- else if (format === "format2" && !("class" in validationData)) {
51
- validationData.class = "GalaxyWorkflow";
45
+ const strict = resolveStrictOptions(opts);
46
+ // --- strict encoding check (pre-normalization) ---
47
+ if (strict.strictEncoding) {
48
+ const encErrors = checkStrictEncoding(data, format);
49
+ if (encErrors.length > 0) {
50
+ console.error("Encoding errors:");
51
+ for (const e of encErrors)
52
+ console.error(` ${e}`);
53
+ process.exitCode = 2;
54
+ return;
55
+ }
52
56
  }
53
- const schema = format === "native" ? NativeGalaxyWorkflowSchema : GalaxyWorkflowSchema;
54
- const decode = S.decodeUnknownEither(schema, { onExcessProperty: "ignore" });
55
- const structResult = decode(validationData);
56
- let structOk = true;
57
- if (structResult._tag === "Left") {
58
- structOk = false;
59
- console.error(`\nStructural validation errors:`);
60
- for (const line of formatIssues(structResult.left)) {
61
- console.error(` ${line}`);
57
+ // --- strict structure check (pre-normalization) ---
58
+ if (strict.strictStructure) {
59
+ const structErrors = checkStrictStructure(data, format);
60
+ if (structErrors.length > 0) {
61
+ console.error("Structure errors (strict):");
62
+ for (const e of structErrors)
63
+ console.error(` ${e}`);
64
+ process.exitCode = 2;
65
+ return;
62
66
  }
63
67
  }
64
- else {
65
- console.log(`Structural validation: OK`);
68
+ // --- structural validation (effect mode) ---
69
+ const structureErrors = decodeStructureErrors(data, format);
70
+ const structOk = structureErrors.length === 0;
71
+ if (!opts.json) {
72
+ if (!structOk) {
73
+ console.error(`\nStructural validation errors:`);
74
+ for (const line of structureErrors) {
75
+ console.error(` ${line}`);
76
+ }
77
+ }
78
+ else {
79
+ console.log(`Structural validation: OK`);
80
+ }
66
81
  }
67
82
  // --- tool state validation (effect mode) ---
68
83
  if (opts.toolState === false) {
84
+ if (opts.json || opts.reportHtml) {
85
+ const report = buildSingleValidationReport(filePath, [], {
86
+ structure_errors: structureErrors,
87
+ });
88
+ if (opts.json) {
89
+ console.log(JSON.stringify(report, null, 2));
90
+ }
91
+ await writeReportHtml("validate", report, opts.reportHtml);
92
+ }
69
93
  process.exitCode = structOk ? 0 : 1;
70
94
  return;
71
95
  }
72
- const cache = new ToolCache({ cacheDir: opts.cacheDir });
96
+ const cache = makeNodeToolCache({ cacheDir: opts.cacheDir });
73
97
  await cache.index.load();
74
- let results;
75
- if (format === "native") {
76
- results = await validateNativeSteps(data, cache, "", expansionOpts);
98
+ let results = [];
99
+ const encodingErrors = [];
100
+ try {
101
+ if (format === "native") {
102
+ results = await validateNativeSteps(data, cache, "", expansionOpts);
103
+ }
104
+ else {
105
+ results = await validateFormat2Steps(data, cache, "", expansionOpts);
106
+ }
107
+ }
108
+ catch (error) {
109
+ // Catch legacy encoding errors thrown by walker and capture them
110
+ if (error instanceof Error && error.message.includes("legacy parameter encoding")) {
111
+ encodingErrors.push(error.message);
112
+ }
113
+ else {
114
+ throw error;
115
+ }
77
116
  }
78
- else {
79
- results = await validateFormat2Steps(data, cache, "", expansionOpts);
117
+ const stateOk = !results.some((r) => r.status === "fail");
118
+ if (opts.json || opts.reportHtml) {
119
+ const report = buildSingleValidationReport(filePath, results, {
120
+ structure_errors: structureErrors,
121
+ encoding_errors: encodingErrors,
122
+ });
123
+ if (opts.json) {
124
+ console.log(JSON.stringify(report, null, 2));
125
+ }
126
+ await writeReportHtml("validate", report, opts.reportHtml);
127
+ process.exitCode = structOk && stateOk ? 0 : 1;
128
+ return;
80
129
  }
81
130
  if (results.length === 0) {
82
131
  console.log("No tool steps to validate state for.");
83
132
  process.exitCode = structOk ? 0 : 1;
84
133
  return;
85
134
  }
86
- let stateOk = true;
87
- let validated = 0;
88
- let skipped = 0;
89
- for (const r of results) {
90
- if (r.status === "skip") {
91
- skipped++;
92
- console.warn(` [${r.stepLabel}] skipped — ${r.errors[0] ?? "unknown"}`);
93
- }
94
- else if (r.status === "fail") {
95
- validated++;
96
- stateOk = false;
97
- console.error(` [${r.stepLabel}] tool_state errors (${r.toolId}):`);
98
- for (const line of r.errors) {
99
- console.error(` ${line}`);
100
- }
101
- }
102
- else {
103
- validated++;
104
- console.log(` [${r.stepLabel}] tool_state: OK`);
105
- }
106
- }
135
+ const { validated, skipped } = renderStepResults(results);
107
136
  console.log(`\nTool state: ${validated} validated, ${skipped} skipped`);
137
+ // --- strict state: promote skips to failures ---
138
+ if (strict.strictState && results.some((r) => r.status !== "ok" && r.status !== "fail")) {
139
+ console.error("Strict state: skipped steps not allowed");
140
+ process.exitCode = 2;
141
+ return;
142
+ }
108
143
  process.exitCode = structOk && stateOk ? 0 : 1;
109
144
  }
110
145
  // --- Native validation ---
@@ -134,10 +169,14 @@ async function _validateNativeWorkflow(wf, cache, prefix) {
134
169
  async function _validateNativeStep(step, stepLabel, toolId, toolVersion, cache) {
135
170
  const resolved = await loadCachedTool(cache, toolId, toolVersion);
136
171
  if (isResolveError(resolved)) {
137
- const reason = resolved.kind === "no_version"
138
- ? `no version for ${toolId}`
139
- : `${toolId} not in cache`;
140
- return { stepLabel, toolId, toolVersion, status: "skip", errors: [reason] };
172
+ const reason = resolved.kind === "no_version" ? `no version for ${toolId}` : `${toolId} not in cache`;
173
+ return {
174
+ step: stepLabel,
175
+ tool_id: toolId,
176
+ version: toolVersion,
177
+ status: "skip_tool_not_found",
178
+ errors: [reason],
179
+ };
141
180
  }
142
181
  const bundle = {
143
182
  parameters: resolved.tool.inputs,
@@ -145,7 +184,13 @@ async function _validateNativeStep(step, stepLabel, toolId, toolVersion, cache)
145
184
  // Skip validation if replacement parameters (${...}) are present in typed fields
146
185
  const replacementScan = scanForReplacements(bundle.parameters, step.tool_state);
147
186
  if (replacementScan === "yes") {
148
- return { stepLabel, toolId, toolVersion, status: "skip", errors: ["replacement parameters detected"] };
187
+ return {
188
+ step: stepLabel,
189
+ tool_id: toolId,
190
+ version: toolVersion,
191
+ status: "skip_replacement_params",
192
+ errors: ["replacement parameters detected"],
193
+ };
149
194
  }
150
195
  // Deep copy state and inject connection markers
151
196
  const state = structuredClone(step.tool_state);
@@ -157,19 +202,31 @@ async function _validateNativeStep(step, stepLabel, toolId, toolVersion, cache)
157
202
  // Validate against workflow_step_native schema
158
203
  const fieldModel = createFieldModel(bundle, "workflow_step_native");
159
204
  if (!fieldModel) {
160
- return { stepLabel, toolId, toolVersion, status: "skip", errors: ["unsupported parameter types"] };
205
+ return {
206
+ step: stepLabel,
207
+ tool_id: toolId,
208
+ version: toolVersion,
209
+ status: "skip_tool_not_found",
210
+ errors: ["unsupported parameter types"],
211
+ };
161
212
  }
162
213
  const validate = S.decodeUnknownEither(fieldModel, {
163
214
  onExcessProperty: "ignore",
164
215
  });
165
216
  const result = validate(state);
166
217
  if (result._tag === "Left") {
167
- return { stepLabel, toolId, toolVersion, status: "fail", errors: formatIssues(result.left) };
218
+ return {
219
+ step: stepLabel,
220
+ tool_id: toolId,
221
+ version: toolVersion,
222
+ status: "fail",
223
+ errors: formatIssues(result.left),
224
+ };
168
225
  }
169
- return { stepLabel, toolId, toolVersion, status: "ok", errors: [] };
226
+ return { step: stepLabel, tool_id: toolId, version: toolVersion, status: "ok", errors: [] };
170
227
  }
171
228
  // --- Format2 validation ---
172
- async function validateFormat2Steps(data, cache, prefix = "", expansionOpts) {
229
+ export async function validateFormat2Steps(data, cache, prefix = "", expansionOpts) {
173
230
  const expanded = await expandedFormat2(data, expansionOpts);
174
231
  return _validateFormat2Workflow(expanded, cache, prefix);
175
232
  }
@@ -196,10 +253,14 @@ async function _validateFormat2Workflow(wf, cache, prefix) {
196
253
  async function _validateFormat2Step(step, stepLabel, toolId, toolVersion, cache) {
197
254
  const resolved = await loadCachedTool(cache, toolId, toolVersion);
198
255
  if (isResolveError(resolved)) {
199
- const reason = resolved.kind === "no_version"
200
- ? `no version for ${toolId}`
201
- : `${toolId} not in cache`;
202
- return { stepLabel, toolId, toolVersion, status: "skip", errors: [reason] };
256
+ const reason = resolved.kind === "no_version" ? `no version for ${toolId}` : `${toolId} not in cache`;
257
+ return {
258
+ step: stepLabel,
259
+ tool_id: toolId,
260
+ version: toolVersion,
261
+ status: "skip_tool_not_found",
262
+ errors: [reason],
263
+ };
203
264
  }
204
265
  const bundle = {
205
266
  parameters: resolved.tool.inputs,
@@ -212,14 +273,26 @@ async function _validateFormat2Step(step, stepLabel, toolId, toolVersion, cache)
212
273
  // Level 1: Validate base state against workflow_step
213
274
  const baseModel = createFieldModel(bundle, "workflow_step");
214
275
  if (!baseModel) {
215
- return { stepLabel, toolId, toolVersion, status: "skip", errors: ["unsupported parameter types"] };
276
+ return {
277
+ step: stepLabel,
278
+ tool_id: toolId,
279
+ version: toolVersion,
280
+ status: "skip_tool_not_found",
281
+ errors: ["unsupported parameter types"],
282
+ };
216
283
  }
217
284
  const baseValidate = S.decodeUnknownEither(baseModel, {
218
285
  onExcessProperty: "ignore",
219
286
  });
220
287
  const baseResult = baseValidate(state);
221
288
  if (baseResult._tag === "Left") {
222
- return { stepLabel, toolId, toolVersion, status: "fail", errors: formatIssues(baseResult.left) };
289
+ return {
290
+ step: stepLabel,
291
+ tool_id: toolId,
292
+ version: toolVersion,
293
+ status: "fail",
294
+ errors: formatIssues(baseResult.left),
295
+ };
223
296
  }
224
297
  // Build connections dict from step.in entries
225
298
  const connections = {};
@@ -236,22 +309,76 @@ async function _validateFormat2Step(step, stepLabel, toolId, toolVersion, cache)
236
309
  const unmatchedKeys = Object.keys(remaining);
237
310
  if (unmatchedKeys.length > 0) {
238
311
  return {
239
- stepLabel, toolId, toolVersion, status: "fail",
312
+ step: stepLabel,
313
+ tool_id: toolId,
314
+ version: toolVersion,
315
+ status: "fail",
240
316
  errors: unmatchedKeys.map((k) => `No parameter definition matching connection key "${k}"`),
241
317
  };
242
318
  }
243
319
  const linkedModel = createFieldModel(bundle, "workflow_step_linked");
244
320
  if (!linkedModel) {
245
- return { stepLabel, toolId, toolVersion, status: "skip", errors: ["unsupported parameter types"] };
321
+ return {
322
+ step: stepLabel,
323
+ tool_id: toolId,
324
+ version: toolVersion,
325
+ status: "skip_tool_not_found",
326
+ errors: ["unsupported parameter types"],
327
+ };
246
328
  }
247
329
  const linkedValidate = S.decodeUnknownEither(linkedModel, {
248
330
  onExcessProperty: "ignore",
249
331
  });
250
332
  const linkedResult = linkedValidate(linkedState);
251
333
  if (linkedResult._tag === "Left") {
252
- return { stepLabel, toolId, toolVersion, status: "fail", errors: formatIssues(linkedResult.left) };
334
+ return {
335
+ step: stepLabel,
336
+ tool_id: toolId,
337
+ version: toolVersion,
338
+ status: "fail",
339
+ errors: formatIssues(linkedResult.left),
340
+ };
341
+ }
342
+ }
343
+ return { step: stepLabel, tool_id: toolId, version: toolVersion, status: "ok", errors: [] };
344
+ }
345
+ // --- Encoding error detection ---
346
+ /**
347
+ * Detect legacy parameter encoding in workflow tool_state fields.
348
+ *
349
+ * Scans each tool step's tool_state for legacy encoding signals
350
+ * (string-encoded containers, quoted select values) using scanToolState().
351
+ */
352
+ export async function detectEncodingErrors(data, cache, format, expansionOpts) {
353
+ if (format === "native") {
354
+ const expanded = await expandedNative(data, expansionOpts);
355
+ return _detectNativeEncodingErrors(expanded, cache, "");
356
+ }
357
+ // Format2 workflows don't have legacy encoding issues
358
+ return [];
359
+ }
360
+ async function _detectNativeEncodingErrors(wf, cache, prefix) {
361
+ const errors = [];
362
+ for (const [key, step] of Object.entries(wf.steps)) {
363
+ const stepLabel = prefix ? `${prefix}${key}` : key;
364
+ if (step.type === "subworkflow" && step.subworkflow) {
365
+ const subErrors = await _detectNativeEncodingErrors(step.subworkflow, cache, `${stepLabel}.`);
366
+ errors.push(...subErrors);
367
+ continue;
368
+ }
369
+ const toolId = step.tool_id;
370
+ if (!toolId)
371
+ continue;
372
+ const resolved = await loadCachedTool(cache, toolId, step.tool_version ?? null);
373
+ if (isResolveError(resolved))
374
+ continue;
375
+ const inputs = resolved.tool.inputs;
376
+ const result = scanToolState(inputs, step.tool_state);
377
+ if (result.classification === "yes") {
378
+ const details = result.hits.map((h) => `${h.parameterName}: ${h.detail}`).join("; ");
379
+ errors.push(`Step ${stepLabel} (${toolId}): legacy parameter encoding (${details})`);
253
380
  }
254
381
  }
255
- return { stepLabel, toolId, toolVersion, status: "ok", errors: [] };
382
+ return errors;
256
383
  }
257
384
  //# sourceMappingURL=validate-workflow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate-workflow.js","sourceRoot":"","sources":["../../src/commands/validate-workflow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate-workflow.js","sourceRoot":"","sources":["../../src/commands/validate-workflow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export { resolveFormat, serializeWorkflow } from "@galaxy-tool-util/schema";
2
+ export type { SerializeWorkflowOptions } from "@galaxy-tool-util/schema";
3
+ /** Read and parse a workflow file, auto-detecting JSON vs YAML by extension. */
4
+ export declare function readWorkflowFile(filePath: string): Promise<Record<string, unknown> | null>;
5
+ /** Write serialized workflow content to a file or stdout. */
6
+ export declare function writeWorkflowOutput(content: string, output?: string, label?: string): Promise<void>;
7
+ //# sourceMappingURL=workflow-io.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-io.d.ts","sourceRoot":"","sources":["../../src/commands/workflow-io.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC5E,YAAY,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEzE,gFAAgF;AAChF,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAahG;AAED,6DAA6D;AAC7D,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,EACf,KAAK,SAAa,GACjB,OAAO,CAAC,IAAI,CAAC,CAOf"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Workflow file I/O helpers for CLI commands.
3
+ *
4
+ * `resolveFormat` and `serializeWorkflow` are now provided by
5
+ * `@galaxy-tool-util/schema` so the web server can share them; this file
6
+ * re-exports them for callers that used the older cli-local paths and keeps
7
+ * the fs-based read/write helpers here (Node-only).
8
+ */
9
+ import { readFile, writeFile } from "node:fs/promises";
10
+ import * as YAML from "yaml";
11
+ export { resolveFormat, serializeWorkflow } from "@galaxy-tool-util/schema";
12
+ /** Read and parse a workflow file, auto-detecting JSON vs YAML by extension. */
13
+ export async function readWorkflowFile(filePath) {
14
+ const raw = await readFile(filePath, "utf-8");
15
+ try {
16
+ if (filePath.endsWith(".ga") || filePath.endsWith(".json")) {
17
+ return JSON.parse(raw);
18
+ }
19
+ return YAML.parse(raw);
20
+ }
21
+ catch (e) {
22
+ const msg = e instanceof Error ? e.message : String(e);
23
+ console.error(`Failed to parse ${filePath}: ${msg}`);
24
+ process.exitCode = 1;
25
+ return null;
26
+ }
27
+ }
28
+ /** Write serialized workflow content to a file or stdout. */
29
+ export async function writeWorkflowOutput(content, output, label = "Workflow") {
30
+ if (output) {
31
+ await writeFile(output, content, "utf-8");
32
+ console.log(`${label} written to ${output}`);
33
+ }
34
+ else {
35
+ process.stdout.write(content);
36
+ }
37
+ }
38
+ //# sourceMappingURL=workflow-io.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-io.js","sourceRoot":"","sources":["../../src/commands/workflow-io.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAG5E,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,QAAgB;IACrD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,KAAK,CAAC,mBAAmB,QAAQ,KAAK,GAAG,EAAE,CAAC,CAAC;QACrD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,6DAA6D;AAC7D,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAe,EACf,MAAe,EACf,KAAK,GAAG,UAAU;IAElB,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,eAAe,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;AACH,CAAC"}
package/dist/index.d.ts CHANGED
@@ -16,4 +16,45 @@ export { runClear } from "./commands/clear.js";
16
16
  export { runSchema } from "./commands/schema.js";
17
17
  /** Validate a Galaxy workflow file (structure + optional tool state). */
18
18
  export { runValidateWorkflow } from "./commands/validate-workflow.js";
19
+ /** Validate a workflow-test file (*-tests.yml / *.gxwf-tests.yml). */
20
+ export { runValidateTests } from "./commands/validate-tests.js";
21
+ export type { ValidateTestsOptions, ValidateTestsReport } from "./commands/validate-tests.js";
22
+ /** Batch-validate workflow-test files under a directory. */
23
+ export { runValidateTestsTree } from "./commands/validate-tests-tree.js";
24
+ export type { ValidateTestsTreeOptions, ValidateTestsTreeReport, } from "./commands/validate-tests-tree.js";
25
+ /** Clean a Galaxy workflow — strip stale keys and decode legacy encoding. */
26
+ export { runClean } from "./commands/clean.js";
27
+ /** Lint a Galaxy workflow — structural checks, best practices, tool state validation. */
28
+ export { runLint, lintWorkflowReport } from "./commands/lint.js";
29
+ export type { LintReport, LintReportOptions } from "./commands/lint.js";
30
+ /** Convert a Galaxy workflow between native and format2 formats. */
31
+ export { runConvert } from "./commands/convert.js";
32
+ /** Scan a workflow and cache all referenced tools. */
33
+ export { runPopulateWorkflow } from "./commands/populate-workflow.js";
34
+ /** Export the structural JSON Schema for Galaxy workflows. */
35
+ export { runStructuralSchema } from "./commands/structural-schema.js";
36
+ /** Batch validate all workflows under a directory. */
37
+ export { runValidateTree } from "./commands/validate-tree.js";
38
+ /** Batch lint all workflows under a directory. */
39
+ export { runLintTree } from "./commands/lint-tree.js";
40
+ /** Batch clean all workflows under a directory. */
41
+ export { runCleanTree } from "./commands/clean-tree.js";
42
+ /** Batch convert all workflows under a directory. */
43
+ export { runConvertTree } from "./commands/convert-tree.js";
44
+ /** Tree orchestrator infrastructure. */
45
+ export { discoverWorkflows, collectTree, summarizeOutcomes, skipWorkflow, loadWorkflowSafe, } from "./commands/tree.js";
46
+ export type { WorkflowInfo, WorkflowOutcome, TreeResult, TreeSummary } from "./commands/tree.js";
47
+ /** Render step validation results to console. */
48
+ export { renderStepResults } from "./commands/render-results.js";
49
+ /** Write workflow content to file or stdout. */
50
+ export { writeWorkflowOutput } from "./commands/workflow-io.js";
51
+ /** Validate native/format2 workflow steps programmatically (no CLI I/O). */
52
+ export { validateNativeSteps, validateFormat2Steps, decodeStructureErrors, detectEncodingErrors, } from "./commands/validate-workflow.js";
53
+ /** Preload tool inputs from a ToolCache into a synchronous ToolInputsResolver. */
54
+ export { loadToolInputsForWorkflow } from "./commands/stateful-tool-inputs.js";
55
+ export type { ToolLoadStatus, LoadedToolInputs } from "./commands/stateful-tool-inputs.js";
56
+ /** Default subworkflow ref resolver (base64, TRS, HTTP, file paths). */
57
+ export { createDefaultResolver } from "./commands/url-resolver.js";
58
+ /** JSON-Schema-based (AJV) step validation and structural error decoding. */
59
+ export { validateNativeStepsJsonSchema, validateFormat2StepsJsonSchema, decodeStructureErrorsJsonSchema, } from "./commands/validate-workflow-json-schema.js";
19
60
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,qEAAqE;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,yCAAyC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,0CAA0C;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,4DAA4D;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,2FAA2F;AAC3F,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,yEAAyE;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,qEAAqE;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,yCAAyC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,0CAA0C;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,4DAA4D;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,2FAA2F;AAC3F,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,yEAAyE;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,sEAAsE;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAC9F,4DAA4D;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,YAAY,EACV,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,mCAAmC,CAAC;AAC3C,6EAA6E;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,yFAAyF;AACzF,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACjE,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACxE,oEAAoE;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,sDAAsD;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,8DAA8D;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,sDAAsD;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,kDAAkD;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,mDAAmD;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,qDAAqD;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,wCAAwC;AACxC,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjG,iDAAiD;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,gDAAgD;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,4EAA4E;AAC5E,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,iCAAiC,CAAC;AACzC,kFAAkF;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3F,wEAAwE;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,6EAA6E;AAC7E,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,+BAA+B,GAChC,MAAM,6CAA6C,CAAC"}
package/dist/index.js CHANGED
@@ -16,4 +16,40 @@ export { runClear } from "./commands/clear.js";
16
16
  export { runSchema } from "./commands/schema.js";
17
17
  /** Validate a Galaxy workflow file (structure + optional tool state). */
18
18
  export { runValidateWorkflow } from "./commands/validate-workflow.js";
19
+ /** Validate a workflow-test file (*-tests.yml / *.gxwf-tests.yml). */
20
+ export { runValidateTests } from "./commands/validate-tests.js";
21
+ /** Batch-validate workflow-test files under a directory. */
22
+ export { runValidateTestsTree } from "./commands/validate-tests-tree.js";
23
+ /** Clean a Galaxy workflow — strip stale keys and decode legacy encoding. */
24
+ export { runClean } from "./commands/clean.js";
25
+ /** Lint a Galaxy workflow — structural checks, best practices, tool state validation. */
26
+ export { runLint, lintWorkflowReport } from "./commands/lint.js";
27
+ /** Convert a Galaxy workflow between native and format2 formats. */
28
+ export { runConvert } from "./commands/convert.js";
29
+ /** Scan a workflow and cache all referenced tools. */
30
+ export { runPopulateWorkflow } from "./commands/populate-workflow.js";
31
+ /** Export the structural JSON Schema for Galaxy workflows. */
32
+ export { runStructuralSchema } from "./commands/structural-schema.js";
33
+ /** Batch validate all workflows under a directory. */
34
+ export { runValidateTree } from "./commands/validate-tree.js";
35
+ /** Batch lint all workflows under a directory. */
36
+ export { runLintTree } from "./commands/lint-tree.js";
37
+ /** Batch clean all workflows under a directory. */
38
+ export { runCleanTree } from "./commands/clean-tree.js";
39
+ /** Batch convert all workflows under a directory. */
40
+ export { runConvertTree } from "./commands/convert-tree.js";
41
+ /** Tree orchestrator infrastructure. */
42
+ export { discoverWorkflows, collectTree, summarizeOutcomes, skipWorkflow, loadWorkflowSafe, } from "./commands/tree.js";
43
+ /** Render step validation results to console. */
44
+ export { renderStepResults } from "./commands/render-results.js";
45
+ /** Write workflow content to file or stdout. */
46
+ export { writeWorkflowOutput } from "./commands/workflow-io.js";
47
+ /** Validate native/format2 workflow steps programmatically (no CLI I/O). */
48
+ export { validateNativeSteps, validateFormat2Steps, decodeStructureErrors, detectEncodingErrors, } from "./commands/validate-workflow.js";
49
+ /** Preload tool inputs from a ToolCache into a synchronous ToolInputsResolver. */
50
+ export { loadToolInputsForWorkflow } from "./commands/stateful-tool-inputs.js";
51
+ /** Default subworkflow ref resolver (base64, TRS, HTTP, file paths). */
52
+ export { createDefaultResolver } from "./commands/url-resolver.js";
53
+ /** JSON-Schema-based (AJV) step validation and structural error decoding. */
54
+ export { validateNativeStepsJsonSchema, validateFormat2StepsJsonSchema, decodeStructureErrorsJsonSchema, } from "./commands/validate-workflow-json-schema.js";
19
55
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,qEAAqE;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,yCAAyC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,0CAA0C;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,4DAA4D;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,2FAA2F;AAC3F,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,yEAAyE;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,qEAAqE;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,yCAAyC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,0CAA0C;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,4DAA4D;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,2FAA2F;AAC3F,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,yEAAyE;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,sEAAsE;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,4DAA4D;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAKzE,6EAA6E;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,yFAAyF;AACzF,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAEjE,oEAAoE;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,sDAAsD;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,8DAA8D;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,sDAAsD;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,kDAAkD;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,mDAAmD;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,qDAAqD;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,wCAAwC;AACxC,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAE5B,iDAAiD;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,gDAAgD;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,4EAA4E;AAC5E,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,iCAAiC,CAAC;AACzC,kFAAkF;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,wEAAwE;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,6EAA6E;AAC7E,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,+BAA+B,GAChC,MAAM,6CAA6C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const BUNDLED_TEMPLATES: Record<string, string>;
2
+ //# sourceMappingURL=_templates-bundled.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_templates-bundled.d.ts","sourceRoot":"","sources":["../../src/workflow/_templates-bundled.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAiUpD,CAAC"}