@galaxy-tool-util/connection-validation 1.2.0 → 1.6.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/build-get-tool-info.d.ts +2 -0
- package/dist/build-get-tool-info.d.ts.map +1 -1
- package/dist/build-get-tool-info.js +20 -1
- package/dist/build-get-tool-info.js.map +1 -1
- package/dist/graph-builder.d.ts.map +1 -1
- package/dist/graph-builder.js +22 -15
- package/dist/graph-builder.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/inline-resolver.d.ts +63 -0
- package/dist/inline-resolver.d.ts.map +1 -0
- package/dist/inline-resolver.js +170 -0
- package/dist/inline-resolver.js.map +1 -0
- package/package.json +2 -2
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import type { ParsedTool } from "@galaxy-tool-util/schema";
|
|
2
2
|
import type { GetToolInfo } from "./get-tool-info.js";
|
|
3
|
+
import { type InlineToolEntry } from "./inline-resolver.js";
|
|
3
4
|
export interface ToolRef {
|
|
4
5
|
toolId: string;
|
|
5
6
|
toolVersion: string | null;
|
|
6
7
|
}
|
|
8
|
+
export type InlineRef = InlineToolEntry;
|
|
7
9
|
export type AsyncToolFetcher = (toolId: string, toolVersion: string | null) => Promise<ParsedTool | null>;
|
|
8
10
|
export interface BuildGetToolInfoOptions {
|
|
9
11
|
/** Maximum in-flight fetches. Default 1 (serial) to match the CLI's prior behavior. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-get-tool-info.d.ts","sourceRoot":"","sources":["../src/build-get-tool-info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"build-get-tool-info.d.ts","sourceRoot":"","sources":["../src/build-get-tool-info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,MAAM,SAAS,GAAG,eAAe,CAAC;AAExC,MAAM,MAAM,gBAAgB,GAAG,CAC7B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,IAAI,KACvB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;AAEhC,MAAM,WAAW,uBAAuB;IACtC,uFAAuF;IACvF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,0DAA0D;IAC1D,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACxD;AAED,8FAA8F;AAC9F,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,EAAE,CAKxE;AAiCD;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,gBAAgB,EACzB,IAAI,GAAE,uBAA4B,GACjC,OAAO,CAAC,WAAW,CAAC,CAuEtB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { collectInlineTools, ensureInlineResolver, } from "./inline-resolver.js";
|
|
1
2
|
/** Walk a workflow dict (steps + nested subworkflows + nested `run`) and dedupe tool refs. */
|
|
2
3
|
export function collectToolRefs(data) {
|
|
3
4
|
const out = [];
|
|
@@ -82,7 +83,7 @@ export async function buildGetToolInfo(data, fetcher, opts = {}) {
|
|
|
82
83
|
}
|
|
83
84
|
await Promise.all(workers);
|
|
84
85
|
}
|
|
85
|
-
|
|
86
|
+
const remote = {
|
|
86
87
|
getToolInfo: (id, version) => {
|
|
87
88
|
const versioned = lookup.get(lookupKey(id, version ?? null));
|
|
88
89
|
if (versioned)
|
|
@@ -91,6 +92,24 @@ export async function buildGetToolInfo(data, fetcher, opts = {}) {
|
|
|
91
92
|
return lookup.get(lookupKey(id, null)) ?? firstByToolId(lookup, id);
|
|
92
93
|
},
|
|
93
94
|
};
|
|
95
|
+
// Parse inline tool representations up-front. Surfaces parse errors during
|
|
96
|
+
// preload (same `onMiss` channel ToolShed misses use) and warms the
|
|
97
|
+
// InlineResolver cache so the graph build avoids re-parsing.
|
|
98
|
+
const resolver = ensureInlineResolver(remote);
|
|
99
|
+
for (const entry of collectInlineTools(data)) {
|
|
100
|
+
if (entry.inlineClass !== "GalaxyUserTool") {
|
|
101
|
+
// GalaxyTool admin dynamic tools are out of scope; the graph builder
|
|
102
|
+
// emits `inline_source_unsupported` at validation time. No-op here.
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
try {
|
|
106
|
+
resolver.parseInlineOnce(entry.representation);
|
|
107
|
+
}
|
|
108
|
+
catch (e) {
|
|
109
|
+
opts.onMiss?.({ toolId: String(entry.representation.id ?? "(inline)"), toolVersion: null }, e);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return resolver;
|
|
94
113
|
}
|
|
95
114
|
function lookupKey(toolId, toolVersion) {
|
|
96
115
|
return `${toolId}@${toolVersion ?? ""}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-get-tool-info.js","sourceRoot":"","sources":["../src/build-get-tool-info.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"build-get-tool-info.js","sourceRoot":"","sources":["../src/build-get-tool-info.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-builder.d.ts","sourceRoot":"","sources":["../src/graph-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"graph-builder.d.ts","sourceRoot":"","sources":["../src/graph-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,KAAK,EAOV,aAAa,EACd,MAAM,YAAY,CAAC;AAkBpB,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,GAAG,aAAa,CAM7F"}
|
package/dist/graph-builder.js
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { normalizedNative } from "@galaxy-tool-util/schema";
|
|
8
8
|
import { toNative } from "@galaxy-tool-util/schema";
|
|
9
|
+
import { ensureInlineResolver, resolveForStep } from "./inline-resolver.js";
|
|
9
10
|
import { topsort } from "./topsort.js";
|
|
10
11
|
const PARAMETER_INPUT_TYPES = new Set([
|
|
11
12
|
"gx_text",
|
|
@@ -17,7 +18,10 @@ const PARAMETER_INPUT_TYPES = new Set([
|
|
|
17
18
|
]);
|
|
18
19
|
export function buildWorkflowGraph(workflow, getToolInfo) {
|
|
19
20
|
const native = _coerceNormalizedNative(workflow);
|
|
20
|
-
|
|
21
|
+
// Wrap once at the top so per-step parse results are memoized across the
|
|
22
|
+
// whole walk (including subworkflow recursion). Idempotent — if the caller
|
|
23
|
+
// already wrapped, we re-use their cache.
|
|
24
|
+
return _buildFromNormalized(native, ensureInlineResolver(getToolInfo));
|
|
21
25
|
}
|
|
22
26
|
function _coerceNormalizedNative(workflow) {
|
|
23
27
|
if (workflow == null || typeof workflow !== "object") {
|
|
@@ -104,26 +108,29 @@ function _resolveToolStep(stepId, step, getToolInfo) {
|
|
|
104
108
|
const connections = _parseConnections(step);
|
|
105
109
|
let inputs = {};
|
|
106
110
|
let outputs = {};
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
111
|
+
// resolveForStep handles inline UDT (`tool_representation`) too — when
|
|
112
|
+
// present, the inline parse wins over `tool_id`.
|
|
113
|
+
const parsed = resolveForStep(getToolInfo, step);
|
|
114
|
+
if (parsed) {
|
|
115
|
+
inputs = _collectInputs(parsed.inputs, step.tool_state ?? {});
|
|
116
|
+
outputs = _collectOutputs(parsed.outputs);
|
|
117
|
+
// Python additionally calls _resolve_rules_collection_types here to
|
|
118
|
+
// populate `collection_type` from a RuleSet mapping when the output
|
|
119
|
+
// declares `collection_type_from_rules`. RuleSet (galaxy.util.rules_dsl)
|
|
120
|
+
// is not yet ported — affected outputs stay unresolved (ANY) instead of
|
|
121
|
+
// gaining a concrete type. Outputs without rules-driven types behave
|
|
122
|
+
// identically to Python.
|
|
119
123
|
}
|
|
120
124
|
if (step.when && "when" in connections) {
|
|
121
125
|
inputs.when = { name: "when", statePath: "when", type: "boolean" };
|
|
122
126
|
}
|
|
123
127
|
return {
|
|
124
128
|
stepId,
|
|
125
|
-
|
|
126
|
-
|
|
129
|
+
// Inline UDT steps have null tool_id but carry the id inside the
|
|
130
|
+
// representation; surface that so reports/diagnostics have something to
|
|
131
|
+
// show.
|
|
132
|
+
toolId: step.tool_id ?? (parsed ? parsed.id : null) ?? null,
|
|
133
|
+
toolVersion: step.tool_version ?? (parsed ? parsed.version : null) ?? null,
|
|
127
134
|
stepType: "tool",
|
|
128
135
|
inputs,
|
|
129
136
|
outputs,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-builder.js","sourceRoot":"","sources":["../src/graph-builder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"graph-builder.js","sourceRoot":"","sources":["../src/graph-builder.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -8,5 +8,6 @@ export type { ConnectionValidationReport, ConnectionStepResult, ConnectionResult
|
|
|
8
8
|
export type { GetToolInfo } from "./get-tool-info.js";
|
|
9
9
|
export { collectToolRefs, buildGetToolInfo } from "./build-get-tool-info.js";
|
|
10
10
|
export type { ToolRef, AsyncToolFetcher, BuildGetToolInfoOptions } from "./build-get-tool-info.js";
|
|
11
|
+
export { resolveForStep, InlineResolver, ensureInlineResolver, collectInlineTools, type InlineToolEntry, } from "./inline-resolver.js";
|
|
11
12
|
export { canMatch, canMapOver, compatible, effectiveMapOver, isListLike, collectionTypeRank, isNullDesc, isAnyDesc, describe as describeCollectionType, } from "./collection-type-functions.js";
|
|
12
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,0BAA0B,EAC1B,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACzF,OAAO,EAAE,yBAAyB,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAChF,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EACV,0BAA0B,EAC1B,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnG,OAAO,EACL,QAAQ,EACR,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,QAAQ,IAAI,sBAAsB,GACnC,MAAM,gCAAgC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,0BAA0B,EAC1B,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACzF,OAAO,EAAE,yBAAyB,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAChF,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EACV,0BAA0B,EAC1B,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnG,OAAO,EACL,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,KAAK,eAAe,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,QAAQ,EACR,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,QAAQ,IAAI,sBAAsB,GACnC,MAAM,gCAAgC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -3,5 +3,6 @@ export { validateConnections, validateConnectionGraph } from "./connection-valid
|
|
|
3
3
|
export { validateConnectionsReport, toConnectionValidationReport } from "./report-builder.js";
|
|
4
4
|
export { buildEdgeAnnotations, edgeAnnotationKey } from "./edge-annotations.js";
|
|
5
5
|
export { collectToolRefs, buildGetToolInfo } from "./build-get-tool-info.js";
|
|
6
|
+
export { resolveForStep, InlineResolver, ensureInlineResolver, collectInlineTools, } from "./inline-resolver.js";
|
|
6
7
|
export { canMatch, canMapOver, compatible, effectiveMapOver, isListLike, collectionTypeRank, isNullDesc, isAnyDesc, describe as describeCollectionType, } from "./collection-type-functions.js";
|
|
7
8
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACzF,OAAO,EAAE,yBAAyB,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAShF,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE7E,OAAO,EACL,QAAQ,EACR,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,QAAQ,IAAI,sBAAsB,GACnC,MAAM,gCAAgC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACzF,OAAO,EAAE,yBAAyB,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAShF,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE7E,OAAO,EACL,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,kBAAkB,GAEnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,QAAQ,EACR,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,QAAQ,IAAI,sBAAsB,GACnC,MAAM,gCAAgC,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inline UDT resolver layered over `GetToolInfo`. TS port of Python's
|
|
3
|
+
* `galaxy.tool_util.workflow_state._inline_tool.{resolve_for_step,
|
|
4
|
+
* InlineResolver, ensure_inline_resolver}` — the connection-validation surface
|
|
5
|
+
* for inline `tool_representation` steps. Without this, inline-UDT steps
|
|
6
|
+
* resolve to empty inputs/outputs (their `tool_id` is `null`).
|
|
7
|
+
*
|
|
8
|
+
* Scope discrimination:
|
|
9
|
+
* - `class: GalaxyUserTool` → parse locally and return.
|
|
10
|
+
* - `class: GalaxyTool` (admin dynamic tool) → return `null` so the caller can
|
|
11
|
+
* emit `inline_source_unsupported`.
|
|
12
|
+
* - Both `tool_id` and `tool_representation` set → `tool_representation` wins
|
|
13
|
+
* (Galaxy's exporter clears `tool_id` on UDT export but third-party exporters
|
|
14
|
+
* might not).
|
|
15
|
+
*/
|
|
16
|
+
import type { ParsedTool } from "@galaxy-tool-util/schema";
|
|
17
|
+
import type { GetToolInfo } from "./get-tool-info.js";
|
|
18
|
+
type Dict = Record<string, unknown>;
|
|
19
|
+
export declare function resolveForStep(getToolInfo: GetToolInfo, step: unknown): ParsedTool | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Per-walk memoization layered over {@link resolveForStep}. Wraps a
|
|
22
|
+
* {@link GetToolInfo} and caches per-step parse results so repeated
|
|
23
|
+
* `resolveForStep` calls on the same step object — common when multiple
|
|
24
|
+
* validation phases walk the same workflow — re-use one parse invocation.
|
|
25
|
+
*
|
|
26
|
+
* Structurally satisfies `GetToolInfo` by delegating `getToolInfo(toolId,
|
|
27
|
+
* version)` to the wrapped instance, so callers can pass an `InlineResolver`
|
|
28
|
+
* anywhere a `GetToolInfo` is expected.
|
|
29
|
+
*
|
|
30
|
+
* Keyed by step identity (`WeakMap`) — content-hash dedupe deferred until
|
|
31
|
+
* profiling says it matters. Lifetime is bound to a single workflow walk.
|
|
32
|
+
*/
|
|
33
|
+
export declare class InlineResolver implements GetToolInfo {
|
|
34
|
+
private readonly inner;
|
|
35
|
+
private readonly representationCache;
|
|
36
|
+
constructor(getToolInfo: GetToolInfo);
|
|
37
|
+
getToolInfo(toolId: string, toolVersion?: string | null): ParsedTool | undefined;
|
|
38
|
+
resolve(step: unknown): ParsedTool | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* Parse a single inline representation and cache it by representation
|
|
41
|
+
* identity. Public so callers (e.g. `buildGetToolInfo`) can warm the cache
|
|
42
|
+
* up-front during preload to surface parse errors before graph build.
|
|
43
|
+
*/
|
|
44
|
+
parseInlineOnce(representation: Dict): ParsedTool;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Walk a workflow dict (steps + nested subworkflows + nested `run`) and
|
|
48
|
+
* collect every inline tool representation. Used by `buildGetToolInfo` to
|
|
49
|
+
* pre-parse inline tools alongside the async tool_id preload.
|
|
50
|
+
*/
|
|
51
|
+
export interface InlineToolEntry {
|
|
52
|
+
representation: Dict;
|
|
53
|
+
inlineClass: "GalaxyUserTool" | "GalaxyTool";
|
|
54
|
+
}
|
|
55
|
+
export declare function collectInlineTools(data: Dict): InlineToolEntry[];
|
|
56
|
+
/**
|
|
57
|
+
* Wrap *getToolInfo* in an {@link InlineResolver}, idempotently. Returns the
|
|
58
|
+
* input unchanged if it is already an `InlineResolver` (so existing caches are
|
|
59
|
+
* preserved).
|
|
60
|
+
*/
|
|
61
|
+
export declare function ensureInlineResolver(getToolInfo: GetToolInfo): InlineResolver;
|
|
62
|
+
export {};
|
|
63
|
+
//# sourceMappingURL=inline-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inline-resolver.d.ts","sourceRoot":"","sources":["../src/inline-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAG3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AA8CpC,wBAAgB,cAAc,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAK9F;AAgBD;;;;;;;;;;;;GAYG;AACH,qBAAa,cAAe,YAAW,WAAW;IAChD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IAIpC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqC;gBAE7D,WAAW,EAAE,WAAW;IAIpC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,UAAU,GAAG,SAAS;IAIhF,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS;IAW9C;;;;OAIG;IACH,eAAe,CAAC,cAAc,EAAE,IAAI,GAAG,UAAU;CAQlD;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,IAAI,CAAC;IACrB,WAAW,EAAE,gBAAgB,GAAG,YAAY,CAAC;CAC9C;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,eAAe,EAAE,CAIhE;AAkCD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,WAAW,GAAG,cAAc,CAG7E"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inline UDT resolver layered over `GetToolInfo`. TS port of Python's
|
|
3
|
+
* `galaxy.tool_util.workflow_state._inline_tool.{resolve_for_step,
|
|
4
|
+
* InlineResolver, ensure_inline_resolver}` — the connection-validation surface
|
|
5
|
+
* for inline `tool_representation` steps. Without this, inline-UDT steps
|
|
6
|
+
* resolve to empty inputs/outputs (their `tool_id` is `null`).
|
|
7
|
+
*
|
|
8
|
+
* Scope discrimination:
|
|
9
|
+
* - `class: GalaxyUserTool` → parse locally and return.
|
|
10
|
+
* - `class: GalaxyTool` (admin dynamic tool) → return `null` so the caller can
|
|
11
|
+
* emit `inline_source_unsupported`.
|
|
12
|
+
* - Both `tool_id` and `tool_representation` set → `tool_representation` wins
|
|
13
|
+
* (Galaxy's exporter clears `tool_id` on UDT export but third-party exporters
|
|
14
|
+
* might not).
|
|
15
|
+
*/
|
|
16
|
+
import { parseInlineTool } from "@galaxy-tool-util/schema";
|
|
17
|
+
const INLINE_CLASSES = new Set(["GalaxyUserTool", "GalaxyTool"]);
|
|
18
|
+
function viewStep(step) {
|
|
19
|
+
if (!step || typeof step !== "object") {
|
|
20
|
+
return { toolId: null, toolVersion: null, representation: null, inlineClass: null };
|
|
21
|
+
}
|
|
22
|
+
const s = step;
|
|
23
|
+
const representation = pickRepresentation(s);
|
|
24
|
+
const inlineClass = representation &&
|
|
25
|
+
typeof representation.class === "string" &&
|
|
26
|
+
INLINE_CLASSES.has(representation.class)
|
|
27
|
+
? representation.class
|
|
28
|
+
: null;
|
|
29
|
+
return {
|
|
30
|
+
toolId: typeof s.tool_id === "string" ? s.tool_id : null,
|
|
31
|
+
toolVersion: typeof s.tool_version === "string" ? s.tool_version : null,
|
|
32
|
+
representation,
|
|
33
|
+
inlineClass,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function pickRepresentation(step) {
|
|
37
|
+
const native = step.tool_representation;
|
|
38
|
+
if (native && typeof native === "object" && !Array.isArray(native)) {
|
|
39
|
+
return native;
|
|
40
|
+
}
|
|
41
|
+
const run = step.run;
|
|
42
|
+
if (run && typeof run === "object" && !Array.isArray(run)) {
|
|
43
|
+
const cls = run.class;
|
|
44
|
+
if (typeof cls === "string" && INLINE_CLASSES.has(cls)) {
|
|
45
|
+
return run;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
export function resolveForStep(getToolInfo, step) {
|
|
51
|
+
if (getToolInfo instanceof InlineResolver) {
|
|
52
|
+
return getToolInfo.resolve(step);
|
|
53
|
+
}
|
|
54
|
+
return _resolveForStepUncached(getToolInfo, step);
|
|
55
|
+
}
|
|
56
|
+
function _resolveForStepUncached(getToolInfo, step) {
|
|
57
|
+
const view = viewStep(step);
|
|
58
|
+
if (view.inlineClass !== null) {
|
|
59
|
+
if (view.inlineClass !== "GalaxyUserTool") {
|
|
60
|
+
// GalaxyTool admin dynamic tool — out of scope for connection validation.
|
|
61
|
+
return undefined;
|
|
62
|
+
}
|
|
63
|
+
if (view.representation === null)
|
|
64
|
+
return undefined;
|
|
65
|
+
return parseInlineTool(view.representation);
|
|
66
|
+
}
|
|
67
|
+
if (!view.toolId)
|
|
68
|
+
return undefined;
|
|
69
|
+
return getToolInfo.getToolInfo(view.toolId, view.toolVersion);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Per-walk memoization layered over {@link resolveForStep}. Wraps a
|
|
73
|
+
* {@link GetToolInfo} and caches per-step parse results so repeated
|
|
74
|
+
* `resolveForStep` calls on the same step object — common when multiple
|
|
75
|
+
* validation phases walk the same workflow — re-use one parse invocation.
|
|
76
|
+
*
|
|
77
|
+
* Structurally satisfies `GetToolInfo` by delegating `getToolInfo(toolId,
|
|
78
|
+
* version)` to the wrapped instance, so callers can pass an `InlineResolver`
|
|
79
|
+
* anywhere a `GetToolInfo` is expected.
|
|
80
|
+
*
|
|
81
|
+
* Keyed by step identity (`WeakMap`) — content-hash dedupe deferred until
|
|
82
|
+
* profiling says it matters. Lifetime is bound to a single workflow walk.
|
|
83
|
+
*/
|
|
84
|
+
export class InlineResolver {
|
|
85
|
+
inner;
|
|
86
|
+
// Keyed by representation-dict identity rather than step identity so the
|
|
87
|
+
// cache survives normalization (toNative/normalizedNative rebuild steps but
|
|
88
|
+
// keep the inline `tool_representation` leaf by reference).
|
|
89
|
+
representationCache = new WeakMap();
|
|
90
|
+
constructor(getToolInfo) {
|
|
91
|
+
this.inner = getToolInfo;
|
|
92
|
+
}
|
|
93
|
+
getToolInfo(toolId, toolVersion) {
|
|
94
|
+
return this.inner.getToolInfo(toolId, toolVersion);
|
|
95
|
+
}
|
|
96
|
+
resolve(step) {
|
|
97
|
+
const view = viewStep(step);
|
|
98
|
+
if (view.inlineClass !== null) {
|
|
99
|
+
if (view.inlineClass !== "GalaxyUserTool")
|
|
100
|
+
return undefined;
|
|
101
|
+
if (view.representation === null)
|
|
102
|
+
return undefined;
|
|
103
|
+
return this.parseInlineOnce(view.representation);
|
|
104
|
+
}
|
|
105
|
+
if (!view.toolId)
|
|
106
|
+
return undefined;
|
|
107
|
+
return this.inner.getToolInfo(view.toolId, view.toolVersion);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Parse a single inline representation and cache it by representation
|
|
111
|
+
* identity. Public so callers (e.g. `buildGetToolInfo`) can warm the cache
|
|
112
|
+
* up-front during preload to surface parse errors before graph build.
|
|
113
|
+
*/
|
|
114
|
+
parseInlineOnce(representation) {
|
|
115
|
+
const key = representation;
|
|
116
|
+
const cached = this.representationCache.get(key);
|
|
117
|
+
if (cached)
|
|
118
|
+
return cached;
|
|
119
|
+
const parsed = parseInlineTool(representation);
|
|
120
|
+
this.representationCache.set(key, parsed);
|
|
121
|
+
return parsed;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
export function collectInlineTools(data) {
|
|
125
|
+
const out = [];
|
|
126
|
+
_walkInline(data, out);
|
|
127
|
+
return out;
|
|
128
|
+
}
|
|
129
|
+
function _walkInline(node, out) {
|
|
130
|
+
const steps = node.steps;
|
|
131
|
+
if (steps == null || typeof steps !== "object")
|
|
132
|
+
return;
|
|
133
|
+
const iter = Array.isArray(steps)
|
|
134
|
+
? steps
|
|
135
|
+
: Object.values(steps);
|
|
136
|
+
for (const stepRaw of iter) {
|
|
137
|
+
if (stepRaw == null || typeof stepRaw !== "object")
|
|
138
|
+
continue;
|
|
139
|
+
const step = stepRaw;
|
|
140
|
+
const view = viewStep(step);
|
|
141
|
+
if (view.representation && view.inlineClass) {
|
|
142
|
+
out.push({ representation: view.representation, inlineClass: view.inlineClass });
|
|
143
|
+
}
|
|
144
|
+
const sub = step.subworkflow;
|
|
145
|
+
if (sub && typeof sub === "object" && !Array.isArray(sub)) {
|
|
146
|
+
_walkInline(sub, out);
|
|
147
|
+
}
|
|
148
|
+
// For format2, `run:` may be a nested subworkflow (class: GalaxyWorkflow)
|
|
149
|
+
// — recurse so inner UDTs surface too. If `run:` is itself an inline UDT,
|
|
150
|
+
// viewStep already picked it up above; don't recurse in that case.
|
|
151
|
+
const run = step.run;
|
|
152
|
+
if (run &&
|
|
153
|
+
typeof run === "object" &&
|
|
154
|
+
!Array.isArray(run) &&
|
|
155
|
+
run.class === "GalaxyWorkflow") {
|
|
156
|
+
_walkInline(run, out);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Wrap *getToolInfo* in an {@link InlineResolver}, idempotently. Returns the
|
|
162
|
+
* input unchanged if it is already an `InlineResolver` (so existing caches are
|
|
163
|
+
* preserved).
|
|
164
|
+
*/
|
|
165
|
+
export function ensureInlineResolver(getToolInfo) {
|
|
166
|
+
if (getToolInfo instanceof InlineResolver)
|
|
167
|
+
return getToolInfo;
|
|
168
|
+
return new InlineResolver(getToolInfo);
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=inline-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inline-resolver.js","sourceRoot":"","sources":["../src/inline-resolver.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@galaxy-tool-util/connection-validation",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"description": "Connection validator for Galaxy workflows — port of galaxy.tool_util.workflow_state.connection_validation",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"yaml": "^2.8.3"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@galaxy-tool-util/schema": "1.
|
|
39
|
+
"@galaxy-tool-util/schema": "1.6.0",
|
|
40
40
|
"@galaxy-tool-util/workflow-graph": "1.2.0"
|
|
41
41
|
},
|
|
42
42
|
"scripts": {
|