@galaxy-tool-util/schema 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.
- package/LICENSE +21 -0
- package/dist/index.d.ts +87 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +62 -1
- package/dist/index.js.map +1 -1
- package/dist/schema/type-guards.d.ts +14 -0
- package/dist/schema/type-guards.d.ts.map +1 -0
- package/dist/schema/type-guards.js +25 -0
- package/dist/schema/type-guards.js.map +1 -0
- package/dist/test-format/cross-check/check.d.ts +18 -0
- package/dist/test-format/cross-check/check.d.ts.map +1 -0
- package/dist/test-format/cross-check/check.js +89 -0
- package/dist/test-format/cross-check/check.js.map +1 -0
- package/dist/test-format/cross-check/extract-format2.d.ts +13 -0
- package/dist/test-format/cross-check/extract-format2.d.ts.map +1 -0
- package/dist/test-format/cross-check/extract-format2.js +98 -0
- package/dist/test-format/cross-check/extract-format2.js.map +1 -0
- package/dist/test-format/cross-check/extract-native.d.ts +4 -0
- package/dist/test-format/cross-check/extract-native.d.ts.map +1 -0
- package/dist/test-format/cross-check/extract-native.js +89 -0
- package/dist/test-format/cross-check/extract-native.js.map +1 -0
- package/dist/test-format/cross-check/extract.d.ts +9 -0
- package/dist/test-format/cross-check/extract.d.ts.map +1 -0
- package/dist/test-format/cross-check/extract.js +16 -0
- package/dist/test-format/cross-check/extract.js.map +1 -0
- package/dist/test-format/cross-check/index.d.ts +7 -0
- package/dist/test-format/cross-check/index.d.ts.map +1 -0
- package/dist/test-format/cross-check/index.js +6 -0
- package/dist/test-format/cross-check/index.js.map +1 -0
- package/dist/test-format/cross-check/type-compat.d.ts +23 -0
- package/dist/test-format/cross-check/type-compat.d.ts.map +1 -0
- package/dist/test-format/cross-check/type-compat.js +48 -0
- package/dist/test-format/cross-check/type-compat.js.map +1 -0
- package/dist/test-format/cross-check/types.d.ts +23 -0
- package/dist/test-format/cross-check/types.d.ts.map +1 -0
- package/dist/test-format/cross-check/types.js +10 -0
- package/dist/test-format/cross-check/types.js.map +1 -0
- package/dist/test-format/index.d.ts +3 -0
- package/dist/test-format/index.d.ts.map +1 -0
- package/dist/test-format/index.js +3 -0
- package/dist/test-format/index.js.map +1 -0
- package/dist/test-format/tests.schema.generated.d.ts +5610 -0
- package/dist/test-format/tests.schema.generated.d.ts.map +1 -0
- package/dist/test-format/tests.schema.generated.js +6899 -0
- package/dist/test-format/tests.schema.generated.js.map +1 -0
- package/dist/test-format/validate.d.ts +20 -0
- package/dist/test-format/validate.d.ts.map +1 -0
- package/dist/test-format/validate.js +41 -0
- package/dist/test-format/validate.js.map +1 -0
- package/dist/tool-state-validator.d.ts +23 -0
- package/dist/tool-state-validator.d.ts.map +1 -0
- package/dist/tool-state-validator.js +59 -0
- package/dist/tool-state-validator.js.map +1 -0
- package/dist/workflow/clean.d.ts +56 -3
- package/dist/workflow/clean.d.ts.map +1 -1
- package/dist/workflow/clean.js +227 -27
- 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 +17 -4
- package/dist/workflow/index.d.ts.map +1 -1
- package/dist/workflow/index.js +18 -3
- package/dist/workflow/index.js.map +1 -1
- package/dist/workflow/lint-profiles.d.ts +27 -0
- package/dist/workflow/lint-profiles.d.ts.map +1 -0
- package/dist/workflow/lint-profiles.js +49 -0
- package/dist/workflow/lint-profiles.js.map +1 -0
- package/dist/workflow/lint-rules.d.ts +15 -0
- package/dist/workflow/lint-rules.d.ts.map +1 -0
- package/dist/workflow/lint-rules.js +15 -0
- package/dist/workflow/lint-rules.js.map +1 -0
- package/dist/workflow/lint.d.ts +4 -18
- package/dist/workflow/lint.d.ts.map +1 -1
- package/dist/workflow/lint.js +9 -30
- package/dist/workflow/lint.js.map +1 -1
- package/dist/workflow/lint_profiles.yml +41 -0
- package/dist/workflow/linting.d.ts +54 -0
- package/dist/workflow/linting.d.ts.map +1 -0
- package/dist/workflow/linting.js +71 -0
- package/dist/workflow/linting.js.map +1 -0
- 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/param-navigation.d.ts +26 -0
- package/dist/workflow/param-navigation.d.ts.map +1 -0
- package/dist/workflow/param-navigation.js +60 -0
- package/dist/workflow/param-navigation.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 +97 -97
- package/dist/workflow/raw/gxformat2.effect.d.ts.map +1 -1
- package/dist/workflow/raw/gxformat2.effect.js +98 -88
- package/dist/workflow/raw/gxformat2.effect.js.map +1 -1
- package/dist/workflow/raw/native.d.ts +2 -2
- package/dist/workflow/raw/native.d.ts.map +1 -1
- package/dist/workflow/raw/native.effect.d.ts +33 -33
- package/dist/workflow/raw/native.effect.d.ts.map +1 -1
- package/dist/workflow/raw/native.effect.js +42 -32
- package/dist/workflow/raw/native.effect.js.map +1 -1
- package/dist/workflow/report-models.d.ts +412 -0
- package/dist/workflow/report-models.d.ts.map +1 -0
- package/dist/workflow/report-models.js +342 -0
- package/dist/workflow/report-models.js.map +1 -0
- package/dist/workflow/roundtrip.d.ts +77 -0
- package/dist/workflow/roundtrip.d.ts.map +1 -0
- package/dist/workflow/roundtrip.js +597 -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/schema-rules.d.ts +38 -0
- package/dist/workflow/schema-rules.d.ts.map +1 -0
- package/dist/workflow/schema-rules.js +28 -0
- package/dist/workflow/schema-rules.js.map +1 -0
- package/dist/workflow/schema_rules.yml +69 -0
- package/dist/workflow/serialize.d.ts +30 -0
- package/dist/workflow/serialize.d.ts.map +1 -0
- package/dist/workflow/serialize.js +37 -0
- package/dist/workflow/serialize.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 +15 -32
- package/dist/workflow/state-merge.d.ts.map +1 -1
- package/dist/workflow/state-merge.js +31 -225
- 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 +67 -0
- package/dist/workflow/stateful-validate.d.ts.map +1 -0
- package/dist/workflow/stateful-validate.js +123 -0
- package/dist/workflow/stateful-validate.js.map +1 -0
- package/dist/workflow/strict-checks.d.ts +22 -0
- package/dist/workflow/strict-checks.d.ts.map +1 -0
- package/dist/workflow/strict-checks.js +95 -0
- package/dist/workflow/strict-checks.js.map +1 -0
- package/dist/workflow/tool-state-io.d.ts +14 -0
- package/dist/workflow/tool-state-io.d.ts.map +1 -0
- package/dist/workflow/tool-state-io.js +33 -0
- package/dist/workflow/tool-state-io.js.map +1 -0
- package/dist/workflow/validators.d.ts +34 -0
- package/dist/workflow/validators.d.ts.map +1 -0
- package/dist/workflow/validators.js +83 -0
- package/dist/workflow/validators.js.map +1 -0
- package/dist/workflow/walk-helpers.d.ts +29 -0
- package/dist/workflow/walk-helpers.d.ts.map +1 -0
- package/dist/workflow/walk-helpers.js +89 -0
- package/dist/workflow/walk-helpers.js.map +1 -0
- package/dist/workflow/walker.d.ts +55 -0
- package/dist/workflow/walker.d.ts.map +1 -0
- package/dist/workflow/walker.js +199 -0
- package/dist/workflow/walker.js.map +1 -0
- package/package.json +21 -16
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { parseToolState } from "../../workflow/tool-state-io.js";
|
|
2
|
+
const INPUT_STEP_TYPES = new Set(["data_input", "data_collection_input", "parameter_input"]);
|
|
3
|
+
function asRecord(v) {
|
|
4
|
+
return v && typeof v === "object" && !Array.isArray(v)
|
|
5
|
+
? v
|
|
6
|
+
: undefined;
|
|
7
|
+
}
|
|
8
|
+
function asString(v) {
|
|
9
|
+
return typeof v === "string" ? v : undefined;
|
|
10
|
+
}
|
|
11
|
+
function inputTypeFor(stepType, toolState) {
|
|
12
|
+
if (stepType === "data_input")
|
|
13
|
+
return "data";
|
|
14
|
+
if (stepType === "data_collection_input")
|
|
15
|
+
return "collection";
|
|
16
|
+
// parameter_input — tool_state carries `parameter_type` (e.g. "integer", "text", "boolean").
|
|
17
|
+
return asString(toolState.parameter_type) ?? "data";
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Return parsed steps as an array ordered by numeric id. Native workflows
|
|
21
|
+
* store `steps` as a dict keyed by stringified id.
|
|
22
|
+
*/
|
|
23
|
+
function orderedSteps(parsed) {
|
|
24
|
+
const steps = asRecord(parsed.steps);
|
|
25
|
+
if (!steps)
|
|
26
|
+
return [];
|
|
27
|
+
return Object.entries(steps)
|
|
28
|
+
.map(([key, value]) => {
|
|
29
|
+
const step = asRecord(value);
|
|
30
|
+
const id = step && typeof step.id === "number" ? step.id : Number.parseInt(key, 10);
|
|
31
|
+
return { id: Number.isFinite(id) ? id : 0, step };
|
|
32
|
+
})
|
|
33
|
+
.filter((e) => !!e.step)
|
|
34
|
+
.sort((a, b) => a.id - b.id)
|
|
35
|
+
.map((e) => e.step);
|
|
36
|
+
}
|
|
37
|
+
export function extractNativeInputs(parsed) {
|
|
38
|
+
const wf = asRecord(parsed);
|
|
39
|
+
if (!wf)
|
|
40
|
+
return [];
|
|
41
|
+
const out = [];
|
|
42
|
+
for (const step of orderedSteps(wf)) {
|
|
43
|
+
const stepType = asString(step.type);
|
|
44
|
+
if (!stepType || !INPUT_STEP_TYPES.has(stepType))
|
|
45
|
+
continue;
|
|
46
|
+
const name = asString(step.label);
|
|
47
|
+
if (!name)
|
|
48
|
+
continue;
|
|
49
|
+
const toolState = parseToolState(step.tool_state);
|
|
50
|
+
const type = inputTypeFor(stepType, toolState);
|
|
51
|
+
const input = { name, type };
|
|
52
|
+
const doc = asString(step.annotation);
|
|
53
|
+
if (doc)
|
|
54
|
+
input.doc = doc;
|
|
55
|
+
if (typeof toolState.optional === "boolean")
|
|
56
|
+
input.optional = toolState.optional;
|
|
57
|
+
if (Object.prototype.hasOwnProperty.call(toolState, "default")) {
|
|
58
|
+
input.default = toolState.default;
|
|
59
|
+
}
|
|
60
|
+
out.push(input);
|
|
61
|
+
}
|
|
62
|
+
return out;
|
|
63
|
+
}
|
|
64
|
+
export function extractNativeOutputs(parsed) {
|
|
65
|
+
const wf = asRecord(parsed);
|
|
66
|
+
if (!wf)
|
|
67
|
+
return [];
|
|
68
|
+
const out = [];
|
|
69
|
+
for (const step of orderedSteps(wf)) {
|
|
70
|
+
const workflowOutputs = step.workflow_outputs;
|
|
71
|
+
if (!Array.isArray(workflowOutputs))
|
|
72
|
+
continue;
|
|
73
|
+
for (const wo of workflowOutputs) {
|
|
74
|
+
const r = asRecord(wo);
|
|
75
|
+
if (!r)
|
|
76
|
+
continue;
|
|
77
|
+
const name = asString(r.label) ?? asString(r.output_name);
|
|
78
|
+
if (!name)
|
|
79
|
+
continue;
|
|
80
|
+
const entry = { name };
|
|
81
|
+
const uuid = asString(r.uuid);
|
|
82
|
+
if (uuid)
|
|
83
|
+
entry.uuid = uuid;
|
|
84
|
+
out.push(entry);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return out;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=extract-native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract-native.js","sourceRoot":"","sources":["../../../src/test-format/cross-check/extract-native.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { WorkflowFormat } from "../../workflow/detect-format.js";
|
|
2
|
+
import type { WorkflowInput, WorkflowOutput } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Format-aware extractor. Uses the schema package's `resolveFormat` so
|
|
5
|
+
* callers don't have to sniff native vs format2 themselves.
|
|
6
|
+
*/
|
|
7
|
+
export declare function extractWorkflowInputs(parsed: Record<string, unknown>, format?: WorkflowFormat): WorkflowInput[];
|
|
8
|
+
export declare function extractWorkflowOutputs(parsed: Record<string, unknown>, format?: WorkflowFormat): WorkflowOutput[];
|
|
9
|
+
//# sourceMappingURL=extract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../../src/test-format/cross-check/extract.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAGtE,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEhE;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,CAAC,EAAE,cAAc,GACtB,aAAa,EAAE,CAGjB;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,CAAC,EAAE,cAAc,GACtB,cAAc,EAAE,CAGlB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { resolveFormat } from "../../workflow/serialize.js";
|
|
2
|
+
import { extractFormat2Inputs, extractFormat2Outputs } from "./extract-format2.js";
|
|
3
|
+
import { extractNativeInputs, extractNativeOutputs } from "./extract-native.js";
|
|
4
|
+
/**
|
|
5
|
+
* Format-aware extractor. Uses the schema package's `resolveFormat` so
|
|
6
|
+
* callers don't have to sniff native vs format2 themselves.
|
|
7
|
+
*/
|
|
8
|
+
export function extractWorkflowInputs(parsed, format) {
|
|
9
|
+
const f = format ?? resolveFormat(parsed);
|
|
10
|
+
return f === "format2" ? extractFormat2Inputs(parsed) : extractNativeInputs(parsed);
|
|
11
|
+
}
|
|
12
|
+
export function extractWorkflowOutputs(parsed, format) {
|
|
13
|
+
const f = format ?? resolveFormat(parsed);
|
|
14
|
+
return f === "format2" ? extractFormat2Outputs(parsed) : extractNativeOutputs(parsed);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=extract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../src/test-format/cross-check/extract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGhF;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAA+B,EAC/B,MAAuB;IAEvB,MAAM,CAAC,GAAG,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,MAA+B,EAC/B,MAAuB;IAEvB,MAAM,CAAC,GAAG,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;AACxF,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type { WorkflowInput, WorkflowOutput, WorkflowDataType } from "./types.js";
|
|
2
|
+
export { extractWorkflowInputs, extractWorkflowOutputs } from "./extract.js";
|
|
3
|
+
export { extractFormat2Inputs, extractFormat2Outputs } from "./extract-format2.js";
|
|
4
|
+
export { extractNativeInputs, extractNativeOutputs } from "./extract-native.js";
|
|
5
|
+
export { isCompatibleType, jsTypeOf } from "./type-compat.js";
|
|
6
|
+
export { checkTestsAgainstWorkflow, type WorkflowShape } from "./check.js";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/test-format/cross-check/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAClF,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { extractWorkflowInputs, extractWorkflowOutputs } from "./extract.js";
|
|
2
|
+
export { extractFormat2Inputs, extractFormat2Outputs } from "./extract-format2.js";
|
|
3
|
+
export { extractNativeInputs, extractNativeOutputs } from "./extract-native.js";
|
|
4
|
+
export { isCompatibleType, jsTypeOf } from "./type-compat.js";
|
|
5
|
+
export { checkTestsAgainstWorkflow } from "./check.js";
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/test-format/cross-check/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAsB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { WorkflowDataType } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Coarse compatibility check between a workflow-declared input type and the
|
|
4
|
+
* runtime type tag of a test-job value. Matches the VS Code plugin's
|
|
5
|
+
* `server-common/src/utils.ts::isCompatibleType` signature — callers pass a
|
|
6
|
+
* runtime type *string*, not the raw value. Plugin callers derive the string
|
|
7
|
+
* from an AST node's `.type` (YAML-language-server vocabulary:
|
|
8
|
+
* `"string" | "number" | "boolean" | "null" | "object" | "array"`); our CLI
|
|
9
|
+
* derives it from `typeof` via {@link jsTypeOf}.
|
|
10
|
+
*
|
|
11
|
+
* Unmapped declared types (`data`, `collection`, `color`, custom) fall
|
|
12
|
+
* through as compatible — the strict structural check lives in the JSON
|
|
13
|
+
* Schema layer.
|
|
14
|
+
*/
|
|
15
|
+
export declare function isCompatibleType(expectedType: WorkflowDataType, actualType: string): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* JS-side runtime type tag for a test-job value, in the same vocabulary
|
|
18
|
+
* YAML-language-server's AST emits — so `isCompatibleType` produces the same
|
|
19
|
+
* answer regardless of whether the caller walked an AST (plugin) or parsed
|
|
20
|
+
* YAML into plain values (CLI).
|
|
21
|
+
*/
|
|
22
|
+
export declare function jsTypeOf(value: unknown): string;
|
|
23
|
+
//# sourceMappingURL=type-compat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-compat.d.ts","sourceRoot":"","sources":["../../../src/test-format/cross-check/type-compat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAoB5F;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAI/C"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Coarse compatibility check between a workflow-declared input type and the
|
|
3
|
+
* runtime type tag of a test-job value. Matches the VS Code plugin's
|
|
4
|
+
* `server-common/src/utils.ts::isCompatibleType` signature — callers pass a
|
|
5
|
+
* runtime type *string*, not the raw value. Plugin callers derive the string
|
|
6
|
+
* from an AST node's `.type` (YAML-language-server vocabulary:
|
|
7
|
+
* `"string" | "number" | "boolean" | "null" | "object" | "array"`); our CLI
|
|
8
|
+
* derives it from `typeof` via {@link jsTypeOf}.
|
|
9
|
+
*
|
|
10
|
+
* Unmapped declared types (`data`, `collection`, `color`, custom) fall
|
|
11
|
+
* through as compatible — the strict structural check lives in the JSON
|
|
12
|
+
* Schema layer.
|
|
13
|
+
*/
|
|
14
|
+
export function isCompatibleType(expectedType, actualType) {
|
|
15
|
+
switch (expectedType) {
|
|
16
|
+
case "int":
|
|
17
|
+
case "integer":
|
|
18
|
+
case "long":
|
|
19
|
+
case "double":
|
|
20
|
+
case "float":
|
|
21
|
+
return actualType === "number";
|
|
22
|
+
case "boolean":
|
|
23
|
+
return actualType === "boolean";
|
|
24
|
+
case "text":
|
|
25
|
+
case "string":
|
|
26
|
+
return actualType === "string";
|
|
27
|
+
case "File":
|
|
28
|
+
return actualType === "string" || actualType === "object";
|
|
29
|
+
case "null":
|
|
30
|
+
return actualType === "null";
|
|
31
|
+
default:
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* JS-side runtime type tag for a test-job value, in the same vocabulary
|
|
37
|
+
* YAML-language-server's AST emits — so `isCompatibleType` produces the same
|
|
38
|
+
* answer regardless of whether the caller walked an AST (plugin) or parsed
|
|
39
|
+
* YAML into plain values (CLI).
|
|
40
|
+
*/
|
|
41
|
+
export function jsTypeOf(value) {
|
|
42
|
+
if (value === null)
|
|
43
|
+
return "null";
|
|
44
|
+
if (Array.isArray(value))
|
|
45
|
+
return "array";
|
|
46
|
+
return typeof value;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=type-compat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-compat.js","sourceRoot":"","sources":["../../../src/test-format/cross-check/type-compat.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAAC,YAA8B,EAAE,UAAkB;IACjF,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,KAAK,CAAC;QACX,KAAK,SAAS,CAAC;QACf,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,OAAO;YACV,OAAO,UAAU,KAAK,QAAQ,CAAC;QACjC,KAAK,SAAS;YACZ,OAAO,UAAU,KAAK,SAAS,CAAC;QAClC,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ;YACX,OAAO,UAAU,KAAK,QAAQ,CAAC;QACjC,KAAK,MAAM;YACT,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,QAAQ,CAAC;QAC5D,KAAK,MAAM;YACT,OAAO,UAAU,KAAK,MAAM,CAAC;QAC/B;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAClC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IACzC,OAAO,OAAO,KAAK,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical DTOs for workflow cross-check. Shared with the VS Code plugin so
|
|
3
|
+
* extractors + the comparator can be reused; plugin keeps AST ranges.
|
|
4
|
+
*
|
|
5
|
+
* `type` is stringified whatever the workflow declares ("File", "data",
|
|
6
|
+
* "int", "integer", "string", ...). Callers should not canonicalize — the
|
|
7
|
+
* vocabulary is semi-open and differs subtly between native and format2.
|
|
8
|
+
*/
|
|
9
|
+
export type WorkflowDataType = "boolean" | "collection" | "color" | "data" | "double" | "File" | "float" | "int" | "integer" | "long" | "null" | "string" | "text" | (string & {});
|
|
10
|
+
export interface WorkflowInput {
|
|
11
|
+
name: string;
|
|
12
|
+
doc?: string;
|
|
13
|
+
type: WorkflowDataType;
|
|
14
|
+
default?: unknown;
|
|
15
|
+
optional?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface WorkflowOutput {
|
|
18
|
+
name: string;
|
|
19
|
+
doc?: string;
|
|
20
|
+
uuid?: string;
|
|
21
|
+
type?: WorkflowDataType;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/test-format/cross-check/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,YAAY,GACZ,OAAO,GACP,MAAM,GACN,QAAQ,GACR,MAAM,GACN,OAAO,GACP,KAAK,GACL,SAAS,GACT,MAAM,GACN,MAAM,GACN,QAAQ,GACR,MAAM,GACN,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElB,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,gBAAgB,CAAC;CACzB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical DTOs for workflow cross-check. Shared with the VS Code plugin so
|
|
3
|
+
* extractors + the comparator can be reused; plugin keeps AST ranges.
|
|
4
|
+
*
|
|
5
|
+
* `type` is stringified whatever the workflow declares ("File", "data",
|
|
6
|
+
* "int", "integer", "string", ...). Callers should not canonicalize — the
|
|
7
|
+
* vocabulary is semi-open and differs subtly between native and format2.
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/test-format/cross-check/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { validateTestsFile, testsSchema, type TestFormatDiagnostic } from "./validate.js";
|
|
2
|
+
export { type WorkflowInput, type WorkflowOutput, type WorkflowDataType, extractWorkflowInputs, extractWorkflowOutputs, extractFormat2Inputs, extractFormat2Outputs, extractNativeInputs, extractNativeOutputs, isCompatibleType, jsTypeOf, checkTestsAgainstWorkflow, type WorkflowShape, } from "./cross-check/index.js";
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/test-format/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,KAAK,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC1F,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,QAAQ,EACR,yBAAyB,EACzB,KAAK,aAAa,GACnB,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { validateTestsFile, testsSchema } from "./validate.js";
|
|
2
|
+
export { extractWorkflowInputs, extractWorkflowOutputs, extractFormat2Inputs, extractFormat2Outputs, extractNativeInputs, extractNativeOutputs, isCompatibleType, jsTypeOf, checkTestsAgainstWorkflow, } from "./cross-check/index.js";
|
|
3
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/test-format/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAA6B,MAAM,eAAe,CAAC;AAC1F,OAAO,EAIL,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,QAAQ,EACR,yBAAyB,GAE1B,MAAM,wBAAwB,CAAC"}
|