@galaxy-tool-util/schema 0.1.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/README.md +13 -0
- package/dist/index.d.ts +69 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +69 -0
- package/dist/index.js.map +1 -0
- package/dist/schema/bundle-types.d.ts +249 -0
- package/dist/schema/bundle-types.d.ts.map +1 -0
- package/dist/schema/bundle-types.js +74 -0
- package/dist/schema/bundle-types.js.map +1 -0
- package/dist/schema/index.d.ts +6 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +6 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/model-factory.d.ts +14 -0
- package/dist/schema/model-factory.d.ts.map +1 -0
- package/dist/schema/model-factory.js +96 -0
- package/dist/schema/model-factory.js.map +1 -0
- package/dist/schema/parameters/base.d.ts +62 -0
- package/dist/schema/parameters/base.d.ts.map +1 -0
- package/dist/schema/parameters/base.js +51 -0
- package/dist/schema/parameters/base.js.map +1 -0
- package/dist/schema/parameters/gx-baseurl.d.ts +2 -0
- package/dist/schema/parameters/gx-baseurl.d.ts.map +1 -0
- package/dist/schema/parameters/gx-baseurl.js +16 -0
- package/dist/schema/parameters/gx-baseurl.js.map +1 -0
- package/dist/schema/parameters/gx-boolean.d.ts +2 -0
- package/dist/schema/parameters/gx-boolean.d.ts.map +1 -0
- package/dist/schema/parameters/gx-boolean.js +29 -0
- package/dist/schema/parameters/gx-boolean.js.map +1 -0
- package/dist/schema/parameters/gx-color.d.ts +2 -0
- package/dist/schema/parameters/gx-color.d.ts.map +1 -0
- package/dist/schema/parameters/gx-color.js +26 -0
- package/dist/schema/parameters/gx-color.js.map +1 -0
- package/dist/schema/parameters/gx-conditional.d.ts +2 -0
- package/dist/schema/parameters/gx-conditional.d.ts.map +1 -0
- package/dist/schema/parameters/gx-conditional.js +56 -0
- package/dist/schema/parameters/gx-conditional.js.map +1 -0
- package/dist/schema/parameters/gx-data-collection.d.ts +2 -0
- package/dist/schema/parameters/gx-data-collection.d.ts.map +1 -0
- package/dist/schema/parameters/gx-data-collection.js +146 -0
- package/dist/schema/parameters/gx-data-collection.js.map +1 -0
- package/dist/schema/parameters/gx-data-column.d.ts +2 -0
- package/dist/schema/parameters/gx-data-column.d.ts.map +1 -0
- package/dist/schema/parameters/gx-data-column.js +49 -0
- package/dist/schema/parameters/gx-data-column.js.map +1 -0
- package/dist/schema/parameters/gx-data.d.ts +2 -0
- package/dist/schema/parameters/gx-data.d.ts.map +1 -0
- package/dist/schema/parameters/gx-data.js +107 -0
- package/dist/schema/parameters/gx-data.js.map +1 -0
- package/dist/schema/parameters/gx-directory-uri.d.ts +2 -0
- package/dist/schema/parameters/gx-directory-uri.d.ts.map +1 -0
- package/dist/schema/parameters/gx-directory-uri.js +19 -0
- package/dist/schema/parameters/gx-directory-uri.js.map +1 -0
- package/dist/schema/parameters/gx-drill-down.d.ts +2 -0
- package/dist/schema/parameters/gx-drill-down.d.ts.map +1 -0
- package/dist/schema/parameters/gx-drill-down.js +40 -0
- package/dist/schema/parameters/gx-drill-down.js.map +1 -0
- package/dist/schema/parameters/gx-float.d.ts +2 -0
- package/dist/schema/parameters/gx-float.d.ts.map +1 -0
- package/dist/schema/parameters/gx-float.js +46 -0
- package/dist/schema/parameters/gx-float.js.map +1 -0
- package/dist/schema/parameters/gx-genomebuild.d.ts +2 -0
- package/dist/schema/parameters/gx-genomebuild.d.ts.map +1 -0
- package/dist/schema/parameters/gx-genomebuild.js +23 -0
- package/dist/schema/parameters/gx-genomebuild.js.map +1 -0
- package/dist/schema/parameters/gx-group-tag.d.ts +2 -0
- package/dist/schema/parameters/gx-group-tag.d.ts.map +1 -0
- package/dist/schema/parameters/gx-group-tag.js +23 -0
- package/dist/schema/parameters/gx-group-tag.js.map +1 -0
- package/dist/schema/parameters/gx-hidden.d.ts +2 -0
- package/dist/schema/parameters/gx-hidden.d.ts.map +1 -0
- package/dist/schema/parameters/gx-hidden.js +33 -0
- package/dist/schema/parameters/gx-hidden.js.map +1 -0
- package/dist/schema/parameters/gx-integer.d.ts +2 -0
- package/dist/schema/parameters/gx-integer.d.ts.map +1 -0
- package/dist/schema/parameters/gx-integer.js +47 -0
- package/dist/schema/parameters/gx-integer.js.map +1 -0
- package/dist/schema/parameters/gx-repeat.d.ts +2 -0
- package/dist/schema/parameters/gx-repeat.d.ts.map +1 -0
- package/dist/schema/parameters/gx-repeat.js +30 -0
- package/dist/schema/parameters/gx-repeat.js.map +1 -0
- package/dist/schema/parameters/gx-rules.d.ts +2 -0
- package/dist/schema/parameters/gx-rules.d.ts.map +1 -0
- package/dist/schema/parameters/gx-rules.js +91 -0
- package/dist/schema/parameters/gx-rules.js.map +1 -0
- package/dist/schema/parameters/gx-section.d.ts +2 -0
- package/dist/schema/parameters/gx-section.d.ts.map +1 -0
- package/dist/schema/parameters/gx-section.js +17 -0
- package/dist/schema/parameters/gx-section.js.map +1 -0
- package/dist/schema/parameters/gx-select.d.ts +2 -0
- package/dist/schema/parameters/gx-select.d.ts.map +1 -0
- package/dist/schema/parameters/gx-select.js +63 -0
- package/dist/schema/parameters/gx-select.js.map +1 -0
- package/dist/schema/parameters/gx-text.d.ts +2 -0
- package/dist/schema/parameters/gx-text.d.ts.map +1 -0
- package/dist/schema/parameters/gx-text.js +22 -0
- package/dist/schema/parameters/gx-text.js.map +1 -0
- package/dist/schema/parameters/index.d.ts +21 -0
- package/dist/schema/parameters/index.d.ts.map +1 -0
- package/dist/schema/parameters/index.js +24 -0
- package/dist/schema/parameters/index.js.map +1 -0
- package/dist/schema/parameters/registry.d.ts +6 -0
- package/dist/schema/parameters/registry.d.ts.map +1 -0
- package/dist/schema/parameters/registry.js +18 -0
- package/dist/schema/parameters/registry.js.map +1 -0
- package/dist/schema/state-representations.d.ts +14 -0
- package/dist/schema/state-representations.d.ts.map +1 -0
- package/dist/schema/state-representations.js +61 -0
- package/dist/schema/state-representations.js.map +1 -0
- package/dist/schema/validators/empty-field.d.ts +2 -0
- package/dist/schema/validators/empty-field.d.ts.map +1 -0
- package/dist/schema/validators/empty-field.js +12 -0
- package/dist/schema/validators/empty-field.js.map +1 -0
- package/dist/schema/validators/expression.d.ts +2 -0
- package/dist/schema/validators/expression.d.ts.map +1 -0
- package/dist/schema/validators/expression.js +42 -0
- package/dist/schema/validators/expression.js.map +1 -0
- package/dist/schema/validators/in-range.d.ts +2 -0
- package/dist/schema/validators/in-range.d.ts.map +1 -0
- package/dist/schema/validators/in-range.js +36 -0
- package/dist/schema/validators/in-range.js.map +1 -0
- package/dist/schema/validators/index.d.ts +8 -0
- package/dist/schema/validators/index.d.ts.map +1 -0
- package/dist/schema/validators/index.js +10 -0
- package/dist/schema/validators/index.js.map +1 -0
- package/dist/schema/validators/length.d.ts +2 -0
- package/dist/schema/validators/length.d.ts.map +1 -0
- package/dist/schema/validators/length.js +29 -0
- package/dist/schema/validators/length.js.map +1 -0
- package/dist/schema/validators/no-options.d.ts +2 -0
- package/dist/schema/validators/no-options.d.ts.map +1 -0
- package/dist/schema/validators/no-options.js +10 -0
- package/dist/schema/validators/no-options.js.map +1 -0
- package/dist/schema/validators/regex.d.ts +27 -0
- package/dist/schema/validators/regex.d.ts.map +1 -0
- package/dist/schema/validators/regex.js +100 -0
- package/dist/schema/validators/regex.js.map +1 -0
- package/dist/schema/validators/registry.d.ts +19 -0
- package/dist/schema/validators/registry.d.ts.map +1 -0
- package/dist/schema/validators/registry.js +29 -0
- package/dist/schema/validators/registry.js.map +1 -0
- package/dist/workflow/clean.d.ts +13 -0
- package/dist/workflow/clean.d.ts.map +1 -0
- package/dist/workflow/clean.js +131 -0
- package/dist/workflow/clean.js.map +1 -0
- package/dist/workflow/detect-format.d.ts +5 -0
- package/dist/workflow/detect-format.d.ts.map +1 -0
- package/dist/workflow/detect-format.js +11 -0
- package/dist/workflow/detect-format.js.map +1 -0
- package/dist/workflow/index.d.ts +9 -0
- package/dist/workflow/index.d.ts.map +1 -0
- package/dist/workflow/index.js +11 -0
- package/dist/workflow/index.js.map +1 -0
- package/dist/workflow/legacy-encoding.d.ts +40 -0
- package/dist/workflow/legacy-encoding.d.ts.map +1 -0
- package/dist/workflow/legacy-encoding.js +81 -0
- package/dist/workflow/legacy-encoding.js.map +1 -0
- package/dist/workflow/lint.d.ts +49 -0
- package/dist/workflow/lint.d.ts.map +1 -0
- package/dist/workflow/lint.js +402 -0
- package/dist/workflow/lint.js.map +1 -0
- package/dist/workflow/normalized/comments.d.ts +21 -0
- package/dist/workflow/normalized/comments.d.ts.map +1 -0
- package/dist/workflow/normalized/comments.js +80 -0
- package/dist/workflow/normalized/comments.js.map +1 -0
- package/dist/workflow/normalized/ensure.d.ts +21 -0
- package/dist/workflow/normalized/ensure.d.ts.map +1 -0
- package/dist/workflow/normalized/ensure.js +43 -0
- package/dist/workflow/normalized/ensure.js.map +1 -0
- package/dist/workflow/normalized/expanded.d.ts +62 -0
- package/dist/workflow/normalized/expanded.d.ts.map +1 -0
- package/dist/workflow/normalized/expanded.js +173 -0
- package/dist/workflow/normalized/expanded.js.map +1 -0
- package/dist/workflow/normalized/format2.d.ts +149 -0
- package/dist/workflow/normalized/format2.d.ts.map +1 -0
- package/dist/workflow/normalized/format2.js +416 -0
- package/dist/workflow/normalized/format2.js.map +1 -0
- package/dist/workflow/normalized/index.d.ts +9 -0
- package/dist/workflow/normalized/index.d.ts.map +1 -0
- package/dist/workflow/normalized/index.js +9 -0
- package/dist/workflow/normalized/index.js.map +1 -0
- package/dist/workflow/normalized/labels.d.ts +27 -0
- package/dist/workflow/normalized/labels.d.ts.map +1 -0
- package/dist/workflow/normalized/labels.js +59 -0
- package/dist/workflow/normalized/labels.js.map +1 -0
- package/dist/workflow/normalized/native.d.ts +97 -0
- package/dist/workflow/normalized/native.d.ts.map +1 -0
- package/dist/workflow/normalized/native.js +189 -0
- package/dist/workflow/normalized/native.js.map +1 -0
- package/dist/workflow/normalized/toFormat2.d.ts +11 -0
- package/dist/workflow/normalized/toFormat2.d.ts.map +1 -0
- package/dist/workflow/normalized/toFormat2.js +416 -0
- package/dist/workflow/normalized/toFormat2.js.map +1 -0
- package/dist/workflow/normalized/toNative.d.ts +11 -0
- package/dist/workflow/normalized/toNative.d.ts.map +1 -0
- package/dist/workflow/normalized/toNative.js +576 -0
- package/dist/workflow/normalized/toNative.js.map +1 -0
- package/dist/workflow/raw/gxformat2.d.ts +402 -0
- package/dist/workflow/raw/gxformat2.d.ts.map +1 -0
- package/dist/workflow/raw/gxformat2.effect.d.ts +1140 -0
- package/dist/workflow/raw/gxformat2.effect.d.ts.map +1 -0
- package/dist/workflow/raw/gxformat2.effect.js +453 -0
- package/dist/workflow/raw/gxformat2.effect.js.map +1 -0
- package/dist/workflow/raw/gxformat2.js +3 -0
- package/dist/workflow/raw/gxformat2.js.map +1 -0
- package/dist/workflow/raw/index.d.ts +5 -0
- package/dist/workflow/raw/index.d.ts.map +1 -0
- package/dist/workflow/raw/index.js +4 -0
- package/dist/workflow/raw/index.js.map +1 -0
- package/dist/workflow/raw/native.d.ts +439 -0
- package/dist/workflow/raw/native.d.ts.map +1 -0
- package/dist/workflow/raw/native.effect.d.ts +947 -0
- package/dist/workflow/raw/native.effect.d.ts.map +1 -0
- package/dist/workflow/raw/native.effect.js +474 -0
- package/dist/workflow/raw/native.effect.js.map +1 -0
- package/dist/workflow/raw/native.js +20 -0
- package/dist/workflow/raw/native.js.map +1 -0
- package/dist/workflow/replacement-scan.d.ts +21 -0
- package/dist/workflow/replacement-scan.d.ts.map +1 -0
- package/dist/workflow/replacement-scan.js +92 -0
- package/dist/workflow/replacement-scan.js.map +1 -0
- package/dist/workflow/state-merge.d.ts +49 -0
- package/dist/workflow/state-merge.d.ts.map +1 -0
- package/dist/workflow/state-merge.js +248 -0
- package/dist/workflow/state-merge.js.map +1 -0
- package/package.json +45 -0
package/README.md
ADDED
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module @galaxy-tool-util/schema
|
|
3
|
+
*
|
|
4
|
+
* Effect Schema definitions for Galaxy tool parameter types and workflow models.
|
|
5
|
+
* Generates typed schemas that validate tool state and export to JSON Schema.
|
|
6
|
+
*/
|
|
7
|
+
export {
|
|
8
|
+
/** Build an Effect Schema for a tool parameter bundle at a given state representation. */
|
|
9
|
+
createFieldModel, type StateRepresentation,
|
|
10
|
+
/** All valid state representation names. */
|
|
11
|
+
STATE_REPRESENTATIONS,
|
|
12
|
+
/** Check whether a parameter type has a registered schema generator. */
|
|
13
|
+
isParameterTypeRegistered,
|
|
14
|
+
/** Set of all parameter types with registered generators. */
|
|
15
|
+
registeredParameterTypes,
|
|
16
|
+
/** Check whether a validator type has a registered schema generator. */
|
|
17
|
+
isValidatorTypeRegistered,
|
|
18
|
+
/** Set of all validator types with registered generators. */
|
|
19
|
+
registeredValidatorTypes,
|
|
20
|
+
/** Extract the set of parameter types used in a tool bundle. */
|
|
21
|
+
collectParameterTypes,
|
|
22
|
+
/** Extract the set of validator types used in a tool bundle. */
|
|
23
|
+
collectValidatorTypes, type ToolParameterBundleModel, } from "./schema/index.js";
|
|
24
|
+
export { type GalaxyWorkflow,
|
|
25
|
+
/** Union schema accepting any Galaxy workflow format (format2 or native). */
|
|
26
|
+
GalaxyWorkflowSchema, type NativeGalaxyWorkflow,
|
|
27
|
+
/** Schema for raw native (.ga) Galaxy workflows. */
|
|
28
|
+
NativeGalaxyWorkflowSchema,
|
|
29
|
+
/** Normalize a raw format2 workflow — fills defaults, resolves implicit fields. */
|
|
30
|
+
normalizedFormat2, NormalizedFormat2WorkflowSchema, NormalizedFormat2StepSchema, NormalizedFormat2InputSchema, NormalizedFormat2OutputSchema, NormalizedFormat2StepInputSchema, NormalizedFormat2StepOutputSchema, type NormalizedFormat2Workflow, type NormalizedFormat2Step, type NormalizedFormat2Input, type NormalizedFormat2Output, type NormalizedFormat2StepInput, type NormalizedFormat2StepOutput,
|
|
31
|
+
/** Normalize a raw native (.ga) workflow — fills defaults, resolves implicit fields. */
|
|
32
|
+
normalizedNative, NormalizedNativeWorkflowSchema, NormalizedNativeStepSchema, ToolReferenceSchema, type NormalizedNativeWorkflow, type NormalizedNativeStep, type ToolReference,
|
|
33
|
+
/** Merge step connection info into tool_state for validation. */
|
|
34
|
+
injectConnectionsIntoState,
|
|
35
|
+
/** Strip ConnectedValue markers from state using parameter tree. */
|
|
36
|
+
stripConnectedValues,
|
|
37
|
+
/** Flatten a nested parameter path to a dot-separated string. */
|
|
38
|
+
flatStatePath, keysStartingWith,
|
|
39
|
+
/** Convert repeat block inputs to arrays. */
|
|
40
|
+
repeatInputsToArray,
|
|
41
|
+
/** Resolve conditional parameter selections based on test values. */
|
|
42
|
+
selectWhichWhen,
|
|
43
|
+
/** Find ${...} replacement patterns in tool state values. */
|
|
44
|
+
scanForReplacements,
|
|
45
|
+
/** Normalize + async expand external subworkflow refs in a format2 workflow. */
|
|
46
|
+
expandedFormat2,
|
|
47
|
+
/** Normalize + async expand external subworkflow refs in a native workflow. */
|
|
48
|
+
expandedNative,
|
|
49
|
+
/** Check whether a string is a TRS (Tool Registry Service) URL. */
|
|
50
|
+
isTrsUrl, MAX_EXPANSION_DEPTH, type ExpandedFormat2Workflow, type ExpandedFormat2Step, type ExpandedNativeWorkflow, type ExpandedNativeStep, type RefResolver, type ExpansionOptions,
|
|
51
|
+
/** Scan native workflow tool_state for legacy parameter encoding signals. */
|
|
52
|
+
scanToolState, type LegacyEncodingClassification, type LegacyEncodingHit, type LegacyEncodingScanResult,
|
|
53
|
+
/** Clean a workflow — strip stale keys, decode legacy tool_state encoding. */
|
|
54
|
+
cleanWorkflow,
|
|
55
|
+
/** Detect whether a workflow dict is native (.ga) or format2 (.gxwf.yml). */
|
|
56
|
+
detectFormat, type WorkflowFormat,
|
|
57
|
+
/** Lint context for tracking errors and warnings during workflow linting. */
|
|
58
|
+
LintContext,
|
|
59
|
+
/** Lint a native Galaxy workflow (.ga format). */
|
|
60
|
+
lintNative,
|
|
61
|
+
/** Lint a Format2 Galaxy workflow (.gxwf.yml format). */
|
|
62
|
+
lintFormat2,
|
|
63
|
+
/** Lint a workflow, auto-detecting format. */
|
|
64
|
+
lintWorkflow,
|
|
65
|
+
/** Lint best practices for a Format2 Galaxy workflow. */
|
|
66
|
+
lintBestPracticesFormat2,
|
|
67
|
+
/** Lint best practices for a native Galaxy workflow. */
|
|
68
|
+
lintBestPracticesNative, type LintResult, } from "./workflow/index.js";
|
|
69
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO;AACL,0FAA0F;AAC1F,gBAAgB,EAChB,KAAK,mBAAmB;AACxB,4CAA4C;AAC5C,qBAAqB;AACrB,wEAAwE;AACxE,yBAAyB;AACzB,6DAA6D;AAC7D,wBAAwB;AACxB,wEAAwE;AACxE,yBAAyB;AACzB,6DAA6D;AAC7D,wBAAwB;AACxB,gEAAgE;AAChE,qBAAqB;AACrB,gEAAgE;AAChE,qBAAqB,EACrB,KAAK,wBAAwB,GAC9B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,KAAK,cAAc;AACnB,6EAA6E;AAC7E,oBAAoB,EACpB,KAAK,oBAAoB;AACzB,oDAAoD;AACpD,0BAA0B;AAC1B,mFAAmF;AACnF,iBAAiB,EACjB,+BAA+B,EAC/B,2BAA2B,EAC3B,4BAA4B,EAC5B,6BAA6B,EAC7B,gCAAgC,EAChC,iCAAiC,EACjC,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B;AAChC,wFAAwF;AACxF,gBAAgB,EAChB,8BAA8B,EAC9B,0BAA0B,EAC1B,mBAAmB,EACnB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,aAAa;AAClB,iEAAiE;AACjE,0BAA0B;AAC1B,oEAAoE;AACpE,oBAAoB;AACpB,iEAAiE;AACjE,aAAa,EACb,gBAAgB;AAChB,6CAA6C;AAC7C,mBAAmB;AACnB,qEAAqE;AACrE,eAAe;AACf,6DAA6D;AAC7D,mBAAmB;AACnB,gFAAgF;AAChF,eAAe;AACf,+EAA+E;AAC/E,cAAc;AACd,mEAAmE;AACnE,QAAQ,EACR,mBAAmB,EACnB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,gBAAgB;AACrB,6EAA6E;AAC7E,aAAa,EACb,KAAK,4BAA4B,EACjC,KAAK,iBAAiB,EACtB,KAAK,wBAAwB;AAC7B,8EAA8E;AAC9E,aAAa;AACb,6EAA6E;AAC7E,YAAY,EACZ,KAAK,cAAc;AACnB,6EAA6E;AAC7E,WAAW;AACX,kDAAkD;AAClD,UAAU;AACV,yDAAyD;AACzD,WAAW;AACX,8CAA8C;AAC9C,YAAY;AACZ,yDAAyD;AACzD,wBAAwB;AACxB,wDAAwD;AACxD,uBAAuB,EACvB,KAAK,UAAU,GAChB,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module @galaxy-tool-util/schema
|
|
3
|
+
*
|
|
4
|
+
* Effect Schema definitions for Galaxy tool parameter types and workflow models.
|
|
5
|
+
* Generates typed schemas that validate tool state and export to JSON Schema.
|
|
6
|
+
*/
|
|
7
|
+
export {
|
|
8
|
+
/** Build an Effect Schema for a tool parameter bundle at a given state representation. */
|
|
9
|
+
createFieldModel,
|
|
10
|
+
/** All valid state representation names. */
|
|
11
|
+
STATE_REPRESENTATIONS,
|
|
12
|
+
/** Check whether a parameter type has a registered schema generator. */
|
|
13
|
+
isParameterTypeRegistered,
|
|
14
|
+
/** Set of all parameter types with registered generators. */
|
|
15
|
+
registeredParameterTypes,
|
|
16
|
+
/** Check whether a validator type has a registered schema generator. */
|
|
17
|
+
isValidatorTypeRegistered,
|
|
18
|
+
/** Set of all validator types with registered generators. */
|
|
19
|
+
registeredValidatorTypes,
|
|
20
|
+
/** Extract the set of parameter types used in a tool bundle. */
|
|
21
|
+
collectParameterTypes,
|
|
22
|
+
/** Extract the set of validator types used in a tool bundle. */
|
|
23
|
+
collectValidatorTypes, } from "./schema/index.js";
|
|
24
|
+
export {
|
|
25
|
+
/** Union schema accepting any Galaxy workflow format (format2 or native). */
|
|
26
|
+
GalaxyWorkflowSchema,
|
|
27
|
+
/** Schema for raw native (.ga) Galaxy workflows. */
|
|
28
|
+
NativeGalaxyWorkflowSchema,
|
|
29
|
+
/** Normalize a raw format2 workflow — fills defaults, resolves implicit fields. */
|
|
30
|
+
normalizedFormat2, NormalizedFormat2WorkflowSchema, NormalizedFormat2StepSchema, NormalizedFormat2InputSchema, NormalizedFormat2OutputSchema, NormalizedFormat2StepInputSchema, NormalizedFormat2StepOutputSchema,
|
|
31
|
+
/** Normalize a raw native (.ga) workflow — fills defaults, resolves implicit fields. */
|
|
32
|
+
normalizedNative, NormalizedNativeWorkflowSchema, NormalizedNativeStepSchema, ToolReferenceSchema,
|
|
33
|
+
/** Merge step connection info into tool_state for validation. */
|
|
34
|
+
injectConnectionsIntoState,
|
|
35
|
+
/** Strip ConnectedValue markers from state using parameter tree. */
|
|
36
|
+
stripConnectedValues,
|
|
37
|
+
/** Flatten a nested parameter path to a dot-separated string. */
|
|
38
|
+
flatStatePath, keysStartingWith,
|
|
39
|
+
/** Convert repeat block inputs to arrays. */
|
|
40
|
+
repeatInputsToArray,
|
|
41
|
+
/** Resolve conditional parameter selections based on test values. */
|
|
42
|
+
selectWhichWhen,
|
|
43
|
+
/** Find ${...} replacement patterns in tool state values. */
|
|
44
|
+
scanForReplacements,
|
|
45
|
+
/** Normalize + async expand external subworkflow refs in a format2 workflow. */
|
|
46
|
+
expandedFormat2,
|
|
47
|
+
/** Normalize + async expand external subworkflow refs in a native workflow. */
|
|
48
|
+
expandedNative,
|
|
49
|
+
/** Check whether a string is a TRS (Tool Registry Service) URL. */
|
|
50
|
+
isTrsUrl, MAX_EXPANSION_DEPTH,
|
|
51
|
+
/** Scan native workflow tool_state for legacy parameter encoding signals. */
|
|
52
|
+
scanToolState,
|
|
53
|
+
/** Clean a workflow — strip stale keys, decode legacy tool_state encoding. */
|
|
54
|
+
cleanWorkflow,
|
|
55
|
+
/** Detect whether a workflow dict is native (.ga) or format2 (.gxwf.yml). */
|
|
56
|
+
detectFormat,
|
|
57
|
+
/** Lint context for tracking errors and warnings during workflow linting. */
|
|
58
|
+
LintContext,
|
|
59
|
+
/** Lint a native Galaxy workflow (.ga format). */
|
|
60
|
+
lintNative,
|
|
61
|
+
/** Lint a Format2 Galaxy workflow (.gxwf.yml format). */
|
|
62
|
+
lintFormat2,
|
|
63
|
+
/** Lint a workflow, auto-detecting format. */
|
|
64
|
+
lintWorkflow,
|
|
65
|
+
/** Lint best practices for a Format2 Galaxy workflow. */
|
|
66
|
+
lintBestPracticesFormat2,
|
|
67
|
+
/** Lint best practices for a native Galaxy workflow. */
|
|
68
|
+
lintBestPracticesNative, } from "./workflow/index.js";
|
|
69
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO;AACL,0FAA0F;AAC1F,gBAAgB;AAEhB,4CAA4C;AAC5C,qBAAqB;AACrB,wEAAwE;AACxE,yBAAyB;AACzB,6DAA6D;AAC7D,wBAAwB;AACxB,wEAAwE;AACxE,yBAAyB;AACzB,6DAA6D;AAC7D,wBAAwB;AACxB,gEAAgE;AAChE,qBAAqB;AACrB,gEAAgE;AAChE,qBAAqB,GAEtB,MAAM,mBAAmB,CAAC;AAE3B,OAAO;AAEL,6EAA6E;AAC7E,oBAAoB;AAEpB,oDAAoD;AACpD,0BAA0B;AAC1B,mFAAmF;AACnF,iBAAiB,EACjB,+BAA+B,EAC/B,2BAA2B,EAC3B,4BAA4B,EAC5B,6BAA6B,EAC7B,gCAAgC,EAChC,iCAAiC;AAOjC,wFAAwF;AACxF,gBAAgB,EAChB,8BAA8B,EAC9B,0BAA0B,EAC1B,mBAAmB;AAInB,iEAAiE;AACjE,0BAA0B;AAC1B,oEAAoE;AACpE,oBAAoB;AACpB,iEAAiE;AACjE,aAAa,EACb,gBAAgB;AAChB,6CAA6C;AAC7C,mBAAmB;AACnB,qEAAqE;AACrE,eAAe;AACf,6DAA6D;AAC7D,mBAAmB;AACnB,gFAAgF;AAChF,eAAe;AACf,+EAA+E;AAC/E,cAAc;AACd,mEAAmE;AACnE,QAAQ,EACR,mBAAmB;AAOnB,6EAA6E;AAC7E,aAAa;AAIb,8EAA8E;AAC9E,aAAa;AACb,6EAA6E;AAC7E,YAAY;AAEZ,6EAA6E;AAC7E,WAAW;AACX,kDAAkD;AAClD,UAAU;AACV,yDAAyD;AACzD,WAAW;AACX,8CAA8C;AAC9C,YAAY;AACZ,yDAAyD;AACzD,wBAAwB;AACxB,wDAAwD;AACxD,uBAAuB,GAExB,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeScript types for the serialized ToolParameterBundleModel JSON
|
|
3
|
+
* produced by Python's model_dump(). These are trusted input — no runtime
|
|
4
|
+
* validation, just type definitions for the shape of the data.
|
|
5
|
+
*/
|
|
6
|
+
export interface BaseGalaxyParameterModel {
|
|
7
|
+
name: string;
|
|
8
|
+
parameter_type: string;
|
|
9
|
+
type: string;
|
|
10
|
+
hidden: boolean;
|
|
11
|
+
label: string | null;
|
|
12
|
+
help: string | null;
|
|
13
|
+
argument: string | null;
|
|
14
|
+
is_dynamic: boolean;
|
|
15
|
+
optional: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface InRangeValidatorModel {
|
|
18
|
+
type: "in_range";
|
|
19
|
+
min?: number | null;
|
|
20
|
+
max?: number | null;
|
|
21
|
+
exclude_min: boolean;
|
|
22
|
+
exclude_max: boolean;
|
|
23
|
+
negate: boolean;
|
|
24
|
+
implicit?: boolean;
|
|
25
|
+
message?: string | null;
|
|
26
|
+
}
|
|
27
|
+
export interface RegexValidatorModel {
|
|
28
|
+
type: "regex";
|
|
29
|
+
expression: string;
|
|
30
|
+
negate: boolean;
|
|
31
|
+
}
|
|
32
|
+
export interface LengthValidatorModel {
|
|
33
|
+
type: "length";
|
|
34
|
+
min?: number | null;
|
|
35
|
+
max?: number | null;
|
|
36
|
+
negate: boolean;
|
|
37
|
+
}
|
|
38
|
+
export interface ExpressionValidatorModel {
|
|
39
|
+
type: "expression";
|
|
40
|
+
expression: string;
|
|
41
|
+
negate: boolean;
|
|
42
|
+
}
|
|
43
|
+
export interface EmptyFieldValidatorModel {
|
|
44
|
+
type: "empty_field";
|
|
45
|
+
negate: boolean;
|
|
46
|
+
}
|
|
47
|
+
export interface NoOptionsValidatorModel {
|
|
48
|
+
type: "no_options";
|
|
49
|
+
negate: boolean;
|
|
50
|
+
}
|
|
51
|
+
export type ValidatorModel = InRangeValidatorModel | RegexValidatorModel | LengthValidatorModel | ExpressionValidatorModel | EmptyFieldValidatorModel | NoOptionsValidatorModel;
|
|
52
|
+
export interface IntegerParameterModel extends BaseGalaxyParameterModel {
|
|
53
|
+
parameter_type: "gx_integer";
|
|
54
|
+
type: "integer";
|
|
55
|
+
value: number | null;
|
|
56
|
+
min: number | null;
|
|
57
|
+
max: number | null;
|
|
58
|
+
validators: InRangeValidatorModel[];
|
|
59
|
+
}
|
|
60
|
+
export interface FloatParameterModel extends BaseGalaxyParameterModel {
|
|
61
|
+
parameter_type: "gx_float";
|
|
62
|
+
type: "float";
|
|
63
|
+
value: number | null;
|
|
64
|
+
min: number | null;
|
|
65
|
+
max: number | null;
|
|
66
|
+
validators: InRangeValidatorModel[];
|
|
67
|
+
}
|
|
68
|
+
export interface TextParameterModel extends BaseGalaxyParameterModel {
|
|
69
|
+
parameter_type: "gx_text";
|
|
70
|
+
type: "text";
|
|
71
|
+
area: boolean;
|
|
72
|
+
value: string | null;
|
|
73
|
+
default_options: LabelValue[];
|
|
74
|
+
validators: (RegexValidatorModel | LengthValidatorModel | ExpressionValidatorModel | EmptyFieldValidatorModel)[];
|
|
75
|
+
}
|
|
76
|
+
export interface BooleanParameterModel extends BaseGalaxyParameterModel {
|
|
77
|
+
parameter_type: "gx_boolean";
|
|
78
|
+
type: "boolean";
|
|
79
|
+
value: boolean;
|
|
80
|
+
truevalue: string | null;
|
|
81
|
+
falsevalue: string | null;
|
|
82
|
+
}
|
|
83
|
+
export interface LabelValue {
|
|
84
|
+
label: string;
|
|
85
|
+
value: string;
|
|
86
|
+
selected: boolean;
|
|
87
|
+
}
|
|
88
|
+
export interface SelectParameterModel extends BaseGalaxyParameterModel {
|
|
89
|
+
parameter_type: "gx_select";
|
|
90
|
+
type: "select";
|
|
91
|
+
multiple: boolean;
|
|
92
|
+
options: LabelValue[] | null;
|
|
93
|
+
validators: ValidatorModel[];
|
|
94
|
+
}
|
|
95
|
+
export interface ColorParameterModel extends BaseGalaxyParameterModel {
|
|
96
|
+
parameter_type: "gx_color";
|
|
97
|
+
type: "color";
|
|
98
|
+
value: string;
|
|
99
|
+
}
|
|
100
|
+
export interface HiddenParameterModel extends BaseGalaxyParameterModel {
|
|
101
|
+
parameter_type: "gx_hidden";
|
|
102
|
+
type: "hidden";
|
|
103
|
+
value: string | null;
|
|
104
|
+
validators: (RegexValidatorModel | LengthValidatorModel | ExpressionValidatorModel | EmptyFieldValidatorModel)[];
|
|
105
|
+
}
|
|
106
|
+
export interface DirectoryUriParameterModel extends BaseGalaxyParameterModel {
|
|
107
|
+
parameter_type: "gx_directory_uri";
|
|
108
|
+
type: "directory_uri";
|
|
109
|
+
value: string | null;
|
|
110
|
+
validators: ValidatorModel[];
|
|
111
|
+
}
|
|
112
|
+
export interface GenomeBuildParameterModel extends BaseGalaxyParameterModel {
|
|
113
|
+
parameter_type: "gx_genomebuild";
|
|
114
|
+
type: "genomebuild";
|
|
115
|
+
multiple: boolean;
|
|
116
|
+
options: LabelValue[];
|
|
117
|
+
}
|
|
118
|
+
export interface BaseUrlParameterModel extends BaseGalaxyParameterModel {
|
|
119
|
+
parameter_type: "gx_baseurl";
|
|
120
|
+
type: "baseurl";
|
|
121
|
+
value: string | null;
|
|
122
|
+
}
|
|
123
|
+
export interface DrillDownParameterModel extends BaseGalaxyParameterModel {
|
|
124
|
+
parameter_type: "gx_drill_down";
|
|
125
|
+
type: "drill_down";
|
|
126
|
+
multiple: boolean;
|
|
127
|
+
options: DrillDownOption[];
|
|
128
|
+
hierarchy: "exact" | "recurse";
|
|
129
|
+
}
|
|
130
|
+
export interface DrillDownOption {
|
|
131
|
+
value: string;
|
|
132
|
+
name: string;
|
|
133
|
+
options: DrillDownOption[];
|
|
134
|
+
selected: boolean;
|
|
135
|
+
}
|
|
136
|
+
export interface DataColumnParameterModel extends BaseGalaxyParameterModel {
|
|
137
|
+
parameter_type: "gx_data_column";
|
|
138
|
+
type: "data_column";
|
|
139
|
+
multiple: boolean;
|
|
140
|
+
value: number | number[] | null;
|
|
141
|
+
}
|
|
142
|
+
export interface GroupTagParameterModel extends BaseGalaxyParameterModel {
|
|
143
|
+
parameter_type: "gx_group_tag";
|
|
144
|
+
type: "group_tag";
|
|
145
|
+
multiple: boolean;
|
|
146
|
+
}
|
|
147
|
+
export interface DataParameterModel extends BaseGalaxyParameterModel {
|
|
148
|
+
parameter_type: "gx_data";
|
|
149
|
+
type: "data";
|
|
150
|
+
multiple: boolean;
|
|
151
|
+
extensions: string[];
|
|
152
|
+
}
|
|
153
|
+
export interface DataCollectionParameterModel extends BaseGalaxyParameterModel {
|
|
154
|
+
parameter_type: "gx_data_collection";
|
|
155
|
+
type: "data_collection";
|
|
156
|
+
collection_type: string | null;
|
|
157
|
+
extensions: string[];
|
|
158
|
+
value: unknown;
|
|
159
|
+
}
|
|
160
|
+
export interface RulesParameterModel extends BaseGalaxyParameterModel {
|
|
161
|
+
parameter_type: "gx_rules";
|
|
162
|
+
type: "rules";
|
|
163
|
+
}
|
|
164
|
+
export interface ConditionalWhen {
|
|
165
|
+
discriminator: string | boolean;
|
|
166
|
+
parameters: ToolParameterModel[];
|
|
167
|
+
is_default_when: boolean;
|
|
168
|
+
}
|
|
169
|
+
interface ContainerBaseFields {
|
|
170
|
+
name: string;
|
|
171
|
+
hidden: boolean;
|
|
172
|
+
label: string | null;
|
|
173
|
+
help: string | null;
|
|
174
|
+
argument: string | null;
|
|
175
|
+
is_dynamic: boolean;
|
|
176
|
+
}
|
|
177
|
+
export interface ConditionalParameterModel extends ContainerBaseFields {
|
|
178
|
+
parameter_type: "gx_conditional";
|
|
179
|
+
test_parameter: BooleanParameterModel | SelectParameterModel;
|
|
180
|
+
whens: ConditionalWhen[];
|
|
181
|
+
}
|
|
182
|
+
export interface RepeatParameterModel extends ContainerBaseFields {
|
|
183
|
+
parameter_type: "gx_repeat";
|
|
184
|
+
parameters: ToolParameterModel[];
|
|
185
|
+
min: number | null;
|
|
186
|
+
max: number | null;
|
|
187
|
+
}
|
|
188
|
+
export interface SectionParameterModel extends ContainerBaseFields {
|
|
189
|
+
parameter_type: "gx_section";
|
|
190
|
+
parameters: ToolParameterModel[];
|
|
191
|
+
}
|
|
192
|
+
export interface CwlIntegerParameterModel {
|
|
193
|
+
parameter_type: "cwl_integer";
|
|
194
|
+
name: string;
|
|
195
|
+
optional: boolean;
|
|
196
|
+
}
|
|
197
|
+
export interface CwlFloatParameterModel {
|
|
198
|
+
parameter_type: "cwl_float";
|
|
199
|
+
name: string;
|
|
200
|
+
optional: boolean;
|
|
201
|
+
}
|
|
202
|
+
export interface CwlStringParameterModel {
|
|
203
|
+
parameter_type: "cwl_string";
|
|
204
|
+
name: string;
|
|
205
|
+
optional: boolean;
|
|
206
|
+
}
|
|
207
|
+
export interface CwlBooleanParameterModel {
|
|
208
|
+
parameter_type: "cwl_boolean";
|
|
209
|
+
name: string;
|
|
210
|
+
optional: boolean;
|
|
211
|
+
}
|
|
212
|
+
export interface CwlFileParameterModel {
|
|
213
|
+
parameter_type: "cwl_file";
|
|
214
|
+
name: string;
|
|
215
|
+
optional: boolean;
|
|
216
|
+
}
|
|
217
|
+
export interface CwlDirectoryParameterModel {
|
|
218
|
+
parameter_type: "cwl_directory";
|
|
219
|
+
name: string;
|
|
220
|
+
optional: boolean;
|
|
221
|
+
}
|
|
222
|
+
export interface CwlNullParameterModel {
|
|
223
|
+
parameter_type: "cwl_null";
|
|
224
|
+
name: string;
|
|
225
|
+
}
|
|
226
|
+
export interface CwlUnionParameterModel {
|
|
227
|
+
parameter_type: "cwl_union";
|
|
228
|
+
name: string;
|
|
229
|
+
parameters: ToolParameterModel[];
|
|
230
|
+
}
|
|
231
|
+
export type GalaxyParameterModel = IntegerParameterModel | FloatParameterModel | TextParameterModel | BooleanParameterModel | SelectParameterModel | ColorParameterModel | HiddenParameterModel | DirectoryUriParameterModel | GenomeBuildParameterModel | BaseUrlParameterModel | DrillDownParameterModel | DataColumnParameterModel | GroupTagParameterModel | DataParameterModel | DataCollectionParameterModel | RulesParameterModel;
|
|
232
|
+
export type ContainerParameterModel = ConditionalParameterModel | RepeatParameterModel | SectionParameterModel;
|
|
233
|
+
export type CwlParameterModel = CwlIntegerParameterModel | CwlFloatParameterModel | CwlStringParameterModel | CwlBooleanParameterModel | CwlFileParameterModel | CwlDirectoryParameterModel | CwlNullParameterModel | CwlUnionParameterModel;
|
|
234
|
+
export type ToolParameterModel = GalaxyParameterModel | ContainerParameterModel | CwlParameterModel;
|
|
235
|
+
export interface ToolParameterBundleModel {
|
|
236
|
+
parameters: ToolParameterModel[];
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Extract all parameter_type values from a bundle (including nested).
|
|
240
|
+
* Used by test harness skip logic.
|
|
241
|
+
*/
|
|
242
|
+
export declare function collectParameterTypes(bundle: ToolParameterBundleModel): Set<string>;
|
|
243
|
+
/**
|
|
244
|
+
* Extract all validator type values from a bundle (including nested).
|
|
245
|
+
* Used by test harness skip logic.
|
|
246
|
+
*/
|
|
247
|
+
export declare function collectValidatorTypes(bundle: ToolParameterBundleModel): Set<string>;
|
|
248
|
+
export {};
|
|
249
|
+
//# sourceMappingURL=bundle-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundle-types.d.ts","sourceRoot":"","sources":["../../src/schema/bundle-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeScript types for the serialized ToolParameterBundleModel JSON
|
|
3
|
+
* produced by Python's model_dump(). These are trusted input — no runtime
|
|
4
|
+
* validation, just type definitions for the shape of the data.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Extract all parameter_type values from a bundle (including nested).
|
|
8
|
+
* Used by test harness skip logic.
|
|
9
|
+
*/
|
|
10
|
+
export function collectParameterTypes(bundle) {
|
|
11
|
+
const types = new Set();
|
|
12
|
+
function walk(params) {
|
|
13
|
+
for (const p of params) {
|
|
14
|
+
types.add(p.parameter_type);
|
|
15
|
+
if (p.parameter_type === "gx_conditional") {
|
|
16
|
+
const cond = p;
|
|
17
|
+
types.add(cond.test_parameter.parameter_type);
|
|
18
|
+
for (const when of cond.whens) {
|
|
19
|
+
walk(when.parameters);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
else if (p.parameter_type === "gx_repeat" || p.parameter_type === "gx_section") {
|
|
23
|
+
walk(p.parameters);
|
|
24
|
+
}
|
|
25
|
+
else if (p.parameter_type === "cwl_union") {
|
|
26
|
+
walk(p.parameters);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
walk(bundle.parameters);
|
|
31
|
+
return types;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Extract all validator type values from a bundle (including nested).
|
|
35
|
+
* Used by test harness skip logic.
|
|
36
|
+
*/
|
|
37
|
+
export function collectValidatorTypes(bundle) {
|
|
38
|
+
const types = new Set();
|
|
39
|
+
function walk(params) {
|
|
40
|
+
for (const p of params) {
|
|
41
|
+
if ("validators" in p && Array.isArray(p.validators)) {
|
|
42
|
+
for (const v of p.validators) {
|
|
43
|
+
types.add(v.type);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
// Also check min/max on integer/float — these imply in_range
|
|
47
|
+
if (p.parameter_type === "gx_integer" || p.parameter_type === "gx_float") {
|
|
48
|
+
const num = p;
|
|
49
|
+
if (num.min !== null || num.max !== null) {
|
|
50
|
+
types.add("in_range");
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
if (p.parameter_type === "gx_conditional") {
|
|
54
|
+
const cond = p;
|
|
55
|
+
// Check test_parameter for validators too
|
|
56
|
+
const tp = cond.test_parameter;
|
|
57
|
+
if ("validators" in tp && Array.isArray(tp.validators)) {
|
|
58
|
+
for (const v of tp.validators) {
|
|
59
|
+
types.add(v.type);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
for (const when of cond.whens) {
|
|
63
|
+
walk(when.parameters);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
else if (p.parameter_type === "gx_repeat" || p.parameter_type === "gx_section") {
|
|
67
|
+
walk(p.parameters);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
walk(bundle.parameters);
|
|
72
|
+
return types;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=bundle-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundle-types.js","sourceRoot":"","sources":["../../src/schema/bundle-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { createFieldModel } from "./model-factory.js";
|
|
2
|
+
export { type StateRepresentation, STATE_REPRESENTATIONS } from "./state-representations.js";
|
|
3
|
+
export { isParameterTypeRegistered, registeredParameterTypes } from "./parameters/index.js";
|
|
4
|
+
export { isValidatorTypeRegistered, registeredValidatorTypes } from "./validators/index.js";
|
|
5
|
+
export { collectParameterTypes, collectValidatorTypes, type ToolParameterBundleModel, } from "./bundle-types.js";
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,KAAK,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAC7F,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAC5F,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAC5F,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,KAAK,wBAAwB,GAC9B,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { createFieldModel } from "./model-factory.js";
|
|
2
|
+
export { STATE_REPRESENTATIONS } from "./state-representations.js";
|
|
3
|
+
export { isParameterTypeRegistered, registeredParameterTypes } from "./parameters/index.js";
|
|
4
|
+
export { isValidatorTypeRegistered, registeredValidatorTypes } from "./validators/index.js";
|
|
5
|
+
export { collectParameterTypes, collectValidatorTypes, } from "./bundle-types.js";
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAA4B,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAC7F,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAC5F,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAC5F,OAAO,EACL,qBAAqB,EACrB,qBAAqB,GAEtB,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as S from "effect/Schema";
|
|
2
|
+
import type { ToolParameterBundleModel } from "./bundle-types.js";
|
|
3
|
+
import type { StateRepresentation } from "./state-representations.js";
|
|
4
|
+
/** ConnectedValue + RuntimeValue union — used in workflow_step_native */
|
|
5
|
+
export declare const ConnectedOrRuntimeValueSchema: S.Schema.Any;
|
|
6
|
+
/**
|
|
7
|
+
* Build an Effect Schema for a tool parameter bundle at a given state representation.
|
|
8
|
+
* Analogous to Python's create_field_model().
|
|
9
|
+
*
|
|
10
|
+
* Returns undefined if any parameter type lacks a registered generator
|
|
11
|
+
* (caller should skip/handle gracefully).
|
|
12
|
+
*/
|
|
13
|
+
export declare function createFieldModel(bundle: ToolParameterBundleModel, stateRep: StateRepresentation): S.Schema.Any | undefined;
|
|
14
|
+
//# sourceMappingURL=model-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-factory.d.ts","sourceRoot":"","sources":["../../src/schema/model-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,eAAe,CAAC;AACnC,OAAO,KAAK,EAAE,wBAAwB,EAAsB,MAAM,mBAAmB,CAAC;AACtF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAetE,yEAAyE;AACzE,eAAO,MAAM,6BAA6B,EAAE,CAAC,CAAC,MAAM,CAAC,GAGpD,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,wBAAwB,EAChC,QAAQ,EAAE,mBAAmB,GAC5B,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,SAAS,CAI1B"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import * as S from "effect/Schema";
|
|
2
|
+
import { allowsConnectedValue, allowsConnectedOrRuntimeValue } from "./state-representations.js";
|
|
3
|
+
import { getParameterGenerator } from "./parameters/registry.js";
|
|
4
|
+
/** Schema for Galaxy's ConnectedValue marker — used in workflow_step_linked */
|
|
5
|
+
const ConnectedValueSchema = S.Struct({
|
|
6
|
+
__class__: S.Literal("ConnectedValue"),
|
|
7
|
+
});
|
|
8
|
+
/** Schema for Galaxy's RuntimeValue marker — used in workflow_step_native */
|
|
9
|
+
const RuntimeValueSchema = S.Struct({
|
|
10
|
+
__class__: S.Literal("RuntimeValue"),
|
|
11
|
+
});
|
|
12
|
+
/** ConnectedValue + RuntimeValue union — used in workflow_step_native */
|
|
13
|
+
export const ConnectedOrRuntimeValueSchema = S.Union(ConnectedValueSchema, RuntimeValueSchema);
|
|
14
|
+
/**
|
|
15
|
+
* Build an Effect Schema for a tool parameter bundle at a given state representation.
|
|
16
|
+
* Analogous to Python's create_field_model().
|
|
17
|
+
*
|
|
18
|
+
* Returns undefined if any parameter type lacks a registered generator
|
|
19
|
+
* (caller should skip/handle gracefully).
|
|
20
|
+
*/
|
|
21
|
+
export function createFieldModel(bundle, stateRep) {
|
|
22
|
+
const infos = buildSchemaInfos(bundle.parameters, stateRep);
|
|
23
|
+
if (infos === undefined)
|
|
24
|
+
return undefined;
|
|
25
|
+
return assembleStruct(infos);
|
|
26
|
+
}
|
|
27
|
+
/** Shared context passed to all generators, enabling container recursion. */
|
|
28
|
+
const generatorContext = {
|
|
29
|
+
buildChildSchema(params, stateRep) {
|
|
30
|
+
const infos = buildSchemaInfos(params, stateRep);
|
|
31
|
+
if (infos === undefined)
|
|
32
|
+
return undefined;
|
|
33
|
+
return assembleStruct(infos);
|
|
34
|
+
},
|
|
35
|
+
buildChildSchemaInfos(params, stateRep) {
|
|
36
|
+
return buildSchemaInfos(params, stateRep);
|
|
37
|
+
},
|
|
38
|
+
assembleStruct(infos) {
|
|
39
|
+
return assembleStruct(infos);
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Build DynamicSchemaInfo for each parameter. Returns undefined if any
|
|
44
|
+
* parameter type is unregistered.
|
|
45
|
+
*/
|
|
46
|
+
function buildSchemaInfos(params, stateRep) {
|
|
47
|
+
const infos = [];
|
|
48
|
+
const wrapConnected = allowsConnectedValue(stateRep);
|
|
49
|
+
const wrapNative = allowsConnectedOrRuntimeValue(stateRep);
|
|
50
|
+
for (const param of params) {
|
|
51
|
+
const generator = getParameterGenerator(param.parameter_type);
|
|
52
|
+
if (!generator)
|
|
53
|
+
return undefined;
|
|
54
|
+
const info = generator(param, stateRep, generatorContext);
|
|
55
|
+
// For workflow_step_linked, add ConnectedValue as alternative value
|
|
56
|
+
// (unless generator already handled it, e.g. for array types)
|
|
57
|
+
if (wrapConnected && !info.connectedValueHandled) {
|
|
58
|
+
info.schema = S.Union(info.schema, ConnectedValueSchema);
|
|
59
|
+
}
|
|
60
|
+
// For workflow_step_native, add ConnectedValue+RuntimeValue as alternative
|
|
61
|
+
// (unless generator already handled it)
|
|
62
|
+
if (wrapNative && !info.connectedValueHandled) {
|
|
63
|
+
info.schema = S.Union(info.schema, ConnectedOrRuntimeValueSchema);
|
|
64
|
+
}
|
|
65
|
+
infos.push(info);
|
|
66
|
+
}
|
|
67
|
+
return infos;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Assemble DynamicSchemaInfo[] into an Effect Schema struct with extra="forbid" semantics.
|
|
71
|
+
*/
|
|
72
|
+
function assembleStruct(infos) {
|
|
73
|
+
const fields = {};
|
|
74
|
+
for (const info of infos) {
|
|
75
|
+
let field;
|
|
76
|
+
if (info.isOptional) {
|
|
77
|
+
field = S.optional(info.schema);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
field = info.schema;
|
|
81
|
+
}
|
|
82
|
+
// Apply key aliasing for _-prefixed params (safe_field_name escaping)
|
|
83
|
+
if (info.alias) {
|
|
84
|
+
if (!info.isOptional) {
|
|
85
|
+
// Non-optional fields are plain Schema — wrap as PropertySignature first
|
|
86
|
+
field = S.propertySignature(field).pipe(S.fromKey(info.alias));
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
field = field.pipe(S.fromKey(info.alias));
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
fields[info.name] = field;
|
|
93
|
+
}
|
|
94
|
+
return S.Struct(fields);
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=model-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-factory.js","sourceRoot":"","sources":["../../src/schema/model-factory.ts"],"names":[],"mappings":"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"}
|