@nfdi4plants/arctrl 3.1.0 → 3.1.1

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 (89) hide show
  1. package/dist/ts/ts/CWL/CWLTypes.d.ts +162 -45
  2. package/dist/ts/ts/CWL/CWLTypes.d.ts.map +1 -1
  3. package/dist/ts/ts/CWL/CWLTypes.js +495 -104
  4. package/dist/ts/ts/CWL/Decode.d.ts +291 -48
  5. package/dist/ts/ts/CWL/Decode.d.ts.map +1 -1
  6. package/dist/ts/ts/CWL/Decode.js +911 -568
  7. package/dist/ts/ts/CWL/DynamicObjHelpers.d.ts +37 -0
  8. package/dist/ts/ts/CWL/DynamicObjHelpers.d.ts.map +1 -0
  9. package/dist/ts/ts/CWL/DynamicObjHelpers.js +57 -0
  10. package/dist/ts/ts/CWL/Encode.d.ts +117 -2
  11. package/dist/ts/ts/CWL/Encode.d.ts.map +1 -1
  12. package/dist/ts/ts/CWL/Encode.js +399 -163
  13. package/dist/ts/ts/CWL/ExpressionToolDescription.d.ts +2 -0
  14. package/dist/ts/ts/CWL/ExpressionToolDescription.d.ts.map +1 -1
  15. package/dist/ts/ts/CWL/ExpressionToolDescription.js +7 -0
  16. package/dist/ts/ts/CWL/Inputs.d.ts +65 -14
  17. package/dist/ts/ts/CWL/Inputs.d.ts.map +1 -1
  18. package/dist/ts/ts/CWL/Inputs.js +194 -51
  19. package/dist/ts/ts/CWL/OperationDescription.d.ts +2 -0
  20. package/dist/ts/ts/CWL/OperationDescription.d.ts.map +1 -1
  21. package/dist/ts/ts/CWL/OperationDescription.js +7 -0
  22. package/dist/ts/ts/CWL/Outputs.d.ts +51 -12
  23. package/dist/ts/ts/CWL/Outputs.d.ts.map +1 -1
  24. package/dist/ts/ts/CWL/Outputs.js +152 -76
  25. package/dist/ts/ts/CWL/ParameterReference.d.ts +4 -1
  26. package/dist/ts/ts/CWL/ParameterReference.d.ts.map +1 -1
  27. package/dist/ts/ts/CWL/ParameterReference.js +17 -6
  28. package/dist/ts/ts/CWL/Requirements.d.ts +140 -51
  29. package/dist/ts/ts/CWL/Requirements.d.ts.map +1 -1
  30. package/dist/ts/ts/CWL/Requirements.js +458 -128
  31. package/dist/ts/ts/CWL/ToolDescription.d.ts +27 -2
  32. package/dist/ts/ts/CWL/ToolDescription.d.ts.map +1 -1
  33. package/dist/ts/ts/CWL/ToolDescription.js +74 -4
  34. package/dist/ts/ts/CWL/WorkflowDescription.d.ts +2 -0
  35. package/dist/ts/ts/CWL/WorkflowDescription.d.ts.map +1 -1
  36. package/dist/ts/ts/CWL/WorkflowDescription.js +7 -0
  37. package/dist/ts/ts/CWL/WorkflowSteps.d.ts +50 -19
  38. package/dist/ts/ts/CWL/WorkflowSteps.d.ts.map +1 -1
  39. package/dist/ts/ts/CWL/WorkflowSteps.js +152 -23
  40. package/dist/ts/ts/ContractIO/ContractIO.d.ts.map +1 -1
  41. package/dist/ts/ts/ContractIO/ContractIO.js +4 -1
  42. package/dist/ts/ts/Conversion/Assay.d.ts.map +1 -1
  43. package/dist/ts/ts/Conversion/Assay.js +4 -3
  44. package/dist/ts/ts/Conversion/Investigation.js +2 -2
  45. package/dist/ts/ts/Conversion/Person.d.ts +1 -1
  46. package/dist/ts/ts/Conversion/Person.d.ts.map +1 -1
  47. package/dist/ts/ts/Conversion/Person.js +27 -11
  48. package/dist/ts/ts/Conversion/Run.d.ts.map +1 -1
  49. package/dist/ts/ts/Conversion/Run.js +3 -2
  50. package/dist/ts/ts/Conversion/ScholarlyArticle.d.ts.map +1 -1
  51. package/dist/ts/ts/Conversion/ScholarlyArticle.js +2 -1
  52. package/dist/ts/ts/Conversion/Study.d.ts.map +1 -1
  53. package/dist/ts/ts/Conversion/Study.js +5 -4
  54. package/dist/ts/ts/Conversion/Workflow.d.ts.map +1 -1
  55. package/dist/ts/ts/Conversion/Workflow.js +13 -12
  56. package/dist/ts/ts/Conversion.d.ts +14 -10
  57. package/dist/ts/ts/Conversion.d.ts.map +1 -1
  58. package/dist/ts/ts/Conversion.js +18 -11
  59. package/dist/ts/ts/Core/ArcTypes.d.ts.map +1 -1
  60. package/dist/ts/ts/Core/ArcTypes.js +18 -0
  61. package/dist/ts/ts/Json.d.ts +2 -2
  62. package/dist/ts/ts/Json.d.ts.map +1 -1
  63. package/dist/ts/ts/Json.js +3 -3
  64. package/dist/ts/ts/WorkflowGraph/ReferenceParsing.d.ts.map +1 -1
  65. package/dist/ts/ts/WorkflowGraph/ReferenceParsing.js +2 -1
  66. package/dist/ts/ts/Yaml/ValidationPackage.d.ts +1 -1
  67. package/dist/ts/ts/Yaml/ValidationPackage.d.ts.map +1 -1
  68. package/dist/ts/ts/Yaml/ValidationPackage.js +5 -5
  69. package/dist/ts/ts/Yaml/ValidationPackagesConfig.d.ts +1 -1
  70. package/dist/ts/ts/Yaml/ValidationPackagesConfig.d.ts.map +1 -1
  71. package/dist/ts/ts/Yaml/ValidationPackagesConfig.js +5 -5
  72. package/dist/ts/ts/Yaml.js +1 -1
  73. package/dist/ts/ts/fable_modules/{YAMLicious.1.0.0-alpha.7 → YAMLicious.1.0.0-alpha.11}/Decode.fs.js +5 -33
  74. package/dist/ts/ts/fable_modules/{YAMLicious.1.0.0-alpha.7 → YAMLicious.1.0.0-alpha.11}/Persil.fs.js +11 -159
  75. package/dist/ts/ts/fable_modules/YAMLicious.1.0.0-alpha.11/Preprocessing.fs.js +319 -0
  76. package/dist/ts/ts/fable_modules/YAMLicious.1.0.0-alpha.11/Reader.fs.js +1867 -0
  77. package/dist/ts/ts/fable_modules/{YAMLicious.1.0.0-alpha.7 → YAMLicious.1.0.0-alpha.11}/Regex.fs.js +1 -1
  78. package/dist/ts/ts/fable_modules/{YAMLicious.1.0.0-alpha.7 → YAMLicious.1.0.0-alpha.11}/RegexActivePatterns.fs.js +2 -2
  79. package/dist/ts/ts/fable_modules/YAMLicious.1.0.0-alpha.11/Syntax.fs.js +819 -0
  80. package/dist/ts/ts/fable_modules/{YAMLicious.1.0.0-alpha.7 → YAMLicious.1.0.0-alpha.11}/Writer.fs.js +75 -48
  81. package/package.json +1 -1
  82. package/dist/ts/ts/fable_modules/YAMLicious.1.0.0-alpha.7/FlowToBlock.fs.js +0 -956
  83. package/dist/ts/ts/fable_modules/YAMLicious.1.0.0-alpha.7/Preprocessing.fs.js +0 -181
  84. package/dist/ts/ts/fable_modules/YAMLicious.1.0.0-alpha.7/Reader.fs.js +0 -1493
  85. /package/dist/ts/ts/fable_modules/{YAMLicious.1.0.0-alpha.7 → YAMLicious.1.0.0-alpha.11}/Encode.fs.js +0 -0
  86. /package/dist/ts/ts/fable_modules/{YAMLicious.1.0.0-alpha.7 → YAMLicious.1.0.0-alpha.11}/Escapes.fs.js +0 -0
  87. /package/dist/ts/ts/fable_modules/{YAMLicious.1.0.0-alpha.7 → YAMLicious.1.0.0-alpha.11}/Interop/JsInterop.fs.js +0 -0
  88. /package/dist/ts/ts/fable_modules/{YAMLicious.1.0.0-alpha.7 → YAMLicious.1.0.0-alpha.11}/StringBuffer.fs.js +0 -0
  89. /package/dist/ts/ts/fable_modules/{YAMLicious.1.0.0-alpha.7 → YAMLicious.1.0.0-alpha.11}/YAMLiciousTypes.fs.js +0 -0
@@ -1,24 +1,25 @@
1
- import { getEnumerator, disposeSafe, Lazy } from '../../node_modules/@fable-org/fable-library-js/Util.js';
2
- import { length, takeWhile, toArray, delay, collect, append, empty as empty$1, singleton, head as head$1, map as map$2 } from '../../node_modules/@fable-org/fable-library-js/Seq.js';
3
- import { replace, join, trimEnd, trimStart, toText, interpolate, printf, substring, trim } from '../../node_modules/@fable-org/fable-library-js/String.js';
4
- import { item } from '../../node_modules/@fable-org/fable-library-js/Array.js';
5
- import { isMatch } from '../../node_modules/@fable-org/fable-library-js/RegExp.js';
6
- import { value, map as map$1, unwrap, defaultArg, some, bind } from '../../node_modules/@fable-org/fable-library-js/Option.js';
7
- import { choose, isEmpty, head, tail, iterate, map, empty, exists, tryPick, cons, singleton as singleton$1, ofArray, tryHead } from '../../node_modules/@fable-org/fable-library-js/List.js';
8
- import { YAMLElement_Mapping, YAMLElement_Sequence, YAMLElement_Object, YAMLContent_create_Z1C3A29C9, YAMLElement_Value } from '../fable_modules/YAMLicious.1.0.0-alpha.7/YAMLiciousTypes.fs.js';
9
- import { read, object, string, bool, resizearray, int } from '../fable_modules/YAMLicious.1.0.0-alpha.7/Decode.fs.js';
10
- import { setProperty, setOptionalProperty } from '../fable_modules/DynamicObj.7.1.0/DynObj.fs.js';
1
+ import { getEnumerator, disposeSafe, defaultOf, comparePrimitives } from '../../node_modules/@fable-org/fable-library-js/Util.js';
2
+ import { Record, FSharpRef } from '../../node_modules/@fable-org/fable-library-js/Types.js';
3
+ import { value, map, unwrap, defaultArg, bind, orElseWith } from '../../node_modules/@fable-org/fable-library-js/Option.js';
4
+ import { record_type, string_type, option_type, array_type } from '../../node_modules/@fable-org/fable-library-js/Reflection.js';
5
+ import { toText, printf, interpolate, substring, replace, trim } from '../../node_modules/@fable-org/fable-library-js/String.js';
6
+ import { YAMLElement_Mapping, YAMLElement_Sequence, YAMLElement_Object, YAMLContent_create_Z1C3A29C9, YAMLElement_Value } from '../fable_modules/YAMLicious.1.0.0-alpha.11/YAMLiciousTypes.fs.js';
7
+ import { choose, isEmpty, head, tail, empty, map as map$1, exists, tryPick, mapIndexed, cons, singleton, ofArray, tryHead } from '../../node_modules/@fable-org/fable-library-js/List.js';
8
+ import { read, object, string, bool, resizearray, int } from '../fable_modules/YAMLicious.1.0.0-alpha.11/Decode.fs.js';
9
+ import { compare } from '../../node_modules/@fable-org/fable-library-js/BigInt.js';
10
+ import { tryParse } from '../../node_modules/@fable-org/fable-library-js/Boolean.js';
11
+ import { tryParse as tryParse$1 } from '../../node_modules/@fable-org/fable-library-js/Long.js';
12
+ import { tryParse as tryParse$2 } from '../../node_modules/@fable-org/fable-library-js/Double.js';
11
13
  import { DynamicObj } from '../fable_modules/DynamicObj.7.1.0/DynamicObj.fs.js';
12
- import { SchemaSaladString_Literal, SchemaSaladString_Import, SchemaSaladString_Include, SchemaSaladStringModule_toDirectiveString, CWLType_Dirent, DirentInstance, DirectoryInstance_$ctor, FileInstance_$ctor, CWLType_Null, CWLType_Stdout, CWLType_Boolean, CWLType_Double, CWLType_Float, CWLType_Long, CWLType_Int, CWLType_String, CWLType_Directory, CWLType_File, CWLType_Array, InputArraySchema, InputRecordField, InputRecordSchema, InputEnumSchema, CWLType_Union, CWLType_Record, CWLType_Enum, SoftwarePackage, SchemaDefRequirementType } from './CWLTypes.js';
13
- import { OutputBinding, CWLOutput, OutputSource_Multiple, OutputSource_Single } from './Outputs.js';
14
- import { InitialWorkDirEntry_StringEntry, InitialWorkDirEntry_DirentEntry, InitialWorkDirEntry_DirectoryEntry, InitialWorkDirEntry_FileEntry, DockerRequirement_create_Z6E6AA686, EnvironmentDef, LoadListingRequirementValue, LoadListingEnum_tryParse_Z721C83C5, ResourceRequirementInstance_$ctor_D76FC00, Requirement_WorkReuseExpressionRequirement, Requirement_WorkReuseRequirement, WorkReuseRequirementValue, Requirement_NetworkAccessExpressionRequirement, Requirement_NetworkAccessRequirement, NetworkAccessRequirementValue, InplaceUpdateRequirementValue, ToolTimeLimitValue_ToolTimeLimitExpression, ToolTimeLimitValue_ToolTimeLimitSeconds, InlineJavascriptRequirementValue, Requirement_StepInputExpressionRequirement, Requirement_MultipleInputFeatureRequirement, Requirement_ScatterFeatureRequirement, Requirement_SubworkflowFeatureRequirement, Requirement_ToolTimeLimitRequirement, Requirement_InplaceUpdateRequirement, Requirement_ResourceRequirement, Requirement_ShellCommandRequirement, Requirement_EnvVarRequirement, Requirement_InitialWorkDirRequirement, Requirement_LoadListingRequirement, Requirement_SoftwareRequirement, Requirement_DockerRequirement, Requirement_SchemaDefRequirement, Requirement_InlineJavascriptRequirement, HintEntry_UnknownHint, HintUnknownValue, HintEntry_KnownHint } from './Requirements.js';
14
+ import { setProperty } from '../fable_modules/DynamicObj.7.1.0/DynObj.fs.js';
15
+ import { LoadListingEnum_tryParse_Z721C83C5, InitialWorkDirEntry_StringEntry, InitialWorkDirEntry_DirentEntry, InitialWorkDirEntry_DirectoryEntry, InitialWorkDirEntry_FileEntry, DockerRequirement, EnvironmentDef, LoadListingRequirementValue, ResourceRequirementInstance, Requirement_WorkReuseExpressionRequirement, Requirement_WorkReuseRequirement, WorkReuseRequirementValue, Requirement_NetworkAccessExpressionRequirement, Requirement_NetworkAccessRequirement, NetworkAccessRequirementValue, InplaceUpdateRequirementValue, ToolTimeLimitValue_ToolTimeLimitExpression, ToolTimeLimitValue_ToolTimeLimitSeconds, InlineJavascriptRequirementValue, Requirement_StepInputExpressionRequirement, Requirement_MultipleInputFeatureRequirement, Requirement_ScatterFeatureRequirement, Requirement_SubworkflowFeatureRequirement, Requirement_ToolTimeLimitRequirement, Requirement_InplaceUpdateRequirement, Requirement_ResourceRequirement, Requirement_ShellCommandRequirement, Requirement_EnvVarRequirement, Requirement_InitialWorkDirRequirement, Requirement_LoadListingRequirement, Requirement_SoftwareRequirement, Requirement_DockerRequirement, Requirement_SchemaDefRequirement, Requirement_InlineJavascriptRequirement, HintEntry_UnknownHint, HintUnknownValue, HintEntry_KnownHint } from './Requirements.js';
16
+ import { FileInstance, DirectoryInstance, SchemaSaladString_Literal, SchemaSaladString_Import, SchemaSaladString_Include, SchemaSaladStringModule_toDirectiveString, DirentInstance, CWLType_Dirent, CWLType_Null, CWLType_Stdout, CWLType_Boolean, CWLType_Double, CWLType_Float, CWLType_Long, CWLType_Int, CWLType_String, CWLType_Directory, CWLType_File, CWLType_Array, InputArraySchema, InputRecordField, InputRecordSchema, InputEnumSchema, CWLType_Union, CWLType_Enum, CWLType_Record, SoftwarePackage, SchemaDefRequirementType, CWLType_file, CWLType_directory } from './CWLTypes.js';
17
+ import { toList, toArray, delay, map as map$2, head as head$1, length } from '../../node_modules/@fable-org/fable-library-js/Seq.js';
18
+ import { OutputBinding, CWLOutput, OutputSource_Single, OutputSource_Multiple } from './Outputs.js';
15
19
  import { getItemFromDict } from '../../node_modules/@fable-org/fable-library-js/MapUtil.js';
16
- import { compare } from '../../node_modules/@fable-org/fable-library-js/BigInt.js';
17
- import { tryParse } from '../../node_modules/@fable-org/fable-library-js/Long.js';
18
- import { FSharpRef } from '../../node_modules/@fable-org/fable-library-js/Types.js';
19
- import { tryParse as tryParse$1 } from '../../node_modules/@fable-org/fable-library-js/Double.js';
20
+ import { unionMany } from '../../node_modules/@fable-org/fable-library-js/Set.js';
20
21
  import { InputBinding, CWLInput } from './Inputs.js';
