@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.
Files changed (226) hide show
  1. package/README.md +13 -0
  2. package/dist/index.d.ts +69 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +69 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/schema/bundle-types.d.ts +249 -0
  7. package/dist/schema/bundle-types.d.ts.map +1 -0
  8. package/dist/schema/bundle-types.js +74 -0
  9. package/dist/schema/bundle-types.js.map +1 -0
  10. package/dist/schema/index.d.ts +6 -0
  11. package/dist/schema/index.d.ts.map +1 -0
  12. package/dist/schema/index.js +6 -0
  13. package/dist/schema/index.js.map +1 -0
  14. package/dist/schema/model-factory.d.ts +14 -0
  15. package/dist/schema/model-factory.d.ts.map +1 -0
  16. package/dist/schema/model-factory.js +96 -0
  17. package/dist/schema/model-factory.js.map +1 -0
  18. package/dist/schema/parameters/base.d.ts +62 -0
  19. package/dist/schema/parameters/base.d.ts.map +1 -0
  20. package/dist/schema/parameters/base.js +51 -0
  21. package/dist/schema/parameters/base.js.map +1 -0
  22. package/dist/schema/parameters/gx-baseurl.d.ts +2 -0
  23. package/dist/schema/parameters/gx-baseurl.d.ts.map +1 -0
  24. package/dist/schema/parameters/gx-baseurl.js +16 -0
  25. package/dist/schema/parameters/gx-baseurl.js.map +1 -0
  26. package/dist/schema/parameters/gx-boolean.d.ts +2 -0
  27. package/dist/schema/parameters/gx-boolean.d.ts.map +1 -0
  28. package/dist/schema/parameters/gx-boolean.js +29 -0
  29. package/dist/schema/parameters/gx-boolean.js.map +1 -0
  30. package/dist/schema/parameters/gx-color.d.ts +2 -0
  31. package/dist/schema/parameters/gx-color.d.ts.map +1 -0
  32. package/dist/schema/parameters/gx-color.js +26 -0
  33. package/dist/schema/parameters/gx-color.js.map +1 -0
  34. package/dist/schema/parameters/gx-conditional.d.ts +2 -0
  35. package/dist/schema/parameters/gx-conditional.d.ts.map +1 -0
  36. package/dist/schema/parameters/gx-conditional.js +56 -0
  37. package/dist/schema/parameters/gx-conditional.js.map +1 -0
  38. package/dist/schema/parameters/gx-data-collection.d.ts +2 -0
  39. package/dist/schema/parameters/gx-data-collection.d.ts.map +1 -0
  40. package/dist/schema/parameters/gx-data-collection.js +146 -0
  41. package/dist/schema/parameters/gx-data-collection.js.map +1 -0
  42. package/dist/schema/parameters/gx-data-column.d.ts +2 -0
  43. package/dist/schema/parameters/gx-data-column.d.ts.map +1 -0
  44. package/dist/schema/parameters/gx-data-column.js +49 -0
  45. package/dist/schema/parameters/gx-data-column.js.map +1 -0
  46. package/dist/schema/parameters/gx-data.d.ts +2 -0
  47. package/dist/schema/parameters/gx-data.d.ts.map +1 -0
  48. package/dist/schema/parameters/gx-data.js +107 -0
  49. package/dist/schema/parameters/gx-data.js.map +1 -0
  50. package/dist/schema/parameters/gx-directory-uri.d.ts +2 -0
  51. package/dist/schema/parameters/gx-directory-uri.d.ts.map +1 -0
  52. package/dist/schema/parameters/gx-directory-uri.js +19 -0
  53. package/dist/schema/parameters/gx-directory-uri.js.map +1 -0
  54. package/dist/schema/parameters/gx-drill-down.d.ts +2 -0
  55. package/dist/schema/parameters/gx-drill-down.d.ts.map +1 -0
  56. package/dist/schema/parameters/gx-drill-down.js +40 -0
  57. package/dist/schema/parameters/gx-drill-down.js.map +1 -0
  58. package/dist/schema/parameters/gx-float.d.ts +2 -0
  59. package/dist/schema/parameters/gx-float.d.ts.map +1 -0
  60. package/dist/schema/parameters/gx-float.js +46 -0
  61. package/dist/schema/parameters/gx-float.js.map +1 -0
  62. package/dist/schema/parameters/gx-genomebuild.d.ts +2 -0
  63. package/dist/schema/parameters/gx-genomebuild.d.ts.map +1 -0
  64. package/dist/schema/parameters/gx-genomebuild.js +23 -0
  65. package/dist/schema/parameters/gx-genomebuild.js.map +1 -0
  66. package/dist/schema/parameters/gx-group-tag.d.ts +2 -0
  67. package/dist/schema/parameters/gx-group-tag.d.ts.map +1 -0
  68. package/dist/schema/parameters/gx-group-tag.js +23 -0
  69. package/dist/schema/parameters/gx-group-tag.js.map +1 -0
  70. package/dist/schema/parameters/gx-hidden.d.ts +2 -0
  71. package/dist/schema/parameters/gx-hidden.d.ts.map +1 -0
  72. package/dist/schema/parameters/gx-hidden.js +33 -0
  73. package/dist/schema/parameters/gx-hidden.js.map +1 -0
  74. package/dist/schema/parameters/gx-integer.d.ts +2 -0
  75. package/dist/schema/parameters/gx-integer.d.ts.map +1 -0
  76. package/dist/schema/parameters/gx-integer.js +47 -0
  77. package/dist/schema/parameters/gx-integer.js.map +1 -0
  78. package/dist/schema/parameters/gx-repeat.d.ts +2 -0
  79. package/dist/schema/parameters/gx-repeat.d.ts.map +1 -0
  80. package/dist/schema/parameters/gx-repeat.js +30 -0
  81. package/dist/schema/parameters/gx-repeat.js.map +1 -0
  82. package/dist/schema/parameters/gx-rules.d.ts +2 -0
  83. package/dist/schema/parameters/gx-rules.d.ts.map +1 -0
  84. package/dist/schema/parameters/gx-rules.js +91 -0
  85. package/dist/schema/parameters/gx-rules.js.map +1 -0
  86. package/dist/schema/parameters/gx-section.d.ts +2 -0
  87. package/dist/schema/parameters/gx-section.d.ts.map +1 -0
  88. package/dist/schema/parameters/gx-section.js +17 -0
  89. package/dist/schema/parameters/gx-section.js.map +1 -0
  90. package/dist/schema/parameters/gx-select.d.ts +2 -0
  91. package/dist/schema/parameters/gx-select.d.ts.map +1 -0
  92. package/dist/schema/parameters/gx-select.js +63 -0
  93. package/dist/schema/parameters/gx-select.js.map +1 -0
  94. package/dist/schema/parameters/gx-text.d.ts +2 -0
  95. package/dist/schema/parameters/gx-text.d.ts.map +1 -0
  96. package/dist/schema/parameters/gx-text.js +22 -0
  97. package/dist/schema/parameters/gx-text.js.map +1 -0
  98. package/dist/schema/parameters/index.d.ts +21 -0
  99. package/dist/schema/parameters/index.d.ts.map +1 -0
  100. package/dist/schema/parameters/index.js +24 -0
  101. package/dist/schema/parameters/index.js.map +1 -0
  102. package/dist/schema/parameters/registry.d.ts +6 -0
  103. package/dist/schema/parameters/registry.d.ts.map +1 -0
  104. package/dist/schema/parameters/registry.js +18 -0
  105. package/dist/schema/parameters/registry.js.map +1 -0
  106. package/dist/schema/state-representations.d.ts +14 -0
  107. package/dist/schema/state-representations.d.ts.map +1 -0
  108. package/dist/schema/state-representations.js +61 -0
  109. package/dist/schema/state-representations.js.map +1 -0
  110. package/dist/schema/validators/empty-field.d.ts +2 -0
  111. package/dist/schema/validators/empty-field.d.ts.map +1 -0
  112. package/dist/schema/validators/empty-field.js +12 -0
  113. package/dist/schema/validators/empty-field.js.map +1 -0
  114. package/dist/schema/validators/expression.d.ts +2 -0
  115. package/dist/schema/validators/expression.d.ts.map +1 -0
  116. package/dist/schema/validators/expression.js +42 -0
  117. package/dist/schema/validators/expression.js.map +1 -0
  118. package/dist/schema/validators/in-range.d.ts +2 -0
  119. package/dist/schema/validators/in-range.d.ts.map +1 -0
  120. package/dist/schema/validators/in-range.js +36 -0
  121. package/dist/schema/validators/in-range.js.map +1 -0
  122. package/dist/schema/validators/index.d.ts +8 -0
  123. package/dist/schema/validators/index.d.ts.map +1 -0
  124. package/dist/schema/validators/index.js +10 -0
  125. package/dist/schema/validators/index.js.map +1 -0
  126. package/dist/schema/validators/length.d.ts +2 -0
  127. package/dist/schema/validators/length.d.ts.map +1 -0
  128. package/dist/schema/validators/length.js +29 -0
  129. package/dist/schema/validators/length.js.map +1 -0
  130. package/dist/schema/validators/no-options.d.ts +2 -0
  131. package/dist/schema/validators/no-options.d.ts.map +1 -0
  132. package/dist/schema/validators/no-options.js +10 -0
  133. package/dist/schema/validators/no-options.js.map +1 -0
  134. package/dist/schema/validators/regex.d.ts +27 -0
  135. package/dist/schema/validators/regex.d.ts.map +1 -0
  136. package/dist/schema/validators/regex.js +100 -0
  137. package/dist/schema/validators/regex.js.map +1 -0
  138. package/dist/schema/validators/registry.d.ts +19 -0
  139. package/dist/schema/validators/registry.d.ts.map +1 -0
  140. package/dist/schema/validators/registry.js +29 -0
  141. package/dist/schema/validators/registry.js.map +1 -0
  142. package/dist/workflow/clean.d.ts +13 -0
  143. package/dist/workflow/clean.d.ts.map +1 -0
  144. package/dist/workflow/clean.js +131 -0
  145. package/dist/workflow/clean.js.map +1 -0
  146. package/dist/workflow/detect-format.d.ts +5 -0
  147. package/dist/workflow/detect-format.d.ts.map +1 -0
  148. package/dist/workflow/detect-format.js +11 -0
  149. package/dist/workflow/detect-format.js.map +1 -0
  150. package/dist/workflow/index.d.ts +9 -0
  151. package/dist/workflow/index.d.ts.map +1 -0
  152. package/dist/workflow/index.js +11 -0
  153. package/dist/workflow/index.js.map +1 -0
  154. package/dist/workflow/legacy-encoding.d.ts +40 -0
  155. package/dist/workflow/legacy-encoding.d.ts.map +1 -0
  156. package/dist/workflow/legacy-encoding.js +81 -0
  157. package/dist/workflow/legacy-encoding.js.map +1 -0
  158. package/dist/workflow/lint.d.ts +49 -0
  159. package/dist/workflow/lint.d.ts.map +1 -0
  160. package/dist/workflow/lint.js +402 -0
  161. package/dist/workflow/lint.js.map +1 -0
  162. package/dist/workflow/normalized/comments.d.ts +21 -0
  163. package/dist/workflow/normalized/comments.d.ts.map +1 -0
  164. package/dist/workflow/normalized/comments.js +80 -0
  165. package/dist/workflow/normalized/comments.js.map +1 -0
  166. package/dist/workflow/normalized/ensure.d.ts +21 -0
  167. package/dist/workflow/normalized/ensure.d.ts.map +1 -0
  168. package/dist/workflow/normalized/ensure.js +43 -0
  169. package/dist/workflow/normalized/ensure.js.map +1 -0
  170. package/dist/workflow/normalized/expanded.d.ts +62 -0
  171. package/dist/workflow/normalized/expanded.d.ts.map +1 -0
  172. package/dist/workflow/normalized/expanded.js +173 -0
  173. package/dist/workflow/normalized/expanded.js.map +1 -0
  174. package/dist/workflow/normalized/format2.d.ts +149 -0
  175. package/dist/workflow/normalized/format2.d.ts.map +1 -0
  176. package/dist/workflow/normalized/format2.js +416 -0
  177. package/dist/workflow/normalized/format2.js.map +1 -0
  178. package/dist/workflow/normalized/index.d.ts +9 -0
  179. package/dist/workflow/normalized/index.d.ts.map +1 -0
  180. package/dist/workflow/normalized/index.js +9 -0
  181. package/dist/workflow/normalized/index.js.map +1 -0
  182. package/dist/workflow/normalized/labels.d.ts +27 -0
  183. package/dist/workflow/normalized/labels.d.ts.map +1 -0
  184. package/dist/workflow/normalized/labels.js +59 -0
  185. package/dist/workflow/normalized/labels.js.map +1 -0
  186. package/dist/workflow/normalized/native.d.ts +97 -0
  187. package/dist/workflow/normalized/native.d.ts.map +1 -0
  188. package/dist/workflow/normalized/native.js +189 -0
  189. package/dist/workflow/normalized/native.js.map +1 -0
  190. package/dist/workflow/normalized/toFormat2.d.ts +11 -0
  191. package/dist/workflow/normalized/toFormat2.d.ts.map +1 -0
  192. package/dist/workflow/normalized/toFormat2.js +416 -0
  193. package/dist/workflow/normalized/toFormat2.js.map +1 -0
  194. package/dist/workflow/normalized/toNative.d.ts +11 -0
  195. package/dist/workflow/normalized/toNative.d.ts.map +1 -0
  196. package/dist/workflow/normalized/toNative.js +576 -0
  197. package/dist/workflow/normalized/toNative.js.map +1 -0
  198. package/dist/workflow/raw/gxformat2.d.ts +402 -0
  199. package/dist/workflow/raw/gxformat2.d.ts.map +1 -0
  200. package/dist/workflow/raw/gxformat2.effect.d.ts +1140 -0
  201. package/dist/workflow/raw/gxformat2.effect.d.ts.map +1 -0
  202. package/dist/workflow/raw/gxformat2.effect.js +453 -0
  203. package/dist/workflow/raw/gxformat2.effect.js.map +1 -0
  204. package/dist/workflow/raw/gxformat2.js +3 -0
  205. package/dist/workflow/raw/gxformat2.js.map +1 -0
  206. package/dist/workflow/raw/index.d.ts +5 -0
  207. package/dist/workflow/raw/index.d.ts.map +1 -0
  208. package/dist/workflow/raw/index.js +4 -0
  209. package/dist/workflow/raw/index.js.map +1 -0
  210. package/dist/workflow/raw/native.d.ts +439 -0
  211. package/dist/workflow/raw/native.d.ts.map +1 -0
  212. package/dist/workflow/raw/native.effect.d.ts +947 -0
  213. package/dist/workflow/raw/native.effect.d.ts.map +1 -0
  214. package/dist/workflow/raw/native.effect.js +474 -0
  215. package/dist/workflow/raw/native.effect.js.map +1 -0
  216. package/dist/workflow/raw/native.js +20 -0
  217. package/dist/workflow/raw/native.js.map +1 -0
  218. package/dist/workflow/replacement-scan.d.ts +21 -0
  219. package/dist/workflow/replacement-scan.d.ts.map +1 -0
  220. package/dist/workflow/replacement-scan.js +92 -0
  221. package/dist/workflow/replacement-scan.js.map +1 -0
  222. package/dist/workflow/state-merge.d.ts +49 -0
  223. package/dist/workflow/state-merge.d.ts.map +1 -0
  224. package/dist/workflow/state-merge.js +248 -0
  225. package/dist/workflow/state-merge.js.map +1 -0
  226. 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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=gx-select.d.ts.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=gx-text.d.ts.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=empty-field.d.ts.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=expression.d.ts.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=in-range.d.ts.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=length.d.ts.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=no-options.d.ts.map
@@ -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"}