@galaxy-tool-util/schema 1.8.0 → 1.8.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../src/workflow/serialize.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEvE,MAAM,WAAW,wBAAwB;IACvC,8CAA8C;IAC9C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,8CAA8C;IAC9C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,cAAc,EACtB,IAAI,GAAE,wBAA6B,GAClC,MAAM,CAWR;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,cAAc,CAG/F"}
1
+ {"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../src/workflow/serialize.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAiDvE,MAAM,WAAW,wBAAwB;IACvC,8CAA8C;IAC9C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,8CAA8C;IAC9C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,cAAc,EACtB,IAAI,GAAE,wBAA6B,GAClC,MAAM,CAYR;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,cAAc,CAG/F"}
@@ -6,6 +6,50 @@
6
6
  */
7
7
  import { stringify as stringifyYaml } from "yaml";
8
8
  import { detectFormat } from "./detect-format.js";
9
+ /**
10
+ * In-memory-only fields derived during normalization (see
11
+ * `workflow/normalized/native.ts` and `format2.ts`). They are never part of
12
+ * the on-disk Galaxy format: `unique_tools` is a workflow-level `Set` of tool
13
+ * references, `connected_paths` is a per-step `Set` of input-connection keys.
14
+ * Serializing a `Set` yields `{}` (JSON) / an empty mapping (YAML), so left in
15
+ * place they leak as stray keys that downstream schema validators reject.
16
+ *
17
+ * Stripped structurally (workflow level / step level / subworkflows) rather
18
+ * than by a blanket recursive key match so a tool parameter that happens to be
19
+ * named `unique_tools`/`connected_paths` inside `tool_state` is preserved.
20
+ */
21
+ function stripDerivedFields(data) {
22
+ return stripWorkflowDict(data);
23
+ }
24
+ function stripWorkflowDict(wf) {
25
+ const out = { ...wf };
26
+ delete out.unique_tools;
27
+ if (out.steps && typeof out.steps === "object") {
28
+ out.steps = stripSteps(out.steps);
29
+ }
30
+ return out;
31
+ }
32
+ function stripSteps(steps) {
33
+ if (Array.isArray(steps))
34
+ return steps.map(stripStep);
35
+ const out = {};
36
+ for (const [key, value] of Object.entries(steps))
37
+ out[key] = stripStep(value);
38
+ return out;
39
+ }
40
+ function stripStep(step) {
41
+ if (step == null || typeof step !== "object")
42
+ return step;
43
+ const out = { ...step };
44
+ delete out.connected_paths;
45
+ // Embedded subworkflows: `subworkflow` (native) / `run` (format2).
46
+ for (const key of ["subworkflow", "run"]) {
47
+ if (out[key] && typeof out[key] === "object") {
48
+ out[key] = stripWorkflowDict(out[key]);
49
+ }
50
+ }
51
+ return out;
52
+ }
9
53
  /**
10
54
  * Serialize a workflow dict as JSON or YAML based on `format` (or explicit
11
55
  * `json` / `yaml` overrides).
@@ -19,6 +63,7 @@ import { detectFormat } from "./detect-format.js";
19
63
  * reader decode them as booleans. Real numbers/booleans are unaffected.
20
64
  */
21
65
  export function serializeWorkflow(data, format, opts = {}) {
66
+ data = stripDerivedFields(data);
22
67
  const useYaml = opts.yaml || (!opts.json && format === "format2");
23
68
  const newline = opts.trailingNewline ?? true;
24
69
  if (useYaml) {
@@ -1 +1 @@
1
- {"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../src/workflow/serialize.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,MAAM,CAAC;AAClD,OAAO,EAAE,YAAY,EAAuB,MAAM,oBAAoB,CAAC;AAavE;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAA6B,EAC7B,MAAsB,EACtB,OAAiC,EAAE;IAEnC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,MAAM,KAAK,SAAS,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC;IAC7C,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;QACtE,2DAA2D;QAC3D,IAAI,OAAO;YAAE,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC;QAC1D,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACrD,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;IAChC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACpE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,IAA6B,EAAE,SAAkB;IAC7E,IAAI,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxE,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../src/workflow/serialize.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": "1.8.0",
3
+ "version": "1.8.2",
4
4
  "description": "Effect Schema parameter types and validators for Galaxy tools",
5
5
  "type": "module",
6
6
  "exports": {