@galaxy-tool-util/schema 0.2.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 (137) hide show
  1. package/dist/index.d.ts +75 -5
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +48 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/schema/type-guards.d.ts +14 -0
  6. package/dist/schema/type-guards.d.ts.map +1 -0
  7. package/dist/schema/type-guards.js +25 -0
  8. package/dist/schema/type-guards.js.map +1 -0
  9. package/dist/test-format/cross-check/check.d.ts +18 -0
  10. package/dist/test-format/cross-check/check.d.ts.map +1 -0
  11. package/dist/test-format/cross-check/check.js +89 -0
  12. package/dist/test-format/cross-check/check.js.map +1 -0
  13. package/dist/test-format/cross-check/extract-format2.d.ts +13 -0
  14. package/dist/test-format/cross-check/extract-format2.d.ts.map +1 -0
  15. package/dist/test-format/cross-check/extract-format2.js +98 -0
  16. package/dist/test-format/cross-check/extract-format2.js.map +1 -0
  17. package/dist/test-format/cross-check/extract-native.d.ts +4 -0
  18. package/dist/test-format/cross-check/extract-native.d.ts.map +1 -0
  19. package/dist/test-format/cross-check/extract-native.js +89 -0
  20. package/dist/test-format/cross-check/extract-native.js.map +1 -0
  21. package/dist/test-format/cross-check/extract.d.ts +9 -0
  22. package/dist/test-format/cross-check/extract.d.ts.map +1 -0
  23. package/dist/test-format/cross-check/extract.js +16 -0
  24. package/dist/test-format/cross-check/extract.js.map +1 -0
  25. package/dist/test-format/cross-check/index.d.ts +7 -0
  26. package/dist/test-format/cross-check/index.d.ts.map +1 -0
  27. package/dist/test-format/cross-check/index.js +6 -0
  28. package/dist/test-format/cross-check/index.js.map +1 -0
  29. package/dist/test-format/cross-check/type-compat.d.ts +23 -0
  30. package/dist/test-format/cross-check/type-compat.d.ts.map +1 -0
  31. package/dist/test-format/cross-check/type-compat.js +48 -0
  32. package/dist/test-format/cross-check/type-compat.js.map +1 -0
  33. package/dist/test-format/cross-check/types.d.ts +23 -0
  34. package/dist/test-format/cross-check/types.d.ts.map +1 -0
  35. package/dist/test-format/cross-check/types.js +10 -0
  36. package/dist/test-format/cross-check/types.js.map +1 -0
  37. package/dist/test-format/index.d.ts +3 -0
  38. package/dist/test-format/index.d.ts.map +1 -0
  39. package/dist/test-format/index.js +3 -0
  40. package/dist/test-format/index.js.map +1 -0
  41. package/dist/test-format/tests.schema.generated.d.ts +5610 -0
  42. package/dist/test-format/tests.schema.generated.d.ts.map +1 -0
  43. package/dist/test-format/tests.schema.generated.js +6899 -0
  44. package/dist/test-format/tests.schema.generated.js.map +1 -0
  45. package/dist/test-format/validate.d.ts +20 -0
  46. package/dist/test-format/validate.d.ts.map +1 -0
  47. package/dist/test-format/validate.js +41 -0
  48. package/dist/test-format/validate.js.map +1 -0
  49. package/dist/tool-state-validator.d.ts +23 -0
  50. package/dist/tool-state-validator.d.ts.map +1 -0
  51. package/dist/tool-state-validator.js +59 -0
  52. package/dist/tool-state-validator.js.map +1 -0
  53. package/dist/workflow/clean.d.ts +29 -3
  54. package/dist/workflow/clean.d.ts.map +1 -1
  55. package/dist/workflow/clean.js +199 -28
  56. package/dist/workflow/clean.js.map +1 -1
  57. package/dist/workflow/index.d.ts +13 -5
  58. package/dist/workflow/index.d.ts.map +1 -1
  59. package/dist/workflow/index.js +13 -3
  60. package/dist/workflow/index.js.map +1 -1
  61. package/dist/workflow/lint-profiles.d.ts +27 -0
  62. package/dist/workflow/lint-profiles.d.ts.map +1 -0
  63. package/dist/workflow/lint-profiles.js +49 -0
  64. package/dist/workflow/lint-profiles.js.map +1 -0
  65. package/dist/workflow/lint-rules.d.ts +15 -0
  66. package/dist/workflow/lint-rules.d.ts.map +1 -0
  67. package/dist/workflow/lint-rules.js +15 -0
  68. package/dist/workflow/lint-rules.js.map +1 -0
  69. package/dist/workflow/lint.d.ts +4 -18
  70. package/dist/workflow/lint.d.ts.map +1 -1
  71. package/dist/workflow/lint.js +9 -30
  72. package/dist/workflow/lint.js.map +1 -1
  73. package/dist/workflow/lint_profiles.yml +41 -0
  74. package/dist/workflow/linting.d.ts +54 -0
  75. package/dist/workflow/linting.d.ts.map +1 -0
  76. package/dist/workflow/linting.js +71 -0
  77. package/dist/workflow/linting.js.map +1 -0
  78. package/dist/workflow/param-navigation.d.ts +26 -0
  79. package/dist/workflow/param-navigation.d.ts.map +1 -0
  80. package/dist/workflow/param-navigation.js +60 -0
  81. package/dist/workflow/param-navigation.js.map +1 -0
  82. package/dist/workflow/raw/gxformat2.effect.d.ts +341 -117
  83. package/dist/workflow/raw/gxformat2.effect.d.ts.map +1 -1
  84. package/dist/workflow/raw/gxformat2.effect.js +107 -109
  85. package/dist/workflow/raw/gxformat2.effect.js.map +1 -1
  86. package/dist/workflow/raw/native.d.ts +2 -2
  87. package/dist/workflow/raw/native.d.ts.map +1 -1
  88. package/dist/workflow/raw/native.effect.d.ts +150 -3
  89. package/dist/workflow/raw/native.effect.d.ts.map +1 -1
  90. package/dist/workflow/raw/native.effect.js +3 -5
  91. package/dist/workflow/raw/native.effect.js.map +1 -1
  92. package/dist/workflow/report-models.d.ts +412 -0
  93. package/dist/workflow/report-models.d.ts.map +1 -0
  94. package/dist/workflow/report-models.js +342 -0
  95. package/dist/workflow/report-models.js.map +1 -0
  96. package/dist/workflow/roundtrip.d.ts +31 -8
  97. package/dist/workflow/roundtrip.d.ts.map +1 -1
  98. package/dist/workflow/roundtrip.js +107 -26
  99. package/dist/workflow/roundtrip.js.map +1 -1
  100. package/dist/workflow/schema-rules.d.ts +38 -0
  101. package/dist/workflow/schema-rules.d.ts.map +1 -0
  102. package/dist/workflow/schema-rules.js +28 -0
  103. package/dist/workflow/schema-rules.js.map +1 -0
  104. package/dist/workflow/schema_rules.yml +69 -0
  105. package/dist/workflow/serialize.d.ts +30 -0
  106. package/dist/workflow/serialize.d.ts.map +1 -0
  107. package/dist/workflow/serialize.js +37 -0
  108. package/dist/workflow/serialize.js.map +1 -0
  109. package/dist/workflow/state-merge.d.ts +15 -32
  110. package/dist/workflow/state-merge.d.ts.map +1 -1
  111. package/dist/workflow/state-merge.js +30 -207
  112. package/dist/workflow/state-merge.js.map +1 -1
  113. package/dist/workflow/stateful-validate.d.ts +21 -0
  114. package/dist/workflow/stateful-validate.d.ts.map +1 -1
  115. package/dist/workflow/stateful-validate.js +27 -0
  116. package/dist/workflow/stateful-validate.js.map +1 -1
  117. package/dist/workflow/strict-checks.d.ts +22 -0
  118. package/dist/workflow/strict-checks.d.ts.map +1 -0
  119. package/dist/workflow/strict-checks.js +95 -0
  120. package/dist/workflow/strict-checks.js.map +1 -0
  121. package/dist/workflow/tool-state-io.d.ts +14 -0
  122. package/dist/workflow/tool-state-io.d.ts.map +1 -0
  123. package/dist/workflow/tool-state-io.js +33 -0
  124. package/dist/workflow/tool-state-io.js.map +1 -0
  125. package/dist/workflow/validators.d.ts +34 -0
  126. package/dist/workflow/validators.d.ts.map +1 -0
  127. package/dist/workflow/validators.js +83 -0
  128. package/dist/workflow/validators.js.map +1 -0
  129. package/dist/workflow/walk-helpers.d.ts +29 -0
  130. package/dist/workflow/walk-helpers.d.ts.map +1 -0
  131. package/dist/workflow/walk-helpers.js +89 -0
  132. package/dist/workflow/walk-helpers.js.map +1 -0
  133. package/dist/workflow/walker.d.ts +2 -0
  134. package/dist/workflow/walker.d.ts.map +1 -1
  135. package/dist/workflow/walker.js +16 -6
  136. package/dist/workflow/walker.js.map +1 -1
  137. package/package.json +7 -6
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Shared Effect-schema validator dispatch for workflow dict inputs.
3
+ *
4
+ * Mirrors gxformat2/validators.py. Callers pass a parsed workflow dict and get
5
+ * back the decoded value or throw on validation failure. Used by the schema-rule
6
+ * catalog runner and declarative-operation tests.
7
+ *
8
+ * The generated Effect schemas make `class` a required literal; Python's
9
+ * pydantic models default it. `withClass` injects the discriminator when
10
+ * missing so pass/fail semantics match Python byte-for-byte — see the plan
11
+ * note about `Format2MissingClass` being unenforceable today.
12
+ */
13
+ import { Schema } from "effect";
14
+ import { GalaxyWorkflowSchema } from "./raw/gxformat2.effect.js";
15
+ import { NativeGalaxyWorkflowSchema } from "./raw/native.effect.js";
16
+ /**
17
+ * Return `raw` with `class: cls` injected if missing, and the same injection
18
+ * applied recursively to step subworkflows. Native steps embed subworkflows
19
+ * under `.subworkflow`; format2 steps embed them under `.run` (when `run` is
20
+ * an inline dict, not a URL).
21
+ *
22
+ * The cls string must match the parent document's class: nested format2
23
+ * subworkflows inherit `"GalaxyWorkflow"`, native inherit `"NativeGalaxyWorkflow"`.
24
+ */
25
+ export function withClass(raw, cls) {
26
+ if (!raw || typeof raw !== "object" || Array.isArray(raw))
27
+ return raw;
28
+ const obj = raw;
29
+ const result = "class" in obj ? { ...obj } : { ...obj, class: cls };
30
+ const steps = result.steps;
31
+ if (!steps || typeof steps !== "object")
32
+ return result;
33
+ if (Array.isArray(steps)) {
34
+ result.steps = steps.map((step) => injectStepSubworkflow(step, cls));
35
+ }
36
+ else {
37
+ const next = {};
38
+ for (const [key, step] of Object.entries(steps)) {
39
+ next[key] = injectStepSubworkflow(step, cls);
40
+ }
41
+ result.steps = next;
42
+ }
43
+ return result;
44
+ }
45
+ function injectStepSubworkflow(step, cls) {
46
+ if (!step || typeof step !== "object")
47
+ return step;
48
+ const s = step;
49
+ if (s.subworkflow && typeof s.subworkflow === "object") {
50
+ return { ...s, subworkflow: withClass(s.subworkflow, cls) };
51
+ }
52
+ // format2 steps embed subworkflows under `run` when it's an inline dict.
53
+ // Skip string runs (URLs) and missing runs.
54
+ if (s.run && typeof s.run === "object" && !Array.isArray(s.run)) {
55
+ return { ...s, run: withClass(s.run, cls) };
56
+ }
57
+ return s;
58
+ }
59
+ export function validateFormat2(wf) {
60
+ return Schema.decodeUnknownSync(GalaxyWorkflowSchema, { onExcessProperty: "ignore" })(withClass(wf, "GalaxyWorkflow"));
61
+ }
62
+ export function validateFormat2Strict(wf) {
63
+ return Schema.decodeUnknownSync(GalaxyWorkflowSchema, { onExcessProperty: "error" })(withClass(wf, "GalaxyWorkflow"));
64
+ }
65
+ export function validateNative(wf) {
66
+ return Schema.decodeUnknownSync(NativeGalaxyWorkflowSchema, { onExcessProperty: "ignore" })(withClass(wf, "NativeGalaxyWorkflow"));
67
+ }
68
+ export function validateNativeStrict(wf) {
69
+ return Schema.decodeUnknownSync(NativeGalaxyWorkflowSchema, { onExcessProperty: "error" })(withClass(wf, "NativeGalaxyWorkflow"));
70
+ }
71
+ /**
72
+ * Pick the validator matching a fixture filename's format.
73
+ *
74
+ * `.ga` → native; anything else → format2. `strict` picks the closed-schema
75
+ * flavor that rejects unknown fields.
76
+ */
77
+ export function validatorForFixture(fixtureName, strict) {
78
+ if (fixtureName.endsWith(".ga")) {
79
+ return strict ? validateNativeStrict : validateNative;
80
+ }
81
+ return strict ? validateFormat2Strict : validateFormat2;
82
+ }
83
+ //# sourceMappingURL=validators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/workflow/validators.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Pure helper functions for walking Galaxy parameter trees.
3
+ *
4
+ * Extracted from state-merge.ts to break a circular dependency:
5
+ * walker.ts needs these helpers, and state-merge.ts needs walkNativeState.
6
+ *
7
+ * Ported from Python galaxy.tool_util.parameters.visitor.
8
+ */
9
+ import type { ConditionalParameterModel, ConditionalWhen } from "../schema/bundle-types.js";
10
+ /** Build flat pipe-separated state path: `name` or `prefix|name`. */
11
+ export declare function flatStatePath(name: string, prefix?: string): string;
12
+ /** Filter a flat key-value map to keys starting with a given prefix. */
13
+ export declare function keysStartingWith<T>(map: Record<string, T>, prefix: string): Record<string, T>;
14
+ /**
15
+ * Split flat connection keys for a repeat into per-instance arrays.
16
+ *
17
+ * Connection keys use the pattern `repeatName_N|paramName`.
18
+ * Returns an array of per-instance connection dicts.
19
+ */
20
+ export declare function repeatInputsToArray<T>(statePath: string, inputs: Record<string, T>): Record<string, T>[];
21
+ /**
22
+ * Select the matching ConditionalWhen for a conditional state dict.
23
+ *
24
+ * Matches the test parameter's value in state against each when's
25
+ * discriminator. Falls back to the default when if no match found.
26
+ * Returns null if no match at all (graceful degradation).
27
+ */
28
+ export declare function selectWhichWhen(conditional: ConditionalParameterModel, state: Record<string, unknown>): ConditionalWhen | null;
29
+ //# sourceMappingURL=walk-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walk-helpers.d.ts","sourceRoot":"","sources":["../../src/workflow/walk-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,yBAAyB,EACzB,eAAe,EAGhB,MAAM,2BAA2B,CAAC;AAKnC,qEAAqE;AACrE,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,wEAAwE;AACxE,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAQ7F;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GACxB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAuBrB;AAID;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,yBAAyB,EACtC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,eAAe,GAAG,IAAI,CAmBxB"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Pure helper functions for walking Galaxy parameter trees.
3
+ *
4
+ * Extracted from state-merge.ts to break a circular dependency:
5
+ * walker.ts needs these helpers, and state-merge.ts needs walkNativeState.
6
+ *
7
+ * Ported from Python galaxy.tool_util.parameters.visitor.
8
+ */
9
+ import { parseBool } from "./coercions.js";
10
+ // --- Path helpers ---
11
+ /** Build flat pipe-separated state path: `name` or `prefix|name`. */
12
+ export function flatStatePath(name, prefix) {
13
+ return prefix != null ? `${prefix}|${name}` : name;
14
+ }
15
+ /** Filter a flat key-value map to keys starting with a given prefix. */
16
+ export function keysStartingWith(map, prefix) {
17
+ const result = {};
18
+ for (const [key, value] of Object.entries(map)) {
19
+ if (key.startsWith(prefix)) {
20
+ result[key] = value;
21
+ }
22
+ }
23
+ return result;
24
+ }
25
+ /**
26
+ * Split flat connection keys for a repeat into per-instance arrays.
27
+ *
28
+ * Connection keys use the pattern `repeatName_N|paramName`.
29
+ * Returns an array of per-instance connection dicts.
30
+ */
31
+ export function repeatInputsToArray(statePath, inputs) {
32
+ const repeatInputs = keysStartingWith(inputs, statePath + "_");
33
+ let highestCount = -1;
34
+ for (const key of Object.keys(repeatInputs)) {
35
+ const numStr = key.slice(statePath.length + 1).split("|")[0];
36
+ const num = parseInt(numStr, 10);
37
+ if (!isNaN(num) && num > highestCount) {
38
+ highestCount = num;
39
+ }
40
+ }
41
+ const params = [];
42
+ for (let i = 0; i <= highestCount; i++) {
43
+ params.push({});
44
+ }
45
+ for (const [key, value] of Object.entries(repeatInputs)) {
46
+ const numStr = key.slice(statePath.length + 1).split("|")[0];
47
+ const num = parseInt(numStr, 10);
48
+ if (!isNaN(num)) {
49
+ params[num][key] = value;
50
+ }
51
+ }
52
+ return params;
53
+ }
54
+ // --- Conditional branch selection ---
55
+ /**
56
+ * Select the matching ConditionalWhen for a conditional state dict.
57
+ *
58
+ * Matches the test parameter's value in state against each when's
59
+ * discriminator. Falls back to the default when if no match found.
60
+ * Returns null if no match at all (graceful degradation).
61
+ */
62
+ export function selectWhichWhen(conditional, state) {
63
+ const testParam = conditional.test_parameter;
64
+ const testValue = state[testParam.name];
65
+ // Try exact match first
66
+ for (const when of conditional.whens) {
67
+ if (_testValueMatchesDiscriminator(testParam, testValue, when.discriminator)) {
68
+ return when;
69
+ }
70
+ }
71
+ // Fall back to default when
72
+ for (const when of conditional.whens) {
73
+ if (when.is_default_when) {
74
+ return when;
75
+ }
76
+ }
77
+ return null;
78
+ }
79
+ function _testValueMatchesDiscriminator(testParam, testValue, discriminator) {
80
+ if (testParam.parameter_type === "gx_boolean") {
81
+ // Boolean coercion: handle string "true"/"false"/"True"/"False" and actual booleans
82
+ const boolValue = parseBool(testValue);
83
+ const discBool = typeof discriminator === "boolean" ? discriminator : parseBool(discriminator);
84
+ return boolValue === discBool;
85
+ }
86
+ // Select: string comparison
87
+ return String(testValue) === String(discriminator);
88
+ }
89
+ //# sourceMappingURL=walk-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walk-helpers.js","sourceRoot":"","sources":["../../src/workflow/walk-helpers.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,8 @@ export type LeafCallback = (toolInput: ToolParameterModel, value: unknown, state
20
20
  export interface WalkNativeOptions {
21
21
  prefix?: string;
22
22
  checkUnknownKeys?: boolean;
23
+ /** Copy undeclared keys from input state to output (default: false). */
24
+ preserveUnknownKeys?: boolean;
23
25
  }
