@nfdi4plants/arctrl 3.0.3 → 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 (107) hide show
  1. package/dist/ts/node_modules/@fable-org/fable-library-js/System.Collections.Generic.js +320 -0
  2. package/dist/ts/ts/ARC.d.ts +3 -3
  3. package/dist/ts/ts/ARC.d.ts.map +1 -1
  4. package/dist/ts/ts/ARC.js +72 -93
  5. package/dist/ts/ts/CWL/CWLTypes.d.ts +162 -45
  6. package/dist/ts/ts/CWL/CWLTypes.d.ts.map +1 -1
  7. package/dist/ts/ts/CWL/CWLTypes.js +495 -104
  8. package/dist/ts/ts/CWL/Decode.d.ts +292 -46
  9. package/dist/ts/ts/CWL/Decode.d.ts.map +1 -1
  10. package/dist/ts/ts/CWL/Decode.js +951 -563
  11. package/dist/ts/ts/CWL/DynamicObjHelpers.d.ts +37 -0
  12. package/dist/ts/ts/CWL/DynamicObjHelpers.d.ts.map +1 -0
  13. package/dist/ts/ts/CWL/DynamicObjHelpers.js +57 -0
  14. package/dist/ts/ts/CWL/Encode.d.ts +117 -2
  15. package/dist/ts/ts/CWL/Encode.d.ts.map +1 -1
  16. package/dist/ts/ts/CWL/Encode.js +447 -193
  17. package/dist/ts/ts/CWL/ExpressionToolDescription.d.ts +8 -3
  18. package/dist/ts/ts/CWL/ExpressionToolDescription.d.ts.map +1 -1
  19. package/dist/ts/ts/CWL/ExpressionToolDescription.js +20 -4
  20. package/dist/ts/ts/CWL/Inputs.d.ts +65 -14
  21. package/dist/ts/ts/CWL/Inputs.d.ts.map +1 -1
  22. package/dist/ts/ts/CWL/Inputs.js +194 -51
  23. package/dist/ts/ts/CWL/OperationDescription.d.ts +8 -3
  24. package/dist/ts/ts/CWL/OperationDescription.d.ts.map +1 -1
  25. package/dist/ts/ts/CWL/OperationDescription.js +20 -4
  26. package/dist/ts/ts/CWL/Outputs.d.ts +51 -12
  27. package/dist/ts/ts/CWL/Outputs.d.ts.map +1 -1
  28. package/dist/ts/ts/CWL/Outputs.js +152 -76
  29. package/dist/ts/ts/CWL/ParameterReference.d.ts +4 -1
  30. package/dist/ts/ts/CWL/ParameterReference.d.ts.map +1 -1
  31. package/dist/ts/ts/CWL/ParameterReference.js +17 -6
  32. package/dist/ts/ts/CWL/Requirements.d.ts +140 -50
  33. package/dist/ts/ts/CWL/Requirements.d.ts.map +1 -1
  34. package/dist/ts/ts/CWL/Requirements.js +458 -127
  35. package/dist/ts/ts/CWL/ToolDescription.d.ts +31 -3
  36. package/dist/ts/ts/CWL/ToolDescription.d.ts.map +1 -1
  37. package/dist/ts/ts/CWL/ToolDescription.js +83 -4
  38. package/dist/ts/ts/CWL/WorkflowDescription.d.ts +8 -3
  39. package/dist/ts/ts/CWL/WorkflowDescription.d.ts.map +1 -1
  40. package/dist/ts/ts/CWL/WorkflowDescription.js +20 -4
  41. package/dist/ts/ts/CWL/WorkflowSteps.d.ts +50 -19
  42. package/dist/ts/ts/CWL/WorkflowSteps.d.ts.map +1 -1
  43. package/dist/ts/ts/CWL/WorkflowSteps.js +152 -23
  44. package/dist/ts/ts/Contract/Git.d.ts.map +1 -1
  45. package/dist/ts/ts/Contract/Git.js +1 -1
  46. package/dist/ts/ts/ContractIO/ContractIO.d.ts +3 -3
  47. package/dist/ts/ts/ContractIO/ContractIO.d.ts.map +1 -1
  48. package/dist/ts/ts/ContractIO/ContractIO.js +30 -23
  49. package/dist/ts/ts/Conversion/Assay.d.ts.map +1 -1
  50. package/dist/ts/ts/Conversion/Assay.js +4 -3
  51. package/dist/ts/ts/Conversion/Investigation.js +2 -2
  52. package/dist/ts/ts/Conversion/Person.d.ts +1 -1
  53. package/dist/ts/ts/Conversion/Person.d.ts.map +1 -1
  54. package/dist/ts/ts/Conversion/Person.js +27 -11
  55. package/dist/ts/ts/Conversion/Run.d.ts.map +1 -1
  56. package/dist/ts/ts/Conversion/Run.js +3 -2
  57. package/dist/ts/ts/Conversion/ScholarlyArticle.d.ts.map +1 -1
  58. package/dist/ts/ts/Conversion/ScholarlyArticle.js +2 -1
  59. package/dist/ts/ts/Conversion/Study.d.ts.map +1 -1
  60. package/dist/ts/ts/Conversion/Study.js +5 -4
  61. package/dist/ts/ts/Conversion/Workflow.d.ts.map +1 -1
  62. package/dist/ts/ts/Conversion/Workflow.js +13 -12
  63. package/dist/ts/ts/Conversion.d.ts +14 -10
  64. package/dist/ts/ts/Conversion.d.ts.map +1 -1
  65. package/dist/ts/ts/Conversion.js +18 -11
  66. package/dist/ts/ts/Core/ArcTypes.d.ts.map +1 -1
  67. package/dist/ts/ts/Core/ArcTypes.js +18 -0
  68. package/dist/ts/ts/Core/Datamap.d.ts.map +1 -1
  69. package/dist/ts/ts/Core/Datamap.js +4 -2
  70. package/dist/ts/ts/Core/OntologyAnnotation.d.ts.map +1 -1
  71. package/dist/ts/ts/Core/OntologyAnnotation.js +76 -2
  72. package/dist/ts/ts/Core/Table/ArcTableAux.d.ts +3 -0
  73. package/dist/ts/ts/Core/Table/ArcTableAux.d.ts.map +1 -1
  74. package/dist/ts/ts/Core/Table/ArcTableAux.js +23 -10
  75. package/dist/ts/ts/Core/Table/ArcTables.d.ts +1 -0
  76. package/dist/ts/ts/Core/Table/ArcTables.d.ts.map +1 -1
  77. package/dist/ts/ts/Core/Table/ArcTables.js +7 -3
  78. package/dist/ts/ts/Json.d.ts +2 -2
  79. package/dist/ts/ts/Json.d.ts.map +1 -1
  80. package/dist/ts/ts/Json.js +3 -3
  81. package/dist/ts/ts/WorkflowGraph/ReferenceParsing.d.ts.map +1 -1
  82. package/dist/ts/ts/WorkflowGraph/ReferenceParsing.js +2 -1
  83. package/dist/ts/ts/Yaml/ValidationPackage.d.ts +1 -1
  84. package/dist/ts/ts/Yaml/ValidationPackage.d.ts.map +1 -1
  85. package/dist/ts/ts/Yaml/ValidationPackage.js +5 -5
  86. package/dist/ts/ts/Yaml/ValidationPackagesConfig.d.ts +1 -1
  87. package/dist/ts/ts/Yaml/ValidationPackagesConfig.d.ts.map +1 -1
  88. package/dist/ts/ts/Yaml/ValidationPackagesConfig.js +5 -5
  89. package/dist/ts/ts/Yaml.js +1 -1
  90. package/dist/ts/ts/fable_modules/{YAMLicious.1.0.0-alpha.5 → YAMLicious.1.0.0-alpha.11}/Decode.fs.js +96 -24
  91. package/dist/ts/ts/fable_modules/{YAMLicious.1.0.0-alpha.5 → YAMLicious.1.0.0-alpha.11}/Persil.fs.js +11 -159
  92. package/dist/ts/ts/fable_modules/YAMLicious.1.0.0-alpha.11/Preprocessing.fs.js +319 -0
  93. package/dist/ts/ts/fable_modules/YAMLicious.1.0.0-alpha.11/Reader.fs.js +1867 -0
  94. package/dist/ts/ts/fable_modules/{YAMLicious.1.0.0-alpha.5 → YAMLicious.1.0.0-alpha.11}/Regex.fs.js +1 -1
  95. package/dist/ts/ts/fable_modules/{YAMLicious.1.0.0-alpha.5 → YAMLicious.1.0.0-alpha.11}/RegexActivePatterns.fs.js +2 -2
  96. package/dist/ts/ts/fable_modules/YAMLicious.1.0.0-alpha.11/Syntax.fs.js +819 -0
  97. package/dist/ts/ts/fable_modules/YAMLicious.1.0.0-alpha.11/Writer.fs.js +686 -0
  98. package/package.json +1 -1
  99. package/dist/ts/ts/fable_modules/YAMLicious.1.0.0-alpha.5/FlowToBlock.fs.js +0 -956
  100. package/dist/ts/ts/fable_modules/YAMLicious.1.0.0-alpha.5/Preprocessing.fs.js +0 -139
  101. package/dist/ts/ts/fable_modules/YAMLicious.1.0.0-alpha.5/Reader.fs.js +0 -1314
  102. package/dist/ts/ts/fable_modules/YAMLicious.1.0.0-alpha.5/Writer.fs.js +0 -391
  103. /package/dist/ts/ts/fable_modules/{YAMLicious.1.0.0-alpha.5 → YAMLicious.1.0.0-alpha.11}/Encode.fs.js +0 -0
  104. /package/dist/ts/ts/fable_modules/{YAMLicious.1.0.0-alpha.5 → YAMLicious.1.0.0-alpha.11}/Escapes.fs.js +0 -0
  105. /package/dist/ts/ts/fable_modules/{YAMLicious.1.0.0-alpha.5 → YAMLicious.1.0.0-alpha.11}/Interop/JsInterop.fs.js +0 -0
  106. /package/dist/ts/ts/fable_modules/{YAMLicious.1.0.0-alpha.5 → YAMLicious.1.0.0-alpha.11}/StringBuffer.fs.js +0 -0
  107. /package/dist/ts/ts/fable_modules/{YAMLicious.1.0.0-alpha.5 → 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 { isMatch } from '../../node_modules/@fable-org/fable-library-js/RegExp.js';
4
- import { trimEnd, replace, join, trimStart, toText, interpolate, printf, substring, trim } from '../../node_modules/@fable-org/fable-library-js/String.js';
5
- import { value, map as map$1, unwrap, defaultArg, some, bind } from '../../node_modules/@fable-org/fable-library-js/Option.js';
6
- import { item } from '../../node_modules/@fable-org/fable-library-js/Array.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.5/YAMLiciousTypes.fs.js';
9
- import { read, object, string, bool, resizearray, int } from '../fable_modules/YAMLicious.1.0.0-alpha.5/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_Z14898805, 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,63 +40,34 @@ 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_tryParseBlockScalarHeader(line) {
49
- if (Decode_isBlankLine(line)) {
50
- return void 0;
51
- } else if (isMatch(/^(?:.+:\s*[|>][1-9]?[+-]?\s*(?:#.*)?|-\s*[|>][1-9]?[+-]?\s*(?:#.*)?)$/gu, trimEnd(line))) {
52
- return Decode_countLeadingSpaces(line);
53
- } else {
54
- return void 0;
54
+ class Decode_DecodeResult$1 extends Record {
55
+ constructor(Value, Warnings) {
56
+ super();
57
+ this.Value = Value;
58
+ this.Warnings = Warnings;
55
59
  }
56
60
  }
57
- function Decode_normalizeYamlInput(yaml) {
58
- const normalized = yaml == null ? "" : replace(yaml, "\r\n", "\n");
59
- const lines = normalized.split("\n");
60
- const filtered = [];
61
- let blockScalarIndent = void 0;
62
- const processLine = (line_mut) => {
63
- processLine:
64
- while (true) {
65
- const line = line_mut;
66
- if (blockScalarIndent == null) {
67
- const matchValue = Decode_tryParseBlockScalarHeader(line);
68
- if (matchValue == null) {
69
- if (line === "" ? true : line.trim().length > 0) {
70
- void filtered.push(line);
71
- }
72
- } else {
73
- const indent_1 = value(matchValue) | 0;
74
- blockScalarIndent = indent_1;
75
- void filtered.push(line);
76
- }
77
- } else {
78
- const indent = value(blockScalarIndent) | 0;
79
- if (Decode_isBlankLine(line)) {
80
- void filtered.push(line);
81
- } else if (Decode_countLeadingSpaces(line) > indent) {
82
- void filtered.push(line);
83
- } else {
84
- blockScalarIndent = void 0;
85
- line_mut = line;
86
- continue processLine;
87
- }
88
- }
89
- break;
90
- }
91
- };
92
- const array = lines.length > 0 && item(0, lines).startsWith("#!") ? lines.slice(1, lines.length) : lines;
93
- array.forEach(processLine);
94
- return trimEnd(join("\n", toArray(filtered)));
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())]]);
95
63
  }
96
- function Decode_removeFullLineComments(yaml) {
97
- let array;
98
- return join("\n", (array = yaml.split("\n"), array.filter((line) => !trimStart(line).startsWith("#"))));
64
+ function Decode_addWarning(warnings, path, message, raw) {
65
+ let clo;
66
+ if (warnings == null) {
67
+ } else {
68
+ const warningList = value(warnings);
69
+ void warningList.push(new Decode_DecodeWarning(path, message, map((clo = toText(printf("%A")), clo), raw)));
70
+ }
99
71
  }
100
72
  function Decode_removeYamlComments(yamlElement) {
101
73
  switch (yamlElement.tag) {
@@ -178,34 +150,31 @@ function Decode_isRecoverableDecodingError(ex) {
178
150
  }
179
151
  }
180
152
  function Decode_readSanitizedYaml(yaml) {
181
- const normalized = Decode_normalizeYamlInput(yaml);
182
- const tryRead = (text) => Decode_removeYamlComments(read(text));
183
- try {
184
- return tryRead(normalized);
185
- } catch (matchValue) {
186
- if (Decode_isRecoverableDecodingError(matchValue)) {
187
- return tryRead(Decode_removeFullLineComments(normalized));
188
- } else {
189
- throw matchValue;
190
- }
191
- }
153
+ return Decode_removeYamlComments(read(yaml));
154
+ }
155
+ function Decode_boxOverflowInt64(value) {
156
+ return value;
192
157
  }
193
158
  function Decode_overflowDecoder(dynObj, dict) {
194
- let enumerator = getEnumerator(dict);
195
- try {
196
- while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
197
- const e = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
198
- const matchValue = e[1];
199
- let matchResult, v, s;
200
- if (matchValue.tag === /* Object */
201
- 3) {
202
- if (!isEmpty(matchValue.fields[0])) {
203
- 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) {
204
173
  case /* Value */
205
174
  1: {
206
- if (isEmpty(tail(matchValue.fields[0]))) {
175
+ if (isEmpty(tail(value_1.fields[0]))) {
207
176
  matchResult = 0;
208
- v = head(matchValue.fields[0]).fields[0];
177
+ v_3 = head(value_1.fields[0]).fields[0];
209
178
  } else {
210
179
  matchResult = 2;
211
180
  }
@@ -213,9 +182,9 @@ function Decode_overflowDecoder(dynObj, dict) {
213
182
  }
214
183
  case /* Sequence */
215
184
  2: {
216
- if (isEmpty(tail(matchValue.fields[0]))) {
185
+ if (isEmpty(tail(value_1.fields[0]))) {
217
186
  matchResult = 1;
218
- s = head(matchValue.fields[0]).fields[0];
187
+ items = head(value_1.fields[0]).fields[0];
219
188
  } else {
220
189
  matchResult = 2;
221
190
  }
@@ -227,32 +196,260 @@ function Decode_overflowDecoder(dynObj, dict) {
227
196
  } else {
228
197
  matchResult = 2;
229
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;
230
300
  } else {
231
301
  matchResult = 2;
232
302
  }
233
- switch (matchResult) {
234
- case 0: {
235
- setProperty(e[0], v.Value, dynObj);
236
- 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;
237
330
  }
238
- case 1: {
239
- const newDynObj = new DynamicObj();
240
- iterate((x) => {
241
- setProperty(e[0], x, dynObj);
242
- }, map((arg) => Decode_overflowDecoder(newDynObj, object((get$) => get$.Overflow.FieldList(empty()), arg)), s));
243
- 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;
244
400
  }
245
- case 2: {
246
- setProperty(e[0], e[1], dynObj);
247
- 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}`);
248
419
  }
249
420
  }
421
+ default:
422
+ throw new Error(`Invalid int64 value for ${fieldName}: ${other}`);
250
423
  }
251
- } finally {
252
- 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);
253
440
  }
254
441
  return dynObj;
255
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
+ }
256
453
  function Decode_decodeSchemaSaladString(yEle) {
257
454
  let matchResult, v, c, v_1;
258
455
  switch (yEle.tag) {
@@ -351,14 +548,18 @@ function Decode_decodeSchemaSaladString(yEle) {
351
548
  function Decode_decodeStringOrExpression(yEle) {
352
549
  return SchemaSaladStringModule_toDirectiveString(Decode_decodeSchemaSaladString(yEle));
353
550
  }
354
- const Decode_outputBindingGlobDecoder = (value_1) => object((get$) => {
355
- let objectArg;
356
- return new OutputBinding((objectArg = get$.Optional, objectArg.Field("glob", string)));
357
- }, value_1);
358
- 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$) => {
359
560
  const objectArg = get$.Optional;
360
561
  return objectArg.Field("outputBinding", Decode_outputBindingGlobDecoder);
361
- }, value);
562
+ }, value_1);
362
563
  function Decode_decodeStringArrayOrScalar(value) {
363
564
  let matchResult, items;
364
565
  switch (value.tag) {
@@ -392,7 +593,7 @@ function Decode_decodeStringArrayOrScalar(value) {
392
593
  }
393
594
  switch (matchResult) {
394
595
  case 0: {
395
- const collection = map(Decode_decodeStringOrExpression, items);
596
+ const collection = map$1(Decode_decodeStringOrExpression, items);
396
597
  return Array.from(collection);
397
598
  }
398
599
  default:
@@ -403,12 +604,15 @@ const Decode_outputSourceDecoder = (value_1) => object((get$) => {
403
604
  const objectArg = get$.Optional;
404
605
  return objectArg.Field("outputSource", Decode_decodeStringArrayOrScalar);
405
606
  }, value_1);
406
- const Decode_direntDecoder = (value_1) => object((get$) => {
407
- let objectArg, objectArg_1, objectArg_2;
408
- 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))));
409
- }, 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
+ }
410
615
  function Decode_initialWorkDirEntryDecoder(value$1) {
411
- let fileInstance, directoryInstance;
412
616
  switch (value$1.tag) {
413
617
  case /* Object */
414
618
  3: {
@@ -516,9 +720,9 @@ function Decode_initialWorkDirEntryDecoder(value$1) {
516
720
  }
517
721
  switch (matchResult_2) {
518
722
  case 0:
519
- 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));
520
724
  case 1:
521
- 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));
522
726
  default:
523
727
  return InitialWorkDirEntry_StringEntry(Decode_decodeSchemaSaladString(value$1));
524
728
  }
@@ -534,9 +738,9 @@ function Decode_initialWorkDirEntryDecoder(value$1) {
534
738
  function Decode_cwlSimpleTypeFromString(s) {
535
739
  switch (s) {
536
740
  case "File":
537
- return CWLType_File(FileInstance_$ctor());
741
+ return CWLType_File(new FileInstance());
538
742
  case "Directory":
539
- return CWLType_Directory(DirectoryInstance_$ctor());
743
+ return CWLType_Directory(new DirectoryInstance());
540
744
  case "string":
541
745
  return CWLType_String();
542
746
  case "int":
@@ -563,7 +767,7 @@ function Decode_parseArrayShorthand(typeStr) {
563
767
  const matchValue = Decode_parseArrayShorthand(innerType);
564
768
  if (matchValue == null) {
565
769
  try {
566
- return CWLType_Array(new InputArraySchema(Decode_cwlSimpleTypeFromString(innerType), void 0, void 0, void 0));
770
+ return CWLType_Array(new InputArraySchema(Decode_cwlSimpleTypeFromString(innerType)));
567
771
  } catch (matchValue_1) {
568
772
  if (Decode_isRecoverableDecodingError(matchValue_1)) {
569
773
  return void 0;
@@ -572,46 +776,31 @@ function Decode_parseArrayShorthand(typeStr) {
572
776
  }
573
777
  }
574
778
  } else {
575
- return CWLType_Array(new InputArraySchema(value(matchValue), void 0, void 0, void 0));
779
+ return CWLType_Array(new InputArraySchema(value(matchValue)));
576
780
  }
577
781
  } else {
578
782
  return void 0;
579
783
  }
580
784
  }
581
- function inputArraySchemaDecoder$0040315() {
582
- return (value_3) => object((get$) => {
785
+ function Decode_inputArraySchemaDecoder(value) {
786
+ return object((get$) => {
583
787
  let objectArg, objectArg_1, objectArg_2, objectArg_3;
584
- 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)));
585
- }, value_3);
586
- }
587
- const inputArraySchemaDecoder$0040315$002D1 = new Lazy(inputArraySchemaDecoder$0040315);
588
- function inputRecordFieldDecoder$0040329() {
589
- return (value_3) => object((get$) => {
590
- let objectArg, objectArg_1, objectArg_2, objectArg_3;
591
- 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)));
592
- }, value_3);
593
- }
594
- const inputRecordFieldDecoder$0040329$002D1 = new Lazy(inputRecordFieldDecoder$0040329);
595
- function inputRecordSchemaDecoder$0040368() {
596
- return (value_3) => object((get$) => {
597
- let fieldsElement, objectArg, element, matchValue, objectArg_1, objectArg_2, objectArg_3;
598
- return new InputRecordSchema((fieldsElement = (objectArg = get$.Optional, objectArg.Field("fields", (x) => x)), fieldsElement == null ? void 0 : value(fieldsElement).tag === /* Object */
599
- 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)));
600
- }, 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);
601
792
  }
602
- const inputRecordSchemaDecoder$0040368$002D1 = new Lazy(inputRecordSchemaDecoder$0040368);
603
- function inputEnumSchemaDecoder$0040395() {
604
- return (value_5) => object((get$) => {
793
+ function Decode_inputRecordFieldDecoder(value) {
794
+ return object((get$) => {
605
795
  let objectArg, objectArg_1, objectArg_2, objectArg_3;
606
- 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)));
607
- }, 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);
608
800
  }
609
- const inputEnumSchemaDecoder$0040395$002D1 = new Lazy(inputEnumSchemaDecoder$0040395);
610
- const Decode_inputArraySchemaDecoder = inputArraySchemaDecoder$0040315$002D1.Value;
611
- const Decode_inputRecordFieldDecoder = inputRecordFieldDecoder$0040329$002D1.Value;
612
801
  function Decode_tryDecodeFieldsAsArray(element) {
613
802
  try {
614
- return resizearray(inputRecordFieldDecoder$0040329$002D1.Value, element);
803
+ return resizearray(Decode_inputRecordFieldDecoder, element);
615
804
  } catch (matchValue) {
616
805
  if (Decode_isRecoverableDecodingError(matchValue)) {
617
806
  return void 0;
@@ -627,8 +816,9 @@ function Decode_tryDecodeFieldsAsMap(element) {
627
816
  try {
628
817
  while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
629
818
  const kvp = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
630
- const fieldType = Decode_cwlTypeDecoder$0027(kvp[1]);
631
- 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);
632
822
  }
633
823
  } finally {
634
824
  disposeSafe(enumerator);
@@ -642,8 +832,29 @@ function Decode_tryDecodeFieldsAsMap(element) {
642
832
  }
643
833
  }
644
834
  }
645
- const Decode_inputRecordSchemaDecoder = inputRecordSchemaDecoder$0040368$002D1.Value;
646
- const Decode_inputEnumSchemaDecoder = inputEnumSchemaDecoder$0040395$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
+ }
647
858
  function Decode_cwlTypeDecoder$0027(element) {
648
859
  let collection;
649
860
  const parseTypeString = (typeStr) => {
@@ -669,16 +880,29 @@ function Decode_cwlTypeDecoder$0027(element) {
669
880
  case /* Object */
670
881
  3: {
671
882
  if (!isEmpty(element.fields[0])) {
672
- if (head(element.fields[0]).tag === /* Value */
673
- 1) {
674
- if (isEmpty(tail(element.fields[0]))) {
675
- matchResult = 0;
676
- v = head(element.fields[0]).fields[0];
677
- } else {
678
- matchResult = 2;
883
+ switch (head(element.fields[0]).tag) {
884
+ case /* Value */
885
+ 1: {
886
+ if (isEmpty(tail(element.fields[0]))) {
887
+ matchResult = 0;
888
+ v = head(element.fields[0]).fields[0];
889
+ } else {
890
+ matchResult = 2;
891
+ }
892
+ break;
679
893
  }
680
- } else {
681
- matchResult = 2;
894
+ case /* Sequence */
895
+ 2: {
896
+ if (isEmpty(tail(element.fields[0]))) {
897
+ matchResult = 1;
898
+ items = head(element.fields[0]).fields[0];
899
+ } else {
900
+ matchResult = 2;
901
+ }
902
+ break;
903
+ }
904
+ default:
905
+ matchResult = 2;
682
906
  }
683
907
  } else {
684
908
  matchResult = 2;
@@ -698,7 +922,7 @@ function Decode_cwlTypeDecoder$0027(element) {
698
922
  case 0:
699
923
  return parseTypeString(v.Value);
700
924
  case 1:
701
- 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)));
702
926
  case 2:
703
927
  return object((get$) => {
704
928
  let objectArg_1;
@@ -733,7 +957,32 @@ function Decode_cwlTypeDecoder$0027(element) {
733
957
  switch (matchResult_1) {
734
958
  case 0: {
735
959
  const matchValue_1 = v_1.Value;
736
- return matchValue_1 === "record" ? CWLType_Record(inputRecordSchemaDecoder$0040368$002D1.Value(element)) : matchValue_1 === "enum" ? CWLType_Enum(inputEnumSchemaDecoder$0040395$002D1.Value(element)) : matchValue_1 === "array" ? CWLType_Array(inputArraySchemaDecoder$0040315$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
+ }
737
986
  }
738
987
  case 1:
739
988
  return Decode_cwlTypeDecoder$0027((objectArg_1 = get$.Required, objectArg_1.Field("type", (x_1) => x_1)));
@@ -754,11 +1003,11 @@ function Decode_cwlTypeStringMatcher(t, get$) {
754
1003
  if (matchValue == null) {
755
1004
  switch (newT) {
756
1005
  case "File": {
757
- cwlType = CWLType_File(FileInstance_$ctor());
1006
+ cwlType = CWLType_File(new FileInstance());
758
1007
  break;
759
1008
  }
760
1009
  case "Directory": {
761
- cwlType = CWLType_Directory(DirectoryInstance_$ctor());
1010
+ cwlType = CWLType_Directory(new DirectoryInstance());
762
1011
  break;
763
1012
  }
764
1013
  case "Dirent": {
@@ -841,14 +1090,21 @@ const Decode_cwlTypeDecoder = (value_1) => object((get$) => {
841
1090
  }
842
1091
  break;
843
1092
  }
844
- default:
1093
+ case /* Sequence */
1094
+ 2: {
845
1095
  matchResult = 2;
1096
+ break;
1097
+ }
1098
+ default:
1099
+ matchResult = 3;
846
1100
  }
847
1101
  switch (matchResult) {
848
1102
  case 0:
849
1103
  return v.Value;
850
1104
  case 1:
851
1105
  return void 0;
1106
+ case 2:
1107
+ return void 0;
852
1108
  default:
853
1109
  throw new Error("Unexpected YAMLElement in cwlTypeDecoder");
854
1110
  }
@@ -859,31 +1115,109 @@ const Decode_cwlTypeDecoder = (value_1) => object((get$) => {
859
1115
  return Decode_cwlTypeStringMatcher(value(cwlType), get$);
860
1116
  }
861
1117
  }, value_1);
862
- const Decode_outputArrayDecoder = (value_1) => object((get$) => {
863
- const dict = get$.Overflow.FieldList(empty());
864
- const collection = toArray(delay(() => collect((key) => {
865
- let v;
866
- const value$1 = getItemFromDict(dict, key);
867
- const outputBinding = Decode_outputBindingDecoder(value$1);
868
- const outputSourceValues = Decode_outputSourceDecoder(value$1);
869
- const output = new CWLOutput(key, value$1.tag === /* Object */
870
- 3 ? !isEmpty(value$1.fields[0]) ? head(value$1.fields[0]).tag === /* Value */
871
- 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]);
872
- return append(outputBinding != null ? (setOptionalProperty("outputBinding", outputBinding, output), empty$1()) : empty$1(), delay(() => {
873
- let matchValue, values, values_2, values_1, values_3;
874
- 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)));
875
- }));
876
- }, dict.keys())));
877
- return Array.from(collection);
878
- }, value_1);
879
- const Decode_outputsDecoder = (value) => object((get$) => {
880
- const objectArg = get$.Required;
881
- return objectArg.Field("outputs", Decode_outputArrayDecoder);
882
- }, 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);
883
1217
  function Decode_dockerRequirementDecoder(get$) {
884
- let objectArg, objectArg_1, objectArg_2, objectArg_3, objectArg_4, objectArg_5;
885
- const dockerFile = map$1(Decode_decodeSchemaSaladString, (objectArg = get$.Optional, objectArg.Field("dockerFile", (x) => x)));
886
- return DockerRequirement_create_Z14898805(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))));
1218
+ let objectArg, objectArg_1, objectArg_2, objectArg_3, objectArg_4, objectArg_5, objectArg_6;
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))));
887
1221
  }
888
1222
  function Decode_envVarRequirementDecoder(get$) {
889
1223
  let envDefElement;
@@ -945,10 +1279,12 @@ function Decode_envVarRequirementDecoder(get$) {
945
1279
  switch (envDefElement.tag) {
946
1280
  case /* Sequence */
947
1281
  2:
948
- return resizearray((value_3) => object((get2) => {
1282
+ return resizearray((value_1) => object((get2) => {
949
1283
  let objectArg_1, objectArg_2;
950
- return new EnvironmentDef((objectArg_1 = get2.Required, objectArg_1.Field("envName", string)), (objectArg_2 = get2.Required, objectArg_2.Field("envValue", string)));
951
- }, 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);
952
1288
  case /* Object */
953
1289
  3: {
954
1290
  const collection = choose((_arg_2) => {
@@ -1026,18 +1362,20 @@ function Decode_softwareRequirementDecoder(get$) {
1026
1362
  switch (packagesElement.tag) {
1027
1363
  case /* Sequence */
1028
1364
  2:
1029
- return resizearray((value_5) => object((get2) => {
1365
+ return resizearray((value_1) => object((get2) => {
1030
1366
  let objectArg_1, objectArg_2, objectArg_3;
1031
- 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))));
1032
- }, 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);
1033
1371
  case /* Object */
1034
1372
  3: {
1035
1373
  const collection = choose((_arg_3) => {
1036
- let packageName, packageValue, normalizedPackageValue, mappings_1;
1374
+ let packageName, packageValue, normalizedPackageValue, mappings_1, package$;
1037
1375
  if (_arg_3.tag === /* Mapping */
1038
1376
  0) {
1039
1377
  return packageName = _arg_3.fields[0].Value, packageValue = _arg_3.fields[1], normalizedPackageValue = normalizeCollectionElement(packageValue), normalizedPackageValue.tag === /* Object */
1040
- 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) => {
1041
1379
  let v;
1042
1380
  let matchResult_1, k_1, v_1;
1043
1381
  if (_arg_1.tag === /* Mapping */
@@ -1058,7 +1396,7 @@ function Decode_softwareRequirementDecoder(get$) {
1058
1396
  default:
1059
1397
  return void 0;
1060
1398
  }
1061
- }, mappings_1), tryPick((_arg_2) => {
1399
+ }, mappings_1)), unwrap(tryPick((_arg_2) => {
1062
1400
  let v_2;
1063
1401
  let matchResult_2, k_3, v_3;
1064
1402
  if (_arg_2.tag === /* Mapping */
@@ -1079,7 +1417,7 @@ function Decode_softwareRequirementDecoder(get$) {
1079
1417
  default:
1080
1418
  return void 0;
1081
1419
  }
1082
- }, mappings_1))) : normalizedPackageValue.tag === /* Sequence */
1420
+ }, mappings_1))), void Decode_overflowIntoDynamicObj(package$, toList(SoftwarePackage.KnownFieldNames), normalizedPackageValue), package$) : normalizedPackageValue.tag === /* Sequence */
1083
1421
  2 ? new SoftwarePackage(packageName, void 0, decodeSpecsArray(normalizedPackageValue)) : new SoftwarePackage(packageName, void 0, [Decode_decodeStringOrExpression(packageValue)]);
1084
1422
  } else {
1085
1423
  return void 0;
@@ -1184,7 +1522,7 @@ function Decode_decodeResourceScalar(element) {
1184
1522
  const scalarValue = value(matchValue);
1185
1523
  let matchValue_1;
1186
1524
  let outArg = 0n;
1187
- matchValue_1 = [tryParse(scalarValue, 7, false, 64, new FSharpRef(() => outArg, (v) => {
1525
+ matchValue_1 = [tryParse$1(scalarValue, 7, false, 64, new FSharpRef(() => outArg, (v) => {
1188
1526
  outArg = v;
1189
1527
  })), outArg];
1190
1528
  if (matchValue_1[0]) {
@@ -1192,7 +1530,7 @@ function Decode_decodeResourceScalar(element) {
1192
1530
  } else {
1193
1531
  let matchValue_2;
1194
1532
  let outArg_1 = 0;
1195
- matchValue_2 = [tryParse$1(scalarValue, new FSharpRef(() => outArg_1, (v_1) => {
1533
+ matchValue_2 = [tryParse$2(scalarValue, new FSharpRef(() => outArg_1, (v_1) => {
1196
1534
  outArg_1 = v_1;
1197
1535
  })), outArg_1];
1198
1536
  if (matchValue_2[0]) {
@@ -1205,21 +1543,28 @@ function Decode_decodeResourceScalar(element) {
1205
1543
  }
1206
1544
  function Decode_optionalResourceField(get$, fieldName) {
1207
1545
  let objectArg;
1208
- 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)));
1209
1547
  }
1210
1548
  function Decode_resourceRequirementDecoder(get$) {
1211
- 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"));
1212
1550
  }
1213
1551
  function Decode_schemaDefRequirementTypeDecoder(value) {
1214
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
+ }));
1215
1556
  if (dict.has("name")) {
1216
- 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;
1217
1560
  } else {
1218
1561
  if (dict.size === 0) {
1219
1562
  throw new Error("SchemaDefRequirement entry cannot be empty.");
1220
1563
  }
1221
1564
  const kv = head$1(dict);
1222
- 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;
1223
1568
  }
1224
1569
  }
1225
1570
  function Decode_schemaDefRequirementDecoder(get$) {
@@ -1323,7 +1668,7 @@ function Decode_toolTimeLimitRequirementDecoder(get$) {
1323
1668
  } else {
1324
1669
  let matchValue;
1325
1670
  let outArg = 0n;
1326
- matchValue = [tryParse(value(tryGetScalarString), 7, false, 64, new FSharpRef(() => outArg, (v) => {
1671
+ matchValue = [tryParse$1(value(tryGetScalarString), 7, false, 64, new FSharpRef(() => outArg, (v) => {
1327
1672
  outArg = v;
1328
1673
  })), outArg];
1329
1674
  if (matchValue[0]) {
@@ -1339,7 +1684,7 @@ function Decode_toolTimeLimitRequirementDecoder(get$) {
1339
1684
  }
1340
1685
  function Decode_inlineJavascriptRequirementDecoder(get$) {
1341
1686
  let objectArg;
1342
- return new InlineJavascriptRequirementValue((objectArg = get$.Optional, objectArg.Field("expressionLib", Decode_decodeStringArrayOrScalar)));
1687
+ return new InlineJavascriptRequirementValue(unwrap((objectArg = get$.Optional, objectArg.Field("expressionLib", Decode_decodeStringArrayOrScalar))));
1343
1688
  }
1344
1689
  function Decode_requirementFromTypeName(cls, get$) {
1345
1690
  switch (cls) {
@@ -1385,6 +1730,56 @@ function Decode_requirementFromTypeName(cls, get$) {
1385
1730
  throw new Error(`Invalid or unsupported requirement class: ${cls}`);
1386
1731
  }
1387
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
+ }
1388
1783
  function Decode_requirementArrayDecoder(yEle) {
1389
1784
  let matchResult, items, other;
1390
1785
  if (yEle.tag === /* Object */
@@ -1410,15 +1805,15 @@ function Decode_requirementArrayDecoder(yEle) {
1410
1805
  }
1411
1806
  switch (matchResult) {
1412
1807
  case 0: {
1413
- const collection = map((ele) => object((get$) => {
1808
+ const collection = map$1((ele) => object((get$) => {
1414
1809
  let objectArg;
1415
- 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$));
1416
1811
  }, ele), items);
1417
1812
  return Array.from(collection);
1418
1813
  }
1419
1814
  case 1:
1420
1815
  return object((get$_1) => {
1421
- 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()));
1422
1817
  return Array.from(collection_1);
1423
1818
  }, yEle);
1424
1819
  default:
@@ -1429,7 +1824,7 @@ function Decode_tryDecodeKnownRequirementFromElement(element) {
1429
1824
  try {
1430
1825
  return object((get$) => {
1431
1826
  let objectArg;
1432
- 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$));
1433
1828
  }, element);
1434
1829
  } catch (ex) {
1435
1830
  let hintClass;
@@ -1500,7 +1895,7 @@ function Decode_hintArrayDecoder(yEle) {
1500
1895
  }
1501
1896
  switch (matchResult) {
1502
1897
  case 0: {
1503
- const collection = map(Decode_decodeHintElement, items);
1898
+ const collection = map$1(Decode_decodeHintElement, items);
1504
1899
  return Array.from(collection);
1505
1900
  }
1506
1901
  case 1:
@@ -1527,7 +1922,7 @@ function Decode_hintArrayDecoder(yEle) {
1527
1922
  default:
1528
1923
  return false;
1529
1924
  }
1530
- }, 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)]))));
1531
1926
  }, get$.Overflow.FieldList(empty()));
1532
1927
  return Array.from(collection_1);
1533
1928
  }, yEle);
@@ -1543,115 +1938,93 @@ const Decode_hintsDecoder = (value) => object((get$) => {
1543
1938
  const objectArg = get$.Optional;
1544
1939
  return objectArg.Field("hints", Decode_hintArrayDecoder);
1545
1940
  }, value);
1546
- const Decode_inputBindingDecoder = (value_5) => object((get$) => {
1941
+ const Decode_inputBindingDecoder = (value_9) => object((get$) => {
1547
1942
  const objectArg = get$.Optional;
1548
- return objectArg.Field("inputBinding", (value_4) => object((get$0027) => {
1549
- let objectArg_1, objectArg_2, objectArg_3, objectArg_4;
1550
- 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)));
1551
- }, value_4));
1552
- }, value_5);
1553
- const Decode_inputArrayDecoder = (value_1) => object((get$) => {
1554
- const dict = get$.Overflow.FieldList(empty());
1555
- const collection = toArray(delay(() => collect((key) => {
1556
- const value = getItemFromDict(dict, key);
1557
- const inputBinding = Decode_inputBindingDecoder(value);
1558
- let patternInput;
1559
- let matchResult, v, mappings;
1560
- if (value.tag === /* Object */
1561
- 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: {
1562
1982
  if (!isEmpty(value.fields[0])) {
1563
- if (head(value.fields[0]).tag === /* Value */
1564
- 1) {
1983
+ if (head(value.fields[0]).tag === /* Sequence */
1984
+ 2) {
1565
1985
  if (isEmpty(tail(value.fields[0]))) {
1566
1986
  matchResult = 0;
1567
- v = head(value.fields[0]).fields[0];
1987
+ items = head(value.fields[0]).fields[0];
1568
1988
  } else {
1569
1989
  matchResult = 1;
1570
- mappings = value.fields[0];
1571
1990
  }
1572
1991
  } else {
1573
1992
  matchResult = 1;
1574
- mappings = value.fields[0];
1575
1993
  }
1576
1994
  } else {
1577
1995
  matchResult = 1;
1578
- mappings = value.fields[0];
1579
1996
  }
1580
- } else {
1581
- matchResult = 2;
1997
+ break;
1582
1998
  }
1583
- switch (matchResult) {
1584
- case 0: {
1585
- patternInput = Decode_cwlTypeStringMatcher(v.Value, get$);
1586
- break;
1587
- }
1588
- case 1: {
1589
- if (exists((m) => {
1590
- let matchResult_1, k_1;
1591
- if (m.tag === /* Mapping */
1592
- 0) {
1593
- if (m.fields[0].Value === "type") {
1594
- matchResult_1 = 0;
1595
- k_1 = m.fields[0];
1596
- } else {
1597
- matchResult_1 = 1;
1598
- }
1599
- } else {
1600
- matchResult_1 = 1;
1601
- }
1602
- switch (matchResult_1) {
1603
- case 0:
1604
- return true;
1605
- default:
1606
- return false;
1607
- }
1608
- }, mappings)) {
1609
- patternInput = Decode_cwlTypeDecoder(value);
1610
- } else {
1611
- let matchResult_2, v_1;
1612
- if (value.tag === /* Object */
1613
- 3) {
1614
- if (!isEmpty(value.fields[0])) {
1615
- if (head(value.fields[0]).tag === /* Value */
1616
- 1) {
1617
- if (isEmpty(tail(value.fields[0]))) {
1618
- matchResult_2 = 0;
1619
- v_1 = head(value.fields[0]).fields[0];
1620
- } else {
1621
- matchResult_2 = 1;
1622
- }
1623
- } else {
1624
- matchResult_2 = 1;
1625
- }
1626
- } else {
1627
- matchResult_2 = 1;
1628
- }
1629
- } else {
1630
- matchResult_2 = 1;
1631
- }
1632
- switch (matchResult_2) {
1633
- case 0: {
1634
- patternInput = Decode_cwlTypeStringMatcher(v_1.Value, get$);
1635
- break;
1636
- }
1637
- default:
1638
- throw new Error("Unexpected input format without type field");
1639
- }
1640
- }
1641
- break;
1642
- }
1643
- default:
1644
- throw new Error("Unexpected input format in inputArrayDecoder");
1999
+ case /* Sequence */
2000
+ 2: {
2001
+ matchResult = 0;
2002
+ items = value.fields[0];
2003
+ break;
1645
2004
  }
1646
- const input = new CWLInput(key, patternInput[0]);
1647
- 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)))));
1648
- }, dict.keys())));
1649
- return Array.from(collection);
1650
- }, value_1);
1651
- const Decode_inputsDecoder = (value) => object((get$) => {
1652
- const objectArg = get$.Optional;
1653
- return objectArg.Field("inputs", Decode_inputArrayDecoder);
1654
- }, 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);
1655
2028
  const Decode_baseCommandDecoder = (value_2) => object((get$) => {
1656
2029
  let baseCommandField;
1657
2030
  const objectArg = get$.Optional;
@@ -1884,13 +2257,16 @@ function Decode_scatterMethodFieldDecoder(field) {
1884
2257
  function Decode_expressionStringOptionFieldDecoder(field) {
1885
2258
  return (value) => object((get$) => {
1886
2259
  let objectArg;
1887
- 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)));
1888
2261
  }, value);
1889
2262
  }
1890
2263
  function Decode_decodeStepInputFromValue(id, value$1, allowScalarSource) {
1891
2264
  const scalarSource = allowScalarSource ? Decode_stringOrStringArrayDecoder(value$1) : void 0;
1892
2265
  const fieldSource = Decode_sourceArrayFieldDecoder("source")(value$1);
1893
- 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;
1894
2270
  }
1895
2271
  function Decode_decodeStepInputsFromMap(value) {
1896
2272
  const dict = object((get$) => get$.Overflow.FieldList(empty()), value);
@@ -1900,11 +2276,26 @@ function Decode_decodeStepInputsFromMap(value) {
1900
2276
  function Decode_decodeStepInputFromArrayItem(item) {
1901
2277
  return Decode_decodeStepInputFromValue(Decode_stringFieldDecoder("id")(item), item, false);
1902
2278
  }
1903
- function Decode_decodeStepInputsFromArray(items) {
1904
- 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));
1905
2293
  return Array.from(collection);
1906
2294
  }
1907
- 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) {
1908
2299
  let matchResult, items;
1909
2300
  switch (value.tag) {
1910
2301
  case /* Object */
@@ -1937,11 +2328,12 @@ function Decode_inputStepDecoder(value) {
1937
2328
  }
1938
2329
  switch (matchResult) {
1939
2330
  case 0:
1940
- return Decode_decodeStepInputsFromArray(items);
2331
+ return Decode_decodeStepInputsFromArrayWithWarnings(warnings, path, items);
1941
2332
  default:
1942
2333
  return Decode_decodeStepInputsFromMap(value);
1943
2334
  }
1944
2335
  }
2336
+ const Decode_inputStepDecoder = (value) => Decode_inputStepDecoderWithWarnings(void 0, "in", value);
1945
2337
  function Decode_decodeStepOutputItem(value) {
1946
2338
  let matchResult, v;
1947
2339
  switch (value.tag) {
@@ -1976,8 +2368,12 @@ function Decode_decodeStepOutputItem(value) {
1976
2368
  switch (matchResult) {
1977
2369
  case 0:
1978
2370
  return StepOutput_StepOutputString(v.Value);
1979
- default:
1980
- 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
+ }
1981
2377
  }
1982
2378
  }
1983
2379
  const Decode_outputStepsDecoder = (value_2) => object((get$) => {
@@ -2057,7 +2453,7 @@ const Decode_outputStepsDecoder = (value_2) => object((get$) => {
2057
2453
  case 2:
2058
2454
  return [];
2059
2455
  case 3: {
2060
- const collection = map(Decode_decodeStepOutputItem, outputs);
2456
+ const collection = map$1(Decode_decodeStepOutputItem, outputs);
2061
2457
  return Array.from(collection);
2062
2458
  }
2063
2459
  default:
@@ -2072,6 +2468,10 @@ const Decode_labelDecoder = (value_1) => object((get$) => {
2072
2468
  const objectArg = get$.Optional;
2073
2469
  return objectArg.Field("label", string);
2074
2470
  }, value_1);
2471
+ const Decode_idDecoder = (value_1) => object((get$) => {
2472
+ const objectArg = get$.Optional;
2473
+ return objectArg.Field("id", string);
2474
+ }, value_1);
2075
2475
  const Decode_intentDecoder = (value_1) => object((get$) => {
2076
2476
  let objectArg;
2077
2477
  return bind(Decode_stringOrStringArrayDecoder, (objectArg = get$.Optional, objectArg.Field("intent", (x) => x)));
@@ -2112,13 +2512,13 @@ function Decode_withDefaultCwlVersion(defaultCwlVersion, yamlElement) {
2112
2512
  return yamlElement;
2113
2513
  } else {
2114
2514
  const fields_2 = yamlElement.fields[0];
2115
- 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));
2116
2516
  }
2117
2517
  } else {
2118
2518
  return yamlElement;
2119
2519
  }
2120
2520
  }
2121
- function Decode_workflowStepRunDecoder(defaultCwlVersion, runValue) {
2521
+ function Decode_workflowStepRunDecoder(warnings, defaultCwlVersion, runValue) {
2122
2522
  let matchResult, v;
2123
2523
  switch (runValue.tag) {
2124
2524
  case /* Object */
@@ -2153,7 +2553,7 @@ function Decode_workflowStepRunDecoder(defaultCwlVersion, runValue) {
2153
2553
  case 0:
2154
2554
  return WorkflowStepRun_RunString(v.Value);
2155
2555
  case 1: {
2156
- const matchValue = Decode_decodeCWLProcessingUnitElement(Decode_withDefaultCwlVersion(defaultCwlVersion, runValue));
2556
+ const matchValue = Decode_decodeCWLProcessingUnitElementWithWarnings(warnings, Decode_withDefaultCwlVersion(defaultCwlVersion, runValue));
2157
2557
  switch (matchValue.tag) {
2158
2558
  case /* Workflow */
2159
2559
  1:
@@ -2172,14 +2572,17 @@ function Decode_workflowStepRunDecoder(defaultCwlVersion, runValue) {
2172
2572
  throw new Error(toText(interpolate("Unsupported run value for workflow step: %A%P()", [runValue])));
2173
2573
  }
2174
2574
  }
2175
- function Decode_decodeWorkflowStepFromValueWithId(defaultCwlVersion, stepId, value) {
2176
- 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) => {
2177
2577
  const objectArg = get$0027.Required;
2178
2578
  return objectArg.Field("run", (x) => x);
2179
2579
  }, value));
2180
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);
2181
2584
  const objectArg_1 = get$0027_1.Required;
2182
- return objectArg_1.Field("in", Decode_inputStepDecoder);
2585
+ return objectArg_1.Field("in", arg_3);
2183
2586
  }, value);
2184
2587
  const outputs = Decode_outputStepsDecoder(value);
2185
2588
  const requirements = Decode_requirementsDecoder(value);
@@ -2192,12 +2595,26 @@ function Decode_decodeWorkflowStepFromValueWithId(defaultCwlVersion, stepId, val
2192
2595
  if (hints != null) {
2193
2596
  wfStep.Hints = hints;
2194
2597
  }
2598
+ Decode_overflowIntoDynamicObj(wfStep, toList(WorkflowStep.KnownFieldNames), value);
2195
2599
  return wfStep;
2196
2600
  }
2197
2601
  function Decode_decodeWorkflowStepFromArrayItem(defaultCwlVersion, item) {
2198
- 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
+ }
2199
2616
  }
2200
- function Decode_stepArrayDecoderWithVersion(defaultCwlVersion, value) {
2617
+ function Decode_stepArrayDecoderWithVersion(warnings, defaultCwlVersion, value) {
2201
2618
  let matchResult, items;
2202
2619
  switch (value.tag) {
2203
2620
  case /* Object */
@@ -2230,38 +2647,37 @@ function Decode_stepArrayDecoderWithVersion(defaultCwlVersion, value) {
2230
2647
  }
2231
2648
  switch (matchResult) {
2232
2649
  case 0: {
2233
- 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));
2234
2651
  return Array.from(collection);
2235
2652
  }
2236
2653
  default: {
2237
2654
  const dict = object((get$) => get$.Overflow.FieldList(empty()), value);
2238
- 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())));
2239
2656
  return Array.from(collection_1);
2240
2657
  }
2241
2658
  }
2242
2659
  }
2243
- function Decode_stepsDecoderWithVersion(defaultCwlVersion) {
2660
+ function Decode_stepsDecoderWithVersion(warnings, defaultCwlVersion) {
2244
2661
  return (value_1) => object((get$) => {
2245
2662
  const objectArg = get$.Required;
2246
- return objectArg.Field("steps", (value) => Decode_stepArrayDecoderWithVersion(defaultCwlVersion, value));
2663
+ return objectArg.Field("steps", (value) => Decode_stepArrayDecoderWithVersion(warnings, defaultCwlVersion, value));
2247
2664
  }, value_1);
2248
2665
  }
2249
- function Decode_commandLineToolDecoder(yamlCWL) {
2666
+ function Decode_commandLineToolDecoder(warnings, yamlCWL) {
2250
2667
  const cwlVersion = Decode_versionDecoder(yamlCWL);
2251
- const outputs = Decode_outputsDecoder(yamlCWL);
2252
- const inputs = Decode_inputsDecoder(yamlCWL);
2668
+ const outputs = Decode_outputsDecoderWithWarnings(warnings)(yamlCWL);
2669
+ const inputs = Decode_inputsDecoderWithWarnings(warnings)(yamlCWL);
2253
2670
  const requirements = Decode_requirementsDecoder(yamlCWL);
2254
2671
  const hints = Decode_hintsDecoder(yamlCWL);
2255
2672
  const intent = Decode_intentDecoder(yamlCWL);
2256
2673
  const baseCommand = Decode_baseCommandDecoder(yamlCWL);
2257
2674
  const doc = Decode_docDecoder(yamlCWL);
2258
2675
  const label = Decode_labelDecoder(yamlCWL);
2259
- const description = new CWLToolDescription(outputs, cwlVersion);
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)));
2260
2677
  let metadata;
2261
2678
  const md = new DynamicObj();
2262
- 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);
2263
2680
  metadata = md;
2264
- object((get$_1) => Decode_overflowDecoder(description, get$_1.MultipleOptional.FieldList(ofArray(["id", "arguments", "stdin", "stderr", "stdout", "successCodes", "temporaryFailCodes", "permanentFailCodes"]))), yamlCWL);
2265
2681
  if (inputs != null) {
2266
2682
  description.Inputs = inputs;
2267
2683
  }
@@ -2288,10 +2704,10 @@ function Decode_commandLineToolDecoder(yamlCWL) {
2288
2704
  }
2289
2705
  return description;
2290
2706
  }
2291
- function Decode_expressionToolDecoder(yamlCWL) {
2707
+ function Decode_expressionToolDecoder(warnings, yamlCWL) {
2292
2708
  const cwlVersion = Decode_versionDecoder(yamlCWL);
2293
- const outputs = Decode_outputsDecoder(yamlCWL);
2294
- const inputs = Decode_inputsDecoder(yamlCWL);
2709
+ const outputs = Decode_outputsDecoderWithWarnings(warnings)(yamlCWL);
2710
+ const inputs = Decode_inputsDecoderWithWarnings(warnings)(yamlCWL);
2295
2711
  const requirements = Decode_requirementsDecoder(yamlCWL);
2296
2712
  const hints = Decode_hintsDecoder(yamlCWL);
2297
2713
  const intent = Decode_intentDecoder(yamlCWL);
@@ -2300,12 +2716,11 @@ function Decode_expressionToolDecoder(yamlCWL) {
2300
2716
  const description = new CWLExpressionToolDescription(outputs, object((get$) => {
2301
2717
  const objectArg = get$.Required;
2302
2718
  return objectArg.Field("expression", Decode_decodeStringOrExpression);
2303
- }, yamlCWL), cwlVersion);
2719
+ }, yamlCWL), cwlVersion, void 0, void 0, void 0, void 0, void 0, void 0, void 0, unwrap(Decode_idDecoder(yamlCWL)));
2304
2720
  let metadata;
2305
2721
  const md = new DynamicObj();
2306
- 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);
2307
2723
  metadata = md;
2308
- object((get$_2) => Decode_overflowDecoder(description, get$_2.MultipleOptional.FieldList(singleton$1("id"))), yamlCWL);
2309
2724
  if (inputs != null) {
2310
2725
  description.Inputs = inputs;
2311
2726
  }
@@ -2329,11 +2744,11 @@ function Decode_expressionToolDecoder(yamlCWL) {
2329
2744
  }
2330
2745
  return description;
2331
2746
  }
2332
- function Decode_operationDecoder(yamlCWL) {
2747
+ function Decode_operationDecoder(warnings, yamlCWL) {
2333
2748
  const cwlVersion = Decode_versionDecoder(yamlCWL);
2334
- const outputs = Decode_outputsDecoder(yamlCWL);
2749
+ const outputs = Decode_outputsDecoderWithWarnings(warnings)(yamlCWL);
2335
2750
  let inputs;
2336
- const matchValue = Decode_inputsDecoder(yamlCWL);
2751
+ const matchValue = Decode_inputsDecoderWithWarnings(warnings)(yamlCWL);
2337
2752
  if (matchValue == null) {
2338
2753
  throw new Error("Inputs are required for an operation");
2339
2754
  } else {
@@ -2344,12 +2759,11 @@ function Decode_operationDecoder(yamlCWL) {
2344
2759
  const intent = Decode_intentDecoder(yamlCWL);
2345
2760
  const doc = Decode_docDecoder(yamlCWL);
2346
2761
  const label = Decode_labelDecoder(yamlCWL);
2347
- const description = new CWLOperationDescription(inputs, outputs, cwlVersion);
2762
+ const description = new CWLOperationDescription(inputs, outputs, cwlVersion, void 0, void 0, void 0, void 0, void 0, void 0, unwrap(Decode_idDecoder(yamlCWL)));
2348
2763
  let metadata;
2349
2764
  const md = new DynamicObj();
2350
- 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);
2351
2766
  metadata = md;
2352
- object((get$_1) => Decode_overflowDecoder(description, get$_1.MultipleOptional.FieldList(singleton$1("id"))), yamlCWL);
2353
2767
  if (requirements != null) {
2354
2768
  description.Requirements = requirements;
2355
2769
  }
@@ -2370,11 +2784,11 @@ function Decode_operationDecoder(yamlCWL) {
2370
2784
  }
2371
2785
  return description;
2372
2786
  }
2373
- function Decode_workflowDecoder(yamlCWL) {
2787
+ function Decode_workflowDecoder(warnings, yamlCWL) {
2374
2788
  const cwlVersion = Decode_versionDecoder(yamlCWL);
2375
- const outputs = Decode_outputsDecoder(yamlCWL);
2789
+ const outputs = Decode_outputsDecoderWithWarnings(warnings)(yamlCWL);
2376
2790
  let inputs;
2377
- const matchValue = Decode_inputsDecoder(yamlCWL);
2791
+ const matchValue = Decode_inputsDecoderWithWarnings(warnings)(yamlCWL);
2378
2792
  if (matchValue == null) {
2379
2793
  throw new Error("Inputs are required for a workflow");
2380
2794
  } else {
@@ -2383,15 +2797,14 @@ function Decode_workflowDecoder(yamlCWL) {
2383
2797
  const requirements = Decode_requirementsDecoder(yamlCWL);
2384
2798
  const hints = Decode_hintsDecoder(yamlCWL);
2385
2799
  const intent = Decode_intentDecoder(yamlCWL);
2386
- const steps = Decode_stepsDecoderWithVersion(cwlVersion)(yamlCWL);
2800
+ const steps = Decode_stepsDecoderWithVersion(warnings, cwlVersion)(yamlCWL);
2387
2801
  const doc = Decode_docDecoder(yamlCWL);
2388
2802
  const label = Decode_labelDecoder(yamlCWL);
2389
- const description = new CWLWorkflowDescription(steps, inputs, outputs, cwlVersion);
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)));
2390
2804
  let metadata;
2391
2805
  const md = new DynamicObj();
2392
- 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);
2393
2807
  metadata = md;
2394
- object((get$_1) => Decode_overflowDecoder(description, get$_1.MultipleOptional.FieldList(singleton$1("id"))), yamlCWL);
2395
2808
  if (requirements != null) {
2396
2809
  description.Requirements = requirements;
2397
2810
  }
@@ -2412,243 +2825,218 @@ function Decode_workflowDecoder(yamlCWL) {
2412
2825
  }
2413
2826
  return description;
2414
2827
  }
2415
- function Decode_decodeCWLProcessingUnitElement(yamlCWL) {
2828
+ function Decode_decodeCWLProcessingUnitElementWithWarnings(warnings, yamlCWL) {
2416
2829
  const cls = Decode_classDecoder(yamlCWL);
2417
2830
  switch (cls) {
2418
2831
  case "CommandLineTool":
2419
- return CWLProcessingUnit_CommandLineTool(Decode_commandLineToolDecoder(yamlCWL));
2832
+ return CWLProcessingUnit_CommandLineTool(Decode_commandLineToolDecoder(warnings, yamlCWL));
2420
2833
  case "Workflow":
2421
- return CWLProcessingUnit_Workflow(Decode_workflowDecoder(yamlCWL));
2834
+ return CWLProcessingUnit_Workflow(Decode_workflowDecoder(warnings, yamlCWL));
2422
2835
  case "ExpressionTool":
2423
- return CWLProcessingUnit_ExpressionTool(Decode_expressionToolDecoder(yamlCWL));
2836
+ return CWLProcessingUnit_ExpressionTool(Decode_expressionToolDecoder(warnings, yamlCWL));
2424
2837
  case "Operation":
2425
- return CWLProcessingUnit_Operation(Decode_operationDecoder(yamlCWL));
2838
+ return CWLProcessingUnit_Operation(Decode_operationDecoder(warnings, yamlCWL));
2426
2839
  default:
2427
2840
  throw new Error(`Invalid or unsupported CWL class: ${cls}`);
2428
2841
  }
2429
2842
  }
2430
- const Decode_stepArrayDecoder = (value) => Decode_stepArrayDecoderWithVersion("v1.2", value);
2431
- 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
+ }
2432
2852
  function Decode_decodeCommandLineTool(cwl) {
2433
- 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);
2434
2858
  }
2435
2859
  function Decode_decodeWorkflow(cwl) {
2436
- 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);
2437
2865
  }
2438
2866
  function Decode_decodeExpressionTool(cwl) {
2439
- 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);
2440
2872
  }
2441
2873
  function Decode_decodeOperation(cwl) {
2442
- 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);
2443
2879
  }
2444
2880
  function Decode_decodeCWLProcessingUnit(cwl) {
2445
- return Decode_decodeCWLProcessingUnitElement(Decode_readSanitizedYaml(cwl));
2881
+ return Decode_decodeCWLProcessingUnitWithWarnings(cwl).Value;
2446
2882
  }
2447
2883
  function DecodeParameters_cwlParameterReferenceDecoder(get$, key, yEle) {
2448
- let v_1;
2449
- let matchResult, v, v1, v2, s;
2450
- if (yEle.tag === /* Object */
2451
- 3) {
2452
- if (!isEmpty(yEle.fields[0])) {
2453
- switch (head(yEle.fields[0]).tag) {
2454
- case /* Value */
2455
- 1: {
2456
- if (isEmpty(tail(yEle.fields[0]))) {
2457
- matchResult = 0;
2458
- 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
+ }
2459
2905
  } else {
2460
- matchResult = 3;
2906
+ matchResult = 1;
2461
2907
  }
2462
- break;
2908
+ } else {
2909
+ matchResult = 1;
2463
2910
  }
2464
- case /* Mapping */
2465
- 0: {
2466
- if (head(yEle.fields[0]).fields[1].tag === /* Object */
2467
- 3) {
2468
- if (!isEmpty(head(yEle.fields[0]).fields[1].fields[0])) {
2469
- if (head(head(yEle.fields[0]).fields[1].fields[0]).tag === /* Value */
2470
- 1) {
2471
- if (isEmpty(tail(head(yEle.fields[0]).fields[1].fields[0]))) {
2472
- if (!isEmpty(tail(yEle.fields[0]))) {
2473
- if (head(tail(yEle.fields[0])).tag === /* Mapping */
2474
- 0) {
2475
- if (head(tail(yEle.fields[0])).fields[1].tag === /* Object */
2476
- 3) {
2477
- if (!isEmpty(head(tail(yEle.fields[0])).fields[1].fields[0])) {
2478
- if (head(head(tail(yEle.fields[0])).fields[1].fields[0]).tag === /* Value */
2479
- 1) {
2480
- if (isEmpty(tail(head(tail(yEle.fields[0])).fields[1].fields[0]))) {
2481
- if (isEmpty(tail(tail(yEle.fields[0])))) {
2482
- matchResult = 1;
2483
- v1 = head(head(yEle.fields[0]).fields[1].fields[0]).fields[0];
2484
- v2 = head(head(tail(yEle.fields[0])).fields[1].fields[0]).fields[0];
2485
- } else {
2486
- matchResult = 3;
2487
- }
2488
- } else {
2489
- matchResult = 3;
2490
- }
2491
- } else {
2492
- matchResult = 3;
2493
- }
2494
- } else {
2495
- matchResult = 3;
2496
- }
2497
- } else {
2498
- matchResult = 3;
2499
- }
2500
- } else {
2501
- matchResult = 3;
2502
- }
2503
- } else {
2504
- matchResult = 3;
2505
- }
2506
- } else {
2507
- matchResult = 3;
2508
- }
2509
- } else {
2510
- matchResult = 3;
2511
- }
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];
2512
2960
  } else {
2513
- matchResult = 3;
2961
+ matchResult_1 = 2;
2514
2962
  }
2515
- } else {
2516
- matchResult = 3;
2963
+ break;
2517
2964
  }
2518
- break;
2519
- }
2520
- case /* Sequence */
2521
- 2: {
2522
- if (isEmpty(tail(yEle.fields[0]))) {
2523
- matchResult = 2;
2524
- s = head(yEle.fields[0]).fields[0];
2525
- } else {
2526
- 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;
2527
2974
  }
2528
- break;
2975
+ default:
2976
+ matchResult_1 = 2;
2529
2977
  }
2530
- default:
2531
- matchResult = 3;
2978
+ } else {
2979
+ matchResult_1 = 2;
2532
2980
  }
2533
- } else {
2534
- matchResult = 3;
2981
+ break;
2535
2982
  }
2536
- } else {
2537
- 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;
2538
2991
  }
2539
- switch (matchResult) {
2992
+ switch (matchResult_1) {
2540
2993
  case 0:
2541
- return new CWLParameterReference(key, [v.Value]);
2542
- case 1:
2543
- 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
+ }
2544
3021
  case 2: {
2545
- const matchValue = tryHead(s);
2546
- let matchResult_1, mappings;
2547
- if (matchValue != null) {
2548
- if (value(matchValue).tag === /* Object */
2549
- 3) {
2550
- matchResult_1 = 0;
2551
- 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);
2552
3028
  } else {
2553
- 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);
2554
3034
  }
2555
3035
  } else {
2556
- matchResult_1 = 1;
2557
- }
2558
- switch (matchResult_1) {
2559
- case 0:
2560
- if (!exists((_arg) => {
2561
- if (_arg.tag === /* Mapping */
2562
- 0) {
2563
- return true;
2564
- } else {
2565
- return false;
2566
- }
2567
- }, mappings)) {
2568
- return new CWLParameterReference(key, resizearray(string, YAMLElement_Sequence(s)));
2569
- } else if (exists((_arg_1) => {
2570
- let matchResult_2, k_1;
2571
- if (_arg_1.tag === /* Mapping */
2572
- 0) {
2573
- if (_arg_1.fields[0].Value === "class") {
2574
- matchResult_2 = 0;
2575
- k_1 = _arg_1.fields[0];
2576
- } else {
2577
- matchResult_2 = 1;
2578
- }
2579
- } else {
2580
- matchResult_2 = 1;
2581
- }
2582
- switch (matchResult_2) {
2583
- case 0:
2584
- return true;
2585
- default:
2586
- return false;
2587
- }
2588
- }, mappings)) {
2589
- const paths = [];
2590
- const enumerator = getEnumerator(s);
2591
- try {
2592
- while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
2593
- const item = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
2594
- if (item.tag === /* Object */
2595
- 3) {
2596
- const enumerator_1 = getEnumerator(item.fields[0]);
2597
- try {
2598
- while (enumerator_1["System.Collections.IEnumerator.MoveNext"]()) {
2599
- const mapping = enumerator_1["System.Collections.Generic.IEnumerator`1.get_Current"]();
2600
- let matchResult_3, k_3, v_2;
2601
- if (mapping.tag === /* Mapping */
2602
- 0) {
2603
- if (mapping.fields[1].tag === /* Object */
2604
- 3) {
2605
- if (!isEmpty(mapping.fields[1].fields[0])) {
2606
- if (head(mapping.fields[1].fields[0]).tag === /* Value */
2607
- 1) {
2608
- if (isEmpty(tail(mapping.fields[1].fields[0]))) {
2609
- if (v_1 = head(mapping.fields[1].fields[0]).fields[0], mapping.fields[0].Value === "path") {
2610
- matchResult_3 = 0;
2611
- k_3 = mapping.fields[0];
2612
- v_2 = head(mapping.fields[1].fields[0]).fields[0];
2613
- } else {
2614
- matchResult_3 = 1;
2615
- }
2616
- } else {
2617
- matchResult_3 = 1;
2618
- }
2619
- } else {
2620
- matchResult_3 = 1;
2621
- }
2622
- } else {
2623
- matchResult_3 = 1;
2624
- }
2625
- } else {
2626
- matchResult_3 = 1;
2627
- }
2628
- } else {
2629
- matchResult_3 = 1;
2630
- }
2631
- switch (matchResult_3) {
2632
- case 0: {
2633
- void paths.push(v_2.Value);
2634
- break;
2635
- }
2636
- }
2637
- }
2638
- } finally {
2639
- disposeSafe(enumerator_1);
2640
- }
2641
- }
2642
- }
2643
- } finally {
2644
- disposeSafe(enumerator);
2645
- }
2646
- return new CWLParameterReference(key, paths, CWLType_Array(new InputArraySchema(CWLType_File(FileInstance_$ctor()), void 0, void 0, void 0)));
2647
- } else {
2648
- return new CWLParameterReference(key, []);
2649
- }
2650
- default:
2651
- 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);
2652
3040
  }
2653
3041
  }
2654
3042
  default:
@@ -2664,4 +3052,4 @@ function DecodeParameters_decodeYAMLParameterFile(yaml) {
2664
3052
  return DecodeParameters_cwlparameterReferenceArrayDecoder(read(yaml));
2665
3053
  }
2666
3054
 
2667
- 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_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_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_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$0040315, inputArraySchemaDecoder$0040315$002D1, inputEnumSchemaDecoder$0040395, inputEnumSchemaDecoder$0040395$002D1, inputRecordFieldDecoder$0040329, inputRecordFieldDecoder$0040329$002D1, inputRecordSchemaDecoder$0040368, inputRecordSchemaDecoder$0040368$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 };