faster-babel-types
Version:
4 lines • 227 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../../src/comment.ts", "../../../src/is-node-type.ts", "../../../src/assert-node-type.ts", "../../../src/nodes/flow/expressions/typecast-expression.ts", "../../../src/nodes/flow/misc/any-type-annotation.ts", "../../../src/nodes/flow/misc/array-type-annotation.ts", "../../../src/nodes/flow/misc/boolean-literal-type-annotation.ts", "../../../src/nodes/flow/misc/boolean-type-annotation.ts", "../../../src/nodes/flow/misc/empty-type-annotation.ts", "../../../src/nodes/flow/misc/enum-boolean-body.ts", "../../../src/nodes/flow/misc/enum-boolean-member.ts", "../../../src/nodes/flow/misc/enum-defaulted-member.ts", "../../../src/nodes/flow/misc/enum-number-body.ts", "../../../src/nodes/flow/misc/enum-number-member.ts", "../../../src/nodes/flow/misc/enum-string-body.ts", "../../../src/nodes/flow/misc/enum-string-member.ts", "../../../src/nodes/flow/misc/enum-symbol-body.ts", "../../../src/nodes/flow/misc/exists-type-annotation.ts", "../../../src/nodes/flow/misc/function-type-annotation.ts", "../../../src/nodes/flow/misc/function-type-param.ts", "../../../src/nodes/flow/misc/generic-type-annotation.ts", "../../../src/nodes/flow/misc/indexed-access-type.ts", "../../../src/nodes/flow/misc/interface-extends.ts", "../../../src/nodes/flow/misc/interface-type-annotation.ts", "../../../src/nodes/flow/misc/intersection-type-annotation.ts", "../../../src/nodes/flow/misc/mixed-type-annotation.ts", "../../../src/nodes/flow/misc/null-literal-type-annotation.ts", "../../../src/nodes/flow/misc/nullable-type-annotation.ts", "../../../src/nodes/flow/misc/number-literal-type-annotation.ts", "../../../src/nodes/flow/misc/number-type-annotation.ts", "../../../src/nodes/flow/misc/object-type-annotation.ts", "../../../src/nodes/flow/misc/object-type-call-property.ts", "../../../src/nodes/flow/misc/object-type-indexer.ts", "../../../src/nodes/flow/misc/object-type-internal-slot.ts", "../../../src/nodes/flow/misc/object-type-property.ts", "../../../src/nodes/flow/misc/object-type-spread-property.ts", "../../../src/nodes/flow/misc/optional-indexed-access-type.ts", "../../../src/nodes/flow/misc/qualified-type-identifier.ts", "../../../src/nodes/flow/misc/string-literal-type-annotation.ts", "../../../src/nodes/flow/misc/string-type-annotation.ts", "../../../src/nodes/flow/misc/symbol-type-annotation.ts", "../../../src/nodes/flow/misc/this-type-annotation.ts", "../../../src/nodes/flow/misc/tuple-type-annotation.ts", "../../../src/nodes/flow/misc/type-annotation.ts", "../../../src/nodes/flow/misc/typeof-type-annotation.ts", "../../../src/nodes/flow/misc/union-type-annotation.ts", "../../../src/nodes/flow/misc/variance.ts", "../../../src/nodes/flow/misc/void-type-annotation.ts", "../../../src/nodes/flow/statements/declare-class.ts", "../../../src/nodes/flow/statements/declare-export-all-declaration.ts", "../../../src/nodes/flow/statements/declare-export-declaration.ts", "../../../src/nodes/flow/statements/declare-function.ts", "../../../src/nodes/flow/statements/declare-interface.ts", "../../../src/nodes/flow/statements/declare-module.ts", "../../../src/nodes/flow/statements/declare-module-exports.ts", "../../../src/nodes/flow/statements/declare-opaque-type.ts", "../../../src/nodes/flow/statements/declare-type-alias.ts", "../../../src/nodes/flow/statements/declare-variable.ts", "../../../src/nodes/flow/statements/enum-declaration.ts", "../../../src/nodes/flow/statements/interface-declaration.ts", "../../../src/nodes/flow/statements/opaque-type.ts", "../../../src/nodes/flow/statements/type-alias.ts", "../../../src/nodes/javascript/expressions/array-expression.ts", "../../../src/nodes/javascript/expressions/arrow-function-expression.ts", "../../../src/nodes/javascript/expressions/assignment-expression.ts", "../../../src/nodes/javascript/expressions/await-expression.ts", "../../../src/nodes/javascript/expressions/bigint-literal.ts", "../../../src/nodes/javascript/expressions/binary-expression.ts", "../../../src/nodes/javascript/expressions/bind-expression.ts", "../../../src/nodes/javascript/expressions/boolean-literal.ts", "../../../src/nodes/javascript/expressions/call-expression.ts", "../../../src/nodes/javascript/expressions/class-expression.ts", "../../../src/nodes/javascript/expressions/conditional-expression.ts", "../../../src/nodes/javascript/expressions/decimal-literal.ts", "../../../src/nodes/javascript/expressions/do-expression.ts", "../../../src/nodes/javascript/expressions/function-expression.ts", "../../../src/nodes/javascript/expressions/identifier.ts", "../../../src/nodes/javascript/expressions/import.ts", "../../../src/nodes/javascript/expressions/import-expression.ts", "../../../src/nodes/javascript/expressions/logical-expression.ts", "../../../src/nodes/javascript/expressions/member-expression.ts", "../../../src/nodes/javascript/expressions/meta-property.ts", "../../../src/nodes/javascript/expressions/module-expression.ts", "../../../src/nodes/javascript/expressions/new-expression.ts", "../../../src/nodes/javascript/expressions/null-literal.ts", "../../../src/nodes/javascript/expressions/numeric-literal.ts", "../../../src/nodes/javascript/expressions/object-expression.ts", "../../../src/nodes/javascript/expressions/optional-call-expression.ts", "../../../src/nodes/javascript/expressions/optional-member-expression.ts", "../../../src/nodes/javascript/expressions/parenthesized-expression.ts", "../../../src/nodes/javascript/expressions/pipeline-bare-function.ts", "../../../src/nodes/javascript/expressions/pipeline-primary-topic-reference.ts", "../../../src/nodes/javascript/expressions/pipeline-topic-expression.ts", "../../../src/nodes/javascript/expressions/record-expression.ts", "../../../src/nodes/javascript/expressions/regexp-literal.ts", "../../../src/nodes/javascript/expressions/sequence-expression.ts", "../../../src/nodes/javascript/expressions/string-literal.ts", "../../../src/nodes/javascript/expressions/super.ts", "../../../src/nodes/javascript/expressions/tagged-template-expression.ts", "../../../src/nodes/javascript/expressions/template-literal.ts", "../../../src/nodes/javascript/expressions/this-expression.ts", "../../../src/nodes/javascript/expressions/topic-reference.ts", "../../../src/nodes/javascript/expressions/tuple-expression.ts", "../../../src/nodes/javascript/expressions/unary-expression.ts", "../../../src/nodes/javascript/expressions/update-expression.ts", "../../../src/nodes/javascript/expressions/yield-expression.ts", "../../../src/nodes/javascript/misc/argument-placeholder.ts", "../../../src/nodes/javascript/misc/array-pattern.ts", "../../../src/nodes/javascript/misc/assignment-pattern.ts", "../../../src/nodes/javascript/misc/catch-clause.ts", "../../../src/nodes/javascript/misc/class-accessor-property.ts", "../../../src/nodes/javascript/misc/class-body.ts", "../../../src/nodes/javascript/misc/class-method.ts", "../../../src/nodes/javascript/misc/class-private-method.ts", "../../../src/nodes/javascript/misc/class-private-property.ts", "../../../src/nodes/javascript/misc/class-property.ts", "../../../src/nodes/javascript/misc/decorator.ts", "../../../src/nodes/javascript/misc/directive.ts", "../../../src/nodes/javascript/misc/directive-literal.ts", "../../../src/nodes/javascript/misc/export-default-specifier.ts", "../../../src/nodes/javascript/misc/export-namespace-specifier.ts", "../../../src/nodes/javascript/misc/export-specifier.ts", "../../../src/nodes/javascript/misc/import-default-specifier.ts", "../../../src/nodes/javascript/misc/import-namespace-specifier.ts", "../../../src/nodes/javascript/misc/import-specifier.ts", "../../../src/nodes/javascript/misc/object-method.ts", "../../../src/nodes/javascript/misc/object-pattern.ts", "../../../src/nodes/javascript/misc/object-property.ts", "../../../src/nodes/javascript/misc/private-name.ts", "../../../src/nodes/javascript/misc/rest-element.ts", "../../../src/nodes/javascript/misc/spread-element.ts", "../../../src/nodes/javascript/misc/static-block.ts", "../../../src/nodes/javascript/misc/switch-case.ts", "../../../src/nodes/javascript/misc/template-element.ts", "../../../src/nodes/javascript/misc/v8-intrinsic-identifier.ts", "../../../src/nodes/javascript/misc/variable-declarator.ts", "../../../src/nodes/javascript/statements/block-statement.ts", "../../../src/nodes/javascript/statements/break-statement.ts", "../../../src/nodes/javascript/statements/class-declaration.ts", "../../../src/nodes/javascript/statements/continue-statement.ts", "../../../src/nodes/javascript/statements/debugger-statement.ts", "../../../src/nodes/javascript/statements/do-while-statement.ts", "../../../src/nodes/javascript/statements/empty-statement.ts", "../../../src/nodes/javascript/statements/export-all-declaration.ts", "../../../src/nodes/javascript/statements/export-named-declaration.ts", "../../../src/nodes/javascript/statements/expression-statement.ts", "../../../src/nodes/javascript/statements/for-in-statement.ts", "../../../src/nodes/javascript/statements/for-of-statement.ts", "../../../src/nodes/javascript/statements/for-statement.ts", "../../../src/nodes/javascript/statements/function-declaration.ts", "../../../src/nodes/javascript/statements/if-statement.ts", "../../../src/nodes/javascript/statements/import-declaration.ts", "../../../src/nodes/javascript/statements/labeled-statement.ts", "../../../src/nodes/javascript/statements/return-statement.ts", "../../../src/nodes/javascript/statements/switch-statement.ts", "../../../src/nodes/javascript/statements/throw-statement.ts", "../../../src/nodes/javascript/statements/try-statement.ts", "../../../src/nodes/javascript/statements/variable-declaration.ts", "../../../src/nodes/javascript/statements/while-statement.ts", "../../../src/nodes/javascript/statements/with-statement.ts", "../../../src/nodes/jsx/jsx-attribute.ts", "../../../src/nodes/jsx/jsx-closing-element.ts", "../../../src/nodes/jsx/jsx-closing-fragment.ts", "../../../src/nodes/jsx/jsx-element.ts", "../../../src/nodes/jsx/jsx-empty-expression.ts", "../../../src/nodes/jsx/jsx-expression-container.ts", "../../../src/nodes/jsx/jsx-fragment.ts", "../../../src/nodes/jsx/jsx-identifier.ts", "../../../src/nodes/jsx/jsx-member-expression.ts", "../../../src/nodes/jsx/jsx-namespaced-name.ts", "../../../src/nodes/jsx/jsx-opening-element.ts", "../../../src/nodes/jsx/jsx-opening-fragment.ts", "../../../src/nodes/jsx/jsx-spread-attribute.ts", "../../../src/nodes/jsx/jsx-spread-child.ts", "../../../src/nodes/jsx/jsx-text.ts", "../../../src/nodes/typescript/expressions/ts-as-expression.ts", "../../../src/nodes/typescript/expressions/ts-instantiation-expression.ts", "../../../src/nodes/typescript/expressions/ts-non-null-expression.ts", "../../../src/nodes/typescript/expressions/ts-satisfies-expression.ts", "../../../src/nodes/typescript/expressions/ts-type-assertion.ts", "../../../src/nodes/typescript/misc/ts-any-keyword.ts", "../../../src/nodes/typescript/misc/ts-array-type.ts", "../../../src/nodes/typescript/misc/ts-bigint-keyword.ts", "../../../src/nodes/typescript/misc/ts-boolean-keyword.ts", "../../../src/nodes/typescript/misc/ts-call-signature-declaration.ts", "../../../src/nodes/typescript/misc/ts-conditional-type.ts", "../../../src/nodes/typescript/misc/ts-construct-signature-declaration.ts", "../../../src/nodes/typescript/misc/ts-constructor-type.ts", "../../../src/nodes/typescript/misc/ts-declare-method.ts", "../../../src/nodes/typescript/misc/ts-expression-with-type-arguments.ts", "../../../src/nodes/typescript/misc/ts-function-type.ts", "../../../src/nodes/typescript/misc/ts-import-type.ts", "../../../src/nodes/typescript/misc/ts-index-signature.ts", "../../../src/nodes/typescript/misc/ts-indexed-access-type.ts", "../../../src/nodes/typescript/misc/ts-infer-type.ts", "../../../src/nodes/typescript/misc/ts-intersection-type.ts", "../../../src/nodes/typescript/misc/ts-intrinsic-keyword.ts", "../../../src/nodes/typescript/misc/ts-literal-type.ts", "../../../src/nodes/typescript/misc/ts-mapped-type.ts", "../../../src/nodes/typescript/misc/ts-method-signature.ts", "../../../src/nodes/typescript/misc/ts-module-block.ts", "../../../src/nodes/typescript/misc/ts-named-tuple-member.ts", "../../../src/nodes/typescript/misc/ts-never-keyword.ts", "../../../src/nodes/typescript/misc/ts-null-keyword.ts", "../../../src/nodes/typescript/misc/ts-number-keyword.ts", "../../../src/nodes/typescript/misc/ts-object-keyword.ts", "../../../src/nodes/typescript/misc/ts-optional-type.ts", "../../../src/nodes/typescript/misc/ts-parameter-property.ts", "../../../src/nodes/typescript/misc/ts-parenthesized-type.ts", "../../../src/nodes/typescript/misc/ts-property-signature.ts", "../../../src/nodes/typescript/misc/ts-qualified-name.ts", "../../../src/nodes/typescript/misc/ts-rest-type.ts", "../../../src/nodes/typescript/misc/ts-string-keyword.ts", "../../../src/nodes/typescript/misc/ts-symbol-keyword.ts", "../../../src/nodes/typescript/misc/ts-this-type.ts", "../../../src/nodes/typescript/misc/ts-tuple-type.ts", "../../../src/nodes/typescript/misc/ts-type-annotation.ts", "../../../src/nodes/typescript/misc/ts-type-literal.ts", "../../../src/nodes/typescript/misc/ts-type-operator.ts", "../../../src/nodes/typescript/misc/ts-type-parameter.ts", "../../../src/nodes/typescript/misc/ts-type-parameter-declaration.ts", "../../../src/nodes/typescript/misc/ts-type-parameter-instantiation.ts", "../../../src/nodes/typescript/misc/ts-type-predicate.ts", "../../../src/nodes/typescript/misc/ts-type-query.ts", "../../../src/nodes/typescript/misc/ts-type-reference.ts", "../../../src/nodes/typescript/misc/ts-undefined-keyword.ts", "../../../src/nodes/typescript/misc/ts-union-type.ts", "../../../src/nodes/typescript/misc/ts-unknown-keyword.ts", "../../../src/nodes/typescript/misc/ts-void-keyword.ts", "../../../src/nodes/typescript/statements/ts-declare-function.ts", "../../../src/nodes/typescript/statements/ts-enum-declaration.ts", "../../../src/nodes/typescript/statements/ts-export-assignment.ts", "../../../src/nodes/typescript/statements/ts-import-equals-declaration.ts", "../../../src/nodes/typescript/statements/ts-interface-declaration.ts", "../../../src/nodes/typescript/statements/ts-module-declaration.ts", "../../../src/nodes/typescript/statements/ts-namespace-export-declaration.ts", "../../../src/nodes/typescript/statements/ts-type-alias-declaration.ts"],
"sourcesContent": ["import type * as t from '@babel/types';\n\nexport function addComments<T extends t.Node>(\n node: T,\n type: t.CommentTypeShorthand,\n comments: t.Comment[],\n): T {\n const key = `${type}Comments` as const;\n\n if (node[key]) {\n if (type === 'leading') {\n node[key] = comments.concat(node[key]);\n } else {\n node[key].push.apply(node[key], comments);\n }\n } else {\n node[key] = comments;\n }\n\n return node;\n}\n\nexport function addComment<T extends t.Node>(\n node: T,\n type: t.CommentTypeShorthand,\n comment: t.Comment,\n): T {\n return addComments(node, type, [comment]);\n}\n", "import type * as t from '@babel/types';\n\nexport function is<\n T extends t.Node['type'],\n P extends Extract<\n t.Node,\n {\n type: T;\n }\n >,\n>(type: T, node: t.Node | null | undefined): node is P {\n return node != null && node.type === type;\n}\n\nexport function either<\n T extends t.Node['type'],\n P extends Extract<\n t.Node,\n {\n type: T;\n }\n >,\n>(types: Set<T>, node: t.Node | null | undefined): node is P {\n return node != null && types.has(node.type as T);\n}\n", "import type * as t from '@babel/types';\nimport { either, is } from './is-node-type';\n\n// https://github.com/babel/babel/blob/dba45d3ebc92a868c9b8952a6f407c6ab83c6b3f/packages/babel-types/src/asserts/generated/index.ts#L9\nexport function assert<\n T extends t.Node['type'],\n P extends Extract<\n t.Node,\n {\n type: T;\n }\n >,\n>(type: T, node: t.Node | null | undefined): asserts node is P {\n if (is(type, node)) {\n throw new Error(\n 'Expected type \"' + type + '\" but instead got \"' + node.type + '\".',\n );\n }\n}\n\nexport function assertEither<\n T extends t.Node['type'],\n P extends Extract<\n t.Node,\n {\n type: T;\n }\n >,\n>(\n name: string,\n types: Set<T>,\n node: t.Node | null | undefined,\n): asserts node is P {\n if (either(types, node)) {\n throw new Error(\n 'Expected type \"' + name + '\" but instead got \"' + node.type + '\".',\n );\n }\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'TypeCastExpression';\n\nexport function typeCastExpression(\n expression: t.Expression,\n typeAnnotation: t.TypeAnnotation,\n): t.TypeCastExpression {\n return {\n type: TYPE,\n expression,\n typeAnnotation,\n };\n}\n\nexport function isTypeCastExpression(\n node: t.Node | null | undefined,\n): node is t.TypeCastExpression {\n return is(TYPE, node);\n}\n\nexport function assertTypeCastExpression(\n node: t.Node | null | undefined,\n): asserts node is t.TypeCastExpression {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'AnyTypeAnnotation';\n\nexport function anyTypeAnnotation(): t.AnyTypeAnnotation {\n return {\n type: TYPE,\n };\n}\n\nexport function isAnyTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.AnyTypeAnnotation {\n return is(TYPE, node);\n}\n\nexport function assertAnyTypeAnnotation(\n node: t.Node | null | undefined,\n): asserts node is t.AnyTypeAnnotation {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'ArrayTypeAnnotation';\n\nexport function arrayTypeAnnotation(\n elementType: t.FlowType,\n): t.ArrayTypeAnnotation {\n return {\n type: TYPE,\n elementType,\n };\n}\n\nexport function isArrayTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.ArrayTypeAnnotation {\n return is(TYPE, node);\n}\n\nexport function assertArrayTypeAnnotation(\n node: t.Node | null | undefined,\n): asserts node is t.ArrayTypeAnnotation {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'BooleanLiteralTypeAnnotation';\n\nexport function booleanLiteralTypeAnnotation(\n value: boolean,\n): t.BooleanLiteralTypeAnnotation {\n return {\n type: TYPE,\n value,\n };\n}\n\nexport function isBooleanLiteralTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.BooleanLiteralTypeAnnotation {\n return is(TYPE, node);\n}\n\nexport function assertBooleanLiteralTypeAnnotation(\n node: t.Node | null | undefined,\n): asserts node is t.BooleanLiteralTypeAnnotation {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'BooleanTypeAnnotation';\n\nexport function booleanTypeAnnotation(): t.BooleanTypeAnnotation {\n return {\n type: TYPE,\n };\n}\n\nexport function isBooleanTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.BooleanTypeAnnotation {\n return is(TYPE, node);\n}\n\nexport function assertBooleanTypeAnnotation(\n node: t.Node | null | undefined,\n): asserts node is t.BooleanTypeAnnotation {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'EmptyTypeAnnotation';\n\nexport function emptyTypeAnnotation(): t.EmptyTypeAnnotation {\n return {\n type: TYPE,\n };\n}\n\nexport function isEmptyTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.EmptyTypeAnnotation {\n return is(TYPE, node);\n}\n\nexport function assertEmptyTypeAnnotation(\n node: t.Node | null | undefined,\n): asserts node is t.EmptyTypeAnnotation {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'EnumBooleanBody';\n\nexport function enumBooleanBody(\n members: t.EnumBooleanMember[],\n): t.EnumBooleanBody {\n return {\n type: TYPE,\n members,\n explicitType: false,\n hasUnknownMembers: false,\n };\n}\n\nexport function isEnumBooleanBody(\n node: t.Node | null | undefined,\n): node is t.EnumBooleanBody {\n return is(TYPE, node);\n}\n\nexport function assertEnumBooleanBody(\n node: t.Node | null | undefined,\n): asserts node is t.EnumBooleanBody {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'EnumBooleanMember';\n\nexport function enumBooleanMember(id: t.Identifier): t.EnumBooleanMember {\n return {\n type: TYPE,\n id,\n init: null as any,\n };\n}\n\nexport function isEnumBooleanMember(\n node: t.Node | null | undefined,\n): node is t.EnumBooleanMember {\n return is(TYPE, node);\n}\n\nexport function assertEnumBooleanMember(\n node: t.Node | null | undefined,\n): asserts node is t.EnumBooleanMember {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'EnumDefaultedMember';\n\nexport function enumDefaultedMember(id: t.Identifier): t.EnumDefaultedMember {\n return {\n type: TYPE,\n id,\n };\n}\n\nexport function isEnumDefaultedMember(\n node: t.Node | null | undefined,\n): node is t.EnumDefaultedMember {\n return is(TYPE, node);\n}\n\nexport function assertEnumDefaultedMember(\n node: t.Node | null | undefined,\n): asserts node is t.EnumDefaultedMember {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'EnumNumberBody';\n\nexport function enumNumberBody(\n members: t.EnumNumberMember[],\n): t.EnumNumberBody {\n return {\n type: TYPE,\n members,\n explicitType: false,\n hasUnknownMembers: false,\n };\n}\n\nexport function isEnumNumberBody(\n node: t.Node | null | undefined,\n): node is t.EnumNumberBody {\n return is(TYPE, node);\n}\n\nexport function assertEnumNumberBody(\n node: t.Node | null | undefined,\n): asserts node is t.EnumNumberBody {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'EnumNumberMember';\n\nexport function enumNumberMember(\n id: t.Identifier,\n init: t.NumericLiteral,\n): t.EnumNumberMember {\n return {\n type: TYPE,\n id,\n init,\n };\n}\n\nexport function isEnumNumberMember(\n node: t.Node | null | undefined,\n): node is t.EnumNumberMember {\n return is(TYPE, node);\n}\n\nexport function assertEnumNumberMember(\n node: t.Node | null | undefined,\n): asserts node is t.EnumNumberMember {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'EnumStringBody';\n\nexport function enumStringBody(\n members: Array<t.EnumStringMember | t.EnumDefaultedMember>,\n): t.EnumStringBody {\n return {\n type: TYPE,\n members,\n explicitType: false,\n hasUnknownMembers: false,\n };\n}\n\nexport function isEnumStringBody(\n node: t.Node | null | undefined,\n): node is t.EnumStringBody {\n return is(TYPE, node);\n}\n\nexport function assertEnumStringBody(\n node: t.Node | null | undefined,\n): asserts node is t.EnumStringBody {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'EnumStringMember';\n\nexport function enumStringMember(\n id: t.Identifier,\n init: t.StringLiteral,\n): t.EnumStringMember {\n return {\n type: TYPE,\n id,\n init,\n };\n}\n\nexport function isEnumStringMember(\n node: t.Node | null | undefined,\n): node is t.EnumStringMember {\n return is(TYPE, node);\n}\n\nexport function assertEnumStringMember(\n node: t.Node | null | undefined,\n): asserts node is t.EnumStringMember {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'EnumSymbolBody';\n\nexport function enumSymbolBody(\n members: t.EnumDefaultedMember[],\n): t.EnumSymbolBody {\n return {\n type: TYPE,\n members,\n hasUnknownMembers: false,\n };\n}\n\nexport function isEnumSymbolBody(\n node: t.Node | null | undefined,\n): node is t.EnumSymbolBody {\n return is(TYPE, node);\n}\n\nexport function assertEnumSymbolBody(\n node: t.Node | null | undefined,\n): asserts node is t.EnumSymbolBody {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'ExistsTypeAnnotation';\n\nexport function existsTypeAnnotation(): t.ExistsTypeAnnotation {\n return {\n type: TYPE,\n };\n}\n\nexport function isExistsTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.ExistsTypeAnnotation {\n return is(TYPE, node);\n}\n\nexport function assertExistsTypeAnnotation(\n node: t.Node | null | undefined,\n): asserts node is t.ExistsTypeAnnotation {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'FunctionTypeAnnotation';\n\nexport function functionTypeAnnotation(\n typeParameters: t.TypeParameterDeclaration | null | undefined,\n params: t.FunctionTypeParam[],\n rest: t.FunctionTypeParam | null | undefined,\n returnType: t.FlowType,\n): t.FunctionTypeAnnotation {\n return {\n type: TYPE,\n typeParameters,\n params,\n rest,\n returnType,\n };\n}\n\nexport function isFunctionTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.FunctionTypeAnnotation {\n return is(TYPE, node);\n}\n\nexport function assertFunctionTypeAnnotation(\n node: t.Node | null | undefined,\n): asserts node is t.FunctionTypeAnnotation {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'FunctionTypeParam';\n\nexport function functionTypeParam(\n name: t.Identifier | null | undefined,\n typeAnnotation: t.FlowType,\n): t.FunctionTypeParam {\n return {\n type: TYPE,\n name,\n typeAnnotation,\n };\n}\n\nexport function isFunctionTypeParam(\n node: t.Node | null | undefined,\n): node is t.FunctionTypeParam {\n return is(TYPE, node);\n}\n\nexport function assertFunctionTypeParam(\n node: t.Node | null | undefined,\n): asserts node is t.FunctionTypeParam {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'GenericTypeAnnotation';\n\nexport function genericTypeAnnotation(\n id: t.Identifier | t.QualifiedTypeIdentifier,\n typeParameters: t.TypeParameterInstantiation | null | undefined = null,\n): t.GenericTypeAnnotation {\n return {\n type: TYPE,\n id,\n typeParameters,\n };\n}\n\nexport function isGenericTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.GenericTypeAnnotation {\n return is(TYPE, node);\n}\n\nexport function assertGenericTypeAnnotation(\n node: t.Node | null | undefined,\n): asserts node is t.GenericTypeAnnotation {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'IndexedAccessType';\n\nexport function indexedAccessType(\n objectType: t.FlowType,\n indexType: t.FlowType,\n): t.IndexedAccessType {\n return {\n type: TYPE,\n objectType,\n indexType,\n };\n}\n\nexport function isIndexedAccessType(\n node: t.Node | null | undefined,\n): node is t.IndexedAccessType {\n return is(TYPE, node);\n}\n\nexport function assertIndexedAccessType(\n node: t.Node | null | undefined,\n): asserts node is t.IndexedAccessType {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'InterfaceExtends';\n\nexport function interfaceExtends(\n id: t.Identifier | t.QualifiedTypeIdentifier,\n typeParameters: t.TypeParameterInstantiation | null | undefined = null,\n): t.InterfaceExtends {\n return {\n type: TYPE,\n id,\n typeParameters,\n };\n}\n\nexport function isInterfaceExtends(\n node: t.Node | null | undefined,\n): node is t.InterfaceExtends {\n return is(TYPE, node);\n}\n\nexport function assertInterfaceExtends(\n node: t.Node | null | undefined,\n): asserts node is t.InterfaceExtends {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'InterfaceTypeAnnotation';\n\nexport function interfaceTypeAnnotation(\n interfaceExtends: t.InterfaceExtends[] | null | undefined,\n body: t.ObjectTypeAnnotation,\n): t.InterfaceTypeAnnotation {\n return {\n type: TYPE,\n extends: interfaceExtends,\n body,\n };\n}\n\nexport function isInterfaceTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.InterfaceTypeAnnotation {\n return is(TYPE, node);\n}\n\nexport function assertInterfaceTypeAnnotation(\n node: t.Node | null | undefined,\n): asserts node is t.InterfaceTypeAnnotation {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'IntersectionTypeAnnotation';\n\nexport function intersectionTypeAnnotation(\n types: t.FlowType[],\n): t.IntersectionTypeAnnotation {\n return {\n type: TYPE,\n types,\n };\n}\n\nexport function isIntersectionTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.IntersectionTypeAnnotation {\n return is(TYPE, node);\n}\n\nexport function assertIntersectionTypeAnnotation(\n node: t.Node | null | undefined,\n): asserts node is t.IntersectionTypeAnnotation {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'MixedTypeAnnotation';\n\nexport function mixedTypeAnnotation(): t.MixedTypeAnnotation {\n return {\n type: TYPE,\n };\n}\n\nexport function isMixedTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.MixedTypeAnnotation {\n return is(TYPE, node);\n}\n\nexport function assertMixedTypeAnnotation(\n node: t.Node | null | undefined,\n): asserts node is t.MixedTypeAnnotation {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'NullLiteralTypeAnnotation';\n\nexport function nullLiteralTypeAnnotation(): t.NullLiteralTypeAnnotation {\n return {\n type: TYPE,\n };\n}\n\nexport function isNullLiteralTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.NullLiteralTypeAnnotation {\n return is(TYPE, node);\n}\n\nexport function assertNullLiteralTypeAnnotation(\n node: t.Node | null | undefined,\n): asserts node is t.NullLiteralTypeAnnotation {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'NullableTypeAnnotation';\n\nexport function nullableTypeAnnotation(\n typeAnnotation: t.FlowType,\n): t.NullableTypeAnnotation {\n return {\n type: TYPE,\n typeAnnotation,\n };\n}\n\nexport function isNullableTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.NullableTypeAnnotation {\n return is(TYPE, node);\n}\n\nexport function assertNullableTypeAnnotation(\n node: t.Node | null | undefined,\n): asserts node is t.NullableTypeAnnotation {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'NumberLiteralTypeAnnotation';\n\nexport function numberLiteralTypeAnnotation(\n value: number,\n): t.NumberLiteralTypeAnnotation {\n return {\n type: TYPE,\n value,\n };\n}\n\nexport function isNumberLiteralTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.NumberLiteralTypeAnnotation {\n return is(TYPE, node);\n}\n\nexport function assertNumberLiteralTypeAnnotation(\n node: t.Node | null | undefined,\n): asserts node is t.NumberLiteralTypeAnnotation {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'NumberTypeAnnotation';\n\nexport function numberTypeAnnotation(): t.NumberTypeAnnotation {\n return {\n type: TYPE,\n };\n}\n\nexport function isNumberTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.NumberTypeAnnotation {\n return is(TYPE, node);\n}\n\nexport function assertNumberTypeAnnotation(\n node: t.Node | null | undefined,\n): asserts node is t.NumberTypeAnnotation {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'ObjectTypeAnnotation';\n\nexport function objectTypeAnnotation(\n properties: Array<t.ObjectTypeProperty | t.ObjectTypeSpreadProperty>,\n indexers: t.ObjectTypeIndexer[] = [],\n callProperties: t.ObjectTypeCallProperty[] = [],\n internalSlots: t.ObjectTypeInternalSlot[] = [],\n exact = false,\n): t.ObjectTypeAnnotation {\n return {\n type: TYPE,\n properties,\n indexers,\n callProperties,\n internalSlots,\n exact,\n };\n}\n\nexport function isObjectTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.ObjectTypeAnnotation {\n return is(TYPE, node);\n}\n\nexport function assertObjectTypeAnnotation(\n node: t.Node | null | undefined,\n): asserts node is t.ObjectTypeAnnotation {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'ObjectTypeCallProperty';\n\nexport function objectTypeCallProperty(\n value: t.FlowType,\n): t.ObjectTypeCallProperty {\n return {\n type: TYPE,\n value,\n static: false,\n };\n}\n\nexport function isObjectTypeCallProperty(\n node: t.Node | null | undefined,\n): node is t.ObjectTypeCallProperty {\n return is(TYPE, node);\n}\n\nexport function assertObjectTypeCallProperty(\n node: t.Node | null | undefined,\n): asserts node is t.ObjectTypeCallProperty {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'ObjectTypeIndexer';\n\nexport function objectTypeIndexer(\n id: t.Identifier | null | undefined,\n key: t.FlowType,\n value: t.FlowType,\n variance: t.Variance | null = null,\n): t.ObjectTypeIndexer {\n return {\n type: TYPE,\n id,\n key,\n value,\n variance,\n static: false,\n };\n}\n\nexport function isObjectTypeIndexer(\n node: t.Node | null | undefined,\n): node is t.ObjectTypeIndexer {\n return is(TYPE, node);\n}\n\nexport function assertObjectTypeIndexer(\n node: t.Node | null | undefined,\n): asserts node is t.ObjectTypeIndexer {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'ObjectTypeInternalSlot';\n\nexport function objectTypeInternalSlot(\n id: t.Identifier,\n value: t.FlowType,\n optional: boolean,\n isStatic: boolean,\n method: boolean,\n): t.ObjectTypeInternalSlot {\n return {\n type: TYPE,\n id,\n value,\n optional,\n static: isStatic,\n method,\n };\n}\n\nexport function isObjectTypeInternalSlot(\n node: t.Node | null | undefined,\n): node is t.ObjectTypeInternalSlot {\n return is(TYPE, node);\n}\n\nexport function assertObjectTypeInternalSlot(\n node: t.Node | null | undefined,\n): asserts node is t.ObjectTypeInternalSlot {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'ObjectTypeProperty';\n\nexport function objectTypeProperty(\n key: t.Identifier | t.StringLiteral,\n value: t.FlowType,\n variance: t.Variance | null | undefined = null,\n): t.ObjectTypeProperty {\n return {\n type: TYPE,\n key,\n value,\n variance,\n kind: 'init',\n method: false,\n optional: false,\n proto: false,\n static: false,\n };\n}\n\nexport function isObjectTypeProperty(\n node: t.Node | null | undefined,\n): node is t.ObjectTypeProperty {\n return is(TYPE, node);\n}\n\nexport function assertObjectTypeProperty(\n node: t.Node | null | undefined,\n): asserts node is t.ObjectTypeProperty {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'ObjectTypeSpreadProperty';\n\nexport function objectTypeSpreadProperty(\n argument: t.FlowType,\n): t.ObjectTypeSpreadProperty {\n return {\n type: TYPE,\n argument,\n };\n}\n\nexport function isObjectTypeSpreadProperty(\n node: t.Node | null | undefined,\n): node is t.ObjectTypeSpreadProperty {\n return is(TYPE, node);\n}\n\nexport function assertObjectTypeSpreadProperty(\n node: t.Node | null | undefined,\n): asserts node is t.ObjectTypeSpreadProperty {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'OptionalIndexedAccessType';\n\nexport function optionalIndexedAccessType(\n objectType: t.FlowType,\n indexType: t.FlowType,\n): t.OptionalIndexedAccessType {\n return {\n type: TYPE,\n objectType,\n indexType,\n optional: false,\n };\n}\n\nexport function isOptionalIndexedAccessType(\n node: t.Node | null | undefined,\n): node is t.OptionalIndexedAccessType {\n return is(TYPE, node);\n}\n\nexport function assertOptionalIndexedAccessType(\n node: t.Node | null | undefined,\n): asserts node is t.OptionalIndexedAccessType {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'QualifiedTypeIdentifier';\n\nexport function qualifiedTypeIdentifier(\n id: t.Identifier,\n qualification: t.Identifier | t.QualifiedTypeIdentifier,\n): t.QualifiedTypeIdentifier {\n return {\n type: TYPE,\n id,\n qualification,\n };\n}\n\nexport function isQualifiedTypeIdentifier(\n node: t.Node | null | undefined,\n): node is t.QualifiedTypeIdentifier {\n return is(TYPE, node);\n}\n\nexport function assertQualifiedTypeIdentifier(\n node: t.Node | null | undefined,\n): asserts node is t.QualifiedTypeIdentifier {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'StringLiteralTypeAnnotation';\n\nexport function stringLiteralTypeAnnotation(\n value: string,\n): t.StringLiteralTypeAnnotation {\n return {\n type: TYPE,\n value,\n };\n}\n\nexport function isStringLiteralTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.StringLiteralTypeAnnotation {\n return is(TYPE, node);\n}\n\nexport function assertStringLiteralTypeAnnotation(\n node: t.Node | null | undefined,\n): asserts node is t.StringLiteralTypeAnnotation {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'StringTypeAnnotation';\n\nexport function stringTypeAnnotation(): t.StringTypeAnnotation {\n return {\n type: TYPE,\n };\n}\n\nexport function isStringTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.StringTypeAnnotation {\n return is(TYPE, node);\n}\n\nexport function assertStringTypeAnnotation(\n node: t.Node | null | undefined,\n): asserts node is t.StringTypeAnnotation {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'SymbolTypeAnnotation';\n\nexport function symbolTypeAnnotation(): t.SymbolTypeAnnotation {\n return {\n type: TYPE,\n };\n}\n\nexport function isSymbolTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.SymbolTypeAnnotation {\n return is(TYPE, node);\n}\n\nexport function assertSymbolTypeAnnotation(\n node: t.Node | null | undefined,\n): asserts node is t.SymbolTypeAnnotation {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'ThisTypeAnnotation';\n\nexport function thisTypeAnnotation(): t.ThisTypeAnnotation {\n return {\n type: TYPE,\n };\n}\n\nexport function isThisTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.ThisTypeAnnotation {\n return is(TYPE, node);\n}\n\nexport function assertThisTypeAnnotation(\n node: t.Node | null | undefined,\n): asserts node is t.ThisTypeAnnotation {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'TupleTypeAnnotation';\n\nexport function tupleTypeAnnotation(\n types: t.FlowType[],\n): t.TupleTypeAnnotation {\n return {\n type: TYPE,\n types,\n };\n}\n\nexport function isTupleTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.TupleTypeAnnotation {\n return is(TYPE, node);\n}\n\nexport function assertTupleTypeAnnotation(\n node: t.Node | null | undefined,\n): asserts node is t.TupleTypeAnnotation {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'TypeAnnotation';\n\nexport function typeAnnotation(typeAnnotation: t.FlowType): t.TypeAnnotation {\n return {\n type: TYPE,\n typeAnnotation,\n };\n}\n\nexport function isTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.TypeAnnotation {\n return is(TYPE, node);\n}\n\nexport function assertTypeAnnotation(\n node: t.Node | null | undefined,\n): asserts node is t.TypeAnnotation {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'TypeofTypeAnnotation';\n\nexport function typeofTypeAnnotation(\n argument: t.FlowType,\n): t.TypeofTypeAnnotation {\n return {\n type: TYPE,\n argument,\n };\n}\n\nexport function isTypeofTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.TypeofTypeAnnotation {\n return is(TYPE, node);\n}\n\nexport function assertTypeofTypeAnnotation(\n node: t.Node | null | undefined,\n): asserts node is t.TypeofTypeAnnotation {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'UnionTypeAnnotation';\n\nexport function unionTypeAnnotation(\n types: t.FlowType[],\n): t.UnionTypeAnnotation {\n return {\n type: TYPE,\n types,\n };\n}\n\nexport function isUnionTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.UnionTypeAnnotation {\n return is(TYPE, node);\n}\n\nexport function assertUnionTypeAnnotation(\n node: t.Node | null | undefined,\n): asserts node is t.UnionTypeAnnotation {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'Variance';\n\nexport type VarianceKind = 'minus' | 'plus';\n\nexport function variance(kind: VarianceKind): t.Variance {\n return {\n type: TYPE,\n kind,\n };\n}\n\nexport function isVariance(\n node: t.Node | null | undefined,\n): node is t.Variance {\n return is(TYPE, node);\n}\n\nexport function assertVariance(\n node: t.Node | null | undefined,\n): asserts node is t.Variance {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'VoidTypeAnnotation';\n\nexport function voidTypeAnnotation(): t.VoidTypeAnnotation {\n return {\n type: TYPE,\n };\n}\n\nexport function isVoidTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.VoidTypeAnnotation {\n return is(TYPE, node);\n}\n\nexport function assertVoidTypeAnnotation(\n node: t.Node | null | undefined,\n): asserts node is t.VoidTypeAnnotation {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'DeclareClass';\n\nexport function declareClass(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null | undefined,\n interfaceExtends: t.InterfaceExtends[] | null | undefined,\n body: t.ObjectTypeAnnotation,\n): t.DeclareClass {\n return {\n type: TYPE,\n id,\n typeParameters,\n extends: interfaceExtends,\n body,\n };\n}\n\nexport function isDeclareClass(\n node: t.Node | null | undefined,\n): node is t.DeclareClass {\n return is(TYPE, node);\n}\n\nexport function assertDeclareClass(\n node: t.Node | null | undefined,\n): asserts node is t.DeclareClass {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'DeclareExportAllDeclaration';\n\nexport function declareExportAllDeclaration(\n source: t.StringLiteral,\n): t.DeclareExportAllDeclaration {\n return {\n type: TYPE,\n source,\n };\n}\n\nexport function isDeclareExportAllDeclaration(\n node: t.Node | null | undefined,\n): node is t.DeclareExportAllDeclaration {\n return is(TYPE, node);\n}\n\nexport function assertDeclareExportAllDeclaration(\n node: t.Node | null | undefined,\n): asserts node is t.DeclareExportAllDeclaration {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'DeclareExportDeclaration';\n\nexport function declareExportDeclaration(\n declaration?: t.Flow | null,\n specifiers?: Array<t.ExportSpecifier | t.ExportNamespaceSpecifier> | null,\n source?: t.StringLiteral | null,\n): t.DeclareExportDeclaration {\n return {\n type: TYPE,\n declaration,\n specifiers,\n source,\n };\n}\n\nexport function isDeclareExportDeclaration(\n node: t.Node | null | undefined,\n): node is t.DeclareExportDeclaration {\n return is(TYPE, node);\n}\n\nexport function assertDeclareExportDeclaration(\n node: t.Node | null | undefined,\n): asserts node is t.DeclareExportDeclaration {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'DeclareFunction';\n\nexport function declareFunction(id: t.Identifier): t.DeclareFunction {\n return {\n type: TYPE,\n id,\n };\n}\n\nexport function isDeclareFunction(\n node: t.Node | null | undefined,\n): node is t.DeclareFunction {\n return is(TYPE, node);\n}\n\nexport function assertDeclareFunction(\n node: t.Node | null | undefined,\n): asserts node is t.DeclareFunction {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'DeclareInterface';\n\nexport function declareInterface(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null | undefined,\n interfaceExtends: t.InterfaceExtends[] | null | undefined,\n body: t.ObjectTypeAnnotation,\n): t.DeclareInterface {\n return {\n type: TYPE,\n id,\n typeParameters,\n extends: interfaceExtends,\n body,\n };\n}\n\nexport function isDeclareInterface(\n node: t.Node | null | undefined,\n): node is t.DeclareInterface {\n return is(TYPE, node);\n}\n\nexport function assertDeclareInterface(\n node: t.Node | null | undefined,\n): asserts node is t.DeclareInterface {\n assert(TYPE, node);\n}\n", "import type * as t from '@babel/types';\nimport { assert } from '../../../assert-node-type';\nimport { is } from '../../../is-node-type';\n\nconst TYPE = 'DeclareModule';\n\nexport