24
26
  /**
25
27
  * Walk native workflow tool_state using the parameter tree.
@@ -1 +1 @@
1
- {"version":3,"file":"walker.d.ts","sourceRoot":"","sources":["../../src/workflow/walker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAInB,MAAM,2BAA2B,CAAC;AAKnC,uEAAuE;AACvE,eAAO,MAAM,UAAU,EAAE,OAAO,MAA6B,CAAC;AAE9D,MAAM,MAAM,YAAY,GAAG,CACzB,SAAS,EAAE,kBAAkB,EAC7B,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM,KACd,OAAO,GAAG,OAAO,UAAU,CAAC;AAEjC,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzC,UAAU,EAAE,kBAAkB,EAAE,EAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,YAAY,EAAE,YAAY,EAC1B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAqGzB;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,kBAAkB,EAAE,EAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,YAAY,EAAE,YAAY,EAC1B,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA2EzB;AAED,mEAAmE;AACnE,qBAAa,eAAgB,SAAQ,KAAK;aAEtB,GAAG,EAAE,MAAM;aACX,MAAM,CAAC,EAAE,MAAM;gBADf,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,YAAA;CAMlC"}
1
+ {"version":3,"file":"walker.d.ts","sourceRoot":"","sources":["../../src/workflow/walker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAInB,MAAM,2BAA2B,CAAC;AAKnC,uEAAuE;AACvE,eAAO,MAAM,UAAU,EAAE,OAAO,MAA6B,CAAC;AAE9D,MAAM,MAAM,YAAY,GAAG,CACzB,SAAS,EAAE,kBAAkB,EAC7B,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM,KACd,OAAO,GAAG,OAAO,UAAU,CAAC;AAEjC,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,wEAAwE;IACxE,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzC,UAAU,EAAE,kBAAkB,EAAE,EAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,YAAY,EAAE,YAAY,EAC1B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA6GzB;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,kBAAkB,EAAE,EAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,YAAY,EAAE,YAAY,EAC1B,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA4EzB;AAED,mEAAmE;AACnE,qBAAa,eAAgB,SAAQ,KAAK;aAEtB,GAAG,EAAE,MAAM;aACX,MAAM,CAAC,EAAE,MAAM;gBADf,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,YAAA;CAMlC"}
@@ -13,7 +13,7 @@
13
13
  * - No legacy decode: string containers are errors, not silently accommodated
14
14
  * - SKIP_VALUE sentinel omits a value from the output
15
15
  */
