UNPKG

@stencila/schema

Version:

Stencila schema and other specifications

1 lines 69 kB
{"version":3,"file":"index.mjs","sources":["../ts/types.ts","../ts/util/type-maps.ts","../ts/util/guards.ts","../ts/util/node-type.ts"],"sourcesContent":["/* eslint-disable */\n\n// This file was automatically generated by `typescript.ts`.\n// Do not modify it by hand. Instead, modify the source `.schema.yaml` files\n// in the `schema` directory and run `npm run build:ts` to regenerate it.\n\n// Remove properties from an Object if their values is undefined\nconst compact = <O extends object>(o: O): O =>\n Object.entries(o).reduce(\n (compactedO: O, [k, v]) =>\n v === undefined ? compactedO : { ...compactedO, [k]: v },\n {} as O\n )\n\nexport interface Types {\n ArrayValidator: ArrayValidator\n Article: Article\n AudioObject: AudioObject\n BlockContent: BlockContent\n BooleanValidator: BooleanValidator\n Brand: Brand\n Cite: Cite\n CiteGroup: CiteGroup\n Code: Code\n CodeBlock: CodeBlock\n CodeBlockTypes: CodeBlockTypes\n CodeChunk: CodeChunk\n CodeError: CodeError\n CodeExpression: CodeExpression\n CodeFragment: CodeFragment\n CodeFragmentTypes: CodeFragmentTypes\n CodeTypes: CodeTypes\n Collection: Collection\n ConstantValidator: ConstantValidator\n ContactPoint: ContactPoint\n CreativeWork: CreativeWork\n CreativeWorkTypes: CreativeWorkTypes\n Datatable: Datatable\n DatatableColumn: DatatableColumn\n Date: Date\n Delete: Delete\n Emphasis: Emphasis\n Entity: Entity\n EntityTypes: EntityTypes\n EnumValidator: EnumValidator\n Figure: Figure\n Function: Function\n Grant: Grant\n GrantTypes: GrantTypes\n Heading: Heading\n ImageObject: ImageObject\n Include: Include\n InlineContent: InlineContent\n IntegerValidator: IntegerValidator\n Link: Link\n List: List\n ListItem: ListItem\n Mark: Mark\n MarkTypes: MarkTypes\n Math: Math\n MathBlock: MathBlock\n MathFragment: MathFragment\n MathTypes: MathTypes\n MediaObject: MediaObject\n MediaObjectTypes: MediaObjectTypes\n MonetaryGrant: MonetaryGrant\n Node: Node\n NumberValidator: NumberValidator\n NumberValidatorTypes: NumberValidatorTypes\n Organization: Organization\n Paragraph: Paragraph\n Parameter: Parameter\n Periodical: Periodical\n Person: Person\n Product: Product\n PropertyValue: PropertyValue\n PublicationIssue: PublicationIssue\n PublicationVolume: PublicationVolume\n Quote: Quote\n QuoteBlock: QuoteBlock\n SoftwareApplication: SoftwareApplication\n SoftwareEnvironment: SoftwareEnvironment\n SoftwareSession: SoftwareSession\n SoftwareSourceCode: SoftwareSourceCode\n StringValidator: StringValidator\n Strong: Strong\n Subscript: Subscript\n Superscript: Superscript\n Table: Table\n TableCell: TableCell\n TableRow: TableRow\n ThematicBreak: ThematicBreak\n Thing: Thing\n ThingTypes: ThingTypes\n TupleValidator: TupleValidator\n ValidatorTypes: ValidatorTypes\n Variable: Variable\n VariableTypes: VariableTypes\n VideoObject: VideoObject\n VolumeMount: VolumeMount\n}\n\n/**\n * The most simple compound (ie. non-atomic like `number`, `string` etc) type.\n */\nexport interface Entity {\n type:\n | 'Entity'\n | 'ArrayValidator'\n | 'Article'\n | 'AudioObject'\n | 'BooleanValidator'\n | 'Brand'\n | 'Cite'\n | 'CiteGroup'\n | 'Code'\n | 'CodeBlock'\n | 'CodeChunk'\n | 'CodeError'\n | 'CodeExpression'\n | 'CodeFragment'\n | 'Collection'\n | 'ConstantValidator'\n | 'ContactPoint'\n | 'CreativeWork'\n | 'Datatable'\n | 'DatatableColumn'\n | 'Date'\n | 'Delete'\n | 'Emphasis'\n | 'EnumValidator'\n | 'Figure'\n | 'Function'\n | 'Grant'\n | 'Heading'\n | 'ImageObject'\n | 'Include'\n | 'IntegerValidator'\n | 'Link'\n | 'List'\n | 'ListItem'\n | 'Mark'\n | 'Math'\n | 'MathBlock'\n | 'MathFragment'\n | 'MediaObject'\n | 'MonetaryGrant'\n | 'NumberValidator'\n | 'Organization'\n | 'Paragraph'\n | 'Parameter'\n | 'Periodical'\n | 'Person'\n | 'Product'\n | 'PropertyValue'\n | 'PublicationIssue'\n | 'PublicationVolume'\n | 'Quote'\n | 'QuoteBlock'\n | 'SoftwareApplication'\n | 'SoftwareEnvironment'\n | 'SoftwareSession'\n | 'SoftwareSourceCode'\n | 'StringValidator'\n | 'Strong'\n | 'Subscript'\n | 'Superscript'\n | 'Table'\n | 'TableCell'\n | 'TableRow'\n | 'ThematicBreak'\n | 'Thing'\n | 'TupleValidator'\n | 'Variable'\n | 'VideoObject'\n | 'VolumeMount'\n id?: string\n meta?: { [key: string]: any }\n}\n\n/**\n * Create a `Entity` node\n * @param props Object containing Entity schema properties as key/value pairs\n * @returns {Entity} Entity schema node\n */\nexport const entity = (props: Omit<Entity, 'type'> = {}): Entity => ({\n ...compact(props),\n type: 'Entity'\n})\n\n/**\n * A validator specifying constraints on an array node.\n */\nexport interface ArrayValidator extends Entity {\n type: 'ArrayValidator'\n contains?: ValidatorTypes\n items?: ValidatorTypes\n maxItems?: number\n minItems?: number\n uniqueItems?: boolean\n}\n\n/**\n * Create a `ArrayValidator` node\n * @param props Object containing ArrayValidator schema properties as key/value pairs\n * @returns {ArrayValidator} ArrayValidator schema node\n */\nexport const arrayValidator = (\n props: Omit<ArrayValidator, 'type'> = {}\n): ArrayValidator => ({\n ...compact(props),\n type: 'ArrayValidator'\n})\n\n/**\n * A schema specifying that a node must be a boolean value.\n */\nexport interface BooleanValidator extends Entity {\n type: 'BooleanValidator'\n}\n\n/**\n * Create a `BooleanValidator` node\n * @param props Object containing BooleanValidator schema properties as key/value pairs\n * @returns {BooleanValidator} BooleanValidator schema node\n */\nexport const booleanValidator = (\n props: Omit<BooleanValidator, 'type'> = {}\n): BooleanValidator => ({\n ...compact(props),\n type: 'BooleanValidator'\n})\n\n/**\n * A reference to a CreativeWork that is cited in another CreativeWork.\n */\nexport interface Cite extends Entity {\n type: 'Cite'\n target: string\n citationMode?: 'normal' | 'suppressAuthor'\n content?: Array<InlineContent>\n pageEnd?: string | number\n pageStart?: string | number\n pagination?: string\n prefix?: string\n suffix?: string\n}\n\n/**\n * Create a `Cite` node\n * @param props Object containing Cite schema properties as key/value pairs\n * @returns {Cite} Cite schema node\n */\nexport const cite = (props: Omit<Cite, 'type'>): Cite => ({\n ...compact(props),\n type: 'Cite'\n})\n\n/**\n * A group of `Cite` nodes\n */\nexport interface CiteGroup extends Entity {\n type: 'CiteGroup'\n items: Array<Cite>\n}\n\n/**\n * Create a `CiteGroup` node\n * @param props Object containing CiteGroup schema properties as key/value pairs\n * @returns {CiteGroup} CiteGroup schema node\n */\nexport const citeGroup = (props: Omit<CiteGroup, 'type'>): CiteGroup => ({\n ...compact(props),\n type: 'CiteGroup'\n})\n\n/**\n * Base type for code nodes e.g. `CodeBlock`, `CodeExpression`.\n */\nexport interface Code extends Entity {\n type: 'Code' | 'CodeBlock' | 'CodeChunk' | 'CodeExpression' | 'CodeFragment'\n text: string\n format?: string\n programmingLanguage?: string\n}\n\n/**\n * Create a `Code` node\n * @param props Object containing Code schema properties as key/value pairs\n * @returns {Code} Code schema node\n */\nexport const code = (props: Omit<Code, 'type'>): Code => ({\n ...compact(props),\n type: 'Code'\n})\n\n/**\n * A code block.\n */\nexport interface CodeBlock extends Code {\n type: 'CodeBlock' | 'CodeChunk'\n exportFrom?: string\n importTo?: string\n}\n\n/**\n * Create a `CodeBlock` node\n * @param props Object containing CodeBlock schema properties as key/value pairs\n * @returns {CodeBlock} CodeBlock schema node\n */\nexport const codeBlock = (props: Omit<CodeBlock, 'type'>): CodeBlock => ({\n ...compact(props),\n type: 'CodeBlock'\n})\n\n/**\n * A executable chunk of code.\n */\nexport interface CodeChunk extends CodeBlock {\n type: 'CodeChunk'\n alters?: Array<string>\n assigns?: Array<string | Variable>\n declares?: Array<string | Variable | Function>\n duration?: number\n errors?: Array<CodeError>\n imports?: Array<string | SoftwareSourceCode | SoftwareApplication>\n outputs?: Array<Node>\n reads?: Array<string>\n uses?: Array<string | Variable>\n}\n\n/**\n * Create a `CodeChunk` node\n * @param props Object containing CodeChunk schema properties as key/value pairs\n * @returns {CodeChunk} CodeChunk schema node\n */\nexport const codeChunk = (props: Omit<CodeChunk, 'type'>): CodeChunk => ({\n ...compact(props),\n type: 'CodeChunk'\n})\n\n/**\n * Inline code.\n */\nexport interface CodeFragment extends Code {\n type: 'CodeFragment' | 'CodeExpression'\n}\n\n/**\n * Create a `CodeFragment` node\n * @param props Object containing CodeFragment schema properties as key/value pairs\n * @returns {CodeFragment} CodeFragment schema node\n */\nexport const codeFragment = (\n props: Omit<CodeFragment, 'type'>\n): CodeFragment => ({\n ...compact(props),\n type: 'CodeFragment'\n})\n\n/**\n * An expression defined in programming language source code.\n */\nexport interface CodeExpression extends CodeFragment {\n type: 'CodeExpression'\n errors?: Array<CodeError>\n output?: Node\n}\n\n/**\n * Create a `CodeExpression` node\n * @param props Object containing CodeExpression schema properties as key/value pairs\n * @returns {CodeExpression} CodeExpression schema node\n */\nexport const codeExpression = (\n props: Omit<CodeExpression, 'type'>\n): CodeExpression => ({\n ...compact(props),\n type: 'CodeExpression'\n})\n\n/**\n * An error that occurred when parsing, compiling or executing a Code node.\n */\nexport interface CodeError extends Entity {\n type: 'CodeError'\n errorMessage?: string\n errorType?: string\n stackTrace?: string\n}\n\n/**\n * Create a `CodeError` node\n * @param props Object containing CodeError schema properties as key/value pairs\n * @returns {CodeError} CodeError schema node\n */\nexport const codeError = (props: Omit<CodeError, 'type'> = {}): CodeError => ({\n ...compact(props),\n type: 'CodeError'\n})\n\n/**\n * A validator specifying a constant value that a node must have.\n */\nexport interface ConstantValidator extends Entity {\n type: 'ConstantValidator'\n value?: Node\n}\n\n/**\n * Create a `ConstantValidator` node\n * @param props Object containing ConstantValidator schema properties as key/value pairs\n * @returns {ConstantValidator} ConstantValidator schema node\n */\nexport const constantValidator = (\n props: Omit<ConstantValidator, 'type'> = {}\n): ConstantValidator => ({\n ...compact(props),\n type: 'ConstantValidator'\n})\n\n/**\n * A date encoded as a ISO 8601 string.\n */\nexport interface Date extends Entity {\n type: 'Date'\n value: string\n}\n\n/**\n * Create a `Date` node\n * @param props Object containing Date schema properties as key/value pairs\n * @returns {Date} Date schema node\n */\nexport const date = (props: Omit<Date, 'type'>): Date => ({\n ...compact(props),\n type: 'Date'\n})\n\n/**\n * A base class for nodes that mark some other inline content\n * in some way (e.g. as being emphasised, or quoted).\n */\nexport interface Mark extends Entity {\n type:\n | 'Mark'\n | 'Delete'\n | 'Emphasis'\n | 'Quote'\n | 'Strong'\n | 'Subscript'\n | 'Superscript'\n content: Array<InlineContent>\n}\n\n/**\n * Create a `Mark` node\n * @param props Object containing Mark schema properties as key/value pairs\n * @returns {Mark} Mark schema node\n */\nexport const mark = (props: Omit<Mark, 'type'>): Mark => ({\n ...compact(props),\n type: 'Mark'\n})\n\n/**\n * Content that is marked for deletion\n */\nexport interface Delete extends Mark {\n type: 'Delete'\n}\n\n/**\n * Create a `Delete` node\n * @param props Object containing Delete schema properties as key/value pairs\n * @returns {Delete} Delete schema node\n */\nexport const del = (props: Omit<Delete, 'type'>): Delete => ({\n ...compact(props),\n type: 'Delete'\n})\n\n/**\n * Emphasised content.\n */\nexport interface Emphasis extends Mark {\n type: 'Emphasis'\n}\n\n/**\n * Create a `Emphasis` node\n * @param props Object containing Emphasis schema properties as key/value pairs\n * @returns {Emphasis} Emphasis schema node\n */\nexport const emphasis = (props: Omit<Emphasis, 'type'>): Emphasis => ({\n ...compact(props),\n type: 'Emphasis'\n})\n\n/**\n * The most generic type of item.\n */\nexport interface Thing extends Entity {\n type:\n | 'Thing'\n | 'Article'\n | 'AudioObject'\n | 'Brand'\n | 'Collection'\n | 'ContactPoint'\n | 'CreativeWork'\n | 'Datatable'\n | 'DatatableColumn'\n | 'Figure'\n | 'Grant'\n | 'ImageObject'\n | 'MediaObject'\n | 'MonetaryGrant'\n | 'Organization'\n | 'Periodical'\n | 'Person'\n | 'Product'\n | 'PropertyValue'\n | 'PublicationIssue'\n | 'PublicationVolume'\n | 'SoftwareApplication'\n | 'SoftwareEnvironment'\n | 'SoftwareSession'\n | 'SoftwareSourceCode'\n | 'Table'\n | 'VideoObject'\n | 'VolumeMount'\n alternateNames?: Array<string>\n description?: string | Array<Node>\n identifiers?: Array<string | PropertyValue>\n name?: string\n url?: string\n}\n\n/**\n * Create a `Thing` node\n * @param props Object containing Thing schema properties as key/value pairs\n * @returns {Thing} Thing schema node\n */\nexport const thing = (props: Omit<Thing, 'type'> = {}): Thing => ({\n ...compact(props),\n type: 'Thing'\n})\n\n/**\n * A brand used by an organization or person for labeling a product,\n * product group, or similar.\n */\nexport interface Brand extends Thing {\n type: 'Brand'\n name: string\n logo?: string | ImageObject\n reviews?: Array<string>\n}\n\n/**\n * Create a `Brand` node\n * @param props Object containing Brand schema properties as key/value pairs\n * @returns {Brand} Brand schema node\n */\nexport const brand = (props: Omit<Brand, 'type'>): Brand => ({\n ...compact(props),\n type: 'Brand'\n})\n\n/**\n * A contact point, for example, a R&D department.\n */\nexport interface ContactPoint extends Thing {\n type: 'ContactPoint'\n availableLanguages?: Array<string>\n emails?: Array<string>\n telephoneNumbers?: Array<string>\n}\n\n/**\n * Create a `ContactPoint` node\n * @param props Object containing ContactPoint schema properties as key/value pairs\n * @returns {ContactPoint} ContactPoint schema node\n */\nexport const contactPoint = (\n props: Omit<ContactPoint, 'type'> = {}\n): ContactPoint => ({\n ...compact(props),\n type: 'ContactPoint'\n})\n\n/**\n * A creative work, including books, movies, photographs, software programs, etc.\n */\nexport interface CreativeWork extends Thing {\n type:\n | 'CreativeWork'\n | 'Article'\n | 'AudioObject'\n | 'Collection'\n | 'Datatable'\n | 'Figure'\n | 'ImageObject'\n | 'MediaObject'\n | 'Periodical'\n | 'PublicationIssue'\n | 'PublicationVolume'\n | 'SoftwareApplication'\n | 'SoftwareSourceCode'\n | 'Table'\n | 'VideoObject'\n authors?: Array<Person | Organization>\n content?: Array<Node>\n dateAccepted?: Date | string\n dateCreated?: Date | string\n dateModified?: Date | string\n datePublished?: Date | string\n dateReceived?: Date | string\n editors?: Array<Person>\n fundedBy?: Array<Grant | MonetaryGrant>\n funders?: Array<Person | Organization>\n isPartOf?: CreativeWorkTypes\n keywords?: Array<string>\n licenses?: Array<string | CreativeWorkTypes>\n parts?: Array<CreativeWorkTypes>\n publisher?: Person | Organization\n references?: Array<string | CreativeWorkTypes>\n text?: string\n title?: string | Array<Node>\n version?: string | number\n}\n\n/**\n * Create a `CreativeWork` node\n * @param props Object containing CreativeWork schema properties as key/value pairs\n * @returns {CreativeWork} CreativeWork schema node\n */\nexport const creativeWork = (\n props: Omit<CreativeWork, 'type'> = {}\n): CreativeWork => ({\n ...compact(props),\n type: 'CreativeWork'\n})\n\n/**\n * An article, including news and scholarly articles.\n */\nexport interface Article extends CreativeWork {\n type: 'Article'\n}\n\n/**\n * Create a `Article` node\n * @param props Object containing Article schema properties as key/value pairs\n * @returns {Article} Article schema node\n */\nexport const article = (props: Omit<Article, 'type'> = {}): Article => ({\n ...compact(props),\n type: 'Article'\n})\n\n/**\n * A created collection of CreativeWorks or other artefacts.\n */\nexport interface Collection extends CreativeWork {\n type: 'Collection'\n parts: Array<CreativeWorkTypes>\n}\n\n/**\n * Create a `Collection` node\n * @param props Object containing Collection schema properties as key/value pairs\n * @returns {Collection} Collection schema node\n */\nexport const collection = (props: Omit<Collection, 'type'>): Collection => ({\n ...compact(props),\n type: 'Collection'\n})\n\n/**\n * A table of data.\n */\nexport interface Datatable extends CreativeWork {\n type: 'Datatable'\n columns: Array<DatatableColumn>\n}\n\n/**\n * Create a `Datatable` node\n * @param props Object containing Datatable schema properties as key/value pairs\n * @returns {Datatable} Datatable schema node\n */\nexport const datatable = (props: Omit<Datatable, 'type'>): Datatable => ({\n ...compact(props),\n type: 'Datatable'\n})\n\n/**\n * A media object, such as an image, video, or audio object embedded in a web page or a\n * downloadable dataset.\n */\nexport interface MediaObject extends CreativeWork {\n type: 'MediaObject' | 'AudioObject' | 'ImageObject' | 'VideoObject'\n contentUrl: string\n bitrate?: number\n contentSize?: number\n embedUrl?: string\n format?: string\n}\n\n/**\n * Create a `MediaObject` node\n * @param props Object containing MediaObject schema properties as key/value pairs\n * @returns {MediaObject} MediaObject schema node\n */\nexport const mediaObject = (props: Omit<MediaObject, 'type'>): MediaObject => ({\n ...compact(props),\n type: 'MediaObject'\n})\n\n/**\n * An audio file\n */\nexport interface AudioObject extends MediaObject {\n type: 'AudioObject'\n caption?: string\n transcript?: string\n}\n\n/**\n * Create a `AudioObject` node\n * @param props Object containing AudioObject schema properties as key/value pairs\n * @returns {AudioObject} AudioObject schema node\n */\nexport const audioObject = (props: Omit<AudioObject, 'type'>): AudioObject => ({\n ...compact(props),\n type: 'AudioObject'\n})\n\n/**\n * A column of data within a Datatable.\n */\nexport interface DatatableColumn extends Thing {\n type: 'DatatableColumn'\n name: string\n values: Array<any>\n validator?: ArrayValidator\n}\n\n/**\n * Create a `DatatableColumn` node\n * @param props Object containing DatatableColumn schema properties as key/value pairs\n * @returns {DatatableColumn} DatatableColumn schema node\n */\nexport const datatableColumn = (\n props: Omit<DatatableColumn, 'type'>\n): DatatableColumn => ({\n ...compact(props),\n type: 'DatatableColumn'\n})\n\n/**\n * A schema specifying that a node must be one of several values.\n */\nexport interface EnumValidator extends Entity {\n type: 'EnumValidator'\n values?: Array<Node>\n}\n\n/**\n * Create a `EnumValidator` node\n * @param props Object containing EnumValidator schema properties as key/value pairs\n * @returns {EnumValidator} EnumValidator schema node\n */\nexport const enumValidator = (\n props: Omit<EnumValidator, 'type'> = {}\n): EnumValidator => ({\n ...compact(props),\n type: 'EnumValidator'\n})\n\n/**\n * Encapsulates one or more images, videos, tables, etc, and provides captions and labels for them.\n */\nexport interface Figure extends CreativeWork {\n type: 'Figure'\n caption?: Array<Node>\n label?: string\n}\n\n/**\n * Create a `Figure` node\n * @param props Object containing Figure schema properties as key/value pairs\n * @returns {Figure} Figure schema node\n */\nexport const figure = (props: Omit<Figure, 'type'> = {}): Figure => ({\n ...compact(props),\n type: 'Figure'\n})\n\n/**\n * A function with a name, which might take Parameters and return a value of a certain type.\n */\nexport interface Function extends Entity {\n type: 'Function'\n name?: string\n parameters?: Array<Parameter>\n returns?: ValidatorTypes\n}\n\n/**\n * Create a `Function` node\n * @param props Object containing Function schema properties as key/value pairs\n * @returns {Function} Function schema node\n */\nexport const function_ = (props: Omit<Function, 'type'> = {}): Function => ({\n ...compact(props),\n type: 'Function'\n})\n\n/**\n * A grant, typically financial or otherwise quantifiable, of resources.\n */\nexport interface Grant extends Thing {\n type: 'Grant' | 'MonetaryGrant'\n fundedItems?: Array<Thing>\n sponsors?: Array<Person | Organization>\n}\n\n/**\n * Create a `Grant` node\n * @param props Object containing Grant schema properties as key/value pairs\n * @returns {Grant} Grant schema node\n */\nexport const grant = (props: Omit<Grant, 'type'> = {}): Grant => ({\n ...compact(props),\n type: 'Grant'\n})\n\n/**\n * Heading\n */\nexport interface Heading extends Entity {\n type: 'Heading'\n content: Array<InlineContent>\n depth?: number\n}\n\n/**\n * Create a `Heading` node\n * @param props Object containing Heading schema properties as key/value pairs\n * @returns {Heading} Heading schema node\n */\nexport const heading = (props: Omit<Heading, 'type'>): Heading => ({\n ...compact(props),\n type: 'Heading'\n})\n\n/**\n * An image file.\n */\nexport interface ImageObject extends MediaObject {\n type: 'ImageObject'\n caption?: string\n thumbnail?: ImageObject\n}\n\n/**\n * Create a `ImageObject` node\n * @param props Object containing ImageObject schema properties as key/value pairs\n * @returns {ImageObject} ImageObject schema node\n */\nexport const imageObject = (props: Omit<ImageObject, 'type'>): ImageObject => ({\n ...compact(props),\n type: 'ImageObject'\n})\n\n/**\n * A directive to include content from an external source (e.g. file, URL) or content.\n */\nexport interface Include extends Entity {\n type: 'Include'\n source: string\n content?: Array<BlockContent>\n format?: string\n}\n\n/**\n * Create a `Include` node\n * @param props Object containing Include schema properties as key/value pairs\n * @returns {Include} Include schema node\n */\nexport const include = (props: Omit<Include, 'type'>): Include => ({\n ...compact(props),\n type: 'Include'\n})\n\n/**\n * A validator specifying the constraints on a numeric node.\n */\nexport interface NumberValidator extends Entity {\n type: 'NumberValidator' | 'IntegerValidator'\n exclusiveMaximum?: number\n exclusiveMinimum?: number\n maximum?: number\n minimum?: number\n multipleOf?: number\n}\n\n/**\n * Create a `NumberValidator` node\n * @param props Object containing NumberValidator schema properties as key/value pairs\n * @returns {NumberValidator} NumberValidator schema node\n */\nexport const numberValidator = (\n props: Omit<NumberValidator, 'type'> = {}\n): NumberValidator => ({\n ...compact(props),\n type: 'NumberValidator'\n})\n\n/**\n * A validator specifying the constraints on an integer node.\n */\nexport interface IntegerValidator extends NumberValidator {\n type: 'IntegerValidator'\n}\n\n/**\n * Create a `IntegerValidator` node\n * @param props Object containing IntegerValidator schema properties as key/value pairs\n * @returns {IntegerValidator} IntegerValidator schema node\n */\nexport const integerValidator = (\n props: Omit<IntegerValidator, 'type'> = {}\n): IntegerValidator => ({\n ...compact(props),\n type: 'IntegerValidator'\n})\n\n/**\n * A hyperlink to other pages, sections within the same document, resources, or any URL.\n */\nexport interface Link extends Entity {\n type: 'Link'\n content: Array<InlineContent>\n target: string\n exportFrom?: string\n importTo?: string\n relation?: string\n title?: string\n}\n\n/**\n * Create a `Link` node\n * @param props Object containing Link schema properties as key/value pairs\n * @returns {Link} Link schema node\n */\nexport const link = (props: Omit<Link, 'type'>): Link => ({\n ...compact(props),\n type: 'Link'\n})\n\n/**\n * A list of items.\n */\nexport interface List extends Entity {\n type: 'List'\n items: Array<ListItem>\n order?: 'ascending' | 'descending' | 'unordered'\n}\n\n/**\n * Create a `List` node\n * @param props Object containing List schema properties as key/value pairs\n * @returns {List} List schema node\n */\nexport const list = (props: Omit<List, 'type'>): List => ({\n ...compact(props),\n type: 'List'\n})\n\n/**\n * A single item in a list.\n */\nexport interface ListItem extends Entity {\n type: 'ListItem'\n content: Array<Node>\n checked?: boolean\n}\n\n/**\n * Create a `ListItem` node\n * @param props Object containing ListItem schema properties as key/value pairs\n * @returns {ListItem} ListItem schema node\n */\nexport const listItem = (props: Omit<ListItem, 'type'>): ListItem => ({\n ...compact(props),\n type: 'ListItem'\n})\n\n/**\n * A mathematical variable or equation.\n */\nexport interface Math extends Entity {\n type: 'Math' | 'MathBlock' | 'MathFragment'\n text: string\n errors?: Array<string>\n mathLanguage?: string\n}\n\n/**\n * Create a `Math` node\n * @param props Object containing Math schema properties as key/value pairs\n * @returns {Math} Math schema node\n */\nexport const math = (props: Omit<Math, 'type'>): Math => ({\n ...compact(props),\n type: 'Math'\n})\n\n/**\n * A block of math, e.g an equation, to be treated as block content.\n */\nexport interface MathBlock extends Math {\n type: 'MathBlock'\n}\n\n/**\n * Create a `MathBlock` node\n * @param props Object containing MathBlock schema properties as key/value pairs\n * @returns {MathBlock} MathBlock schema node\n */\nexport const mathBlock = (props: Omit<MathBlock, 'type'>): MathBlock => ({\n ...compact(props),\n type: 'MathBlock'\n})\n\n/**\n * A fragment of math, e.g a variable name, to be treated as inline content.\n */\nexport interface MathFragment extends Math {\n type: 'MathFragment'\n}\n\n/**\n * Create a `MathFragment` node\n * @param props Object containing MathFragment schema properties as key/value pairs\n * @returns {MathFragment} MathFragment schema node\n */\nexport const mathFragment = (\n props: Omit<MathFragment, 'type'>\n): MathFragment => ({\n ...compact(props),\n type: 'MathFragment'\n})\n\n/**\n * A monetary grant.\n */\nexport interface MonetaryGrant extends Grant {\n type: 'MonetaryGrant'\n amounts?: number\n funders?: Array<Person | Organization>\n}\n\n/**\n * Create a `MonetaryGrant` node\n * @param props Object containing MonetaryGrant schema properties as key/value pairs\n * @returns {MonetaryGrant} MonetaryGrant schema node\n */\nexport const monetaryGrant = (\n props: Omit<MonetaryGrant, 'type'> = {}\n): MonetaryGrant => ({\n ...compact(props),\n type: 'MonetaryGrant'\n})\n\n/**\n * An organization such as a school, NGO, corporation, club, etc.\n */\nexport interface Organization extends Thing {\n type: 'Organization'\n address?: string\n brands?: Array<Brand>\n contactPoints?: Array<ContactPoint>\n departments?: Array<Organization>\n funders?: Array<Organization | Person>\n legalName?: string\n logo?: string | ImageObject\n parentOrganization?: Organization\n}\n\n/**\n * Create a `Organization` node\n * @param props Object containing Organization schema properties as key/value pairs\n * @returns {Organization} Organization schema node\n */\nexport const organization = (\n props: Omit<Organization, 'type'> = {}\n): Organization => ({\n ...compact(props),\n type: 'Organization'\n})\n\n/**\n * Paragraph\n */\nexport interface Paragraph extends Entity {\n type: 'Paragraph'\n content: Array<InlineContent>\n}\n\n/**\n * Create a `Paragraph` node\n * @param props Object containing Paragraph schema properties as key/value pairs\n * @returns {Paragraph} Paragraph schema node\n */\nexport const paragraph = (props: Omit<Paragraph, 'type'>): Paragraph => ({\n ...compact(props),\n type: 'Paragraph'\n})\n\n/**\n * A variable representing a name / value pair.\n */\nexport interface Variable extends Entity {\n type: 'Variable' | 'Parameter'\n name: string\n readonly?: boolean\n validator?: ValidatorTypes\n value?: Node\n}\n\n/**\n * Create a `Variable` node\n * @param props Object containing Variable schema properties as key/value pairs\n * @returns {Variable} Variable schema node\n */\nexport const variable = (props: Omit<Variable, 'type'>): Variable => ({\n ...compact(props),\n type: 'Variable'\n})\n\n/**\n * A parameter that can be set and used in evaluated code.\n */\nexport interface Parameter extends Variable {\n type: 'Parameter'\n default?: Node\n extends?: boolean\n repeats?: boolean\n required?: boolean\n}\n\n/**\n * Create a `Parameter` node\n * @param props Object containing Parameter schema properties as key/value pairs\n * @returns {Parameter} Parameter schema node\n */\nexport const parameter = (props: Omit<Parameter, 'type'>): Parameter => ({\n ...compact(props),\n type: 'Parameter'\n})\n\n/**\n * A periodical publication.\n */\nexport interface Periodical extends CreativeWork {\n type: 'Periodical'\n dateEnd?: Date | string\n dateStart?: Date | string\n issns?: Array<string>\n}\n\n/**\n * Create a `Periodical` node\n * @param props Object containing Periodical schema properties as key/value pairs\n * @returns {Periodical} Periodical schema node\n */\nexport const periodical = (\n props: Omit<Periodical, 'type'> = {}\n): Periodical => ({\n ...compact(props),\n type: 'Periodical'\n})\n\n/**\n * A person (alive, dead, undead, or fictional).\n */\nexport interface Person extends Thing {\n type: 'Person'\n address?: string\n affiliations?: Array<Organization>\n emails?: Array<string>\n familyNames?: Array<string>\n funders?: Array<Organization | Person>\n givenNames?: Array<string>\n honorificPrefix?: string\n honorificSuffix?: string\n jobTitle?: string\n memberOf?: Array<Organization>\n telephoneNumbers?: Array<string>\n}\n\n/**\n * Create a `Person` node\n * @param props Object containing Person schema properties as key/value pairs\n * @returns {Person} Person schema node\n */\nexport const person = (props: Omit<Person, 'type'> = {}): Person => ({\n ...compact(props),\n type: 'Person'\n})\n\n/**\n * Any offered product or service. For example, a pair of shoes;\n * a haircut; or an episode of a TV show streamed online.\n */\nexport interface Product extends Thing {\n type: 'Product'\n brands?: Array<Brand>\n logo?: string | ImageObject\n productID?: string\n}\n\n/**\n * Create a `Product` node\n * @param props Object containing Product schema properties as key/value pairs\n * @returns {Product} Product schema node\n */\nexport const product = (props: Omit<Product, 'type'> = {}): Product => ({\n ...compact(props),\n type: 'Product'\n})\n\n/**\n * A property-value pair.\n */\nexport interface PropertyValue extends Thing {\n type: 'PropertyValue'\n value: Node\n propertyID?: string\n}\n\n/**\n * Create a `PropertyValue` node\n * @param props Object containing PropertyValue schema properties as key/value pairs\n * @returns {PropertyValue} PropertyValue schema node\n */\nexport const propertyValue = (\n props: Omit<PropertyValue, 'type'>\n): PropertyValue => ({\n ...compact(props),\n type: 'PropertyValue'\n})\n\n/**\n * A part of a successively published publication such as a periodical or publication\n * volume, often numbered.\n */\nexport interface PublicationIssue extends CreativeWork {\n type: 'PublicationIssue'\n issueNumber?: string | number\n pageEnd?: string | number\n pageStart?: string | number\n pagination?: string\n}\n\n/**\n * Create a `PublicationIssue` node\n * @param props Object containing PublicationIssue schema properties as key/value pairs\n * @returns {PublicationIssue} PublicationIssue schema node\n */\nexport const publicationIssue = (\n props: Omit<PublicationIssue, 'type'> = {}\n): PublicationIssue => ({\n ...compact(props),\n type: 'PublicationIssue'\n})\n\n/**\n * A part of a successively published publication such as a periodical or multi-volume work.\n */\nexport interface PublicationVolume extends CreativeWork {\n type: 'PublicationVolume'\n pageEnd?: string | number\n pageStart?: string | number\n pagination?: string\n volumeNumber?: string | number\n}\n\n/**\n * Create a `PublicationVolume` node\n * @param props Object containing PublicationVolume schema properties as key/value pairs\n * @returns {PublicationVolume} PublicationVolume schema node\n */\nexport const publicationVolume = (\n props: Omit<PublicationVolume, 'type'> = {}\n): PublicationVolume => ({\n ...compact(props),\n type: 'PublicationVolume'\n})\n\n/**\n * Inline, quoted content.\n */\nexport interface Quote extends Mark {\n type: 'Quote'\n cite?: Cite | string\n}\n\n/**\n * Create a `Quote` node\n * @param props Object containing Quote schema properties as key/value pairs\n * @returns {Quote} Quote schema node\n */\nexport const quote = (props: Omit<Quote, 'type'>): Quote => ({\n ...compact(props),\n type: 'Quote'\n})\n\n/**\n * A section quoted from somewhere else.\n */\nexport interface QuoteBlock extends Entity {\n type: 'QuoteBlock'\n content: Array<BlockContent>\n cite?: Cite | string\n}\n\n/**\n * Create a `QuoteBlock` node\n * @param props Object containing QuoteBlock schema properties as key/value pairs\n * @returns {QuoteBlock} QuoteBlock schema node\n */\nexport const quoteBlock = (props: Omit<QuoteBlock, 'type'>): QuoteBlock => ({\n ...compact(props),\n type: 'QuoteBlock'\n})\n\n/**\n * A software application.\n */\nexport interface SoftwareApplication extends CreativeWork {\n type: 'SoftwareApplication'\n softwareRequirements?: Array<SoftwareApplication>\n softwareVersion?: string\n}\n\n/**\n * Create a `SoftwareApplication` node\n * @param props Object containing SoftwareApplication schema properties as key/value pairs\n * @returns {SoftwareApplication} SoftwareApplication schema node\n */\nexport const softwareApplication = (\n props: Omit<SoftwareApplication, 'type'> = {}\n): SoftwareApplication => ({\n ...compact(props),\n type: 'SoftwareApplication'\n})\n\n/**\n * A computational environment.\n */\nexport interface SoftwareEnvironment extends Thing {\n type: 'SoftwareEnvironment'\n name: string\n adds?: Array<SoftwareSourceCode>\n extends?: Array<SoftwareEnvironment>\n removes?: Array<SoftwareSourceCode>\n}\n\n/**\n * Create a `SoftwareEnvironment` node\n * @param props Object containing SoftwareEnvironment schema properties as key/value pairs\n * @returns {SoftwareEnvironment} SoftwareEnvironment schema node\n */\nexport const softwareEnvironment = (\n props: Omit<SoftwareEnvironment, 'type'>\n): SoftwareEnvironment => ({\n ...compact(props),\n type: 'SoftwareEnvironment'\n})\n\n/**\n * Definition of a compute session, including its software and compute resource\n * requirements and status.\n */\nexport interface SoftwareSession extends Thing {\n type: 'SoftwareSession'\n clientsLimit?: number\n clientsRequest?: number\n cpuLimit?: number\n cpuRequest?: number\n dateEnd?: Date | string\n dateStart?: Date | string\n durationLimit?: number\n durationRequest?: number\n environment?: SoftwareEnvironment\n memoryLimit?: number\n memoryRequest?: number\n networkTransferLimit?: number\n networkTransferRequest?: number\n status?:\n | 'unknown'\n | 'starting'\n | 'started'\n | 'stopping'\n | 'stopped'\n | 'failed'\n timeoutLimit?: number\n timeoutRequest?: number\n volumeMounts?: Array<VolumeMount>\n}\n\n/**\n * Create a `SoftwareSession` node\n * @param props Object containing SoftwareSession schema properties as key/value pairs\n * @returns {SoftwareSession} SoftwareSession schema node\n */\nexport const softwareSession = (\n props: Omit<SoftwareSession, 'type'> = {}\n): SoftwareSession => ({\n ...compact(props),\n type: 'SoftwareSession'\n})\n\n/**\n * Computer programming source code. Example: Full (compile ready) solutions, code snippet samples, scripts, templates.\n */\nexport interface SoftwareSourceCode extends CreativeWork {\n type: 'SoftwareSourceCode'\n codeRepository?: string\n codeSampleType?: string\n maintainers?: Array<Organization | Person>\n programmingLanguage?: string\n runtimePlatform?: Array<string>\n softwareRequirements?: Array<\n SoftwareSourceCode | SoftwareApplication | string\n >\n targetProducts?: Array<SoftwareApplication>\n}\n\n/**\n * Create a `SoftwareSourceCode` node\n * @param props Object containing SoftwareSourceCode schema properties as key/value pairs\n * @returns {SoftwareSourceCode} SoftwareSourceCode schema node\n */\nexport const softwareSourceCode = (\n props: Omit<SoftwareSourceCode, 'type'> = {}\n): SoftwareSourceCode => ({\n ...compact(props),\n type: 'SoftwareSourceCode'\n})\n\n/**\n * A schema specifying constraints on a string node.\n */\nexport interface StringValidator extends Entity {\n type: 'StringValidator'\n maxLength?: number\n minLength?: number\n pattern?: string\n}\n\n/**\n * Create a `StringValidator` node\n * @param props Object containing StringValidator schema properties as key/value pairs\n * @returns {StringValidator} StringValidator schema node\n */\nexport const stringValidator = (\n props: Omit<StringValidator, 'type'> = {}\n): StringValidator => ({\n ...compact(props),\n type: 'StringValidator'\n})\n\n/**\n * Strongly emphasised content.\n */\nexport interface Strong extends Mark {\n type: 'Strong'\n}\n\n/**\n * Create a `Strong` node\n * @param props Object containing Strong schema properties as key/value pairs\n * @returns {Strong} Strong schema node\n */\nexport const strong = (props: Omit<Strong, 'type'>): Strong => ({\n ...compact(props),\n type: 'Strong'\n})\n\n/**\n * Subscripted content.\n */\nexport interface Subscript extends Mark {\n type: 'Subscript'\n}\n\n/**\n * Create a `Subscript` node\n * @param props Object containing Subscript schema properties as key/value pairs\n * @returns {Subscript} Subscript schema node\n */\nexport const subscript = (props: Omit<Subscript, 'type'>): Subscript => ({\n ...compact(props),\n type: 'Subscript'\n})\n\n/**\n * Superscripted content.\n */\nexport interface Superscript extends Mark {\n type: 'Superscript'\n}\n\n/**\n * Create a `Superscript` node\n * @param props Object containing Superscript schema properties as key/value pairs\n * @returns {Superscript} Superscript schema node\n */\nexport const superscript = (props: Omit<Superscript, 'type'>): Superscript => ({\n ...compact(props),\n type: 'Superscript'\n})\n\n/**\n * A table.\n */\nexport interface Table extends CreativeWork {\n type: 'Table'\n rows: Array<TableRow>\n}\n\n/**\n * Create a `Table` node\n * @param props Object containing Table schema properties as key/value pairs\n * @returns {Table} Table schema node\n */\nexport const table = (props: Omit<Table, 'type'>): Table => ({\n ...compact(props),\n type: 'Table'\n})\n\n/**\n * A cell within a `Table`.\n */\nexport interface TableCell extends Entity {\n type: 'TableCell'\n content: Array<Node>\n cellType?: 'data' | 'header'\n colspan?: number\n name?: string\n rowspan?: number\n}\n\n/**\n * Create a `TableCell` node\n * @param props Object containing TableCell schema properties as key/value pairs\n * @returns {TableCell} TableCell schema node\n */\nexport const tableCell = (props: Omit<TableCell, 'type'>): TableCell => ({\n ...compact(props),\n type: 'TableCell'\n})\n\n/**\n * A row within a Table.\n */\nexport interface TableRow extends Entity {\n type: 'TableRow'\n cells: Array<TableCell>\n rowType?: 'header' | 'footer'\n}\n\n/**\n * Create a `TableRow` node\n * @param props Object containing TableRow schema properties as key/value pairs\n * @returns {TableRow} TableRow schema node\n */\nexport const tableRow = (props: Omit<TableRow, 'type'>): TableRow => ({\n ...compact(props),\n type: 'TableRow'\n})\n\n/**\n * A thematic break, such as a scene change in a story, a transition to another topic, or a new document.\n */\nexport interface ThematicBreak extends Entity {\n type: 'ThematicBreak'\n}\n\n/**\n * Create a `ThematicBreak` node\n * @param props Object containing ThematicBreak schema properties as key/value pairs\n * @returns {ThematicBreak} ThematicBreak schema node\n */\nexport const thematicBreak = (\n props: Omit<ThematicBreak, 'type'> = {}\n): ThematicBreak => ({\n ...compact(props),\n type: 'ThematicBreak'\n})\n\n/**\n * A validator specifying constraints on an array of heterogeneous items.\n */\nexport interface TupleValidator extends Entity {\n type: 'TupleValidator'\n items?: Array<ValidatorTypes>\n}\n\n/**\n * Create a `TupleValidator` node\n * @param props Object containing TupleValidator schema properties as key/value pairs\n * @returns {TupleValidator} TupleValidator schema node\n */\nexport const tupleValidator = (\n props: Omit<TupleValidator, 'type'> = {}\n): TupleValidator => ({\n ...compact(props),\n type: 'TupleValidator'\n})\n\n/**\n * A video file.\n */\nexport interface VideoObject extends MediaObject {\n type: 'VideoObject'\n caption?: string\n thumbnail?: ImageObject\n transcript?: string\n}\n\n/**\n * Create a `VideoObject` node\n * @param props Object containing VideoObject schema properties as key/value pairs\n * @returns {VideoObject} VideoObject schema node\n */\nexport const videoObject = (props: Omit<VideoObject, 'type'>): VideoObject => ({\n ...compact(props),\n type: 'VideoObject'\n})\n\n/**\n * Describes a volume mount from a host to container.\n */\nexport interface VolumeMount extends Thing {\n type: 'VolumeMount'\n mountDestination: string\n mountOptions?: Array<string>\n mountSource?: string\n mountType?: string\n}\n\n/**\n * Create a `VolumeMount` node\n * @param props Object containing VolumeMount schema properties as key/value pairs\n * @returns {VolumeMount} VolumeMount schema node\n */\nexport const volumeMount = (props: Omit<VolumeMount, 'type'>): VolumeMount => ({\n ...compact(props),\n type: 'VolumeMount'\n})\n\n/**\n * Union type for valid block content.\n */\nexport type BlockContent =\n | CodeBlock\n | CodeChunk\n | Heading\n | List\n | ListItem\n | MathBlock\n | Paragraph\n | QuoteBlock\n | Table\n | ThematicBreak\n\n/**\n * All type schemas that are derived from CodeBlock\n */\nexport type CodeBlockTypes = CodeBlock | CodeChunk\n\n/**\n * All type schemas that are derived from CodeFragment\n */\nexport type CodeFragmentTypes = CodeFragment | CodeExpression\n\n/**\n * All type schemas that are derived from Code\n */\nexport type CodeTypes =\n | Code\n | CodeBlock\n | CodeChunk\n | CodeExpression\n | CodeFragment\n\n/**\n * All type schemas that are derived from CreativeWork\n */\nexport type CreativeWorkTypes =\n | CreativeWork\n | Article\n | AudioObject\n | Collection\n | Datatable\n | Figure\n | ImageObject\n | MediaObject\n | Periodical\n | PublicationIssue\n | PublicationVolume\n | SoftwareApplication\n | SoftwareSourceCode\n | Table\n | VideoObject\n\n/**\n * All type schemas that are derived from Entity\n */\nexport type EntityTypes =\n | Entity\n | ArrayValidator\n | Article\n | AudioObject\n | BooleanValidator\n | Brand\n | Cite\n | CiteGroup\n | Code\n | CodeBlock\n | CodeChunk\n | CodeError\n | CodeExpression\n | CodeFragment\n | Collection\n | ConstantValidator\n | ContactPoint\n | CreativeWork\n | Datatable\n | DatatableColumn\n | Date\n | Delete\n | Emphasis\n | EnumValidator\n | Figure\n | Function\n | Grant\n | Heading\n | ImageObject\n | Include\n | IntegerValidator\n | Link\n | List\n | ListItem\n | Mark\n | Math\n | MathBlock\n | MathFragment\n | MediaObject\n | MonetaryGrant\n | NumberValidator\n | Organization\n | Paragraph\n | Parameter\n | Periodical\n | Person\n | Product\n | PropertyValue\n | PublicationIssue\n | PublicationVolume\n | Quote\n | QuoteBlock\n | SoftwareApplication\n | SoftwareEnvironment\n | SoftwareSession\n | SoftwareSourceCode\n | StringValidator\n | Strong\n | Subscript\n | Superscript\n | Table\n | TableCell\n | TableRow\n | ThematicBreak\n | Thing\n | TupleValidator\n | Variable\n | VideoObject\n | VolumeMount\n\n/**\n * All type schemas that are derived from Grant\n */\nexport type GrantTypes = Grant | MonetaryGrant\n\n/**\n * Union type for valid inline content.\n */\nexport type InlineContent =\n | null\n | boolean\n | number\n | string\n | CodeFragment\n | CodeExpression\n | Delete\n | Emphasis\n | ImageObject\n | Link\n | MathFragment\n | Quote\n | Strong\n | Subscript\n | Superscript\n | Cite\n | CiteGroup\n\n/**\n * All type schemas that are derived from Mark\n */\nexport type MarkTypes =\n | Mark\n | Delete\n | Emphasis\n | Quote\n | Strong\n | Subscript\n | Superscript\n\n/**\n * All type schemas that are derived from Math\n */\nexport type MathTypes = Math | MathBlock | MathFragment\n\n/**\n * All type schemas that are derived from MediaObject\n */\nexport type MediaObjectTypes =\n | MediaObject\n | AudioObject\n | ImageObject\n | VideoObject\n\n/**\n * Union type for all valid nodes.\n */\nexport type Node =\n | null\n | boolean\n | number\n | string\n | Array<any>\n | { [key: string]: any }\n | Entity\n\n/**\n * All type schemas that are derived from NumberValidator\n */\nexport type NumberValidatorTypes = NumberValidator | IntegerValidator\n\n/**\n * All type schemas that are derived from Thing\n */\nexport type ThingTypes =\n | Thing\n | Article\n | AudioObject\n | Brand\n | Collection\n | ContactPoint\n | CreativeWork\n | Datatable\n | DatatableColumn\n | Figure\n | Grant\n | ImageObject\n | MediaObject\n | MonetaryGrant\n | Organization\n | Periodical\n | Person\n | Product\n | PropertyValue\n | PublicationIssue\n | PublicationVolume\n | SoftwareApplication\n | SoftwareEnvironment\n | SoftwareSession\n | SoftwareSourceCode\n | Table\n | VideoObject\n | VolumeMount\n\n/**\n * Union type for all validator types.\n */\nexport type ValidatorTypes =\n | ConstantValidator\n | EnumValidator\n | BooleanValidator\n | NumberValidator\n | IntegerValidator\n | StringValidator\n | ArrayValidator\n | TupleValidator\n\n/**\n * All type schemas that are derived from Variable\n */\nexport type VariableTypes = Variable | Parameter\n","import * as types from '../types'\nimport { TypeMap } from './type-map'\n\ntype Primitives = undefined | null | boolean | string | number\n\nexport const codeBlockTypes: TypeMap<Exclude<\n types.CodeBlockTypes,\n Primitives\n>> = {\n CodeBlock: 'CodeBlock',\n CodeChunk: 'CodeChunk'\n}\n\nexport const codeFragmentTypes: TypeMap<Exclude<\n types.CodeFragmentTypes,\n Primitives\n>> = {\n CodeFragment: 'CodeFragment',\n CodeExpression: 'CodeExpression'\n}\n\nexport const codeTypes: TypeMap<Exclude<types.CodeTypes, Primitives>> = {\n Code: 'Code',\n CodeBlock: 'CodeBlock',\n CodeChunk: 'CodeChunk',\n CodeExpression: 'CodeExpression',\n CodeFragment: 'CodeFragment'\n}\n\nexport const creativeWorkTypes: TypeMap<Exclude<\n types.CreativeWorkTypes,\n Primitives\n>> = {\n CreativeWork: 'CreativeWork',\n Article: 'Article',\n AudioObject: 'AudioObject',\n Collection: 'Collection',\n Datatable: 'Datatable',\n Figure: 'Figure',\n ImageObject: 'ImageObject',\n MediaObject: 'MediaObject',\n Periodical: 'Periodical',\n PublicationIssue: 'PublicationIssue',\n PublicationVolume: 'PublicationVolume',\n SoftwareApplication: 'SoftwareApplication',\n SoftwareSourceCode: 'SoftwareSourceCode',\n Table: 'Table',\n VideoObject: 'VideoObject'\n}\n\nexport const entityTypes: TypeMap<Exclude<types.EntityTypes, Primitives>> = {\n Entity: 'Entity',\n ArrayValidator: 'ArrayValidator',\n Article: 'Article',\n AudioObject: 'AudioObject',\n BooleanValidator: 'BooleanValidator',\n Brand: 'Brand',\n Cite: 'Cite',\n CiteGroup: 'CiteGroup',\n Code: 'Code',\n CodeBlock: 'CodeBlock',\n CodeChunk: 'CodeChunk',\n CodeError: 'CodeError',\n CodeExpression: 'CodeExpression',\n CodeFragment: 'CodeFragment',\n Collection: 'Collection',\n ConstantValidator: 'ConstantValidator',\n ContactPoint: 'ContactPoint',\n CreativeWork: 'CreativeWork',\n Datatable: 'Datatable',\n DatatableColumn: 'DatatableColumn',\n Date: 'Date',\n Delete: 'Delete',\n Emphasis: 'Emphasis',\n EnumValidator: 'EnumValidator',\n Figure: 'Figure',\n Function: 'Function',\n Grant: 'Grant',\n Heading: 'Heading',\n ImageObject: 'ImageObject',\n Include: 'Include',\n IntegerValidator: 'IntegerValidator',\n Link: 'Link',\n List: 'List',\n ListItem: 'ListItem',\n Mark: 'Mark',\n Math: 'Math',\n MathBlock: 'MathBlock',\n MathFragment: 'MathFragment',\n MediaObject: 'MediaObject',\n MonetaryGrant: 'MonetaryGrant',\n NumberValidator: 'NumberValidator',\n Organization: 'Organization',\n Paragraph: 'Paragraph',\n Parameter: 'Parameter',\n Periodical: 'Periodical',\n Person: 'Person',\n Product: 'Product',\n PropertyValue: 'PropertyValue',\n PublicationIssue: 'PublicationIssue',\n PublicationVolume: 'PublicationVolume',\n Quote: 'Quote',\n QuoteBlock: 'QuoteBlock',\n SoftwareApplication: 'SoftwareApplication',\n SoftwareEnvironment: 'SoftwareEnvironment',\n SoftwareSession: 'SoftwareSession',\n SoftwareSourceCode: 'SoftwareSourceCode',\n StringValidator: 'StringValidator',\n Strong: 'Strong',\n Subscript: 'Subscript',\n Superscript: 'Superscript',\n Table: 'Table',\n TableCell: 'TableCell',\n TableRow: 'TableRow',\n ThematicBreak: 'ThematicBreak',\n Thing: 'Thing',\n TupleValidator: 'TupleValidator',\n Variable: 'Variable',\n VideoObject: 'VideoObject',\n VolumeMount: 'VolumeMount'\n}\n