@galaxy-tool-util/schema 1.2.0 → 1.5.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/dist/index.d.ts +27 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -1
- package/dist/index.js.map +1 -1
- package/dist/schema/parsed-tool.d.ts +3 -0
- package/dist/schema/parsed-tool.d.ts.map +1 -1
- package/dist/user-tool-parse/index.d.ts +12 -0
- package/dist/user-tool-parse/index.d.ts.map +1 -0
- package/dist/user-tool-parse/index.js +12 -0
- package/dist/user-tool-parse/index.js.map +1 -0
- package/dist/user-tool-parse/inputs.d.ts +13 -0
- package/dist/user-tool-parse/inputs.d.ts.map +1 -0
- package/dist/user-tool-parse/inputs.js +565 -0
- package/dist/user-tool-parse/inputs.js.map +1 -0
- package/dist/user-tool-parse/outputs.d.ts +10 -0
- package/dist/user-tool-parse/outputs.d.ts.map +1 -0
- package/dist/user-tool-parse/outputs.js +231 -0
- package/dist/user-tool-parse/outputs.js.map +1 -0
- package/dist/user-tool-parse/parse.d.ts +12 -0
- package/dist/user-tool-parse/parse.d.ts.map +1 -0
- package/dist/user-tool-parse/parse.js +98 -0
- package/dist/user-tool-parse/parse.js.map +1 -0
- package/dist/user-tool-source/index.d.ts +3 -0
- package/dist/user-tool-source/index.d.ts.map +1 -0
- package/dist/user-tool-source/index.js +3 -0
- package/dist/user-tool-source/index.js.map +1 -0
- package/dist/user-tool-source/schema.generated.d.ts +7298 -0
- package/dist/user-tool-source/schema.generated.d.ts.map +1 -0
- package/dist/user-tool-source/schema.generated.js +8851 -0
- package/dist/user-tool-source/schema.generated.js.map +1 -0
- package/dist/user-tool-source/semantic.d.ts +14 -0
- package/dist/user-tool-source/semantic.d.ts.map +1 -0
- package/dist/user-tool-source/semantic.js +137 -0
- package/dist/user-tool-source/semantic.js.map +1 -0
- package/dist/user-tool-source/validate.d.ts +37 -0
- package/dist/user-tool-source/validate.d.ts.map +1 -0
- package/dist/user-tool-source/validate.js +54 -0
- package/dist/user-tool-source/validate.js.map +1 -0
- package/dist/workflow/draft-checks.d.ts +205 -0
- package/dist/workflow/draft-checks.d.ts.map +1 -0
- package/dist/workflow/draft-checks.js +1151 -0
- package/dist/workflow/draft-checks.js.map +1 -0
- package/dist/workflow/index.d.ts +3 -1
- package/dist/workflow/index.d.ts.map +1 -1
- package/dist/workflow/index.js +3 -1
- package/dist/workflow/index.js.map +1 -1
- package/dist/workflow/normalized/format2.d.ts +1 -0
- package/dist/workflow/normalized/format2.d.ts.map +1 -1
- package/dist/workflow/normalized/format2.js +15 -2
- package/dist/workflow/normalized/format2.js.map +1 -1
- package/dist/workflow/normalized/native.d.ts +1 -1
- package/dist/workflow/normalized/toNative.js +29 -4
- package/dist/workflow/normalized/toNative.js.map +1 -1
- package/dist/workflow/promote-draft.d.ts +53 -0
- package/dist/workflow/promote-draft.d.ts.map +1 -0
- package/dist/workflow/promote-draft.js +133 -0
- package/dist/workflow/promote-draft.js.map +1 -0
- package/dist/workflow/raw/gxformat2-draft.d.ts +688 -0
- package/dist/workflow/raw/gxformat2-draft.d.ts.map +1 -0
- package/dist/workflow/raw/gxformat2-draft.effect.d.ts +4607 -0
- package/dist/workflow/raw/gxformat2-draft.effect.d.ts.map +1 -0
- package/dist/workflow/raw/gxformat2-draft.effect.js +778 -0
- package/dist/workflow/raw/gxformat2-draft.effect.js.map +1 -0
- package/dist/workflow/raw/gxformat2-draft.js +20 -0
- package/dist/workflow/raw/gxformat2-draft.js.map +1 -0
- package/dist/workflow/raw/gxformat2.d.ts +237 -13
- package/dist/workflow/raw/gxformat2.d.ts.map +1 -1
- package/dist/workflow/raw/gxformat2.effect.d.ts +1375 -177
- package/dist/workflow/raw/gxformat2.effect.d.ts.map +1 -1
- package/dist/workflow/raw/gxformat2.effect.js +355 -108
- package/dist/workflow/raw/gxformat2.effect.js.map +1 -1
- package/dist/workflow/raw/gxformat2.js +18 -1
- package/dist/workflow/raw/gxformat2.js.map +1 -1
- package/dist/workflow/raw/index.d.ts +2 -0
- package/dist/workflow/raw/index.d.ts.map +1 -1
- package/dist/workflow/raw/index.js +1 -0
- package/dist/workflow/raw/index.js.map +1 -1
- package/dist/workflow/raw/native.d.ts +51 -2
- package/dist/workflow/raw/native.d.ts.map +1 -1
- package/dist/workflow/raw/native.effect.d.ts +82 -30
- package/dist/workflow/raw/native.effect.d.ts.map +1 -1
- package/dist/workflow/raw/native.effect.js +67 -18
- package/dist/workflow/raw/native.effect.js.map +1 -1
- package/dist/workflow/raw/native.js.map +1 -1
- package/dist/workflow/report-models.d.ts +58 -0
- package/dist/workflow/report-models.d.ts.map +1 -1
- package/dist/workflow/report-models.js +81 -0
- package/dist/workflow/report-models.js.map +1 -1
- package/dist/workflow/semantic-validators.d.ts +18 -0
- package/dist/workflow/semantic-validators.d.ts.map +1 -0
- package/dist/workflow/semantic-validators.js +137 -0
- package/dist/workflow/semantic-validators.js.map +1 -0
- package/dist/workflow/validators.d.ts.map +1 -1
- package/dist/workflow/validators.js +7 -2
- package/dist/workflow/validators.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Post-extract cleanup for draft workflows.
|
|
3
|
+
*
|
|
4
|
+
* `stripPlanFields` removes the four `_plan_*` planning fields from every
|
|
5
|
+
* step (recursively into inline draft subworkflows) and from the workflow
|
|
6
|
+
* root. `promoteFullyConcreteDrafts` flips `class: GalaxyWorkflowDraft` →
|
|
7
|
+
* `class: GalaxyWorkflow` on any (sub)workflow that is now fully concrete
|
|
8
|
+
* — zero TODO sentinels, zero `_plan_*` fields anywhere — recursively.
|
|
9
|
+
*
|
|
10
|
+
* Both functions mutate the workflow dict in place (matching the
|
|
11
|
+
* `cleanWorkflow` style) and return arrays of paths describing what
|
|
12
|
+
* changed, for sidecar reporting.
|
|
13
|
+
*/
|
|
14
|
+
import { DRAFT_CLASS, PLAN_FIELDS, detectDraft, isDraftWorkflow, } from "./draft-checks.js";
|
|
15
|
+
function isRecord(value) {
|
|
16
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Strip `_plan_state` / `_plan_context` / `_plan_in` / `_plan_out` from
|
|
20
|
+
* every step and from the workflow root. Recurses into inline draft
|
|
21
|
+
* subworkflow `run:` blocks; leaves string-form `run:` and concrete
|
|
22
|
+
* `class: GalaxyWorkflow` `run:` untouched.
|
|
23
|
+
*
|
|
24
|
+
* Mutates the workflow dict in place. Pure on non-records (passes
|
|
25
|
+
* through unchanged with empty `removedPaths`).
|
|
26
|
+
*/
|
|
27
|
+
export function stripPlanFields(workflow) {
|
|
28
|
+
const removed = [];
|
|
29
|
+
if (!isRecord(workflow)) {
|
|
30
|
+
return { workflow, removedPaths: removed };
|
|
31
|
+
}
|
|
32
|
+
stripPlanFieldsIn(workflow, [], removed);
|
|
33
|
+
return { workflow, removedPaths: removed };
|
|
34
|
+
}
|
|
35
|
+
function stripPlanFieldsIn(workflow, prefix, removed) {
|
|
36
|
+
// Root-level _plan_* (only meaningful on draft workflows, but we strip
|
|
37
|
+
// unconditionally — root _plan_* on a non-draft is dead weight too).
|
|
38
|
+
for (const field of PLAN_FIELDS) {
|
|
39
|
+
if (field in workflow) {
|
|
40
|
+
delete workflow[field];
|
|
41
|
+
removed.push({ path: [...prefix], field });
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
// Step-level _plan_* + recurse into draft subworkflows.
|
|
45
|
+
for (const [label, step] of iterateStepEntries(workflow.steps)) {
|
|
46
|
+
if (!isRecord(step))
|
|
47
|
+
continue;
|
|
48
|
+
const path = [...prefix, label];
|
|
49
|
+
for (const field of PLAN_FIELDS) {
|
|
50
|
+
if (field in step) {
|
|
51
|
+
delete step[field];
|
|
52
|
+
removed.push({ path: [...path], field });
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
if (isDraftWorkflow(step.run)) {
|
|
56
|
+
stripPlanFieldsIn(step.run, path, removed);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Flip `class: GalaxyWorkflowDraft` → `class: GalaxyWorkflow` on any
|
|
62
|
+
* (sub)workflow that is now fully concrete: zero TODO sentinels, zero
|
|
63
|
+
* `_plan_*` fields anywhere in steps / root. Recurses into inline draft
|
|
64
|
+
* subworkflows; still-drafty inner workflows are left alone.
|
|
65
|
+
*
|
|
66
|
+
* Mutates in place. Pure on non-records.
|
|
67
|
+
*/
|
|
68
|
+
export function promoteFullyConcreteDrafts(workflow) {
|
|
69
|
+
const promoted = [];
|
|
70
|
+
if (!isRecord(workflow)) {
|
|
71
|
+
return { workflow, promotedPaths: promoted };
|
|
72
|
+
}
|
|
73
|
+
promoteFullyConcreteDraftsIn(workflow, [], promoted);
|
|
74
|
+
return { workflow, promotedPaths: promoted };
|
|
75
|
+
}
|
|
76
|
+
function promoteFullyConcreteDraftsIn(workflow, prefix, promoted) {
|
|
77
|
+
// Recurse first — flipping an outer draft before its inner drafts get
|
|
78
|
+
// a chance would mask still-drafty inner workflows under a now-concrete
|
|
79
|
+
// outer.
|
|
80
|
+
for (const [label, step] of iterateStepEntries(workflow.steps)) {
|
|
81
|
+
if (!isRecord(step))
|
|
82
|
+
continue;
|
|
83
|
+
if (isDraftWorkflow(step.run)) {
|
|
84
|
+
promoteFullyConcreteDraftsIn(step.run, [...prefix, label], promoted);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
if (workflow.class !== DRAFT_CLASS)
|
|
88
|
+
return;
|
|
89
|
+
if (!isFullyConcrete(workflow))
|
|
90
|
+
return;
|
|
91
|
+
workflow.class = "GalaxyWorkflow";
|
|
92
|
+
promoted.push([...prefix]);
|
|
93
|
+
}
|
|
94
|
+
function isFullyConcrete(workflow) {
|
|
95
|
+
// detectDraft's step-walk covers TODOs + step-level _plan_*. We also
|
|
96
|
+
// check workflow root + step roots for any lingering _plan_* (detectDraft
|
|
97
|
+
// intentionally skips workflow-root _plan_*).
|
|
98
|
+
const survey = detectDraft(workflow);
|
|
99
|
+
if (survey.todos.length > 0)
|
|
100
|
+
return false;
|
|
101
|
+
if (survey.planFields.length > 0)
|
|
102
|
+
return false;
|
|
103
|
+
for (const field of PLAN_FIELDS) {
|
|
104
|
+
if (field in workflow)
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
// An inner draft `run:` still carrying its own work blocks promotion of
|
|
108
|
+
// the outer (we don't flip while one of our subworkflow steps is still
|
|
109
|
+
// a GalaxyWorkflowDraft).
|
|
110
|
+
for (const [, step] of iterateStepEntries(workflow.steps)) {
|
|
111
|
+
if (!isRecord(step))
|
|
112
|
+
continue;
|
|
113
|
+
if (isRecord(step.run) && step.run.class === DRAFT_CLASS)
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
118
|
+
function* iterateStepEntries(steps) {
|
|
119
|
+
if (Array.isArray(steps)) {
|
|
120
|
+
for (const step of steps) {
|
|
121
|
+
if (isRecord(step)) {
|
|
122
|
+
const label = typeof step.label === "string" ? step.label : typeof step.id === "string" ? step.id : "";
|
|
123
|
+
yield [label, step];
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
else if (isRecord(steps)) {
|
|
128
|
+
for (const [key, value] of Object.entries(steps)) {
|
|
129
|
+
yield [key, value];
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=promote-draft.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promote-draft.js","sourceRoot":"","sources":["../../src/workflow/promote-draft.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EACL,WAAW,EACX,WAAW,EACX,WAAW,EACX,eAAe,GAEhB,MAAM,mBAAmB,CAAC;AAE3B,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAkBD;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,QAAiB;IAC/C,MAAM,OAAO,GAAwB,EAAE,CAAC;IACxC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;IAC7C,CAAC;IACD,iBAAiB,CAAC,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IACzC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;AAC7C,CAAC;AAED,SAAS,iBAAiB,CACxB,QAAiC,EACjC,MAAgB,EAChB,OAA4B;IAE5B,uEAAuE;IACvE,qEAAqE;IACrE,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAChC,IAAI,KAAK,IAAI,QAAQ,EAAE,CAAC;YACtB,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,wDAAwD;IACxD,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,SAAS;QAC9B,MAAM,IAAI,GAAG,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC;QAChC,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;YAChC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;gBAClB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;gBACnB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QACD,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,iBAAiB,CAAC,IAAI,CAAC,GAA8B,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;AACH,CAAC;AAQD;;;;;;;GAOG;AACH,MAAM,UAAU,0BAA0B,CAAC,QAAiB;IAC1D,MAAM,QAAQ,GAAe,EAAE,CAAC;IAChC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;IAC/C,CAAC;IACD,4BAA4B,CAAC,QAAQ,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;IACrD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;AAC/C,CAAC;AAED,SAAS,4BAA4B,CACnC,QAAiC,EACjC,MAAgB,EAChB,QAAoB;IAEpB,sEAAsE;IACtE,wEAAwE;IACxE,SAAS;IACT,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,SAAS;QAC9B,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,4BAA4B,CAC1B,IAAI,CAAC,GAA8B,EACnC,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,EAClB,QAAQ,CACT,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK,KAAK,WAAW;QAAE,OAAO;IAC3C,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;QAAE,OAAO;IAEvC,QAAQ,CAAC,KAAK,GAAG,gBAAgB,CAAC;IAClC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,eAAe,CAAC,QAAiC;IACxD,qEAAqE;IACrE,0EAA0E;IAC1E,8CAA8C;IAC9C,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACrC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/C,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAChC,IAAI,KAAK,IAAI,QAAQ;YAAE,OAAO,KAAK,CAAC;IACtC,CAAC;IACD,wEAAwE;IACxE,uEAAuE;IACvE,0BAA0B;IAC1B,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,SAAS;QAC9B,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,WAAW;YAAE,OAAO,KAAK,CAAC;IACzE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,QAAQ,CAAC,CAAC,kBAAkB,CAAC,KAAc;IACzC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnB,MAAM,KAAK,GACT,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3F,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;AACH,CAAC"}
|