@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.
Files changed (96) hide show
  1. package/dist/index.d.ts +27 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +27 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/schema/parsed-tool.d.ts +3 -0
  6. package/dist/schema/parsed-tool.d.ts.map +1 -1
  7. package/dist/user-tool-parse/index.d.ts +12 -0
  8. package/dist/user-tool-parse/index.d.ts.map +1 -0
  9. package/dist/user-tool-parse/index.js +12 -0
  10. package/dist/user-tool-parse/index.js.map +1 -0
  11. package/dist/user-tool-parse/inputs.d.ts +13 -0
  12. package/dist/user-tool-parse/inputs.d.ts.map +1 -0
  13. package/dist/user-tool-parse/inputs.js +565 -0
  14. package/dist/user-tool-parse/inputs.js.map +1 -0
  15. package/dist/user-tool-parse/outputs.d.ts +10 -0
  16. package/dist/user-tool-parse/outputs.d.ts.map +1 -0
  17. package/dist/user-tool-parse/outputs.js +231 -0
  18. package/dist/user-tool-parse/outputs.js.map +1 -0
  19. package/dist/user-tool-parse/parse.d.ts +12 -0
  20. package/dist/user-tool-parse/parse.d.ts.map +1 -0
  21. package/dist/user-tool-parse/parse.js +98 -0
  22. package/dist/user-tool-parse/parse.js.map +1 -0
  23. package/dist/user-tool-source/index.d.ts +3 -0
  24. package/dist/user-tool-source/index.d.ts.map +1 -0
  25. package/dist/user-tool-source/index.js +3 -0
  26. package/dist/user-tool-source/index.js.map +1 -0
  27. package/dist/user-tool-source/schema.generated.d.ts +7298 -0
  28. package/dist/user-tool-source/schema.generated.d.ts.map +1 -0
  29. package/dist/user-tool-source/schema.generated.js +8851 -0
  30. package/dist/user-tool-source/schema.generated.js.map +1 -0
  31. package/dist/user-tool-source/semantic.d.ts +14 -0
  32. package/dist/user-tool-source/semantic.d.ts.map +1 -0
  33. package/dist/user-tool-source/semantic.js +137 -0
  34. package/dist/user-tool-source/semantic.js.map +1 -0
  35. package/dist/user-tool-source/validate.d.ts +37 -0
  36. package/dist/user-tool-source/validate.d.ts.map +1 -0
  37. package/dist/user-tool-source/validate.js +54 -0
  38. package/dist/user-tool-source/validate.js.map +1 -0
  39. package/dist/workflow/draft-checks.d.ts +205 -0
  40. package/dist/workflow/draft-checks.d.ts.map +1 -0
  41. package/dist/workflow/draft-checks.js +1151 -0
  42. package/dist/workflow/draft-checks.js.map +1 -0
  43. package/dist/workflow/index.d.ts +3 -1
  44. package/dist/workflow/index.d.ts.map +1 -1
  45. package/dist/workflow/index.js +3 -1
  46. package/dist/workflow/index.js.map +1 -1
  47. package/dist/workflow/normalized/format2.d.ts +1 -0
  48. package/dist/workflow/normalized/format2.d.ts.map +1 -1
  49. package/dist/workflow/normalized/format2.js +15 -2
  50. package/dist/workflow/normalized/format2.js.map +1 -1
  51. package/dist/workflow/normalized/native.d.ts +1 -1
  52. package/dist/workflow/normalized/toNative.js +29 -4
  53. package/dist/workflow/normalized/toNative.js.map +1 -1
  54. package/dist/workflow/promote-draft.d.ts +53 -0
  55. package/dist/workflow/promote-draft.d.ts.map +1 -0
  56. package/dist/workflow/promote-draft.js +133 -0
  57. package/dist/workflow/promote-draft.js.map +1 -0
  58. package/dist/workflow/raw/gxformat2-draft.d.ts +688 -0
  59. package/dist/workflow/raw/gxformat2-draft.d.ts.map +1 -0
  60. package/dist/workflow/raw/gxformat2-draft.effect.d.ts +4607 -0
  61. package/dist/workflow/raw/gxformat2-draft.effect.d.ts.map +1 -0
  62. package/dist/workflow/raw/gxformat2-draft.effect.js +778 -0
  63. package/dist/workflow/raw/gxformat2-draft.effect.js.map +1 -0
  64. package/dist/workflow/raw/gxformat2-draft.js +20 -0
  65. package/dist/workflow/raw/gxformat2-draft.js.map +1 -0
  66. package/dist/workflow/raw/gxformat2.d.ts +237 -13
  67. package/dist/workflow/raw/gxformat2.d.ts.map +1 -1
  68. package/dist/workflow/raw/gxformat2.effect.d.ts +1375 -177
  69. package/dist/workflow/raw/gxformat2.effect.d.ts.map +1 -1
  70. package/dist/workflow/raw/gxformat2.effect.js +355 -108
  71. package/dist/workflow/raw/gxformat2.effect.js.map +1 -1
  72. package/dist/workflow/raw/gxformat2.js +18 -1
  73. package/dist/workflow/raw/gxformat2.js.map +1 -1
  74. package/dist/workflow/raw/index.d.ts +2 -0
  75. package/dist/workflow/raw/index.d.ts.map +1 -1
  76. package/dist/workflow/raw/index.js +1 -0
  77. package/dist/workflow/raw/index.js.map +1 -1
  78. package/dist/workflow/raw/native.d.ts +51 -2
  79. package/dist/workflow/raw/native.d.ts.map +1 -1
  80. package/dist/workflow/raw/native.effect.d.ts +82 -30
  81. package/dist/workflow/raw/native.effect.d.ts.map +1 -1
  82. package/dist/workflow/raw/native.effect.js +67 -18
  83. package/dist/workflow/raw/native.effect.js.map +1 -1
  84. package/dist/workflow/raw/native.js.map +1 -1
  85. package/dist/workflow/report-models.d.ts +58 -0
  86. package/dist/workflow/report-models.d.ts.map +1 -1
  87. package/dist/workflow/report-models.js +81 -0
  88. package/dist/workflow/report-models.js.map +1 -1
  89. package/dist/workflow/semantic-validators.d.ts +18 -0
  90. package/dist/workflow/semantic-validators.d.ts.map +1 -0
  91. package/dist/workflow/semantic-validators.js +137 -0
  92. package/dist/workflow/semantic-validators.js.map +1 -0
  93. package/dist/workflow/validators.d.ts.map +1 -1
  94. package/dist/workflow/validators.js +7 -2
  95. package/dist/workflow/validators.js.map +1 -1
  96. 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":"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"}