{"version":3,"sources":["webpack:///./node_modules/@babel/types/lib/converters/toKeyAlias.js","webpack:///./node_modules/@babel/types/lib/converters/toIdentifier.js","webpack:///./node_modules/@babel/types/lib/converters/ensureBlock.js","webpack:///./node_modules/@babel/types/lib/definitions/utils.js","webpack:///./node_modules/@babel/types/lib/converters/toBindingIdentifierName.js","webpack:///./node_modules/@babel/types/lib/definitions/typescript.js","webpack:///./node_modules/@babel/types/lib/definitions/experimental.js","webpack:///./node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js","webpack:///./node_modules/@babel/types/lib/converters/toBlock.js","webpack:///./node_modules/@babel/types/lib/definitions/flow.js","webpack:///./node_modules/@babel/types/lib/converters/toStatement.js","webpack:///./node_modules/@babel/types/lib/converters/valueToNode.js","webpack:///./node_modules/@babel/types/lib/definitions/jsx.js","webpack:///./node_modules/@babel/types/lib/definitions/index.js","webpack:///./node_modules/@babel/types/lib/converters/toComputedKey.js","webpack:///./node_modules/@babel/types/lib/definitions/misc.js","webpack:///./node_modules/@babel/types/lib/converters/toSequenceExpression.js","webpack:///./node_modules/@babel/types/lib/definitions/placeholders.js","webpack:///./node_modules/@babel/types/lib/converters/toExpression.js","webpack:///./node_modules/@babel/types/lib/definitions/core.js","webpack:///./node_modules/@babel/types/lib/definitions/deprecated-aliases.js"],"names":["Object","defineProperty","exports","value","default","toKeyAlias","_index","_cloneNode","_removePropertiesDeep","node","key","alias","kind","increment","isIdentifier","name","isStringLiteral","JSON","stringify","computed","static","uid","Number","MAX_SAFE_INTEGER","toIdentifier","_isValidIdentifier","_helperValidatorIdentifier","input","c","isIdentifierChar","codePointAt","replace","match","toUpperCase","ensureBlock","_toBlock","result","VISITOR_KEYS","NODE_PARENT_VALIDATIONS","NODE_FIELDS","FLIPPED_ALIAS_KEYS","DEPRECATED_KEYS","BUILDER_KEYS","ALIAS_KEYS","arrayOf","arrayOfType","assertEach","assertNodeOrValueType","assertNodeType","assertOneOf","assertOptionalChainStart","assertShape","assertValueType","chain","defineType","defineAliasedType","typeIs","validate","validateArrayOfType","validateOptional","validateOptionalType","validateType","_is","_validate","getType","val","Array","isArray","typeName","optional","elementType","callback","validator","i","length","subkey","v","BABEL_TYPES_8_BREAKING","validateChild","each","values","includes","TypeError","oneOf","types","type","oneOfNodeTypes","oneOfNodeOrValueTypes","valid","shape","errors","property","keys","validateField","error","push","message","join","shapeOf","_current","current","object","callee","fns","args","fn","chainOf","Error","validTypeOpts","validFieldKeys","store","aliases","opts","defined","_store$opts$inherits$","inherits","slice","additional","filter","a","unshift","fields","getOwnPropertyNames","field","def","deprecated","visitor","builder","k","deprecatedAlias","concat","undefined","forEach","toBindingIdentifierName","_toIdentifier","_utils","_core","bool","tSFunctionTypeAnnotationCommon","returnType","typeParameters","accessibility","readonly","parameter","override","decorators","assign","functionDeclarationCommon","classMethodOrDeclareMethodCommon","left","right","signatureDeclarationCommon","callConstructSignatureDeclaration","namedTypeElementCommon","typeAnnotation","parameters","tsKeywordTypes","fnOrCtrBase","abstract","parameterName","asserts","exprName","members","elementTypes","label","unionOrIntersection","checkType","extendsType","trueType","falseType","typeParameter","operator","objectType","indexType","nameType","literal","unaryExpression","unaryOperator","parent","argument","expression","declare","id","extends","body","TSTypeExpression","const","initializer","global","qualifier","options","isExport","moduleReference","importKind","params","in","out","constraint","async","exported","properties","elements","gatherSequenceExpressions","_getBindingIdentifiers","_index2","_productions","nodes","declars","exprs","ensureLastUndefined","isEmptyStatement","isExpression","isExpressionStatement","isVariableDeclaration","declar","declarations","bindings","init","assignmentExpression","isIfStatement","consequent","buildUndefinedNode","alternate","conditionalExpression","test","isBlockStatement","indexOf","sequenceExpression","toBlock","blockNodes","isStatement","isFunction","returnStatement","expressionStatement","blockStatement","defineInterfaceishType","isDeclareClass","mixins","implements","predicate","supertype","impltype","declaration","specifiers","source","exportKind","rest","this","indexers","callProperties","internalSlots","exact","inexact","method","variance","proto","qualification","bound","explicitType","hasUnknownMembers","toStatement","ignore","newType","mustHaveId","isClass","isAssignmentExpression","valueToNode","objectToString","Function","call","bind","prototype","toString","isRegExp","isPlainObject","getPrototypeOf","identifier","booleanLiteral","nullLiteral","stringLiteral","isFinite","numericLiteral","Math","abs","numerator","isNaN","binaryExpression","is","pattern","flags","exec","regExpLiteral","arrayExpression","map","props","nodeKey","objectProperty","objectExpression","openingElement","closingElement","children","selfClosing","namespace","attributes","openingFragment","closingFragment","enumerable","get","_deprecatedAliases","DEPRECATED_ALIASES","_placeholders","PLACEHOLDERS","PLACEHOLDERS_ALIAS","PLACEHOLDERS_FLIPPED_ALIAS","TYPES","_toFastProperties","toComputedKey","expectedNode","toSequenceExpression","_gatherSequenceExpressions","scope","Declaration","Pattern","hasOwnProperty","toExpression","patternLikeCommon","functionTypeAnnotationCommon","functionCommon","classMethodOrPropertyCommon","_helperStringParser","ASSIGNMENT_OPERATORS","BINARY_OPERATORS","inOp","directives","arguments","typeArguments","param","program","comments","tokens","update","generator","parentKey","nonComp","imported","meta","isKeyword","isReservedWord","invalid","LOGICAL_OPERATORS","normal","sourceType","interpreter","shorthand","listKey","index","expressions","discriminant","cases","block","handler","finalizer","prefix","UNARY_OPERATORS","UPDATE_OPERATORS","without","definite","superClass","superTypeParameters","assertions","sourced","sourceless","local","lval","await","module","phase","access","tag","quasi","raw","cooked","unterminatedCalled","str","firstInvalidLoc","readStringContents","strictNumericEscape","invalidEscapeSequence","numericSeparatorInEscapeSequence","unexpectedNumericSeparator","invalidDigit","invalidCodePoint","tail","quasis","delegate","ModuleDeclaration"],"mappings":"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","file":"js/Production~4c27a3ed.bf299043.js","sourcesContent":["\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toKeyAlias;\nvar _index = require(\"../validators/generated/index.js\");\nvar _cloneNode = require(\"../clone/cloneNode.js\");\nvar _removePropertiesDeep = require(\"../modifications/removePropertiesDeep.js\");\nfunction toKeyAlias(node, key = node.key) {\n let alias;\n if (node.kind === \"method\") {\n return toKeyAlias.increment() + \"\";\n } else if ((0, _index.isIdentifier)(key)) {\n alias = key.name;\n } else if ((0, _index.isStringLiteral)(key)) {\n alias = JSON.stringify(key.value);\n } else {\n alias = JSON.stringify((0, _removePropertiesDeep.default)((0, _cloneNode.default)(key)));\n }\n if (node.computed) {\n alias = `[${alias}]`;\n }\n if (node.static) {\n alias = `static:${alias}`;\n }\n return alias;\n}\ntoKeyAlias.uid = 0;\ntoKeyAlias.increment = function () {\n if (toKeyAlias.uid >= Number.MAX_SAFE_INTEGER) {\n return toKeyAlias.uid = 0;\n } else {\n return toKeyAlias.uid++;\n }\n};\n\n//# sourceMappingURL=toKeyAlias.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toIdentifier;\nvar _isValidIdentifier = require(\"../validators/isValidIdentifier.js\");\nvar _helperValidatorIdentifier = require(\"@babel/helper-validator-identifier\");\nfunction toIdentifier(input) {\n input = input + \"\";\n let name = \"\";\n for (const c of input) {\n name += (0, _helperValidatorIdentifier.isIdentifierChar)(c.codePointAt(0)) ? c : \"-\";\n }\n name = name.replace(/^[-0-9]+/, \"\");\n name = name.replace(/[-\\s]+(.)?/g, function (match, c) {\n return c ? c.toUpperCase() : \"\";\n });\n if (!(0, _isValidIdentifier.default)(name)) {\n name = `_${name}`;\n }\n return name || \"_\";\n}\n\n//# sourceMappingURL=toIdentifier.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = ensureBlock;\nvar _toBlock = require(\"./toBlock.js\");\nfunction ensureBlock(node, key = \"body\") {\n const result = (0, _toBlock.default)(node[key], node);\n node[key] = result;\n return result;\n}\n\n//# sourceMappingURL=ensureBlock.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.VISITOR_KEYS = exports.NODE_PARENT_VALIDATIONS = exports.NODE_FIELDS = exports.FLIPPED_ALIAS_KEYS = exports.DEPRECATED_KEYS = exports.BUILDER_KEYS = exports.ALIAS_KEYS = void 0;\nexports.arrayOf = arrayOf;\nexports.arrayOfType = arrayOfType;\nexports.assertEach = assertEach;\nexports.assertNodeOrValueType = assertNodeOrValueType;\nexports.assertNodeType = assertNodeType;\nexports.assertOneOf = assertOneOf;\nexports.assertOptionalChainStart = assertOptionalChainStart;\nexports.assertShape = assertShape;\nexports.assertValueType = assertValueType;\nexports.chain = chain;\nexports.default = defineType;\nexports.defineAliasedType = defineAliasedType;\nexports.typeIs = typeIs;\nexports.validate = validate;\nexports.validateArrayOfType = validateArrayOfType;\nexports.validateOptional = validateOptional;\nexports.validateOptionalType = validateOptionalType;\nexports.validateType = validateType;\nvar _is = require(\"../validators/is.js\");\nvar _validate = require(\"../validators/validate.js\");\nconst VISITOR_KEYS = exports.VISITOR_KEYS = {};\nconst ALIAS_KEYS = exports.ALIAS_KEYS = {};\nconst FLIPPED_ALIAS_KEYS = exports.FLIPPED_ALIAS_KEYS = {};\nconst NODE_FIELDS = exports.NODE_FIELDS = {};\nconst BUILDER_KEYS = exports.BUILDER_KEYS = {};\nconst DEPRECATED_KEYS = exports.DEPRECATED_KEYS = {};\nconst NODE_PARENT_VALIDATIONS = exports.NODE_PARENT_VALIDATIONS = {};\nfunction getType(val) {\n if (Array.isArray(val)) {\n return \"array\";\n } else if (val === null) {\n return \"null\";\n } else {\n return typeof val;\n }\n}\nfunction validate(validate) {\n return {\n validate\n };\n}\nfunction typeIs(typeName) {\n return typeof typeName === \"string\" ? assertNodeType(typeName) : assertNodeType(...typeName);\n}\nfunction validateType(typeName) {\n return validate(typeIs(typeName));\n}\nfunction validateOptional(validate) {\n return {\n validate,\n optional: true\n };\n}\nfunction validateOptionalType(typeName) {\n return {\n validate: typeIs(typeName),\n optional: true\n };\n}\nfunction arrayOf(elementType) {\n return chain(assertValueType(\"array\"), assertEach(elementType));\n}\nfunction arrayOfType(typeName) {\n return arrayOf(typeIs(typeName));\n}\nfunction validateArrayOfType(typeName) {\n return validate(arrayOfType(typeName));\n}\nfunction assertEach(callback) {\n function validator(node, key, val) {\n if (!Array.isArray(val)) return;\n for (let i = 0; i < val.length; i++) {\n const subkey = `${key}[${i}]`;\n const v = val[i];\n callback(node, subkey, v);\n if (process.env.BABEL_TYPES_8_BREAKING) (0, _validate.validateChild)(node, subkey, v);\n }\n }\n validator.each = callback;\n return validator;\n}\nfunction assertOneOf(...values) {\n function validate(node, key, val) {\n if (!values.includes(val)) {\n throw new TypeError(`Property ${key} expected value to be one of ${JSON.stringify(values)} but got ${JSON.stringify(val)}`);\n }\n }\n validate.oneOf = values;\n return validate;\n}\nfunction assertNodeType(...types) {\n function validate(node, key, val) {\n for (const type of types) {\n if ((0, _is.default)(type, val)) {\n (0, _validate.validateChild)(node, key, val);\n return;\n }\n }\n throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val == null ? void 0 : val.type)}`);\n }\n validate.oneOfNodeTypes = types;\n return validate;\n}\nfunction assertNodeOrValueType(...types) {\n function validate(node, key, val) {\n for (const type of types) {\n if (getType(val) === type || (0, _is.default)(type, val)) {\n (0, _validate.validateChild)(node, key, val);\n return;\n }\n }\n throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val == null ? void 0 : val.type)}`);\n }\n validate.oneOfNodeOrValueTypes = types;\n return validate;\n}\nfunction assertValueType(type) {\n function validate(node, key, val) {\n const valid = getType(val) === type;\n if (!valid) {\n throw new TypeError(`Property ${key} expected type of ${type} but got ${getType(val)}`);\n }\n }\n validate.type = type;\n return validate;\n}\nfunction assertShape(shape) {\n function validate(node, key, val) {\n const errors = [];\n for (const property of Object.keys(shape)) {\n try {\n (0, _validate.validateField)(node, property, val[property], shape[property]);\n } catch (error) {\n if (error instanceof TypeError) {\n errors.push(error.message);\n continue;\n }\n throw error;\n }\n }\n if (errors.length) {\n throw new TypeError(`Property ${key} of ${node.type} expected to have the following:\\n${errors.join(\"\\n\")}`);\n }\n }\n validate.shapeOf = shape;\n return validate;\n}\nfunction assertOptionalChainStart() {\n function validate(node) {\n var _current;\n let current = node;\n while (node) {\n const {\n type\n } = current;\n if (type === \"OptionalCallExpression\") {\n if (current.optional) return;\n current = current.callee;\n continue;\n }\n if (type === \"OptionalMemberExpression\") {\n if (current.optional) return;\n current = current.object;\n continue;\n }\n break;\n }\n throw new TypeError(`Non-optional ${node.type} must chain from an optional OptionalMemberExpression or OptionalCallExpression. Found chain from ${(_current = current) == null ? void 0 : _current.type}`);\n }\n return validate;\n}\nfunction chain(...fns) {\n function validate(...args) {\n for (const fn of fns) {\n fn(...args);\n }\n }\n validate.chainOf = fns;\n if (fns.length >= 2 && \"type\" in fns[0] && fns[0].type === \"array\" && !(\"each\" in fns[1])) {\n throw new Error(`An assertValueType(\"array\") validator can only be followed by an assertEach(...) validator.`);\n }\n return validate;\n}\nconst validTypeOpts = [\"aliases\", \"builder\", \"deprecatedAlias\", \"fields\", \"inherits\", \"visitor\", \"validate\"];\nconst validFieldKeys = [\"default\", \"optional\", \"deprecated\", \"validate\"];\nconst store = {};\nfunction defineAliasedType(...aliases) {\n return (type, opts = {}) => {\n let defined = opts.aliases;\n if (!defined) {\n var _store$opts$inherits$, _defined;\n if (opts.inherits) defined = (_store$opts$inherits$ = store[opts.inherits].aliases) == null ? void 0 : _store$opts$inherits$.slice();\n (_defined = defined) != null ? _defined : defined = [];\n opts.aliases = defined;\n }\n const additional = aliases.filter(a => !defined.includes(a));\n defined.unshift(...additional);\n defineType(type, opts);\n };\n}\nfunction defineType(type, opts = {}) {\n const inherits = opts.inherits && store[opts.inherits] || {};\n let fields = opts.fields;\n if (!fields) {\n fields = {};\n if (inherits.fields) {\n const keys = Object.getOwnPropertyNames(inherits.fields);\n for (const key of keys) {\n const field = inherits.fields[key];\n const def = field.default;\n if (Array.isArray(def) ? def.length > 0 : def && typeof def === \"object\") {\n throw new Error(\"field defaults can only be primitives or empty arrays currently\");\n }\n fields[key] = {\n default: Array.isArray(def) ? [] : def,\n optional: field.optional,\n deprecated: field.deprecated,\n validate: field.validate\n };\n }\n }\n }\n const visitor = opts.visitor || inherits.visitor || [];\n const aliases = opts.aliases || inherits.aliases || [];\n const builder = opts.builder || inherits.builder || opts.visitor || [];\n for (const k of Object.keys(opts)) {\n if (!validTypeOpts.includes(k)) {\n throw new Error(`Unknown type option \"${k}\" on ${type}`);\n }\n }\n if (opts.deprecatedAlias) {\n DEPRECATED_KEYS[opts.deprecatedAlias] = type;\n }\n for (const key of visitor.concat(builder)) {\n fields[key] = fields[key] || {};\n }\n for (const key of Object.keys(fields)) {\n const field = fields[key];\n if (field.default !== undefined && !builder.includes(key)) {\n field.optional = true;\n }\n if (field.default === undefined) {\n field.default = null;\n } else if (!field.validate && field.default != null) {\n field.validate = assertValueType(getType(field.default));\n }\n for (const k of Object.keys(field)) {\n if (!validFieldKeys.includes(k)) {\n throw new Error(`Unknown field key \"${k}\" on ${type}.${key}`);\n }\n }\n }\n VISITOR_KEYS[type] = opts.visitor = visitor;\n BUILDER_KEYS[type] = opts.builder = builder;\n NODE_FIELDS[type] = opts.fields = fields;\n ALIAS_KEYS[type] = opts.aliases = aliases;\n aliases.forEach(alias => {\n FLIPPED_ALIAS_KEYS[alias] = FLIPPED_ALIAS_KEYS[alias] || [];\n FLIPPED_ALIAS_KEYS[alias].push(type);\n });\n if (opts.validate) {\n NODE_PARENT_VALIDATIONS[type] = opts.validate;\n }\n store[type] = opts;\n}\n\n//# sourceMappingURL=utils.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toBindingIdentifierName;\nvar _toIdentifier = require(\"./toIdentifier.js\");\nfunction toBindingIdentifierName(name) {\n name = (0, _toIdentifier.default)(name);\n if (name === \"eval\" || name === \"arguments\") name = \"_\" + name;\n return name;\n}\n\n//# sourceMappingURL=toBindingIdentifierName.js.map\n","\"use strict\";\n\nvar _utils = require(\"./utils.js\");\nvar _core = require(\"./core.js\");\nvar _is = require(\"../validators/is.js\");\nconst defineType = (0, _utils.defineAliasedType)(\"TypeScript\");\nconst bool = (0, _utils.assertValueType)(\"boolean\");\nconst tSFunctionTypeAnnotationCommon = () => ({\n returnType: {\n validate: (0, _utils.assertNodeType)(\"TSTypeAnnotation\", \"Noop\"),\n optional: true\n },\n typeParameters: {\n validate: (0, _utils.assertNodeType)(\"TSTypeParameterDeclaration\", \"Noop\"),\n optional: true\n }\n});\ndefineType(\"TSParameterProperty\", {\n aliases: [\"LVal\"],\n visitor: [\"parameter\"],\n fields: {\n accessibility: {\n validate: (0, _utils.assertOneOf)(\"public\", \"private\", \"protected\"),\n optional: true\n },\n readonly: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n parameter: {\n validate: (0, _utils.assertNodeType)(\"Identifier\", \"AssignmentPattern\")\n },\n override: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n decorators: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"Decorator\"))),\n optional: true\n }\n }\n});\ndefineType(\"TSDeclareFunction\", {\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"typeParameters\", \"params\", \"returnType\"],\n fields: Object.assign({}, (0, _core.functionDeclarationCommon)(), tSFunctionTypeAnnotationCommon())\n});\ndefineType(\"TSDeclareMethod\", {\n visitor: [\"decorators\", \"key\", \"typeParameters\", \"params\", \"returnType\"],\n fields: Object.assign({}, (0, _core.classMethodOrDeclareMethodCommon)(), tSFunctionTypeAnnotationCommon())\n});\ndefineType(\"TSQualifiedName\", {\n aliases: [\"TSEntityName\"],\n visitor: [\"left\", \"right\"],\n fields: {\n left: (0, _utils.validateType)(\"TSEntityName\"),\n right: (0, _utils.validateType)(\"Identifier\")\n }\n});\nconst signatureDeclarationCommon = () => ({\n typeParameters: (0, _utils.validateOptionalType)(\"TSTypeParameterDeclaration\"),\n [\"parameters\"]: (0, _utils.validateArrayOfType)([\"ArrayPattern\", \"Identifier\", \"ObjectPattern\", \"RestElement\"]),\n [\"typeAnnotation\"]: (0, _utils.validateOptionalType)(\"TSTypeAnnotation\")\n});\nconst callConstructSignatureDeclaration = {\n aliases: [\"TSTypeElement\"],\n visitor: [\"typeParameters\", \"parameters\", \"typeAnnotation\"],\n fields: signatureDeclarationCommon()\n};\ndefineType(\"TSCallSignatureDeclaration\", callConstructSignatureDeclaration);\ndefineType(\"TSConstructSignatureDeclaration\", callConstructSignatureDeclaration);\nconst namedTypeElementCommon = () => ({\n key: (0, _utils.validateType)(\"Expression\"),\n computed: {\n default: false\n },\n optional: (0, _utils.validateOptional)(bool)\n});\ndefineType(\"TSPropertySignature\", {\n aliases: [\"TSTypeElement\"],\n visitor: [\"key\", \"typeAnnotation\"],\n fields: Object.assign({}, namedTypeElementCommon(), {\n readonly: (0, _utils.validateOptional)(bool),\n typeAnnotation: (0, _utils.validateOptionalType)(\"TSTypeAnnotation\"),\n kind: {\n validate: (0, _utils.assertOneOf)(\"get\", \"set\")\n }\n })\n});\ndefineType(\"TSMethodSignature\", {\n aliases: [\"TSTypeElement\"],\n visitor: [\"key\", \"typeParameters\", \"parameters\", \"typeAnnotation\"],\n fields: Object.assign({}, signatureDeclarationCommon(), namedTypeElementCommon(), {\n kind: {\n validate: (0, _utils.assertOneOf)(\"method\", \"get\", \"set\")\n }\n })\n});\ndefineType(\"TSIndexSignature\", {\n aliases: [\"TSTypeElement\"],\n visitor: [\"parameters\", \"typeAnnotation\"],\n fields: {\n readonly: (0, _utils.validateOptional)(bool),\n static: (0, _utils.validateOptional)(bool),\n parameters: (0, _utils.validateArrayOfType)(\"Identifier\"),\n typeAnnotation: (0, _utils.validateOptionalType)(\"TSTypeAnnotation\")\n }\n});\nconst tsKeywordTypes = [\"TSAnyKeyword\", \"TSBooleanKeyword\", \"TSBigIntKeyword\", \"TSIntrinsicKeyword\", \"TSNeverKeyword\", \"TSNullKeyword\", \"TSNumberKeyword\", \"TSObjectKeyword\", \"TSStringKeyword\", \"TSSymbolKeyword\", \"TSUndefinedKeyword\", \"TSUnknownKeyword\", \"TSVoidKeyword\"];\nfor (const type of tsKeywordTypes) {\n defineType(type, {\n aliases: [\"TSType\", \"TSBaseType\"],\n visitor: [],\n fields: {}\n });\n}\ndefineType(\"TSThisType\", {\n aliases: [\"TSType\", \"TSBaseType\"],\n visitor: [],\n fields: {}\n});\nconst fnOrCtrBase = {\n aliases: [\"TSType\"],\n visitor: [\"typeParameters\", \"parameters\", \"typeAnnotation\"]\n};\ndefineType(\"TSFunctionType\", Object.assign({}, fnOrCtrBase, {\n fields: signatureDeclarationCommon()\n}));\ndefineType(\"TSConstructorType\", Object.assign({}, fnOrCtrBase, {\n fields: Object.assign({}, signatureDeclarationCommon(), {\n abstract: (0, _utils.validateOptional)(bool)\n })\n}));\ndefineType(\"TSTypeReference\", {\n aliases: [\"TSType\"],\n visitor: [\"typeName\", \"typeParameters\"],\n fields: {\n typeName: (0, _utils.validateType)(\"TSEntityName\"),\n typeParameters: (0, _utils.validateOptionalType)(\"TSTypeParameterInstantiation\")\n }\n});\ndefineType(\"TSTypePredicate\", {\n aliases: [\"TSType\"],\n visitor: [\"parameterName\", \"typeAnnotation\"],\n builder: [\"parameterName\", \"typeAnnotation\", \"asserts\"],\n fields: {\n parameterName: (0, _utils.validateType)([\"Identifier\", \"TSThisType\"]),\n typeAnnotation: (0, _utils.validateOptionalType)(\"TSTypeAnnotation\"),\n asserts: (0, _utils.validateOptional)(bool)\n }\n});\ndefineType(\"TSTypeQuery\", {\n aliases: [\"TSType\"],\n visitor: [\"exprName\", \"typeParameters\"],\n fields: {\n exprName: (0, _utils.validateType)([\"TSEntityName\", \"TSImportType\"]),\n typeParameters: (0, _utils.validateOptionalType)(\"TSTypeParameterInstantiation\")\n }\n});\ndefineType(\"TSTypeLiteral\", {\n aliases: [\"TSType\"],\n visitor: [\"members\"],\n fields: {\n members: (0, _utils.validateArrayOfType)(\"TSTypeElement\")\n }\n});\ndefineType(\"TSArrayType\", {\n aliases: [\"TSType\"],\n visitor: [\"elementType\"],\n fields: {\n elementType: (0, _utils.validateType)(\"TSType\")\n }\n});\ndefineType(\"TSTupleType\", {\n aliases: [\"TSType\"],\n visitor: [\"elementTypes\"],\n fields: {\n elementTypes: (0, _utils.validateArrayOfType)([\"TSType\", \"TSNamedTupleMember\"])\n }\n});\ndefineType(\"TSOptionalType\", {\n aliases: [\"TSType\"],\n visitor: [\"typeAnnotation\"],\n fields: {\n typeAnnotation: (0, _utils.validateType)(\"TSType\")\n }\n});\ndefineType(\"TSRestType\", {\n aliases: [\"TSType\"],\n visitor: [\"typeAnnotation\"],\n fields: {\n typeAnnotation: (0, _utils.validateType)(\"TSType\")\n }\n});\ndefineType(\"TSNamedTupleMember\", {\n visitor: [\"label\", \"elementType\"],\n builder: [\"label\", \"elementType\", \"optional\"],\n fields: {\n label: (0, _utils.validateType)(\"Identifier\"),\n optional: {\n validate: bool,\n default: false\n },\n elementType: (0, _utils.validateType)(\"TSType\")\n }\n});\nconst unionOrIntersection = {\n aliases: [\"TSType\"],\n visitor: [\"types\"],\n fields: {\n types: (0, _utils.validateArrayOfType)(\"TSType\")\n }\n};\ndefineType(\"TSUnionType\", unionOrIntersection);\ndefineType(\"TSIntersectionType\", unionOrIntersection);\ndefineType(\"TSConditionalType\", {\n aliases: [\"TSType\"],\n visitor: [\"checkType\", \"extendsType\", \"trueType\", \"falseType\"],\n fields: {\n checkType: (0, _utils.validateType)(\"TSType\"),\n extendsType: (0, _utils.validateType)(\"TSType\"),\n trueType: (0, _utils.validateType)(\"TSType\"),\n falseType: (0, _utils.validateType)(\"TSType\")\n }\n});\ndefineType(\"TSInferType\", {\n aliases: [\"TSType\"],\n visitor: [\"typeParameter\"],\n fields: {\n typeParameter: (0, _utils.validateType)(\"TSTypeParameter\")\n }\n});\ndefineType(\"TSParenthesizedType\", {\n aliases: [\"TSType\"],\n visitor: [\"typeAnnotation\"],\n fields: {\n typeAnnotation: (0, _utils.validateType)(\"TSType\")\n }\n});\ndefineType(\"TSTypeOperator\", {\n aliases: [\"TSType\"],\n visitor: [\"typeAnnotation\"],\n fields: {\n operator: (0, _utils.validate)((0, _utils.assertValueType)(\"string\")),\n typeAnnotation: (0, _utils.validateType)(\"TSType\")\n }\n});\ndefineType(\"TSIndexedAccessType\", {\n aliases: [\"TSType\"],\n visitor: [\"objectType\", \"indexType\"],\n fields: {\n objectType: (0, _utils.validateType)(\"TSType\"),\n indexType: (0, _utils.validateType)(\"TSType\")\n }\n});\ndefineType(\"TSMappedType\", {\n aliases: [\"TSType\"],\n visitor: [\"typeParameter\", \"nameType\", \"typeAnnotation\"],\n builder: [\"typeParameter\", \"typeAnnotation\", \"nameType\"],\n fields: Object.assign({}, {\n typeParameter: (0, _utils.validateType)(\"TSTypeParameter\")\n }, {\n readonly: (0, _utils.validateOptional)((0, _utils.assertOneOf)(true, false, \"+\", \"-\")),\n optional: (0, _utils.validateOptional)((0, _utils.assertOneOf)(true, false, \"+\", \"-\")),\n typeAnnotation: (0, _utils.validateOptionalType)(\"TSType\"),\n nameType: (0, _utils.validateOptionalType)(\"TSType\")\n })\n});\ndefineType(\"TSLiteralType\", {\n aliases: [\"TSType\", \"TSBaseType\"],\n visitor: [\"literal\"],\n fields: {\n literal: {\n validate: function () {\n const unaryExpression = (0, _utils.assertNodeType)(\"NumericLiteral\", \"BigIntLiteral\");\n const unaryOperator = (0, _utils.assertOneOf)(\"-\");\n const literal = (0, _utils.assertNodeType)(\"NumericLiteral\", \"StringLiteral\", \"BooleanLiteral\", \"BigIntLiteral\", \"TemplateLiteral\");\n function validator(parent, key, node) {\n if ((0, _is.default)(\"UnaryExpression\", node)) {\n unaryOperator(node, \"operator\", node.operator);\n unaryExpression(node, \"argument\", node.argument);\n } else {\n literal(parent, key, node);\n }\n }\n validator.oneOfNodeTypes = [\"NumericLiteral\", \"StringLiteral\", \"BooleanLiteral\", \"BigIntLiteral\", \"TemplateLiteral\", \"UnaryExpression\"];\n return validator;\n }()\n }\n }\n});\ndefineType(\"TSExpressionWithTypeArguments\", {\n aliases: [\"TSType\"],\n visitor: [\"expression\", \"typeParameters\"],\n fields: {\n expression: (0, _utils.validateType)(\"TSEntityName\"),\n typeParameters: (0, _utils.validateOptionalType)(\"TSTypeParameterInstantiation\")\n }\n});\ndefineType(\"TSInterfaceDeclaration\", {\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"typeParameters\", \"extends\", \"body\"],\n fields: {\n declare: (0, _utils.validateOptional)(bool),\n id: (0, _utils.validateType)(\"Identifier\"),\n typeParameters: (0, _utils.validateOptionalType)(\"TSTypeParameterDeclaration\"),\n extends: (0, _utils.validateOptional)((0, _utils.arrayOfType)(\"TSExpressionWithTypeArguments\")),\n body: (0, _utils.validateType)(\"TSInterfaceBody\")\n }\n});\ndefineType(\"TSInterfaceBody\", {\n visitor: [\"body\"],\n fields: {\n body: (0, _utils.validateArrayOfType)(\"TSTypeElement\")\n }\n});\ndefineType(\"TSTypeAliasDeclaration\", {\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"typeParameters\", \"typeAnnotation\"],\n fields: {\n declare: (0, _utils.validateOptional)(bool),\n id: (0, _utils.validateType)(\"Identifier\"),\n typeParameters: (0, _utils.validateOptionalType)(\"TSTypeParameterDeclaration\"),\n typeAnnotation: (0, _utils.validateType)(\"TSType\")\n }\n});\ndefineType(\"TSInstantiationExpression\", {\n aliases: [\"Expression\"],\n visitor: [\"expression\", \"typeParameters\"],\n fields: {\n expression: (0, _utils.validateType)(\"Expression\"),\n typeParameters: (0, _utils.validateOptionalType)(\"TSTypeParameterInstantiation\")\n }\n});\nconst TSTypeExpression = {\n aliases: [\"Expression\", \"LVal\", \"PatternLike\"],\n visitor: [\"expression\", \"typeAnnotation\"],\n fields: {\n expression: (0, _utils.validateType)(\"Expression\"),\n typeAnnotation: (0, _utils.validateType)(\"TSType\")\n }\n};\ndefineType(\"TSAsExpression\", TSTypeExpression);\ndefineType(\"TSSatisfiesExpression\", TSTypeExpression);\ndefineType(\"TSTypeAssertion\", {\n aliases: [\"Expression\", \"LVal\", \"PatternLike\"],\n visitor: [\"typeAnnotation\", \"expression\"],\n fields: {\n typeAnnotation: (0, _utils.validateType)(\"TSType\"),\n expression: (0, _utils.validateType)(\"Expression\")\n }\n});\ndefineType(\"TSEnumDeclaration\", {\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"members\"],\n fields: {\n declare: (0, _utils.validateOptional)(bool),\n const: (0, _utils.validateOptional)(bool),\n id: (0, _utils.validateType)(\"Identifier\"),\n members: (0, _utils.validateArrayOfType)(\"TSEnumMember\"),\n initializer: (0, _utils.validateOptionalType)(\"Expression\")\n }\n});\ndefineType(\"TSEnumMember\", {\n visitor: [\"id\", \"initializer\"],\n fields: {\n id: (0, _utils.validateType)([\"Identifier\", \"StringLiteral\"]),\n initializer: (0, _utils.validateOptionalType)(\"Expression\")\n }\n});\ndefineType(\"TSModuleDeclaration\", {\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"body\"],\n fields: {\n declare: (0, _utils.validateOptional)(bool),\n global: (0, _utils.validateOptional)(bool),\n id: (0, _utils.validateType)([\"Identifier\", \"StringLiteral\"]),\n body: (0, _utils.validateType)([\"TSModuleBlock\", \"TSModuleDeclaration\"])\n }\n});\ndefineType(\"TSModuleBlock\", {\n aliases: [\"Scopable\", \"Block\", \"BlockParent\", \"FunctionParent\"],\n visitor: [\"body\"],\n fields: {\n body: (0, _utils.validateArrayOfType)(\"Statement\")\n }\n});\ndefineType(\"TSImportType\", {\n aliases: [\"TSType\"],\n visitor: [\"argument\", \"qualifier\", \"typeParameters\"],\n fields: {\n argument: (0, _utils.validateType)(\"StringLiteral\"),\n qualifier: (0, _utils.validateOptionalType)(\"TSEntityName\"),\n typeParameters: (0, _utils.validateOptionalType)(\"TSTypeParameterInstantiation\"),\n options: {\n validate: (0, _utils.assertNodeType)(\"Expression\"),\n optional: true\n }\n }\n});\ndefineType(\"TSImportEqualsDeclaration\", {\n aliases: [\"Statement\"],\n visitor: [\"id\", \"moduleReference\"],\n fields: {\n isExport: (0, _utils.validate)(bool),\n id: (0, _utils.validateType)(\"Identifier\"),\n moduleReference: (0, _utils.validateType)([\"TSEntityName\", \"TSExternalModuleReference\"]),\n importKind: {\n validate: (0, _utils.assertOneOf)(\"type\", \"value\"),\n optional: true\n }\n }\n});\ndefineType(\"TSExternalModuleReference\", {\n visitor: [\"expression\"],\n fields: {\n expression: (0, _utils.validateType)(\"StringLiteral\")\n }\n});\ndefineType(\"TSNonNullExpression\", {\n aliases: [\"Expression\", \"LVal\", \"PatternLike\"],\n visitor: [\"expression\"],\n fields: {\n expression: (0, _utils.validateType)(\"Expression\")\n }\n});\ndefineType(\"TSExportAssignment\", {\n aliases: [\"Statement\"],\n visitor: [\"expression\"],\n fields: {\n expression: (0, _utils.validateType)(\"Expression\")\n }\n});\ndefineType(\"TSNamespaceExportDeclaration\", {\n aliases: [\"Statement\"],\n visitor: [\"id\"],\n fields: {\n id: (0, _utils.validateType)(\"Identifier\")\n }\n});\ndefineType(\"TSTypeAnnotation\", {\n visitor: [\"typeAnnotation\"],\n fields: {\n typeAnnotation: {\n validate: (0, _utils.assertNodeType)(\"TSType\")\n }\n }\n});\ndefineType(\"TSTypeParameterInstantiation\", {\n visitor: [\"params\"],\n fields: {\n params: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"TSType\")))\n }\n }\n});\ndefineType(\"TSTypeParameterDeclaration\", {\n visitor: [\"params\"],\n fields: {\n params: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"TSTypeParameter\")))\n }\n }\n});\ndefineType(\"TSTypeParameter\", {\n builder: [\"constraint\", \"default\", \"name\"],\n visitor: [\"constraint\", \"default\"],\n fields: {\n name: {\n validate: (0, _utils.assertValueType)(\"string\")\n },\n in: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n out: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n const: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n constraint: {\n validate: (0, _utils.assertNodeType)(\"TSType\"),\n optional: true\n },\n default: {\n validate: (0, _utils.assertNodeType)(\"TSType\"),\n optional: true\n }\n }\n});\n\n//# sourceMappingURL=typescript.js.map\n","\"use strict\";\n\nvar _utils = require(\"./utils.js\");\n(0, _utils.default)(\"ArgumentPlaceholder\", {});\n(0, _utils.default)(\"BindExpression\", {\n visitor: [\"object\", \"callee\"],\n aliases: [\"Expression\"],\n fields: !process.env.BABEL_TYPES_8_BREAKING ? {\n object: {\n validate: Object.assign(() => {}, {\n oneOfNodeTypes: [\"Expression\"]\n })\n },\n callee: {\n validate: Object.assign(() => {}, {\n oneOfNodeTypes: [\"Expression\"]\n })\n }\n } : {\n object: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n callee: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n }\n});\n(0, _utils.default)(\"ImportAttribute\", {\n visitor: [\"key\", \"value\"],\n fields: {\n key: {\n validate: (0, _utils.assertNodeType)(\"Identifier\", \"StringLiteral\")\n },\n value: {\n validate: (0, _utils.assertNodeType)(\"StringLiteral\")\n }\n }\n});\n(0, _utils.default)(\"Decorator\", {\n visitor: [\"expression\"],\n fields: {\n expression: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n }\n});\n(0, _utils.default)(\"DoExpression\", {\n visitor: [\"body\"],\n builder: [\"body\", \"async\"],\n aliases: [\"Expression\"],\n fields: {\n body: {\n validate: (0, _utils.assertNodeType)(\"BlockStatement\")\n },\n async: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n default: false\n }\n }\n});\n(0, _utils.default)(\"ExportDefaultSpecifier\", {\n visitor: [\"exported\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n exported: {\n validate: (0, _utils.assertNodeType)(\"Identifier\")\n }\n }\n});\n(0, _utils.default)(\"RecordExpression\", {\n visitor: [\"properties\"],\n aliases: [\"Expression\"],\n fields: {\n properties: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"ObjectProperty\", \"SpreadElement\")))\n }\n }\n});\n(0, _utils.default)(\"TupleExpression\", {\n fields: {\n elements: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"Expression\", \"SpreadElement\"))),\n default: []\n }\n },\n visitor: [\"elements\"],\n aliases: [\"Expression\"]\n});\n(0, _utils.default)(\"DecimalLiteral\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: (0, _utils.assertValueType)(\"string\")\n }\n },\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"]\n});\n(0, _utils.default)(\"ModuleExpression\", {\n visitor: [\"body\"],\n fields: {\n body: {\n validate: (0, _utils.assertNodeType)(\"Program\")\n }\n },\n aliases: [\"Expression\"]\n});\n(0, _utils.default)(\"TopicReference\", {\n aliases: [\"Expression\"]\n});\n(0, _utils.default)(\"PipelineTopicExpression\", {\n builder: [\"expression\"],\n visitor: [\"expression\"],\n fields: {\n expression: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n },\n aliases: [\"Expression\"]\n});\n(0, _utils.default)(\"PipelineBareFunction\", {\n builder: [\"callee\"],\n visitor: [\"callee\"],\n fields: {\n callee: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n },\n aliases: [\"Expression\"]\n});\n(0, _utils.default)(\"PipelinePrimaryTopicReference\", {\n aliases: [\"Expression\"]\n});\n\n//# sourceMappingURL=experimental.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = gatherSequenceExpressions;\nvar _getBindingIdentifiers = require(\"../retrievers/getBindingIdentifiers.js\");\nvar _index = require(\"../validators/generated/index.js\");\nvar _index2 = require(\"../builders/generated/index.js\");\nvar _productions = require(\"../builders/productions.js\");\nvar _cloneNode = require(\"../clone/cloneNode.js\");\n;\nfunction gatherSequenceExpressions(nodes, declars) {\n const exprs = [];\n let ensureLastUndefined = true;\n for (const node of nodes) {\n if (!(0, _index.isEmptyStatement)(node)) {\n ensureLastUndefined = false;\n }\n if ((0, _index.isExpression)(node)) {\n exprs.push(node);\n } else if ((0, _index.isExpressionStatement)(node)) {\n exprs.push(node.expression);\n } else if ((0, _index.isVariableDeclaration)(node)) {\n if (node.kind !== \"var\") return;\n for (const declar of node.declarations) {\n const bindings = (0, _getBindingIdentifiers.default)(declar);\n for (const key of Object.keys(bindings)) {\n declars.push({\n kind: node.kind,\n id: (0, _cloneNode.default)(bindings[key])\n });\n }\n if (declar.init) {\n exprs.push((0, _index2.assignmentExpression)(\"=\", declar.id, declar.init));\n }\n }\n ensureLastUndefined = true;\n } else if ((0, _index.isIfStatement)(node)) {\n const consequent = node.consequent ? gatherSequenceExpressions([node.consequent], declars) : (0, _productions.buildUndefinedNode)();\n const alternate = node.alternate ? gatherSequenceExpressions([node.alternate], declars) : (0, _productions.buildUndefinedNode)();\n if (!consequent || !alternate) return;\n exprs.push((0, _index2.conditionalExpression)(node.test, consequent, alternate));\n } else if ((0, _index.isBlockStatement)(node)) {\n const body = gatherSequenceExpressions(node.body, declars);\n if (!body) return;\n exprs.push(body);\n } else if ((0, _index.isEmptyStatement)(node)) {\n if (nodes.indexOf(node) === 0) {\n ensureLastUndefined = true;\n }\n } else {\n return;\n }\n }\n if (ensureLastUndefined) {\n exprs.push((0, _productions.buildUndefinedNode)());\n }\n if (exprs.length === 1) {\n return exprs[0];\n } else {\n return (0, _index2.sequenceExpression)(exprs);\n }\n}\n\n//# sourceMappingURL=gatherSequenceExpressions.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toBlock;\nvar _index = require(\"../validators/generated/index.js\");\nvar _index2 = require(\"../builders/generated/index.js\");\nfunction toBlock(node, parent) {\n if ((0, _index.isBlockStatement)(node)) {\n return node;\n }\n let blockNodes = [];\n if ((0, _index.isEmptyStatement)(node)) {\n blockNodes = [];\n } else {\n if (!(0, _index.isStatement)(node)) {\n if ((0, _index.isFunction)(parent)) {\n node = (0, _index2.returnStatement)(node);\n } else {\n node = (0, _index2.expressionStatement)(node);\n }\n }\n blockNodes = [node];\n }\n return (0, _index2.blockStatement)(blockNodes);\n}\n\n//# sourceMappingURL=toBlock.js.map\n","\"use strict\";\n\nvar _utils = require(\"./utils.js\");\nconst defineType = (0, _utils.defineAliasedType)(\"Flow\");\nconst defineInterfaceishType = name => {\n const isDeclareClass = name === \"DeclareClass\";\n defineType(name, {\n builder: [\"id\", \"typeParameters\", \"extends\", \"body\"],\n visitor: [\"id\", \"typeParameters\", \"extends\", ...(isDeclareClass ? [\"mixins\", \"implements\"] : []), \"body\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: Object.assign({\n id: (0, _utils.validateType)(\"Identifier\"),\n typeParameters: (0, _utils.validateOptionalType)(\"TypeParameterDeclaration\"),\n extends: (0, _utils.validateOptional)((0, _utils.arrayOfType)(\"InterfaceExtends\"))\n }, isDeclareClass ? {\n mixins: (0, _utils.validateOptional)((0, _utils.arrayOfType)(\"InterfaceExtends\")),\n implements: (0, _utils.validateOptional)((0, _utils.arrayOfType)(\"ClassImplements\"))\n } : {}, {\n body: (0, _utils.validateType)(\"ObjectTypeAnnotation\")\n })\n });\n};\ndefineType(\"AnyTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"]\n});\ndefineType(\"ArrayTypeAnnotation\", {\n visitor: [\"elementType\"],\n aliases: [\"FlowType\"],\n fields: {\n elementType: (0, _utils.validateType)(\"FlowType\")\n }\n});\ndefineType(\"BooleanTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"]\n});\ndefineType(\"BooleanLiteralTypeAnnotation\", {\n builder: [\"value\"],\n aliases: [\"FlowType\"],\n fields: {\n value: (0, _utils.validate)((0, _utils.assertValueType)(\"boolean\"))\n }\n});\ndefineType(\"NullLiteralTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"]\n});\ndefineType(\"ClassImplements\", {\n visitor: [\"id\", \"typeParameters\"],\n fields: {\n id: (0, _utils.validateType)(\"Identifier\"),\n typeParameters: (0, _utils.validateOptionalType)(\"TypeParameterInstantiation\")\n }\n});\ndefineInterfaceishType(\"DeclareClass\");\ndefineType(\"DeclareFunction\", {\n visitor: [\"id\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: (0, _utils.validateType)(\"Identifier\"),\n predicate: (0, _utils.validateOptionalType)(\"DeclaredPredicate\")\n }\n});\ndefineInterfaceishType(\"DeclareInterface\");\ndefineType(\"DeclareModule\", {\n builder: [\"id\", \"body\", \"kind\"],\n visitor: [\"id\", \"body\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: (0, _utils.validateType)([\"Identifier\", \"StringLiteral\"]),\n body: (0, _utils.validateType)(\"BlockStatement\"),\n kind: (0, _utils.validateOptional)((0, _utils.assertOneOf)(\"CommonJS\", \"ES\"))\n }\n});\ndefineType(\"DeclareModuleExports\", {\n visitor: [\"typeAnnotation\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n typeAnnotation: (0, _utils.validateType)(\"TypeAnnotation\")\n }\n});\ndefineType(\"DeclareTypeAlias\", {\n visitor: [\"id\", \"typeParameters\", \"right\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: (0, _utils.validateType)(\"Identifier\"),\n typeParameters: (0, _utils.validateOptionalType)(\"TypeParameterDeclaration\"),\n right: (0, _utils.validateType)(\"FlowType\")\n }\n});\ndefineType(\"DeclareOpaqueType\", {\n visitor: [\"id\", \"typeParameters\", \"supertype\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: (0, _utils.validateType)(\"Identifier\"),\n typeParameters: (0, _utils.validateOptionalType)(\"TypeParameterDeclaration\"),\n supertype: (0, _utils.validateOptionalType)(\"FlowType\"),\n impltype: (0, _utils.validateOptionalType)(\"FlowType\")\n }\n});\ndefineType(\"DeclareVariable\", {\n visitor: [\"id\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: (0, _utils.validateType)(\"Identifier\")\n }\n});\ndefineType(\"DeclareExportDeclaration\", {\n visitor: [\"declaration\", \"specifiers\", \"source\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n declaration: (0, _utils.validateOptionalType)(\"Flow\"),\n specifiers: (0, _utils.validateOptional)((0, _utils.arrayOfType)([\"ExportSpecifier\", \"ExportNamespaceSpecifier\"])),\n source: (0, _utils.validateOptionalType)(\"StringLiteral\"),\n default: (0, _utils.validateOptional)((0, _utils.assertValueType)(\"boolean\"))\n }\n});\ndefineType(\"DeclareExportAllDeclaration\", {\n visitor: [\"source\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n source: (0, _utils.validateType)(\"StringLiteral\"),\n exportKind: (0, _utils.validateOptional)((0, _utils.assertOneOf)(\"type\", \"value\"))\n }\n});\ndefineType(\"DeclaredPredicate\", {\n visitor: [\"value\"],\n aliases: [\"FlowPredicate\"],\n fields: {\n value: (0, _utils.validateType)(\"Flow\")\n }\n});\ndefineType(\"ExistsTypeAnnotation\", {\n aliases: [\"FlowType\"]\n});\ndefineType(\"FunctionTypeAnnotation\", {\n visitor: [\"typeParameters\", \"params\", \"rest\", \"returnType\"],\n aliases: [\"FlowType\"],\n fields: {\n typeParameters: (0, _utils.validateOptionalType)(\"TypeParameterDeclaration\"),\n params: (0, _utils.validate)((0, _utils.arrayOfType)(\"FunctionTypeParam\")),\n rest: (0, _utils.validateOptionalType)(\"FunctionTypeParam\"),\n this: (0, _utils.validateOptionalType)(\"FunctionTypeParam\"),\n returnType: (0, _utils.validateType)(\"FlowType\")\n }\n});\ndefineType(\"FunctionTypeParam\", {\n visitor: [\"name\", \"typeAnnotation\"],\n fields: {\n name: (0, _utils.validateOptionalType)(\"Identifier\"),\n typeAnnotation: (0, _utils.validateType)(\"FlowType\"),\n optional: (0, _utils.validateOptional)((0, _utils.assertValueType)(\"boolean\"))\n }\n});\ndefineType(\"GenericTypeAnnotation\", {\n visitor: [\"id\", \"typeParameters\"],\n aliases: [\"FlowType\"],\n fields: {\n id: (0, _utils.validateType)([\"Identifier\", \"QualifiedTypeIdentifier\"]),\n typeParameters: (0, _utils.validateOptionalType)(\"TypeParameterInstantiation\")\n }\n});\ndefineType(\"InferredPredicate\", {\n aliases: [\"FlowPredicate\"]\n});\ndefineType(\"InterfaceExtends\", {\n visitor: [\"id\", \"typeParameters\"],\n fields: {\n id: (0, _utils.validateType)([\"Identifier\", \"QualifiedTypeIdentifier\"]),\n typeParameters: (0, _utils.validateOptionalType)(\"TypeParameterInstantiation\")\n }\n});\ndefineInterfaceishType(\"InterfaceDeclaration\");\ndefineType(\"InterfaceTypeAnnotation\", {\n visitor: [\"extends\", \"body\"],\n aliases: [\"FlowType\"],\n fields: {\n extends: (0, _utils.validateOptional)((0, _utils.arrayOfType)(\"InterfaceExtends\")),\n body: (0, _utils.validateType)(\"ObjectTypeAnnotation\")\n }\n});\ndefineType(\"IntersectionTypeAnnotation\", {\n visitor: [\"types\"],\n aliases: [\"FlowType\"],\n fields: {\n types: (0, _utils.validate)((0, _utils.arrayOfType)(\"FlowType\"))\n }\n});\ndefineType(\"MixedTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"]\n});\ndefineType(\"EmptyTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"]\n});\ndefineType(\"NullableTypeAnnotation\", {\n visitor: [\"typeAnnotation\"],\n aliases: [\"FlowType\"],\n fields: {\n typeAnnotation: (0, _utils.validateType)(\"FlowType\")\n }\n});\ndefineType(\"NumberLiteralTypeAnnotation\", {\n builder: [\"value\"],\n aliases: [\"FlowType\"],\n fields: {\n value: (0, _utils.validate)((0, _utils.assertValueType)(\"number\"))\n }\n});\ndefineType(\"NumberTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"]\n});\ndefineType(\"ObjectTypeAnnotation\", {\n visitor: [\"properties\", \"indexers\", \"callProperties\", \"internalSlots\"],\n aliases: [\"FlowType\"],\n builder: [\"properties\", \"indexers\", \"callProperties\", \"internalSlots\", \"exact\"],\n fields: {\n properties: (0, _utils.validate)((0, _utils.arrayOfType)([\"ObjectTypeProperty\", \"ObjectTypeSpreadProperty\"])),\n indexers: {\n validate: (0, _utils.arrayOfType)(\"ObjectTypeIndexer\"),\n optional: true,\n default: []\n },\n callProperties: {\n validate: (0, _utils.arrayOfType)(\"ObjectTypeCallProperty\"),\n optional: true,\n default: []\n },\n internalSlots: {\n validate: (0, _utils.arrayOfType)(\"ObjectTypeInternalSlot\"),\n optional: true,\n default: []\n },\n exact: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n default: false\n },\n inexact: (0, _utils.validateOptional)((0, _utils.assertValueType)(\"boolean\"))\n }\n});\ndefineType(\"ObjectTypeInternalSlot\", {\n visitor: [\"id\", \"value\"],\n builder: [\"id\", \"value\", \"optional\", \"static\", \"method\"],\n aliases: [\"UserWhitespacable\"],\n fields: {\n id: (0, _utils.validateType)(\"Identifier\"),\n value: (0, _utils.validateType)(\"FlowType\"),\n optional: (0, _utils.validate)((0, _utils.assertValueType)(\"boolean\")),\n static: (0, _utils.validate)((0, _utils.assertValueType)(\"boolean\")),\n method: (0, _utils.validate)((0, _utils.assertValueType)(\"boolean\"))\n }\n});\ndefineType(\"ObjectTypeCallProperty\", {\n visitor: [\"value\"],\n aliases: [\"UserWhitespacable\"],\n fields: {\n value: (0, _utils.validateType)(\"FlowType\"),\n static: (0, _utils.validate)((0, _utils.assertValueType)(\"boolean\"))\n }\n});\ndefineType(\"ObjectTypeIndexer\", {\n visitor: [\"variance\", \"id\", \"key\", \"value\"],\n builder: [\"id\", \"key\", \"value\", \"variance\"],\n aliases: [\"UserWhitespacable\"],\n fields: {\n id: (0, _utils.validateOptionalType)(\"Identifier\"),\n key: (0, _utils.validateType)(\"FlowType\"),\n value: (0, _utils.validateType)(\"FlowType\"),\n static: (0, _utils.validate)((0, _utils.assertValueType)(\"boolean\")),\n variance: (0, _utils.validateOptionalType)(\"Variance\")\n }\n});\ndefineType(\"ObjectTypeProperty\", {\n visitor: [\"key\", \"value\", \"variance\"],\n aliases: [\"UserWhitespacable\"],\n fields: {\n key: (0, _utils.validateType)([\"Identifier\", \"StringLiteral\"]),\n value: (0, _utils.validateType)(\"FlowType\"),\n kind: (0, _utils.validate)((0, _utils.assertOneOf)(\"init\", \"get\", \"set\")),\n static: (0, _utils.validate)((0, _utils.assertValueType)(\"boolean\")),\n proto: (0, _utils.validate)((0, _utils.assertValueType)(\"boolean\")),\n optional: (0, _utils.validate)((0, _utils.assertValueType)(\"boolean\")),\n variance: (0, _utils.validateOptionalType)(\"Variance\"),\n method: (0, _utils.validate)((0, _utils.assertValueType)(\"boolean\"))\n }\n});\ndefineType(\"ObjectTypeSpreadProperty\", {\n visitor: [\"argument\"],\n aliases: [\"UserWhitespacable\"],\n fields: {\n argument: (0, _utils.validateType)(\"FlowType\")\n }\n});\ndefineType(\"OpaqueType\", {\n visitor: [\"id\", \"typeParameters\", \"supertype\", \"impltype\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: (0, _utils.validateType)(\"Identifier\"),\n typeParameters: (0, _utils.validateOptionalType)(\"TypeParameterDeclaration\"),\n supertype: (0, _utils.validateOptionalType)(\"FlowType\"),\n impltype: (0, _utils.validateType)(\"FlowType\")\n }\n});\ndefineType(\"QualifiedTypeIdentifier\", {\n visitor: [\"qualification\", \"id\"],\n builder: [\"id\", \"qualification\"],\n fields: {\n id: (0, _utils.validateType)(\"Identifier\"),\n qualification: (0, _utils.validateType)([\"Identifier\", \"QualifiedTypeIdentifier\"])\n }\n});\ndefineType(\"StringLiteralTypeAnnotation\", {\n builder: [\"value\"],\n aliases: [\"FlowType\"],\n fields: {\n value: (0, _utils.validate)((0, _utils.assertValueType)(\"string\"))\n }\n});\ndefineType(\"StringTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"]\n});\ndefineType(\"SymbolTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"]\n});\ndefineType(\"ThisTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"]\n});\ndefineType(\"TupleTypeAnnotation\", {\n visitor: [\"types\"],\n aliases: [\"FlowType\"],\n fields: {\n types: (0, _utils.validate)((0, _utils.arrayOfType)(\"FlowType\"))\n }\n});\ndefineType(\"TypeofTypeAnnotation\", {\n visitor: [\"argument\"],\n aliases: [\"FlowType\"],\n fields: {\n argument: (0, _utils.validateType)(\"FlowType\")\n }\n});\ndefineType(\"TypeAlias\", {\n visitor: [\"id\", \"typeParameters\", \"right\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: (0, _utils.validateType)(\"Identifier\"),\n typeParameters: (0, _utils.validateOptionalType)(\"TypeParameterDeclaration\"),\n right: (0, _utils.validateType)(\"FlowType\")\n }\n});\ndefineType(\"TypeAnnotation\", {\n visitor: [\"typeAnnotation\"],\n fields: {\n typeAnnotation: (0, _utils.validateType)(\"FlowType\")\n }\n});\ndefineType(\"TypeCastExpression\", {\n visitor: [\"expression\", \"typeAnnotation\"],\n aliases: [\"ExpressionWrapper\", \"Expression\"],\n fields: {\n expression: (0, _utils.validateType)(\"Expression\"),\n typeAnnotation: (0, _utils.validateType)(\"TypeAnnotation\")\n }\n});\ndefineType(\"TypeParameter\", {\n visitor: [\"bound\", \"default\", \"variance\"],\n fields: {\n name: (0, _utils.validate)((0, _utils.assertValueType)(\"string\")),\n bound: (0, _utils.validateOptionalType)(\"TypeAnnotation\"),\n default: (0, _utils.validateOptionalType)(\"FlowType\"),\n variance: (0, _utils.validateOptionalType)(\"Variance\")\n }\n});\ndefineType(\"TypeParameterDeclaration\", {\n visitor: [\"params\"],\n fields: {\n params: (0, _utils.validate)((0, _utils.arrayOfType)(\"TypeParameter\"))\n }\n});\ndefineType(\"TypeParameterInstantiation\", {\n visitor: [\"params\"],\n fields: {\n params: (0, _utils.validate)((0, _utils.arrayOfType)(\"FlowType\"))\n }\n});\ndefineType(\"UnionTypeAnnotation\", {\n visitor: [\"types\"],\n aliases: [\"FlowType\"],\n fields: {\n types: (0, _utils.validate)((0, _utils.arrayOfType)(\"FlowType\"))\n }\n});\ndefineType(\"Variance\", {\n builder: [\"kind\"],\n fields: {\n kind: (0, _utils.validate)((0, _utils.assertOneOf)(\"minus\", \"plus\"))\n }\n});\ndefineType(\"VoidTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"]\n});\ndefineType(\"EnumDeclaration\", {\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"body\"],\n fields: {\n id: (0, _utils.validateType)(\"Identifier\"),\n body: (0, _utils.validateType)([\"EnumBooleanBody\", \"EnumNumberBody\", \"EnumStringBody\", \"EnumSymbolBody\"])\n }\n});\ndefineType(\"EnumBooleanBody\", {\n aliases: [\"EnumBody\"],\n visitor: [\"members\"],\n fields: {\n explicitType: (0, _utils.validate)((0, _utils.assertValueType)(\"boolean\")),\n members: (0, _utils.validateArrayOfType)(\"EnumBooleanMember\"),\n hasUnknownMembers: (0, _utils.validate)((0, _utils.assertValueType)(\"boolean\"))\n }\n});\ndefineType(\"EnumNumberBody\", {\n aliases: [\"EnumBody\"],\n visitor: [\"members\"],\n fields: {\n explicitType: (0, _utils.validate)((0, _utils.assertValueType)(\"boolean\")),\n members: (0, _utils.validateArrayOfType)(\"EnumNumberMember\"),\n hasUnknownMembers: (0, _utils.validate)((0, _utils.assertValueType)(\"boolean\"))\n }\n});\ndefineType(\"EnumStringBody\", {\n aliases: [\"EnumBody\"],\n visitor: [\"members\"],\n fields: {\n explicitType: (0, _utils.validate)((0, _utils.assertValueType)(\"boolean\")),\n members: (0, _utils.validateArrayOfType)([\"EnumStringMember\", \"EnumDefaultedMember\"]),\n hasUnknownMembers: (0, _utils.validate)((0, _utils.assertValueType)(\"boolean\"))\n }\n});\ndefineType(\"EnumSymbolBody\", {\n aliases: [\"EnumBody\"],\n visitor: [\"members\"],\n fields: {\n members: (0, _utils.validateArrayOfType)(\"EnumDefaultedMember\"),\n hasUnknownMembers: (0, _utils.validate)((0, _utils.assertValueType)(\"boolean\"))\n }\n});\ndefineType(\"EnumBooleanMember\", {\n aliases: [\"EnumMember\"],\n visitor: [\"id\"],\n fields: {\n id: (0, _utils.validateType)(\"Identifier\"),\n init: (0, _utils.validateType)(\"BooleanLiteral\")\n }\n});\ndefineType(\"EnumNumberMember\", {\n aliases: [\"EnumMember\"],\n visitor: [\"id\", \"init\"],\n fields: {\n id: (0, _utils.validateType)(\"Identifier\"),\n init: (0, _utils.validateType)(\"NumericLiteral\")\n }\n});\ndefineType(\"EnumStringMember\", {\n aliases: [\"EnumMember\"],\n visitor: [\"id\", \"init\"],\n fields: {\n id: (0, _utils.validateType)(\"Identifier\"),\n init: (0, _utils.validateType)(\"StringLiteral\")\n }\n});\ndefineType(\"EnumDefaultedMember\", {\n aliases: [\"EnumMember\"],\n visitor: [\"id\"],\n fields: {\n id: (0, _utils.validateType)(\"Identifier\")\n }\n});\ndefineType(\"IndexedAccessType\", {\n visitor: [\"objectType\", \"indexType\"],\n aliases: [\"FlowType\"],\n fields: {\n objectType: (0, _utils.validateType)(\"FlowType\"),\n indexType: (0, _utils.validateType)(\"FlowType\")\n }\n});\ndefineType(\"OptionalIndexedAccessType\", {\n visitor: [\"objectType\", \"indexType\"],\n aliases: [\"FlowType\"],\n fields: {\n objectType: (0, _utils.validateType)(\"FlowType\"),\n indexType: (0, _utils.validateType)(\"FlowType\"),\n optional: (0, _utils.validate)((0, _utils.assertValueType)(\"boolean\"))\n }\n});\n\n//# sourceMappingURL=flow.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = require(\"../validators/generated/index.js\");\nvar _index2 = require(\"../builders/generated/index.js\");\nvar _default = exports.default = toStatement;\nfunction toStatement(node, ignore) {\n if ((0, _index.isStatement)(node)) {\n return node;\n }\n let mustHaveId = false;\n let newType;\n if ((0, _index.isClass)(node)) {\n mustHaveId = true;\n newType = \"ClassDeclaration\";\n } else if ((0, _index.isFunction)(node)) {\n mustHaveId = true;\n newType = \"FunctionDeclaration\";\n } else if ((0, _index.isAssignmentExpression)(node)) {\n return (0, _index2.expressionStatement)(node);\n }\n if (mustHaveId && !node.id) {\n newType = false;\n }\n if (!newType) {\n if (ignore) {\n return false;\n } else {\n throw new Error(`cannot turn ${node.type} to a statement`);\n }\n }\n node.type = newType;\n return node;\n}\n\n//# sourceMappingURL=toStatement.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _isValidIdentifier = require(\"../validators/isValidIdentifier.js\");\nvar _index = require(\"../builders/generated/index.js\");\nvar _default = exports.default = valueToNode;\nconst objectToString = Function.call.bind(Object.prototype.toString);\nfunction isRegExp(value) {\n return objectToString(value) === \"[object RegExp]\";\n}\nfunction isPlainObject(value) {\n if (typeof value !== \"object\" || value === null || Object.prototype.toString.call(value) !== \"[object Object]\") {\n return false;\n }\n const proto = Object.getPrototypeOf(value);\n return proto === null || Object.getPrototypeOf(proto) === null;\n}\nfunction valueToNode(value) {\n if (value === undefined) {\n return (0, _index.identifier)(\"undefined\");\n }\n if (value === true || value === false) {\n return (0, _index.booleanLiteral)(value);\n }\n if (value === null) {\n return (0, _index.nullLiteral)();\n }\n if (typeof value === \"string\") {\n return (0, _index.stringLiteral)(value);\n }\n if (typeof value === \"number\") {\n let result;\n if (Number.isFinite(value)) {\n result = (0, _index.numericLiteral)(Math.abs(value));\n } else {\n let numerator;\n if (Number.isNaN(value)) {\n numerator = (0, _index.numericLiteral)(0);\n } else {\n numerator = (0, _index.numericLiteral)(1);\n }\n result = (0, _index.binaryExpression)(\"/\", numerator, (0, _index.numericLiteral)(0));\n }\n if (value < 0 || Object.is(value, -0)) {\n result = (0, _index.unaryExpression)(\"-\", result);\n }\n return result;\n }\n if (isRegExp(value)) {\n const pattern = value.source;\n const flags = /\\/([a-z]*)$/.exec(value.toString())[1];\n return (0, _index.regExpLiteral)(pattern, flags);\n }\n if (Array.isArray(value)) {\n return (0, _index.arrayExpression)(value.map(valueToNode));\n }\n if (isPlainObject(value)) {\n const props = [];\n for (const key of Object.keys(value)) {\n let nodeKey;\n if ((0, _isValidIdentifier.default)(key)) {\n nodeKey = (0, _index.identifier)(key);\n } else {\n nodeKey = (0, _index.stringLiteral)(key);\n }\n props.push((0, _index.objectProperty)(nodeKey, valueToNode(value[key])));\n }\n return (0, _index.objectExpression)(props);\n }\n throw new Error(\"don't know how to turn this value into a node\");\n}\n\n//# sourceMappingURL=valueToNode.js.map\n","\"use strict\";\n\nvar _utils = require(\"./utils.js\");\nconst defineType = (0, _utils.defineAliasedType)(\"JSX\");\ndefineType(\"JSXAttribute\", {\n visitor: [\"name\", \"value\"],\n aliases: [\"Immutable\"],\n fields: {\n name: {\n validate: (0, _utils.assertNodeType)(\"JSXIdentifier\", \"JSXNamespacedName\")\n },\n value: {\n optional: true,\n validate: (0, _utils.assertNodeType)(\"JSXElement\", \"JSXFragment\", \"StringLiteral\", \"JSXExpressionContainer\")\n }\n }\n});\ndefineType(\"JSXClosingElement\", {\n visitor: [\"name\"],\n aliases: [\"Immutable\"],\n fields: {\n name: {\n validate: (0, _utils.assertNodeType)(\"JSXIdentifier\", \"JSXMemberExpression\", \"JSXNamespacedName\")\n }\n }\n});\ndefineType(\"JSXElement\", {\n builder: [\"openingElement\", \"closingElement\", \"children\", \"selfClosing\"],\n visitor: [\"openingElement\", \"children\", \"closingElement\"],\n aliases: [\"Immutable\", \"Expression\"],\n fields: Object.assign({\n openingElement: {\n validate: (0, _utils.assertNodeType)(\"JSXOpeningElement\")\n },\n closingElement: {\n optional: true,\n validate: (0, _utils.assertNodeType)(\"JSXClosingElement\")\n },\n children: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"JSXText\", \"JSXExpressionContainer\", \"JSXSpreadChild\", \"JSXElement\", \"JSXFragment\")))\n }\n }, {\n selfClosing: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n }\n })\n});\ndefineType(\"JSXEmptyExpression\", {});\ndefineType(\"JSXExpressionContainer\", {\n visitor: [\"expression\"],\n aliases: [\"Immutable\"],\n fields: {\n expression: {\n validate: (0, _utils.assertNodeType)(\"Expression\", \"JSXEmptyExpression\")\n }\n }\n});\ndefineType(\"JSXSpreadChild\", {\n visitor: [\"expression\"],\n aliases: [\"Immutable\"],\n fields: {\n expression: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n }\n});\ndefineType(\"JSXIdentifier\", {\n builder: [\"name\"],\n fields: {\n name: {\n validate: (0, _utils.assertValueType)(\"string\")\n }\n }\n});\ndefineType(\"JSXMemberExpression\", {\n visitor: [\"object\", \"property\"],\n fields: {\n object: {\n validate: (0, _utils.assertNodeType)(\"JSXMemberExpression\", \"JSXIdentifier\")\n },\n property: {\n validate: (0, _utils.assertNodeType)(\"JSXIdentifier\")\n }\n }\n});\ndefineType(\"JSXNamespacedName\", {\n visitor: [\"namespace\", \"name\"],\n fields: {\n namespace: {\n validate: (0, _utils.assertNodeType)(\"JSXIdentifier\")\n },\n name: {\n validate: (0, _utils.assertNodeType)(\"JSXIdentifier\")\n }\n }\n});\ndefineType(\"JSXOpeningElement\", {\n builder: [\"name\", \"attributes\", \"selfClosing\"],\n visitor: [\"name\", \"attributes\"],\n aliases: [\"Immutable\"],\n fields: {\n name: {\n validate: (0, _utils.assertNodeType)(\"JSXIdentifier\", \"JSXMemberExpression\", \"JSXNamespacedName\")\n },\n selfClosing: {\n default: false\n },\n attributes: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"JSXAttribute\", \"JSXSpreadAttribute\")))\n },\n typeParameters: {\n validate: (0, _utils.assertNodeType)(\"TypeParameterInstantiation\", \"TSTypeParameterInstantiation\"),\n optional: true\n }\n }\n});\ndefineType(\"JSXSpreadAttribute\", {\n visitor: [\"argument\"],\n fields: {\n argument: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n }\n});\ndefineType(\"JSXText\", {\n aliases: [\"Immutable\"],\n builder: [\"value\"],\n fields: {\n value: {\n validate: (0, _utils.assertValueType)(\"string\")\n }\n }\n});\ndefineType(\"JSXFragment\", {\n builder: [\"openingFragment\", \"closingFragment\", \"children\"],\n visitor: [\"openingFragment\", \"children\", \"closingFragment\"],\n aliases: [\"Immutable\", \"Expression\"],\n fields: {\n openingFragment: {\n validate: (0, _utils.assertNodeType)(\"JSXOpeningFragment\")\n },\n closingFragment: {\n validate: (0, _utils.assertNodeType)(\"JSXClosingFragment\")\n },\n children: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"JSXText\", \"JSXExpressionContainer\", \"JSXSpreadChild\", \"JSXElement\", \"JSXFragment\")))\n }\n }\n});\ndefineType(\"JSXOpeningFragment\", {\n aliases: [\"Immutable\"]\n});\ndefineType(\"JSXClosingFragment\", {\n aliases: [\"Immutable\"]\n});\n\n//# sourceMappingURL=jsx.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"ALIAS_KEYS\", {\n enumerable: true,\n get: function () {\n return _utils.ALIAS_KEYS;\n }\n});\nObject.defineProperty(exports, \"BUILDER_KEYS\", {\n enumerable: true,\n get: function () {\n return _utils.BUILDER_KEYS;\n }\n});\nObject.defineProperty(exports, \"DEPRECATED_ALIASES\", {\n enumerable: true,\n get: function () {\n return _deprecatedAliases.DEPRECATED_ALIASES;\n }\n});\nObject.defineProperty(exports, \"DEPRECATED_KEYS\", {\n enumerable: true,\n get: function () {\n return _utils.DEPRECATED_KEYS;\n }\n});\nObject.defineProperty(exports, \"FLIPPED_ALIAS_KEYS\", {\n enumerable: true,\n get: function () {\n return _utils.FLIPPED_ALIAS_KEYS;\n }\n});\nObject.defineProperty(exports, \"NODE_FIELDS\", {\n enumerable: true,\n get: function () {\n return _utils.NODE_FIELDS;\n }\n});\nObject.defineProperty(exports, \"NODE_PARENT_VALIDATIONS\", {\n enumerable: true,\n get: function () {\n return _utils.NODE_PARENT_VALIDATIONS;\n }\n});\nObject.defineProperty(exports, \"PLACEHOLDERS\", {\n enumerable: true,\n get: function () {\n return _placeholders.PLACEHOLDERS;\n }\n});\nObject.defineProperty(exports, \"PLACEHOLDERS_ALIAS\", {\n enumerable: true,\n get: function () {\n return _placeholders.PLACEHOLDERS_ALIAS;\n }\n});\nObject.defineProperty(exports, \"PLACEHOLDERS_FLIPPED_ALIAS\", {\n enumerable: true,\n get: function () {\n return _placeholders.PLACEHOLDERS_FLIPPED_ALIAS;\n }\n});\nexports.TYPES = void 0;\nObject.defineProperty(exports, \"VISITOR_KEYS\", {\n enumerable: true,\n get: function () {\n return _utils.VISITOR_KEYS;\n }\n});\nvar _toFastProperties = require(\"to-fast-properties\");\nrequire(\"./core.js\");\nrequire(\"./flow.js\");\nrequire(\"./jsx.js\");\nrequire(\"./misc.js\");\nrequire(\"./experimental.js\");\nrequire(\"./typescript.js\");\nvar _utils = require(\"./utils.js\");\nvar _placeholders = require(\"./placeholders.js\");\nvar _deprecatedAliases = require(\"./deprecated-aliases.js\");\nObject.keys(_deprecatedAliases.DEPRECATED_ALIASES).forEach(deprecatedAlias => {\n _utils.FLIPPED_ALIAS_KEYS[deprecatedAlias] = _utils.FLIPPED_ALIAS_KEYS[_deprecatedAliases.DEPRECATED_ALIASES[deprecatedAlias]];\n});\n_toFastProperties(_utils.VISITOR_KEYS);\n_toFastProperties(_utils.ALIAS_KEYS);\n_toFastProperties(_utils.FLIPPED_ALIAS_KEYS);\n_toFastProperties(_utils.NODE_FIELDS);\n_toFastProperties(_utils.BUILDER_KEYS);\n_toFastProperties(_utils.DEPRECATED_KEYS);\n_toFastProperties(_placeholders.PLACEHOLDERS_ALIAS);\n_toFastProperties(_placeholders.PLACEHOLDERS_FLIPPED_ALIAS);\nconst TYPES = exports.TYPES = [].concat(Object.keys(_utils.VISITOR_KEYS), Object.keys(_utils.FLIPPED_ALIAS_KEYS), Object.keys(_utils.DEPRECATED_KEYS));\n\n//# sourceMappingURL=index.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toComputedKey;\nvar _index = require(\"../validators/generated/index.js\");\nvar _index2 = require(\"../builders/generated/index.js\");\nfunction toComputedKey(node, key = node.key || node.property) {\n if (!node.computed && (0, _index.isIdentifier)(key)) key = (0, _index2.stringLiteral)(key.name);\n return key;\n}\n\n//# sourceMappingURL=toComputedKey.js.map\n","\"use strict\";\n\nvar _utils = require(\"./utils.js\");\nvar _placeholders = require(\"./placeholders.js\");\nconst defineType = (0, _utils.defineAliasedType)(\"Miscellaneous\");\n{\n defineType(\"Noop\", {\n visitor: []\n });\n}\ndefineType(\"Placeholder\", {\n visitor: [],\n builder: [\"expectedNode\", \"name\"],\n fields: {\n name: {\n validate: (0, _utils.assertNodeType)(\"Identifier\")\n },\n expectedNode: {\n validate: (0, _utils.assertOneOf)(..._placeholders.PLACEHOLDERS)\n }\n }\n});\ndefineType(\"V8IntrinsicIdentifier\", {\n builder: [\"name\"],\n fields: {\n name: {\n validate: (0, _utils.assertValueType)(\"string\")\n }\n }\n});\n\n//# sourceMappingURL=misc.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toSequenceExpression;\nvar _gatherSequenceExpressions = require(\"./gatherSequenceExpressions.js\");\n;\nfunction toSequenceExpression(nodes, scope) {\n if (!(nodes != null && nodes.length)) return;\n const declars = [];\n const result = (0, _gatherSequenceExpressions.default)(nodes, declars);\n if (!result) return;\n for (const declar of declars) {\n scope.push(declar);\n }\n return result;\n}\n\n//# sourceMappingURL=toSequenceExpression.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PLACEHOLDERS_FLIPPED_ALIAS = exports.PLACEHOLDERS_ALIAS = exports.PLACEHOLDERS = void 0;\nvar _utils = require(\"./utils.js\");\nconst PLACEHOLDERS = exports.PLACEHOLDERS = [\"Identifier\", \"StringLiteral\", \"Expression\", \"Statement\", \"Declaration\", \"BlockStatement\", \"ClassBody\", \"Pattern\"];\nconst PLACEHOLDERS_ALIAS = exports.PLACEHOLDERS_ALIAS = {\n Declaration: [\"Statement\"],\n Pattern: [\"PatternLike\", \"LVal\"]\n};\nfor (const type of PLACEHOLDERS) {\n const alias = _utils.ALIAS_KEYS[type];\n if (alias != null && alias.length) PLACEHOLDERS_ALIAS[type] = alias;\n}\nconst PLACEHOLDERS_FLIPPED_ALIAS = exports.PLACEHOLDERS_FLIPPED_ALIAS = {};\nObject.keys(PLACEHOLDERS_ALIAS).forEach(type => {\n PLACEHOLDERS_ALIAS[type].forEach(alias => {\n if (!hasOwnProperty.call(PLACEHOLDERS_FLIPPED_ALIAS, alias)) {\n PLACEHOLDERS_FLIPPED_ALIAS[alias] = [];\n }\n PLACEHOLDERS_FLIPPED_ALIAS[alias].push(type);\n });\n});\n\n//# sourceMappingURL=placeholders.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = require(\"../validators/generated/index.js\");\nvar _default = exports.default = toExpression;\nfunction toExpression(node) {\n if ((0, _index.isExpressionStatement)(node)) {\n node = node.expression;\n }\n if ((0, _index.isExpression)(node)) {\n return node;\n }\n if ((0, _index.isClass)(node)) {\n node.type = \"ClassExpression\";\n } else if ((0, _index.isFunction)(node)) {\n node.type = \"FunctionExpression\";\n }\n if (!(0, _index.isExpression)(node)) {\n throw new Error(`cannot turn ${node.type} to an expression`);\n }\n return node;\n}\n\n//# sourceMappingURL=toExpression.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.patternLikeCommon = exports.functionTypeAnnotationCommon = exports.functionDeclarationCommon = exports.functionCommon = exports.classMethodOrPropertyCommon = exports.classMethodOrDeclareMethodCommon = void 0;\nvar _is = require(\"../validators/is.js\");\nvar _isValidIdentifier = require(\"../validators/isValidIdentifier.js\");\nvar _helperValidatorIdentifier = require(\"@babel/helper-validator-identifier\");\nvar _helperStringParser = require(\"@babel/helper-string-parser\");\nvar _index = require(\"../constants/index.js\");\nvar _utils = require(\"./utils.js\");\nconst defineType = (0, _utils.defineAliasedType)(\"Standardized\");\ndefineType(\"ArrayExpression\", {\n fields: {\n elements: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeOrValueType)(\"null\", \"Expression\", \"SpreadElement\"))),\n default: !process.env.BABEL_TYPES_8_BREAKING ? [] : undefined\n }\n },\n visitor: [\"elements\"],\n aliases: [\"Expression\"]\n});\ndefineType(\"AssignmentExpression\", {\n fields: {\n operator: {\n validate: function () {\n if (!process.env.BABEL_TYPES_8_BREAKING) {\n return (0, _utils.assertValueType)(\"string\");\n }\n const identifier = (0, _utils.assertOneOf)(..._index.ASSIGNMENT_OPERATORS);\n const pattern = (0, _utils.assertOneOf)(\"=\");\n return function (node, key, val) {\n const validator = (0, _is.default)(\"Pattern\", node.left) ? pattern : identifier;\n validator(node, key, val);\n };\n }()\n },\n left: {\n validate: !process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.assertNodeType)(\"LVal\", \"OptionalMemberExpression\") : (0, _utils.assertNodeType)(\"Identifier\", \"MemberExpression\", \"OptionalMemberExpression\", \"ArrayPattern\", \"ObjectPattern\", \"TSAsExpression\", \"TSSatisfiesExpression\", \"TSTypeAssertion\", \"TSNonNullExpression\")\n },\n right: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n },\n builder: [\"operator\", \"left\", \"right\"],\n visitor: [\"left\", \"right\"],\n aliases: [\"Expression\"]\n});\ndefineType(\"BinaryExpression\", {\n builder: [\"operator\", \"left\", \"right\"],\n fields: {\n operator: {\n validate: (0, _utils.assertOneOf)(..._index.BINARY_OPERATORS)\n },\n left: {\n validate: function () {\n const expression = (0, _utils.assertNodeType)(\"Expression\");\n const inOp = (0, _utils.assertNodeType)(\"Expression\", \"PrivateName\");\n const validator = Object.assign(function (node, key, val) {\n const validator = node.operator === \"in\" ? inOp : expression;\n validator(node, key, val);\n }, {\n oneOfNodeTypes: [\"Expression\", \"PrivateName\"]\n });\n return validator;\n }()\n },\n right: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n },\n visitor: [\"left\", \"right\"],\n aliases: [\"Binary\", \"Expression\"]\n});\ndefineType(\"InterpreterDirective\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: (0, _utils.assertValueType)(\"string\")\n }\n }\n});\ndefineType(\"Directive\", {\n visitor: [\"value\"],\n fields: {\n value: {\n validate: (0, _utils.assertNodeType)(\"DirectiveLiteral\")\n }\n }\n});\ndefineType(\"DirectiveLiteral\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: (0, _utils.assertValueType)(\"string\")\n }\n }\n});\ndefineType(\"BlockStatement\", {\n builder: [\"body\", \"directives\"],\n visitor: [\"directives\", \"body\"],\n fields: {\n directives: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"Directive\"))),\n default: []\n },\n body: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"Statement\")))\n }\n },\n aliases: [\"Scopable\", \"BlockParent\", \"Block\", \"Statement\"]\n});\ndefineType(\"BreakStatement\", {\n visitor: [\"label\"],\n fields: {\n label: {\n validate: (0, _utils.assertNodeType)(\"Identifier\"),\n optional: true\n }\n },\n aliases: [\"Statement\", \"Terminatorless\", \"CompletionStatement\"]\n});\ndefineType(\"CallExpression\", {\n visitor: [\"callee\", \"arguments\", \"typeParameters\", \"typeArguments\"],\n builder: [\"callee\", \"arguments\"],\n aliases: [\"Expression\"],\n fields: Object.assign({\n callee: {\n validate: (0, _utils.assertNodeType)(\"Expression\", \"Super\", \"V8IntrinsicIdentifier\")\n },\n arguments: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"Expression\", \"SpreadElement\", \"ArgumentPlaceholder\")))\n }\n }, !process.env.BABEL_TYPES_8_BREAKING ? {\n optional: {\n validate: (0, _utils.assertOneOf)(true, false),\n optional: true\n }\n } : {}, {\n typeArguments: {\n validate: (0, _utils.assertNodeType)(\"TypeParameterInstantiation\"),\n optional: true\n },\n typeParameters: {\n validate: (0, _utils.assertNodeType)(\"TSTypeParameterInstantiation\"),\n optional: true\n }\n })\n});\ndefineType(\"CatchClause\", {\n visitor: [\"param\", \"body\"],\n fields: {\n param: {\n validate: (0, _utils.assertNodeType)(\"Identifier\", \"ArrayPattern\", \"ObjectPattern\"),\n optional: true\n },\n body: {\n validate: (0, _utils.assertNodeType)(\"BlockStatement\")\n }\n },\n aliases: [\"Scopable\", \"BlockParent\"]\n});\ndefineType(\"ConditionalExpression\", {\n visitor: [\"test\", \"consequent\", \"alternate\"],\n fields: {\n test: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n consequent: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n alternate: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n },\n aliases: [\"Expression\", \"Conditional\"]\n});\ndefineType(\"ContinueStatement\", {\n visitor: [\"label\"],\n fields: {\n label: {\n validate: (0, _utils.assertNodeType)(\"Identifier\"),\n optional: true\n }\n },\n aliases: [\"Statement\", \"Terminatorless\", \"CompletionStatement\"]\n});\ndefineType(\"DebuggerStatement\", {\n aliases: [\"Statement\"]\n});\ndefineType(\"DoWhileStatement\", {\n builder: [\"test\", \"body\"],\n visitor: [\"body\", \"test\"],\n fields: {\n test: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n body: {\n validate: (0, _utils.assertNodeType)(\"Statement\")\n }\n },\n aliases: [\"Statement\", \"BlockParent\", \"Loop\", \"While\", \"Scopable\"]\n});\ndefineType(\"EmptyStatement\", {\n aliases: [\"Statement\"]\n});\ndefineType(\"ExpressionStatement\", {\n visitor: [\"expression\"],\n fields: {\n expression: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n },\n aliases: [\"Statement\", \"ExpressionWrapper\"]\n});\ndefineType(\"File\", {\n builder: [\"program\", \"comments\", \"tokens\"],\n visitor: [\"program\"],\n fields: {\n program: {\n validate: (0, _utils.assertNodeType)(\"Program\")\n },\n comments: {\n validate: !process.env.BABEL_TYPES_8_BREAKING ? Object.assign(() => {}, {\n each: {\n oneOfNodeTypes: [\"CommentBlock\", \"CommentLine\"]\n }\n }) : (0, _utils.assertEach)((0, _utils.assertNodeType)(\"CommentBlock\", \"CommentLine\")),\n optional: true\n },\n tokens: {\n validate: (0, _utils.assertEach)(Object.assign(() => {}, {\n type: \"any\"\n })),\n optional: true\n }\n }\n});\ndefineType(\"ForInStatement\", {\n visitor: [\"left\", \"right\", \"body\"],\n aliases: [\"Scopable\", \"Statement\", \"For\", \"BlockParent\", \"Loop\", \"ForXStatement\"],\n fields: {\n left: {\n validate: !process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.assertNodeType)(\"VariableDeclaration\", \"LVal\") : (0, _utils.assertNodeType)(\"VariableDeclaration\", \"Identifier\", \"MemberExpression\", \"ArrayPattern\", \"ObjectPattern\", \"TSAsExpression\", \"TSSatisfiesExpression\", \"TSTypeAssertion\", \"TSNonNullExpression\")\n },\n right: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n body: {\n validate: (0, _utils.assertNodeType)(\"Statement\")\n }\n }\n});\ndefineType(\"ForStatement\", {\n visitor: [\"init\", \"test\", \"update\", \"body\"],\n aliases: [\"Scopable\", \"Statement\", \"For\", \"BlockParent\", \"Loop\"],\n fields: {\n init: {\n validate: (0, _utils.assertNodeType)(\"VariableDeclaration\", \"Expression\"),\n optional: true\n },\n test: {\n validate: (0, _utils.assertNodeType)(\"Expression\"),\n optional: true\n },\n update: {\n validate: (0, _utils.assertNodeType)(\"Expression\"),\n optional: true\n },\n body: {\n validate: (0, _utils.assertNodeType)(\"Statement\")\n }\n }\n});\nconst functionCommon = () => ({\n params: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"Identifier\", \"Pattern\", \"RestElement\")))\n },\n generator: {\n default: false\n },\n async: {\n default: false\n }\n});\nexports.functionCommon = functionCommon;\nconst functionTypeAnnotationCommon = () => ({\n returnType: {\n validate: (0, _utils.assertNodeType)(\"TypeAnnotation\", \"TSTypeAnnotation\", \"Noop\"),\n optional: true\n },\n typeParameters: {\n validate: (0, _utils.assertNodeType)(\"TypeParameterDeclaration\", \"TSTypeParameterDeclaration\", \"Noop\"),\n optional: true\n }\n});\nexports.functionTypeAnnotationCommon = functionTypeAnnotationCommon;\nconst functionDeclarationCommon = () => Object.assign({}, functionCommon(), {\n declare: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n id: {\n validate: (0, _utils.assertNodeType)(\"Identifier\"),\n optional: true\n }\n});\nexports.functionDeclarationCommon = functionDeclarationCommon;\ndefineType(\"FunctionDeclaration\", {\n builder: [\"id\", \"params\", \"body\", \"generator\", \"async\"],\n visitor: [\"id\", \"typeParameters\", \"params\", \"returnType\", \"body\"],\n fields: Object.assign({}, functionDeclarationCommon(), functionTypeAnnotationCommon(), {\n body: {\n validate: (0, _utils.assertNodeType)(\"BlockStatement\")\n },\n predicate: {\n validate: (0, _utils.assertNodeType)(\"DeclaredPredicate\", \"InferredPredicate\"),\n optional: true\n }\n }),\n aliases: [\"Scopable\", \"Function\", \"BlockParent\", \"FunctionParent\", \"Statement\", \"Pureish\", \"Declaration\"],\n validate: function () {\n if (!process.env.BABEL_TYPES_8_BREAKING) return () => {};\n const identifier = (0, _utils.assertNodeType)(\"Identifier\");\n return function (parent, key, node) {\n if (!(0, _is.default)(\"ExportDefaultDeclaration\", parent)) {\n identifier(node, \"id\", node.id);\n }\n };\n }()\n});\ndefineType(\"FunctionExpression\", {\n inherits: \"FunctionDeclaration\",\n aliases: [\"Scopable\", \"Function\", \"BlockParent\", \"FunctionParent\", \"Expression\", \"Pureish\"],\n fields: Object.assign({}, functionCommon(), functionTypeAnnotationCommon(), {\n id: {\n validate: (0, _utils.assertNodeType)(\"Identifier\"),\n optional: true\n },\n body: {\n validate: (0, _utils.assertNodeType)(\"BlockStatement\")\n },\n predicate: {\n validate: (0, _utils.assertNodeType)(\"DeclaredPredicate\", \"InferredPredicate\"),\n optional: true\n }\n })\n});\nconst patternLikeCommon = () => ({\n typeAnnotation: {\n validate: (0, _utils.assertNodeType)(\"TypeAnnotation\", \"TSTypeAnnotation\", \"Noop\"),\n optional: true\n },\n optional: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n decorators: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"Decorator\"))),\n optional: true\n }\n});\nexports.patternLikeCommon = patternLikeCommon;\ndefineType(\"Identifier\", {\n builder: [\"name\"],\n visitor: [\"typeAnnotation\", \"decorators\"],\n aliases: [\"Expression\", \"PatternLike\", \"LVal\", \"TSEntityName\"],\n fields: Object.assign({}, patternLikeCommon(), {\n name: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"string\"), Object.assign(function (node, key, val) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n if (!(0, _isValidIdentifier.default)(val, false)) {\n throw new TypeError(`\"${val}\" is not a valid identifier name`);\n }\n }, {\n type: \"string\"\n }))\n }\n }),\n validate(parent, key, node) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n const match = /\\.(\\w+)$/.exec(key);\n if (!match) return;\n const [, parentKey] = match;\n const nonComp = {\n computed: false\n };\n if (parentKey === \"property\") {\n if ((0, _is.default)(\"MemberExpression\", parent, nonComp)) return;\n if ((0, _is.default)(\"OptionalMemberExpression\", parent, nonComp)) return;\n } else if (parentKey === \"key\") {\n if ((0, _is.default)(\"Property\", parent, nonComp)) return;\n if ((0, _is.default)(\"Method\", parent, nonComp)) return;\n } else if (parentKey === \"exported\") {\n if ((0, _is.default)(\"ExportSpecifier\", parent)) return;\n } else if (parentKey === \"imported\") {\n if ((0, _is.default)(\"ImportSpecifier\", parent, {\n imported: node\n })) return;\n } else if (parentKey === \"meta\") {\n if ((0, _is.default)(\"MetaProperty\", parent, {\n meta: node\n })) return;\n }\n if (((0, _helperValidatorIdentifier.isKeyword)(node.name) || (0, _helperValidatorIdentifier.isReservedWord)(node.name, false)) && node.name !== \"this\") {\n throw new TypeError(`\"${node.name}\" is not a valid identifier`);\n }\n }\n});\ndefineType(\"IfStatement\", {\n visitor: [\"test\", \"consequent\", \"alternate\"],\n aliases: [\"Statement\", \"Conditional\"],\n fields: {\n test: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n consequent: {\n validate: (0, _utils.assertNodeType)(\"Statement\")\n },\n alternate: {\n optional: true,\n validate: (0, _utils.assertNodeType)(\"Statement\")\n }\n }\n});\ndefineType(\"LabeledStatement\", {\n visitor: [\"label\", \"body\"],\n aliases: [\"Statement\"],\n fields: {\n label: {\n validate: (0, _utils.assertNodeType)(\"Identifier\")\n },\n body: {\n validate: (0, _utils.assertNodeType)(\"Statement\")\n }\n }\n});\ndefineType(\"StringLiteral\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: (0, _utils.assertValueType)(\"string\")\n }\n },\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"]\n});\ndefineType(\"NumericLiteral\", {\n builder: [\"value\"],\n deprecatedAlias: \"NumberLiteral\",\n fields: {\n value: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"number\"), Object.assign(function (node, key, val) {\n if (1 / val < 0 || !Number.isFinite(val)) {\n const error = new Error(\"NumericLiterals must be non-negative finite numbers. \" + `You can use t.valueToNode(${val}) instead.`);\n {}\n }\n }, {\n type: \"number\"\n }))\n }\n },\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"]\n});\ndefineType(\"NullLiteral\", {\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"]\n});\ndefineType(\"BooleanLiteral\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: (0, _utils.assertValueType)(\"boolean\")\n }\n },\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"]\n});\ndefineType(\"RegExpLiteral\", {\n builder: [\"pattern\", \"flags\"],\n deprecatedAlias: \"RegexLiteral\",\n aliases: [\"Expression\", \"Pureish\", \"Literal\"],\n fields: {\n pattern: {\n validate: (0, _utils.assertValueType)(\"string\")\n },\n flags: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"string\"), Object.assign(function (node, key, val) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n const invalid = /[^gimsuy]/.exec(val);\n if (invalid) {\n throw new TypeError(`\"${invalid[0]}\" is not a valid RegExp flag`);\n }\n }, {\n type: \"string\"\n })),\n default: \"\"\n }\n }\n});\ndefineType(\"LogicalExpression\", {\n builder: [\"operator\", \"left\", \"right\"],\n visitor: [\"left\", \"right\"],\n aliases: [\"Binary\", \"Expression\"],\n fields: {\n operator: {\n validate: (0, _utils.assertOneOf)(..._index.LOGICAL_OPERATORS)\n },\n left: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n right: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n }\n});\ndefineType(\"MemberExpression\", {\n builder: [\"object\", \"property\", \"computed\", ...(!process.env.BABEL_TYPES_8_BREAKING ? [\"optional\"] : [])],\n visitor: [\"object\", \"property\"],\n aliases: [\"Expression\", \"LVal\"],\n fields: Object.assign({\n object: {\n validate: (0, _utils.assertNodeType)(\"Expression\", \"Super\")\n },\n property: {\n validate: function () {\n const normal = (0, _utils.assertNodeType)(\"Identifier\", \"PrivateName\");\n const computed = (0, _utils.assertNodeType)(\"Expression\");\n const validator = function (node, key, val) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n };\n validator.oneOfNodeTypes = [\"Expression\", \"Identifier\", \"PrivateName\"];\n return validator;\n }()\n },\n computed: {\n default: false\n }\n }, !process.env.BABEL_TYPES_8_BREAKING ? {\n optional: {\n validate: (0, _utils.assertOneOf)(true, false),\n optional: true\n }\n } : {})\n});\ndefineType(\"NewExpression\", {\n inherits: \"CallExpression\"\n});\ndefineType(\"Program\", {\n visitor: [\"directives\", \"body\"],\n builder: [\"body\", \"directives\", \"sourceType\", \"interpreter\"],\n fields: {\n sourceType: {\n validate: (0, _utils.assertOneOf)(\"script\", \"module\"),\n default: \"script\"\n },\n interpreter: {\n validate: (0, _utils.assertNodeType)(\"InterpreterDirective\"),\n default: null,\n optional: true\n },\n directives: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"Directive\"))),\n default: []\n },\n body: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"Statement\")))\n }\n },\n aliases: [\"Scopable\", \"BlockParent\", \"Block\"]\n});\ndefineType(\"ObjectExpression\", {\n visitor: [\"properties\"],\n aliases: [\"Expression\"],\n fields: {\n properties: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"ObjectMethod\", \"ObjectProperty\", \"SpreadElement\")))\n }\n }\n});\ndefineType(\"ObjectMethod\", {\n builder: [\"kind\", \"key\", \"params\", \"body\", \"computed\", \"generator\", \"async\"],\n visitor: [\"decorators\", \"key\", \"typeParameters\", \"params\", \"returnType\", \"body\"],\n fields: Object.assign({}, functionCommon(), functionTypeAnnotationCommon(), {\n kind: Object.assign({\n validate: (0, _utils.assertOneOf)(\"method\", \"get\", \"set\")\n }, !process.env.BABEL_TYPES_8_BREAKING ? {\n default: \"method\"\n } : {}),\n computed: {\n default: false\n },\n key: {\n validate: function () {\n const normal = (0, _utils.assertNodeType)(\"Identifier\", \"StringLiteral\", \"NumericLiteral\", \"BigIntLiteral\");\n const computed = (0, _utils.assertNodeType)(\"Expression\");\n const validator = function (node, key, val) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n };\n validator.oneOfNodeTypes = [\"Expression\", \"Identifier\", \"StringLiteral\", \"NumericLiteral\", \"BigIntLiteral\"];\n return validator;\n }()\n },\n decorators: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"Decorator\"))),\n optional: true\n },\n body: {\n validate: (0, _utils.assertNodeType)(\"BlockStatement\")\n }\n }),\n aliases: [\"UserWhitespacable\", \"Function\", \"Scopable\", \"BlockParent\", \"FunctionParent\", \"Method\", \"ObjectMember\"]\n});\ndefineType(\"ObjectProperty\", {\n builder: [\"key\", \"value\", \"computed\", \"shorthand\", ...(!process.env.BABEL_TYPES_8_BREAKING ? [\"decorators\"] : [])],\n fields: {\n computed: {\n default: false\n },\n key: {\n validate: function () {\n const normal = (0, _utils.assertNodeType)(\"Identifier\", \"StringLiteral\", \"NumericLiteral\", \"BigIntLiteral\", \"DecimalLiteral\", \"PrivateName\");\n const computed = (0, _utils.assertNodeType)(\"Expression\");\n const validator = Object.assign(function (node, key, val) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n }, {\n oneOfNodeTypes: [\"Expression\", \"Identifier\", \"StringLiteral\", \"NumericLiteral\", \"BigIntLiteral\", \"DecimalLiteral\", \"PrivateName\"]\n });\n return validator;\n }()\n },\n value: {\n validate: (0, _utils.assertNodeType)(\"Expression\", \"PatternLike\")\n },\n shorthand: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"boolean\"), Object.assign(function (node, key, val) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n if (val && node.computed) {\n throw new TypeError(\"Property shorthand of ObjectProperty cannot be true if computed is true\");\n }\n }, {\n type: \"boolean\"\n }), function (node, key, val) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n if (val && !(0, _is.default)(\"Identifier\", node.key)) {\n throw new TypeError(\"Property shorthand of ObjectProperty cannot be true if key is not an Identifier\");\n }\n }),\n default: false\n },\n decorators: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"Decorator\"))),\n optional: true\n }\n },\n visitor: [\"key\", \"value\", \"decorators\"],\n aliases: [\"UserWhitespacable\", \"Property\", \"ObjectMember\"],\n validate: function () {\n const pattern = (0, _utils.assertNodeType)(\"Identifier\", \"Pattern\", \"TSAsExpression\", \"TSSatisfiesExpression\", \"TSNonNullExpression\", \"TSTypeAssertion\");\n const expression = (0, _utils.assertNodeType)(\"Expression\");\n return function (parent, key, node) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n const validator = (0, _is.default)(\"ObjectPattern\", parent) ? pattern : expression;\n validator(node, \"value\", node.value);\n };\n }()\n});\ndefineType(\"RestElement\", {\n visitor: [\"argument\", \"typeAnnotation\"],\n builder: [\"argument\"],\n aliases: [\"LVal\", \"PatternLike\"],\n deprecatedAlias: \"RestProperty\",\n fields: Object.assign({}, patternLikeCommon(), {\n argument: {\n validate: !process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.assertNodeType)(\"LVal\") : (0, _utils.assertNodeType)(\"Identifier\", \"ArrayPattern\", \"ObjectPattern\", \"MemberExpression\", \"TSAsExpression\", \"TSSatisfiesExpression\", \"TSTypeAssertion\", \"TSNonNullExpression\")\n }\n }),\n validate(parent, key) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n const match = /(\\w+)\\[(\\d+)\\]/.exec(key);\n if (!match) throw new Error(\"Internal Babel error: malformed key.\");\n const [, listKey, index] = match;\n if (parent[listKey].length > +index + 1) {\n throw new TypeError(`RestElement must be last element of ${listKey}`);\n }\n }\n});\ndefineType(\"ReturnStatement\", {\n visitor: [\"argument\"],\n aliases: [\"Statement\", \"Terminatorless\", \"CompletionStatement\"],\n fields: {\n argument: {\n validate: (0, _utils.assertNodeType)(\"Expression\"),\n optional: true\n }\n }\n});\ndefineType(\"SequenceExpression\", {\n visitor: [\"expressions\"],\n fields: {\n expressions: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"Expression\")))\n }\n },\n aliases: [\"Expression\"]\n});\ndefineType(\"ParenthesizedExpression\", {\n visitor: [\"expression\"],\n aliases: [\"Expression\", \"ExpressionWrapper\"],\n fields: {\n expression: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n }\n});\ndefineType(\"SwitchCase\", {\n visitor: [\"test\", \"consequent\"],\n fields: {\n test: {\n validate: (0, _utils.assertNodeType)(\"Expression\"),\n optional: true\n },\n consequent: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"Statement\")))\n }\n }\n});\ndefineType(\"SwitchStatement\", {\n visitor: [\"discriminant\", \"cases\"],\n aliases: [\"Statement\", \"BlockParent\", \"Scopable\"],\n fields: {\n discriminant: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n cases: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"SwitchCase\")))\n }\n }\n});\ndefineType(\"ThisExpression\", {\n aliases: [\"Expression\"]\n});\ndefineType(\"ThrowStatement\", {\n visitor: [\"argument\"],\n aliases: [\"Statement\", \"Terminatorless\", \"CompletionStatement\"],\n fields: {\n argument: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n }\n});\ndefineType(\"TryStatement\", {\n visitor: [\"block\", \"handler\", \"finalizer\"],\n aliases: [\"Statement\"],\n fields: {\n block: {\n validate: (0, _utils.chain)((0, _utils.assertNodeType)(\"BlockStatement\"), Object.assign(function (node) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n if (!node.handler && !node.finalizer) {\n throw new TypeError(\"TryStatement expects either a handler or finalizer, or both\");\n }\n }, {\n oneOfNodeTypes: [\"BlockStatement\"]\n }))\n },\n handler: {\n optional: true,\n validate: (0, _utils.assertNodeType)(\"CatchClause\")\n },\n finalizer: {\n optional: true,\n validate: (0, _utils.assertNodeType)(\"BlockStatement\")\n }\n }\n});\ndefineType(\"UnaryExpression\", {\n builder: [\"operator\", \"argument\", \"prefix\"],\n fields: {\n prefix: {\n default: true\n },\n argument: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n operator: {\n validate: (0, _utils.assertOneOf)(..._index.UNARY_OPERATORS)\n }\n },\n visitor: [\"argument\"],\n aliases: [\"UnaryLike\", \"Expression\"]\n});\ndefineType(\"UpdateExpression\", {\n builder: [\"operator\", \"argument\", \"prefix\"],\n fields: {\n prefix: {\n default: false\n },\n argument: {\n validate: !process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.assertNodeType)(\"Expression\") : (0, _utils.assertNodeType)(\"Identifier\", \"MemberExpression\")\n },\n operator: {\n validate: (0, _utils.assertOneOf)(..._index.UPDATE_OPERATORS)\n }\n },\n visitor: [\"argument\"],\n aliases: [\"Expression\"]\n});\ndefineType(\"VariableDeclaration\", {\n builder: [\"kind\", \"declarations\"],\n visitor: [\"declarations\"],\n aliases: [\"Statement\", \"Declaration\"],\n fields: {\n declare: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n kind: {\n validate: (0, _utils.assertOneOf)(\"var\", \"let\", \"const\", \"using\", \"await using\")\n },\n declarations: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"VariableDeclarator\")))\n }\n },\n validate(parent, key, node) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n if (!(0, _is.default)(\"ForXStatement\", parent, {\n left: node\n })) return;\n if (node.declarations.length !== 1) {\n throw new TypeError(`Exactly one VariableDeclarator is required in the VariableDeclaration of a ${parent.type}`);\n }\n }\n});\ndefineType(\"VariableDeclarator\", {\n visitor: [\"id\", \"init\"],\n fields: {\n id: {\n validate: function () {\n if (!process.env.BABEL_TYPES_8_BREAKING) {\n return (0, _utils.assertNodeType)(\"LVal\");\n }\n const normal = (0, _utils.assertNodeType)(\"Identifier\", \"ArrayPattern\", \"ObjectPattern\");\n const without = (0, _utils.assertNodeType)(\"Identifier\");\n return function (node, key, val) {\n const validator = node.init ? normal : without;\n validator(node, key, val);\n };\n }()\n },\n definite: {\n optional: true,\n validate: (0, _utils.assertValueType)(\"boolean\")\n },\n init: {\n optional: true,\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n }\n});\ndefineType(\"WhileStatement\", {\n visitor: [\"test\", \"body\"],\n aliases: [\"Statement\", \"BlockParent\", \"Loop\", \"While\", \"Scopable\"],\n fields: {\n test: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n body: {\n validate: (0, _utils.assertNodeType)(\"Statement\")\n }\n }\n});\ndefineType(\"WithStatement\", {\n visitor: [\"object\", \"body\"],\n aliases: [\"Statement\"],\n fields: {\n object: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n body: {\n validate: (0, _utils.assertNodeType)(\"Statement\")\n }\n }\n});\ndefineType(\"AssignmentPattern\", {\n visitor: [\"left\", \"right\", \"decorators\"],\n builder: [\"left\", \"right\"],\n aliases: [\"Pattern\", \"PatternLike\", \"LVal\"],\n fields: Object.assign({}, patternLikeCommon(), {\n left: {\n validate: (0, _utils.assertNodeType)(\"Identifier\", \"ObjectPattern\", \"ArrayPattern\", \"MemberExpression\", \"TSAsExpression\", \"TSSatisfiesExpression\", \"TSTypeAssertion\", \"TSNonNullExpression\")\n },\n right: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n decorators: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"Decorator\"))),\n optional: true\n }\n })\n});\ndefineType(\"ArrayPattern\", {\n visitor: [\"elements\", \"typeAnnotation\"],\n builder: [\"elements\"],\n aliases: [\"Pattern\", \"PatternLike\", \"LVal\"],\n fields: Object.assign({}, patternLikeCommon(), {\n elements: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeOrValueType)(\"null\", \"PatternLike\", \"LVal\")))\n }\n })\n});\ndefineType(\"ArrowFunctionExpression\", {\n builder: [\"params\", \"body\", \"async\"],\n visitor: [\"typeParameters\", \"params\", \"returnType\", \"body\"],\n aliases: [\"Scopable\", \"Function\", \"BlockParent\", \"FunctionParent\", \"Expression\", \"Pureish\"],\n fields: Object.assign({}, functionCommon(), functionTypeAnnotationCommon(), {\n expression: {\n validate: (0, _utils.assertValueType)(\"boolean\")\n },\n body: {\n validate: (0, _utils.assertNodeType)(\"BlockStatement\", \"Expression\")\n },\n predicate: {\n validate: (0, _utils.assertNodeType)(\"DeclaredPredicate\", \"InferredPredicate\"),\n optional: true\n }\n })\n});\ndefineType(\"ClassBody\", {\n visitor: [\"body\"],\n fields: {\n body: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"ClassMethod\", \"ClassPrivateMethod\", \"ClassProperty\", \"ClassPrivateProperty\", \"ClassAccessorProperty\", \"TSDeclareMethod\", \"TSIndexSignature\", \"StaticBlock\")))\n }\n }\n});\ndefineType(\"ClassExpression\", {\n builder: [\"id\", \"superClass\", \"body\", \"decorators\"],\n visitor: [\"decorators\", \"id\", \"typeParameters\", \"superClass\", \"superTypeParameters\", \"mixins\", \"implements\", \"body\"],\n aliases: [\"Scopable\", \"Class\", \"Expression\"],\n fields: {\n id: {\n validate: (0, _utils.assertNodeType)(\"Identifier\"),\n optional: true\n },\n typeParameters: {\n validate: (0, _utils.assertNodeType)(\"TypeParameterDeclaration\", \"TSTypeParameterDeclaration\", \"Noop\"),\n optional: true\n },\n body: {\n validate: (0, _utils.assertNodeType)(\"ClassBody\")\n },\n superClass: {\n optional: true,\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n superTypeParameters: {\n validate: (0, _utils.assertNodeType)(\"TypeParameterInstantiation\", \"TSTypeParameterInstantiation\"),\n optional: true\n },\n implements: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"TSExpressionWithTypeArguments\", \"ClassImplements\"))),\n optional: true\n },\n decorators: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"Decorator\"))),\n optional: true\n },\n mixins: {\n validate: (0, _utils.assertNodeType)(\"InterfaceExtends\"),\n optional: true\n }\n }\n});\ndefineType(\"ClassDeclaration\", {\n inherits: \"ClassExpression\",\n aliases: [\"Scopable\", \"Class\", \"Statement\", \"Declaration\"],\n fields: {\n id: {\n validate: (0, _utils.assertNodeType)(\"Identifier\"),\n optional: true\n },\n typeParameters: {\n validate: (0, _utils.assertNodeType)(\"TypeParameterDeclaration\", \"TSTypeParameterDeclaration\", \"Noop\"),\n optional: true\n },\n body: {\n validate: (0, _utils.assertNodeType)(\"ClassBody\")\n },\n superClass: {\n optional: true,\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n superTypeParameters: {\n validate: (0, _utils.assertNodeType)(\"TypeParameterInstantiation\", \"TSTypeParameterInstantiation\"),\n optional: true\n },\n implements: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"TSExpressionWithTypeArguments\", \"ClassImplements\"))),\n optional: true\n },\n decorators: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"Decorator\"))),\n optional: true\n },\n mixins: {\n validate: (0, _utils.assertNodeType)(\"InterfaceExtends\"),\n optional: true\n },\n declare: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n abstract: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n }\n },\n validate: function () {\n const identifier = (0, _utils.assertNodeType)(\"Identifier\");\n return function (parent, key, node) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n if (!(0, _is.default)(\"ExportDefaultDeclaration\", parent)) {\n identifier(node, \"id\", node.id);\n }\n };\n }()\n});\ndefineType(\"ExportAllDeclaration\", {\n builder: [\"source\"],\n visitor: [\"source\", \"attributes\", \"assertions\"],\n aliases: [\"Statement\", \"Declaration\", \"ImportOrExportDeclaration\", \"ExportDeclaration\"],\n fields: {\n source: {\n validate: (0, _utils.assertNodeType)(\"StringLiteral\")\n },\n exportKind: (0, _utils.validateOptional)((0, _utils.assertOneOf)(\"type\", \"value\")),\n attributes: {\n optional: true,\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"ImportAttribute\")))\n },\n assertions: {\n optional: true,\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"ImportAttribute\")))\n }\n }\n});\ndefineType(\"ExportDefaultDeclaration\", {\n visitor: [\"declaration\"],\n aliases: [\"Statement\", \"Declaration\", \"ImportOrExportDeclaration\", \"ExportDeclaration\"],\n fields: {\n declaration: {\n validate: (0, _utils.assertNodeType)(\"TSDeclareFunction\", \"FunctionDeclaration\", \"ClassDeclaration\", \"Expression\")\n },\n exportKind: (0, _utils.validateOptional)((0, _utils.assertOneOf)(\"value\"))\n }\n});\ndefineType(\"ExportNamedDeclaration\", {\n builder: [\"declaration\", \"specifiers\", \"source\"],\n visitor: [\"declaration\", \"specifiers\", \"source\", \"attributes\", \"assertions\"],\n aliases: [\"Statement\", \"Declaration\", \"ImportOrExportDeclaration\", \"ExportDeclaration\"],\n fields: {\n declaration: {\n optional: true,\n validate: (0, _utils.chain)((0, _utils.assertNodeType)(\"Declaration\"), Object.assign(function (node, key, val) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n if (val && node.specifiers.length) {\n throw new TypeError(\"Only declaration or specifiers is allowed on ExportNamedDeclaration\");\n }\n }, {\n oneOfNodeTypes: [\"Declaration\"]\n }), function (node, key, val) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n if (val && node.source) {\n throw new TypeError(\"Cannot export a declaration from a source\");\n }\n })\n },\n attributes: {\n optional: true,\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"ImportAttribute\")))\n },\n assertions: {\n optional: true,\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"ImportAttribute\")))\n },\n specifiers: {\n default: [],\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)(function () {\n const sourced = (0, _utils.assertNodeType)(\"ExportSpecifier\", \"ExportDefaultSpecifier\", \"ExportNamespaceSpecifier\");\n const sourceless = (0, _utils.assertNodeType)(\"ExportSpecifier\");\n if (!process.env.BABEL_TYPES_8_BREAKING) return sourced;\n return function (node, key, val) {\n const validator = node.source ? sourced : sourceless;\n validator(node, key, val);\n };\n }()))\n },\n source: {\n validate: (0, _utils.assertNodeType)(\"StringLiteral\"),\n optional: true\n },\n exportKind: (0, _utils.validateOptional)((0, _utils.assertOneOf)(\"type\", \"value\"))\n }\n});\ndefineType(\"ExportSpecifier\", {\n visitor: [\"local\", \"exported\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n local: {\n validate: (0, _utils.assertNodeType)(\"Identifier\")\n },\n exported: {\n validate: (0, _utils.assertNodeType)(\"Identifier\", \"StringLiteral\")\n },\n exportKind: {\n validate: (0, _utils.assertOneOf)(\"type\", \"value\"),\n optional: true\n }\n }\n});\ndefineType(\"ForOfStatement\", {\n visitor: [\"left\", \"right\", \"body\"],\n builder: [\"left\", \"right\", \"body\", \"await\"],\n aliases: [\"Scopable\", \"Statement\", \"For\", \"BlockParent\", \"Loop\", \"ForXStatement\"],\n fields: {\n left: {\n validate: function () {\n if (!process.env.BABEL_TYPES_8_BREAKING) {\n return (0, _utils.assertNodeType)(\"VariableDeclaration\", \"LVal\");\n }\n const declaration = (0, _utils.assertNodeType)(\"VariableDeclaration\");\n const lval = (0, _utils.assertNodeType)(\"Identifier\", \"MemberExpression\", \"ArrayPattern\", \"ObjectPattern\", \"TSAsExpression\", \"TSSatisfiesExpression\", \"TSTypeAssertion\", \"TSNonNullExpression\");\n return function (node, key, val) {\n if ((0, _is.default)(\"VariableDeclaration\", val)) {\n declaration(node, key, val);\n } else {\n lval(node, key, val);\n }\n };\n }()\n },\n right: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n body: {\n validate: (0, _utils.assertNodeType)(\"Statement\")\n },\n await: {\n default: false\n }\n }\n});\ndefineType(\"ImportDeclaration\", {\n builder: [\"specifiers\", \"source\"],\n visitor: [\"specifiers\", \"source\", \"attributes\", \"assertions\"],\n aliases: [\"Statement\", \"Declaration\", \"ImportOrExportDeclaration\"],\n fields: {\n attributes: {\n optional: true,\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"ImportAttribute\")))\n },\n assertions: {\n optional: true,\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"ImportAttribute\")))\n },\n module: {\n optional: true,\n validate: (0, _utils.assertValueType)(\"boolean\")\n },\n phase: {\n default: null,\n validate: (0, _utils.assertOneOf)(\"source\", \"defer\")\n },\n specifiers: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"ImportSpecifier\", \"ImportDefaultSpecifier\", \"ImportNamespaceSpecifier\")))\n },\n source: {\n validate: (0, _utils.assertNodeType)(\"StringLiteral\")\n },\n importKind: {\n validate: (0, _utils.assertOneOf)(\"type\", \"typeof\", \"value\"),\n optional: true\n }\n }\n});\ndefineType(\"ImportDefaultSpecifier\", {\n visitor: [\"local\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n local: {\n validate: (0, _utils.assertNodeType)(\"Identifier\")\n }\n }\n});\ndefineType(\"ImportNamespaceSpecifier\", {\n visitor: [\"local\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n local: {\n validate: (0, _utils.assertNodeType)(\"Identifier\")\n }\n }\n});\ndefineType(\"ImportSpecifier\", {\n visitor: [\"imported\", \"local\"],\n builder: [\"local\", \"imported\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n local: {\n validate: (0, _utils.assertNodeType)(\"Identifier\")\n },\n imported: {\n validate: (0, _utils.assertNodeType)(\"Identifier\", \"StringLiteral\")\n },\n importKind: {\n validate: (0, _utils.assertOneOf)(\"type\", \"typeof\", \"value\"),\n optional: true\n }\n }\n});\ndefineType(\"ImportExpression\", {\n visitor: [\"source\", \"options\"],\n aliases: [\"Expression\"],\n fields: {\n phase: {\n default: null,\n validate: (0, _utils.assertOneOf)(\"source\", \"defer\")\n },\n source: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n options: {\n validate: (0, _utils.assertNodeType)(\"Expression\"),\n optional: true\n }\n }\n});\ndefineType(\"MetaProperty\", {\n visitor: [\"meta\", \"property\"],\n aliases: [\"Expression\"],\n fields: {\n meta: {\n validate: (0, _utils.chain)((0, _utils.assertNodeType)(\"Identifier\"), Object.assign(function (node, key, val) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n let property;\n switch (val.name) {\n case \"function\":\n property = \"sent\";\n break;\n case \"new\":\n property = \"target\";\n break;\n case \"import\":\n property = \"meta\";\n break;\n }\n if (!(0, _is.default)(\"Identifier\", node.property, {\n name: property\n })) {\n throw new TypeError(\"Unrecognised MetaProperty\");\n }\n }, {\n oneOfNodeTypes: [\"Identifier\"]\n }))\n },\n property: {\n validate: (0, _utils.assertNodeType)(\"Identifier\")\n }\n }\n});\nconst classMethodOrPropertyCommon = () => ({\n abstract: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n accessibility: {\n validate: (0, _utils.assertOneOf)(\"public\", \"private\", \"protected\"),\n optional: true\n },\n static: {\n default: false\n },\n override: {\n default: false\n },\n computed: {\n default: false\n },\n optional: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n key: {\n validate: (0, _utils.chain)(function () {\n const normal = (0, _utils.assertNodeType)(\"Identifier\", \"StringLiteral\", \"NumericLiteral\", \"BigIntLiteral\");\n const computed = (0, _utils.assertNodeType)(\"Expression\");\n return function (node, key, val) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n };\n }(), (0, _utils.assertNodeType)(\"Identifier\", \"StringLiteral\", \"NumericLiteral\", \"BigIntLiteral\", \"Expression\"))\n }\n});\nexports.classMethodOrPropertyCommon = classMethodOrPropertyCommon;\nconst classMethodOrDeclareMethodCommon = () => Object.assign({}, functionCommon(), classMethodOrPropertyCommon(), {\n params: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"Identifier\", \"Pattern\", \"RestElement\", \"TSParameterProperty\")))\n },\n kind: {\n validate: (0, _utils.assertOneOf)(\"get\", \"set\", \"method\", \"constructor\"),\n default: \"method\"\n },\n access: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"string\"), (0, _utils.assertOneOf)(\"public\", \"private\", \"protected\")),\n optional: true\n },\n decorators: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"Decorator\"))),\n optional: true\n }\n});\nexports.classMethodOrDeclareMethodCommon = classMethodOrDeclareMethodCommon;\ndefineType(\"ClassMethod\", {\n aliases: [\"Function\", \"Scopable\", \"BlockParent\", \"FunctionParent\", \"Method\"],\n builder: [\"kind\", \"key\", \"params\", \"body\", \"computed\", \"static\", \"generator\", \"async\"],\n visitor: [\"decorators\", \"key\", \"typeParameters\", \"params\", \"returnType\", \"body\"],\n fields: Object.assign({}, classMethodOrDeclareMethodCommon(), functionTypeAnnotationCommon(), {\n body: {\n validate: (0, _utils.assertNodeType)(\"BlockStatement\")\n }\n })\n});\ndefineType(\"ObjectPattern\", {\n visitor: [\"properties\", \"typeAnnotation\", \"decorators\"],\n builder: [\"properties\"],\n aliases: [\"Pattern\", \"PatternLike\", \"LVal\"],\n fields: Object.assign({}, patternLikeCommon(), {\n properties: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"RestElement\", \"ObjectProperty\")))\n }\n })\n});\ndefineType(\"SpreadElement\", {\n visitor: [\"argument\"],\n aliases: [\"UnaryLike\"],\n deprecatedAlias: \"SpreadProperty\",\n fields: {\n argument: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n }\n});\ndefineType(\"Super\", {\n aliases: [\"Expression\"]\n});\ndefineType(\"TaggedTemplateExpression\", {\n visitor: [\"tag\", \"typeParameters\", \"quasi\"],\n builder: [\"tag\", \"quasi\"],\n aliases: [\"Expression\"],\n fields: {\n tag: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n quasi: {\n validate: (0, _utils.assertNodeType)(\"TemplateLiteral\")\n },\n typeParameters: {\n validate: (0, _utils.assertNodeType)(\"TypeParameterInstantiation\", \"TSTypeParameterInstantiation\"),\n optional: true\n }\n }\n});\ndefineType(\"TemplateElement\", {\n builder: [\"value\", \"tail\"],\n fields: {\n value: {\n validate: (0, _utils.chain)((0, _utils.assertShape)({\n raw: {\n validate: (0, _utils.assertValueType)(\"string\")\n },\n cooked: {\n validate: (0, _utils.assertValueType)(\"string\"),\n optional: true\n }\n }), function templateElementCookedValidator(node) {\n const raw = node.value.raw;\n let unterminatedCalled = false;\n const error = () => {\n throw new Error(\"Internal @babel/types error.\");\n };\n const {\n str,\n firstInvalidLoc\n } = (0, _helperStringParser.readStringContents)(\"template\", raw, 0, 0, 0, {\n unterminated() {\n unterminatedCalled = true;\n },\n strictNumericEscape: error,\n invalidEscapeSequence: error,\n numericSeparatorInEscapeSequence: error,\n unexpectedNumericSeparator: error,\n invalidDigit: error,\n invalidCodePoint: error\n });\n if (!unterminatedCalled) throw new Error(\"Invalid raw\");\n node.value.cooked = firstInvalidLoc ? null : str;\n })\n },\n tail: {\n default: false\n }\n }\n});\ndefineType(\"TemplateLiteral\", {\n visitor: [\"quasis\", \"expressions\"],\n aliases: [\"Expression\", \"Literal\"],\n fields: {\n quasis: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"TemplateElement\")))\n },\n expressions: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"Expression\", \"TSType\")), function (node, key, val) {\n if (node.quasis.length !== val.length + 1) {\n throw new TypeError(`Number of ${node.type} quasis should be exactly one more than the number of expressions.\\nExpected ${val.length + 1} quasis but got ${node.quasis.length}`);\n }\n })\n }\n }\n});\ndefineType(\"YieldExpression\", {\n builder: [\"argument\", \"delegate\"],\n visitor: [\"argument\"],\n aliases: [\"Expression\", \"Terminatorless\"],\n fields: {\n delegate: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"boolean\"), Object.assign(function (node, key, val) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n if (val && !node.argument) {\n throw new TypeError(\"Property delegate of YieldExpression cannot be true if there is no argument\");\n }\n }, {\n type: \"boolean\"\n })),\n default: false\n },\n argument: {\n optional: true,\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n }\n});\ndefineType(\"AwaitExpression\", {\n builder: [\"argument\"],\n visitor: [\"argument\"],\n aliases: [\"Expression\", \"Terminatorless\"],\n fields: {\n argument: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n }\n});\ndefineType(\"Import\", {\n aliases: [\"Expression\"]\n});\ndefineType(\"BigIntLiteral\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: (0, _utils.assertValueType)(\"string\")\n }\n },\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"]\n});\ndefineType(\"ExportNamespaceSpecifier\", {\n visitor: [\"exported\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n exported: {\n validate: (0, _utils.assertNodeType)(\"Identifier\")\n }\n }\n});\ndefineType(\"OptionalMemberExpression\", {\n builder: [\"object\", \"property\", \"computed\", \"optional\"],\n visitor: [\"object\", \"property\"],\n aliases: [\"Expression\"],\n fields: {\n object: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n property: {\n validate: function () {\n const normal = (0, _utils.assertNodeType)(\"Identifier\");\n const computed = (0, _utils.assertNodeType)(\"Expression\");\n const validator = Object.assign(function (node, key, val) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n }, {\n oneOfNodeTypes: [\"Expression\", \"Identifier\"]\n });\n return validator;\n }()\n },\n computed: {\n default: false\n },\n optional: {\n validate: !process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.assertValueType)(\"boolean\") : (0, _utils.chain)((0, _utils.assertValueType)(\"boolean\"), (0, _utils.assertOptionalChainStart)())\n }\n }\n});\ndefineType(\"OptionalCallExpression\", {\n visitor: [\"callee\", \"arguments\", \"typeParameters\", \"typeArguments\"],\n builder: [\"callee\", \"arguments\", \"optional\"],\n aliases: [\"Expression\"],\n fields: {\n callee: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n arguments: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"Expression\", \"SpreadElement\", \"ArgumentPlaceholder\")))\n },\n optional: {\n validate: !process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.assertValueType)(\"boolean\") : (0, _utils.chain)((0, _utils.assertValueType)(\"boolean\"), (0, _utils.assertOptionalChainStart)())\n },\n typeArguments: {\n validate: (0, _utils.assertNodeType)(\"TypeParameterInstantiation\"),\n optional: true\n },\n typeParameters: {\n validate: (0, _utils.assertNodeType)(\"TSTypeParameterInstantiation\"),\n optional: true\n }\n }\n});\ndefineType(\"ClassProperty\", {\n visitor: [\"decorators\", \"key\", \"typeAnnotation\", \"value\"],\n builder: [\"key\", \"value\", \"typeAnnotation\", \"decorators\", \"computed\", \"static\"],\n aliases: [\"Property\"],\n fields: Object.assign({}, classMethodOrPropertyCommon(), {\n value: {\n validate: (0, _utils.assertNodeType)(\"Expression\"),\n optional: true\n },\n definite: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n typeAnnotation: {\n validate: (0, _utils.assertNodeType)(\"TypeAnnotation\", \"TSTypeAnnotation\", \"Noop\"),\n optional: true\n },\n decorators: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"Decorator\"))),\n optional: true\n },\n readonly: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n declare: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n variance: {\n validate: (0, _utils.assertNodeType)(\"Variance\"),\n optional: true\n }\n })\n});\ndefineType(\"ClassAccessorProperty\", {\n visitor: [\"decorators\", \"key\", \"typeAnnotation\", \"value\"],\n builder: [\"key\", \"value\", \"typeAnnotation\", \"decorators\", \"computed\", \"static\"],\n aliases: [\"Property\", \"Accessor\"],\n fields: Object.assign({}, classMethodOrPropertyCommon(), {\n key: {\n validate: (0, _utils.chain)(function () {\n const normal = (0, _utils.assertNodeType)(\"Identifier\", \"StringLiteral\", \"NumericLiteral\", \"BigIntLiteral\", \"PrivateName\");\n const computed = (0, _utils.assertNodeType)(\"Expression\");\n return function (node, key, val) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n };\n }(), (0, _utils.assertNodeType)(\"Identifier\", \"StringLiteral\", \"NumericLiteral\", \"BigIntLiteral\", \"Expression\", \"PrivateName\"))\n },\n value: {\n validate: (0, _utils.assertNodeType)(\"Expression\"),\n optional: true\n },\n definite: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n typeAnnotation: {\n validate: (0, _utils.assertNodeType)(\"TypeAnnotation\", \"TSTypeAnnotation\", \"Noop\"),\n optional: true\n },\n decorators: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"Decorator\"))),\n optional: true\n },\n readonly: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n declare: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n variance: {\n validate: (0, _utils.assertNodeType)(\"Variance\"),\n optional: true\n }\n })\n});\ndefineType(\"ClassPrivateProperty\", {\n visitor: [\"decorators\", \"key\", \"typeAnnotation\", \"value\"],\n builder: [\"key\", \"value\", \"decorators\", \"static\"],\n aliases: [\"Property\", \"Private\"],\n fields: {\n key: {\n validate: (0, _utils.assertNodeType)(\"PrivateName\")\n },\n value: {\n validate: (0, _utils.assertNodeType)(\"Expression\"),\n optional: true\n },\n typeAnnotation: {\n validate: (0, _utils.assertNodeType)(\"TypeAnnotation\", \"TSTypeAnnotation\", \"Noop\"),\n optional: true\n },\n decorators: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"Decorator\"))),\n optional: true\n },\n static: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n default: false\n },\n readonly: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n definite: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n variance: {\n validate: (0, _utils.assertNodeType)(\"Variance\"),\n optional: true\n }\n }\n});\ndefineType(\"ClassPrivateMethod\", {\n builder: [\"kind\", \"key\", \"params\", \"body\", \"static\"],\n visitor: [\"decorators\", \"key\", \"typeParameters\", \"params\", \"returnType\", \"body\"],\n aliases: [\"Function\", \"Scopable\", \"BlockParent\", \"FunctionParent\", \"Method\", \"Private\"],\n fields: Object.assign({}, classMethodOrDeclareMethodCommon(), functionTypeAnnotationCommon(), {\n kind: {\n validate: (0, _utils.assertOneOf)(\"get\", \"set\", \"method\"),\n default: \"method\"\n },\n key: {\n validate: (0, _utils.assertNodeType)(\"PrivateName\")\n },\n body: {\n validate: (0, _utils.assertNodeType)(\"BlockStatement\")\n }\n })\n});\ndefineType(\"PrivateName\", {\n visitor: [\"id\"],\n aliases: [\"Private\"],\n fields: {\n id: {\n validate: (0, _utils.assertNodeType)(\"Identifier\")\n }\n }\n});\ndefineType(\"StaticBlock\", {\n visitor: [\"body\"],\n fields: {\n body: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"Statement\")))\n }\n },\n aliases: [\"Scopable\", \"BlockParent\", \"FunctionParent\"]\n});\n\n//# sourceMappingURL=core.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DEPRECATED_ALIASES = void 0;\nconst DEPRECATED_ALIASES = exports.DEPRECATED_ALIASES = {\n ModuleDeclaration: \"ImportOrExportDeclaration\"\n};\n\n//# sourceMappingURL=deprecated-aliases.js.map\n"],"sourceRoot":""}