@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gx-section.js","sourceRoot":"","sources":["../../../src/schema/parameters/gx-section.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,EACb,iBAAiB,GAGlB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD,SAAS,qBAAqB,CAC5B,KAAc,EACd,QAA6B,EAC7B,GAAqB;IAErB,MAAM,CAAC,GAAG,KAA8B,CAAC;IACzC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAE9C,MAAM,UAAU,GAAG,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACrE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAE9C,0DAA0D;IAC1D,MAAM,gBAAgB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IAEjE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAC7C,CAAC;AAED,qBAAqB,CAAC,YAAY,EAAE,qBAAqB,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gx-select.d.ts","sourceRoot":"","sources":["../../../src/schema/parameters/gx-select.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import * as S from "effect/Schema";
|
|
2
|
+
import { allowsConnectedValue, allowsConnectedOrRuntimeValue } from "../state-representations.js";
|
|
3
|
+
import { ConnectedOrRuntimeValueSchema } from "../model-factory.js";
|
|
4
|
+
import { safeFieldName, computeIsOptional, } from "./base.js";
|
|
5
|
+
import { registerParameterType } from "./registry.js";
|
|
6
|
+
function generateSelectSchema(param, stateRep, _ctx) {
|
|
7
|
+
const p = param;
|
|
8
|
+
const { name, alias } = safeFieldName(p.name);
|
|
9
|
+
// Build literal union from static options
|
|
10
|
+
let valueSchema;
|
|
11
|
+
if (p.options && p.options.length > 0) {
|
|
12
|
+
const literals = p.options.map((o) => S.Literal(o.value));
|
|
13
|
+
valueSchema = S.Union(...literals);
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
// Dynamic options — accept any string
|
|
17
|
+
valueSchema = S.String;
|
|
18
|
+
}
|
|
19
|
+
let schema;
|
|
20
|
+
let connectedValueHandled = false;
|
|
21
|
+
if (allowsConnectedOrRuntimeValue(stateRep)) {
|
|
22
|
+
// Native: multiple selects can also be comma-delimited strings
|
|
23
|
+
if (p.multiple) {
|
|
24
|
+
schema = S.Union(S.Array(valueSchema), S.String);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
schema = valueSchema;
|
|
28
|
+
}
|
|
29
|
+
if (p.optional || p.multiple) {
|
|
30
|
+
schema = S.NullOr(schema);
|
|
31
|
+
}
|
|
32
|
+
schema = S.Union(schema, ConnectedOrRuntimeValueSchema);
|
|
33
|
+
connectedValueHandled = true;
|
|
34
|
+
}
|
|
35
|
+
else if (p.multiple) {
|
|
36
|
+
// multiple: array of valid values, or null
|
|
37
|
+
let itemSchema = valueSchema;
|
|
38
|
+
// For workflow_step_linked, ConnectedValue is an array item alternative
|
|
39
|
+
if (allowsConnectedValue(stateRep)) {
|
|
40
|
+
const cv = S.Struct({ __class__: S.Literal("ConnectedValue") });
|
|
41
|
+
itemSchema = S.Union(valueSchema, cv);
|
|
42
|
+
connectedValueHandled = true;
|
|
43
|
+
}
|
|
44
|
+
if (stateRep === "test_case_xml") {
|
|
45
|
+
// test_case_xml also accepts comma-separated string
|
|
46
|
+
schema = S.Union(S.NullOr(S.Array(valueSchema)), S.String);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
schema = S.NullOr(S.Array(itemSchema));
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
else if (p.optional) {
|
|
53
|
+
schema = S.NullOr(valueSchema);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
schema = valueSchema;
|
|
57
|
+
}
|
|
58
|
+
// select always has a default (first option or explicit), so not request-requires
|
|
59
|
+
const isOptional = computeIsOptional(stateRep, false);
|
|
60
|
+
return { name, alias, schema, isOptional, connectedValueHandled };
|
|
61
|
+
}
|
|
62
|
+
registerParameterType("gx_select", generateSelectSchema);
|
|
63
|
+
//# sourceMappingURL=gx-select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gx-select.js","sourceRoot":"","sources":["../../../src/schema/parameters/gx-select.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gx-text.d.ts","sourceRoot":"","sources":["../../../src/schema/parameters/gx-text.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as S from "effect/Schema";
|
|
2
|
+
import { safeFieldName, computeIsOptional, } from "./base.js";
|
|
3
|
+
import { registerParameterType } from "./registry.js";
|
|
4
|
+
import { applyValidators } from "../validators/registry.js";
|
|
5
|
+
function generateTextSchema(param, stateRep, _ctx) {
|
|
6
|
+
const p = param;
|
|
7
|
+
const { name, alias } = safeFieldName(p.name);
|
|
8
|
+
let schema = S.String;
|
|
9
|
+
// Apply validators to the string before nullable wrapping
|
|
10
|
+
schema = applyValidators(schema, p.validators);
|
|
11
|
+
// gx_text is typically optional=true with null default.
|
|
12
|
+
// relaxed_request always allows null for text fields.
|
|
13
|
+
if (p.optional || stateRep === "relaxed_request") {
|
|
14
|
+
schema = S.NullOr(schema);
|
|
15
|
+
}
|
|
16
|
+
// request_requires_value: !optional && value === null
|
|
17
|
+
const requestRequiresValue = !p.optional && p.value === null;
|
|
18
|
+
const isOptional = computeIsOptional(stateRep, requestRequiresValue);
|
|
19
|
+
return { name, alias, schema, isOptional };
|
|
20
|
+
}
|
|
21
|
+
registerParameterType("gx_text", generateTextSchema);
|
|
22
|
+
//# sourceMappingURL=gx-text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gx-text.js","sourceRoot":"","sources":["../../../src/schema/parameters/gx-text.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,eAAe,CAAC;AAGnC,OAAO,EACL,aAAa,EACb,iBAAiB,GAGlB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,SAAS,kBAAkB,CACzB,KAAc,EACd,QAA6B,EAC7B,IAAsB;IAEtB,MAAM,CAAC,GAAG,KAA2B,CAAC;IACtC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAE9C,IAAI,MAAM,GAAiB,CAAC,CAAC,MAAM,CAAC;IAEpC,0DAA0D;IAC1D,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;IAE/C,wDAAwD;IACxD,sDAAsD;IACtD,IAAI,CAAC,CAAC,QAAQ,IAAI,QAAQ,KAAK,iBAAiB,EAAE,CAAC;QACjD,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,sDAAsD;IACtD,MAAM,oBAAoB,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;IAC7D,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;IAErE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAC7C,CAAC;AAED,qBAAqB,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export { registerParameterType, getParameterGenerator, isParameterTypeRegistered, registeredParameterTypes, } from "./registry.js";
|
|
2
|
+
import "./gx-integer.js";
|
|
3
|
+
import "./gx-float.js";
|
|
4
|
+
import "./gx-boolean.js";
|
|
5
|
+
import "./gx-text.js";
|
|
6
|
+
import "./gx-color.js";
|
|
7
|
+
import "./gx-hidden.js";
|
|
8
|
+
import "./gx-select.js";
|
|
9
|
+
import "./gx-directory-uri.js";
|
|
10
|
+
import "./gx-genomebuild.js";
|
|
11
|
+
import "./gx-baseurl.js";
|
|
12
|
+
import "./gx-conditional.js";
|
|
13
|
+
import "./gx-section.js";
|
|
14
|
+
import "./gx-repeat.js";
|
|
15
|
+
import "./gx-drill-down.js";
|
|
16
|
+
import "./gx-data.js";
|
|
17
|
+
import "./gx-data-collection.js";
|
|
18
|
+
import "./gx-data-column.js";
|
|
19
|
+
import "./gx-group-tag.js";
|
|
20
|
+
import "./gx-rules.js";
|
|
21
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/schema/parameters/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,eAAe,CAAC;AAIvB,OAAO,iBAAiB,CAAC;AACzB,OAAO,eAAe,CAAC;AACvB,OAAO,iBAAiB,CAAC;AACzB,OAAO,cAAc,CAAC;AACtB,OAAO,eAAe,CAAC;AACvB,OAAO,gBAAgB,CAAC;AACxB,OAAO,gBAAgB,CAAC;AACxB,OAAO,uBAAuB,CAAC;AAC/B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,iBAAiB,CAAC;AACzB,OAAO,qBAAqB,CAAC;AAC7B,OAAO,iBAAiB,CAAC;AACzB,OAAO,gBAAgB,CAAC;AACxB,OAAO,oBAAoB,CAAC;AAC5B,OAAO,cAAc,CAAC;AACtB,OAAO,yBAAyB,CAAC;AACjC,OAAO,qBAAqB,CAAC;AAC7B,OAAO,mBAAmB,CAAC;AAC3B,OAAO,eAAe,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// Re-export registry functions
|
|
2
|
+
export { registerParameterType, getParameterGenerator, isParameterTypeRegistered, registeredParameterTypes, } from "./registry.js";
|
|
3
|
+
// Import parameter type modules here to trigger registration.
|
|
4
|
+
// Each module calls registerParameterType() at import time.
|
|
5
|
+
import "./gx-integer.js";
|
|
6
|
+
import "./gx-float.js";
|
|
7
|
+
import "./gx-boolean.js";
|
|
8
|
+
import "./gx-text.js";
|
|
9
|
+
import "./gx-color.js";
|
|
10
|
+
import "./gx-hidden.js";
|
|
11
|
+
import "./gx-select.js";
|
|
12
|
+
import "./gx-directory-uri.js";
|
|
13
|
+
import "./gx-genomebuild.js";
|
|
14
|
+
import "./gx-baseurl.js";
|
|
15
|
+
import "./gx-conditional.js";
|
|
16
|
+
import "./gx-section.js";
|
|
17
|
+
import "./gx-repeat.js";
|
|
18
|
+
import "./gx-drill-down.js";
|
|
19
|
+
import "./gx-data.js";
|
|
20
|
+
import "./gx-data-collection.js";
|
|
21
|
+
import "./gx-data-column.js";
|
|
22
|
+
import "./gx-group-tag.js";
|
|
23
|
+
import "./gx-rules.js";
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/schema/parameters/index.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,eAAe,CAAC;AAEvB,8DAA8D;AAC9D,4DAA4D;AAC5D,OAAO,iBAAiB,CAAC;AACzB,OAAO,eAAe,CAAC;AACvB,OAAO,iBAAiB,CAAC;AACzB,OAAO,cAAc,CAAC;AACtB,OAAO,eAAe,CAAC;AACvB,OAAO,gBAAgB,CAAC;AACxB,OAAO,gBAAgB,CAAC;AACxB,OAAO,uBAAuB,CAAC;AAC/B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,iBAAiB,CAAC;AACzB,OAAO,qBAAqB,CAAC;AAC7B,OAAO,iBAAiB,CAAC;AACzB,OAAO,gBAAgB,CAAC;AACxB,OAAO,oBAAoB,CAAC;AAC5B,OAAO,cAAc,CAAC;AACtB,OAAO,yBAAyB,CAAC;AACjC,OAAO,qBAAqB,CAAC;AAC7B,OAAO,mBAAmB,CAAC;AAC3B,OAAO,eAAe,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ParameterSchemaGenerator } from "./base.js";
|
|
2
|
+
export declare function registerParameterType(parameterType: string, generator: ParameterSchemaGenerator): void;
|
|
3
|
+
export declare function getParameterGenerator(parameterType: string): ParameterSchemaGenerator | undefined;
|
|
4
|
+
export declare function isParameterTypeRegistered(parameterType: string): boolean;
|
|
5
|
+
export declare function registeredParameterTypes(): ReadonlySet<string>;
|
|
6
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/schema/parameters/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAQ1D,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,wBAAwB,GAClC,IAAI,CAEN;AAED,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,wBAAwB,GAAG,SAAS,CAEjG;AAED,wBAAgB,yBAAyB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAExE;AAED,wBAAgB,wBAAwB,IAAI,WAAW,CAAC,MAAM,CAAC,CAE9D"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Registry mapping parameter_type strings to their schema generators.
|
|
3
|
+
* Separated from index.ts to avoid circular initialization with generator modules.
|
|
4
|
+
*/
|
|
5
|
+
const registry = new Map();
|
|
6
|
+
export function registerParameterType(parameterType, generator) {
|
|
7
|
+
registry.set(parameterType, generator);
|
|
8
|
+
}
|
|
9
|
+
export function getParameterGenerator(parameterType) {
|
|
10
|
+
return registry.get(parameterType);
|
|
11
|
+
}
|
|
12
|
+
export function isParameterTypeRegistered(parameterType) {
|
|
13
|
+
return registry.has(parameterType);
|
|
14
|
+
}
|
|
15
|
+
export function registeredParameterTypes() {
|
|
16
|
+
return new Set(registry.keys());
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/schema/parameters/registry.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoC,CAAC;AAE7D,MAAM,UAAU,qBAAqB,CACnC,aAAqB,EACrB,SAAmC;IAEnC,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,aAAqB;IACzD,OAAO,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,aAAqB;IAC7D,OAAO,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,OAAO,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare const STATE_REPRESENTATIONS: readonly ["request", "relaxed_request", "request_internal", "request_internal_dereferenced", "landing_request", "landing_request_internal", "job_internal", "job_runtime", "test_case_xml", "test_case_json", "workflow_step", "workflow_step_linked", "workflow_step_native"];
|
|
2
|
+
export type StateRepresentation = (typeof STATE_REPRESENTATIONS)[number];
|
|
3
|
+
export declare function requiresAllFields(rep: StateRepresentation): boolean;
|
|
4
|
+
export declare function allowsAbsent(rep: StateRepresentation): boolean;
|
|
5
|
+
export declare function allowsBatching(rep: StateRepresentation): boolean;
|
|
6
|
+
export declare function usesStringIds(rep: StateRepresentation): boolean;
|
|
7
|
+
export declare function usesIntIds(rep: StateRepresentation): boolean;
|
|
8
|
+
export declare function allowsConnectedValue(rep: StateRepresentation): boolean;
|
|
9
|
+
export declare function allowsConnectedOrRuntimeValue(rep: StateRepresentation): boolean;
|
|
10
|
+
export declare function allOptional(rep: StateRepresentation): boolean;
|
|
11
|
+
export declare function isWorkflowStep(rep: StateRepresentation): boolean;
|
|
12
|
+
export declare function isTestCase(rep: StateRepresentation): boolean;
|
|
13
|
+
export declare function allowsUrlSources(rep: StateRepresentation): boolean;
|
|
14
|
+
//# sourceMappingURL=state-representations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-representations.d.ts","sourceRoot":"","sources":["../../src/schema/state-representations.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,gRAcxB,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAEnE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAE9D;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAShE;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAE/D;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAO5D;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAEtE;AAED,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAE/E;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAE7D;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAIhE;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAE5D;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAQlE"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export const STATE_REPRESENTATIONS = [
|
|
2
|
+
"request",
|
|
3
|
+
"relaxed_request",
|
|
4
|
+
"request_internal",
|
|
5
|
+
"request_internal_dereferenced",
|
|
6
|
+
"landing_request",
|
|
7
|
+
"landing_request_internal",
|
|
8
|
+
"job_internal",
|
|
9
|
+
"job_runtime",
|
|
10
|
+
"test_case_xml",
|
|
11
|
+
"test_case_json",
|
|
12
|
+
"workflow_step",
|
|
13
|
+
"workflow_step_linked",
|
|
14
|
+
"workflow_step_native",
|
|
15
|
+
];
|
|
16
|
+
export function requiresAllFields(rep) {
|
|
17
|
+
return rep === "job_internal" || rep === "job_runtime";
|
|
18
|
+
}
|
|
19
|
+
export function allowsAbsent(rep) {
|
|
20
|
+
return !requiresAllFields(rep);
|
|
21
|
+
}
|
|
22
|
+
export function allowsBatching(rep) {
|
|
23
|
+
return (rep === "request" ||
|
|
24
|
+
rep === "relaxed_request" ||
|
|
25
|
+
rep === "request_internal" ||
|
|
26
|
+
rep === "request_internal_dereferenced" ||
|
|
27
|
+
rep === "landing_request" ||
|
|
28
|
+
rep === "landing_request_internal");
|
|
29
|
+
}
|
|
30
|
+
export function usesStringIds(rep) {
|
|
31
|
+
return rep === "request" || rep === "relaxed_request" || rep === "landing_request";
|
|
32
|
+
}
|
|
33
|
+
export function usesIntIds(rep) {
|
|
34
|
+
return (rep === "request_internal" ||
|
|
35
|
+
rep === "request_internal_dereferenced" ||
|
|
36
|
+
rep === "landing_request_internal" ||
|
|
37
|
+
rep === "job_internal");
|
|
38
|
+
}
|
|
39
|
+
export function allowsConnectedValue(rep) {
|
|
40
|
+
return rep === "workflow_step_linked";
|
|
41
|
+
}
|
|
42
|
+
export function allowsConnectedOrRuntimeValue(rep) {
|
|
43
|
+
return rep === "workflow_step_native";
|
|
44
|
+
}
|
|
45
|
+
export function allOptional(rep) {
|
|
46
|
+
return rep === "landing_request" || rep === "landing_request_internal";
|
|
47
|
+
}
|
|
48
|
+
export function isWorkflowStep(rep) {
|
|
49
|
+
return (rep === "workflow_step" || rep === "workflow_step_linked" || rep === "workflow_step_native");
|
|
50
|
+
}
|
|
51
|
+
export function isTestCase(rep) {
|
|
52
|
+
return rep === "test_case_xml" || rep === "test_case_json";
|
|
53
|
+
}
|
|
54
|
+
export function allowsUrlSources(rep) {
|
|
55
|
+
return (rep === "request" ||
|
|
56
|
+
rep === "relaxed_request" ||
|
|
57
|
+
rep === "request_internal" ||
|
|
58
|
+
rep === "landing_request" ||
|
|
59
|
+
rep === "landing_request_internal");
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=state-representations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-representations.js","sourceRoot":"","sources":["../../src/schema/state-representations.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,SAAS;IACT,iBAAiB;IACjB,kBAAkB;IAClB,+BAA+B;IAC/B,iBAAiB;IACjB,0BAA0B;IAC1B,cAAc;IACd,aAAa;IACb,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,sBAAsB;IACtB,sBAAsB;CACd,CAAC;AAIX,MAAM,UAAU,iBAAiB,CAAC,GAAwB;IACxD,OAAO,GAAG,KAAK,cAAc,IAAI,GAAG,KAAK,aAAa,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAwB;IACnD,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAwB;IACrD,OAAO,CACL,GAAG,KAAK,SAAS;QACjB,GAAG,KAAK,iBAAiB;QACzB,GAAG,KAAK,kBAAkB;QAC1B,GAAG,KAAK,+BAA+B;QACvC,GAAG,KAAK,iBAAiB;QACzB,GAAG,KAAK,0BAA0B,CACnC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAwB;IACpD,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,iBAAiB,IAAI,GAAG,KAAK,iBAAiB,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAwB;IACjD,OAAO,CACL,GAAG,KAAK,kBAAkB;QAC1B,GAAG,KAAK,+BAA+B;QACvC,GAAG,KAAK,0BAA0B;QAClC,GAAG,KAAK,cAAc,CACvB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAwB;IAC3D,OAAO,GAAG,KAAK,sBAAsB,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,GAAwB;IACpE,OAAO,GAAG,KAAK,sBAAsB,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAwB;IAClD,OAAO,GAAG,KAAK,iBAAiB,IAAI,GAAG,KAAK,0BAA0B,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAwB;IACrD,OAAO,CACL,GAAG,KAAK,eAAe,IAAI,GAAG,KAAK,sBAAsB,IAAI,GAAG,KAAK,sBAAsB,CAC5F,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAwB;IACjD,OAAO,GAAG,KAAK,eAAe,IAAI,GAAG,KAAK,gBAAgB,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAwB;IACvD,OAAO,CACL,GAAG,KAAK,SAAS;QACjB,GAAG,KAAK,iBAAiB;QACzB,GAAG,KAAK,kBAAkB;QAC1B,GAAG,KAAK,iBAAiB;QACzB,GAAG,KAAK,0BAA0B,CACnC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"empty-field.d.ts","sourceRoot":"","sources":["../../../src/schema/validators/empty-field.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as S from "effect/Schema";
|
|
2
|
+
import { registerValidatorType } from "./registry.js";
|
|
3
|
+
function applyEmptyField(schema, validator) {
|
|
4
|
+
const v = validator;
|
|
5
|
+
return schema.pipe(S.filter((value) => {
|
|
6
|
+
// empty_field with negate=false means "field must NOT be empty"
|
|
7
|
+
const isEmpty = value.length === 0;
|
|
8
|
+
return v.negate ? isEmpty : !isEmpty;
|
|
9
|
+
}, { jsonSchema: {} }));
|
|
10
|
+
}
|
|
11
|
+
registerValidatorType("empty_field", applyEmptyField);
|
|
12
|
+
//# sourceMappingURL=empty-field.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"empty-field.js","sourceRoot":"","sources":["../../../src/schema/validators/empty-field.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,eAAe,CAAC;AAEnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD,SAAS,eAAe,CAAC,MAAoB,EAAE,SAAkB;IAC/D,MAAM,CAAC,GAAG,SAAqC,CAAC;IAChD,OAAQ,MAA2B,CAAC,IAAI,CACtC,CAAC,CAAC,MAAM,CACN,CAAC,KAAa,EAAE,EAAE;QAChB,gEAAgE;QAChE,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;QACnC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACvC,CAAC,EACD,EAAE,UAAU,EAAE,EAAE,EAAE,CACnB,CACc,CAAC;AACpB,CAAC;AAED,qBAAqB,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../../src/schema/validators/expression.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import * as S from "effect/Schema";
|
|
2
|
+
import { registerValidatorType } from "./registry.js";
|
|
3
|
+
/**
|
|
4
|
+
* Evaluate a subset of Python expressions used in Galaxy validators.
|
|
5
|
+
* Supports:
|
|
6
|
+
* - 'literal' in value (substring check)
|
|
7
|
+
* - value == 'literal' (equality)
|
|
8
|
+
*
|
|
9
|
+
* Returns undefined (pass-through) for unrecognized expressions,
|
|
10
|
+
* since we can't eval arbitrary Python in JS.
|
|
11
|
+
*/
|
|
12
|
+
function tryEvaluate(expression, value) {
|
|
13
|
+
// Match: 'literal' in value
|
|
14
|
+
const inMatch = expression.match(/^'([^']*)'\s+in\s+value$/);
|
|
15
|
+
if (inMatch) {
|
|
16
|
+
return value.includes(inMatch[1]);
|
|
17
|
+
}
|
|
18
|
+
// Match: "literal" in value
|
|
19
|
+
const inMatchDQ = expression.match(/^"([^"]*)"\s+in\s+value$/);
|
|
20
|
+
if (inMatchDQ) {
|
|
21
|
+
return value.includes(inMatchDQ[1]);
|
|
22
|
+
}
|
|
23
|
+
// Match: value == 'literal' or value == "literal"
|
|
24
|
+
const eqMatch = expression.match(/^value\s*==\s*['"]([^'"]*)['"]\s*$/);
|
|
25
|
+
if (eqMatch) {
|
|
26
|
+
return value === eqMatch[1];
|
|
27
|
+
}
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
function applyExpression(schema, validator) {
|
|
31
|
+
const v = validator;
|
|
32
|
+
return schema.pipe(S.filter((value) => {
|
|
33
|
+
const result = tryEvaluate(v.expression, value);
|
|
34
|
+
if (result === undefined) {
|
|
35
|
+
// Unrecognized expression — pass through (can't validate)
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
return v.negate ? !result : result;
|
|
39
|
+
}, { jsonSchema: {} }));
|
|
40
|
+
}
|
|
41
|
+
registerValidatorType("expression", applyExpression);
|
|
42
|
+
//# sourceMappingURL=expression.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expression.js","sourceRoot":"","sources":["../../../src/schema/validators/expression.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,eAAe,CAAC;AAEnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD;;;;;;;;GAQG;AACH,SAAS,WAAW,CAAC,UAAkB,EAAE,KAAa;IACpD,4BAA4B;IAC5B,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC7D,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,4BAA4B;IAC5B,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC/D,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,kDAAkD;IAClD,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACvE,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,eAAe,CAAC,MAAoB,EAAE,SAAkB;IAC/D,MAAM,CAAC,GAAG,SAAqC,CAAC;IAChD,OAAQ,MAA2B,CAAC,IAAI,CACtC,CAAC,CAAC,MAAM,CACN,CAAC,KAAa,EAAE,EAAE;QAChB,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAChD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,0DAA0D;YAC1D,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IACrC,CAAC,EACD,EAAE,UAAU,EAAE,EAAE,EAAE,CACnB,CACc,CAAC;AACpB,CAAC;AAED,qBAAqB,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-range.d.ts","sourceRoot":"","sources":["../../../src/schema/validators/in-range.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import * as S from "effect/Schema";
|
|
2
|
+
import { registerValidatorType } from "./registry.js";
|
|
3
|
+
function applyInRange(schema, validator) {
|
|
4
|
+
const v = validator;
|
|
5
|
+
if (v.negate) {
|
|
6
|
+
// Negated range — keep S.filter, add jsonSchema annotation with not:{...}
|
|
7
|
+
const notConstraint = {};
|
|
8
|
+
if (v.min != null) {
|
|
9
|
+
notConstraint[v.exclude_min ? "exclusiveMinimum" : "minimum"] = v.min;
|
|
10
|
+
}
|
|
11
|
+
if (v.max != null) {
|
|
12
|
+
notConstraint[v.exclude_max ? "exclusiveMaximum" : "maximum"] = v.max;
|
|
13
|
+
}
|
|
14
|
+
return schema.pipe(S.filter((value) => {
|
|
15
|
+
let inRange = true;
|
|
16
|
+
if (v.min != null) {
|
|
17
|
+
inRange = inRange && (v.exclude_min ? value > v.min : value >= v.min);
|
|
18
|
+
}
|
|
19
|
+
if (v.max != null) {
|
|
20
|
+
inRange = inRange && (v.exclude_max ? value < v.max : value <= v.max);
|
|
21
|
+
}
|
|
22
|
+
return !inRange;
|
|
23
|
+
}, { jsonSchema: { not: notConstraint } }));
|
|
24
|
+
}
|
|
25
|
+
// Non-negated: use Effect Schema built-in combinators that emit JSON Schema keywords
|
|
26
|
+
let s = schema;
|
|
27
|
+
if (v.min != null) {
|
|
28
|
+
s = v.exclude_min ? s.pipe(S.greaterThan(v.min)) : s.pipe(S.greaterThanOrEqualTo(v.min));
|
|
29
|
+
}
|
|
30
|
+
if (v.max != null) {
|
|
31
|
+
s = v.exclude_max ? s.pipe(S.lessThan(v.max)) : s.pipe(S.lessThanOrEqualTo(v.max));
|
|
32
|
+
}
|
|
33
|
+
return s;
|
|
34
|
+
}
|
|
35
|
+
registerValidatorType("in_range", applyInRange);
|
|
36
|
+
//# sourceMappingURL=in-range.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-range.js","sourceRoot":"","sources":["../../../src/schema/validators/in-range.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,eAAe,CAAC;AAEnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD,SAAS,YAAY,CAAC,MAAoB,EAAE,SAAkB;IAC5D,MAAM,CAAC,GAAG,SAAkC,CAAC;IAC7C,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QACb,0EAA0E;QAC1E,MAAM,aAAa,GAA2B,EAAE,CAAC;QACjD,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;YAClB,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;QACxE,CAAC;QACD,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;YAClB,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;QACxE,CAAC;QACD,OAAQ,MAA2B,CAAC,IAAI,CACtC,CAAC,CAAC,MAAM,CACN,CAAC,KAAa,EAAE,EAAE;YAChB,IAAI,OAAO,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;gBAClB,OAAO,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACxE,CAAC;YACD,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;gBAClB,OAAO,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACxE,CAAC;YACD,OAAO,CAAC,OAAO,CAAC;QAClB,CAAC,EACD,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,EAAE,CACvC,CACc,CAAC;IACpB,CAAC;IACD,qFAAqF;IACrF,IAAI,CAAC,GAAG,MAA0B,CAAC;IACnC,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3F,CAAC;IACD,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,CAAiB,CAAC;AAC3B,CAAC;AAED,qBAAqB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { registerValidatorType, getValidatorApplier, isValidatorTypeRegistered, registeredValidatorTypes, applyValidators, } from "./registry.js";
|
|
2
|
+
import "./in-range.js";
|
|
3
|
+
import "./regex.js";
|
|
4
|
+
import "./length.js";
|
|
5
|
+
import "./expression.js";
|
|
6
|
+
import "./empty-field.js";
|
|
7
|
+
import "./no-options.js";
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/schema/validators/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,yBAAyB,EACzB,wBAAwB,EACxB,eAAe,GAChB,MAAM,eAAe,CAAC;AAGvB,OAAO,eAAe,CAAC;AACvB,OAAO,YAAY,CAAC;AACpB,OAAO,aAAa,CAAC;AACrB,OAAO,iBAAiB,CAAC;AACzB,OAAO,kBAAkB,CAAC;AAC1B,OAAO,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// Re-export registry functions
|
|
2
|
+
export { registerValidatorType, getValidatorApplier, isValidatorTypeRegistered, registeredValidatorTypes, applyValidators, } from "./registry.js";
|
|
3
|
+
// Import validator modules to trigger registration.
|
|
4
|
+
import "./in-range.js";
|
|
5
|
+
import "./regex.js";
|
|
6
|
+
import "./length.js";
|
|
7
|
+
import "./expression.js";
|
|
8
|
+
import "./empty-field.js";
|
|
9
|
+
import "./no-options.js";
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/schema/validators/index.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,yBAAyB,EACzB,wBAAwB,EACxB,eAAe,GAChB,MAAM,eAAe,CAAC;AAEvB,oDAAoD;AACpD,OAAO,eAAe,CAAC;AACvB,OAAO,YAAY,CAAC;AACpB,OAAO,aAAa,CAAC;AACrB,OAAO,iBAAiB,CAAC;AACzB,OAAO,kBAAkB,CAAC;AAC1B,OAAO,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"length.d.ts","sourceRoot":"","sources":["../../../src/schema/validators/length.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as S from "effect/Schema";
|
|
2
|
+
import { registerValidatorType } from "./registry.js";
|
|
3
|
+
function applyLength(schema, validator) {
|
|
4
|
+
const v = validator;
|
|
5
|
+
if (v.negate) {
|
|
6
|
+
const notConstraint = {};
|
|
7
|
+
if (v.min != null)
|
|
8
|
+
notConstraint.minLength = v.min;
|
|
9
|
+
if (v.max != null)
|
|
10
|
+
notConstraint.maxLength = v.max;
|
|
11
|
+
return schema.pipe(S.filter((value) => {
|
|
12
|
+
let valid = true;
|
|
13
|
+
if (v.min != null)
|
|
14
|
+
valid = valid && value.length >= v.min;
|
|
15
|
+
if (v.max != null)
|
|
16
|
+
valid = valid && value.length <= v.max;
|
|
17
|
+
return !valid;
|
|
18
|
+
}, { jsonSchema: { not: notConstraint } }));
|
|
19
|
+
}
|
|
20
|
+
// Non-negated: use built-in combinators that emit JSON Schema keywords
|
|
21
|
+
let s = schema;
|
|
22
|
+
if (v.min != null)
|
|
23
|
+
s = s.pipe(S.minLength(v.min));
|
|
24
|
+
if (v.max != null)
|
|
25
|
+
s = s.pipe(S.maxLength(v.max));
|
|
26
|
+
return s;
|
|
27
|
+
}
|
|
28
|
+
registerValidatorType("length", applyLength);
|
|
29
|
+
//# sourceMappingURL=length.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"length.js","sourceRoot":"","sources":["../../../src/schema/validators/length.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,eAAe,CAAC;AAEnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD,SAAS,WAAW,CAAC,MAAoB,EAAE,SAAkB;IAC3D,MAAM,CAAC,GAAG,SAAiC,CAAC;IAC5C,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QACb,MAAM,aAAa,GAA2B,EAAE,CAAC;QACjD,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI;YAAE,aAAa,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC;QACnD,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI;YAAE,aAAa,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC;QACnD,OAAQ,MAA2B,CAAC,IAAI,CACtC,CAAC,CAAC,MAAM,CACN,CAAC,KAAa,EAAE,EAAE;YAChB,IAAI,KAAK,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI;gBAAE,KAAK,GAAG,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;YAC1D,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI;gBAAE,KAAK,GAAG,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;YAC1D,OAAO,CAAC,KAAK,CAAC;QAChB,CAAC,EACD,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,EAAE,CACvC,CACc,CAAC;IACpB,CAAC;IACD,uEAAuE;IACvE,IAAI,CAAC,GAAG,MAA0B,CAAC;IACnC,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI;QAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAClD,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI;QAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAClD,OAAO,CAAiB,CAAC;AAC3B,CAAC;AAED,qBAAqB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-options.d.ts","sourceRoot":"","sources":["../../../src/schema/validators/no-options.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { registerValidatorType } from "./registry.js";
|
|
2
|
+
/**
|
|
3
|
+
* no_options validator — in Galaxy this checks that a select has options available.
|
|
4
|
+
* At the schema level this is a no-op since we validate values, not option availability.
|
|
5
|
+
*/
|
|
6
|
+
function applyNoOptions(schema, _validator) {
|
|
7
|
+
return schema;
|
|
8
|
+
}
|
|
9
|
+
registerValidatorType("no_options", applyNoOptions);
|
|
10
|
+
//# sourceMappingURL=no-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-options.js","sourceRoot":"","sources":["../../../src/schema/validators/no-options.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD;;;GAGG;AACH,SAAS,cAAc,CAAC,MAAoB,EAAE,UAAmB;IAC/D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,qBAAqB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert Python inline flags (?aiLmsux) at the start of a pattern to JS RegExp flags.
|
|
3
|
+
* Unsupported flags (a, L, u, x) are silently dropped.
|
|
4
|
+
* Also handles ^(?flags) where the anchor precedes the flag group.
|
|
5
|
+
*/
|
|
6
|
+
export declare function pythonToJsRegex(expression: string): {
|
|
7
|
+
pattern: string;
|
|
8
|
+
flags: string;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Strip Python identity escapes that are invalid under ECMA-262 unicode mode.
|
|
12
|
+
* Python allows \X for any character X (it's an identity escape), but JS /u mode
|
|
13
|
+
* only allows escaping syntax characters. We strip backslashes before non-syntax chars.
|
|
14
|
+
*
|
|
15
|
+
* ECMA-262 syntax characters (safe to escape): ^ $ \ . * + ? ( ) [ ] { } |
|
|
16
|
+
*/
|
|
17
|
+
export declare function stripPythonIdentityEscapes(pattern: string): string;
|
|
18
|
+
/**
|
|
19
|
+
* Convert []] (legacy PCRE/Python idiom for literal ]) to [\]] for ECMA-262 /u compat.
|
|
20
|
+
*/
|
|
21
|
+
export declare function fixBracketCharClass(pattern: string): string;
|
|
22
|
+
/**
|
|
23
|
+
* Make a pattern safe for JSON Schema's `pattern` keyword (ECMA-262, validated in /u mode by AJV).
|
|
24
|
+
* Returns null if the pattern can't be made safe.
|
|
25
|
+
*/
|
|
26
|
+
export declare function jsonSchemaSafePattern(pattern: string): string | null;
|
|
27
|
+
//# sourceMappingURL=regex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regex.d.ts","sourceRoot":"","sources":["../../../src/schema/validators/regex.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAUtF;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAOlE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAUpE"}
|