16
- import { flatStatePath, repeatInputsToArray, selectWhichWhen } from "./state-merge.js";
16
+ import { flatStatePath, repeatInputsToArray, selectWhichWhen } from "./walk-helpers.js";
17
17
  import { STALE_KEYS } from "./stale-keys.js";
18
18
  /** Sentinel: return from leaf callback to omit a value from output. */
19
19
  export const SKIP_VALUE = Symbol("SKIP_VALUE");
@@ -32,6 +32,7 @@ export const SKIP_VALUE = Symbol("SKIP_VALUE");
32
32
  export function walkNativeState(inputConnections, toolInputs, state, leafCallback, options) {
33
33
  const prefix = options?.prefix;
34
34
  const checkUnknownKeys = options?.checkUnknownKeys ?? false;
35
+ const preserveUnknownKeys = options?.preserveUnknownKeys ?? false;
35
36
  const result = {};
36
37
  const visitedKeys = new Set();
37
38
  for (const toolInput of toolInputs) {
@@ -47,7 +48,7 @@ export function walkNativeState(inputConnections, toolInputs, state, leafCallbac
47
48
  const when = selectWhichWhen(conditional, stateDict);
48
49
  const branchParams = when != null ? when.parameters : [];
49
50
  // Walk the test parameter + branch parameters
50
- const innerResult = walkNativeState(inputConnections, [conditional.test_parameter, ...branchParams], stateDict, leafCallback, { prefix: statePath, checkUnknownKeys });
51
+ const innerResult = walkNativeState(inputConnections, [conditional.test_parameter, ...branchParams], stateDict, leafCallback, { prefix: statePath, checkUnknownKeys, preserveUnknownKeys });
51
52
  if (Object.keys(innerResult).length > 0) {
52
53
  result[name] = innerResult;
53
54
  }
@@ -66,10 +67,11 @@ export function walkNativeState(inputConnections, toolInputs, state, leafCallbac
66
67
  for (let i = 0; i < instanceCount; i++) {
67
68
  const instanceState = stateArray[i] ?? {};
68
69
  const instancePrefix = `${statePath}_${i}`;
69
- const instanceResult = walkNativeState(inputConnections, repeat.parameters, instanceState, leafCallback, { prefix: instancePrefix, checkUnknownKeys });
70
+ const instanceResult = walkNativeState(inputConnections, repeat.parameters, instanceState, leafCallback, { prefix: instancePrefix, checkUnknownKeys, preserveUnknownKeys });
70
71
  instances.push(instanceResult);
71
72
  }
72
- if (instances.length > 0) {
73
+ // Preserve explicit empty arrays (valid state); omit only when key is absent
74
+ if (name in state || instances.length > 0) {
73
75
  result[name] = instances;
74
76
  }
75
77
  }
@@ -78,7 +80,7 @@ export function walkNativeState(inputConnections, toolInputs, state, leafCallbac
78
80
  const sectionState = state[name];
79
81
  _assertNotStringContainer(name, parameterType, sectionState);
80
82
  const stateDict = sectionState ?? {};
81
- const innerResult = walkNativeState(inputConnections, section.parameters, stateDict, leafCallback, { prefix: statePath, checkUnknownKeys });
83
+ const innerResult = walkNativeState(inputConnections, section.parameters, stateDict, leafCallback, { prefix: statePath, checkUnknownKeys, preserveUnknownKeys });
82
84
  if (Object.keys(innerResult).length > 0) {
83
85
  result[name] = innerResult;
84
86
  }
@@ -99,6 +101,13 @@ export function walkNativeState(inputConnections, toolInputs, state, leafCallbac
99
101
  }
100
102
  }
101
103
  }
104
+ else if (preserveUnknownKeys) {
105
+ for (const key of Object.keys(state)) {
106
+ if (!visitedKeys.has(key)) {
107
+ result[key] = state[key];
108
+ }
109
+ }
110
+ }
102
111
  return result;
103
112
  }
104
113
  /**
@@ -141,7 +150,8 @@ export function walkFormat2State(toolInputs, state, leafCallback, prefix) {
141
150
  const instanceResult = walkFormat2State(repeat.parameters, stateArray[i], leafCallback, instancePrefix);
142
151
  instances.push(instanceResult);
143
152
  }
144
- if (instances.length > 0) {
153
+ // Preserve explicit empty arrays (valid state); omit only when key is absent
154
+ if (name in state || instances.length > 0) {
145
155
  result[name] = instances;
146
156
  }
147
157
  }
@@ -1 +1 @@
1
- {"version":3,"file":"walker.js","sourceRoot":"","sources":["../../src/workflow/walker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"walker.js","sourceRoot":"","sources":["../../src/workflow/walker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@galaxy-tool-util/schema",
3
- "version": "0.2.0",
3
+ "version": "0.4.0",
4
4
  "description": "Effect Schema parameter types and validators for Galaxy tools",
5
5
  "type": "module",
6
6
  "exports": {
@@ -30,15 +30,16 @@
30
30
  ],
31
31
  "license": "MIT",
32
32
  "dependencies": {
33
- "effect": "^3.21.0"
33
+ "ajv": "^8.18.0",
34
+ "ajv-formats": "^3.0.1",
35
+ "effect": "^3.21.0",
36
+ "yaml": "^2.8.3"
34
37
  },
35
38
  "devDependencies": {
36
- "ajv": "^8.18.0",
37
- "yaml": "^2.8.3",
38
- "@galaxy-tool-util/core": "0.2.0"
39
+ "@galaxy-tool-util/core": "0.3.0"
39
40
  },
40
41
  "scripts": {
41
- "build": "tsc",
42
+ "build": "tsc && node ../../scripts/copy-schema-assets.mjs",
42
43
  "typecheck": "tsc --noEmit",
43
44
  "test": "tsc --noEmit && vitest run",
44
45
  "test:watch": "vitest",