Commit 107cdd2d authored by DatHV's avatar DatHV
Browse files

update build x-app-sdk

parent 9bb8aadd
Pipeline #2082 failed with stages
in 0 seconds
{"version":3,"names":["_index","require","_default","exports","default","createTypeAnnotationBasedOnTypeof","type","stringTypeAnnotation","numberTypeAnnotation","voidTypeAnnotation","booleanTypeAnnotation","genericTypeAnnotation","identifier","anyTypeAnnotation","Error"],"sources":["../../../src/builders/flow/createTypeAnnotationBasedOnTypeof.ts"],"sourcesContent":["import {\n anyTypeAnnotation,\n stringTypeAnnotation,\n numberTypeAnnotation,\n voidTypeAnnotation,\n booleanTypeAnnotation,\n genericTypeAnnotation,\n identifier,\n} from \"../generated/index.ts\";\nimport type * as t from \"../../index.ts\";\n\nexport default createTypeAnnotationBasedOnTypeof as {\n (type: \"string\"): t.StringTypeAnnotation;\n (type: \"number\"): t.NumberTypeAnnotation;\n (type: \"undefined\"): t.VoidTypeAnnotation;\n (type: \"boolean\"): t.BooleanTypeAnnotation;\n (type: \"function\"): t.GenericTypeAnnotation;\n (type: \"object\"): t.GenericTypeAnnotation;\n (type: \"symbol\"): t.GenericTypeAnnotation;\n (type: \"bigint\"): t.AnyTypeAnnotation;\n};\n\n/**\n * Create a type annotation based on typeof expression.\n */\nfunction createTypeAnnotationBasedOnTypeof(type: string): t.FlowType {\n switch (type) {\n case \"string\":\n return stringTypeAnnotation();\n case \"number\":\n return numberTypeAnnotation();\n case \"undefined\":\n return voidTypeAnnotation();\n case \"boolean\":\n return booleanTypeAnnotation();\n case \"function\":\n return genericTypeAnnotation(identifier(\"Function\"));\n case \"object\":\n return genericTypeAnnotation(identifier(\"Object\"));\n case \"symbol\":\n return genericTypeAnnotation(identifier(\"Symbol\"));\n case \"bigint\":\n // todo: use BigInt annotation when Flow supports BigInt\n // https://github.com/facebook/flow/issues/6639\n return anyTypeAnnotation();\n }\n throw new Error(\"Invalid typeof value: \" + type);\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAQ+B,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAGhBC,iCAAiC;AAchD,SAASA,iCAAiCA,CAACC,IAAY,EAAc;EACnE,QAAQA,IAAI;IACV,KAAK,QAAQ;MACX,OAAO,IAAAC,2BAAoB,EAAC,CAAC;IAC/B,KAAK,QAAQ;MACX,OAAO,IAAAC,2BAAoB,EAAC,CAAC;IAC/B,KAAK,WAAW;MACd,OAAO,IAAAC,yBAAkB,EAAC,CAAC;IAC7B,KAAK,SAAS;MACZ,OAAO,IAAAC,4BAAqB,EAAC,CAAC;IAChC,KAAK,UAAU;MACb,OAAO,IAAAC,4BAAqB,EAAC,IAAAC,iBAAU,EAAC,UAAU,CAAC,CAAC;IACtD,KAAK,QAAQ;MACX,OAAO,IAAAD,4BAAqB,EAAC,IAAAC,iBAAU,EAAC,QAAQ,CAAC,CAAC;IACpD,KAAK,QAAQ;MACX,OAAO,IAAAD,4BAAqB,EAAC,IAAAC,iBAAU,EAAC,QAAQ,CAAC,CAAC;IACpD,KAAK,QAAQ;MAGX,OAAO,IAAAC,wBAAiB,EAAC,CAAC;EAC9B;EACA,MAAM,IAAIC,KAAK,CAAC,wBAAwB,GAAGR,IAAI,CAAC;AAClD","ignoreList":[]}
\ No newline at end of file
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _lowercase = require("./lowercase.js");
Object.keys(_lowercase).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (key in exports && exports[key] === _lowercase[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _lowercase[key];
}
});
});
var _uppercase = require("./uppercase.js");
Object.keys(_uppercase).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (key in exports && exports[key] === _uppercase[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _uppercase[key];
}
});
});
//# sourceMappingURL=index.js.map
{"version":3,"names":["_lowercase","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_uppercase"],"sources":["../../../src/builders/generated/index.ts"],"sourcesContent":["/*\n * This file is auto-generated! Do not modify it directly.\n * To re-generate run 'make build'\n */\n\nexport * from \"./lowercase.ts\";\nexport * from \"./uppercase.ts\";\n\n// Uppercase builders and AST types conflict with each other, which is\n// not allowed by TypeScript when using `export * from ...`\n// We instead explicity list the AST types here, so that:\n// - From a TypeScript perspective, the AST types win over the uppercase\n// builders (which is the standard behavior for JS when a named\n// re-export conflicts with a * re-export.)\n// - At runtime, this `export type` is removed, leaving only the uppercase\n// builders behind (which are thus visible to JavaScript code).\n// This ensures compatibility with legacy code that uses the uppercase\n// builders, while allowing TypeScript users to use the lowercase builders\n// together with the AST types.\n\n// prettier-ignore\nexport type {\n ArrayExpression, AssignmentExpression, BinaryExpression, InterpreterDirective, Directive, DirectiveLiteral, BlockStatement, BreakStatement, CallExpression, CatchClause, ConditionalExpression, ContinueStatement, DebuggerStatement, DoWhileStatement, EmptyStatement, ExpressionStatement, File, ForInStatement, ForStatement, FunctionDeclaration, FunctionExpression, Identifier, IfStatement, LabeledStatement, StringLiteral, NumericLiteral, NullLiteral, BooleanLiteral, RegExpLiteral, LogicalExpression, MemberExpression, NewExpression, Program, ObjectExpression, ObjectMethod, ObjectProperty, RestElement, ReturnStatement, SequenceExpression, ParenthesizedExpression, SwitchCase, SwitchStatement, ThisExpression, ThrowStatement, TryStatement, UnaryExpression, UpdateExpression, VariableDeclaration, VariableDeclarator, WhileStatement, WithStatement, AssignmentPattern, ArrayPattern, ArrowFunctionExpression, ClassBody, ClassExpression, ClassDeclaration, ExportAllDeclaration, ExportDefaultDeclaration, ExportNamedDeclaration, ExportSpecifier, ForOfStatement, ImportDeclaration, ImportDefaultSpecifier, ImportNamespaceSpecifier, ImportSpecifier, ImportExpression, MetaProperty, ClassMethod, ObjectPattern, SpreadElement, Super, TaggedTemplateExpression, TemplateElement, TemplateLiteral, YieldExpression, AwaitExpression, Import, BigIntLiteral, ExportNamespaceSpecifier, OptionalMemberExpression, OptionalCallExpression, ClassProperty, ClassAccessorProperty, ClassPrivateProperty, ClassPrivateMethod, PrivateName, StaticBlock, ImportAttribute, AnyTypeAnnotation, ArrayTypeAnnotation, BooleanTypeAnnotation, BooleanLiteralTypeAnnotation, NullLiteralTypeAnnotation, ClassImplements, DeclareClass, DeclareFunction, DeclareInterface, DeclareModule, DeclareModuleExports, DeclareTypeAlias, DeclareOpaqueType, DeclareVariable, DeclareExportDeclaration, DeclareExportAllDeclaration, DeclaredPredicate, ExistsTypeAnnotation, FunctionTypeAnnotation, FunctionTypeParam, GenericTypeAnnotation, InferredPredicate, InterfaceExtends, InterfaceDeclaration, InterfaceTypeAnnotation, IntersectionTypeAnnotation, MixedTypeAnnotation, EmptyTypeAnnotation, NullableTypeAnnotation, NumberLiteralTypeAnnotation, NumberTypeAnnotation, ObjectTypeAnnotation, ObjectTypeInternalSlot, ObjectTypeCallProperty, ObjectTypeIndexer, ObjectTypeProperty, ObjectTypeSpreadProperty, OpaqueType, QualifiedTypeIdentifier, StringLiteralTypeAnnotation, StringTypeAnnotation, SymbolTypeAnnotation, ThisTypeAnnotation, TupleTypeAnnotation, TypeofTypeAnnotation, TypeAlias, TypeAnnotation, TypeCastExpression, TypeParameter, TypeParameterDeclaration, TypeParameterInstantiation, UnionTypeAnnotation, Variance, VoidTypeAnnotation, EnumDeclaration, EnumBooleanBody, EnumNumberBody, EnumStringBody, EnumSymbolBody, EnumBooleanMember, EnumNumberMember, EnumStringMember, EnumDefaultedMember, IndexedAccessType, OptionalIndexedAccessType, JSXAttribute, JSXClosingElement, JSXElement, JSXEmptyExpression, JSXExpressionContainer, JSXSpreadChild, JSXIdentifier, JSXMemberExpression, JSXNamespacedName, JSXOpeningElement, JSXSpreadAttribute, JSXText, JSXFragment, JSXOpeningFragment, JSXClosingFragment, Noop, Placeholder, V8IntrinsicIdentifier, ArgumentPlaceholder, BindExpression, Decorator, DoExpression, ExportDefaultSpecifier, RecordExpression, TupleExpression, DecimalLiteral, ModuleExpression, TopicReference, PipelineTopicExpression, PipelineBareFunction, PipelinePrimaryTopicReference, VoidPattern, TSParameterProperty, TSDeclareFunction, TSDeclareMethod, TSQualifiedName, TSCallSignatureDeclaration, TSConstructSignatureDeclaration, TSPropertySignature, TSMethodSignature, TSIndexSignature, TSAnyKeyword, TSBooleanKeyword, TSBigIntKeyword, TSIntrinsicKeyword, TSNeverKeyword, TSNullKeyword, TSNumberKeyword, TSObjectKeyword, TSStringKeyword, TSSymbolKeyword, TSUndefinedKeyword, TSUnknownKeyword, TSVoidKeyword, TSThisType, TSFunctionType, TSConstructorType, TSTypeReference, TSTypePredicate, TSTypeQuery, TSTypeLiteral, TSArrayType, TSTupleType, TSOptionalType, TSRestType, TSNamedTupleMember, TSUnionType, TSIntersectionType, TSConditionalType, TSInferType, TSParenthesizedType, TSTypeOperator, TSIndexedAccessType, TSMappedType, TSTemplateLiteralType, TSLiteralType, TSExpressionWithTypeArguments, TSInterfaceDeclaration, TSInterfaceBody, TSTypeAliasDeclaration, TSInstantiationExpression, TSAsExpression, TSSatisfiesExpression, TSTypeAssertion, TSEnumBody, TSEnumDeclaration, TSEnumMember, TSModuleDeclaration, TSModuleBlock, TSImportType, TSImportEqualsDeclaration, TSExternalModuleReference, TSNonNullExpression, TSExportAssignment, TSNamespaceExportDeclaration, TSTypeAnnotation, TSTypeParameterInstantiation, TSTypeParameterDeclaration, TSTypeParameter,\n NumberLiteral, RegexLiteral, RestProperty, SpreadProperty\n} from \"../../ast-types/generated/index.ts\";\n\n// This will re-export all the type definitions that do not conflict with\n// uppercase builders, such as aliases.\nexport type * from \"../../ast-types/generated/index.ts\";\n"],"mappings":";;;;;AAKA,IAAAA,UAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,UAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,UAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,UAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,UAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,UAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,UAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,UAAA,CAAAL,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
\ No newline at end of file
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.anyTypeAnnotation = anyTypeAnnotation;
exports.argumentPlaceholder = argumentPlaceholder;
exports.arrayExpression = arrayExpression;
exports.arrayPattern = arrayPattern;
exports.arrayTypeAnnotation = arrayTypeAnnotation;
exports.arrowFunctionExpression = arrowFunctionExpression;
exports.assignmentExpression = assignmentExpression;
exports.assignmentPattern = assignmentPattern;
exports.awaitExpression = awaitExpression;
exports.bigIntLiteral = bigIntLiteral;
exports.binaryExpression = binaryExpression;
exports.bindExpression = bindExpression;
exports.blockStatement = blockStatement;
exports.booleanLiteral = booleanLiteral;
exports.booleanLiteralTypeAnnotation = booleanLiteralTypeAnnotation;
exports.booleanTypeAnnotation = booleanTypeAnnotation;
exports.breakStatement = breakStatement;
exports.callExpression = callExpression;
exports.catchClause = catchClause;
exports.classAccessorProperty = classAccessorProperty;
exports.classBody = classBody;
exports.classDeclaration = classDeclaration;
exports.classExpression = classExpression;
exports.classImplements = classImplements;
exports.classMethod = classMethod;
exports.classPrivateMethod = classPrivateMethod;
exports.classPrivateProperty = classPrivateProperty;
exports.classProperty = classProperty;
exports.conditionalExpression = conditionalExpression;
exports.continueStatement = continueStatement;
exports.debuggerStatement = debuggerStatement;
exports.decimalLiteral = decimalLiteral;
exports.declareClass = declareClass;
exports.declareExportAllDeclaration = declareExportAllDeclaration;
exports.declareExportDeclaration = declareExportDeclaration;
exports.declareFunction = declareFunction;
exports.declareInterface = declareInterface;
exports.declareModule = declareModule;
exports.declareModuleExports = declareModuleExports;
exports.declareOpaqueType = declareOpaqueType;
exports.declareTypeAlias = declareTypeAlias;
exports.declareVariable = declareVariable;
exports.declaredPredicate = declaredPredicate;
exports.decorator = decorator;
exports.directive = directive;
exports.directiveLiteral = directiveLiteral;
exports.doExpression = doExpression;
exports.doWhileStatement = doWhileStatement;
exports.emptyStatement = emptyStatement;
exports.emptyTypeAnnotation = emptyTypeAnnotation;
exports.enumBooleanBody = enumBooleanBody;
exports.enumBooleanMember = enumBooleanMember;
exports.enumDeclaration = enumDeclaration;
exports.enumDefaultedMember = enumDefaultedMember;
exports.enumNumberBody = enumNumberBody;
exports.enumNumberMember = enumNumberMember;
exports.enumStringBody = enumStringBody;
exports.enumStringMember = enumStringMember;
exports.enumSymbolBody = enumSymbolBody;
exports.existsTypeAnnotation = existsTypeAnnotation;
exports.exportAllDeclaration = exportAllDeclaration;
exports.exportDefaultDeclaration = exportDefaultDeclaration;
exports.exportDefaultSpecifier = exportDefaultSpecifier;
exports.exportNamedDeclaration = exportNamedDeclaration;
exports.exportNamespaceSpecifier = exportNamespaceSpecifier;
exports.exportSpecifier = exportSpecifier;
exports.expressionStatement = expressionStatement;
exports.file = file;
exports.forInStatement = forInStatement;
exports.forOfStatement = forOfStatement;
exports.forStatement = forStatement;
exports.functionDeclaration = functionDeclaration;
exports.functionExpression = functionExpression;
exports.functionTypeAnnotation = functionTypeAnnotation;
exports.functionTypeParam = functionTypeParam;
exports.genericTypeAnnotation = genericTypeAnnotation;
exports.identifier = identifier;
exports.ifStatement = ifStatement;
exports.import = _import;
exports.importAttribute = importAttribute;
exports.importDeclaration = importDeclaration;
exports.importDefaultSpecifier = importDefaultSpecifier;
exports.importExpression = importExpression;
exports.importNamespaceSpecifier = importNamespaceSpecifier;
exports.importSpecifier = importSpecifier;
exports.indexedAccessType = indexedAccessType;
exports.inferredPredicate = inferredPredicate;
exports.interfaceDeclaration = interfaceDeclaration;
exports.interfaceExtends = interfaceExtends;
exports.interfaceTypeAnnotation = interfaceTypeAnnotation;
exports.interpreterDirective = interpreterDirective;
exports.intersectionTypeAnnotation = intersectionTypeAnnotation;
exports.jSXAttribute = exports.jsxAttribute = jsxAttribute;
exports.jSXClosingElement = exports.jsxClosingElement = jsxClosingElement;
exports.jSXClosingFragment = exports.jsxClosingFragment = jsxClosingFragment;
exports.jSXElement = exports.jsxElement = jsxElement;
exports.jSXEmptyExpression = exports.jsxEmptyExpression = jsxEmptyExpression;
exports.jSXExpressionContainer = exports.jsxExpressionContainer = jsxExpressionContainer;
exports.jSXFragment = exports.jsxFragment = jsxFragment;
exports.jSXIdentifier = exports.jsxIdentifier = jsxIdentifier;
exports.jSXMemberExpression = exports.jsxMemberExpression = jsxMemberExpression;
exports.jSXNamespacedName = exports.jsxNamespacedName = jsxNamespacedName;
exports.jSXOpeningElement = exports.jsxOpeningElement = jsxOpeningElement;
exports.jSXOpeningFragment = exports.jsxOpeningFragment = jsxOpeningFragment;
exports.jSXSpreadAttribute = exports.jsxSpreadAttribute = jsxSpreadAttribute;
exports.jSXSpreadChild = exports.jsxSpreadChild = jsxSpreadChild;
exports.jSXText = exports.jsxText = jsxText;
exports.labeledStatement = labeledStatement;
exports.logicalExpression = logicalExpression;
exports.memberExpression = memberExpression;
exports.metaProperty = metaProperty;
exports.mixedTypeAnnotation = mixedTypeAnnotation;
exports.moduleExpression = moduleExpression;
exports.newExpression = newExpression;
exports.noop = noop;
exports.nullLiteral = nullLiteral;
exports.nullLiteralTypeAnnotation = nullLiteralTypeAnnotation;
exports.nullableTypeAnnotation = nullableTypeAnnotation;
exports.numberLiteral = NumberLiteral;
exports.numberLiteralTypeAnnotation = numberLiteralTypeAnnotation;
exports.numberTypeAnnotation = numberTypeAnnotation;
exports.numericLiteral = numericLiteral;
exports.objectExpression = objectExpression;
exports.objectMethod = objectMethod;
exports.objectPattern = objectPattern;
exports.objectProperty = objectProperty;
exports.objectTypeAnnotation = objectTypeAnnotation;
exports.objectTypeCallProperty = objectTypeCallProperty;
exports.objectTypeIndexer = objectTypeIndexer;
exports.objectTypeInternalSlot = objectTypeInternalSlot;
exports.objectTypeProperty = objectTypeProperty;
exports.objectTypeSpreadProperty = objectTypeSpreadProperty;
exports.opaqueType = opaqueType;
exports.optionalCallExpression = optionalCallExpression;
exports.optionalIndexedAccessType = optionalIndexedAccessType;
exports.optionalMemberExpression = optionalMemberExpression;
exports.parenthesizedExpression = parenthesizedExpression;
exports.pipelineBareFunction = pipelineBareFunction;
exports.pipelinePrimaryTopicReference = pipelinePrimaryTopicReference;
exports.pipelineTopicExpression = pipelineTopicExpression;
exports.placeholder = placeholder;
exports.privateName = privateName;
exports.program = program;
exports.qualifiedTypeIdentifier = qualifiedTypeIdentifier;
exports.recordExpression = recordExpression;
exports.regExpLiteral = regExpLiteral;
exports.regexLiteral = RegexLiteral;
exports.restElement = restElement;
exports.restProperty = RestProperty;
exports.returnStatement = returnStatement;
exports.sequenceExpression = sequenceExpression;
exports.spreadElement = spreadElement;
exports.spreadProperty = SpreadProperty;
exports.staticBlock = staticBlock;
exports.stringLiteral = stringLiteral;
exports.stringLiteralTypeAnnotation = stringLiteralTypeAnnotation;
exports.stringTypeAnnotation = stringTypeAnnotation;
exports.super = _super;
exports.switchCase = switchCase;
exports.switchStatement = switchStatement;
exports.symbolTypeAnnotation = symbolTypeAnnotation;
exports.taggedTemplateExpression = taggedTemplateExpression;
exports.templateElement = templateElement;
exports.templateLiteral = templateLiteral;
exports.thisExpression = thisExpression;
exports.thisTypeAnnotation = thisTypeAnnotation;
exports.throwStatement = throwStatement;
exports.topicReference = topicReference;
exports.tryStatement = tryStatement;
exports.tSAnyKeyword = exports.tsAnyKeyword = tsAnyKeyword;
exports.tSArrayType = exports.tsArrayType = tsArrayType;
exports.tSAsExpression = exports.tsAsExpression = tsAsExpression;
exports.tSBigIntKeyword = exports.tsBigIntKeyword = tsBigIntKeyword;
exports.tSBooleanKeyword = exports.tsBooleanKeyword = tsBooleanKeyword;
exports.tSCallSignatureDeclaration = exports.tsCallSignatureDeclaration = tsCallSignatureDeclaration;
exports.tSConditionalType = exports.tsConditionalType = tsConditionalType;
exports.tSConstructSignatureDeclaration = exports.tsConstructSignatureDeclaration = tsConstructSignatureDeclaration;
exports.tSConstructorType = exports.tsConstructorType = tsConstructorType;
exports.tSDeclareFunction = exports.tsDeclareFunction = tsDeclareFunction;
exports.tSDeclareMethod = exports.tsDeclareMethod = tsDeclareMethod;
exports.tSEnumBody = exports.tsEnumBody = tsEnumBody;
exports.tSEnumDeclaration = exports.tsEnumDeclaration = tsEnumDeclaration;
exports.tSEnumMember = exports.tsEnumMember = tsEnumMember;
exports.tSExportAssignment = exports.tsExportAssignment = tsExportAssignment;
exports.tSExpressionWithTypeArguments = exports.tsExpressionWithTypeArguments = tsExpressionWithTypeArguments;
exports.tSExternalModuleReference = exports.tsExternalModuleReference = tsExternalModuleReference;
exports.tSFunctionType = exports.tsFunctionType = tsFunctionType;
exports.tSImportEqualsDeclaration = exports.tsImportEqualsDeclaration = tsImportEqualsDeclaration;
exports.tSImportType = exports.tsImportType = tsImportType;
exports.tSIndexSignature = exports.tsIndexSignature = tsIndexSignature;
exports.tSIndexedAccessType = exports.tsIndexedAccessType = tsIndexedAccessType;
exports.tSInferType = exports.tsInferType = tsInferType;
exports.tSInstantiationExpression = exports.tsInstantiationExpression = tsInstantiationExpression;
exports.tSInterfaceBody = exports.tsInterfaceBody = tsInterfaceBody;
exports.tSInterfaceDeclaration = exports.tsInterfaceDeclaration = tsInterfaceDeclaration;
exports.tSIntersectionType = exports.tsIntersectionType = tsIntersectionType;
exports.tSIntrinsicKeyword = exports.tsIntrinsicKeyword = tsIntrinsicKeyword;
exports.tSLiteralType = exports.tsLiteralType = tsLiteralType;
exports.tSMappedType = exports.tsMappedType = tsMappedType;
exports.tSMethodSignature = exports.tsMethodSignature = tsMethodSignature;
exports.tSModuleBlock = exports.tsModuleBlock = tsModuleBlock;
exports.tSModuleDeclaration = exports.tsModuleDeclaration = tsModuleDeclaration;
exports.tSNamedTupleMember = exports.tsNamedTupleMember = tsNamedTupleMember;
exports.tSNamespaceExportDeclaration = exports.tsNamespaceExportDeclaration = tsNamespaceExportDeclaration;
exports.tSNeverKeyword = exports.tsNeverKeyword = tsNeverKeyword;
exports.tSNonNullExpression = exports.tsNonNullExpression = tsNonNullExpression;
exports.tSNullKeyword = exports.tsNullKeyword = tsNullKeyword;
exports.tSNumberKeyword = exports.tsNumberKeyword = tsNumberKeyword;
exports.tSObjectKeyword = exports.tsObjectKeyword = tsObjectKeyword;
exports.tSOptionalType = exports.tsOptionalType = tsOptionalType;
exports.tSParameterProperty = exports.tsParameterProperty = tsParameterProperty;
exports.tSParenthesizedType = exports.tsParenthesizedType = tsParenthesizedType;
exports.tSPropertySignature = exports.tsPropertySignature = tsPropertySignature;
exports.tSQualifiedName = exports.tsQualifiedName = tsQualifiedName;
exports.tSRestType = exports.tsRestType = tsRestType;
exports.tSSatisfiesExpression = exports.tsSatisfiesExpression = tsSatisfiesExpression;
exports.tSStringKeyword = exports.tsStringKeyword = tsStringKeyword;
exports.tSSymbolKeyword = exports.tsSymbolKeyword = tsSymbolKeyword;
exports.tSTemplateLiteralType = exports.tsTemplateLiteralType = tsTemplateLiteralType;
exports.tSThisType = exports.tsThisType = tsThisType;
exports.tSTupleType = exports.tsTupleType = tsTupleType;
exports.tSTypeAliasDeclaration = exports.tsTypeAliasDeclaration = tsTypeAliasDeclaration;
exports.tSTypeAnnotation = exports.tsTypeAnnotation = tsTypeAnnotation;
exports.tSTypeAssertion = exports.tsTypeAssertion = tsTypeAssertion;
exports.tSTypeLiteral = exports.tsTypeLiteral = tsTypeLiteral;
exports.tSTypeOperator = exports.tsTypeOperator = tsTypeOperator;
exports.tSTypeParameter = exports.tsTypeParameter = tsTypeParameter;
exports.tSTypeParameterDeclaration = exports.tsTypeParameterDeclaration = tsTypeParameterDeclaration;
exports.tSTypeParameterInstantiation = exports.tsTypeParameterInstantiation = tsTypeParameterInstantiation;
exports.tSTypePredicate = exports.tsTypePredicate = tsTypePredicate;
exports.tSTypeQuery = exports.tsTypeQuery = tsTypeQuery;
exports.tSTypeReference = exports.tsTypeReference = tsTypeReference;
exports.tSUndefinedKeyword = exports.tsUndefinedKeyword = tsUndefinedKeyword;
exports.tSUnionType = exports.tsUnionType = tsUnionType;
exports.tSUnknownKeyword = exports.tsUnknownKeyword = tsUnknownKeyword;
exports.tSVoidKeyword = exports.tsVoidKeyword = tsVoidKeyword;
exports.tupleExpression = tupleExpression;
exports.tupleTypeAnnotation = tupleTypeAnnotation;
exports.typeAlias = typeAlias;
exports.typeAnnotation = typeAnnotation;
exports.typeCastExpression = typeCastExpression;
exports.typeParameter = typeParameter;
exports.typeParameterDeclaration = typeParameterDeclaration;
exports.typeParameterInstantiation = typeParameterInstantiation;
exports.typeofTypeAnnotation = typeofTypeAnnotation;
exports.unaryExpression = unaryExpression;
exports.unionTypeAnnotation = unionTypeAnnotation;
exports.updateExpression = updateExpression;
exports.v8IntrinsicIdentifier = v8IntrinsicIdentifier;
exports.variableDeclaration = variableDeclaration;
exports.variableDeclarator = variableDeclarator;
exports.variance = variance;
exports.voidPattern = voidPattern;
exports.voidTypeAnnotation = voidTypeAnnotation;
exports.whileStatement = whileStatement;
exports.withStatement = withStatement;
exports.yieldExpression = yieldExpression;
var _validate = require("../../validators/validate.js");
var _deprecationWarning = require("../../utils/deprecationWarning.js");
var utils = require("../../definitions/utils.js");
const {
validateInternal: validate
} = _validate;
const {
NODE_FIELDS
} = utils;
function bigIntLiteral(value) {
if (typeof value === "bigint") {
value = value.toString();
}
const node = {
type: "BigIntLiteral",
value
};
const defs = NODE_FIELDS.BigIntLiteral;
validate(defs.value, node, "value", value);
return node;
}
function arrayExpression(elements = []) {
const node = {
type: "ArrayExpression",
elements
};
const defs = NODE_FIELDS.ArrayExpression;
validate(defs.elements, node, "elements", elements, 1);
return node;
}
function assignmentExpression(operator, left, right) {
const node = {
type: "AssignmentExpression",
operator,
left,
right
};
const defs = NODE_FIELDS.AssignmentExpression;
validate(defs.operator, node, "operator", operator);
validate(defs.left, node, "left", left, 1);
validate(defs.right, node, "right", right, 1);
return node;
}
function binaryExpression(operator, left, right) {
const node = {
type: "BinaryExpression",
operator,
left,
right
};
const defs = NODE_FIELDS.BinaryExpression;
validate(defs.operator, node, "operator", operator);
validate(defs.left, node, "left", left, 1);
validate(defs.right, node, "right", right, 1);
return node;
}
function interpreterDirective(value) {
const node = {
type: "InterpreterDirective",
value
};
const defs = NODE_FIELDS.InterpreterDirective;
validate(defs.value, node, "value", value);
return node;
}
function directive(value) {
const node = {
type: "Directive",
value
};
const defs = NODE_FIELDS.Directive;
validate(defs.value, node, "value", value, 1);
return node;
}
function directiveLiteral(value) {
const node = {
type: "DirectiveLiteral",
value
};
const defs = NODE_FIELDS.DirectiveLiteral;
validate(defs.value, node, "value", value);
return node;
}
function blockStatement(body, directives = []) {
const node = {
type: "BlockStatement",
body,
directives
};
const defs = NODE_FIELDS.BlockStatement;
validate(defs.body, node, "body", body, 1);
validate(defs.directives, node, "directives", directives, 1);
return node;
}
function breakStatement(label = null) {
const node = {
type: "BreakStatement",
label
};
const defs = NODE_FIELDS.BreakStatement;
validate(defs.label, node, "label", label, 1);
return node;
}
function callExpression(callee, _arguments) {
const node = {
type: "CallExpression",
callee,
arguments: _arguments
};
const defs = NODE_FIELDS.CallExpression;
validate(defs.callee, node, "callee", callee, 1);
validate(defs.arguments, node, "arguments", _arguments, 1);
return node;
}
function catchClause(param = null, body) {
const node = {
type: "CatchClause",
param,
body
};
const defs = NODE_FIELDS.CatchClause;
validate(defs.param, node, "param", param, 1);
validate(defs.body, node, "body", body, 1);
return node;
}
function conditionalExpression(test, consequent, alternate) {
const node = {
type: "ConditionalExpression",
test,
consequent,
alternate
};
const defs = NODE_FIELDS.ConditionalExpression;
validate(defs.test, node, "test", test, 1);
validate(defs.consequent, node, "consequent", consequent, 1);
validate(defs.alternate, node, "alternate", alternate, 1);
return node;
}
function continueStatement(label = null) {
const node = {
type: "ContinueStatement",
label
};
const defs = NODE_FIELDS.ContinueStatement;
validate(defs.label, node, "label", label, 1);
return node;
}
function debuggerStatement() {
return {
type: "DebuggerStatement"
};
}
function doWhileStatement(test, body) {
const node = {
type: "DoWhileStatement",
test,
body
};
const defs = NODE_FIELDS.DoWhileStatement;
validate(defs.test, node, "test", test, 1);
validate(defs.body, node, "body", body, 1);
return node;
}
function emptyStatement() {
return {
type: "EmptyStatement"
};
}
function expressionStatement(expression) {
const node = {
type: "ExpressionStatement",
expression
};
const defs = NODE_FIELDS.ExpressionStatement;
validate(defs.expression, node, "expression", expression, 1);
return node;
}
function file(program, comments = null, tokens = null) {
const node = {
type: "File",
program,
comments,
tokens
};
const defs = NODE_FIELDS.File;
validate(defs.program, node, "program", program, 1);
validate(defs.comments, node, "comments", comments, 1);
validate(defs.tokens, node, "tokens", tokens);
return node;
}
function forInStatement(left, right, body) {
const node = {
type: "ForInStatement",
left,
right,
body
};
const defs = NODE_FIELDS.ForInStatement;
validate(defs.left, node, "left", left, 1);
validate(defs.right, node, "right", right, 1);
validate(defs.body, node, "body", body, 1);
return node;
}
function forStatement(init = null, test = null, update = null, body) {
const node = {
type: "ForStatement",
init,
test,
update,
body
};
const defs = NODE_FIELDS.ForStatement;
validate(defs.init, node, "init", init, 1);
validate(defs.test, node, "test", test, 1);
validate(defs.update, node, "update", update, 1);
validate(defs.body, node, "body", body, 1);
return node;
}
function functionDeclaration(id = null, params, body, generator = false, async = false) {
const node = {
type: "FunctionDeclaration",
id,
params,
body,
generator,
async
};
const defs = NODE_FIELDS.FunctionDeclaration;
validate(defs.id, node, "id", id, 1);
validate(defs.params, node, "params", params, 1);
validate(defs.body, node, "body", body, 1);
validate(defs.generator, node, "generator", generator);
validate(defs.async, node, "async", async);
return node;
}
function functionExpression(id = null, params, body, generator = false, async = false) {
const node = {
type: "FunctionExpression",
id,
params,
body,
generator,
async
};
const defs = NODE_FIELDS.FunctionExpression;
validate(defs.id, node, "id", id, 1);
validate(defs.params, node, "params", params, 1);
validate(defs.body, node, "body", body, 1);
validate(defs.generator, node, "generator", generator);
validate(defs.async, node, "async", async);
return node;
}
function identifier(name) {
const node = {
type: "Identifier",
name
};
const defs = NODE_FIELDS.Identifier;
validate(defs.name, node, "name", name);
return node;
}
function ifStatement(test, consequent, alternate = null) {
const node = {
type: "IfStatement",
test,
consequent,
alternate
};
const defs = NODE_FIELDS.IfStatement;
validate(defs.test, node, "test", test, 1);
validate(defs.consequent, node, "consequent", consequent, 1);
validate(defs.alternate, node, "alternate", alternate, 1);
return node;
}
function labeledStatement(label, body) {
const node = {
type: "LabeledStatement",
label,
body
};
const defs = NODE_FIELDS.LabeledStatement;
validate(defs.label, node, "label", label, 1);
validate(defs.body, node, "body", body, 1);
return node;
}
function stringLiteral(value) {
const node = {
type: "StringLiteral",
value
};
const defs = NODE_FIELDS.StringLiteral;
validate(defs.value, node, "value", value);
return node;
}
function numericLiteral(value) {
const node = {
type: "NumericLiteral",
value
};
const defs = NODE_FIELDS.NumericLiteral;
validate(defs.value, node, "value", value);
return node;
}
function nullLiteral() {
return {
type: "NullLiteral"
};
}
function booleanLiteral(value) {
const node = {
type: "BooleanLiteral",
value
};
const defs = NODE_FIELDS.BooleanLiteral;
validate(defs.value, node, "value", value);
return node;
}
function regExpLiteral(pattern, flags = "") {
const node = {
type: "RegExpLiteral",
pattern,
flags
};
const defs = NODE_FIELDS.RegExpLiteral;
validate(defs.pattern, node, "pattern", pattern);
validate(defs.flags, node, "flags", flags);
return node;
}
function logicalExpression(operator, left, right) {
const node = {
type: "LogicalExpression",
operator,
left,
right
};
const defs = NODE_FIELDS.LogicalExpression;
validate(defs.operator, node, "operator", operator);
validate(defs.left, node, "left", left, 1);
validate(defs.right, node, "right", right, 1);
return node;
}
function memberExpression(object, property, computed = false, optional = null) {
const node = {
type: "MemberExpression",
object,
property,
computed,
optional
};
const defs = NODE_FIELDS.MemberExpression;
validate(defs.object, node, "object", object, 1);
validate(defs.property, node, "property", property, 1);
validate(defs.computed, node, "computed", computed);
validate(defs.optional, node, "optional", optional);
return node;
}
function newExpression(callee, _arguments) {
const node = {
type: "NewExpression",
callee,
arguments: _arguments
};
const defs = NODE_FIELDS.NewExpression;
validate(defs.callee, node, "callee", callee, 1);
validate(defs.arguments, node, "arguments", _arguments, 1);
return node;
}
function program(body, directives = [], sourceType = "script", interpreter = null) {
const node = {
type: "Program",
body,
directives,
sourceType,
interpreter
};
const defs = NODE_FIELDS.Program;
validate(defs.body, node, "body", body, 1);
validate(defs.directives, node, "directives", directives, 1);
validate(defs.sourceType, node, "sourceType", sourceType);
validate(defs.interpreter, node, "interpreter", interpreter, 1);
return node;
}
function objectExpression(properties) {
const node = {
type: "ObjectExpression",
properties
};
const defs = NODE_FIELDS.ObjectExpression;
validate(defs.properties, node, "properties", properties, 1);
return node;
}
function objectMethod(kind = "method", key, params, body, computed = false, generator = false, async = false) {
const node = {
type: "ObjectMethod",
kind,
key,
params,
body,
computed,
generator,
async
};
const defs = NODE_FIELDS.ObjectMethod;
validate(defs.kind, node, "kind", kind);
validate(defs.key, node, "key", key, 1);
validate(defs.params, node, "params", params, 1);
validate(defs.body, node, "body", body, 1);
validate(defs.computed, node, "computed", computed);
validate(defs.generator, node, "generator", generator);
validate(defs.async, node, "async", async);
return node;
}
function objectProperty(key, value, computed = false, shorthand = false, decorators = null) {
const node = {
type: "ObjectProperty",
key,
value,
computed,
shorthand,
decorators
};
const defs = NODE_FIELDS.ObjectProperty;
validate(defs.key, node, "key", key, 1);
validate(defs.value, node, "value", value, 1);
validate(defs.computed, node, "computed", computed);
validate(defs.shorthand, node, "shorthand", shorthand);
validate(defs.decorators, node, "decorators", decorators, 1);
return node;
}
function restElement(argument) {
const node = {
type: "RestElement",
argument
};
const defs = NODE_FIELDS.RestElement;
validate(defs.argument, node, "argument", argument, 1);
return node;
}
function returnStatement(argument = null) {
const node = {
type: "ReturnStatement",
argument
};
const defs = NODE_FIELDS.ReturnStatement;
validate(defs.argument, node, "argument", argument, 1);
return node;
}
function sequenceExpression(expressions) {
const node = {
type: "SequenceExpression",
expressions
};
const defs = NODE_FIELDS.SequenceExpression;
validate(defs.expressions, node, "expressions", expressions, 1);
return node;
}
function parenthesizedExpression(expression) {
const node = {
type: "ParenthesizedExpression",
expression
};
const defs = NODE_FIELDS.ParenthesizedExpression;
validate(defs.expression, node, "expression", expression, 1);
return node;
}
function switchCase(test = null, consequent) {
const node = {
type: "SwitchCase",
test,
consequent
};
const defs = NODE_FIELDS.SwitchCase;
validate(defs.test, node, "test", test, 1);
validate(defs.consequent, node, "consequent", consequent, 1);
return node;
}
function switchStatement(discriminant, cases) {
const node = {
type: "SwitchStatement",
discriminant,
cases
};
const defs = NODE_FIELDS.SwitchStatement;
validate(defs.discriminant, node, "discriminant", discriminant, 1);
validate(defs.cases, node, "cases", cases, 1);
return node;
}
function thisExpression() {
return {
type: "ThisExpression"
};
}
function throwStatement(argument) {
const node = {
type: "ThrowStatement",
argument
};
const defs = NODE_FIELDS.ThrowStatement;
validate(defs.argument, node, "argument", argument, 1);
return node;
}
function tryStatement(block, handler = null, finalizer = null) {
const node = {
type: "TryStatement",
block,
handler,
finalizer
};
const defs = NODE_FIELDS.TryStatement;
validate(defs.block, node, "block", block, 1);
validate(defs.handler, node, "handler", handler, 1);
validate(defs.finalizer, node, "finalizer", finalizer, 1);
return node;
}
function unaryExpression(operator, argument, prefix = true) {
const node = {
type: "UnaryExpression",
operator,
argument,
prefix
};
const defs = NODE_FIELDS.UnaryExpression;
validate(defs.operator, node, "operator", operator);
validate(defs.argument, node, "argument", argument, 1);
validate(defs.prefix, node, "prefix", prefix);
return node;
}
function updateExpression(operator, argument, prefix = false) {
const node = {
type: "UpdateExpression",
operator,
argument,
prefix
};
const defs = NODE_FIELDS.UpdateExpression;
validate(defs.operator, node, "operator", operator);
validate(defs.argument, node, "argument", argument, 1);
validate(defs.prefix, node, "prefix", prefix);
return node;
}
function variableDeclaration(kind, declarations) {
const node = {
type: "VariableDeclaration",
kind,
declarations
};
const defs = NODE_FIELDS.VariableDeclaration;
validate(defs.kind, node, "kind", kind);
validate(defs.declarations, node, "declarations", declarations, 1);
return node;
}
function variableDeclarator(id, init = null) {
const node = {
type: "VariableDeclarator",
id,
init
};
const defs = NODE_FIELDS.VariableDeclarator;
validate(defs.id, node, "id", id, 1);
validate(defs.init, node, "init", init, 1);
return node;
}
function whileStatement(test, body) {
const node = {
type: "WhileStatement",
test,
body
};
const defs = NODE_FIELDS.WhileStatement;
validate(defs.test, node, "test", test, 1);
validate(defs.body, node, "body", body, 1);
return node;
}
function withStatement(object, body) {
const node = {
type: "WithStatement",
object,
body
};
const defs = NODE_FIELDS.WithStatement;
validate(defs.object, node, "object", object, 1);
validate(defs.body, node, "body", body, 1);
return node;
}
function assignmentPattern(left, right) {
const node = {
type: "AssignmentPattern",
left,
right
};
const defs = NODE_FIELDS.AssignmentPattern;
validate(defs.left, node, "left", left, 1);
validate(defs.right, node, "right", right, 1);
return node;
}
function arrayPattern(elements) {
const node = {
type: "ArrayPattern",
elements
};
const defs = NODE_FIELDS.ArrayPattern;
validate(defs.elements, node, "elements", elements, 1);
return node;
}
function arrowFunctionExpression(params, body, async = false) {
const node = {
type: "ArrowFunctionExpression",
params,
body,
async,
expression: null
};
const defs = NODE_FIELDS.ArrowFunctionExpression;
validate(defs.params, node, "params", params, 1);
validate(defs.body, node, "body", body, 1);
validate(defs.async, node, "async", async);
return node;
}
function classBody(body) {
const node = {
type: "ClassBody",
body
};
const defs = NODE_FIELDS.ClassBody;
validate(defs.body, node, "body", body, 1);
return node;
}
function classExpression(id = null, superClass = null, body, decorators = null) {
const node = {
type: "ClassExpression",
id,
superClass,
body,
decorators
};
const defs = NODE_FIELDS.ClassExpression;
validate(defs.id, node, "id", id, 1);
validate(defs.superClass, node, "superClass", superClass, 1);
validate(defs.body, node, "body", body, 1);
validate(defs.decorators, node, "decorators", decorators, 1);
return node;
}
function classDeclaration(id = null, superClass = null, body, decorators = null) {
const node = {
type: "ClassDeclaration",
id,
superClass,
body,
decorators
};
const defs = NODE_FIELDS.ClassDeclaration;
validate(defs.id, node, "id", id, 1);
validate(defs.superClass, node, "superClass", superClass, 1);
validate(defs.body, node, "body", body, 1);
validate(defs.decorators, node, "decorators", decorators, 1);
return node;
}
function exportAllDeclaration(source) {
const node = {
type: "ExportAllDeclaration",
source
};
const defs = NODE_FIELDS.ExportAllDeclaration;
validate(defs.source, node, "source", source, 1);
return node;
}
function exportDefaultDeclaration(declaration) {
const node = {
type: "ExportDefaultDeclaration",
declaration
};
const defs = NODE_FIELDS.ExportDefaultDeclaration;
validate(defs.declaration, node, "declaration", declaration, 1);
return node;
}
function exportNamedDeclaration(declaration = null, specifiers = [], source = null) {
const node = {
type: "ExportNamedDeclaration",
declaration,
specifiers,
source
};
const defs = NODE_FIELDS.ExportNamedDeclaration;
validate(defs.declaration, node, "declaration", declaration, 1);
validate(defs.specifiers, node, "specifiers", specifiers, 1);
validate(defs.source, node, "source", source, 1);
return node;
}
function exportSpecifier(local, exported) {
const node = {
type: "ExportSpecifier",
local,
exported
};
const defs = NODE_FIELDS.ExportSpecifier;
validate(defs.local, node, "local", local, 1);
validate(defs.exported, node, "exported", exported, 1);
return node;
}
function forOfStatement(left, right, body, _await = false) {
const node = {
type: "ForOfStatement",
left,
right,
body,
await: _await
};
const defs = NODE_FIELDS.ForOfStatement;
validate(defs.left, node, "left", left, 1);
validate(defs.right, node, "right", right, 1);
validate(defs.body, node, "body", body, 1);
validate(defs.await, node, "await", _await);
return node;
}
function importDeclaration(specifiers, source) {
const node = {
type: "ImportDeclaration",
specifiers,
source
};
const defs = NODE_FIELDS.ImportDeclaration;
validate(defs.specifiers, node, "specifiers", specifiers, 1);
validate(defs.source, node, "source", source, 1);
return node;
}
function importDefaultSpecifier(local) {
const node = {
type: "ImportDefaultSpecifier",
local
};
const defs = NODE_FIELDS.ImportDefaultSpecifier;
validate(defs.local, node, "local", local, 1);
return node;
}
function importNamespaceSpecifier(local) {
const node = {
type: "ImportNamespaceSpecifier",
local
};
const defs = NODE_FIELDS.ImportNamespaceSpecifier;
validate(defs.local, node, "local", local, 1);
return node;
}
function importSpecifier(local, imported) {
const node = {
type: "ImportSpecifier",
local,
imported
};
const defs = NODE_FIELDS.ImportSpecifier;
validate(defs.local, node, "local", local, 1);
validate(defs.imported, node, "imported", imported, 1);
return node;
}
function importExpression(source, options = null) {
const node = {
type: "ImportExpression",
source,
options
};
const defs = NODE_FIELDS.ImportExpression;
validate(defs.source, node, "source", source, 1);
validate(defs.options, node, "options", options, 1);
return node;
}
function metaProperty(meta, property) {
const node = {
type: "MetaProperty",
meta,
property
};
const defs = NODE_FIELDS.MetaProperty;
validate(defs.meta, node, "meta", meta, 1);
validate(defs.property, node, "property", property, 1);
return node;
}
function classMethod(kind = "method", key, params, body, computed = false, _static = false, generator = false, async = false) {
const node = {
type: "ClassMethod",
kind,
key,
params,
body,
computed,
static: _static,
generator,
async
};
const defs = NODE_FIELDS.ClassMethod;
validate(defs.kind, node, "kind", kind);
validate(defs.key, node, "key", key, 1);
validate(defs.params, node, "params", params, 1);
validate(defs.body, node, "body", body, 1);
validate(defs.computed, node, "computed", computed);
validate(defs.static, node, "static", _static);
validate(defs.generator, node, "generator", generator);
validate(defs.async, node, "async", async);
return node;
}
function objectPattern(properties) {
const node = {
type: "ObjectPattern",
properties
};
const defs = NODE_FIELDS.ObjectPattern;
validate(defs.properties, node, "properties", properties, 1);
return node;
}
function spreadElement(argument) {
const node = {
type: "SpreadElement",
argument
};
const defs = NODE_FIELDS.SpreadElement;
validate(defs.argument, node, "argument", argument, 1);
return node;
}
function _super() {
return {
type: "Super"
};
}
function taggedTemplateExpression(tag, quasi) {
const node = {
type: "TaggedTemplateExpression",
tag,
quasi
};
const defs = NODE_FIELDS.TaggedTemplateExpression;
validate(defs.tag, node, "tag", tag, 1);
validate(defs.quasi, node, "quasi", quasi, 1);
return node;
}
function templateElement(value, tail = false) {
const node = {
type: "TemplateElement",
value,
tail
};
const defs = NODE_FIELDS.TemplateElement;
validate(defs.value, node, "value", value);
validate(defs.tail, node, "tail", tail);
return node;
}
function templateLiteral(quasis, expressions) {
const node = {
type: "TemplateLiteral",
quasis,
expressions
};
const defs = NODE_FIELDS.TemplateLiteral;
validate(defs.quasis, node, "quasis", quasis, 1);
validate(defs.expressions, node, "expressions", expressions, 1);
return node;
}
function yieldExpression(argument = null, delegate = false) {
const node = {
type: "YieldExpression",
argument,
delegate
};
const defs = NODE_FIELDS.YieldExpression;
validate(defs.argument, node, "argument", argument, 1);
validate(defs.delegate, node, "delegate", delegate);
return node;
}
function awaitExpression(argument) {
const node = {
type: "AwaitExpression",
argument
};
const defs = NODE_FIELDS.AwaitExpression;
validate(defs.argument, node, "argument", argument, 1);
return node;
}
function _import() {
return {
type: "Import"
};
}
function exportNamespaceSpecifier(exported) {
const node = {
type: "ExportNamespaceSpecifier",
exported
};
const defs = NODE_FIELDS.ExportNamespaceSpecifier;
validate(defs.exported, node, "exported", exported, 1);
return node;
}
function optionalMemberExpression(object, property, computed = false, optional) {
const node = {
type: "OptionalMemberExpression",
object,
property,
computed,
optional
};
const defs = NODE_FIELDS.OptionalMemberExpression;
validate(defs.object, node, "object", object, 1);
validate(defs.property, node, "property", property, 1);
validate(defs.computed, node, "computed", computed);
validate(defs.optional, node, "optional", optional);
return node;
}
function optionalCallExpression(callee, _arguments, optional) {
const node = {
type: "OptionalCallExpression",
callee,
arguments: _arguments,
optional
};
const defs = NODE_FIELDS.OptionalCallExpression;
validate(defs.callee, node, "callee", callee, 1);
validate(defs.arguments, node, "arguments", _arguments, 1);
validate(defs.optional, node, "optional", optional);
return node;
}
function classProperty(key, value = null, typeAnnotation = null, decorators = null, computed = false, _static = false) {
const node = {
type: "ClassProperty",
key,
value,
typeAnnotation,
decorators,
computed,
static: _static
};
const defs = NODE_FIELDS.ClassProperty;
validate(defs.key, node, "key", key, 1);
validate(defs.value, node, "value", value, 1);
validate(defs.typeAnnotation, node, "typeAnnotation", typeAnnotation, 1);
validate(defs.decorators, node, "decorators", decorators, 1);
validate(defs.computed, node, "computed", computed);
validate(defs.static, node, "static", _static);
return node;
}
function classAccessorProperty(key, value = null, typeAnnotation = null, decorators = null, computed = false, _static = false) {
const node = {
type: "ClassAccessorProperty",
key,
value,
typeAnnotation,
decorators,
computed,
static: _static
};
const defs = NODE_FIELDS.ClassAccessorProperty;
validate(defs.key, node, "key", key, 1);
validate(defs.value, node, "value", value, 1);
validate(defs.typeAnnotation, node, "typeAnnotation", typeAnnotation, 1);
validate(defs.decorators, node, "decorators", decorators, 1);
validate(defs.computed, node, "computed", computed);
validate(defs.static, node, "static", _static);
return node;
}
function classPrivateProperty(key, value = null, decorators = null, _static = false) {
const node = {
type: "ClassPrivateProperty",
key,
value,
decorators,
static: _static
};
const defs = NODE_FIELDS.ClassPrivateProperty;
validate(defs.key, node, "key", key, 1);
validate(defs.value, node, "value", value, 1);
validate(defs.decorators, node, "decorators", decorators, 1);
validate(defs.static, node, "static", _static);
return node;
}
function classPrivateMethod(kind = "method", key, params, body, _static = false) {
const node = {
type: "ClassPrivateMethod",
kind,
key,
params,
body,
static: _static
};
const defs = NODE_FIELDS.ClassPrivateMethod;
validate(defs.kind, node, "kind", kind);
validate(defs.key, node, "key", key, 1);
validate(defs.params, node, "params", params, 1);
validate(defs.body, node, "body", body, 1);
validate(defs.static, node, "static", _static);
return node;
}
function privateName(id) {
const node = {
type: "PrivateName",
id
};
const defs = NODE_FIELDS.PrivateName;
validate(defs.id, node, "id", id, 1);
return node;
}
function staticBlock(body) {
const node = {
type: "StaticBlock",
body
};
const defs = NODE_FIELDS.StaticBlock;
validate(defs.body, node, "body", body, 1);
return node;
}
function importAttribute(key, value) {
const node = {
type: "ImportAttribute",
key,
value
};
const defs = NODE_FIELDS.ImportAttribute;
validate(defs.key, node, "key", key, 1);
validate(defs.value, node, "value", value, 1);
return node;
}
function anyTypeAnnotation() {
return {
type: "AnyTypeAnnotation"
};
}
function arrayTypeAnnotation(elementType) {
const node = {
type: "ArrayTypeAnnotation",
elementType
};
const defs = NODE_FIELDS.ArrayTypeAnnotation;
validate(defs.elementType, node, "elementType", elementType, 1);
return node;
}
function booleanTypeAnnotation() {
return {
type: "BooleanTypeAnnotation"
};
}
function booleanLiteralTypeAnnotation(value) {
const node = {
type: "BooleanLiteralTypeAnnotation",
value
};
const defs = NODE_FIELDS.BooleanLiteralTypeAnnotation;
validate(defs.value, node, "value", value);
return node;
}
function nullLiteralTypeAnnotation() {
return {
type: "NullLiteralTypeAnnotation"
};
}
function classImplements(id, typeParameters = null) {
const node = {
type: "ClassImplements",
id,
typeParameters
};
const defs = NODE_FIELDS.ClassImplements;
validate(defs.id, node, "id", id, 1);
validate(defs.typeParameters, node, "typeParameters", typeParameters, 1);
return node;
}
function declareClass(id, typeParameters = null, _extends = null, body) {
const node = {
type: "DeclareClass",
id,
typeParameters,
extends: _extends,
body
};
const defs = NODE_FIELDS.DeclareClass;
validate(defs.id, node, "id", id, 1);
validate(defs.typeParameters, node, "typeParameters", typeParameters, 1);
validate(defs.extends, node, "extends", _extends, 1);
validate(defs.body, node, "body", body, 1);
return node;
}
function declareFunction(id) {
const node = {
type: "DeclareFunction",
id
};
const defs = NODE_FIELDS.DeclareFunction;
validate(defs.id, node, "id", id, 1);
return node;
}
function declareInterface(id, typeParameters = null, _extends = null, body) {
const node = {
type: "DeclareInterface",
id,
typeParameters,
extends: _extends,
body
};
const defs = NODE_FIELDS.DeclareInterface;
validate(defs.id, node, "id", id, 1);
validate(defs.typeParameters, node, "typeParameters", typeParameters, 1);
validate(defs.extends, node, "extends", _extends, 1);
validate(defs.body, node, "body", body, 1);
return node;
}
function declareModule(id, body, kind = null) {
const node = {
type: "DeclareModule",
id,
body,
kind
};
const defs = NODE_FIELDS.DeclareModule;
validate(defs.id, node, "id", id, 1);
validate(defs.body, node, "body", body, 1);
validate(defs.kind, node, "kind", kind);
return node;
}
function declareModuleExports(typeAnnotation) {
const node = {
type: "DeclareModuleExports",
typeAnnotation
};
const defs = NODE_FIELDS.DeclareModuleExports;
validate(defs.typeAnnotation, node, "typeAnnotation", typeAnnotation, 1);
return node;
}
function declareTypeAlias(id, typeParameters = null, right) {
const node = {
type: "DeclareTypeAlias",
id,
typeParameters,
right
};
const defs = NODE_FIELDS.DeclareTypeAlias;
validate(defs.id, node, "id", id, 1);
validate(defs.typeParameters, node, "typeParameters", typeParameters, 1);
validate(defs.right, node, "right", right, 1);
return node;
}
function declareOpaqueType(id, typeParameters = null, supertype = null) {
const node = {
type: "DeclareOpaqueType",
id,
typeParameters,
supertype
};
const defs = NODE_FIELDS.DeclareOpaqueType;
validate(defs.id, node, "id", id, 1);
validate(defs.typeParameters, node, "typeParameters", typeParameters, 1);
validate(defs.supertype, node, "supertype", supertype, 1);
return node;
}
function declareVariable(id) {
const node = {
type: "DeclareVariable",
id
};
const defs = NODE_FIELDS.DeclareVariable;
validate(defs.id, node, "id", id, 1);
return node;
}
function declareExportDeclaration(declaration = null, specifiers = null, source = null, attributes = null) {
const node = {
type: "DeclareExportDeclaration",
declaration,
specifiers,
source,
attributes
};
const defs = NODE_FIELDS.DeclareExportDeclaration;
validate(defs.declaration, node, "declaration", declaration, 1);
validate(defs.specifiers, node, "specifiers", specifiers, 1);
validate(defs.source, node, "source", source, 1);
validate(defs.attributes, node, "attributes", attributes, 1);
return node;
}
function declareExportAllDeclaration(source, attributes = null) {
const node = {
type: "DeclareExportAllDeclaration",
source,
attributes
};
const defs = NODE_FIELDS.DeclareExportAllDeclaration;
validate(defs.source, node, "source", source, 1);
validate(defs.attributes, node, "attributes", attributes, 1);
return node;
}
function declaredPredicate(value) {
const node = {
type: "DeclaredPredicate",
value
};
const defs = NODE_FIELDS.DeclaredPredicate;
validate(defs.value, node, "value", value, 1);
return node;
}
function existsTypeAnnotation() {
return {
type: "ExistsTypeAnnotation"
};
}
function functionTypeAnnotation(typeParameters = null, params, rest = null, returnType) {
const node = {
type: "FunctionTypeAnnotation",
typeParameters,
params,
rest,
returnType
};
const defs = NODE_FIELDS.FunctionTypeAnnotation;
validate(defs.typeParameters, node, "typeParameters", typeParameters, 1);
validate(defs.params, node, "params", params, 1);
validate(defs.rest, node, "rest", rest, 1);
validate(defs.returnType, node, "returnType", returnType, 1);
return node;
}
function functionTypeParam(name = null, typeAnnotation) {
const node = {
type: "FunctionTypeParam",
name,
typeAnnotation
};
const defs = NODE_FIELDS.FunctionTypeParam;
validate(defs.name, node, "name", name, 1);
validate(defs.typeAnnotation, node, "typeAnnotation", typeAnnotation, 1);
return node;
}
function genericTypeAnnotation(id, typeParameters = null) {
const node = {
type: "GenericTypeAnnotation",
id,
typeParameters
};
const defs = NODE_FIELDS.GenericTypeAnnotation;
validate(defs.id, node, "id", id, 1);
validate(defs.typeParameters, node, "typeParameters", typeParameters, 1);
return node;
}
function inferredPredicate() {
return {
type: "InferredPredicate"
};
}
function interfaceExtends(id, typeParameters = null) {
const node = {
type: "InterfaceExtends",
id,
typeParameters
};
const defs = NODE_FIELDS.InterfaceExtends;
validate(defs.id, node, "id", id, 1);
validate(defs.typeParameters, node, "typeParameters", typeParameters, 1);
return node;
}
function interfaceDeclaration(id, typeParameters = null, _extends = null, body) {
const node = {
type: "InterfaceDeclaration",
id,
typeParameters,
extends: _extends,
body
};
const defs = NODE_FIELDS.InterfaceDeclaration;
validate(defs.id, node, "id", id, 1);
validate(defs.typeParameters, node, "typeParameters", typeParameters, 1);
validate(defs.extends, node, "extends", _extends, 1);
validate(defs.body, node, "body", body, 1);
return node;
}
function interfaceTypeAnnotation(_extends = null, body) {
const node = {
type: "InterfaceTypeAnnotation",
extends: _extends,
body
};
const defs = NODE_FIELDS.InterfaceTypeAnnotation;
validate(defs.extends, node, "extends", _extends, 1);
validate(defs.body, node, "body", body, 1);
return node;
}
function intersectionTypeAnnotation(types) {
const node = {
type: "IntersectionTypeAnnotation",
types
};
const defs = NODE_FIELDS.IntersectionTypeAnnotation;
validate(defs.types, node, "types", types, 1);
return node;
}
function mixedTypeAnnotation() {
return {
type: "MixedTypeAnnotation"
};
}
function emptyTypeAnnotation() {
return {
type: "EmptyTypeAnnotation"
};
}
function nullableTypeAnnotation(typeAnnotation) {
const node = {
type: "NullableTypeAnnotation",
typeAnnotation
};
const defs = NODE_FIELDS.NullableTypeAnnotation;
validate(defs.typeAnnotation, node, "typeAnnotation", typeAnnotation, 1);
return node;
}
function numberLiteralTypeAnnotation(value) {
const node = {
type: "NumberLiteralTypeAnnotation",
value
};
const defs = NODE_FIELDS.NumberLiteralTypeAnnotation;
validate(defs.value, node, "value", value);
return node;
}
function numberTypeAnnotation() {
return {
type: "NumberTypeAnnotation"
};
}
function objectTypeAnnotation(properties, indexers = [], callProperties = [], internalSlots = [], exact = false) {
const node = {
type: "ObjectTypeAnnotation",
properties,
indexers,
callProperties,
internalSlots,
exact
};
const defs = NODE_FIELDS.ObjectTypeAnnotation;
validate(defs.properties, node, "properties", properties, 1);
validate(defs.indexers, node, "indexers", indexers, 1);
validate(defs.callProperties, node, "callProperties", callProperties, 1);
validate(defs.internalSlots, node, "internalSlots", internalSlots, 1);
validate(defs.exact, node, "exact", exact);
return node;
}
function objectTypeInternalSlot(id, value, optional, _static, method) {
const node = {
type: "ObjectTypeInternalSlot",
id,
value,
optional,
static: _static,
method
};
const defs = NODE_FIELDS.ObjectTypeInternalSlot;
validate(defs.id, node, "id", id, 1);
validate(defs.value, node, "value", value, 1);
validate(defs.optional, node, "optional", optional);
validate(defs.static, node, "static", _static);
validate(defs.method, node, "method", method);
return node;
}
function objectTypeCallProperty(value) {
const node = {
type: "ObjectTypeCallProperty",
value,
static: null
};
const defs = NODE_FIELDS.ObjectTypeCallProperty;
validate(defs.value, node, "value", value, 1);
return node;
}
function objectTypeIndexer(id = null, key, value, variance = null) {
const node = {
type: "ObjectTypeIndexer",
id,
key,
value,
variance,
static: null
};
const defs = NODE_FIELDS.ObjectTypeIndexer;
validate(defs.id, node, "id", id, 1);
validate(defs.key, node, "key", key, 1);
validate(defs.value, node, "value", value, 1);
validate(defs.variance, node, "variance", variance, 1);
return node;
}
function objectTypeProperty(key, value, variance = null) {
const node = {
type: "ObjectTypeProperty",
key,
value,
variance,
kind: null,
method: null,
optional: null,
proto: null,
static: null
};
const defs = NODE_FIELDS.ObjectTypeProperty;
validate(defs.key, node, "key", key, 1);
validate(defs.value, node, "value", value, 1);
validate(defs.variance, node, "variance", variance, 1);
return node;
}
function objectTypeSpreadProperty(argument) {
const node = {
type: "ObjectTypeSpreadProperty",
argument
};
const defs = NODE_FIELDS.ObjectTypeSpreadProperty;
validate(defs.argument, node, "argument", argument, 1);
return node;
}
function opaqueType(id, typeParameters = null, supertype = null, impltype) {
const node = {
type: "OpaqueType",
id,
typeParameters,
supertype,
impltype
};
const defs = NODE_FIELDS.OpaqueType;
validate(defs.id, node, "id", id, 1);
validate(defs.typeParameters, node, "typeParameters", typeParameters, 1);
validate(defs.supertype, node, "supertype", supertype, 1);
validate(defs.impltype, node, "impltype", impltype, 1);
return node;
}
function qualifiedTypeIdentifier(id, qualification) {
const node = {
type: "QualifiedTypeIdentifier",
id,
qualification
};
const defs = NODE_FIELDS.QualifiedTypeIdentifier;
validate(defs.id, node, "id", id, 1);
validate(defs.qualification, node, "qualification", qualification, 1);
return node;
}
function stringLiteralTypeAnnotation(value) {
const node = {
type: "StringLiteralTypeAnnotation",
value
};
const defs = NODE_FIELDS.StringLiteralTypeAnnotation;
validate(defs.value, node, "value", value);
return node;
}
function stringTypeAnnotation() {
return {
type: "StringTypeAnnotation"
};
}
function symbolTypeAnnotation() {
return {
type: "SymbolTypeAnnotation"
};
}
function thisTypeAnnotation() {
return {
type: "ThisTypeAnnotation"
};
}
function tupleTypeAnnotation(types) {
const node = {
type: "TupleTypeAnnotation",
types
};
const defs = NODE_FIELDS.TupleTypeAnnotation;
validate(defs.types, node, "types", types, 1);
return node;
}
function typeofTypeAnnotation(argument) {
const node = {
type: "TypeofTypeAnnotation",
argument
};
const defs = NODE_FIELDS.TypeofTypeAnnotation;
validate(defs.argument, node, "argument", argument, 1);
return node;
}
function typeAlias(id, typeParameters = null, right) {
const node = {
type: "TypeAlias",
id,
typeParameters,
right
};
const defs = NODE_FIELDS.TypeAlias;
validate(defs.id, node, "id", id, 1);
validate(defs.typeParameters, node, "typeParameters", typeParameters, 1);
validate(defs.right, node, "right", right, 1);
return node;
}
function typeAnnotation(typeAnnotation) {
const node = {
type: "TypeAnnotation",
typeAnnotation
};
const defs = NODE_FIELDS.TypeAnnotation;
validate(defs.typeAnnotation, node, "typeAnnotation", typeAnnotation, 1);
return node;
}
function typeCastExpression(expression, typeAnnotation) {
const node = {
type: "TypeCastExpression",
expression,
typeAnnotation
};
const defs = NODE_FIELDS.TypeCastExpression;
validate(defs.expression, node, "expression", expression, 1);
validate(defs.typeAnnotation, node, "typeAnnotation", typeAnnotation, 1);
return node;
}
function typeParameter(bound = null, _default = null, variance = null) {
const node = {
type: "TypeParameter",
bound,
default: _default,
variance,
name: null
};
const defs = NODE_FIELDS.TypeParameter;
validate(defs.bound, node, "bound", bound, 1);
validate(defs.default, node, "default", _default, 1);
validate(defs.variance, node, "variance", variance, 1);
return node;
}
function typeParameterDeclaration(params) {
const node = {
type: "TypeParameterDeclaration",
params
};
const defs = NODE_FIELDS.TypeParameterDeclaration;
validate(defs.params, node, "params", params, 1);
return node;
}
function typeParameterInstantiation(params) {
const node = {
type: "TypeParameterInstantiation",
params
};
const defs = NODE_FIELDS.TypeParameterInstantiation;
validate(defs.params, node, "params", params, 1);
return node;
}
function unionTypeAnnotation(types) {
const node = {
type: "UnionTypeAnnotation",
types
};
const defs = NODE_FIELDS.UnionTypeAnnotation;
validate(defs.types, node, "types", types, 1);
return node;
}
function variance(kind) {
const node = {
type: "Variance",
kind
};
const defs = NODE_FIELDS.Variance;
validate(defs.kind, node, "kind", kind);
return node;
}
function voidTypeAnnotation() {
return {
type: "VoidTypeAnnotation"
};
}
function enumDeclaration(id, body) {
const node = {
type: "EnumDeclaration",
id,
body
};
const defs = NODE_FIELDS.EnumDeclaration;
validate(defs.id, node, "id", id, 1);
validate(defs.body, node, "body", body, 1);
return node;
}
function enumBooleanBody(members) {
const node = {
type: "EnumBooleanBody",
members,
explicitType: null,
hasUnknownMembers: null
};
const defs = NODE_FIELDS.EnumBooleanBody;
validate(defs.members, node, "members", members, 1);
return node;
}
function enumNumberBody(members) {
const node = {
type: "EnumNumberBody",
members,
explicitType: null,
hasUnknownMembers: null
};
const defs = NODE_FIELDS.EnumNumberBody;
validate(defs.members, node, "members", members, 1);
return node;
}
function enumStringBody(members) {
const node = {
type: "EnumStringBody",
members,
explicitType: null,
hasUnknownMembers: null
};
const defs = NODE_FIELDS.EnumStringBody;
validate(defs.members, node, "members", members, 1);
return node;
}
function enumSymbolBody(members) {
const node = {
type: "EnumSymbolBody",
members,
hasUnknownMembers: null
};
const defs = NODE_FIELDS.EnumSymbolBody;
validate(defs.members, node, "members", members, 1);
return node;
}
function enumBooleanMember(id) {
const node = {
type: "EnumBooleanMember",
id,
init: null
};
const defs = NODE_FIELDS.EnumBooleanMember;
validate(defs.id, node, "id", id, 1);
return node;
}
function enumNumberMember(id, init) {
const node = {
type: "EnumNumberMember",
id,
init
};
const defs = NODE_FIELDS.EnumNumberMember;
validate(defs.id, node, "id", id, 1);
validate(defs.init, node, "init", init, 1);
return node;
}
function enumStringMember(id, init) {
const node = {
type: "EnumStringMember",
id,
init
};
const defs = NODE_FIELDS.EnumStringMember;
validate(defs.id, node, "id", id, 1);
validate(defs.init, node, "init", init, 1);
return node;
}
function enumDefaultedMember(id) {
const node = {
type: "EnumDefaultedMember",
id
};
const defs = NODE_FIELDS.EnumDefaultedMember;
validate(defs.id, node, "id", id, 1);
return node;
}
function indexedAccessType(objectType, indexType) {
const node = {
type: "IndexedAccessType",
objectType,
indexType
};
const defs = NODE_FIELDS.IndexedAccessType;
validate(defs.objectType, node, "objectType", objectType, 1);
validate(defs.indexType, node, "indexType", indexType, 1);
return node;
}
function optionalIndexedAccessType(objectType, indexType) {
const node = {
type: "OptionalIndexedAccessType",
objectType,
indexType,
optional: null
};
const defs = NODE_FIELDS.OptionalIndexedAccessType;
validate(defs.objectType, node, "objectType", objectType, 1);
validate(defs.indexType, node, "indexType", indexType, 1);
return node;
}
function jsxAttribute(name, value = null) {
const node = {
type: "JSXAttribute",
name,
value
};
const defs = NODE_FIELDS.JSXAttribute;
validate(defs.name, node, "name", name, 1);
validate(defs.value, node, "value", value, 1);
return node;
}
function jsxClosingElement(name) {
const node = {
type: "JSXClosingElement",
name
};
const defs = NODE_FIELDS.JSXClosingElement;
validate(defs.name, node, "name", name, 1);
return node;
}
function jsxElement(openingElement, closingElement = null, children, selfClosing = null) {
const node = {
type: "JSXElement",
openingElement,
closingElement,
children,
selfClosing
};
const defs = NODE_FIELDS.JSXElement;
validate(defs.openingElement, node, "openingElement", openingElement, 1);
validate(defs.closingElement, node, "closingElement", closingElement, 1);
validate(defs.children, node, "children", children, 1);
validate(defs.selfClosing, node, "selfClosing", selfClosing);
return node;
}
function jsxEmptyExpression() {
return {
type: "JSXEmptyExpression"
};
}
function jsxExpressionContainer(expression) {
const node = {
type: "JSXExpressionContainer",
expression
};
const defs = NODE_FIELDS.JSXExpressionContainer;
validate(defs.expression, node, "expression", expression, 1);
return node;
}
function jsxSpreadChild(expression) {
const node = {
type: "JSXSpreadChild",
expression
};
const defs = NODE_FIELDS.JSXSpreadChild;
validate(defs.expression, node, "expression", expression, 1);
return node;
}
function jsxIdentifier(name) {
const node = {
type: "JSXIdentifier",
name
};
const defs = NODE_FIELDS.JSXIdentifier;
validate(defs.name, node, "name", name);
return node;
}
function jsxMemberExpression(object, property) {
const node = {
type: "JSXMemberExpression",
object,
property
};
const defs = NODE_FIELDS.JSXMemberExpression;
validate(defs.object, node, "object", object, 1);
validate(defs.property, node, "property", property, 1);
return node;
}
function jsxNamespacedName(namespace, name) {
const node = {
type: "JSXNamespacedName",
namespace,
name
};
const defs = NODE_FIELDS.JSXNamespacedName;
validate(defs.namespace, node, "namespace", namespace, 1);
validate(defs.name, node, "name", name, 1);
return node;
}
function jsxOpeningElement(name, attributes, selfClosing = false) {
const node = {
type: "JSXOpeningElement",
name,
attributes,
selfClosing
};
const defs = NODE_FIELDS.JSXOpeningElement;
validate(defs.name, node, "name", name, 1);
validate(defs.attributes, node, "attributes", attributes, 1);
validate(defs.selfClosing, node, "selfClosing", selfClosing);
return node;
}
function jsxSpreadAttribute(argument) {
const node = {
type: "JSXSpreadAttribute",
argument
};
const defs = NODE_FIELDS.JSXSpreadAttribute;
validate(defs.argument, node, "argument", argument, 1);
return node;
}
function jsxText(value) {
const node = {
type: "JSXText",
value
};
const defs = NODE_FIELDS.JSXText;
validate(defs.value, node, "value", value);
return node;
}
function jsxFragment(openingFragment, closingFragment, children) {
const node = {
type: "JSXFragment",
openingFragment,
closingFragment,
children
};
const defs = NODE_FIELDS.JSXFragment;
validate(defs.openingFragment, node, "openingFragment", openingFragment, 1);
validate(defs.closingFragment, node, "closingFragment", closingFragment, 1);
validate(defs.children, node, "children", children, 1);
return node;
}
function jsxOpeningFragment() {
return {
type: "JSXOpeningFragment"
};
}
function jsxClosingFragment() {
return {
type: "JSXClosingFragment"
};
}
function noop() {
return {
type: "Noop"
};
}
function placeholder(expectedNode, name) {
const node = {
type: "Placeholder",
expectedNode,
name
};
const defs = NODE_FIELDS.Placeholder;
validate(defs.expectedNode, node, "expectedNode", expectedNode);
validate(defs.name, node, "name", name, 1);
return node;
}
function v8IntrinsicIdentifier(name) {
const node = {
type: "V8IntrinsicIdentifier",
name
};
const defs = NODE_FIELDS.V8IntrinsicIdentifier;
validate(defs.name, node, "name", name);
return node;
}
function argumentPlaceholder() {
return {
type: "ArgumentPlaceholder"
};
}
function bindExpression(object, callee) {
const node = {
type: "BindExpression",
object,
callee
};
const defs = NODE_FIELDS.BindExpression;
validate(defs.object, node, "object", object, 1);
validate(defs.callee, node, "callee", callee, 1);
return node;
}
function decorator(expression) {
const node = {
type: "Decorator",
expression
};
const defs = NODE_FIELDS.Decorator;
validate(defs.expression, node, "expression", expression, 1);
return node;
}
function doExpression(body, async = false) {
const node = {
type: "DoExpression",
body,
async
};
const defs = NODE_FIELDS.DoExpression;
validate(defs.body, node, "body", body, 1);
validate(defs.async, node, "async", async);
return node;
}
function exportDefaultSpecifier(exported) {
const node = {
type: "ExportDefaultSpecifier",
exported
};
const defs = NODE_FIELDS.ExportDefaultSpecifier;
validate(defs.exported, node, "exported", exported, 1);
return node;
}
function recordExpression(properties) {
const node = {
type: "RecordExpression",
properties
};
const defs = NODE_FIELDS.RecordExpression;
validate(defs.properties, node, "properties", properties, 1);
return node;
}
function tupleExpression(elements = []) {
const node = {
type: "TupleExpression",
elements
};
const defs = NODE_FIELDS.TupleExpression;
validate(defs.elements, node, "elements", elements, 1);
return node;
}
function decimalLiteral(value) {
const node = {
type: "DecimalLiteral",
value
};
const defs = NODE_FIELDS.DecimalLiteral;
validate(defs.value, node, "value", value);
return node;
}
function moduleExpression(body) {
const node = {
type: "ModuleExpression",
body
};
const defs = NODE_FIELDS.ModuleExpression;
validate(defs.body, node, "body", body, 1);
return node;
}
function topicReference() {
return {
type: "TopicReference"
};
}
function pipelineTopicExpression(expression) {
const node = {
type: "PipelineTopicExpression",
expression
};
const defs = NODE_FIELDS.PipelineTopicExpression;
validate(defs.expression, node, "expression", expression, 1);
return node;
}
function pipelineBareFunction(callee) {
const node = {
type: "PipelineBareFunction",
callee
};
const defs = NODE_FIELDS.PipelineBareFunction;
validate(defs.callee, node, "callee", callee, 1);
return node;
}
function pipelinePrimaryTopicReference() {
return {
type: "PipelinePrimaryTopicReference"
};
}
function voidPattern() {
return {
type: "VoidPattern"
};
}
function tsParameterProperty(parameter) {
const node = {
type: "TSParameterProperty",
parameter
};
const defs = NODE_FIELDS.TSParameterProperty;
validate(defs.parameter, node, "parameter", parameter, 1);
return node;
}
function tsDeclareFunction(id = null, typeParameters = null, params, returnType = null) {
const node = {
type: "TSDeclareFunction",
id,
typeParameters,
params,
returnType
};
const defs = NODE_FIELDS.TSDeclareFunction;
validate(defs.id, node, "id", id, 1);
validate(defs.typeParameters, node, "typeParameters", typeParameters, 1);
validate(defs.params, node, "params", params, 1);
validate(defs.returnType, node, "returnType", returnType, 1);
return node;
}
function tsDeclareMethod(decorators = null, key, typeParameters = null, params, returnType = null) {
const node = {
type: "TSDeclareMethod",
decorators,
key,
typeParameters,
params,
returnType
};
const defs = NODE_FIELDS.TSDeclareMethod;
validate(defs.decorators, node, "decorators", decorators, 1);
validate(defs.key, node, "key", key, 1);
validate(defs.typeParameters, node, "typeParameters", typeParameters, 1);
validate(defs.params, node, "params", params, 1);
validate(defs.returnType, node, "returnType", returnType, 1);
return node;
}
function tsQualifiedName(left, right) {
const node = {
type: "TSQualifiedName",
left,
right
};
const defs = NODE_FIELDS.TSQualifiedName;
validate(defs.left, node, "left", left, 1);
validate(defs.right, node, "right", right, 1);
return node;
}
function tsCallSignatureDeclaration(typeParameters = null, parameters, typeAnnotation = null) {
const node = {
type: "TSCallSignatureDeclaration",
typeParameters,
parameters,
typeAnnotation
};
const defs = NODE_FIELDS.TSCallSignatureDeclaration;
validate(defs.typeParameters, node, "typeParameters", typeParameters, 1);
validate(defs.parameters, node, "parameters", parameters, 1);
validate(defs.typeAnnotation, node, "typeAnnotation", typeAnnotation, 1);
return node;
}
function tsConstructSignatureDeclaration(typeParameters = null, parameters, typeAnnotation = null) {
const node = {
type: "TSConstructSignatureDeclaration",
typeParameters,
parameters,
typeAnnotation
};
const defs = NODE_FIELDS.TSConstructSignatureDeclaration;
validate(defs.typeParameters, node, "typeParameters", typeParameters, 1);
validate(defs.parameters, node, "parameters", parameters, 1);
validate(defs.typeAnnotation, node, "typeAnnotation", typeAnnotation, 1);
return node;
}
function tsPropertySignature(key, typeAnnotation = null) {
const node = {
type: "TSPropertySignature",
key,
typeAnnotation
};
const defs = NODE_FIELDS.TSPropertySignature;
validate(defs.key, node, "key", key, 1);
validate(defs.typeAnnotation, node, "typeAnnotation", typeAnnotation, 1);
return node;
}
function tsMethodSignature(key, typeParameters = null, parameters, typeAnnotation = null) {
const node = {
type: "TSMethodSignature",
key,
typeParameters,
parameters,
typeAnnotation,
kind: null
};
const defs = NODE_FIELDS.TSMethodSignature;
validate(defs.key, node, "key", key, 1);
validate(defs.typeParameters, node, "typeParameters", typeParameters, 1);
validate(defs.parameters, node, "parameters", parameters, 1);
validate(defs.typeAnnotation, node, "typeAnnotation", typeAnnotation, 1);
return node;
}
function tsIndexSignature(parameters, typeAnnotation = null) {
const node = {
type: "TSIndexSignature",
parameters,
typeAnnotation
};
const defs = NODE_FIELDS.TSIndexSignature;
validate(defs.parameters, node, "parameters", parameters, 1);
validate(defs.typeAnnotation, node, "typeAnnotation", typeAnnotation, 1);
return node;
}
function tsAnyKeyword() {
return {
type: "TSAnyKeyword"
};
}
function tsBooleanKeyword() {
return {
type: "TSBooleanKeyword"
};
}
function tsBigIntKeyword() {
return {
type: "TSBigIntKeyword"
};
}
function tsIntrinsicKeyword() {
return {
type: "TSIntrinsicKeyword"
};
}
function tsNeverKeyword() {
return {
type: "TSNeverKeyword"
};
}
function tsNullKeyword() {
return {
type: "TSNullKeyword"
};
}
function tsNumberKeyword() {
return {
type: "TSNumberKeyword"
};
}
function tsObjectKeyword() {
return {
type: "TSObjectKeyword"
};
}
function tsStringKeyword() {
return {
type: "TSStringKeyword"
};
}
function tsSymbolKeyword() {
return {
type: "TSSymbolKeyword"
};
}
function tsUndefinedKeyword() {
return {
type: "TSUndefinedKeyword"
};
}
function tsUnknownKeyword() {
return {
type: "TSUnknownKeyword"
};
}
function tsVoidKeyword() {
return {
type: "TSVoidKeyword"
};
}
function tsThisType() {
return {
type: "TSThisType"
};
}
function tsFunctionType(typeParameters = null, parameters, typeAnnotation = null) {
const node = {
type: "TSFunctionType",
typeParameters,
parameters,
typeAnnotation
};
const defs = NODE_FIELDS.TSFunctionType;
validate(defs.typeParameters, node, "typeParameters", typeParameters, 1);
validate(defs.parameters, node, "parameters", parameters, 1);
validate(defs.typeAnnotation, node, "typeAnnotation", typeAnnotation, 1);
return node;
}
function tsConstructorType(typeParameters = null, parameters, typeAnnotation = null) {
const node = {
type: "TSConstructorType",
typeParameters,
parameters,
typeAnnotation
};
const defs = NODE_FIELDS.TSConstructorType;
validate(defs.typeParameters, node, "typeParameters", typeParameters, 1);
validate(defs.parameters, node, "parameters", parameters, 1);
validate(defs.typeAnnotation, node, "typeAnnotation", typeAnnotation, 1);
return node;
}
function tsTypeReference(typeName, typeParameters = null) {
const node = {
type: "TSTypeReference",
typeName,
typeParameters
};
const defs = NODE_FIELDS.TSTypeReference;
validate(defs.typeName, node, "typeName", typeName, 1);
validate(defs.typeParameters, node, "typeParameters", typeParameters, 1);
return node;
}
function tsTypePredicate(parameterName, typeAnnotation = null, asserts = null) {
const node = {
type: "TSTypePredicate",
parameterName,
typeAnnotation,
asserts
};
const defs = NODE_FIELDS.TSTypePredicate;
validate(defs.parameterName, node, "parameterName", parameterName, 1);
validate(defs.typeAnnotation, node, "typeAnnotation", typeAnnotation, 1);
validate(defs.asserts, node, "asserts", asserts);
return node;
}
function tsTypeQuery(exprName, typeParameters = null) {
const node = {
type: "TSTypeQuery",
exprName,
typeParameters
};
const defs = NODE_FIELDS.TSTypeQuery;
validate(defs.exprName, node, "exprName", exprName, 1);
validate(defs.typeParameters, node, "typeParameters", typeParameters, 1);
return node;
}
function tsTypeLiteral(members) {
const node = {
type: "TSTypeLiteral",
members
};
const defs = NODE_FIELDS.TSTypeLiteral;
validate(defs.members, node, "members", members, 1);
return node;
}
function tsArrayType(elementType) {
const node = {
type: "TSArrayType",
elementType
};
const defs = NODE_FIELDS.TSArrayType;
validate(defs.elementType, node, "elementType", elementType, 1);
return node;
}
function tsTupleType(elementTypes) {
const node = {
type: "TSTupleType",
elementTypes
};
const defs = NODE_FIELDS.TSTupleType;
validate(defs.elementTypes, node, "elementTypes", elementTypes, 1);
return node;
}
function tsOptionalType(typeAnnotation) {
const node = {
type: "TSOptionalType",
typeAnnotation
};
const defs = NODE_FIELDS.TSOptionalType;
validate(defs.typeAnnotation, node, "typeAnnotation", typeAnnotation, 1);
return node;
}
function tsRestType(typeAnnotation) {
const node = {
type: "TSRestType",
typeAnnotation
};
const defs = NODE_FIELDS.TSRestType;
validate(defs.typeAnnotation, node, "typeAnnotation", typeAnnotation, 1);
return node;
}
function tsNamedTupleMember(label, elementType, optional = false) {
const node = {
type: "TSNamedTupleMember",
label,
elementType,
optional
};
const defs = NODE_FIELDS.TSNamedTupleMember;
validate(defs.label, node, "label", label, 1);
validate(defs.elementType, node, "elementType", elementType, 1);
validate(defs.optional, node, "optional", optional);
return node;
}
function tsUnionType(types) {
const node = {
type: "TSUnionType",
types
};
const defs = NODE_FIELDS.TSUnionType;
validate(defs.types, node, "types", types, 1);
return node;
}
function tsIntersectionType(types) {
const node = {
type: "TSIntersectionType",
types
};
const defs = NODE_FIELDS.TSIntersectionType;
validate(defs.types, node, "types", types, 1);
return node;
}
function tsConditionalType(checkType, extendsType, trueType, falseType) {
const node = {
type: "TSConditionalType",
checkType,
extendsType,
trueType,
falseType
};
const defs = NODE_FIELDS.TSConditionalType;
validate(defs.checkType, node, "checkType", checkType, 1);
validate(defs.extendsType, node, "extendsType", extendsType, 1);
validate(defs.trueType, node, "trueType", trueType, 1);
validate(defs.falseType, node, "falseType", falseType, 1);
return node;
}
function tsInferType(typeParameter) {
const node = {
type: "TSInferType",
typeParameter
};
const defs = NODE_FIELDS.TSInferType;
validate(defs.typeParameter, node, "typeParameter", typeParameter, 1);
return node;
}
function tsParenthesizedType(typeAnnotation) {
const node = {
type: "TSParenthesizedType",
typeAnnotation
};
const defs = NODE_FIELDS.TSParenthesizedType;
validate(defs.typeAnnotation, node, "typeAnnotation", typeAnnotation, 1);
return node;
}
function tsTypeOperator(typeAnnotation, operator = "keyof") {
const node = {
type: "TSTypeOperator",
typeAnnotation,
operator
};
const defs = NODE_FIELDS.TSTypeOperator;
validate(defs.typeAnnotation, node, "typeAnnotation", typeAnnotation, 1);
validate(defs.operator, node, "operator", operator);
return node;
}
function tsIndexedAccessType(objectType, indexType) {
const node = {
type: "TSIndexedAccessType",
objectType,
indexType
};
const defs = NODE_FIELDS.TSIndexedAccessType;
validate(defs.objectType, node, "objectType", objectType, 1);
validate(defs.indexType, node, "indexType", indexType, 1);
return node;
}
function tsMappedType(typeParameter, typeAnnotation = null, nameType = null) {
const node = {
type: "TSMappedType",
typeParameter,
typeAnnotation,
nameType
};
const defs = NODE_FIELDS.TSMappedType;
validate(defs.typeParameter, node, "typeParameter", typeParameter, 1);
validate(defs.typeAnnotation, node, "typeAnnotation", typeAnnotation, 1);
validate(defs.nameType, node, "nameType", nameType, 1);
return node;
}
function tsTemplateLiteralType(quasis, types) {
const node = {
type: "TSTemplateLiteralType",
quasis,
types
};
const defs = NODE_FIELDS.TSTemplateLiteralType;
validate(defs.quasis, node, "quasis", quasis, 1);
validate(defs.types, node, "types", types, 1);
return node;
}
function tsLiteralType(literal) {
const node = {
type: "TSLiteralType",
literal
};
const defs = NODE_FIELDS.TSLiteralType;
validate(defs.literal, node, "literal", literal, 1);
return node;
}
function tsExpressionWithTypeArguments(expression, typeParameters = null) {
const node = {
type: "TSExpressionWithTypeArguments",
expression,
typeParameters
};
const defs = NODE_FIELDS.TSExpressionWithTypeArguments;
validate(defs.expression, node, "expression", expression, 1);
validate(defs.typeParameters, node, "typeParameters", typeParameters, 1);
return node;
}
function tsInterfaceDeclaration(id, typeParameters = null, _extends = null, body) {
const node = {
type: "TSInterfaceDeclaration",
id,
typeParameters,
extends: _extends,
body
};
const defs = NODE_FIELDS.TSInterfaceDeclaration;
validate(defs.id, node, "id", id, 1);
validate(defs.typeParameters, node, "typeParameters", typeParameters, 1);
validate(defs.extends, node, "extends", _extends, 1);
validate(defs.body, node, "body", body, 1);
return node;
}
function tsInterfaceBody(body) {
const node = {
type: "TSInterfaceBody",
body
};
const defs = NODE_FIELDS.TSInterfaceBody;
validate(defs.body, node, "body", body, 1);
return node;
}
function tsTypeAliasDeclaration(id, typeParameters = null, typeAnnotation) {
const node = {
type: "TSTypeAliasDeclaration",
id,
typeParameters,
typeAnnotation
};
const defs = NODE_FIELDS.TSTypeAliasDeclaration;
validate(defs.id, node, "id", id, 1);
validate(defs.typeParameters, node, "typeParameters", typeParameters, 1);
validate(defs.typeAnnotation, node, "typeAnnotation", typeAnnotation, 1);
return node;
}
function tsInstantiationExpression(expression, typeParameters = null) {
const node = {
type: "TSInstantiationExpression",
expression,
typeParameters
};
const defs = NODE_FIELDS.TSInstantiationExpression;
validate(defs.expression, node, "expression", expression, 1);
validate(defs.typeParameters, node, "typeParameters", typeParameters, 1);
return node;
}
function tsAsExpression(expression, typeAnnotation) {
const node = {
type: "TSAsExpression",
expression,
typeAnnotation
};
const defs = NODE_FIELDS.TSAsExpression;
validate(defs.expression, node, "expression", expression, 1);
validate(defs.typeAnnotation, node, "typeAnnotation", typeAnnotation, 1);
return node;
}
function tsSatisfiesExpression(expression, typeAnnotation) {
const node = {
type: "TSSatisfiesExpression",
expression,
typeAnnotation
};
const defs = NODE_FIELDS.TSSatisfiesExpression;
validate(defs.expression, node, "expression", expression, 1);
validate(defs.typeAnnotation, node, "typeAnnotation", typeAnnotation, 1);
return node;
}
function tsTypeAssertion(typeAnnotation, expression) {
const node = {
type: "TSTypeAssertion",
typeAnnotation,
expression
};
const defs = NODE_FIELDS.TSTypeAssertion;
validate(defs.typeAnnotation, node, "typeAnnotation", typeAnnotation, 1);
validate(defs.expression, node, "expression", expression, 1);
return node;
}
function tsEnumBody(members) {
const node = {
type: "TSEnumBody",
members
};
const defs = NODE_FIELDS.TSEnumBody;
validate(defs.members, node, "members", members, 1);
return node;
}
function tsEnumDeclaration(id, members) {
const node = {
type: "TSEnumDeclaration",
id,
members
};
const defs = NODE_FIELDS.TSEnumDeclaration;
validate(defs.id, node, "id", id, 1);
validate(defs.members, node, "members", members, 1);
return node;
}
function tsEnumMember(id, initializer = null) {
const node = {
type: "TSEnumMember",
id,
initializer
};
const defs = NODE_FIELDS.TSEnumMember;
validate(defs.id, node, "id", id, 1);
validate(defs.initializer, node, "initializer", initializer, 1);
return node;
}
function tsModuleDeclaration(id, body) {
const node = {
type: "TSModuleDeclaration",
id,
body,
kind: null
};
const defs = NODE_FIELDS.TSModuleDeclaration;
validate(defs.id, node, "id", id, 1);
validate(defs.body, node, "body", body, 1);
return node;
}
function tsModuleBlock(body) {
const node = {
type: "TSModuleBlock",
body
};
const defs = NODE_FIELDS.TSModuleBlock;
validate(defs.body, node, "body", body, 1);
return node;
}
function tsImportType(argument, qualifier = null, typeParameters = null) {
const node = {
type: "TSImportType",
argument,
qualifier,
typeParameters
};
const defs = NODE_FIELDS.TSImportType;
validate(defs.argument, node, "argument", argument, 1);
validate(defs.qualifier, node, "qualifier", qualifier, 1);
validate(defs.typeParameters, node, "typeParameters", typeParameters, 1);
return node;
}
function tsImportEqualsDeclaration(id, moduleReference) {
const node = {
type: "TSImportEqualsDeclaration",
id,
moduleReference,
isExport: null
};
const defs = NODE_FIELDS.TSImportEqualsDeclaration;
validate(defs.id, node, "id", id, 1);
validate(defs.moduleReference, node, "moduleReference", moduleReference, 1);
return node;
}
function tsExternalModuleReference(expression) {
const node = {
type: "TSExternalModuleReference",
expression
};
const defs = NODE_FIELDS.TSExternalModuleReference;
validate(defs.expression, node, "expression", expression, 1);
return node;
}
function tsNonNullExpression(expression) {
const node = {
type: "TSNonNullExpression",
expression
};
const defs = NODE_FIELDS.TSNonNullExpression;
validate(defs.expression, node, "expression", expression, 1);
return node;
}
function tsExportAssignment(expression) {
const node = {
type: "TSExportAssignment",
expression
};
const defs = NODE_FIELDS.TSExportAssignment;
validate(defs.expression, node, "expression", expression, 1);
return node;
}
function tsNamespaceExportDeclaration(id) {
const node = {
type: "TSNamespaceExportDeclaration",
id
};
const defs = NODE_FIELDS.TSNamespaceExportDeclaration;
validate(defs.id, node, "id", id, 1);
return node;
}
function tsTypeAnnotation(typeAnnotation) {
const node = {
type: "TSTypeAnnotation",
typeAnnotation
};
const defs = NODE_FIELDS.TSTypeAnnotation;
validate(defs.typeAnnotation, node, "typeAnnotation", typeAnnotation, 1);
return node;
}
function tsTypeParameterInstantiation(params) {
const node = {
type: "TSTypeParameterInstantiation",
params
};
const defs = NODE_FIELDS.TSTypeParameterInstantiation;
validate(defs.params, node, "params", params, 1);
return node;
}
function tsTypeParameterDeclaration(params) {
const node = {
type: "TSTypeParameterDeclaration",
params
};
const defs = NODE_FIELDS.TSTypeParameterDeclaration;
validate(defs.params, node, "params", params, 1);
return node;
}
function tsTypeParameter(constraint = null, _default = null, name) {
const node = {
type: "TSTypeParameter",
constraint,
default: _default,
name
};
const defs = NODE_FIELDS.TSTypeParameter;
validate(defs.constraint, node, "constraint", constraint, 1);
validate(defs.default, node, "default", _default, 1);
validate(defs.name, node, "name", name);
return node;
}
function NumberLiteral(value) {
(0, _deprecationWarning.default)("NumberLiteral", "NumericLiteral", "The node type ");
return numericLiteral(value);
}
function RegexLiteral(pattern, flags = "") {
(0, _deprecationWarning.default)("RegexLiteral", "RegExpLiteral", "The node type ");
return regExpLiteral(pattern, flags);
}
function RestProperty(argument) {
(0, _deprecationWarning.default)("RestProperty", "RestElement", "The node type ");
return restElement(argument);
}
function SpreadProperty(argument) {
(0, _deprecationWarning.default)("SpreadProperty", "SpreadElement", "The node type ");
return spreadElement(argument);
}
//# sourceMappingURL=lowercase.js.map
{"version":3,"names":["_validate","require","_deprecationWarning","utils","validateInternal","validate","NODE_FIELDS","bigIntLiteral","value","toString","node","type","defs","BigIntLiteral","arrayExpression","elements","ArrayExpression","assignmentExpression","operator","left","right","AssignmentExpression","binaryExpression","BinaryExpression","interpreterDirective","InterpreterDirective","directive","Directive","directiveLiteral","DirectiveLiteral","blockStatement","body","directives","BlockStatement","breakStatement","label","BreakStatement","callExpression","callee","_arguments","arguments","CallExpression","catchClause","param","CatchClause","conditionalExpression","test","consequent","alternate","ConditionalExpression","continueStatement","ContinueStatement","debuggerStatement","doWhileStatement","DoWhileStatement","emptyStatement","expressionStatement","expression","ExpressionStatement","file","program","comments","tokens","File","forInStatement","ForInStatement","forStatement","init","update","ForStatement","functionDeclaration","id","params","generator","async","FunctionDeclaration","functionExpression","FunctionExpression","identifier","name","Identifier","ifStatement","IfStatement","labeledStatement","LabeledStatement","stringLiteral","StringLiteral","numericLiteral","NumericLiteral","nullLiteral","booleanLiteral","BooleanLiteral","regExpLiteral","pattern","flags","RegExpLiteral","logicalExpression","LogicalExpression","memberExpression","object","property","computed","optional","MemberExpression","newExpression","NewExpression","sourceType","interpreter","Program","objectExpression","properties","ObjectExpression","objectMethod","kind","key","ObjectMethod","objectProperty","shorthand","decorators","ObjectProperty","restElement","argument","RestElement","returnStatement","ReturnStatement","sequenceExpression","expressions","SequenceExpression","parenthesizedExpression","ParenthesizedExpression","switchCase","SwitchCase","switchStatement","discriminant","cases","SwitchStatement","thisExpression","throwStatement","ThrowStatement","tryStatement","block","handler","finalizer","TryStatement","unaryExpression","prefix","UnaryExpression","updateExpression","UpdateExpression","variableDeclaration","declarations","VariableDeclaration","variableDeclarator","VariableDeclarator","whileStatement","WhileStatement","withStatement","WithStatement","assignmentPattern","AssignmentPattern","arrayPattern","ArrayPattern","arrowFunctionExpression","ArrowFunctionExpression","classBody","ClassBody","classExpression","superClass","ClassExpression","classDeclaration","ClassDeclaration","exportAllDeclaration","source","ExportAllDeclaration","exportDefaultDeclaration","declaration","ExportDefaultDeclaration","exportNamedDeclaration","specifiers","ExportNamedDeclaration","exportSpecifier","local","exported","ExportSpecifier","forOfStatement","_await","await","ForOfStatement","importDeclaration","ImportDeclaration","importDefaultSpecifier","ImportDefaultSpecifier","importNamespaceSpecifier","ImportNamespaceSpecifier","importSpecifier","imported","ImportSpecifier","importExpression","options","ImportExpression","metaProperty","meta","MetaProperty","classMethod","_static","static","ClassMethod","objectPattern","ObjectPattern","spreadElement","SpreadElement","_super","taggedTemplateExpression","tag","quasi","TaggedTemplateExpression","templateElement","tail","TemplateElement","templateLiteral","quasis","TemplateLiteral","yieldExpression","delegate","YieldExpression","awaitExpression","AwaitExpression","_import","exportNamespaceSpecifier","ExportNamespaceSpecifier","optionalMemberExpression","OptionalMemberExpression","optionalCallExpression","OptionalCallExpression","classProperty","typeAnnotation","ClassProperty","classAccessorProperty","ClassAccessorProperty","classPrivateProperty","ClassPrivateProperty","classPrivateMethod","ClassPrivateMethod","privateName","PrivateName","staticBlock","StaticBlock","importAttribute","ImportAttribute","anyTypeAnnotation","arrayTypeAnnotation","elementType","ArrayTypeAnnotation","booleanTypeAnnotation","booleanLiteralTypeAnnotation","BooleanLiteralTypeAnnotation","nullLiteralTypeAnnotation","classImplements","typeParameters","ClassImplements","declareClass","_extends","extends","DeclareClass","declareFunction","DeclareFunction","declareInterface","DeclareInterface","declareModule","DeclareModule","declareModuleExports","DeclareModuleExports","declareTypeAlias","DeclareTypeAlias","declareOpaqueType","supertype","DeclareOpaqueType","declareVariable","DeclareVariable","declareExportDeclaration","attributes","DeclareExportDeclaration","declareExportAllDeclaration","DeclareExportAllDeclaration","declaredPredicate","DeclaredPredicate","existsTypeAnnotation","functionTypeAnnotation","rest","returnType","FunctionTypeAnnotation","functionTypeParam","FunctionTypeParam","genericTypeAnnotation","GenericTypeAnnotation","inferredPredicate","interfaceExtends","InterfaceExtends","interfaceDeclaration","InterfaceDeclaration","interfaceTypeAnnotation","InterfaceTypeAnnotation","intersectionTypeAnnotation","types","IntersectionTypeAnnotation","mixedTypeAnnotation","emptyTypeAnnotation","nullableTypeAnnotation","NullableTypeAnnotation","numberLiteralTypeAnnotation","NumberLiteralTypeAnnotation","numberTypeAnnotation","objectTypeAnnotation","indexers","callProperties","internalSlots","exact","ObjectTypeAnnotation","objectTypeInternalSlot","method","ObjectTypeInternalSlot","objectTypeCallProperty","ObjectTypeCallProperty","objectTypeIndexer","variance","ObjectTypeIndexer","objectTypeProperty","proto","ObjectTypeProperty","objectTypeSpreadProperty","ObjectTypeSpreadProperty","opaqueType","impltype","OpaqueType","qualifiedTypeIdentifier","qualification","QualifiedTypeIdentifier","stringLiteralTypeAnnotation","StringLiteralTypeAnnotation","stringTypeAnnotation","symbolTypeAnnotation","thisTypeAnnotation","tupleTypeAnnotation","TupleTypeAnnotation","typeofTypeAnnotation","TypeofTypeAnnotation","typeAlias","TypeAlias","TypeAnnotation","typeCastExpression","TypeCastExpression","typeParameter","bound","_default","default","TypeParameter","typeParameterDeclaration","TypeParameterDeclaration","typeParameterInstantiation","TypeParameterInstantiation","unionTypeAnnotation","UnionTypeAnnotation","Variance","voidTypeAnnotation","enumDeclaration","EnumDeclaration","enumBooleanBody","members","explicitType","hasUnknownMembers","EnumBooleanBody","enumNumberBody","EnumNumberBody","enumStringBody","EnumStringBody","enumSymbolBody","EnumSymbolBody","enumBooleanMember","EnumBooleanMember","enumNumberMember","EnumNumberMember","enumStringMember","EnumStringMember","enumDefaultedMember","EnumDefaultedMember","indexedAccessType","objectType","indexType","IndexedAccessType","optionalIndexedAccessType","OptionalIndexedAccessType","jsxAttribute","JSXAttribute","jsxClosingElement","JSXClosingElement","jsxElement","openingElement","closingElement","children","selfClosing","JSXElement","jsxEmptyExpression","jsxExpressionContainer","JSXExpressionContainer","jsxSpreadChild","JSXSpreadChild","jsxIdentifier","JSXIdentifier","jsxMemberExpression","JSXMemberExpression","jsxNamespacedName","namespace","JSXNamespacedName","jsxOpeningElement","JSXOpeningElement","jsxSpreadAttribute","JSXSpreadAttribute","jsxText","JSXText","jsxFragment","openingFragment","closingFragment","JSXFragment","jsxOpeningFragment","jsxClosingFragment","noop","placeholder","expectedNode","Placeholder","v8IntrinsicIdentifier","V8IntrinsicIdentifier","argumentPlaceholder","bindExpression","BindExpression","decorator","Decorator","doExpression","DoExpression","exportDefaultSpecifier","ExportDefaultSpecifier","recordExpression","RecordExpression","tupleExpression","TupleExpression","decimalLiteral","DecimalLiteral","moduleExpression","ModuleExpression","topicReference","pipelineTopicExpression","PipelineTopicExpression","pipelineBareFunction","PipelineBareFunction","pipelinePrimaryTopicReference","voidPattern","tsParameterProperty","parameter","TSParameterProperty","tsDeclareFunction","TSDeclareFunction","tsDeclareMethod","TSDeclareMethod","tsQualifiedName","TSQualifiedName","tsCallSignatureDeclaration","parameters","TSCallSignatureDeclaration","tsConstructSignatureDeclaration","TSConstructSignatureDeclaration","tsPropertySignature","TSPropertySignature","tsMethodSignature","TSMethodSignature","tsIndexSignature","TSIndexSignature","tsAnyKeyword","tsBooleanKeyword","tsBigIntKeyword","tsIntrinsicKeyword","tsNeverKeyword","tsNullKeyword","tsNumberKeyword","tsObjectKeyword","tsStringKeyword","tsSymbolKeyword","tsUndefinedKeyword","tsUnknownKeyword","tsVoidKeyword","tsThisType","tsFunctionType","TSFunctionType","tsConstructorType","TSConstructorType","tsTypeReference","typeName","TSTypeReference","tsTypePredicate","parameterName","asserts","TSTypePredicate","tsTypeQuery","exprName","TSTypeQuery","tsTypeLiteral","TSTypeLiteral","tsArrayType","TSArrayType","tsTupleType","elementTypes","TSTupleType","tsOptionalType","TSOptionalType","tsRestType","TSRestType","tsNamedTupleMember","TSNamedTupleMember","tsUnionType","TSUnionType","tsIntersectionType","TSIntersectionType","tsConditionalType","checkType","extendsType","trueType","falseType","TSConditionalType","tsInferType","TSInferType","tsParenthesizedType","TSParenthesizedType","tsTypeOperator","TSTypeOperator","tsIndexedAccessType","TSIndexedAccessType","tsMappedType","nameType","TSMappedType","tsTemplateLiteralType","TSTemplateLiteralType","tsLiteralType","literal","TSLiteralType","tsExpressionWithTypeArguments","TSExpressionWithTypeArguments","tsInterfaceDeclaration","TSInterfaceDeclaration","tsInterfaceBody","TSInterfaceBody","tsTypeAliasDeclaration","TSTypeAliasDeclaration","tsInstantiationExpression","TSInstantiationExpression","tsAsExpression","TSAsExpression","tsSatisfiesExpression","TSSatisfiesExpression","tsTypeAssertion","TSTypeAssertion","tsEnumBody","TSEnumBody","tsEnumDeclaration","TSEnumDeclaration","tsEnumMember","initializer","TSEnumMember","tsModuleDeclaration","TSModuleDeclaration","tsModuleBlock","TSModuleBlock","tsImportType","qualifier","TSImportType","tsImportEqualsDeclaration","moduleReference","isExport","TSImportEqualsDeclaration","tsExternalModuleReference","TSExternalModuleReference","tsNonNullExpression","TSNonNullExpression","tsExportAssignment","TSExportAssignment","tsNamespaceExportDeclaration","TSNamespaceExportDeclaration","tsTypeAnnotation","TSTypeAnnotation","tsTypeParameterInstantiation","TSTypeParameterInstantiation","tsTypeParameterDeclaration","TSTypeParameterDeclaration","tsTypeParameter","constraint","TSTypeParameter","NumberLiteral","deprecationWarning","RegexLiteral","RestProperty","SpreadProperty"],"sources":["../../../src/builders/generated/lowercase.ts"],"sourcesContent":["/*\n * This file is auto-generated! Do not modify it directly.\n * To re-generate run 'make build'\n */\nimport * as _validate from \"../../validators/validate.ts\";\nimport type * as t from \"../../ast-types/generated/index.ts\";\nimport deprecationWarning from \"../../utils/deprecationWarning.ts\";\nimport * as utils from \"../../definitions/utils.ts\";\n\nconst { validateInternal: validate } = _validate;\nconst { NODE_FIELDS } = utils;\n\n/** @deprecated */ export function bigIntLiteral(\n value: string,\n): t.BigIntLiteral;\nexport function bigIntLiteral(value: bigint): t.BigIntLiteral;\nexport function bigIntLiteral(value: bigint | string): t.BigIntLiteral {\n if (typeof value === \"bigint\") {\n value = value.toString();\n }\n const node: t.BigIntLiteral = {\n type: \"BigIntLiteral\",\n value,\n };\n const defs = NODE_FIELDS.BigIntLiteral;\n validate(defs.value, node, \"value\", value);\n return node;\n}\nexport function arrayExpression(\n elements: Array<null | t.Expression | t.SpreadElement> = [],\n): t.ArrayExpression {\n const node: t.ArrayExpression = {\n type: \"ArrayExpression\",\n elements,\n };\n const defs = NODE_FIELDS.ArrayExpression;\n validate(defs.elements, node, \"elements\", elements, 1);\n return node;\n}\nexport function assignmentExpression(\n operator: string,\n left: t.LVal | t.OptionalMemberExpression,\n right: t.Expression,\n): t.AssignmentExpression {\n const node: t.AssignmentExpression = {\n type: \"AssignmentExpression\",\n operator,\n left,\n right,\n };\n const defs = NODE_FIELDS.AssignmentExpression;\n validate(defs.operator, node, \"operator\", operator);\n validate(defs.left, node, \"left\", left, 1);\n validate(defs.right, node, \"right\", right, 1);\n return node;\n}\nexport function binaryExpression(\n operator:\n | \"+\"\n | \"-\"\n | \"/\"\n | \"%\"\n | \"*\"\n | \"**\"\n | \"&\"\n | \"|\"\n | \">>\"\n | \">>>\"\n | \"<<\"\n | \"^\"\n | \"==\"\n | \"===\"\n | \"!=\"\n | \"!==\"\n | \"in\"\n | \"instanceof\"\n | \">\"\n | \"<\"\n | \">=\"\n | \"<=\"\n | \"|>\",\n left: t.Expression | t.PrivateName,\n right: t.Expression,\n): t.BinaryExpression {\n const node: t.BinaryExpression = {\n type: \"BinaryExpression\",\n operator,\n left,\n right,\n };\n const defs = NODE_FIELDS.BinaryExpression;\n validate(defs.operator, node, \"operator\", operator);\n validate(defs.left, node, \"left\", left, 1);\n validate(defs.right, node, \"right\", right, 1);\n return node;\n}\nexport function interpreterDirective(value: string): t.InterpreterDirective {\n const node: t.InterpreterDirective = {\n type: \"InterpreterDirective\",\n value,\n };\n const defs = NODE_FIELDS.InterpreterDirective;\n validate(defs.value, node, \"value\", value);\n return node;\n}\nexport function directive(value: t.DirectiveLiteral): t.Directive {\n const node: t.Directive = {\n type: \"Directive\",\n value,\n };\n const defs = NODE_FIELDS.Directive;\n validate(defs.value, node, \"value\", value, 1);\n return node;\n}\nexport function directiveLiteral(value: string): t.DirectiveLiteral {\n const node: t.DirectiveLiteral = {\n type: \"DirectiveLiteral\",\n value,\n };\n const defs = NODE_FIELDS.DirectiveLiteral;\n validate(defs.value, node, \"value\", value);\n return node;\n}\nexport function blockStatement(\n body: Array<t.Statement>,\n directives: Array<t.Directive> = [],\n): t.BlockStatement {\n const node: t.BlockStatement = {\n type: \"BlockStatement\",\n body,\n directives,\n };\n const defs = NODE_FIELDS.BlockStatement;\n validate(defs.body, node, \"body\", body, 1);\n validate(defs.directives, node, \"directives\", directives, 1);\n return node;\n}\nexport function breakStatement(\n label: t.Identifier | null = null,\n): t.BreakStatement {\n const node: t.BreakStatement = {\n type: \"BreakStatement\",\n label,\n };\n const defs = NODE_FIELDS.BreakStatement;\n validate(defs.label, node, \"label\", label, 1);\n return node;\n}\nexport function callExpression(\n callee: t.Expression | t.Super | t.V8IntrinsicIdentifier,\n _arguments: Array<t.Expression | t.SpreadElement | t.ArgumentPlaceholder>,\n): t.CallExpression {\n const node: t.CallExpression = {\n type: \"CallExpression\",\n callee,\n arguments: _arguments,\n };\n const defs = NODE_FIELDS.CallExpression;\n validate(defs.callee, node, \"callee\", callee, 1);\n validate(defs.arguments, node, \"arguments\", _arguments, 1);\n return node;\n}\nexport function catchClause(\n param:\n | t.Identifier\n | t.ArrayPattern\n | t.ObjectPattern\n | null\n | undefined = null,\n body: t.BlockStatement,\n): t.CatchClause {\n const node: t.CatchClause = {\n type: \"CatchClause\",\n param,\n body,\n };\n const defs = NODE_FIELDS.CatchClause;\n validate(defs.param, node, \"param\", param, 1);\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport function conditionalExpression(\n test: t.Expression,\n consequent: t.Expression,\n alternate: t.Expression,\n): t.ConditionalExpression {\n const node: t.ConditionalExpression = {\n type: \"ConditionalExpression\",\n test,\n consequent,\n alternate,\n };\n const defs = NODE_FIELDS.ConditionalExpression;\n validate(defs.test, node, \"test\", test, 1);\n validate(defs.consequent, node, \"consequent\", consequent, 1);\n validate(defs.alternate, node, \"alternate\", alternate, 1);\n return node;\n}\nexport function continueStatement(\n label: t.Identifier | null = null,\n): t.ContinueStatement {\n const node: t.ContinueStatement = {\n type: \"ContinueStatement\",\n label,\n };\n const defs = NODE_FIELDS.ContinueStatement;\n validate(defs.label, node, \"label\", label, 1);\n return node;\n}\nexport function debuggerStatement(): t.DebuggerStatement {\n return {\n type: \"DebuggerStatement\",\n };\n}\nexport function doWhileStatement(\n test: t.Expression,\n body: t.Statement,\n): t.DoWhileStatement {\n const node: t.DoWhileStatement = {\n type: \"DoWhileStatement\",\n test,\n body,\n };\n const defs = NODE_FIELDS.DoWhileStatement;\n validate(defs.test, node, \"test\", test, 1);\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport function emptyStatement(): t.EmptyStatement {\n return {\n type: \"EmptyStatement\",\n };\n}\nexport function expressionStatement(\n expression: t.Expression,\n): t.ExpressionStatement {\n const node: t.ExpressionStatement = {\n type: \"ExpressionStatement\",\n expression,\n };\n const defs = NODE_FIELDS.ExpressionStatement;\n validate(defs.expression, node, \"expression\", expression, 1);\n return node;\n}\nexport function file(\n program: t.Program,\n comments: Array<t.CommentBlock | t.CommentLine> | null = null,\n tokens: Array<any> | null = null,\n): t.File {\n const node: t.File = {\n type: \"File\",\n program,\n comments,\n tokens,\n };\n const defs = NODE_FIELDS.File;\n validate(defs.program, node, \"program\", program, 1);\n validate(defs.comments, node, \"comments\", comments, 1);\n validate(defs.tokens, node, \"tokens\", tokens);\n return node;\n}\nexport function forInStatement(\n left: t.VariableDeclaration | t.LVal,\n right: t.Expression,\n body: t.Statement,\n): t.ForInStatement {\n const node: t.ForInStatement = {\n type: \"ForInStatement\",\n left,\n right,\n body,\n };\n const defs = NODE_FIELDS.ForInStatement;\n validate(defs.left, node, \"left\", left, 1);\n validate(defs.right, node, \"right\", right, 1);\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport function forStatement(\n init: t.VariableDeclaration | t.Expression | null | undefined = null,\n test: t.Expression | null | undefined = null,\n update: t.Expression | null | undefined = null,\n body: t.Statement,\n): t.ForStatement {\n const node: t.ForStatement = {\n type: \"ForStatement\",\n init,\n test,\n update,\n body,\n };\n const defs = NODE_FIELDS.ForStatement;\n validate(defs.init, node, \"init\", init, 1);\n validate(defs.test, node, \"test\", test, 1);\n validate(defs.update, node, \"update\", update, 1);\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport function functionDeclaration(\n id: t.Identifier | null | undefined = null,\n params: Array<t.FunctionParameter>,\n body: t.BlockStatement,\n generator: boolean = false,\n async: boolean = false,\n): t.FunctionDeclaration {\n const node: t.FunctionDeclaration = {\n type: \"FunctionDeclaration\",\n id,\n params,\n body,\n generator,\n async,\n };\n const defs = NODE_FIELDS.FunctionDeclaration;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.params, node, \"params\", params, 1);\n validate(defs.body, node, \"body\", body, 1);\n validate(defs.generator, node, \"generator\", generator);\n validate(defs.async, node, \"async\", async);\n return node;\n}\nexport function functionExpression(\n id: t.Identifier | null | undefined = null,\n params: Array<t.FunctionParameter>,\n body: t.BlockStatement,\n generator: boolean = false,\n async: boolean = false,\n): t.FunctionExpression {\n const node: t.FunctionExpression = {\n type: \"FunctionExpression\",\n id,\n params,\n body,\n generator,\n async,\n };\n const defs = NODE_FIELDS.FunctionExpression;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.params, node, \"params\", params, 1);\n validate(defs.body, node, \"body\", body, 1);\n validate(defs.generator, node, \"generator\", generator);\n validate(defs.async, node, \"async\", async);\n return node;\n}\nexport function identifier(name: string): t.Identifier {\n const node: t.Identifier = {\n type: \"Identifier\",\n name,\n };\n const defs = NODE_FIELDS.Identifier;\n validate(defs.name, node, \"name\", name);\n return node;\n}\nexport function ifStatement(\n test: t.Expression,\n consequent: t.Statement,\n alternate: t.Statement | null = null,\n): t.IfStatement {\n const node: t.IfStatement = {\n type: \"IfStatement\",\n test,\n consequent,\n alternate,\n };\n const defs = NODE_FIELDS.IfStatement;\n validate(defs.test, node, \"test\", test, 1);\n validate(defs.consequent, node, \"consequent\", consequent, 1);\n validate(defs.alternate, node, \"alternate\", alternate, 1);\n return node;\n}\nexport function labeledStatement(\n label: t.Identifier,\n body: t.Statement,\n): t.LabeledStatement {\n const node: t.LabeledStatement = {\n type: \"LabeledStatement\",\n label,\n body,\n };\n const defs = NODE_FIELDS.LabeledStatement;\n validate(defs.label, node, \"label\", label, 1);\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport function stringLiteral(value: string): t.StringLiteral {\n const node: t.StringLiteral = {\n type: \"StringLiteral\",\n value,\n };\n const defs = NODE_FIELDS.StringLiteral;\n validate(defs.value, node, \"value\", value);\n return node;\n}\nexport function numericLiteral(value: number): t.NumericLiteral {\n const node: t.NumericLiteral = {\n type: \"NumericLiteral\",\n value,\n };\n const defs = NODE_FIELDS.NumericLiteral;\n validate(defs.value, node, \"value\", value);\n return node;\n}\nexport function nullLiteral(): t.NullLiteral {\n return {\n type: \"NullLiteral\",\n };\n}\nexport function booleanLiteral(value: boolean): t.BooleanLiteral {\n const node: t.BooleanLiteral = {\n type: \"BooleanLiteral\",\n value,\n };\n const defs = NODE_FIELDS.BooleanLiteral;\n validate(defs.value, node, \"value\", value);\n return node;\n}\nexport function regExpLiteral(\n pattern: string,\n flags: string = \"\",\n): t.RegExpLiteral {\n const node: t.RegExpLiteral = {\n type: \"RegExpLiteral\",\n pattern,\n flags,\n };\n const defs = NODE_FIELDS.RegExpLiteral;\n validate(defs.pattern, node, \"pattern\", pattern);\n validate(defs.flags, node, \"flags\", flags);\n return node;\n}\nexport function logicalExpression(\n operator: \"||\" | \"&&\" | \"??\",\n left: t.Expression,\n right: t.Expression,\n): t.LogicalExpression {\n const node: t.LogicalExpression = {\n type: \"LogicalExpression\",\n operator,\n left,\n right,\n };\n const defs = NODE_FIELDS.LogicalExpression;\n validate(defs.operator, node, \"operator\", operator);\n validate(defs.left, node, \"left\", left, 1);\n validate(defs.right, node, \"right\", right, 1);\n return node;\n}\nexport function memberExpression(\n object: t.Expression | t.Super,\n property: t.Expression | t.Identifier | t.PrivateName,\n computed: boolean = false,\n optional: boolean | null = null,\n): t.MemberExpression {\n const node: t.MemberExpression = {\n type: \"MemberExpression\",\n object,\n property,\n computed,\n optional,\n };\n const defs = NODE_FIELDS.MemberExpression;\n validate(defs.object, node, \"object\", object, 1);\n validate(defs.property, node, \"property\", property, 1);\n validate(defs.computed, node, \"computed\", computed);\n validate(defs.optional, node, \"optional\", optional);\n return node;\n}\nexport function newExpression(\n callee: t.Expression | t.Super | t.V8IntrinsicIdentifier,\n _arguments: Array<t.Expression | t.SpreadElement | t.ArgumentPlaceholder>,\n): t.NewExpression {\n const node: t.NewExpression = {\n type: \"NewExpression\",\n callee,\n arguments: _arguments,\n };\n const defs = NODE_FIELDS.NewExpression;\n validate(defs.callee, node, \"callee\", callee, 1);\n validate(defs.arguments, node, \"arguments\", _arguments, 1);\n return node;\n}\nexport function program(\n body: Array<t.Statement>,\n directives: Array<t.Directive> = [],\n sourceType: \"script\" | \"module\" = \"script\",\n interpreter: t.InterpreterDirective | null = null,\n): t.Program {\n const node: t.Program = {\n type: \"Program\",\n body,\n directives,\n sourceType,\n interpreter,\n };\n const defs = NODE_FIELDS.Program;\n validate(defs.body, node, \"body\", body, 1);\n validate(defs.directives, node, \"directives\", directives, 1);\n validate(defs.sourceType, node, \"sourceType\", sourceType);\n validate(defs.interpreter, node, \"interpreter\", interpreter, 1);\n return node;\n}\nexport function objectExpression(\n properties: Array<t.ObjectMethod | t.ObjectProperty | t.SpreadElement>,\n): t.ObjectExpression {\n const node: t.ObjectExpression = {\n type: \"ObjectExpression\",\n properties,\n };\n const defs = NODE_FIELDS.ObjectExpression;\n validate(defs.properties, node, \"properties\", properties, 1);\n return node;\n}\nexport function objectMethod(\n kind: \"method\" | \"get\" | \"set\" | undefined = \"method\",\n key:\n | t.Expression\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral,\n params: Array<t.FunctionParameter>,\n body: t.BlockStatement,\n computed: boolean = false,\n generator: boolean = false,\n async: boolean = false,\n): t.ObjectMethod {\n const node: t.ObjectMethod = {\n type: \"ObjectMethod\",\n kind,\n key,\n params,\n body,\n computed,\n generator,\n async,\n };\n const defs = NODE_FIELDS.ObjectMethod;\n validate(defs.kind, node, \"kind\", kind);\n validate(defs.key, node, \"key\", key, 1);\n validate(defs.params, node, \"params\", params, 1);\n validate(defs.body, node, \"body\", body, 1);\n validate(defs.computed, node, \"computed\", computed);\n validate(defs.generator, node, \"generator\", generator);\n validate(defs.async, node, \"async\", async);\n return node;\n}\nexport function objectProperty(\n key:\n | t.Expression\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral\n | t.DecimalLiteral\n | t.PrivateName,\n value: t.Expression | t.PatternLike,\n computed: boolean = false,\n shorthand: boolean = false,\n decorators: Array<t.Decorator> | null = null,\n): t.ObjectProperty {\n const node: t.ObjectProperty = {\n type: \"ObjectProperty\",\n key,\n value,\n computed,\n shorthand,\n decorators,\n };\n const defs = NODE_FIELDS.ObjectProperty;\n validate(defs.key, node, \"key\", key, 1);\n validate(defs.value, node, \"value\", value, 1);\n validate(defs.computed, node, \"computed\", computed);\n validate(defs.shorthand, node, \"shorthand\", shorthand);\n validate(defs.decorators, node, \"decorators\", decorators, 1);\n return node;\n}\nexport function restElement(\n argument:\n | t.Identifier\n | t.ArrayPattern\n | t.ObjectPattern\n | t.MemberExpression\n | t.TSAsExpression\n | t.TSSatisfiesExpression\n | t.TSTypeAssertion\n | t.TSNonNullExpression\n | t.RestElement\n | t.AssignmentPattern,\n): t.RestElement {\n const node: t.RestElement = {\n type: \"RestElement\",\n argument,\n };\n const defs = NODE_FIELDS.RestElement;\n validate(defs.argument, node, \"argument\", argument, 1);\n return node;\n}\nexport function returnStatement(\n argument: t.Expression | null = null,\n): t.ReturnStatement {\n const node: t.ReturnStatement = {\n type: \"ReturnStatement\",\n argument,\n };\n const defs = NODE_FIELDS.ReturnStatement;\n validate(defs.argument, node, \"argument\", argument, 1);\n return node;\n}\nexport function sequenceExpression(\n expressions: Array<t.Expression>,\n): t.SequenceExpression {\n const node: t.SequenceExpression = {\n type: \"SequenceExpression\",\n expressions,\n };\n const defs = NODE_FIELDS.SequenceExpression;\n validate(defs.expressions, node, \"expressions\", expressions, 1);\n return node;\n}\nexport function parenthesizedExpression(\n expression: t.Expression,\n): t.ParenthesizedExpression {\n const node: t.ParenthesizedExpression = {\n type: \"ParenthesizedExpression\",\n expression,\n };\n const defs = NODE_FIELDS.ParenthesizedExpression;\n validate(defs.expression, node, \"expression\", expression, 1);\n return node;\n}\nexport function switchCase(\n test: t.Expression | null | undefined = null,\n consequent: Array<t.Statement>,\n): t.SwitchCase {\n const node: t.SwitchCase = {\n type: \"SwitchCase\",\n test,\n consequent,\n };\n const defs = NODE_FIELDS.SwitchCase;\n validate(defs.test, node, \"test\", test, 1);\n validate(defs.consequent, node, \"consequent\", consequent, 1);\n return node;\n}\nexport function switchStatement(\n discriminant: t.Expression,\n cases: Array<t.SwitchCase>,\n): t.SwitchStatement {\n const node: t.SwitchStatement = {\n type: \"SwitchStatement\",\n discriminant,\n cases,\n };\n const defs = NODE_FIELDS.SwitchStatement;\n validate(defs.discriminant, node, \"discriminant\", discriminant, 1);\n validate(defs.cases, node, \"cases\", cases, 1);\n return node;\n}\nexport function thisExpression(): t.ThisExpression {\n return {\n type: \"ThisExpression\",\n };\n}\nexport function throwStatement(argument: t.Expression): t.ThrowStatement {\n const node: t.ThrowStatement = {\n type: \"ThrowStatement\",\n argument,\n };\n const defs = NODE_FIELDS.ThrowStatement;\n validate(defs.argument, node, \"argument\", argument, 1);\n return node;\n}\nexport function tryStatement(\n block: t.BlockStatement,\n handler: t.CatchClause | null = null,\n finalizer: t.BlockStatement | null = null,\n): t.TryStatement {\n const node: t.TryStatement = {\n type: \"TryStatement\",\n block,\n handler,\n finalizer,\n };\n const defs = NODE_FIELDS.TryStatement;\n validate(defs.block, node, \"block\", block, 1);\n validate(defs.handler, node, \"handler\", handler, 1);\n validate(defs.finalizer, node, \"finalizer\", finalizer, 1);\n return node;\n}\nexport function unaryExpression(\n operator: \"void\" | \"throw\" | \"delete\" | \"!\" | \"+\" | \"-\" | \"~\" | \"typeof\",\n argument: t.Expression,\n prefix: boolean = true,\n): t.UnaryExpression {\n const node: t.UnaryExpression = {\n type: \"UnaryExpression\",\n operator,\n argument,\n prefix,\n };\n const defs = NODE_FIELDS.UnaryExpression;\n validate(defs.operator, node, \"operator\", operator);\n validate(defs.argument, node, \"argument\", argument, 1);\n validate(defs.prefix, node, \"prefix\", prefix);\n return node;\n}\nexport function updateExpression(\n operator: \"++\" | \"--\",\n argument: t.Expression,\n prefix: boolean = false,\n): t.UpdateExpression {\n const node: t.UpdateExpression = {\n type: \"UpdateExpression\",\n operator,\n argument,\n prefix,\n };\n const defs = NODE_FIELDS.UpdateExpression;\n validate(defs.operator, node, \"operator\", operator);\n validate(defs.argument, node, \"argument\", argument, 1);\n validate(defs.prefix, node, \"prefix\", prefix);\n return node;\n}\nexport function variableDeclaration(\n kind: \"var\" | \"let\" | \"const\" | \"using\" | \"await using\",\n declarations: Array<t.VariableDeclarator>,\n): t.VariableDeclaration {\n const node: t.VariableDeclaration = {\n type: \"VariableDeclaration\",\n kind,\n declarations,\n };\n const defs = NODE_FIELDS.VariableDeclaration;\n validate(defs.kind, node, \"kind\", kind);\n validate(defs.declarations, node, \"declarations\", declarations, 1);\n return node;\n}\nexport function variableDeclarator(\n id: t.LVal | t.VoidPattern,\n init: t.Expression | null = null,\n): t.VariableDeclarator {\n const node: t.VariableDeclarator = {\n type: \"VariableDeclarator\",\n id,\n init,\n };\n const defs = NODE_FIELDS.VariableDeclarator;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.init, node, \"init\", init, 1);\n return node;\n}\nexport function whileStatement(\n test: t.Expression,\n body: t.Statement,\n): t.WhileStatement {\n const node: t.WhileStatement = {\n type: \"WhileStatement\",\n test,\n body,\n };\n const defs = NODE_FIELDS.WhileStatement;\n validate(defs.test, node, \"test\", test, 1);\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport function withStatement(\n object: t.Expression,\n body: t.Statement,\n): t.WithStatement {\n const node: t.WithStatement = {\n type: \"WithStatement\",\n object,\n body,\n };\n const defs = NODE_FIELDS.WithStatement;\n validate(defs.object, node, \"object\", object, 1);\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport function assignmentPattern(\n left:\n | t.Identifier\n | t.ObjectPattern\n | t.ArrayPattern\n | t.MemberExpression\n | t.TSAsExpression\n | t.TSSatisfiesExpression\n | t.TSTypeAssertion\n | t.TSNonNullExpression,\n right: t.Expression,\n): t.AssignmentPattern {\n const node: t.AssignmentPattern = {\n type: \"AssignmentPattern\",\n left,\n right,\n };\n const defs = NODE_FIELDS.AssignmentPattern;\n validate(defs.left, node, \"left\", left, 1);\n validate(defs.right, node, \"right\", right, 1);\n return node;\n}\nexport function arrayPattern(\n elements: Array<null | t.PatternLike>,\n): t.ArrayPattern {\n const node: t.ArrayPattern = {\n type: \"ArrayPattern\",\n elements,\n };\n const defs = NODE_FIELDS.ArrayPattern;\n validate(defs.elements, node, \"elements\", elements, 1);\n return node;\n}\nexport function arrowFunctionExpression(\n params: Array<t.FunctionParameter>,\n body: t.BlockStatement | t.Expression,\n async: boolean = false,\n): t.ArrowFunctionExpression {\n const node: t.ArrowFunctionExpression = {\n type: \"ArrowFunctionExpression\",\n params,\n body,\n async,\n expression: null,\n };\n const defs = NODE_FIELDS.ArrowFunctionExpression;\n validate(defs.params, node, \"params\", params, 1);\n validate(defs.body, node, \"body\", body, 1);\n validate(defs.async, node, \"async\", async);\n return node;\n}\nexport function classBody(\n body: Array<\n | t.ClassMethod\n | t.ClassPrivateMethod\n | t.ClassProperty\n | t.ClassPrivateProperty\n | t.ClassAccessorProperty\n | t.TSDeclareMethod\n | t.TSIndexSignature\n | t.StaticBlock\n >,\n): t.ClassBody {\n const node: t.ClassBody = {\n type: \"ClassBody\",\n body,\n };\n const defs = NODE_FIELDS.ClassBody;\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport function classExpression(\n id: t.Identifier | null | undefined = null,\n superClass: t.Expression | null | undefined = null,\n body: t.ClassBody,\n decorators: Array<t.Decorator> | null = null,\n): t.ClassExpression {\n const node: t.ClassExpression = {\n type: \"ClassExpression\",\n id,\n superClass,\n body,\n decorators,\n };\n const defs = NODE_FIELDS.ClassExpression;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.superClass, node, \"superClass\", superClass, 1);\n validate(defs.body, node, \"body\", body, 1);\n validate(defs.decorators, node, \"decorators\", decorators, 1);\n return node;\n}\nexport function classDeclaration(\n id: t.Identifier | null | undefined = null,\n superClass: t.Expression | null | undefined = null,\n body: t.ClassBody,\n decorators: Array<t.Decorator> | null = null,\n): t.ClassDeclaration {\n const node: t.ClassDeclaration = {\n type: \"ClassDeclaration\",\n id,\n superClass,\n body,\n decorators,\n };\n const defs = NODE_FIELDS.ClassDeclaration;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.superClass, node, \"superClass\", superClass, 1);\n validate(defs.body, node, \"body\", body, 1);\n validate(defs.decorators, node, \"decorators\", decorators, 1);\n return node;\n}\nexport function exportAllDeclaration(\n source: t.StringLiteral,\n): t.ExportAllDeclaration {\n const node: t.ExportAllDeclaration = {\n type: \"ExportAllDeclaration\",\n source,\n };\n const defs = NODE_FIELDS.ExportAllDeclaration;\n validate(defs.source, node, \"source\", source, 1);\n return node;\n}\nexport function exportDefaultDeclaration(\n declaration:\n | t.TSDeclareFunction\n | t.FunctionDeclaration\n | t.ClassDeclaration\n | t.Expression,\n): t.ExportDefaultDeclaration {\n const node: t.ExportDefaultDeclaration = {\n type: \"ExportDefaultDeclaration\",\n declaration,\n };\n const defs = NODE_FIELDS.ExportDefaultDeclaration;\n validate(defs.declaration, node, \"declaration\", declaration, 1);\n return node;\n}\nexport function exportNamedDeclaration(\n declaration: t.Declaration | null = null,\n specifiers: Array<\n t.ExportSpecifier | t.ExportDefaultSpecifier | t.ExportNamespaceSpecifier\n > = [],\n source: t.StringLiteral | null = null,\n): t.ExportNamedDeclaration {\n const node: t.ExportNamedDeclaration = {\n type: \"ExportNamedDeclaration\",\n declaration,\n specifiers,\n source,\n };\n const defs = NODE_FIELDS.ExportNamedDeclaration;\n validate(defs.declaration, node, \"declaration\", declaration, 1);\n validate(defs.specifiers, node, \"specifiers\", specifiers, 1);\n validate(defs.source, node, \"source\", source, 1);\n return node;\n}\nexport function exportSpecifier(\n local: t.Identifier,\n exported: t.Identifier | t.StringLiteral,\n): t.ExportSpecifier {\n const node: t.ExportSpecifier = {\n type: \"ExportSpecifier\",\n local,\n exported,\n };\n const defs = NODE_FIELDS.ExportSpecifier;\n validate(defs.local, node, \"local\", local, 1);\n validate(defs.exported, node, \"exported\", exported, 1);\n return node;\n}\nexport function forOfStatement(\n left: t.VariableDeclaration | t.LVal,\n right: t.Expression,\n body: t.Statement,\n _await: boolean = false,\n): t.ForOfStatement {\n const node: t.ForOfStatement = {\n type: \"ForOfStatement\",\n left,\n right,\n body,\n await: _await,\n };\n const defs = NODE_FIELDS.ForOfStatement;\n validate(defs.left, node, \"left\", left, 1);\n validate(defs.right, node, \"right\", right, 1);\n validate(defs.body, node, \"body\", body, 1);\n validate(defs.await, node, \"await\", _await);\n return node;\n}\nexport function importDeclaration(\n specifiers: Array<\n t.ImportSpecifier | t.ImportDefaultSpecifier | t.ImportNamespaceSpecifier\n >,\n source: t.StringLiteral,\n): t.ImportDeclaration {\n const node: t.ImportDeclaration = {\n type: \"ImportDeclaration\",\n specifiers,\n source,\n };\n const defs = NODE_FIELDS.ImportDeclaration;\n validate(defs.specifiers, node, \"specifiers\", specifiers, 1);\n validate(defs.source, node, \"source\", source, 1);\n return node;\n}\nexport function importDefaultSpecifier(\n local: t.Identifier,\n): t.ImportDefaultSpecifier {\n const node: t.ImportDefaultSpecifier = {\n type: \"ImportDefaultSpecifier\",\n local,\n };\n const defs = NODE_FIELDS.ImportDefaultSpecifier;\n validate(defs.local, node, \"local\", local, 1);\n return node;\n}\nexport function importNamespaceSpecifier(\n local: t.Identifier,\n): t.ImportNamespaceSpecifier {\n const node: t.ImportNamespaceSpecifier = {\n type: \"ImportNamespaceSpecifier\",\n local,\n };\n const defs = NODE_FIELDS.ImportNamespaceSpecifier;\n validate(defs.local, node, \"local\", local, 1);\n return node;\n}\nexport function importSpecifier(\n local: t.Identifier,\n imported: t.Identifier | t.StringLiteral,\n): t.ImportSpecifier {\n const node: t.ImportSpecifier = {\n type: \"ImportSpecifier\",\n local,\n imported,\n };\n const defs = NODE_FIELDS.ImportSpecifier;\n validate(defs.local, node, \"local\", local, 1);\n validate(defs.imported, node, \"imported\", imported, 1);\n return node;\n}\nexport function importExpression(\n source: t.Expression,\n options: t.Expression | null = null,\n): t.ImportExpression {\n const node: t.ImportExpression = {\n type: \"ImportExpression\",\n source,\n options,\n };\n const defs = NODE_FIELDS.ImportExpression;\n validate(defs.source, node, \"source\", source, 1);\n validate(defs.options, node, \"options\", options, 1);\n return node;\n}\nexport function metaProperty(\n meta: t.Identifier,\n property: t.Identifier,\n): t.MetaProperty {\n const node: t.MetaProperty = {\n type: \"MetaProperty\",\n meta,\n property,\n };\n const defs = NODE_FIELDS.MetaProperty;\n validate(defs.meta, node, \"meta\", meta, 1);\n validate(defs.property, node, \"property\", property, 1);\n return node;\n}\nexport function classMethod(\n kind: \"get\" | \"set\" | \"method\" | \"constructor\" | undefined = \"method\",\n key:\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral\n | t.Expression,\n params: Array<t.FunctionParameter | t.TSParameterProperty>,\n body: t.BlockStatement,\n computed: boolean = false,\n _static: boolean = false,\n generator: boolean = false,\n async: boolean = false,\n): t.ClassMethod {\n const node: t.ClassMethod = {\n type: \"ClassMethod\",\n kind,\n key,\n params,\n body,\n computed,\n static: _static,\n generator,\n async,\n };\n const defs = NODE_FIELDS.ClassMethod;\n validate(defs.kind, node, \"kind\", kind);\n validate(defs.key, node, \"key\", key, 1);\n validate(defs.params, node, \"params\", params, 1);\n validate(defs.body, node, \"body\", body, 1);\n validate(defs.computed, node, \"computed\", computed);\n validate(defs.static, node, \"static\", _static);\n validate(defs.generator, node, \"generator\", generator);\n validate(defs.async, node, \"async\", async);\n return node;\n}\nexport function objectPattern(\n properties: Array<t.RestElement | t.ObjectProperty>,\n): t.ObjectPattern {\n const node: t.ObjectPattern = {\n type: \"ObjectPattern\",\n properties,\n };\n const defs = NODE_FIELDS.ObjectPattern;\n validate(defs.properties, node, \"properties\", properties, 1);\n return node;\n}\nexport function spreadElement(argument: t.Expression): t.SpreadElement {\n const node: t.SpreadElement = {\n type: \"SpreadElement\",\n argument,\n };\n const defs = NODE_FIELDS.SpreadElement;\n validate(defs.argument, node, \"argument\", argument, 1);\n return node;\n}\nfunction _super(): t.Super {\n return {\n type: \"Super\",\n };\n}\nexport { _super as super };\nexport function taggedTemplateExpression(\n tag: t.Expression,\n quasi: t.TemplateLiteral,\n): t.TaggedTemplateExpression {\n const node: t.TaggedTemplateExpression = {\n type: \"TaggedTemplateExpression\",\n tag,\n quasi,\n };\n const defs = NODE_FIELDS.TaggedTemplateExpression;\n validate(defs.tag, node, \"tag\", tag, 1);\n validate(defs.quasi, node, \"quasi\", quasi, 1);\n return node;\n}\nexport function templateElement(\n value: { raw: string; cooked?: string },\n tail: boolean = false,\n): t.TemplateElement {\n const node: t.TemplateElement = {\n type: \"TemplateElement\",\n value,\n tail,\n };\n const defs = NODE_FIELDS.TemplateElement;\n validate(defs.value, node, \"value\", value);\n validate(defs.tail, node, \"tail\", tail);\n return node;\n}\nexport function templateLiteral(\n quasis: Array<t.TemplateElement>,\n expressions: Array<t.Expression | t.TSType>,\n): t.TemplateLiteral {\n const node: t.TemplateLiteral = {\n type: \"TemplateLiteral\",\n quasis,\n expressions,\n };\n const defs = NODE_FIELDS.TemplateLiteral;\n validate(defs.quasis, node, \"quasis\", quasis, 1);\n validate(defs.expressions, node, \"expressions\", expressions, 1);\n return node;\n}\nexport function yieldExpression(\n argument: t.Expression | null = null,\n delegate: boolean = false,\n): t.YieldExpression {\n const node: t.YieldExpression = {\n type: \"YieldExpression\",\n argument,\n delegate,\n };\n const defs = NODE_FIELDS.YieldExpression;\n validate(defs.argument, node, \"argument\", argument, 1);\n validate(defs.delegate, node, \"delegate\", delegate);\n return node;\n}\nexport function awaitExpression(argument: t.Expression): t.AwaitExpression {\n const node: t.AwaitExpression = {\n type: \"AwaitExpression\",\n argument,\n };\n const defs = NODE_FIELDS.AwaitExpression;\n validate(defs.argument, node, \"argument\", argument, 1);\n return node;\n}\nfunction _import(): t.Import {\n return {\n type: \"Import\",\n };\n}\nexport { _import as import };\nexport function exportNamespaceSpecifier(\n exported: t.Identifier,\n): t.ExportNamespaceSpecifier {\n const node: t.ExportNamespaceSpecifier = {\n type: \"ExportNamespaceSpecifier\",\n exported,\n };\n const defs = NODE_FIELDS.ExportNamespaceSpecifier;\n validate(defs.exported, node, \"exported\", exported, 1);\n return node;\n}\nexport function optionalMemberExpression(\n object: t.Expression,\n property: t.Expression | t.Identifier,\n computed: boolean | undefined = false,\n optional: boolean,\n): t.OptionalMemberExpression {\n const node: t.OptionalMemberExpression = {\n type: \"OptionalMemberExpression\",\n object,\n property,\n computed,\n optional,\n };\n const defs = NODE_FIELDS.OptionalMemberExpression;\n validate(defs.object, node, \"object\", object, 1);\n validate(defs.property, node, \"property\", property, 1);\n validate(defs.computed, node, \"computed\", computed);\n validate(defs.optional, node, \"optional\", optional);\n return node;\n}\nexport function optionalCallExpression(\n callee: t.Expression,\n _arguments: Array<t.Expression | t.SpreadElement | t.ArgumentPlaceholder>,\n optional: boolean,\n): t.OptionalCallExpression {\n const node: t.OptionalCallExpression = {\n type: \"OptionalCallExpression\",\n callee,\n arguments: _arguments,\n optional,\n };\n const defs = NODE_FIELDS.OptionalCallExpression;\n validate(defs.callee, node, \"callee\", callee, 1);\n validate(defs.arguments, node, \"arguments\", _arguments, 1);\n validate(defs.optional, node, \"optional\", optional);\n return node;\n}\nexport function classProperty(\n key:\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral\n | t.Expression,\n value: t.Expression | null = null,\n typeAnnotation: t.TypeAnnotation | t.TSTypeAnnotation | t.Noop | null = null,\n decorators: Array<t.Decorator> | null = null,\n computed: boolean = false,\n _static: boolean = false,\n): t.ClassProperty {\n const node: t.ClassProperty = {\n type: \"ClassProperty\",\n key,\n value,\n typeAnnotation,\n decorators,\n computed,\n static: _static,\n };\n const defs = NODE_FIELDS.ClassProperty;\n validate(defs.key, node, \"key\", key, 1);\n validate(defs.value, node, \"value\", value, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n validate(defs.decorators, node, \"decorators\", decorators, 1);\n validate(defs.computed, node, \"computed\", computed);\n validate(defs.static, node, \"static\", _static);\n return node;\n}\nexport function classAccessorProperty(\n key:\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral\n | t.Expression\n | t.PrivateName,\n value: t.Expression | null = null,\n typeAnnotation: t.TypeAnnotation | t.TSTypeAnnotation | t.Noop | null = null,\n decorators: Array<t.Decorator> | null = null,\n computed: boolean = false,\n _static: boolean = false,\n): t.ClassAccessorProperty {\n const node: t.ClassAccessorProperty = {\n type: \"ClassAccessorProperty\",\n key,\n value,\n typeAnnotation,\n decorators,\n computed,\n static: _static,\n };\n const defs = NODE_FIELDS.ClassAccessorProperty;\n validate(defs.key, node, \"key\", key, 1);\n validate(defs.value, node, \"value\", value, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n validate(defs.decorators, node, \"decorators\", decorators, 1);\n validate(defs.computed, node, \"computed\", computed);\n validate(defs.static, node, \"static\", _static);\n return node;\n}\nexport function classPrivateProperty(\n key: t.PrivateName,\n value: t.Expression | null = null,\n decorators: Array<t.Decorator> | null = null,\n _static: boolean = false,\n): t.ClassPrivateProperty {\n const node: t.ClassPrivateProperty = {\n type: \"ClassPrivateProperty\",\n key,\n value,\n decorators,\n static: _static,\n };\n const defs = NODE_FIELDS.ClassPrivateProperty;\n validate(defs.key, node, \"key\", key, 1);\n validate(defs.value, node, \"value\", value, 1);\n validate(defs.decorators, node, \"decorators\", decorators, 1);\n validate(defs.static, node, \"static\", _static);\n return node;\n}\nexport function classPrivateMethod(\n kind: \"get\" | \"set\" | \"method\" | undefined = \"method\",\n key: t.PrivateName,\n params: Array<t.FunctionParameter | t.TSParameterProperty>,\n body: t.BlockStatement,\n _static: boolean = false,\n): t.ClassPrivateMethod {\n const node: t.ClassPrivateMethod = {\n type: \"ClassPrivateMethod\",\n kind,\n key,\n params,\n body,\n static: _static,\n };\n const defs = NODE_FIELDS.ClassPrivateMethod;\n validate(defs.kind, node, \"kind\", kind);\n validate(defs.key, node, \"key\", key, 1);\n validate(defs.params, node, \"params\", params, 1);\n validate(defs.body, node, \"body\", body, 1);\n validate(defs.static, node, \"static\", _static);\n return node;\n}\nexport function privateName(id: t.Identifier): t.PrivateName {\n const node: t.PrivateName = {\n type: \"PrivateName\",\n id,\n };\n const defs = NODE_FIELDS.PrivateName;\n validate(defs.id, node, \"id\", id, 1);\n return node;\n}\nexport function staticBlock(body: Array<t.Statement>): t.StaticBlock {\n const node: t.StaticBlock = {\n type: \"StaticBlock\",\n body,\n };\n const defs = NODE_FIELDS.StaticBlock;\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport function importAttribute(\n key: t.Identifier | t.StringLiteral,\n value: t.StringLiteral,\n): t.ImportAttribute {\n const node: t.ImportAttribute = {\n type: \"ImportAttribute\",\n key,\n value,\n };\n const defs = NODE_FIELDS.ImportAttribute;\n validate(defs.key, node, \"key\", key, 1);\n validate(defs.value, node, \"value\", value, 1);\n return node;\n}\nexport function anyTypeAnnotation(): t.AnyTypeAnnotation {\n return {\n type: \"AnyTypeAnnotation\",\n };\n}\nexport function arrayTypeAnnotation(\n elementType: t.FlowType,\n): t.ArrayTypeAnnotation {\n const node: t.ArrayTypeAnnotation = {\n type: \"ArrayTypeAnnotation\",\n elementType,\n };\n const defs = NODE_FIELDS.ArrayTypeAnnotation;\n validate(defs.elementType, node, \"elementType\", elementType, 1);\n return node;\n}\nexport function booleanTypeAnnotation(): t.BooleanTypeAnnotation {\n return {\n type: \"BooleanTypeAnnotation\",\n };\n}\nexport function booleanLiteralTypeAnnotation(\n value: boolean,\n): t.BooleanLiteralTypeAnnotation {\n const node: t.BooleanLiteralTypeAnnotation = {\n type: \"BooleanLiteralTypeAnnotation\",\n value,\n };\n const defs = NODE_FIELDS.BooleanLiteralTypeAnnotation;\n validate(defs.value, node, \"value\", value);\n return node;\n}\nexport function nullLiteralTypeAnnotation(): t.NullLiteralTypeAnnotation {\n return {\n type: \"NullLiteralTypeAnnotation\",\n };\n}\nexport function classImplements(\n id: t.Identifier,\n typeParameters: t.TypeParameterInstantiation | null = null,\n): t.ClassImplements {\n const node: t.ClassImplements = {\n type: \"ClassImplements\",\n id,\n typeParameters,\n };\n const defs = NODE_FIELDS.ClassImplements;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n return node;\n}\nexport function declareClass(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null | undefined = null,\n _extends: Array<t.InterfaceExtends> | null | undefined = null,\n body: t.ObjectTypeAnnotation,\n): t.DeclareClass {\n const node: t.DeclareClass = {\n type: \"DeclareClass\",\n id,\n typeParameters,\n extends: _extends,\n body,\n };\n const defs = NODE_FIELDS.DeclareClass;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.extends, node, \"extends\", _extends, 1);\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport function declareFunction(id: t.Identifier): t.DeclareFunction {\n const node: t.DeclareFunction = {\n type: \"DeclareFunction\",\n id,\n };\n const defs = NODE_FIELDS.DeclareFunction;\n validate(defs.id, node, \"id\", id, 1);\n return node;\n}\nexport function declareInterface(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null | undefined = null,\n _extends: Array<t.InterfaceExtends> | null | undefined = null,\n body: t.ObjectTypeAnnotation,\n): t.DeclareInterface {\n const node: t.DeclareInterface = {\n type: \"DeclareInterface\",\n id,\n typeParameters,\n extends: _extends,\n body,\n };\n const defs = NODE_FIELDS.DeclareInterface;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.extends, node, \"extends\", _extends, 1);\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport function declareModule(\n id: t.Identifier | t.StringLiteral,\n body: t.BlockStatement,\n kind: \"CommonJS\" | \"ES\" | null = null,\n): t.DeclareModule {\n const node: t.DeclareModule = {\n type: \"DeclareModule\",\n id,\n body,\n kind,\n };\n const defs = NODE_FIELDS.DeclareModule;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.body, node, \"body\", body, 1);\n validate(defs.kind, node, \"kind\", kind);\n return node;\n}\nexport function declareModuleExports(\n typeAnnotation: t.TypeAnnotation,\n): t.DeclareModuleExports {\n const node: t.DeclareModuleExports = {\n type: \"DeclareModuleExports\",\n typeAnnotation,\n };\n const defs = NODE_FIELDS.DeclareModuleExports;\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport function declareTypeAlias(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null | undefined = null,\n right: t.FlowType,\n): t.DeclareTypeAlias {\n const node: t.DeclareTypeAlias = {\n type: \"DeclareTypeAlias\",\n id,\n typeParameters,\n right,\n };\n const defs = NODE_FIELDS.DeclareTypeAlias;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.right, node, \"right\", right, 1);\n return node;\n}\nexport function declareOpaqueType(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null = null,\n supertype: t.FlowType | null = null,\n): t.DeclareOpaqueType {\n const node: t.DeclareOpaqueType = {\n type: \"DeclareOpaqueType\",\n id,\n typeParameters,\n supertype,\n };\n const defs = NODE_FIELDS.DeclareOpaqueType;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.supertype, node, \"supertype\", supertype, 1);\n return node;\n}\nexport function declareVariable(id: t.Identifier): t.DeclareVariable {\n const node: t.DeclareVariable = {\n type: \"DeclareVariable\",\n id,\n };\n const defs = NODE_FIELDS.DeclareVariable;\n validate(defs.id, node, \"id\", id, 1);\n return node;\n}\nexport function declareExportDeclaration(\n declaration: t.Flow | null = null,\n specifiers: Array<\n t.ExportSpecifier | t.ExportNamespaceSpecifier\n > | null = null,\n source: t.StringLiteral | null = null,\n attributes: Array<t.ImportAttribute> | null = null,\n): t.DeclareExportDeclaration {\n const node: t.DeclareExportDeclaration = {\n type: \"DeclareExportDeclaration\",\n declaration,\n specifiers,\n source,\n attributes,\n };\n const defs = NODE_FIELDS.DeclareExportDeclaration;\n validate(defs.declaration, node, \"declaration\", declaration, 1);\n validate(defs.specifiers, node, \"specifiers\", specifiers, 1);\n validate(defs.source, node, \"source\", source, 1);\n validate(defs.attributes, node, \"attributes\", attributes, 1);\n return node;\n}\nexport function declareExportAllDeclaration(\n source: t.StringLiteral,\n attributes: Array<t.ImportAttribute> | null = null,\n): t.DeclareExportAllDeclaration {\n const node: t.DeclareExportAllDeclaration = {\n type: \"DeclareExportAllDeclaration\",\n source,\n attributes,\n };\n const defs = NODE_FIELDS.DeclareExportAllDeclaration;\n validate(defs.source, node, \"source\", source, 1);\n validate(defs.attributes, node, \"attributes\", attributes, 1);\n return node;\n}\nexport function declaredPredicate(value: t.Flow): t.DeclaredPredicate {\n const node: t.DeclaredPredicate = {\n type: \"DeclaredPredicate\",\n value,\n };\n const defs = NODE_FIELDS.DeclaredPredicate;\n validate(defs.value, node, \"value\", value, 1);\n return node;\n}\nexport function existsTypeAnnotation(): t.ExistsTypeAnnotation {\n return {\n type: \"ExistsTypeAnnotation\",\n };\n}\nexport function functionTypeAnnotation(\n typeParameters: t.TypeParameterDeclaration | null | undefined = null,\n params: Array<t.FunctionTypeParam>,\n rest: t.FunctionTypeParam | null | undefined = null,\n returnType: t.FlowType,\n): t.FunctionTypeAnnotation {\n const node: t.FunctionTypeAnnotation = {\n type: \"FunctionTypeAnnotation\",\n typeParameters,\n params,\n rest,\n returnType,\n };\n const defs = NODE_FIELDS.FunctionTypeAnnotation;\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.params, node, \"params\", params, 1);\n validate(defs.rest, node, \"rest\", rest, 1);\n validate(defs.returnType, node, \"returnType\", returnType, 1);\n return node;\n}\nexport function functionTypeParam(\n name: t.Identifier | null | undefined = null,\n typeAnnotation: t.FlowType,\n): t.FunctionTypeParam {\n const node: t.FunctionTypeParam = {\n type: \"FunctionTypeParam\",\n name,\n typeAnnotation,\n };\n const defs = NODE_FIELDS.FunctionTypeParam;\n validate(defs.name, node, \"name\", name, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport function genericTypeAnnotation(\n id: t.Identifier | t.QualifiedTypeIdentifier,\n typeParameters: t.TypeParameterInstantiation | null = null,\n): t.GenericTypeAnnotation {\n const node: t.GenericTypeAnnotation = {\n type: \"GenericTypeAnnotation\",\n id,\n typeParameters,\n };\n const defs = NODE_FIELDS.GenericTypeAnnotation;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n return node;\n}\nexport function inferredPredicate(): t.InferredPredicate {\n return {\n type: \"InferredPredicate\",\n };\n}\nexport function interfaceExtends(\n id: t.Identifier | t.QualifiedTypeIdentifier,\n typeParameters: t.TypeParameterInstantiation | null = null,\n): t.InterfaceExtends {\n const node: t.InterfaceExtends = {\n type: \"InterfaceExtends\",\n id,\n typeParameters,\n };\n const defs = NODE_FIELDS.InterfaceExtends;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n return node;\n}\nexport function interfaceDeclaration(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null | undefined = null,\n _extends: Array<t.InterfaceExtends> | null | undefined = null,\n body: t.ObjectTypeAnnotation,\n): t.InterfaceDeclaration {\n const node: t.InterfaceDeclaration = {\n type: \"InterfaceDeclaration\",\n id,\n typeParameters,\n extends: _extends,\n body,\n };\n const defs = NODE_FIELDS.InterfaceDeclaration;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.extends, node, \"extends\", _extends, 1);\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport function interfaceTypeAnnotation(\n _extends: Array<t.InterfaceExtends> | null | undefined = null,\n body: t.ObjectTypeAnnotation,\n): t.InterfaceTypeAnnotation {\n const node: t.InterfaceTypeAnnotation = {\n type: \"InterfaceTypeAnnotation\",\n extends: _extends,\n body,\n };\n const defs = NODE_FIELDS.InterfaceTypeAnnotation;\n validate(defs.extends, node, \"extends\", _extends, 1);\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport function intersectionTypeAnnotation(\n types: Array<t.FlowType>,\n): t.IntersectionTypeAnnotation {\n const node: t.IntersectionTypeAnnotation = {\n type: \"IntersectionTypeAnnotation\",\n types,\n };\n const defs = NODE_FIELDS.IntersectionTypeAnnotation;\n validate(defs.types, node, \"types\", types, 1);\n return node;\n}\nexport function mixedTypeAnnotation(): t.MixedTypeAnnotation {\n return {\n type: \"MixedTypeAnnotation\",\n };\n}\nexport function emptyTypeAnnotation(): t.EmptyTypeAnnotation {\n return {\n type: \"EmptyTypeAnnotation\",\n };\n}\nexport function nullableTypeAnnotation(\n typeAnnotation: t.FlowType,\n): t.NullableTypeAnnotation {\n const node: t.NullableTypeAnnotation = {\n type: \"NullableTypeAnnotation\",\n typeAnnotation,\n };\n const defs = NODE_FIELDS.NullableTypeAnnotation;\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport function numberLiteralTypeAnnotation(\n value: number,\n): t.NumberLiteralTypeAnnotation {\n const node: t.NumberLiteralTypeAnnotation = {\n type: \"NumberLiteralTypeAnnotation\",\n value,\n };\n const defs = NODE_FIELDS.NumberLiteralTypeAnnotation;\n validate(defs.value, node, \"value\", value);\n return node;\n}\nexport function numberTypeAnnotation(): t.NumberTypeAnnotation {\n return {\n type: \"NumberTypeAnnotation\",\n };\n}\nexport function objectTypeAnnotation(\n properties: Array<t.ObjectTypeProperty | t.ObjectTypeSpreadProperty>,\n indexers: Array<t.ObjectTypeIndexer> = [],\n callProperties: Array<t.ObjectTypeCallProperty> = [],\n internalSlots: Array<t.ObjectTypeInternalSlot> = [],\n exact: boolean = false,\n): t.ObjectTypeAnnotation {\n const node: t.ObjectTypeAnnotation = {\n type: \"ObjectTypeAnnotation\",\n properties,\n indexers,\n callProperties,\n internalSlots,\n exact,\n };\n const defs = NODE_FIELDS.ObjectTypeAnnotation;\n validate(defs.properties, node, \"properties\", properties, 1);\n validate(defs.indexers, node, \"indexers\", indexers, 1);\n validate(defs.callProperties, node, \"callProperties\", callProperties, 1);\n validate(defs.internalSlots, node, \"internalSlots\", internalSlots, 1);\n validate(defs.exact, node, \"exact\", exact);\n return node;\n}\nexport function objectTypeInternalSlot(\n id: t.Identifier,\n value: t.FlowType,\n optional: boolean,\n _static: boolean,\n method: boolean,\n): t.ObjectTypeInternalSlot {\n const node: t.ObjectTypeInternalSlot = {\n type: \"ObjectTypeInternalSlot\",\n id,\n value,\n optional,\n static: _static,\n method,\n };\n const defs = NODE_FIELDS.ObjectTypeInternalSlot;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.value, node, \"value\", value, 1);\n validate(defs.optional, node, \"optional\", optional);\n validate(defs.static, node, \"static\", _static);\n validate(defs.method, node, \"method\", method);\n return node;\n}\nexport function objectTypeCallProperty(\n value: t.FlowType,\n): t.ObjectTypeCallProperty {\n const node: t.ObjectTypeCallProperty = {\n type: \"ObjectTypeCallProperty\",\n value,\n static: null,\n };\n const defs = NODE_FIELDS.ObjectTypeCallProperty;\n validate(defs.value, node, \"value\", value, 1);\n return node;\n}\nexport function objectTypeIndexer(\n id: t.Identifier | null | undefined = null,\n key: t.FlowType,\n value: t.FlowType,\n variance: t.Variance | null = null,\n): t.ObjectTypeIndexer {\n const node: t.ObjectTypeIndexer = {\n type: \"ObjectTypeIndexer\",\n id,\n key,\n value,\n variance,\n static: null,\n };\n const defs = NODE_FIELDS.ObjectTypeIndexer;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.key, node, \"key\", key, 1);\n validate(defs.value, node, \"value\", value, 1);\n validate(defs.variance, node, \"variance\", variance, 1);\n return node;\n}\nexport function objectTypeProperty(\n key: t.Identifier | t.StringLiteral,\n value: t.FlowType,\n variance: t.Variance | null = null,\n): t.ObjectTypeProperty {\n const node: t.ObjectTypeProperty = {\n type: \"ObjectTypeProperty\",\n key,\n value,\n variance,\n kind: null,\n method: null,\n optional: null,\n proto: null,\n static: null,\n };\n const defs = NODE_FIELDS.ObjectTypeProperty;\n validate(defs.key, node, \"key\", key, 1);\n validate(defs.value, node, \"value\", value, 1);\n validate(defs.variance, node, \"variance\", variance, 1);\n return node;\n}\nexport function objectTypeSpreadProperty(\n argument: t.FlowType,\n): t.ObjectTypeSpreadProperty {\n const node: t.ObjectTypeSpreadProperty = {\n type: \"ObjectTypeSpreadProperty\",\n argument,\n };\n const defs = NODE_FIELDS.ObjectTypeSpreadProperty;\n validate(defs.argument, node, \"argument\", argument, 1);\n return node;\n}\nexport function opaqueType(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null | undefined = null,\n supertype: t.FlowType | null | undefined = null,\n impltype: t.FlowType,\n): t.OpaqueType {\n const node: t.OpaqueType = {\n type: \"OpaqueType\",\n id,\n typeParameters,\n supertype,\n impltype,\n };\n const defs = NODE_FIELDS.OpaqueType;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.supertype, node, \"supertype\", supertype, 1);\n validate(defs.impltype, node, \"impltype\", impltype, 1);\n return node;\n}\nexport function qualifiedTypeIdentifier(\n id: t.Identifier,\n qualification: t.Identifier | t.QualifiedTypeIdentifier,\n): t.QualifiedTypeIdentifier {\n const node: t.QualifiedTypeIdentifier = {\n type: \"QualifiedTypeIdentifier\",\n id,\n qualification,\n };\n const defs = NODE_FIELDS.QualifiedTypeIdentifier;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.qualification, node, \"qualification\", qualification, 1);\n return node;\n}\nexport function stringLiteralTypeAnnotation(\n value: string,\n): t.StringLiteralTypeAnnotation {\n const node: t.StringLiteralTypeAnnotation = {\n type: \"StringLiteralTypeAnnotation\",\n value,\n };\n const defs = NODE_FIELDS.StringLiteralTypeAnnotation;\n validate(defs.value, node, \"value\", value);\n return node;\n}\nexport function stringTypeAnnotation(): t.StringTypeAnnotation {\n return {\n type: \"StringTypeAnnotation\",\n };\n}\nexport function symbolTypeAnnotation(): t.SymbolTypeAnnotation {\n return {\n type: \"SymbolTypeAnnotation\",\n };\n}\nexport function thisTypeAnnotation(): t.ThisTypeAnnotation {\n return {\n type: \"ThisTypeAnnotation\",\n };\n}\nexport function tupleTypeAnnotation(\n types: Array<t.FlowType>,\n): t.TupleTypeAnnotation {\n const node: t.TupleTypeAnnotation = {\n type: \"TupleTypeAnnotation\",\n types,\n };\n const defs = NODE_FIELDS.TupleTypeAnnotation;\n validate(defs.types, node, \"types\", types, 1);\n return node;\n}\nexport function typeofTypeAnnotation(\n argument: t.FlowType,\n): t.TypeofTypeAnnotation {\n const node: t.TypeofTypeAnnotation = {\n type: \"TypeofTypeAnnotation\",\n argument,\n };\n const defs = NODE_FIELDS.TypeofTypeAnnotation;\n validate(defs.argument, node, \"argument\", argument, 1);\n return node;\n}\nexport function typeAlias(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null | undefined = null,\n right: t.FlowType,\n): t.TypeAlias {\n const node: t.TypeAlias = {\n type: \"TypeAlias\",\n id,\n typeParameters,\n right,\n };\n const defs = NODE_FIELDS.TypeAlias;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.right, node, \"right\", right, 1);\n return node;\n}\nexport function typeAnnotation(typeAnnotation: t.FlowType): t.TypeAnnotation {\n const node: t.TypeAnnotation = {\n type: \"TypeAnnotation\",\n typeAnnotation,\n };\n const defs = NODE_FIELDS.TypeAnnotation;\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport function typeCastExpression(\n expression: t.Expression,\n typeAnnotation: t.TypeAnnotation,\n): t.TypeCastExpression {\n const node: t.TypeCastExpression = {\n type: \"TypeCastExpression\",\n expression,\n typeAnnotation,\n };\n const defs = NODE_FIELDS.TypeCastExpression;\n validate(defs.expression, node, \"expression\", expression, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport function typeParameter(\n bound: t.TypeAnnotation | null = null,\n _default: t.FlowType | null = null,\n variance: t.Variance | null = null,\n): t.TypeParameter {\n const node: t.TypeParameter = {\n type: \"TypeParameter\",\n bound,\n default: _default,\n variance,\n name: null,\n };\n const defs = NODE_FIELDS.TypeParameter;\n validate(defs.bound, node, \"bound\", bound, 1);\n validate(defs.default, node, \"default\", _default, 1);\n validate(defs.variance, node, \"variance\", variance, 1);\n return node;\n}\nexport function typeParameterDeclaration(\n params: Array<t.TypeParameter>,\n): t.TypeParameterDeclaration {\n const node: t.TypeParameterDeclaration = {\n type: \"TypeParameterDeclaration\",\n params,\n };\n const defs = NODE_FIELDS.TypeParameterDeclaration;\n validate(defs.params, node, \"params\", params, 1);\n return node;\n}\nexport function typeParameterInstantiation(\n params: Array<t.FlowType>,\n): t.TypeParameterInstantiation {\n const node: t.TypeParameterInstantiation = {\n type: \"TypeParameterInstantiation\",\n params,\n };\n const defs = NODE_FIELDS.TypeParameterInstantiation;\n validate(defs.params, node, \"params\", params, 1);\n return node;\n}\nexport function unionTypeAnnotation(\n types: Array<t.FlowType>,\n): t.UnionTypeAnnotation {\n const node: t.UnionTypeAnnotation = {\n type: \"UnionTypeAnnotation\",\n types,\n };\n const defs = NODE_FIELDS.UnionTypeAnnotation;\n validate(defs.types, node, \"types\", types, 1);\n return node;\n}\nexport function variance(kind: \"minus\" | \"plus\"): t.Variance {\n const node: t.Variance = {\n type: \"Variance\",\n kind,\n };\n const defs = NODE_FIELDS.Variance;\n validate(defs.kind, node, \"kind\", kind);\n return node;\n}\nexport function voidTypeAnnotation(): t.VoidTypeAnnotation {\n return {\n type: \"VoidTypeAnnotation\",\n };\n}\nexport function enumDeclaration(\n id: t.Identifier,\n body:\n | t.EnumBooleanBody\n | t.EnumNumberBody\n | t.EnumStringBody\n | t.EnumSymbolBody,\n): t.EnumDeclaration {\n const node: t.EnumDeclaration = {\n type: \"EnumDeclaration\",\n id,\n body,\n };\n const defs = NODE_FIELDS.EnumDeclaration;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport function enumBooleanBody(\n members: Array<t.EnumBooleanMember>,\n): t.EnumBooleanBody {\n const node: t.EnumBooleanBody = {\n type: \"EnumBooleanBody\",\n members,\n explicitType: null,\n hasUnknownMembers: null,\n };\n const defs = NODE_FIELDS.EnumBooleanBody;\n validate(defs.members, node, \"members\", members, 1);\n return node;\n}\nexport function enumNumberBody(\n members: Array<t.EnumNumberMember>,\n): t.EnumNumberBody {\n const node: t.EnumNumberBody = {\n type: \"EnumNumberBody\",\n members,\n explicitType: null,\n hasUnknownMembers: null,\n };\n const defs = NODE_FIELDS.EnumNumberBody;\n validate(defs.members, node, \"members\", members, 1);\n return node;\n}\nexport function enumStringBody(\n members: Array<t.EnumStringMember | t.EnumDefaultedMember>,\n): t.EnumStringBody {\n const node: t.EnumStringBody = {\n type: \"EnumStringBody\",\n members,\n explicitType: null,\n hasUnknownMembers: null,\n };\n const defs = NODE_FIELDS.EnumStringBody;\n validate(defs.members, node, \"members\", members, 1);\n return node;\n}\nexport function enumSymbolBody(\n members: Array<t.EnumDefaultedMember>,\n): t.EnumSymbolBody {\n const node: t.EnumSymbolBody = {\n type: \"EnumSymbolBody\",\n members,\n hasUnknownMembers: null,\n };\n const defs = NODE_FIELDS.EnumSymbolBody;\n validate(defs.members, node, \"members\", members, 1);\n return node;\n}\nexport function enumBooleanMember(id: t.Identifier): t.EnumBooleanMember {\n const node: t.EnumBooleanMember = {\n type: \"EnumBooleanMember\",\n id,\n init: null,\n };\n const defs = NODE_FIELDS.EnumBooleanMember;\n validate(defs.id, node, \"id\", id, 1);\n return node;\n}\nexport function enumNumberMember(\n id: t.Identifier,\n init: t.NumericLiteral,\n): t.EnumNumberMember {\n const node: t.EnumNumberMember = {\n type: \"EnumNumberMember\",\n id,\n init,\n };\n const defs = NODE_FIELDS.EnumNumberMember;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.init, node, \"init\", init, 1);\n return node;\n}\nexport function enumStringMember(\n id: t.Identifier,\n init: t.StringLiteral,\n): t.EnumStringMember {\n const node: t.EnumStringMember = {\n type: \"EnumStringMember\",\n id,\n init,\n };\n const defs = NODE_FIELDS.EnumStringMember;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.init, node, \"init\", init, 1);\n return node;\n}\nexport function enumDefaultedMember(id: t.Identifier): t.EnumDefaultedMember {\n const node: t.EnumDefaultedMember = {\n type: \"EnumDefaultedMember\",\n id,\n };\n const defs = NODE_FIELDS.EnumDefaultedMember;\n validate(defs.id, node, \"id\", id, 1);\n return node;\n}\nexport function indexedAccessType(\n objectType: t.FlowType,\n indexType: t.FlowType,\n): t.IndexedAccessType {\n const node: t.IndexedAccessType = {\n type: \"IndexedAccessType\",\n objectType,\n indexType,\n };\n const defs = NODE_FIELDS.IndexedAccessType;\n validate(defs.objectType, node, \"objectType\", objectType, 1);\n validate(defs.indexType, node, \"indexType\", indexType, 1);\n return node;\n}\nexport function optionalIndexedAccessType(\n objectType: t.FlowType,\n indexType: t.FlowType,\n): t.OptionalIndexedAccessType {\n const node: t.OptionalIndexedAccessType = {\n type: \"OptionalIndexedAccessType\",\n objectType,\n indexType,\n optional: null,\n };\n const defs = NODE_FIELDS.OptionalIndexedAccessType;\n validate(defs.objectType, node, \"objectType\", objectType, 1);\n validate(defs.indexType, node, \"indexType\", indexType, 1);\n return node;\n}\nexport function jsxAttribute(\n name: t.JSXIdentifier | t.JSXNamespacedName,\n value:\n | t.JSXElement\n | t.JSXFragment\n | t.StringLiteral\n | t.JSXExpressionContainer\n | null = null,\n): t.JSXAttribute {\n const node: t.JSXAttribute = {\n type: \"JSXAttribute\",\n name,\n value,\n };\n const defs = NODE_FIELDS.JSXAttribute;\n validate(defs.name, node, \"name\", name, 1);\n validate(defs.value, node, \"value\", value, 1);\n return node;\n}\nexport { jsxAttribute as jSXAttribute };\nexport function jsxClosingElement(\n name: t.JSXIdentifier | t.JSXMemberExpression | t.JSXNamespacedName,\n): t.JSXClosingElement {\n const node: t.JSXClosingElement = {\n type: \"JSXClosingElement\",\n name,\n };\n const defs = NODE_FIELDS.JSXClosingElement;\n validate(defs.name, node, \"name\", name, 1);\n return node;\n}\nexport { jsxClosingElement as jSXClosingElement };\nexport function jsxElement(\n openingElement: t.JSXOpeningElement,\n closingElement: t.JSXClosingElement | null | undefined = null,\n children: Array<\n | t.JSXText\n | t.JSXExpressionContainer\n | t.JSXSpreadChild\n | t.JSXElement\n | t.JSXFragment\n >,\n selfClosing: boolean | null = null,\n): t.JSXElement {\n const node: t.JSXElement = {\n type: \"JSXElement\",\n openingElement,\n closingElement,\n children,\n selfClosing,\n };\n const defs = NODE_FIELDS.JSXElement;\n validate(defs.openingElement, node, \"openingElement\", openingElement, 1);\n validate(defs.closingElement, node, \"closingElement\", closingElement, 1);\n validate(defs.children, node, \"children\", children, 1);\n validate(defs.selfClosing, node, \"selfClosing\", selfClosing);\n return node;\n}\nexport { jsxElement as jSXElement };\nexport function jsxEmptyExpression(): t.JSXEmptyExpression {\n return {\n type: \"JSXEmptyExpression\",\n };\n}\nexport { jsxEmptyExpression as jSXEmptyExpression };\nexport function jsxExpressionContainer(\n expression: t.Expression | t.JSXEmptyExpression,\n): t.JSXExpressionContainer {\n const node: t.JSXExpressionContainer = {\n type: \"JSXExpressionContainer\",\n expression,\n };\n const defs = NODE_FIELDS.JSXExpressionContainer;\n validate(defs.expression, node, \"expression\", expression, 1);\n return node;\n}\nexport { jsxExpressionContainer as jSXExpressionContainer };\nexport function jsxSpreadChild(expression: t.Expression): t.JSXSpreadChild {\n const node: t.JSXSpreadChild = {\n type: \"JSXSpreadChild\",\n expression,\n };\n const defs = NODE_FIELDS.JSXSpreadChild;\n validate(defs.expression, node, \"expression\", expression, 1);\n return node;\n}\nexport { jsxSpreadChild as jSXSpreadChild };\nexport function jsxIdentifier(name: string): t.JSXIdentifier {\n const node: t.JSXIdentifier = {\n type: \"JSXIdentifier\",\n name,\n };\n const defs = NODE_FIELDS.JSXIdentifier;\n validate(defs.name, node, \"name\", name);\n return node;\n}\nexport { jsxIdentifier as jSXIdentifier };\nexport function jsxMemberExpression(\n object: t.JSXMemberExpression | t.JSXIdentifier,\n property: t.JSXIdentifier,\n): t.JSXMemberExpression {\n const node: t.JSXMemberExpression = {\n type: \"JSXMemberExpression\",\n object,\n property,\n };\n const defs = NODE_FIELDS.JSXMemberExpression;\n validate(defs.object, node, \"object\", object, 1);\n validate(defs.property, node, \"property\", property, 1);\n return node;\n}\nexport { jsxMemberExpression as jSXMemberExpression };\nexport function jsxNamespacedName(\n namespace: t.JSXIdentifier,\n name: t.JSXIdentifier,\n): t.JSXNamespacedName {\n const node: t.JSXNamespacedName = {\n type: \"JSXNamespacedName\",\n namespace,\n name,\n };\n const defs = NODE_FIELDS.JSXNamespacedName;\n validate(defs.namespace, node, \"namespace\", namespace, 1);\n validate(defs.name, node, \"name\", name, 1);\n return node;\n}\nexport { jsxNamespacedName as jSXNamespacedName };\nexport function jsxOpeningElement(\n name: t.JSXIdentifier | t.JSXMemberExpression | t.JSXNamespacedName,\n attributes: Array<t.JSXAttribute | t.JSXSpreadAttribute>,\n selfClosing: boolean = false,\n): t.JSXOpeningElement {\n const node: t.JSXOpeningElement = {\n type: \"JSXOpeningElement\",\n name,\n attributes,\n selfClosing,\n };\n const defs = NODE_FIELDS.JSXOpeningElement;\n validate(defs.name, node, \"name\", name, 1);\n validate(defs.attributes, node, \"attributes\", attributes, 1);\n validate(defs.selfClosing, node, \"selfClosing\", selfClosing);\n return node;\n}\nexport { jsxOpeningElement as jSXOpeningElement };\nexport function jsxSpreadAttribute(\n argument: t.Expression,\n): t.JSXSpreadAttribute {\n const node: t.JSXSpreadAttribute = {\n type: \"JSXSpreadAttribute\",\n argument,\n };\n const defs = NODE_FIELDS.JSXSpreadAttribute;\n validate(defs.argument, node, \"argument\", argument, 1);\n return node;\n}\nexport { jsxSpreadAttribute as jSXSpreadAttribute };\nexport function jsxText(value: string): t.JSXText {\n const node: t.JSXText = {\n type: \"JSXText\",\n value,\n };\n const defs = NODE_FIELDS.JSXText;\n validate(defs.value, node, \"value\", value);\n return node;\n}\nexport { jsxText as jSXText };\nexport function jsxFragment(\n openingFragment: t.JSXOpeningFragment,\n closingFragment: t.JSXClosingFragment,\n children: Array<\n | t.JSXText\n | t.JSXExpressionContainer\n | t.JSXSpreadChild\n | t.JSXElement\n | t.JSXFragment\n >,\n): t.JSXFragment {\n const node: t.JSXFragment = {\n type: \"JSXFragment\",\n openingFragment,\n closingFragment,\n children,\n };\n const defs = NODE_FIELDS.JSXFragment;\n validate(defs.openingFragment, node, \"openingFragment\", openingFragment, 1);\n validate(defs.closingFragment, node, \"closingFragment\", closingFragment, 1);\n validate(defs.children, node, \"children\", children, 1);\n return node;\n}\nexport { jsxFragment as jSXFragment };\nexport function jsxOpeningFragment(): t.JSXOpeningFragment {\n return {\n type: \"JSXOpeningFragment\",\n };\n}\nexport { jsxOpeningFragment as jSXOpeningFragment };\nexport function jsxClosingFragment(): t.JSXClosingFragment {\n return {\n type: \"JSXClosingFragment\",\n };\n}\nexport { jsxClosingFragment as jSXClosingFragment };\nexport function noop(): t.Noop {\n return {\n type: \"Noop\",\n };\n}\nexport function placeholder(\n expectedNode:\n | \"Identifier\"\n | \"StringLiteral\"\n | \"Expression\"\n | \"Statement\"\n | \"Declaration\"\n | \"BlockStatement\"\n | \"ClassBody\"\n | \"Pattern\",\n name: t.Identifier,\n): t.Placeholder {\n const node: t.Placeholder = {\n type: \"Placeholder\",\n expectedNode,\n name,\n };\n const defs = NODE_FIELDS.Placeholder;\n validate(defs.expectedNode, node, \"expectedNode\", expectedNode);\n validate(defs.name, node, \"name\", name, 1);\n return node;\n}\nexport function v8IntrinsicIdentifier(name: string): t.V8IntrinsicIdentifier {\n const node: t.V8IntrinsicIdentifier = {\n type: \"V8IntrinsicIdentifier\",\n name,\n };\n const defs = NODE_FIELDS.V8IntrinsicIdentifier;\n validate(defs.name, node, \"name\", name);\n return node;\n}\nexport function argumentPlaceholder(): t.ArgumentPlaceholder {\n return {\n type: \"ArgumentPlaceholder\",\n };\n}\nexport function bindExpression(\n object: t.Expression,\n callee: t.Expression,\n): t.BindExpression {\n const node: t.BindExpression = {\n type: \"BindExpression\",\n object,\n callee,\n };\n const defs = NODE_FIELDS.BindExpression;\n validate(defs.object, node, \"object\", object, 1);\n validate(defs.callee, node, \"callee\", callee, 1);\n return node;\n}\nexport function decorator(expression: t.Expression): t.Decorator {\n const node: t.Decorator = {\n type: \"Decorator\",\n expression,\n };\n const defs = NODE_FIELDS.Decorator;\n validate(defs.expression, node, \"expression\", expression, 1);\n return node;\n}\nexport function doExpression(\n body: t.BlockStatement,\n async: boolean = false,\n): t.DoExpression {\n const node: t.DoExpression = {\n type: \"DoExpression\",\n body,\n async,\n };\n const defs = NODE_FIELDS.DoExpression;\n validate(defs.body, node, \"body\", body, 1);\n validate(defs.async, node, \"async\", async);\n return node;\n}\nexport function exportDefaultSpecifier(\n exported: t.Identifier,\n): t.ExportDefaultSpecifier {\n const node: t.ExportDefaultSpecifier = {\n type: \"ExportDefaultSpecifier\",\n exported,\n };\n const defs = NODE_FIELDS.ExportDefaultSpecifier;\n validate(defs.exported, node, \"exported\", exported, 1);\n return node;\n}\nexport function recordExpression(\n properties: Array<t.ObjectProperty | t.SpreadElement>,\n): t.RecordExpression {\n const node: t.RecordExpression = {\n type: \"RecordExpression\",\n properties,\n };\n const defs = NODE_FIELDS.RecordExpression;\n validate(defs.properties, node, \"properties\", properties, 1);\n return node;\n}\nexport function tupleExpression(\n elements: Array<t.Expression | t.SpreadElement> = [],\n): t.TupleExpression {\n const node: t.TupleExpression = {\n type: \"TupleExpression\",\n elements,\n };\n const defs = NODE_FIELDS.TupleExpression;\n validate(defs.elements, node, \"elements\", elements, 1);\n return node;\n}\nexport function decimalLiteral(value: string): t.DecimalLiteral {\n const node: t.DecimalLiteral = {\n type: \"DecimalLiteral\",\n value,\n };\n const defs = NODE_FIELDS.DecimalLiteral;\n validate(defs.value, node, \"value\", value);\n return node;\n}\nexport function moduleExpression(body: t.Program): t.ModuleExpression {\n const node: t.ModuleExpression = {\n type: \"ModuleExpression\",\n body,\n };\n const defs = NODE_FIELDS.ModuleExpression;\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport function topicReference(): t.TopicReference {\n return {\n type: \"TopicReference\",\n };\n}\nexport function pipelineTopicExpression(\n expression: t.Expression,\n): t.PipelineTopicExpression {\n const node: t.PipelineTopicExpression = {\n type: \"PipelineTopicExpression\",\n expression,\n };\n const defs = NODE_FIELDS.PipelineTopicExpression;\n validate(defs.expression, node, \"expression\", expression, 1);\n return node;\n}\nexport function pipelineBareFunction(\n callee: t.Expression,\n): t.PipelineBareFunction {\n const node: t.PipelineBareFunction = {\n type: \"PipelineBareFunction\",\n callee,\n };\n const defs = NODE_FIELDS.PipelineBareFunction;\n validate(defs.callee, node, \"callee\", callee, 1);\n return node;\n}\nexport function pipelinePrimaryTopicReference(): t.PipelinePrimaryTopicReference {\n return {\n type: \"PipelinePrimaryTopicReference\",\n };\n}\nexport function voidPattern(): t.VoidPattern {\n return {\n type: \"VoidPattern\",\n };\n}\nexport function tsParameterProperty(\n parameter: t.Identifier | t.AssignmentPattern,\n): t.TSParameterProperty {\n const node: t.TSParameterProperty = {\n type: \"TSParameterProperty\",\n parameter,\n };\n const defs = NODE_FIELDS.TSParameterProperty;\n validate(defs.parameter, node, \"parameter\", parameter, 1);\n return node;\n}\nexport { tsParameterProperty as tSParameterProperty };\nexport function tsDeclareFunction(\n id: t.Identifier | null | undefined = null,\n typeParameters:\n | t.TSTypeParameterDeclaration\n | t.Noop\n | null\n | undefined = null,\n params: Array<t.FunctionParameter>,\n returnType: t.TSTypeAnnotation | t.Noop | null = null,\n): t.TSDeclareFunction {\n const node: t.TSDeclareFunction = {\n type: \"TSDeclareFunction\",\n id,\n typeParameters,\n params,\n returnType,\n };\n const defs = NODE_FIELDS.TSDeclareFunction;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.params, node, \"params\", params, 1);\n validate(defs.returnType, node, \"returnType\", returnType, 1);\n return node;\n}\nexport { tsDeclareFunction as tSDeclareFunction };\nexport function tsDeclareMethod(\n decorators: Array<t.Decorator> | null | undefined = null,\n key:\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral\n | t.Expression,\n typeParameters:\n | t.TSTypeParameterDeclaration\n | t.Noop\n | null\n | undefined = null,\n params: Array<t.FunctionParameter | t.TSParameterProperty>,\n returnType: t.TSTypeAnnotation | t.Noop | null = null,\n): t.TSDeclareMethod {\n const node: t.TSDeclareMethod = {\n type: \"TSDeclareMethod\",\n decorators,\n key,\n typeParameters,\n params,\n returnType,\n };\n const defs = NODE_FIELDS.TSDeclareMethod;\n validate(defs.decorators, node, \"decorators\", decorators, 1);\n validate(defs.key, node, \"key\", key, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.params, node, \"params\", params, 1);\n validate(defs.returnType, node, \"returnType\", returnType, 1);\n return node;\n}\nexport { tsDeclareMethod as tSDeclareMethod };\nexport function tsQualifiedName(\n left: t.TSEntityName,\n right: t.Identifier,\n): t.TSQualifiedName {\n const node: t.TSQualifiedName = {\n type: \"TSQualifiedName\",\n left,\n right,\n };\n const defs = NODE_FIELDS.TSQualifiedName;\n validate(defs.left, node, \"left\", left, 1);\n validate(defs.right, node, \"right\", right, 1);\n return node;\n}\nexport { tsQualifiedName as tSQualifiedName };\nexport function tsCallSignatureDeclaration(\n typeParameters: t.TSTypeParameterDeclaration | null | undefined = null,\n parameters: Array<\n t.ArrayPattern | t.Identifier | t.ObjectPattern | t.RestElement\n >,\n typeAnnotation: t.TSTypeAnnotation | null = null,\n): t.TSCallSignatureDeclaration {\n const node: t.TSCallSignatureDeclaration = {\n type: \"TSCallSignatureDeclaration\",\n typeParameters,\n parameters,\n typeAnnotation,\n };\n const defs = NODE_FIELDS.TSCallSignatureDeclaration;\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.parameters, node, \"parameters\", parameters, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport { tsCallSignatureDeclaration as tSCallSignatureDeclaration };\nexport function tsConstructSignatureDeclaration(\n typeParameters: t.TSTypeParameterDeclaration | null | undefined = null,\n parameters: Array<\n t.ArrayPattern | t.Identifier | t.ObjectPattern | t.RestElement\n >,\n typeAnnotation: t.TSTypeAnnotation | null = null,\n): t.TSConstructSignatureDeclaration {\n const node: t.TSConstructSignatureDeclaration = {\n type: \"TSConstructSignatureDeclaration\",\n typeParameters,\n parameters,\n typeAnnotation,\n };\n const defs = NODE_FIELDS.TSConstructSignatureDeclaration;\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.parameters, node, \"parameters\", parameters, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport { tsConstructSignatureDeclaration as tSConstructSignatureDeclaration };\nexport function tsPropertySignature(\n key: t.Expression,\n typeAnnotation: t.TSTypeAnnotation | null = null,\n): t.TSPropertySignature {\n const node: t.TSPropertySignature = {\n type: \"TSPropertySignature\",\n key,\n typeAnnotation,\n };\n const defs = NODE_FIELDS.TSPropertySignature;\n validate(defs.key, node, \"key\", key, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport { tsPropertySignature as tSPropertySignature };\nexport function tsMethodSignature(\n key: t.Expression,\n typeParameters: t.TSTypeParameterDeclaration | null | undefined = null,\n parameters: Array<\n t.ArrayPattern | t.Identifier | t.ObjectPattern | t.RestElement\n >,\n typeAnnotation: t.TSTypeAnnotation | null = null,\n): t.TSMethodSignature {\n const node: t.TSMethodSignature = {\n type: \"TSMethodSignature\",\n key,\n typeParameters,\n parameters,\n typeAnnotation,\n kind: null,\n };\n const defs = NODE_FIELDS.TSMethodSignature;\n validate(defs.key, node, \"key\", key, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.parameters, node, \"parameters\", parameters, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport { tsMethodSignature as tSMethodSignature };\nexport function tsIndexSignature(\n parameters: Array<t.Identifier>,\n typeAnnotation: t.TSTypeAnnotation | null = null,\n): t.TSIndexSignature {\n const node: t.TSIndexSignature = {\n type: \"TSIndexSignature\",\n parameters,\n typeAnnotation,\n };\n const defs = NODE_FIELDS.TSIndexSignature;\n validate(defs.parameters, node, \"parameters\", parameters, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport { tsIndexSignature as tSIndexSignature };\nexport function tsAnyKeyword(): t.TSAnyKeyword {\n return {\n type: \"TSAnyKeyword\",\n };\n}\nexport { tsAnyKeyword as tSAnyKeyword };\nexport function tsBooleanKeyword(): t.TSBooleanKeyword {\n return {\n type: \"TSBooleanKeyword\",\n };\n}\nexport { tsBooleanKeyword as tSBooleanKeyword };\nexport function tsBigIntKeyword(): t.TSBigIntKeyword {\n return {\n type: \"TSBigIntKeyword\",\n };\n}\nexport { tsBigIntKeyword as tSBigIntKeyword };\nexport function tsIntrinsicKeyword(): t.TSIntrinsicKeyword {\n return {\n type: \"TSIntrinsicKeyword\",\n };\n}\nexport { tsIntrinsicKeyword as tSIntrinsicKeyword };\nexport function tsNeverKeyword(): t.TSNeverKeyword {\n return {\n type: \"TSNeverKeyword\",\n };\n}\nexport { tsNeverKeyword as tSNeverKeyword };\nexport function tsNullKeyword(): t.TSNullKeyword {\n return {\n type: \"TSNullKeyword\",\n };\n}\nexport { tsNullKeyword as tSNullKeyword };\nexport function tsNumberKeyword(): t.TSNumberKeyword {\n return {\n type: \"TSNumberKeyword\",\n };\n}\nexport { tsNumberKeyword as tSNumberKeyword };\nexport function tsObjectKeyword(): t.TSObjectKeyword {\n return {\n type: \"TSObjectKeyword\",\n };\n}\nexport { tsObjectKeyword as tSObjectKeyword };\nexport function tsStringKeyword(): t.TSStringKeyword {\n return {\n type: \"TSStringKeyword\",\n };\n}\nexport { tsStringKeyword as tSStringKeyword };\nexport function tsSymbolKeyword(): t.TSSymbolKeyword {\n return {\n type: \"TSSymbolKeyword\",\n };\n}\nexport { tsSymbolKeyword as tSSymbolKeyword };\nexport function tsUndefinedKeyword(): t.TSUndefinedKeyword {\n return {\n type: \"TSUndefinedKeyword\",\n };\n}\nexport { tsUndefinedKeyword as tSUndefinedKeyword };\nexport function tsUnknownKeyword(): t.TSUnknownKeyword {\n return {\n type: \"TSUnknownKeyword\",\n };\n}\nexport { tsUnknownKeyword as tSUnknownKeyword };\nexport function tsVoidKeyword(): t.TSVoidKeyword {\n return {\n type: \"TSVoidKeyword\",\n };\n}\nexport { tsVoidKeyword as tSVoidKeyword };\nexport function tsThisType(): t.TSThisType {\n return {\n type: \"TSThisType\",\n };\n}\nexport { tsThisType as tSThisType };\nexport function tsFunctionType(\n typeParameters: t.TSTypeParameterDeclaration | null | undefined = null,\n parameters: Array<\n t.ArrayPattern | t.Identifier | t.ObjectPattern | t.RestElement\n >,\n typeAnnotation: t.TSTypeAnnotation | null = null,\n): t.TSFunctionType {\n const node: t.TSFunctionType = {\n type: \"TSFunctionType\",\n typeParameters,\n parameters,\n typeAnnotation,\n };\n const defs = NODE_FIELDS.TSFunctionType;\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.parameters, node, \"parameters\", parameters, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport { tsFunctionType as tSFunctionType };\nexport function tsConstructorType(\n typeParameters: t.TSTypeParameterDeclaration | null | undefined = null,\n parameters: Array<\n t.ArrayPattern | t.Identifier | t.ObjectPattern | t.RestElement\n >,\n typeAnnotation: t.TSTypeAnnotation | null = null,\n): t.TSConstructorType {\n const node: t.TSConstructorType = {\n type: \"TSConstructorType\",\n typeParameters,\n parameters,\n typeAnnotation,\n };\n const defs = NODE_FIELDS.TSConstructorType;\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.parameters, node, \"parameters\", parameters, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport { tsConstructorType as tSConstructorType };\nexport function tsTypeReference(\n typeName: t.TSEntityName,\n typeParameters: t.TSTypeParameterInstantiation | null = null,\n): t.TSTypeReference {\n const node: t.TSTypeReference = {\n type: \"TSTypeReference\",\n typeName,\n typeParameters,\n };\n const defs = NODE_FIELDS.TSTypeReference;\n validate(defs.typeName, node, \"typeName\", typeName, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n return node;\n}\nexport { tsTypeReference as tSTypeReference };\nexport function tsTypePredicate(\n parameterName: t.Identifier | t.TSThisType,\n typeAnnotation: t.TSTypeAnnotation | null = null,\n asserts: boolean | null = null,\n): t.TSTypePredicate {\n const node: t.TSTypePredicate = {\n type: \"TSTypePredicate\",\n parameterName,\n typeAnnotation,\n asserts,\n };\n const defs = NODE_FIELDS.TSTypePredicate;\n validate(defs.parameterName, node, \"parameterName\", parameterName, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n validate(defs.asserts, node, \"asserts\", asserts);\n return node;\n}\nexport { tsTypePredicate as tSTypePredicate };\nexport function tsTypeQuery(\n exprName: t.TSEntityName | t.TSImportType,\n typeParameters: t.TSTypeParameterInstantiation | null = null,\n): t.TSTypeQuery {\n const node: t.TSTypeQuery = {\n type: \"TSTypeQuery\",\n exprName,\n typeParameters,\n };\n const defs = NODE_FIELDS.TSTypeQuery;\n validate(defs.exprName, node, \"exprName\", exprName, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n return node;\n}\nexport { tsTypeQuery as tSTypeQuery };\nexport function tsTypeLiteral(\n members: Array<t.TSTypeElement>,\n): t.TSTypeLiteral {\n const node: t.TSTypeLiteral = {\n type: \"TSTypeLiteral\",\n members,\n };\n const defs = NODE_FIELDS.TSTypeLiteral;\n validate(defs.members, node, \"members\", members, 1);\n return node;\n}\nexport { tsTypeLiteral as tSTypeLiteral };\nexport function tsArrayType(elementType: t.TSType): t.TSArrayType {\n const node: t.TSArrayType = {\n type: \"TSArrayType\",\n elementType,\n };\n const defs = NODE_FIELDS.TSArrayType;\n validate(defs.elementType, node, \"elementType\", elementType, 1);\n return node;\n}\nexport { tsArrayType as tSArrayType };\nexport function tsTupleType(\n elementTypes: Array<t.TSType | t.TSNamedTupleMember>,\n): t.TSTupleType {\n const node: t.TSTupleType = {\n type: \"TSTupleType\",\n elementTypes,\n };\n const defs = NODE_FIELDS.TSTupleType;\n validate(defs.elementTypes, node, \"elementTypes\", elementTypes, 1);\n return node;\n}\nexport { tsTupleType as tSTupleType };\nexport function tsOptionalType(typeAnnotation: t.TSType): t.TSOptionalType {\n const node: t.TSOptionalType = {\n type: \"TSOptionalType\",\n typeAnnotation,\n };\n const defs = NODE_FIELDS.TSOptionalType;\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport { tsOptionalType as tSOptionalType };\nexport function tsRestType(typeAnnotation: t.TSType): t.TSRestType {\n const node: t.TSRestType = {\n type: \"TSRestType\",\n typeAnnotation,\n };\n const defs = NODE_FIELDS.TSRestType;\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport { tsRestType as tSRestType };\nexport function tsNamedTupleMember(\n label: t.Identifier,\n elementType: t.TSType,\n optional: boolean = false,\n): t.TSNamedTupleMember {\n const node: t.TSNamedTupleMember = {\n type: \"TSNamedTupleMember\",\n label,\n elementType,\n optional,\n };\n const defs = NODE_FIELDS.TSNamedTupleMember;\n validate(defs.label, node, \"label\", label, 1);\n validate(defs.elementType, node, \"elementType\", elementType, 1);\n validate(defs.optional, node, \"optional\", optional);\n return node;\n}\nexport { tsNamedTupleMember as tSNamedTupleMember };\nexport function tsUnionType(types: Array<t.TSType>): t.TSUnionType {\n const node: t.TSUnionType = {\n type: \"TSUnionType\",\n types,\n };\n const defs = NODE_FIELDS.TSUnionType;\n validate(defs.types, node, \"types\", types, 1);\n return node;\n}\nexport { tsUnionType as tSUnionType };\nexport function tsIntersectionType(\n types: Array<t.TSType>,\n): t.TSIntersectionType {\n const node: t.TSIntersectionType = {\n type: \"TSIntersectionType\",\n types,\n };\n const defs = NODE_FIELDS.TSIntersectionType;\n validate(defs.types, node, \"types\", types, 1);\n return node;\n}\nexport { tsIntersectionType as tSIntersectionType };\nexport function tsConditionalType(\n checkType: t.TSType,\n extendsType: t.TSType,\n trueType: t.TSType,\n falseType: t.TSType,\n): t.TSConditionalType {\n const node: t.TSConditionalType = {\n type: \"TSConditionalType\",\n checkType,\n extendsType,\n trueType,\n falseType,\n };\n const defs = NODE_FIELDS.TSConditionalType;\n validate(defs.checkType, node, \"checkType\", checkType, 1);\n validate(defs.extendsType, node, \"extendsType\", extendsType, 1);\n validate(defs.trueType, node, \"trueType\", trueType, 1);\n validate(defs.falseType, node, \"falseType\", falseType, 1);\n return node;\n}\nexport { tsConditionalType as tSConditionalType };\nexport function tsInferType(typeParameter: t.TSTypeParameter): t.TSInferType {\n const node: t.TSInferType = {\n type: \"TSInferType\",\n typeParameter,\n };\n const defs = NODE_FIELDS.TSInferType;\n validate(defs.typeParameter, node, \"typeParameter\", typeParameter, 1);\n return node;\n}\nexport { tsInferType as tSInferType };\nexport function tsParenthesizedType(\n typeAnnotation: t.TSType,\n): t.TSParenthesizedType {\n const node: t.TSParenthesizedType = {\n type: \"TSParenthesizedType\",\n typeAnnotation,\n };\n const defs = NODE_FIELDS.TSParenthesizedType;\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport { tsParenthesizedType as tSParenthesizedType };\nexport function tsTypeOperator(\n typeAnnotation: t.TSType,\n operator: string = \"keyof\",\n): t.TSTypeOperator {\n const node: t.TSTypeOperator = {\n type: \"TSTypeOperator\",\n typeAnnotation,\n operator,\n };\n const defs = NODE_FIELDS.TSTypeOperator;\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n validate(defs.operator, node, \"operator\", operator);\n return node;\n}\nexport { tsTypeOperator as tSTypeOperator };\nexport function tsIndexedAccessType(\n objectType: t.TSType,\n indexType: t.TSType,\n): t.TSIndexedAccessType {\n const node: t.TSIndexedAccessType = {\n type: \"TSIndexedAccessType\",\n objectType,\n indexType,\n };\n const defs = NODE_FIELDS.TSIndexedAccessType;\n validate(defs.objectType, node, \"objectType\", objectType, 1);\n validate(defs.indexType, node, \"indexType\", indexType, 1);\n return node;\n}\nexport { tsIndexedAccessType as tSIndexedAccessType };\nexport function tsMappedType(\n typeParameter: t.TSTypeParameter,\n typeAnnotation: t.TSType | null = null,\n nameType: t.TSType | null = null,\n): t.TSMappedType {\n const node: t.TSMappedType = {\n type: \"TSMappedType\",\n typeParameter,\n typeAnnotation,\n nameType,\n };\n const defs = NODE_FIELDS.TSMappedType;\n validate(defs.typeParameter, node, \"typeParameter\", typeParameter, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n validate(defs.nameType, node, \"nameType\", nameType, 1);\n return node;\n}\nexport { tsMappedType as tSMappedType };\nexport function tsTemplateLiteralType(\n quasis: Array<t.TemplateElement>,\n types: Array<t.TSType>,\n): t.TSTemplateLiteralType {\n const node: t.TSTemplateLiteralType = {\n type: \"TSTemplateLiteralType\",\n quasis,\n types,\n };\n const defs = NODE_FIELDS.TSTemplateLiteralType;\n validate(defs.quasis, node, \"quasis\", quasis, 1);\n validate(defs.types, node, \"types\", types, 1);\n return node;\n}\nexport { tsTemplateLiteralType as tSTemplateLiteralType };\nexport function tsLiteralType(\n literal:\n | t.NumericLiteral\n | t.StringLiteral\n | t.BooleanLiteral\n | t.BigIntLiteral\n | t.TemplateLiteral\n | t.UnaryExpression,\n): t.TSLiteralType {\n const node: t.TSLiteralType = {\n type: \"TSLiteralType\",\n literal,\n };\n const defs = NODE_FIELDS.TSLiteralType;\n validate(defs.literal, node, \"literal\", literal, 1);\n return node;\n}\nexport { tsLiteralType as tSLiteralType };\nexport function tsExpressionWithTypeArguments(\n expression: t.TSEntityName,\n typeParameters: t.TSTypeParameterInstantiation | null = null,\n): t.TSExpressionWithTypeArguments {\n const node: t.TSExpressionWithTypeArguments = {\n type: \"TSExpressionWithTypeArguments\",\n expression,\n typeParameters,\n };\n const defs = NODE_FIELDS.TSExpressionWithTypeArguments;\n validate(defs.expression, node, \"expression\", expression, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n return node;\n}\nexport { tsExpressionWithTypeArguments as tSExpressionWithTypeArguments };\nexport function tsInterfaceDeclaration(\n id: t.Identifier,\n typeParameters: t.TSTypeParameterDeclaration | null | undefined = null,\n _extends: Array<t.TSExpressionWithTypeArguments> | null | undefined = null,\n body: t.TSInterfaceBody,\n): t.TSInterfaceDeclaration {\n const node: t.TSInterfaceDeclaration = {\n type: \"TSInterfaceDeclaration\",\n id,\n typeParameters,\n extends: _extends,\n body,\n };\n const defs = NODE_FIELDS.TSInterfaceDeclaration;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.extends, node, \"extends\", _extends, 1);\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport { tsInterfaceDeclaration as tSInterfaceDeclaration };\nexport function tsInterfaceBody(\n body: Array<t.TSTypeElement>,\n): t.TSInterfaceBody {\n const node: t.TSInterfaceBody = {\n type: \"TSInterfaceBody\",\n body,\n };\n const defs = NODE_FIELDS.TSInterfaceBody;\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport { tsInterfaceBody as tSInterfaceBody };\nexport function tsTypeAliasDeclaration(\n id: t.Identifier,\n typeParameters: t.TSTypeParameterDeclaration | null | undefined = null,\n typeAnnotation: t.TSType,\n): t.TSTypeAliasDeclaration {\n const node: t.TSTypeAliasDeclaration = {\n type: \"TSTypeAliasDeclaration\",\n id,\n typeParameters,\n typeAnnotation,\n };\n const defs = NODE_FIELDS.TSTypeAliasDeclaration;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport { tsTypeAliasDeclaration as tSTypeAliasDeclaration };\nexport function tsInstantiationExpression(\n expression: t.Expression,\n typeParameters: t.TSTypeParameterInstantiation | null = null,\n): t.TSInstantiationExpression {\n const node: t.TSInstantiationExpression = {\n type: \"TSInstantiationExpression\",\n expression,\n typeParameters,\n };\n const defs = NODE_FIELDS.TSInstantiationExpression;\n validate(defs.expression, node, \"expression\", expression, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n return node;\n}\nexport { tsInstantiationExpression as tSInstantiationExpression };\nexport function tsAsExpression(\n expression: t.Expression,\n typeAnnotation: t.TSType,\n): t.TSAsExpression {\n const node: t.TSAsExpression = {\n type: \"TSAsExpression\",\n expression,\n typeAnnotation,\n };\n const defs = NODE_FIELDS.TSAsExpression;\n validate(defs.expression, node, \"expression\", expression, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport { tsAsExpression as tSAsExpression };\nexport function tsSatisfiesExpression(\n expression: t.Expression,\n typeAnnotation: t.TSType,\n): t.TSSatisfiesExpression {\n const node: t.TSSatisfiesExpression = {\n type: \"TSSatisfiesExpression\",\n expression,\n typeAnnotation,\n };\n const defs = NODE_FIELDS.TSSatisfiesExpression;\n validate(defs.expression, node, \"expression\", expression, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport { tsSatisfiesExpression as tSSatisfiesExpression };\nexport function tsTypeAssertion(\n typeAnnotation: t.TSType,\n expression: t.Expression,\n): t.TSTypeAssertion {\n const node: t.TSTypeAssertion = {\n type: \"TSTypeAssertion\",\n typeAnnotation,\n expression,\n };\n const defs = NODE_FIELDS.TSTypeAssertion;\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n validate(defs.expression, node, \"expression\", expression, 1);\n return node;\n}\nexport { tsTypeAssertion as tSTypeAssertion };\nexport function tsEnumBody(members: Array<t.TSEnumMember>): t.TSEnumBody {\n const node: t.TSEnumBody = {\n type: \"TSEnumBody\",\n members,\n };\n const defs = NODE_FIELDS.TSEnumBody;\n validate(defs.members, node, \"members\", members, 1);\n return node;\n}\nexport { tsEnumBody as tSEnumBody };\nexport function tsEnumDeclaration(\n id: t.Identifier,\n members: Array<t.TSEnumMember>,\n): t.TSEnumDeclaration {\n const node: t.TSEnumDeclaration = {\n type: \"TSEnumDeclaration\",\n id,\n members,\n };\n const defs = NODE_FIELDS.TSEnumDeclaration;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.members, node, \"members\", members, 1);\n return node;\n}\nexport { tsEnumDeclaration as tSEnumDeclaration };\nexport function tsEnumMember(\n id: t.Identifier | t.StringLiteral,\n initializer: t.Expression | null = null,\n): t.TSEnumMember {\n const node: t.TSEnumMember = {\n type: \"TSEnumMember\",\n id,\n initializer,\n };\n const defs = NODE_FIELDS.TSEnumMember;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.initializer, node, \"initializer\", initializer, 1);\n return node;\n}\nexport { tsEnumMember as tSEnumMember };\nexport function tsModuleDeclaration(\n id: t.Identifier | t.StringLiteral,\n body: t.TSModuleBlock | t.TSModuleDeclaration,\n): t.TSModuleDeclaration {\n const node: t.TSModuleDeclaration = {\n type: \"TSModuleDeclaration\",\n id,\n body,\n kind: null,\n };\n const defs = NODE_FIELDS.TSModuleDeclaration;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport { tsModuleDeclaration as tSModuleDeclaration };\nexport function tsModuleBlock(body: Array<t.Statement>): t.TSModuleBlock {\n const node: t.TSModuleBlock = {\n type: \"TSModuleBlock\",\n body,\n };\n const defs = NODE_FIELDS.TSModuleBlock;\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport { tsModuleBlock as tSModuleBlock };\nexport function tsImportType(\n argument: t.StringLiteral,\n qualifier: t.TSEntityName | null = null,\n typeParameters: t.TSTypeParameterInstantiation | null = null,\n): t.TSImportType {\n const node: t.TSImportType = {\n type: \"TSImportType\",\n argument,\n qualifier,\n typeParameters,\n };\n const defs = NODE_FIELDS.TSImportType;\n validate(defs.argument, node, \"argument\", argument, 1);\n validate(defs.qualifier, node, \"qualifier\", qualifier, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n return node;\n}\nexport { tsImportType as tSImportType };\nexport function tsImportEqualsDeclaration(\n id: t.Identifier,\n moduleReference: t.TSEntityName | t.TSExternalModuleReference,\n): t.TSImportEqualsDeclaration {\n const node: t.TSImportEqualsDeclaration = {\n type: \"TSImportEqualsDeclaration\",\n id,\n moduleReference,\n isExport: null,\n };\n const defs = NODE_FIELDS.TSImportEqualsDeclaration;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.moduleReference, node, \"moduleReference\", moduleReference, 1);\n return node;\n}\nexport { tsImportEqualsDeclaration as tSImportEqualsDeclaration };\nexport function tsExternalModuleReference(\n expression: t.StringLiteral,\n): t.TSExternalModuleReference {\n const node: t.TSExternalModuleReference = {\n type: \"TSExternalModuleReference\",\n expression,\n };\n const defs = NODE_FIELDS.TSExternalModuleReference;\n validate(defs.expression, node, \"expression\", expression, 1);\n return node;\n}\nexport { tsExternalModuleReference as tSExternalModuleReference };\nexport function tsNonNullExpression(\n expression: t.Expression,\n): t.TSNonNullExpression {\n const node: t.TSNonNullExpression = {\n type: \"TSNonNullExpression\",\n expression,\n };\n const defs = NODE_FIELDS.TSNonNullExpression;\n validate(defs.expression, node, \"expression\", expression, 1);\n return node;\n}\nexport { tsNonNullExpression as tSNonNullExpression };\nexport function tsExportAssignment(\n expression: t.Expression,\n): t.TSExportAssignment {\n const node: t.TSExportAssignment = {\n type: \"TSExportAssignment\",\n expression,\n };\n const defs = NODE_FIELDS.TSExportAssignment;\n validate(defs.expression, node, \"expression\", expression, 1);\n return node;\n}\nexport { tsExportAssignment as tSExportAssignment };\nexport function tsNamespaceExportDeclaration(\n id: t.Identifier,\n): t.TSNamespaceExportDeclaration {\n const node: t.TSNamespaceExportDeclaration = {\n type: \"TSNamespaceExportDeclaration\",\n id,\n };\n const defs = NODE_FIELDS.TSNamespaceExportDeclaration;\n validate(defs.id, node, \"id\", id, 1);\n return node;\n}\nexport { tsNamespaceExportDeclaration as tSNamespaceExportDeclaration };\nexport function tsTypeAnnotation(typeAnnotation: t.TSType): t.TSTypeAnnotation {\n const node: t.TSTypeAnnotation = {\n type: \"TSTypeAnnotation\",\n typeAnnotation,\n };\n const defs = NODE_FIELDS.TSTypeAnnotation;\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport { tsTypeAnnotation as tSTypeAnnotation };\nexport function tsTypeParameterInstantiation(\n params: Array<t.TSType>,\n): t.TSTypeParameterInstantiation {\n const node: t.TSTypeParameterInstantiation = {\n type: \"TSTypeParameterInstantiation\",\n params,\n };\n const defs = NODE_FIELDS.TSTypeParameterInstantiation;\n validate(defs.params, node, \"params\", params, 1);\n return node;\n}\nexport { tsTypeParameterInstantiation as tSTypeParameterInstantiation };\nexport function tsTypeParameterDeclaration(\n params: Array<t.TSTypeParameter>,\n): t.TSTypeParameterDeclaration {\n const node: t.TSTypeParameterDeclaration = {\n type: \"TSTypeParameterDeclaration\",\n params,\n };\n const defs = NODE_FIELDS.TSTypeParameterDeclaration;\n validate(defs.params, node, \"params\", params, 1);\n return node;\n}\nexport { tsTypeParameterDeclaration as tSTypeParameterDeclaration };\nexport function tsTypeParameter(\n constraint: t.TSType | null | undefined = null,\n _default: t.TSType | null | undefined = null,\n name: string,\n): t.TSTypeParameter {\n const node: t.TSTypeParameter = {\n type: \"TSTypeParameter\",\n constraint,\n default: _default,\n name,\n };\n const defs = NODE_FIELDS.TSTypeParameter;\n validate(defs.constraint, node, \"constraint\", constraint, 1);\n validate(defs.default, node, \"default\", _default, 1);\n validate(defs.name, node, \"name\", name);\n return node;\n}\nexport { tsTypeParameter as tSTypeParameter };\n/** @deprecated */\nfunction NumberLiteral(value: number) {\n deprecationWarning(\"NumberLiteral\", \"NumericLiteral\", \"The node type \");\n return numericLiteral(value);\n}\nexport { NumberLiteral as numberLiteral };\n/** @deprecated */\nfunction RegexLiteral(pattern: string, flags: string = \"\") {\n deprecationWarning(\"RegexLiteral\", \"RegExpLiteral\", \"The node type \");\n return regExpLiteral(pattern, flags);\n}\nexport { RegexLiteral as regexLiteral };\n/** @deprecated */\nfunction RestProperty(\n argument:\n | t.Identifier\n | t.ArrayPattern\n | t.ObjectPattern\n | t.MemberExpression\n | t.TSAsExpression\n | t.TSSatisfiesExpression\n | t.TSTypeAssertion\n | t.TSNonNullExpression\n | t.RestElement\n | t.AssignmentPattern,\n) {\n deprecationWarning(\"RestProperty\", \"RestElement\", \"The node type \");\n return restElement(argument);\n}\nexport { RestProperty as restProperty };\n/** @deprecated */\nfunction SpreadProperty(argument: t.Expression) {\n deprecationWarning(\"SpreadProperty\", \"SpreadElement\", \"The node type \");\n return spreadElement(argument);\n}\nexport { SpreadProperty as spreadProperty };\n"],"mappings":"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","ignoreList":[]}
\ No newline at end of file
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.JSXIdentifier = exports.JSXFragment = exports.JSXExpressionContainer = exports.JSXEmptyExpression = exports.JSXElement = exports.JSXClosingFragment = exports.JSXClosingElement = exports.JSXAttribute = exports.IntersectionTypeAnnotation = exports.InterpreterDirective = exports.InterfaceTypeAnnotation = exports.InterfaceExtends = exports.InterfaceDeclaration = exports.InferredPredicate = exports.IndexedAccessType = exports.ImportSpecifier = exports.ImportNamespaceSpecifier = exports.ImportExpression = exports.ImportDefaultSpecifier = exports.ImportDeclaration = exports.ImportAttribute = exports.Import = exports.IfStatement = exports.Identifier = exports.GenericTypeAnnotation = exports.FunctionTypeParam = exports.FunctionTypeAnnotation = exports.FunctionExpression = exports.FunctionDeclaration = exports.ForStatement = exports.ForOfStatement = exports.ForInStatement = exports.File = exports.ExpressionStatement = exports.ExportSpecifier = exports.ExportNamespaceSpecifier = exports.ExportNamedDeclaration = exports.ExportDefaultSpecifier = exports.ExportDefaultDeclaration = exports.ExportAllDeclaration = exports.ExistsTypeAnnotation = exports.EnumSymbolBody = exports.EnumStringMember = exports.EnumStringBody = exports.EnumNumberMember = exports.EnumNumberBody = exports.EnumDefaultedMember = exports.EnumDeclaration = exports.EnumBooleanMember = exports.EnumBooleanBody = exports.EmptyTypeAnnotation = exports.EmptyStatement = exports.DoWhileStatement = exports.DoExpression = exports.DirectiveLiteral = exports.Directive = exports.Decorator = exports.DeclaredPredicate = exports.DeclareVariable = exports.DeclareTypeAlias = exports.DeclareOpaqueType = exports.DeclareModuleExports = exports.DeclareModule = exports.DeclareInterface = exports.DeclareFunction = exports.DeclareExportDeclaration = exports.DeclareExportAllDeclaration = exports.DeclareClass = exports.DecimalLiteral = exports.DebuggerStatement = exports.ContinueStatement = exports.ConditionalExpression = exports.ClassProperty = exports.ClassPrivateProperty = exports.ClassPrivateMethod = exports.ClassMethod = exports.ClassImplements = exports.ClassExpression = exports.ClassDeclaration = exports.ClassBody = exports.ClassAccessorProperty = exports.CatchClause = exports.CallExpression = exports.BreakStatement = exports.BooleanTypeAnnotation = exports.BooleanLiteralTypeAnnotation = exports.BooleanLiteral = exports.BlockStatement = exports.BindExpression = exports.BinaryExpression = exports.BigIntLiteral = exports.AwaitExpression = exports.AssignmentPattern = exports.AssignmentExpression = exports.ArrowFunctionExpression = exports.ArrayTypeAnnotation = exports.ArrayPattern = exports.ArrayExpression = exports.ArgumentPlaceholder = exports.AnyTypeAnnotation = void 0;
exports.TSNumberKeyword = exports.TSNullKeyword = exports.TSNonNullExpression = exports.TSNeverKeyword = exports.TSNamespaceExportDeclaration = exports.TSNamedTupleMember = exports.TSModuleDeclaration = exports.TSModuleBlock = exports.TSMethodSignature = exports.TSMappedType = exports.TSLiteralType = exports.TSIntrinsicKeyword = exports.TSIntersectionType = exports.TSInterfaceDeclaration = exports.TSInterfaceBody = exports.TSInstantiationExpression = exports.TSInferType = exports.TSIndexedAccessType = exports.TSIndexSignature = exports.TSImportType = exports.TSImportEqualsDeclaration = exports.TSFunctionType = exports.TSExternalModuleReference = exports.TSExpressionWithTypeArguments = exports.TSExportAssignment = exports.TSEnumMember = exports.TSEnumDeclaration = exports.TSEnumBody = exports.TSDeclareMethod = exports.TSDeclareFunction = exports.TSConstructorType = exports.TSConstructSignatureDeclaration = exports.TSConditionalType = exports.TSCallSignatureDeclaration = exports.TSBooleanKeyword = exports.TSBigIntKeyword = exports.TSAsExpression = exports.TSArrayType = exports.TSAnyKeyword = exports.SymbolTypeAnnotation = exports.SwitchStatement = exports.SwitchCase = exports.Super = exports.StringTypeAnnotation = exports.StringLiteralTypeAnnotation = exports.StringLiteral = exports.StaticBlock = exports.SpreadProperty = exports.SpreadElement = exports.SequenceExpression = exports.ReturnStatement = exports.RestProperty = exports.RestElement = exports.RegexLiteral = exports.RegExpLiteral = exports.RecordExpression = exports.QualifiedTypeIdentifier = exports.Program = exports.PrivateName = exports.Placeholder = exports.PipelineTopicExpression = exports.PipelinePrimaryTopicReference = exports.PipelineBareFunction = exports.ParenthesizedExpression = exports.OptionalMemberExpression = exports.OptionalIndexedAccessType = exports.OptionalCallExpression = exports.OpaqueType = exports.ObjectTypeSpreadProperty = exports.ObjectTypeProperty = exports.ObjectTypeInternalSlot = exports.ObjectTypeIndexer = exports.ObjectTypeCallProperty = exports.ObjectTypeAnnotation = exports.ObjectProperty = exports.ObjectPattern = exports.ObjectMethod = exports.ObjectExpression = exports.NumericLiteral = exports.NumberTypeAnnotation = exports.NumberLiteralTypeAnnotation = exports.NumberLiteral = exports.NullableTypeAnnotation = exports.NullLiteralTypeAnnotation = exports.NullLiteral = exports.Noop = exports.NewExpression = exports.ModuleExpression = exports.MixedTypeAnnotation = exports.MetaProperty = exports.MemberExpression = exports.LogicalExpression = exports.LabeledStatement = exports.JSXText = exports.JSXSpreadChild = exports.JSXSpreadAttribute = exports.JSXOpeningFragment = exports.JSXOpeningElement = exports.JSXNamespacedName = exports.JSXMemberExpression = void 0;
exports.YieldExpression = exports.WithStatement = exports.WhileStatement = exports.VoidTypeAnnotation = exports.VoidPattern = exports.Variance = exports.VariableDeclarator = exports.VariableDeclaration = exports.V8IntrinsicIdentifier = exports.UpdateExpression = exports.UnionTypeAnnotation = exports.UnaryExpression = exports.TypeofTypeAnnotation = exports.TypeParameterInstantiation = exports.TypeParameterDeclaration = exports.TypeParameter = exports.TypeCastExpression = exports.TypeAnnotation = exports.TypeAlias = exports.TupleTypeAnnotation = exports.TupleExpression = exports.TryStatement = exports.TopicReference = exports.ThrowStatement = exports.ThisTypeAnnotation = exports.ThisExpression = exports.TemplateLiteral = exports.TemplateElement = exports.TaggedTemplateExpression = exports.TSVoidKeyword = exports.TSUnknownKeyword = exports.TSUnionType = exports.TSUndefinedKeyword = exports.TSTypeReference = exports.TSTypeQuery = exports.TSTypePredicate = exports.TSTypeParameterInstantiation = exports.TSTypeParameterDeclaration = exports.TSTypeParameter = exports.TSTypeOperator = exports.TSTypeLiteral = exports.TSTypeAssertion = exports.TSTypeAnnotation = exports.TSTypeAliasDeclaration = exports.TSTupleType = exports.TSThisType = exports.TSTemplateLiteralType = exports.TSSymbolKeyword = exports.TSStringKeyword = exports.TSSatisfiesExpression = exports.TSRestType = exports.TSQualifiedName = exports.TSPropertySignature = exports.TSParenthesizedType = exports.TSParameterProperty = exports.TSOptionalType = exports.TSObjectKeyword = void 0;
var b = require("./lowercase.js");
var _deprecationWarning = require("../../utils/deprecationWarning.js");
function alias(lowercase) {
{
return b[lowercase];
}
}
const ArrayExpression = exports.ArrayExpression = alias("arrayExpression"),
AssignmentExpression = exports.AssignmentExpression = alias("assignmentExpression"),
BinaryExpression = exports.BinaryExpression = alias("binaryExpression"),
InterpreterDirective = exports.InterpreterDirective = alias("interpreterDirective"),
Directive = exports.Directive = alias("directive"),
DirectiveLiteral = exports.DirectiveLiteral = alias("directiveLiteral"),
BlockStatement = exports.BlockStatement = alias("blockStatement"),
BreakStatement = exports.BreakStatement = alias("breakStatement"),
CallExpression = exports.CallExpression = alias("callExpression"),
CatchClause = exports.CatchClause = alias("catchClause"),
ConditionalExpression = exports.ConditionalExpression = alias("conditionalExpression"),
ContinueStatement = exports.ContinueStatement = alias("continueStatement"),
DebuggerStatement = exports.DebuggerStatement = alias("debuggerStatement"),
DoWhileStatement = exports.DoWhileStatement = alias("doWhileStatement"),
EmptyStatement = exports.EmptyStatement = alias("emptyStatement"),
ExpressionStatement = exports.ExpressionStatement = alias("expressionStatement"),
File = exports.File = alias("file"),
ForInStatement = exports.ForInStatement = alias("forInStatement"),
ForStatement = exports.ForStatement = alias("forStatement"),
FunctionDeclaration = exports.FunctionDeclaration = alias("functionDeclaration"),
FunctionExpression = exports.FunctionExpression = alias("functionExpression"),
Identifier = exports.Identifier = alias("identifier"),
IfStatement = exports.IfStatement = alias("ifStatement"),
LabeledStatement = exports.LabeledStatement = alias("labeledStatement"),
StringLiteral = exports.StringLiteral = alias("stringLiteral"),
NumericLiteral = exports.NumericLiteral = alias("numericLiteral"),
NullLiteral = exports.NullLiteral = alias("nullLiteral"),
BooleanLiteral = exports.BooleanLiteral = alias("booleanLiteral"),
RegExpLiteral = exports.RegExpLiteral = alias("regExpLiteral"),
LogicalExpression = exports.LogicalExpression = alias("logicalExpression"),
MemberExpression = exports.MemberExpression = alias("memberExpression"),
NewExpression = exports.NewExpression = alias("newExpression"),
Program = exports.Program = alias("program"),
ObjectExpression = exports.ObjectExpression = alias("objectExpression"),
ObjectMethod = exports.ObjectMethod = alias("objectMethod"),
ObjectProperty = exports.ObjectProperty = alias("objectProperty"),
RestElement = exports.RestElement = alias("restElement"),
ReturnStatement = exports.ReturnStatement = alias("returnStatement"),
SequenceExpression = exports.SequenceExpression = alias("sequenceExpression"),
ParenthesizedExpression = exports.ParenthesizedExpression = alias("parenthesizedExpression"),
SwitchCase = exports.SwitchCase = alias("switchCase"),
SwitchStatement = exports.SwitchStatement = alias("switchStatement"),
ThisExpression = exports.ThisExpression = alias("thisExpression"),
ThrowStatement = exports.ThrowStatement = alias("throwStatement"),
TryStatement = exports.TryStatement = alias("tryStatement"),
UnaryExpression = exports.UnaryExpression = alias("unaryExpression"),
UpdateExpression = exports.UpdateExpression = alias("updateExpression"),
VariableDeclaration = exports.VariableDeclaration = alias("variableDeclaration"),
VariableDeclarator = exports.VariableDeclarator = alias("variableDeclarator"),
WhileStatement = exports.WhileStatement = alias("whileStatement"),
WithStatement = exports.WithStatement = alias("withStatement"),
AssignmentPattern = exports.AssignmentPattern = alias("assignmentPattern"),
ArrayPattern = exports.ArrayPattern = alias("arrayPattern"),
ArrowFunctionExpression = exports.ArrowFunctionExpression = alias("arrowFunctionExpression"),
ClassBody = exports.ClassBody = alias("classBody"),
ClassExpression = exports.ClassExpression = alias("classExpression"),
ClassDeclaration = exports.ClassDeclaration = alias("classDeclaration"),
ExportAllDeclaration = exports.ExportAllDeclaration = alias("exportAllDeclaration"),
ExportDefaultDeclaration = exports.ExportDefaultDeclaration = alias("exportDefaultDeclaration"),
ExportNamedDeclaration = exports.ExportNamedDeclaration = alias("exportNamedDeclaration"),
ExportSpecifier = exports.ExportSpecifier = alias("exportSpecifier"),
ForOfStatement = exports.ForOfStatement = alias("forOfStatement"),
ImportDeclaration = exports.ImportDeclaration = alias("importDeclaration"),
ImportDefaultSpecifier = exports.ImportDefaultSpecifier = alias("importDefaultSpecifier"),
ImportNamespaceSpecifier = exports.ImportNamespaceSpecifier = alias("importNamespaceSpecifier"),
ImportSpecifier = exports.ImportSpecifier = alias("importSpecifier"),
ImportExpression = exports.ImportExpression = alias("importExpression"),
MetaProperty = exports.MetaProperty = alias("metaProperty"),
ClassMethod = exports.ClassMethod = alias("classMethod"),
ObjectPattern = exports.ObjectPattern = alias("objectPattern"),
SpreadElement = exports.SpreadElement = alias("spreadElement"),
Super = exports.Super = alias("super"),
TaggedTemplateExpression = exports.TaggedTemplateExpression = alias("taggedTemplateExpression"),
TemplateElement = exports.TemplateElement = alias("templateElement"),
TemplateLiteral = exports.TemplateLiteral = alias("templateLiteral"),
YieldExpression = exports.YieldExpression = alias("yieldExpression"),
AwaitExpression = exports.AwaitExpression = alias("awaitExpression"),
Import = exports.Import = alias("import"),
BigIntLiteral = exports.BigIntLiteral = alias("bigIntLiteral"),
ExportNamespaceSpecifier = exports.ExportNamespaceSpecifier = alias("exportNamespaceSpecifier"),
OptionalMemberExpression = exports.OptionalMemberExpression = alias("optionalMemberExpression"),
OptionalCallExpression = exports.OptionalCallExpression = alias("optionalCallExpression"),
ClassProperty = exports.ClassProperty = alias("classProperty"),
ClassAccessorProperty = exports.ClassAccessorProperty = alias("classAccessorProperty"),
ClassPrivateProperty = exports.ClassPrivateProperty = alias("classPrivateProperty"),
ClassPrivateMethod = exports.ClassPrivateMethod = alias("classPrivateMethod"),
PrivateName = exports.PrivateName = alias("privateName"),
StaticBlock = exports.StaticBlock = alias("staticBlock"),
ImportAttribute = exports.ImportAttribute = alias("importAttribute"),
AnyTypeAnnotation = exports.AnyTypeAnnotation = alias("anyTypeAnnotation"),
ArrayTypeAnnotation = exports.ArrayTypeAnnotation = alias("arrayTypeAnnotation"),
BooleanTypeAnnotation = exports.BooleanTypeAnnotation = alias("booleanTypeAnnotation"),
BooleanLiteralTypeAnnotation = exports.BooleanLiteralTypeAnnotation = alias("booleanLiteralTypeAnnotation"),
NullLiteralTypeAnnotation = exports.NullLiteralTypeAnnotation = alias("nullLiteralTypeAnnotation"),
ClassImplements = exports.ClassImplements = alias("classImplements"),
DeclareClass = exports.DeclareClass = alias("declareClass"),
DeclareFunction = exports.DeclareFunction = alias("declareFunction"),
DeclareInterface = exports.DeclareInterface = alias("declareInterface"),
DeclareModule = exports.DeclareModule = alias("declareModule"),
DeclareModuleExports = exports.DeclareModuleExports = alias("declareModuleExports"),
DeclareTypeAlias = exports.DeclareTypeAlias = alias("declareTypeAlias"),
DeclareOpaqueType = exports.DeclareOpaqueType = alias("declareOpaqueType"),
DeclareVariable = exports.DeclareVariable = alias("declareVariable"),
DeclareExportDeclaration = exports.DeclareExportDeclaration = alias("declareExportDeclaration"),
DeclareExportAllDeclaration = exports.DeclareExportAllDeclaration = alias("declareExportAllDeclaration"),
DeclaredPredicate = exports.DeclaredPredicate = alias("declaredPredicate"),
ExistsTypeAnnotation = exports.ExistsTypeAnnotation = alias("existsTypeAnnotation"),
FunctionTypeAnnotation = exports.FunctionTypeAnnotation = alias("functionTypeAnnotation"),
FunctionTypeParam = exports.FunctionTypeParam = alias("functionTypeParam"),
GenericTypeAnnotation = exports.GenericTypeAnnotation = alias("genericTypeAnnotation"),
InferredPredicate = exports.InferredPredicate = alias("inferredPredicate"),
InterfaceExtends = exports.InterfaceExtends = alias("interfaceExtends"),
InterfaceDeclaration = exports.InterfaceDeclaration = alias("interfaceDeclaration"),
InterfaceTypeAnnotation = exports.InterfaceTypeAnnotation = alias("interfaceTypeAnnotation"),
IntersectionTypeAnnotation = exports.IntersectionTypeAnnotation = alias("intersectionTypeAnnotation"),
MixedTypeAnnotation = exports.MixedTypeAnnotation = alias("mixedTypeAnnotation"),
EmptyTypeAnnotation = exports.EmptyTypeAnnotation = alias("emptyTypeAnnotation"),
NullableTypeAnnotation = exports.NullableTypeAnnotation = alias("nullableTypeAnnotation"),
NumberLiteralTypeAnnotation = exports.NumberLiteralTypeAnnotation = alias("numberLiteralTypeAnnotation"),
NumberTypeAnnotation = exports.NumberTypeAnnotation = alias("numberTypeAnnotation"),
ObjectTypeAnnotation = exports.ObjectTypeAnnotation = alias("objectTypeAnnotation"),
ObjectTypeInternalSlot = exports.ObjectTypeInternalSlot = alias("objectTypeInternalSlot"),
ObjectTypeCallProperty = exports.ObjectTypeCallProperty = alias("objectTypeCallProperty"),
ObjectTypeIndexer = exports.ObjectTypeIndexer = alias("objectTypeIndexer"),
ObjectTypeProperty = exports.ObjectTypeProperty = alias("objectTypeProperty"),
ObjectTypeSpreadProperty = exports.ObjectTypeSpreadProperty = alias("objectTypeSpreadProperty"),
OpaqueType = exports.OpaqueType = alias("opaqueType"),
QualifiedTypeIdentifier = exports.QualifiedTypeIdentifier = alias("qualifiedTypeIdentifier"),
StringLiteralTypeAnnotation = exports.StringLiteralTypeAnnotation = alias("stringLiteralTypeAnnotation"),
StringTypeAnnotation = exports.StringTypeAnnotation = alias("stringTypeAnnotation"),
SymbolTypeAnnotation = exports.SymbolTypeAnnotation = alias("symbolTypeAnnotation"),
ThisTypeAnnotation = exports.ThisTypeAnnotation = alias("thisTypeAnnotation"),
TupleTypeAnnotation = exports.TupleTypeAnnotation = alias("tupleTypeAnnotation"),
TypeofTypeAnnotation = exports.TypeofTypeAnnotation = alias("typeofTypeAnnotation"),
TypeAlias = exports.TypeAlias = alias("typeAlias"),
TypeAnnotation = exports.TypeAnnotation = alias("typeAnnotation"),
TypeCastExpression = exports.TypeCastExpression = alias("typeCastExpression"),
TypeParameter = exports.TypeParameter = alias("typeParameter"),
TypeParameterDeclaration = exports.TypeParameterDeclaration = alias("typeParameterDeclaration"),
TypeParameterInstantiation = exports.TypeParameterInstantiation = alias("typeParameterInstantiation"),
UnionTypeAnnotation = exports.UnionTypeAnnotation = alias("unionTypeAnnotation"),
Variance = exports.Variance = alias("variance"),
VoidTypeAnnotation = exports.VoidTypeAnnotation = alias("voidTypeAnnotation"),
EnumDeclaration = exports.EnumDeclaration = alias("enumDeclaration"),
EnumBooleanBody = exports.EnumBooleanBody = alias("enumBooleanBody"),
EnumNumberBody = exports.EnumNumberBody = alias("enumNumberBody"),
EnumStringBody = exports.EnumStringBody = alias("enumStringBody"),
EnumSymbolBody = exports.EnumSymbolBody = alias("enumSymbolBody"),
EnumBooleanMember = exports.EnumBooleanMember = alias("enumBooleanMember"),
EnumNumberMember = exports.EnumNumberMember = alias("enumNumberMember"),
EnumStringMember = exports.EnumStringMember = alias("enumStringMember"),
EnumDefaultedMember = exports.EnumDefaultedMember = alias("enumDefaultedMember"),
IndexedAccessType = exports.IndexedAccessType = alias("indexedAccessType"),
OptionalIndexedAccessType = exports.OptionalIndexedAccessType = alias("optionalIndexedAccessType"),
JSXAttribute = exports.JSXAttribute = alias("jsxAttribute"),
JSXClosingElement = exports.JSXClosingElement = alias("jsxClosingElement"),
JSXElement = exports.JSXElement = alias("jsxElement"),
JSXEmptyExpression = exports.JSXEmptyExpression = alias("jsxEmptyExpression"),
JSXExpressionContainer = exports.JSXExpressionContainer = alias("jsxExpressionContainer"),
JSXSpreadChild = exports.JSXSpreadChild = alias("jsxSpreadChild"),
JSXIdentifier = exports.JSXIdentifier = alias("jsxIdentifier"),
JSXMemberExpression = exports.JSXMemberExpression = alias("jsxMemberExpression"),
JSXNamespacedName = exports.JSXNamespacedName = alias("jsxNamespacedName"),
JSXOpeningElement = exports.JSXOpeningElement = alias("jsxOpeningElement"),
JSXSpreadAttribute = exports.JSXSpreadAttribute = alias("jsxSpreadAttribute"),
JSXText = exports.JSXText = alias("jsxText"),
JSXFragment = exports.JSXFragment = alias("jsxFragment"),
JSXOpeningFragment = exports.JSXOpeningFragment = alias("jsxOpeningFragment"),
JSXClosingFragment = exports.JSXClosingFragment = alias("jsxClosingFragment"),
Noop = exports.Noop = alias("noop"),
Placeholder = exports.Placeholder = alias("placeholder"),
V8IntrinsicIdentifier = exports.V8IntrinsicIdentifier = alias("v8IntrinsicIdentifier"),
ArgumentPlaceholder = exports.ArgumentPlaceholder = alias("argumentPlaceholder"),
BindExpression = exports.BindExpression = alias("bindExpression"),
Decorator = exports.Decorator = alias("decorator"),
DoExpression = exports.DoExpression = alias("doExpression"),
ExportDefaultSpecifier = exports.ExportDefaultSpecifier = alias("exportDefaultSpecifier"),
RecordExpression = exports.RecordExpression = alias("recordExpression"),
TupleExpression = exports.TupleExpression = alias("tupleExpression"),
DecimalLiteral = exports.DecimalLiteral = alias("decimalLiteral"),
ModuleExpression = exports.ModuleExpression = alias("moduleExpression"),
TopicReference = exports.TopicReference = alias("topicReference"),
PipelineTopicExpression = exports.PipelineTopicExpression = alias("pipelineTopicExpression"),
PipelineBareFunction = exports.PipelineBareFunction = alias("pipelineBareFunction"),
PipelinePrimaryTopicReference = exports.PipelinePrimaryTopicReference = alias("pipelinePrimaryTopicReference"),
VoidPattern = exports.VoidPattern = alias("voidPattern"),
TSParameterProperty = exports.TSParameterProperty = alias("tsParameterProperty"),
TSDeclareFunction = exports.TSDeclareFunction = alias("tsDeclareFunction"),
TSDeclareMethod = exports.TSDeclareMethod = alias("tsDeclareMethod"),
TSQualifiedName = exports.TSQualifiedName = alias("tsQualifiedName"),
TSCallSignatureDeclaration = exports.TSCallSignatureDeclaration = alias("tsCallSignatureDeclaration"),
TSConstructSignatureDeclaration = exports.TSConstructSignatureDeclaration = alias("tsConstructSignatureDeclaration"),
TSPropertySignature = exports.TSPropertySignature = alias("tsPropertySignature"),
TSMethodSignature = exports.TSMethodSignature = alias("tsMethodSignature"),
TSIndexSignature = exports.TSIndexSignature = alias("tsIndexSignature"),
TSAnyKeyword = exports.TSAnyKeyword = alias("tsAnyKeyword"),
TSBooleanKeyword = exports.TSBooleanKeyword = alias("tsBooleanKeyword"),
TSBigIntKeyword = exports.TSBigIntKeyword = alias("tsBigIntKeyword"),
TSIntrinsicKeyword = exports.TSIntrinsicKeyword = alias("tsIntrinsicKeyword"),
TSNeverKeyword = exports.TSNeverKeyword = alias("tsNeverKeyword"),
TSNullKeyword = exports.TSNullKeyword = alias("tsNullKeyword"),
TSNumberKeyword = exports.TSNumberKeyword = alias("tsNumberKeyword"),
TSObjectKeyword = exports.TSObjectKeyword = alias("tsObjectKeyword"),
TSStringKeyword = exports.TSStringKeyword = alias("tsStringKeyword"),
TSSymbolKeyword = exports.TSSymbolKeyword = alias("tsSymbolKeyword"),
TSUndefinedKeyword = exports.TSUndefinedKeyword = alias("tsUndefinedKeyword"),
TSUnknownKeyword = exports.TSUnknownKeyword = alias("tsUnknownKeyword"),
TSVoidKeyword = exports.TSVoidKeyword = alias("tsVoidKeyword"),
TSThisType = exports.TSThisType = alias("tsThisType"),
TSFunctionType = exports.TSFunctionType = alias("tsFunctionType"),
TSConstructorType = exports.TSConstructorType = alias("tsConstructorType"),
TSTypeReference = exports.TSTypeReference = alias("tsTypeReference"),
TSTypePredicate = exports.TSTypePredicate = alias("tsTypePredicate"),
TSTypeQuery = exports.TSTypeQuery = alias("tsTypeQuery"),
TSTypeLiteral = exports.TSTypeLiteral = alias("tsTypeLiteral"),
TSArrayType = exports.TSArrayType = alias("tsArrayType"),
TSTupleType = exports.TSTupleType = alias("tsTupleType"),
TSOptionalType = exports.TSOptionalType = alias("tsOptionalType"),
TSRestType = exports.TSRestType = alias("tsRestType"),
TSNamedTupleMember = exports.TSNamedTupleMember = alias("tsNamedTupleMember"),
TSUnionType = exports.TSUnionType = alias("tsUnionType"),
TSIntersectionType = exports.TSIntersectionType = alias("tsIntersectionType"),
TSConditionalType = exports.TSConditionalType = alias("tsConditionalType"),
TSInferType = exports.TSInferType = alias("tsInferType"),
TSParenthesizedType = exports.TSParenthesizedType = alias("tsParenthesizedType"),
TSTypeOperator = exports.TSTypeOperator = alias("tsTypeOperator"),
TSIndexedAccessType = exports.TSIndexedAccessType = alias("tsIndexedAccessType"),
TSMappedType = exports.TSMappedType = alias("tsMappedType"),
TSTemplateLiteralType = exports.TSTemplateLiteralType = alias("tsTemplateLiteralType"),
TSLiteralType = exports.TSLiteralType = alias("tsLiteralType"),
TSExpressionWithTypeArguments = exports.TSExpressionWithTypeArguments = alias("tsExpressionWithTypeArguments"),
TSInterfaceDeclaration = exports.TSInterfaceDeclaration = alias("tsInterfaceDeclaration"),
TSInterfaceBody = exports.TSInterfaceBody = alias("tsInterfaceBody"),
TSTypeAliasDeclaration = exports.TSTypeAliasDeclaration = alias("tsTypeAliasDeclaration"),
TSInstantiationExpression = exports.TSInstantiationExpression = alias("tsInstantiationExpression"),
TSAsExpression = exports.TSAsExpression = alias("tsAsExpression"),
TSSatisfiesExpression = exports.TSSatisfiesExpression = alias("tsSatisfiesExpression"),
TSTypeAssertion = exports.TSTypeAssertion = alias("tsTypeAssertion"),
TSEnumBody = exports.TSEnumBody = alias("tsEnumBody"),
TSEnumDeclaration = exports.TSEnumDeclaration = alias("tsEnumDeclaration"),
TSEnumMember = exports.TSEnumMember = alias("tsEnumMember"),
TSModuleDeclaration = exports.TSModuleDeclaration = alias("tsModuleDeclaration"),
TSModuleBlock = exports.TSModuleBlock = alias("tsModuleBlock"),
TSImportType = exports.TSImportType = alias("tsImportType"),
TSImportEqualsDeclaration = exports.TSImportEqualsDeclaration = alias("tsImportEqualsDeclaration"),
TSExternalModuleReference = exports.TSExternalModuleReference = alias("tsExternalModuleReference"),
TSNonNullExpression = exports.TSNonNullExpression = alias("tsNonNullExpression"),
TSExportAssignment = exports.TSExportAssignment = alias("tsExportAssignment"),
TSNamespaceExportDeclaration = exports.TSNamespaceExportDeclaration = alias("tsNamespaceExportDeclaration"),
TSTypeAnnotation = exports.TSTypeAnnotation = alias("tsTypeAnnotation"),
TSTypeParameterInstantiation = exports.TSTypeParameterInstantiation = alias("tsTypeParameterInstantiation"),
TSTypeParameterDeclaration = exports.TSTypeParameterDeclaration = alias("tsTypeParameterDeclaration"),
TSTypeParameter = exports.TSTypeParameter = alias("tsTypeParameter");
const NumberLiteral = exports.NumberLiteral = b.numberLiteral,
RegexLiteral = exports.RegexLiteral = b.regexLiteral,
RestProperty = exports.RestProperty = b.restProperty,
SpreadProperty = exports.SpreadProperty = b.spreadProperty;
//# sourceMappingURL=uppercase.js.map
{"version":3,"names":["b","require","_deprecationWarning","alias","lowercase","ArrayExpression","exports","AssignmentExpression","BinaryExpression","InterpreterDirective","Directive","DirectiveLiteral","BlockStatement","BreakStatement","CallExpression","CatchClause","ConditionalExpression","ContinueStatement","DebuggerStatement","DoWhileStatement","EmptyStatement","ExpressionStatement","File","ForInStatement","ForStatement","FunctionDeclaration","FunctionExpression","Identifier","IfStatement","LabeledStatement","StringLiteral","NumericLiteral","NullLiteral","BooleanLiteral","RegExpLiteral","LogicalExpression","MemberExpression","NewExpression","Program","ObjectExpression","ObjectMethod","ObjectProperty","RestElement","ReturnStatement","SequenceExpression","ParenthesizedExpression","SwitchCase","SwitchStatement","ThisExpression","ThrowStatement","TryStatement","UnaryExpression","UpdateExpression","VariableDeclaration","VariableDeclarator","WhileStatement","WithStatement","AssignmentPattern","ArrayPattern","ArrowFunctionExpression","ClassBody","ClassExpression","ClassDeclaration","ExportAllDeclaration","ExportDefaultDeclaration","ExportNamedDeclaration","ExportSpecifier","ForOfStatement","ImportDeclaration","ImportDefaultSpecifier","ImportNamespaceSpecifier","ImportSpecifier","ImportExpression","MetaProperty","ClassMethod","ObjectPattern","SpreadElement","Super","TaggedTemplateExpression","TemplateElement","TemplateLiteral","YieldExpression","AwaitExpression","Import","BigIntLiteral","ExportNamespaceSpecifier","OptionalMemberExpression","OptionalCallExpression","ClassProperty","ClassAccessorProperty","ClassPrivateProperty","ClassPrivateMethod","PrivateName","StaticBlock","ImportAttribute","AnyTypeAnnotation","ArrayTypeAnnotation","BooleanTypeAnnotation","BooleanLiteralTypeAnnotation","NullLiteralTypeAnnotation","ClassImplements","DeclareClass","DeclareFunction","DeclareInterface","DeclareModule","DeclareModuleExports","DeclareTypeAlias","DeclareOpaqueType","DeclareVariable","DeclareExportDeclaration","DeclareExportAllDeclaration","DeclaredPredicate","ExistsTypeAnnotation","FunctionTypeAnnotation","FunctionTypeParam","GenericTypeAnnotation","InferredPredicate","InterfaceExtends","InterfaceDeclaration","InterfaceTypeAnnotation","IntersectionTypeAnnotation","MixedTypeAnnotation","EmptyTypeAnnotation","NullableTypeAnnotation","NumberLiteralTypeAnnotation","NumberTypeAnnotation","ObjectTypeAnnotation","ObjectTypeInternalSlot","ObjectTypeCallProperty","ObjectTypeIndexer","ObjectTypeProperty","ObjectTypeSpreadProperty","OpaqueType","QualifiedTypeIdentifier","StringLiteralTypeAnnotation","StringTypeAnnotation","SymbolTypeAnnotation","ThisTypeAnnotation","TupleTypeAnnotation","TypeofTypeAnnotation","TypeAlias","TypeAnnotation","TypeCastExpression","TypeParameter","TypeParameterDeclaration","TypeParameterInstantiation","UnionTypeAnnotation","Variance","VoidTypeAnnotation","EnumDeclaration","EnumBooleanBody","EnumNumberBody","EnumStringBody","EnumSymbolBody","EnumBooleanMember","EnumNumberMember","EnumStringMember","EnumDefaultedMember","IndexedAccessType","OptionalIndexedAccessType","JSXAttribute","JSXClosingElement","JSXElement","JSXEmptyExpression","JSXExpressionContainer","JSXSpreadChild","JSXIdentifier","JSXMemberExpression","JSXNamespacedName","JSXOpeningElement","JSXSpreadAttribute","JSXText","JSXFragment","JSXOpeningFragment","JSXClosingFragment","Noop","Placeholder","V8IntrinsicIdentifier","ArgumentPlaceholder","BindExpression","Decorator","DoExpression","ExportDefaultSpecifier","RecordExpression","TupleExpression","DecimalLiteral","ModuleExpression","TopicReference","PipelineTopicExpression","PipelineBareFunction","PipelinePrimaryTopicReference","VoidPattern","TSParameterProperty","TSDeclareFunction","TSDeclareMethod","TSQualifiedName","TSCallSignatureDeclaration","TSConstructSignatureDeclaration","TSPropertySignature","TSMethodSignature","TSIndexSignature","TSAnyKeyword","TSBooleanKeyword","TSBigIntKeyword","TSIntrinsicKeyword","TSNeverKeyword","TSNullKeyword","TSNumberKeyword","TSObjectKeyword","TSStringKeyword","TSSymbolKeyword","TSUndefinedKeyword","TSUnknownKeyword","TSVoidKeyword","TSThisType","TSFunctionType","TSConstructorType","TSTypeReference","TSTypePredicate","TSTypeQuery","TSTypeLiteral","TSArrayType","TSTupleType","TSOptionalType","TSRestType","TSNamedTupleMember","TSUnionType","TSIntersectionType","TSConditionalType","TSInferType","TSParenthesizedType","TSTypeOperator","TSIndexedAccessType","TSMappedType","TSTemplateLiteralType","TSLiteralType","TSExpressionWithTypeArguments","TSInterfaceDeclaration","TSInterfaceBody","TSTypeAliasDeclaration","TSInstantiationExpression","TSAsExpression","TSSatisfiesExpression","TSTypeAssertion","TSEnumBody","TSEnumDeclaration","TSEnumMember","TSModuleDeclaration","TSModuleBlock","TSImportType","TSImportEqualsDeclaration","TSExternalModuleReference","TSNonNullExpression","TSExportAssignment","TSNamespaceExportDeclaration","TSTypeAnnotation","TSTypeParameterInstantiation","TSTypeParameterDeclaration","TSTypeParameter","NumberLiteral","numberLiteral","RegexLiteral","regexLiteral","RestProperty","restProperty","SpreadProperty","spreadProperty"],"sources":["../../../src/builders/generated/uppercase.ts"],"sourcesContent":["/*\n * This file is auto-generated! Do not modify it directly.\n * To re-generate run 'make build'\n */\n\nimport * as b from \"./lowercase.ts\";\nimport deprecationWarning from \"../../utils/deprecationWarning.ts\";\n\nfunction alias<const N extends keyof typeof b>(lowercase: N): (typeof b)[N] {\n if (process.env.BABEL_8_BREAKING) {\n return function () {\n deprecationWarning(\n lowercase.replace(/^(?:ts|jsx|[a-z])/, x => x.toUpperCase()),\n lowercase,\n \"Usage of builders starting with an uppercase letter such as \",\n \"uppercase builders\",\n );\n return (b[lowercase] as any)(...arguments);\n } as any;\n } else {\n return b[lowercase];\n }\n}\n\nexport const ArrayExpression = alias(\"arrayExpression\"),\n AssignmentExpression = alias(\"assignmentExpression\"),\n BinaryExpression = alias(\"binaryExpression\"),\n InterpreterDirective = alias(\"interpreterDirective\"),\n Directive = alias(\"directive\"),\n DirectiveLiteral = alias(\"directiveLiteral\"),\n BlockStatement = alias(\"blockStatement\"),\n BreakStatement = alias(\"breakStatement\"),\n CallExpression = alias(\"callExpression\"),\n CatchClause = alias(\"catchClause\"),\n ConditionalExpression = alias(\"conditionalExpression\"),\n ContinueStatement = alias(\"continueStatement\"),\n DebuggerStatement = alias(\"debuggerStatement\"),\n DoWhileStatement = alias(\"doWhileStatement\"),\n EmptyStatement = alias(\"emptyStatement\"),\n ExpressionStatement = alias(\"expressionStatement\"),\n File = alias(\"file\"),\n ForInStatement = alias(\"forInStatement\"),\n ForStatement = alias(\"forStatement\"),\n FunctionDeclaration = alias(\"functionDeclaration\"),\n FunctionExpression = alias(\"functionExpression\"),\n Identifier = alias(\"identifier\"),\n IfStatement = alias(\"ifStatement\"),\n LabeledStatement = alias(\"labeledStatement\"),\n StringLiteral = alias(\"stringLiteral\"),\n NumericLiteral = alias(\"numericLiteral\"),\n NullLiteral = alias(\"nullLiteral\"),\n BooleanLiteral = alias(\"booleanLiteral\"),\n RegExpLiteral = alias(\"regExpLiteral\"),\n LogicalExpression = alias(\"logicalExpression\"),\n MemberExpression = alias(\"memberExpression\"),\n NewExpression = alias(\"newExpression\"),\n Program = alias(\"program\"),\n ObjectExpression = alias(\"objectExpression\"),\n ObjectMethod = alias(\"objectMethod\"),\n ObjectProperty = alias(\"objectProperty\"),\n RestElement = alias(\"restElement\"),\n ReturnStatement = alias(\"returnStatement\"),\n SequenceExpression = alias(\"sequenceExpression\"),\n ParenthesizedExpression = alias(\"parenthesizedExpression\"),\n SwitchCase = alias(\"switchCase\"),\n SwitchStatement = alias(\"switchStatement\"),\n ThisExpression = alias(\"thisExpression\"),\n ThrowStatement = alias(\"throwStatement\"),\n TryStatement = alias(\"tryStatement\"),\n UnaryExpression = alias(\"unaryExpression\"),\n UpdateExpression = alias(\"updateExpression\"),\n VariableDeclaration = alias(\"variableDeclaration\"),\n VariableDeclarator = alias(\"variableDeclarator\"),\n WhileStatement = alias(\"whileStatement\"),\n WithStatement = alias(\"withStatement\"),\n AssignmentPattern = alias(\"assignmentPattern\"),\n ArrayPattern = alias(\"arrayPattern\"),\n ArrowFunctionExpression = alias(\"arrowFunctionExpression\"),\n ClassBody = alias(\"classBody\"),\n ClassExpression = alias(\"classExpression\"),\n ClassDeclaration = alias(\"classDeclaration\"),\n ExportAllDeclaration = alias(\"exportAllDeclaration\"),\n ExportDefaultDeclaration = alias(\"exportDefaultDeclaration\"),\n ExportNamedDeclaration = alias(\"exportNamedDeclaration\"),\n ExportSpecifier = alias(\"exportSpecifier\"),\n ForOfStatement = alias(\"forOfStatement\"),\n ImportDeclaration = alias(\"importDeclaration\"),\n ImportDefaultSpecifier = alias(\"importDefaultSpecifier\"),\n ImportNamespaceSpecifier = alias(\"importNamespaceSpecifier\"),\n ImportSpecifier = alias(\"importSpecifier\"),\n ImportExpression = alias(\"importExpression\"),\n MetaProperty = alias(\"metaProperty\"),\n ClassMethod = alias(\"classMethod\"),\n ObjectPattern = alias(\"objectPattern\"),\n SpreadElement = alias(\"spreadElement\"),\n Super = alias(\"super\"),\n TaggedTemplateExpression = alias(\"taggedTemplateExpression\"),\n TemplateElement = alias(\"templateElement\"),\n TemplateLiteral = alias(\"templateLiteral\"),\n YieldExpression = alias(\"yieldExpression\"),\n AwaitExpression = alias(\"awaitExpression\"),\n Import = alias(\"import\"),\n BigIntLiteral = alias(\"bigIntLiteral\"),\n ExportNamespaceSpecifier = alias(\"exportNamespaceSpecifier\"),\n OptionalMemberExpression = alias(\"optionalMemberExpression\"),\n OptionalCallExpression = alias(\"optionalCallExpression\"),\n ClassProperty = alias(\"classProperty\"),\n ClassAccessorProperty = alias(\"classAccessorProperty\"),\n ClassPrivateProperty = alias(\"classPrivateProperty\"),\n ClassPrivateMethod = alias(\"classPrivateMethod\"),\n PrivateName = alias(\"privateName\"),\n StaticBlock = alias(\"staticBlock\"),\n ImportAttribute = alias(\"importAttribute\"),\n AnyTypeAnnotation = alias(\"anyTypeAnnotation\"),\n ArrayTypeAnnotation = alias(\"arrayTypeAnnotation\"),\n BooleanTypeAnnotation = alias(\"booleanTypeAnnotation\"),\n BooleanLiteralTypeAnnotation = alias(\"booleanLiteralTypeAnnotation\"),\n NullLiteralTypeAnnotation = alias(\"nullLiteralTypeAnnotation\"),\n ClassImplements = alias(\"classImplements\"),\n DeclareClass = alias(\"declareClass\"),\n DeclareFunction = alias(\"declareFunction\"),\n DeclareInterface = alias(\"declareInterface\"),\n DeclareModule = alias(\"declareModule\"),\n DeclareModuleExports = alias(\"declareModuleExports\"),\n DeclareTypeAlias = alias(\"declareTypeAlias\"),\n DeclareOpaqueType = alias(\"declareOpaqueType\"),\n DeclareVariable = alias(\"declareVariable\"),\n DeclareExportDeclaration = alias(\"declareExportDeclaration\"),\n DeclareExportAllDeclaration = alias(\"declareExportAllDeclaration\"),\n DeclaredPredicate = alias(\"declaredPredicate\"),\n ExistsTypeAnnotation = alias(\"existsTypeAnnotation\"),\n FunctionTypeAnnotation = alias(\"functionTypeAnnotation\"),\n FunctionTypeParam = alias(\"functionTypeParam\"),\n GenericTypeAnnotation = alias(\"genericTypeAnnotation\"),\n InferredPredicate = alias(\"inferredPredicate\"),\n InterfaceExtends = alias(\"interfaceExtends\"),\n InterfaceDeclaration = alias(\"interfaceDeclaration\"),\n InterfaceTypeAnnotation = alias(\"interfaceTypeAnnotation\"),\n IntersectionTypeAnnotation = alias(\"intersectionTypeAnnotation\"),\n MixedTypeAnnotation = alias(\"mixedTypeAnnotation\"),\n EmptyTypeAnnotation = alias(\"emptyTypeAnnotation\"),\n NullableTypeAnnotation = alias(\"nullableTypeAnnotation\"),\n NumberLiteralTypeAnnotation = alias(\"numberLiteralTypeAnnotation\"),\n NumberTypeAnnotation = alias(\"numberTypeAnnotation\"),\n ObjectTypeAnnotation = alias(\"objectTypeAnnotation\"),\n ObjectTypeInternalSlot = alias(\"objectTypeInternalSlot\"),\n ObjectTypeCallProperty = alias(\"objectTypeCallProperty\"),\n ObjectTypeIndexer = alias(\"objectTypeIndexer\"),\n ObjectTypeProperty = alias(\"objectTypeProperty\"),\n ObjectTypeSpreadProperty = alias(\"objectTypeSpreadProperty\"),\n OpaqueType = alias(\"opaqueType\"),\n QualifiedTypeIdentifier = alias(\"qualifiedTypeIdentifier\"),\n StringLiteralTypeAnnotation = alias(\"stringLiteralTypeAnnotation\"),\n StringTypeAnnotation = alias(\"stringTypeAnnotation\"),\n SymbolTypeAnnotation = alias(\"symbolTypeAnnotation\"),\n ThisTypeAnnotation = alias(\"thisTypeAnnotation\"),\n TupleTypeAnnotation = alias(\"tupleTypeAnnotation\"),\n TypeofTypeAnnotation = alias(\"typeofTypeAnnotation\"),\n TypeAlias = alias(\"typeAlias\"),\n TypeAnnotation = alias(\"typeAnnotation\"),\n TypeCastExpression = alias(\"typeCastExpression\"),\n TypeParameter = alias(\"typeParameter\"),\n TypeParameterDeclaration = alias(\"typeParameterDeclaration\"),\n TypeParameterInstantiation = alias(\"typeParameterInstantiation\"),\n UnionTypeAnnotation = alias(\"unionTypeAnnotation\"),\n Variance = alias(\"variance\"),\n VoidTypeAnnotation = alias(\"voidTypeAnnotation\"),\n EnumDeclaration = alias(\"enumDeclaration\"),\n EnumBooleanBody = alias(\"enumBooleanBody\"),\n EnumNumberBody = alias(\"enumNumberBody\"),\n EnumStringBody = alias(\"enumStringBody\"),\n EnumSymbolBody = alias(\"enumSymbolBody\"),\n EnumBooleanMember = alias(\"enumBooleanMember\"),\n EnumNumberMember = alias(\"enumNumberMember\"),\n EnumStringMember = alias(\"enumStringMember\"),\n EnumDefaultedMember = alias(\"enumDefaultedMember\"),\n IndexedAccessType = alias(\"indexedAccessType\"),\n OptionalIndexedAccessType = alias(\"optionalIndexedAccessType\"),\n JSXAttribute = alias(\"jsxAttribute\"),\n JSXClosingElement = alias(\"jsxClosingElement\"),\n JSXElement = alias(\"jsxElement\"),\n JSXEmptyExpression = alias(\"jsxEmptyExpression\"),\n JSXExpressionContainer = alias(\"jsxExpressionContainer\"),\n JSXSpreadChild = alias(\"jsxSpreadChild\"),\n JSXIdentifier = alias(\"jsxIdentifier\"),\n JSXMemberExpression = alias(\"jsxMemberExpression\"),\n JSXNamespacedName = alias(\"jsxNamespacedName\"),\n JSXOpeningElement = alias(\"jsxOpeningElement\"),\n JSXSpreadAttribute = alias(\"jsxSpreadAttribute\"),\n JSXText = alias(\"jsxText\"),\n JSXFragment = alias(\"jsxFragment\"),\n JSXOpeningFragment = alias(\"jsxOpeningFragment\"),\n JSXClosingFragment = alias(\"jsxClosingFragment\"),\n Noop = alias(\"noop\"),\n Placeholder = alias(\"placeholder\"),\n V8IntrinsicIdentifier = alias(\"v8IntrinsicIdentifier\"),\n ArgumentPlaceholder = alias(\"argumentPlaceholder\"),\n BindExpression = alias(\"bindExpression\"),\n Decorator = alias(\"decorator\"),\n DoExpression = alias(\"doExpression\"),\n ExportDefaultSpecifier = alias(\"exportDefaultSpecifier\"),\n RecordExpression = alias(\"recordExpression\"),\n TupleExpression = alias(\"tupleExpression\"),\n DecimalLiteral = alias(\"decimalLiteral\"),\n ModuleExpression = alias(\"moduleExpression\"),\n TopicReference = alias(\"topicReference\"),\n PipelineTopicExpression = alias(\"pipelineTopicExpression\"),\n PipelineBareFunction = alias(\"pipelineBareFunction\"),\n PipelinePrimaryTopicReference = alias(\"pipelinePrimaryTopicReference\"),\n VoidPattern = alias(\"voidPattern\"),\n TSParameterProperty = alias(\"tsParameterProperty\"),\n TSDeclareFunction = alias(\"tsDeclareFunction\"),\n TSDeclareMethod = alias(\"tsDeclareMethod\"),\n TSQualifiedName = alias(\"tsQualifiedName\"),\n TSCallSignatureDeclaration = alias(\"tsCallSignatureDeclaration\"),\n TSConstructSignatureDeclaration = alias(\"tsConstructSignatureDeclaration\"),\n TSPropertySignature = alias(\"tsPropertySignature\"),\n TSMethodSignature = alias(\"tsMethodSignature\"),\n TSIndexSignature = alias(\"tsIndexSignature\"),\n TSAnyKeyword = alias(\"tsAnyKeyword\"),\n TSBooleanKeyword = alias(\"tsBooleanKeyword\"),\n TSBigIntKeyword = alias(\"tsBigIntKeyword\"),\n TSIntrinsicKeyword = alias(\"tsIntrinsicKeyword\"),\n TSNeverKeyword = alias(\"tsNeverKeyword\"),\n TSNullKeyword = alias(\"tsNullKeyword\"),\n TSNumberKeyword = alias(\"tsNumberKeyword\"),\n TSObjectKeyword = alias(\"tsObjectKeyword\"),\n TSStringKeyword = alias(\"tsStringKeyword\"),\n TSSymbolKeyword = alias(\"tsSymbolKeyword\"),\n TSUndefinedKeyword = alias(\"tsUndefinedKeyword\"),\n TSUnknownKeyword = alias(\"tsUnknownKeyword\"),\n TSVoidKeyword = alias(\"tsVoidKeyword\"),\n TSThisType = alias(\"tsThisType\"),\n TSFunctionType = alias(\"tsFunctionType\"),\n TSConstructorType = alias(\"tsConstructorType\"),\n TSTypeReference = alias(\"tsTypeReference\"),\n TSTypePredicate = alias(\"tsTypePredicate\"),\n TSTypeQuery = alias(\"tsTypeQuery\"),\n TSTypeLiteral = alias(\"tsTypeLiteral\"),\n TSArrayType = alias(\"tsArrayType\"),\n TSTupleType = alias(\"tsTupleType\"),\n TSOptionalType = alias(\"tsOptionalType\"),\n TSRestType = alias(\"tsRestType\"),\n TSNamedTupleMember = alias(\"tsNamedTupleMember\"),\n TSUnionType = alias(\"tsUnionType\"),\n TSIntersectionType = alias(\"tsIntersectionType\"),\n TSConditionalType = alias(\"tsConditionalType\"),\n TSInferType = alias(\"tsInferType\"),\n TSParenthesizedType = alias(\"tsParenthesizedType\"),\n TSTypeOperator = alias(\"tsTypeOperator\"),\n TSIndexedAccessType = alias(\"tsIndexedAccessType\"),\n TSMappedType = alias(\"tsMappedType\"),\n TSTemplateLiteralType = alias(\"tsTemplateLiteralType\"),\n TSLiteralType = alias(\"tsLiteralType\"),\n TSExpressionWithTypeArguments = alias(\"tsExpressionWithTypeArguments\"),\n TSInterfaceDeclaration = alias(\"tsInterfaceDeclaration\"),\n TSInterfaceBody = alias(\"tsInterfaceBody\"),\n TSTypeAliasDeclaration = alias(\"tsTypeAliasDeclaration\"),\n TSInstantiationExpression = alias(\"tsInstantiationExpression\"),\n TSAsExpression = alias(\"tsAsExpression\"),\n TSSatisfiesExpression = alias(\"tsSatisfiesExpression\"),\n TSTypeAssertion = alias(\"tsTypeAssertion\"),\n TSEnumBody = alias(\"tsEnumBody\"),\n TSEnumDeclaration = alias(\"tsEnumDeclaration\"),\n TSEnumMember = alias(\"tsEnumMember\"),\n TSModuleDeclaration = alias(\"tsModuleDeclaration\"),\n TSModuleBlock = alias(\"tsModuleBlock\"),\n TSImportType = alias(\"tsImportType\"),\n TSImportEqualsDeclaration = alias(\"tsImportEqualsDeclaration\"),\n TSExternalModuleReference = alias(\"tsExternalModuleReference\"),\n TSNonNullExpression = alias(\"tsNonNullExpression\"),\n TSExportAssignment = alias(\"tsExportAssignment\"),\n TSNamespaceExportDeclaration = alias(\"tsNamespaceExportDeclaration\"),\n TSTypeAnnotation = alias(\"tsTypeAnnotation\"),\n TSTypeParameterInstantiation = alias(\"tsTypeParameterInstantiation\"),\n TSTypeParameterDeclaration = alias(\"tsTypeParameterDeclaration\"),\n TSTypeParameter = alias(\"tsTypeParameter\");\nexport const NumberLiteral = b.numberLiteral,\n RegexLiteral = b.regexLiteral,\n RestProperty = b.restProperty,\n SpreadProperty = b.spreadProperty;\n"],"mappings":"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","ignoreList":[]}
\ No newline at end of file
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.buildUndefinedNode = buildUndefinedNode;
var _index = require("./generated/index.js");
function buildUndefinedNode() {
return (0, _index.unaryExpression)("void", (0, _index.numericLiteral)(0), true);
}
//# sourceMappingURL=productions.js.map
{"version":3,"names":["_index","require","buildUndefinedNode","unaryExpression","numericLiteral"],"sources":["../../src/builders/productions.ts"],"sourcesContent":["import { numericLiteral, unaryExpression } from \"./generated/index.ts\";\n\nexport function buildUndefinedNode() {\n return unaryExpression(\"void\", numericLiteral(0), true);\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEO,SAASC,kBAAkBA,CAAA,EAAG;EACnC,OAAO,IAAAC,sBAAe,EAAC,MAAM,EAAE,IAAAC,qBAAc,EAAC,CAAC,CAAC,EAAE,IAAI,CAAC;AACzD","ignoreList":[]}
\ No newline at end of file
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = buildChildren;
var _index = require("../../validators/generated/index.js");
var _cleanJSXElementLiteralChild = require("../../utils/react/cleanJSXElementLiteralChild.js");
function buildChildren(node) {
const elements = [];
for (let i = 0; i < node.children.length; i++) {
let child = node.children[i];
if ((0, _index.isJSXText)(child)) {
(0, _cleanJSXElementLiteralChild.default)(child, elements);
continue;
}
if ((0, _index.isJSXExpressionContainer)(child)) child = child.expression;
if ((0, _index.isJSXEmptyExpression)(child)) continue;
elements.push(child);
}
return elements;
}
//# sourceMappingURL=buildChildren.js.map
{"version":3,"names":["_index","require","_cleanJSXElementLiteralChild","buildChildren","node","elements","i","children","length","child","isJSXText","cleanJSXElementLiteralChild","isJSXExpressionContainer","expression","isJSXEmptyExpression","push"],"sources":["../../../src/builders/react/buildChildren.ts"],"sourcesContent":["import {\n isJSXText,\n isJSXExpressionContainer,\n isJSXEmptyExpression,\n} from \"../../validators/generated/index.ts\";\nimport cleanJSXElementLiteralChild from \"../../utils/react/cleanJSXElementLiteralChild.ts\";\nimport type * as t from \"../../index.ts\";\n\ntype ReturnedChild =\n | t.JSXSpreadChild\n | t.JSXElement\n | t.JSXFragment\n | t.Expression;\n\nexport default function buildChildren(\n node: t.JSXElement | t.JSXFragment,\n): ReturnedChild[] {\n const elements = [];\n\n for (let i = 0; i < node.children.length; i++) {\n let child: any = node.children[i];\n\n if (isJSXText(child)) {\n cleanJSXElementLiteralChild(child, elements);\n continue;\n }\n\n if (isJSXExpressionContainer(child)) child = child.expression;\n if (isJSXEmptyExpression(child)) continue;\n\n elements.push(child);\n }\n\n return elements;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAKA,IAAAC,4BAAA,GAAAD,OAAA;AASe,SAASE,aAAaA,CACnCC,IAAkC,EACjB;EACjB,MAAMC,QAAQ,GAAG,EAAE;EAEnB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,IAAI,CAACG,QAAQ,CAACC,MAAM,EAAEF,CAAC,EAAE,EAAE;IAC7C,IAAIG,KAAU,GAAGL,IAAI,CAACG,QAAQ,CAACD,CAAC,CAAC;IAEjC,IAAI,IAAAI,gBAAS,EAACD,KAAK,CAAC,EAAE;MACpB,IAAAE,oCAA2B,EAACF,KAAK,EAAEJ,QAAQ,CAAC;MAC5C;IACF;IAEA,IAAI,IAAAO,+BAAwB,EAACH,KAAK,CAAC,EAAEA,KAAK,GAAGA,KAAK,CAACI,UAAU;IAC7D,IAAI,IAAAC,2BAAoB,EAACL,KAAK,CAAC,EAAE;IAEjCJ,QAAQ,CAACU,IAAI,CAACN,KAAK,CAAC;EACtB;EAEA,OAAOJ,QAAQ;AACjB","ignoreList":[]}
\ No newline at end of file
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = createTSUnionType;
var _index = require("../generated/index.js");
var _removeTypeDuplicates = require("../../modifications/typescript/removeTypeDuplicates.js");
var _index2 = require("../../validators/generated/index.js");
function createTSUnionType(typeAnnotations) {
const types = typeAnnotations.map(type => {
return (0, _index2.isTSTypeAnnotation)(type) ? type.typeAnnotation : type;
});
const flattened = (0, _removeTypeDuplicates.default)(types);
if (flattened.length === 1) {
return flattened[0];
} else {
return (0, _index.tsUnionType)(flattened);
}
}
//# sourceMappingURL=createTSUnionType.js.map
{"version":3,"names":["_index","require","_removeTypeDuplicates","_index2","createTSUnionType","typeAnnotations","types","map","type","isTSTypeAnnotation","typeAnnotation","flattened","removeTypeDuplicates","length","tsUnionType"],"sources":["../../../src/builders/typescript/createTSUnionType.ts"],"sourcesContent":["import { tsUnionType } from \"../generated/index.ts\";\nimport removeTypeDuplicates from \"../../modifications/typescript/removeTypeDuplicates.ts\";\nimport { isTSTypeAnnotation } from \"../../validators/generated/index.ts\";\nimport type * as t from \"../../index.ts\";\n\n/**\n * Takes an array of `types` and flattens them, removing duplicates and\n * returns a `UnionTypeAnnotation` node containing them.\n */\nexport default function createTSUnionType(\n typeAnnotations: Array<t.TSTypeAnnotation | t.TSType>,\n): t.TSType {\n const types = typeAnnotations.map(type => {\n return isTSTypeAnnotation(type) ? type.typeAnnotation : type;\n });\n const flattened = removeTypeDuplicates(types);\n\n if (flattened.length === 1) {\n return flattened[0];\n } else {\n return tsUnionType(flattened);\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,qBAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAOe,SAASG,iBAAiBA,CACvCC,eAAqD,EAC3C;EACV,MAAMC,KAAK,GAAGD,eAAe,CAACE,GAAG,CAACC,IAAI,IAAI;IACxC,OAAO,IAAAC,0BAAkB,EAACD,IAAI,CAAC,GAAGA,IAAI,CAACE,cAAc,GAAGF,IAAI;EAC9D,CAAC,CAAC;EACF,MAAMG,SAAS,GAAG,IAAAC,6BAAoB,EAACN,KAAK,CAAC;EAE7C,IAAIK,SAAS,CAACE,MAAM,KAAK,CAAC,EAAE;IAC1B,OAAOF,SAAS,CAAC,CAAC,CAAC;EACrB,CAAC,MAAM;IACL,OAAO,IAAAG,kBAAW,EAACH,SAAS,CAAC;EAC/B;AACF","ignoreList":[]}
\ No newline at end of file
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = validateNode;
var _validate = require("../validators/validate.js");
var _index = require("../index.js");
function validateNode(node) {
if (node == null || typeof node !== "object") return;
const fields = _index.NODE_FIELDS[node.type];
if (!fields) return;
const keys = _index.BUILDER_KEYS[node.type];
for (const key of keys) {
const field = fields[key];
if (field != null) (0, _validate.validateInternal)(field, node, key, node[key]);
}
return node;
}
//# sourceMappingURL=validateNode.js.map
{"version":3,"names":["_validate","require","_index","validateNode","node","fields","NODE_FIELDS","type","keys","BUILDER_KEYS","key","field","validateInternal"],"sources":["../../src/builders/validateNode.ts"],"sourcesContent":["import { validateInternal } from \"../validators/validate.ts\";\nimport type * as t from \"../index.ts\";\nimport { BUILDER_KEYS, NODE_FIELDS } from \"../index.ts\";\n\nexport default function validateNode<N extends t.Node>(node: N) {\n if (node == null || typeof node !== \"object\") return;\n const fields = NODE_FIELDS[node.type];\n if (!fields) return;\n\n // todo: because keys not in BUILDER_KEYS are not validated - this actually allows invalid nodes in some cases\n const keys = BUILDER_KEYS[node.type] as (keyof N & string)[];\n for (const key of keys) {\n const field = fields[key];\n if (field != null) validateInternal(field, node, key, node[key]);\n }\n return node;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AAEe,SAASE,YAAYA,CAAmBC,IAAO,EAAE;EAC9D,IAAIA,IAAI,IAAI,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;EAC9C,MAAMC,MAAM,GAAGC,kBAAW,CAACF,IAAI,CAACG,IAAI,CAAC;EACrC,IAAI,CAACF,MAAM,EAAE;EAGb,MAAMG,IAAI,GAAGC,mBAAY,CAACL,IAAI,CAACG,IAAI,CAAyB;EAC5D,KAAK,MAAMG,GAAG,IAAIF,IAAI,EAAE;IACtB,MAAMG,KAAK,GAAGN,MAAM,CAACK,GAAG,CAAC;IACzB,IAAIC,KAAK,IAAI,IAAI,EAAE,IAAAC,0BAAgB,EAACD,KAAK,EAAEP,IAAI,EAAEM,GAAG,EAAEN,IAAI,CAACM,GAAG,CAAC,CAAC;EAClE;EACA,OAAON,IAAI;AACb","ignoreList":[]}
\ No newline at end of file
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = clone;
var _cloneNode = require("./cloneNode.js");
function clone(node) {
return (0, _cloneNode.default)(node, false);
}
//# sourceMappingURL=clone.js.map
{"version":3,"names":["_cloneNode","require","clone","node","cloneNode"],"sources":["../../src/clone/clone.ts"],"sourcesContent":["import cloneNode from \"./cloneNode.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Create a shallow clone of a `node`, including only\n * properties belonging to the node.\n * @deprecated Use t.cloneNode instead.\n */\nexport default function clone<T extends t.Node>(node: T): T {\n return cloneNode(node, /* deep */ false);\n}\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAQe,SAASC,KAAKA,CAAmBC,IAAO,EAAK;EAC1D,OAAO,IAAAC,kBAAS,EAACD,IAAI,EAAa,KAAK,CAAC;AAC1C","ignoreList":[]}
\ No newline at end of file
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = cloneDeep;
var _cloneNode = require("./cloneNode.js");
function cloneDeep(node) {
return (0, _cloneNode.default)(node);
}
//# sourceMappingURL=cloneDeep.js.map
{"version":3,"names":["_cloneNode","require","cloneDeep","node","cloneNode"],"sources":["../../src/clone/cloneDeep.ts"],"sourcesContent":["import cloneNode from \"./cloneNode.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Create a deep clone of a `node` and all of it's child nodes\n * including only properties belonging to the node.\n * @deprecated Use t.cloneNode instead.\n */\nexport default function cloneDeep<T extends t.Node>(node: T): T {\n return cloneNode(node);\n}\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAQe,SAASC,SAASA,CAAmBC,IAAO,EAAK;EAC9D,OAAO,IAAAC,kBAAS,EAACD,IAAI,CAAC;AACxB","ignoreList":[]}
\ No newline at end of file
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = cloneDeepWithoutLoc;
var _cloneNode = require("./cloneNode.js");
function cloneDeepWithoutLoc(node) {
return (0, _cloneNode.default)(node, true, true);
}
//# sourceMappingURL=cloneDeepWithoutLoc.js.map
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment