@galaxy-tool-util/schema 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -1
- package/dist/workflow/clean.d.ts +27 -0
- package/dist/workflow/clean.d.ts.map +1 -1
- package/dist/workflow/clean.js +29 -0
- package/dist/workflow/clean.js.map +1 -1
- package/dist/workflow/coercions.d.ts +22 -0
- package/dist/workflow/coercions.d.ts.map +1 -0
- package/dist/workflow/coercions.js +67 -0
- package/dist/workflow/coercions.js.map +1 -0
- package/dist/workflow/index.d.ts +6 -1
- package/dist/workflow/index.d.ts.map +1 -1
- package/dist/workflow/index.js +6 -1
- package/dist/workflow/index.js.map +1 -1
- package/dist/workflow/normalized/index.d.ts +5 -2
- package/dist/workflow/normalized/index.d.ts.map +1 -1
- package/dist/workflow/normalized/index.js +2 -0
- package/dist/workflow/normalized/index.js.map +1 -1
- package/dist/workflow/normalized/stateful-runner.d.ts +82 -0
- package/dist/workflow/normalized/stateful-runner.d.ts.map +1 -0
- package/dist/workflow/normalized/stateful-runner.js +122 -0
- package/dist/workflow/normalized/stateful-runner.js.map +1 -0
- package/dist/workflow/normalized/toFormat2.d.ts +19 -1
- package/dist/workflow/normalized/toFormat2.d.ts.map +1 -1
- package/dist/workflow/normalized/toFormat2.js +47 -16
- package/dist/workflow/normalized/toFormat2.js.map +1 -1
- package/dist/workflow/normalized/toFormat2Stateful.d.ts +30 -0
- package/dist/workflow/normalized/toFormat2Stateful.d.ts.map +1 -0
- package/dist/workflow/normalized/toFormat2Stateful.js +58 -0
- package/dist/workflow/normalized/toFormat2Stateful.js.map +1 -0
- package/dist/workflow/normalized/toNative.d.ts +10 -1
- package/dist/workflow/normalized/toNative.d.ts.map +1 -1
- package/dist/workflow/normalized/toNative.js +24 -8
- package/dist/workflow/normalized/toNative.js.map +1 -1
- package/dist/workflow/normalized/toNativeStateful.d.ts +31 -0
- package/dist/workflow/normalized/toNativeStateful.d.ts.map +1 -0
- package/dist/workflow/normalized/toNativeStateful.js +55 -0
- package/dist/workflow/normalized/toNativeStateful.js.map +1 -0
- package/dist/workflow/precheck.d.ts +54 -0
- package/dist/workflow/precheck.d.ts.map +1 -0
- package/dist/workflow/precheck.js +91 -0
- package/dist/workflow/precheck.js.map +1 -0
- package/dist/workflow/raw/gxformat2.effect.d.ts +108 -332
- package/dist/workflow/raw/gxformat2.effect.d.ts.map +1 -1
- package/dist/workflow/raw/gxformat2.effect.js +106 -94
- package/dist/workflow/raw/gxformat2.effect.js.map +1 -1
- package/dist/workflow/raw/native.effect.d.ts +30 -177
- package/dist/workflow/raw/native.effect.d.ts.map +1 -1
- package/dist/workflow/raw/native.effect.js +43 -31
- package/dist/workflow/raw/native.effect.js.map +1 -1
- package/dist/workflow/roundtrip.d.ts +54 -0
- package/dist/workflow/roundtrip.d.ts.map +1 -0
- package/dist/workflow/roundtrip.js +516 -0
- package/dist/workflow/roundtrip.js.map +1 -0
- package/dist/workflow/runtime-markers.d.ts +20 -0
- package/dist/workflow/runtime-markers.d.ts.map +1 -0
- package/dist/workflow/runtime-markers.js +26 -0
- package/dist/workflow/runtime-markers.js.map +1 -0
- package/dist/workflow/stale-keys.d.ts +16 -0
- package/dist/workflow/stale-keys.d.ts.map +1 -0
- package/dist/workflow/stale-keys.js +43 -0
- package/dist/workflow/stale-keys.js.map +1 -0
- package/dist/workflow/state-merge.d.ts.map +1 -1
- package/dist/workflow/state-merge.js +5 -22
- package/dist/workflow/state-merge.js.map +1 -1
- package/dist/workflow/stateful-convert.d.ts +47 -0
- package/dist/workflow/stateful-convert.d.ts.map +1 -0
- package/dist/workflow/stateful-convert.js +151 -0
- package/dist/workflow/stateful-convert.js.map +1 -0
- package/dist/workflow/stateful-validate.d.ts +46 -0
- package/dist/workflow/stateful-validate.d.ts.map +1 -0
- package/dist/workflow/stateful-validate.js +96 -0
- package/dist/workflow/stateful-validate.js.map +1 -0
- package/dist/workflow/walker.d.ts +53 -0
- package/dist/workflow/walker.d.ts.map +1 -0
- package/dist/workflow/walker.js +189 -0
- package/dist/workflow/walker.js.map +1 -0
- package/package.json +18 -14
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Precheck native workflow steps for stateful conversion compatibility.
|
|
3
|
+
*
|
|
4
|
+
* Checks whether a step's tool_state can be walked by the schema-aware
|
|
5
|
+
* stateful converter, or whether it has issues (legacy replacement params,
|
|
6
|
+
* legacy parameter encoding) that require falling back to schema-free
|
|
7
|
+
* passthrough.
|
|
8
|
+
*
|
|
9
|
+
* Usage: called per-step by the stateful runner before conversion. A
|
|
10
|
+
* failing precheck short-circuits `convert` and pushes a structured
|
|
11
|
+
* `failureClass: "precheck"` status entry.
|
|
12
|
+
*
|
|
13
|
+
* Tool lookup is callback-shaped (`ToolInputsResolver`) matching the rest
|
|
14
|
+
* of the stateful conversion pipeline — the caller owns tool loading and
|
|
15
|
+
* version disambiguation.
|
|
16
|
+
*/
|
|
17
|
+
import type { NormalizedNativeWorkflow, NormalizedNativeStep } from "./normalized/native.js";
|
|
18
|
+
import type { ToolInputsResolver } from "./normalized/stateful-runner.js";
|
|
19
|
+
import type { ToolParameterModel } from "../schema/bundle-types.js";
|
|
20
|
+
export interface StepPrecheckResult {
|
|
21
|
+
stepId: string;
|
|
22
|
+
toolId?: string;
|
|
23
|
+
canProcess: boolean;
|
|
24
|
+
skipReasons: string[];
|
|
25
|
+
}
|
|
26
|
+
export interface PrecheckResult {
|
|
27
|
+
canProcess: boolean;
|
|
28
|
+
skipReasons: string[];
|
|
29
|
+
stepResults: StepPrecheckResult[];
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Precheck a single tool step's tool_state against its parameter inputs.
|
|
33
|
+
*
|
|
34
|
+
* Returns `canProcess: true` with empty reasons if the step is clean or
|
|
35
|
+
* if no inputs were provided (caller falls back at conversion time).
|
|
36
|
+
* Returns `canProcess: false` with reasons if legacy replacement params
|
|
37
|
+
* or legacy parameter encoding is detected.
|
|
38
|
+
*
|
|
39
|
+
* Non-tool steps (inputs, subworkflows) always pass — they have no
|
|
40
|
+
* tool_state to validate.
|
|
41
|
+
*/
|
|
42
|
+
export declare function precheckNativeStep(step: NormalizedNativeStep, inputs: ToolParameterModel[] | undefined): StepPrecheckResult;
|
|
43
|
+
/**
|
|
44
|
+
* Precheck every step in a native workflow using a tool inputs resolver.
|
|
45
|
+
*
|
|
46
|
+
* For each step calls `precheckNativeStep`. Returns a workflow-level
|
|
47
|
+
* verdict (`canProcess` = all steps passed) plus per-step details, so
|
|
48
|
+
* callers can still do per-step stateful conversion for clean steps.
|
|
49
|
+
*
|
|
50
|
+
* Passing `null` as the resolver is allowed and means "no tool inputs
|
|
51
|
+
* available" — every step will pass (conversion-time fallback still runs).
|
|
52
|
+
*/
|
|
53
|
+
export declare function precheckNativeWorkflow(workflow: NormalizedNativeWorkflow, resolver: ToolInputsResolver | null): PrecheckResult;
|
|
54
|
+
//# sourceMappingURL=precheck.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"precheck.d.ts","sourceRoot":"","sources":["../../src/workflow/precheck.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC7F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAIpE,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,kBAAkB,EAAE,CAAC;CACnC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,oBAAoB,EAC1B,MAAM,EAAE,kBAAkB,EAAE,GAAG,SAAS,GACvC,kBAAkB,CA8BpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,wBAAwB,EAClC,QAAQ,EAAE,kBAAkB,GAAG,IAAI,GAClC,cAAc,CA0BhB"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Precheck native workflow steps for stateful conversion compatibility.
|
|
3
|
+
*
|
|
4
|
+
* Checks whether a step's tool_state can be walked by the schema-aware
|
|
5
|
+
* stateful converter, or whether it has issues (legacy replacement params,
|
|
6
|
+
* legacy parameter encoding) that require falling back to schema-free
|
|
7
|
+
* passthrough.
|
|
8
|
+
*
|
|
9
|
+
* Usage: called per-step by the stateful runner before conversion. A
|
|
10
|
+
* failing precheck short-circuits `convert` and pushes a structured
|
|
11
|
+
* `failureClass: "precheck"` status entry.
|
|
12
|
+
*
|
|
13
|
+
* Tool lookup is callback-shaped (`ToolInputsResolver`) matching the rest
|
|
14
|
+
* of the stateful conversion pipeline — the caller owns tool loading and
|
|
15
|
+
* version disambiguation.
|
|
16
|
+
*/
|
|
17
|
+
import { scanForReplacements } from "./replacement-scan.js";
|
|
18
|
+
import { scanToolState } from "./legacy-encoding.js";
|
|
19
|
+
/**
|
|
20
|
+
* Precheck a single tool step's tool_state against its parameter inputs.
|
|
21
|
+
*
|
|
22
|
+
* Returns `canProcess: true` with empty reasons if the step is clean or
|
|
23
|
+
* if no inputs were provided (caller falls back at conversion time).
|
|
24
|
+
* Returns `canProcess: false` with reasons if legacy replacement params
|
|
25
|
+
* or legacy parameter encoding is detected.
|
|
26
|
+
*
|
|
27
|
+
* Non-tool steps (inputs, subworkflows) always pass — they have no
|
|
28
|
+
* tool_state to validate.
|
|
29
|
+
*/
|
|
30
|
+
export function precheckNativeStep(step, inputs) {
|
|
31
|
+
const stepId = String(step.id ?? "");
|
|
32
|
+
const toolId = step.tool_id ?? undefined;
|
|
33
|
+
const reasons = [];
|
|
34
|
+
if (step.type !== "tool") {
|
|
35
|
+
return { stepId, toolId, canProcess: true, skipReasons: [] };
|
|
36
|
+
}
|
|
37
|
+
if (inputs == null || toolId == null) {
|
|
38
|
+
return { stepId, toolId, canProcess: true, skipReasons: [] };
|
|
39
|
+
}
|
|
40
|
+
// Legacy replacement parameters (${...}) in typed fields
|
|
41
|
+
if (scanForReplacements(inputs, step.tool_state) === "yes") {
|
|
42
|
+
reasons.push("legacy replacement parameter (${...}) in typed field");
|
|
43
|
+
}
|
|
44
|
+
// Legacy parameter encoding (string-encoded containers)
|
|
45
|
+
const encodingResult = scanToolState(inputs, step.tool_state);
|
|
46
|
+
if (encodingResult.classification === "yes") {
|
|
47
|
+
const details = encodingResult.hits.map((h) => `${h.parameterName}: ${h.detail}`).join("; ");
|
|
48
|
+
reasons.push(`legacy parameter encoding detected (${details})`);
|
|
49
|
+
}
|
|
50
|
+
return {
|
|
51
|
+
stepId,
|
|
52
|
+
toolId,
|
|
53
|
+
canProcess: reasons.length === 0,
|
|
54
|
+
skipReasons: reasons,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Precheck every step in a native workflow using a tool inputs resolver.
|
|
59
|
+
*
|
|
60
|
+
* For each step calls `precheckNativeStep`. Returns a workflow-level
|
|
61
|
+
* verdict (`canProcess` = all steps passed) plus per-step details, so
|
|
62
|
+
* callers can still do per-step stateful conversion for clean steps.
|
|
63
|
+
*
|
|
64
|
+
* Passing `null` as the resolver is allowed and means "no tool inputs
|
|
65
|
+
* available" — every step will pass (conversion-time fallback still runs).
|
|
66
|
+
*/
|
|
67
|
+
export function precheckNativeWorkflow(workflow, resolver) {
|
|
68
|
+
const stepResults = [];
|
|
69
|
+
const workflowReasons = [];
|
|
70
|
+
for (const [key, step] of Object.entries(workflow.steps)) {
|
|
71
|
+
const inputs = resolver != null && step.tool_id != null
|
|
72
|
+
? resolver(step.tool_id, step.tool_version ?? null)
|
|
73
|
+
: undefined;
|
|
74
|
+
const stepResult = precheckNativeStep(step, inputs);
|
|
75
|
+
if (stepResult.stepId === "") {
|
|
76
|
+
stepResult.stepId = String(step.id ?? key);
|
|
77
|
+
}
|
|
78
|
+
stepResults.push(stepResult);
|
|
79
|
+
if (!stepResult.canProcess) {
|
|
80
|
+
for (const reason of stepResult.skipReasons) {
|
|
81
|
+
workflowReasons.push(`step ${stepResult.stepId}: ${reason}`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return {
|
|
86
|
+
canProcess: workflowReasons.length === 0,
|
|
87
|
+
skipReasons: workflowReasons,
|
|
88
|
+
stepResults,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=precheck.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"precheck.js","sourceRoot":"","sources":["../../src/workflow/precheck.ts"],"names":[],"mappings":"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"}
|