21
- import { LinkMergeMethod, PickValueMethod, ScatterMethod, StepInput, StepOutput_StepOutputRecord, StepOutputParameter, StepOutput_StepOutputString, WorkflowStepRun_RunString, WorkflowStep } from './WorkflowSteps.js';
22
+ import { LinkMergeMethod, PickValueMethod, ScatterMethod, StepInput, StepOutputParameter, StepOutput_StepOutputRecord, StepOutput_StepOutputString, WorkflowStepRun_RunString, WorkflowStep } from './WorkflowSteps.js';
22
23
  import { WorkflowStepRunOps_fromTool, WorkflowStepRunOps_fromOperation, WorkflowStepRunOps_fromExpressionTool, WorkflowStepRunOps_fromWorkflow, CWLProcessingUnit_Operation, CWLProcessingUnit_ExpressionTool, CWLProcessingUnit_Workflow, CWLProcessingUnit_CommandLineTool } from './CWLProcessingUnit.js';
23
24
  import { CWLToolDescription } from './ToolDescription.js';
24
25
  import { CWLExpressionToolDescription } from './ExpressionToolDescription.js';
@@ -39,79 +40,35 @@ function ResizeArray_map(f, a) {
39
40
  }
40
41
  return b;
41
42
  }
42
- function Decode_countLeadingSpaces(line) {
43
- return length(takeWhile((c) => c === " ", line.split("")));
43
+ class Decode_DecodeWarning extends Record {
44
+ constructor(Path, Message, Raw) {
45
+ super();
46
+ this.Path = Path;
47
+ this.Message = Message;
48
+ this.Raw = Raw;
49
+ }
44
50
  }
45
- function Decode_isBlankLine(line) {
46
- return line.trim().length === 0;
51
+ function Decode_DecodeWarning_$reflection() {
52
+ return record_type("ARCtrl.CWL.Decode.DecodeWarning", [], Decode_DecodeWarning, () => [["Path", string_type], ["Message", string_type], ["Raw", option_type(string_type)]]);
47
53
  }
48
- function Decode_normalizeLineEndings(yaml) {
49
- if (yaml == null) {
50
- return "";
51
- } else {
52
- return replace(yaml, "\r\n", "\n");
54
+ class Decode_DecodeResult$1 extends Record {
55
+ constructor(Value, Warnings) {
56
+ super();
57
+ this.Value = Value;
58
+ this.Warnings = Warnings;
53
59
  }
54
60
  }
55
- function Decode_stripLeadingShebang(yaml) {
56
- const normalized = Decode_normalizeLineEndings(yaml);
57
- const lines = normalized.split("\n");
58
- if (lines.length > 0 && item(0, lines).startsWith("#!")) {
59
- return join("\n", lines.slice(1, lines.length));
60
- } else {
61
- return normalized;
62
- }
61
+ function Decode_DecodeResult$1_$reflection(gen0) {
62
+ return record_type("ARCtrl.CWL.Decode.DecodeResult`1", [gen0], Decode_DecodeResult$1, () => [["Value", gen0], ["Warnings", array_type(Decode_DecodeWarning_$reflection())]]);
63
63
  }
64
- function Decode_tryParseBlockScalarHeader(line) {
65
- if (Decode_isBlankLine(line)) {
66
- return void 0;
67
- } else if (isMatch(/^(?:.+:\s*[|>][1-9]?[+-]?\s*(?:#.*)?|-\s*[|>][1-9]?[+-]?\s*(?:#.*)?)$/gu, trimEnd(line))) {
68
- return Decode_countLeadingSpaces(line);
64
+ function Decode_addWarning(warnings, path, message, raw) {
65
+ let clo;
66
+ if (warnings == null) {
69
67
  } else {
70
- return void 0;
68
+ const warningList = value(warnings);
69
+ void warningList.push(new Decode_DecodeWarning(path, message, map((clo = toText(printf("%A")), clo), raw)));
71
70
  }
72
71
  }
73
- function Decode_normalizeYamlInput(yaml) {
74
- const normalized = Decode_stripLeadingShebang(yaml);
75
- const filtered = [];
76
- let blockScalarIndent = void 0;
77
- const processLine = (line_mut) => {
78
- processLine:
79
- while (true) {
80
- const line = line_mut;
81
- if (blockScalarIndent == null) {
82
- const matchValue = Decode_tryParseBlockScalarHeader(line);
83
- if (matchValue == null) {
84
- if (line === "" ? true : line.trim().length > 0) {
85
- void filtered.push(line);
86
- }
87
- } else {
88
- const indent_1 = value(matchValue) | 0;
89
- blockScalarIndent = indent_1;
90
- void filtered.push(line);
91
- }
92
- } else {
93
- const indent = value(blockScalarIndent) | 0;
94
- if (Decode_isBlankLine(line)) {
95
- void filtered.push(line);
96
- } else if (Decode_countLeadingSpaces(line) > indent) {
97
- void filtered.push(line);
98
- } else {
99
- blockScalarIndent = void 0;
100
- line_mut = line;
101
- continue processLine;
102
- }
103
- }
104
- break;
105
- }
106
- };
107
- const array = normalized.split("\n");
108
- array.forEach(processLine);
109
- return trimEnd(join("\n", toArray(filtered)));
110
- }
111
- function Decode_removeFullLineComments(yaml) {
112
- let array;
113
- return join("\n", (array = yaml.split("\n"), array.filter((line) => !trimStart(line).startsWith("#"))));
114
- }
115
72
  function Decode_removeYamlComments(yamlElement) {
116
73
  switch (yamlElement.tag) {
117
74
  case /* Object */
@@ -193,43 +150,31 @@ function Decode_isRecoverableDecodingError(ex) {
193
150
  }
194
151
  }
195
152
  function Decode_readSanitizedYaml(yaml) {
196
- const prepared = Decode_stripLeadingShebang(yaml);
197
- const tryRead = (text) => Decode_removeYamlComments(read(text));
198
- try {
199
- return tryRead(prepared);
200
- } catch (matchValue) {
201
- if (Decode_isRecoverableDecodingError(matchValue)) {
202
- const normalized = Decode_normalizeYamlInput(prepared);
203
- try {
204
- return tryRead(normalized);
205
- } catch (matchValue_1) {
206
- if (Decode_isRecoverableDecodingError(matchValue_1)) {
207
- return tryRead(Decode_removeFullLineComments(normalized));
208
- } else {
209
- throw matchValue_1;
210
- }
211
- }
212
- } else {
213
- throw matchValue;
214
- }
215
- }
153
+ return Decode_removeYamlComments(read(yaml));
154
+ }
155
+ function Decode_boxOverflowInt64(value) {
156
+ return value;
216
157
  }
217
158
  function Decode_overflowDecoder(dynObj, dict) {
218
- let enumerator = getEnumerator(dict);
219
- try {
220
- while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
221
- const e = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
222
- const matchValue = e[1];
223
- let matchResult, v, s;
224
- if (matchValue.tag === /* Object */
225
- 3) {
226
- if (!isEmpty(matchValue.fields[0])) {
227
- switch (head(matchValue.fields[0]).tag) {
159
+ const decodeOverflowValue = (value_1) => {
160
+ let collection;
161
+ let matchResult, v_3, items, other;
162
+ switch (value_1.tag) {
163
+ case /* Value */
164
+ 1: {
165
+ matchResult = 0;
166
+ v_3 = value_1.fields[0];
167
+ break;
168
+ }
169
+ case /* Object */
170
+ 3: {
171
+ if (!isEmpty(value_1.fields[0])) {
172
+ switch (head(value_1.fields[0]).tag) {
228
173
  case /* Value */
229
174
  1: {
230
- if (isEmpty(tail(matchValue.fields[0]))) {
175
+ if (isEmpty(tail(value_1.fields[0]))) {
231
176
  matchResult = 0;
232
- v = head(matchValue.fields[0]).fields[0];
177
+ v_3 = head(value_1.fields[0]).fields[0];
233
178
  } else {
234
179
  matchResult = 2;
235
180
  }
@@ -237,9 +182,9 @@ function Decode_overflowDecoder(dynObj, dict) {
237
182
  }
238
183
  case /* Sequence */
239
184
  2: {
240
- if (isEmpty(tail(matchValue.fields[0]))) {
185
+ if (isEmpty(tail(value_1.fields[0]))) {
241
186
  matchResult = 1;
242
- s = head(matchValue.fields[0]).fields[0];
187
+ items = head(value_1.fields[0]).fields[0];
243
188
  } else {
244
189
  matchResult = 2;
245
190
  }
@@ -251,32 +196,260 @@ function Decode_overflowDecoder(dynObj, dict) {
251
196
  } else {
252
197
  matchResult = 2;
253
198
  }
199
+ break;
200
+ }
201
+ case /* Sequence */
202
+ 2: {
203
+ matchResult = 1;
204
+ items = value_1.fields[0];
205
+ break;
206
+ }
207
+ default: {
208
+ matchResult = 3;
209
+ other = value_1;
210
+ }
211
+ }
212
+ switch (matchResult) {
213
+ case 0: {
214
+ const value$1 = v_3;
215
+ const matchValue = value$1.Style;
216
+ let matchResult_1;
217
+ if (matchValue != null) {
218
+ switch (value(matchValue).tag) {
219
+ case /* SingleQuoted */
220
+ 1:
221
+ case /* DoubleQuoted */
222
+ 2:
223
+ case /* Block */
224
+ 3: {
225
+ matchResult_1 = 0;
226
+ break;
227
+ }
228
+ default:
229
+ matchResult_1 = 1;
230
+ }
231
+ } else {
232
+ matchResult_1 = 1;
233
+ }
234
+ switch (matchResult_1) {
235
+ case 0:
236
+ return value$1.Value;
237
+ default: {
238
+ let matchValue_1;
239
+ let outArg = false;
240
+ matchValue_1 = [tryParse(value$1.Value, new FSharpRef(() => outArg, (v) => {
241
+ outArg = v;
242
+ })), outArg];
243
+ if (matchValue_1[0]) {
244
+ return matchValue_1[1];
245
+ } else {
246
+ let matchValue_2;
247
+ let outArg_1 = 0n;
248
+ matchValue_2 = [tryParse$1(value$1.Value, 7, false, 64, new FSharpRef(() => outArg_1, (v_1) => {
249
+ outArg_1 = v_1;
250
+ })), outArg_1];
251
+ if (matchValue_2[0]) {
252
+ return Decode_boxOverflowInt64(matchValue_2[1]);
253
+ } else {
254
+ let matchValue_3;
255
+ let outArg_2 = 0;
256
+ matchValue_3 = [tryParse$2(value$1.Value, new FSharpRef(() => outArg_2, (v_2) => {
257
+ outArg_2 = v_2;
258
+ })), outArg_2];
259
+ if (matchValue_3[0]) {
260
+ return matchValue_3[1];
261
+ } else {
262
+ return value$1.Value;
263
+ }
264
+ }
265
+ }
266
+ }
267
+ }
268
+ }
269
+ case 1:
270
+ return collection = map$1(decodeOverflowValue, items), Array.from(collection);
271
+ case 2:
272
+ return Decode_overflowDecoder(new DynamicObj(), object((get$) => get$.Overflow.FieldList(empty()), value_1));
273
+ default:
274
+ return other;
275
+ }
276
+ };
277
+ let enumerator = getEnumerator(dict);
278
+ try {
279
+ while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
280
+ const e = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
281
+ setProperty(e[0], decodeOverflowValue(e[1]), dynObj);
282
+ }
283
+ } finally {
284
+ disposeSafe(enumerator);
285
+ }
286
+ return dynObj;
287
+ }
288
+ function Decode_isIgnorableYamlNoise(value) {
289
+ let matchResult;
290
+ switch (value.tag) {
291
+ case /* Comment */
292
+ 4: {
293
+ matchResult = 0;
294
+ break;
295
+ }
296
+ case /* Object */
297
+ 3: {
298
+ if (isEmpty(value.fields[0])) {
299
+ matchResult = 1;
254
300
  } else {
255
301
  matchResult = 2;
256
302
  }
257
- switch (matchResult) {
258
- case 0: {
259
- setProperty(e[0], v.Value, dynObj);
260
- break;
303
+ break;
304
+ }
305
+ default:
306
+ matchResult = 2;
307
+ }
308
+ switch (matchResult) {
309
+ case 0:
310
+ return true;
311
+ case 1:
312
+ return true;
313
+ default:
314
+ return false;
315
+ }
316
+ }
317
+ function Decode_tryGetPresentField(fieldName, decoder, value) {
318
+ let matchResult, fields_1;
319
+ if (value.tag === /* Object */
320
+ 3) {
321
+ if (exists((_arg) => {
322
+ let matchResult_1, key_1;
323
+ if (_arg.tag === /* Mapping */
324
+ 0) {
325
+ if (_arg.fields[0].Value === fieldName) {
326
+ matchResult_1 = 0;
327
+ key_1 = _arg.fields[0];
328
+ } else {
329
+ matchResult_1 = 1;
261
330
  }
262
- case 1: {
263
- const newDynObj = new DynamicObj();
264
- iterate((x) => {
265
- setProperty(e[0], x, dynObj);
266
- }, map((arg) => Decode_overflowDecoder(newDynObj, object((get$) => get$.Overflow.FieldList(empty()), arg)), s));
267
- break;
331
+ } else {
332
+ matchResult_1 = 1;
333
+ }
334
+ switch (matchResult_1) {
335
+ case 0:
336
+ return true;
337
+ default:
338
+ return false;
339
+ }
340
+ }, value.fields[0])) {
341
+ matchResult = 0;
342
+ fields_1 = value.fields[0];
343
+ } else {
344
+ matchResult = 1;
345
+ }
346
+ } else {
347
+ matchResult = 1;
348
+ }
349
+ switch (matchResult) {
350
+ case 0:
351
+ return object((get$) => {
352
+ const objectArg = get$.Optional;
353
+ return objectArg.Field(fieldName, decoder);
354
+ }, value);
355
+ default:
356
+ return void 0;
357
+ }
358
+ }
359
+ function Decode_tryGetStringField(fieldName, value) {
360
+ return Decode_tryGetPresentField(fieldName, string, value);
361
+ }
362
+ function Decode_tryGetBoolField(fieldName, value) {
363
+ return Decode_tryGetPresentField(fieldName, bool, value);
364
+ }
365
+ function Decode_tryGetYamlField(fieldName, value) {
366
+ return Decode_tryGetPresentField(fieldName, (x) => x, value);
367
+ }
368
+ function Decode_tryGetIntArrayField(fieldName, value) {
369
+ return Decode_tryGetPresentField(fieldName, (value_1) => resizearray(int, value_1), value);
370
+ }
371
+ function Decode_tryGetInt64Field(fieldName, value) {
372
+ return Decode_tryGetPresentField(fieldName, (_arg) => {
373
+ let matchResult, scalar, other;
374
+ switch (_arg.tag) {
375
+ case /* Value */
376
+ 1: {
377
+ matchResult = 0;
378
+ scalar = _arg.fields[0];
379
+ break;
380
+ }
381
+ case /* Object */
382
+ 3: {
383
+ if (!isEmpty(_arg.fields[0])) {
384
+ if (head(_arg.fields[0]).tag === /* Value */
385
+ 1) {
386
+ if (isEmpty(tail(_arg.fields[0]))) {
387
+ matchResult = 0;
388
+ scalar = head(_arg.fields[0]).fields[0];
389
+ } else {
390
+ matchResult = 1;
391
+ other = _arg;
392
+ }
393
+ } else {
394
+ matchResult = 1;
395
+ other = _arg;
396
+ }
397
+ } else {
398
+ matchResult = 1;
399
+ other = _arg;
268
400
  }
269
- case 2: {
270
- setProperty(e[0], e[1], dynObj);
271
- break;
401
+ break;
402
+ }
403
+ default: {
404
+ matchResult = 1;
405
+ other = _arg;
406
+ }
407
+ }
408
+ switch (matchResult) {
409
+ case 0: {
410
+ let matchValue;
411
+ let outArg = 0n;
412
+ matchValue = [tryParse$1(scalar.Value, 7, false, 64, new FSharpRef(() => outArg, (v) => {
413
+ outArg = v;
414
+ })), outArg];
415
+ if (matchValue[0]) {
416
+ return matchValue[1];
417
+ } else {
418
+ throw new Error(`Invalid int64 value for ${fieldName}: ${scalar.Value}`);
272
419
  }
273
420
  }
421
+ default:
422
+ throw new Error(`Invalid int64 value for ${fieldName}: ${other}`);
274
423
  }
275
- } finally {
276
- disposeSafe(enumerator);
424
+ }, value);
425
+ }
426
+ function Decode_tryGetLoadListingField(fieldName, value$1) {
427
+ return map((loadListingValue) => {
428
+ const matchValue = LoadListingEnum_tryParse_Z721C83C5(loadListingValue);
429
+ if (matchValue == null) {
430
+ throw new Error(`Invalid loadListing value '${loadListingValue}'. Expected one of: no_listing, shallow_listing, deep_listing.`);
431
+ } else {
432
+ return value(matchValue);
433
+ }
434
+ }, Decode_tryGetStringField(fieldName, value$1));
435
+ }
436
+ function Decode_overflowIntoDynamicObj(dynObj, knownFields, value) {
437
+ if (value.tag === /* Object */
438
+ 3) {
439
+ object((get$) => Decode_overflowDecoder(dynObj, get$.Overflow.FieldList(knownFields)), value);
277
440
  }
278
441
  return dynObj;
279
442
  }
443
+ function Decode_decodeFileInstanceFields(element) {
444
+ const file = new FileInstance(unwrap(Decode_tryGetStringField("location", element)), unwrap(Decode_tryGetStringField("path", element)), unwrap(Decode_tryGetStringField("basename", element)), unwrap(Decode_tryGetStringField("dirname", element)), unwrap(Decode_tryGetStringField("nameroot", element)), unwrap(Decode_tryGetStringField("nameext", element)), unwrap(Decode_tryGetStringField("checksum", element)), unwrap(Decode_tryGetInt64Field("size", element)), unwrap(Decode_tryGetYamlField("secondaryFiles", element)), unwrap(Decode_tryGetStringField("format", element)), unwrap(Decode_tryGetStringField("contents", element)));
445
+ Decode_overflowIntoDynamicObj(file, toList(FileInstance.KnownFieldNames), element);
446
+ return file;
447
+ }
448
+ function Decode_decodeDirectoryInstanceFields(element) {
449
+ const directory = new DirectoryInstance(unwrap(Decode_tryGetStringField("location", element)), unwrap(Decode_tryGetStringField("path", element)), unwrap(Decode_tryGetStringField("basename", element)), unwrap(Decode_tryGetYamlField("listing", element)));
450
+ Decode_overflowIntoDynamicObj(directory, toList(DirectoryInstance.KnownFieldNames), element);
451
+ return directory;
452
+ }
280
453
  function Decode_decodeSchemaSaladString(yEle) {
281
454
  let matchResult, v, c, v_1;
282
455
  switch (yEle.tag) {
@@ -375,14 +548,18 @@ function Decode_decodeSchemaSaladString(yEle) {
375
548
  function Decode_decodeStringOrExpression(yEle) {
376
549
  return SchemaSaladStringModule_toDirectiveString(Decode_decodeSchemaSaladString(yEle));
377
550
  }
378
- const Decode_outputBindingGlobDecoder = (value_1) => object((get$) => {
379
- let objectArg;
380
- return new OutputBinding((objectArg = get$.Optional, objectArg.Field("glob", string)));
381
- }, value_1);
382
- const Decode_outputBindingDecoder = (value) => object((get$) => {
551
+ function Decode_outputBindingGlobDecoder(value) {
552
+ return object((get$) => {
553
+ let objectArg, objectArg_1, objectArg_2;
554
+ const binding = new OutputBinding(unwrap((objectArg = get$.Optional, objectArg.Field("glob", string))), unwrap((objectArg_1 = get$.Optional, objectArg_1.Field("loadContents", bool))), unwrap(Decode_tryGetLoadListingField("loadListing", value)), unwrap((objectArg_2 = get$.Optional, objectArg_2.Field("outputEval", string))));
555
+ Decode_overflowIntoDynamicObj(binding, toList(OutputBinding.KnownFieldNames), value);
556
+ return binding;
557
+ }, value);
558
+ }
559
+ const Decode_outputBindingDecoder = (value_1) => object((get$) => {
383
560
  const objectArg = get$.Optional;
384
561
  return objectArg.Field("outputBinding", Decode_outputBindingGlobDecoder);
385
- }, value);
562
+ }, value_1);
386
563
  function Decode_decodeStringArrayOrScalar(value) {
387
564
  let matchResult, items;
388
565
  switch (value.tag) {
@@ -416,7 +593,7 @@ function Decode_decodeStringArrayOrScalar(value) {
416
593
  }
417
594
  switch (matchResult) {
418
595
  case 0: {
419
- const collection = map(Decode_decodeStringOrExpression, items);
596
+ const collection = map$1(Decode_decodeStringOrExpression, items);
420
597
  return Array.from(collection);
421
598
  }
422
599
  default:
@@ -427,12 +604,15 @@ const Decode_outputSourceDecoder = (value_1) => object((get$) => {
427
604
  const objectArg = get$.Optional;
428
605
  return objectArg.Field("outputSource", Decode_decodeStringArrayOrScalar);
429
606
  }, value_1);
430
- const Decode_direntDecoder = (value_1) => object((get$) => {
431
- let objectArg, objectArg_1, objectArg_2;
432
- return CWLType_Dirent(new DirentInstance((objectArg = get$.Required, objectArg.Field("entry", Decode_decodeSchemaSaladString)), (objectArg_1 = get$.Optional, objectArg_1.Field("entryname", Decode_decodeSchemaSaladString)), (objectArg_2 = get$.Optional, objectArg_2.Field("writable", bool))));
433
- }, value_1);
607
+ function Decode_direntDecoder(value) {
608
+ return object((get$) => {
609
+ let objectArg, objectArg_1, objectArg_2;
610
+ const dirent = new DirentInstance((objectArg = get$.Required, objectArg.Field("entry", Decode_decodeSchemaSaladString)), unwrap((objectArg_1 = get$.Optional, objectArg_1.Field("entryname", Decode_decodeSchemaSaladString))), unwrap((objectArg_2 = get$.Optional, objectArg_2.Field("writable", bool))));
611
+ Decode_overflowIntoDynamicObj(dirent, toList(DirentInstance.KnownFieldNames), value);
612
+ return CWLType_Dirent(dirent);
613
+ }, value);
614
+ }
434
615
  function Decode_initialWorkDirEntryDecoder(value$1) {
435
- let fileInstance, directoryInstance;
436
616
  switch (value$1.tag) {
437
617
  case /* Object */
438
618
  3: {
@@ -540,9 +720,9 @@ function Decode_initialWorkDirEntryDecoder(value$1) {
540
720
  }
541
721
  switch (matchResult_2) {
542
722
  case 0:
543
- return InitialWorkDirEntry_FileEntry((fileInstance = FileInstance_$ctor(), void object((get$) => Decode_overflowDecoder(fileInstance, get$.Overflow.FieldList(empty())), value$1), fileInstance));
723
+ return InitialWorkDirEntry_FileEntry(Decode_decodeFileInstanceFields(value$1));
544
724
  case 1:
545
- return InitialWorkDirEntry_DirectoryEntry((directoryInstance = DirectoryInstance_$ctor(), void object((get$_1) => Decode_overflowDecoder(directoryInstance, get$_1.Overflow.FieldList(empty())), value$1), directoryInstance));
725
+ return InitialWorkDirEntry_DirectoryEntry(Decode_decodeDirectoryInstanceFields(value$1));
546
726
  default:
547
727
  return InitialWorkDirEntry_StringEntry(Decode_decodeSchemaSaladString(value$1));
548
728
  }
@@ -558,9 +738,9 @@ function Decode_initialWorkDirEntryDecoder(value$1) {
558
738
  function Decode_cwlSimpleTypeFromString(s) {
559
739
  switch (s) {
560
740
  case "File":
561
- return CWLType_File(FileInstance_$ctor());
741
+ return CWLType_File(new FileInstance());
562
742
  case "Directory":
563
- return CWLType_Directory(DirectoryInstance_$ctor());
743
+ return CWLType_Directory(new DirectoryInstance());
564
744
  case "string":
565
745
  return CWLType_String();
566
746
  case "int":
@@ -587,7 +767,7 @@ function Decode_parseArrayShorthand(typeStr) {
587
767
  const matchValue = Decode_parseArrayShorthand(innerType);
588
768
  if (matchValue == null) {
589
769
  try {
590
- return CWLType_Array(new InputArraySchema(Decode_cwlSimpleTypeFromString(innerType), void 0, void 0, void 0));
770
+ return CWLType_Array(new InputArraySchema(Decode_cwlSimpleTypeFromString(innerType)));
591
771
  } catch (matchValue_1) {
592
772
  if (Decode_isRecoverableDecodingError(matchValue_1)) {
593
773
  return void 0;
@@ -596,46 +776,31 @@ function Decode_parseArrayShorthand(typeStr) {
596
776
  }
597
777
  }
598
778
  } else {
599
- return CWLType_Array(new InputArraySchema(value(matchValue), void 0, void 0, void 0));
779
+ return CWLType_Array(new InputArraySchema(value(matchValue)));
600
780
  }
601
781
  } else {
602
782
  return void 0;
603
783
  }
604
784
  }
605
- function inputArraySchemaDecoder$0040324() {
606
- return (value_3) => object((get$) => {
785
+ function Decode_inputArraySchemaDecoder(value) {
786
+ return object((get$) => {
607
787
  let objectArg, objectArg_1, objectArg_2, objectArg_3;
608
- return new InputArraySchema(Decode_cwlTypeDecoder$0027((objectArg = get$.Required, objectArg.Field("items", (x) => x))), (objectArg_1 = get$.Optional, objectArg_1.Field("label", string)), (objectArg_2 = get$.Optional, objectArg_2.Field("doc", string)), (objectArg_3 = get$.Optional, objectArg_3.Field("name", string)));
609
- }, value_3);
610
- }
611
- const inputArraySchemaDecoder$0040324$002D1 = new Lazy(inputArraySchemaDecoder$0040324);
612
- function inputRecordFieldDecoder$0040338() {
613
- return (value_3) => object((get$) => {
614
- let objectArg, objectArg_1, objectArg_2, objectArg_3;
615
- return new InputRecordField((objectArg = get$.Required, objectArg.Field("name", string)), Decode_cwlTypeDecoder$0027((objectArg_1 = get$.Required, objectArg_1.Field("type", (x) => x))), (objectArg_2 = get$.Optional, objectArg_2.Field("doc", string)), (objectArg_3 = get$.Optional, objectArg_3.Field("label", string)));
616
- }, value_3);
617
- }
618
- const inputRecordFieldDecoder$0040338$002D1 = new Lazy(inputRecordFieldDecoder$0040338);
619
- function inputRecordSchemaDecoder$0040377() {
620
- return (value_3) => object((get$) => {
621
- let fieldsElement, objectArg, element, matchValue, objectArg_1, objectArg_2, objectArg_3;
622
- return new InputRecordSchema((fieldsElement = (objectArg = get$.Optional, objectArg.Field("fields", (x) => x)), fieldsElement == null ? void 0 : value(fieldsElement).tag === /* Object */
623
- 3 ? isEmpty(value(fieldsElement).fields[0]) ? [] : (element = value(fieldsElement), matchValue = Decode_tryDecodeFieldsAsArray(element), matchValue == null ? Decode_tryDecodeFieldsAsMap(element) : value(matchValue)) : (element = value(fieldsElement), matchValue = Decode_tryDecodeFieldsAsArray(element), matchValue == null ? Decode_tryDecodeFieldsAsMap(element) : value(matchValue))), (objectArg_1 = get$.Optional, objectArg_1.Field("label", string)), (objectArg_2 = get$.Optional, objectArg_2.Field("doc", string)), (objectArg_3 = get$.Optional, objectArg_3.Field("name", string)));
624
- }, value_3);
788
+ const schema = new InputArraySchema(Decode_cwlTypeDecoder$0027((objectArg = get$.Required, objectArg.Field("items", (x) => x))), unwrap((objectArg_1 = get$.Optional, objectArg_1.Field("label", string))), unwrap((objectArg_2 = get$.Optional, objectArg_2.Field("doc", string))), unwrap((objectArg_3 = get$.Optional, objectArg_3.Field("name", string))));
789
+ Decode_overflowIntoDynamicObj(schema, toList(InputArraySchema.KnownFieldNames), value);
790
+ return schema;
791
+ }, value);
625
792
  }
626
- const inputRecordSchemaDecoder$0040377$002D1 = new Lazy(inputRecordSchemaDecoder$0040377);
627
- function inputEnumSchemaDecoder$0040404() {
628
- return (value_5) => object((get$) => {
793
+ function Decode_inputRecordFieldDecoder(value) {
794
+ return object((get$) => {
629
795
  let objectArg, objectArg_1, objectArg_2, objectArg_3;
630
- return new InputEnumSchema((objectArg = get$.Required, objectArg.Field("symbols", (value) => resizearray(string, value))), (objectArg_1 = get$.Optional, objectArg_1.Field("label", string)), (objectArg_2 = get$.Optional, objectArg_2.Field("doc", string)), (objectArg_3 = get$.Optional, objectArg_3.Field("name", string)));
631
- }, value_5);
796
+ const field = new InputRecordField((objectArg = get$.Required, objectArg.Field("name", string)), Decode_cwlTypeDecoder$0027((objectArg_1 = get$.Required, objectArg_1.Field("type", (x) => x))), unwrap((objectArg_2 = get$.Optional, objectArg_2.Field("doc", string))), unwrap((objectArg_3 = get$.Optional, objectArg_3.Field("label", string))));
797
+ Decode_overflowIntoDynamicObj(field, toList(InputRecordField.KnownFieldNames), value);
798
+ return field;
799
+ }, value);
632
800
  }
633
- const inputEnumSchemaDecoder$0040404$002D1 = new Lazy(inputEnumSchemaDecoder$0040404);
634
- const Decode_inputArraySchemaDecoder = inputArraySchemaDecoder$0040324$002D1.Value;
635
- const Decode_inputRecordFieldDecoder = inputRecordFieldDecoder$0040338$002D1.Value;
636
801
  function Decode_tryDecodeFieldsAsArray(element) {
637
802
  try {
638
- return resizearray(inputRecordFieldDecoder$0040338$002D1.Value, element);
803
+ return resizearray(Decode_inputRecordFieldDecoder, element);
639
804
  } catch (matchValue) {
640
805
  if (Decode_isRecoverableDecodingError(matchValue)) {
641
806
  return void 0;
@@ -651,8 +816,9 @@ function Decode_tryDecodeFieldsAsMap(element) {
651
816
  try {
652
817
  while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
653
818
  const kvp = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
654
- const fieldType = Decode_cwlTypeDecoder$0027(kvp[1]);
655
- void fields.push(new InputRecordField(kvp[0], fieldType, void 0, void 0));
819
+ const field = new InputRecordField(kvp[0], Decode_cwlTypeDecoder$0027(kvp[1]), unwrap(Decode_tryGetStringField("doc", kvp[1])), unwrap(Decode_tryGetStringField("label", kvp[1])));
820
+ Decode_overflowIntoDynamicObj(field, toList(InputRecordField.KnownFieldNames), kvp[1]);
821
+ void fields.push(field);
656
822
  }
657
823
  } finally {
658
824
  disposeSafe(enumerator);
@@ -666,8 +832,29 @@ function Decode_tryDecodeFieldsAsMap(element) {
666
832
  }
667
833
  }
668
834
  }
669
- const Decode_inputRecordSchemaDecoder = inputRecordSchemaDecoder$0040377$002D1.Value;
670
- const Decode_inputEnumSchemaDecoder = inputEnumSchemaDecoder$0040404$002D1.Value;
835
+ function Decode_inputRecordSchemaDecoder(value$1) {
836
+ return object((get$) => {
837
+ let fieldsElement, objectArg, element, matchValue, objectArg_1, objectArg_2, objectArg_3;
838
+ const schema = new InputRecordSchema(unwrap((fieldsElement = (objectArg = get$.Optional, objectArg.Field("fields", (x) => x)), fieldsElement == null ? void 0 : value(fieldsElement).tag === /* Object */
839
+ 3 ? isEmpty(value(fieldsElement).fields[0]) ? [] : (element = value(fieldsElement), matchValue = Decode_tryDecodeFieldsAsArray(element), matchValue == null ? Decode_tryDecodeFieldsAsMap(element) : value(matchValue)) : (element = value(fieldsElement), matchValue = Decode_tryDecodeFieldsAsArray(element), matchValue == null ? Decode_tryDecodeFieldsAsMap(element) : value(matchValue)))), unwrap((objectArg_1 = get$.Optional, objectArg_1.Field("label", string))), unwrap((objectArg_2 = get$.Optional, objectArg_2.Field("doc", string))), unwrap((objectArg_3 = get$.Optional, objectArg_3.Field("name", string))));
840
+ Decode_overflowIntoDynamicObj(schema, toList(InputRecordSchema.KnownFieldNames), value$1);
841
+ return schema;
842
+ }, value$1);
843
+ }
844
+ function Decode_inputEnumSchemaDecoder(value) {
845
+ return object((get$) => {
846
+ let objectArg_1, objectArg_2, objectArg_3;
847
+ let symbols;
848
+ const objectArg = get$.Required;
849
+ symbols = objectArg.Field("symbols", (value_1) => resizearray(string, value_1));
850
+ if (symbols.length === 0) {
851
+ throw new Error("CWL enum schema must define at least one symbol.");
852
+ }
853
+ const schema = new InputEnumSchema(symbols, unwrap((objectArg_1 = get$.Optional, objectArg_1.Field("label", string))), unwrap((objectArg_2 = get$.Optional, objectArg_2.Field("doc", string))), unwrap((objectArg_3 = get$.Optional, objectArg_3.Field("name", string))));
854
+ Decode_overflowIntoDynamicObj(schema, toList(InputEnumSchema.KnownFieldNames), value);
855
+ return schema;
856
+ }, value);
857
+ }
671
858
  function Decode_cwlTypeDecoder$0027(element) {
672
859
  let collection;
673
860
  const parseTypeString = (typeStr) => {
@@ -735,7 +922,7 @@ function Decode_cwlTypeDecoder$0027(element) {
735
922
  case 0:
736
923
  return parseTypeString(v.Value);
737
924
  case 1:
738
- return CWLType_Union((collection = map(Decode_cwlTypeDecoder$0027, items), Array.from(collection)));
925
+ return CWLType_Union((collection = map$1(Decode_cwlTypeDecoder$0027, items), Array.from(collection)));
739
926
  case 2:
740
927
  return object((get$) => {
741
928
  let objectArg_1;
@@ -770,7 +957,32 @@ function Decode_cwlTypeDecoder$0027(element) {
770
957
  switch (matchResult_1) {
771
958
  case 0: {
772
959
  const matchValue_1 = v_1.Value;
773
- return matchValue_1 === "record" ? CWLType_Record(inputRecordSchemaDecoder$0040377$002D1.Value(element)) : matchValue_1 === "enum" ? CWLType_Enum(inputEnumSchemaDecoder$0040404$002D1.Value(element)) : matchValue_1 === "array" ? CWLType_Array(inputArraySchemaDecoder$0040324$002D1.Value(element)) : parseTypeString(matchValue_1);
960
+ switch (matchValue_1) {
961
+ case "record":
962
+ return CWLType_Record(Decode_inputRecordSchemaDecoder(element));
963
+ case "enum":
964
+ return CWLType_Enum(Decode_inputEnumSchemaDecoder(element));
965
+ case "array":
966
+ return CWLType_Array(Decode_inputArraySchemaDecoder(element));
967
+ default: {
968
+ const typeStr_1 = matchValue_1;
969
+ const patternInput_1 = typeStr_1.endsWith("?") ? [replace(typeStr_1, "?", ""), true] : [typeStr_1, false];
970
+ const stripped_1 = patternInput_1[0];
971
+ const isOptional_1 = patternInput_1[1];
972
+ switch (stripped_1) {
973
+ case "File": {
974
+ const baseType_1 = CWLType_File(Decode_decodeFileInstanceFields(element));
975
+ return isOptional_1 ? CWLType_Union([CWLType_Null(), baseType_1]) : baseType_1;
976
+ }
977
+ case "Directory": {
978
+ const baseType_2 = CWLType_Directory(Decode_decodeDirectoryInstanceFields(element));
979
+ return isOptional_1 ? CWLType_Union([CWLType_Null(), baseType_2]) : baseType_2;
980
+ }
981
+ default:
982
+ return parseTypeString(typeStr_1);
983
+ }
984
+ }
985
+ }
774
986
  }
775
987
  case 1:
776
988
  return Decode_cwlTypeDecoder$0027((objectArg_1 = get$.Required, objectArg_1.Field("type", (x_1) => x_1)));
@@ -791,11 +1003,11 @@ function Decode_cwlTypeStringMatcher(t, get$) {
791
1003
  if (matchValue == null) {
792
1004
  switch (newT) {
793
1005
  case "File": {
794
- cwlType = CWLType_File(FileInstance_$ctor());
1006
+ cwlType = CWLType_File(new FileInstance());
795
1007
  break;
796
1008
  }
797
1009
  case "Directory": {
798
- cwlType = CWLType_Directory(DirectoryInstance_$ctor());
1010
+ cwlType = CWLType_Directory(new DirectoryInstance());
799
1011
  break;
800
1012
  }
801
1013
  case "Dirent": {
@@ -903,31 +1115,109 @@ const Decode_cwlTypeDecoder = (value_1) => object((get$) => {
903
1115
  return Decode_cwlTypeStringMatcher(value(cwlType), get$);
904
1116
  }
905
1117
  }, value_1);
906
- const Decode_outputArrayDecoder = (value_1) => object((get$) => {
907
- const dict = get$.Overflow.FieldList(empty());
908
- const collection = toArray(delay(() => collect((key) => {
909
- let v;
910
- const value$1 = getItemFromDict(dict, key);
911
- const outputBinding = Decode_outputBindingDecoder(value$1);
912
- const outputSourceValues = Decode_outputSourceDecoder(value$1);
913
- const output = new CWLOutput(key, value$1.tag === /* Object */
914
- 3 ? !isEmpty(value$1.fields[0]) ? head(value$1.fields[0]).tag === /* Value */
915
- 1 ? isEmpty(tail(value$1.fields[0])) ? (v = head(value$1.fields[0]).fields[0], Decode_cwlTypeStringMatcher(v.Value, get$)[0]) : Decode_cwlTypeDecoder(value$1)[0] : Decode_cwlTypeDecoder(value$1)[0] : Decode_cwlTypeDecoder(value$1)[0] : Decode_cwlTypeDecoder(value$1)[0]);
916
- return append(outputBinding != null ? (setOptionalProperty("outputBinding", outputBinding, output), empty$1()) : empty$1(), delay(() => {
917
- let matchValue, values, values_2, values_1, values_3;
918
- return append((matchValue = outputSourceValues, matchValue != null ? (values = value(matchValue), values.length > 1) ? (values_2 = value(matchValue), output.OutputSource = OutputSource_Multiple(values_2), empty$1()) : (values_1 = value(matchValue), values_1.length === 1) ? (values_3 = value(matchValue), output.OutputSource = OutputSource_Single(values_3[0]), empty$1()) : empty$1() : empty$1()), delay(() => singleton(output)));
919
- }));
920
- }, dict.keys())));
921
- return Array.from(collection);
922
- }, value_1);
923
- const Decode_outputsDecoder = (value) => object((get$) => {
924
- const objectArg = get$.Required;
925
- return objectArg.Field("outputs", Decode_outputArrayDecoder);
926
- }, value);
1118
+ function Decode_decodeNamedOutput(name, value$1) {
1119
+ let v, values, values_1;
1120
+ const outputBinding = Decode_outputBindingDecoder(value$1);
1121
+ const outputSourceValues = Decode_outputSourceDecoder(value$1);
1122
+ const output = new CWLOutput(name, value$1.tag === /* Object */
1123
+ 3 ? !isEmpty(value$1.fields[0]) ? head(value$1.fields[0]).tag === /* Value */
1124
+ 1 ? isEmpty(tail(value$1.fields[0])) ? (v = head(value$1.fields[0]).fields[0], Decode_cwlTypeStringMatcher(v.Value, defaultOf())[0]) : Decode_cwlTypeDecoder(value$1)[0] : Decode_cwlTypeDecoder(value$1)[0] : Decode_cwlTypeDecoder(value$1)[0] : Decode_cwlTypeDecoder(value$1)[0], void 0, void 0, unwrap(Decode_tryGetStringField("label", value$1)), unwrap(Decode_tryGetYamlField("secondaryFiles", value$1)), unwrap(Decode_tryGetBoolField("streamable", value$1)), unwrap(Decode_tryGetStringField("doc", value$1)), unwrap(Decode_tryGetStringField("format", value$1)));
1125
+ output.OutputBinding = outputBinding;
1126
+ let matchResult, values_2, values_3;
1127
+ if (outputSourceValues != null) {
1128
+ if (values = value(outputSourceValues), values.length > 1) {
1129
+ matchResult = 0;
1130
+ values_2 = value(outputSourceValues);
1131
+ } else if (values_1 = value(outputSourceValues), values_1.length === 1) {
1132
+ matchResult = 1;
1133
+ values_3 = value(outputSourceValues);
1134
+ } else {
1135
+ matchResult = 2;
1136
+ }
1137
+ } else {
1138
+ matchResult = 2;
1139
+ }
1140
+ switch (matchResult) {
1141
+ case 0: {
1142
+ output.OutputSource = OutputSource_Multiple(values_2);
1143
+ break;
1144
+ }
1145
+ case 1: {
1146
+ output.OutputSource = OutputSource_Single(values_3[0]);
1147
+ break;
1148
+ }
1149
+ }
1150
+ Decode_overflowIntoDynamicObj(output, toList(CWLOutput.KnownFieldNames), value$1);
1151
+ return output;
1152
+ }
1153
+ function Decode_decodeOutputSequenceItem(warnings, path, index, item) {
1154
+ const matchValue = Decode_tryGetStringField("id", item);
1155
+ if (matchValue == null) {
1156
+ if (Decode_isIgnorableYamlNoise(item)) {
1157
+ return void 0;
1158
+ } else {
1159
+ Decode_addWarning(warnings, `${path}[${index}]`, "Skipped malformed unnamed CWL output entry.", item);
1160
+ return void 0;
1161
+ }
1162
+ } else {
1163
+ return Decode_decodeNamedOutput(value(matchValue), item);
1164
+ }
1165
+ }
1166
+ function Decode_outputArrayDecoderWithWarnings(warnings, path, value) {
1167
+ let matchResult, items;
1168
+ switch (value.tag) {
1169
+ case /* Object */
1170
+ 3: {
1171
+ if (!isEmpty(value.fields[0])) {
1172
+ if (head(value.fields[0]).tag === /* Sequence */
1173
+ 2) {
1174
+ if (isEmpty(tail(value.fields[0]))) {
1175
+ matchResult = 0;
1176
+ items = head(value.fields[0]).fields[0];
1177
+ } else {
1178
+ matchResult = 1;
1179
+ }
1180
+ } else {
1181
+ matchResult = 1;
1182
+ }
1183
+ } else {
1184
+ matchResult = 1;
1185
+ }
1186
+ break;
1187
+ }
1188
+ case /* Sequence */
1189
+ 2: {
1190
+ matchResult = 0;
1191
+ items = value.fields[0];
1192
+ break;
1193
+ }
1194
+ default:
1195
+ matchResult = 1;
1196
+ }
1197
+ switch (matchResult) {
1198
+ case 0: {
1199
+ const collection = choose((x) => x, mapIndexed((index, item) => Decode_decodeOutputSequenceItem(warnings, path, index, item), items));
1200
+ return Array.from(collection);
1201
+ }
1202
+ default: {
1203
+ const dict = object((get$) => get$.Overflow.FieldList(empty()), value);
1204
+ const collection_1 = toArray(delay(() => map$2((key) => Decode_decodeNamedOutput(key, getItemFromDict(dict, key)), dict.keys())));
1205
+ return Array.from(collection_1);
1206
+ }
1207
+ }
1208
+ }
1209
+ const Decode_outputArrayDecoder = (value) => Decode_outputArrayDecoderWithWarnings(void 0, "outputs", value);
1210
+ function Decode_outputsDecoderWithWarnings(warnings) {
1211
+ return (value_1) => object((get$) => {
1212
+ const objectArg = get$.Required;
1213
+ return objectArg.Field("outputs", (value) => Decode_outputArrayDecoderWithWarnings(warnings, "outputs", value));
1214
+ }, value_1);
1215
+ }
1216
+ const Decode_outputsDecoder = Decode_outputsDecoderWithWarnings(void 0);
927
1217
  function Decode_dockerRequirementDecoder(get$) {
928
1218
  let objectArg, objectArg_1, objectArg_2, objectArg_3, objectArg_4, objectArg_5, objectArg_6;
929
- const dockerFile = map$1(Decode_decodeSchemaSaladString, (objectArg = get$.Optional, objectArg.Field("dockerFile", (x) => x)));
930
- return DockerRequirement_create_Z6E6AA686(unwrap((objectArg_1 = get$.Optional, objectArg_1.Field("dockerPull", string))), void 0, unwrap(dockerFile), unwrap((objectArg_2 = get$.Optional, objectArg_2.Field("dockerImageId", string))), unwrap((objectArg_3 = get$.Optional, objectArg_3.Field("dockerLoad", string))), unwrap((objectArg_4 = get$.Optional, objectArg_4.Field("dockerImport", string))), unwrap((objectArg_5 = get$.Optional, objectArg_5.Field("dockerOutputDirectory", string))), unwrap((objectArg_6 = get$.Optional, objectArg_6.Field("cwltool:dockerRunOptions", Decode_decodeStringArrayOrScalar))));
1219
+ const dockerFile = map(Decode_decodeSchemaSaladString, (objectArg = get$.Optional, objectArg.Field("dockerFile", (x) => x)));
1220
+ return DockerRequirement.create(unwrap((objectArg_1 = get$.Optional, objectArg_1.Field("dockerPull", string))), void 0, unwrap(dockerFile), unwrap((objectArg_2 = get$.Optional, objectArg_2.Field("dockerImageId", string))), unwrap((objectArg_3 = get$.Optional, objectArg_3.Field("dockerLoad", string))), unwrap((objectArg_4 = get$.Optional, objectArg_4.Field("dockerImport", string))), unwrap((objectArg_5 = get$.Optional, objectArg_5.Field("dockerOutputDirectory", string))), unwrap((objectArg_6 = get$.Optional, objectArg_6.Field("cwltool:dockerRunOptions", Decode_decodeStringArrayOrScalar))));
931
1221
  }
932
1222
  function Decode_envVarRequirementDecoder(get$) {
933
1223
  let envDefElement;
@@ -989,10 +1279,12 @@ function Decode_envVarRequirementDecoder(get$) {
989
1279
  switch (envDefElement.tag) {
990
1280
  case /* Sequence */
991
1281
  2:
992
- return resizearray((value_3) => object((get2) => {
1282
+ return resizearray((value_1) => object((get2) => {
993
1283
  let objectArg_1, objectArg_2;
994
- return new EnvironmentDef((objectArg_1 = get2.Required, objectArg_1.Field("envName", string)), (objectArg_2 = get2.Required, objectArg_2.Field("envValue", string)));
995
- }, value_3), envDefElement);
1284
+ const env = new EnvironmentDef((objectArg_1 = get2.Required, objectArg_1.Field("envName", string)), (objectArg_2 = get2.Required, objectArg_2.Field("envValue", string)));
1285
+ Decode_overflowIntoDynamicObj(env, toList(EnvironmentDef.KnownFieldNames), value_1);
1286
+ return env;
1287
+ }, value_1), envDefElement);
996
1288
  case /* Object */
997
1289
  3: {
998
1290
  const collection = choose((_arg_2) => {
@@ -1070,18 +1362,20 @@ function Decode_softwareRequirementDecoder(get$) {
1070
1362
  switch (packagesElement.tag) {
1071
1363
  case /* Sequence */
1072
1364
  2:
1073
- return resizearray((value_5) => object((get2) => {
1365
+ return resizearray((value_1) => object((get2) => {
1074
1366
  let objectArg_1, objectArg_2, objectArg_3;
1075
- return new SoftwarePackage((objectArg_1 = get2.Required, objectArg_1.Field("package", string)), (objectArg_2 = get2.Optional, objectArg_2.Field("version", (value_1) => resizearray(string, value_1))), (objectArg_3 = get2.Optional, objectArg_3.Field("specs", (value_3) => resizearray(string, value_3))));
1076
- }, value_5), packagesElement);
1367
+ const package$_1 = new SoftwarePackage((objectArg_1 = get2.Required, objectArg_1.Field("package", string)), unwrap((objectArg_2 = get2.Optional, objectArg_2.Field("version", (value_3) => resizearray(string, value_3)))), unwrap((objectArg_3 = get2.Optional, objectArg_3.Field("specs", (value_5) => resizearray(string, value_5)))));
1368
+ Decode_overflowIntoDynamicObj(package$_1, toList(SoftwarePackage.KnownFieldNames), value_1);
1369
+ return package$_1;
1370
+ }, value_1), packagesElement);
1077
1371
  case /* Object */
1078
1372
  3: {
1079
1373
  const collection = choose((_arg_3) => {
1080
- let packageName, packageValue, normalizedPackageValue, mappings_1;
1374
+ let packageName, packageValue, normalizedPackageValue, mappings_1, package$;
1081
1375
  if (_arg_3.tag === /* Mapping */
1082
1376
  0) {
1083
1377
  return packageName = _arg_3.fields[0].Value, packageValue = _arg_3.fields[1], normalizedPackageValue = normalizeCollectionElement(packageValue), normalizedPackageValue.tag === /* Object */
1084
- 3 ? isEmpty(normalizedPackageValue.fields[0]) ? new SoftwarePackage(packageName, void 0, void 0) : (mappings_1 = normalizedPackageValue.fields[0], new SoftwarePackage(packageName, tryPick((_arg_1) => {
1378
+ 3 ? isEmpty(normalizedPackageValue.fields[0]) ? new SoftwarePackage(packageName) : (mappings_1 = normalizedPackageValue.fields[0], package$ = new SoftwarePackage(packageName, unwrap(tryPick((_arg_1) => {
1085
1379
  let v;
1086
1380
  let matchResult_1, k_1, v_1;
1087
1381
  if (_arg_1.tag === /* Mapping */
@@ -1102,7 +1396,7 @@ function Decode_softwareRequirementDecoder(get$) {
1102
1396
  default:
1103
1397
  return void 0;
1104
1398
  }
1105
- }, mappings_1), tryPick((_arg_2) => {
1399
+ }, mappings_1)), unwrap(tryPick((_arg_2) => {
1106
1400
  let v_2;
1107
1401
  let matchResult_2, k_3, v_3;
1108
1402
  if (_arg_2.tag === /* Mapping */
@@ -1123,7 +1417,7 @@ function Decode_softwareRequirementDecoder(get$) {
1123
1417
  default:
1124
1418
  return void 0;
1125
1419
  }
1126
- }, mappings_1))) : normalizedPackageValue.tag === /* Sequence */
1420
+ }, mappings_1))), void Decode_overflowIntoDynamicObj(package$, toList(SoftwarePackage.KnownFieldNames), normalizedPackageValue), package$) : normalizedPackageValue.tag === /* Sequence */
1127
1421
  2 ? new SoftwarePackage(packageName, void 0, decodeSpecsArray(normalizedPackageValue)) : new SoftwarePackage(packageName, void 0, [Decode_decodeStringOrExpression(packageValue)]);
1128
1422
  } else {
1129
1423
  return void 0;
@@ -1228,7 +1522,7 @@ function Decode_decodeResourceScalar(element) {
1228
1522
  const scalarValue = value(matchValue);
1229
1523
  let matchValue_1;
1230
1524
  let outArg = 0n;
1231
- matchValue_1 = [tryParse(scalarValue, 7, false, 64, new FSharpRef(() => outArg, (v) => {
1525
+ matchValue_1 = [tryParse$1(scalarValue, 7, false, 64, new FSharpRef(() => outArg, (v) => {
1232
1526
  outArg = v;
1233
1527
  })), outArg];
1234
1528
  if (matchValue_1[0]) {
@@ -1236,7 +1530,7 @@ function Decode_decodeResourceScalar(element) {
1236
1530
  } else {
1237
1531
  let matchValue_2;
1238
1532
  let outArg_1 = 0;
1239
- matchValue_2 = [tryParse$1(scalarValue, new FSharpRef(() => outArg_1, (v_1) => {
1533
+ matchValue_2 = [tryParse$2(scalarValue, new FSharpRef(() => outArg_1, (v_1) => {
1240
1534
  outArg_1 = v_1;
1241
1535
  })), outArg_1];
1242
1536
  if (matchValue_2[0]) {
@@ -1249,21 +1543,28 @@ function Decode_decodeResourceScalar(element) {
1249
1543
  }
1250
1544
  function Decode_optionalResourceField(get$, fieldName) {
1251
1545
  let objectArg;
1252
- return map$1(Decode_decodeResourceScalar, (objectArg = get$.Optional, objectArg.Field(fieldName, (x) => x)));
1546
+ return map(Decode_decodeResourceScalar, (objectArg = get$.Optional, objectArg.Field(fieldName, (x) => x)));
1253
1547
  }
1254
1548
  function Decode_resourceRequirementDecoder(get$) {
1255
- return ResourceRequirementInstance_$ctor_D76FC00(some(Decode_optionalResourceField(get$, "coresMin")), some(Decode_optionalResourceField(get$, "coresMax")), some(Decode_optionalResourceField(get$, "ramMin")), some(Decode_optionalResourceField(get$, "ramMax")), some(Decode_optionalResourceField(get$, "tmpdirMin")), some(Decode_optionalResourceField(get$, "tmpdirMax")), some(Decode_optionalResourceField(get$, "outdirMin")), some(Decode_optionalResourceField(get$, "outdirMax")));
1549
+ return new ResourceRequirementInstance(Decode_optionalResourceField(get$, "coresMin"), Decode_optionalResourceField(get$, "coresMax"), Decode_optionalResourceField(get$, "ramMin"), Decode_optionalResourceField(get$, "ramMax"), Decode_optionalResourceField(get$, "tmpdirMin"), Decode_optionalResourceField(get$, "tmpdirMax"), Decode_optionalResourceField(get$, "outdirMin"), Decode_optionalResourceField(get$, "outdirMax"));
1256
1550
  }
1257
1551
  function Decode_schemaDefRequirementTypeDecoder(value) {
1258
1552
  const dict = object((get$) => get$.Overflow.FieldList(empty()), value);
1553
+ const schemaDefKnownFields = toList(unionMany([SchemaDefRequirementType.KnownFieldNames, InputRecordSchema.KnownFieldNames, InputArraySchema.KnownFieldNames, InputEnumSchema.KnownFieldNames], {
1554
+ Compare: comparePrimitives
1555
+ }));
1259
1556
  if (dict.has("name")) {
1260
- return new SchemaDefRequirementType(Decode_decodeStringOrExpression(getItemFromDict(dict, "name")), Decode_cwlTypeDecoder$0027(value));
1557
+ const schema = new SchemaDefRequirementType(Decode_decodeStringOrExpression(getItemFromDict(dict, "name")), Decode_cwlTypeDecoder$0027(value));
1558
+ Decode_overflowIntoDynamicObj(schema, schemaDefKnownFields, value);
1559
+ return schema;
1261
1560
  } else {
1262
1561
  if (dict.size === 0) {
1263
1562
  throw new Error("SchemaDefRequirement entry cannot be empty.");
1264
1563
  }
1265
1564
  const kv = head$1(dict);
1266
- return new SchemaDefRequirementType(kv[0], Decode_cwlTypeDecoder$0027(kv[1]));
1565
+ const schema_1 = new SchemaDefRequirementType(kv[0], Decode_cwlTypeDecoder$0027(kv[1]));
1566
+ Decode_overflowIntoDynamicObj(schema_1, cons(kv[0], schemaDefKnownFields), value);
1567
+ return schema_1;
1267
1568
  }
1268
1569
  }
1269
1570
  function Decode_schemaDefRequirementDecoder(get$) {
@@ -1367,7 +1668,7 @@ function Decode_toolTimeLimitRequirementDecoder(get$) {
1367
1668
  } else {
1368
1669
  let matchValue;
1369
1670
  let outArg = 0n;
1370
- matchValue = [tryParse(value(tryGetScalarString), 7, false, 64, new FSharpRef(() => outArg, (v) => {
1671
+ matchValue = [tryParse$1(value(tryGetScalarString), 7, false, 64, new FSharpRef(() => outArg, (v) => {
1371
1672
  outArg = v;
1372
1673
  })), outArg];
1373
1674
  if (matchValue[0]) {
@@ -1383,7 +1684,7 @@ function Decode_toolTimeLimitRequirementDecoder(get$) {
1383
1684
  }
1384
1685
  function Decode_inlineJavascriptRequirementDecoder(get$) {
1385
1686
  let objectArg;
1386
- return new InlineJavascriptRequirementValue((objectArg = get$.Optional, objectArg.Field("expressionLib", Decode_decodeStringArrayOrScalar)));
1687
+ return new InlineJavascriptRequirementValue(unwrap((objectArg = get$.Optional, objectArg.Field("expressionLib", Decode_decodeStringArrayOrScalar))));
1387
1688
  }
1388
1689
  function Decode_requirementFromTypeName(cls, get$) {
1389
1690
  switch (cls) {
@@ -1429,6 +1730,56 @@ function Decode_requirementFromTypeName(cls, get$) {
1429
1730
  throw new Error(`Invalid or unsupported requirement class: ${cls}`);
1430
1731
  }
1431
1732
  }
1733
+ function Decode_addRequirementPayloadOverflow(element, requirement) {
1734
+ const knownWithClass = (knownFields) => cons("class", toList(knownFields));
1735
+ switch (requirement.tag) {
1736
+ case /* InlineJavascriptRequirement */
1737
+ 0: {
1738
+ Decode_overflowIntoDynamicObj(requirement.fields[0], knownWithClass(InlineJavascriptRequirementValue.KnownFieldNames), element);
1739
+ break;
1740
+ }
1741
+ case /* DockerRequirement */
1742
+ 2: {
1743
+ Decode_overflowIntoDynamicObj(requirement.fields[0], knownWithClass(DockerRequirement.KnownFieldNames), element);
1744
+ break;
1745
+ }
1746
+ case /* LoadListingRequirement */
1747
+ 4: {
1748
+ Decode_overflowIntoDynamicObj(requirement.fields[0], knownWithClass(LoadListingRequirementValue.KnownFieldNames), element);
1749
+ break;
1750
+ }
1751
+ case /* EnvVarRequirement */
1752
+ 6: {
1753
+ break;
1754
+ }
1755
+ case /* SoftwareRequirement */
1756
+ 3: {
1757
+ break;
1758
+ }
1759
+ case /* ResourceRequirement */
1760
+ 8: {
1761
+ Decode_overflowIntoDynamicObj(requirement.fields[0], knownWithClass(ResourceRequirementInstance.KnownFieldNames), element);
1762
+ break;
1763
+ }
1764
+ case /* WorkReuseRequirement */
1765
+ 9: {
1766
+ Decode_overflowIntoDynamicObj(requirement.fields[0], knownWithClass(WorkReuseRequirementValue.KnownFieldNames), element);
1767
+ break;
1768
+ }
1769
+ case /* NetworkAccessRequirement */
1770
+ 11: {
1771
+ Decode_overflowIntoDynamicObj(requirement.fields[0], knownWithClass(NetworkAccessRequirementValue.KnownFieldNames), element);
1772
+ break;
1773
+ }
1774
+ case /* InplaceUpdateRequirement */
1775
+ 13: {
1776
+ Decode_overflowIntoDynamicObj(requirement.fields[0], knownWithClass(InplaceUpdateRequirementValue.KnownFieldNames), element);
1777
+ break;
1778
+ }
1779
+ default:
1780
+ }
1781
+ return requirement;
1782
+ }
1432
1783
  function Decode_requirementArrayDecoder(yEle) {
1433
1784
  let matchResult, items, other;
1434
1785
  if (yEle.tag === /* Object */
@@ -1454,15 +1805,15 @@ function Decode_requirementArrayDecoder(yEle) {
1454
1805
  }
1455
1806
  switch (matchResult) {
1456
1807
  case 0: {
1457
- const collection = map((ele) => object((get$) => {
1808
+ const collection = map$1((ele) => object((get$) => {
1458
1809
  let objectArg;
1459
- return Decode_requirementFromTypeName((objectArg = get$.Required, objectArg.Field("class", string)), get$);
1810
+ return Decode_addRequirementPayloadOverflow(ele, Decode_requirementFromTypeName((objectArg = get$.Required, objectArg.Field("class", string)), get$));
1460
1811
  }, ele), items);
1461
1812
  return Array.from(collection);
1462
1813
  }
1463
1814
  case 1:
1464
1815
  return object((get$_1) => {
1465
- const collection_1 = map$2((kv) => object((get$_2) => Decode_requirementFromTypeName(kv[0], get$_2), kv[1]), get$_1.Overflow.FieldList(empty()));
1816
+ const collection_1 = map$2((kv) => Decode_addRequirementPayloadOverflow(kv[1], object((get$_2) => Decode_requirementFromTypeName(kv[0], get$_2), kv[1])), get$_1.Overflow.FieldList(empty()));
1466
1817
  return Array.from(collection_1);
1467
1818
  }, yEle);
1468
1819
  default:
@@ -1473,7 +1824,7 @@ function Decode_tryDecodeKnownRequirementFromElement(element) {
1473
1824
  try {
1474
1825
  return object((get$) => {
1475
1826
  let objectArg;
1476
- return Decode_requirementFromTypeName((objectArg = get$.Required, objectArg.Field("class", string)), get$);
1827
+ return Decode_addRequirementPayloadOverflow(element, Decode_requirementFromTypeName((objectArg = get$.Required, objectArg.Field("class", string)), get$));
1477
1828
  }, element);
1478
1829
  } catch (ex) {
1479
1830
  let hintClass;
@@ -1544,7 +1895,7 @@ function Decode_hintArrayDecoder(yEle) {
1544
1895
  }
1545
1896
  switch (matchResult) {
1546
1897
  case 0: {
1547
- const collection = map(Decode_decodeHintElement, items);
1898
+ const collection = map$1(Decode_decodeHintElement, items);
1548
1899
  return Array.from(collection);
1549
1900
  }
1550
1901
  case 1:
@@ -1571,7 +1922,7 @@ function Decode_hintArrayDecoder(yEle) {
1571
1922
  default:
1572
1923
  return false;
1573
1924
  }
1574
- }, mappings) ? kv[1] : YAMLElement_Object(cons(YAMLElement_Mapping(YAMLContent_create_Z1C3A29C9("class"), YAMLElement_Object(singleton$1(YAMLElement_Value(YAMLContent_create_Z1C3A29C9(kv[0]))))), mappings))) : YAMLElement_Object(ofArray([YAMLElement_Mapping(YAMLContent_create_Z1C3A29C9("class"), YAMLElement_Object(singleton$1(YAMLElement_Value(YAMLContent_create_Z1C3A29C9(kv[0]))))), YAMLElement_Mapping(YAMLContent_create_Z1C3A29C9("value"), matchValue)]))));
1925
+ }, mappings) ? kv[1] : YAMLElement_Object(cons(YAMLElement_Mapping(YAMLContent_create_Z1C3A29C9("class"), YAMLElement_Object(singleton(YAMLElement_Value(YAMLContent_create_Z1C3A29C9(kv[0]))))), mappings))) : YAMLElement_Object(ofArray([YAMLElement_Mapping(YAMLContent_create_Z1C3A29C9("class"), YAMLElement_Object(singleton(YAMLElement_Value(YAMLContent_create_Z1C3A29C9(kv[0]))))), YAMLElement_Mapping(YAMLContent_create_Z1C3A29C9("value"), matchValue)]))));
1575
1926
  }, get$.Overflow.FieldList(empty()));
1576
1927
  return Array.from(collection_1);
1577
1928
  }, yEle);
@@ -1587,115 +1938,93 @@ const Decode_hintsDecoder = (value) => object((get$) => {
1587
1938
  const objectArg = get$.Optional;
1588
1939
  return objectArg.Field("hints", Decode_hintArrayDecoder);
1589
1940
  }, value);
1590
- const Decode_inputBindingDecoder = (value_5) => object((get$) => {
1941
+ const Decode_inputBindingDecoder = (value_9) => object((get$) => {
1591
1942
  const objectArg = get$.Optional;
1592
- return objectArg.Field("inputBinding", (value_4) => object((get$0027) => {
1593
- let objectArg_1, objectArg_2, objectArg_3, objectArg_4;
1594
- return new InputBinding((objectArg_1 = get$0027.Optional, objectArg_1.Field("prefix", string)), (objectArg_2 = get$0027.Optional, objectArg_2.Field("position", int)), (objectArg_3 = get$0027.Optional, objectArg_3.Field("itemSeparator", string)), (objectArg_4 = get$0027.Optional, objectArg_4.Field("separate", bool)));
1595
- }, value_4));
1596
- }, value_5);
1597
- const Decode_inputArrayDecoder = (value_1) => object((get$) => {
1598
- const dict = get$.Overflow.FieldList(empty());
1599
- const collection = toArray(delay(() => collect((key) => {
1600
- const value = getItemFromDict(dict, key);
1601
- const inputBinding = Decode_inputBindingDecoder(value);
1602
- let patternInput;
1603
- let matchResult, v, mappings;
1604
- if (value.tag === /* Object */
1605
- 3) {
1943
+ return objectArg.Field("inputBinding", (value) => object((get$0027) => {
1944
+ let objectArg_1, objectArg_2, objectArg_3, objectArg_4, objectArg_5, objectArg_6, objectArg_7;
1945
+ const binding = new InputBinding(unwrap((objectArg_1 = get$0027.Optional, objectArg_1.Field("prefix", string))), unwrap((objectArg_2 = get$0027.Optional, objectArg_2.Field("position", int))), unwrap((objectArg_3 = get$0027.Optional, objectArg_3.Field("itemSeparator", string))), unwrap((objectArg_4 = get$0027.Optional, objectArg_4.Field("separate", bool))), unwrap((objectArg_5 = get$0027.Optional, objectArg_5.Field("loadContents", bool))), unwrap((objectArg_6 = get$0027.Optional, objectArg_6.Field("valueFrom", string))), unwrap((objectArg_7 = get$0027.Optional, objectArg_7.Field("shellQuote", bool))));
1946
+ Decode_overflowIntoDynamicObj(binding, toList(InputBinding.KnownFieldNames), value);
1947
+ return binding;
1948
+ }, value));
1949
+ }, value_9);
1950
+ function Decode_decodeNamedInput(name, value) {
1951
+ let v;
1952
+ const inputBinding = Decode_inputBindingDecoder(value);
1953
+ const patternInput = value.tag === /* Object */
1954
+ 3 ? !isEmpty(value.fields[0]) ? head(value.fields[0]).tag === /* Value */
1955
+ 1 ? isEmpty(tail(value.fields[0])) ? (v = head(value.fields[0]).fields[0], Decode_cwlTypeStringMatcher(v.Value, defaultOf())) : Decode_cwlTypeDecoder(value) : Decode_cwlTypeDecoder(value) : Decode_cwlTypeDecoder(value) : Decode_cwlTypeDecoder(value);
1956
+ const input = new CWLInput(name, patternInput[0], void 0, void 0, unwrap(Decode_tryGetStringField("label", value)), unwrap(Decode_tryGetYamlField("secondaryFiles", value)), unwrap(Decode_tryGetBoolField("streamable", value)), unwrap(Decode_tryGetStringField("doc", value)), unwrap(Decode_tryGetStringField("format", value)), unwrap(Decode_tryGetBoolField("loadContents", value)), unwrap(Decode_tryGetLoadListingField("loadListing", value)), unwrap(Decode_tryGetYamlField("default", value)));
1957
+ if (patternInput[1]) {
1958
+ input.Optional = true;
1959
+ }
1960
+ input.InputBinding = inputBinding;
1961
+ Decode_overflowIntoDynamicObj(input, toList(CWLInput.KnownFieldNames), value);
1962
+ return input;
1963
+ }
1964
+ function Decode_decodeInputSequenceItem(warnings, path, index, item) {
1965
+ const matchValue = Decode_tryGetStringField("id", item);
1966
+ if (matchValue == null) {
1967
+ if (Decode_isIgnorableYamlNoise(item)) {
1968
+ return void 0;
1969
+ } else {
1970
+ Decode_addWarning(warnings, `${path}[${index}]`, "Skipped malformed unnamed CWL input entry.", item);
1971
+ return void 0;
1972
+ }
1973
+ } else {
1974
+ return Decode_decodeNamedInput(value(matchValue), item);
1975
+ }
1976
+ }
1977
+ function Decode_inputArrayDecoderWithWarnings(warnings, path, value) {
1978
+ let matchResult, items;
1979
+ switch (value.tag) {
1980
+ case /* Object */
1981
+ 3: {
1606
1982
  if (!isEmpty(value.fields[0])) {
1607
- if (head(value.fields[0]).tag === /* Value */
1608
- 1) {
1983
+ if (head(value.fields[0]).tag === /* Sequence */
1984
+ 2) {
1609
1985
  if (isEmpty(tail(value.fields[0]))) {
1610
1986
  matchResult = 0;
1611
- v = head(value.fields[0]).fields[0];
1987
+ items = head(value.fields[0]).fields[0];
1612
1988
  } else {
1613
1989
  matchResult = 1;
1614
- mappings = value.fields[0];
1615
1990
  }
1616
1991
  } else {
1617
1992
  matchResult = 1;
1618
- mappings = value.fields[0];
1619
1993
  }
1620
1994
  } else {
1621
1995
  matchResult = 1;
1622
- mappings = value.fields[0];
1623
1996
  }
1624
- } else {
1625
- matchResult = 2;
1997
+ break;
1626
1998
  }
1627
- switch (matchResult) {
1628
- case 0: {
1629
- patternInput = Decode_cwlTypeStringMatcher(v.Value, get$);
1630
- break;
1631
- }
1632
- case 1: {
1633
- if (exists((m) => {
1634
- let matchResult_1, k_1;
1635
- if (m.tag === /* Mapping */
1636
- 0) {
1637
- if (m.fields[0].Value === "type") {
1638
- matchResult_1 = 0;
1639
- k_1 = m.fields[0];
1640
- } else {
1641
- matchResult_1 = 1;
1642
- }
1643
- } else {
1644
- matchResult_1 = 1;
1645
- }
1646
- switch (matchResult_1) {
1647
- case 0:
1648
- return true;
1649
- default:
1650
- return false;
1651
- }
1652
- }, mappings)) {
1653
- patternInput = Decode_cwlTypeDecoder(value);
1654
- } else {
1655
- let matchResult_2, v_1;
1656
- if (value.tag === /* Object */
1657
- 3) {
1658
- if (!isEmpty(value.fields[0])) {
1659
- if (head(value.fields[0]).tag === /* Value */
1660
- 1) {
1661
- if (isEmpty(tail(value.fields[0]))) {
1662
- matchResult_2 = 0;
1663
- v_1 = head(value.fields[0]).fields[0];
1664
- } else {
1665
- matchResult_2 = 1;
1666
- }
1667
- } else {
1668
- matchResult_2 = 1;
1669
- }
1670
- } else {
1671
- matchResult_2 = 1;
1672
- }
1673
- } else {
1674
- matchResult_2 = 1;
1675
- }
1676
- switch (matchResult_2) {
1677
- case 0: {
1678
- patternInput = Decode_cwlTypeStringMatcher(v_1.Value, get$);
1679
- break;
1680
- }
1681
- default:
1682
- throw new Error("Unexpected input format without type field");
1683
- }
1684
- }
1685
- break;
1686
- }
1687
- default:
1688
- throw new Error("Unexpected input format in inputArrayDecoder");
1999
+ case /* Sequence */
2000
+ 2: {
2001
+ matchResult = 0;
2002
+ items = value.fields[0];
2003
+ break;
1689
2004
  }
1690
- const input = new CWLInput(key, patternInput[0]);
1691
- return append(patternInput[1] ? (setOptionalProperty("optional", true, input), empty$1()) : empty$1(), delay(() => append(inputBinding != null ? (setOptionalProperty("inputBinding", inputBinding, input), empty$1()) : empty$1(), delay(() => singleton(input)))));
1692
- }, dict.keys())));
1693
- return Array.from(collection);
1694
- }, value_1);
1695
- const Decode_inputsDecoder = (value) => object((get$) => {
1696
- const objectArg = get$.Optional;
1697
- return objectArg.Field("inputs", Decode_inputArrayDecoder);
1698
- }, value);
2005
+ default:
2006
+ matchResult = 1;
2007
+ }
2008
+ switch (matchResult) {
2009
+ case 0: {
2010
+ const collection = choose((x) => x, mapIndexed((index, item) => Decode_decodeInputSequenceItem(warnings, path, index, item), items));
2011
+ return Array.from(collection);
2012
+ }
2013
+ default: {
2014
+ const dict = object((get$) => get$.Overflow.FieldList(empty()), value);
2015
+ const collection_1 = toArray(delay(() => map$2((key) => Decode_decodeNamedInput(key, getItemFromDict(dict, key)), dict.keys())));
2016
+ return Array.from(collection_1);
2017
+ }
2018
+ }
2019
+ }
2020
+ const Decode_inputArrayDecoder = (value) => Decode_inputArrayDecoderWithWarnings(void 0, "inputs", value);
2021
+ function Decode_inputsDecoderWithWarnings(warnings) {
2022
+ return (value_1) => object((get$) => {
2023
+ const objectArg = get$.Optional;
2024
+ return objectArg.Field("inputs", (value) => Decode_inputArrayDecoderWithWarnings(warnings, "inputs", value));
2025
+ }, value_1);
2026
+ }
2027
+ const Decode_inputsDecoder = Decode_inputsDecoderWithWarnings(void 0);
1699
2028
  const Decode_baseCommandDecoder = (value_2) => object((get$) => {
1700
2029
  let baseCommandField;
1701
2030
  const objectArg = get$.Optional;
@@ -1928,13 +2257,16 @@ function Decode_scatterMethodFieldDecoder(field) {
1928
2257
  function Decode_expressionStringOptionFieldDecoder(field) {
1929
2258
  return (value) => object((get$) => {
1930
2259
  let objectArg;
1931
- return map$1(Decode_decodeStringOrExpression, (objectArg = get$.Optional, objectArg.Field(field, (x) => x)));
2260
+ return map(Decode_decodeStringOrExpression, (objectArg = get$.Optional, objectArg.Field(field, (x) => x)));
1932
2261
  }, value);
1933
2262
  }
1934
2263
  function Decode_decodeStepInputFromValue(id, value$1, allowScalarSource) {
1935
2264
  const scalarSource = allowScalarSource ? Decode_stringOrStringArrayDecoder(value$1) : void 0;
1936
2265
  const fieldSource = Decode_sourceArrayFieldDecoder("source")(value$1);
1937
- return new StepInput(id, scalarSource != null ? value(scalarSource) : fieldSource != null ? value(fieldSource) : void 0, Decode_yamlElementOptionFieldDecoder("default")(value$1), Decode_stringOptionFieldDecoder("valueFrom")(value$1), Decode_linkMergeFieldDecoder("linkMerge")(value$1), Decode_pickValueFieldDecoder("pickValue")(value$1), Decode_stringOptionFieldDecoder("doc")(value$1), Decode_boolOptionFieldDecoder("loadContents")(value$1), Decode_stringOptionFieldDecoder("loadListing")(value$1), Decode_stringOptionFieldDecoder("label")(value$1));
2266
+ const source = scalarSource != null ? value(scalarSource) : fieldSource != null ? value(fieldSource) : void 0;
2267
+ const stepInput = StepInput.create(id, unwrap(source), unwrap(Decode_yamlElementOptionFieldDecoder("default")(value$1)), unwrap(Decode_stringOptionFieldDecoder("valueFrom")(value$1)), unwrap(Decode_linkMergeFieldDecoder("linkMerge")(value$1)), unwrap(Decode_pickValueFieldDecoder("pickValue")(value$1)), unwrap(Decode_stringOptionFieldDecoder("doc")(value$1)), unwrap(Decode_boolOptionFieldDecoder("loadContents")(value$1)), unwrap(Decode_stringOptionFieldDecoder("loadListing")(value$1)), unwrap(Decode_stringOptionFieldDecoder("label")(value$1)));
2268
+ Decode_overflowIntoDynamicObj(stepInput, toList(StepInput.KnownFieldNames), value$1);
2269
+ return stepInput;
1938
2270
  }
1939
2271
  function Decode_decodeStepInputsFromMap(value) {
1940
2272
  const dict = object((get$) => get$.Overflow.FieldList(empty()), value);
@@ -1944,11 +2276,26 @@ function Decode_decodeStepInputsFromMap(value) {
1944
2276
  function Decode_decodeStepInputFromArrayItem(item) {
1945
2277
  return Decode_decodeStepInputFromValue(Decode_stringFieldDecoder("id")(item), item, false);
1946
2278
  }
1947
- function Decode_decodeStepInputsFromArray(items) {
1948
- const collection = map(Decode_decodeStepInputFromArrayItem, items);
2279
+ function Decode_decodeStepInputsFromArrayWithWarnings(warnings, path, items) {
2280
+ const collection = choose((x) => x, mapIndexed((index, item) => {
2281
+ const matchValue = Decode_tryGetStringField("id", item);
2282
+ if (matchValue == null) {
2283
+ if (Decode_isIgnorableYamlNoise(item)) {
2284
+ return void 0;
2285
+ } else {
2286
+ Decode_addWarning(warnings, `${path}[${index}]`, "Skipped malformed unnamed CWL step input entry.", item);
2287
+ return void 0;
2288
+ }
2289
+ } else {
2290
+ return Decode_decodeStepInputFromArrayItem(item);
2291
+ }
2292
+ }, items));
1949
2293
  return Array.from(collection);
1950
2294
  }
1951
- function Decode_inputStepDecoder(value) {
2295
+ function Decode_decodeStepInputsFromArray(items) {
2296
+ return Decode_decodeStepInputsFromArrayWithWarnings(void 0, "in", items);
2297
+ }
2298
+ function Decode_inputStepDecoderWithWarnings(warnings, path, value) {
1952
2299
  let matchResult, items;
1953
2300
  switch (value.tag) {
1954
2301
  case /* Object */
@@ -1981,11 +2328,12 @@ function Decode_inputStepDecoder(value) {
1981
2328
  }
1982
2329
  switch (matchResult) {
1983
2330
  case 0:
1984
- return Decode_decodeStepInputsFromArray(items);
2331
+ return Decode_decodeStepInputsFromArrayWithWarnings(warnings, path, items);
1985
2332
  default:
1986
2333
  return Decode_decodeStepInputsFromMap(value);
1987
2334
  }
1988
2335
  }
2336
+ const Decode_inputStepDecoder = (value) => Decode_inputStepDecoderWithWarnings(void 0, "in", value);
1989
2337
  function Decode_decodeStepOutputItem(value) {
1990
2338
  let matchResult, v;
1991
2339
  switch (value.tag) {
@@ -2020,8 +2368,12 @@ function Decode_decodeStepOutputItem(value) {
2020
2368
  switch (matchResult) {
2021
2369
  case 0:
2022
2370
  return StepOutput_StepOutputString(v.Value);
2023
- default:
2024
- return StepOutput_StepOutputRecord(new StepOutputParameter(Decode_stringFieldDecoder("id")(value)));
2371
+ default: {
2372
+ const id = Decode_stringFieldDecoder("id")(value);
2373
+ const output = StepOutputParameter.create(id);
2374
+ Decode_overflowIntoDynamicObj(output, toList(StepOutputParameter.KnownFieldNames), value);
2375
+ return StepOutput_StepOutputRecord(output);
2376
+ }
2025
2377
  }
2026
2378
  }
2027
2379
  const Decode_outputStepsDecoder = (value_2) => object((get$) => {
@@ -2101,7 +2453,7 @@ const Decode_outputStepsDecoder = (value_2) => object((get$) => {
2101
2453
  case 2:
2102
2454
  return [];
2103
2455
  case 3: {
2104
- const collection = map(Decode_decodeStepOutputItem, outputs);
2456
+ const collection = map$1(Decode_decodeStepOutputItem, outputs);
2105
2457
  return Array.from(collection);
2106
2458
  }
2107
2459
  default:
@@ -2160,13 +2512,13 @@ function Decode_withDefaultCwlVersion(defaultCwlVersion, yamlElement) {
2160
2512
  return yamlElement;
2161
2513
  } else {
2162
2514
  const fields_2 = yamlElement.fields[0];
2163
- return YAMLElement_Object(cons(YAMLElement_Mapping(YAMLContent_create_Z1C3A29C9("cwlVersion"), YAMLElement_Object(singleton$1(YAMLElement_Value(YAMLContent_create_Z1C3A29C9(defaultCwlVersion))))), fields_2));
2515
+ return YAMLElement_Object(cons(YAMLElement_Mapping(YAMLContent_create_Z1C3A29C9("cwlVersion"), YAMLElement_Object(singleton(YAMLElement_Value(YAMLContent_create_Z1C3A29C9(defaultCwlVersion))))), fields_2));
2164
2516
  }
2165
2517
  } else {
2166
2518
  return yamlElement;
2167
2519
  }
2168
2520
  }
2169
- function Decode_workflowStepRunDecoder(defaultCwlVersion, runValue) {
2521
+ function Decode_workflowStepRunDecoder(warnings, defaultCwlVersion, runValue) {
2170
2522
  let matchResult, v;
2171
2523
  switch (runValue.tag) {
2172
2524
  case /* Object */
@@ -2201,7 +2553,7 @@ function Decode_workflowStepRunDecoder(defaultCwlVersion, runValue) {
2201
2553
  case 0:
2202
2554
  return WorkflowStepRun_RunString(v.Value);
2203
2555
  case 1: {
2204
- const matchValue = Decode_decodeCWLProcessingUnitElement(Decode_withDefaultCwlVersion(defaultCwlVersion, runValue));
2556
+ const matchValue = Decode_decodeCWLProcessingUnitElementWithWarnings(warnings, Decode_withDefaultCwlVersion(defaultCwlVersion, runValue));
2205
2557
  switch (matchValue.tag) {
2206
2558
  case /* Workflow */
2207
2559
  1:
@@ -2220,14 +2572,17 @@ function Decode_workflowStepRunDecoder(defaultCwlVersion, runValue) {
2220
2572
  throw new Error(toText(interpolate("Unsupported run value for workflow step: %A%P()", [runValue])));
2221
2573
  }
2222
2574
  }
2223
- function Decode_decodeWorkflowStepFromValueWithId(defaultCwlVersion, stepId, value) {
2224
- const run = Decode_workflowStepRunDecoder(defaultCwlVersion, object((get$0027) => {
2575
+ function Decode_decodeWorkflowStepFromValueWithId(warnings, defaultCwlVersion, path, stepId, value) {
2576
+ const run = Decode_workflowStepRunDecoder(warnings, defaultCwlVersion, object((get$0027) => {
2225
2577
  const objectArg = get$0027.Required;
2226
2578
  return objectArg.Field("run", (x) => x);
2227
2579
  }, value));
2228
2580
  const inputs = object((get$0027_1) => {
2581
+ let arg_3;
2582
+ const path_1 = `${path}.in`;
2583
+ arg_3 = (value_1) => Decode_inputStepDecoderWithWarnings(warnings, path_1, value_1);
2229
2584
  const objectArg_1 = get$0027_1.Required;
2230
- return objectArg_1.Field("in", Decode_inputStepDecoder);
2585
+ return objectArg_1.Field("in", arg_3);
2231
2586
  }, value);
2232
2587
  const outputs = Decode_outputStepsDecoder(value);
2233
2588
  const requirements = Decode_requirementsDecoder(value);
@@ -2240,12 +2595,26 @@ function Decode_decodeWorkflowStepFromValueWithId(defaultCwlVersion, stepId, val
2240
2595
  if (hints != null) {
2241
2596
  wfStep.Hints = hints;
2242
2597
  }
2598
+ Decode_overflowIntoDynamicObj(wfStep, toList(WorkflowStep.KnownFieldNames), value);
2243
2599
  return wfStep;
2244
2600
  }
2245
2601
  function Decode_decodeWorkflowStepFromArrayItem(defaultCwlVersion, item) {
2246
- return Decode_decodeWorkflowStepFromValueWithId(defaultCwlVersion, Decode_stringFieldDecoder("id")(item), item);
2602
+ return Decode_decodeWorkflowStepFromValueWithId(void 0, defaultCwlVersion, "steps[]", Decode_stringFieldDecoder("id")(item), item);
2603
+ }
2604
+ function Decode_decodeWorkflowStepFromArrayItemWithWarnings(warnings, defaultCwlVersion, index, item) {
2605
+ const matchValue = Decode_tryGetStringField("id", item);
2606
+ if (matchValue == null) {
2607
+ if (Decode_isIgnorableYamlNoise(item)) {
2608
+ return void 0;
2609
+ } else {
2610
+ Decode_addWarning(warnings, `steps[${index}]`, "Skipped malformed unnamed CWL workflow step entry.", item);
2611
+ return void 0;
2612
+ }
2613
+ } else {
2614
+ return Decode_decodeWorkflowStepFromValueWithId(warnings, defaultCwlVersion, `steps[${index}]`, value(matchValue), item);
2615
+ }
2247
2616
  }
2248
- function Decode_stepArrayDecoderWithVersion(defaultCwlVersion, value) {
2617
+ function Decode_stepArrayDecoderWithVersion(warnings, defaultCwlVersion, value) {
2249
2618
  let matchResult, items;
2250
2619
  switch (value.tag) {
2251
2620
  case /* Object */
@@ -2278,38 +2647,37 @@ function Decode_stepArrayDecoderWithVersion(defaultCwlVersion, value) {
2278
2647
  }
2279
2648
  switch (matchResult) {
2280
2649
  case 0: {
2281
- const collection = map((item) => Decode_decodeWorkflowStepFromArrayItem(defaultCwlVersion, item), items);
2650
+ const collection = choose((x) => x, mapIndexed((index, item) => Decode_decodeWorkflowStepFromArrayItemWithWarnings(warnings, defaultCwlVersion, index, item), items));
2282
2651
  return Array.from(collection);
2283
2652
  }
2284
2653
  default: {
2285
2654
  const dict = object((get$) => get$.Overflow.FieldList(empty()), value);
2286
- const collection_1 = toArray(delay(() => map$2((key) => Decode_decodeWorkflowStepFromValueWithId(defaultCwlVersion, key, getItemFromDict(dict, key)), dict.keys())));
2655
+ const collection_1 = toArray(delay(() => map$2((key) => Decode_decodeWorkflowStepFromValueWithId(warnings, defaultCwlVersion, `steps.${key}`, key, getItemFromDict(dict, key)), dict.keys())));
2287
2656
  return Array.from(collection_1);
2288
2657
  }
2289
2658
  }
2290
2659
  }
2291
- function Decode_stepsDecoderWithVersion(defaultCwlVersion) {
2660
+ function Decode_stepsDecoderWithVersion(warnings, defaultCwlVersion) {
2292
2661
  return (value_1) => object((get$) => {
2293
2662
  const objectArg = get$.Required;
2294
- return objectArg.Field("steps", (value) => Decode_stepArrayDecoderWithVersion(defaultCwlVersion, value));
2663
+ return objectArg.Field("steps", (value) => Decode_stepArrayDecoderWithVersion(warnings, defaultCwlVersion, value));
2295
2664
  }, value_1);
2296
2665
  }
2297
- function Decode_commandLineToolDecoder(yamlCWL) {
2666
+ function Decode_commandLineToolDecoder(warnings, yamlCWL) {
2298
2667
  const cwlVersion = Decode_versionDecoder(yamlCWL);
2299
- const outputs = Decode_outputsDecoder(yamlCWL);
2300
- const inputs = Decode_inputsDecoder(yamlCWL);
2668
+ const outputs = Decode_outputsDecoderWithWarnings(warnings)(yamlCWL);
2669
+ const inputs = Decode_inputsDecoderWithWarnings(warnings)(yamlCWL);
2301
2670
  const requirements = Decode_requirementsDecoder(yamlCWL);
2302
2671
  const hints = Decode_hintsDecoder(yamlCWL);
2303
2672
  const intent = Decode_intentDecoder(yamlCWL);
2304
2673
  const baseCommand = Decode_baseCommandDecoder(yamlCWL);
2305
2674
  const doc = Decode_docDecoder(yamlCWL);
2306
2675
  const label = Decode_labelDecoder(yamlCWL);
2307
- const description = new CWLToolDescription(outputs, cwlVersion, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, unwrap(Decode_idDecoder(yamlCWL)));
2676
+ const description = new CWLToolDescription(outputs, cwlVersion, void 0, unwrap(Decode_tryGetYamlField("arguments", yamlCWL)), unwrap(Decode_tryGetStringField("stdin", yamlCWL)), unwrap(Decode_tryGetStringField("stderr", yamlCWL)), unwrap(Decode_tryGetStringField("stdout", yamlCWL)), unwrap(Decode_tryGetIntArrayField("successCodes", yamlCWL)), unwrap(Decode_tryGetIntArrayField("temporaryFailCodes", yamlCWL)), unwrap(Decode_tryGetIntArrayField("permanentFailCodes", yamlCWL)), void 0, void 0, void 0, void 0, void 0, void 0, void 0, unwrap(Decode_idDecoder(yamlCWL)));
2308
2677
  let metadata;
2309
2678
  const md = new DynamicObj();
2310
- object((get$) => Decode_overflowDecoder(md, get$.Overflow.FieldList(ofArray(["inputs", "outputs", "class", "id", "label", "doc", "intent", "requirements", "hints", "cwlVersion", "baseCommand", "arguments", "stdin", "stderr", "stdout", "successCodes", "temporaryFailCodes", "permanentFailCodes"]))), yamlCWL);
2679
+ object((get$) => Decode_overflowDecoder(md, get$.Overflow.FieldList(toList(CWLToolDescription.KnownFieldNames))), yamlCWL);
2311
2680
  metadata = md;
2312
- object((get$_1) => Decode_overflowDecoder(description, get$_1.MultipleOptional.FieldList(ofArray(["arguments", "stdin", "stderr", "stdout", "successCodes", "temporaryFailCodes", "permanentFailCodes"]))), yamlCWL);
2313
2681
  if (inputs != null) {
2314
2682
  description.Inputs = inputs;
2315
2683
  }
@@ -2336,10 +2704,10 @@ function Decode_commandLineToolDecoder(yamlCWL) {
2336
2704
  }
2337
2705
  return description;
2338
2706
  }
2339
- function Decode_expressionToolDecoder(yamlCWL) {
2707
+ function Decode_expressionToolDecoder(warnings, yamlCWL) {
2340
2708
  const cwlVersion = Decode_versionDecoder(yamlCWL);
2341
- const outputs = Decode_outputsDecoder(yamlCWL);
2342
- const inputs = Decode_inputsDecoder(yamlCWL);
2709
+ const outputs = Decode_outputsDecoderWithWarnings(warnings)(yamlCWL);
2710
+ const inputs = Decode_inputsDecoderWithWarnings(warnings)(yamlCWL);
2343
2711
  const requirements = Decode_requirementsDecoder(yamlCWL);
2344
2712
  const hints = Decode_hintsDecoder(yamlCWL);
2345
2713
  const intent = Decode_intentDecoder(yamlCWL);
@@ -2351,7 +2719,7 @@ function Decode_expressionToolDecoder(yamlCWL) {
2351
2719
  }, yamlCWL), cwlVersion, void 0, void 0, void 0, void 0, void 0, void 0, void 0, unwrap(Decode_idDecoder(yamlCWL)));
2352
2720
  let metadata;
2353
2721
  const md = new DynamicObj();
2354
- object((get$_1) => Decode_overflowDecoder(md, get$_1.Overflow.FieldList(ofArray(["inputs", "outputs", "class", "id", "label", "doc", "intent", "requirements", "hints", "cwlVersion", "expression"]))), yamlCWL);
2722
+ object((get$_1) => Decode_overflowDecoder(md, get$_1.Overflow.FieldList(toList(CWLExpressionToolDescription.KnownFieldNames))), yamlCWL);
2355
2723
  metadata = md;
2356
2724
  if (inputs != null) {
2357
2725
  description.Inputs = inputs;
@@ -2376,11 +2744,11 @@ function Decode_expressionToolDecoder(yamlCWL) {
2376
2744
  }
2377
2745
  return description;
2378
2746
  }
2379
- function Decode_operationDecoder(yamlCWL) {
2747
+ function Decode_operationDecoder(warnings, yamlCWL) {
2380
2748
  const cwlVersion = Decode_versionDecoder(yamlCWL);
2381
- const outputs = Decode_outputsDecoder(yamlCWL);
2749
+ const outputs = Decode_outputsDecoderWithWarnings(warnings)(yamlCWL);
2382
2750
  let inputs;
2383
- const matchValue = Decode_inputsDecoder(yamlCWL);
2751
+ const matchValue = Decode_inputsDecoderWithWarnings(warnings)(yamlCWL);
2384
2752
  if (matchValue == null) {
2385
2753
  throw new Error("Inputs are required for an operation");
2386
2754
  } else {
@@ -2394,7 +2762,7 @@ function Decode_operationDecoder(yamlCWL) {
2394
2762
  const description = new CWLOperationDescription(inputs, outputs, cwlVersion, void 0, void 0, void 0, void 0, void 0, void 0, unwrap(Decode_idDecoder(yamlCWL)));
2395
2763
  let metadata;
2396
2764
  const md = new DynamicObj();
2397
- object((get$) => Decode_overflowDecoder(md, get$.Overflow.FieldList(ofArray(["inputs", "outputs", "label", "doc", "intent", "class", "id", "requirements", "hints", "cwlVersion"]))), yamlCWL);
2765
+ object((get$) => Decode_overflowDecoder(md, get$.Overflow.FieldList(toList(CWLOperationDescription.KnownFieldNames))), yamlCWL);
2398
2766
  metadata = md;
2399
2767
  if (requirements != null) {
2400
2768
  description.Requirements = requirements;
@@ -2416,11 +2784,11 @@ function Decode_operationDecoder(yamlCWL) {
2416
2784
  }
2417
2785
  return description;
2418
2786
  }
2419
- function Decode_workflowDecoder(yamlCWL) {
2787
+ function Decode_workflowDecoder(warnings, yamlCWL) {
2420
2788
  const cwlVersion = Decode_versionDecoder(yamlCWL);
2421
- const outputs = Decode_outputsDecoder(yamlCWL);
2789
+ const outputs = Decode_outputsDecoderWithWarnings(warnings)(yamlCWL);
2422
2790
  let inputs;
2423
- const matchValue = Decode_inputsDecoder(yamlCWL);
2791
+ const matchValue = Decode_inputsDecoderWithWarnings(warnings)(yamlCWL);
2424
2792
  if (matchValue == null) {
2425
2793
  throw new Error("Inputs are required for a workflow");
2426
2794
  } else {
@@ -2429,13 +2797,13 @@ function Decode_workflowDecoder(yamlCWL) {
2429
2797
  const requirements = Decode_requirementsDecoder(yamlCWL);
2430
2798
  const hints = Decode_hintsDecoder(yamlCWL);
2431
2799
  const intent = Decode_intentDecoder(yamlCWL);
2432
- const steps = Decode_stepsDecoderWithVersion(cwlVersion)(yamlCWL);
2800
+ const steps = Decode_stepsDecoderWithVersion(warnings, cwlVersion)(yamlCWL);
2433
2801
  const doc = Decode_docDecoder(yamlCWL);
2434
2802
  const label = Decode_labelDecoder(yamlCWL);
2435
2803
  const description = new CWLWorkflowDescription(steps, inputs, outputs, cwlVersion, void 0, void 0, void 0, void 0, void 0, void 0, unwrap(Decode_idDecoder(yamlCWL)));
2436
2804
  let metadata;
2437
2805
  const md = new DynamicObj();
2438
- object((get$) => Decode_overflowDecoder(md, get$.Overflow.FieldList(ofArray(["inputs", "outputs", "label", "doc", "intent", "class", "steps", "id", "requirements", "hints", "cwlVersion"]))), yamlCWL);
2806
+ object((get$) => Decode_overflowDecoder(md, get$.Overflow.FieldList(toList(CWLWorkflowDescription.KnownFieldNames))), yamlCWL);
2439
2807
  metadata = md;
2440
2808
  if (requirements != null) {
2441
2809
  description.Requirements = requirements;
@@ -2457,243 +2825,218 @@ function Decode_workflowDecoder(yamlCWL) {
2457
2825
  }
2458
2826
  return description;
2459
2827
  }
2460
- function Decode_decodeCWLProcessingUnitElement(yamlCWL) {
2828
+ function Decode_decodeCWLProcessingUnitElementWithWarnings(warnings, yamlCWL) {
2461
2829
  const cls = Decode_classDecoder(yamlCWL);
2462
2830
  switch (cls) {
2463
2831
  case "CommandLineTool":
2464
- return CWLProcessingUnit_CommandLineTool(Decode_commandLineToolDecoder(yamlCWL));
2832
+ return CWLProcessingUnit_CommandLineTool(Decode_commandLineToolDecoder(warnings, yamlCWL));
2465
2833
  case "Workflow":
2466
- return CWLProcessingUnit_Workflow(Decode_workflowDecoder(yamlCWL));
2834
+ return CWLProcessingUnit_Workflow(Decode_workflowDecoder(warnings, yamlCWL));
2467
2835
  case "ExpressionTool":
2468
- return CWLProcessingUnit_ExpressionTool(Decode_expressionToolDecoder(yamlCWL));
2836
+ return CWLProcessingUnit_ExpressionTool(Decode_expressionToolDecoder(warnings, yamlCWL));
2469
2837
  case "Operation":
2470
- return CWLProcessingUnit_Operation(Decode_operationDecoder(yamlCWL));
2838
+ return CWLProcessingUnit_Operation(Decode_operationDecoder(warnings, yamlCWL));
2471
2839
  default:
2472
2840
  throw new Error(`Invalid or unsupported CWL class: ${cls}`);
2473
2841
  }
2474
2842
  }
2475
- const Decode_stepArrayDecoder = (value) => Decode_stepArrayDecoderWithVersion("v1.2", value);
2476
- const Decode_stepsDecoder = Decode_stepsDecoderWithVersion("v1.2");
2843
+ function Decode_decodeCWLProcessingUnitElement(yamlCWL) {
2844
+ return Decode_decodeCWLProcessingUnitElementWithWarnings(void 0, yamlCWL);
2845
+ }
2846
+ const Decode_stepArrayDecoder = (value) => Decode_stepArrayDecoderWithVersion(void 0, "v1.2", value);
2847
+ const Decode_stepsDecoder = Decode_stepsDecoderWithVersion(void 0, "v1.2");
2848
+ function Decode_decodeCommandLineToolWithWarnings(cwl) {
2849
+ const warnings = [];
2850
+ return new Decode_DecodeResult$1(Decode_commandLineToolDecoder(warnings, Decode_readSanitizedYaml(cwl)), warnings);
2851
+ }
2477
2852
  function Decode_decodeCommandLineTool(cwl) {
2478
- return Decode_commandLineToolDecoder(Decode_readSanitizedYaml(cwl));
2853
+ return Decode_decodeCommandLineToolWithWarnings(cwl).Value;
2854
+ }
2855
+ function Decode_decodeWorkflowWithWarnings(cwl) {
2856
+ const warnings = [];
2857
+ return new Decode_DecodeResult$1(Decode_workflowDecoder(warnings, Decode_readSanitizedYaml(cwl)), warnings);
2479
2858
  }
2480
2859
  function Decode_decodeWorkflow(cwl) {
2481
- return Decode_workflowDecoder(Decode_readSanitizedYaml(cwl));
2860
+ return Decode_decodeWorkflowWithWarnings(cwl).Value;
2861
+ }
2862
+ function Decode_decodeExpressionToolWithWarnings(cwl) {
2863
+ const warnings = [];
2864
+ return new Decode_DecodeResult$1(Decode_expressionToolDecoder(warnings, Decode_readSanitizedYaml(cwl)), warnings);
2482
2865
  }
2483
2866
  function Decode_decodeExpressionTool(cwl) {
2484
- return Decode_expressionToolDecoder(Decode_readSanitizedYaml(cwl));
2867
+ return Decode_decodeExpressionToolWithWarnings(cwl).Value;
2868
+ }
2869
+ function Decode_decodeOperationWithWarnings(cwl) {
2870
+ const warnings = [];
2871
+ return new Decode_DecodeResult$1(Decode_operationDecoder(warnings, Decode_readSanitizedYaml(cwl)), warnings);
2485
2872
  }
2486
2873
  function Decode_decodeOperation(cwl) {
2487
- return Decode_operationDecoder(Decode_readSanitizedYaml(cwl));
2874
+ return Decode_decodeOperationWithWarnings(cwl).Value;
2875
+ }
2876
+ function Decode_decodeCWLProcessingUnitWithWarnings(cwl) {
2877
+ const warnings = [];
2878
+ return new Decode_DecodeResult$1(Decode_decodeCWLProcessingUnitElementWithWarnings(warnings, Decode_readSanitizedYaml(cwl)), warnings);
2488
2879
  }
2489
2880
  function Decode_decodeCWLProcessingUnit(cwl) {
2490
- return Decode_decodeCWLProcessingUnitElement(Decode_readSanitizedYaml(cwl));
2881
+ return Decode_decodeCWLProcessingUnitWithWarnings(cwl).Value;
2491
2882
  }
2492
2883
  function DecodeParameters_cwlParameterReferenceDecoder(get$, key, yEle) {
2493
- let v_1;
2494
- let matchResult, v, v1, v2, s;
2495
- if (yEle.tag === /* Object */
2496
- 3) {
2497
- if (!isEmpty(yEle.fields[0])) {
2498
- switch (head(yEle.fields[0]).tag) {
2499
- case /* Value */
2500
- 1: {
2501
- if (isEmpty(tail(yEle.fields[0]))) {
2502
- matchResult = 0;
2503
- v = head(yEle.fields[0]).fields[0];
2884
+ let collection, collection_1, className_2, matchValue_4, sequenceValue, scalarOrObject, matchValue_5;
2885
+ const tryScalarString = (_arg) => {
2886
+ let matchResult, v;
2887
+ switch (_arg.tag) {
2888
+ case /* Value */
2889
+ 1: {
2890
+ matchResult = 0;
2891
+ v = _arg.fields[0];
2892
+ break;
2893
+ }
2894
+ case /* Object */
2895
+ 3: {
2896
+ if (!isEmpty(_arg.fields[0])) {
2897
+ if (head(_arg.fields[0]).tag === /* Value */
2898
+ 1) {
2899
+ if (isEmpty(tail(_arg.fields[0]))) {
2900
+ matchResult = 0;
2901
+ v = head(_arg.fields[0]).fields[0];
2902
+ } else {
2903
+ matchResult = 1;
2904
+ }
2504
2905
  } else {
2505
- matchResult = 3;
2906
+ matchResult = 1;
2506
2907
  }
2507
- break;
2908
+ } else {
2909
+ matchResult = 1;
2508
2910
  }
2509
- case /* Mapping */
2510
- 0: {
2511
- if (head(yEle.fields[0]).fields[1].tag === /* Object */
2512
- 3) {
2513
- if (!isEmpty(head(yEle.fields[0]).fields[1].fields[0])) {
2514
- if (head(head(yEle.fields[0]).fields[1].fields[0]).tag === /* Value */
2515
- 1) {
2516
- if (isEmpty(tail(head(yEle.fields[0]).fields[1].fields[0]))) {
2517
- if (!isEmpty(tail(yEle.fields[0]))) {
2518
- if (head(tail(yEle.fields[0])).tag === /* Mapping */
2519
- 0) {
2520
- if (head(tail(yEle.fields[0])).fields[1].tag === /* Object */
2521
- 3) {
2522
- if (!isEmpty(head(tail(yEle.fields[0])).fields[1].fields[0])) {
2523
- if (head(head(tail(yEle.fields[0])).fields[1].fields[0]).tag === /* Value */
2524
- 1) {
2525
- if (isEmpty(tail(head(tail(yEle.fields[0])).fields[1].fields[0]))) {
2526
- if (isEmpty(tail(tail(yEle.fields[0])))) {
2527
- matchResult = 1;
2528
- v1 = head(head(yEle.fields[0]).fields[1].fields[0]).fields[0];
2529
- v2 = head(head(tail(yEle.fields[0])).fields[1].fields[0]).fields[0];
2530
- } else {
2531
- matchResult = 3;
2532
- }
2533
- } else {
2534
- matchResult = 3;
2535
- }
2536
- } else {
2537
- matchResult = 3;
2538
- }
2539
- } else {
2540
- matchResult = 3;
2541
- }
2542
- } else {
2543
- matchResult = 3;
2544
- }
2545
- } else {
2546
- matchResult = 3;
2547
- }
2548
- } else {
2549
- matchResult = 3;
2550
- }
2551
- } else {
2552
- matchResult = 3;
2553
- }
2554
- } else {
2555
- matchResult = 3;
2556
- }
2911
+ break;
2912
+ }
2913
+ default:
2914
+ matchResult = 1;
2915
+ }
2916
+ switch (matchResult) {
2917
+ case 0:
2918
+ return v.Value;
2919
+ default:
2920
+ return void 0;
2921
+ }
2922
+ };
2923
+ const tryField = (fieldName, value) => {
2924
+ try {
2925
+ return object((get$_1) => {
2926
+ const objectArg = get$_1.Optional;
2927
+ return objectArg.Field(fieldName, (x) => x);
2928
+ }, value);
2929
+ } catch (matchValue) {
2930
+ if (Decode_isRecoverableDecodingError(matchValue)) {
2931
+ return void 0;
2932
+ } else {
2933
+ throw matchValue;
2934
+ }
2935
+ }
2936
+ };
2937
+ const tryStringField = (fieldName_1, value_1) => bind(tryScalarString, tryField(fieldName_1, value_1));
2938
+ const withOverflow = (reference, value_2) => {
2939
+ Decode_overflowIntoDynamicObj(reference, toList(CWLParameterReference.KnownFieldNames), value_2);
2940
+ return reference;
2941
+ };
2942
+ const pathValue = (value_4) => orElseWith(tryStringField("path", value_4), () => tryStringField("location", value_4));
2943
+ let matchResult_1, v_1, s;
2944
+ switch (yEle.tag) {
2945
+ case /* Value */
2946
+ 1: {
2947
+ matchResult_1 = 0;
2948
+ v_1 = yEle.fields[0];
2949
+ break;
2950
+ }
2951
+ case /* Object */
2952
+ 3: {
2953
+ if (!isEmpty(yEle.fields[0])) {
2954
+ switch (head(yEle.fields[0]).tag) {
2955
+ case /* Value */
2956
+ 1: {
2957
+ if (isEmpty(tail(yEle.fields[0]))) {
2958
+ matchResult_1 = 0;
2959
+ v_1 = head(yEle.fields[0]).fields[0];
2557
2960
  } else {
2558
- matchResult = 3;
2961
+ matchResult_1 = 2;
2559
2962
  }
2560
- } else {
2561
- matchResult = 3;
2963
+ break;
2562
2964
  }
2563
- break;
2564
- }
2565
- case /* Sequence */
2566
- 2: {
2567
- if (isEmpty(tail(yEle.fields[0]))) {
2568
- matchResult = 2;
2569
- s = head(yEle.fields[0]).fields[0];
2570
- } else {
2571
- matchResult = 3;
2965
+ case /* Sequence */
2966
+ 2: {
2967
+ if (isEmpty(tail(yEle.fields[0]))) {
2968
+ matchResult_1 = 1;
2969
+ s = head(yEle.fields[0]).fields[0];
2970
+ } else {
2971
+ matchResult_1 = 2;
2972
+ }
2973
+ break;
2572
2974
  }
2573
- break;
2975
+ default:
2976
+ matchResult_1 = 2;
2574
2977
  }
2575
- default:
2576
- matchResult = 3;
2978
+ } else {
2979
+ matchResult_1 = 2;
2577
2980
  }
2578
- } else {
2579
- matchResult = 3;
2981
+ break;
2580
2982
  }
2581
- } else {
2582
- matchResult = 3;
2983
+ case /* Sequence */
2984
+ 2: {
2985
+ matchResult_1 = 1;
2986
+ s = yEle.fields[0];
2987
+ break;
2988
+ }
2989
+ default:
2990
+ matchResult_1 = 3;
2583
2991
  }
2584
- switch (matchResult) {
2992
+ switch (matchResult_1) {
2585
2993
  case 0:
2586
- return new CWLParameterReference(key, [v.Value]);
2587
- case 1:
2588
- return new CWLParameterReference(key, [v2.Value], Decode_cwlTypeStringMatcher(v1.Value, get$)[0]);
2994
+ return new CWLParameterReference(key, [v_1.Value]);
2995
+ case 1: {
2996
+ const items = s;
2997
+ const matchValue_6 = tryHead(items);
2998
+ if (matchValue_6 == null) {
2999
+ return new CWLParameterReference(key, []);
3000
+ } else {
3001
+ const matchValue_7 = tryStringField("class", value(matchValue_6));
3002
+ let matchResult_2, className_3;
3003
+ if (matchValue_7 != null) {
3004
+ if (className_2 = value(matchValue_7), className_2 === "File" ? true : className_2 === "Directory") {
3005
+ matchResult_2 = 0;
3006
+ className_3 = value(matchValue_7);
3007
+ } else {
3008
+ matchResult_2 = 1;
3009
+ }
3010
+ } else {
3011
+ matchResult_2 = 1;
3012
+ }
3013
+ switch (matchResult_2) {
3014
+ case 0:
3015
+ return new CWLParameterReference(key, (collection = choose(pathValue, items), Array.from(collection)), CWLType_Array(new InputArraySchema(className_3 === "Directory" ? CWLType_Directory(new DirectoryInstance()) : CWLType_File(new FileInstance()))));
3016
+ default:
3017
+ return new CWLParameterReference(key, (collection_1 = choose(tryScalarString, items), Array.from(collection_1)));
3018
+ }
3019
+ }
3020
+ }
2589
3021
  case 2: {
2590
- const matchValue = tryHead(s);
2591
- let matchResult_1, mappings;
2592
- if (matchValue != null) {
2593
- if (value(matchValue).tag === /* Object */
2594
- 3) {
2595
- matchResult_1 = 0;
2596
- mappings = value(matchValue).fields[0];
3022
+ const value_5 = yEle;
3023
+ const matchValue_1 = tryStringField("class", value_5);
3024
+ const matchValue_2 = tryStringField("type", value_5);
3025
+ if (matchValue_1 == null) {
3026
+ if (matchValue_2 == null) {
3027
+ return withOverflow(new CWLParameterReference(key, []), value_5);
2597
3028
  } else {
2598
- matchResult_1 = 1;
3029
+ const patternInput = Decode_cwlTypeStringMatcher(value(matchValue_2), get$);
3030
+ return withOverflow(new CWLParameterReference(key, (matchValue_4 = tryField("value", value_5), matchValue_4 == null ? [] : value(matchValue_4).tag === /* Object */
3031
+ 3 ? !isEmpty(value(matchValue_4).fields[0]) ? head(value(matchValue_4).fields[0]).tag === /* Sequence */
3032
+ 2 ? isEmpty(tail(value(matchValue_4).fields[0])) ? (sequenceValue = value(matchValue_4), resizearray(string, sequenceValue)) : (scalarOrObject = value(matchValue_4), matchValue_5 = tryScalarString(scalarOrObject), matchValue_5 == null ? [] : [value(matchValue_5)]) : (scalarOrObject = value(matchValue_4), matchValue_5 = tryScalarString(scalarOrObject), matchValue_5 == null ? [] : [value(matchValue_5)]) : (scalarOrObject = value(matchValue_4), matchValue_5 = tryScalarString(scalarOrObject), matchValue_5 == null ? [] : [value(matchValue_5)]) : value(matchValue_4).tag === /* Sequence */
3033
+ 2 ? (sequenceValue = value(matchValue_4), resizearray(string, sequenceValue)) : (scalarOrObject = value(matchValue_4), matchValue_5 = tryScalarString(scalarOrObject), matchValue_5 == null ? [] : [value(matchValue_5)])), patternInput[0]), value_5);
2599
3034
  }
2600
3035
  } else {
2601
- matchResult_1 = 1;
2602
- }
2603
- switch (matchResult_1) {
2604
- case 0:
2605
- if (!exists((_arg) => {
2606
- if (_arg.tag === /* Mapping */
2607
- 0) {
2608
- return true;
2609
- } else {
2610
- return false;
2611
- }
2612
- }, mappings)) {
2613
- return new CWLParameterReference(key, resizearray(string, YAMLElement_Sequence(s)));
2614
- } else if (exists((_arg_1) => {
2615
- let matchResult_2, k_1;
2616
- if (_arg_1.tag === /* Mapping */
2617
- 0) {
2618
- if (_arg_1.fields[0].Value === "class") {
2619
- matchResult_2 = 0;
2620
- k_1 = _arg_1.fields[0];
2621
- } else {
2622
- matchResult_2 = 1;
2623
- }
2624
- } else {
2625
- matchResult_2 = 1;
2626
- }
2627
- switch (matchResult_2) {
2628
- case 0:
2629
- return true;
2630
- default:
2631
- return false;
2632
- }
2633
- }, mappings)) {
2634
- const paths = [];
2635
- const enumerator = getEnumerator(s);
2636
- try {
2637
- while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
2638
- const item = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
2639
- if (item.tag === /* Object */
2640
- 3) {
2641
- const enumerator_1 = getEnumerator(item.fields[0]);
2642
- try {
2643
- while (enumerator_1["System.Collections.IEnumerator.MoveNext"]()) {
2644
- const mapping = enumerator_1["System.Collections.Generic.IEnumerator`1.get_Current"]();
2645
- let matchResult_3, k_3, v_2;
2646
- if (mapping.tag === /* Mapping */
2647
- 0) {
2648
- if (mapping.fields[1].tag === /* Object */
2649
- 3) {
2650
- if (!isEmpty(mapping.fields[1].fields[0])) {
2651
- if (head(mapping.fields[1].fields[0]).tag === /* Value */
2652
- 1) {
2653
- if (isEmpty(tail(mapping.fields[1].fields[0]))) {
2654
- if (v_1 = head(mapping.fields[1].fields[0]).fields[0], mapping.fields[0].Value === "path") {
2655
- matchResult_3 = 0;
2656
- k_3 = mapping.fields[0];
2657
- v_2 = head(mapping.fields[1].fields[0]).fields[0];
2658
- } else {
2659
- matchResult_3 = 1;
2660
- }
2661
- } else {
2662
- matchResult_3 = 1;
2663
- }
2664
- } else {
2665
- matchResult_3 = 1;
2666
- }
2667
- } else {
2668
- matchResult_3 = 1;
2669
- }
2670
- } else {
2671
- matchResult_3 = 1;
2672
- }
2673
- } else {
2674
- matchResult_3 = 1;
2675
- }
2676
- switch (matchResult_3) {
2677
- case 0: {
2678
- void paths.push(v_2.Value);
2679
- break;
2680
- }
2681
- }
2682
- }
2683
- } finally {
2684
- disposeSafe(enumerator_1);
2685
- }
2686
- }
2687
- }
2688
- } finally {
2689
- disposeSafe(enumerator);
2690
- }
2691
- return new CWLParameterReference(key, paths, CWLType_Array(new InputArraySchema(CWLType_File(FileInstance_$ctor()), void 0, void 0, void 0)));
2692
- } else {
2693
- return new CWLParameterReference(key, []);
2694
- }
2695
- default:
2696
- return new CWLParameterReference(key, resizearray(string, YAMLElement_Sequence(s)));
3036
+ let cwlType;
3037
+ const className = value(matchValue_1);
3038
+ cwlType = className === "File" ? CWLType_file() : className === "Directory" ? CWLType_directory() : void 0;
3039
+ return withOverflow(new CWLParameterReference(key, defaultArg(map((p) => [p], pathValue(value_5)), []), unwrap(cwlType)), value_5);
2697
3040
  }
2698
3041
  }
2699
3042
  default:
@@ -2709,4 +3052,4 @@ function DecodeParameters_decodeYAMLParameterFile(yaml) {
2709
3052
  return DecodeParameters_cwlparameterReferenceArrayDecoder(read(yaml));
2710
3053
  }
2711
3054
 
2712
- export { DecodeParameters_cwlParameterReferenceDecoder, DecodeParameters_cwlparameterReferenceArrayDecoder, DecodeParameters_decodeYAMLParameterFile, Decode_baseCommandDecoder, Decode_boolOptionFieldDecoder, Decode_classDecoder, Decode_commandLineToolDecoder, Decode_countLeadingSpaces, Decode_cwlSimpleTypeFromString, Decode_cwlTypeDecoder, Decode_cwlTypeDecoder$0027, Decode_cwlTypeStringMatcher, Decode_decodeCWLProcessingUnit, Decode_decodeCWLProcessingUnitElement, Decode_decodeCommandLineTool, Decode_decodeExpressionTool, Decode_decodeHintElement, Decode_decodeOperation, Decode_decodeResourceScalar, Decode_decodeSchemaSaladString, Decode_decodeStepInputFromArrayItem, Decode_decodeStepInputFromValue, Decode_decodeStepInputsFromArray, Decode_decodeStepInputsFromMap, Decode_decodeStepOutputItem, Decode_decodeStringArrayOrScalar, Decode_decodeStringOrExpression, Decode_decodeWorkflow, Decode_decodeWorkflowStepFromArrayItem, Decode_decodeWorkflowStepFromValueWithId, Decode_direntDecoder, Decode_docDecoder, Decode_dockerRequirementDecoder, Decode_envVarRequirementDecoder, Decode_expressionStringOptionFieldDecoder, Decode_expressionToolDecoder, Decode_hasField, Decode_hintArrayDecoder, Decode_hintsDecoder, Decode_idDecoder, Decode_initialWorkDirEntryDecoder, Decode_initialWorkDirRequirementDecoder, Decode_inlineJavascriptRequirementDecoder, Decode_inplaceUpdateRequirementDecoder, Decode_inputArrayDecoder, Decode_inputArraySchemaDecoder, Decode_inputBindingDecoder, Decode_inputEnumSchemaDecoder, Decode_inputRecordFieldDecoder, Decode_inputRecordSchemaDecoder, Decode_inputStepDecoder, Decode_inputsDecoder, Decode_intentDecoder, Decode_isBlankLine, Decode_isRecoverableDecodingError, Decode_labelDecoder, Decode_linkMergeFieldDecoder, Decode_loadListingRequirementDecoder, Decode_networkAccessRequirementDecoder, Decode_normalizeLineEndings, Decode_normalizeYamlInput, Decode_operationDecoder, Decode_optionalResourceField, Decode_outputArrayDecoder, Decode_outputBindingDecoder, Decode_outputBindingGlobDecoder, Decode_outputSourceDecoder, Decode_outputStepsDecoder, Decode_outputsDecoder, Decode_overflowDecoder, Decode_parseArrayShorthand, Decode_pickValueFieldDecoder, Decode_readSanitizedYaml, Decode_removeFullLineComments, Decode_removeYamlComments, Decode_requirementArrayDecoder, Decode_requirementFromTypeName, Decode_requirementsDecoder, Decode_resourceRequirementDecoder, Decode_scatterFieldDecoder, Decode_scatterMethodFieldDecoder, Decode_schemaDefRequirementDecoder, Decode_schemaDefRequirementTypeDecoder, Decode_softwareRequirementDecoder, Decode_sourceArrayFieldDecoder, Decode_stepArrayDecoder, Decode_stepArrayDecoderWithVersion, Decode_stepsDecoder, Decode_stepsDecoderWithVersion, Decode_stringFieldDecoder, Decode_stringOptionFieldDecoder, Decode_stringOrStringArrayDecoder, Decode_stripLeadingShebang, Decode_toolTimeLimitRequirementDecoder, Decode_tryDecodeBoolScalar, Decode_tryDecodeFieldsAsArray, Decode_tryDecodeFieldsAsMap, Decode_tryDecodeKnownRequirementFromElement, Decode_tryParseBlockScalarHeader, Decode_versionDecoder, Decode_withDefaultCwlVersion, Decode_workReuseRequirementDecoder, Decode_workflowDecoder, Decode_workflowStepRunDecoder, Decode_yamlElementOptionFieldDecoder, ResizeArray_map, inputArraySchemaDecoder$0040324, inputArraySchemaDecoder$0040324$002D1, inputEnumSchemaDecoder$0040404, inputEnumSchemaDecoder$0040404$002D1, inputRecordFieldDecoder$0040338, inputRecordFieldDecoder$0040338$002D1, inputRecordSchemaDecoder$0040377, inputRecordSchemaDecoder$0040377$002D1 };
3055
+ export { DecodeParameters_cwlParameterReferenceDecoder, DecodeParameters_cwlparameterReferenceArrayDecoder, DecodeParameters_decodeYAMLParameterFile, Decode_DecodeResult$1, Decode_DecodeResult$1_$reflection, Decode_DecodeWarning, Decode_DecodeWarning_$reflection, Decode_addRequirementPayloadOverflow, Decode_addWarning, Decode_baseCommandDecoder, Decode_boolOptionFieldDecoder, Decode_boxOverflowInt64, Decode_classDecoder, Decode_commandLineToolDecoder, Decode_cwlSimpleTypeFromString, Decode_cwlTypeDecoder, Decode_cwlTypeDecoder$0027, Decode_cwlTypeStringMatcher, Decode_decodeCWLProcessingUnit, Decode_decodeCWLProcessingUnitElement, Decode_decodeCWLProcessingUnitElementWithWarnings, Decode_decodeCWLProcessingUnitWithWarnings, Decode_decodeCommandLineTool, Decode_decodeCommandLineToolWithWarnings, Decode_decodeDirectoryInstanceFields, Decode_decodeExpressionTool, Decode_decodeExpressionToolWithWarnings, Decode_decodeFileInstanceFields, Decode_decodeHintElement, Decode_decodeInputSequenceItem, Decode_decodeNamedInput, Decode_decodeNamedOutput, Decode_decodeOperation, Decode_decodeOperationWithWarnings, Decode_decodeOutputSequenceItem, Decode_decodeResourceScalar, Decode_decodeSchemaSaladString, Decode_decodeStepInputFromArrayItem, Decode_decodeStepInputFromValue, Decode_decodeStepInputsFromArray, Decode_decodeStepInputsFromArrayWithWarnings, Decode_decodeStepInputsFromMap, Decode_decodeStepOutputItem, Decode_decodeStringArrayOrScalar, Decode_decodeStringOrExpression, Decode_decodeWorkflow, Decode_decodeWorkflowStepFromArrayItem, Decode_decodeWorkflowStepFromArrayItemWithWarnings, Decode_decodeWorkflowStepFromValueWithId, Decode_decodeWorkflowWithWarnings, Decode_direntDecoder, Decode_docDecoder, Decode_dockerRequirementDecoder, Decode_envVarRequirementDecoder, Decode_expressionStringOptionFieldDecoder, Decode_expressionToolDecoder, Decode_hasField, Decode_hintArrayDecoder, Decode_hintsDecoder, Decode_idDecoder, Decode_initialWorkDirEntryDecoder, Decode_initialWorkDirRequirementDecoder, Decode_inlineJavascriptRequirementDecoder, Decode_inplaceUpdateRequirementDecoder, Decode_inputArrayDecoder, Decode_inputArrayDecoderWithWarnings, Decode_inputArraySchemaDecoder, Decode_inputBindingDecoder, Decode_inputEnumSchemaDecoder, Decode_inputRecordFieldDecoder, Decode_inputRecordSchemaDecoder, Decode_inputStepDecoder, Decode_inputStepDecoderWithWarnings, Decode_inputsDecoder, Decode_inputsDecoderWithWarnings, Decode_intentDecoder, Decode_isIgnorableYamlNoise, Decode_isRecoverableDecodingError, Decode_labelDecoder, Decode_linkMergeFieldDecoder, Decode_loadListingRequirementDecoder, Decode_networkAccessRequirementDecoder, Decode_operationDecoder, Decode_optionalResourceField, Decode_outputArrayDecoder, Decode_outputArrayDecoderWithWarnings, Decode_outputBindingDecoder, Decode_outputBindingGlobDecoder, Decode_outputSourceDecoder, Decode_outputStepsDecoder, Decode_outputsDecoder, Decode_outputsDecoderWithWarnings, Decode_overflowDecoder, Decode_overflowIntoDynamicObj, Decode_parseArrayShorthand, Decode_pickValueFieldDecoder, Decode_readSanitizedYaml, Decode_removeYamlComments, Decode_requirementArrayDecoder, Decode_requirementFromTypeName, Decode_requirementsDecoder, Decode_resourceRequirementDecoder, Decode_scatterFieldDecoder, Decode_scatterMethodFieldDecoder, Decode_schemaDefRequirementDecoder, Decode_schemaDefRequirementTypeDecoder, Decode_softwareRequirementDecoder, Decode_sourceArrayFieldDecoder, Decode_stepArrayDecoder, Decode_stepArrayDecoderWithVersion, Decode_stepsDecoder, Decode_stepsDecoderWithVersion, Decode_stringFieldDecoder, Decode_stringOptionFieldDecoder, Decode_stringOrStringArrayDecoder, Decode_toolTimeLimitRequirementDecoder, Decode_tryDecodeBoolScalar, Decode_tryDecodeFieldsAsArray, Decode_tryDecodeFieldsAsMap, Decode_tryDecodeKnownRequirementFromElement, Decode_tryGetBoolField, Decode_tryGetInt64Field, Decode_tryGetIntArrayField, Decode_tryGetLoadListingField, Decode_tryGetPresentField, Decode_tryGetStringField, Decode_tryGetYamlField, Decode_versionDecoder, Decode_withDefaultCwlVersion, Decode_workReuseRequirementDecoder, Decode_workflowDecoder, Decode_workflowStepRunDecoder, Decode_yamlElementOptionFieldDecoder, ResizeArray_map };