diff --git a/package.json b/package.json index 30a9d98..071ca22 100644 --- a/package.json +++ b/package.json @@ -43,11 +43,12 @@ "chai-as-promised": "^7.1.1", "mocha": "^9.1.3", "nyc": "^15.1.0", - "rimraf": "^3.0.2", "sinon": "^12.0.1", "ts-node": "^10.4.0", "typedoc": "^0.22.10", - "typescript": "^4.4.4" + "typescript": "^4.4.4", + "codecov.io": "^0.1.6", + "rimraf": "^3.0.2" }, "dependencies": { "js-yaml": "^4.1.0", diff --git a/src/ArraySchema.ts b/src/ArraySchema.ts index 9600dc6..abc122a 100644 --- a/src/ArraySchema.ts +++ b/src/ArraySchema.ts @@ -24,12 +24,12 @@ export class ArraySchema extends Saveable implements Internal.ArraySchemaPropert /** * Defines the type of the array elements. */ - items: Internal.PrimitiveType | Internal.RecordSchema | Internal.EnumSchema | Internal.ArraySchema | string | Array<Internal.PrimitiveType | Internal.RecordSchema | Internal.EnumSchema | Internal.ArraySchema | string> + items: Internal.PrimitiveType | Internal.RecordSchema | Internal.EnumSchema | Internal.ArraySchema | Internal.MapSchema | Internal.UnionSchema | string | Array<Internal.PrimitiveType | Internal.RecordSchema | Internal.EnumSchema | Internal.ArraySchema | Internal.MapSchema | Internal.UnionSchema | string> /** * Must be `array` */ - type: Internal.enum_d062602be0b4b8fd33e69e29a841317b6ab665bc + type: Internal.Array_name constructor ({loadingOptions, extensionFields, items, type} : {loadingOptions?: LoadingOptions} & Internal.ArraySchemaProperties) { @@ -57,7 +57,7 @@ export class ArraySchema extends Saveable implements Internal.ArraySchemaPropert let items try { - items = await loadField(_doc.items, LoaderInstances.typedslunionOfPrimitiveTypeLoaderOrRecordSchemaLoaderOrEnumSchemaLoaderOrArraySchemaLoaderOrstrtypeOrarrayOfunionOfPrimitiveTypeLoaderOrRecordSchemaLoaderOrEnumSchemaLoaderOrArraySchemaLoaderOrstrtype2, + items = await loadField(_doc.items, LoaderInstances.uriunionOfPrimitiveTypeLoaderOrRecordSchemaLoaderOrEnumSchemaLoaderOrArraySchemaLoaderOrMapSchemaLoaderOrUnionSchemaLoaderOrstrtypeOrarrayOfunionOfPrimitiveTypeLoaderOrRecordSchemaLoaderOrEnumSchemaLoaderOrArraySchemaLoaderOrMapSchemaLoaderOrUnionSchemaLoaderOrstrtypeFalseTrue2None, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -71,7 +71,7 @@ export class ArraySchema extends Saveable implements Internal.ArraySchemaPropert let type try { - type = await loadField(_doc.type, LoaderInstances.typedslenum_d062602be0b4b8fd33e69e29a841317b6ab665bcLoader2, + type = await loadField(_doc.type, LoaderInstances.typedslArray_nameLoader2, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -120,7 +120,11 @@ export class ArraySchema extends Saveable implements Internal.ArraySchemaPropert } if (this.items != null) { - r.items = save(this.items, false, baseUrl, relativeUris) + const u = saveRelativeUri(this.items, baseUrl, false, + relativeUris, 2) + if (u != null) { + r.items = u + } } if (this.type != null) { diff --git a/src/ArraySchemaProperties.ts b/src/ArraySchemaProperties.ts index bf4ac9c..ce92fd8 100644 --- a/src/ArraySchemaProperties.ts +++ b/src/ArraySchemaProperties.ts @@ -12,10 +12,10 @@ export interface ArraySchemaProperties { /** * Defines the type of the array elements. */ - items: Internal.PrimitiveType | Internal.RecordSchema | Internal.EnumSchema | Internal.ArraySchema | string | Array<Internal.PrimitiveType | Internal.RecordSchema | Internal.EnumSchema | Internal.ArraySchema | string> + items: Internal.PrimitiveType | Internal.RecordSchema | Internal.EnumSchema | Internal.ArraySchema | Internal.MapSchema | Internal.UnionSchema | string | Array<Internal.PrimitiveType | Internal.RecordSchema | Internal.EnumSchema | Internal.ArraySchema | Internal.MapSchema | Internal.UnionSchema | string> /** * Must be `array` */ - type: Internal.enum_d062602be0b4b8fd33e69e29a841317b6ab665bc + type: Internal.Array_name } \ No newline at end of file diff --git a/src/Array_name.ts b/src/Array_name.ts new file mode 100644 index 0000000..50abe24 --- /dev/null +++ b/src/Array_name.ts @@ -0,0 +1,4 @@ + +export enum Array_name { + ARRAY='array', +} diff --git a/src/CWLArraySchema.ts b/src/CWLArraySchema.ts new file mode 100644 index 0000000..4a173f3 --- /dev/null +++ b/src/CWLArraySchema.ts @@ -0,0 +1,146 @@ + +import { + Dictionary, + expandUrl, + loadField, + LoaderInstances, + LoadingOptions, + Saveable, + ValidationException, + prefixUrl, + save, + saveRelativeUri +} from './util/Internal' +import { v4 as uuidv4 } from 'uuid' +import * as Internal from './util/Internal' + + +/** + * Auto-generated class implementation for https://w3id.org/cwl/cwl#CWLArraySchema + */ +export class CWLArraySchema extends Saveable implements Internal.CWLArraySchemaProperties { + extensionFields?: Internal.Dictionary<any> + + /** + * Defines the type of the array elements. + */ + items: Internal.PrimitiveType | Internal.CWLRecordSchema | Internal.EnumSchema | Internal.CWLArraySchema | string | Array<Internal.PrimitiveType | Internal.CWLRecordSchema | Internal.EnumSchema | Internal.CWLArraySchema | string> + + /** + * Must be `array` + */ + type: Internal.Array_name + + + constructor ({loadingOptions, extensionFields, items, type} : {loadingOptions?: LoadingOptions} & Internal.CWLArraySchemaProperties) { + super(loadingOptions) + this.extensionFields = extensionFields ?? {} + this.items = items + this.type = type + } + + /** + * Used to construct instances of {@link CWLArraySchema }. + * + * @param __doc Document fragment to load this record object from. + * @param baseuri Base URI to generate child document IDs against. + * @param loadingOptions Context for loading URIs and populating objects. + * @param docRoot ID at this position in the document (if available) + * @returns An instance of {@link CWLArraySchema } + * @throws {@link ValidationException} If the document fragment is not a + * {@link Dictionary} or validation of fields fails. + */ + static override async fromDoc (__doc: any, baseuri: string, loadingOptions: LoadingOptions, + docRoot?: string): Promise<Saveable> { + const _doc = Object.assign({}, __doc) + const __errors: ValidationException[] = [] + + let items + try { + items = await loadField(_doc.items, LoaderInstances.uriunionOfPrimitiveTypeLoaderOrCWLRecordSchemaLoaderOrEnumSchemaLoaderOrCWLArraySchemaLoaderOrstrtypeOrarrayOfunionOfPrimitiveTypeLoaderOrCWLRecordSchemaLoaderOrEnumSchemaLoaderOrCWLArraySchemaLoaderOrstrtypeFalseTrue2None, + baseuri, loadingOptions) + } catch (e) { + if (e instanceof ValidationException) { + __errors.push( + new ValidationException('the `items` field is not valid because: ', [e]) + ) + } else { + throw e + } + } + + let type + try { + type = await loadField(_doc.type, LoaderInstances.typedslArray_nameLoader2, + baseuri, loadingOptions) + } catch (e) { + if (e instanceof ValidationException) { + __errors.push( + new ValidationException('the `type` field is not valid because: ', [e]) + ) + } else { + throw e + } + } + + const extensionFields: Dictionary<any> = {} + for (const [key, value] of Object.entries(_doc)) { + if (!CWLArraySchema.attr.has(key)) { + if ((key as string).includes(':')) { + const ex = expandUrl(key, '', loadingOptions, false, false) + extensionFields[ex] = value + } else { + __errors.push( + new ValidationException(`invalid field ${key as string}, \ + expected one of: \`items\`,\`type\``) + ) + break + } + } + } + + if (__errors.length > 0) { + throw new ValidationException("Trying 'CWLArraySchema'", __errors) + } + + const schema = new CWLArraySchema({ + extensionFields: extensionFields, + loadingOptions: loadingOptions, + items: items, + type: type + }) + return schema + } + + save (top: boolean = false, baseUrl: string = '', relativeUris: boolean = true) + : Dictionary<any> { + const r: Dictionary<any> = {} + for (const ef in this.extensionFields) { + r[prefixUrl(ef, this.loadingOptions.vocab)] = this.extensionFields.ef + } + + if (this.items != null) { + const u = saveRelativeUri(this.items, baseUrl, false, + relativeUris, 2) + if (u != null) { + r.items = u + } + } + + if (this.type != null) { + r.type = save(this.type, false, baseUrl, relativeUris) + } + + if (top) { + if (this.loadingOptions.namespaces != null) { + r.$namespaces = this.loadingOptions.namespaces + } + if (this.loadingOptions.schemas != null) { + r.$schemas = this.loadingOptions.schemas + } + } + return r + } + + static attr: Set<string> = new Set(['items','type']) +} diff --git a/src/CWLArraySchemaProperties.ts b/src/CWLArraySchemaProperties.ts new file mode 100644 index 0000000..d476b6c --- /dev/null +++ b/src/CWLArraySchemaProperties.ts @@ -0,0 +1,21 @@ + +import * as Internal from './util/Internal' + + +/** + * Auto-generated interface for https://w3id.org/cwl/cwl#CWLArraySchema + */ +export interface CWLArraySchemaProperties extends Internal.ArraySchemaProperties { + + extensionFields?: Internal.Dictionary<any> + + /** + * Defines the type of the array elements. + */ + items: Internal.PrimitiveType | Internal.CWLRecordSchema | Internal.EnumSchema | Internal.CWLArraySchema | string | Array<Internal.PrimitiveType | Internal.CWLRecordSchema | Internal.EnumSchema | Internal.CWLArraySchema | string> + + /** + * Must be `array` + */ + type: Internal.Array_name +} \ No newline at end of file diff --git a/src/CWLRecordField.ts b/src/CWLRecordField.ts new file mode 100644 index 0000000..e620b36 --- /dev/null +++ b/src/CWLRecordField.ts @@ -0,0 +1,188 @@ + +import { + Dictionary, + expandUrl, + loadField, + LoaderInstances, + LoadingOptions, + Saveable, + ValidationException, + prefixUrl, + save, + saveRelativeUri +} from './util/Internal' +import { v4 as uuidv4 } from 'uuid' +import * as Internal from './util/Internal' + + +/** + * Auto-generated class implementation for https://w3id.org/cwl/cwl#CWLRecordField + */ +export class CWLRecordField extends Saveable implements Internal.CWLRecordFieldProperties { + extensionFields?: Internal.Dictionary<any> + + /** + * The name of the field + * + */ + name: string + + /** + * A documentation string for this object, or an array of strings which should be concatenated. + */ + doc?: undefined | string | Array<string> + + /** + * The field type + * + */ + type: Internal.PrimitiveType | Internal.CWLRecordSchema | Internal.EnumSchema | Internal.CWLArraySchema | string | Array<Internal.PrimitiveType | Internal.CWLRecordSchema | Internal.EnumSchema | Internal.CWLArraySchema | string> + + + constructor ({loadingOptions, extensionFields, name, doc, type} : {loadingOptions?: LoadingOptions} & Internal.CWLRecordFieldProperties) { + super(loadingOptions) + this.extensionFields = extensionFields ?? {} + this.name = name + this.doc = doc + this.type = type + } + + /** + * Used to construct instances of {@link CWLRecordField }. + * + * @param __doc Document fragment to load this record object from. + * @param baseuri Base URI to generate child document IDs against. + * @param loadingOptions Context for loading URIs and populating objects. + * @param docRoot ID at this position in the document (if available) + * @returns An instance of {@link CWLRecordField } + * @throws {@link ValidationException} If the document fragment is not a + * {@link Dictionary} or validation of fields fails. + */ + static override async fromDoc (__doc: any, baseuri: string, loadingOptions: LoadingOptions, + docRoot?: string): Promise<Saveable> { + const _doc = Object.assign({}, __doc) + const __errors: ValidationException[] = [] + + let name + if ('name' in _doc) { + try { + name = await loadField(_doc.name, LoaderInstances.uristrtypeTrueFalseNoneNone, + baseuri, loadingOptions) + } catch (e) { + if (e instanceof ValidationException) { + __errors.push( + new ValidationException('the `name` field is not valid because: ', [e]) + ) + } else { + throw e + } + } + } + + const originalnameIsUndefined = (name === undefined) + if (originalnameIsUndefined ) { + if (docRoot != null) { + name = docRoot + } else { + throw new ValidationException("Missing name") + } + } else { + baseuri = name as string + } + + let doc + if ('doc' in _doc) { + try { + doc = await loadField(_doc.doc, LoaderInstances.unionOfundefinedtypeOrstrtypeOrarrayOfstrtype, + baseuri, loadingOptions) + } catch (e) { + if (e instanceof ValidationException) { + __errors.push( + new ValidationException('the `doc` field is not valid because: ', [e]) + ) + } else { + throw e + } + } + } + + let type + try { + type = await loadField(_doc.type, LoaderInstances.typedslunionOfPrimitiveTypeLoaderOrCWLRecordSchemaLoaderOrEnumSchemaLoaderOrCWLArraySchemaLoaderOrstrtypeOrarrayOfunionOfPrimitiveTypeLoaderOrCWLRecordSchemaLoaderOrEnumSchemaLoaderOrCWLArraySchemaLoaderOrstrtype2, + baseuri, loadingOptions) + } catch (e) { + if (e instanceof ValidationException) { + __errors.push( + new ValidationException('the `type` field is not valid because: ', [e]) + ) + } else { + throw e + } + } + + const extensionFields: Dictionary<any> = {} + for (const [key, value] of Object.entries(_doc)) { + if (!CWLRecordField.attr.has(key)) { + if ((key as string).includes(':')) { + const ex = expandUrl(key, '', loadingOptions, false, false) + extensionFields[ex] = value + } else { + __errors.push( + new ValidationException(`invalid field ${key as string}, \ + expected one of: \`doc\`,\`name\`,\`type\``) + ) + break + } + } + } + + if (__errors.length > 0) { + throw new ValidationException("Trying 'CWLRecordField'", __errors) + } + + const schema = new CWLRecordField({ + extensionFields: extensionFields, + loadingOptions: loadingOptions, + doc: doc, + name: name, + type: type + }) + return schema + } + + save (top: boolean = false, baseUrl: string = '', relativeUris: boolean = true) + : Dictionary<any> { + const r: Dictionary<any> = {} + for (const ef in this.extensionFields) { + r[prefixUrl(ef, this.loadingOptions.vocab)] = this.extensionFields.ef + } + + if (this.name != null) { + const u = saveRelativeUri(this.name, baseUrl, true, + relativeUris, undefined) + if (u != null) { + r.name = u + } + } + + if (this.doc != null) { + r.doc = save(this.doc, false, this.name, relativeUris) + } + + if (this.type != null) { + r.type = save(this.type, false, this.name, relativeUris) + } + + if (top) { + if (this.loadingOptions.namespaces != null) { + r.$namespaces = this.loadingOptions.namespaces + } + if (this.loadingOptions.schemas != null) { + r.$schemas = this.loadingOptions.schemas + } + } + return r + } + + static attr: Set<string> = new Set(['doc','name','type']) +} diff --git a/src/CWLRecordFieldProperties.ts b/src/CWLRecordFieldProperties.ts new file mode 100644 index 0000000..11c5ab9 --- /dev/null +++ b/src/CWLRecordFieldProperties.ts @@ -0,0 +1,28 @@ + +import * as Internal from './util/Internal' + + +/** + * Auto-generated interface for https://w3id.org/cwl/cwl#CWLRecordField + */ +export interface CWLRecordFieldProperties extends Internal.RecordFieldProperties { + + extensionFields?: Internal.Dictionary<any> + + /** + * The name of the field + * + */ + name: string + + /** + * A documentation string for this object, or an array of strings which should be concatenated. + */ + doc?: undefined | string | Array<string> + + /** + * The field type + * + */ + type: Internal.PrimitiveType | Internal.CWLRecordSchema | Internal.EnumSchema | Internal.CWLArraySchema | string | Array<Internal.PrimitiveType | Internal.CWLRecordSchema | Internal.EnumSchema | Internal.CWLArraySchema | string> +} \ No newline at end of file diff --git a/src/CWLRecordSchema.ts b/src/CWLRecordSchema.ts new file mode 100644 index 0000000..c88bb61 --- /dev/null +++ b/src/CWLRecordSchema.ts @@ -0,0 +1,144 @@ + +import { + Dictionary, + expandUrl, + loadField, + LoaderInstances, + LoadingOptions, + Saveable, + ValidationException, + prefixUrl, + save, + saveRelativeUri +} from './util/Internal' +import { v4 as uuidv4 } from 'uuid' +import * as Internal from './util/Internal' + + +/** + * Auto-generated class implementation for https://w3id.org/cwl/cwl#CWLRecordSchema + */ +export class CWLRecordSchema extends Saveable implements Internal.CWLRecordSchemaProperties { + extensionFields?: Internal.Dictionary<any> + + /** + * Defines the fields of the record. + */ + fields?: undefined | Array<Internal.CWLRecordField> + + /** + * Must be `record` + */ + type: Internal.Record_name + + + constructor ({loadingOptions, extensionFields, fields, type} : {loadingOptions?: LoadingOptions} & Internal.CWLRecordSchemaProperties) { + super(loadingOptions) + this.extensionFields = extensionFields ?? {} + this.fields = fields + this.type = type + } + + /** + * Used to construct instances of {@link CWLRecordSchema }. + * + * @param __doc Document fragment to load this record object from. + * @param baseuri Base URI to generate child document IDs against. + * @param loadingOptions Context for loading URIs and populating objects. + * @param docRoot ID at this position in the document (if available) + * @returns An instance of {@link CWLRecordSchema } + * @throws {@link ValidationException} If the document fragment is not a + * {@link Dictionary} or validation of fields fails. + */ + static override async fromDoc (__doc: any, baseuri: string, loadingOptions: LoadingOptions, + docRoot?: string): Promise<Saveable> { + const _doc = Object.assign({}, __doc) + const __errors: ValidationException[] = [] + + let fields + if ('fields' in _doc) { + try { + fields = await loadField(_doc.fields, LoaderInstances.idmapfieldsunionOfundefinedtypeOrarrayOfCWLRecordFieldLoader, + baseuri, loadingOptions) + } catch (e) { + if (e instanceof ValidationException) { + __errors.push( + new ValidationException('the `fields` field is not valid because: ', [e]) + ) + } else { + throw e + } + } + } + + let type + try { + type = await loadField(_doc.type, LoaderInstances.typedslRecord_nameLoader2, + baseuri, loadingOptions) + } catch (e) { + if (e instanceof ValidationException) { + __errors.push( + new ValidationException('the `type` field is not valid because: ', [e]) + ) + } else { + throw e + } + } + + const extensionFields: Dictionary<any> = {} + for (const [key, value] of Object.entries(_doc)) { + if (!CWLRecordSchema.attr.has(key)) { + if ((key as string).includes(':')) { + const ex = expandUrl(key, '', loadingOptions, false, false) + extensionFields[ex] = value + } else { + __errors.push( + new ValidationException(`invalid field ${key as string}, \ + expected one of: \`fields\`,\`type\``) + ) + break + } + } + } + + if (__errors.length > 0) { + throw new ValidationException("Trying 'CWLRecordSchema'", __errors) + } + + const schema = new CWLRecordSchema({ + extensionFields: extensionFields, + loadingOptions: loadingOptions, + fields: fields, + type: type + }) + return schema + } + + save (top: boolean = false, baseUrl: string = '', relativeUris: boolean = true) + : Dictionary<any> { + const r: Dictionary<any> = {} + for (const ef in this.extensionFields) { + r[prefixUrl(ef, this.loadingOptions.vocab)] = this.extensionFields.ef + } + + if (this.fields != null) { + r.fields = save(this.fields, false, baseUrl, relativeUris) + } + + if (this.type != null) { + r.type = save(this.type, false, baseUrl, relativeUris) + } + + if (top) { + if (this.loadingOptions.namespaces != null) { + r.$namespaces = this.loadingOptions.namespaces + } + if (this.loadingOptions.schemas != null) { + r.$schemas = this.loadingOptions.schemas + } + } + return r + } + + static attr: Set<string> = new Set(['fields','type']) +} diff --git a/src/CWLRecordSchemaProperties.ts b/src/CWLRecordSchemaProperties.ts new file mode 100644 index 0000000..dbaea09 --- /dev/null +++ b/src/CWLRecordSchemaProperties.ts @@ -0,0 +1,21 @@ + +import * as Internal from './util/Internal' + + +/** + * Auto-generated interface for https://w3id.org/cwl/cwl#CWLRecordSchema + */ +export interface CWLRecordSchemaProperties extends Internal.RecordSchemaProperties { + + extensionFields?: Internal.Dictionary<any> + + /** + * Defines the fields of the record. + */ + fields?: undefined | Array<Internal.CWLRecordField> + + /** + * Must be `record` + */ + type: Internal.Record_name +} \ No newline at end of file diff --git a/src/CommandInputArraySchema.ts b/src/CommandInputArraySchema.ts index bac4a64..59eb1a7 100644 --- a/src/CommandInputArraySchema.ts +++ b/src/CommandInputArraySchema.ts @@ -34,7 +34,7 @@ export class CommandInputArraySchema extends Saveable implements Internal.Comman /** * Must be `array` */ - type: Internal.enum_d062602be0b4b8fd33e69e29a841317b6ab665bc + type: Internal.Array_name /** * A short, human-readable label of this object. @@ -82,7 +82,7 @@ export class CommandInputArraySchema extends Saveable implements Internal.Comman let name if ('name' in _doc) { try { - name = await loadField(_doc.name, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNone, + name = await loadField(_doc.name, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -108,7 +108,7 @@ export class CommandInputArraySchema extends Saveable implements Internal.Comman let items try { - items = await loadField(_doc.items, LoaderInstances.typedslunionOfCWLTypeLoaderOrCommandInputRecordSchemaLoaderOrCommandInputEnumSchemaLoaderOrCommandInputArraySchemaLoaderOrstrtypeOrarrayOfunionOfCWLTypeLoaderOrCommandInputRecordSchemaLoaderOrCommandInputEnumSchemaLoaderOrCommandInputArraySchemaLoaderOrstrtype2, + items = await loadField(_doc.items, LoaderInstances.uriunionOfCWLTypeLoaderOrCommandInputRecordSchemaLoaderOrCommandInputEnumSchemaLoaderOrCommandInputArraySchemaLoaderOrstrtypeOrarrayOfunionOfCWLTypeLoaderOrCommandInputRecordSchemaLoaderOrCommandInputEnumSchemaLoaderOrCommandInputArraySchemaLoaderOrstrtypeFalseTrue2None, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -122,7 +122,7 @@ export class CommandInputArraySchema extends Saveable implements Internal.Comman let type try { - type = await loadField(_doc.type, LoaderInstances.typedslenum_d062602be0b4b8fd33e69e29a841317b6ab665bcLoader2, + type = await loadField(_doc.type, LoaderInstances.typedslArray_nameLoader2, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -231,7 +231,11 @@ export class CommandInputArraySchema extends Saveable implements Internal.Comman } if (this.items != null) { - r.items = save(this.items, false, this.name, relativeUris) + const u = saveRelativeUri(this.items, this.name, false, + relativeUris, 2) + if (u != null) { + r.items = u + } } if (this.type != null) { diff --git a/src/CommandInputArraySchemaProperties.ts b/src/CommandInputArraySchemaProperties.ts index 0c6ee0d..1d4064f 100644 --- a/src/CommandInputArraySchemaProperties.ts +++ b/src/CommandInputArraySchemaProperties.ts @@ -22,7 +22,7 @@ export interface CommandInputArraySchemaProperties extends Internal.InputArraySc /** * Must be `array` */ - type: Internal.enum_d062602be0b4b8fd33e69e29a841317b6ab665bc + type: Internal.Array_name /** * A short, human-readable label of this object. diff --git a/src/CommandInputEnumSchema.ts b/src/CommandInputEnumSchema.ts index c0ed41f..939daf8 100644 --- a/src/CommandInputEnumSchema.ts +++ b/src/CommandInputEnumSchema.ts @@ -34,7 +34,7 @@ export class CommandInputEnumSchema extends Saveable implements Internal.Command /** * Must be `enum` */ - type: Internal.enum_d961d79c225752b9fadb617367615ab176b47d77 + type: Internal.Enum_name /** * A short, human-readable label of this object. @@ -82,7 +82,7 @@ export class CommandInputEnumSchema extends Saveable implements Internal.Command let name if ('name' in _doc) { try { - name = await loadField(_doc.name, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNone, + name = await loadField(_doc.name, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -108,7 +108,7 @@ export class CommandInputEnumSchema extends Saveable implements Internal.Command let symbols try { - symbols = await loadField(_doc.symbols, LoaderInstances.uriarrayOfstrtypeTrueFalseNone, + symbols = await loadField(_doc.symbols, LoaderInstances.uriarrayOfstrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -122,7 +122,7 @@ export class CommandInputEnumSchema extends Saveable implements Internal.Command let type try { - type = await loadField(_doc.type, LoaderInstances.typedslenum_d961d79c225752b9fadb617367615ab176b47d77Loader2, + type = await loadField(_doc.type, LoaderInstances.typedslEnum_nameLoader2, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -191,7 +191,7 @@ export class CommandInputEnumSchema extends Saveable implements Internal.Command } else { __errors.push( new ValidationException(`invalid field ${key as string}, \ - expected one of: \`symbols\`,\`type\`,\`label\`,\`doc\`,\`name\`,\`inputBinding\``) + expected one of: \`name\`,\`symbols\`,\`type\`,\`label\`,\`doc\`,\`inputBinding\``) ) break } @@ -205,11 +205,11 @@ export class CommandInputEnumSchema extends Saveable implements Internal.Command const schema = new CommandInputEnumSchema({ extensionFields: extensionFields, loadingOptions: loadingOptions, + name: name, symbols: symbols, type: type, label: label, doc: doc, - name: name, inputBinding: inputBinding }) return schema @@ -265,5 +265,5 @@ export class CommandInputEnumSchema extends Saveable implements Internal.Command return r } - static attr: Set<string> = new Set(['symbols','type','label','doc','name','inputBinding']) + static attr: Set<string> = new Set(['name','symbols','type','label','doc','inputBinding']) } diff --git a/src/CommandInputEnumSchemaProperties.ts b/src/CommandInputEnumSchemaProperties.ts index a283b22..a381dc3 100644 --- a/src/CommandInputEnumSchemaProperties.ts +++ b/src/CommandInputEnumSchemaProperties.ts @@ -22,7 +22,7 @@ export interface CommandInputEnumSchemaProperties extends Internal.InputEnumSche /** * Must be `enum` */ - type: Internal.enum_d961d79c225752b9fadb617367615ab176b47d77 + type: Internal.Enum_name /** * A short, human-readable label of this object. diff --git a/src/CommandInputParameter.ts b/src/CommandInputParameter.ts index 54d2db3..3c0461d 100644 --- a/src/CommandInputParameter.ts +++ b/src/CommandInputParameter.ts @@ -141,7 +141,7 @@ export class CommandInputParameter extends Saveable implements Internal.CommandI * (e.g. dependent `valueFrom` fields). * */ - default_?: undefined | Internal.File | Internal.Directory | any + default_?: undefined | any /** * Specify valid types of data that may be assigned to this parameter. @@ -192,7 +192,7 @@ export class CommandInputParameter extends Saveable implements Internal.CommandI let id if ('id' in _doc) { try { - id = await loadField(_doc.id, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNone, + id = await loadField(_doc.id, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -283,7 +283,7 @@ export class CommandInputParameter extends Saveable implements Internal.CommandI let format if ('format' in _doc) { try { - format = await loadField(_doc.format, LoaderInstances.uriunionOfundefinedtypeOrstrtypeOrarrayOfstrtypeOrExpressionLoaderTrueFalseNone, + format = await loadField(_doc.format, LoaderInstances.uriunionOfundefinedtypeOrstrtypeOrarrayOfstrtypeOrExpressionLoaderTrueFalseNoneTrue, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -331,7 +331,7 @@ export class CommandInputParameter extends Saveable implements Internal.CommandI let default_ if ('default' in _doc) { try { - default_ = await loadField(_doc.default, LoaderInstances.unionOfundefinedtypeOrFileLoaderOrDirectoryLoaderOranyType, + default_ = await loadField(_doc.default, LoaderInstances.unionOfundefinedtypeOrCWLObjectTypeLoader, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/CommandInputParameterProperties.ts b/src/CommandInputParameterProperties.ts index 9ba94da..539b6a6 100644 --- a/src/CommandInputParameterProperties.ts +++ b/src/CommandInputParameterProperties.ts @@ -129,7 +129,7 @@ export interface CommandInputParameterProperties extends Internal.InputParameter * (e.g. dependent `valueFrom` fields). * */ - default_?: undefined | Internal.File | Internal.Directory | any + default_?: undefined | any /** * Specify valid types of data that may be assigned to this parameter. diff --git a/src/CommandInputRecordField.ts b/src/CommandInputRecordField.ts index 830e9d3..62a49b2 100644 --- a/src/CommandInputRecordField.ts +++ b/src/CommandInputRecordField.ts @@ -179,7 +179,7 @@ export class CommandInputRecordField extends Saveable implements Internal.Comman let name if ('name' in _doc) { try { - name = await loadField(_doc.name, LoaderInstances.uristrtypeTrueFalseNone, + name = await loadField(_doc.name, LoaderInstances.uristrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -284,7 +284,7 @@ export class CommandInputRecordField extends Saveable implements Internal.Comman let format if ('format' in _doc) { try { - format = await loadField(_doc.format, LoaderInstances.uriunionOfundefinedtypeOrstrtypeOrarrayOfstrtypeOrExpressionLoaderTrueFalseNone, + format = await loadField(_doc.format, LoaderInstances.uriunionOfundefinedtypeOrstrtypeOrarrayOfstrtypeOrExpressionLoaderTrueFalseNoneTrue, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/CommandInputRecordSchema.ts b/src/CommandInputRecordSchema.ts index a65f046..1acfb4a 100644 --- a/src/CommandInputRecordSchema.ts +++ b/src/CommandInputRecordSchema.ts @@ -34,7 +34,7 @@ export class CommandInputRecordSchema extends Saveable implements Internal.Comma /** * Must be `record` */ - type: Internal.enum_d9cba076fca539106791a4f46d198c7fcfbdb779 + type: Internal.Record_name /** * A short, human-readable label of this object. @@ -82,7 +82,7 @@ export class CommandInputRecordSchema extends Saveable implements Internal.Comma let name if ('name' in _doc) { try { - name = await loadField(_doc.name, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNone, + name = await loadField(_doc.name, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -124,7 +124,7 @@ export class CommandInputRecordSchema extends Saveable implements Internal.Comma let type try { - type = await loadField(_doc.type, LoaderInstances.typedslenum_d9cba076fca539106791a4f46d198c7fcfbdb779Loader2, + type = await loadField(_doc.type, LoaderInstances.typedslRecord_nameLoader2, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/CommandInputRecordSchemaProperties.ts b/src/CommandInputRecordSchemaProperties.ts index 1bfac94..c439452 100644 --- a/src/CommandInputRecordSchemaProperties.ts +++ b/src/CommandInputRecordSchemaProperties.ts @@ -22,7 +22,7 @@ export interface CommandInputRecordSchemaProperties extends Internal.InputRecord /** * Must be `record` */ - type: Internal.enum_d9cba076fca539106791a4f46d198c7fcfbdb779 + type: Internal.Record_name /** * A short, human-readable label of this object. diff --git a/src/CommandLineTool.ts b/src/CommandLineTool.ts index c7abf30..984e627 100644 --- a/src/CommandLineTool.ts +++ b/src/CommandLineTool.ts @@ -96,8 +96,9 @@ export class CommandLineTool extends Saveable implements Internal.CommandLineToo /** * An identifier for the type of computational operation, of this Process. - * Especially useful for "class: Operation", but can also be used for - * CommandLineTool, Workflow, or ExpressionTool. + * Especially useful for [`Operation`](Workflow.html#Operation), but can also be used for + * [`CommandLineTool`](CommandLineTool.html#CommandLineTool), + * [`Workflow`](Workflow.html#Workflow), or [ExpressionTool](Workflow.html#ExpressionTool). * * If provided, then this must be an IRI of a concept node that * represents the type of operation, preferably defined within an ontology. @@ -247,7 +248,7 @@ export class CommandLineTool extends Saveable implements Internal.CommandLineToo let id if ('id' in _doc) { try { - id = await loadField(_doc.id, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNone, + id = await loadField(_doc.id, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -273,7 +274,7 @@ export class CommandLineTool extends Saveable implements Internal.CommandLineToo let class_ try { - class_ = await loadField(_doc.class, LoaderInstances.uriCommandLineTool_classLoaderFalseTrueNone, + class_ = await loadField(_doc.class, LoaderInstances.uriCommandLineTool_classLoaderFalseTrueNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -380,7 +381,7 @@ export class CommandLineTool extends Saveable implements Internal.CommandLineToo let cwlVersion if ('cwlVersion' in _doc) { try { - cwlVersion = await loadField(_doc.cwlVersion, LoaderInstances.uriunionOfundefinedtypeOrCWLVersionLoaderFalseTrueNone, + cwlVersion = await loadField(_doc.cwlVersion, LoaderInstances.uriunionOfundefinedtypeOrCWLVersionLoaderFalseTrueNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -396,7 +397,7 @@ export class CommandLineTool extends Saveable implements Internal.CommandLineToo let intent if ('intent' in _doc) { try { - intent = await loadField(_doc.intent, LoaderInstances.uriunionOfundefinedtypeOrarrayOfstrtypeTrueFalseNone, + intent = await loadField(_doc.intent, LoaderInstances.uriunionOfundefinedtypeOrarrayOfstrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/CommandLineToolProperties.ts b/src/CommandLineToolProperties.ts index 60e1b29..61e670a 100644 --- a/src/CommandLineToolProperties.ts +++ b/src/CommandLineToolProperties.ts @@ -84,8 +84,9 @@ export interface CommandLineToolProperties extends Internal.ProcessProperties { /** * An identifier for the type of computational operation, of this Process. - * Especially useful for "class: Operation", but can also be used for - * CommandLineTool, Workflow, or ExpressionTool. + * Especially useful for [`Operation`](Workflow.html#Operation), but can also be used for + * [`CommandLineTool`](CommandLineTool.html#CommandLineTool), + * [`Workflow`](Workflow.html#Workflow), or [ExpressionTool](Workflow.html#ExpressionTool). * * If provided, then this must be an IRI of a concept node that * represents the type of operation, preferably defined within an ontology. diff --git a/src/CommandOutputArraySchema.ts b/src/CommandOutputArraySchema.ts index 870f8a1..629318c 100644 --- a/src/CommandOutputArraySchema.ts +++ b/src/CommandOutputArraySchema.ts @@ -34,7 +34,7 @@ export class CommandOutputArraySchema extends Saveable implements Internal.Comma /** * Must be `array` */ - type: Internal.enum_d062602be0b4b8fd33e69e29a841317b6ab665bc + type: Internal.Array_name /** * A short, human-readable label of this object. @@ -76,7 +76,7 @@ export class CommandOutputArraySchema extends Saveable implements Internal.Comma let name if ('name' in _doc) { try { - name = await loadField(_doc.name, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNone, + name = await loadField(_doc.name, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -102,7 +102,7 @@ export class CommandOutputArraySchema extends Saveable implements Internal.Comma let items try { - items = await loadField(_doc.items, LoaderInstances.typedslunionOfCWLTypeLoaderOrCommandOutputRecordSchemaLoaderOrCommandOutputEnumSchemaLoaderOrCommandOutputArraySchemaLoaderOrstrtypeOrarrayOfunionOfCWLTypeLoaderOrCommandOutputRecordSchemaLoaderOrCommandOutputEnumSchemaLoaderOrCommandOutputArraySchemaLoaderOrstrtype2, + items = await loadField(_doc.items, LoaderInstances.uriunionOfCWLTypeLoaderOrCommandOutputRecordSchemaLoaderOrCommandOutputEnumSchemaLoaderOrCommandOutputArraySchemaLoaderOrstrtypeOrarrayOfunionOfCWLTypeLoaderOrCommandOutputRecordSchemaLoaderOrCommandOutputEnumSchemaLoaderOrCommandOutputArraySchemaLoaderOrstrtypeFalseTrue2None, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -116,7 +116,7 @@ export class CommandOutputArraySchema extends Saveable implements Internal.Comma let type try { - type = await loadField(_doc.type, LoaderInstances.typedslenum_d062602be0b4b8fd33e69e29a841317b6ab665bcLoader2, + type = await loadField(_doc.type, LoaderInstances.typedslArray_nameLoader2, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -208,7 +208,11 @@ export class CommandOutputArraySchema extends Saveable implements Internal.Comma } if (this.items != null) { - r.items = save(this.items, false, this.name, relativeUris) + const u = saveRelativeUri(this.items, this.name, false, + relativeUris, 2) + if (u != null) { + r.items = u + } } if (this.type != null) { diff --git a/src/CommandOutputArraySchemaProperties.ts b/src/CommandOutputArraySchemaProperties.ts index c3528eb..ccadb3c 100644 --- a/src/CommandOutputArraySchemaProperties.ts +++ b/src/CommandOutputArraySchemaProperties.ts @@ -22,7 +22,7 @@ export interface CommandOutputArraySchemaProperties extends Internal.OutputArray /** * Must be `array` */ - type: Internal.enum_d062602be0b4b8fd33e69e29a841317b6ab665bc + type: Internal.Array_name /** * A short, human-readable label of this object. diff --git a/src/CommandOutputEnumSchema.ts b/src/CommandOutputEnumSchema.ts index 066f8e1..408a4b2 100644 --- a/src/CommandOutputEnumSchema.ts +++ b/src/CommandOutputEnumSchema.ts @@ -34,7 +34,7 @@ export class CommandOutputEnumSchema extends Saveable implements Internal.Comman /** * Must be `enum` */ - type: Internal.enum_d961d79c225752b9fadb617367615ab176b47d77 + type: Internal.Enum_name /** * A short, human-readable label of this object. @@ -76,7 +76,7 @@ export class CommandOutputEnumSchema extends Saveable implements Internal.Comman let name if ('name' in _doc) { try { - name = await loadField(_doc.name, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNone, + name = await loadField(_doc.name, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -102,7 +102,7 @@ export class CommandOutputEnumSchema extends Saveable implements Internal.Comman let symbols try { - symbols = await loadField(_doc.symbols, LoaderInstances.uriarrayOfstrtypeTrueFalseNone, + symbols = await loadField(_doc.symbols, LoaderInstances.uriarrayOfstrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -116,7 +116,7 @@ export class CommandOutputEnumSchema extends Saveable implements Internal.Comman let type try { - type = await loadField(_doc.type, LoaderInstances.typedslenum_d961d79c225752b9fadb617367615ab176b47d77Loader2, + type = await loadField(_doc.type, LoaderInstances.typedslEnum_nameLoader2, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -169,7 +169,7 @@ export class CommandOutputEnumSchema extends Saveable implements Internal.Comman } else { __errors.push( new ValidationException(`invalid field ${key as string}, \ - expected one of: \`symbols\`,\`type\`,\`label\`,\`doc\`,\`name\``) + expected one of: \`name\`,\`symbols\`,\`type\`,\`label\`,\`doc\``) ) break } @@ -183,11 +183,11 @@ export class CommandOutputEnumSchema extends Saveable implements Internal.Comman const schema = new CommandOutputEnumSchema({ extensionFields: extensionFields, loadingOptions: loadingOptions, + name: name, symbols: symbols, type: type, label: label, - doc: doc, - name: name + doc: doc }) return schema } @@ -238,5 +238,5 @@ export class CommandOutputEnumSchema extends Saveable implements Internal.Comman return r } - static attr: Set<string> = new Set(['symbols','type','label','doc','name']) + static attr: Set<string> = new Set(['name','symbols','type','label','doc']) } diff --git a/src/CommandOutputEnumSchemaProperties.ts b/src/CommandOutputEnumSchemaProperties.ts index eb88dd9..bc71358 100644 --- a/src/CommandOutputEnumSchemaProperties.ts +++ b/src/CommandOutputEnumSchemaProperties.ts @@ -22,7 +22,7 @@ export interface CommandOutputEnumSchemaProperties extends Internal.OutputEnumSc /** * Must be `enum` */ - type: Internal.enum_d961d79c225752b9fadb617367615ab176b47d77 + type: Internal.Enum_name /** * A short, human-readable label of this object. diff --git a/src/CommandOutputParameter.ts b/src/CommandOutputParameter.ts index bd8da3f..fae7e7c 100644 --- a/src/CommandOutputParameter.ts +++ b/src/CommandOutputParameter.ts @@ -148,7 +148,7 @@ export class CommandOutputParameter extends Saveable implements Internal.Command let id if ('id' in _doc) { try { - id = await loadField(_doc.id, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNone, + id = await loadField(_doc.id, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -239,7 +239,7 @@ export class CommandOutputParameter extends Saveable implements Internal.Command let format if ('format' in _doc) { try { - format = await loadField(_doc.format, LoaderInstances.uriunionOfundefinedtypeOrstrtypeOrExpressionLoaderTrueFalseNone, + format = await loadField(_doc.format, LoaderInstances.uriunionOfundefinedtypeOrstrtypeOrExpressionLoaderTrueFalseNoneTrue, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/CommandOutputRecordField.ts b/src/CommandOutputRecordField.ts index a12a67a..9bb5c02 100644 --- a/src/CommandOutputRecordField.ts +++ b/src/CommandOutputRecordField.ts @@ -149,7 +149,7 @@ export class CommandOutputRecordField extends Saveable implements Internal.Comma let name if ('name' in _doc) { try { - name = await loadField(_doc.name, LoaderInstances.uristrtypeTrueFalseNone, + name = await loadField(_doc.name, LoaderInstances.uristrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -254,7 +254,7 @@ export class CommandOutputRecordField extends Saveable implements Internal.Comma let format if ('format' in _doc) { try { - format = await loadField(_doc.format, LoaderInstances.uriunionOfundefinedtypeOrstrtypeOrExpressionLoaderTrueFalseNone, + format = await loadField(_doc.format, LoaderInstances.uriunionOfundefinedtypeOrstrtypeOrExpressionLoaderTrueFalseNoneTrue, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/CommandOutputRecordSchema.ts b/src/CommandOutputRecordSchema.ts index 052d8aa..f3b71c9 100644 --- a/src/CommandOutputRecordSchema.ts +++ b/src/CommandOutputRecordSchema.ts @@ -34,7 +34,7 @@ export class CommandOutputRecordSchema extends Saveable implements Internal.Comm /** * Must be `record` */ - type: Internal.enum_d9cba076fca539106791a4f46d198c7fcfbdb779 + type: Internal.Record_name /** * A short, human-readable label of this object. @@ -76,7 +76,7 @@ export class CommandOutputRecordSchema extends Saveable implements Internal.Comm let name if ('name' in _doc) { try { - name = await loadField(_doc.name, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNone, + name = await loadField(_doc.name, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -118,7 +118,7 @@ export class CommandOutputRecordSchema extends Saveable implements Internal.Comm let type try { - type = await loadField(_doc.type, LoaderInstances.typedslenum_d9cba076fca539106791a4f46d198c7fcfbdb779Loader2, + type = await loadField(_doc.type, LoaderInstances.typedslRecord_nameLoader2, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/CommandOutputRecordSchemaProperties.ts b/src/CommandOutputRecordSchemaProperties.ts index a05306b..e931f00 100644 --- a/src/CommandOutputRecordSchemaProperties.ts +++ b/src/CommandOutputRecordSchemaProperties.ts @@ -22,7 +22,7 @@ export interface CommandOutputRecordSchemaProperties extends Internal.OutputReco /** * Must be `record` */ - type: Internal.enum_d9cba076fca539106791a4f46d198c7fcfbdb779 + type: Internal.Record_name /** * A short, human-readable label of this object. diff --git a/src/Directory.ts b/src/Directory.ts index 4fe2d62..f289b22 100644 --- a/src/Directory.ts +++ b/src/Directory.ts @@ -23,8 +23,8 @@ import * as Internal from './util/Internal' * Directories are represented as objects with `class` of `Directory`. Directory objects have * a number of properties that provide metadata about the directory. * - * The `location` property of a Directory is a URI that uniquely identifies - * the directory. Implementations must support the file:// URI scheme and may + * The `location` property of a Directory is a IRI that uniquely identifies + * the directory. Implementations must support the file:// IRI scheme and may * support other schemes such as http://. Alternately to `location`, * implementations must also accept the `path` property on Directory, which * must be a filesystem path available on the same host as the CWL runner (for @@ -53,7 +53,7 @@ import * as Internal from './util/Internal' * first and have local values of `path` assigned. * * Directory objects in CommandLineTool output must provide either a - * `location` URI or a `path` property in the context of the tool execution + * `location` IRI or a `path` property in the context of the tool execution * runtime (local to the compute node, or within the executing container). * * An ExpressionTool may forward file references from input to output by using @@ -167,7 +167,7 @@ export class Directory extends Saveable implements Internal.DirectoryProperties let class_ try { - class_ = await loadField(_doc.class, LoaderInstances.uriDirectory_classLoaderFalseTrueNone, + class_ = await loadField(_doc.class, LoaderInstances.uriDirectory_classLoaderFalseTrueNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -182,7 +182,7 @@ export class Directory extends Saveable implements Internal.DirectoryProperties let location if ('location' in _doc) { try { - location = await loadField(_doc.location, LoaderInstances.uriunionOfundefinedtypeOrstrtypeFalseFalseNone, + location = await loadField(_doc.location, LoaderInstances.uriunionOfundefinedtypeOrstrtypeFalseFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -198,7 +198,7 @@ export class Directory extends Saveable implements Internal.DirectoryProperties let path if ('path' in _doc) { try { - path = await loadField(_doc.path, LoaderInstances.uriunionOfundefinedtypeOrstrtypeFalseFalseNone, + path = await loadField(_doc.path, LoaderInstances.uriunionOfundefinedtypeOrstrtypeFalseFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/DirectoryProperties.ts b/src/DirectoryProperties.ts index cfe4c7d..fa1c66c 100644 --- a/src/DirectoryProperties.ts +++ b/src/DirectoryProperties.ts @@ -10,8 +10,8 @@ import * as Internal from './util/Internal' * Directories are represented as objects with `class` of `Directory`. Directory objects have * a number of properties that provide metadata about the directory. * - * The `location` property of a Directory is a URI that uniquely identifies - * the directory. Implementations must support the file:// URI scheme and may + * The `location` property of a Directory is a IRI that uniquely identifies + * the directory. Implementations must support the file:// IRI scheme and may * support other schemes such as http://. Alternately to `location`, * implementations must also accept the `path` property on Directory, which * must be a filesystem path available on the same host as the CWL runner (for @@ -40,7 +40,7 @@ import * as Internal from './util/Internal' * first and have local values of `path` assigned. * * Directory objects in CommandLineTool output must provide either a - * `location` URI or a `path` property in the context of the tool execution + * `location` IRI or a `path` property in the context of the tool execution * runtime (local to the compute node, or within the executing container). * * An ExpressionTool may forward file references from input to output by using diff --git a/src/DockerRequirement.ts b/src/DockerRequirement.ts index 1ba4b1a..cb49987 100644 --- a/src/DockerRequirement.ts +++ b/src/DockerRequirement.ts @@ -149,7 +149,7 @@ export class DockerRequirement extends Saveable implements Internal.DockerRequir let class_ try { - class_ = await loadField(_doc.class, LoaderInstances.uriDockerRequirement_classLoaderFalseTrueNone, + class_ = await loadField(_doc.class, LoaderInstances.uriDockerRequirement_classLoaderFalseTrueNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/EnumSchema.ts b/src/EnumSchema.ts index d8b39c8..6e6a9be 100644 --- a/src/EnumSchema.ts +++ b/src/EnumSchema.ts @@ -23,6 +23,7 @@ import * as Internal from './util/Internal' */ export class EnumSchema extends Saveable implements Internal.EnumSchemaProperties { extensionFields?: Internal.Dictionary<any> + name?: undefined | string /** * Defines the set of valid symbols. @@ -32,12 +33,13 @@ export class EnumSchema extends Saveable implements Internal.EnumSchemaPropertie /** * Must be `enum` */ - type: Internal.enum_d961d79c225752b9fadb617367615ab176b47d77 + type: Internal.Enum_name - constructor ({loadingOptions, extensionFields, symbols, type} : {loadingOptions?: LoadingOptions} & Internal.EnumSchemaProperties) { + constructor ({loadingOptions, extensionFields, name, symbols, type} : {loadingOptions?: LoadingOptions} & Internal.EnumSchemaProperties) { super(loadingOptions) this.extensionFields = extensionFields ?? {} + this.name = name this.symbols = symbols this.type = type } @@ -58,9 +60,36 @@ export class EnumSchema extends Saveable implements Internal.EnumSchemaPropertie const _doc = Object.assign({}, __doc) const __errors: ValidationException[] = [] + let name + if ('name' in _doc) { + try { + name = await loadField(_doc.name, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNoneNone, + baseuri, loadingOptions) + } catch (e) { + if (e instanceof ValidationException) { + __errors.push( + new ValidationException('the `name` field is not valid because: ', [e]) + ) + } else { + throw e + } + } + } + + const originalnameIsUndefined = (name === undefined) + if (originalnameIsUndefined ) { + if (docRoot != null) { + name = docRoot + } else { + name = "_" + uuidv4() + } + } else { + baseuri = name as string + } + let symbols try { - symbols = await loadField(_doc.symbols, LoaderInstances.uriarrayOfstrtypeTrueFalseNone, + symbols = await loadField(_doc.symbols, LoaderInstances.uriarrayOfstrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -74,7 +103,7 @@ export class EnumSchema extends Saveable implements Internal.EnumSchemaPropertie let type try { - type = await loadField(_doc.type, LoaderInstances.typedslenum_d961d79c225752b9fadb617367615ab176b47d77Loader2, + type = await loadField(_doc.type, LoaderInstances.typedslEnum_nameLoader2, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -95,7 +124,7 @@ export class EnumSchema extends Saveable implements Internal.EnumSchemaPropertie } else { __errors.push( new ValidationException(`invalid field ${key as string}, \ - expected one of: \`symbols\`,\`type\``) + expected one of: \`name\`,\`symbols\`,\`type\``) ) break } @@ -109,6 +138,7 @@ export class EnumSchema extends Saveable implements Internal.EnumSchemaPropertie const schema = new EnumSchema({ extensionFields: extensionFields, loadingOptions: loadingOptions, + name: name, symbols: symbols, type: type }) @@ -122,8 +152,16 @@ export class EnumSchema extends Saveable implements Internal.EnumSchemaPropertie r[prefixUrl(ef, this.loadingOptions.vocab)] = this.extensionFields.ef } + if (this.name != null) { + const u = saveRelativeUri(this.name, baseUrl, true, + relativeUris, undefined) + if (u != null) { + r.name = u + } + } + if (this.symbols != null) { - const u = saveRelativeUri(this.symbols, baseUrl, true, + const u = saveRelativeUri(this.symbols, this.name, true, relativeUris, undefined) if (u != null) { r.symbols = u @@ -131,7 +169,7 @@ export class EnumSchema extends Saveable implements Internal.EnumSchemaPropertie } if (this.type != null) { - r.type = save(this.type, false, baseUrl, relativeUris) + r.type = save(this.type, false, this.name, relativeUris) } if (top) { @@ -145,5 +183,5 @@ export class EnumSchema extends Saveable implements Internal.EnumSchemaPropertie return r } - static attr: Set<string> = new Set(['symbols','type']) + static attr: Set<string> = new Set(['name','symbols','type']) } diff --git a/src/EnumSchemaProperties.ts b/src/EnumSchemaProperties.ts index 7669154..6d0ff3b 100644 --- a/src/EnumSchemaProperties.ts +++ b/src/EnumSchemaProperties.ts @@ -11,6 +11,7 @@ import * as Internal from './util/Internal' export interface EnumSchemaProperties { extensionFields?: Internal.Dictionary<any> + name?: undefined | string /** * Defines the set of valid symbols. @@ -20,5 +21,5 @@ export interface EnumSchemaProperties { /** * Must be `enum` */ - type: Internal.enum_d961d79c225752b9fadb617367615ab176b47d77 + type: Internal.Enum_name } \ No newline at end of file diff --git a/src/Enum_name.ts b/src/Enum_name.ts new file mode 100644 index 0000000..64471c7 --- /dev/null +++ b/src/Enum_name.ts @@ -0,0 +1,4 @@ + +export enum Enum_name { + ENUM='enum', +} diff --git a/src/EnvVarRequirement.ts b/src/EnvVarRequirement.ts index 2a33080..07cb617 100644 --- a/src/EnvVarRequirement.ts +++ b/src/EnvVarRequirement.ts @@ -61,7 +61,7 @@ export class EnvVarRequirement extends Saveable implements Internal.EnvVarRequir let class_ try { - class_ = await loadField(_doc.class, LoaderInstances.uriEnvVarRequirement_classLoaderFalseTrueNone, + class_ = await loadField(_doc.class, LoaderInstances.uriEnvVarRequirement_classLoaderFalseTrueNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/ExpressionTool.ts b/src/ExpressionTool.ts index 0b6ce37..d2b0928 100644 --- a/src/ExpressionTool.ts +++ b/src/ExpressionTool.ts @@ -102,8 +102,9 @@ export class ExpressionTool extends Saveable implements Internal.ExpressionToolP /** * An identifier for the type of computational operation, of this Process. - * Especially useful for "class: Operation", but can also be used for - * CommandLineTool, Workflow, or ExpressionTool. + * Especially useful for [`Operation`](Workflow.html#Operation), but can also be used for + * [`CommandLineTool`](CommandLineTool.html#CommandLineTool), + * [`Workflow`](Workflow.html#Workflow), or [ExpressionTool](Workflow.html#ExpressionTool). * * If provided, then this must be an IRI of a concept node that * represents the type of operation, preferably defined within an ontology. @@ -162,7 +163,7 @@ export class ExpressionTool extends Saveable implements Internal.ExpressionToolP let id if ('id' in _doc) { try { - id = await loadField(_doc.id, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNone, + id = await loadField(_doc.id, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -188,7 +189,7 @@ export class ExpressionTool extends Saveable implements Internal.ExpressionToolP let class_ try { - class_ = await loadField(_doc.class, LoaderInstances.uriExpressionTool_classLoaderFalseTrueNone, + class_ = await loadField(_doc.class, LoaderInstances.uriExpressionTool_classLoaderFalseTrueNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -295,7 +296,7 @@ export class ExpressionTool extends Saveable implements Internal.ExpressionToolP let cwlVersion if ('cwlVersion' in _doc) { try { - cwlVersion = await loadField(_doc.cwlVersion, LoaderInstances.uriunionOfundefinedtypeOrCWLVersionLoaderFalseTrueNone, + cwlVersion = await loadField(_doc.cwlVersion, LoaderInstances.uriunionOfundefinedtypeOrCWLVersionLoaderFalseTrueNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -311,7 +312,7 @@ export class ExpressionTool extends Saveable implements Internal.ExpressionToolP let intent if ('intent' in _doc) { try { - intent = await loadField(_doc.intent, LoaderInstances.uriunionOfundefinedtypeOrarrayOfstrtypeTrueFalseNone, + intent = await loadField(_doc.intent, LoaderInstances.uriunionOfundefinedtypeOrarrayOfstrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/ExpressionToolOutputParameter.ts b/src/ExpressionToolOutputParameter.ts index 4f5dbf9..593dcd0 100644 --- a/src/ExpressionToolOutputParameter.ts +++ b/src/ExpressionToolOutputParameter.ts @@ -104,6 +104,8 @@ export class ExpressionToolOutputParameter extends Saveable implements Internal. /** * Specify valid types of data that may be assigned to this parameter. + * Note that this field just acts as a hint, as the outputs of an + * ExpressionTool process are always considered valid. * */ type: Internal.CWLType | Internal.OutputRecordSchema | Internal.OutputEnumSchema | Internal.OutputArraySchema | string | Array<Internal.CWLType | Internal.OutputRecordSchema | Internal.OutputEnumSchema | Internal.OutputArraySchema | string> @@ -140,7 +142,7 @@ export class ExpressionToolOutputParameter extends Saveable implements Internal. let id if ('id' in _doc) { try { - id = await loadField(_doc.id, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNone, + id = await loadField(_doc.id, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -231,7 +233,7 @@ export class ExpressionToolOutputParameter extends Saveable implements Internal. let format if ('format' in _doc) { try { - format = await loadField(_doc.format, LoaderInstances.uriunionOfundefinedtypeOrstrtypeOrExpressionLoaderTrueFalseNone, + format = await loadField(_doc.format, LoaderInstances.uriunionOfundefinedtypeOrstrtypeOrExpressionLoaderTrueFalseNoneTrue, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/ExpressionToolOutputParameterProperties.ts b/src/ExpressionToolOutputParameterProperties.ts index ceb0166..a2a6a97 100644 --- a/src/ExpressionToolOutputParameterProperties.ts +++ b/src/ExpressionToolOutputParameterProperties.ts @@ -92,6 +92,8 @@ export interface ExpressionToolOutputParameterProperties extends Internal.Output /** * Specify valid types of data that may be assigned to this parameter. + * Note that this field just acts as a hint, as the outputs of an + * ExpressionTool process are always considered valid. * */ type: Internal.CWLType | Internal.OutputRecordSchema | Internal.OutputEnumSchema | Internal.OutputArraySchema | string | Array<Internal.CWLType | Internal.OutputRecordSchema | Internal.OutputEnumSchema | Internal.OutputArraySchema | string> diff --git a/src/ExpressionToolProperties.ts b/src/ExpressionToolProperties.ts index 4cea95b..4c44db2 100644 --- a/src/ExpressionToolProperties.ts +++ b/src/ExpressionToolProperties.ts @@ -90,8 +90,9 @@ export interface ExpressionToolProperties extends Internal.ProcessProperties { /** * An identifier for the type of computational operation, of this Process. - * Especially useful for "class: Operation", but can also be used for - * CommandLineTool, Workflow, or ExpressionTool. + * Especially useful for [`Operation`](Workflow.html#Operation), but can also be used for + * [`CommandLineTool`](CommandLineTool.html#CommandLineTool), + * [`Workflow`](Workflow.html#Workflow), or [ExpressionTool](Workflow.html#ExpressionTool). * * If provided, then this must be an IRI of a concept node that * represents the type of operation, preferably defined within an ontology. diff --git a/src/File.ts b/src/File.ts index 22f28b8..ca04955 100644 --- a/src/File.ts +++ b/src/File.ts @@ -25,10 +25,10 @@ import * as Internal from './util/Internal' * Files are represented as objects with `class` of `File`. File objects have * a number of properties that provide metadata about the file. * - * The `location` property of a File is a URI that uniquely identifies the - * file. Implementations must support the `file://` URI scheme and may support + * The `location` property of a File is a IRI that uniquely identifies the + * file. Implementations must support the `file://` IRI scheme and may support * other schemes such as `http://` and `https://`. The value of `location` may also be a - * relative reference, in which case it must be resolved relative to the URI + * relative reference, in which case it must be resolved relative to the IRI * of the document it appears in. Alternately to `location`, implementations * must also accept the `path` property on File, which must be a filesystem * path available on the same host as the CWL runner (for inputs) or the @@ -71,7 +71,7 @@ import * as Internal from './util/Internal' * modified by `outputEval`. Alternately, if the file `cwl.output.json` is * present in the output, `outputBinding` is ignored. * - * File objects in the output must provide either a `location` URI or a `path` + * File objects in the output must provide either a `location` IRI or a `path` * property in the context of the tool execution runtime (local to the compute * node, or within the executing container). * @@ -295,7 +295,7 @@ export class File extends Saveable implements Internal.FileProperties { let class_ try { - class_ = await loadField(_doc.class, LoaderInstances.uriFile_classLoaderFalseTrueNone, + class_ = await loadField(_doc.class, LoaderInstances.uriFile_classLoaderFalseTrueNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -310,7 +310,7 @@ export class File extends Saveable implements Internal.FileProperties { let location if ('location' in _doc) { try { - location = await loadField(_doc.location, LoaderInstances.uriunionOfundefinedtypeOrstrtypeFalseFalseNone, + location = await loadField(_doc.location, LoaderInstances.uriunionOfundefinedtypeOrstrtypeFalseFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -326,7 +326,7 @@ export class File extends Saveable implements Internal.FileProperties { let path if ('path' in _doc) { try { - path = await loadField(_doc.path, LoaderInstances.uriunionOfundefinedtypeOrstrtypeFalseFalseNone, + path = await loadField(_doc.path, LoaderInstances.uriunionOfundefinedtypeOrstrtypeFalseFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -454,7 +454,7 @@ export class File extends Saveable implements Internal.FileProperties { let format if ('format' in _doc) { try { - format = await loadField(_doc.format, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNone, + format = await loadField(_doc.format, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNoneTrue, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/FileProperties.ts b/src/FileProperties.ts index cd947c4..5bee224 100644 --- a/src/FileProperties.ts +++ b/src/FileProperties.ts @@ -12,10 +12,10 @@ import * as Internal from './util/Internal' * Files are represented as objects with `class` of `File`. File objects have * a number of properties that provide metadata about the file. * - * The `location` property of a File is a URI that uniquely identifies the - * file. Implementations must support the `file://` URI scheme and may support + * The `location` property of a File is a IRI that uniquely identifies the + * file. Implementations must support the `file://` IRI scheme and may support * other schemes such as `http://` and `https://`. The value of `location` may also be a - * relative reference, in which case it must be resolved relative to the URI + * relative reference, in which case it must be resolved relative to the IRI * of the document it appears in. Alternately to `location`, implementations * must also accept the `path` property on File, which must be a filesystem * path available on the same host as the CWL runner (for inputs) or the @@ -58,7 +58,7 @@ import * as Internal from './util/Internal' * modified by `outputEval`. Alternately, if the file `cwl.output.json` is * present in the output, `outputBinding` is ignored. * - * File objects in the output must provide either a `location` URI or a `path` + * File objects in the output must provide either a `location` IRI or a `path` * property in the context of the tool execution runtime (local to the compute * node, or within the executing container). * diff --git a/src/InitialWorkDirRequirement.ts b/src/InitialWorkDirRequirement.ts index bc83161..2bc8c93 100644 --- a/src/InitialWorkDirRequirement.ts +++ b/src/InitialWorkDirRequirement.ts @@ -84,7 +84,7 @@ export class InitialWorkDirRequirement extends Saveable implements Internal.Init let class_ try { - class_ = await loadField(_doc.class, LoaderInstances.uriInitialWorkDirRequirement_classLoaderFalseTrueNone, + class_ = await loadField(_doc.class, LoaderInstances.uriInitialWorkDirRequirement_classLoaderFalseTrueNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/InlineJavascriptRequirement.ts b/src/InlineJavascriptRequirement.ts index 9219496..bccb8c9 100644 --- a/src/InlineJavascriptRequirement.ts +++ b/src/InlineJavascriptRequirement.ts @@ -65,7 +65,7 @@ export class InlineJavascriptRequirement extends Saveable implements Internal.In let class_ try { - class_ = await loadField(_doc.class, LoaderInstances.uriInlineJavascriptRequirement_classLoaderFalseTrueNone, + class_ = await loadField(_doc.class, LoaderInstances.uriInlineJavascriptRequirement_classLoaderFalseTrueNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/InplaceUpdateRequirement.ts b/src/InplaceUpdateRequirement.ts index 1270a7f..6bb680d 100644 --- a/src/InplaceUpdateRequirement.ts +++ b/src/InplaceUpdateRequirement.ts @@ -85,7 +85,7 @@ export class InplaceUpdateRequirement extends Saveable implements Internal.Inpla let class_ try { - class_ = await loadField(_doc.class, LoaderInstances.uriInplaceUpdateRequirement_classLoaderFalseTrueNone, + class_ = await loadField(_doc.class, LoaderInstances.uriInplaceUpdateRequirement_classLoaderFalseTrueNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/InputArraySchema.ts b/src/InputArraySchema.ts index 8591ff3..db02115 100644 --- a/src/InputArraySchema.ts +++ b/src/InputArraySchema.ts @@ -34,7 +34,7 @@ export class InputArraySchema extends Saveable implements Internal.InputArraySch /** * Must be `array` */ - type: Internal.enum_d062602be0b4b8fd33e69e29a841317b6ab665bc + type: Internal.Array_name /** * A short, human-readable label of this object. @@ -76,7 +76,7 @@ export class InputArraySchema extends Saveable implements Internal.InputArraySch let name if ('name' in _doc) { try { - name = await loadField(_doc.name, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNone, + name = await loadField(_doc.name, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -102,7 +102,7 @@ export class InputArraySchema extends Saveable implements Internal.InputArraySch let items try { - items = await loadField(_doc.items, LoaderInstances.typedslunionOfCWLTypeLoaderOrInputRecordSchemaLoaderOrInputEnumSchemaLoaderOrInputArraySchemaLoaderOrstrtypeOrarrayOfunionOfCWLTypeLoaderOrInputRecordSchemaLoaderOrInputEnumSchemaLoaderOrInputArraySchemaLoaderOrstrtype2, + items = await loadField(_doc.items, LoaderInstances.uriunionOfCWLTypeLoaderOrInputRecordSchemaLoaderOrInputEnumSchemaLoaderOrInputArraySchemaLoaderOrstrtypeOrarrayOfunionOfCWLTypeLoaderOrInputRecordSchemaLoaderOrInputEnumSchemaLoaderOrInputArraySchemaLoaderOrstrtypeFalseTrue2None, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -116,7 +116,7 @@ export class InputArraySchema extends Saveable implements Internal.InputArraySch let type try { - type = await loadField(_doc.type, LoaderInstances.typedslenum_d062602be0b4b8fd33e69e29a841317b6ab665bcLoader2, + type = await loadField(_doc.type, LoaderInstances.typedslArray_nameLoader2, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -208,7 +208,11 @@ export class InputArraySchema extends Saveable implements Internal.InputArraySch } if (this.items != null) { - r.items = save(this.items, false, this.name, relativeUris) + const u = saveRelativeUri(this.items, this.name, false, + relativeUris, 2) + if (u != null) { + r.items = u + } } if (this.type != null) { diff --git a/src/InputArraySchemaProperties.ts b/src/InputArraySchemaProperties.ts index 49ebd66..f415773 100644 --- a/src/InputArraySchemaProperties.ts +++ b/src/InputArraySchemaProperties.ts @@ -5,7 +5,7 @@ import * as Internal from './util/Internal' /** * Auto-generated interface for https://w3id.org/cwl/cwl#InputArraySchema */ -export interface InputArraySchemaProperties extends Internal.ArraySchemaProperties, Internal.InputSchemaProperties { +export interface InputArraySchemaProperties extends Internal.CWLArraySchemaProperties, Internal.InputSchemaProperties { extensionFields?: Internal.Dictionary<any> @@ -22,7 +22,7 @@ export interface InputArraySchemaProperties extends Internal.ArraySchemaProperti /** * Must be `array` */ - type: Internal.enum_d062602be0b4b8fd33e69e29a841317b6ab665bc + type: Internal.Array_name /** * A short, human-readable label of this object. diff --git a/src/InputEnumSchema.ts b/src/InputEnumSchema.ts index 08c0a80..e8652f0 100644 --- a/src/InputEnumSchema.ts +++ b/src/InputEnumSchema.ts @@ -34,7 +34,7 @@ export class InputEnumSchema extends Saveable implements Internal.InputEnumSchem /** * Must be `enum` */ - type: Internal.enum_d961d79c225752b9fadb617367615ab176b47d77 + type: Internal.Enum_name /** * A short, human-readable label of this object. @@ -76,7 +76,7 @@ export class InputEnumSchema extends Saveable implements Internal.InputEnumSchem let name if ('name' in _doc) { try { - name = await loadField(_doc.name, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNone, + name = await loadField(_doc.name, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -102,7 +102,7 @@ export class InputEnumSchema extends Saveable implements Internal.InputEnumSchem let symbols try { - symbols = await loadField(_doc.symbols, LoaderInstances.uriarrayOfstrtypeTrueFalseNone, + symbols = await loadField(_doc.symbols, LoaderInstances.uriarrayOfstrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -116,7 +116,7 @@ export class InputEnumSchema extends Saveable implements Internal.InputEnumSchem let type try { - type = await loadField(_doc.type, LoaderInstances.typedslenum_d961d79c225752b9fadb617367615ab176b47d77Loader2, + type = await loadField(_doc.type, LoaderInstances.typedslEnum_nameLoader2, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -169,7 +169,7 @@ export class InputEnumSchema extends Saveable implements Internal.InputEnumSchem } else { __errors.push( new ValidationException(`invalid field ${key as string}, \ - expected one of: \`symbols\`,\`type\`,\`label\`,\`doc\`,\`name\``) + expected one of: \`name\`,\`symbols\`,\`type\`,\`label\`,\`doc\``) ) break } @@ -183,11 +183,11 @@ export class InputEnumSchema extends Saveable implements Internal.InputEnumSchem const schema = new InputEnumSchema({ extensionFields: extensionFields, loadingOptions: loadingOptions, + name: name, symbols: symbols, type: type, label: label, - doc: doc, - name: name + doc: doc }) return schema } @@ -238,5 +238,5 @@ export class InputEnumSchema extends Saveable implements Internal.InputEnumSchem return r } - static attr: Set<string> = new Set(['symbols','type','label','doc','name']) + static attr: Set<string> = new Set(['name','symbols','type','label','doc']) } diff --git a/src/InputEnumSchemaProperties.ts b/src/InputEnumSchemaProperties.ts index c31e853..14d1de7 100644 --- a/src/InputEnumSchemaProperties.ts +++ b/src/InputEnumSchemaProperties.ts @@ -22,7 +22,7 @@ export interface InputEnumSchemaProperties extends Internal.EnumSchemaProperties /** * Must be `enum` */ - type: Internal.enum_d961d79c225752b9fadb617367615ab176b47d77 + type: Internal.Enum_name /** * A short, human-readable label of this object. diff --git a/src/InputParameterProperties.ts b/src/InputParameterProperties.ts index 83045ee..8e06a3b 100644 --- a/src/InputParameterProperties.ts +++ b/src/InputParameterProperties.ts @@ -125,5 +125,5 @@ export interface InputParameterProperties extends Internal.ParameterProperties, * (e.g. dependent `valueFrom` fields). * */ - default_?: undefined | Internal.File | Internal.Directory | any + default_?: undefined | any } \ No newline at end of file diff --git a/src/InputRecordField.ts b/src/InputRecordField.ts index 0c1be1a..a8cf49d 100644 --- a/src/InputRecordField.ts +++ b/src/InputRecordField.ts @@ -173,7 +173,7 @@ export class InputRecordField extends Saveable implements Internal.InputRecordFi let name if ('name' in _doc) { try { - name = await loadField(_doc.name, LoaderInstances.uristrtypeTrueFalseNone, + name = await loadField(_doc.name, LoaderInstances.uristrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -278,7 +278,7 @@ export class InputRecordField extends Saveable implements Internal.InputRecordFi let format if ('format' in _doc) { try { - format = await loadField(_doc.format, LoaderInstances.uriunionOfundefinedtypeOrstrtypeOrarrayOfstrtypeOrExpressionLoaderTrueFalseNone, + format = await loadField(_doc.format, LoaderInstances.uriunionOfundefinedtypeOrstrtypeOrarrayOfstrtypeOrExpressionLoaderTrueFalseNoneTrue, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/InputRecordFieldProperties.ts b/src/InputRecordFieldProperties.ts index a2a8185..5bded11 100644 --- a/src/InputRecordFieldProperties.ts +++ b/src/InputRecordFieldProperties.ts @@ -5,7 +5,7 @@ import * as Internal from './util/Internal' /** * Auto-generated interface for https://w3id.org/cwl/cwl#InputRecordField */ -export interface InputRecordFieldProperties extends Internal.RecordFieldProperties, Internal.FieldBaseProperties, Internal.InputFormatProperties, Internal.LoadContentsProperties { +export interface InputRecordFieldProperties extends Internal.CWLRecordFieldProperties, Internal.FieldBaseProperties, Internal.InputFormatProperties, Internal.LoadContentsProperties { extensionFields?: Internal.Dictionary<any> diff --git a/src/InputRecordSchema.ts b/src/InputRecordSchema.ts index cddbabd..87565dd 100644 --- a/src/InputRecordSchema.ts +++ b/src/InputRecordSchema.ts @@ -34,7 +34,7 @@ export class InputRecordSchema extends Saveable implements Internal.InputRecordS /** * Must be `record` */ - type: Internal.enum_d9cba076fca539106791a4f46d198c7fcfbdb779 + type: Internal.Record_name /** * A short, human-readable label of this object. @@ -76,7 +76,7 @@ export class InputRecordSchema extends Saveable implements Internal.InputRecordS let name if ('name' in _doc) { try { - name = await loadField(_doc.name, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNone, + name = await loadField(_doc.name, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -118,7 +118,7 @@ export class InputRecordSchema extends Saveable implements Internal.InputRecordS let type try { - type = await loadField(_doc.type, LoaderInstances.typedslenum_d9cba076fca539106791a4f46d198c7fcfbdb779Loader2, + type = await loadField(_doc.type, LoaderInstances.typedslRecord_nameLoader2, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/InputRecordSchemaProperties.ts b/src/InputRecordSchemaProperties.ts index ab76a8f..b1428a4 100644 --- a/src/InputRecordSchemaProperties.ts +++ b/src/InputRecordSchemaProperties.ts @@ -5,7 +5,7 @@ import * as Internal from './util/Internal' /** * Auto-generated interface for https://w3id.org/cwl/cwl#InputRecordSchema */ -export interface InputRecordSchemaProperties extends Internal.RecordSchemaProperties, Internal.InputSchemaProperties { +export interface InputRecordSchemaProperties extends Internal.CWLRecordSchemaProperties, Internal.InputSchemaProperties { extensionFields?: Internal.Dictionary<any> @@ -22,7 +22,7 @@ export interface InputRecordSchemaProperties extends Internal.RecordSchemaProper /** * Must be `record` */ - type: Internal.enum_d9cba076fca539106791a4f46d198c7fcfbdb779 + type: Internal.Record_name /** * A short, human-readable label of this object. diff --git a/src/LoadListingRequirement.ts b/src/LoadListingRequirement.ts index d550112..69b2695 100644 --- a/src/LoadListingRequirement.ts +++ b/src/LoadListingRequirement.ts @@ -57,7 +57,7 @@ export class LoadListingRequirement extends Saveable implements Internal.LoadLis let class_ try { - class_ = await loadField(_doc.class, LoaderInstances.uriLoadListingRequirement_classLoaderFalseTrueNone, + class_ = await loadField(_doc.class, LoaderInstances.uriLoadListingRequirement_classLoaderFalseTrueNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/MapSchema.ts b/src/MapSchema.ts new file mode 100644 index 0000000..e428ed5 --- /dev/null +++ b/src/MapSchema.ts @@ -0,0 +1,146 @@ + +import { + Dictionary, + expandUrl, + loadField, + LoaderInstances, + LoadingOptions, + Saveable, + ValidationException, + prefixUrl, + save, + saveRelativeUri +} from './util/Internal' +import { v4 as uuidv4 } from 'uuid' +import * as Internal from './util/Internal' + + +/** + * Auto-generated class implementation for https://w3id.org/cwl/salad#MapSchema + */ +export class MapSchema extends Saveable implements Internal.MapSchemaProperties { + extensionFields?: Internal.Dictionary<any> + + /** + * Must be `map` + */ + type: Internal.Map_name + + /** + * Defines the type of the map elements. + */ + values: Internal.PrimitiveType | Internal.RecordSchema | Internal.EnumSchema | Internal.ArraySchema | Internal.MapSchema | Internal.UnionSchema | string | Array<Internal.PrimitiveType | Internal.RecordSchema | Internal.EnumSchema | Internal.ArraySchema | Internal.MapSchema | Internal.UnionSchema | string> + + + constructor ({loadingOptions, extensionFields, type, values} : {loadingOptions?: LoadingOptions} & Internal.MapSchemaProperties) { + super(loadingOptions) + this.extensionFields = extensionFields ?? {} + this.type = type + this.values = values + } + + /** + * Used to construct instances of {@link MapSchema }. + * + * @param __doc Document fragment to load this record object from. + * @param baseuri Base URI to generate child document IDs against. + * @param loadingOptions Context for loading URIs and populating objects. + * @param docRoot ID at this position in the document (if available) + * @returns An instance of {@link MapSchema } + * @throws {@link ValidationException} If the document fragment is not a + * {@link Dictionary} or validation of fields fails. + */ + static override async fromDoc (__doc: any, baseuri: string, loadingOptions: LoadingOptions, + docRoot?: string): Promise<Saveable> { + const _doc = Object.assign({}, __doc) + const __errors: ValidationException[] = [] + + let type + try { + type = await loadField(_doc.type, LoaderInstances.typedslMap_nameLoader2, + baseuri, loadingOptions) + } catch (e) { + if (e instanceof ValidationException) { + __errors.push( + new ValidationException('the `type` field is not valid because: ', [e]) + ) + } else { + throw e + } + } + + let values + try { + values = await loadField(_doc.values, LoaderInstances.uriunionOfPrimitiveTypeLoaderOrRecordSchemaLoaderOrEnumSchemaLoaderOrArraySchemaLoaderOrMapSchemaLoaderOrUnionSchemaLoaderOrstrtypeOrarrayOfunionOfPrimitiveTypeLoaderOrRecordSchemaLoaderOrEnumSchemaLoaderOrArraySchemaLoaderOrMapSchemaLoaderOrUnionSchemaLoaderOrstrtypeFalseTrue2None, + baseuri, loadingOptions) + } catch (e) { + if (e instanceof ValidationException) { + __errors.push( + new ValidationException('the `values` field is not valid because: ', [e]) + ) + } else { + throw e + } + } + + const extensionFields: Dictionary<any> = {} + for (const [key, value] of Object.entries(_doc)) { + if (!MapSchema.attr.has(key)) { + if ((key as string).includes(':')) { + const ex = expandUrl(key, '', loadingOptions, false, false) + extensionFields[ex] = value + } else { + __errors.push( + new ValidationException(`invalid field ${key as string}, \ + expected one of: \`type\`,\`values\``) + ) + break + } + } + } + + if (__errors.length > 0) { + throw new ValidationException("Trying 'MapSchema'", __errors) + } + + const schema = new MapSchema({ + extensionFields: extensionFields, + loadingOptions: loadingOptions, + type: type, + values: values + }) + return schema + } + + save (top: boolean = false, baseUrl: string = '', relativeUris: boolean = true) + : Dictionary<any> { + const r: Dictionary<any> = {} + for (const ef in this.extensionFields) { + r[prefixUrl(ef, this.loadingOptions.vocab)] = this.extensionFields.ef + } + + if (this.type != null) { + r.type = save(this.type, false, baseUrl, relativeUris) + } + + if (this.values != null) { + const u = saveRelativeUri(this.values, baseUrl, false, + relativeUris, 2) + if (u != null) { + r.values = u + } + } + + if (top) { + if (this.loadingOptions.namespaces != null) { + r.$namespaces = this.loadingOptions.namespaces + } + if (this.loadingOptions.schemas != null) { + r.$schemas = this.loadingOptions.schemas + } + } + return r + } + + static attr: Set<string> = new Set(['type','values']) +} diff --git a/src/MapSchemaProperties.ts b/src/MapSchemaProperties.ts new file mode 100644 index 0000000..6b179f3 --- /dev/null +++ b/src/MapSchemaProperties.ts @@ -0,0 +1,21 @@ + +import * as Internal from './util/Internal' + + +/** + * Auto-generated interface for https://w3id.org/cwl/salad#MapSchema + */ +export interface MapSchemaProperties { + + extensionFields?: Internal.Dictionary<any> + + /** + * Must be `map` + */ + type: Internal.Map_name + + /** + * Defines the type of the map elements. + */ + values: Internal.PrimitiveType | Internal.RecordSchema | Internal.EnumSchema | Internal.ArraySchema | Internal.MapSchema | Internal.UnionSchema | string | Array<Internal.PrimitiveType | Internal.RecordSchema | Internal.EnumSchema | Internal.ArraySchema | Internal.MapSchema | Internal.UnionSchema | string> +} \ No newline at end of file diff --git a/src/Map_name.ts b/src/Map_name.ts new file mode 100644 index 0000000..4e5eb00 --- /dev/null +++ b/src/Map_name.ts @@ -0,0 +1,4 @@ + +export enum Map_name { + MAP='map', +} diff --git a/src/MultipleInputFeatureRequirement.ts b/src/MultipleInputFeatureRequirement.ts index 1b7d8ca..3308c87 100644 --- a/src/MultipleInputFeatureRequirement.ts +++ b/src/MultipleInputFeatureRequirement.ts @@ -55,7 +55,7 @@ export class MultipleInputFeatureRequirement extends Saveable implements Interna let class_ try { - class_ = await loadField(_doc.class, LoaderInstances.uriMultipleInputFeatureRequirement_classLoaderFalseTrueNone, + class_ = await loadField(_doc.class, LoaderInstances.uriMultipleInputFeatureRequirement_classLoaderFalseTrueNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/NetworkAccess.ts b/src/NetworkAccess.ts index 4aed45d..1fd686d 100644 --- a/src/NetworkAccess.ts +++ b/src/NetworkAccess.ts @@ -70,7 +70,7 @@ export class NetworkAccess extends Saveable implements Internal.NetworkAccessPro let class_ try { - class_ = await loadField(_doc.class, LoaderInstances.uriNetworkAccess_classLoaderFalseTrueNone, + class_ = await loadField(_doc.class, LoaderInstances.uriNetworkAccess_classLoaderFalseTrueNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/Operation.ts b/src/Operation.ts index aa8f1cb..5411f8f 100644 --- a/src/Operation.ts +++ b/src/Operation.ts @@ -102,8 +102,9 @@ export class Operation extends Saveable implements Internal.OperationProperties /** * An identifier for the type of computational operation, of this Process. - * Especially useful for "class: Operation", but can also be used for - * CommandLineTool, Workflow, or ExpressionTool. + * Especially useful for [`Operation`](Workflow.html#Operation), but can also be used for + * [`CommandLineTool`](CommandLineTool.html#CommandLineTool), + * [`Workflow`](Workflow.html#Workflow), or [ExpressionTool](Workflow.html#ExpressionTool). * * If provided, then this must be an IRI of a concept node that * represents the type of operation, preferably defined within an ontology. @@ -153,7 +154,7 @@ export class Operation extends Saveable implements Internal.OperationProperties let id if ('id' in _doc) { try { - id = await loadField(_doc.id, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNone, + id = await loadField(_doc.id, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -179,7 +180,7 @@ export class Operation extends Saveable implements Internal.OperationProperties let class_ try { - class_ = await loadField(_doc.class, LoaderInstances.uriOperation_classLoaderFalseTrueNone, + class_ = await loadField(_doc.class, LoaderInstances.uriOperation_classLoaderFalseTrueNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -286,7 +287,7 @@ export class Operation extends Saveable implements Internal.OperationProperties let cwlVersion if ('cwlVersion' in _doc) { try { - cwlVersion = await loadField(_doc.cwlVersion, LoaderInstances.uriunionOfundefinedtypeOrCWLVersionLoaderFalseTrueNone, + cwlVersion = await loadField(_doc.cwlVersion, LoaderInstances.uriunionOfundefinedtypeOrCWLVersionLoaderFalseTrueNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -302,7 +303,7 @@ export class Operation extends Saveable implements Internal.OperationProperties let intent if ('intent' in _doc) { try { - intent = await loadField(_doc.intent, LoaderInstances.uriunionOfundefinedtypeOrarrayOfstrtypeTrueFalseNone, + intent = await loadField(_doc.intent, LoaderInstances.uriunionOfundefinedtypeOrarrayOfstrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/OperationInputParameter.ts b/src/OperationInputParameter.ts index 22828ce..cb11f44 100644 --- a/src/OperationInputParameter.ts +++ b/src/OperationInputParameter.ts @@ -142,7 +142,7 @@ export class OperationInputParameter extends Saveable implements Internal.Operat * (e.g. dependent `valueFrom` fields). * */ - default_?: undefined | Internal.File | Internal.Directory | any + default_?: undefined | any /** * Specify valid types of data that may be assigned to this parameter. @@ -185,7 +185,7 @@ export class OperationInputParameter extends Saveable implements Internal.Operat let id if ('id' in _doc) { try { - id = await loadField(_doc.id, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNone, + id = await loadField(_doc.id, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -276,7 +276,7 @@ export class OperationInputParameter extends Saveable implements Internal.Operat let format if ('format' in _doc) { try { - format = await loadField(_doc.format, LoaderInstances.uriunionOfundefinedtypeOrstrtypeOrarrayOfstrtypeOrExpressionLoaderTrueFalseNone, + format = await loadField(_doc.format, LoaderInstances.uriunionOfundefinedtypeOrstrtypeOrarrayOfstrtypeOrExpressionLoaderTrueFalseNoneTrue, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -324,7 +324,7 @@ export class OperationInputParameter extends Saveable implements Internal.Operat let default_ if ('default' in _doc) { try { - default_ = await loadField(_doc.default, LoaderInstances.unionOfundefinedtypeOrFileLoaderOrDirectoryLoaderOranyType, + default_ = await loadField(_doc.default, LoaderInstances.unionOfundefinedtypeOrCWLObjectTypeLoader, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/OperationInputParameterProperties.ts b/src/OperationInputParameterProperties.ts index c9028f0..b554f0d 100644 --- a/src/OperationInputParameterProperties.ts +++ b/src/OperationInputParameterProperties.ts @@ -130,7 +130,7 @@ export interface OperationInputParameterProperties extends Internal.InputParamet * (e.g. dependent `valueFrom` fields). * */ - default_?: undefined | Internal.File | Internal.Directory | any + default_?: undefined | any /** * Specify valid types of data that may be assigned to this parameter. diff --git a/src/OperationOutputParameter.ts b/src/OperationOutputParameter.ts index 6c31e1e..aba6a49 100644 --- a/src/OperationOutputParameter.ts +++ b/src/OperationOutputParameter.ts @@ -143,7 +143,7 @@ export class OperationOutputParameter extends Saveable implements Internal.Opera let id if ('id' in _doc) { try { - id = await loadField(_doc.id, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNone, + id = await loadField(_doc.id, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -234,7 +234,7 @@ export class OperationOutputParameter extends Saveable implements Internal.Opera let format if ('format' in _doc) { try { - format = await loadField(_doc.format, LoaderInstances.uriunionOfundefinedtypeOrstrtypeOrExpressionLoaderTrueFalseNone, + format = await loadField(_doc.format, LoaderInstances.uriunionOfundefinedtypeOrstrtypeOrExpressionLoaderTrueFalseNoneTrue, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/OperationProperties.ts b/src/OperationProperties.ts index 3eac568..9c0ca0d 100644 --- a/src/OperationProperties.ts +++ b/src/OperationProperties.ts @@ -90,8 +90,9 @@ export interface OperationProperties extends Internal.ProcessProperties { /** * An identifier for the type of computational operation, of this Process. - * Especially useful for "class: Operation", but can also be used for - * CommandLineTool, Workflow, or ExpressionTool. + * Especially useful for [`Operation`](Workflow.html#Operation), but can also be used for + * [`CommandLineTool`](CommandLineTool.html#CommandLineTool), + * [`Workflow`](Workflow.html#Workflow), or [ExpressionTool](Workflow.html#ExpressionTool). * * If provided, then this must be an IRI of a concept node that * represents the type of operation, preferably defined within an ontology. diff --git a/src/OutputArraySchema.ts b/src/OutputArraySchema.ts index e4f3077..f280389 100644 --- a/src/OutputArraySchema.ts +++ b/src/OutputArraySchema.ts @@ -34,7 +34,7 @@ export class OutputArraySchema extends Saveable implements Internal.OutputArrayS /** * Must be `array` */ - type: Internal.enum_d062602be0b4b8fd33e69e29a841317b6ab665bc + type: Internal.Array_name /** * A short, human-readable label of this object. @@ -76,7 +76,7 @@ export class OutputArraySchema extends Saveable implements Internal.OutputArrayS let name if ('name' in _doc) { try { - name = await loadField(_doc.name, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNone, + name = await loadField(_doc.name, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -102,7 +102,7 @@ export class OutputArraySchema extends Saveable implements Internal.OutputArrayS let items try { - items = await loadField(_doc.items, LoaderInstances.typedslunionOfCWLTypeLoaderOrOutputRecordSchemaLoaderOrOutputEnumSchemaLoaderOrOutputArraySchemaLoaderOrstrtypeOrarrayOfunionOfCWLTypeLoaderOrOutputRecordSchemaLoaderOrOutputEnumSchemaLoaderOrOutputArraySchemaLoaderOrstrtype2, + items = await loadField(_doc.items, LoaderInstances.uriunionOfCWLTypeLoaderOrOutputRecordSchemaLoaderOrOutputEnumSchemaLoaderOrOutputArraySchemaLoaderOrstrtypeOrarrayOfunionOfCWLTypeLoaderOrOutputRecordSchemaLoaderOrOutputEnumSchemaLoaderOrOutputArraySchemaLoaderOrstrtypeFalseTrue2None, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -116,7 +116,7 @@ export class OutputArraySchema extends Saveable implements Internal.OutputArrayS let type try { - type = await loadField(_doc.type, LoaderInstances.typedslenum_d062602be0b4b8fd33e69e29a841317b6ab665bcLoader2, + type = await loadField(_doc.type, LoaderInstances.typedslArray_nameLoader2, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -208,7 +208,11 @@ export class OutputArraySchema extends Saveable implements Internal.OutputArrayS } if (this.items != null) { - r.items = save(this.items, false, this.name, relativeUris) + const u = saveRelativeUri(this.items, this.name, false, + relativeUris, 2) + if (u != null) { + r.items = u + } } if (this.type != null) { diff --git a/src/OutputArraySchemaProperties.ts b/src/OutputArraySchemaProperties.ts index f348110..f519d0d 100644 --- a/src/OutputArraySchemaProperties.ts +++ b/src/OutputArraySchemaProperties.ts @@ -5,7 +5,7 @@ import * as Internal from './util/Internal' /** * Auto-generated interface for https://w3id.org/cwl/cwl#OutputArraySchema */ -export interface OutputArraySchemaProperties extends Internal.ArraySchemaProperties, Internal.OutputSchemaProperties { +export interface OutputArraySchemaProperties extends Internal.CWLArraySchemaProperties, Internal.OutputSchemaProperties { extensionFields?: Internal.Dictionary<any> @@ -22,7 +22,7 @@ export interface OutputArraySchemaProperties extends Internal.ArraySchemaPropert /** * Must be `array` */ - type: Internal.enum_d062602be0b4b8fd33e69e29a841317b6ab665bc + type: Internal.Array_name /** * A short, human-readable label of this object. diff --git a/src/OutputEnumSchema.ts b/src/OutputEnumSchema.ts index 9dfe780..4616822 100644 --- a/src/OutputEnumSchema.ts +++ b/src/OutputEnumSchema.ts @@ -34,7 +34,7 @@ export class OutputEnumSchema extends Saveable implements Internal.OutputEnumSch /** * Must be `enum` */ - type: Internal.enum_d961d79c225752b9fadb617367615ab176b47d77 + type: Internal.Enum_name /** * A short, human-readable label of this object. @@ -76,7 +76,7 @@ export class OutputEnumSchema extends Saveable implements Internal.OutputEnumSch let name if ('name' in _doc) { try { - name = await loadField(_doc.name, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNone, + name = await loadField(_doc.name, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -102,7 +102,7 @@ export class OutputEnumSchema extends Saveable implements Internal.OutputEnumSch let symbols try { - symbols = await loadField(_doc.symbols, LoaderInstances.uriarrayOfstrtypeTrueFalseNone, + symbols = await loadField(_doc.symbols, LoaderInstances.uriarrayOfstrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -116,7 +116,7 @@ export class OutputEnumSchema extends Saveable implements Internal.OutputEnumSch let type try { - type = await loadField(_doc.type, LoaderInstances.typedslenum_d961d79c225752b9fadb617367615ab176b47d77Loader2, + type = await loadField(_doc.type, LoaderInstances.typedslEnum_nameLoader2, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -169,7 +169,7 @@ export class OutputEnumSchema extends Saveable implements Internal.OutputEnumSch } else { __errors.push( new ValidationException(`invalid field ${key as string}, \ - expected one of: \`symbols\`,\`type\`,\`label\`,\`doc\`,\`name\``) + expected one of: \`name\`,\`symbols\`,\`type\`,\`label\`,\`doc\``) ) break } @@ -183,11 +183,11 @@ export class OutputEnumSchema extends Saveable implements Internal.OutputEnumSch const schema = new OutputEnumSchema({ extensionFields: extensionFields, loadingOptions: loadingOptions, + name: name, symbols: symbols, type: type, label: label, - doc: doc, - name: name + doc: doc }) return schema } @@ -238,5 +238,5 @@ export class OutputEnumSchema extends Saveable implements Internal.OutputEnumSch return r } - static attr: Set<string> = new Set(['symbols','type','label','doc','name']) + static attr: Set<string> = new Set(['name','symbols','type','label','doc']) } diff --git a/src/OutputEnumSchemaProperties.ts b/src/OutputEnumSchemaProperties.ts index 1d07165..5224f2c 100644 --- a/src/OutputEnumSchemaProperties.ts +++ b/src/OutputEnumSchemaProperties.ts @@ -22,7 +22,7 @@ export interface OutputEnumSchemaProperties extends Internal.EnumSchemaPropertie /** * Must be `enum` */ - type: Internal.enum_d961d79c225752b9fadb617367615ab176b47d77 + type: Internal.Enum_name /** * A short, human-readable label of this object. diff --git a/src/OutputRecordField.ts b/src/OutputRecordField.ts index c43c0be..1ba8736 100644 --- a/src/OutputRecordField.ts +++ b/src/OutputRecordField.ts @@ -141,7 +141,7 @@ export class OutputRecordField extends Saveable implements Internal.OutputRecord let name if ('name' in _doc) { try { - name = await loadField(_doc.name, LoaderInstances.uristrtypeTrueFalseNone, + name = await loadField(_doc.name, LoaderInstances.uristrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -246,7 +246,7 @@ export class OutputRecordField extends Saveable implements Internal.OutputRecord let format if ('format' in _doc) { try { - format = await loadField(_doc.format, LoaderInstances.uriunionOfundefinedtypeOrstrtypeOrExpressionLoaderTrueFalseNone, + format = await loadField(_doc.format, LoaderInstances.uriunionOfundefinedtypeOrstrtypeOrExpressionLoaderTrueFalseNoneTrue, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/OutputRecordFieldProperties.ts b/src/OutputRecordFieldProperties.ts index 82d8a3a..cd02590 100644 --- a/src/OutputRecordFieldProperties.ts +++ b/src/OutputRecordFieldProperties.ts @@ -5,7 +5,7 @@ import * as Internal from './util/Internal' /** * Auto-generated interface for https://w3id.org/cwl/cwl#OutputRecordField */ -export interface OutputRecordFieldProperties extends Internal.RecordFieldProperties, Internal.FieldBaseProperties, Internal.OutputFormatProperties { +export interface OutputRecordFieldProperties extends Internal.CWLRecordFieldProperties, Internal.FieldBaseProperties, Internal.OutputFormatProperties { extensionFields?: Internal.Dictionary<any> diff --git a/src/OutputRecordSchema.ts b/src/OutputRecordSchema.ts index 9cf203c..e33f366 100644 --- a/src/OutputRecordSchema.ts +++ b/src/OutputRecordSchema.ts @@ -34,7 +34,7 @@ export class OutputRecordSchema extends Saveable implements Internal.OutputRecor /** * Must be `record` */ - type: Internal.enum_d9cba076fca539106791a4f46d198c7fcfbdb779 + type: Internal.Record_name /** * A short, human-readable label of this object. @@ -76,7 +76,7 @@ export class OutputRecordSchema extends Saveable implements Internal.OutputRecor let name if ('name' in _doc) { try { - name = await loadField(_doc.name, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNone, + name = await loadField(_doc.name, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -118,7 +118,7 @@ export class OutputRecordSchema extends Saveable implements Internal.OutputRecor let type try { - type = await loadField(_doc.type, LoaderInstances.typedslenum_d9cba076fca539106791a4f46d198c7fcfbdb779Loader2, + type = await loadField(_doc.type, LoaderInstances.typedslRecord_nameLoader2, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/OutputRecordSchemaProperties.ts b/src/OutputRecordSchemaProperties.ts index 50fde87..8bb8e39 100644 --- a/src/OutputRecordSchemaProperties.ts +++ b/src/OutputRecordSchemaProperties.ts @@ -5,7 +5,7 @@ import * as Internal from './util/Internal' /** * Auto-generated interface for https://w3id.org/cwl/cwl#OutputRecordSchema */ -export interface OutputRecordSchemaProperties extends Internal.RecordSchemaProperties, Internal.OutputSchemaProperties { +export interface OutputRecordSchemaProperties extends Internal.CWLRecordSchemaProperties, Internal.OutputSchemaProperties { extensionFields?: Internal.Dictionary<any> @@ -22,7 +22,7 @@ export interface OutputRecordSchemaProperties extends Internal.RecordSchemaPrope /** * Must be `record` */ - type: Internal.enum_d9cba076fca539106791a4f46d198c7fcfbdb779 + type: Internal.Record_name /** * A short, human-readable label of this object. diff --git a/src/ProcessProperties.ts b/src/ProcessProperties.ts index 82ba7a7..e2937ee 100644 --- a/src/ProcessProperties.ts +++ b/src/ProcessProperties.ts @@ -84,8 +84,9 @@ export interface ProcessProperties extends Internal.IdentifiedProperties, Intern /** * An identifier for the type of computational operation, of this Process. - * Especially useful for "class: Operation", but can also be used for - * CommandLineTool, Workflow, or ExpressionTool. + * Especially useful for [`Operation`](Workflow.html#Operation), but can also be used for + * [`CommandLineTool`](CommandLineTool.html#CommandLineTool), + * [`Workflow`](Workflow.html#Workflow), or [ExpressionTool](Workflow.html#ExpressionTool). * * If provided, then this must be an IRI of a concept node that * represents the type of operation, preferably defined within an ontology. diff --git a/src/RecordField.ts b/src/RecordField.ts index df6bcf9..9e0c2c8 100644 --- a/src/RecordField.ts +++ b/src/RecordField.ts @@ -35,10 +35,12 @@ export class RecordField extends Saveable implements Internal.RecordFieldPropert doc?: undefined | string | Array<string> /** - * The field type + * The field type. If it is an array, it indicates + * that the field type is a union type of its elements. + * Its elements may be duplicated. * */ - type: Internal.PrimitiveType | Internal.RecordSchema | Internal.EnumSchema | Internal.ArraySchema | string | Array<Internal.PrimitiveType | Internal.RecordSchema | Internal.EnumSchema | Internal.ArraySchema | string> + type: Internal.PrimitiveType | Internal.RecordSchema | Internal.EnumSchema | Internal.ArraySchema | Internal.MapSchema | Internal.UnionSchema | string | Array<Internal.PrimitiveType | Internal.RecordSchema | Internal.EnumSchema | Internal.ArraySchema | Internal.MapSchema | Internal.UnionSchema | string> constructor ({loadingOptions, extensionFields, name, doc, type} : {loadingOptions?: LoadingOptions} & Internal.RecordFieldProperties) { @@ -68,7 +70,7 @@ export class RecordField extends Saveable implements Internal.RecordFieldPropert let name if ('name' in _doc) { try { - name = await loadField(_doc.name, LoaderInstances.uristrtypeTrueFalseNone, + name = await loadField(_doc.name, LoaderInstances.uristrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -110,7 +112,7 @@ export class RecordField extends Saveable implements Internal.RecordFieldPropert let type try { - type = await loadField(_doc.type, LoaderInstances.typedslunionOfPrimitiveTypeLoaderOrRecordSchemaLoaderOrEnumSchemaLoaderOrArraySchemaLoaderOrstrtypeOrarrayOfunionOfPrimitiveTypeLoaderOrRecordSchemaLoaderOrEnumSchemaLoaderOrArraySchemaLoaderOrstrtype2, + type = await loadField(_doc.type, LoaderInstances.typedslunionOfPrimitiveTypeLoaderOrRecordSchemaLoaderOrEnumSchemaLoaderOrArraySchemaLoaderOrMapSchemaLoaderOrUnionSchemaLoaderOrstrtypeOrarrayOfunionOfPrimitiveTypeLoaderOrRecordSchemaLoaderOrEnumSchemaLoaderOrArraySchemaLoaderOrMapSchemaLoaderOrUnionSchemaLoaderOrstrtype2, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/RecordFieldProperties.ts b/src/RecordFieldProperties.ts index d03be01..7ce4397 100644 --- a/src/RecordFieldProperties.ts +++ b/src/RecordFieldProperties.ts @@ -23,8 +23,10 @@ export interface RecordFieldProperties extends Internal.DocumentedProperties { doc?: undefined | string | Array<string> /** - * The field type + * The field type. If it is an array, it indicates + * that the field type is a union type of its elements. + * Its elements may be duplicated. * */ - type: Internal.PrimitiveType | Internal.RecordSchema | Internal.EnumSchema | Internal.ArraySchema | string | Array<Internal.PrimitiveType | Internal.RecordSchema | Internal.EnumSchema | Internal.ArraySchema | string> + type: Internal.PrimitiveType | Internal.RecordSchema | Internal.EnumSchema | Internal.ArraySchema | Internal.MapSchema | Internal.UnionSchema | string | Array<Internal.PrimitiveType | Internal.RecordSchema | Internal.EnumSchema | Internal.ArraySchema | Internal.MapSchema | Internal.UnionSchema | string> } \ No newline at end of file diff --git a/src/RecordSchema.ts b/src/RecordSchema.ts index 1966d42..de1ef97 100644 --- a/src/RecordSchema.ts +++ b/src/RecordSchema.ts @@ -29,7 +29,7 @@ export class RecordSchema extends Saveable implements Internal.RecordSchemaPrope /** * Must be `record` */ - type: Internal.enum_d9cba076fca539106791a4f46d198c7fcfbdb779 + type: Internal.Record_name constructor ({loadingOptions, extensionFields, fields, type} : {loadingOptions?: LoadingOptions} & Internal.RecordSchemaProperties) { @@ -73,7 +73,7 @@ export class RecordSchema extends Saveable implements Internal.RecordSchemaPrope let type try { - type = await loadField(_doc.type, LoaderInstances.typedslenum_d9cba076fca539106791a4f46d198c7fcfbdb779Loader2, + type = await loadField(_doc.type, LoaderInstances.typedslRecord_nameLoader2, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/RecordSchemaProperties.ts b/src/RecordSchemaProperties.ts index 89f9083..8717bbd 100644 --- a/src/RecordSchemaProperties.ts +++ b/src/RecordSchemaProperties.ts @@ -17,5 +17,5 @@ export interface RecordSchemaProperties { /** * Must be `record` */ - type: Internal.enum_d9cba076fca539106791a4f46d198c7fcfbdb779 + type: Internal.Record_name } \ No newline at end of file diff --git a/src/Record_name.ts b/src/Record_name.ts new file mode 100644 index 0000000..e9f4721 --- /dev/null +++ b/src/Record_name.ts @@ -0,0 +1,4 @@ + +export enum Record_name { + RECORD='record', +} diff --git a/src/ResourceRequirement.ts b/src/ResourceRequirement.ts index 40b0e51..c9cca83 100644 --- a/src/ResourceRequirement.ts +++ b/src/ResourceRequirement.ts @@ -67,7 +67,7 @@ export class ResourceRequirement extends Saveable implements Internal.ResourceRe * do not exceed the capacity of the node. * * Processes sharing a core must have the same level of isolation - * (typically a container or VM) that they would normally. + * (typically a container or VM) that they would normally have. * * The reported number of CPU cores reserved for the process, * which is available to expressions on the CommandLineTool as @@ -184,7 +184,7 @@ export class ResourceRequirement extends Saveable implements Internal.ResourceRe let class_ try { - class_ = await loadField(_doc.class, LoaderInstances.uriResourceRequirement_classLoaderFalseTrueNone, + class_ = await loadField(_doc.class, LoaderInstances.uriResourceRequirement_classLoaderFalseTrueNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/ResourceRequirementProperties.ts b/src/ResourceRequirementProperties.ts index 7cacaf3..6fe4f36 100644 --- a/src/ResourceRequirementProperties.ts +++ b/src/ResourceRequirementProperties.ts @@ -55,7 +55,7 @@ export interface ResourceRequirementProperties extends Internal.ProcessRequireme * do not exceed the capacity of the node. * * Processes sharing a core must have the same level of isolation - * (typically a container or VM) that they would normally. + * (typically a container or VM) that they would normally have. * * The reported number of CPU cores reserved for the process, * which is available to expressions on the CommandLineTool as diff --git a/src/ScatterFeatureRequirement.ts b/src/ScatterFeatureRequirement.ts index a29bec3..ce356ee 100644 --- a/src/ScatterFeatureRequirement.ts +++ b/src/ScatterFeatureRequirement.ts @@ -55,7 +55,7 @@ export class ScatterFeatureRequirement extends Saveable implements Internal.Scat let class_ try { - class_ = await loadField(_doc.class, LoaderInstances.uriScatterFeatureRequirement_classLoaderFalseTrueNone, + class_ = await loadField(_doc.class, LoaderInstances.uriScatterFeatureRequirement_classLoaderFalseTrueNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/SchemaDefRequirement.ts b/src/SchemaDefRequirement.ts index 7857d8f..fc62758 100644 --- a/src/SchemaDefRequirement.ts +++ b/src/SchemaDefRequirement.ts @@ -71,7 +71,7 @@ export class SchemaDefRequirement extends Saveable implements Internal.SchemaDef let class_ try { - class_ = await loadField(_doc.class, LoaderInstances.uriSchemaDefRequirement_classLoaderFalseTrueNone, + class_ = await loadField(_doc.class, LoaderInstances.uriSchemaDefRequirement_classLoaderFalseTrueNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/ShellCommandRequirement.ts b/src/ShellCommandRequirement.ts index 226e9bf..0c3918a 100644 --- a/src/ShellCommandRequirement.ts +++ b/src/ShellCommandRequirement.ts @@ -21,7 +21,7 @@ import * as Internal from './util/Internal' * Modify the behavior of CommandLineTool to generate a single string * containing a shell command line. Each item in the `arguments` list must * be joined into a string separated by single spaces and quoted to prevent - * intepretation by the shell, unless `CommandLineBinding` for that argument + * interpretation by the shell, unless `CommandLineBinding` for that argument * contains `shellQuote: false`. If `shellQuote: false` is specified, the * argument is joined into the command string without quoting, which allows * the use of shell metacharacters such as `|` for pipes. @@ -60,7 +60,7 @@ export class ShellCommandRequirement extends Saveable implements Internal.ShellC let class_ try { - class_ = await loadField(_doc.class, LoaderInstances.uriShellCommandRequirement_classLoaderFalseTrueNone, + class_ = await loadField(_doc.class, LoaderInstances.uriShellCommandRequirement_classLoaderFalseTrueNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/ShellCommandRequirementProperties.ts b/src/ShellCommandRequirementProperties.ts index 6193d5b..1279933 100644 --- a/src/ShellCommandRequirementProperties.ts +++ b/src/ShellCommandRequirementProperties.ts @@ -8,7 +8,7 @@ import * as Internal from './util/Internal' * Modify the behavior of CommandLineTool to generate a single string * containing a shell command line. Each item in the `arguments` list must * be joined into a string separated by single spaces and quoted to prevent - * intepretation by the shell, unless `CommandLineBinding` for that argument + * interpretation by the shell, unless `CommandLineBinding` for that argument * contains `shellQuote: false`. If `shellQuote: false` is specified, the * argument is joined into the command string without quoting, which allows * the use of shell metacharacters such as `|` for pipes. diff --git a/src/SoftwarePackage.ts b/src/SoftwarePackage.ts index 473fe74..d7275c5 100644 --- a/src/SoftwarePackage.ts +++ b/src/SoftwarePackage.ts @@ -140,7 +140,7 @@ export class SoftwarePackage extends Saveable implements Internal.SoftwarePackag let specs if ('specs' in _doc) { try { - specs = await loadField(_doc.specs, LoaderInstances.uriunionOfundefinedtypeOrarrayOfstrtypeFalseFalseNone, + specs = await loadField(_doc.specs, LoaderInstances.uriunionOfundefinedtypeOrarrayOfstrtypeFalseFalseNoneTrue, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/SoftwareRequirement.ts b/src/SoftwareRequirement.ts index 9e3b898..9416476 100644 --- a/src/SoftwareRequirement.ts +++ b/src/SoftwareRequirement.ts @@ -61,7 +61,7 @@ export class SoftwareRequirement extends Saveable implements Internal.SoftwareRe let class_ try { - class_ = await loadField(_doc.class, LoaderInstances.uriSoftwareRequirement_classLoaderFalseTrueNone, + class_ = await loadField(_doc.class, LoaderInstances.uriSoftwareRequirement_classLoaderFalseTrueNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/StepInputExpressionRequirement.ts b/src/StepInputExpressionRequirement.ts index 3e3b2e5..c6592ed 100644 --- a/src/StepInputExpressionRequirement.ts +++ b/src/StepInputExpressionRequirement.ts @@ -55,7 +55,7 @@ export class StepInputExpressionRequirement extends Saveable implements Internal let class_ try { - class_ = await loadField(_doc.class, LoaderInstances.uriStepInputExpressionRequirement_classLoaderFalseTrueNone, + class_ = await loadField(_doc.class, LoaderInstances.uriStepInputExpressionRequirement_classLoaderFalseTrueNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/SubworkflowFeatureRequirement.ts b/src/SubworkflowFeatureRequirement.ts index 35263d0..7cbc5c4 100644 --- a/src/SubworkflowFeatureRequirement.ts +++ b/src/SubworkflowFeatureRequirement.ts @@ -55,7 +55,7 @@ export class SubworkflowFeatureRequirement extends Saveable implements Internal. let class_ try { - class_ = await loadField(_doc.class, LoaderInstances.uriSubworkflowFeatureRequirement_classLoaderFalseTrueNone, + class_ = await loadField(_doc.class, LoaderInstances.uriSubworkflowFeatureRequirement_classLoaderFalseTrueNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/ToolTimeLimit.ts b/src/ToolTimeLimit.ts index bc8aa38..ac003b9 100644 --- a/src/ToolTimeLimit.ts +++ b/src/ToolTimeLimit.ts @@ -68,7 +68,7 @@ export class ToolTimeLimit extends Saveable implements Internal.ToolTimeLimitPro let class_ try { - class_ = await loadField(_doc.class, LoaderInstances.uriToolTimeLimit_classLoaderFalseTrueNone, + class_ = await loadField(_doc.class, LoaderInstances.uriToolTimeLimit_classLoaderFalseTrueNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/UnionSchema.ts b/src/UnionSchema.ts new file mode 100644 index 0000000..fe17908 --- /dev/null +++ b/src/UnionSchema.ts @@ -0,0 +1,146 @@ + +import { + Dictionary, + expandUrl, + loadField, + LoaderInstances, + LoadingOptions, + Saveable, + ValidationException, + prefixUrl, + save, + saveRelativeUri +} from './util/Internal' +import { v4 as uuidv4 } from 'uuid' +import * as Internal from './util/Internal' + + +/** + * Auto-generated class implementation for https://w3id.org/cwl/salad#UnionSchema + */ +export class UnionSchema extends Saveable implements Internal.UnionSchemaProperties { + extensionFields?: Internal.Dictionary<any> + + /** + * Defines the type of the union elements. + */ + names: Internal.PrimitiveType | Internal.RecordSchema | Internal.EnumSchema | Internal.ArraySchema | Internal.MapSchema | Internal.UnionSchema | string | Array<Internal.PrimitiveType | Internal.RecordSchema | Internal.EnumSchema | Internal.ArraySchema | Internal.MapSchema | Internal.UnionSchema | string> + + /** + * Must be `union` + */ + type: Internal.Union_name + + + constructor ({loadingOptions, extensionFields, names, type} : {loadingOptions?: LoadingOptions} & Internal.UnionSchemaProperties) { + super(loadingOptions) + this.extensionFields = extensionFields ?? {} + this.names = names + this.type = type + } + + /** + * Used to construct instances of {@link UnionSchema }. + * + * @param __doc Document fragment to load this record object from. + * @param baseuri Base URI to generate child document IDs against. + * @param loadingOptions Context for loading URIs and populating objects. + * @param docRoot ID at this position in the document (if available) + * @returns An instance of {@link UnionSchema } + * @throws {@link ValidationException} If the document fragment is not a + * {@link Dictionary} or validation of fields fails. + */ + static override async fromDoc (__doc: any, baseuri: string, loadingOptions: LoadingOptions, + docRoot?: string): Promise<Saveable> { + const _doc = Object.assign({}, __doc) + const __errors: ValidationException[] = [] + + let names + try { + names = await loadField(_doc.names, LoaderInstances.uriunionOfPrimitiveTypeLoaderOrRecordSchemaLoaderOrEnumSchemaLoaderOrArraySchemaLoaderOrMapSchemaLoaderOrUnionSchemaLoaderOrstrtypeOrarrayOfunionOfPrimitiveTypeLoaderOrRecordSchemaLoaderOrEnumSchemaLoaderOrArraySchemaLoaderOrMapSchemaLoaderOrUnionSchemaLoaderOrstrtypeFalseTrue2None, + baseuri, loadingOptions) + } catch (e) { + if (e instanceof ValidationException) { + __errors.push( + new ValidationException('the `names` field is not valid because: ', [e]) + ) + } else { + throw e + } + } + + let type + try { + type = await loadField(_doc.type, LoaderInstances.typedslUnion_nameLoader2, + baseuri, loadingOptions) + } catch (e) { + if (e instanceof ValidationException) { + __errors.push( + new ValidationException('the `type` field is not valid because: ', [e]) + ) + } else { + throw e + } + } + + const extensionFields: Dictionary<any> = {} + for (const [key, value] of Object.entries(_doc)) { + if (!UnionSchema.attr.has(key)) { + if ((key as string).includes(':')) { + const ex = expandUrl(key, '', loadingOptions, false, false) + extensionFields[ex] = value + } else { + __errors.push( + new ValidationException(`invalid field ${key as string}, \ + expected one of: \`names\`,\`type\``) + ) + break + } + } + } + + if (__errors.length > 0) { + throw new ValidationException("Trying 'UnionSchema'", __errors) + } + + const schema = new UnionSchema({ + extensionFields: extensionFields, + loadingOptions: loadingOptions, + names: names, + type: type + }) + return schema + } + + save (top: boolean = false, baseUrl: string = '', relativeUris: boolean = true) + : Dictionary<any> { + const r: Dictionary<any> = {} + for (const ef in this.extensionFields) { + r[prefixUrl(ef, this.loadingOptions.vocab)] = this.extensionFields.ef + } + + if (this.names != null) { + const u = saveRelativeUri(this.names, baseUrl, false, + relativeUris, 2) + if (u != null) { + r.names = u + } + } + + if (this.type != null) { + r.type = save(this.type, false, baseUrl, relativeUris) + } + + if (top) { + if (this.loadingOptions.namespaces != null) { + r.$namespaces = this.loadingOptions.namespaces + } + if (this.loadingOptions.schemas != null) { + r.$schemas = this.loadingOptions.schemas + } + } + return r + } + + static attr: Set<string> = new Set(['names','type']) +} diff --git a/src/UnionSchemaProperties.ts b/src/UnionSchemaProperties.ts new file mode 100644 index 0000000..84b7d6d --- /dev/null +++ b/src/UnionSchemaProperties.ts @@ -0,0 +1,21 @@ + +import * as Internal from './util/Internal' + + +/** + * Auto-generated interface for https://w3id.org/cwl/salad#UnionSchema + */ +export interface UnionSchemaProperties { + + extensionFields?: Internal.Dictionary<any> + + /** + * Defines the type of the union elements. + */ + names: Internal.PrimitiveType | Internal.RecordSchema | Internal.EnumSchema | Internal.ArraySchema | Internal.MapSchema | Internal.UnionSchema | string | Array<Internal.PrimitiveType | Internal.RecordSchema | Internal.EnumSchema | Internal.ArraySchema | Internal.MapSchema | Internal.UnionSchema | string> + + /** + * Must be `union` + */ + type: Internal.Union_name +} \ No newline at end of file diff --git a/src/Union_name.ts b/src/Union_name.ts new file mode 100644 index 0000000..77418ef --- /dev/null +++ b/src/Union_name.ts @@ -0,0 +1,4 @@ + +export enum Union_name { + UNION='union', +} diff --git a/src/WorkReuse.ts b/src/WorkReuse.ts index 56f0506..d3e8c8a 100644 --- a/src/WorkReuse.ts +++ b/src/WorkReuse.ts @@ -64,7 +64,7 @@ export class WorkReuse extends Saveable implements Internal.WorkReuseProperties let class_ try { - class_ = await loadField(_doc.class, LoaderInstances.uriWorkReuse_classLoaderFalseTrueNone, + class_ = await loadField(_doc.class, LoaderInstances.uriWorkReuse_classLoaderFalseTrueNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/Workflow.ts b/src/Workflow.ts index 5cce976..b960ba2 100644 --- a/src/Workflow.ts +++ b/src/Workflow.ts @@ -146,8 +146,9 @@ export class Workflow extends Saveable implements Internal.WorkflowProperties { /** * An identifier for the type of computational operation, of this Process. - * Especially useful for "class: Operation", but can also be used for - * CommandLineTool, Workflow, or ExpressionTool. + * Especially useful for [`Operation`](Workflow.html#Operation), but can also be used for + * [`CommandLineTool`](CommandLineTool.html#CommandLineTool), + * [`Workflow`](Workflow.html#Workflow), or [ExpressionTool](Workflow.html#ExpressionTool). * * If provided, then this must be an IRI of a concept node that * represents the type of operation, preferably defined within an ontology. @@ -207,7 +208,7 @@ export class Workflow extends Saveable implements Internal.WorkflowProperties { let id if ('id' in _doc) { try { - id = await loadField(_doc.id, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNone, + id = await loadField(_doc.id, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -233,7 +234,7 @@ export class Workflow extends Saveable implements Internal.WorkflowProperties { let class_ try { - class_ = await loadField(_doc.class, LoaderInstances.uriWorkflow_classLoaderFalseTrueNone, + class_ = await loadField(_doc.class, LoaderInstances.uriWorkflow_classLoaderFalseTrueNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -340,7 +341,7 @@ export class Workflow extends Saveable implements Internal.WorkflowProperties { let cwlVersion if ('cwlVersion' in _doc) { try { - cwlVersion = await loadField(_doc.cwlVersion, LoaderInstances.uriunionOfundefinedtypeOrCWLVersionLoaderFalseTrueNone, + cwlVersion = await loadField(_doc.cwlVersion, LoaderInstances.uriunionOfundefinedtypeOrCWLVersionLoaderFalseTrueNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -356,7 +357,7 @@ export class Workflow extends Saveable implements Internal.WorkflowProperties { let intent if ('intent' in _doc) { try { - intent = await loadField(_doc.intent, LoaderInstances.uriunionOfundefinedtypeOrarrayOfstrtypeTrueFalseNone, + intent = await loadField(_doc.intent, LoaderInstances.uriunionOfundefinedtypeOrarrayOfstrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/WorkflowInputParameter.ts b/src/WorkflowInputParameter.ts index 9fa9fc8..a41eff4 100644 --- a/src/WorkflowInputParameter.ts +++ b/src/WorkflowInputParameter.ts @@ -139,7 +139,7 @@ export class WorkflowInputParameter extends Saveable implements Internal.Workflo * (e.g. dependent `valueFrom` fields). * */ - default_?: undefined | Internal.File | Internal.Directory | any + default_?: undefined | any /** * Specify valid types of data that may be assigned to this parameter. @@ -190,7 +190,7 @@ export class WorkflowInputParameter extends Saveable implements Internal.Workflo let id if ('id' in _doc) { try { - id = await loadField(_doc.id, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNone, + id = await loadField(_doc.id, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -281,7 +281,7 @@ export class WorkflowInputParameter extends Saveable implements Internal.Workflo let format if ('format' in _doc) { try { - format = await loadField(_doc.format, LoaderInstances.uriunionOfundefinedtypeOrstrtypeOrarrayOfstrtypeOrExpressionLoaderTrueFalseNone, + format = await loadField(_doc.format, LoaderInstances.uriunionOfundefinedtypeOrstrtypeOrarrayOfstrtypeOrExpressionLoaderTrueFalseNoneTrue, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -329,7 +329,7 @@ export class WorkflowInputParameter extends Saveable implements Internal.Workflo let default_ if ('default' in _doc) { try { - default_ = await loadField(_doc.default, LoaderInstances.unionOfundefinedtypeOrFileLoaderOrDirectoryLoaderOranyType, + default_ = await loadField(_doc.default, LoaderInstances.unionOfundefinedtypeOrCWLObjectTypeLoader, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/WorkflowInputParameterProperties.ts b/src/WorkflowInputParameterProperties.ts index 4ff4e7d..a092aa3 100644 --- a/src/WorkflowInputParameterProperties.ts +++ b/src/WorkflowInputParameterProperties.ts @@ -127,7 +127,7 @@ export interface WorkflowInputParameterProperties extends Internal.InputParamete * (e.g. dependent `valueFrom` fields). * */ - default_?: undefined | Internal.File | Internal.Directory | any + default_?: undefined | any /** * Specify valid types of data that may be assigned to this parameter. diff --git a/src/WorkflowOutputParameter.ts b/src/WorkflowOutputParameter.ts index 9aec04a..afe1b3f 100644 --- a/src/WorkflowOutputParameter.ts +++ b/src/WorkflowOutputParameter.ts @@ -175,7 +175,7 @@ export class WorkflowOutputParameter extends Saveable implements Internal.Workfl let id if ('id' in _doc) { try { - id = await loadField(_doc.id, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNone, + id = await loadField(_doc.id, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -266,7 +266,7 @@ export class WorkflowOutputParameter extends Saveable implements Internal.Workfl let format if ('format' in _doc) { try { - format = await loadField(_doc.format, LoaderInstances.uriunionOfundefinedtypeOrstrtypeOrExpressionLoaderTrueFalseNone, + format = await loadField(_doc.format, LoaderInstances.uriunionOfundefinedtypeOrstrtypeOrExpressionLoaderTrueFalseNoneTrue, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -282,7 +282,7 @@ export class WorkflowOutputParameter extends Saveable implements Internal.Workfl let outputSource if ('outputSource' in _doc) { try { - outputSource = await loadField(_doc.outputSource, LoaderInstances.uriunionOfundefinedtypeOrstrtypeOrarrayOfstrtypeFalseFalse1, + outputSource = await loadField(_doc.outputSource, LoaderInstances.uriunionOfundefinedtypeOrstrtypeOrarrayOfstrtypeFalseFalse1None, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/WorkflowProperties.ts b/src/WorkflowProperties.ts index 1c45e61..2752c65 100644 --- a/src/WorkflowProperties.ts +++ b/src/WorkflowProperties.ts @@ -134,8 +134,9 @@ export interface WorkflowProperties extends Internal.ProcessProperties { /** * An identifier for the type of computational operation, of this Process. - * Especially useful for "class: Operation", but can also be used for - * CommandLineTool, Workflow, or ExpressionTool. + * Especially useful for [`Operation`](Workflow.html#Operation), but can also be used for + * [`CommandLineTool`](CommandLineTool.html#CommandLineTool), + * [`Workflow`](Workflow.html#Workflow), or [ExpressionTool](Workflow.html#ExpressionTool). * * If provided, then this must be an IRI of a concept node that * represents the type of operation, preferably defined within an ontology. diff --git a/src/WorkflowStep.ts b/src/WorkflowStep.ts index eefe46d..47092f9 100644 --- a/src/WorkflowStep.ts +++ b/src/WorkflowStep.ts @@ -36,7 +36,7 @@ import * as Internal from './util/Internal' * * The `scatter` field specifies one or more input parameters which will be * scattered. An input parameter may be listed more than once. The declared - * type of each input parameter is implicitly becomes an array of items of the + * type of each input parameter implicitly becomes an array of items of the * input parameter type. If a parameter is listed more than once, it becomes * a nested array. As a result, upstream parameters which are connected to * scattered parameters must be arrays. @@ -212,7 +212,7 @@ export class WorkflowStep extends Saveable implements Internal.WorkflowStepPrope let id if ('id' in _doc) { try { - id = await loadField(_doc.id, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNone, + id = await loadField(_doc.id, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -284,7 +284,7 @@ export class WorkflowStep extends Saveable implements Internal.WorkflowStepPrope let out try { - out = await loadField(_doc.out, LoaderInstances.uriunionOfarrayOfunionOfstrtypeOrWorkflowStepOutputLoaderTrueFalseNone, + out = await loadField(_doc.out, LoaderInstances.uriunionOfarrayOfunionOfstrtypeOrWorkflowStepOutputLoaderTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -330,7 +330,7 @@ export class WorkflowStep extends Saveable implements Internal.WorkflowStepPrope let run try { - run = await loadField(_doc.run, LoaderInstances.uriunionOfstrtypeOrCommandLineToolLoaderOrExpressionToolLoaderOrWorkflowLoaderOrOperationLoaderFalseFalseNone, + run = await loadField(_doc.run, LoaderInstances.uriunionOfstrtypeOrCommandLineToolLoaderOrExpressionToolLoaderOrWorkflowLoaderOrOperationLoaderFalseFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -361,7 +361,7 @@ export class WorkflowStep extends Saveable implements Internal.WorkflowStepPrope let scatter if ('scatter' in _doc) { try { - scatter = await loadField(_doc.scatter, LoaderInstances.uriunionOfundefinedtypeOrstrtypeOrarrayOfstrtypeFalseFalse0, + scatter = await loadField(_doc.scatter, LoaderInstances.uriunionOfundefinedtypeOrstrtypeOrarrayOfstrtypeFalseFalse0None, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -377,7 +377,7 @@ export class WorkflowStep extends Saveable implements Internal.WorkflowStepPrope let scatterMethod if ('scatterMethod' in _doc) { try { - scatterMethod = await loadField(_doc.scatterMethod, LoaderInstances.uriunionOfundefinedtypeOrScatterMethodLoaderFalseTrueNone, + scatterMethod = await loadField(_doc.scatterMethod, LoaderInstances.uriunionOfundefinedtypeOrScatterMethodLoaderFalseTrueNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/WorkflowStepInput.ts b/src/WorkflowStepInput.ts index a2136fa..2fe5f57 100644 --- a/src/WorkflowStepInput.ts +++ b/src/WorkflowStepInput.ts @@ -195,7 +195,7 @@ export class WorkflowStepInput extends Saveable implements Internal.WorkflowStep * default must be applied prior to scattering or evaluating `valueFrom`. * */ - default_?: undefined | Internal.File | Internal.Directory | any + default_?: undefined | any /** * To use valueFrom, [StepInputExpressionRequirement](#StepInputExpressionRequirement) must @@ -258,7 +258,7 @@ export class WorkflowStepInput extends Saveable implements Internal.WorkflowStep let id if ('id' in _doc) { try { - id = await loadField(_doc.id, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNone, + id = await loadField(_doc.id, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -285,7 +285,7 @@ export class WorkflowStepInput extends Saveable implements Internal.WorkflowStep let source if ('source' in _doc) { try { - source = await loadField(_doc.source, LoaderInstances.uriunionOfundefinedtypeOrstrtypeOrarrayOfstrtypeFalseFalse2, + source = await loadField(_doc.source, LoaderInstances.uriunionOfundefinedtypeOrstrtypeOrarrayOfstrtypeFalseFalse2None, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { @@ -381,7 +381,7 @@ export class WorkflowStepInput extends Saveable implements Internal.WorkflowStep let default_ if ('default' in _doc) { try { - default_ = await loadField(_doc.default, LoaderInstances.unionOfundefinedtypeOrFileLoaderOrDirectoryLoaderOranyType, + default_ = await loadField(_doc.default, LoaderInstances.unionOfundefinedtypeOrCWLObjectTypeLoader, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/WorkflowStepInputProperties.ts b/src/WorkflowStepInputProperties.ts index e65e39c..3f8896f 100644 --- a/src/WorkflowStepInputProperties.ts +++ b/src/WorkflowStepInputProperties.ts @@ -183,7 +183,7 @@ export interface WorkflowStepInputProperties extends Internal.IdentifiedProperti * default must be applied prior to scattering or evaluating `valueFrom`. * */ - default_?: undefined | Internal.File | Internal.Directory | any + default_?: undefined | any /** * To use valueFrom, [StepInputExpressionRequirement](#StepInputExpressionRequirement) must diff --git a/src/WorkflowStepOutput.ts b/src/WorkflowStepOutput.ts index 6244e02..fb72b16 100644 --- a/src/WorkflowStepOutput.ts +++ b/src/WorkflowStepOutput.ts @@ -62,7 +62,7 @@ export class WorkflowStepOutput extends Saveable implements Internal.WorkflowSte let id if ('id' in _doc) { try { - id = await loadField(_doc.id, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNone, + id = await loadField(_doc.id, LoaderInstances.uriunionOfundefinedtypeOrstrtypeTrueFalseNoneNone, baseuri, loadingOptions) } catch (e) { if (e instanceof ValidationException) { diff --git a/src/WorkflowStepProperties.ts b/src/WorkflowStepProperties.ts index 3c63809..e42b082 100644 --- a/src/WorkflowStepProperties.ts +++ b/src/WorkflowStepProperties.ts @@ -23,7 +23,7 @@ import * as Internal from './util/Internal' * * The `scatter` field specifies one or more input parameters which will be * scattered. An input parameter may be listed more than once. The declared - * type of each input parameter is implicitly becomes an array of items of the + * type of each input parameter implicitly becomes an array of items of the * input parameter type. If a parameter is listed more than once, it becomes * a nested array. As a result, upstream parameters which are connected to * scattered parameters must be arrays. diff --git a/src/index.ts b/src/index.ts index 9e6a506..c42294e 100644 --- a/src/index.ts +++ b/src/index.ts @@ -6,6 +6,13 @@ export { Any, ArraySchema, ArraySchemaProperties, + Array_name, + CWLArraySchema, + CWLArraySchemaProperties, + CWLRecordField, + CWLRecordFieldProperties, + CWLRecordSchema, + CWLRecordSchemaProperties, CWLType, CWLVersion, CommandInputArraySchema, @@ -49,6 +56,7 @@ export { DocumentedProperties, EnumSchema, EnumSchemaProperties, + Enum_name, EnvVarRequirement, EnvVarRequirementProperties, EnvVarRequirement_class, @@ -95,6 +103,9 @@ export { LoadListingRequirement, LoadListingRequirementProperties, LoadListingRequirement_class, + MapSchema, + MapSchemaProperties, + Map_name, MultipleInputFeatureRequirement, MultipleInputFeatureRequirementProperties, MultipleInputFeatureRequirement_class, @@ -128,6 +139,7 @@ export { RecordFieldProperties, RecordSchema, RecordSchemaProperties, + Record_name, ResourceRequirement, ResourceRequirementProperties, ResourceRequirement_class, @@ -158,6 +170,9 @@ export { ToolTimeLimit, ToolTimeLimitProperties, ToolTimeLimit_class, + UnionSchema, + UnionSchemaProperties, + Union_name, WorkReuse, WorkReuseProperties, WorkReuse_class, @@ -174,9 +189,6 @@ export { WorkflowStepOutputProperties, WorkflowStepProperties, Workflow_class, - enum_d062602be0b4b8fd33e69e29a841317b6ab665bc, - enum_d961d79c225752b9fadb617367615ab176b47d77, - enum_d9cba076fca539106791a4f46d198c7fcfbdb779, stderr, stdin, stdout diff --git a/src/test/LoadingOptions.spec.ts b/src/test/LoadingOptions.spec.ts new file mode 100644 index 0000000..17c2c8f --- /dev/null +++ b/src/test/LoadingOptions.spec.ts @@ -0,0 +1,29 @@ +import { assert } from 'chai' +import { Fetcher, LoadingOptions } from '../util/Internal' + +class TestFetcher implements Fetcher { + checkExists(url: string): boolean { + return true + } + async fetchText(url: string, contentTypes?: string[] | undefined): Promise<string> { + return "TestFetcher" + } + urljoin(baseUrl: string, url: string): string { + return `${baseUrl}/${url}` + } +} + +describe('Test LoadingOptions', () => { + describe('copyFrom', () => { + const original = new LoadingOptions({fetcher: new TestFetcher()}) + it('should have the same Fetcher as the original', async () => { + const copy = new LoadingOptions({copyFrom:original}) + assert.equal(copy.fetcher,original.fetcher) + }) + it('fetcher should take precedence over copyFrom', async () => { + const fetcher = new TestFetcher() + const copy = new LoadingOptions({fetcher,copyFrom:original}) + assert.equal(copy.fetcher,fetcher) + }) + }) +}) diff --git a/src/util/Internal.ts b/src/util/Internal.ts index d47c02e..bac31e7 100644 --- a/src/util/Internal.ts +++ b/src/util/Internal.ts @@ -8,6 +8,7 @@ export * from './loaders/ExpressionLoader' export * from './Fetcher' export * from './loaders/IdMapLoader' export * from './loaders/Loader' +export * from './loaders/MapLoader' export * from './LoadingOptions' export * from './loaders/AnyLoader' export * from './loaders/PrimitiveLoader' @@ -22,6 +23,13 @@ export * from './Vocabs' export * from '../Any' export * from '../ArraySchema' export * from '../ArraySchemaProperties' +export * from '../Array_name' +export * from '../CWLArraySchema' +export * from '../CWLArraySchemaProperties' +export * from '../CWLRecordField' +export * from '../CWLRecordFieldProperties' +export * from '../CWLRecordSchema' +export * from '../CWLRecordSchemaProperties' export * from '../CWLType' export * from '../CWLVersion' export * from '../CommandInputArraySchema' @@ -65,6 +73,7 @@ export * from '../DockerRequirement_class' export * from '../DocumentedProperties' export * from '../EnumSchema' export * from '../EnumSchemaProperties' +export * from '../Enum_name' export * from '../EnvVarRequirement' export * from '../EnvVarRequirementProperties' export * from '../EnvVarRequirement_class' @@ -111,6 +120,9 @@ export * from '../LoadListingEnum' export * from '../LoadListingRequirement' export * from '../LoadListingRequirementProperties' export * from '../LoadListingRequirement_class' +export * from '../MapSchema' +export * from '../MapSchemaProperties' +export * from '../Map_name' export * from '../MultipleInputFeatureRequirement' export * from '../MultipleInputFeatureRequirementProperties' export * from '../MultipleInputFeatureRequirement_class' @@ -144,6 +156,7 @@ export * from '../RecordField' export * from '../RecordFieldProperties' export * from '../RecordSchema' export * from '../RecordSchemaProperties' +export * from '../Record_name' export * from '../ResourceRequirement' export * from '../ResourceRequirementProperties' export * from '../ResourceRequirement_class' @@ -174,6 +187,9 @@ export * from '../SubworkflowFeatureRequirement_class' export * from '../ToolTimeLimit' export * from '../ToolTimeLimitProperties' export * from '../ToolTimeLimit_class' +export * from '../UnionSchema' +export * from '../UnionSchemaProperties' +export * from '../Union_name' export * from '../WorkReuse' export * from '../WorkReuseProperties' export * from '../WorkReuse_class' @@ -190,9 +206,6 @@ export * from '../WorkflowStepOutput' export * from '../WorkflowStepOutputProperties' export * from '../WorkflowStepProperties' export * from '../Workflow_class' -export * from '../enum_d062602be0b4b8fd33e69e29a841317b6ab665bc' -export * from '../enum_d961d79c225752b9fadb617367615ab176b47d77' -export * from '../enum_d9cba076fca539106791a4f46d198c7fcfbdb779' export * from '../stderr' export * from '../stdin' export * from '../stdout' diff --git a/src/util/LoaderInstances.ts b/src/util/LoaderInstances.ts index 9e4ef98..edff258 100644 --- a/src/util/LoaderInstances.ts +++ b/src/util/LoaderInstances.ts @@ -8,12 +8,20 @@ import { _ArrayLoader, _EnumLoader, _IdMapLoader, + _MapLoader, _TypeDSLLoader, _SecondaryDSLLoader, TypeGuards, Any, ArraySchema, ArraySchemaProperties, + Array_name, + CWLArraySchema, + CWLArraySchemaProperties, + CWLRecordField, + CWLRecordFieldProperties, + CWLRecordSchema, + CWLRecordSchemaProperties, CWLType, CWLVersion, CommandInputArraySchema, @@ -57,6 +65,7 @@ import { DocumentedProperties, EnumSchema, EnumSchemaProperties, + Enum_name, EnvVarRequirement, EnvVarRequirementProperties, EnvVarRequirement_class, @@ -103,6 +112,9 @@ import { LoadListingRequirement, LoadListingRequirementProperties, LoadListingRequirement_class, + MapSchema, + MapSchemaProperties, + Map_name, MultipleInputFeatureRequirement, MultipleInputFeatureRequirementProperties, MultipleInputFeatureRequirement_class, @@ -136,6 +148,7 @@ import { RecordFieldProperties, RecordSchema, RecordSchemaProperties, + Record_name, ResourceRequirement, ResourceRequirementProperties, ResourceRequirement_class, @@ -166,6 +179,9 @@ import { ToolTimeLimit, ToolTimeLimitProperties, ToolTimeLimit_class, + UnionSchema, + UnionSchemaProperties, + Union_name, WorkReuse, WorkReuseProperties, WorkReuse_class, @@ -182,9 +198,6 @@ import { WorkflowStepOutputProperties, WorkflowStepProperties, Workflow_class, - enum_d062602be0b4b8fd33e69e29a841317b6ab665bc, - enum_d961d79c225752b9fadb617367615ab176b47d77, - enum_d9cba076fca539106791a4f46d198c7fcfbdb779, stderr, stdin, stdout @@ -198,115 +211,142 @@ export const undefinedtype = new _PrimitiveLoader(TypeGuards.Undefined); export const anyType = new _AnyLoader(); export const PrimitiveTypeLoader = new _EnumLoader((Object.keys(PrimitiveType) as Array<keyof typeof PrimitiveType>).map(key => PrimitiveType[key])); export const AnyLoader = new _EnumLoader((Object.keys(Any) as Array<keyof typeof Any>).map(key => Any[key])); -export const RecordFieldLoader = new _RecordLoader(RecordField.fromDoc); -export const RecordSchemaLoader = new _RecordLoader(RecordSchema.fromDoc); -export const EnumSchemaLoader = new _RecordLoader(EnumSchema.fromDoc); -export const ArraySchemaLoader = new _RecordLoader(ArraySchema.fromDoc); -export const CWLVersionLoader = new _EnumLoader((Object.keys(CWLVersion) as Array<keyof typeof CWLVersion>).map(key => CWLVersion[key])); +export const RecordFieldLoader = new _RecordLoader(RecordField.fromDoc, undefined, undefined); +export const RecordSchemaLoader = new _RecordLoader(RecordSchema.fromDoc, undefined, undefined); +export const EnumSchemaLoader = new _RecordLoader(EnumSchema.fromDoc, undefined, undefined); +export const ArraySchemaLoader = new _RecordLoader(ArraySchema.fromDoc, undefined, undefined); +export const MapSchemaLoader = new _RecordLoader(MapSchema.fromDoc, undefined, undefined); +export const UnionSchemaLoader = new _RecordLoader(UnionSchema.fromDoc, undefined, undefined); export const CWLTypeLoader = new _EnumLoader((Object.keys(CWLType) as Array<keyof typeof CWLType>).map(key => CWLType[key])); -export const FileLoader = new _RecordLoader(File.fromDoc); -export const DirectoryLoader = new _RecordLoader(Directory.fromDoc); +export const CWLArraySchemaLoader = new _RecordLoader(CWLArraySchema.fromDoc, undefined, undefined); +export const CWLRecordFieldLoader = new _RecordLoader(CWLRecordField.fromDoc, undefined, undefined); +export const CWLRecordSchemaLoader = new _RecordLoader(CWLRecordSchema.fromDoc, undefined, undefined); +export const FileLoader = new _RecordLoader(File.fromDoc, undefined, undefined); +export const DirectoryLoader = new _RecordLoader(Directory.fromDoc, undefined, undefined); +export const CWLObjectTypeLoader = new _UnionLoader([]); +export const unionOfundefinedtypeOrCWLObjectTypeLoader = new _UnionLoader([undefinedtype, CWLObjectTypeLoader]); +export const arrayOfunionOfundefinedtypeOrCWLObjectTypeLoader = new _ArrayLoader([unionOfundefinedtypeOrCWLObjectTypeLoader]); +export const mapOfunionOfundefinedtypeOrCWLObjectTypeLoader = new _MapLoader([unionOfundefinedtypeOrCWLObjectTypeLoader], undefined, undefined); +export const InlineJavascriptRequirementLoader = new _RecordLoader(InlineJavascriptRequirement.fromDoc, undefined, undefined); +export const SchemaDefRequirementLoader = new _RecordLoader(SchemaDefRequirement.fromDoc, undefined, undefined); +export const LoadListingRequirementLoader = new _RecordLoader(LoadListingRequirement.fromDoc, undefined, undefined); +export const DockerRequirementLoader = new _RecordLoader(DockerRequirement.fromDoc, undefined, undefined); +export const SoftwareRequirementLoader = new _RecordLoader(SoftwareRequirement.fromDoc, undefined, undefined); +export const InitialWorkDirRequirementLoader = new _RecordLoader(InitialWorkDirRequirement.fromDoc, undefined, undefined); +export const EnvVarRequirementLoader = new _RecordLoader(EnvVarRequirement.fromDoc, undefined, undefined); +export const ShellCommandRequirementLoader = new _RecordLoader(ShellCommandRequirement.fromDoc, undefined, undefined); +export const ResourceRequirementLoader = new _RecordLoader(ResourceRequirement.fromDoc, undefined, undefined); +export const WorkReuseLoader = new _RecordLoader(WorkReuse.fromDoc, undefined, undefined); +export const NetworkAccessLoader = new _RecordLoader(NetworkAccess.fromDoc, undefined, undefined); +export const InplaceUpdateRequirementLoader = new _RecordLoader(InplaceUpdateRequirement.fromDoc, undefined, undefined); +export const ToolTimeLimitLoader = new _RecordLoader(ToolTimeLimit.fromDoc, undefined, undefined); +export const SubworkflowFeatureRequirementLoader = new _RecordLoader(SubworkflowFeatureRequirement.fromDoc, undefined, undefined); +export const ScatterFeatureRequirementLoader = new _RecordLoader(ScatterFeatureRequirement.fromDoc, undefined, undefined); +export const MultipleInputFeatureRequirementLoader = new _RecordLoader(MultipleInputFeatureRequirement.fromDoc, undefined, undefined); +export const StepInputExpressionRequirementLoader = new _RecordLoader(StepInputExpressionRequirement.fromDoc, undefined, undefined); +export const unionOfInlineJavascriptRequirementLoaderOrSchemaDefRequirementLoaderOrLoadListingRequirementLoaderOrDockerRequirementLoaderOrSoftwareRequirementLoaderOrInitialWorkDirRequirementLoaderOrEnvVarRequirementLoaderOrShellCommandRequirementLoaderOrResourceRequirementLoaderOrWorkReuseLoaderOrNetworkAccessLoaderOrInplaceUpdateRequirementLoaderOrToolTimeLimitLoaderOrSubworkflowFeatureRequirementLoaderOrScatterFeatureRequirementLoaderOrMultipleInputFeatureRequirementLoaderOrStepInputExpressionRequirementLoader = new _UnionLoader([InlineJavascriptRequirementLoader, SchemaDefRequirementLoader, LoadListingRequirementLoader, DockerRequirementLoader, SoftwareRequirementLoader, InitialWorkDirRequirementLoader, EnvVarRequirementLoader, ShellCommandRequirementLoader, ResourceRequirementLoader, WorkReuseLoader, NetworkAccessLoader, InplaceUpdateRequirementLoader, ToolTimeLimitLoader, SubworkflowFeatureRequirementLoader, ScatterFeatureRequirementLoader, MultipleInputFeatureRequirementLoader, StepInputExpressionRequirementLoader]); +export const arrayOfunionOfInlineJavascriptRequirementLoaderOrSchemaDefRequirementLoaderOrLoadListingRequirementLoaderOrDockerRequirementLoaderOrSoftwareRequirementLoaderOrInitialWorkDirRequirementLoaderOrEnvVarRequirementLoaderOrShellCommandRequirementLoaderOrResourceRequirementLoaderOrWorkReuseLoaderOrNetworkAccessLoaderOrInplaceUpdateRequirementLoaderOrToolTimeLimitLoaderOrSubworkflowFeatureRequirementLoaderOrScatterFeatureRequirementLoaderOrMultipleInputFeatureRequirementLoaderOrStepInputExpressionRequirementLoader = new _ArrayLoader([unionOfInlineJavascriptRequirementLoaderOrSchemaDefRequirementLoaderOrLoadListingRequirementLoaderOrDockerRequirementLoaderOrSoftwareRequirementLoaderOrInitialWorkDirRequirementLoaderOrEnvVarRequirementLoaderOrShellCommandRequirementLoaderOrResourceRequirementLoaderOrWorkReuseLoaderOrNetworkAccessLoaderOrInplaceUpdateRequirementLoaderOrToolTimeLimitLoaderOrSubworkflowFeatureRequirementLoaderOrScatterFeatureRequirementLoaderOrMultipleInputFeatureRequirementLoaderOrStepInputExpressionRequirementLoader]); +export const unionOfundefinedtypeOrarrayOfunionOfInlineJavascriptRequirementLoaderOrSchemaDefRequirementLoaderOrLoadListingRequirementLoaderOrDockerRequirementLoaderOrSoftwareRequirementLoaderOrInitialWorkDirRequirementLoaderOrEnvVarRequirementLoaderOrShellCommandRequirementLoaderOrResourceRequirementLoaderOrWorkReuseLoaderOrNetworkAccessLoaderOrInplaceUpdateRequirementLoaderOrToolTimeLimitLoaderOrSubworkflowFeatureRequirementLoaderOrScatterFeatureRequirementLoaderOrMultipleInputFeatureRequirementLoaderOrStepInputExpressionRequirementLoaderOrCWLObjectTypeLoader = new _UnionLoader([undefinedtype, arrayOfunionOfInlineJavascriptRequirementLoaderOrSchemaDefRequirementLoaderOrLoadListingRequirementLoaderOrDockerRequirementLoaderOrSoftwareRequirementLoaderOrInitialWorkDirRequirementLoaderOrEnvVarRequirementLoaderOrShellCommandRequirementLoaderOrResourceRequirementLoaderOrWorkReuseLoaderOrNetworkAccessLoaderOrInplaceUpdateRequirementLoaderOrToolTimeLimitLoaderOrSubworkflowFeatureRequirementLoaderOrScatterFeatureRequirementLoaderOrMultipleInputFeatureRequirementLoaderOrStepInputExpressionRequirementLoader, CWLObjectTypeLoader]); +export const mapOfunionOfundefinedtypeOrarrayOfunionOfInlineJavascriptRequirementLoaderOrSchemaDefRequirementLoaderOrLoadListingRequirementLoaderOrDockerRequirementLoaderOrSoftwareRequirementLoaderOrInitialWorkDirRequirementLoaderOrEnvVarRequirementLoaderOrShellCommandRequirementLoaderOrResourceRequirementLoaderOrWorkReuseLoaderOrNetworkAccessLoaderOrInplaceUpdateRequirementLoaderOrToolTimeLimitLoaderOrSubworkflowFeatureRequirementLoaderOrScatterFeatureRequirementLoaderOrMultipleInputFeatureRequirementLoaderOrStepInputExpressionRequirementLoaderOrCWLObjectTypeLoader = new _MapLoader([unionOfundefinedtypeOrarrayOfunionOfInlineJavascriptRequirementLoaderOrSchemaDefRequirementLoaderOrLoadListingRequirementLoaderOrDockerRequirementLoaderOrSoftwareRequirementLoaderOrInitialWorkDirRequirementLoaderOrEnvVarRequirementLoaderOrShellCommandRequirementLoaderOrResourceRequirementLoaderOrWorkReuseLoaderOrNetworkAccessLoaderOrInplaceUpdateRequirementLoaderOrToolTimeLimitLoaderOrSubworkflowFeatureRequirementLoaderOrScatterFeatureRequirementLoaderOrMultipleInputFeatureRequirementLoaderOrStepInputExpressionRequirementLoaderOrCWLObjectTypeLoader], '@list', true); +export const CWLVersionLoader = new _EnumLoader((Object.keys(CWLVersion) as Array<keyof typeof CWLVersion>).map(key => CWLVersion[key])); export const LoadListingEnumLoader = new _EnumLoader((Object.keys(LoadListingEnum) as Array<keyof typeof LoadListingEnum>).map(key => LoadListingEnum[key])); export const ExpressionLoader = new _ExpressionLoader(); -export const InputBindingLoader = new _RecordLoader(InputBinding.fromDoc); -export const InputRecordFieldLoader = new _RecordLoader(InputRecordField.fromDoc); -export const InputRecordSchemaLoader = new _RecordLoader(InputRecordSchema.fromDoc); -export const InputEnumSchemaLoader = new _RecordLoader(InputEnumSchema.fromDoc); -export const InputArraySchemaLoader = new _RecordLoader(InputArraySchema.fromDoc); -export const OutputRecordFieldLoader = new _RecordLoader(OutputRecordField.fromDoc); -export const OutputRecordSchemaLoader = new _RecordLoader(OutputRecordSchema.fromDoc); -export const OutputEnumSchemaLoader = new _RecordLoader(OutputEnumSchema.fromDoc); -export const OutputArraySchemaLoader = new _RecordLoader(OutputArraySchema.fromDoc); -export const InlineJavascriptRequirementLoader = new _RecordLoader(InlineJavascriptRequirement.fromDoc); -export const SchemaDefRequirementLoader = new _RecordLoader(SchemaDefRequirement.fromDoc); -export const SecondaryFileSchemaLoader = new _RecordLoader(SecondaryFileSchema.fromDoc); -export const LoadListingRequirementLoader = new _RecordLoader(LoadListingRequirement.fromDoc); -export const EnvironmentDefLoader = new _RecordLoader(EnvironmentDef.fromDoc); -export const CommandLineBindingLoader = new _RecordLoader(CommandLineBinding.fromDoc); -export const CommandOutputBindingLoader = new _RecordLoader(CommandOutputBinding.fromDoc); -export const CommandLineBindableLoader = new _RecordLoader(CommandLineBindable.fromDoc); -export const CommandInputRecordFieldLoader = new _RecordLoader(CommandInputRecordField.fromDoc); -export const CommandInputRecordSchemaLoader = new _RecordLoader(CommandInputRecordSchema.fromDoc); -export const CommandInputEnumSchemaLoader = new _RecordLoader(CommandInputEnumSchema.fromDoc); -export const CommandInputArraySchemaLoader = new _RecordLoader(CommandInputArraySchema.fromDoc); -export const CommandOutputRecordFieldLoader = new _RecordLoader(CommandOutputRecordField.fromDoc); -export const CommandOutputRecordSchemaLoader = new _RecordLoader(CommandOutputRecordSchema.fromDoc); -export const CommandOutputEnumSchemaLoader = new _RecordLoader(CommandOutputEnumSchema.fromDoc); -export const CommandOutputArraySchemaLoader = new _RecordLoader(CommandOutputArraySchema.fromDoc); -export const CommandInputParameterLoader = new _RecordLoader(CommandInputParameter.fromDoc); -export const CommandOutputParameterLoader = new _RecordLoader(CommandOutputParameter.fromDoc); +export const InputBindingLoader = new _RecordLoader(InputBinding.fromDoc, undefined, undefined); +export const InputRecordFieldLoader = new _RecordLoader(InputRecordField.fromDoc, undefined, undefined); +export const InputRecordSchemaLoader = new _RecordLoader(InputRecordSchema.fromDoc, undefined, undefined); +export const InputEnumSchemaLoader = new _RecordLoader(InputEnumSchema.fromDoc, undefined, undefined); +export const InputArraySchemaLoader = new _RecordLoader(InputArraySchema.fromDoc, undefined, undefined); +export const OutputRecordFieldLoader = new _RecordLoader(OutputRecordField.fromDoc, undefined, undefined); +export const OutputRecordSchemaLoader = new _RecordLoader(OutputRecordSchema.fromDoc, undefined, undefined); +export const OutputEnumSchemaLoader = new _RecordLoader(OutputEnumSchema.fromDoc, undefined, undefined); +export const OutputArraySchemaLoader = new _RecordLoader(OutputArraySchema.fromDoc, undefined, undefined); +export const SecondaryFileSchemaLoader = new _RecordLoader(SecondaryFileSchema.fromDoc, undefined, undefined); +export const EnvironmentDefLoader = new _RecordLoader(EnvironmentDef.fromDoc, undefined, undefined); +export const CommandLineBindingLoader = new _RecordLoader(CommandLineBinding.fromDoc, undefined, undefined); +export const CommandOutputBindingLoader = new _RecordLoader(CommandOutputBinding.fromDoc, undefined, undefined); +export const CommandLineBindableLoader = new _RecordLoader(CommandLineBindable.fromDoc, undefined, undefined); +export const CommandInputRecordFieldLoader = new _RecordLoader(CommandInputRecordField.fromDoc, undefined, undefined); +export const CommandInputRecordSchemaLoader = new _RecordLoader(CommandInputRecordSchema.fromDoc, undefined, undefined); +export const CommandInputEnumSchemaLoader = new _RecordLoader(CommandInputEnumSchema.fromDoc, undefined, undefined); +export const CommandInputArraySchemaLoader = new _RecordLoader(CommandInputArraySchema.fromDoc, undefined, undefined); +export const CommandOutputRecordFieldLoader = new _RecordLoader(CommandOutputRecordField.fromDoc, undefined, undefined); +export const CommandOutputRecordSchemaLoader = new _RecordLoader(CommandOutputRecordSchema.fromDoc, undefined, undefined); +export const CommandOutputEnumSchemaLoader = new _RecordLoader(CommandOutputEnumSchema.fromDoc, undefined, undefined); +export const CommandOutputArraySchemaLoader = new _RecordLoader(CommandOutputArraySchema.fromDoc, undefined, undefined); +export const CommandInputParameterLoader = new _RecordLoader(CommandInputParameter.fromDoc, undefined, undefined); +export const CommandOutputParameterLoader = new _RecordLoader(CommandOutputParameter.fromDoc, undefined, undefined); export const stdinLoader = new _EnumLoader((Object.keys(stdin) as Array<keyof typeof stdin>).map(key => stdin[key])); export const stdoutLoader = new _EnumLoader((Object.keys(stdout) as Array<keyof typeof stdout>).map(key => stdout[key])); export const stderrLoader = new _EnumLoader((Object.keys(stderr) as Array<keyof typeof stderr>).map(key => stderr[key])); -export const CommandLineToolLoader = new _RecordLoader(CommandLineTool.fromDoc); -export const DockerRequirementLoader = new _RecordLoader(DockerRequirement.fromDoc); -export const SoftwareRequirementLoader = new _RecordLoader(SoftwareRequirement.fromDoc); -export const SoftwarePackageLoader = new _RecordLoader(SoftwarePackage.fromDoc); -export const DirentLoader = new _RecordLoader(Dirent.fromDoc); -export const InitialWorkDirRequirementLoader = new _RecordLoader(InitialWorkDirRequirement.fromDoc); -export const EnvVarRequirementLoader = new _RecordLoader(EnvVarRequirement.fromDoc); -export const ShellCommandRequirementLoader = new _RecordLoader(ShellCommandRequirement.fromDoc); -export const ResourceRequirementLoader = new _RecordLoader(ResourceRequirement.fromDoc); -export const WorkReuseLoader = new _RecordLoader(WorkReuse.fromDoc); -export const NetworkAccessLoader = new _RecordLoader(NetworkAccess.fromDoc); -export const InplaceUpdateRequirementLoader = new _RecordLoader(InplaceUpdateRequirement.fromDoc); -export const ToolTimeLimitLoader = new _RecordLoader(ToolTimeLimit.fromDoc); -export const ExpressionToolOutputParameterLoader = new _RecordLoader(ExpressionToolOutputParameter.fromDoc); -export const WorkflowInputParameterLoader = new _RecordLoader(WorkflowInputParameter.fromDoc); -export const ExpressionToolLoader = new _RecordLoader(ExpressionTool.fromDoc); +export const CommandLineToolLoader = new _RecordLoader(CommandLineTool.fromDoc, undefined, undefined); +export const SoftwarePackageLoader = new _RecordLoader(SoftwarePackage.fromDoc, undefined, undefined); +export const DirentLoader = new _RecordLoader(Dirent.fromDoc, undefined, undefined); +export const ExpressionToolOutputParameterLoader = new _RecordLoader(ExpressionToolOutputParameter.fromDoc, undefined, undefined); +export const WorkflowInputParameterLoader = new _RecordLoader(WorkflowInputParameter.fromDoc, undefined, undefined); +export const ExpressionToolLoader = new _RecordLoader(ExpressionTool.fromDoc, undefined, undefined); export const LinkMergeMethodLoader = new _EnumLoader((Object.keys(LinkMergeMethod) as Array<keyof typeof LinkMergeMethod>).map(key => LinkMergeMethod[key])); export const PickValueMethodLoader = new _EnumLoader((Object.keys(PickValueMethod) as Array<keyof typeof PickValueMethod>).map(key => PickValueMethod[key])); -export const WorkflowOutputParameterLoader = new _RecordLoader(WorkflowOutputParameter.fromDoc); -export const WorkflowStepInputLoader = new _RecordLoader(WorkflowStepInput.fromDoc); -export const WorkflowStepOutputLoader = new _RecordLoader(WorkflowStepOutput.fromDoc); +export const WorkflowOutputParameterLoader = new _RecordLoader(WorkflowOutputParameter.fromDoc, undefined, undefined); +export const WorkflowStepInputLoader = new _RecordLoader(WorkflowStepInput.fromDoc, undefined, undefined); +export const WorkflowStepOutputLoader = new _RecordLoader(WorkflowStepOutput.fromDoc, undefined, undefined); export const ScatterMethodLoader = new _EnumLoader((Object.keys(ScatterMethod) as Array<keyof typeof ScatterMethod>).map(key => ScatterMethod[key])); -export const WorkflowStepLoader = new _RecordLoader(WorkflowStep.fromDoc); -export const WorkflowLoader = new _RecordLoader(Workflow.fromDoc); -export const SubworkflowFeatureRequirementLoader = new _RecordLoader(SubworkflowFeatureRequirement.fromDoc); -export const ScatterFeatureRequirementLoader = new _RecordLoader(ScatterFeatureRequirement.fromDoc); -export const MultipleInputFeatureRequirementLoader = new _RecordLoader(MultipleInputFeatureRequirement.fromDoc); -export const StepInputExpressionRequirementLoader = new _RecordLoader(StepInputExpressionRequirement.fromDoc); -export const OperationInputParameterLoader = new _RecordLoader(OperationInputParameter.fromDoc); -export const OperationOutputParameterLoader = new _RecordLoader(OperationOutputParameter.fromDoc); -export const OperationLoader = new _RecordLoader(Operation.fromDoc); +export const WorkflowStepLoader = new _RecordLoader(WorkflowStep.fromDoc, undefined, undefined); +export const WorkflowLoader = new _RecordLoader(Workflow.fromDoc, undefined, undefined); +export const OperationInputParameterLoader = new _RecordLoader(OperationInputParameter.fromDoc, undefined, undefined); +export const OperationOutputParameterLoader = new _RecordLoader(OperationOutputParameter.fromDoc, undefined, undefined); +export const OperationLoader = new _RecordLoader(Operation.fromDoc, undefined, undefined); export const arrayOfstrtype = new _ArrayLoader([strtype]); export const unionOfundefinedtypeOrstrtypeOrarrayOfstrtype = new _UnionLoader([undefinedtype, strtype, arrayOfstrtype]); -export const uristrtypeTrueFalseNone = new _URILoader(strtype, true, false, undefined); -export const unionOfPrimitiveTypeLoaderOrRecordSchemaLoaderOrEnumSchemaLoaderOrArraySchemaLoaderOrstrtype = new _UnionLoader([PrimitiveTypeLoader, RecordSchemaLoader, EnumSchemaLoader, ArraySchemaLoader, strtype]); -export const arrayOfunionOfPrimitiveTypeLoaderOrRecordSchemaLoaderOrEnumSchemaLoaderOrArraySchemaLoaderOrstrtype = new _ArrayLoader([unionOfPrimitiveTypeLoaderOrRecordSchemaLoaderOrEnumSchemaLoaderOrArraySchemaLoaderOrstrtype]); -export const unionOfPrimitiveTypeLoaderOrRecordSchemaLoaderOrEnumSchemaLoaderOrArraySchemaLoaderOrstrtypeOrarrayOfunionOfPrimitiveTypeLoaderOrRecordSchemaLoaderOrEnumSchemaLoaderOrArraySchemaLoaderOrstrtype = new _UnionLoader([PrimitiveTypeLoader, RecordSchemaLoader, EnumSchemaLoader, ArraySchemaLoader, strtype, arrayOfunionOfPrimitiveTypeLoaderOrRecordSchemaLoaderOrEnumSchemaLoaderOrArraySchemaLoaderOrstrtype]); -export const typedslunionOfPrimitiveTypeLoaderOrRecordSchemaLoaderOrEnumSchemaLoaderOrArraySchemaLoaderOrstrtypeOrarrayOfunionOfPrimitiveTypeLoaderOrRecordSchemaLoaderOrEnumSchemaLoaderOrArraySchemaLoaderOrstrtype2 = new _TypeDSLLoader(unionOfPrimitiveTypeLoaderOrRecordSchemaLoaderOrEnumSchemaLoaderOrArraySchemaLoaderOrstrtypeOrarrayOfunionOfPrimitiveTypeLoaderOrRecordSchemaLoaderOrEnumSchemaLoaderOrArraySchemaLoaderOrstrtype, 2); +export const uristrtypeTrueFalseNoneNone = new _URILoader(strtype, true, false, undefined, undefined); +export const unionOfPrimitiveTypeLoaderOrRecordSchemaLoaderOrEnumSchemaLoaderOrArraySchemaLoaderOrMapSchemaLoaderOrUnionSchemaLoaderOrstrtype = new _UnionLoader([PrimitiveTypeLoader, RecordSchemaLoader, EnumSchemaLoader, ArraySchemaLoader, MapSchemaLoader, UnionSchemaLoader, strtype]); +export const arrayOfunionOfPrimitiveTypeLoaderOrRecordSchemaLoaderOrEnumSchemaLoaderOrArraySchemaLoaderOrMapSchemaLoaderOrUnionSchemaLoaderOrstrtype = new _ArrayLoader([unionOfPrimitiveTypeLoaderOrRecordSchemaLoaderOrEnumSchemaLoaderOrArraySchemaLoaderOrMapSchemaLoaderOrUnionSchemaLoaderOrstrtype]); +export const unionOfPrimitiveTypeLoaderOrRecordSchemaLoaderOrEnumSchemaLoaderOrArraySchemaLoaderOrMapSchemaLoaderOrUnionSchemaLoaderOrstrtypeOrarrayOfunionOfPrimitiveTypeLoaderOrRecordSchemaLoaderOrEnumSchemaLoaderOrArraySchemaLoaderOrMapSchemaLoaderOrUnionSchemaLoaderOrstrtype = new _UnionLoader([PrimitiveTypeLoader, RecordSchemaLoader, EnumSchemaLoader, ArraySchemaLoader, MapSchemaLoader, UnionSchemaLoader, strtype, arrayOfunionOfPrimitiveTypeLoaderOrRecordSchemaLoaderOrEnumSchemaLoaderOrArraySchemaLoaderOrMapSchemaLoaderOrUnionSchemaLoaderOrstrtype]); +export const typedslunionOfPrimitiveTypeLoaderOrRecordSchemaLoaderOrEnumSchemaLoaderOrArraySchemaLoaderOrMapSchemaLoaderOrUnionSchemaLoaderOrstrtypeOrarrayOfunionOfPrimitiveTypeLoaderOrRecordSchemaLoaderOrEnumSchemaLoaderOrArraySchemaLoaderOrMapSchemaLoaderOrUnionSchemaLoaderOrstrtype2 = new _TypeDSLLoader(unionOfPrimitiveTypeLoaderOrRecordSchemaLoaderOrEnumSchemaLoaderOrArraySchemaLoaderOrMapSchemaLoaderOrUnionSchemaLoaderOrstrtypeOrarrayOfunionOfPrimitiveTypeLoaderOrRecordSchemaLoaderOrEnumSchemaLoaderOrArraySchemaLoaderOrMapSchemaLoaderOrUnionSchemaLoaderOrstrtype, 2); export const arrayOfRecordFieldLoader = new _ArrayLoader([RecordFieldLoader]); export const unionOfundefinedtypeOrarrayOfRecordFieldLoader = new _UnionLoader([undefinedtype, arrayOfRecordFieldLoader]); export const idmapfieldsunionOfundefinedtypeOrarrayOfRecordFieldLoader = new _IdMapLoader(unionOfundefinedtypeOrarrayOfRecordFieldLoader, 'name', 'type'); -export const enum_d9cba076fca539106791a4f46d198c7fcfbdb779Loader = new _EnumLoader((Object.keys(enum_d9cba076fca539106791a4f46d198c7fcfbdb779) as Array<keyof typeof enum_d9cba076fca539106791a4f46d198c7fcfbdb779>).map(key => enum_d9cba076fca539106791a4f46d198c7fcfbdb779[key])); -export const typedslenum_d9cba076fca539106791a4f46d198c7fcfbdb779Loader2 = new _TypeDSLLoader(enum_d9cba076fca539106791a4f46d198c7fcfbdb779Loader, 2); -export const uriarrayOfstrtypeTrueFalseNone = new _URILoader(arrayOfstrtype, true, false, undefined); -export const enum_d961d79c225752b9fadb617367615ab176b47d77Loader = new _EnumLoader((Object.keys(enum_d961d79c225752b9fadb617367615ab176b47d77) as Array<keyof typeof enum_d961d79c225752b9fadb617367615ab176b47d77>).map(key => enum_d961d79c225752b9fadb617367615ab176b47d77[key])); -export const typedslenum_d961d79c225752b9fadb617367615ab176b47d77Loader2 = new _TypeDSLLoader(enum_d961d79c225752b9fadb617367615ab176b47d77Loader, 2); -export const enum_d062602be0b4b8fd33e69e29a841317b6ab665bcLoader = new _EnumLoader((Object.keys(enum_d062602be0b4b8fd33e69e29a841317b6ab665bc) as Array<keyof typeof enum_d062602be0b4b8fd33e69e29a841317b6ab665bc>).map(key => enum_d062602be0b4b8fd33e69e29a841317b6ab665bc[key])); -export const typedslenum_d062602be0b4b8fd33e69e29a841317b6ab665bcLoader2 = new _TypeDSLLoader(enum_d062602be0b4b8fd33e69e29a841317b6ab665bcLoader, 2); -export const File_classLoader = new _EnumLoader((Object.keys(File_class) as Array<keyof typeof File_class>).map(key => File_class[key])); -export const uriFile_classLoaderFalseTrueNone = new _URILoader(File_classLoader, false, true, undefined); +export const Record_nameLoader = new _EnumLoader((Object.keys(Record_name) as Array<keyof typeof Record_name>).map(key => Record_name[key])); +export const typedslRecord_nameLoader2 = new _TypeDSLLoader(Record_nameLoader, 2); export const unionOfundefinedtypeOrstrtype = new _UnionLoader([undefinedtype, strtype]); -export const uriunionOfundefinedtypeOrstrtypeFalseFalseNone = new _URILoader(unionOfundefinedtypeOrstrtype, false, false, undefined); +export const uriunionOfundefinedtypeOrstrtypeTrueFalseNoneNone = new _URILoader(unionOfundefinedtypeOrstrtype, true, false, undefined, undefined); +export const uriarrayOfstrtypeTrueFalseNoneNone = new _URILoader(arrayOfstrtype, true, false, undefined, undefined); +export const Enum_nameLoader = new _EnumLoader((Object.keys(Enum_name) as Array<keyof typeof Enum_name>).map(key => Enum_name[key])); +export const typedslEnum_nameLoader2 = new _TypeDSLLoader(Enum_nameLoader, 2); +export const uriunionOfPrimitiveTypeLoaderOrRecordSchemaLoaderOrEnumSchemaLoaderOrArraySchemaLoaderOrMapSchemaLoaderOrUnionSchemaLoaderOrstrtypeOrarrayOfunionOfPrimitiveTypeLoaderOrRecordSchemaLoaderOrEnumSchemaLoaderOrArraySchemaLoaderOrMapSchemaLoaderOrUnionSchemaLoaderOrstrtypeFalseTrue2None = new _URILoader(unionOfPrimitiveTypeLoaderOrRecordSchemaLoaderOrEnumSchemaLoaderOrArraySchemaLoaderOrMapSchemaLoaderOrUnionSchemaLoaderOrstrtypeOrarrayOfunionOfPrimitiveTypeLoaderOrRecordSchemaLoaderOrEnumSchemaLoaderOrArraySchemaLoaderOrMapSchemaLoaderOrUnionSchemaLoaderOrstrtype, false, true, 2, undefined); +export const Array_nameLoader = new _EnumLoader((Object.keys(Array_name) as Array<keyof typeof Array_name>).map(key => Array_name[key])); +export const typedslArray_nameLoader2 = new _TypeDSLLoader(Array_nameLoader, 2); +export const Map_nameLoader = new _EnumLoader((Object.keys(Map_name) as Array<keyof typeof Map_name>).map(key => Map_name[key])); +export const typedslMap_nameLoader2 = new _TypeDSLLoader(Map_nameLoader, 2); +export const Union_nameLoader = new _EnumLoader((Object.keys(Union_name) as Array<keyof typeof Union_name>).map(key => Union_name[key])); +export const typedslUnion_nameLoader2 = new _TypeDSLLoader(Union_nameLoader, 2); +export const unionOfPrimitiveTypeLoaderOrCWLRecordSchemaLoaderOrEnumSchemaLoaderOrCWLArraySchemaLoaderOrstrtype = new _UnionLoader([PrimitiveTypeLoader, CWLRecordSchemaLoader, EnumSchemaLoader, CWLArraySchemaLoader, strtype]); +export const arrayOfunionOfPrimitiveTypeLoaderOrCWLRecordSchemaLoaderOrEnumSchemaLoaderOrCWLArraySchemaLoaderOrstrtype = new _ArrayLoader([unionOfPrimitiveTypeLoaderOrCWLRecordSchemaLoaderOrEnumSchemaLoaderOrCWLArraySchemaLoaderOrstrtype]); +export const unionOfPrimitiveTypeLoaderOrCWLRecordSchemaLoaderOrEnumSchemaLoaderOrCWLArraySchemaLoaderOrstrtypeOrarrayOfunionOfPrimitiveTypeLoaderOrCWLRecordSchemaLoaderOrEnumSchemaLoaderOrCWLArraySchemaLoaderOrstrtype = new _UnionLoader([PrimitiveTypeLoader, CWLRecordSchemaLoader, EnumSchemaLoader, CWLArraySchemaLoader, strtype, arrayOfunionOfPrimitiveTypeLoaderOrCWLRecordSchemaLoaderOrEnumSchemaLoaderOrCWLArraySchemaLoaderOrstrtype]); +export const uriunionOfPrimitiveTypeLoaderOrCWLRecordSchemaLoaderOrEnumSchemaLoaderOrCWLArraySchemaLoaderOrstrtypeOrarrayOfunionOfPrimitiveTypeLoaderOrCWLRecordSchemaLoaderOrEnumSchemaLoaderOrCWLArraySchemaLoaderOrstrtypeFalseTrue2None = new _URILoader(unionOfPrimitiveTypeLoaderOrCWLRecordSchemaLoaderOrEnumSchemaLoaderOrCWLArraySchemaLoaderOrstrtypeOrarrayOfunionOfPrimitiveTypeLoaderOrCWLRecordSchemaLoaderOrEnumSchemaLoaderOrCWLArraySchemaLoaderOrstrtype, false, true, 2, undefined); +export const typedslunionOfPrimitiveTypeLoaderOrCWLRecordSchemaLoaderOrEnumSchemaLoaderOrCWLArraySchemaLoaderOrstrtypeOrarrayOfunionOfPrimitiveTypeLoaderOrCWLRecordSchemaLoaderOrEnumSchemaLoaderOrCWLArraySchemaLoaderOrstrtype2 = new _TypeDSLLoader(unionOfPrimitiveTypeLoaderOrCWLRecordSchemaLoaderOrEnumSchemaLoaderOrCWLArraySchemaLoaderOrstrtypeOrarrayOfunionOfPrimitiveTypeLoaderOrCWLRecordSchemaLoaderOrEnumSchemaLoaderOrCWLArraySchemaLoaderOrstrtype, 2); +export const arrayOfCWLRecordFieldLoader = new _ArrayLoader([CWLRecordFieldLoader]); +export const unionOfundefinedtypeOrarrayOfCWLRecordFieldLoader = new _UnionLoader([undefinedtype, arrayOfCWLRecordFieldLoader]); +export const idmapfieldsunionOfundefinedtypeOrarrayOfCWLRecordFieldLoader = new _IdMapLoader(unionOfundefinedtypeOrarrayOfCWLRecordFieldLoader, 'name', 'type'); +export const File_classLoader = new _EnumLoader((Object.keys(File_class) as Array<keyof typeof File_class>).map(key => File_class[key])); +export const uriFile_classLoaderFalseTrueNoneNone = new _URILoader(File_classLoader, false, true, undefined, undefined); +export const uriunionOfundefinedtypeOrstrtypeFalseFalseNoneNone = new _URILoader(unionOfundefinedtypeOrstrtype, false, false, undefined, undefined); export const unionOfundefinedtypeOrinttype = new _UnionLoader([undefinedtype, inttype]); export const unionOfFileLoaderOrDirectoryLoader = new _UnionLoader([FileLoader, DirectoryLoader]); export const arrayOfunionOfFileLoaderOrDirectoryLoader = new _ArrayLoader([unionOfFileLoaderOrDirectoryLoader]); export const unionOfundefinedtypeOrarrayOfunionOfFileLoaderOrDirectoryLoader = new _UnionLoader([undefinedtype, arrayOfunionOfFileLoaderOrDirectoryLoader]); export const secondaryfilesdslunionOfundefinedtypeOrarrayOfunionOfFileLoaderOrDirectoryLoader = new _SecondaryDSLLoader(unionOfundefinedtypeOrarrayOfunionOfFileLoaderOrDirectoryLoader); -export const uriunionOfundefinedtypeOrstrtypeTrueFalseNone = new _URILoader(unionOfundefinedtypeOrstrtype, true, false, undefined); +export const uriunionOfundefinedtypeOrstrtypeTrueFalseNoneTrue = new _URILoader(unionOfundefinedtypeOrstrtype, true, false, undefined, true); export const Directory_classLoader = new _EnumLoader((Object.keys(Directory_class) as Array<keyof typeof Directory_class>).map(key => Directory_class[key])); -export const uriDirectory_classLoaderFalseTrueNone = new _URILoader(Directory_classLoader, false, true, undefined); +export const uriDirectory_classLoaderFalseTrueNoneNone = new _URILoader(Directory_classLoader, false, true, undefined, undefined); export const unionOfundefinedtypeOrbooltype = new _UnionLoader([undefinedtype, booltype]); export const unionOfundefinedtypeOrLoadListingEnumLoader = new _UnionLoader([undefinedtype, LoadListingEnumLoader]); export const arrayOfSecondaryFileSchemaLoader = new _ArrayLoader([SecondaryFileSchemaLoader]); export const unionOfundefinedtypeOrSecondaryFileSchemaLoaderOrarrayOfSecondaryFileSchemaLoader = new _UnionLoader([undefinedtype, SecondaryFileSchemaLoader, arrayOfSecondaryFileSchemaLoader]); export const secondaryfilesdslunionOfundefinedtypeOrSecondaryFileSchemaLoaderOrarrayOfSecondaryFileSchemaLoader = new _SecondaryDSLLoader(unionOfundefinedtypeOrSecondaryFileSchemaLoaderOrarrayOfSecondaryFileSchemaLoader); export const unionOfundefinedtypeOrstrtypeOrarrayOfstrtypeOrExpressionLoader = new _UnionLoader([undefinedtype, strtype, arrayOfstrtype, ExpressionLoader]); -export const uriunionOfundefinedtypeOrstrtypeOrarrayOfstrtypeOrExpressionLoaderTrueFalseNone = new _URILoader(unionOfundefinedtypeOrstrtypeOrarrayOfstrtypeOrExpressionLoader, true, false, undefined); +export const uriunionOfundefinedtypeOrstrtypeOrarrayOfstrtypeOrExpressionLoaderTrueFalseNoneTrue = new _URILoader(unionOfundefinedtypeOrstrtypeOrarrayOfstrtypeOrExpressionLoader, true, false, undefined, true); export const unionOfundefinedtypeOrstrtypeOrExpressionLoader = new _UnionLoader([undefinedtype, strtype, ExpressionLoader]); -export const uriunionOfundefinedtypeOrstrtypeOrExpressionLoaderTrueFalseNone = new _URILoader(unionOfundefinedtypeOrstrtypeOrExpressionLoader, true, false, undefined); +export const uriunionOfundefinedtypeOrstrtypeOrExpressionLoaderTrueFalseNoneTrue = new _URILoader(unionOfundefinedtypeOrstrtypeOrExpressionLoader, true, false, undefined, true); export const unionOfCWLTypeLoaderOrInputRecordSchemaLoaderOrInputEnumSchemaLoaderOrInputArraySchemaLoaderOrstrtype = new _UnionLoader([CWLTypeLoader, InputRecordSchemaLoader, InputEnumSchemaLoader, InputArraySchemaLoader, strtype]); export const arrayOfunionOfCWLTypeLoaderOrInputRecordSchemaLoaderOrInputEnumSchemaLoaderOrInputArraySchemaLoaderOrstrtype = new _ArrayLoader([unionOfCWLTypeLoaderOrInputRecordSchemaLoaderOrInputEnumSchemaLoaderOrInputArraySchemaLoaderOrstrtype]); export const unionOfCWLTypeLoaderOrInputRecordSchemaLoaderOrInputEnumSchemaLoaderOrInputArraySchemaLoaderOrstrtypeOrarrayOfunionOfCWLTypeLoaderOrInputRecordSchemaLoaderOrInputEnumSchemaLoaderOrInputArraySchemaLoaderOrstrtype = new _UnionLoader([CWLTypeLoader, InputRecordSchemaLoader, InputEnumSchemaLoader, InputArraySchemaLoader, strtype, arrayOfunionOfCWLTypeLoaderOrInputRecordSchemaLoaderOrInputEnumSchemaLoaderOrInputArraySchemaLoaderOrstrtype]); @@ -314,6 +354,7 @@ export const typedslunionOfCWLTypeLoaderOrInputRecordSchemaLoaderOrInputEnumSche export const arrayOfInputRecordFieldLoader = new _ArrayLoader([InputRecordFieldLoader]); export const unionOfundefinedtypeOrarrayOfInputRecordFieldLoader = new _UnionLoader([undefinedtype, arrayOfInputRecordFieldLoader]); export const idmapfieldsunionOfundefinedtypeOrarrayOfInputRecordFieldLoader = new _IdMapLoader(unionOfundefinedtypeOrarrayOfInputRecordFieldLoader, 'name', 'type'); +export const uriunionOfCWLTypeLoaderOrInputRecordSchemaLoaderOrInputEnumSchemaLoaderOrInputArraySchemaLoaderOrstrtypeOrarrayOfunionOfCWLTypeLoaderOrInputRecordSchemaLoaderOrInputEnumSchemaLoaderOrInputArraySchemaLoaderOrstrtypeFalseTrue2None = new _URILoader(unionOfCWLTypeLoaderOrInputRecordSchemaLoaderOrInputEnumSchemaLoaderOrInputArraySchemaLoaderOrstrtypeOrarrayOfunionOfCWLTypeLoaderOrInputRecordSchemaLoaderOrInputEnumSchemaLoaderOrInputArraySchemaLoaderOrstrtype, false, true, 2, undefined); export const unionOfCWLTypeLoaderOrOutputRecordSchemaLoaderOrOutputEnumSchemaLoaderOrOutputArraySchemaLoaderOrstrtype = new _UnionLoader([CWLTypeLoader, OutputRecordSchemaLoader, OutputEnumSchemaLoader, OutputArraySchemaLoader, strtype]); export const arrayOfunionOfCWLTypeLoaderOrOutputRecordSchemaLoaderOrOutputEnumSchemaLoaderOrOutputArraySchemaLoaderOrstrtype = new _ArrayLoader([unionOfCWLTypeLoaderOrOutputRecordSchemaLoaderOrOutputEnumSchemaLoaderOrOutputArraySchemaLoaderOrstrtype]); export const unionOfCWLTypeLoaderOrOutputRecordSchemaLoaderOrOutputEnumSchemaLoaderOrOutputArraySchemaLoaderOrstrtypeOrarrayOfunionOfCWLTypeLoaderOrOutputRecordSchemaLoaderOrOutputEnumSchemaLoaderOrOutputArraySchemaLoaderOrstrtype = new _UnionLoader([CWLTypeLoader, OutputRecordSchemaLoader, OutputEnumSchemaLoader, OutputArraySchemaLoader, strtype, arrayOfunionOfCWLTypeLoaderOrOutputRecordSchemaLoaderOrOutputEnumSchemaLoaderOrOutputArraySchemaLoaderOrstrtype]); @@ -321,15 +362,13 @@ export const typedslunionOfCWLTypeLoaderOrOutputRecordSchemaLoaderOrOutputEnumSc export const arrayOfOutputRecordFieldLoader = new _ArrayLoader([OutputRecordFieldLoader]); export const unionOfundefinedtypeOrarrayOfOutputRecordFieldLoader = new _UnionLoader([undefinedtype, arrayOfOutputRecordFieldLoader]); export const idmapfieldsunionOfundefinedtypeOrarrayOfOutputRecordFieldLoader = new _IdMapLoader(unionOfundefinedtypeOrarrayOfOutputRecordFieldLoader, 'name', 'type'); -export const unionOfundefinedtypeOrFileLoaderOrDirectoryLoaderOranyType = new _UnionLoader([undefinedtype, FileLoader, DirectoryLoader, anyType]); +export const uriunionOfCWLTypeLoaderOrOutputRecordSchemaLoaderOrOutputEnumSchemaLoaderOrOutputArraySchemaLoaderOrstrtypeOrarrayOfunionOfCWLTypeLoaderOrOutputRecordSchemaLoaderOrOutputEnumSchemaLoaderOrOutputArraySchemaLoaderOrstrtypeFalseTrue2None = new _URILoader(unionOfCWLTypeLoaderOrOutputRecordSchemaLoaderOrOutputEnumSchemaLoaderOrOutputArraySchemaLoaderOrstrtypeOrarrayOfunionOfCWLTypeLoaderOrOutputRecordSchemaLoaderOrOutputEnumSchemaLoaderOrOutputArraySchemaLoaderOrstrtype, false, true, 2, undefined); export const unionOfCommandInputParameterLoaderOrWorkflowInputParameterLoaderOrOperationInputParameterLoader = new _UnionLoader([CommandInputParameterLoader, WorkflowInputParameterLoader, OperationInputParameterLoader]); export const arrayOfunionOfCommandInputParameterLoaderOrWorkflowInputParameterLoaderOrOperationInputParameterLoader = new _ArrayLoader([unionOfCommandInputParameterLoaderOrWorkflowInputParameterLoaderOrOperationInputParameterLoader]); export const idmapinputsarrayOfunionOfCommandInputParameterLoaderOrWorkflowInputParameterLoaderOrOperationInputParameterLoader = new _IdMapLoader(arrayOfunionOfCommandInputParameterLoaderOrWorkflowInputParameterLoaderOrOperationInputParameterLoader, 'id', 'type'); export const unionOfCommandOutputParameterLoaderOrExpressionToolOutputParameterLoaderOrWorkflowOutputParameterLoaderOrOperationOutputParameterLoader = new _UnionLoader([CommandOutputParameterLoader, ExpressionToolOutputParameterLoader, WorkflowOutputParameterLoader, OperationOutputParameterLoader]); export const arrayOfunionOfCommandOutputParameterLoaderOrExpressionToolOutputParameterLoaderOrWorkflowOutputParameterLoaderOrOperationOutputParameterLoader = new _ArrayLoader([unionOfCommandOutputParameterLoaderOrExpressionToolOutputParameterLoaderOrWorkflowOutputParameterLoaderOrOperationOutputParameterLoader]); export const idmapoutputsarrayOfunionOfCommandOutputParameterLoaderOrExpressionToolOutputParameterLoaderOrWorkflowOutputParameterLoaderOrOperationOutputParameterLoader = new _IdMapLoader(arrayOfunionOfCommandOutputParameterLoaderOrExpressionToolOutputParameterLoaderOrWorkflowOutputParameterLoaderOrOperationOutputParameterLoader, 'id', 'type'); -export const unionOfInlineJavascriptRequirementLoaderOrSchemaDefRequirementLoaderOrLoadListingRequirementLoaderOrDockerRequirementLoaderOrSoftwareRequirementLoaderOrInitialWorkDirRequirementLoaderOrEnvVarRequirementLoaderOrShellCommandRequirementLoaderOrResourceRequirementLoaderOrWorkReuseLoaderOrNetworkAccessLoaderOrInplaceUpdateRequirementLoaderOrToolTimeLimitLoaderOrSubworkflowFeatureRequirementLoaderOrScatterFeatureRequirementLoaderOrMultipleInputFeatureRequirementLoaderOrStepInputExpressionRequirementLoader = new _UnionLoader([InlineJavascriptRequirementLoader, SchemaDefRequirementLoader, LoadListingRequirementLoader, DockerRequirementLoader, SoftwareRequirementLoader, InitialWorkDirRequirementLoader, EnvVarRequirementLoader, ShellCommandRequirementLoader, ResourceRequirementLoader, WorkReuseLoader, NetworkAccessLoader, InplaceUpdateRequirementLoader, ToolTimeLimitLoader, SubworkflowFeatureRequirementLoader, ScatterFeatureRequirementLoader, MultipleInputFeatureRequirementLoader, StepInputExpressionRequirementLoader]); -export const arrayOfunionOfInlineJavascriptRequirementLoaderOrSchemaDefRequirementLoaderOrLoadListingRequirementLoaderOrDockerRequirementLoaderOrSoftwareRequirementLoaderOrInitialWorkDirRequirementLoaderOrEnvVarRequirementLoaderOrShellCommandRequirementLoaderOrResourceRequirementLoaderOrWorkReuseLoaderOrNetworkAccessLoaderOrInplaceUpdateRequirementLoaderOrToolTimeLimitLoaderOrSubworkflowFeatureRequirementLoaderOrScatterFeatureRequirementLoaderOrMultipleInputFeatureRequirementLoaderOrStepInputExpressionRequirementLoader = new _ArrayLoader([unionOfInlineJavascriptRequirementLoaderOrSchemaDefRequirementLoaderOrLoadListingRequirementLoaderOrDockerRequirementLoaderOrSoftwareRequirementLoaderOrInitialWorkDirRequirementLoaderOrEnvVarRequirementLoaderOrShellCommandRequirementLoaderOrResourceRequirementLoaderOrWorkReuseLoaderOrNetworkAccessLoaderOrInplaceUpdateRequirementLoaderOrToolTimeLimitLoaderOrSubworkflowFeatureRequirementLoaderOrScatterFeatureRequirementLoaderOrMultipleInputFeatureRequirementLoaderOrStepInputExpressionRequirementLoader]); export const unionOfundefinedtypeOrarrayOfunionOfInlineJavascriptRequirementLoaderOrSchemaDefRequirementLoaderOrLoadListingRequirementLoaderOrDockerRequirementLoaderOrSoftwareRequirementLoaderOrInitialWorkDirRequirementLoaderOrEnvVarRequirementLoaderOrShellCommandRequirementLoaderOrResourceRequirementLoaderOrWorkReuseLoaderOrNetworkAccessLoaderOrInplaceUpdateRequirementLoaderOrToolTimeLimitLoaderOrSubworkflowFeatureRequirementLoaderOrScatterFeatureRequirementLoaderOrMultipleInputFeatureRequirementLoaderOrStepInputExpressionRequirementLoader = new _UnionLoader([undefinedtype, arrayOfunionOfInlineJavascriptRequirementLoaderOrSchemaDefRequirementLoaderOrLoadListingRequirementLoaderOrDockerRequirementLoaderOrSoftwareRequirementLoaderOrInitialWorkDirRequirementLoaderOrEnvVarRequirementLoaderOrShellCommandRequirementLoaderOrResourceRequirementLoaderOrWorkReuseLoaderOrNetworkAccessLoaderOrInplaceUpdateRequirementLoaderOrToolTimeLimitLoaderOrSubworkflowFeatureRequirementLoaderOrScatterFeatureRequirementLoaderOrMultipleInputFeatureRequirementLoaderOrStepInputExpressionRequirementLoader]); export const idmaprequirementsunionOfundefinedtypeOrarrayOfunionOfInlineJavascriptRequirementLoaderOrSchemaDefRequirementLoaderOrLoadListingRequirementLoaderOrDockerRequirementLoaderOrSoftwareRequirementLoaderOrInitialWorkDirRequirementLoaderOrEnvVarRequirementLoaderOrShellCommandRequirementLoaderOrResourceRequirementLoaderOrWorkReuseLoaderOrNetworkAccessLoaderOrInplaceUpdateRequirementLoaderOrToolTimeLimitLoaderOrSubworkflowFeatureRequirementLoaderOrScatterFeatureRequirementLoaderOrMultipleInputFeatureRequirementLoaderOrStepInputExpressionRequirementLoader = new _IdMapLoader(unionOfundefinedtypeOrarrayOfunionOfInlineJavascriptRequirementLoaderOrSchemaDefRequirementLoaderOrLoadListingRequirementLoaderOrDockerRequirementLoaderOrSoftwareRequirementLoaderOrInitialWorkDirRequirementLoaderOrEnvVarRequirementLoaderOrShellCommandRequirementLoaderOrResourceRequirementLoaderOrWorkReuseLoaderOrNetworkAccessLoaderOrInplaceUpdateRequirementLoaderOrToolTimeLimitLoaderOrSubworkflowFeatureRequirementLoaderOrScatterFeatureRequirementLoaderOrMultipleInputFeatureRequirementLoaderOrStepInputExpressionRequirementLoader, 'class', 'None'); export const unionOfInlineJavascriptRequirementLoaderOrSchemaDefRequirementLoaderOrLoadListingRequirementLoaderOrDockerRequirementLoaderOrSoftwareRequirementLoaderOrInitialWorkDirRequirementLoaderOrEnvVarRequirementLoaderOrShellCommandRequirementLoaderOrResourceRequirementLoaderOrWorkReuseLoaderOrNetworkAccessLoaderOrInplaceUpdateRequirementLoaderOrToolTimeLimitLoaderOrSubworkflowFeatureRequirementLoaderOrScatterFeatureRequirementLoaderOrMultipleInputFeatureRequirementLoaderOrStepInputExpressionRequirementLoaderOranyType = new _UnionLoader([InlineJavascriptRequirementLoader, SchemaDefRequirementLoader, LoadListingRequirementLoader, DockerRequirementLoader, SoftwareRequirementLoader, InitialWorkDirRequirementLoader, EnvVarRequirementLoader, ShellCommandRequirementLoader, ResourceRequirementLoader, WorkReuseLoader, NetworkAccessLoader, InplaceUpdateRequirementLoader, ToolTimeLimitLoader, SubworkflowFeatureRequirementLoader, ScatterFeatureRequirementLoader, MultipleInputFeatureRequirementLoader, StepInputExpressionRequirementLoader, anyType]); @@ -337,19 +376,19 @@ export const arrayOfunionOfInlineJavascriptRequirementLoaderOrSchemaDefRequireme export const unionOfundefinedtypeOrarrayOfunionOfInlineJavascriptRequirementLoaderOrSchemaDefRequirementLoaderOrLoadListingRequirementLoaderOrDockerRequirementLoaderOrSoftwareRequirementLoaderOrInitialWorkDirRequirementLoaderOrEnvVarRequirementLoaderOrShellCommandRequirementLoaderOrResourceRequirementLoaderOrWorkReuseLoaderOrNetworkAccessLoaderOrInplaceUpdateRequirementLoaderOrToolTimeLimitLoaderOrSubworkflowFeatureRequirementLoaderOrScatterFeatureRequirementLoaderOrMultipleInputFeatureRequirementLoaderOrStepInputExpressionRequirementLoaderOranyType = new _UnionLoader([undefinedtype, arrayOfunionOfInlineJavascriptRequirementLoaderOrSchemaDefRequirementLoaderOrLoadListingRequirementLoaderOrDockerRequirementLoaderOrSoftwareRequirementLoaderOrInitialWorkDirRequirementLoaderOrEnvVarRequirementLoaderOrShellCommandRequirementLoaderOrResourceRequirementLoaderOrWorkReuseLoaderOrNetworkAccessLoaderOrInplaceUpdateRequirementLoaderOrToolTimeLimitLoaderOrSubworkflowFeatureRequirementLoaderOrScatterFeatureRequirementLoaderOrMultipleInputFeatureRequirementLoaderOrStepInputExpressionRequirementLoaderOranyType]); export const idmaphintsunionOfundefinedtypeOrarrayOfunionOfInlineJavascriptRequirementLoaderOrSchemaDefRequirementLoaderOrLoadListingRequirementLoaderOrDockerRequirementLoaderOrSoftwareRequirementLoaderOrInitialWorkDirRequirementLoaderOrEnvVarRequirementLoaderOrShellCommandRequirementLoaderOrResourceRequirementLoaderOrWorkReuseLoaderOrNetworkAccessLoaderOrInplaceUpdateRequirementLoaderOrToolTimeLimitLoaderOrSubworkflowFeatureRequirementLoaderOrScatterFeatureRequirementLoaderOrMultipleInputFeatureRequirementLoaderOrStepInputExpressionRequirementLoaderOranyType = new _IdMapLoader(unionOfundefinedtypeOrarrayOfunionOfInlineJavascriptRequirementLoaderOrSchemaDefRequirementLoaderOrLoadListingRequirementLoaderOrDockerRequirementLoaderOrSoftwareRequirementLoaderOrInitialWorkDirRequirementLoaderOrEnvVarRequirementLoaderOrShellCommandRequirementLoaderOrResourceRequirementLoaderOrWorkReuseLoaderOrNetworkAccessLoaderOrInplaceUpdateRequirementLoaderOrToolTimeLimitLoaderOrSubworkflowFeatureRequirementLoaderOrScatterFeatureRequirementLoaderOrMultipleInputFeatureRequirementLoaderOrStepInputExpressionRequirementLoaderOranyType, 'class', 'None'); export const unionOfundefinedtypeOrCWLVersionLoader = new _UnionLoader([undefinedtype, CWLVersionLoader]); -export const uriunionOfundefinedtypeOrCWLVersionLoaderFalseTrueNone = new _URILoader(unionOfundefinedtypeOrCWLVersionLoader, false, true, undefined); +export const uriunionOfundefinedtypeOrCWLVersionLoaderFalseTrueNoneNone = new _URILoader(unionOfundefinedtypeOrCWLVersionLoader, false, true, undefined, undefined); export const unionOfundefinedtypeOrarrayOfstrtype = new _UnionLoader([undefinedtype, arrayOfstrtype]); -export const uriunionOfundefinedtypeOrarrayOfstrtypeTrueFalseNone = new _URILoader(unionOfundefinedtypeOrarrayOfstrtype, true, false, undefined); +export const uriunionOfundefinedtypeOrarrayOfstrtypeTrueFalseNoneNone = new _URILoader(unionOfundefinedtypeOrarrayOfstrtype, true, false, undefined, undefined); export const InlineJavascriptRequirement_classLoader = new _EnumLoader((Object.keys(InlineJavascriptRequirement_class) as Array<keyof typeof InlineJavascriptRequirement_class>).map(key => InlineJavascriptRequirement_class[key])); -export const uriInlineJavascriptRequirement_classLoaderFalseTrueNone = new _URILoader(InlineJavascriptRequirement_classLoader, false, true, undefined); +export const uriInlineJavascriptRequirement_classLoaderFalseTrueNoneNone = new _URILoader(InlineJavascriptRequirement_classLoader, false, true, undefined, undefined); export const SchemaDefRequirement_classLoader = new _EnumLoader((Object.keys(SchemaDefRequirement_class) as Array<keyof typeof SchemaDefRequirement_class>).map(key => SchemaDefRequirement_class[key])); -export const uriSchemaDefRequirement_classLoaderFalseTrueNone = new _URILoader(SchemaDefRequirement_classLoader, false, true, undefined); +export const uriSchemaDefRequirement_classLoaderFalseTrueNoneNone = new _URILoader(SchemaDefRequirement_classLoader, false, true, undefined, undefined); export const unionOfCommandInputRecordSchemaLoaderOrCommandInputEnumSchemaLoaderOrCommandInputArraySchemaLoader = new _UnionLoader([CommandInputRecordSchemaLoader, CommandInputEnumSchemaLoader, CommandInputArraySchemaLoader]); export const arrayOfunionOfCommandInputRecordSchemaLoaderOrCommandInputEnumSchemaLoaderOrCommandInputArraySchemaLoader = new _ArrayLoader([unionOfCommandInputRecordSchemaLoaderOrCommandInputEnumSchemaLoaderOrCommandInputArraySchemaLoader]); export const unionOfstrtypeOrExpressionLoader = new _UnionLoader([strtype, ExpressionLoader]); export const unionOfundefinedtypeOrbooltypeOrExpressionLoader = new _UnionLoader([undefinedtype, booltype, ExpressionLoader]); export const LoadListingRequirement_classLoader = new _EnumLoader((Object.keys(LoadListingRequirement_class) as Array<keyof typeof LoadListingRequirement_class>).map(key => LoadListingRequirement_class[key])); -export const uriLoadListingRequirement_classLoaderFalseTrueNone = new _URILoader(LoadListingRequirement_classLoader, false, true, undefined); +export const uriLoadListingRequirement_classLoaderFalseTrueNoneNone = new _URILoader(LoadListingRequirement_classLoader, false, true, undefined, undefined); export const unionOfundefinedtypeOrinttypeOrExpressionLoader = new _UnionLoader([undefinedtype, inttype, ExpressionLoader]); export const unionOfundefinedtypeOrstrtypeOrExpressionLoaderOrarrayOfstrtype = new _UnionLoader([undefinedtype, strtype, ExpressionLoader, arrayOfstrtype]); export const unionOfundefinedtypeOrExpressionLoader = new _UnionLoader([undefinedtype, ExpressionLoader]); @@ -361,6 +400,7 @@ export const typedslunionOfCWLTypeLoaderOrCommandInputRecordSchemaLoaderOrComman export const arrayOfCommandInputRecordFieldLoader = new _ArrayLoader([CommandInputRecordFieldLoader]); export const unionOfundefinedtypeOrarrayOfCommandInputRecordFieldLoader = new _UnionLoader([undefinedtype, arrayOfCommandInputRecordFieldLoader]); export const idmapfieldsunionOfundefinedtypeOrarrayOfCommandInputRecordFieldLoader = new _IdMapLoader(unionOfundefinedtypeOrarrayOfCommandInputRecordFieldLoader, 'name', 'type'); +export const uriunionOfCWLTypeLoaderOrCommandInputRecordSchemaLoaderOrCommandInputEnumSchemaLoaderOrCommandInputArraySchemaLoaderOrstrtypeOrarrayOfunionOfCWLTypeLoaderOrCommandInputRecordSchemaLoaderOrCommandInputEnumSchemaLoaderOrCommandInputArraySchemaLoaderOrstrtypeFalseTrue2None = new _URILoader(unionOfCWLTypeLoaderOrCommandInputRecordSchemaLoaderOrCommandInputEnumSchemaLoaderOrCommandInputArraySchemaLoaderOrstrtypeOrarrayOfunionOfCWLTypeLoaderOrCommandInputRecordSchemaLoaderOrCommandInputEnumSchemaLoaderOrCommandInputArraySchemaLoaderOrstrtype, false, true, 2, undefined); export const unionOfCWLTypeLoaderOrCommandOutputRecordSchemaLoaderOrCommandOutputEnumSchemaLoaderOrCommandOutputArraySchemaLoaderOrstrtype = new _UnionLoader([CWLTypeLoader, CommandOutputRecordSchemaLoader, CommandOutputEnumSchemaLoader, CommandOutputArraySchemaLoader, strtype]); export const arrayOfunionOfCWLTypeLoaderOrCommandOutputRecordSchemaLoaderOrCommandOutputEnumSchemaLoaderOrCommandOutputArraySchemaLoaderOrstrtype = new _ArrayLoader([unionOfCWLTypeLoaderOrCommandOutputRecordSchemaLoaderOrCommandOutputEnumSchemaLoaderOrCommandOutputArraySchemaLoaderOrstrtype]); export const unionOfCWLTypeLoaderOrCommandOutputRecordSchemaLoaderOrCommandOutputEnumSchemaLoaderOrCommandOutputArraySchemaLoaderOrstrtypeOrarrayOfunionOfCWLTypeLoaderOrCommandOutputRecordSchemaLoaderOrCommandOutputEnumSchemaLoaderOrCommandOutputArraySchemaLoaderOrstrtype = new _UnionLoader([CWLTypeLoader, CommandOutputRecordSchemaLoader, CommandOutputEnumSchemaLoader, CommandOutputArraySchemaLoader, strtype, arrayOfunionOfCWLTypeLoaderOrCommandOutputRecordSchemaLoaderOrCommandOutputEnumSchemaLoaderOrCommandOutputArraySchemaLoaderOrstrtype]); @@ -369,12 +409,13 @@ export const unionOfundefinedtypeOrCommandOutputBindingLoader = new _UnionLoader export const arrayOfCommandOutputRecordFieldLoader = new _ArrayLoader([CommandOutputRecordFieldLoader]); export const unionOfundefinedtypeOrarrayOfCommandOutputRecordFieldLoader = new _UnionLoader([undefinedtype, arrayOfCommandOutputRecordFieldLoader]); export const idmapfieldsunionOfundefinedtypeOrarrayOfCommandOutputRecordFieldLoader = new _IdMapLoader(unionOfundefinedtypeOrarrayOfCommandOutputRecordFieldLoader, 'name', 'type'); +export const uriunionOfCWLTypeLoaderOrCommandOutputRecordSchemaLoaderOrCommandOutputEnumSchemaLoaderOrCommandOutputArraySchemaLoaderOrstrtypeOrarrayOfunionOfCWLTypeLoaderOrCommandOutputRecordSchemaLoaderOrCommandOutputEnumSchemaLoaderOrCommandOutputArraySchemaLoaderOrstrtypeFalseTrue2None = new _URILoader(unionOfCWLTypeLoaderOrCommandOutputRecordSchemaLoaderOrCommandOutputEnumSchemaLoaderOrCommandOutputArraySchemaLoaderOrstrtypeOrarrayOfunionOfCWLTypeLoaderOrCommandOutputRecordSchemaLoaderOrCommandOutputEnumSchemaLoaderOrCommandOutputArraySchemaLoaderOrstrtype, false, true, 2, undefined); export const unionOfCWLTypeLoaderOrstdinLoaderOrCommandInputRecordSchemaLoaderOrCommandInputEnumSchemaLoaderOrCommandInputArraySchemaLoaderOrstrtypeOrarrayOfunionOfCWLTypeLoaderOrCommandInputRecordSchemaLoaderOrCommandInputEnumSchemaLoaderOrCommandInputArraySchemaLoaderOrstrtype = new _UnionLoader([CWLTypeLoader, stdinLoader, CommandInputRecordSchemaLoader, CommandInputEnumSchemaLoader, CommandInputArraySchemaLoader, strtype, arrayOfunionOfCWLTypeLoaderOrCommandInputRecordSchemaLoaderOrCommandInputEnumSchemaLoaderOrCommandInputArraySchemaLoaderOrstrtype]); export const typedslunionOfCWLTypeLoaderOrstdinLoaderOrCommandInputRecordSchemaLoaderOrCommandInputEnumSchemaLoaderOrCommandInputArraySchemaLoaderOrstrtypeOrarrayOfunionOfCWLTypeLoaderOrCommandInputRecordSchemaLoaderOrCommandInputEnumSchemaLoaderOrCommandInputArraySchemaLoaderOrstrtype2 = new _TypeDSLLoader(unionOfCWLTypeLoaderOrstdinLoaderOrCommandInputRecordSchemaLoaderOrCommandInputEnumSchemaLoaderOrCommandInputArraySchemaLoaderOrstrtypeOrarrayOfunionOfCWLTypeLoaderOrCommandInputRecordSchemaLoaderOrCommandInputEnumSchemaLoaderOrCommandInputArraySchemaLoaderOrstrtype, 2); export const unionOfCWLTypeLoaderOrstdoutLoaderOrstderrLoaderOrCommandOutputRecordSchemaLoaderOrCommandOutputEnumSchemaLoaderOrCommandOutputArraySchemaLoaderOrstrtypeOrarrayOfunionOfCWLTypeLoaderOrCommandOutputRecordSchemaLoaderOrCommandOutputEnumSchemaLoaderOrCommandOutputArraySchemaLoaderOrstrtype = new _UnionLoader([CWLTypeLoader, stdoutLoader, stderrLoader, CommandOutputRecordSchemaLoader, CommandOutputEnumSchemaLoader, CommandOutputArraySchemaLoader, strtype, arrayOfunionOfCWLTypeLoaderOrCommandOutputRecordSchemaLoaderOrCommandOutputEnumSchemaLoaderOrCommandOutputArraySchemaLoaderOrstrtype]); export const typedslunionOfCWLTypeLoaderOrstdoutLoaderOrstderrLoaderOrCommandOutputRecordSchemaLoaderOrCommandOutputEnumSchemaLoaderOrCommandOutputArraySchemaLoaderOrstrtypeOrarrayOfunionOfCWLTypeLoaderOrCommandOutputRecordSchemaLoaderOrCommandOutputEnumSchemaLoaderOrCommandOutputArraySchemaLoaderOrstrtype2 = new _TypeDSLLoader(unionOfCWLTypeLoaderOrstdoutLoaderOrstderrLoaderOrCommandOutputRecordSchemaLoaderOrCommandOutputEnumSchemaLoaderOrCommandOutputArraySchemaLoaderOrstrtypeOrarrayOfunionOfCWLTypeLoaderOrCommandOutputRecordSchemaLoaderOrCommandOutputEnumSchemaLoaderOrCommandOutputArraySchemaLoaderOrstrtype, 2); export const CommandLineTool_classLoader = new _EnumLoader((Object.keys(CommandLineTool_class) as Array<keyof typeof CommandLineTool_class>).map(key => CommandLineTool_class[key])); -export const uriCommandLineTool_classLoaderFalseTrueNone = new _URILoader(CommandLineTool_classLoader, false, true, undefined); +export const uriCommandLineTool_classLoaderFalseTrueNoneNone = new _URILoader(CommandLineTool_classLoader, false, true, undefined, undefined); export const arrayOfCommandInputParameterLoader = new _ArrayLoader([CommandInputParameterLoader]); export const idmapinputsarrayOfCommandInputParameterLoader = new _IdMapLoader(arrayOfCommandInputParameterLoader, 'id', 'type'); export const arrayOfCommandOutputParameterLoader = new _ArrayLoader([CommandOutputParameterLoader]); @@ -385,78 +426,78 @@ export const unionOfundefinedtypeOrarrayOfunionOfstrtypeOrExpressionLoaderOrComm export const arrayOfinttype = new _ArrayLoader([inttype]); export const unionOfundefinedtypeOrarrayOfinttype = new _UnionLoader([undefinedtype, arrayOfinttype]); export const DockerRequirement_classLoader = new _EnumLoader((Object.keys(DockerRequirement_class) as Array<keyof typeof DockerRequirement_class>).map(key => DockerRequirement_class[key])); -export const uriDockerRequirement_classLoaderFalseTrueNone = new _URILoader(DockerRequirement_classLoader, false, true, undefined); +export const uriDockerRequirement_classLoaderFalseTrueNoneNone = new _URILoader(DockerRequirement_classLoader, false, true, undefined, undefined); export const SoftwareRequirement_classLoader = new _EnumLoader((Object.keys(SoftwareRequirement_class) as Array<keyof typeof SoftwareRequirement_class>).map(key => SoftwareRequirement_class[key])); -export const uriSoftwareRequirement_classLoaderFalseTrueNone = new _URILoader(SoftwareRequirement_classLoader, false, true, undefined); +export const uriSoftwareRequirement_classLoaderFalseTrueNoneNone = new _URILoader(SoftwareRequirement_classLoader, false, true, undefined, undefined); export const arrayOfSoftwarePackageLoader = new _ArrayLoader([SoftwarePackageLoader]); export const idmappackagesarrayOfSoftwarePackageLoader = new _IdMapLoader(arrayOfSoftwarePackageLoader, 'package', 'specs'); -export const uriunionOfundefinedtypeOrarrayOfstrtypeFalseFalseNone = new _URILoader(unionOfundefinedtypeOrarrayOfstrtype, false, false, undefined); +export const uriunionOfundefinedtypeOrarrayOfstrtypeFalseFalseNoneTrue = new _URILoader(unionOfundefinedtypeOrarrayOfstrtype, false, false, undefined, true); export const InitialWorkDirRequirement_classLoader = new _EnumLoader((Object.keys(InitialWorkDirRequirement_class) as Array<keyof typeof InitialWorkDirRequirement_class>).map(key => InitialWorkDirRequirement_class[key])); -export const uriInitialWorkDirRequirement_classLoaderFalseTrueNone = new _URILoader(InitialWorkDirRequirement_classLoader, false, true, undefined); +export const uriInitialWorkDirRequirement_classLoaderFalseTrueNoneNone = new _URILoader(InitialWorkDirRequirement_classLoader, false, true, undefined, undefined); export const unionOfundefinedtypeOrDirentLoaderOrExpressionLoaderOrFileLoaderOrDirectoryLoaderOrarrayOfunionOfFileLoaderOrDirectoryLoader = new _UnionLoader([undefinedtype, DirentLoader, ExpressionLoader, FileLoader, DirectoryLoader, arrayOfunionOfFileLoaderOrDirectoryLoader]); export const arrayOfunionOfundefinedtypeOrDirentLoaderOrExpressionLoaderOrFileLoaderOrDirectoryLoaderOrarrayOfunionOfFileLoaderOrDirectoryLoader = new _ArrayLoader([unionOfundefinedtypeOrDirentLoaderOrExpressionLoaderOrFileLoaderOrDirectoryLoaderOrarrayOfunionOfFileLoaderOrDirectoryLoader]); export const unionOfExpressionLoaderOrarrayOfunionOfundefinedtypeOrDirentLoaderOrExpressionLoaderOrFileLoaderOrDirectoryLoaderOrarrayOfunionOfFileLoaderOrDirectoryLoader = new _UnionLoader([ExpressionLoader, arrayOfunionOfundefinedtypeOrDirentLoaderOrExpressionLoaderOrFileLoaderOrDirectoryLoaderOrarrayOfunionOfFileLoaderOrDirectoryLoader]); export const EnvVarRequirement_classLoader = new _EnumLoader((Object.keys(EnvVarRequirement_class) as Array<keyof typeof EnvVarRequirement_class>).map(key => EnvVarRequirement_class[key])); -export const uriEnvVarRequirement_classLoaderFalseTrueNone = new _URILoader(EnvVarRequirement_classLoader, false, true, undefined); +export const uriEnvVarRequirement_classLoaderFalseTrueNoneNone = new _URILoader(EnvVarRequirement_classLoader, false, true, undefined, undefined); export const arrayOfEnvironmentDefLoader = new _ArrayLoader([EnvironmentDefLoader]); export const idmapenvDefarrayOfEnvironmentDefLoader = new _IdMapLoader(arrayOfEnvironmentDefLoader, 'envName', 'envValue'); export const ShellCommandRequirement_classLoader = new _EnumLoader((Object.keys(ShellCommandRequirement_class) as Array<keyof typeof ShellCommandRequirement_class>).map(key => ShellCommandRequirement_class[key])); -export const uriShellCommandRequirement_classLoaderFalseTrueNone = new _URILoader(ShellCommandRequirement_classLoader, false, true, undefined); +export const uriShellCommandRequirement_classLoaderFalseTrueNoneNone = new _URILoader(ShellCommandRequirement_classLoader, false, true, undefined, undefined); export const ResourceRequirement_classLoader = new _EnumLoader((Object.keys(ResourceRequirement_class) as Array<keyof typeof ResourceRequirement_class>).map(key => ResourceRequirement_class[key])); -export const uriResourceRequirement_classLoaderFalseTrueNone = new _URILoader(ResourceRequirement_classLoader, false, true, undefined); +export const uriResourceRequirement_classLoaderFalseTrueNoneNone = new _URILoader(ResourceRequirement_classLoader, false, true, undefined, undefined); export const unionOfundefinedtypeOrinttypeOrfloattypeOrExpressionLoader = new _UnionLoader([undefinedtype, inttype, floattype, ExpressionLoader]); export const WorkReuse_classLoader = new _EnumLoader((Object.keys(WorkReuse_class) as Array<keyof typeof WorkReuse_class>).map(key => WorkReuse_class[key])); -export const uriWorkReuse_classLoaderFalseTrueNone = new _URILoader(WorkReuse_classLoader, false, true, undefined); +export const uriWorkReuse_classLoaderFalseTrueNoneNone = new _URILoader(WorkReuse_classLoader, false, true, undefined, undefined); export const unionOfbooltypeOrExpressionLoader = new _UnionLoader([booltype, ExpressionLoader]); export const NetworkAccess_classLoader = new _EnumLoader((Object.keys(NetworkAccess_class) as Array<keyof typeof NetworkAccess_class>).map(key => NetworkAccess_class[key])); -export const uriNetworkAccess_classLoaderFalseTrueNone = new _URILoader(NetworkAccess_classLoader, false, true, undefined); +export const uriNetworkAccess_classLoaderFalseTrueNoneNone = new _URILoader(NetworkAccess_classLoader, false, true, undefined, undefined); export const InplaceUpdateRequirement_classLoader = new _EnumLoader((Object.keys(InplaceUpdateRequirement_class) as Array<keyof typeof InplaceUpdateRequirement_class>).map(key => InplaceUpdateRequirement_class[key])); -export const uriInplaceUpdateRequirement_classLoaderFalseTrueNone = new _URILoader(InplaceUpdateRequirement_classLoader, false, true, undefined); +export const uriInplaceUpdateRequirement_classLoaderFalseTrueNoneNone = new _URILoader(InplaceUpdateRequirement_classLoader, false, true, undefined, undefined); export const ToolTimeLimit_classLoader = new _EnumLoader((Object.keys(ToolTimeLimit_class) as Array<keyof typeof ToolTimeLimit_class>).map(key => ToolTimeLimit_class[key])); -export const uriToolTimeLimit_classLoaderFalseTrueNone = new _URILoader(ToolTimeLimit_classLoader, false, true, undefined); +export const uriToolTimeLimit_classLoaderFalseTrueNoneNone = new _URILoader(ToolTimeLimit_classLoader, false, true, undefined, undefined); export const unionOfinttypeOrExpressionLoader = new _UnionLoader([inttype, ExpressionLoader]); export const unionOfundefinedtypeOrInputBindingLoader = new _UnionLoader([undefinedtype, InputBindingLoader]); export const ExpressionTool_classLoader = new _EnumLoader((Object.keys(ExpressionTool_class) as Array<keyof typeof ExpressionTool_class>).map(key => ExpressionTool_class[key])); -export const uriExpressionTool_classLoaderFalseTrueNone = new _URILoader(ExpressionTool_classLoader, false, true, undefined); +export const uriExpressionTool_classLoaderFalseTrueNoneNone = new _URILoader(ExpressionTool_classLoader, false, true, undefined, undefined); export const arrayOfWorkflowInputParameterLoader = new _ArrayLoader([WorkflowInputParameterLoader]); export const idmapinputsarrayOfWorkflowInputParameterLoader = new _IdMapLoader(arrayOfWorkflowInputParameterLoader, 'id', 'type'); export const arrayOfExpressionToolOutputParameterLoader = new _ArrayLoader([ExpressionToolOutputParameterLoader]); export const idmapoutputsarrayOfExpressionToolOutputParameterLoader = new _IdMapLoader(arrayOfExpressionToolOutputParameterLoader, 'id', 'type'); -export const uriunionOfundefinedtypeOrstrtypeOrarrayOfstrtypeFalseFalse1 = new _URILoader(unionOfundefinedtypeOrstrtypeOrarrayOfstrtype, false, false, 1); +export const uriunionOfundefinedtypeOrstrtypeOrarrayOfstrtypeFalseFalse1None = new _URILoader(unionOfundefinedtypeOrstrtypeOrarrayOfstrtype, false, false, 1, undefined); export const unionOfundefinedtypeOrLinkMergeMethodLoader = new _UnionLoader([undefinedtype, LinkMergeMethodLoader]); export const unionOfundefinedtypeOrPickValueMethodLoader = new _UnionLoader([undefinedtype, PickValueMethodLoader]); -export const uriunionOfundefinedtypeOrstrtypeOrarrayOfstrtypeFalseFalse2 = new _URILoader(unionOfundefinedtypeOrstrtypeOrarrayOfstrtype, false, false, 2); +export const uriunionOfundefinedtypeOrstrtypeOrarrayOfstrtypeFalseFalse2None = new _URILoader(unionOfundefinedtypeOrstrtypeOrarrayOfstrtype, false, false, 2, undefined); export const arrayOfWorkflowStepInputLoader = new _ArrayLoader([WorkflowStepInputLoader]); export const idmapin_arrayOfWorkflowStepInputLoader = new _IdMapLoader(arrayOfWorkflowStepInputLoader, 'id', 'source'); export const unionOfstrtypeOrWorkflowStepOutputLoader = new _UnionLoader([strtype, WorkflowStepOutputLoader]); export const arrayOfunionOfstrtypeOrWorkflowStepOutputLoader = new _ArrayLoader([unionOfstrtypeOrWorkflowStepOutputLoader]); export const unionOfarrayOfunionOfstrtypeOrWorkflowStepOutputLoader = new _UnionLoader([arrayOfunionOfstrtypeOrWorkflowStepOutputLoader]); -export const uriunionOfarrayOfunionOfstrtypeOrWorkflowStepOutputLoaderTrueFalseNone = new _URILoader(unionOfarrayOfunionOfstrtypeOrWorkflowStepOutputLoader, true, false, undefined); +export const uriunionOfarrayOfunionOfstrtypeOrWorkflowStepOutputLoaderTrueFalseNoneNone = new _URILoader(unionOfarrayOfunionOfstrtypeOrWorkflowStepOutputLoader, true, false, undefined, undefined); export const arrayOfanyType = new _ArrayLoader([anyType]); export const unionOfundefinedtypeOrarrayOfanyType = new _UnionLoader([undefinedtype, arrayOfanyType]); export const idmaphintsunionOfundefinedtypeOrarrayOfanyType = new _IdMapLoader(unionOfundefinedtypeOrarrayOfanyType, 'class', 'None'); export const unionOfstrtypeOrCommandLineToolLoaderOrExpressionToolLoaderOrWorkflowLoaderOrOperationLoader = new _UnionLoader([strtype, CommandLineToolLoader, ExpressionToolLoader, WorkflowLoader, OperationLoader]); -export const uriunionOfstrtypeOrCommandLineToolLoaderOrExpressionToolLoaderOrWorkflowLoaderOrOperationLoaderFalseFalseNone = new _URILoader(unionOfstrtypeOrCommandLineToolLoaderOrExpressionToolLoaderOrWorkflowLoaderOrOperationLoader, false, false, undefined); -export const uriunionOfundefinedtypeOrstrtypeOrarrayOfstrtypeFalseFalse0 = new _URILoader(unionOfundefinedtypeOrstrtypeOrarrayOfstrtype, false, false, 0); +export const uriunionOfstrtypeOrCommandLineToolLoaderOrExpressionToolLoaderOrWorkflowLoaderOrOperationLoaderFalseFalseNoneNone = new _URILoader(unionOfstrtypeOrCommandLineToolLoaderOrExpressionToolLoaderOrWorkflowLoaderOrOperationLoader, false, false, undefined, undefined); +export const uriunionOfundefinedtypeOrstrtypeOrarrayOfstrtypeFalseFalse0None = new _URILoader(unionOfundefinedtypeOrstrtypeOrarrayOfstrtype, false, false, 0, undefined); export const unionOfundefinedtypeOrScatterMethodLoader = new _UnionLoader([undefinedtype, ScatterMethodLoader]); -export const uriunionOfundefinedtypeOrScatterMethodLoaderFalseTrueNone = new _URILoader(unionOfundefinedtypeOrScatterMethodLoader, false, true, undefined); +export const uriunionOfundefinedtypeOrScatterMethodLoaderFalseTrueNoneNone = new _URILoader(unionOfundefinedtypeOrScatterMethodLoader, false, true, undefined, undefined); export const Workflow_classLoader = new _EnumLoader((Object.keys(Workflow_class) as Array<keyof typeof Workflow_class>).map(key => Workflow_class[key])); -export const uriWorkflow_classLoaderFalseTrueNone = new _URILoader(Workflow_classLoader, false, true, undefined); +export const uriWorkflow_classLoaderFalseTrueNoneNone = new _URILoader(Workflow_classLoader, false, true, undefined, undefined); export const arrayOfWorkflowOutputParameterLoader = new _ArrayLoader([WorkflowOutputParameterLoader]); export const idmapoutputsarrayOfWorkflowOutputParameterLoader = new _IdMapLoader(arrayOfWorkflowOutputParameterLoader, 'id', 'type'); export const arrayOfWorkflowStepLoader = new _ArrayLoader([WorkflowStepLoader]); export const unionOfarrayOfWorkflowStepLoader = new _UnionLoader([arrayOfWorkflowStepLoader]); export const idmapstepsunionOfarrayOfWorkflowStepLoader = new _IdMapLoader(unionOfarrayOfWorkflowStepLoader, 'id', 'None'); export const SubworkflowFeatureRequirement_classLoader = new _EnumLoader((Object.keys(SubworkflowFeatureRequirement_class) as Array<keyof typeof SubworkflowFeatureRequirement_class>).map(key => SubworkflowFeatureRequirement_class[key])); -export const uriSubworkflowFeatureRequirement_classLoaderFalseTrueNone = new _URILoader(SubworkflowFeatureRequirement_classLoader, false, true, undefined); +export const uriSubworkflowFeatureRequirement_classLoaderFalseTrueNoneNone = new _URILoader(SubworkflowFeatureRequirement_classLoader, false, true, undefined, undefined); export const ScatterFeatureRequirement_classLoader = new _EnumLoader((Object.keys(ScatterFeatureRequirement_class) as Array<keyof typeof ScatterFeatureRequirement_class>).map(key => ScatterFeatureRequirement_class[key])); -export const uriScatterFeatureRequirement_classLoaderFalseTrueNone = new _URILoader(ScatterFeatureRequirement_classLoader, false, true, undefined); +export const uriScatterFeatureRequirement_classLoaderFalseTrueNoneNone = new _URILoader(ScatterFeatureRequirement_classLoader, false, true, undefined, undefined); export const MultipleInputFeatureRequirement_classLoader = new _EnumLoader((Object.keys(MultipleInputFeatureRequirement_class) as Array<keyof typeof MultipleInputFeatureRequirement_class>).map(key => MultipleInputFeatureRequirement_class[key])); -export const uriMultipleInputFeatureRequirement_classLoaderFalseTrueNone = new _URILoader(MultipleInputFeatureRequirement_classLoader, false, true, undefined); +export const uriMultipleInputFeatureRequirement_classLoaderFalseTrueNoneNone = new _URILoader(MultipleInputFeatureRequirement_classLoader, false, true, undefined, undefined); export const StepInputExpressionRequirement_classLoader = new _EnumLoader((Object.keys(StepInputExpressionRequirement_class) as Array<keyof typeof StepInputExpressionRequirement_class>).map(key => StepInputExpressionRequirement_class[key])); -export const uriStepInputExpressionRequirement_classLoaderFalseTrueNone = new _URILoader(StepInputExpressionRequirement_classLoader, false, true, undefined); +export const uriStepInputExpressionRequirement_classLoaderFalseTrueNoneNone = new _URILoader(StepInputExpressionRequirement_classLoader, false, true, undefined, undefined); export const Operation_classLoader = new _EnumLoader((Object.keys(Operation_class) as Array<keyof typeof Operation_class>).map(key => Operation_class[key])); -export const uriOperation_classLoaderFalseTrueNone = new _URILoader(Operation_classLoader, false, true, undefined); +export const uriOperation_classLoaderFalseTrueNoneNone = new _URILoader(Operation_classLoader, false, true, undefined, undefined); export const arrayOfOperationInputParameterLoader = new _ArrayLoader([OperationInputParameterLoader]); export const idmapinputsarrayOfOperationInputParameterLoader = new _IdMapLoader(arrayOfOperationInputParameterLoader, 'id', 'type'); export const arrayOfOperationOutputParameterLoader = new _ArrayLoader([OperationOutputParameterLoader]); @@ -464,3 +505,5 @@ export const idmapoutputsarrayOfOperationOutputParameterLoader = new _IdMapLoade export const unionOfCommandLineToolLoaderOrExpressionToolLoaderOrWorkflowLoaderOrOperationLoader = new _UnionLoader([CommandLineToolLoader, ExpressionToolLoader, WorkflowLoader, OperationLoader]); export const arrayOfunionOfCommandLineToolLoaderOrExpressionToolLoaderOrWorkflowLoaderOrOperationLoader = new _ArrayLoader([unionOfCommandLineToolLoaderOrExpressionToolLoaderOrWorkflowLoaderOrOperationLoader]); export const unionOfCommandLineToolLoaderOrExpressionToolLoaderOrWorkflowLoaderOrOperationLoaderOrarrayOfunionOfCommandLineToolLoaderOrExpressionToolLoaderOrWorkflowLoaderOrOperationLoader = new _UnionLoader([CommandLineToolLoader, ExpressionToolLoader, WorkflowLoader, OperationLoader, arrayOfunionOfCommandLineToolLoaderOrExpressionToolLoaderOrWorkflowLoaderOrOperationLoader]); + +CWLObjectTypeLoader.addLoaders([booltype, inttype, inttype, floattype, floattype, strtype, FileLoader, DirectoryLoader, arrayOfunionOfundefinedtypeOrCWLObjectTypeLoader, mapOfunionOfundefinedtypeOrCWLObjectTypeLoader]); diff --git a/src/util/LoadingOptions.ts b/src/util/LoadingOptions.ts index ac484bc..ae1a5d9 100644 --- a/src/util/LoadingOptions.ts +++ b/src/util/LoadingOptions.ts @@ -5,23 +5,27 @@ export class LoadingOptions { idx: Dictionary<any> fileUri?: string namespaces?: Dictionary<string> + noLinkCheck?: boolean + container?: string schemas?: Dictionary<string> copyFrom?: LoadingOptions originalDoc: any vocab: Dictionary<string> rvocab: Dictionary<string> - constructor ({ fileUri, namespaces, schemas, originalDoc, copyFrom, fetcher }: {fileUri?: string, namespaces?: Dictionary<string>, schemas?: Dictionary<string>, originalDoc?: any, copyFrom?: LoadingOptions, fetcher?: Fetcher}) { + constructor ({ fileUri, namespaces, noLinkCheck, container, schemas, originalDoc, copyFrom, fetcher}: {fileUri?: string, namespaces?: Dictionary<string>, noLinkCheck?: boolean, container?: string, schemas?: Dictionary<string>, originalDoc?: any, copyFrom?: LoadingOptions, fetcher?: Fetcher}) { this.idx = {} this.fileUri = fileUri this.namespaces = namespaces + this.noLinkCheck = noLinkCheck + this.container = container this.schemas = schemas this.originalDoc = originalDoc if (copyFrom != null) { this.idx = copyFrom.idx if (fetcher === undefined) { - this.fetcher = copyFrom.fetcher + fetcher = copyFrom.fetcher } if (fileUri === undefined) { this.fileUri = copyFrom.fileUri @@ -29,6 +33,12 @@ export class LoadingOptions { if (namespaces === undefined) { this.namespaces = copyFrom.namespaces } + if (noLinkCheck === undefined) { + this.noLinkCheck = copyFrom.noLinkCheck + } + if (container === undefined) { + this.container = copyFrom.container + } if (schemas === undefined) { this.schemas = copyFrom.schemas } diff --git a/src/util/Vocabs.ts b/src/util/Vocabs.ts index ea4244d..b8fd025 100644 --- a/src/util/Vocabs.ts +++ b/src/util/Vocabs.ts @@ -1,6 +1,11 @@ export const VOCAB = { 'Any': 'https://w3id.org/cwl/salad#Any', 'ArraySchema': 'https://w3id.org/cwl/salad#ArraySchema', + 'CWLArraySchema': 'https://w3id.org/cwl/cwl#CWLArraySchema', + 'CWLInputFile': 'https://w3id.org/cwl/cwl#CWLInputFile', + 'CWLObjectType': 'https://w3id.org/cwl/cwl#CWLObjectType', + 'CWLRecordField': 'https://w3id.org/cwl/cwl#CWLRecordField', + 'CWLRecordSchema': 'https://w3id.org/cwl/cwl#CWLRecordSchema', 'CWLType': 'https://w3id.org/cwl/cwl#CWLType', 'CWLVersion': 'https://w3id.org/cwl/cwl#CWLVersion', 'CommandInputArraySchema': 'https://w3id.org/cwl/cwl#CommandInputArraySchema', @@ -49,6 +54,7 @@ export const VOCAB = { 'LoadContents': 'https://w3id.org/cwl/cwl#LoadContents', 'LoadListingEnum': 'https://w3id.org/cwl/cwl#LoadListingEnum', 'LoadListingRequirement': 'https://w3id.org/cwl/cwl#LoadListingRequirement', + 'MapSchema': 'https://w3id.org/cwl/salad#MapSchema', 'MultipleInputFeatureRequirement': 'https://w3id.org/cwl/cwl#MultipleInputFeatureRequirement', 'NetworkAccess': 'https://w3id.org/cwl/cwl#NetworkAccess', 'Operation': 'https://w3id.org/cwl/cwl#Operation', @@ -80,6 +86,7 @@ export const VOCAB = { 'StepInputExpressionRequirement': 'https://w3id.org/cwl/cwl#StepInputExpressionRequirement', 'SubworkflowFeatureRequirement': 'https://w3id.org/cwl/cwl#SubworkflowFeatureRequirement', 'ToolTimeLimit': 'https://w3id.org/cwl/cwl#ToolTimeLimit', + 'UnionSchema': 'https://w3id.org/cwl/salad#UnionSchema', 'WorkReuse': 'https://w3id.org/cwl/cwl#WorkReuse', 'Workflow': 'https://w3id.org/cwl/cwl#Workflow', 'WorkflowInputParameter': 'https://w3id.org/cwl/cwl#WorkflowInputParameter', @@ -109,6 +116,7 @@ export const VOCAB = { 'float': 'http://www.w3.org/2001/XMLSchema#float', 'int': 'http://www.w3.org/2001/XMLSchema#int', 'long': 'http://www.w3.org/2001/XMLSchema#long', + 'map': 'https://w3id.org/cwl/salad#map', 'merge_flattened': 'https://w3id.org/cwl/cwl#LinkMergeMethod/merge_flattened', 'merge_nested': 'https://w3id.org/cwl/cwl#LinkMergeMethod/merge_nested', 'nested_crossproduct': 'https://w3id.org/cwl/cwl#ScatterMethod/nested_crossproduct', @@ -121,6 +129,7 @@ export const VOCAB = { 'stdout': 'https://w3id.org/cwl/cwl#stdout', 'string': 'http://www.w3.org/2001/XMLSchema#string', 'the_only_non_null': 'https://w3id.org/cwl/cwl#PickValueMethod/the_only_non_null', + 'union': 'https://w3id.org/cwl/salad#union', 'v1.0': 'https://w3id.org/cwl/cwl#v1.0', 'v1.0.dev4': 'https://w3id.org/cwl/cwl#v1.0.dev4', 'v1.1': 'https://w3id.org/cwl/cwl#v1.1', @@ -135,6 +144,11 @@ export const VOCAB = { export const RVOCAB = { 'https://w3id.org/cwl/salad#Any': 'Any', 'https://w3id.org/cwl/salad#ArraySchema': 'ArraySchema', + 'https://w3id.org/cwl/cwl#CWLArraySchema': 'CWLArraySchema', + 'https://w3id.org/cwl/cwl#CWLInputFile': 'CWLInputFile', + 'https://w3id.org/cwl/cwl#CWLObjectType': 'CWLObjectType', + 'https://w3id.org/cwl/cwl#CWLRecordField': 'CWLRecordField', + 'https://w3id.org/cwl/cwl#CWLRecordSchema': 'CWLRecordSchema', 'https://w3id.org/cwl/cwl#CWLType': 'CWLType', 'https://w3id.org/cwl/cwl#CWLVersion': 'CWLVersion', 'https://w3id.org/cwl/cwl#CommandInputArraySchema': 'CommandInputArraySchema', @@ -183,6 +197,7 @@ export const RVOCAB = { 'https://w3id.org/cwl/cwl#LoadContents': 'LoadContents', 'https://w3id.org/cwl/cwl#LoadListingEnum': 'LoadListingEnum', 'https://w3id.org/cwl/cwl#LoadListingRequirement': 'LoadListingRequirement', + 'https://w3id.org/cwl/salad#MapSchema': 'MapSchema', 'https://w3id.org/cwl/cwl#MultipleInputFeatureRequirement': 'MultipleInputFeatureRequirement', 'https://w3id.org/cwl/cwl#NetworkAccess': 'NetworkAccess', 'https://w3id.org/cwl/cwl#Operation': 'Operation', @@ -214,6 +229,7 @@ export const RVOCAB = { 'https://w3id.org/cwl/cwl#StepInputExpressionRequirement': 'StepInputExpressionRequirement', 'https://w3id.org/cwl/cwl#SubworkflowFeatureRequirement': 'SubworkflowFeatureRequirement', 'https://w3id.org/cwl/cwl#ToolTimeLimit': 'ToolTimeLimit', + 'https://w3id.org/cwl/salad#UnionSchema': 'UnionSchema', 'https://w3id.org/cwl/cwl#WorkReuse': 'WorkReuse', 'https://w3id.org/cwl/cwl#Workflow': 'Workflow', 'https://w3id.org/cwl/cwl#WorkflowInputParameter': 'WorkflowInputParameter', @@ -243,6 +259,7 @@ export const RVOCAB = { 'http://www.w3.org/2001/XMLSchema#float': 'float', 'http://www.w3.org/2001/XMLSchema#int': 'int', 'http://www.w3.org/2001/XMLSchema#long': 'long', + 'https://w3id.org/cwl/salad#map': 'map', 'https://w3id.org/cwl/cwl#LinkMergeMethod/merge_flattened': 'merge_flattened', 'https://w3id.org/cwl/cwl#LinkMergeMethod/merge_nested': 'merge_nested', 'https://w3id.org/cwl/cwl#ScatterMethod/nested_crossproduct': 'nested_crossproduct', @@ -255,6 +272,7 @@ export const RVOCAB = { 'https://w3id.org/cwl/cwl#stdout': 'stdout', 'http://www.w3.org/2001/XMLSchema#string': 'string', 'https://w3id.org/cwl/cwl#PickValueMethod/the_only_non_null': 'the_only_non_null', + 'https://w3id.org/cwl/salad#union': 'union', 'https://w3id.org/cwl/cwl#v1.0': 'v1.0', 'https://w3id.org/cwl/cwl#v1.0.dev4': 'v1.0.dev4', 'https://w3id.org/cwl/cwl#v1.1': 'v1.1', diff --git a/src/util/loaders/ArrayLoader.ts b/src/util/loaders/ArrayLoader.ts index eea30c5..50b34a8 100644 --- a/src/util/loaders/ArrayLoader.ts +++ b/src/util/loaders/ArrayLoader.ts @@ -16,7 +16,8 @@ export class _ArrayLoader implements Loader { for (var val of doc) { try { const lf = await loadField(val, new _UnionLoader([this, ...this.items]), baseuri, loadingOptions) - if (Array.isArray(lf)) { + const flatten: boolean = loadingOptions.container != "@list" + if (flatten && Array.isArray(lf)) { r = r.concat(lf) } else { r.push(lf) diff --git a/src/util/loaders/MapLoader.ts b/src/util/loaders/MapLoader.ts new file mode 100644 index 0000000..454f9e9 --- /dev/null +++ b/src/util/loaders/MapLoader.ts @@ -0,0 +1,40 @@ +import {Loader, loadField, LoadingOptions, _UnionLoader, ValidationException, TypeGuards, Dictionary} from '../Internal' + +export class _MapLoader implements Loader { + values: Loader[] + container?: string + noLinkCheck?: boolean + + constructor (values: Loader[], container?: string, noLinkCheck?: boolean) { + this.values = values + this.container = container + this.noLinkCheck = noLinkCheck + } + + async load (doc: any, baseuri: string, loadingOptions: LoadingOptions, docRoot?: string): Promise<any> { + if (!TypeGuards.isDictionary(doc)) { + throw new ValidationException('Expected a dict') + } + if (this.container !== undefined || this.noLinkCheck !== undefined) { + loadingOptions = new LoadingOptions({ copyFrom: loadingOptions, container: this.container, noLinkCheck: this.noLinkCheck }) + } + let r : Dictionary = {} + const errors: ValidationException[] = [] + for (const key in doc) { + try { + r[key] = await loadField(doc[key], new _UnionLoader([this, ...this.values]), baseuri, loadingOptions) + } catch (e) { + if (e instanceof ValidationException) { + errors.push(e) + } else { + throw e + } + } + } + + if (errors.length > 0) { + throw new ValidationException('', errors) + } + return r + } +} diff --git a/src/util/loaders/RecordLoader.ts b/src/util/loaders/RecordLoader.ts index a9920f0..ecedba6 100644 --- a/src/util/loaders/RecordLoader.ts +++ b/src/util/loaders/RecordLoader.ts @@ -2,14 +2,22 @@ import { Saveable, Loader, LoadingOptions, TypeGuards, ValidationException } fro export class _RecordLoader implements Loader { creatorFunc: (doc: any, baseuri: string, loadingOptions: LoadingOptions, docRoot?: string) => Promise<Saveable> - constructor (createrFunc: (doc: any, baseuri: string, loadingOptions: LoadingOptions, docRoot?: string) => Promise<Saveable>) { + container?: string + noLinkCheck?: boolean + + constructor (createrFunc: (doc: any, baseuri: string, loadingOptions: LoadingOptions, docRoot?: string) => Promise<Saveable>, container?: string, noLinkCheck?: boolean) { this.creatorFunc = createrFunc + this.container = container + this.noLinkCheck = noLinkCheck } async load (doc: any, baseuri: string, loadingOptions: LoadingOptions, docRoot?: string): Promise<Saveable> { if (!TypeGuards.isDictionary(doc)) { throw new ValidationException('Expected a dict') } + if (this.container !== undefined || this.noLinkCheck !== undefined) { + loadingOptions = new LoadingOptions({ copyFrom: loadingOptions, container: this.container, noLinkCheck: this.noLinkCheck }) + } return await this.creatorFunc(doc, baseuri, loadingOptions, docRoot) } } diff --git a/src/util/loaders/UnionLoader.ts b/src/util/loaders/UnionLoader.ts index 1a1fb4c..76f26c2 100644 --- a/src/util/loaders/UnionLoader.ts +++ b/src/util/loaders/UnionLoader.ts @@ -7,6 +7,10 @@ export class _UnionLoader implements Loader { this.alternates = alternates } + addLoaders(loaders: Loader[]) { + this.alternates = this.alternates.concat(loaders); + } + async load (doc: any, baseuri: string, loadingOptions: LoadingOptions, docRoot?: string): Promise<Saveable> { const errors: ValidationException[] = [] for (const t of this.alternates) { diff --git a/src/util/loaders/UriLoader.ts b/src/util/loaders/UriLoader.ts index 3330874..6cc8302 100644 --- a/src/util/loaders/UriLoader.ts +++ b/src/util/loaders/UriLoader.ts @@ -5,15 +5,20 @@ export class _URILoader implements Loader { scopedID: boolean vocabTerm: boolean scopedRef?: number + noLinkCheck?: boolean - constructor (inner: Loader, scopedID: boolean, vocabTerm: boolean, scopedRef?: number) { + constructor (inner: Loader, scopedID: boolean, vocabTerm: boolean, scopedRef?: number, noLinkCheck?: boolean) { this.inner = inner this.scopedID = scopedID this.vocabTerm = vocabTerm this.scopedRef = scopedRef + this.noLinkCheck = noLinkCheck } async load (doc: any, baseuri: string, loadingOptions: LoadingOptions, docRoot?: string): Promise<any> { + if (this.noLinkCheck !== undefined) { + loadingOptions = new LoadingOptions({ copyFrom: loadingOptions, noLinkCheck: this.noLinkCheck }) + } if (Array.isArray(doc)) { const newDoc: any[] = [] for (const val of doc) {