unplugin-zed-gpui 0.0.2 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +301 -3
- package/dist/{index.d.cts → index.d.ts} +1 -2
- package/dist/index.mjs +275 -1
- package/package.json +10 -44
- package/dist/esbuild.cjs +0 -6
- package/dist/esbuild.cjs.map +0 -1
- package/dist/esbuild.d.cts +0 -6
- package/dist/esbuild.d.cts.map +0 -1
- package/dist/esbuild.d.mts +0 -7
- package/dist/esbuild.d.mts.map +0 -1
- package/dist/esbuild.mjs +0 -7
- package/dist/esbuild.mjs.map +0 -1
- package/dist/index.d.cts.map +0 -1
- package/dist/index.d.mts +0 -26
- package/dist/index.d.mts.map +0 -1
- package/dist/noble.cjs +0 -7
- package/dist/noble.d.cts +0 -2
- package/dist/noble.d.mts +0 -2
- package/dist/noble.mjs +0 -2
- package/dist/rollup.cjs +0 -6
- package/dist/rollup.cjs.map +0 -1
- package/dist/rollup.d.cts +0 -1350
- package/dist/rollup.d.cts.map +0 -1
- package/dist/rollup.d.mts +0 -1351
- package/dist/rollup.d.mts.map +0 -1
- package/dist/rollup.mjs +0 -7
- package/dist/rollup.mjs.map +0 -1
- package/dist/rspack.cjs +0 -6
- package/dist/rspack.cjs.map +0 -1
- package/dist/rspack.d.cts +0 -6
- package/dist/rspack.d.cts.map +0 -1
- package/dist/rspack.d.mts +0 -7
- package/dist/rspack.d.mts.map +0 -1
- package/dist/rspack.mjs +0 -7
- package/dist/rspack.mjs.map +0 -1
- package/dist/src-CQKToE8V.cjs +0 -30417
- package/dist/src-CQKToE8V.cjs.map +0 -1
- package/dist/src-Cdq30MRu.mjs +0 -30412
- package/dist/src-Cdq30MRu.mjs.map +0 -1
- package/dist/vite.cjs +0 -6
- package/dist/vite.cjs.map +0 -1
- package/dist/vite.d.cts +0 -6
- package/dist/vite.d.cts.map +0 -1
- package/dist/vite.d.mts +0 -7
- package/dist/vite.d.mts.map +0 -1
- package/dist/vite.mjs +0 -7
- package/dist/vite.mjs.map +0 -1
- package/dist/webpack.cjs +0 -6
- package/dist/webpack.cjs.map +0 -1
- package/dist/webpack.d.cts +0 -6
- package/dist/webpack.d.cts.map +0 -1
- package/dist/webpack.d.mts +0 -7
- package/dist/webpack.d.mts.map +0 -1
- package/dist/webpack.mjs +0 -7
- package/dist/webpack.mjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"src-Cdq30MRu.mjs","names":["isLoop","supplementaryIdentifierStartCodes","supplementaryIdentifierCodes","bmpIdentifierStart","bmpIdentifier","isInSupplementarySet","isIdentifierStart","isIdentifierChar","reservedWords","keywords","reservedWordsStrictSet","reservedWordsStrictBindSet","isReservedWord","isStrictReservedWord","isKeyword","_isDigit","forbiddenNumericSeparatorSiblings","isAllowedNumericSeparatorSibling","readStringContents","isStringEnd","readEscapedChar","readHexChar","readCodePoint","readInt","assert","parse","isCallExpression","isIdentifier","isIfStatement","isMemberExpression","isNewExpression","isAssignmentPattern","isClassBody","isClassDeclaration","isExportDefaultDeclaration","isExportNamedDeclaration","isImportDefaultSpecifier","isImportNamespaceSpecifier","isYieldExpression","isExportNamespaceSpecifier","isOptionalMemberExpression","isDeclareExportDeclaration","isExportDefaultSpecifier","isVoidPattern","isTSInterfaceBody","isTSEnumMember","isExpression","isStatement","isFor","isFunction","isLiteral","isPattern","VISITOR_KEYS","ArrayExpression","AssignmentExpression","BinaryExpression","InterpreterDirective","Directive","DirectiveLiteral","BlockStatement","BreakStatement","CallExpression","CatchClause","ConditionalExpression","ContinueStatement","DebuggerStatement","DoWhileStatement","EmptyStatement","ExpressionStatement","File","ForInStatement","ForStatement","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","ArrowFunctionExpression","ClassBody","ClassExpression","ClassDeclaration","ExportAllDeclaration","ExportDefaultDeclaration","ExportNamedDeclaration","ExportSpecifier","ForOfStatement","ImportDeclaration","ImportDefaultSpecifier","ImportNamespaceSpecifier","ImportSpecifier","MetaProperty","ClassMethod","Super","TaggedTemplateExpression","TemplateElement","TemplateLiteral","YieldExpression","AwaitExpression","ImportExpression","Import","BigIntLiteral","ExportNamespaceSpecifier","OptionalMemberExpression","OptionalCallExpression","ClassProperty","ClassPrivateProperty","ClassPrivateMethod","PrivateName","StaticBlock","ImportAttribute","AnyTypeAnnotation","ArrayTypeAnnotation","BooleanTypeAnnotation","BooleanLiteralTypeAnnotation","NullLiteralTypeAnnotation","DeclareClass","DeclareFunction","DeclareInterface","DeclareModule","DeclareModuleExports","DeclareTypeAlias","DeclareOpaqueType","DeclareVariable","DeclareExportDeclaration","DeclareExportAllDeclaration","DeclaredPredicate","ExistsTypeAnnotation","FunctionTypeAnnotation","FunctionTypeParam","InferredPredicate","InterfaceExtends","InterfaceDeclaration","InterfaceTypeAnnotation","IntersectionTypeAnnotation","MixedTypeAnnotation","EmptyTypeAnnotation","NullableTypeAnnotation","NumberTypeAnnotation","ObjectTypeAnnotation","ObjectTypeInternalSlot","ObjectTypeCallProperty","ObjectTypeIndexer","ObjectTypeProperty","ObjectTypeSpreadProperty","OpaqueType","QualifiedTypeIdentifier","StringTypeAnnotation","SymbolTypeAnnotation","ThisTypeAnnotation","TupleTypeAnnotation","TypeofTypeAnnotation","TypeAlias","TypeAnnotation","TypeCastExpression","TypeParameter","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","Placeholder","V8IntrinsicIdentifier","ArgumentPlaceholder","BindExpression","ClassAccessorProperty","Decorator","DoExpression","ExportDefaultSpecifier","ModuleExpression","TopicReference","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","TSClassImplements","TSInterfaceDeclaration","TSInterfaceBody","TSTypeAliasDeclaration","TSInstantiationExpression","TSAsExpression","TSSatisfiesExpression","TSTypeAssertion","TSEnumBody","TSEnumDeclaration","TSEnumMember","TSModuleDeclaration","TSModuleBlock","TSImportType","TSImportEqualsDeclaration","TSExternalModuleReference","TSNonNullExpression","TSExportAssignment","TSNamespaceExportDeclaration","TSTypeAnnotation","TSTypeParameterInstantiation","TSTypeParameter","traverseFast","sortComparator","resolveUri","COLUMN","SOURCES_INDEX","SOURCE_LINE","SOURCE_COLUMN","NAMES_INDEX","cast","Buffer","_t","parse","t.isImportDeclaration","t.isProgram","t.isBlockStatement","t.isFunctionDeclaration","t.isFunctionExpression","t.isArrowFunctionExpression","t.isVariableDeclaration","t.isIdentifier","t.isAssignmentExpression","t.isCallExpression","t.isMemberExpression","t.isSuper","t.isTSAsExpression","t.isTSTypeAssertion","t.isStringLiteral","t.isTSTypeAnnotation","t.isTSTypeReference","t.isExpressionStatement","t.isObjectExpression","t.isObjectProperty","t.isObjectMethod","t.isTSNonNullExpression"],"sources":["../../../node_modules/.pnpm/@babel+parser@8.0.0/node_modules/@babel/parser/lib/index.js","../../../node_modules/.pnpm/@babel+helper-validator-identifier@8.0.2/node_modules/@babel/helper-validator-identifier/lib/index.js","../../../node_modules/.pnpm/@babel+helper-string-parser@8.0.0/node_modules/@babel/helper-string-parser/lib/index.js","../../../node_modules/.pnpm/@babel+types@8.0.0/node_modules/@babel/types/lib/index.js","../../../node_modules/.pnpm/@jridgewell+sourcemap-codec@1.5.5/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs","../../../node_modules/.pnpm/@jridgewell+resolve-uri@3.1.2/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs","../../../node_modules/.pnpm/@jridgewell+trace-mapping@0.3.31/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs","../../../node_modules/.pnpm/@jridgewell+gen-mapping@0.3.13/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs","../../../node_modules/.pnpm/jsesc@3.1.0/node_modules/jsesc/jsesc.js","../../../node_modules/.pnpm/@babel+generator@8.0.0/node_modules/@babel/generator/lib/index.js","../src/index.ts"],"sourcesContent":["class Position {\n constructor(line, col, index) {\n this.line = undefined;\n this.column = undefined;\n if (index !== undefined) this.index = undefined;\n this.line = line;\n this.column = col;\n if (index !== undefined) this.index = index;\n }\n}\nclass SourceLocation {\n start;\n end;\n filename;\n identifierName;\n constructor(start, end) {\n this.start = start;\n this.end = end;\n }\n}\nfunction createPositionWithColumnOffset(position, columnOffset) {\n const {\n line,\n column,\n index\n } = position;\n return new Position(line, column + columnOffset, index + columnOffset);\n}\nconst code = \"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED\";\nconst ModuleErrors = {\n ImportMetaOutsideModule: {\n message: `import.meta may appear only with 'sourceType: \"module\"'`,\n code\n },\n ImportOutsideModule: {\n message: `'import' and 'export' may appear only with 'sourceType: \"module\"'`,\n code\n }\n};\nconst NodeDescriptions = {\n ArrayPattern: \"array destructuring pattern\",\n AssignmentExpression: \"assignment expression\",\n AssignmentPattern: \"assignment expression\",\n ArrowFunctionExpression: \"arrow function expression\",\n ConditionalExpression: \"conditional expression\",\n CatchClause: \"catch clause\",\n ForOfStatement: \"for-of statement\",\n ForInStatement: \"for-in statement\",\n ForStatement: \"for-loop\",\n FormalParameters: \"function parameter list\",\n Identifier: \"identifier\",\n ImportSpecifier: \"import specifier\",\n ImportDefaultSpecifier: \"import default specifier\",\n ImportNamespaceSpecifier: \"import namespace specifier\",\n ObjectPattern: \"object destructuring pattern\",\n ParenthesizedExpression: \"parenthesized expression\",\n RestElement: \"rest element\",\n UpdateExpression: {\n true: \"prefix operation\",\n false: \"postfix operation\"\n },\n VariableDeclarator: \"variable declaration\",\n YieldExpression: \"yield expression\"\n};\nconst toNodeDescription = node => node.type === \"UpdateExpression\" ? NodeDescriptions.UpdateExpression[`${node.prefix}`] : NodeDescriptions[node.type];\nconst StandardErrors = {\n AccessorIsGenerator: ({\n kind\n }) => `A ${kind}ter cannot be a generator.`,\n ArgumentsInClass: \"'arguments' is only allowed in functions and class methods.\",\n AsyncFunctionInSingleStatementContext: \"Async functions can only be declared at the top level or inside a block.\",\n AwaitBindingIdentifier: \"Can not use 'await' as identifier inside an async function.\",\n AwaitBindingIdentifierInStaticBlock: \"Can not use 'await' as identifier inside a static block.\",\n AwaitExpressionFormalParameter: \"'await' is not allowed in async function parameters.\",\n AwaitUsingNotInAsyncContext: \"'await using' is only allowed within async functions and at the top levels of modules.\",\n AwaitNotInAsyncContext: \"'await' is only allowed within async functions and at the top levels of modules.\",\n BadGetterArity: \"A 'get' accessor must not have any formal parameters.\",\n BadSetterArity: \"A 'set' accessor must have exactly one formal parameter.\",\n BadSetterRestParameter: \"A 'set' accessor function argument must not be a rest parameter.\",\n ConstructorClassField: \"Classes may not have a field named 'constructor'.\",\n ConstructorClassPrivateField: \"Classes may not have a private field named '#constructor'.\",\n ConstructorIsAccessor: \"Class constructor may not be an accessor.\",\n ConstructorIsAsync: \"Constructor can't be an async function.\",\n ConstructorIsGenerator: \"Constructor can't be a generator.\",\n DeclarationMissingInitializer: ({\n kind\n }) => `Missing initializer in ${kind} declaration.`,\n DecoratorArgumentsOutsideParentheses: \"Decorator arguments must be moved inside parentheses: use '@(decorator(args))' instead of '@(decorator)(args)'.\",\n DecoratorsBeforeAfterExport: \"Decorators can be placed *either* before or after the 'export' keyword, but not in both locations at the same time.\",\n DecoratorConstructor: \"Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?\",\n DecoratorSemicolon: \"Decorators must not be followed by a semicolon.\",\n DecoratorStaticBlock: \"Decorators can't be used with a static block.\",\n DeferImportRequiresNamespace: 'Only `import defer * as x from \"./module\"` is valid.',\n DeletePrivateField: \"Deleting a private field is not allowed.\",\n DestructureNamedImport: \"ES2015 named imports do not destructure. Use another statement for destructuring after the import.\",\n DuplicateConstructor: \"Duplicate constructor in the same class.\",\n DuplicateDefaultExport: \"Only one default export allowed per module.\",\n DuplicateExport: ({\n exportName\n }) => `\\`${exportName}\\` has already been exported. Exported identifiers must be unique.`,\n DuplicateProto: \"Redefinition of __proto__ property.\",\n DuplicateRegExpFlags: \"Duplicate regular expression flag.\",\n ElementAfterRest: \"Rest element must be last element.\",\n EscapedCharNotAnIdentifier: \"Invalid Unicode escape.\",\n ExportBindingIsString: ({\n localName,\n exportName\n }) => `A string literal cannot be used as an exported binding without \\`from\\`.\\n- Did you mean \\`export { '${localName}' as '${exportName}' } from 'some-module'\\`?`,\n ExportDefaultFromAsIdentifier: \"'from' is not allowed as an identifier after 'export default'.\",\n ForInOfLoopInitializer: ({\n type\n }) => `'${type === \"ForInStatement\" ? \"for-in\" : \"for-of\"}' loop variable declaration may not have an initializer.`,\n ForInUsing: \"For-in loop may not start with 'using' declaration.\",\n ForOfAsync: \"The left-hand side of a for-of loop may not be 'async'.\",\n ForOfLet: \"The left-hand side of a for-of loop may not start with 'let'.\",\n GeneratorInSingleStatementContext: \"Generators can only be declared at the top level or inside a block.\",\n IllegalBreakContinue: ({\n type\n }) => `Unsyntactic ${type === \"BreakStatement\" ? \"break\" : \"continue\"}.`,\n IllegalLanguageModeDirective: \"Illegal 'use strict' directive in function with non-simple parameter list.\",\n IllegalReturn: \"'return' outside of function.\",\n ImportBindingIsString: ({\n importName\n }) => `A string literal cannot be used as an imported binding.\\n- Did you mean \\`import { \"${importName}\" as foo }\\`?`,\n ImportCallArity: ({\n phase\n }) => `\\`import${phase ? `.${phase}` : \"\"}()\\` requires exactly one or two arguments.`,\n ImportCallNotNewExpression: ({\n phase\n }) => `Cannot use new with import${phase ? `.${phase}` : \"\"}().`,\n ImportCallSpreadArgument: ({\n phase\n }) => `\\`...\\` is not allowed in \\`import${phase ? `.${phase}` : \"\"}()\\`.`,\n IncompatibleRegExpUVFlags: \"The 'u' and 'v' regular expression flags cannot be enabled at the same time.\",\n InvalidBigIntLiteral: \"Invalid BigIntLiteral.\",\n InvalidCodePoint: \"Code point out of bounds.\",\n InvalidCoverDiscardElement: \"'void' must be followed by an expression when not used in a binding position.\",\n InvalidCoverInitializedName: \"Invalid shorthand property initializer.\",\n InvalidDigit: ({\n radix\n }) => `Expected number in radix ${radix}.`,\n InvalidEscapeSequence: \"Bad character escape sequence.\",\n InvalidEscapeSequenceTemplate: \"Invalid escape sequence in template.\",\n InvalidEscapedReservedWord: ({\n reservedWord\n }) => `Escape sequence in keyword ${reservedWord}.`,\n InvalidIdentifier: ({\n identifierName\n }) => `Invalid identifier ${identifierName}.`,\n InvalidLhs: ({\n ancestor\n }) => `Invalid left-hand side in ${toNodeDescription(ancestor)}.`,\n InvalidLhsBinding: ({\n ancestor\n }) => `Binding invalid left-hand side in ${toNodeDescription(ancestor)}.`,\n InvalidLhsOptionalChaining: ({\n ancestor\n }) => `Invalid optional chaining in the left-hand side of ${toNodeDescription(ancestor)}.`,\n InvalidNumber: \"Invalid number.\",\n InvalidOrMissingExponent: \"Floating-point numbers require a valid exponent after the 'e'.\",\n InvalidOrUnexpectedToken: ({\n unexpected\n }) => `Unexpected character '${unexpected}'.`,\n InvalidParenthesizedAssignment: \"Invalid parenthesized assignment pattern.\",\n InvalidPrivateFieldResolution: ({\n identifierName\n }) => `Private name #${identifierName} is not defined.`,\n InvalidPropertyBindingPattern: \"Binding member expression.\",\n InvalidRestAssignmentPattern: \"Invalid rest operator's argument.\",\n LabelRedeclaration: ({\n labelName\n }) => `Label '${labelName}' is already declared.`,\n LetInLexicalBinding: \"'let' is disallowed as a lexically bound name.\",\n LineTerminatorBeforeArrow: \"No line break is allowed before '=>'.\",\n MalformedRegExpFlags: \"Invalid regular expression flag.\",\n MissingClassName: \"A class name is required.\",\n MissingEqInAssignment: \"Only '=' operator can be used for specifying default value.\",\n MissingSemicolon: \"Missing semicolon.\",\n MissingPlugin: ({\n missingPlugin\n }) => `This experimental syntax requires enabling the parser plugin: ${missingPlugin.map(name => JSON.stringify(name)).join(\", \")}.`,\n MissingOneOfPlugins: ({\n missingPlugin\n }) => `This experimental syntax requires enabling one of the following parser plugin(s): ${missingPlugin.map(name => JSON.stringify(name)).join(\", \")}.`,\n MissingUnicodeEscape: \"Expecting Unicode escape sequence \\\\uXXXX.\",\n MixingCoalesceWithLogical: \"Nullish coalescing operator(??) requires parens when mixing with logical operators.\",\n ModuleAttributeInvalidValue: \"Only string literals are allowed as module attribute values.\",\n ModuleAttributesWithDuplicateKeys: ({\n key\n }) => `Duplicate key \"${key}\" is not allowed in module attributes.`,\n ModuleExportNameHasLoneSurrogate: ({\n surrogateCharCode\n }) => `An export name cannot include a lone surrogate, found '\\\\u${surrogateCharCode.toString(16)}'.`,\n ModuleExportUndefined: ({\n localName\n }) => `Export '${localName}' is not defined.`,\n MultipleDefaultsInSwitch: \"Multiple default clauses.\",\n NewlineAfterThrow: \"Illegal newline after throw.\",\n NoCatchOrFinally: \"Missing catch or finally clause.\",\n NumberIdentifier: \"Identifier directly after number.\",\n NumericSeparatorInEscapeSequence: \"Numeric separators are not allowed inside unicode escape sequences or hex escape sequences.\",\n ObsoleteAwaitStar: \"'await*' has been removed from the async functions proposal. Use Promise.all() instead.\",\n OptionalChainingNoNew: \"Constructors in/after an Optional Chain are not allowed.\",\n OptionalChainingNoTemplate: \"Tagged Template Literals are not allowed in optionalChain.\",\n OverrideOnConstructor: \"'override' modifier cannot appear on a constructor declaration.\",\n ParamDupe: \"Argument name clash.\",\n PatternHasAccessor: \"Object pattern can't contain getter or setter.\",\n PatternHasMethod: \"Object pattern can't contain methods.\",\n PrivateInExpectedIn: ({\n identifierName\n }) => `Private names are only allowed in property accesses (\\`obj.#${identifierName}\\`) or in \\`in\\` expressions (\\`#${identifierName} in obj\\`).`,\n PrivateNameRedeclaration: ({\n identifierName\n }) => `Duplicate private name #${identifierName}.`,\n RestTrailingComma: \"Unexpected trailing comma after rest element.\",\n SloppyFunction: \"In non-strict mode code, functions can only be declared at top level or inside a block.\",\n SloppyFunctionAnnexB: \"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement.\",\n SourcePhaseImportRequiresDefault: 'Only `import source x from \"./module\"` is valid.',\n StaticPrototype: \"Classes may not have static property named prototype.\",\n SuperCallNotNewExpression: \"Cannot use new with super(...).\",\n SuperNotAllowed: \"`super()` is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?\",\n SuperPrivateField: \"Private fields can't be accessed on super.\",\n TrailingDecorator: \"Decorators must be attached to a class element.\",\n UnexpectedArgumentPlaceholder: \"Unexpected argument placeholder.\",\n UnexpectedDigitAfterHash: \"Unexpected digit after hash token.\",\n UnexpectedImportExport: \"'import' and 'export' may only appear at the top level.\",\n UnexpectedKeyword: ({\n keyword\n }) => `Unexpected keyword '${keyword}'.`,\n UnexpectedLeadingDecorator: \"Leading decorators must be attached to a class declaration.\",\n UnexpectedLexicalDeclaration: \"Lexical declaration cannot appear in a single-statement context.\",\n UnexpectedNewTarget: \"`new.target` can only be used in functions or class properties.\",\n UnexpectedNumericSeparator: \"A numeric separator is only allowed between two digits.\",\n UnexpectedPrivateField: \"Unexpected private name.\",\n UnexpectedReservedWord: ({\n reservedWord\n }) => `Unexpected reserved word '${reservedWord}'.`,\n UnexpectedSuper: \"'super' is only allowed in object methods and classes.\",\n UnexpectedToken: ({\n expected,\n unexpected\n }) => `Unexpected token${unexpected ? ` '${unexpected}'.` : \"\"}${expected ? `, expected \"${expected}\"` : \"\"}`,\n UnexpectedTokenUnaryExponentiation: \"Illegal expression. Wrap left hand side or entire exponentiation in parentheses.\",\n UnexpectedUsingDeclaration: \"Using declaration cannot appear in the top level when source type is `script` or in the bare case statement.\",\n UnexpectedVoidPattern: \"Unexpected void binding.\",\n UnsupportedDecoratorExport: \"A decorated export must export a class declaration.\",\n UnsupportedDefaultExport: \"Only expressions, functions or classes are allowed as the `default` export.\",\n UnsupportedImport: \"`import` can only be used in `import()` or `import.meta`.\",\n UnsupportedMetaProperty: ({\n target,\n onlyValidPropertyName\n }) => `The only valid meta property for ${target} is ${target}.${onlyValidPropertyName}.`,\n UnsupportedParameterDecorator: \"Decorators cannot be used to decorate parameters.\",\n UnsupportedPropertyDecorator: \"Decorators cannot be used to decorate object literal properties.\",\n UnsupportedSuper: \"'super' can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop]).\",\n UnterminatedComment: \"Unterminated comment.\",\n UnterminatedRegExp: \"Unterminated regular expression.\",\n UnterminatedString: \"Unterminated string constant.\",\n UnterminatedTemplate: \"Unterminated template.\",\n UsingDeclarationExport: \"Using declaration cannot be exported.\",\n UsingDeclarationHasBindingPattern: \"Using declaration cannot have destructuring patterns.\",\n VarRedeclaration: ({\n identifierName\n }) => `Identifier '${identifierName}' has already been declared.`,\n VoidPatternCatchClauseParam: \"A void binding can not be the catch clause parameter. Use `try { ... } catch { ... }` if you want to discard the caught error.\",\n VoidPatternInitializer: \"A void binding may not have an initializer.\",\n YieldBindingIdentifier: \"Can not use 'yield' as identifier inside a generator.\",\n YieldInParameter: \"Yield expression is not allowed in formal parameters.\",\n YieldNotInGeneratorFunction: \"'yield' is only allowed within generator functions.\",\n ZeroDigitNumericSeparator: \"Numeric separator can not be used after leading 0.\"\n};\nconst StrictModeErrors = {\n StrictDelete: \"Deleting local variable in strict mode.\",\n StrictEvalArguments: ({\n referenceName\n }) => `Assigning to '${referenceName}' in strict mode.`,\n StrictEvalArgumentsBinding: ({\n bindingName\n }) => `Binding '${bindingName}' in strict mode.`,\n StrictFunction: \"In strict mode code, functions can only be declared at top level or inside a block.\",\n StrictNumericEscape: \"The only valid numeric escape in strict mode is '\\\\0'.\",\n StrictOctalLiteral: \"Legacy octal literals are not allowed in strict mode.\",\n StrictWith: \"'with' in strict mode.\"\n};\nconst ParseExpressionErrors = {\n ParseExpressionEmptyInput: \"Unexpected parseExpression() input: The input is empty or contains only comments.\",\n ParseExpressionExpectsEOF: ({\n unexpected\n }) => `Unexpected parseExpression() input: The input should contain exactly one expression, but the first expression is followed by the unexpected character \\`${String.fromCodePoint(unexpected)}\\`.`\n};\nconst UnparenthesizedPipeBodyDescriptions = new Set([\"ArrowFunctionExpression\", \"AssignmentExpression\", \"ConditionalExpression\", \"YieldExpression\"]);\nconst PipelineOperatorErrors = {\n PipeTopicRequiresHackPipes: 'Topic references are only supported when using the `\"proposal\": \"hack\"` version of the pipeline proposal.',\n PipeTopicUnbound: \"Topic reference is unbound; it must be inside a pipe body.\",\n PipeTopicUnconfiguredToken: ({\n token\n }) => `Invalid topic token ${token}. In order to use ${token} as a topic reference, the pipelineOperator plugin must be configured with { \"proposal\": \"hack\", \"topicToken\": \"${token}\" }.`,\n PipeTopicUnused: \"Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.\",\n PipeUnparenthesizedBody: ({\n type\n }) => `Hack-style pipe body cannot be an unparenthesized ${toNodeDescription({\n type\n })}; please wrap it in parentheses.`,\n PipelineUnparenthesized: \"Cannot mix binary operator with solo-await F#-style pipeline. Please wrap the pipeline in parentheses.\"\n};\nconst FunctionBindErrors = {\n UnsupportedBind: \"Binding should be performed on object property.\",\n UnsupportedBindRHS: \"The right-hand side of binding can not be super or import.\"\n};\nfunction defineHidden(obj, key, value) {\n Object.defineProperty(obj, key, {\n enumerable: false,\n configurable: true,\n value\n });\n}\nfunction toParseErrorConstructor({\n toMessage,\n code,\n reasonCode,\n syntaxPlugin\n}) {\n const hasMissingPlugin = reasonCode === \"MissingPlugin\" || reasonCode === \"MissingOneOfPlugins\";\n return function constructor(loc, pos, details) {\n const error = new SyntaxError();\n error.code = code;\n error.reasonCode = reasonCode;\n error.loc = loc;\n error.pos = pos;\n error.syntaxPlugin = syntaxPlugin;\n if (hasMissingPlugin) {\n error.missingPlugin = details.missingPlugin;\n }\n defineHidden(error, \"clone\", function clone(overrides = {}) {\n const {\n line,\n column,\n index = pos\n } = overrides.loc ?? loc;\n return constructor(new Position(line, column), index, {\n ...details,\n ...overrides.details\n });\n });\n defineHidden(error, \"details\", details);\n Object.defineProperty(error, \"message\", {\n configurable: true,\n get() {\n const message = `${toMessage(details)} (${loc.line}:${loc.column})`;\n this.message = message;\n return message;\n },\n set(value) {\n Object.defineProperty(this, \"message\", {\n value,\n writable: true\n });\n }\n });\n return error;\n };\n}\nfunction ParseErrorEnum(argument, syntaxPlugin) {\n if (Array.isArray(argument)) {\n return parseErrorTemplates => ParseErrorEnum(parseErrorTemplates, argument[0]);\n }\n const ParseErrorConstructors = {};\n for (const reasonCode of Object.keys(argument)) {\n const template = argument[reasonCode];\n const {\n message,\n ...rest\n } = typeof template === \"string\" ? {\n message: () => template\n } : typeof template === \"function\" ? {\n message: template\n } : template;\n const toMessage = typeof message === \"string\" ? () => message : message;\n ParseErrorConstructors[reasonCode] = toParseErrorConstructor({\n code: \"BABEL_PARSER_SYNTAX_ERROR\",\n reasonCode,\n toMessage,\n ...(syntaxPlugin ? {\n syntaxPlugin\n } : {}),\n ...rest\n });\n }\n return ParseErrorConstructors;\n}\nconst Errors = {\n ...ParseErrorEnum(ModuleErrors),\n ...ParseErrorEnum(StandardErrors),\n ...ParseErrorEnum(StrictModeErrors),\n ...ParseErrorEnum(ParseExpressionErrors),\n ...ParseErrorEnum`pipelineOperator`(PipelineOperatorErrors),\n ...ParseErrorEnum`functionBind`(FunctionBindErrors)\n};\nfunction createDefaultOptions() {\n return {\n sourceType: \"script\",\n sourceFilename: undefined,\n startIndex: 0,\n startColumn: 0,\n startLine: 1,\n allowAwaitOutsideFunction: false,\n allowReturnOutsideFunction: false,\n allowNewTargetOutsideFunction: false,\n allowImportExportEverywhere: false,\n allowSuperOutsideMethod: false,\n allowUndeclaredExports: false,\n allowYieldOutsideFunction: false,\n plugins: [],\n strictMode: undefined,\n ranges: false,\n locations: true,\n tokens: false,\n createImportExpressions: true,\n createParenthesizedExpressions: false,\n errorRecovery: false,\n attachComment: true,\n annexB: true\n };\n}\nfunction getOptions(opts) {\n const options = createDefaultOptions();\n if (opts == null) {\n return options;\n }\n if (opts.annexB != null && opts.annexB !== false) {\n throw new Error(\"The `annexB` option can only be set to `false`.\");\n }\n for (const key of Object.keys(options)) {\n if (opts[key] != null) options[key] = opts[key];\n }\n if (options.startLine === 1) {\n if (opts.startIndex == null && options.startColumn > 0) {\n options.startIndex = options.startColumn;\n } else if (opts.startColumn == null && options.startIndex > 0) {\n options.startColumn = options.startIndex;\n }\n } else if (opts.startColumn == null || opts.startIndex == null) {\n throw new Error(\"With a `startLine > 1` you must also specify `startIndex` and `startColumn`.\");\n }\n if (options.sourceType === \"commonjs\") {\n if (opts.allowAwaitOutsideFunction != null) {\n throw new Error(\"The `allowAwaitOutsideFunction` option cannot be used with `sourceType: 'commonjs'`.\");\n }\n if (opts.allowReturnOutsideFunction != null) {\n throw new Error(\"`sourceType: 'commonjs'` implies `allowReturnOutsideFunction: true`, please remove the `allowReturnOutsideFunction` option or use `sourceType: 'script'`.\");\n }\n if (opts.allowNewTargetOutsideFunction != null) {\n throw new Error(\"`sourceType: 'commonjs'` implies `allowNewTargetOutsideFunction: true`, please remove the `allowNewTargetOutsideFunction` option or use `sourceType: 'script'`.\");\n }\n }\n return options;\n}\nfunction toESTreeLocation(node) {\n const {\n start,\n end\n } = node.loc;\n node.loc.start = new Position(start.line, start.column);\n node.loc.end = new Position(end.line, end.column);\n return node;\n}\nconst estree = superClass => class ESTreeParserMixin extends superClass {\n createPosition(loc) {\n return new Position(loc.line, loc.column);\n }\n parse() {\n const file = super.parse();\n if (this.optionFlags & 512) {\n file.tokens = file.tokens.map(toESTreeLocation);\n }\n return toESTreeLocation(file);\n }\n parseRegExpLiteral({\n pattern,\n flags\n }) {\n let regex = null;\n try {\n regex = new RegExp(pattern, flags);\n } catch (_) {}\n const node = this.estreeParseLiteral(regex);\n node.regex = {\n pattern,\n flags\n };\n return node;\n }\n parseBigIntLiteral(value) {\n let bigInt;\n try {\n bigInt = BigInt(value);\n } catch {\n bigInt = null;\n }\n const node = this.estreeParseLiteral(bigInt);\n node.bigint = String(node.value || value);\n return node;\n }\n estreeParseLiteral(value) {\n return this.parseLiteral(value, \"Literal\");\n }\n parseStringLiteral(value) {\n return this.estreeParseLiteral(value);\n }\n parseNumericLiteral(value) {\n return this.estreeParseLiteral(value);\n }\n parseNullLiteral() {\n return this.estreeParseLiteral(null);\n }\n parseBooleanLiteral(value) {\n return this.estreeParseLiteral(value);\n }\n estreeParseChainExpression(node, endNode) {\n const chain = this.startNodeAtNode(node);\n chain.expression = node;\n return this.finishNodeAtNode(chain, \"ChainExpression\", endNode);\n }\n directiveToStmt(directive) {\n const expression = directive.value;\n delete directive.value;\n this.castNodeTo(expression, \"Literal\");\n expression.raw = expression.extra.raw;\n expression.value = expression.extra.expressionValue;\n const stmt = this.castNodeTo(directive, \"ExpressionStatement\");\n stmt.expression = expression;\n stmt.directive = expression.extra.rawValue;\n delete expression.extra;\n return stmt;\n }\n fillOptionalPropertiesForTSESLint(node) {}\n cloneEstreeStringLiteral(node) {\n const {\n start,\n end,\n loc,\n range,\n raw,\n value\n } = node;\n const cloned = Object.create(node.constructor.prototype);\n cloned.type = \"Literal\";\n cloned.start = start;\n cloned.end = end;\n cloned.loc = loc;\n cloned.range = range;\n cloned.raw = raw;\n cloned.value = value;\n return cloned;\n }\n initFunction(node, isAsync) {\n super.initFunction(node, isAsync);\n node.expression = false;\n }\n checkDeclaration(node) {\n if (node != null && this.isObjectProperty(node)) {\n this.checkDeclaration(node.value);\n } else {\n super.checkDeclaration(node);\n }\n }\n getObjectOrClassMethodParams(method) {\n return method.value.params;\n }\n isValidDirective(stmt) {\n return stmt.type === \"ExpressionStatement\" && stmt.expression.type === \"Literal\" && typeof stmt.expression.value === \"string\" && !stmt.expression.extra?.parenthesized;\n }\n parseBlockBody(node, allowDirectives, topLevel, end, afterBlockParse) {\n super.parseBlockBody(node, allowDirectives, topLevel, end, afterBlockParse);\n const directiveStatements = node.directives.map(d => this.directiveToStmt(d));\n node.body = directiveStatements.concat(node.body);\n delete node.directives;\n }\n parsePrivateName() {\n const node = super.parsePrivateName();\n return this.convertPrivateNameToPrivateIdentifier(node);\n }\n convertPrivateNameToPrivateIdentifier(node) {\n const name = super.getPrivateNameSV(node);\n delete node.id;\n node.name = name;\n return this.castNodeTo(node, \"PrivateIdentifier\");\n }\n isPrivateName(node) {\n return node.type === \"PrivateIdentifier\";\n }\n getPrivateNameSV(node) {\n return node.name;\n }\n parseLiteral(value, type) {\n const node = super.parseLiteral(value, type);\n node.raw = node.extra.raw;\n delete node.extra;\n return node;\n }\n parseFunctionBody(node, allowExpression, isMethod = false) {\n super.parseFunctionBody(node, allowExpression, isMethod);\n node.expression = node.body.type !== \"BlockStatement\";\n }\n parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope = false) {\n let funcNode = this.startNode();\n funcNode.kind = node.kind;\n funcNode = super.parseMethod(funcNode, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope);\n delete funcNode.kind;\n const {\n typeParameters\n } = node;\n if (typeParameters) {\n delete node.typeParameters;\n funcNode.typeParameters = typeParameters;\n this.resetStartLocationFromNode(funcNode, typeParameters);\n }\n const valueNode = this.castNodeTo(funcNode, this.hasPlugin(\"typescript\") && !funcNode.body ? \"TSEmptyBodyFunctionExpression\" : \"FunctionExpression\");\n node.value = valueNode;\n if (type === \"ClassPrivateMethod\") {\n node.computed = false;\n }\n if (this.hasPlugin(\"typescript\")) {\n if (node.abstract) {\n delete node.abstract;\n return this.finishNode(node, \"TSAbstractMethodDefinition\");\n }\n }\n if (type === \"ObjectMethod\") {\n if (node.kind === \"method\") {\n node.kind = \"init\";\n }\n node.shorthand = false;\n return this.finishNode(node, \"Property\");\n } else {\n return this.finishNode(node, \"MethodDefinition\");\n }\n }\n nameIsConstructor(key) {\n if (key.type === \"Literal\") return key.value === \"constructor\";\n return super.nameIsConstructor(key);\n }\n parseClassProperty(...args) {\n const propertyNode = super.parseClassProperty(...args);\n if (propertyNode.abstract && this.hasPlugin(\"typescript\")) {\n delete propertyNode.abstract;\n this.castNodeTo(propertyNode, \"TSAbstractPropertyDefinition\");\n } else {\n this.castNodeTo(propertyNode, \"PropertyDefinition\");\n }\n return propertyNode;\n }\n parseClassPrivateProperty(...args) {\n const propertyNode = super.parseClassPrivateProperty(...args);\n if (propertyNode.abstract && this.hasPlugin(\"typescript\")) {\n this.castNodeTo(propertyNode, \"TSAbstractPropertyDefinition\");\n } else {\n this.castNodeTo(propertyNode, \"PropertyDefinition\");\n }\n propertyNode.computed = false;\n return propertyNode;\n }\n parseClassAccessorProperty(node) {\n const accessorPropertyNode = super.parseClassAccessorProperty(node);\n if (accessorPropertyNode.abstract && this.hasPlugin(\"typescript\")) {\n delete accessorPropertyNode.abstract;\n this.castNodeTo(accessorPropertyNode, \"TSAbstractAccessorProperty\");\n } else {\n this.castNodeTo(accessorPropertyNode, \"AccessorProperty\");\n }\n return accessorPropertyNode;\n }\n parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors) {\n const node = super.parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors);\n if (node) {\n node.kind = \"init\";\n this.castNodeTo(node, \"Property\");\n }\n return node;\n }\n finishObjectProperty(node) {\n node.kind = \"init\";\n return this.finishNode(node, \"Property\");\n }\n isValidLVal(type, disallowCallExpression, isUnparenthesizedInAssign, binding) {\n return type === \"Property\" ? \"value\" : super.isValidLVal(type, disallowCallExpression, isUnparenthesizedInAssign, binding);\n }\n isAssignable(node, isBinding) {\n if (node != null && this.isObjectProperty(node)) {\n return this.isAssignable(node.value, isBinding);\n }\n return super.isAssignable(node, isBinding);\n }\n toAssignable(node, isLHS = false) {\n if (node != null && this.isObjectProperty(node)) {\n const {\n key,\n value\n } = node;\n if (this.isPrivateName(key)) {\n this.classScope.usePrivateName(this.getPrivateNameSV(key), key.start);\n }\n this.toAssignable(value, isLHS);\n } else {\n super.toAssignable(node, isLHS);\n }\n }\n toAssignableObjectExpressionProp(prop, isLast, isLHS) {\n if (prop.type === \"Property\" && (prop.kind === \"get\" || prop.kind === \"set\")) {\n this.raise(Errors.PatternHasAccessor, prop.key);\n } else if (prop.type === \"Property\" && prop.method) {\n this.raise(Errors.PatternHasMethod, prop.key);\n } else {\n super.toAssignableObjectExpressionProp(prop, isLast, isLHS);\n }\n }\n finishCallExpression(unfinished, optional) {\n const node = super.finishCallExpression(unfinished, optional);\n if (node.callee.type === \"Import\") {\n this.castNodeTo(node, \"ImportExpression\");\n node.source = node.arguments[0];\n node.options = node.arguments[1] ?? null;\n delete node.arguments;\n delete node.callee;\n } else if (node.type === \"OptionalCallExpression\") {\n this.castNodeTo(node, \"CallExpression\");\n } else {\n node.optional = false;\n }\n return node;\n }\n parseExport(unfinished, decorators) {\n const exportStartLoc = this.state.lastTokStartLoc;\n const node = super.parseExport(unfinished, decorators);\n switch (node.type) {\n case \"ExportAllDeclaration\":\n node.exported = null;\n break;\n case \"ExportNamedDeclaration\":\n if (node.specifiers.length === 1 && node.specifiers[0].type === \"ExportNamespaceSpecifier\") {\n this.castNodeTo(node, \"ExportAllDeclaration\");\n node.exported = node.specifiers[0].exported;\n delete node.specifiers;\n }\n case \"ExportDefaultDeclaration\":\n {\n const {\n declaration\n } = node;\n if (declaration?.type === \"ClassDeclaration\" && declaration.decorators?.length > 0 && declaration.start === node.start) {\n this.resetStartLocation(node, exportStartLoc);\n }\n }\n break;\n }\n return node;\n }\n stopParseSubscript(base, state) {\n const node = super.stopParseSubscript(base, state);\n if (state.optionalChainMember) {\n return this.estreeParseChainExpression(node, base);\n }\n return node;\n }\n parseMember(base, startLoc, state, computed, optional) {\n const node = super.parseMember(base, startLoc, state, computed, optional);\n if (node.type === \"OptionalMemberExpression\") {\n this.castNodeTo(node, \"MemberExpression\");\n } else {\n node.optional = false;\n }\n return node;\n }\n isOptionalMemberExpression(node) {\n if (node.type === \"ChainExpression\") {\n return node.expression.type === \"MemberExpression\";\n }\n return super.isOptionalMemberExpression(node);\n }\n hasPropertyAsPrivateName(node) {\n if (node.type === \"ChainExpression\") {\n node = node.expression;\n }\n return super.hasPropertyAsPrivateName(node);\n }\n isObjectProperty(node) {\n return node.type === \"Property\" && node.kind === \"init\" && !node.method;\n }\n isObjectMethod(node) {\n return node.type === \"Property\" && (node.method || node.kind === \"get\" || node.kind === \"set\");\n }\n castNodeTo(node, type) {\n const result = super.castNodeTo(node, type);\n this.fillOptionalPropertiesForTSESLint(result);\n return result;\n }\n cloneIdentifier(node) {\n const cloned = super.cloneIdentifier(node);\n this.fillOptionalPropertiesForTSESLint(cloned);\n return cloned;\n }\n cloneStringLiteral(node) {\n if (node.type === \"Literal\") {\n return this.cloneEstreeStringLiteral(node);\n }\n return super.cloneStringLiteral(node);\n }\n finishNodeAt(node, type, endLoc) {\n return toESTreeLocation(super.finishNodeAt(node, type, endLoc));\n }\n finishNodeAtNode(node, type, endNode) {\n return toESTreeLocation(super.finishNodeAtNode(node, type, endNode));\n }\n finishNode(node, type) {\n const result = super.finishNode(node, type);\n this.fillOptionalPropertiesForTSESLint(result);\n return result;\n }\n resetStartLocation(node, startLoc) {\n super.resetStartLocation(node, startLoc);\n toESTreeLocation(node);\n }\n resetEndLocation(node, endLoc = this.state.lastTokEndLoc) {\n super.resetEndLocation(node, endLoc);\n toESTreeLocation(node);\n }\n};\nconst beforeExpr = true;\nconst startsExpr = true;\nconst isLoop = true;\nconst isAssign = true;\nconst prefix = true;\nconst postfix = true;\nclass ExportedTokenType {\n label;\n keyword;\n beforeExpr;\n startsExpr;\n rightAssociative;\n isLoop;\n isAssign;\n prefix;\n postfix;\n binop;\n constructor(label, conf = {}) {\n this.label = label;\n this.keyword = conf.keyword;\n this.beforeExpr = !!conf.beforeExpr;\n this.startsExpr = !!conf.startsExpr;\n this.rightAssociative = !!conf.rightAssociative;\n this.isLoop = !!conf.isLoop;\n this.isAssign = !!conf.isAssign;\n this.prefix = !!conf.prefix;\n this.postfix = !!conf.postfix;\n this.binop = conf.binop != null ? conf.binop : null;\n }\n}\nconst keywords$1 = new Map();\nfunction createKeyword(name, options = {}) {\n options.keyword = name;\n const token = createToken(name, options);\n keywords$1.set(name, token);\n return token;\n}\nfunction createBinop(name, binop) {\n return createToken(name, {\n beforeExpr,\n binop\n });\n}\nlet tokenTypeCounter = -1;\nconst tokenTypes = [];\nconst tokenLabels = [];\nconst tokenBinops = [];\nconst tokenBeforeExprs = [];\nconst tokenStartsExprs = [];\nconst tokenPrefixes = [];\nfunction createToken(name, options = {}) {\n ++tokenTypeCounter;\n tokenLabels.push(name);\n tokenBinops.push(options.binop ?? -1);\n tokenBeforeExprs.push(options.beforeExpr ?? false);\n tokenStartsExprs.push(options.startsExpr ?? false);\n tokenPrefixes.push(options.prefix ?? false);\n tokenTypes.push(new ExportedTokenType(name, options));\n return tokenTypeCounter;\n}\nfunction createKeywordLike(name, options = {}) {\n ++tokenTypeCounter;\n keywords$1.set(name, tokenTypeCounter);\n tokenLabels.push(name);\n tokenBinops.push(options.binop ?? -1);\n tokenBeforeExprs.push(options.beforeExpr ?? false);\n tokenStartsExprs.push(options.startsExpr ?? false);\n tokenPrefixes.push(options.prefix ?? false);\n tokenTypes.push(new ExportedTokenType(\"name\", options));\n return tokenTypeCounter;\n}\nconst tt = {\n bracketL: createToken(\"[\", {\n beforeExpr,\n startsExpr\n }),\n bracketR: createToken(\"]\"),\n braceL: createToken(\"{\", {\n beforeExpr,\n startsExpr\n }),\n braceBarL: createToken(\"{|\", {\n beforeExpr,\n startsExpr\n }),\n braceR: createToken(\"}\"),\n braceBarR: createToken(\"|}\"),\n parenL: createToken(\"(\", {\n beforeExpr,\n startsExpr\n }),\n parenR: createToken(\")\"),\n comma: createToken(\",\", {\n beforeExpr\n }),\n semi: createToken(\";\", {\n beforeExpr\n }),\n colon: createToken(\":\", {\n beforeExpr\n }),\n doubleColon: createToken(\"::\", {\n beforeExpr\n }),\n dot: createToken(\".\"),\n question: createToken(\"?\", {\n beforeExpr\n }),\n questionDot: createToken(\"?.\"),\n arrow: createToken(\"=>\", {\n beforeExpr\n }),\n template: createToken(\"template\"),\n ellipsis: createToken(\"...\", {\n beforeExpr\n }),\n backQuote: createToken(\"`\", {\n startsExpr\n }),\n dollarBraceL: createToken(\"${\", {\n beforeExpr,\n startsExpr\n }),\n templateTail: createToken(\"...`\", {\n startsExpr\n }),\n templateNonTail: createToken(\"...${\", {\n beforeExpr,\n startsExpr\n }),\n at: createToken(\"@\"),\n hash: createToken(\"#\", {\n startsExpr\n }),\n interpreterDirective: createToken(\"#!...\"),\n eq: createToken(\"=\", {\n beforeExpr,\n isAssign\n }),\n assign: createToken(\"_=\", {\n beforeExpr,\n isAssign\n }),\n slashAssign: createToken(\"_=\", {\n beforeExpr,\n isAssign\n }),\n xorAssign: createToken(\"_=\", {\n beforeExpr,\n isAssign\n }),\n moduloAssign: createToken(\"_=\", {\n beforeExpr,\n isAssign\n }),\n incDec: createToken(\"++/--\", {\n prefix,\n postfix,\n startsExpr\n }),\n bang: createToken(\"!\", {\n beforeExpr,\n prefix,\n startsExpr\n }),\n tilde: createToken(\"~\", {\n beforeExpr,\n prefix,\n startsExpr\n }),\n doubleCaret: createToken(\"^^\", {\n startsExpr\n }),\n doubleAt: createToken(\"@@\", {\n startsExpr\n }),\n pipeline: createBinop(\"|>\", 0),\n nullishCoalescing: createBinop(\"??\", 1),\n logicalOR: createBinop(\"||\", 1),\n logicalAND: createBinop(\"&&\", 2),\n bitwiseOR: createBinop(\"|\", 3),\n bitwiseXOR: createBinop(\"^\", 4),\n bitwiseAND: createBinop(\"&\", 5),\n equality: createBinop(\"==/!=/===/!==\", 6),\n lt: createBinop(\"</>/<=/>=\", 7),\n gt: createBinop(\"</>/<=/>=\", 7),\n relational: createBinop(\"</>/<=/>=\", 7),\n bitShift: createBinop(\"<</>>/>>>\", 8),\n bitShiftL: createBinop(\"<</>>/>>>\", 8),\n bitShiftR: createBinop(\"<</>>/>>>\", 8),\n plusMin: createToken(\"+/-\", {\n beforeExpr,\n binop: 9,\n prefix,\n startsExpr\n }),\n modulo: createToken(\"%\", {\n binop: 10,\n startsExpr\n }),\n star: createToken(\"*\", {\n binop: 10\n }),\n slash: createBinop(\"/\", 10),\n exponent: createToken(\"**\", {\n beforeExpr,\n binop: 11,\n rightAssociative: true\n }),\n _in: createKeyword(\"in\", {\n beforeExpr,\n binop: 7\n }),\n _instanceof: createKeyword(\"instanceof\", {\n beforeExpr,\n binop: 7\n }),\n _break: createKeyword(\"break\"),\n _case: createKeyword(\"case\", {\n beforeExpr\n }),\n _catch: createKeyword(\"catch\"),\n _continue: createKeyword(\"continue\"),\n _debugger: createKeyword(\"debugger\"),\n _default: createKeyword(\"default\", {\n beforeExpr\n }),\n _else: createKeyword(\"else\", {\n beforeExpr\n }),\n _finally: createKeyword(\"finally\"),\n _function: createKeyword(\"function\", {\n startsExpr\n }),\n _if: createKeyword(\"if\"),\n _return: createKeyword(\"return\", {\n beforeExpr\n }),\n _switch: createKeyword(\"switch\"),\n _throw: createKeyword(\"throw\", {\n beforeExpr,\n prefix,\n startsExpr\n }),\n _try: createKeyword(\"try\"),\n _var: createKeyword(\"var\"),\n _const: createKeyword(\"const\"),\n _with: createKeyword(\"with\"),\n _new: createKeyword(\"new\", {\n beforeExpr,\n startsExpr\n }),\n _this: createKeyword(\"this\", {\n startsExpr\n }),\n _super: createKeyword(\"super\", {\n startsExpr\n }),\n _class: createKeyword(\"class\", {\n startsExpr\n }),\n _extends: createKeyword(\"extends\", {\n beforeExpr\n }),\n _export: createKeyword(\"export\"),\n _import: createKeyword(\"import\", {\n startsExpr\n }),\n _null: createKeyword(\"null\", {\n startsExpr\n }),\n _true: createKeyword(\"true\", {\n startsExpr\n }),\n _false: createKeyword(\"false\", {\n startsExpr\n }),\n _typeof: createKeyword(\"typeof\", {\n beforeExpr,\n prefix,\n startsExpr\n }),\n _void: createKeyword(\"void\", {\n beforeExpr,\n prefix,\n startsExpr\n }),\n _delete: createKeyword(\"delete\", {\n beforeExpr,\n prefix,\n startsExpr\n }),\n _do: createKeyword(\"do\", {\n isLoop,\n beforeExpr\n }),\n _for: createKeyword(\"for\", {\n isLoop\n }),\n _while: createKeyword(\"while\", {\n isLoop\n }),\n _as: createKeywordLike(\"as\", {\n startsExpr\n }),\n _assert: createKeywordLike(\"assert\", {\n startsExpr\n }),\n _async: createKeywordLike(\"async\", {\n startsExpr\n }),\n _await: createKeywordLike(\"await\", {\n startsExpr\n }),\n _defer: createKeywordLike(\"defer\", {\n startsExpr\n }),\n _from: createKeywordLike(\"from\", {\n startsExpr\n }),\n _get: createKeywordLike(\"get\", {\n startsExpr\n }),\n _let: createKeywordLike(\"let\", {\n startsExpr\n }),\n _meta: createKeywordLike(\"meta\", {\n startsExpr\n }),\n _of: createKeywordLike(\"of\", {\n startsExpr\n }),\n _sent: createKeywordLike(\"sent\", {\n startsExpr\n }),\n _set: createKeywordLike(\"set\", {\n startsExpr\n }),\n _source: createKeywordLike(\"source\", {\n startsExpr\n }),\n _static: createKeywordLike(\"static\", {\n startsExpr\n }),\n _using: createKeywordLike(\"using\", {\n startsExpr\n }),\n _yield: createKeywordLike(\"yield\", {\n startsExpr\n }),\n _asserts: createKeywordLike(\"asserts\", {\n startsExpr\n }),\n _checks: createKeywordLike(\"checks\", {\n startsExpr\n }),\n _exports: createKeywordLike(\"exports\", {\n startsExpr\n }),\n _global: createKeywordLike(\"global\", {\n startsExpr\n }),\n _implements: createKeywordLike(\"implements\", {\n startsExpr\n }),\n _intrinsic: createKeywordLike(\"intrinsic\", {\n startsExpr\n }),\n _infer: createKeywordLike(\"infer\", {\n startsExpr\n }),\n _is: createKeywordLike(\"is\", {\n startsExpr\n }),\n _mixins: createKeywordLike(\"mixins\", {\n startsExpr\n }),\n _proto: createKeywordLike(\"proto\", {\n startsExpr\n }),\n _require: createKeywordLike(\"require\", {\n startsExpr\n }),\n _satisfies: createKeywordLike(\"satisfies\", {\n startsExpr\n }),\n _keyof: createKeywordLike(\"keyof\", {\n startsExpr\n }),\n _readonly: createKeywordLike(\"readonly\", {\n startsExpr\n }),\n _unique: createKeywordLike(\"unique\", {\n startsExpr\n }),\n _abstract: createKeywordLike(\"abstract\", {\n startsExpr\n }),\n _declare: createKeywordLike(\"declare\", {\n startsExpr\n }),\n _enum: createKeywordLike(\"enum\", {\n startsExpr\n }),\n _module: createKeywordLike(\"module\", {\n startsExpr\n }),\n _namespace: createKeywordLike(\"namespace\", {\n startsExpr\n }),\n _interface: createKeywordLike(\"interface\", {\n startsExpr\n }),\n _type: createKeywordLike(\"type\", {\n startsExpr\n }),\n _opaque: createKeywordLike(\"opaque\", {\n startsExpr\n }),\n name: createToken(\"name\", {\n startsExpr\n }),\n placeholder: createToken(\"%%\", {\n startsExpr\n }),\n string: createToken(\"string\", {\n startsExpr\n }),\n num: createToken(\"num\", {\n startsExpr\n }),\n bigint: createToken(\"bigint\", {\n startsExpr\n }),\n regexp: createToken(\"regexp\", {\n startsExpr\n }),\n privateName: createToken(\"#name\", {\n startsExpr\n }),\n eof: createToken(\"eof\"),\n jsxName: createToken(\"jsxName\"),\n jsxText: createToken(\"jsxText\", {\n beforeExpr\n }),\n jsxTagStart: createToken(\"jsxTagStart\", {\n startsExpr\n }),\n jsxTagEnd: createToken(\"jsxTagEnd\")\n};\nfunction tokenIsIdentifier(token) {\n return token >= 89 && token <= 129;\n}\nfunction tokenKeywordOrIdentifierIsKeyword(token) {\n return token <= 88;\n}\nfunction tokenIsKeywordOrIdentifier(token) {\n return token >= 54 && token <= 129;\n}\nfunction tokenIsLiteralPropertyName(token) {\n return token >= 54 && token <= 132;\n}\nfunction tokenComesBeforeExpression(token) {\n return tokenBeforeExprs[token];\n}\nfunction tokenCanStartExpression(token) {\n return tokenStartsExprs[token];\n}\nfunction tokenIsAssignment(token) {\n return token >= 25 && token <= 29;\n}\nfunction tokenIsFlowInterfaceOrTypeOrOpaque(token) {\n return token >= 125 && token <= 127;\n}\nfunction tokenIsLoop(token) {\n return token >= 86 && token <= 88;\n}\nfunction tokenIsKeyword(token) {\n return token >= 54 && token <= 88;\n}\nfunction tokenIsOperator(token) {\n return token >= 35 && token <= 55;\n}\nfunction tokenIsPostfix(token) {\n return token === 30;\n}\nfunction tokenIsPrefix(token) {\n return tokenPrefixes[token];\n}\nfunction tokenIsTSTypeOperator(token) {\n return token >= 117 && token <= 119;\n}\nfunction tokenIsTSDeclarationStart(token) {\n return token >= 120 && token <= 126;\n}\nfunction tokenLabelName(token) {\n return tokenLabels[token];\n}\nfunction tokenOperatorPrecedence(token) {\n return tokenBinops[token];\n}\nfunction tokenIsRightAssociative(token) {\n return token === 53;\n}\nfunction tokenIsTemplate(token) {\n return token >= 20 && token <= 21;\n}\nfunction getExportedToken(token) {\n return tokenTypes[token];\n}\nclass TokContext {\n constructor(token, preserveSpace) {\n this.token = token;\n this.preserveSpace = !!preserveSpace;\n }\n token;\n preserveSpace;\n}\nconst types = {\n brace: new TokContext(\"{\"),\n j_oTag: new TokContext(\"<tag\"),\n j_cTag: new TokContext(\"</tag\"),\n j_expr: new TokContext(\"<tag>...</tag>\", true)\n};\nconst bmpIdentifierStartChars = \"\\\\xaa\\\\xb5\\\\xba\\\\xc0-\\\\xd6\\\\xd8-\\\\xf6\\\\xf8-\\\\u02c1\\\\u02c6-\\\\u02d1\\\\u02e0-\\\\u02e4\\\\u02ec\\\\u02ee\\\\u0370-\\\\u0374\\\\u0376\\\\u0377\\\\u037a-\\\\u037d\\\\u037f\\\\u0386\\\\u0388-\\\\u038a\\\\u038c\\\\u038e-\\\\u03a1\\\\u03a3-\\\\u03f5\\\\u03f7-\\\\u0481\\\\u048a-\\\\u052f\\\\u0531-\\\\u0556\\\\u0559\\\\u0560-\\\\u0588\\\\u05d0-\\\\u05ea\\\\u05ef-\\\\u05f2\\\\u0620-\\\\u064a\\\\u066e\\\\u066f\\\\u0671-\\\\u06d3\\\\u06d5\\\\u06e5\\\\u06e6\\\\u06ee\\\\u06ef\\\\u06fa-\\\\u06fc\\\\u06ff\\\\u0710\\\\u0712-\\\\u072f\\\\u074d-\\\\u07a5\\\\u07b1\\\\u07ca-\\\\u07ea\\\\u07f4\\\\u07f5\\\\u07fa\\\\u0800-\\\\u0815\\\\u081a\\\\u0824\\\\u0828\\\\u0840-\\\\u0858\\\\u0860-\\\\u086a\\\\u0870-\\\\u0887\\\\u0889-\\\\u088f\\\\u08a0-\\\\u08c9\\\\u0904-\\\\u0939\\\\u093d\\\\u0950\\\\u0958-\\\\u0961\\\\u0971-\\\\u0980\\\\u0985-\\\\u098c\\\\u098f\\\\u0990\\\\u0993-\\\\u09a8\\\\u09aa-\\\\u09b0\\\\u09b2\\\\u09b6-\\\\u09b9\\\\u09bd\\\\u09ce\\\\u09dc\\\\u09dd\\\\u09df-\\\\u09e1\\\\u09f0\\\\u09f1\\\\u09fc\\\\u0a05-\\\\u0a0a\\\\u0a0f\\\\u0a10\\\\u0a13-\\\\u0a28\\\\u0a2a-\\\\u0a30\\\\u0a32\\\\u0a33\\\\u0a35\\\\u0a36\\\\u0a38\\\\u0a39\\\\u0a59-\\\\u0a5c\\\\u0a5e\\\\u0a72-\\\\u0a74\\\\u0a85-\\\\u0a8d\\\\u0a8f-\\\\u0a91\\\\u0a93-\\\\u0aa8\\\\u0aaa-\\\\u0ab0\\\\u0ab2\\\\u0ab3\\\\u0ab5-\\\\u0ab9\\\\u0abd\\\\u0ad0\\\\u0ae0\\\\u0ae1\\\\u0af9\\\\u0b05-\\\\u0b0c\\\\u0b0f\\\\u0b10\\\\u0b13-\\\\u0b28\\\\u0b2a-\\\\u0b30\\\\u0b32\\\\u0b33\\\\u0b35-\\\\u0b39\\\\u0b3d\\\\u0b5c\\\\u0b5d\\\\u0b5f-\\\\u0b61\\\\u0b71\\\\u0b83\\\\u0b85-\\\\u0b8a\\\\u0b8e-\\\\u0b90\\\\u0b92-\\\\u0b95\\\\u0b99\\\\u0b9a\\\\u0b9c\\\\u0b9e\\\\u0b9f\\\\u0ba3\\\\u0ba4\\\\u0ba8-\\\\u0baa\\\\u0bae-\\\\u0bb9\\\\u0bd0\\\\u0c05-\\\\u0c0c\\\\u0c0e-\\\\u0c10\\\\u0c12-\\\\u0c28\\\\u0c2a-\\\\u0c39\\\\u0c3d\\\\u0c58-\\\\u0c5a\\\\u0c5c\\\\u0c5d\\\\u0c60\\\\u0c61\\\\u0c80\\\\u0c85-\\\\u0c8c\\\\u0c8e-\\\\u0c90\\\\u0c92-\\\\u0ca8\\\\u0caa-\\\\u0cb3\\\\u0cb5-\\\\u0cb9\\\\u0cbd\\\\u0cdc-\\\\u0cde\\\\u0ce0\\\\u0ce1\\\\u0cf1\\\\u0cf2\\\\u0d04-\\\\u0d0c\\\\u0d0e-\\\\u0d10\\\\u0d12-\\\\u0d3a\\\\u0d3d\\\\u0d4e\\\\u0d54-\\\\u0d56\\\\u0d5f-\\\\u0d61\\\\u0d7a-\\\\u0d7f\\\\u0d85-\\\\u0d96\\\\u0d9a-\\\\u0db1\\\\u0db3-\\\\u0dbb\\\\u0dbd\\\\u0dc0-\\\\u0dc6\\\\u0e01-\\\\u0e30\\\\u0e32\\\\u0e33\\\\u0e40-\\\\u0e46\\\\u0e81\\\\u0e82\\\\u0e84\\\\u0e86-\\\\u0e8a\\\\u0e8c-\\\\u0ea3\\\\u0ea5\\\\u0ea7-\\\\u0eb0\\\\u0eb2\\\\u0eb3\\\\u0ebd\\\\u0ec0-\\\\u0ec4\\\\u0ec6\\\\u0edc-\\\\u0edf\\\\u0f00\\\\u0f40-\\\\u0f47\\\\u0f49-\\\\u0f6c\\\\u0f88-\\\\u0f8c\\\\u1000-\\\\u102a\\\\u103f\\\\u1050-\\\\u1055\\\\u105a-\\\\u105d\\\\u1061\\\\u1065\\\\u1066\\\\u106e-\\\\u1070\\\\u1075-\\\\u1081\\\\u108e\\\\u10a0-\\\\u10c5\\\\u10c7\\\\u10cd\\\\u10d0-\\\\u10fa\\\\u10fc-\\\\u1248\\\\u124a-\\\\u124d\\\\u1250-\\\\u1256\\\\u1258\\\\u125a-\\\\u125d\\\\u1260-\\\\u1288\\\\u128a-\\\\u128d\\\\u1290-\\\\u12b0\\\\u12b2-\\\\u12b5\\\\u12b8-\\\\u12be\\\\u12c0\\\\u12c2-\\\\u12c5\\\\u12c8-\\\\u12d6\\\\u12d8-\\\\u1310\\\\u1312-\\\\u1315\\\\u1318-\\\\u135a\\\\u1380-\\\\u138f\\\\u13a0-\\\\u13f5\\\\u13f8-\\\\u13fd\\\\u1401-\\\\u166c\\\\u166f-\\\\u167f\\\\u1681-\\\\u169a\\\\u16a0-\\\\u16ea\\\\u16ee-\\\\u16f8\\\\u1700-\\\\u1711\\\\u171f-\\\\u1731\\\\u1740-\\\\u1751\\\\u1760-\\\\u176c\\\\u176e-\\\\u1770\\\\u1780-\\\\u17b3\\\\u17d7\\\\u17dc\\\\u1820-\\\\u1878\\\\u1880-\\\\u18a8\\\\u18aa\\\\u18b0-\\\\u18f5\\\\u1900-\\\\u191e\\\\u1950-\\\\u196d\\\\u1970-\\\\u1974\\\\u1980-\\\\u19ab\\\\u19b0-\\\\u19c9\\\\u1a00-\\\\u1a16\\\\u1a20-\\\\u1a54\\\\u1aa7\\\\u1b05-\\\\u1b33\\\\u1b45-\\\\u1b4c\\\\u1b83-\\\\u1ba0\\\\u1bae\\\\u1baf\\\\u1bba-\\\\u1be5\\\\u1c00-\\\\u1c23\\\\u1c4d-\\\\u1c4f\\\\u1c5a-\\\\u1c7d\\\\u1c80-\\\\u1c8a\\\\u1c90-\\\\u1cba\\\\u1cbd-\\\\u1cbf\\\\u1ce9-\\\\u1cec\\\\u1cee-\\\\u1cf3\\\\u1cf5\\\\u1cf6\\\\u1cfa\\\\u1d00-\\\\u1dbf\\\\u1e00-\\\\u1f15\\\\u1f18-\\\\u1f1d\\\\u1f20-\\\\u1f45\\\\u1f48-\\\\u1f4d\\\\u1f50-\\\\u1f57\\\\u1f59\\\\u1f5b\\\\u1f5d\\\\u1f5f-\\\\u1f7d\\\\u1f80-\\\\u1fb4\\\\u1fb6-\\\\u1fbc\\\\u1fbe\\\\u1fc2-\\\\u1fc4\\\\u1fc6-\\\\u1fcc\\\\u1fd0-\\\\u1fd3\\\\u1fd6-\\\\u1fdb\\\\u1fe0-\\\\u1fec\\\\u1ff2-\\\\u1ff4\\\\u1ff6-\\\\u1ffc\\\\u2071\\\\u207f\\\\u2090-\\\\u209c\\\\u2102\\\\u2107\\\\u210a-\\\\u2113\\\\u2115\\\\u2118-\\\\u211d\\\\u2124\\\\u2126\\\\u2128\\\\u212a-\\\\u2139\\\\u213c-\\\\u213f\\\\u2145-\\\\u2149\\\\u214e\\\\u2160-\\\\u2188\\\\u2c00-\\\\u2ce4\\\\u2ceb-\\\\u2cee\\\\u2cf2\\\\u2cf3\\\\u2d00-\\\\u2d25\\\\u2d27\\\\u2d2d\\\\u2d30-\\\\u2d67\\\\u2d6f\\\\u2d80-\\\\u2d96\\\\u2da0-\\\\u2da6\\\\u2da8-\\\\u2dae\\\\u2db0-\\\\u2db6\\\\u2db8-\\\\u2dbe\\\\u2dc0-\\\\u2dc6\\\\u2dc8-\\\\u2dce\\\\u2dd0-\\\\u2dd6\\\\u2dd8-\\\\u2dde\\\\u3005-\\\\u3007\\\\u3021-\\\\u3029\\\\u3031-\\\\u3035\\\\u3038-\\\\u303c\\\\u3041-\\\\u3096\\\\u309b-\\\\u309f\\\\u30a1-\\\\u30fa\\\\u30fc-\\\\u30ff\\\\u3105-\\\\u312f\\\\u3131-\\\\u318e\\\\u31a0-\\\\u31bf\\\\u31f0-\\\\u31ff\\\\u3400-\\\\u4dbf\\\\u4e00-\\\\ua48c\\\\ua4d0-\\\\ua4fd\\\\ua500-\\\\ua60c\\\\ua610-\\\\ua61f\\\\ua62a\\\\ua62b\\\\ua640-\\\\ua66e\\\\ua67f-\\\\ua69d\\\\ua6a0-\\\\ua6ef\\\\ua717-\\\\ua71f\\\\ua722-\\\\ua788\\\\ua78b-\\\\ua7dc\\\\ua7f1-\\\\ua801\\\\ua803-\\\\ua805\\\\ua807-\\\\ua80a\\\\ua80c-\\\\ua822\\\\ua840-\\\\ua873\\\\ua882-\\\\ua8b3\\\\ua8f2-\\\\ua8f7\\\\ua8fb\\\\ua8fd\\\\ua8fe\\\\ua90a-\\\\ua925\\\\ua930-\\\\ua946\\\\ua960-\\\\ua97c\\\\ua984-\\\\ua9b2\\\\ua9cf\\\\ua9e0-\\\\ua9e4\\\\ua9e6-\\\\ua9ef\\\\ua9fa-\\\\ua9fe\\\\uaa00-\\\\uaa28\\\\uaa40-\\\\uaa42\\\\uaa44-\\\\uaa4b\\\\uaa60-\\\\uaa76\\\\uaa7a\\\\uaa7e-\\\\uaaaf\\\\uaab1\\\\uaab5\\\\uaab6\\\\uaab9-\\\\uaabd\\\\uaac0\\\\uaac2\\\\uaadb-\\\\uaadd\\\\uaae0-\\\\uaaea\\\\uaaf2-\\\\uaaf4\\\\uab01-\\\\uab06\\\\uab09-\\\\uab0e\\\\uab11-\\\\uab16\\\\uab20-\\\\uab26\\\\uab28-\\\\uab2e\\\\uab30-\\\\uab5a\\\\uab5c-\\\\uab69\\\\uab70-\\\\uabe2\\\\uac00-\\\\ud7a3\\\\ud7b0-\\\\ud7c6\\\\ud7cb-\\\\ud7fb\\\\uf900-\\\\ufa6d\\\\ufa70-\\\\ufad9\\\\ufb00-\\\\ufb06\\\\ufb13-\\\\ufb17\\\\ufb1d\\\\ufb1f-\\\\ufb28\\\\ufb2a-\\\\ufb36\\\\ufb38-\\\\ufb3c\\\\ufb3e\\\\ufb40\\\\ufb41\\\\ufb43\\\\ufb44\\\\ufb46-\\\\ufbb1\\\\ufbd3-\\\\ufd3d\\\\ufd50-\\\\ufd8f\\\\ufd92-\\\\ufdc7\\\\ufdf0-\\\\ufdfb\\\\ufe70-\\\\ufe74\\\\ufe76-\\\\ufefc\\\\uff21-\\\\uff3a\\\\uff41-\\\\uff5a\\\\uff66-\\\\uffbe\\\\uffc2-\\\\uffc7\\\\uffca-\\\\uffcf\\\\uffd2-\\\\uffd7\\\\uffda-\\\\uffdc\";\nconst bmpIdentifierChars = \"\\\\xb7\\\\u0300-\\\\u036f\\\\u0387\\\\u0483-\\\\u0487\\\\u0591-\\\\u05bd\\\\u05bf\\\\u05c1\\\\u05c2\\\\u05c4\\\\u05c5\\\\u05c7\\\\u0610-\\\\u061a\\\\u064b-\\\\u0669\\\\u0670\\\\u06d6-\\\\u06dc\\\\u06df-\\\\u06e4\\\\u06e7\\\\u06e8\\\\u06ea-\\\\u06ed\\\\u06f0-\\\\u06f9\\\\u0711\\\\u0730-\\\\u074a\\\\u07a6-\\\\u07b0\\\\u07c0-\\\\u07c9\\\\u07eb-\\\\u07f3\\\\u07fd\\\\u0816-\\\\u0819\\\\u081b-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082d\\\\u0859-\\\\u085b\\\\u0897-\\\\u089f\\\\u08ca-\\\\u08e1\\\\u08e3-\\\\u0903\\\\u093a-\\\\u093c\\\\u093e-\\\\u094f\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0966-\\\\u096f\\\\u0981-\\\\u0983\\\\u09bc\\\\u09be-\\\\u09c4\\\\u09c7\\\\u09c8\\\\u09cb-\\\\u09cd\\\\u09d7\\\\u09e2\\\\u09e3\\\\u09e6-\\\\u09ef\\\\u09fe\\\\u0a01-\\\\u0a03\\\\u0a3c\\\\u0a3e-\\\\u0a42\\\\u0a47\\\\u0a48\\\\u0a4b-\\\\u0a4d\\\\u0a51\\\\u0a66-\\\\u0a71\\\\u0a75\\\\u0a81-\\\\u0a83\\\\u0abc\\\\u0abe-\\\\u0ac5\\\\u0ac7-\\\\u0ac9\\\\u0acb-\\\\u0acd\\\\u0ae2\\\\u0ae3\\\\u0ae6-\\\\u0aef\\\\u0afa-\\\\u0aff\\\\u0b01-\\\\u0b03\\\\u0b3c\\\\u0b3e-\\\\u0b44\\\\u0b47\\\\u0b48\\\\u0b4b-\\\\u0b4d\\\\u0b55-\\\\u0b57\\\\u0b62\\\\u0b63\\\\u0b66-\\\\u0b6f\\\\u0b82\\\\u0bbe-\\\\u0bc2\\\\u0bc6-\\\\u0bc8\\\\u0bca-\\\\u0bcd\\\\u0bd7\\\\u0be6-\\\\u0bef\\\\u0c00-\\\\u0c04\\\\u0c3c\\\\u0c3e-\\\\u0c44\\\\u0c46-\\\\u0c48\\\\u0c4a-\\\\u0c4d\\\\u0c55\\\\u0c56\\\\u0c62\\\\u0c63\\\\u0c66-\\\\u0c6f\\\\u0c81-\\\\u0c83\\\\u0cbc\\\\u0cbe-\\\\u0cc4\\\\u0cc6-\\\\u0cc8\\\\u0cca-\\\\u0ccd\\\\u0cd5\\\\u0cd6\\\\u0ce2\\\\u0ce3\\\\u0ce6-\\\\u0cef\\\\u0cf3\\\\u0d00-\\\\u0d03\\\\u0d3b\\\\u0d3c\\\\u0d3e-\\\\u0d44\\\\u0d46-\\\\u0d48\\\\u0d4a-\\\\u0d4d\\\\u0d57\\\\u0d62\\\\u0d63\\\\u0d66-\\\\u0d6f\\\\u0d81-\\\\u0d83\\\\u0dca\\\\u0dcf-\\\\u0dd4\\\\u0dd6\\\\u0dd8-\\\\u0ddf\\\\u0de6-\\\\u0def\\\\u0df2\\\\u0df3\\\\u0e31\\\\u0e34-\\\\u0e3a\\\\u0e47-\\\\u0e4e\\\\u0e50-\\\\u0e59\\\\u0eb1\\\\u0eb4-\\\\u0ebc\\\\u0ec8-\\\\u0ece\\\\u0ed0-\\\\u0ed9\\\\u0f18\\\\u0f19\\\\u0f20-\\\\u0f29\\\\u0f35\\\\u0f37\\\\u0f39\\\\u0f3e\\\\u0f3f\\\\u0f71-\\\\u0f84\\\\u0f86\\\\u0f87\\\\u0f8d-\\\\u0f97\\\\u0f99-\\\\u0fbc\\\\u0fc6\\\\u102b-\\\\u103e\\\\u1040-\\\\u1049\\\\u1056-\\\\u1059\\\\u105e-\\\\u1060\\\\u1062-\\\\u1064\\\\u1067-\\\\u106d\\\\u1071-\\\\u1074\\\\u1082-\\\\u108d\\\\u108f-\\\\u109d\\\\u135d-\\\\u135f\\\\u1369-\\\\u1371\\\\u1712-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17b4-\\\\u17d3\\\\u17dd\\\\u17e0-\\\\u17e9\\\\u180b-\\\\u180d\\\\u180f-\\\\u1819\\\\u18a9\\\\u1920-\\\\u192b\\\\u1930-\\\\u193b\\\\u1946-\\\\u194f\\\\u19d0-\\\\u19da\\\\u1a17-\\\\u1a1b\\\\u1a55-\\\\u1a5e\\\\u1a60-\\\\u1a7c\\\\u1a7f-\\\\u1a89\\\\u1a90-\\\\u1a99\\\\u1ab0-\\\\u1abd\\\\u1abf-\\\\u1add\\\\u1ae0-\\\\u1aeb\\\\u1b00-\\\\u1b04\\\\u1b34-\\\\u1b44\\\\u1b50-\\\\u1b59\\\\u1b6b-\\\\u1b73\\\\u1b80-\\\\u1b82\\\\u1ba1-\\\\u1bad\\\\u1bb0-\\\\u1bb9\\\\u1be6-\\\\u1bf3\\\\u1c24-\\\\u1c37\\\\u1c40-\\\\u1c49\\\\u1c50-\\\\u1c59\\\\u1cd0-\\\\u1cd2\\\\u1cd4-\\\\u1ce8\\\\u1ced\\\\u1cf4\\\\u1cf7-\\\\u1cf9\\\\u1dc0-\\\\u1dff\\\\u200c\\\\u200d\\\\u203f\\\\u2040\\\\u2054\\\\u20d0-\\\\u20dc\\\\u20e1\\\\u20e5-\\\\u20f0\\\\u2cef-\\\\u2cf1\\\\u2d7f\\\\u2de0-\\\\u2dff\\\\u302a-\\\\u302f\\\\u3099\\\\u309a\\\\u30fb\\\\ua620-\\\\ua629\\\\ua66f\\\\ua674-\\\\ua67d\\\\ua69e\\\\ua69f\\\\ua6f0\\\\ua6f1\\\\ua802\\\\ua806\\\\ua80b\\\\ua823-\\\\ua827\\\\ua82c\\\\ua880\\\\ua881\\\\ua8b4-\\\\ua8c5\\\\ua8d0-\\\\ua8d9\\\\ua8e0-\\\\ua8f1\\\\ua8ff-\\\\ua909\\\\ua926-\\\\ua92d\\\\ua947-\\\\ua953\\\\ua980-\\\\ua983\\\\ua9b3-\\\\ua9c0\\\\ua9d0-\\\\ua9d9\\\\ua9e5\\\\ua9f0-\\\\ua9f9\\\\uaa29-\\\\uaa36\\\\uaa43\\\\uaa4c\\\\uaa4d\\\\uaa50-\\\\uaa59\\\\uaa7b-\\\\uaa7d\\\\uaab0\\\\uaab2-\\\\uaab4\\\\uaab7\\\\uaab8\\\\uaabe\\\\uaabf\\\\uaac1\\\\uaaeb-\\\\uaaef\\\\uaaf5\\\\uaaf6\\\\uabe3-\\\\uabea\\\\uabec\\\\uabed\\\\uabf0-\\\\uabf9\\\\ufb1e\\\\ufe00-\\\\ufe0f\\\\ufe20-\\\\ufe2f\\\\ufe33\\\\ufe34\\\\ufe4d-\\\\ufe4f\\\\uff10-\\\\uff19\\\\uff3f\\\\uff65\";\nconst supplementaryIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 4, 51, 13, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 7, 25, 39, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 39, 27, 10, 22, 251, 41, 7, 1, 17, 5, 57, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 31, 9, 2, 0, 3, 0, 2, 37, 2, 0, 26, 0, 2, 0, 45, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 200, 32, 32, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 24, 43, 261, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 26, 3994, 6, 582, 6842, 29, 1763, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 433, 44, 212, 63, 33, 24, 3, 24, 45, 74, 6, 0, 67, 12, 65, 1, 2, 0, 15, 4, 10, 7381, 42, 31, 98, 114, 8702, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 229, 29, 3, 0, 208, 30, 2, 2, 2, 1, 2, 6, 3, 4, 10, 1, 225, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4381, 3, 5773, 3, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 8489];\nconst supplementaryIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 7, 9, 32, 4, 318, 1, 78, 5, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 68, 8, 2, 0, 3, 0, 2, 3, 2, 4, 2, 0, 15, 1, 83, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 7, 19, 58, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 199, 7, 137, 9, 54, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 55, 9, 266, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 10, 5350, 0, 7, 14, 11465, 27, 2343, 9, 87, 9, 39, 4, 60, 6, 26, 9, 535, 9, 470, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4178, 9, 519, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 245, 1, 2, 9, 233, 0, 3, 0, 8, 1, 6, 0, 475, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];\nconst bmpIdentifierStart = new RegExp(\"[\" + bmpIdentifierStartChars + \"]\");\nconst bmpIdentifier = new RegExp(\"[\" + bmpIdentifierStartChars + bmpIdentifierChars + \"]\");\nfunction isInSupplementarySet(code, set) {\n let pos = 0x10000;\n for (let i = 0, length = set.length; i < length; i += 2) {\n pos += set[i];\n if (pos > code) return false;\n pos += set[i + 1];\n if (pos >= code) return true;\n }\n return false;\n}\nfunction isIdentifierStart(code) {\n if (code < 65) return code === 36;\n if (code <= 90) return true;\n if (code < 97) return code === 95;\n if (code <= 122) return true;\n if (code <= 0xffff) {\n return code >= 0xaa && bmpIdentifierStart.test(String.fromCharCode(code));\n }\n return isInSupplementarySet(code, supplementaryIdentifierStartCodes);\n}\nfunction isIdentifierChar(code) {\n if (code < 48) return code === 36;\n if (code < 58) return true;\n if (code < 65) return false;\n if (code <= 90) return true;\n if (code < 97) return code === 95;\n if (code <= 122) return true;\n if (code <= 0xffff) {\n return code >= 0xaa && bmpIdentifier.test(String.fromCharCode(code));\n }\n return isInSupplementarySet(code, supplementaryIdentifierStartCodes) || isInSupplementarySet(code, supplementaryIdentifierCodes);\n}\nconst reservedWords = {\n keyword: [\"break\", \"case\", \"catch\", \"continue\", \"debugger\", \"default\", \"do\", \"else\", \"finally\", \"for\", \"function\", \"if\", \"return\", \"switch\", \"throw\", \"try\", \"var\", \"const\", \"while\", \"with\", \"new\", \"this\", \"super\", \"class\", \"extends\", \"export\", \"import\", \"null\", \"true\", \"false\", \"in\", \"instanceof\", \"typeof\", \"void\", \"delete\"],\n strict: [\"implements\", \"interface\", \"let\", \"package\", \"private\", \"protected\", \"public\", \"static\", \"yield\"],\n strictBind: [\"eval\", \"arguments\"]\n};\nconst keywords = new Set(reservedWords.keyword);\nconst reservedWordsStrictSet = new Set(reservedWords.strict);\nconst reservedWordsStrictBindSet = new Set(reservedWords.strictBind);\nfunction isReservedWord(word, inModule) {\n return inModule && word === \"await\" || word === \"enum\";\n}\nfunction isStrictReservedWord(word, inModule) {\n return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);\n}\nfunction isStrictBindOnlyReservedWord(word) {\n return reservedWordsStrictBindSet.has(word);\n}\nfunction isStrictBindReservedWord(word, inModule) {\n return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word);\n}\nfunction isKeyword(word) {\n return keywords.has(word);\n}\nfunction isIteratorStart(current, next, next2) {\n return current === 64 && next === 64 && isIdentifierStart(next2);\n}\nconst reservedWordLikeSet = new Set([\"break\", \"case\", \"catch\", \"continue\", \"debugger\", \"default\", \"do\", \"else\", \"finally\", \"for\", \"function\", \"if\", \"return\", \"switch\", \"throw\", \"try\", \"var\", \"const\", \"while\", \"with\", \"new\", \"this\", \"super\", \"class\", \"extends\", \"export\", \"import\", \"null\", \"true\", \"false\", \"in\", \"instanceof\", \"typeof\", \"void\", \"delete\", \"implements\", \"interface\", \"let\", \"package\", \"private\", \"protected\", \"public\", \"static\", \"yield\", \"eval\", \"arguments\", \"enum\", \"await\"]);\nfunction canBeReservedWord(word) {\n return reservedWordLikeSet.has(word);\n}\nclass Scope {\n flags = 0;\n names = new Map();\n firstLexicalName = \"\";\n constructor(flags) {\n this.flags = flags;\n }\n}\nclass ScopeHandler {\n parser;\n scopeStack = [];\n inModule;\n undefinedExports = new Map();\n constructor(parser, inModule) {\n this.parser = parser;\n this.inModule = inModule;\n }\n get inTopLevel() {\n return (this.currentScope().flags & 1) > 0;\n }\n get inFunction() {\n return (this.currentVarScopeFlags() & 2) > 0;\n }\n get allowSuper() {\n return (this.currentThisScopeFlags() & 16) > 0;\n }\n get allowDirectSuper() {\n return (this.currentThisScopeFlags() & 32) > 0;\n }\n get allowNewTarget() {\n return (this.currentThisScopeFlags() & 512) > 0;\n }\n get inClass() {\n return (this.currentThisScopeFlags() & 64) > 0;\n }\n get inClassAndNotInNonArrowFunction() {\n const flags = this.currentThisScopeFlags();\n return (flags & 64) > 0 && (flags & 2) === 0;\n }\n get inStaticBlock() {\n for (let i = this.scopeStack.length - 1;; i--) {\n const {\n flags\n } = this.scopeStack[i];\n if (flags & 128) {\n return true;\n }\n if (flags & (3715 | 64)) {\n return false;\n }\n }\n }\n get inNonArrowFunction() {\n return (this.currentThisScopeFlags() & 2) > 0;\n }\n get inBareCaseStatement() {\n return (this.currentScope().flags & 256) > 0;\n }\n get treatFunctionsAsVar() {\n return this.treatFunctionsAsVarInScope(this.currentScope());\n }\n createScope(flags) {\n return new Scope(flags);\n }\n enter(flags) {\n this.scopeStack.push(this.createScope(flags));\n }\n exit() {\n const scope = this.scopeStack.pop();\n return scope.flags;\n }\n treatFunctionsAsVarInScope(scope) {\n return !!(scope.flags & (2 | 128) || !this.parser.inModule && scope.flags & 1);\n }\n declareName(name, bindingType, loc) {\n let scope = this.currentScope();\n if (bindingType & 8 || bindingType & 16) {\n this.checkRedeclarationInScope(scope, name, bindingType, loc);\n let type = scope.names.get(name) || 0;\n if (bindingType & 16) {\n type = type | 4;\n } else {\n if (!scope.firstLexicalName) {\n scope.firstLexicalName = name;\n }\n type = type | 2;\n }\n scope.names.set(name, type);\n if (bindingType & 8) {\n this.maybeExportDefined(scope, name);\n }\n } else if (bindingType & 4) {\n for (let i = this.scopeStack.length - 1; i >= 0; --i) {\n scope = this.scopeStack[i];\n this.checkRedeclarationInScope(scope, name, bindingType, loc);\n scope.names.set(name, (scope.names.get(name) || 0) | 1);\n this.maybeExportDefined(scope, name);\n if (scope.flags & 3715) break;\n }\n }\n if (this.parser.inModule && scope.flags & 1) {\n this.undefinedExports.delete(name);\n }\n }\n maybeExportDefined(scope, name) {\n if (this.parser.inModule && scope.flags & 1) {\n this.undefinedExports.delete(name);\n }\n }\n checkRedeclarationInScope(scope, name, bindingType, loc) {\n if (this.isRedeclaredInScope(scope, name, bindingType)) {\n this.parser.raise(Errors.VarRedeclaration, loc, {\n identifierName: name\n });\n }\n }\n isRedeclaredInScope(scope, name, bindingType) {\n if (!(bindingType & 1)) return false;\n if (bindingType & 8) {\n return scope.names.has(name);\n }\n const type = scope.names.get(name) || 0;\n if (bindingType & 16) {\n return (type & 2) > 0 || !this.treatFunctionsAsVarInScope(scope) && (type & 1) > 0;\n }\n return (type & 2) > 0 && !(scope.flags & 8 && scope.firstLexicalName === name) || !this.treatFunctionsAsVarInScope(scope) && (type & 4) > 0;\n }\n checkLocalExport(id) {\n const {\n name\n } = id;\n const topLevelScope = this.scopeStack[0];\n if (!topLevelScope.names.has(name)) {\n this.undefinedExports.set(name, id.start);\n }\n }\n currentScope() {\n return this.scopeStack[this.scopeStack.length - 1];\n }\n currentVarScopeFlags() {\n for (let i = this.scopeStack.length - 1;; i--) {\n const {\n flags\n } = this.scopeStack[i];\n if (flags & 3715) {\n return flags;\n }\n }\n }\n currentThisScopeFlags() {\n for (let i = this.scopeStack.length - 1;; i--) {\n const {\n flags\n } = this.scopeStack[i];\n if (flags & (3715 | 64) && !(flags & 4)) {\n return flags;\n }\n }\n }\n}\nclass FlowScope extends Scope {\n declareFunctions = new Set();\n}\nclass FlowScopeHandler extends ScopeHandler {\n createScope(flags) {\n return new FlowScope(flags);\n }\n declareName(name, bindingType, loc) {\n const scope = this.currentScope();\n if (bindingType & 2048) {\n this.checkRedeclarationInScope(scope, name, bindingType, loc);\n this.maybeExportDefined(scope, name);\n scope.declareFunctions.add(name);\n return;\n }\n super.declareName(name, bindingType, loc);\n }\n isRedeclaredInScope(scope, name, bindingType) {\n if (super.isRedeclaredInScope(scope, name, bindingType)) return true;\n if (bindingType & 2048 && !scope.declareFunctions.has(name)) {\n const type = scope.names.get(name);\n return (type & 4) > 0 || (type & 2) > 0;\n }\n return false;\n }\n checkLocalExport(id) {\n if (!this.scopeStack[0].declareFunctions.has(id.name)) {\n super.checkLocalExport(id);\n }\n }\n}\nconst reservedTypes = new Set([\"_\", \"any\", \"bool\", \"boolean\", \"empty\", \"extends\", \"false\", \"interface\", \"mixed\", \"null\", \"number\", \"static\", \"string\", \"true\", \"typeof\", \"void\"]);\nconst FlowErrorTemplates = {\n AmbiguousConditionalArrow: \"Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.\",\n AmbiguousDeclareModuleKind: \"Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module.\",\n AssignReservedType: ({\n reservedType\n }) => `Cannot overwrite reserved type ${reservedType}.`,\n DeclareClassElement: \"The `declare` modifier can only appear on class fields.\",\n DeclareClassFieldInitializer: \"Initializers are not allowed in fields with the `declare` modifier.\",\n DuplicateDeclareModuleExports: \"Duplicate `declare module.exports` statement.\",\n EnumBooleanMemberNotInitialized: ({\n memberName,\n enumName\n }) => `Boolean enum members need to be initialized. Use either \\`${memberName} = true,\\` or \\`${memberName} = false,\\` in enum \\`${enumName}\\`.`,\n EnumDuplicateMemberName: ({\n memberName,\n enumName\n }) => `Enum member names need to be unique, but the name \\`${memberName}\\` has already been used before in enum \\`${enumName}\\`.`,\n EnumInconsistentMemberValues: ({\n enumName\n }) => `Enum \\`${enumName}\\` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.`,\n EnumInvalidExplicitType: ({\n invalidEnumType,\n enumName\n }) => `Enum type \\`${invalidEnumType}\\` is not valid. Use one of \\`boolean\\`, \\`number\\`, \\`string\\`, or \\`symbol\\` in enum \\`${enumName}\\`.`,\n EnumInvalidExplicitTypeUnknownSupplied: ({\n enumName\n }) => `Supplied enum type is not valid. Use one of \\`boolean\\`, \\`number\\`, \\`string\\`, or \\`symbol\\` in enum \\`${enumName}\\`.`,\n EnumInvalidMemberInitializerPrimaryType: ({\n enumName,\n memberName,\n explicitType\n }) => `Enum \\`${enumName}\\` has type \\`${explicitType}\\`, so the initializer of \\`${memberName}\\` needs to be a ${explicitType} literal.`,\n EnumInvalidMemberInitializerSymbolType: ({\n enumName,\n memberName\n }) => `Symbol enum members cannot be initialized. Use \\`${memberName},\\` in enum \\`${enumName}\\`.`,\n EnumInvalidMemberInitializerUnknownType: ({\n enumName,\n memberName\n }) => `The enum member initializer for \\`${memberName}\\` needs to be a literal (either a boolean, number, or string) in enum \\`${enumName}\\`.`,\n EnumInvalidMemberName: ({\n enumName,\n memberName,\n suggestion\n }) => `Enum member names cannot start with lowercase 'a' through 'z'. Instead of using \\`${memberName}\\`, consider using \\`${suggestion}\\`, in enum \\`${enumName}\\`.`,\n EnumNumberMemberNotInitialized: ({\n enumName,\n memberName\n }) => `Number enum members need to be initialized, e.g. \\`${memberName} = 1\\` in enum \\`${enumName}\\`.`,\n EnumStringMemberInconsistentlyInitialized: ({\n enumName\n }) => `String enum members need to consistently either all use initializers, or use no initializers, in enum \\`${enumName}\\`.`,\n GetterMayNotHaveThisParam: \"A getter cannot have a `this` parameter.\",\n ImportTypeShorthandOnlyInPureImport: \"The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements.\",\n InexactInsideExact: \"Explicit inexact syntax cannot appear inside an explicit exact object type.\",\n InexactInsideNonObject: \"Explicit inexact syntax cannot appear in class or interface definitions.\",\n InexactVariance: \"Explicit inexact syntax cannot have variance.\",\n InvalidNonTypeImportInDeclareModule: \"Imports within a `declare module` body must always be `import type` or `import typeof`.\",\n MissingTypeParamDefault: \"Type parameter declaration needs a default, since a preceding type parameter declaration has a default.\",\n NestedDeclareModule: \"`declare module` cannot be used inside another `declare module`.\",\n NestedFlowComment: \"Cannot have a flow comment inside another flow comment.\",\n PatternIsOptional: {\n message: \"A binding pattern parameter cannot be optional in an implementation signature.\"\n },\n SetterMayNotHaveThisParam: \"A setter cannot have a `this` parameter.\",\n SpreadVariance: \"Spread properties cannot have variance.\",\n ThisParamAnnotationRequired: \"A type annotation is required for the `this` parameter.\",\n ThisParamBannedInConstructor: \"Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.\",\n ThisParamMayNotBeOptional: \"The `this` parameter cannot be optional.\",\n ThisParamMustBeFirst: \"The `this` parameter must be the first function parameter.\",\n ThisParamNoDefault: \"The `this` parameter may not have a default value.\",\n TypeBeforeInitializer: \"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.\",\n TypeCastInPattern: \"The type cast expression is expected to be wrapped with parenthesis.\",\n UnexpectedExplicitInexactInObject: \"Explicit inexact syntax must appear at the end of an inexact object.\",\n UnexpectedReservedType: ({\n reservedType\n }) => `Unexpected reserved type ${reservedType}.`,\n UnexpectedReservedUnderscore: \"`_` is only allowed as a type argument to call or new.\",\n UnexpectedSpaceBetweenModuloChecks: \"Spaces between `%` and `checks` are not allowed here.\",\n UnexpectedSpreadType: \"Spread operator cannot appear in class or interface definitions.\",\n UnexpectedSubtractionOperand: 'Unexpected token, expected \"number\" or \"bigint\".',\n UnexpectedTokenAfterTypeParameter: \"Expected an arrow function after this type parameter declaration.\",\n UnexpectedTypeParameterBeforeAsyncArrowFunction: \"Type parameters must come after the async keyword, e.g. instead of `<T> async () => {}`, use `async <T>() => {}`.\",\n UnsupportedDeclareExportKind: ({\n unsupportedExportKind,\n suggestion\n }) => `\\`declare export ${unsupportedExportKind}\\` is not supported. Use \\`${suggestion}\\` instead.`,\n UnsupportedStatementInDeclareModule: \"Only declares and type imports are allowed inside declare module.\",\n UnterminatedFlowComment: \"Unterminated flow-comment.\"\n};\nconst FlowErrors = ParseErrorEnum`flow`(FlowErrorTemplates);\nfunction isEsModuleType(bodyElement) {\n return bodyElement.type === \"DeclareExportAllDeclaration\" || bodyElement.type === \"DeclareExportDeclaration\" && (!bodyElement.declaration || bodyElement.declaration.type !== \"TypeAlias\" && bodyElement.declaration.type !== \"InterfaceDeclaration\");\n}\nfunction hasTypeImportKind(node) {\n return node.importKind === \"type\" || node.importKind === \"typeof\";\n}\nconst exportSuggestions = {\n const: \"declare export var\",\n let: \"declare export var\",\n type: \"export type\",\n interface: \"export interface\"\n};\nfunction partition(list, test) {\n const list1 = [];\n const list2 = [];\n for (let i = 0; i < list.length; i++) {\n (test(list[i], i, list) ? list1 : list2).push(list[i]);\n }\n return [list1, list2];\n}\nconst FLOW_PRAGMA_REGEX = /\\*?\\s*@((?:no)?flow)\\b/;\nconst flow = superClass => class FlowParserMixin extends superClass {\n flowPragma = undefined;\n getScopeHandler() {\n return FlowScopeHandler;\n }\n shouldParseTypes() {\n return this.getPluginOption(\"flow\", \"all\") || this.flowPragma === \"flow\";\n }\n finishToken(type, val) {\n if (type !== 130 && type !== 9 && type !== 24) {\n if (this.flowPragma === undefined) {\n this.flowPragma = null;\n }\n }\n super.finishToken(type, val);\n }\n addComment(comment) {\n if (this.flowPragma === undefined) {\n const matches = FLOW_PRAGMA_REGEX.exec(comment.value);\n if (!matches) ;else if (matches[1] === \"flow\") {\n this.flowPragma = \"flow\";\n } else if (matches[1] === \"noflow\") {\n this.flowPragma = \"noflow\";\n } else {\n throw new Error(\"Unexpected flow pragma\");\n }\n }\n super.addComment(comment);\n }\n flowParseTypeInitialiser(tok) {\n const oldInType = this.state.inType;\n this.state.inType = true;\n this.expect(tok || 10);\n const type = this.flowParseType();\n this.state.inType = oldInType;\n return type;\n }\n flowParsePredicate() {\n const node = this.startNode();\n const moduloLoc = this.state.startLoc;\n this.next();\n this.expectContextual(106);\n if (this.state.lastTokStartLoc.index > moduloLoc.index + 1) {\n this.raise(FlowErrors.UnexpectedSpaceBetweenModuloChecks, moduloLoc);\n }\n if (this.eat(6)) {\n node.value = super.parseExpression();\n this.expect(7);\n return this.finishNode(node, \"DeclaredPredicate\");\n } else {\n return this.finishNode(node, \"InferredPredicate\");\n }\n }\n flowParseTypeAndPredicateInitialiser(allowLonePredicate) {\n const oldInType = this.state.inType;\n this.state.inType = true;\n this.expect(10);\n let type = null;\n let predicate = null;\n if (allowLonePredicate && this.match(50)) {\n this.state.inType = oldInType;\n predicate = this.flowParsePredicate();\n } else {\n type = this.flowParseType();\n this.state.inType = oldInType;\n if (this.match(50)) {\n predicate = this.flowParsePredicate();\n }\n }\n return [type, predicate];\n }\n flowParseDeclareClass(node) {\n this.next();\n this.flowParseInterfaceish(node, true);\n return this.finishNode(node, \"DeclareClass\");\n }\n flowParseDeclareFunction(node) {\n this.next();\n const id = node.id = this.parseIdentifier();\n const typeNode = this.startNode();\n const typeContainer = this.startNode();\n if (this.match(43)) {\n typeNode.typeParameters = this.flowParseTypeParameterDeclaration();\n } else {\n typeNode.typeParameters = null;\n }\n this.expect(6);\n const tmp = this.flowParseFunctionTypeParams();\n typeNode.params = tmp.params;\n typeNode.rest = tmp.rest;\n typeNode.this = tmp._this;\n this.expect(7);\n [typeNode.returnType, node.predicate] = this.flowParseTypeAndPredicateInitialiser(false);\n typeContainer.typeAnnotation = this.finishNode(typeNode, \"FunctionTypeAnnotation\");\n id.typeAnnotation = this.finishNode(typeContainer, \"TypeAnnotation\");\n this.resetEndLocation(id);\n this.semicolon();\n this.scope.declareName(node.id.name, 2048, node.id.start);\n return this.finishNode(node, \"DeclareFunction\");\n }\n flowParseDeclare(node, insideModule) {\n if (this.match(76)) {\n return this.flowParseDeclareClass(node);\n } else if (this.match(64)) {\n return this.flowParseDeclareFunction(node);\n } else if (this.match(70)) {\n return this.flowParseDeclareVariable(node);\n } else if (this.eatContextual(123)) {\n if (this.match(12)) {\n return this.flowParseDeclareModuleExports(node);\n } else {\n if (insideModule) {\n this.raise(FlowErrors.NestedDeclareModule, this.state.lastTokStartLoc);\n }\n return this.flowParseDeclareModule(node);\n }\n } else if (this.isContextual(126)) {\n return this.flowParseDeclareTypeAlias(node);\n } else if (this.isContextual(127)) {\n return this.flowParseDeclareOpaqueType(node);\n } else if (this.isContextual(125)) {\n return this.flowParseDeclareInterface(node);\n } else if (this.match(78)) {\n return this.flowParseDeclareExportDeclaration(node, insideModule);\n }\n throw this.unexpected();\n }\n flowParseDeclareVariable(node) {\n this.next();\n node.id = this.flowParseTypeAnnotatableIdentifier();\n this.scope.declareName(node.id.name, 5, node.id.start);\n this.semicolon();\n return this.finishNode(node, \"DeclareVariable\");\n }\n flowParseDeclareModule(node) {\n this.scope.enter(0);\n if (this.match(130)) {\n node.id = super.parseExprAtom();\n } else {\n node.id = this.parseIdentifier();\n }\n const bodyNode = this.startNode();\n const body = bodyNode.body = [];\n this.expect(2);\n while (!this.match(4)) {\n const bodyNode = this.startNode();\n if (this.match(79)) {\n this.next();\n if (!this.isContextual(126) && !this.match(83)) {\n this.raise(FlowErrors.InvalidNonTypeImportInDeclareModule, this.state.lastTokStartLoc);\n }\n body.push(super.parseImport(bodyNode));\n } else {\n this.expectContextual(121, FlowErrors.UnsupportedStatementInDeclareModule);\n body.push(this.flowParseDeclare(bodyNode, true));\n }\n }\n this.scope.exit();\n this.expect(4);\n node.body = this.finishNode(bodyNode, \"BlockStatement\");\n let kind = null;\n let hasModuleExport = false;\n body.forEach(bodyElement => {\n if (isEsModuleType(bodyElement)) {\n if (kind === \"CommonJS\") {\n this.raise(FlowErrors.AmbiguousDeclareModuleKind, bodyElement);\n }\n kind = \"ES\";\n } else if (bodyElement.type === \"DeclareModuleExports\") {\n if (hasModuleExport) {\n this.raise(FlowErrors.DuplicateDeclareModuleExports, bodyElement);\n }\n if (kind === \"ES\") {\n this.raise(FlowErrors.AmbiguousDeclareModuleKind, bodyElement);\n }\n kind = \"CommonJS\";\n hasModuleExport = true;\n }\n });\n node.kind = kind || \"CommonJS\";\n return this.finishNode(node, \"DeclareModule\");\n }\n flowParseDeclareExportDeclaration(node, insideModule) {\n this.expect(78);\n if (this.eat(61)) {\n if (this.match(64) || this.match(76)) {\n node.declaration = this.flowParseDeclare(this.startNode());\n } else {\n node.declaration = this.flowParseType();\n this.semicolon();\n }\n node.default = true;\n return this.finishNode(node, \"DeclareExportDeclaration\");\n } else {\n if (this.match(71) || this.isLet() || (this.isContextual(126) || this.isContextual(125)) && !insideModule) {\n const label = this.state.value;\n throw this.raise(FlowErrors.UnsupportedDeclareExportKind, this.state.startLoc, {\n unsupportedExportKind: label,\n suggestion: exportSuggestions[label]\n });\n }\n if (this.match(70) || this.match(64) || this.match(76) || this.isContextual(127)) {\n node.declaration = this.flowParseDeclare(this.startNode());\n node.default = false;\n return this.finishNode(node, \"DeclareExportDeclaration\");\n } else if (this.match(51) || this.match(2) || this.isContextual(125) || this.isContextual(126) || this.isContextual(127)) {\n const result = this.parseExport(node, null);\n if (result.type === \"ExportNamedDeclaration\") {\n result.default = false;\n delete result.exportKind;\n return this.castNodeTo(result, \"DeclareExportDeclaration\");\n } else {\n return this.castNodeTo(result, \"DeclareExportAllDeclaration\");\n }\n }\n }\n throw this.unexpected();\n }\n flowParseDeclareModuleExports(node) {\n this.next();\n this.expectContextual(107);\n node.typeAnnotation = this.flowParseTypeAnnotation();\n this.semicolon();\n return this.finishNode(node, \"DeclareModuleExports\");\n }\n flowParseDeclareTypeAlias(node) {\n this.next();\n const finished = this.flowParseTypeAlias(node);\n this.castNodeTo(finished, \"DeclareTypeAlias\");\n return finished;\n }\n flowParseDeclareOpaqueType(node) {\n this.next();\n return this.flowParseOpaqueType(node, true);\n }\n flowParseDeclareInterface(node) {\n this.next();\n this.flowParseInterfaceish(node, false);\n return this.finishNode(node, \"DeclareInterface\");\n }\n flowParseInterfaceish(node, isClass) {\n node.id = this.flowParseRestrictedIdentifier(!isClass, true);\n this.scope.declareName(node.id.name, isClass ? 17 : 8201, node.id.start);\n if (this.match(43)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n } else {\n node.typeParameters = null;\n }\n node.extends = [];\n if (this.eat(77)) {\n do {\n node.extends.push(this.flowParseInterfaceExtends());\n } while (!isClass && this.eat(8));\n }\n if (isClass) {\n const implemented = [];\n const mixins = [];\n if (this.eatContextual(113)) {\n do {\n mixins.push(this.flowParseInterfaceExtends());\n } while (this.eat(8));\n }\n if (this.eatContextual(109)) {\n do {\n implemented.push(this.flowParseClassImplements());\n } while (this.eat(8));\n }\n node.implements = implemented;\n node.mixins = mixins;\n }\n node.body = this.flowParseObjectType({\n allowStatic: isClass,\n allowExact: false,\n allowSpread: false,\n allowProto: isClass,\n allowInexact: false\n });\n }\n flowParseInterfaceExtends() {\n const node = this.startNode();\n node.id = this.flowParseQualifiedTypeIdentifier();\n if (this.match(43)) {\n node.typeParameters = this.flowParseTypeParameterInstantiation();\n } else {\n node.typeParameters = null;\n }\n return this.finishNode(node, \"InterfaceExtends\");\n }\n flowParseInterface(node) {\n this.flowParseInterfaceish(node, false);\n return this.finishNode(node, \"InterfaceDeclaration\");\n }\n checkNotUnderscore(word) {\n if (word === \"_\") {\n this.raise(FlowErrors.UnexpectedReservedUnderscore, this.state.startLoc);\n }\n }\n checkReservedType(word, startLoc, declaration) {\n if (!reservedTypes.has(word)) return;\n this.raise(declaration ? FlowErrors.AssignReservedType : FlowErrors.UnexpectedReservedType, startLoc, {\n reservedType: word\n });\n }\n flowParseRestrictedIdentifierName(liberal, declaration) {\n this.checkReservedType(this.state.value, this.state.startLoc, declaration);\n return this.parseIdentifierName(liberal);\n }\n flowParseRestrictedIdentifier(liberal, declaration) {\n const node = this.startNode();\n const name = this.flowParseRestrictedIdentifierName(liberal, declaration);\n return this.createIdentifier(node, name);\n }\n flowParseTypeAlias(node) {\n node.id = this.flowParseRestrictedIdentifier(false, true);\n this.scope.declareName(node.id.name, 8201, node.id.start);\n if (this.match(43)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n } else {\n node.typeParameters = null;\n }\n node.right = this.flowParseTypeInitialiser(25);\n this.semicolon();\n return this.finishNode(node, \"TypeAlias\");\n }\n flowParseOpaqueType(node, declare) {\n this.expectContextual(126);\n node.id = this.flowParseRestrictedIdentifier(true, true);\n this.scope.declareName(node.id.name, 8201, node.id.start);\n if (this.match(43)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n } else {\n node.typeParameters = null;\n }\n node.supertype = null;\n if (this.match(10)) {\n node.supertype = this.flowParseTypeInitialiser(10);\n }\n node.impltype = null;\n if (!declare) {\n node.impltype = this.flowParseTypeInitialiser(25);\n }\n this.semicolon();\n return this.finishNode(node, declare ? \"DeclareOpaqueType\" : \"OpaqueType\");\n }\n flowParseTypeParameterBound() {\n if (this.match(10) || this.isContextual(77)) {\n const node = this.startNode();\n this.next();\n node.typeAnnotation = this.flowParseType();\n return this.finishNode(node, \"TypeAnnotation\");\n }\n }\n flowParseTypeParameter(requireDefault = false) {\n const nodeStartLoc = this.state.startLoc;\n const node = this.startNode();\n const variance = this.flowParseVariance();\n node.name = this.flowParseRestrictedIdentifierName();\n node.variance = variance;\n node.bound = this.flowParseTypeParameterBound();\n if (this.match(25)) {\n this.eat(25);\n node.default = this.flowParseType();\n } else {\n if (requireDefault) {\n this.raise(FlowErrors.MissingTypeParamDefault, nodeStartLoc);\n }\n }\n return this.finishNode(node, \"TypeParameter\");\n }\n flowParseTypeParameterDeclaration() {\n const oldInType = this.state.inType;\n const node = this.startNode();\n node.params = [];\n this.state.inType = true;\n if (this.match(43) || this.match(138)) {\n this.next();\n } else {\n this.unexpected();\n }\n let defaultRequired = false;\n do {\n const typeParameter = this.flowParseTypeParameter(defaultRequired);\n node.params.push(typeParameter);\n if (typeParameter.default) {\n defaultRequired = true;\n }\n if (!this.match(44)) {\n this.expect(8);\n }\n } while (!this.match(44));\n this.expect(44);\n this.state.inType = oldInType;\n return this.finishNode(node, \"TypeParameterDeclaration\");\n }\n flowInTopLevelContext(cb) {\n if (this.curContext() !== types.brace) {\n const oldContext = this.state.context;\n this.state.context = [oldContext[0]];\n try {\n return cb();\n } finally {\n this.state.context = oldContext;\n }\n } else {\n return cb();\n }\n }\n flowParseTypeParameterInstantiationInExpression() {\n if (this.reScan_lt() !== 43) return;\n return this.flowParseTypeParameterInstantiation();\n }\n flowParseTypeParameterInstantiation() {\n const node = this.startNode();\n const oldInType = this.state.inType;\n this.state.inType = true;\n node.params = [];\n this.flowInTopLevelContext(() => {\n this.expect(43);\n const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n this.state.noAnonFunctionType = false;\n while (!this.match(44)) {\n node.params.push(this.flowParseType());\n if (!this.match(44)) {\n this.expect(8);\n }\n }\n this.state.noAnonFunctionType = oldNoAnonFunctionType;\n });\n this.state.inType = oldInType;\n if (!this.state.inType && this.curContext() === types.brace) {\n this.reScan_lt_gt();\n }\n this.expect(44);\n return this.finishNode(node, \"TypeParameterInstantiation\");\n }\n flowParseTypeParameterInstantiationCallOrNew() {\n if (this.reScan_lt() !== 43) return null;\n const node = this.startNode();\n const oldInType = this.state.inType;\n node.params = [];\n this.state.inType = true;\n this.expect(43);\n while (!this.match(44)) {\n node.params.push(this.flowParseTypeOrImplicitInstantiation());\n if (!this.match(44)) {\n this.expect(8);\n }\n }\n this.expect(44);\n this.state.inType = oldInType;\n return this.finishNode(node, \"TypeParameterInstantiation\");\n }\n flowParseInterfaceType() {\n const node = this.startNode();\n this.expectContextual(125);\n node.extends = [];\n if (this.eat(77)) {\n do {\n node.extends.push(this.flowParseInterfaceExtends());\n } while (this.eat(8));\n }\n node.body = this.flowParseObjectType({\n allowStatic: false,\n allowExact: false,\n allowSpread: false,\n allowProto: false,\n allowInexact: false\n });\n return this.finishNode(node, \"InterfaceTypeAnnotation\");\n }\n flowParseObjectPropertyKey() {\n return this.match(131) || this.match(130) ? super.parseExprAtom() : this.parseIdentifier(true);\n }\n flowParseObjectTypeIndexer(node, isStatic, variance) {\n node.static = isStatic;\n if (this.lookahead().type === 10) {\n node.id = this.parseIdentifier(true);\n node.key = this.flowParseTypeInitialiser();\n } else {\n node.id = null;\n node.key = this.flowParseType();\n }\n this.expect(1);\n node.value = this.flowParseTypeInitialiser();\n node.variance = variance;\n return this.finishNode(node, \"ObjectTypeIndexer\");\n }\n flowParseObjectTypeInternalSlot(node, isStatic) {\n node.static = isStatic;\n node.id = this.parseIdentifier(true);\n this.expect(1);\n this.expect(1);\n if (this.match(43) || this.match(6)) {\n node.method = true;\n node.optional = false;\n node.value = this.flowParseObjectTypeMethodish(this.startNodeAtNode(node));\n } else {\n node.method = false;\n if (this.eat(13)) {\n node.optional = true;\n }\n node.value = this.flowParseTypeInitialiser();\n }\n return this.finishNode(node, \"ObjectTypeInternalSlot\");\n }\n flowParseObjectTypeMethodish(node) {\n node.params = [];\n node.rest = null;\n node.typeParameters = null;\n node.this = null;\n if (this.match(43)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n this.expect(6);\n if (this.match(74)) {\n node.this = this.flowParseFunctionTypeParam(true);\n node.this.name = null;\n if (!this.match(7)) {\n this.expect(8);\n }\n }\n while (!this.match(7) && !this.match(17)) {\n node.params.push(this.flowParseFunctionTypeParam(false));\n if (!this.match(7)) {\n this.expect(8);\n }\n }\n if (this.eat(17)) {\n node.rest = this.flowParseFunctionTypeParam(false);\n }\n this.expect(7);\n node.returnType = this.flowParseTypeInitialiser();\n return this.finishNode(node, \"FunctionTypeAnnotation\");\n }\n flowParseObjectTypeCallProperty(node, isStatic) {\n const valueNode = this.startNode();\n node.static = isStatic;\n node.value = this.flowParseObjectTypeMethodish(valueNode);\n return this.finishNode(node, \"ObjectTypeCallProperty\");\n }\n flowParseObjectType({\n allowStatic,\n allowExact,\n allowSpread,\n allowProto,\n allowInexact\n }) {\n const oldInType = this.state.inType;\n this.state.inType = true;\n const nodeStart = this.startNode();\n nodeStart.callProperties = [];\n nodeStart.properties = [];\n nodeStart.indexers = [];\n nodeStart.internalSlots = [];\n let endDelim;\n let exact;\n let inexact = false;\n if (allowExact && this.match(3)) {\n this.expect(3);\n endDelim = 5;\n exact = true;\n } else {\n this.expect(2);\n endDelim = 4;\n exact = false;\n }\n nodeStart.exact = exact;\n while (!this.match(endDelim)) {\n let isStatic = false;\n let protoStartLoc = null;\n let inexactStartLoc = null;\n const node = this.startNode();\n if (allowProto && this.isContextual(114)) {\n const lookahead = this.lookahead();\n if (lookahead.type !== 10 && lookahead.type !== 13) {\n this.next();\n protoStartLoc = this.state.startLoc;\n allowStatic = false;\n }\n }\n if (allowStatic && this.isContextual(102)) {\n const lookahead = this.lookahead();\n if (lookahead.type !== 10 && lookahead.type !== 13) {\n this.next();\n isStatic = true;\n }\n }\n const variance = this.flowParseVariance();\n if (this.eat(0)) {\n if (protoStartLoc != null) {\n this.unexpected(protoStartLoc);\n }\n if (this.eat(0)) {\n if (variance) {\n this.unexpected(variance.start);\n }\n nodeStart.internalSlots.push(this.flowParseObjectTypeInternalSlot(node, isStatic));\n } else {\n nodeStart.indexers.push(this.flowParseObjectTypeIndexer(node, isStatic, variance));\n }\n } else if (this.match(6) || this.match(43)) {\n if (protoStartLoc != null) {\n this.unexpected(protoStartLoc);\n }\n if (variance) {\n this.unexpected(variance.start);\n }\n nodeStart.callProperties.push(this.flowParseObjectTypeCallProperty(node, isStatic));\n } else {\n let kind = \"init\";\n if (this.isContextual(95) || this.isContextual(100)) {\n const lookahead = this.lookahead();\n if (tokenIsLiteralPropertyName(lookahead.type)) {\n kind = this.state.value;\n this.next();\n }\n }\n const propOrInexact = this.flowParseObjectTypeProperty(node, isStatic, protoStartLoc, variance, kind, allowSpread, allowInexact ?? !exact);\n if (propOrInexact === null) {\n inexact = true;\n inexactStartLoc = this.state.lastTokStartLoc;\n } else {\n nodeStart.properties.push(propOrInexact);\n }\n }\n this.flowObjectTypeSemicolon();\n if (inexactStartLoc && !this.match(4) && !this.match(5)) {\n this.raise(FlowErrors.UnexpectedExplicitInexactInObject, inexactStartLoc);\n }\n }\n this.expect(endDelim);\n if (allowSpread) {\n nodeStart.inexact = inexact;\n }\n const out = this.finishNode(nodeStart, \"ObjectTypeAnnotation\");\n this.state.inType = oldInType;\n return out;\n }\n flowParseObjectTypeProperty(node, isStatic, protoStartLoc, variance, kind, allowSpread, allowInexact) {\n if (this.eat(17)) {\n const isInexactToken = this.match(8) || this.match(9) || this.match(4) || this.match(5);\n if (isInexactToken) {\n if (!allowSpread) {\n this.raise(FlowErrors.InexactInsideNonObject, this.state.lastTokStartLoc);\n } else if (!allowInexact) {\n this.raise(FlowErrors.InexactInsideExact, this.state.lastTokStartLoc);\n }\n if (variance) {\n this.raise(FlowErrors.InexactVariance, variance);\n }\n return null;\n }\n if (!allowSpread) {\n this.raise(FlowErrors.UnexpectedSpreadType, this.state.lastTokStartLoc);\n }\n if (protoStartLoc != null) {\n this.unexpected(protoStartLoc);\n }\n if (variance) {\n this.raise(FlowErrors.SpreadVariance, variance);\n }\n node.argument = this.flowParseType();\n return this.finishNode(node, \"ObjectTypeSpreadProperty\");\n } else {\n node.key = this.flowParseObjectPropertyKey();\n node.static = isStatic;\n node.proto = protoStartLoc != null;\n node.kind = kind;\n let optional = false;\n if (this.match(43) || this.match(6)) {\n node.method = true;\n if (protoStartLoc != null) {\n this.unexpected(protoStartLoc);\n }\n if (variance) {\n this.unexpected(variance.start);\n }\n node.value = this.flowParseObjectTypeMethodish(this.startNodeAtNode(node));\n if (kind === \"get\" || kind === \"set\") {\n this.flowCheckGetterSetterParams(node);\n } else if (!isStatic && !allowSpread && node.key.name === \"constructor\" && node.value.this) {\n this.raise(FlowErrors.ThisParamBannedInConstructor, node.value.this);\n }\n } else {\n if (kind !== \"init\") this.unexpected();\n node.method = false;\n if (this.eat(13)) {\n optional = true;\n }\n node.value = this.flowParseTypeInitialiser();\n node.variance = variance;\n }\n node.optional = optional;\n return this.finishNode(node, \"ObjectTypeProperty\");\n }\n }\n flowCheckGetterSetterParams(property) {\n const paramCount = property.kind === \"get\" ? 0 : 1;\n const value = property.value;\n const length = value.params.length + (value.rest ? 1 : 0);\n if (value.this) {\n this.raise(property.kind === \"get\" ? FlowErrors.GetterMayNotHaveThisParam : FlowErrors.SetterMayNotHaveThisParam, value.this);\n }\n if (length !== paramCount) {\n this.raise(property.kind === \"get\" ? Errors.BadGetterArity : Errors.BadSetterArity, property);\n }\n if (property.kind === \"set\" && value.rest) {\n this.raise(Errors.BadSetterRestParameter, property);\n }\n }\n flowObjectTypeSemicolon() {\n if (!this.eat(9) && !this.eat(8) && !this.match(4) && !this.match(5)) {\n this.unexpected();\n }\n }\n flowParseQualifiedTypeIdentifier(startLoc, id) {\n startLoc ??= this.state.startLoc;\n let node = id || this.flowParseRestrictedIdentifier(true);\n while (this.eat(12)) {\n const node2 = this.startNodeAt(startLoc);\n node2.qualification = node;\n node2.id = this.flowParseRestrictedIdentifier(true);\n node = this.finishNode(node2, \"QualifiedTypeIdentifier\");\n }\n return node;\n }\n flowParseGenericType(startLoc, id) {\n const node = this.startNodeAt(startLoc);\n node.typeParameters = null;\n node.id = this.flowParseQualifiedTypeIdentifier(startLoc, id);\n if (this.match(43)) {\n node.typeParameters = this.flowParseTypeParameterInstantiation();\n }\n return this.finishNode(node, \"GenericTypeAnnotation\");\n }\n flowParseTypeofType() {\n const node = this.startNode();\n this.expect(83);\n node.argument = this.flowParsePrimaryType();\n return this.finishNode(node, \"TypeofTypeAnnotation\");\n }\n flowParseTupleType() {\n const node = this.startNode();\n node.types = [];\n this.expect(0);\n while (this.state.pos < this.length && !this.match(1)) {\n node.types.push(this.flowParseType());\n if (this.match(1)) break;\n this.expect(8);\n }\n this.expect(1);\n return this.finishNode(node, \"TupleTypeAnnotation\");\n }\n flowParseFunctionTypeParam(first) {\n let name = null;\n let optional = false;\n let typeAnnotation;\n const node = this.startNode();\n const lh = this.lookahead();\n const isThis = this.state.type === 74;\n if (lh.type === 10 || lh.type === 13) {\n if (isThis && !first) {\n this.raise(FlowErrors.ThisParamMustBeFirst, node);\n }\n name = this.parseIdentifier(isThis);\n if (this.eat(13)) {\n optional = true;\n if (isThis) {\n this.raise(FlowErrors.ThisParamMayNotBeOptional, node);\n }\n }\n typeAnnotation = this.flowParseTypeInitialiser();\n } else {\n typeAnnotation = this.flowParseType();\n }\n node.name = name;\n node.optional = optional;\n node.typeAnnotation = typeAnnotation;\n return this.finishNode(node, \"FunctionTypeParam\");\n }\n reinterpretTypeAsFunctionTypeParam(type) {\n const node = this.startNodeAtNode(type);\n node.name = null;\n node.optional = false;\n node.typeAnnotation = type;\n return this.finishNode(node, \"FunctionTypeParam\");\n }\n flowParseFunctionTypeParams(params = []) {\n let rest = null;\n let _this = null;\n if (this.match(74)) {\n _this = this.flowParseFunctionTypeParam(true);\n _this.name = null;\n if (!this.match(7)) {\n this.expect(8);\n }\n }\n while (!this.match(7) && !this.match(17)) {\n params.push(this.flowParseFunctionTypeParam(false));\n if (!this.match(7)) {\n this.expect(8);\n }\n }\n if (this.eat(17)) {\n rest = this.flowParseFunctionTypeParam(false);\n }\n return {\n params,\n rest,\n _this\n };\n }\n flowIdentToTypeAnnotation(startLoc, node, id) {\n switch (id.name) {\n case \"any\":\n return this.finishNode(node, \"AnyTypeAnnotation\");\n case \"bool\":\n case \"boolean\":\n return this.finishNode(node, \"BooleanTypeAnnotation\");\n case \"mixed\":\n return this.finishNode(node, \"MixedTypeAnnotation\");\n case \"empty\":\n return this.finishNode(node, \"EmptyTypeAnnotation\");\n case \"number\":\n return this.finishNode(node, \"NumberTypeAnnotation\");\n case \"string\":\n return this.finishNode(node, \"StringTypeAnnotation\");\n case \"symbol\":\n return this.finishNode(node, \"SymbolTypeAnnotation\");\n default:\n this.checkNotUnderscore(id.name);\n return this.flowParseGenericType(startLoc, id);\n }\n }\n flowParsePrimaryType() {\n const startLoc = this.state.startLoc;\n const node = this.startNode();\n let tmp;\n let type;\n let isGroupedType = false;\n const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n switch (this.state.type) {\n case 2:\n return this.flowParseObjectType({\n allowStatic: false,\n allowExact: false,\n allowSpread: true,\n allowProto: false,\n allowInexact: true\n });\n case 3:\n return this.flowParseObjectType({\n allowStatic: false,\n allowExact: true,\n allowSpread: true,\n allowProto: false,\n allowInexact: false\n });\n case 0:\n this.state.noAnonFunctionType = false;\n type = this.flowParseTupleType();\n this.state.noAnonFunctionType = oldNoAnonFunctionType;\n return type;\n case 43:\n {\n const node = this.startNode();\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n this.expect(6);\n tmp = this.flowParseFunctionTypeParams();\n node.params = tmp.params;\n node.rest = tmp.rest;\n node.this = tmp._this;\n this.expect(7);\n this.expect(15);\n node.returnType = this.flowParseType();\n return this.finishNode(node, \"FunctionTypeAnnotation\");\n }\n case 6:\n {\n const node = this.startNode();\n this.next();\n if (!this.match(7) && !this.match(17)) {\n if (tokenIsIdentifier(this.state.type) || this.match(74)) {\n const token = this.lookahead().type;\n isGroupedType = token !== 13 && token !== 10;\n } else {\n isGroupedType = true;\n }\n }\n if (isGroupedType) {\n this.state.noAnonFunctionType = false;\n type = this.flowParseType();\n this.state.noAnonFunctionType = oldNoAnonFunctionType;\n if (this.state.noAnonFunctionType || !(this.match(8) || this.match(7) && this.lookahead().type === 15)) {\n this.expect(7);\n return type;\n } else {\n this.eat(8);\n }\n }\n if (type) {\n tmp = this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(type)]);\n } else {\n tmp = this.flowParseFunctionTypeParams();\n }\n node.params = tmp.params;\n node.rest = tmp.rest;\n node.this = tmp._this;\n this.expect(7);\n this.expect(15);\n node.returnType = this.flowParseType();\n node.typeParameters = null;\n return this.finishNode(node, \"FunctionTypeAnnotation\");\n }\n case 130:\n return this.parseLiteral(this.state.value, \"StringLiteralTypeAnnotation\");\n case 81:\n case 82:\n node.value = this.match(81);\n this.next();\n return this.finishNode(node, \"BooleanLiteralTypeAnnotation\");\n case 49:\n if (this.state.value === \"-\") {\n this.next();\n if (this.match(131)) {\n return this.parseLiteralAtNode(-this.state.value, \"NumberLiteralTypeAnnotation\", node);\n }\n if (this.match(132)) {\n return this.parseLiteralAtNode(-this.state.value, \"BigIntLiteralTypeAnnotation\", node);\n }\n throw this.raise(FlowErrors.UnexpectedSubtractionOperand, this.state.startLoc);\n }\n throw this.unexpected();\n case 131:\n return this.parseLiteral(this.state.value, \"NumberLiteralTypeAnnotation\");\n case 132:\n return this.parseLiteral(this.state.value, \"BigIntLiteralTypeAnnotation\");\n case 84:\n this.next();\n return this.finishNode(node, \"VoidTypeAnnotation\");\n case 80:\n this.next();\n return this.finishNode(node, \"NullLiteralTypeAnnotation\");\n case 74:\n this.next();\n return this.finishNode(node, \"ThisTypeAnnotation\");\n case 51:\n this.next();\n return this.finishNode(node, \"ExistsTypeAnnotation\");\n case 83:\n return this.flowParseTypeofType();\n default:\n if (tokenIsKeyword(this.state.type)) {\n const label = tokenLabelName(this.state.type);\n this.next();\n return super.createIdentifier(node, label);\n } else if (tokenIsIdentifier(this.state.type)) {\n if (this.isContextual(125)) {\n return this.flowParseInterfaceType();\n }\n return this.flowIdentToTypeAnnotation(startLoc, node, this.parseIdentifier());\n }\n }\n throw this.unexpected();\n }\n flowParsePostfixType() {\n const startLoc = this.state.startLoc;\n let type = this.flowParsePrimaryType();\n let seenOptionalIndexedAccess = false;\n while ((this.match(0) || this.match(14)) && !this.canInsertSemicolon()) {\n const node = this.startNodeAt(startLoc);\n const optional = this.eat(14);\n seenOptionalIndexedAccess = seenOptionalIndexedAccess || optional;\n this.expect(0);\n if (!optional && this.match(1)) {\n node.elementType = type;\n this.next();\n type = this.finishNode(node, \"ArrayTypeAnnotation\");\n } else {\n node.objectType = type;\n node.indexType = this.flowParseType();\n this.expect(1);\n if (seenOptionalIndexedAccess) {\n node.optional = optional;\n type = this.finishNode(node, \"OptionalIndexedAccessType\");\n } else {\n type = this.finishNode(node, \"IndexedAccessType\");\n }\n }\n }\n return type;\n }\n flowParsePrefixType() {\n const node = this.startNode();\n if (this.eat(13)) {\n node.typeAnnotation = this.flowParsePrefixType();\n return this.finishNode(node, \"NullableTypeAnnotation\");\n } else {\n return this.flowParsePostfixType();\n }\n }\n flowParseAnonFunctionWithoutParens() {\n const param = this.flowParsePrefixType();\n if (!this.state.noAnonFunctionType && this.eat(15)) {\n const node = this.startNodeAtNode(param);\n node.params = [this.reinterpretTypeAsFunctionTypeParam(param)];\n node.rest = null;\n node.this = null;\n node.returnType = this.flowParseType();\n node.typeParameters = null;\n return this.finishNode(node, \"FunctionTypeAnnotation\");\n }\n return param;\n }\n flowParseIntersectionType() {\n const node = this.startNode();\n this.eat(41);\n const type = this.flowParseAnonFunctionWithoutParens();\n node.types = [type];\n while (this.eat(41)) {\n node.types.push(this.flowParseAnonFunctionWithoutParens());\n }\n return node.types.length === 1 ? type : this.finishNode(node, \"IntersectionTypeAnnotation\");\n }\n flowParseUnionType() {\n const node = this.startNode();\n this.eat(39);\n const type = this.flowParseIntersectionType();\n node.types = [type];\n while (this.eat(39)) {\n node.types.push(this.flowParseIntersectionType());\n }\n return node.types.length === 1 ? type : this.finishNode(node, \"UnionTypeAnnotation\");\n }\n flowParseType() {\n const oldInType = this.state.inType;\n this.state.inType = true;\n const type = this.flowParseUnionType();\n this.state.inType = oldInType;\n return type;\n }\n flowParseTypeOrImplicitInstantiation() {\n if (this.state.type === 128 && this.state.value === \"_\") {\n const startLoc = this.state.startLoc;\n const node = this.parseIdentifier();\n return this.flowParseGenericType(startLoc, node);\n } else {\n return this.flowParseType();\n }\n }\n flowParseTypeAnnotation() {\n const node = this.startNode();\n node.typeAnnotation = this.flowParseTypeInitialiser();\n return this.finishNode(node, \"TypeAnnotation\");\n }\n flowParseTypeAnnotatableIdentifier() {\n const node = this.startNode();\n const name = this.parseIdentifierName();\n if (this.match(10)) {\n node.typeAnnotation = this.flowParseTypeAnnotation();\n }\n return this.createIdentifier(node, name);\n }\n typeCastToParameter(node) {\n node.expression.typeAnnotation = node.typeAnnotation;\n this.resetEndLocationFromNode(node.expression, node.typeAnnotation);\n return node.expression;\n }\n flowParseVariance() {\n let variance = null;\n if (this.match(49)) {\n variance = this.startNode();\n if (this.state.value === \"+\") {\n variance.kind = \"plus\";\n } else {\n variance.kind = \"minus\";\n }\n this.next();\n return this.finishNode(variance, \"Variance\");\n }\n return variance;\n }\n parseFunctionBody(node, allowExpressionBody, isMethod = false) {\n if (allowExpressionBody) {\n this.forwardNoArrowParamsConversionAt(node, () => super.parseFunctionBody(node, true, isMethod));\n return;\n }\n super.parseFunctionBody(node, false, isMethod);\n }\n parseFunctionBodyAndFinish(node, type, isMethod = false) {\n if (this.match(10)) {\n const typeNode = this.startNode();\n if (type === \"FunctionDeclaration\" || type === \"FunctionExpression\" || type === \"ArrowFunctionExpression\") {\n [typeNode.typeAnnotation, node.predicate] = this.flowParseTypeAndPredicateInitialiser(true);\n } else {\n typeNode.typeAnnotation = this.flowParseTypeInitialiser();\n }\n node.returnType = typeNode.typeAnnotation ? this.finishNode(typeNode, \"TypeAnnotation\") : null;\n }\n return super.parseFunctionBodyAndFinish(node, type, isMethod);\n }\n parseStatementLike(flags) {\n if (this.state.strict && this.isContextual(125)) {\n const lookahead = this.lookahead();\n if (tokenIsKeywordOrIdentifier(lookahead.type)) {\n const node = this.startNode();\n this.next();\n return this.flowParseInterface(node);\n }\n } else if (this.isContextual(122)) {\n const node = this.startNode();\n this.next();\n return this.flowParseEnumDeclaration(node);\n }\n const stmt = super.parseStatementLike(flags);\n if (this.flowPragma === undefined && !this.isValidDirective(stmt)) {\n this.flowPragma = null;\n }\n return stmt;\n }\n parseExpressionStatement(node, expr, decorators) {\n if (expr.type === \"Identifier\") {\n if (expr.name === \"declare\") {\n if (this.match(76) || tokenIsIdentifier(this.state.type) || this.match(64) || this.match(70) || this.match(78)) {\n return this.flowParseDeclare(node);\n }\n } else if (tokenIsIdentifier(this.state.type)) {\n if (expr.name === \"interface\") {\n return this.flowParseInterface(node);\n } else if (expr.name === \"type\") {\n return this.flowParseTypeAlias(node);\n } else if (expr.name === \"opaque\") {\n return this.flowParseOpaqueType(node, false);\n }\n }\n }\n return super.parseExpressionStatement(node, expr, decorators);\n }\n shouldParseExportDeclaration() {\n const {\n type\n } = this.state;\n if (type === 122 || tokenIsFlowInterfaceOrTypeOrOpaque(type)) {\n return !this.state.containsEsc;\n }\n return super.shouldParseExportDeclaration();\n }\n isExportDefaultSpecifier() {\n const {\n type\n } = this.state;\n if (type === 122 || tokenIsFlowInterfaceOrTypeOrOpaque(type)) {\n return this.state.containsEsc;\n }\n return super.isExportDefaultSpecifier();\n }\n parseExportDefaultExpression() {\n if (this.isContextual(122)) {\n const node = this.startNode();\n this.next();\n return this.flowParseEnumDeclaration(node);\n }\n return super.parseExportDefaultExpression();\n }\n parseConditional(expr, startLoc, refExpressionErrors) {\n if (!this.match(13)) return expr;\n if (refExpressionErrors != null) {\n const nextCh = this.lookaheadCharCode();\n if (nextCh === 44 || nextCh === 61 || nextCh === 58 || nextCh === 41) {\n this.setOptionalParametersError(refExpressionErrors);\n return expr;\n }\n }\n this.expect(13);\n const state = this.state.clone();\n const originalNoArrowAt = this.state.noArrowAt;\n const node = this.startNodeAt(startLoc);\n let {\n consequent,\n failed\n } = this.tryParseConditionalConsequent();\n const result = this.getArrowLikeExpressions(consequent);\n let valid = result[0];\n const invalid = result[1];\n if (failed || invalid.length > 0) {\n const noArrowAt = [...originalNoArrowAt];\n if (invalid.length > 0) {\n this.state = state;\n this.state.noArrowAt = noArrowAt;\n for (let i = 0; i < invalid.length; i++) {\n noArrowAt.push(invalid[i].start);\n }\n ({\n consequent,\n failed\n } = this.tryParseConditionalConsequent());\n [valid] = this.getArrowLikeExpressions(consequent);\n }\n if (failed && valid.length > 1) {\n this.raise(FlowErrors.AmbiguousConditionalArrow, state.startLoc);\n }\n if (failed && valid.length === 1) {\n this.state = state;\n noArrowAt.push(valid[0].start);\n this.state.noArrowAt = noArrowAt;\n ({\n consequent\n } = this.tryParseConditionalConsequent());\n }\n }\n this.getArrowLikeExpressions(consequent, true);\n this.state.noArrowAt = originalNoArrowAt;\n this.expect(10);\n node.test = expr;\n node.consequent = consequent;\n node.alternate = this.forwardNoArrowParamsConversionAt(node, () => this.parseMaybeAssign(undefined, undefined));\n return this.finishNode(node, \"ConditionalExpression\");\n }\n tryParseConditionalConsequent() {\n this.state.noArrowParamsConversionAt.push(this.state.start);\n const consequent = this.parseMaybeAssignAllowIn();\n const failed = !this.match(10);\n this.state.noArrowParamsConversionAt.pop();\n return {\n consequent,\n failed\n };\n }\n getArrowLikeExpressions(node, disallowInvalid) {\n const stack = [node];\n const arrows = [];\n while (stack.length !== 0) {\n const node = stack.pop();\n if (node.type === \"ArrowFunctionExpression\" && node.body.type !== \"BlockStatement\") {\n if (node.typeParameters || !node.returnType) {\n this.finishArrowValidation(node);\n } else {\n arrows.push(node);\n }\n stack.push(node.body);\n } else if (node.type === \"ConditionalExpression\") {\n stack.push(node.consequent);\n stack.push(node.alternate);\n }\n }\n if (disallowInvalid) {\n arrows.forEach(node => this.finishArrowValidation(node));\n return [arrows, []];\n }\n return partition(arrows, node => node.params.every(param => this.isAssignable(param, true)));\n }\n finishArrowValidation(node) {\n this.toAssignableList(node.params, node.extra?.trailingCommaLoc, false);\n this.scope.enter(514 | 4);\n super.checkParams(node, false, true);\n this.scope.exit();\n }\n forwardNoArrowParamsConversionAt(node, parse) {\n let result;\n if (this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(node.start))) {\n this.state.noArrowParamsConversionAt.push(this.state.start);\n result = parse();\n this.state.noArrowParamsConversionAt.pop();\n } else {\n result = parse();\n }\n return result;\n }\n parseParenItem(node, startLoc) {\n const newNode = super.parseParenItem(node, startLoc);\n if (this.eat(13)) {\n newNode.optional = true;\n this.resetEndLocation(node);\n }\n if (this.match(10)) {\n const typeCastNode = this.startNodeAt(startLoc);\n typeCastNode.expression = newNode;\n typeCastNode.typeAnnotation = this.flowParseTypeAnnotation();\n return this.finishNode(typeCastNode, \"TypeCastExpression\");\n }\n return newNode;\n }\n assertModuleNodeAllowed(node) {\n if (node.type === \"ImportDeclaration\" && (node.importKind === \"type\" || node.importKind === \"typeof\") || node.type === \"ExportNamedDeclaration\" && node.exportKind === \"type\" || node.type === \"ExportAllDeclaration\" && node.exportKind === \"type\") {\n return;\n }\n super.assertModuleNodeAllowed(node);\n }\n parseExportDeclaration(node) {\n if (this.isContextual(126)) {\n node.exportKind = \"type\";\n const declarationNode = this.startNode();\n this.next();\n if (this.match(2)) {\n node.specifiers = this.parseExportSpecifiers(true);\n super.parseExportFrom(node);\n return null;\n } else {\n return this.flowParseTypeAlias(declarationNode);\n }\n } else if (this.isContextual(127)) {\n node.exportKind = \"type\";\n const declarationNode = this.startNode();\n this.next();\n return this.flowParseOpaqueType(declarationNode, false);\n } else if (this.isContextual(125)) {\n node.exportKind = \"type\";\n const declarationNode = this.startNode();\n this.next();\n return this.flowParseInterface(declarationNode);\n } else if (this.isContextual(122)) {\n node.exportKind = \"value\";\n const declarationNode = this.startNode();\n this.next();\n return this.flowParseEnumDeclaration(declarationNode);\n } else {\n return super.parseExportDeclaration(node);\n }\n }\n eatExportStar(node) {\n if (super.eatExportStar(node)) return true;\n if (this.isContextual(126) && this.lookahead().type === 51) {\n node.exportKind = \"type\";\n this.next();\n this.next();\n return true;\n }\n return false;\n }\n maybeParseExportNamespaceSpecifier(node) {\n const {\n startLoc\n } = this.state;\n const hasNamespace = super.maybeParseExportNamespaceSpecifier(node);\n if (hasNamespace && node.exportKind === \"type\") {\n this.unexpected(startLoc);\n }\n return hasNamespace;\n }\n parseClassId(node, isStatement, optionalId) {\n if ((!isStatement || optionalId) && this.isContextual(109)) {\n node.id = null;\n return;\n }\n super.parseClassId(node, isStatement, optionalId);\n if (this.match(43)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n }\n parseClassMember(classBody, member, state) {\n const {\n startLoc\n } = this.state;\n if (this.isContextual(121)) {\n if (super.parseClassMemberFromModifier(classBody, member)) {\n return;\n }\n member.declare = true;\n }\n super.parseClassMember(classBody, member, state);\n if (member.declare) {\n if (member.type !== \"ClassProperty\" && member.type !== \"ClassPrivateProperty\" && member.type !== \"PropertyDefinition\") {\n this.raise(FlowErrors.DeclareClassElement, startLoc);\n } else if (member.value) {\n this.raise(FlowErrors.DeclareClassFieldInitializer, member.value);\n }\n }\n }\n isIterator(word) {\n return word === \"iterator\" || word === \"asyncIterator\";\n }\n readIterator() {\n const word = super.readWord1();\n const fullWord = \"@@\" + word;\n if (!this.isIterator(word) || !this.state.inType) {\n this.raise(Errors.InvalidIdentifier, this.state.curPosition(), {\n identifierName: fullWord\n });\n }\n this.finishToken(128, fullWord);\n }\n getTokenFromCode(code) {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (code === 123 && next === 124) {\n this.finishOp(3, 2);\n } else if (this.state.inType && (code === 62 || code === 60)) {\n this.finishOp(code === 62 ? 44 : 43, 1);\n } else if (this.state.inType && code === 63) {\n if (next === 46) {\n this.finishOp(14, 2);\n } else {\n this.finishOp(13, 1);\n }\n } else if (isIteratorStart(code, next, this.input.charCodeAt(this.state.pos + 2))) {\n this.state.pos += 2;\n this.readIterator();\n } else {\n super.getTokenFromCode(code);\n }\n }\n isAssignable(node, isBinding) {\n if (node.type === \"TypeCastExpression\") {\n return this.isAssignable(node.expression, isBinding);\n } else {\n return super.isAssignable(node, isBinding);\n }\n }\n toAssignable(node, isLHS = false) {\n if (!isLHS && node.type === \"AssignmentExpression\" && node.left.type === \"TypeCastExpression\") {\n node.left = this.typeCastToParameter(node.left);\n }\n super.toAssignable(node, isLHS);\n }\n toAssignableListItem(exprList, index, isLHS) {\n const node = exprList[index];\n if (node.type === \"TypeCastExpression\") {\n exprList[index] = this.typeCastToParameter(node);\n }\n super.toAssignableListItem(exprList, index, isLHS);\n }\n toReferencedList(exprList, isParenthesizedExpr) {\n for (let i = 0; i < exprList.length; i++) {\n const expr = exprList[i];\n if (expr?.type === \"TypeCastExpression\" && !expr.extra?.parenthesized && (exprList.length > 1 || !isParenthesizedExpr)) {\n this.raise(FlowErrors.TypeCastInPattern, expr.typeAnnotation);\n }\n }\n return exprList;\n }\n parseArrayLike(close, refExpressionErrors) {\n const node = super.parseArrayLike(close, refExpressionErrors);\n if (node.type === \"ArrayExpression\") {\n this.toReferencedList(node.elements);\n }\n return node;\n }\n isValidLVal(type, disallowCallExpression, isParenthesized, binding) {\n return type === \"TypeCastExpression\" || super.isValidLVal(type, disallowCallExpression, isParenthesized, binding);\n }\n parseClassProperty(node) {\n if (this.match(10)) {\n node.typeAnnotation = this.flowParseTypeAnnotation();\n }\n return super.parseClassProperty(node);\n }\n parseClassPrivateProperty(node) {\n if (this.match(10)) {\n node.typeAnnotation = this.flowParseTypeAnnotation();\n }\n return super.parseClassPrivateProperty(node);\n }\n isClassMethod() {\n return this.match(43) || super.isClassMethod();\n }\n isClassProperty() {\n return this.match(10) || super.isClassProperty();\n }\n isNonstaticConstructor(method) {\n return !this.match(10) && super.isNonstaticConstructor(method);\n }\n pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) {\n if (method.variance) {\n this.unexpected(method.variance.start);\n }\n delete method.variance;\n if (this.match(43)) {\n method.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n super.pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper);\n if (method.params && isConstructor) {\n const params = method.params;\n if (params.length > 0 && this.isThisParam(params[0])) {\n this.raise(FlowErrors.ThisParamBannedInConstructor, method);\n }\n } else if (method.type === \"MethodDefinition\" && isConstructor && method.value.params) {\n const params = method.value.params;\n if (params.length > 0 && this.isThisParam(params[0])) {\n this.raise(FlowErrors.ThisParamBannedInConstructor, method);\n }\n }\n }\n pushClassPrivateMethod(classBody, method, isGenerator, isAsync) {\n if (method.variance) {\n this.unexpected(method.variance.start);\n }\n delete method.variance;\n if (this.match(43)) {\n method.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync);\n }\n flowParseClassImplements() {\n const node = this.startNode();\n node.id = this.flowParseRestrictedIdentifier(true);\n if (this.match(43)) {\n node.typeParameters = this.flowParseTypeParameterInstantiation();\n } else {\n node.typeParameters = null;\n }\n return this.finishNode(node, \"ClassImplements\");\n }\n parseClassSuper(node) {\n super.parseClassSuper(node);\n if (node.superClass && (this.match(43) || this.match(47))) {\n node.superTypeArguments = this.flowParseTypeParameterInstantiationInExpression();\n }\n if (this.eatContextual(109)) {\n const implemented = node.implements = [];\n do {\n implemented.push(this.flowParseClassImplements());\n } while (this.eat(8));\n }\n }\n checkGetterSetterParams(method) {\n super.checkGetterSetterParams(method);\n const params = this.getObjectOrClassMethodParams(method);\n if (params.length > 0) {\n const param = params[0];\n if (this.isThisParam(param) && method.kind === \"get\") {\n this.raise(FlowErrors.GetterMayNotHaveThisParam, param);\n } else if (this.isThisParam(param)) {\n this.raise(FlowErrors.SetterMayNotHaveThisParam, param);\n }\n }\n }\n parsePropertyNamePrefixOperator(node) {\n node.variance = this.flowParseVariance();\n }\n parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors) {\n if (prop.variance) {\n this.unexpected(prop.variance.start);\n }\n delete prop.variance;\n let typeParameters;\n if (this.match(43) && !isAccessor) {\n typeParameters = this.flowParseTypeParameterDeclaration();\n if (!this.match(6)) this.unexpected();\n }\n const result = super.parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors);\n if (typeParameters) {\n (result.value || result).typeParameters = typeParameters;\n }\n return result;\n }\n parseFunctionParamType(param) {\n if (this.eat(13)) {\n if (param.type !== \"Identifier\") {\n this.raise(FlowErrors.PatternIsOptional, param);\n }\n if (this.isThisParam(param)) {\n this.raise(FlowErrors.ThisParamMayNotBeOptional, param);\n }\n param.optional = true;\n }\n if (this.match(10)) {\n param.typeAnnotation = this.flowParseTypeAnnotation();\n } else if (this.isThisParam(param)) {\n this.raise(FlowErrors.ThisParamAnnotationRequired, param);\n }\n if (this.match(25) && this.isThisParam(param)) {\n this.raise(FlowErrors.ThisParamNoDefault, param);\n }\n this.resetEndLocation(param);\n return param;\n }\n parseMaybeDefault(startLoc, left) {\n const node = super.parseMaybeDefault(startLoc, left);\n if (node.type === \"AssignmentPattern\" && node.typeAnnotation && node.right.start < node.typeAnnotation.start) {\n this.raise(FlowErrors.TypeBeforeInitializer, node.typeAnnotation);\n }\n return node;\n }\n parseImportSpecifierLocal(node, specifier, type) {\n specifier.local = hasTypeImportKind(node) ? this.flowParseRestrictedIdentifier(true, true) : this.parseIdentifier();\n node.specifiers.push(this.finishImportSpecifier(specifier, type));\n }\n isPotentialImportPhase(isExport) {\n if (super.isPotentialImportPhase(isExport)) return true;\n if (this.isContextual(126)) {\n if (!isExport) return true;\n const ch = this.lookaheadCharCode();\n return ch === 123 || ch === 42;\n }\n return !isExport && this.isContextual(83);\n }\n applyImportPhase(node, isExport, phase, loc) {\n super.applyImportPhase(node, isExport, phase, loc);\n if (isExport) {\n if (!phase && this.match(61)) {\n return;\n }\n node.exportKind = phase === \"type\" ? phase : \"value\";\n } else {\n if (phase === \"type\" && this.match(51)) this.unexpected();\n node.importKind = phase === \"type\" || phase === \"typeof\" ? phase : \"value\";\n }\n }\n parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, bindingType) {\n const firstIdent = specifier.imported;\n let specifierTypeKind = null;\n if (firstIdent.type === \"Identifier\") {\n if (firstIdent.name === \"type\") {\n specifierTypeKind = \"type\";\n } else if (firstIdent.name === \"typeof\") {\n specifierTypeKind = \"typeof\";\n }\n }\n let isBinding = false;\n if (this.isContextual(89) && !this.isLookaheadContextual(\"as\")) {\n const as_ident = this.parseIdentifier(true);\n if (specifierTypeKind !== null && !tokenIsKeywordOrIdentifier(this.state.type)) {\n specifier.imported = as_ident;\n specifier.importKind = specifierTypeKind;\n specifier.local = this.cloneIdentifier(as_ident);\n } else {\n specifier.imported = firstIdent;\n specifier.importKind = null;\n specifier.local = this.parseIdentifier();\n }\n } else {\n if (specifierTypeKind !== null && tokenIsKeywordOrIdentifier(this.state.type)) {\n specifier.imported = this.parseIdentifier(true);\n specifier.importKind = specifierTypeKind;\n } else {\n if (importedIsString) {\n throw this.raise(Errors.ImportBindingIsString, specifier, {\n importName: firstIdent.value\n });\n }\n specifier.imported = firstIdent;\n specifier.importKind = null;\n }\n if (this.eatContextual(89)) {\n specifier.local = this.parseIdentifier();\n } else {\n isBinding = true;\n specifier.local = this.cloneIdentifier(specifier.imported);\n }\n }\n const specifierIsTypeImport = hasTypeImportKind(specifier);\n if (isInTypeOnlyImport && specifierIsTypeImport) {\n this.raise(FlowErrors.ImportTypeShorthandOnlyInPureImport, specifier);\n }\n if (isInTypeOnlyImport || specifierIsTypeImport) {\n this.checkReservedType(specifier.local.name, specifier.local.start, true);\n }\n if (isBinding && !isInTypeOnlyImport && !specifierIsTypeImport) {\n this.checkReservedWord(specifier.local.name, specifier.start, true, true);\n }\n return this.finishImportSpecifier(specifier, \"ImportSpecifier\");\n }\n parseBindingAtom() {\n switch (this.state.type) {\n case 74:\n return this.parseIdentifier(true);\n default:\n return super.parseBindingAtom();\n }\n }\n parseFunctionParams(node, isConstructor) {\n const kind = node.kind;\n if (kind !== \"get\" && kind !== \"set\" && this.match(43)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n super.parseFunctionParams(node, isConstructor);\n }\n parseVarId(decl, kind) {\n super.parseVarId(decl, kind);\n if (this.match(10)) {\n decl.id.typeAnnotation = this.flowParseTypeAnnotation();\n this.resetEndLocation(decl.id);\n }\n }\n parseAsyncArrowFromCallExpression(node, call) {\n if (this.match(10)) {\n const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n this.state.noAnonFunctionType = true;\n node.returnType = this.flowParseTypeAnnotation();\n this.state.noAnonFunctionType = oldNoAnonFunctionType;\n }\n return super.parseAsyncArrowFromCallExpression(node, call);\n }\n shouldParseAsyncArrow() {\n return this.match(10) || super.shouldParseAsyncArrow();\n }\n parseMaybeAssign(refExpressionErrors, afterLeftParse) {\n let state = null;\n let jsx;\n if (this.hasPlugin(\"jsx\") && (this.match(138) || this.match(43))) {\n state = this.state.clone();\n jsx = this.tryParse(() => super.parseMaybeAssign(refExpressionErrors, afterLeftParse), state);\n if (!jsx.error) return jsx.node;\n const {\n context\n } = this.state;\n const currentContext = context[context.length - 1];\n if (currentContext === types.j_oTag || currentContext === types.j_expr) {\n context.pop();\n }\n }\n if (jsx?.error || this.match(43)) {\n state = state || this.state.clone();\n let typeParameters;\n const arrow = this.tryParse(abort => {\n typeParameters = this.flowParseTypeParameterDeclaration();\n const arrowExpression = this.forwardNoArrowParamsConversionAt(typeParameters, () => {\n const result = super.parseMaybeAssign(refExpressionErrors, afterLeftParse);\n this.resetStartLocationFromNode(result, typeParameters);\n return result;\n });\n if (arrowExpression.extra?.parenthesized) abort();\n const expr = this.maybeUnwrapTypeCastExpression(arrowExpression);\n if (expr.type !== \"ArrowFunctionExpression\") abort();\n expr.typeParameters = typeParameters;\n this.resetStartLocationFromNode(expr, typeParameters);\n return arrowExpression;\n }, state);\n let arrowExpression = null;\n if (arrow.node && this.maybeUnwrapTypeCastExpression(arrow.node).type === \"ArrowFunctionExpression\") {\n if (!arrow.error && !arrow.aborted) {\n if (arrow.node.async) {\n this.raise(FlowErrors.UnexpectedTypeParameterBeforeAsyncArrowFunction, typeParameters);\n }\n return arrow.node;\n }\n arrowExpression = arrow.node;\n }\n if (jsx?.node) {\n this.state = jsx.failState;\n return jsx.node;\n }\n if (arrowExpression) {\n this.state = arrow.failState;\n return arrowExpression;\n }\n if (jsx?.thrown) throw jsx.error;\n if (arrow.thrown) throw arrow.error;\n throw this.raise(FlowErrors.UnexpectedTokenAfterTypeParameter, typeParameters);\n }\n return super.parseMaybeAssign(refExpressionErrors, afterLeftParse);\n }\n parseArrow(node) {\n if (this.match(10)) {\n const result = this.tryParse(() => {\n const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n this.state.noAnonFunctionType = true;\n const typeNode = this.startNode();\n [typeNode.typeAnnotation, node.predicate] = this.flowParseTypeAndPredicateInitialiser(true);\n this.state.noAnonFunctionType = oldNoAnonFunctionType;\n if (this.canInsertSemicolon()) this.unexpected();\n if (!this.match(15)) this.unexpected();\n return typeNode;\n });\n if (result.thrown) return null;\n if (result.error) this.state = result.failState;\n node.returnType = result.node.typeAnnotation ? this.finishNode(result.node, \"TypeAnnotation\") : null;\n }\n return super.parseArrow(node);\n }\n shouldParseArrow(params) {\n return this.match(10) || super.shouldParseArrow(params);\n }\n setArrowFunctionParameters(node, params) {\n if (this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(node.start))) {\n node.params = params;\n } else {\n super.setArrowFunctionParameters(node, params);\n }\n }\n checkParams(node, allowDuplicates, isArrowFunction, strictModeChanged = true) {\n if (isArrowFunction && this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(node.start))) {\n return;\n }\n for (let i = 0; i < node.params.length; i++) {\n if (this.isThisParam(node.params[i]) && i > 0) {\n this.raise(FlowErrors.ThisParamMustBeFirst, node.params[i]);\n }\n }\n super.checkParams(node, allowDuplicates, isArrowFunction, strictModeChanged);\n }\n parseParenAndDistinguishExpression(canStartArrow) {\n return super.parseParenAndDistinguishExpression(canStartArrow && !this.state.noArrowAt.includes(this.sourceToOffsetPos(this.state.start)));\n }\n parseSubscripts(base, startLoc, noCalls) {\n if (base.type === \"Identifier\" && base.name === \"async\" && this.state.noArrowAt.includes(startLoc.index)) {\n this.next();\n const node = this.startNodeAt(startLoc);\n node.callee = base;\n node.arguments = super.parseCallExpressionArguments();\n base = this.finishNode(node, \"CallExpression\");\n } else if (base.type === \"Identifier\" && base.name === \"async\" && this.match(43)) {\n const state = this.state.clone();\n const arrow = this.tryParse(abort => this.parseAsyncArrowWithTypeParameters(startLoc) || abort(), state);\n if (!arrow.error && !arrow.aborted) return arrow.node;\n const result = this.tryParse(() => super.parseSubscripts(base, startLoc, noCalls), state);\n if (result.node && !result.error) return result.node;\n if (arrow.node) {\n this.state = arrow.failState;\n return arrow.node;\n }\n if (result.node) {\n this.state = result.failState;\n return result.node;\n }\n throw arrow.error || result.error;\n }\n return super.parseSubscripts(base, startLoc, noCalls);\n }\n parseSubscript(base, startLoc, noCalls, subscriptState) {\n if (this.match(14) && this.isLookaheadToken_lt()) {\n subscriptState.optionalChainMember = true;\n if (noCalls) {\n subscriptState.stop = true;\n return base;\n }\n this.next();\n const node = this.startNodeAt(startLoc);\n node.callee = base;\n node.typeArguments = this.flowParseTypeParameterInstantiationInExpression();\n this.expect(6);\n node.arguments = this.parseCallExpressionArguments();\n node.optional = true;\n return this.finishCallExpression(node, true);\n } else if (!noCalls && this.shouldParseTypes() && (this.match(43) || this.match(47))) {\n const node = this.startNodeAt(startLoc);\n node.callee = base;\n const result = this.tryParse(() => {\n node.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew();\n this.expect(6);\n node.arguments = super.parseCallExpressionArguments();\n if (subscriptState.optionalChainMember) {\n node.optional = false;\n }\n return this.finishCallExpression(node, subscriptState.optionalChainMember);\n });\n if (result.node) {\n if (result.error) this.state = result.failState;\n return result.node;\n }\n }\n return super.parseSubscript(base, startLoc, noCalls, subscriptState);\n }\n parseNewCallee(node) {\n super.parseNewCallee(node);\n let targs = null;\n if (this.shouldParseTypes() && this.match(43)) {\n targs = this.tryParse(() => this.flowParseTypeParameterInstantiationCallOrNew()).node;\n }\n node.typeArguments = targs;\n }\n parseAsyncArrowWithTypeParameters(startLoc) {\n const node = this.startNodeAt(startLoc);\n this.parseFunctionParams(node, false);\n if (!this.parseArrow(node)) return;\n return super.parseArrowExpression(node, undefined, true);\n }\n readToken_mult_modulo(code) {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (code === 42 && next === 47 && this.state.hasFlowComment) {\n this.state.hasFlowComment = false;\n this.state.pos += 2;\n this.nextToken();\n return;\n }\n super.readToken_mult_modulo(code);\n }\n readToken_pipe_amp(code) {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (code === 124 && next === 125) {\n this.finishOp(5, 2);\n return;\n }\n super.readToken_pipe_amp(code);\n }\n parseTopLevel(file, program) {\n const fileNode = super.parseTopLevel(file, program);\n if (this.state.hasFlowComment) {\n this.raise(FlowErrors.UnterminatedFlowComment, this.state.curPosition());\n }\n return fileNode;\n }\n skipBlockComment() {\n if (this.hasPlugin(\"flowComments\") && this.skipFlowComment()) {\n if (this.state.hasFlowComment) {\n throw this.raise(FlowErrors.NestedFlowComment, this.state.startLoc);\n }\n this.hasFlowCommentCompletion();\n const commentSkip = this.skipFlowComment();\n if (commentSkip) {\n this.state.pos += commentSkip;\n this.state.hasFlowComment = true;\n }\n return;\n }\n return super.skipBlockComment(this.state.hasFlowComment ? \"*-/\" : \"*/\");\n }\n skipFlowComment() {\n const {\n pos\n } = this.state;\n let shiftToFirstNonWhiteSpace = 2;\n while ([32, 9].includes(this.input.charCodeAt(pos + shiftToFirstNonWhiteSpace))) {\n shiftToFirstNonWhiteSpace++;\n }\n const ch2 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos);\n const ch3 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos + 1);\n if (ch2 === 58 && ch3 === 58) {\n return shiftToFirstNonWhiteSpace + 2;\n }\n if (this.input.slice(shiftToFirstNonWhiteSpace + pos, shiftToFirstNonWhiteSpace + pos + 12) === \"flow-include\") {\n return shiftToFirstNonWhiteSpace + 12;\n }\n if (ch2 === 58 && ch3 !== 58) {\n return shiftToFirstNonWhiteSpace;\n }\n return false;\n }\n hasFlowCommentCompletion() {\n const end = this.input.indexOf(\"*/\", this.state.pos);\n if (end === -1) {\n throw this.raise(Errors.UnterminatedComment, this.state.curPosition());\n }\n }\n flowEnumErrorBooleanMemberNotInitialized(loc, names) {\n this.raise(FlowErrors.EnumBooleanMemberNotInitialized, loc, names);\n }\n flowEnumErrorInvalidMemberInitializer(loc, enumContext) {\n return this.raise(!enumContext.explicitType ? FlowErrors.EnumInvalidMemberInitializerUnknownType : enumContext.explicitType === \"symbol\" ? FlowErrors.EnumInvalidMemberInitializerSymbolType : FlowErrors.EnumInvalidMemberInitializerPrimaryType, loc, enumContext);\n }\n flowEnumErrorNumberMemberNotInitialized(loc, details) {\n this.raise(FlowErrors.EnumNumberMemberNotInitialized, loc, details);\n }\n flowEnumErrorStringMemberInconsistentlyInitialized(node, details) {\n this.raise(FlowErrors.EnumStringMemberInconsistentlyInitialized, node, details);\n }\n flowEnumMemberInit() {\n const startLoc = this.state.startLoc;\n const endOfInit = () => this.match(8) || this.match(4);\n switch (this.state.type) {\n case 131:\n {\n const literal = this.parseNumericLiteral(this.state.value);\n if (endOfInit()) {\n return {\n type: \"number\",\n loc: literal.start,\n value: literal\n };\n }\n break;\n }\n case 130:\n {\n const literal = this.parseStringLiteral(this.state.value);\n if (endOfInit()) {\n return {\n type: \"string\",\n loc: literal.start,\n value: literal\n };\n }\n break;\n }\n case 81:\n case 82:\n {\n const literal = this.parseBooleanLiteral(this.match(81));\n if (endOfInit()) {\n return {\n type: \"boolean\",\n loc: literal.start,\n value: literal\n };\n }\n }\n }\n return {\n type: \"invalid\",\n loc: startLoc\n };\n }\n flowEnumMemberRaw() {\n const loc = this.state.startLoc;\n const id = this.parseIdentifier(true);\n const init = this.eat(25) ? this.flowEnumMemberInit() : {\n type: \"none\",\n loc\n };\n return {\n id,\n init\n };\n }\n flowEnumCheckExplicitTypeMismatch(loc, context, expectedType) {\n const {\n explicitType\n } = context;\n if (explicitType === null) {\n return;\n }\n if (explicitType !== expectedType) {\n this.flowEnumErrorInvalidMemberInitializer(loc, context);\n }\n }\n flowEnumMembers({\n enumName,\n explicitType\n }) {\n const seenNames = new Set();\n const members = {\n booleanMembers: [],\n numberMembers: [],\n stringMembers: [],\n defaultedMembers: []\n };\n let hasUnknownMembers = false;\n while (!this.match(4)) {\n if (this.eat(17)) {\n hasUnknownMembers = true;\n break;\n }\n const memberNode = this.startNode();\n const {\n id,\n init\n } = this.flowEnumMemberRaw();\n const memberName = id.name;\n if (memberName === \"\") {\n continue;\n }\n if (/^[a-z]/.test(memberName)) {\n this.raise(FlowErrors.EnumInvalidMemberName, id, {\n memberName,\n suggestion: memberName[0].toUpperCase() + memberName.slice(1),\n enumName\n });\n }\n if (seenNames.has(memberName)) {\n this.raise(FlowErrors.EnumDuplicateMemberName, id, {\n memberName,\n enumName\n });\n }\n seenNames.add(memberName);\n const context = {\n enumName,\n explicitType,\n memberName\n };\n memberNode.id = id;\n switch (init.type) {\n case \"boolean\":\n {\n this.flowEnumCheckExplicitTypeMismatch(init.loc, context, \"boolean\");\n memberNode.init = init.value;\n members.booleanMembers.push(this.finishNode(memberNode, \"EnumBooleanMember\"));\n break;\n }\n case \"number\":\n {\n this.flowEnumCheckExplicitTypeMismatch(init.loc, context, \"number\");\n memberNode.init = init.value;\n members.numberMembers.push(this.finishNode(memberNode, \"EnumNumberMember\"));\n break;\n }\n case \"string\":\n {\n this.flowEnumCheckExplicitTypeMismatch(init.loc, context, \"string\");\n memberNode.init = init.value;\n members.stringMembers.push(this.finishNode(memberNode, \"EnumStringMember\"));\n break;\n }\n case \"invalid\":\n {\n throw this.flowEnumErrorInvalidMemberInitializer(init.loc, context);\n }\n case \"none\":\n {\n switch (explicitType) {\n case \"boolean\":\n this.flowEnumErrorBooleanMemberNotInitialized(init.loc, context);\n break;\n case \"number\":\n this.flowEnumErrorNumberMemberNotInitialized(init.loc, context);\n break;\n default:\n members.defaultedMembers.push(this.finishNode(memberNode, \"EnumDefaultedMember\"));\n }\n }\n }\n if (!this.match(4)) {\n this.expect(8);\n }\n }\n return {\n members,\n hasUnknownMembers\n };\n }\n flowEnumStringMembers(initializedMembers, defaultedMembers, {\n enumName\n }) {\n if (initializedMembers.length === 0) {\n return defaultedMembers;\n } else if (defaultedMembers.length === 0) {\n return initializedMembers;\n } else if (defaultedMembers.length > initializedMembers.length) {\n for (const member of initializedMembers) {\n this.flowEnumErrorStringMemberInconsistentlyInitialized(member, {\n enumName\n });\n }\n return defaultedMembers;\n } else {\n for (const member of defaultedMembers) {\n this.flowEnumErrorStringMemberInconsistentlyInitialized(member, {\n enumName\n });\n }\n return initializedMembers;\n }\n }\n flowEnumParseExplicitType({\n enumName\n }) {\n if (!this.eatContextual(98)) return null;\n if (!tokenIsIdentifier(this.state.type)) {\n throw this.raise(FlowErrors.EnumInvalidExplicitTypeUnknownSupplied, this.state.startLoc, {\n enumName\n });\n }\n const {\n value\n } = this.state;\n this.next();\n if (value !== \"boolean\" && value !== \"number\" && value !== \"string\" && value !== \"symbol\") {\n this.raise(FlowErrors.EnumInvalidExplicitType, this.state.startLoc, {\n enumName,\n invalidEnumType: value\n });\n }\n return value;\n }\n flowEnumBody(node, id) {\n const enumName = id.name;\n const nameLoc = id.start;\n const explicitType = this.flowEnumParseExplicitType({\n enumName\n });\n this.expect(2);\n const {\n members,\n hasUnknownMembers\n } = this.flowEnumMembers({\n enumName,\n explicitType\n });\n node.hasUnknownMembers = hasUnknownMembers;\n switch (explicitType) {\n case \"boolean\":\n node.explicitType = true;\n node.members = members.booleanMembers;\n this.expect(4);\n return this.finishNode(node, \"EnumBooleanBody\");\n case \"number\":\n node.explicitType = true;\n node.members = members.numberMembers;\n this.expect(4);\n return this.finishNode(node, \"EnumNumberBody\");\n case \"string\":\n node.explicitType = true;\n node.members = this.flowEnumStringMembers(members.stringMembers, members.defaultedMembers, {\n enumName\n });\n this.expect(4);\n return this.finishNode(node, \"EnumStringBody\");\n case \"symbol\":\n node.members = members.defaultedMembers;\n this.expect(4);\n return this.finishNode(node, \"EnumSymbolBody\");\n default:\n {\n const empty = () => {\n node.members = [];\n this.expect(4);\n return this.finishNode(node, \"EnumStringBody\");\n };\n node.explicitType = false;\n const boolsLen = members.booleanMembers.length;\n const numsLen = members.numberMembers.length;\n const strsLen = members.stringMembers.length;\n const defaultedLen = members.defaultedMembers.length;\n if (!boolsLen && !numsLen && !strsLen && !defaultedLen) {\n return empty();\n } else if (!boolsLen && !numsLen) {\n node.members = this.flowEnumStringMembers(members.stringMembers, members.defaultedMembers, {\n enumName\n });\n this.expect(4);\n return this.finishNode(node, \"EnumStringBody\");\n } else if (!numsLen && !strsLen && boolsLen >= defaultedLen) {\n for (const member of members.defaultedMembers) {\n this.flowEnumErrorBooleanMemberNotInitialized(member.start, {\n enumName,\n memberName: member.id.name\n });\n }\n node.members = members.booleanMembers;\n this.expect(4);\n return this.finishNode(node, \"EnumBooleanBody\");\n } else if (!boolsLen && !strsLen && numsLen >= defaultedLen) {\n for (const member of members.defaultedMembers) {\n this.flowEnumErrorNumberMemberNotInitialized(member.start, {\n enumName,\n memberName: member.id.name\n });\n }\n node.members = members.numberMembers;\n this.expect(4);\n return this.finishNode(node, \"EnumNumberBody\");\n } else {\n this.raise(FlowErrors.EnumInconsistentMemberValues, nameLoc, {\n enumName\n });\n return empty();\n }\n }\n }\n }\n flowParseEnumDeclaration(node) {\n const id = this.parseIdentifier();\n node.id = id;\n node.body = this.flowEnumBody(this.startNode(), id);\n return this.finishNode(node, \"EnumDeclaration\");\n }\n jsxParseOpeningElementAfterName(node) {\n if (this.shouldParseTypes()) {\n if (this.match(43) || this.match(47)) {\n node.typeArguments = this.flowParseTypeParameterInstantiationInExpression();\n }\n }\n return super.jsxParseOpeningElementAfterName(node);\n }\n isLookaheadToken_lt() {\n const next = this.nextTokenStart();\n if (this.input.charCodeAt(next) === 60) {\n const afterNext = this.input.charCodeAt(next + 1);\n return afterNext !== 60 && afterNext !== 61;\n }\n return false;\n }\n reScan_lt_gt() {\n const {\n type\n } = this.state;\n if (type === 43) {\n this.state.pos -= 1;\n this.readToken_lt();\n } else if (type === 44) {\n this.state.pos -= 1;\n this.readToken_gt();\n }\n }\n reScan_lt() {\n const {\n type\n } = this.state;\n if (type === 47) {\n this.state.pos -= 2;\n this.finishOp(43, 1);\n return 43;\n }\n return type;\n }\n maybeUnwrapTypeCastExpression(node) {\n return node.type === \"TypeCastExpression\" ? node.expression : node;\n }\n};\nconst entities = {\n __proto__: null,\n quot: \"\\u0022\",\n amp: \"&\",\n apos: \"\\u0027\",\n lt: \"<\",\n gt: \">\",\n nbsp: \"\\u00A0\",\n iexcl: \"\\u00A1\",\n cent: \"\\u00A2\",\n pound: \"\\u00A3\",\n curren: \"\\u00A4\",\n yen: \"\\u00A5\",\n brvbar: \"\\u00A6\",\n sect: \"\\u00A7\",\n uml: \"\\u00A8\",\n copy: \"\\u00A9\",\n ordf: \"\\u00AA\",\n laquo: \"\\u00AB\",\n not: \"\\u00AC\",\n shy: \"\\u00AD\",\n reg: \"\\u00AE\",\n macr: \"\\u00AF\",\n deg: \"\\u00B0\",\n plusmn: \"\\u00B1\",\n sup2: \"\\u00B2\",\n sup3: \"\\u00B3\",\n acute: \"\\u00B4\",\n micro: \"\\u00B5\",\n para: \"\\u00B6\",\n middot: \"\\u00B7\",\n cedil: \"\\u00B8\",\n sup1: \"\\u00B9\",\n ordm: \"\\u00BA\",\n raquo: \"\\u00BB\",\n frac14: \"\\u00BC\",\n frac12: \"\\u00BD\",\n frac34: \"\\u00BE\",\n iquest: \"\\u00BF\",\n Agrave: \"\\u00C0\",\n Aacute: \"\\u00C1\",\n Acirc: \"\\u00C2\",\n Atilde: \"\\u00C3\",\n Auml: \"\\u00C4\",\n Aring: \"\\u00C5\",\n AElig: \"\\u00C6\",\n Ccedil: \"\\u00C7\",\n Egrave: \"\\u00C8\",\n Eacute: \"\\u00C9\",\n Ecirc: \"\\u00CA\",\n Euml: \"\\u00CB\",\n Igrave: \"\\u00CC\",\n Iacute: \"\\u00CD\",\n Icirc: \"\\u00CE\",\n Iuml: \"\\u00CF\",\n ETH: \"\\u00D0\",\n Ntilde: \"\\u00D1\",\n Ograve: \"\\u00D2\",\n Oacute: \"\\u00D3\",\n Ocirc: \"\\u00D4\",\n Otilde: \"\\u00D5\",\n Ouml: \"\\u00D6\",\n times: \"\\u00D7\",\n Oslash: \"\\u00D8\",\n Ugrave: \"\\u00D9\",\n Uacute: \"\\u00DA\",\n Ucirc: \"\\u00DB\",\n Uuml: \"\\u00DC\",\n Yacute: \"\\u00DD\",\n THORN: \"\\u00DE\",\n szlig: \"\\u00DF\",\n agrave: \"\\u00E0\",\n aacute: \"\\u00E1\",\n acirc: \"\\u00E2\",\n atilde: \"\\u00E3\",\n auml: \"\\u00E4\",\n aring: \"\\u00E5\",\n aelig: \"\\u00E6\",\n ccedil: \"\\u00E7\",\n egrave: \"\\u00E8\",\n eacute: \"\\u00E9\",\n ecirc: \"\\u00EA\",\n euml: \"\\u00EB\",\n igrave: \"\\u00EC\",\n iacute: \"\\u00ED\",\n icirc: \"\\u00EE\",\n iuml: \"\\u00EF\",\n eth: \"\\u00F0\",\n ntilde: \"\\u00F1\",\n ograve: \"\\u00F2\",\n oacute: \"\\u00F3\",\n ocirc: \"\\u00F4\",\n otilde: \"\\u00F5\",\n ouml: \"\\u00F6\",\n divide: \"\\u00F7\",\n oslash: \"\\u00F8\",\n ugrave: \"\\u00F9\",\n uacute: \"\\u00FA\",\n ucirc: \"\\u00FB\",\n uuml: \"\\u00FC\",\n yacute: \"\\u00FD\",\n thorn: \"\\u00FE\",\n yuml: \"\\u00FF\",\n OElig: \"\\u0152\",\n oelig: \"\\u0153\",\n Scaron: \"\\u0160\",\n scaron: \"\\u0161\",\n Yuml: \"\\u0178\",\n fnof: \"\\u0192\",\n circ: \"\\u02C6\",\n tilde: \"\\u02DC\",\n Alpha: \"\\u0391\",\n Beta: \"\\u0392\",\n Gamma: \"\\u0393\",\n Delta: \"\\u0394\",\n Epsilon: \"\\u0395\",\n Zeta: \"\\u0396\",\n Eta: \"\\u0397\",\n Theta: \"\\u0398\",\n Iota: \"\\u0399\",\n Kappa: \"\\u039A\",\n Lambda: \"\\u039B\",\n Mu: \"\\u039C\",\n Nu: \"\\u039D\",\n Xi: \"\\u039E\",\n Omicron: \"\\u039F\",\n Pi: \"\\u03A0\",\n Rho: \"\\u03A1\",\n Sigma: \"\\u03A3\",\n Tau: \"\\u03A4\",\n Upsilon: \"\\u03A5\",\n Phi: \"\\u03A6\",\n Chi: \"\\u03A7\",\n Psi: \"\\u03A8\",\n Omega: \"\\u03A9\",\n alpha: \"\\u03B1\",\n beta: \"\\u03B2\",\n gamma: \"\\u03B3\",\n delta: \"\\u03B4\",\n epsilon: \"\\u03B5\",\n zeta: \"\\u03B6\",\n eta: \"\\u03B7\",\n theta: \"\\u03B8\",\n iota: \"\\u03B9\",\n kappa: \"\\u03BA\",\n lambda: \"\\u03BB\",\n mu: \"\\u03BC\",\n nu: \"\\u03BD\",\n xi: \"\\u03BE\",\n omicron: \"\\u03BF\",\n pi: \"\\u03C0\",\n rho: \"\\u03C1\",\n sigmaf: \"\\u03C2\",\n sigma: \"\\u03C3\",\n tau: \"\\u03C4\",\n upsilon: \"\\u03C5\",\n phi: \"\\u03C6\",\n chi: \"\\u03C7\",\n psi: \"\\u03C8\",\n omega: \"\\u03C9\",\n thetasym: \"\\u03D1\",\n upsih: \"\\u03D2\",\n piv: \"\\u03D6\",\n ensp: \"\\u2002\",\n emsp: \"\\u2003\",\n thinsp: \"\\u2009\",\n zwnj: \"\\u200C\",\n zwj: \"\\u200D\",\n lrm: \"\\u200E\",\n rlm: \"\\u200F\",\n ndash: \"\\u2013\",\n mdash: \"\\u2014\",\n lsquo: \"\\u2018\",\n rsquo: \"\\u2019\",\n sbquo: \"\\u201A\",\n ldquo: \"\\u201C\",\n rdquo: \"\\u201D\",\n bdquo: \"\\u201E\",\n dagger: \"\\u2020\",\n Dagger: \"\\u2021\",\n bull: \"\\u2022\",\n hellip: \"\\u2026\",\n permil: \"\\u2030\",\n prime: \"\\u2032\",\n Prime: \"\\u2033\",\n lsaquo: \"\\u2039\",\n rsaquo: \"\\u203A\",\n oline: \"\\u203E\",\n frasl: \"\\u2044\",\n euro: \"\\u20AC\",\n image: \"\\u2111\",\n weierp: \"\\u2118\",\n real: \"\\u211C\",\n trade: \"\\u2122\",\n alefsym: \"\\u2135\",\n larr: \"\\u2190\",\n uarr: \"\\u2191\",\n rarr: \"\\u2192\",\n darr: \"\\u2193\",\n harr: \"\\u2194\",\n crarr: \"\\u21B5\",\n lArr: \"\\u21D0\",\n uArr: \"\\u21D1\",\n rArr: \"\\u21D2\",\n dArr: \"\\u21D3\",\n hArr: \"\\u21D4\",\n forall: \"\\u2200\",\n part: \"\\u2202\",\n exist: \"\\u2203\",\n empty: \"\\u2205\",\n nabla: \"\\u2207\",\n isin: \"\\u2208\",\n notin: \"\\u2209\",\n ni: \"\\u220B\",\n prod: \"\\u220F\",\n sum: \"\\u2211\",\n minus: \"\\u2212\",\n lowast: \"\\u2217\",\n radic: \"\\u221A\",\n prop: \"\\u221D\",\n infin: \"\\u221E\",\n ang: \"\\u2220\",\n and: \"\\u2227\",\n or: \"\\u2228\",\n cap: \"\\u2229\",\n cup: \"\\u222A\",\n int: \"\\u222B\",\n there4: \"\\u2234\",\n sim: \"\\u223C\",\n cong: \"\\u2245\",\n asymp: \"\\u2248\",\n ne: \"\\u2260\",\n equiv: \"\\u2261\",\n le: \"\\u2264\",\n ge: \"\\u2265\",\n sub: \"\\u2282\",\n sup: \"\\u2283\",\n nsub: \"\\u2284\",\n sube: \"\\u2286\",\n supe: \"\\u2287\",\n oplus: \"\\u2295\",\n otimes: \"\\u2297\",\n perp: \"\\u22A5\",\n sdot: \"\\u22C5\",\n lceil: \"\\u2308\",\n rceil: \"\\u2309\",\n lfloor: \"\\u230A\",\n rfloor: \"\\u230B\",\n lang: \"\\u2329\",\n rang: \"\\u232A\",\n loz: \"\\u25CA\",\n spades: \"\\u2660\",\n clubs: \"\\u2663\",\n hearts: \"\\u2665\",\n diams: \"\\u2666\"\n};\nconst lineBreak = /\\r\\n|[\\r\\n\\u2028\\u2029]/;\nconst lineBreakG = new RegExp(lineBreak.source, \"g\");\nfunction isNewLine(code) {\n switch (code) {\n case 10:\n case 13:\n case 8232:\n case 8233:\n return true;\n default:\n return false;\n }\n}\nfunction hasNewLine(input, start, end) {\n for (let i = start; i < end; i++) {\n if (isNewLine(input.charCodeAt(i))) {\n return true;\n }\n }\n return false;\n}\nconst skipWhiteSpace = /(?:\\s|\\/\\/.*|\\/\\*[^]*?\\*\\/)*/g;\nconst skipWhiteSpaceInLine = /(?:[^\\S\\n\\r\\u2028\\u2029]|\\/\\/.*|\\/\\*.*?\\*\\/)*/g;\nfunction isWhitespace(code) {\n switch (code) {\n case 0x0009:\n case 0x000b:\n case 0x000c:\n case 32:\n case 160:\n case 5760:\n case 0x2000:\n case 0x2001:\n case 0x2002:\n case 0x2003:\n case 0x2004:\n case 0x2005:\n case 0x2006:\n case 0x2007:\n case 0x2008:\n case 0x2009:\n case 0x200a:\n case 0x202f:\n case 0x205f:\n case 0x3000:\n case 0xfeff:\n return true;\n default:\n return false;\n }\n}\nconst JsxErrorTemplates = {\n AttributeIsEmpty: \"JSX attributes must only be assigned a non-empty expression.\",\n MissingClosingTagElement: ({\n openingTagName\n }) => `Expected corresponding JSX closing tag for <${openingTagName}>.`,\n MissingClosingTagFragment: \"Expected corresponding JSX closing tag for <>.\",\n UnexpectedSequenceExpression: \"Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?\",\n UnexpectedToken: ({\n unexpected,\n HTMLEntity\n }) => `Unexpected token \\`${unexpected}\\`. Did you mean \\`${HTMLEntity}\\` or \\`{'${unexpected}'}\\`?`,\n UnsupportedJsxValue: \"JSX value should be either an expression or a quoted JSX text.\",\n UnterminatedJsxContent: \"Unterminated JSX contents.\",\n UnwrappedAdjacentJSXElements: \"Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...</>?\"\n};\nconst JsxErrors = ParseErrorEnum`jsx`(JsxErrorTemplates);\nfunction isFragment(object) {\n return object ? object.type === \"JSXOpeningFragment\" || object.type === \"JSXClosingFragment\" : false;\n}\nfunction getQualifiedJSXName(object) {\n if (object.type === \"JSXIdentifier\") {\n return object.name;\n }\n if (object.type === \"JSXNamespacedName\") {\n return object.namespace.name + \":\" + object.name.name;\n }\n if (object.type === \"JSXMemberExpression\") {\n return getQualifiedJSXName(object.object) + \".\" + getQualifiedJSXName(object.property);\n }\n throw new Error(\"Node had unexpected type: \" + object.type);\n}\nconst jsx = superClass => class JSXParserMixin extends superClass {\n jsxReadToken() {\n let out = \"\";\n let chunkStart = this.state.pos;\n for (;;) {\n if (this.state.pos >= this.length) {\n throw this.raise(JsxErrors.UnterminatedJsxContent, this.state.startLoc);\n }\n const ch = this.input.charCodeAt(this.state.pos);\n switch (ch) {\n case 60:\n case 123:\n if (this.state.pos === this.state.start) {\n if (ch === 60 && this.state.canStartJSXElement) {\n ++this.state.pos;\n this.finishToken(138);\n } else {\n super.getTokenFromCode(ch);\n }\n return;\n }\n out += this.input.slice(chunkStart, this.state.pos);\n this.finishToken(137, out);\n return;\n case 38:\n out += this.input.slice(chunkStart, this.state.pos);\n out += this.jsxReadEntity();\n chunkStart = this.state.pos;\n break;\n case 62:\n case 125:\n this.raise(JsxErrors.UnexpectedToken, this.state.curPosition(), {\n unexpected: this.input[this.state.pos],\n HTMLEntity: ch === 125 ? \"}\" : \">\"\n });\n default:\n if (isNewLine(ch)) {\n out += this.input.slice(chunkStart, this.state.pos);\n out += this.jsxReadNewLine(true);\n chunkStart = this.state.pos;\n } else {\n ++this.state.pos;\n }\n }\n }\n }\n jsxReadNewLine(normalizeCRLF) {\n const ch = this.input.charCodeAt(this.state.pos);\n let out;\n ++this.state.pos;\n if (ch === 13 && this.input.charCodeAt(this.state.pos) === 10) {\n ++this.state.pos;\n out = normalizeCRLF ? \"\\n\" : \"\\r\\n\";\n } else {\n out = String.fromCharCode(ch);\n }\n ++this.state.curLine;\n this.state.lineStart = this.state.pos;\n return out;\n }\n jsxReadString(quote) {\n let out = \"\";\n let chunkStart = ++this.state.pos;\n for (;;) {\n if (this.state.pos >= this.length) {\n throw this.raise(Errors.UnterminatedString, this.state.startLoc);\n }\n const ch = this.input.charCodeAt(this.state.pos);\n if (ch === quote) break;\n if (ch === 38) {\n out += this.input.slice(chunkStart, this.state.pos);\n out += this.jsxReadEntity();\n chunkStart = this.state.pos;\n } else if (isNewLine(ch)) {\n out += this.input.slice(chunkStart, this.state.pos);\n out += this.jsxReadNewLine(false);\n chunkStart = this.state.pos;\n } else {\n ++this.state.pos;\n }\n }\n out += this.input.slice(chunkStart, this.state.pos++);\n this.finishToken(130, out);\n }\n jsxReadEntity() {\n const startPos = ++this.state.pos;\n if (this.codePointAtPos(this.state.pos) === 35) {\n ++this.state.pos;\n let radix = 10;\n if (this.codePointAtPos(this.state.pos) === 120) {\n radix = 16;\n ++this.state.pos;\n }\n const codePoint = this.readInt(radix, undefined, false, \"bail\");\n if (codePoint !== null && this.codePointAtPos(this.state.pos) === 59) {\n ++this.state.pos;\n return String.fromCodePoint(codePoint);\n }\n } else {\n let count = 0;\n let semi = false;\n while (count++ < 10 && this.state.pos < this.length && !(semi = this.codePointAtPos(this.state.pos) === 59)) {\n ++this.state.pos;\n }\n if (semi) {\n const desc = this.input.slice(startPos, this.state.pos);\n const entity = entities[desc];\n ++this.state.pos;\n if (entity) {\n return entity;\n }\n }\n }\n this.state.pos = startPos;\n return \"&\";\n }\n jsxReadWord() {\n let ch;\n const start = this.state.pos;\n do {\n ch = this.input.charCodeAt(++this.state.pos);\n } while (isIdentifierChar(ch) || ch === 45);\n this.finishToken(136, this.input.slice(start, this.state.pos));\n }\n jsxParseIdentifier() {\n const node = this.startNode();\n if (this.match(136)) {\n node.name = this.state.value;\n } else if (tokenIsKeyword(this.state.type)) {\n node.name = tokenLabelName(this.state.type);\n } else {\n this.unexpected();\n }\n this.next();\n return this.finishNode(node, \"JSXIdentifier\");\n }\n jsxParseNamespacedName() {\n const startLoc = this.state.startLoc;\n const name = this.jsxParseIdentifier();\n if (!this.eat(10)) return name;\n const node = this.startNodeAt(startLoc);\n node.namespace = name;\n node.name = this.jsxParseIdentifier();\n return this.finishNode(node, \"JSXNamespacedName\");\n }\n jsxParseElementName() {\n const startLoc = this.state.startLoc;\n let node = this.jsxParseNamespacedName();\n if (node.type === \"JSXNamespacedName\") {\n return node;\n }\n while (this.eat(12)) {\n const newNode = this.startNodeAt(startLoc);\n newNode.object = node;\n newNode.property = this.jsxParseIdentifier();\n node = this.finishNode(newNode, \"JSXMemberExpression\");\n }\n return node;\n }\n jsxParseAttributeValue() {\n let node;\n switch (this.state.type) {\n case 2:\n node = this.startNode();\n this.setContext(types.brace);\n this.next();\n node = this.jsxParseExpressionContainer(node, types.j_oTag);\n if (node.expression.type === \"JSXEmptyExpression\") {\n this.raise(JsxErrors.AttributeIsEmpty, node);\n }\n return node;\n case 138:\n case 130:\n return this.parseExprAtom();\n default:\n throw this.raise(JsxErrors.UnsupportedJsxValue, this.state.startLoc);\n }\n }\n jsxParseEmptyExpression() {\n const node = this.startNodeAt(this.state.lastTokEndLoc);\n return this.finishNodeAt(node, \"JSXEmptyExpression\", this.state.startLoc);\n }\n jsxParseSpreadChild(node) {\n this.next();\n node.expression = this.parseExpression();\n this.setContext(types.j_expr);\n this.state.canStartJSXElement = true;\n this.expect(4);\n return this.finishNode(node, \"JSXSpreadChild\");\n }\n jsxParseExpressionContainer(node, previousContext) {\n if (this.match(4)) {\n node.expression = this.jsxParseEmptyExpression();\n } else {\n const expression = this.parseExpression();\n if (expression.type === \"SequenceExpression\" && !expression.extra?.parenthesized) {\n this.raise(JsxErrors.UnexpectedSequenceExpression, expression.expressions[1]);\n }\n node.expression = expression;\n }\n this.setContext(previousContext);\n this.state.canStartJSXElement = true;\n this.expect(4);\n return this.finishNode(node, \"JSXExpressionContainer\");\n }\n jsxParseAttribute() {\n if (this.match(2)) {\n const node = this.startNode();\n this.setContext(types.brace);\n this.next();\n this.expect(17);\n node.argument = this.parseMaybeAssignAllowIn();\n this.setContext(types.j_oTag);\n this.state.canStartJSXElement = true;\n this.expect(4);\n return this.finishNode(node, \"JSXSpreadAttribute\");\n }\n const node = this.startNode();\n node.name = this.jsxParseNamespacedName();\n node.value = this.eat(25) ? this.jsxParseAttributeValue() : null;\n return this.finishNode(node, \"JSXAttribute\");\n }\n jsxParseOpeningElementAt(startLoc) {\n if (this.eat(139)) {\n const node = this.startNodeAt(startLoc);\n return this.finishNode(node, \"JSXOpeningFragment\");\n }\n const node = this.startNodeAt(startLoc);\n node.name = this.jsxParseElementName();\n return this.jsxParseOpeningElementAfterName(node);\n }\n jsxParseOpeningElementAfterName(node) {\n const attributes = [];\n while (!this.match(52) && !this.match(139)) {\n attributes.push(this.jsxParseAttribute());\n }\n node.attributes = attributes;\n node.selfClosing = this.eat(52);\n this.expect(139);\n return this.finishNode(node, \"JSXOpeningElement\");\n }\n jsxParseClosingElementAt(startLoc) {\n if (this.eat(139)) {\n const node = this.startNodeAt(startLoc);\n return this.finishNode(node, \"JSXClosingFragment\");\n }\n const node = this.startNodeAt(startLoc);\n node.name = this.jsxParseElementName();\n this.expect(139);\n return this.finishNode(node, \"JSXClosingElement\");\n }\n jsxParseElementAt(startLoc) {\n const node = this.startNodeAt(startLoc);\n const children = [];\n const openingElement = this.jsxParseOpeningElementAt(startLoc);\n let closingElement = null;\n if (!openingElement.selfClosing) {\n contents: for (;;) {\n switch (this.state.type) {\n case 138:\n startLoc = this.state.startLoc;\n this.next();\n if (this.eat(52)) {\n this.setLoc(startLoc);\n closingElement = this.jsxParseClosingElementAt(startLoc);\n break contents;\n }\n children.push(this.jsxParseElementAt(startLoc));\n break;\n case 137:\n children.push(this.parseLiteral(this.state.value, \"JSXText\"));\n break;\n case 2:\n {\n const node = this.startNode();\n this.setContext(types.brace);\n this.next();\n if (this.match(17)) {\n children.push(this.jsxParseSpreadChild(node));\n } else {\n children.push(this.jsxParseExpressionContainer(node, types.j_expr));\n }\n break;\n }\n default:\n this.unexpected();\n }\n }\n if (isFragment(openingElement) && !isFragment(closingElement) && closingElement !== null) {\n this.raise(JsxErrors.MissingClosingTagFragment, closingElement);\n } else if (!isFragment(openingElement) && isFragment(closingElement)) {\n this.raise(JsxErrors.MissingClosingTagElement, closingElement, {\n openingTagName: getQualifiedJSXName(openingElement.name)\n });\n } else if (!isFragment(openingElement) && !isFragment(closingElement)) {\n if (getQualifiedJSXName(closingElement.name) !== getQualifiedJSXName(openingElement.name)) {\n this.raise(JsxErrors.MissingClosingTagElement, closingElement, {\n openingTagName: getQualifiedJSXName(openingElement.name)\n });\n }\n }\n }\n if (isFragment(openingElement)) {\n node.openingFragment = openingElement;\n node.closingFragment = closingElement;\n } else {\n node.openingElement = openingElement;\n node.closingElement = closingElement;\n }\n node.children = children;\n if (this.match(43)) {\n throw this.raise(JsxErrors.UnwrappedAdjacentJSXElements, this.state.startLoc);\n }\n return isFragment(openingElement) ? this.finishNode(node, \"JSXFragment\") : this.finishNode(node, \"JSXElement\");\n }\n jsxParseElement() {\n const startLoc = this.state.startLoc;\n this.next();\n return this.jsxParseElementAt(startLoc);\n }\n setContext(newContext) {\n const {\n context\n } = this.state;\n context[context.length - 1] = newContext;\n }\n parseExprAtom(refExpressionErrors) {\n if (this.match(138)) {\n return this.jsxParseElement();\n } else if (this.match(43) && this.input.charCodeAt(this.state.pos) !== 33) {\n this.replaceToken(138);\n return this.jsxParseElement();\n } else {\n return super.parseExprAtom(refExpressionErrors);\n }\n }\n skipSpace() {\n const curContext = this.curContext();\n if (!curContext.preserveSpace) super.skipSpace();\n }\n getTokenFromCode(code) {\n const context = this.curContext();\n if (context === types.j_expr) {\n this.jsxReadToken();\n return;\n }\n if (context === types.j_oTag || context === types.j_cTag) {\n if (isIdentifierStart(code)) {\n this.jsxReadWord();\n return;\n }\n if (code === 62) {\n ++this.state.pos;\n this.finishToken(139);\n return;\n }\n if ((code === 34 || code === 39) && context === types.j_oTag) {\n this.jsxReadString(code);\n return;\n }\n }\n if (code === 60 && this.state.canStartJSXElement && this.input.charCodeAt(this.state.pos + 1) !== 33) {\n ++this.state.pos;\n this.finishToken(138);\n return;\n }\n super.getTokenFromCode(code);\n }\n updateContext(prevType) {\n const {\n context,\n type\n } = this.state;\n if (type === 52 && prevType === 138) {\n context.splice(-2, 2, types.j_cTag);\n this.state.canStartJSXElement = false;\n } else if (type === 138) {\n context.push(types.j_oTag);\n } else if (type === 139) {\n const out = context[context.length - 1];\n if (out === types.j_oTag && prevType === 52 || out === types.j_cTag) {\n context.pop();\n this.state.canStartJSXElement = context[context.length - 1] === types.j_expr;\n } else {\n this.setContext(types.j_expr);\n this.state.canStartJSXElement = true;\n }\n } else {\n this.state.canStartJSXElement = tokenComesBeforeExpression(type);\n }\n }\n};\nclass TypeScriptScope extends Scope {\n tsNames = new Map();\n}\nclass TypeScriptScopeHandler extends ScopeHandler {\n get inTSNamespace() {\n const scopeStack = this.scopeStack;\n return scopeStack.length >= 2 && scopeStack[scopeStack.length - 1].flags === 0 && (scopeStack[scopeStack.length - 2].flags & 2048) > 0;\n }\n importsStack = [];\n createScope(flags) {\n this.importsStack.push(new Set());\n return new TypeScriptScope(flags);\n }\n enter(flags) {\n if (flags & (1024 | 2048)) {\n this.importsStack.push(new Set());\n }\n super.enter(flags);\n }\n exit() {\n const flags = super.exit();\n if (flags & (1024 | 2048)) {\n this.importsStack.pop();\n }\n return flags;\n }\n hasImport(name, allowShadow) {\n const len = this.importsStack.length;\n if (this.importsStack[len - 1].has(name)) {\n return true;\n }\n if (!allowShadow && len > 1) {\n for (let i = 0; i < len - 1; i++) {\n if (this.importsStack[i].has(name)) return true;\n }\n }\n return false;\n }\n declareName(name, bindingType, loc) {\n if (bindingType & 4096) {\n if (this.hasImport(name, true)) {\n this.parser.raise(Errors.VarRedeclaration, loc, {\n identifierName: name\n });\n }\n this.importsStack[this.importsStack.length - 1].add(name);\n return;\n }\n const scope = this.currentScope();\n let type = scope.tsNames.get(name) || 0;\n if (bindingType & 1024) {\n this.maybeExportDefined(scope, name);\n scope.tsNames.set(name, type | 16);\n return;\n }\n super.declareName(name, bindingType, loc);\n if (bindingType & 2) {\n if (!(bindingType & 1)) {\n this.checkRedeclarationInScope(scope, name, bindingType, loc);\n this.maybeExportDefined(scope, name);\n }\n type = type | 1;\n }\n if (bindingType & 256) {\n type = type | 2;\n }\n if (bindingType & 512) {\n type = type | 4;\n }\n if (bindingType & 128) {\n type = type | 8;\n }\n if (type) scope.tsNames.set(name, type);\n }\n isRedeclaredInScope(scope, name, bindingType) {\n const type = scope.tsNames.get(name);\n if ((type & 2) > 0) {\n if (bindingType & 256) {\n const isConst = (bindingType & 512) > 0;\n const wasConst = (type & 4) > 0;\n return isConst !== wasConst;\n }\n return true;\n }\n if (bindingType & 128 && (type & 8) > 0) {\n if (scope.names.get(name) & 2) {\n return !!(bindingType & 1);\n } else {\n return false;\n }\n }\n if (bindingType & 2 && (type & 1) > 0) {\n return true;\n }\n return super.isRedeclaredInScope(scope, name, bindingType);\n }\n checkLocalExport(id) {\n const {\n name\n } = id;\n if (this.hasImport(name)) return;\n const len = this.scopeStack.length;\n for (let i = len - 1; i >= 0; i--) {\n const scope = this.scopeStack[i];\n const type = scope.tsNames.get(name);\n if ((type & 1) > 0 || (type & 16) > 0) {\n return;\n }\n }\n super.checkLocalExport(id);\n }\n}\nclass BaseParser {\n sawUnambiguousESM = false;\n ambiguousScriptDifferentAst = false;\n sourceToOffsetPos(sourcePos) {\n return sourcePos + this.startIndex;\n }\n offsetToSourcePos(offsetPos) {\n return offsetPos - this.startIndex;\n }\n hasPlugin(pluginConfig) {\n if (typeof pluginConfig === \"string\") {\n return this.plugins.has(pluginConfig);\n } else {\n const [pluginName, pluginOptions] = pluginConfig;\n if (!this.hasPlugin(pluginName)) {\n return false;\n }\n const actualOptions = this.plugins.get(pluginName);\n for (const key of Object.keys(pluginOptions)) {\n if (actualOptions?.[key] !== pluginOptions[key]) {\n return false;\n }\n }\n return true;\n }\n }\n getPluginOption(plugin, name) {\n return this.plugins.get(plugin)?.[name];\n }\n}\nfunction setTrailingComments(node, comments) {\n if (node.trailingComments === undefined) {\n node.trailingComments = comments;\n } else {\n node.trailingComments.unshift(...comments);\n }\n}\nfunction setLeadingComments(node, comments) {\n if (node.leadingComments === undefined) {\n node.leadingComments = comments;\n } else {\n node.leadingComments.unshift(...comments);\n }\n}\nfunction setInnerComments(node, comments) {\n if (node.innerComments === undefined) {\n node.innerComments = comments;\n } else {\n node.innerComments.unshift(...comments);\n }\n}\nfunction adjustInnerComments(node, elements, commentWS) {\n let lastElement = null;\n let i = elements.length;\n while (lastElement === null && i > 0) {\n lastElement = elements[--i];\n }\n if (lastElement === null || lastElement.start > commentWS.start) {\n setInnerComments(node, commentWS.comments);\n } else {\n setTrailingComments(lastElement, commentWS.comments);\n }\n}\nclass CommentsParser extends BaseParser {\n addComment(comment) {\n if (this.filename) comment.loc.filename = this.filename;\n const {\n commentsLen\n } = this.state;\n if (this.comments.length !== commentsLen) {\n this.comments.length = commentsLen;\n }\n this.comments.push(comment);\n this.state.commentsLen++;\n }\n processComment(node) {\n const {\n commentStack\n } = this.state;\n const commentStackLength = commentStack.length;\n if (commentStackLength === 0) return;\n let i = commentStackLength - 1;\n const lastCommentWS = commentStack[i];\n if (lastCommentWS.start === node.end) {\n lastCommentWS.leadingNode = node;\n i--;\n }\n const nodeStart = node.start;\n for (; i >= 0; i--) {\n const commentWS = commentStack[i];\n const commentEnd = commentWS.end;\n if (commentEnd > nodeStart) {\n commentWS.containingNode = node;\n this.finalizeComment(commentWS);\n commentStack.splice(i, 1);\n } else {\n if (commentEnd === nodeStart) {\n commentWS.trailingNode = node;\n }\n break;\n }\n }\n }\n finalizeComment(commentWS) {\n const {\n comments\n } = commentWS;\n if (commentWS.leadingNode !== null || commentWS.trailingNode !== null) {\n if (commentWS.leadingNode !== null) {\n setTrailingComments(commentWS.leadingNode, comments);\n }\n if (commentWS.trailingNode !== null) {\n setLeadingComments(commentWS.trailingNode, comments);\n }\n } else {\n const node = commentWS.containingNode;\n const commentStart = commentWS.start;\n if (this.input.charCodeAt(this.offsetToSourcePos(commentStart) - 1) === 44) {\n switch (node.type) {\n case \"ObjectExpression\":\n case \"ObjectPattern\":\n adjustInnerComments(node, node.properties, commentWS);\n break;\n case \"CallExpression\":\n case \"NewExpression\":\n case \"OptionalCallExpression\":\n adjustInnerComments(node, node.arguments, commentWS);\n break;\n case \"ImportExpression\":\n adjustInnerComments(node, [node.source, node.options ?? null], commentWS);\n break;\n case \"FunctionDeclaration\":\n case \"FunctionExpression\":\n case \"ArrowFunctionExpression\":\n case \"ObjectMethod\":\n case \"ClassMethod\":\n case \"ClassPrivateMethod\":\n case \"TSTypeParameterDeclaration\":\n adjustInnerComments(node, node.params, commentWS);\n break;\n case \"ArrayExpression\":\n case \"ArrayPattern\":\n adjustInnerComments(node, node.elements, commentWS);\n break;\n case \"ExportNamedDeclaration\":\n case \"ImportDeclaration\":\n adjustInnerComments(node, node.specifiers, commentWS);\n break;\n case \"TSEnumBody\":\n adjustInnerComments(node, node.members, commentWS);\n break;\n case \"TSInterfaceBody\":\n adjustInnerComments(node, node.body, commentWS);\n break;\n default:\n {\n setInnerComments(node, comments);\n }\n }\n } else {\n setInnerComments(node, comments);\n }\n }\n }\n finalizeRemainingComments() {\n const {\n commentStack\n } = this.state;\n for (let i = commentStack.length - 1; i >= 0; i--) {\n this.finalizeComment(commentStack[i]);\n }\n this.state.commentStack = [];\n }\n resetPreviousNodeTrailingComments(node) {\n const {\n commentStack\n } = this.state;\n const {\n length\n } = commentStack;\n if (length === 0) return;\n const commentWS = commentStack[length - 1];\n if (commentWS.leadingNode === node) {\n commentWS.leadingNode = null;\n }\n }\n takeSurroundingComments(node, start, end) {\n const {\n commentStack\n } = this.state;\n const commentStackLength = commentStack.length;\n if (commentStackLength === 0) return;\n let i = commentStackLength - 1;\n for (; i >= 0; i--) {\n const commentWS = commentStack[i];\n const commentEnd = commentWS.end;\n const commentStart = commentWS.start;\n if (commentStart === end) {\n commentWS.leadingNode = node;\n } else if (commentEnd === start) {\n commentWS.trailingNode = node;\n } else if (commentEnd < start) {\n break;\n }\n }\n }\n}\nclass State {\n flags = 2048;\n get strict() {\n return (this.flags & 1) > 0;\n }\n set strict(v) {\n if (v) this.flags |= 1;else this.flags &= -2;\n }\n startIndex;\n curLine;\n lineStart;\n startLoc;\n endLoc;\n init({\n strictMode,\n sourceType,\n startIndex,\n startLine,\n startColumn\n }) {\n this.strict = strictMode === false ? false : strictMode === true ? true : sourceType === \"module\";\n this.startIndex = startIndex;\n this.curLine = startLine;\n this.lineStart = -startColumn;\n this.startLoc = this.endLoc = new Position(startLine, startColumn, startIndex);\n }\n errors = [];\n noArrowAt = [];\n noArrowParamsConversionAt = [];\n get canStartArrow() {\n return (this.flags & 2) > 0;\n }\n set canStartArrow(v) {\n if (v) this.flags |= 2;else this.flags &= -3;\n }\n get inType() {\n return (this.flags & 4) > 0;\n }\n set inType(v) {\n if (v) this.flags |= 4;else this.flags &= -5;\n }\n get noAnonFunctionType() {\n return (this.flags & 8) > 0;\n }\n set noAnonFunctionType(v) {\n if (v) this.flags |= 8;else this.flags &= -9;\n }\n get hasFlowComment() {\n return (this.flags & 16) > 0;\n }\n set hasFlowComment(v) {\n if (v) this.flags |= 16;else this.flags &= -17;\n }\n get isAmbientContext() {\n return (this.flags & 32) > 0;\n }\n set isAmbientContext(v) {\n if (v) this.flags |= 32;else this.flags &= -33;\n }\n get inAbstractClass() {\n return (this.flags & 64) > 0;\n }\n set inAbstractClass(v) {\n if (v) this.flags |= 64;else this.flags &= -65;\n }\n get inDisallowConditionalTypesContext() {\n return (this.flags & 128) > 0;\n }\n set inDisallowConditionalTypesContext(v) {\n if (v) this.flags |= 128;else this.flags &= -129;\n }\n get inConditionalConsequent() {\n return (this.flags & 256) > 0;\n }\n set inConditionalConsequent(v) {\n if (v) this.flags |= 256;else this.flags &= -257;\n }\n get inHackPipelineBody() {\n return (this.flags & 512) > 0;\n }\n set inHackPipelineBody(v) {\n if (v) this.flags |= 512;else this.flags &= -513;\n }\n get seenTopicReference() {\n return (this.flags & 1024) > 0;\n }\n set seenTopicReference(v) {\n if (v) this.flags |= 1024;else this.flags &= -1025;\n }\n labels = [];\n commentsLen = 0;\n commentStack = [];\n pos = 0;\n type = 135;\n value = null;\n start = 0;\n end = 0;\n lastTokEndLoc = null;\n lastTokStartLoc = null;\n context = [types.brace];\n get canStartJSXElement() {\n return (this.flags & 2048) > 0;\n }\n set canStartJSXElement(v) {\n if (v) this.flags |= 2048;else this.flags &= -2049;\n }\n get containsEsc() {\n return (this.flags & 4096) > 0;\n }\n set containsEsc(v) {\n if (v) this.flags |= 4096;else this.flags &= -4097;\n }\n firstInvalidTemplateEscapePos = null;\n get hasTopLevelAwait() {\n return (this.flags & 8192) > 0;\n }\n set hasTopLevelAwait(v) {\n if (v) this.flags |= 8192;else this.flags &= -8193;\n }\n strictErrors = new Map();\n tokensLength = 0;\n curPosition() {\n return new Position(this.curLine, this.pos - this.lineStart, this.pos + this.startIndex);\n }\n clone() {\n const state = new State();\n state.flags = this.flags;\n state.startIndex = this.startIndex;\n state.curLine = this.curLine;\n state.lineStart = this.lineStart;\n state.startLoc = this.startLoc;\n state.endLoc = this.endLoc;\n state.errors = this.errors.slice();\n state.noArrowAt = this.noArrowAt.slice();\n state.noArrowParamsConversionAt = this.noArrowParamsConversionAt.slice();\n state.labels = this.labels.slice();\n state.commentsLen = this.commentsLen;\n state.commentStack = this.commentStack.slice();\n state.pos = this.pos;\n state.type = this.type;\n state.value = this.value;\n state.start = this.start;\n state.end = this.end;\n state.lastTokEndLoc = this.lastTokEndLoc;\n state.lastTokStartLoc = this.lastTokStartLoc;\n state.context = this.context.slice();\n state.firstInvalidTemplateEscapePos = this.firstInvalidTemplateEscapePos;\n state.strictErrors = this.strictErrors;\n state.tokensLength = this.tokensLength;\n return state;\n }\n}\nvar _isDigit = function isDigit(code) {\n return code >= 48 && code <= 57;\n};\nconst forbiddenNumericSeparatorSiblings = {\n decBinOct: new Set([46, 66, 69, 79, 95, 98, 101, 111]),\n hex: new Set([46, 88, 95, 120])\n};\nconst isAllowedNumericSeparatorSibling = {\n bin: ch => ch === 48 || ch === 49,\n oct: ch => ch >= 48 && ch <= 55,\n dec: ch => ch >= 48 && ch <= 57,\n hex: ch => ch >= 48 && ch <= 57 || ch >= 65 && ch <= 70 || ch >= 97 && ch <= 102\n};\nfunction readStringContents(type, input, pos, lineStart, curLine, errors) {\n const initialPos = pos;\n const initialLineStart = lineStart;\n const initialCurLine = curLine;\n let out = \"\";\n let firstInvalidLoc = null;\n let chunkStart = pos;\n const {\n length\n } = input;\n for (;;) {\n if (pos >= length) {\n errors.unterminated(initialPos, initialLineStart, initialCurLine);\n out += input.slice(chunkStart, pos);\n break;\n }\n const ch = input.charCodeAt(pos);\n if (isStringEnd(type, ch, input, pos)) {\n out += input.slice(chunkStart, pos);\n break;\n }\n if (ch === 92) {\n out += input.slice(chunkStart, pos);\n const res = readEscapedChar(input, pos, lineStart, curLine, type === \"template\", errors);\n if (res.ch === null && !firstInvalidLoc) {\n firstInvalidLoc = {\n pos,\n lineStart,\n curLine\n };\n } else {\n out += res.ch;\n }\n ({\n pos,\n lineStart,\n curLine\n } = res);\n chunkStart = pos;\n } else if (ch === 8232 || ch === 8233) {\n ++pos;\n ++curLine;\n lineStart = pos;\n } else if (ch === 10 || ch === 13) {\n if (type === \"template\") {\n out += input.slice(chunkStart, pos) + \"\\n\";\n ++pos;\n if (ch === 13 && input.charCodeAt(pos) === 10) {\n ++pos;\n }\n ++curLine;\n chunkStart = lineStart = pos;\n } else {\n errors.unterminated(initialPos, initialLineStart, initialCurLine);\n }\n } else {\n ++pos;\n }\n }\n return {\n pos,\n str: out,\n firstInvalidLoc,\n lineStart,\n curLine\n };\n}\nfunction isStringEnd(type, ch, input, pos) {\n if (type === \"template\") {\n return ch === 96 || ch === 36 && input.charCodeAt(pos + 1) === 123;\n }\n return ch === (type === \"double\" ? 34 : 39);\n}\nfunction readEscapedChar(input, pos, lineStart, curLine, inTemplate, errors) {\n const throwOnInvalid = !inTemplate;\n pos++;\n const res = ch => ({\n pos,\n ch,\n lineStart,\n curLine\n });\n const ch = input.charCodeAt(pos++);\n switch (ch) {\n case 110:\n return res(\"\\n\");\n case 114:\n return res(\"\\r\");\n case 120:\n {\n let code;\n ({\n code,\n pos\n } = readHexChar(input, pos, lineStart, curLine, 2, false, throwOnInvalid, errors));\n return res(code === null ? null : String.fromCharCode(code));\n }\n case 117:\n {\n let code;\n ({\n code,\n pos\n } = readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors));\n return res(code === null ? null : String.fromCodePoint(code));\n }\n case 116:\n return res(\"\\t\");\n case 98:\n return res(\"\\b\");\n case 118:\n return res(\"\\u000b\");\n case 102:\n return res(\"\\f\");\n case 13:\n if (input.charCodeAt(pos) === 10) {\n ++pos;\n }\n case 10:\n lineStart = pos;\n ++curLine;\n case 8232:\n case 8233:\n return res(\"\");\n case 56:\n case 57:\n if (inTemplate) {\n return res(null);\n } else {\n errors.strictNumericEscape(pos - 1, lineStart, curLine);\n }\n default:\n if (ch >= 48 && ch <= 55) {\n const startPos = pos - 1;\n const match = /^[0-7]+/.exec(input.slice(startPos, pos + 2));\n let octalStr = match[0];\n let octal = parseInt(octalStr, 8);\n if (octal > 255) {\n octalStr = octalStr.slice(0, -1);\n octal = parseInt(octalStr, 8);\n }\n pos += octalStr.length - 1;\n const next = input.charCodeAt(pos);\n if (octalStr !== \"0\" || next === 56 || next === 57) {\n if (inTemplate) {\n return res(null);\n } else {\n errors.strictNumericEscape(startPos, lineStart, curLine);\n }\n }\n return res(String.fromCharCode(octal));\n }\n return res(String.fromCharCode(ch));\n }\n}\nfunction readHexChar(input, pos, lineStart, curLine, len, forceLen, throwOnInvalid, errors) {\n const initialPos = pos;\n let n;\n ({\n n,\n pos\n } = readInt(input, pos, lineStart, curLine, 16, len, forceLen, false, errors, !throwOnInvalid));\n if (n === null) {\n if (throwOnInvalid) {\n errors.invalidEscapeSequence(initialPos, lineStart, curLine);\n } else {\n pos = initialPos - 1;\n }\n }\n return {\n code: n,\n pos\n };\n}\nfunction readInt(input, pos, lineStart, curLine, radix, len, forceLen, allowNumSeparator, errors, bailOnError) {\n const start = pos;\n const forbiddenSiblings = radix === 16 ? forbiddenNumericSeparatorSiblings.hex : forbiddenNumericSeparatorSiblings.decBinOct;\n const isAllowedSibling = radix === 16 ? isAllowedNumericSeparatorSibling.hex : radix === 10 ? isAllowedNumericSeparatorSibling.dec : radix === 8 ? isAllowedNumericSeparatorSibling.oct : isAllowedNumericSeparatorSibling.bin;\n let invalid = false;\n let total = 0;\n for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) {\n const code = input.charCodeAt(pos);\n let val;\n if (code === 95 && allowNumSeparator !== \"bail\") {\n const prev = input.charCodeAt(pos - 1);\n const next = input.charCodeAt(pos + 1);\n if (!allowNumSeparator) {\n if (bailOnError) return {\n n: null,\n pos\n };\n errors.numericSeparatorInEscapeSequence(pos, lineStart, curLine);\n } else if (Number.isNaN(next) || !isAllowedSibling(next) || forbiddenSiblings.has(prev) || forbiddenSiblings.has(next)) {\n if (bailOnError) return {\n n: null,\n pos\n };\n errors.unexpectedNumericSeparator(pos, lineStart, curLine);\n }\n ++pos;\n continue;\n }\n if (code >= 97) {\n val = code - 97 + 10;\n } else if (code >= 65) {\n val = code - 65 + 10;\n } else if (_isDigit(code)) {\n val = code - 48;\n } else {\n val = Infinity;\n }\n if (val >= radix) {\n if (val <= 9 && bailOnError) {\n return {\n n: null,\n pos\n };\n } else if (val <= 9 && errors.invalidDigit(pos, lineStart, curLine, radix)) {\n val = 0;\n } else if (forceLen) {\n val = 0;\n invalid = true;\n } else {\n break;\n }\n }\n ++pos;\n total = total * radix + val;\n }\n if (pos === start || len != null && pos - start !== len || invalid) {\n return {\n n: null,\n pos\n };\n }\n return {\n n: total,\n pos\n };\n}\nfunction readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors) {\n const ch = input.charCodeAt(pos);\n let code;\n if (ch === 123) {\n ++pos;\n ({\n code,\n pos\n } = readHexChar(input, pos, lineStart, curLine, input.indexOf(\"}\", pos) - pos, true, throwOnInvalid, errors));\n ++pos;\n if (code !== null && code > 0x10ffff) {\n if (throwOnInvalid) {\n errors.invalidCodePoint(pos, lineStart, curLine);\n } else {\n return {\n code: null,\n pos\n };\n }\n }\n } else {\n ({\n code,\n pos\n } = readHexChar(input, pos, lineStart, curLine, 4, false, throwOnInvalid, errors));\n }\n return {\n code,\n pos\n };\n}\nfunction buildPosition(pos, lineStart, curLine) {\n return new Position(curLine, pos - lineStart, pos);\n}\nconst VALID_REGEX_FLAGS = new Set([103, 109, 115, 105, 121, 117, 100, 118]);\nclass Token {\n constructor(state) {\n const startIndex = state.startIndex || 0;\n this.type = state.type;\n this.value = state.value;\n this.start = startIndex + state.start;\n this.end = startIndex + state.end;\n this.loc = new SourceLocation(state.startLoc, state.endLoc);\n }\n}\nlet locDataCache;\nclass Tokenizer extends CommentsParser {\n isLookahead;\n tokens = [];\n constructor(options, input) {\n super();\n this.state = new State();\n this.state.init(options);\n this.input = input;\n this.length = input.length;\n this.comments = [];\n this.isLookahead = false;\n if (!locDataCache || locDataCache.length < (this.length + 1) * 2) {\n locDataCache = new Uint32Array((this.length + 1) * 2);\n }\n this.locData = locDataCache;\n }\n setLoc(loc) {\n const dataIndex = this.offsetToSourcePos(loc.index);\n this.locData[dataIndex * 2] = loc.line;\n this.locData[dataIndex * 2 + 1] = loc.column;\n }\n getLoc(locIndex) {\n const dataIndex = this.offsetToSourcePos(locIndex);\n const loc = new Position(this.locData[dataIndex * 2], this.locData[dataIndex * 2 + 1], locIndex);\n return loc;\n }\n pushToken(token) {\n this.tokens.length = this.state.tokensLength;\n this.tokens.push(token);\n ++this.state.tokensLength;\n }\n next() {\n this.checkKeywordEscapes();\n if (this.optionFlags & 512) {\n this.pushToken(new Token(this.state));\n }\n this.state.lastTokEndLoc = this.state.endLoc;\n this.state.lastTokStartLoc = this.state.startLoc;\n this.nextToken();\n }\n eat(type) {\n if (this.match(type)) {\n this.next();\n return true;\n } else {\n return false;\n }\n }\n match(type) {\n return this.state.type === type;\n }\n createLookaheadState(state) {\n return {\n pos: state.pos,\n value: null,\n type: state.type,\n start: state.start,\n end: state.end,\n context: [this.curContext()],\n inType: state.inType,\n startLoc: state.startLoc,\n lastTokEndLoc: state.lastTokEndLoc,\n curLine: state.curLine,\n lineStart: state.lineStart,\n curPosition: state.curPosition\n };\n }\n lookahead() {\n const old = this.state;\n this.state = this.createLookaheadState(old);\n this.isLookahead = true;\n this.nextToken();\n this.isLookahead = false;\n const curr = this.state;\n this.state = old;\n return curr;\n }\n nextTokenStart() {\n return this.nextTokenStartSince(this.state.pos);\n }\n nextTokenStartSince(pos) {\n skipWhiteSpace.lastIndex = pos;\n return skipWhiteSpace.test(this.input) ? skipWhiteSpace.lastIndex : pos;\n }\n lookaheadCharCode() {\n return this.lookaheadCharCodeSince(this.state.pos);\n }\n lookaheadCharCodeSince(pos) {\n return this.input.charCodeAt(this.nextTokenStartSince(pos));\n }\n nextTokenInLineStart() {\n return this.nextTokenInLineStartSince(this.state.pos);\n }\n nextTokenInLineStartSince(pos) {\n skipWhiteSpaceInLine.lastIndex = pos;\n return skipWhiteSpaceInLine.test(this.input) ? skipWhiteSpaceInLine.lastIndex : pos;\n }\n lookaheadInLineCharCode() {\n return this.input.charCodeAt(this.nextTokenInLineStart());\n }\n codePointAtPos(pos) {\n let cp = this.input.charCodeAt(pos);\n if ((cp & 0xfc00) === 0xd800 && ++pos < this.input.length) {\n const trail = this.input.charCodeAt(pos);\n if ((trail & 0xfc00) === 0xdc00) {\n cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff);\n }\n }\n return cp;\n }\n setStrict(strict) {\n this.state.strict = strict;\n if (strict) {\n this.state.strictErrors.forEach(([toParseError, at]) => this.raise(toParseError, at));\n this.state.strictErrors.clear();\n }\n }\n curContext() {\n return this.state.context[this.state.context.length - 1];\n }\n nextToken() {\n this.skipSpace();\n this.state.start = this.state.pos;\n if (!this.isLookahead) this.state.startLoc = this.state.curPosition();\n if (this.state.pos >= this.length) {\n this.finishToken(135);\n return;\n }\n this.getTokenFromCode(this.codePointAtPos(this.state.pos));\n }\n skipBlockComment(commentEnd) {\n let startLoc;\n if (!this.isLookahead) startLoc = this.state.curPosition();\n const start = this.state.pos;\n const end = this.input.indexOf(commentEnd, start + 2);\n if (end === -1) {\n throw this.raise(Errors.UnterminatedComment, this.state.curPosition());\n }\n this.state.pos = end + commentEnd.length;\n lineBreakG.lastIndex = start + 2;\n while (lineBreakG.test(this.input) && lineBreakG.lastIndex <= end) {\n ++this.state.curLine;\n this.state.lineStart = lineBreakG.lastIndex;\n }\n if (this.isLookahead) return;\n const comment = {\n type: \"CommentBlock\",\n value: this.input.slice(start + 2, end),\n start: this.sourceToOffsetPos(start),\n end: this.sourceToOffsetPos(end + commentEnd.length),\n loc: new SourceLocation(startLoc, this.state.curPosition())\n };\n if (this.optionFlags & 512) this.pushToken(comment);\n return comment;\n }\n skipLineComment(startSkip) {\n const start = this.state.pos;\n let startLoc;\n if (!this.isLookahead) startLoc = this.state.curPosition();\n let ch = this.input.charCodeAt(this.state.pos += startSkip);\n if (this.state.pos < this.length) {\n while (!isNewLine(ch) && ++this.state.pos < this.length) {\n ch = this.input.charCodeAt(this.state.pos);\n }\n }\n if (this.isLookahead) return;\n const end = this.state.pos;\n const value = this.input.slice(start + startSkip, end);\n const comment = {\n type: \"CommentLine\",\n value,\n start: this.sourceToOffsetPos(start),\n end: this.sourceToOffsetPos(end),\n loc: new SourceLocation(startLoc, this.state.curPosition())\n };\n if (this.optionFlags & 512) this.pushToken(comment);\n return comment;\n }\n skipSpace() {\n const spaceStart = this.state.pos;\n const comments = this.optionFlags & 8192 ? [] : null;\n loop: while (this.state.pos < this.length) {\n const ch = this.input.charCodeAt(this.state.pos);\n switch (ch) {\n case 32:\n case 160:\n case 9:\n ++this.state.pos;\n break;\n case 13:\n if (this.input.charCodeAt(this.state.pos + 1) === 10) {\n ++this.state.pos;\n }\n case 10:\n case 8232:\n case 8233:\n ++this.state.pos;\n ++this.state.curLine;\n this.state.lineStart = this.state.pos;\n break;\n case 47:\n switch (this.input.charCodeAt(this.state.pos + 1)) {\n case 42:\n {\n const comment = this.skipBlockComment(\"*/\");\n if (comment !== undefined) {\n this.addComment(comment);\n comments?.push(comment);\n }\n break;\n }\n case 47:\n {\n const comment = this.skipLineComment(2);\n if (comment !== undefined) {\n this.addComment(comment);\n comments?.push(comment);\n }\n break;\n }\n default:\n break loop;\n }\n break;\n default:\n if (isWhitespace(ch)) {\n ++this.state.pos;\n } else if (ch === 45 && !this.inModule && this.optionFlags & 16384) {\n const pos = this.state.pos;\n if (this.input.charCodeAt(pos + 1) === 45 && this.input.charCodeAt(pos + 2) === 62 && (spaceStart === 0 || this.state.lineStart > spaceStart)) {\n const comment = this.skipLineComment(3);\n if (comment !== undefined) {\n this.addComment(comment);\n comments?.push(comment);\n }\n } else {\n break loop;\n }\n } else if (ch === 60 && !this.inModule && this.optionFlags & 16384) {\n const pos = this.state.pos;\n if (this.input.charCodeAt(pos + 1) === 33 && this.input.charCodeAt(pos + 2) === 45 && this.input.charCodeAt(pos + 3) === 45) {\n const comment = this.skipLineComment(4);\n if (comment !== undefined) {\n this.addComment(comment);\n comments?.push(comment);\n }\n } else {\n break loop;\n }\n } else {\n break loop;\n }\n }\n }\n if (comments?.length > 0) {\n const end = this.state.pos;\n const commentWhitespace = {\n start: this.sourceToOffsetPos(spaceStart),\n end: this.sourceToOffsetPos(end),\n comments: comments,\n leadingNode: null,\n trailingNode: null,\n containingNode: null\n };\n this.state.commentStack.push(commentWhitespace);\n }\n }\n finishToken(type, val) {\n this.state.end = this.state.pos;\n this.state.endLoc = this.state.curPosition();\n const prevType = this.state.type;\n this.state.type = type;\n this.state.value = val;\n if (!this.isLookahead) {\n this.updateContext(prevType);\n }\n }\n replaceToken(type) {\n this.state.type = type;\n this.updateContext();\n }\n readToken_numberSign() {\n if (this.state.pos === 0 && this.readToken_interpreter()) {\n return;\n }\n const nextPos = this.state.pos + 1;\n const next = this.codePointAtPos(nextPos);\n if (next >= 48 && next <= 57) {\n throw this.raise(Errors.UnexpectedDigitAfterHash, this.state.curPosition());\n }\n if (isIdentifierStart(next)) {\n ++this.state.pos;\n this.finishToken(134, this.readWord1(next));\n } else if (next === 92) {\n ++this.state.pos;\n this.finishToken(134, this.readWord1());\n } else {\n this.finishOp(23, 1);\n }\n }\n readToken_dot() {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (next >= 48 && next <= 57) {\n this.readNumber(true);\n return;\n }\n if (next === 46 && this.input.charCodeAt(this.state.pos + 2) === 46) {\n this.state.pos += 3;\n this.finishToken(17);\n } else {\n ++this.state.pos;\n this.finishToken(12);\n }\n }\n readToken_slash() {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (next === 61) {\n this.finishOp(27, 2);\n } else {\n this.finishOp(52, 1);\n }\n }\n readToken_interpreter() {\n if (this.state.pos !== 0 || this.length < 2) return false;\n let ch = this.input.charCodeAt(this.state.pos + 1);\n if (ch !== 33) return false;\n const start = this.state.pos;\n this.state.pos += 1;\n while (!isNewLine(ch) && ++this.state.pos < this.length) {\n ch = this.input.charCodeAt(this.state.pos);\n }\n const value = this.input.slice(start + 2, this.state.pos);\n this.finishToken(24, value);\n return true;\n }\n readToken_mult_modulo(code) {\n let type = code === 42 ? 51 : 50;\n let width = 1;\n let next = this.input.charCodeAt(this.state.pos + 1);\n if (code === 42 && next === 42) {\n width++;\n next = this.input.charCodeAt(this.state.pos + 2);\n type = 53;\n }\n if (next === 61 && !this.state.inType) {\n width++;\n type = code === 37 ? 29 : 26;\n }\n this.finishOp(type, width);\n }\n readToken_pipe_amp(code) {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (next === code) {\n if (this.input.charCodeAt(this.state.pos + 2) === 61) {\n this.finishOp(26, 3);\n } else {\n this.finishOp(code === 124 ? 37 : 38, 2);\n }\n return;\n }\n if (code === 124) {\n if (next === 62) {\n this.finishOp(35, 2);\n return;\n }\n }\n if (next === 61) {\n this.finishOp(26, 2);\n return;\n }\n this.finishOp(code === 124 ? 39 : 41, 1);\n }\n readToken_caret() {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (next === 61 && !this.state.inType) {\n this.finishOp(28, 2);\n } else if (next === 94 && this.hasPlugin([\"pipelineOperator\", {\n proposal: \"hack\",\n topicToken: \"^^\"\n }])) {\n this.finishOp(33, 2);\n const lookaheadCh = this.input.codePointAt(this.state.pos);\n if (lookaheadCh === 94) {\n this.unexpected();\n }\n } else {\n this.finishOp(40, 1);\n }\n }\n readToken_atSign() {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (next === 64 && this.hasPlugin([\"pipelineOperator\", {\n proposal: \"hack\",\n topicToken: \"@@\"\n }])) {\n this.finishOp(34, 2);\n } else {\n this.finishOp(22, 1);\n }\n }\n readToken_plus_min(code) {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (next === code) {\n this.finishOp(30, 2);\n return;\n }\n if (next === 61) {\n this.finishOp(26, 2);\n } else {\n this.finishOp(49, 1);\n }\n }\n readToken_lt() {\n const {\n pos\n } = this.state;\n const next = this.input.charCodeAt(pos + 1);\n if (next === 60) {\n if (this.input.charCodeAt(pos + 2) === 61) {\n this.finishOp(26, 3);\n return;\n }\n this.finishOp(47, 2);\n return;\n }\n if (next === 61) {\n this.finishOp(45, 2);\n return;\n }\n this.finishOp(43, 1);\n }\n readToken_gt() {\n const {\n pos\n } = this.state;\n const next = this.input.charCodeAt(pos + 1);\n if (next === 62) {\n const size = this.input.charCodeAt(pos + 2) === 62 ? 3 : 2;\n if (this.input.charCodeAt(pos + size) === 61) {\n this.finishOp(26, size + 1);\n return;\n }\n this.finishOp(48, size);\n return;\n }\n if (next === 61) {\n this.finishOp(45, 2);\n return;\n }\n this.finishOp(44, 1);\n }\n readToken_eq_excl(code) {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (next === 61) {\n this.finishOp(42, this.input.charCodeAt(this.state.pos + 2) === 61 ? 3 : 2);\n return;\n }\n if (code === 61 && next === 62) {\n this.state.pos += 2;\n this.finishToken(15);\n return;\n }\n this.finishOp(code === 61 ? 25 : 31, 1);\n }\n readToken_question() {\n const next = this.input.charCodeAt(this.state.pos + 1);\n const next2 = this.input.charCodeAt(this.state.pos + 2);\n if (next === 63) {\n if (next2 === 61) {\n this.finishOp(26, 3);\n } else {\n this.finishOp(36, 2);\n }\n } else if (next === 46 && !(next2 >= 48 && next2 <= 57)) {\n this.state.pos += 2;\n this.finishToken(14);\n } else {\n ++this.state.pos;\n this.finishToken(13);\n }\n }\n getTokenFromCode(code) {\n switch (code) {\n case 46:\n this.readToken_dot();\n return;\n case 40:\n ++this.state.pos;\n this.finishToken(6);\n return;\n case 41:\n ++this.state.pos;\n this.finishToken(7);\n return;\n case 59:\n ++this.state.pos;\n this.finishToken(9);\n return;\n case 44:\n ++this.state.pos;\n this.finishToken(8);\n return;\n case 91:\n ++this.state.pos;\n this.finishToken(0);\n return;\n case 93:\n ++this.state.pos;\n this.finishToken(1);\n return;\n case 123:\n ++this.state.pos;\n this.finishToken(2);\n return;\n case 125:\n ++this.state.pos;\n this.finishToken(4);\n return;\n case 58:\n if (this.hasPlugin(\"functionBind\") && this.input.charCodeAt(this.state.pos + 1) === 58) {\n this.finishOp(11, 2);\n } else {\n ++this.state.pos;\n this.finishToken(10);\n }\n return;\n case 63:\n this.readToken_question();\n return;\n case 96:\n this.readTemplateToken();\n return;\n case 48:\n {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (next === 120 || next === 88) {\n this.readRadixNumber(16);\n return;\n }\n if (next === 111 || next === 79) {\n this.readRadixNumber(8);\n return;\n }\n if (next === 98 || next === 66) {\n this.readRadixNumber(2);\n return;\n }\n }\n case 49:\n case 50:\n case 51:\n case 52:\n case 53:\n case 54:\n case 55:\n case 56:\n case 57:\n this.readNumber(false);\n return;\n case 34:\n case 39:\n this.readString(code);\n return;\n case 47:\n this.readToken_slash();\n return;\n case 37:\n case 42:\n this.readToken_mult_modulo(code);\n return;\n case 124:\n case 38:\n this.readToken_pipe_amp(code);\n return;\n case 94:\n this.readToken_caret();\n return;\n case 43:\n case 45:\n this.readToken_plus_min(code);\n return;\n case 60:\n this.readToken_lt();\n return;\n case 62:\n this.readToken_gt();\n return;\n case 61:\n case 33:\n this.readToken_eq_excl(code);\n return;\n case 126:\n this.finishOp(32, 1);\n return;\n case 64:\n this.readToken_atSign();\n return;\n case 35:\n this.readToken_numberSign();\n return;\n case 92:\n this.readWord();\n return;\n default:\n if (isIdentifierStart(code)) {\n this.readWord(code);\n return;\n }\n }\n throw this.raise(Errors.InvalidOrUnexpectedToken, this.state.curPosition(), {\n unexpected: String.fromCodePoint(code)\n });\n }\n finishOp(type, size) {\n const str = this.input.slice(this.state.pos, this.state.pos + size);\n this.state.pos += size;\n this.finishToken(type, str);\n }\n readRegexp() {\n const startLoc = this.state.startLoc;\n const start = this.state.start + 1;\n let escaped, inClass;\n let {\n pos\n } = this.state;\n for (;; ++pos) {\n if (pos >= this.length) {\n throw this.raise(Errors.UnterminatedRegExp, createPositionWithColumnOffset(startLoc, 1));\n }\n const ch = this.input.charCodeAt(pos);\n if (isNewLine(ch)) {\n throw this.raise(Errors.UnterminatedRegExp, createPositionWithColumnOffset(startLoc, 1));\n }\n if (escaped) {\n escaped = false;\n } else {\n if (ch === 91) {\n inClass = true;\n } else if (ch === 93 && inClass) {\n inClass = false;\n } else if (ch === 47 && !inClass) {\n break;\n }\n escaped = ch === 92;\n }\n }\n const content = this.input.slice(start, pos);\n ++pos;\n let mods = \"\";\n const nextPos = () => createPositionWithColumnOffset(startLoc, pos + 2 - start);\n while (pos < this.length) {\n const cp = this.codePointAtPos(pos);\n const char = String.fromCharCode(cp);\n if (VALID_REGEX_FLAGS.has(cp)) {\n if (cp === 118) {\n if (mods.includes(\"u\")) {\n this.raise(Errors.IncompatibleRegExpUVFlags, nextPos());\n }\n } else if (cp === 117) {\n if (mods.includes(\"v\")) {\n this.raise(Errors.IncompatibleRegExpUVFlags, nextPos());\n }\n }\n if (mods.includes(char)) {\n this.raise(Errors.DuplicateRegExpFlags, nextPos());\n }\n } else if (isIdentifierChar(cp) || cp === 92) {\n this.raise(Errors.MalformedRegExpFlags, nextPos());\n } else {\n break;\n }\n ++pos;\n mods += char;\n }\n this.state.pos = pos;\n this.finishToken(133, {\n pattern: content,\n flags: mods\n });\n }\n readInt(radix, len, forceLen = false, allowNumSeparator = true) {\n const {\n n,\n pos\n } = readInt(this.input, this.state.pos, this.state.lineStart, this.state.curLine, radix, len, forceLen, allowNumSeparator, this.errorHandlers_readInt, false);\n this.state.pos = pos;\n return n;\n }\n readRadixNumber(radix) {\n const start = this.state.pos;\n const startLoc = this.state.curPosition();\n let isBigInt = false;\n this.state.pos += 2;\n const val = this.readInt(radix);\n if (val == null) {\n this.raise(Errors.InvalidDigit, createPositionWithColumnOffset(startLoc, 2), {\n radix\n });\n }\n const next = this.input.charCodeAt(this.state.pos);\n if (next === 110) {\n ++this.state.pos;\n isBigInt = true;\n }\n if (isIdentifierStart(this.codePointAtPos(this.state.pos))) {\n throw this.raise(Errors.NumberIdentifier, this.state.curPosition());\n }\n if (isBigInt) {\n const str = this.input.slice(start, this.state.pos).replace(/[_n]/g, \"\");\n this.finishToken(132, str);\n return;\n }\n this.finishToken(131, val);\n }\n readNumber(startsWithDot) {\n const start = this.state.pos;\n const startLoc = this.state.curPosition();\n let isFloat = false;\n let isBigInt = false;\n let isOctal = false;\n if (!startsWithDot && this.readInt(10) === null) {\n this.raise(Errors.InvalidNumber, this.state.curPosition());\n }\n const hasLeadingZero = this.state.pos - start >= 2 && this.input.charCodeAt(start) === 48;\n if (hasLeadingZero) {\n const integer = this.input.slice(start, this.state.pos);\n this.recordStrictModeErrors(Errors.StrictOctalLiteral, startLoc);\n if (!this.state.strict) {\n const underscorePos = integer.indexOf(\"_\");\n if (underscorePos > 0) {\n this.raise(Errors.ZeroDigitNumericSeparator, createPositionWithColumnOffset(startLoc, underscorePos));\n }\n }\n isOctal = hasLeadingZero && !/[89]/.test(integer);\n }\n let next = this.input.charCodeAt(this.state.pos);\n if (next === 46 && !isOctal) {\n ++this.state.pos;\n this.readInt(10);\n isFloat = true;\n next = this.input.charCodeAt(this.state.pos);\n }\n if ((next === 69 || next === 101) && !isOctal) {\n next = this.input.charCodeAt(++this.state.pos);\n if (next === 43 || next === 45) {\n ++this.state.pos;\n }\n if (this.readInt(10) === null) {\n this.raise(Errors.InvalidOrMissingExponent, startLoc);\n }\n isFloat = true;\n next = this.input.charCodeAt(this.state.pos);\n }\n const str = this.input.slice(start, this.state.pos).replaceAll(\"_\", \"\");\n if (next === 110) {\n if (isFloat || hasLeadingZero) {\n this.raise(Errors.InvalidBigIntLiteral, startLoc);\n }\n ++this.state.pos;\n isBigInt = true;\n }\n if (isIdentifierStart(this.codePointAtPos(this.state.pos))) {\n throw this.raise(Errors.NumberIdentifier, this.state.curPosition());\n }\n if (isBigInt) {\n this.finishToken(132, str);\n return;\n }\n const val = isOctal ? parseInt(str, 8) : parseFloat(str);\n this.finishToken(131, val);\n }\n readCodePoint(throwOnInvalid) {\n const {\n code,\n pos\n } = readCodePoint(this.input, this.state.pos, this.state.lineStart, this.state.curLine, throwOnInvalid, this.errorHandlers_readCodePoint);\n this.state.pos = pos;\n return code;\n }\n readString(quote) {\n const {\n str,\n pos,\n curLine,\n lineStart\n } = readStringContents(quote === 34 ? \"double\" : \"single\", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_string);\n this.state.pos = pos + 1;\n this.state.lineStart = lineStart;\n this.state.curLine = curLine;\n this.finishToken(130, str);\n }\n readTemplateContinuation() {\n if (!this.match(4)) {\n this.unexpected(null, 4);\n }\n this.state.pos--;\n this.readTemplateToken();\n }\n readTemplateToken() {\n const opening = this.input[this.state.pos];\n const {\n str,\n firstInvalidLoc,\n pos,\n curLine,\n lineStart\n } = readStringContents(\"template\", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_template);\n this.state.pos = pos + 1;\n this.state.lineStart = lineStart;\n this.state.curLine = curLine;\n if (firstInvalidLoc) {\n this.state.firstInvalidTemplateEscapePos = new Position(firstInvalidLoc.curLine, firstInvalidLoc.pos - firstInvalidLoc.lineStart, this.sourceToOffsetPos(firstInvalidLoc.pos));\n }\n if (this.input.codePointAt(pos) === 96) {\n this.finishToken(20, firstInvalidLoc ? null : opening + str + \"`\");\n } else {\n this.state.pos++;\n this.finishToken(21, firstInvalidLoc ? null : opening + str + \"${\");\n }\n }\n recordStrictModeErrors(toParseError, at) {\n const index = at.index;\n if (this.state.strict && !this.state.strictErrors.has(index)) {\n this.raise(toParseError, at);\n } else {\n this.state.strictErrors.set(index, [toParseError, at]);\n }\n }\n readWord1(firstCode) {\n this.state.containsEsc = false;\n let word = \"\";\n const start = this.state.pos;\n let chunkStart = this.state.pos;\n if (firstCode !== undefined) {\n this.state.pos += firstCode <= 0xffff ? 1 : 2;\n }\n while (this.state.pos < this.length) {\n const ch = this.codePointAtPos(this.state.pos);\n if (isIdentifierChar(ch)) {\n this.state.pos += ch <= 0xffff ? 1 : 2;\n } else if (ch === 92) {\n this.state.containsEsc = true;\n word += this.input.slice(chunkStart, this.state.pos);\n const escStart = this.state.curPosition();\n const identifierCheck = this.state.pos === start ? isIdentifierStart : isIdentifierChar;\n if (this.input.charCodeAt(++this.state.pos) !== 117) {\n this.raise(Errors.MissingUnicodeEscape, this.state.curPosition());\n chunkStart = this.state.pos - 1;\n continue;\n }\n ++this.state.pos;\n const esc = this.readCodePoint(true);\n if (esc !== null) {\n if (!identifierCheck(esc)) {\n this.raise(Errors.EscapedCharNotAnIdentifier, escStart);\n }\n word += String.fromCodePoint(esc);\n }\n chunkStart = this.state.pos;\n } else {\n break;\n }\n }\n return word + this.input.slice(chunkStart, this.state.pos);\n }\n readWord(firstCode) {\n const word = this.readWord1(firstCode);\n const type = keywords$1.get(word);\n if (type !== undefined) {\n this.finishToken(type, tokenLabelName(type));\n } else {\n this.finishToken(128, word);\n }\n }\n checkKeywordEscapes() {\n const {\n type\n } = this.state;\n if (tokenIsKeyword(type) && this.state.containsEsc) {\n this.raise(Errors.InvalidEscapedReservedWord, this.state.startLoc, {\n reservedWord: tokenLabelName(type)\n });\n }\n }\n raise(toParseError, at, details = {}) {\n const loc = at instanceof Position ? at : typeof at === \"number\" ? this.getLoc(at) : this.optionFlags & 256 ? at.loc.start : this.getLoc(at.start);\n const pos = at instanceof Position ? loc.index : typeof at === \"number\" ? at : at.start;\n const error = toParseError(loc, pos, details);\n if (!(this.optionFlags & 4096)) throw error;\n if (!this.isLookahead) this.state.errors.push(error);\n return error;\n }\n raiseOverwrite(toParseError, at, details = {}) {\n const loc = at instanceof Position ? at : this.optionFlags & 256 ? at.loc.start : this.getLoc(at.start);\n const pos = at instanceof Position ? loc.index : at.start;\n const errors = this.state.errors;\n for (let i = errors.length - 1; i >= 0; i--) {\n const error = errors[i];\n if (error.pos === pos) {\n return errors[i] = toParseError(loc, pos, details);\n }\n if (error.pos < pos) break;\n }\n return this.raise(toParseError, loc, details);\n }\n updateContext(prevType) {}\n unexpected(loc, type) {\n throw this.raise(Errors.UnexpectedToken, loc != null ? loc : this.state.startLoc, {\n expected: type ? tokenLabelName(type) : null\n });\n }\n expectPlugin(pluginName, loc) {\n if (this.hasPlugin(pluginName)) {\n return true;\n }\n throw this.raise(Errors.MissingPlugin, loc != null ? loc : this.state.startLoc, {\n missingPlugin: [pluginName]\n });\n }\n expectOnePlugin(pluginNames) {\n if (!pluginNames.some(name => this.hasPlugin(name))) {\n throw this.raise(Errors.MissingOneOfPlugins, this.state.startLoc, {\n missingPlugin: pluginNames\n });\n }\n }\n errorBuilder(error) {\n return (pos, lineStart, curLine) => {\n this.raise(error, buildPosition(pos, lineStart, curLine));\n };\n }\n errorHandlers_readInt = {\n invalidDigit: (pos, lineStart, curLine, radix) => {\n if (!(this.optionFlags & 4096)) return false;\n this.raise(Errors.InvalidDigit, buildPosition(pos, lineStart, curLine), {\n radix\n });\n return true;\n },\n numericSeparatorInEscapeSequence: this.errorBuilder(Errors.NumericSeparatorInEscapeSequence),\n unexpectedNumericSeparator: this.errorBuilder(Errors.UnexpectedNumericSeparator)\n };\n errorHandlers_readCodePoint = {\n ...this.errorHandlers_readInt,\n invalidEscapeSequence: this.errorBuilder(Errors.InvalidEscapeSequence),\n invalidCodePoint: this.errorBuilder(Errors.InvalidCodePoint)\n };\n errorHandlers_readStringContents_string = {\n ...this.errorHandlers_readCodePoint,\n strictNumericEscape: (pos, lineStart, curLine) => {\n this.recordStrictModeErrors(Errors.StrictNumericEscape, buildPosition(pos, lineStart, curLine));\n },\n unterminated: (pos, lineStart, curLine) => {\n throw this.raise(Errors.UnterminatedString, buildPosition(pos - 1, lineStart, curLine));\n }\n };\n errorHandlers_readStringContents_template = {\n ...this.errorHandlers_readCodePoint,\n strictNumericEscape: this.errorBuilder(Errors.StrictNumericEscape),\n unterminated: (pos, lineStart, curLine) => {\n throw this.raise(Errors.UnterminatedTemplate, buildPosition(pos, lineStart, curLine));\n }\n };\n}\nclass ClassScope {\n privateNames = new Set();\n loneAccessors = new Map();\n undefinedPrivateNames = new Map();\n}\nclass ClassScopeHandler {\n parser;\n stack = [];\n constructor(parser) {\n this.parser = parser;\n }\n current() {\n return this.stack[this.stack.length - 1];\n }\n enter() {\n this.stack.push(new ClassScope());\n }\n exit() {\n const oldClassScope = this.stack.pop();\n const current = this.current();\n for (const [name, loc] of Array.from(oldClassScope.undefinedPrivateNames)) {\n if (current) {\n if (!current.undefinedPrivateNames.has(name)) {\n current.undefinedPrivateNames.set(name, loc);\n }\n } else {\n this.parser.raise(Errors.InvalidPrivateFieldResolution, loc, {\n identifierName: name\n });\n }\n }\n }\n declarePrivateName(name, elementType, loc) {\n const {\n privateNames,\n loneAccessors,\n undefinedPrivateNames\n } = this.current();\n let redefined = privateNames.has(name);\n if (elementType & 3) {\n const accessor = redefined && loneAccessors.get(name);\n if (accessor) {\n const oldStatic = accessor & 4;\n const newStatic = elementType & 4;\n const oldKind = accessor & 3;\n const newKind = elementType & 3;\n redefined = oldKind === newKind || oldStatic !== newStatic;\n if (!redefined) loneAccessors.delete(name);\n } else if (!redefined) {\n loneAccessors.set(name, elementType);\n }\n }\n if (redefined) {\n this.parser.raise(Errors.PrivateNameRedeclaration, loc, {\n identifierName: name\n });\n }\n privateNames.add(name);\n undefinedPrivateNames.delete(name);\n }\n usePrivateName(name, loc) {\n let classScope;\n for (classScope of this.stack) {\n if (classScope.privateNames.has(name)) return;\n }\n if (classScope) {\n classScope.undefinedPrivateNames.set(name, loc);\n } else {\n this.parser.raise(Errors.InvalidPrivateFieldResolution, loc, {\n identifierName: name\n });\n }\n }\n}\nclass ExpressionScope {\n constructor(type = 0) {\n this.type = type;\n }\n canBeArrowParameterDeclaration() {\n return this.type === 2 || this.type === 1;\n }\n isCertainlyParameterDeclaration() {\n return this.type === 3;\n }\n}\nclass ArrowHeadParsingScope extends ExpressionScope {\n declarationErrors = new Map();\n constructor(type) {\n super(type);\n }\n recordDeclarationError(ParsingErrorClass, index) {\n this.declarationErrors.set(index, ParsingErrorClass);\n }\n clearDeclarationError(index) {\n this.declarationErrors.delete(index);\n }\n iterateErrors(iterator) {\n this.declarationErrors.forEach(iterator);\n }\n}\nclass ExpressionScopeHandler {\n parser;\n stack = [new ExpressionScope()];\n constructor(parser) {\n this.parser = parser;\n }\n enter(scope) {\n this.stack.push(scope);\n }\n exit() {\n this.stack.pop();\n }\n recordParameterInitializerError(toParseError, loc) {\n const {\n stack\n } = this;\n let i = stack.length - 1;\n let scope = stack[i];\n while (!scope.isCertainlyParameterDeclaration()) {\n if (scope.canBeArrowParameterDeclaration()) {\n scope.recordDeclarationError(toParseError, loc);\n } else {\n return;\n }\n scope = stack[--i];\n }\n this.parser.raise(toParseError, loc);\n }\n recordArrowParameterBindingError(error, node) {\n const {\n stack\n } = this;\n const scope = stack[stack.length - 1];\n const origin = node.start;\n if (scope.isCertainlyParameterDeclaration()) {\n this.parser.raise(error, origin);\n } else if (scope.canBeArrowParameterDeclaration()) {\n scope.recordDeclarationError(error, origin);\n } else {\n return;\n }\n }\n recordAsyncArrowParametersError(at) {\n const {\n stack\n } = this;\n let i = stack.length - 1;\n let scope = stack[i];\n while (scope.canBeArrowParameterDeclaration()) {\n if (scope.type === 2) {\n scope.recordDeclarationError(Errors.AwaitBindingIdentifier, at);\n }\n scope = stack[--i];\n }\n }\n validateAsPattern() {\n const {\n stack\n } = this;\n const currentScope = stack[stack.length - 1];\n if (!currentScope.canBeArrowParameterDeclaration()) return;\n currentScope.iterateErrors((toParseError, key) => {\n this.parser.raise(toParseError, key);\n let i = stack.length - 2;\n let scope = stack[i];\n while (scope.canBeArrowParameterDeclaration()) {\n scope.clearDeclarationError(key);\n scope = stack[--i];\n }\n });\n }\n}\nfunction newParameterDeclarationScope() {\n return new ExpressionScope(3);\n}\nfunction newArrowHeadScope() {\n return new ArrowHeadParsingScope(1);\n}\nfunction newAsyncArrowScope() {\n return new ArrowHeadParsingScope(2);\n}\nfunction newExpressionScope() {\n return new ExpressionScope();\n}\nclass ProductionParameterHandler {\n stacks = [];\n enter(flags) {\n this.stacks.push(flags);\n }\n exit() {\n this.stacks.pop();\n }\n currentFlags() {\n return this.stacks[this.stacks.length - 1];\n }\n get hasAwait() {\n return (this.currentFlags() & 2) > 0;\n }\n get hasYield() {\n return (this.currentFlags() & 1) > 0;\n }\n get hasReturn() {\n return (this.currentFlags() & 4) > 0;\n }\n get hasIn() {\n return (this.currentFlags() & 8) > 0;\n }\n get inFSharpPipelineDirectBody() {\n return (this.currentFlags() & 16) === 0;\n }\n}\nfunction functionFlags(isAsync, isGenerator) {\n return (isAsync ? 2 : 0) | (isGenerator ? 1 : 0);\n}\nclass UtilParser extends Tokenizer {\n addExtra(node, key, value, enumerable = true) {\n if (!node) return;\n let {\n extra\n } = node;\n if (extra == null) {\n extra = {};\n node.extra = extra;\n }\n if (enumerable) {\n extra[key] = value;\n } else {\n Object.defineProperty(extra, key, {\n enumerable,\n value\n });\n }\n }\n isContextual(token) {\n return this.state.type === token && !this.state.containsEsc;\n }\n isUnparsedContextual(nameStart, name) {\n if (this.input.startsWith(name, nameStart)) {\n const nextCh = this.input.charCodeAt(nameStart + name.length);\n return !(isIdentifierChar(nextCh) || (nextCh & 0xfc00) === 0xd800);\n }\n return false;\n }\n isLookaheadContextual(name) {\n const next = this.nextTokenStart();\n return this.isUnparsedContextual(next, name);\n }\n eatContextual(token) {\n if (this.isContextual(token)) {\n this.next();\n return true;\n }\n return false;\n }\n expectContextual(token, toParseError) {\n if (!this.eatContextual(token)) {\n if (toParseError != null) {\n throw this.raise(toParseError, this.state.startLoc);\n }\n this.unexpected(null, token);\n }\n }\n canInsertSemicolon() {\n return this.match(135) || this.match(4) || this.hasPrecedingLineBreak();\n }\n hasPrecedingLineBreak() {\n return hasNewLine(this.input, this.offsetToSourcePos(this.state.lastTokEndLoc.index), this.state.start);\n }\n hasFollowingLineBreak() {\n return hasNewLine(this.input, this.state.end, this.nextTokenStart());\n }\n isLineTerminator() {\n return this.eat(9) || this.canInsertSemicolon();\n }\n semicolon(allowAsi = true) {\n if (allowAsi ? this.isLineTerminator() : this.eat(9)) return;\n this.raise(Errors.MissingSemicolon, this.state.lastTokEndLoc);\n }\n expect(type, loc) {\n if (!this.eat(type)) {\n this.unexpected(loc, type);\n }\n }\n tryParse(fn, oldState = this.state.clone()) {\n const abortSignal = {\n node: null\n };\n try {\n const node = fn((node = null) => {\n abortSignal.node = node;\n throw abortSignal;\n });\n if (this.state.errors.length > oldState.errors.length) {\n const failState = this.state;\n this.state = oldState;\n this.state.tokensLength = failState.tokensLength;\n return {\n node,\n error: failState.errors[oldState.errors.length],\n thrown: false,\n aborted: false,\n failState\n };\n }\n return {\n node: node,\n error: null,\n thrown: false,\n aborted: false,\n failState: null\n };\n } catch (error) {\n const failState = this.state;\n this.state = oldState;\n if (error instanceof SyntaxError) {\n return {\n node: null,\n error,\n thrown: true,\n aborted: false,\n failState\n };\n }\n if (error === abortSignal) {\n return {\n node: abortSignal.node,\n error: null,\n thrown: false,\n aborted: true,\n failState\n };\n }\n throw error;\n }\n }\n checkExpressionErrors(refExpressionErrors, andThrow) {\n if (!refExpressionErrors) return false;\n const {\n shorthandAssignLoc,\n doubleProtoLoc,\n privateKeyLoc,\n optionalParametersLoc,\n voidPatternLoc\n } = refExpressionErrors;\n const hasErrors = !!shorthandAssignLoc || !!doubleProtoLoc || !!optionalParametersLoc || !!privateKeyLoc || !!voidPatternLoc;\n if (!andThrow) {\n return hasErrors;\n }\n if (shorthandAssignLoc != null) {\n this.raise(Errors.InvalidCoverInitializedName, shorthandAssignLoc);\n }\n if (doubleProtoLoc != null) {\n this.raise(Errors.DuplicateProto, doubleProtoLoc);\n }\n if (privateKeyLoc != null) {\n this.raise(Errors.UnexpectedPrivateField, privateKeyLoc);\n }\n if (optionalParametersLoc != null) {\n this.unexpected(optionalParametersLoc);\n }\n if (voidPatternLoc != null) {\n this.raise(Errors.InvalidCoverDiscardElement, voidPatternLoc);\n }\n }\n isLiteralPropertyName() {\n return tokenIsLiteralPropertyName(this.state.type);\n }\n isPrivateName(node) {\n return node.type === \"PrivateName\";\n }\n getPrivateNameSV(node) {\n return node.id.name;\n }\n hasPropertyAsPrivateName(node) {\n return (node.type === \"MemberExpression\" || node.type === \"OptionalMemberExpression\") && this.isPrivateName(node.property);\n }\n isObjectProperty(node) {\n return node.type === \"ObjectProperty\";\n }\n isObjectMethod(node) {\n return node.type === \"ObjectMethod\";\n }\n initializeScopes(inModule = this.options.sourceType === \"module\") {\n const oldLabels = this.state.labels;\n this.state.labels = [];\n const oldExportedIdentifiers = this.exportedIdentifiers;\n this.exportedIdentifiers = new Set();\n const oldInModule = this.inModule;\n this.inModule = inModule;\n const oldScope = this.scope;\n const ScopeHandler = this.getScopeHandler();\n this.scope = new ScopeHandler(this, inModule);\n const oldProdParam = this.prodParam;\n this.prodParam = new ProductionParameterHandler();\n const oldClassScope = this.classScope;\n this.classScope = new ClassScopeHandler(this);\n const oldExpressionScope = this.expressionScope;\n this.expressionScope = new ExpressionScopeHandler(this);\n return () => {\n this.state.labels = oldLabels;\n this.exportedIdentifiers = oldExportedIdentifiers;\n this.inModule = oldInModule;\n this.scope = oldScope;\n this.prodParam = oldProdParam;\n this.classScope = oldClassScope;\n this.expressionScope = oldExpressionScope;\n };\n }\n enterInitialScopes() {\n let paramFlags = 0;\n if (this.inModule || this.optionFlags & 1) {\n paramFlags |= 2;\n }\n if (this.optionFlags & 32) {\n paramFlags |= 1;\n }\n const isCommonJS = !this.inModule && this.options.sourceType === \"commonjs\";\n if (isCommonJS || this.optionFlags & 2) {\n paramFlags |= 4;\n }\n this.prodParam.enter(paramFlags);\n let scopeFlags = isCommonJS ? 514 : 1;\n if (this.optionFlags & 4) {\n scopeFlags |= 512;\n }\n if (this.optionFlags & 16) {\n scopeFlags |= 16 | 32;\n }\n this.scope.enter(scopeFlags);\n }\n checkDestructuringPrivate(refExpressionErrors) {\n const {\n privateKeyLoc\n } = refExpressionErrors;\n if (privateKeyLoc !== null) {\n this.expectPlugin(\"destructuringPrivate\", privateKeyLoc);\n }\n }\n}\nclass ExpressionErrors {\n shorthandAssignLoc = null;\n doubleProtoLoc = null;\n privateKeyLoc = null;\n optionalParametersLoc = null;\n voidPatternLoc = null;\n}\nclass Node {\n constructor(optionFlags, filename, pos, loc) {\n this.start = pos;\n this.end = 0;\n if (loc !== undefined) this.loc = new SourceLocation(loc);\n if (optionFlags & 128) this.range = [pos, 0];\n if (loc !== undefined && filename) {\n this.loc.filename = filename;\n }\n }\n type = \"\";\n}\nconst NodePrototype = Node.prototype;\nclass NodeUtils extends UtilParser {\n createPosition(loc) {\n return loc;\n }\n startNode() {\n const {\n startLoc\n } = this.state;\n this.setLoc(startLoc);\n return this.startNodeAt(startLoc);\n }\n startNodeAt(loc) {\n const {\n optionFlags,\n filename\n } = this;\n if (!(optionFlags & 256)) {\n return new Node(optionFlags, filename, loc.index);\n }\n return new Node(optionFlags, filename, loc.index, this.createPosition(loc));\n }\n startNodeAtNode(type) {\n const {\n optionFlags,\n filename\n } = this;\n if (!(optionFlags & 256)) {\n return new Node(optionFlags, filename, type.start);\n }\n return new Node(optionFlags, filename, type.start, type.loc.start);\n }\n finishNode(node, type) {\n return this.finishNodeAt(node, type, this.state.lastTokEndLoc);\n }\n finishNodeAt(node, type, endLoc) {\n node.type = type;\n node.end = endLoc.index;\n const {\n optionFlags\n } = this;\n if (optionFlags & 256) {\n node.loc.end = this.createPosition(endLoc);\n }\n if (optionFlags & 128) node.range[1] = endLoc.index;\n if (optionFlags & 8192) this.processComment(node);\n return node;\n }\n finishNodeAtNode(node, type, endNode) {\n node.type = type;\n node.end = endNode.end;\n const {\n optionFlags\n } = this;\n if (optionFlags & 256) {\n node.loc.end = endNode.loc.end;\n }\n if (optionFlags & 128) node.range[1] = node.end;\n if (optionFlags & 8192) this.processComment(node);\n return node;\n }\n resetStartLocation(node, startLoc) {\n node.start = startLoc.index;\n const {\n optionFlags\n } = this;\n if (optionFlags & 256) {\n node.loc.start = this.createPosition(startLoc);\n }\n if (optionFlags & 128) node.range[0] = startLoc.index;\n }\n resetEndLocation(node, endLoc = this.state.lastTokEndLoc) {\n node.end = endLoc.index;\n const {\n optionFlags\n } = this;\n if (optionFlags & 256) {\n node.loc.end = this.createPosition(endLoc);\n }\n if (optionFlags & 128) node.range[1] = endLoc.index;\n }\n resetStartLocationFromNode(node, locationNode) {\n node.start = locationNode.start;\n const {\n optionFlags\n } = this;\n if (optionFlags & 256) {\n node.loc.start = locationNode.loc.start;\n }\n if (optionFlags & 128) node.range[0] = locationNode.start;\n }\n resetEndLocationFromNode(node, locationNode) {\n node.end = locationNode.end;\n const {\n optionFlags\n } = this;\n if (optionFlags & 256) {\n node.loc.end = locationNode.loc.end;\n }\n if (optionFlags & 128) node.range[1] = locationNode.end;\n }\n castNodeTo(node, type) {\n node.type = type;\n return node;\n }\n cloneIdentifier(node) {\n const {\n type,\n start,\n end,\n loc,\n range,\n name\n } = node;\n const cloned = Object.create(NodePrototype);\n cloned.type = type;\n cloned.start = start;\n cloned.end = end;\n cloned.loc = loc;\n cloned.range = range;\n cloned.name = name;\n if (node.extra) cloned.extra = node.extra;\n return cloned;\n }\n cloneStringLiteral(node) {\n const {\n type,\n start,\n end,\n loc,\n range,\n extra\n } = node;\n const cloned = Object.create(NodePrototype);\n cloned.type = type;\n cloned.start = start;\n cloned.end = end;\n cloned.loc = loc;\n cloned.range = range;\n cloned.extra = extra;\n cloned.value = node.value;\n return cloned;\n }\n}\nconst unwrapParenthesizedExpression = node => {\n return node.type === \"ParenthesizedExpression\" ? unwrapParenthesizedExpression(node.expression) : node;\n};\nclass LValParser extends NodeUtils {\n toAssignable(node, isLHS = false) {\n let parenthesized = undefined;\n if (node.type === \"ParenthesizedExpression\" || node.extra?.parenthesized) {\n parenthesized = unwrapParenthesizedExpression(node);\n if (isLHS) {\n if (parenthesized.type === \"Identifier\") {\n this.expressionScope.recordArrowParameterBindingError(Errors.InvalidParenthesizedAssignment, node);\n } else if (parenthesized.type !== \"CallExpression\" && parenthesized.type !== \"MemberExpression\" && !this.isOptionalMemberExpression(parenthesized)) {\n this.raise(Errors.InvalidParenthesizedAssignment, node);\n }\n } else {\n this.raise(Errors.InvalidParenthesizedAssignment, node);\n }\n }\n switch (node.type) {\n case \"Identifier\":\n case \"ObjectPattern\":\n case \"ArrayPattern\":\n case \"AssignmentPattern\":\n case \"RestElement\":\n case \"VoidPattern\":\n break;\n case \"ObjectExpression\":\n this.castNodeTo(node, \"ObjectPattern\");\n for (let i = 0, length = node.properties.length, last = length - 1; i < length; i++) {\n const prop = node.properties[i];\n const isLast = i === last;\n this.toAssignableObjectExpressionProp(prop, isLast, isLHS);\n if (isLast && prop.type === \"RestElement\" && node.extra?.trailingCommaLoc) {\n this.raise(Errors.RestTrailingComma, node.extra.trailingCommaLoc);\n }\n }\n break;\n case \"ObjectProperty\":\n {\n const {\n key,\n value\n } = node;\n if (this.isPrivateName(key)) {\n this.classScope.usePrivateName(this.getPrivateNameSV(key), key.start);\n }\n this.toAssignable(value, isLHS);\n break;\n }\n case \"SpreadElement\":\n {\n throw new Error(\"Internal @babel/parser error (this is a bug, please report it).\" + \" SpreadElement should be converted by .toAssignable's caller.\");\n }\n case \"ArrayExpression\":\n this.castNodeTo(node, \"ArrayPattern\");\n this.toAssignableList(node.elements, node.extra?.trailingCommaLoc, isLHS);\n break;\n case \"AssignmentExpression\":\n if (node.operator !== \"=\") {\n this.raise(Errors.MissingEqInAssignment, this.optionFlags & 256 ? node.left.loc.end : node.left);\n }\n this.castNodeTo(node, \"AssignmentPattern\");\n delete node.operator;\n if (node.left.type === \"VoidPattern\") {\n this.raise(Errors.VoidPatternInitializer, node.left);\n }\n this.toAssignable(node.left, isLHS);\n break;\n case \"ParenthesizedExpression\":\n this.toAssignable(parenthesized, isLHS);\n break;\n }\n }\n toAssignableObjectExpressionProp(prop, isLast, isLHS) {\n if (prop.type === \"ObjectMethod\") {\n this.raise(prop.kind === \"get\" || prop.kind === \"set\" ? Errors.PatternHasAccessor : Errors.PatternHasMethod, prop.key);\n } else if (prop.type === \"SpreadElement\") {\n this.castNodeTo(prop, \"RestElement\");\n const arg = prop.argument;\n this.checkToRestConversion(arg, false);\n this.toAssignable(arg, isLHS);\n if (!isLast) {\n this.raise(Errors.RestTrailingComma, prop);\n }\n } else {\n this.toAssignable(prop, isLHS);\n }\n }\n toAssignableList(exprList, trailingCommaLoc, isLHS) {\n const end = exprList.length - 1;\n for (let i = 0; i <= end; i++) {\n const elt = exprList[i];\n if (!elt) continue;\n this.toAssignableListItem(exprList, i, isLHS);\n if (elt.type === \"RestElement\") {\n if (i < end) {\n this.raise(Errors.RestTrailingComma, elt);\n } else if (trailingCommaLoc) {\n this.raise(Errors.RestTrailingComma, trailingCommaLoc);\n }\n }\n }\n }\n toAssignableListItem(exprList, index, isLHS) {\n const node = exprList[index];\n if (node.type === \"SpreadElement\") {\n this.castNodeTo(node, \"RestElement\");\n const arg = node.argument;\n this.checkToRestConversion(arg, true);\n this.toAssignable(arg, isLHS);\n } else {\n this.toAssignable(node, isLHS);\n }\n }\n isAssignable(node, isBinding) {\n switch (node.type) {\n case \"Identifier\":\n case \"ObjectPattern\":\n case \"ArrayPattern\":\n case \"AssignmentPattern\":\n case \"RestElement\":\n case \"VoidPattern\":\n return true;\n case \"ObjectExpression\":\n {\n const last = node.properties.length - 1;\n return node.properties.every((prop, i) => {\n return prop.type !== \"ObjectMethod\" && (i === last || prop.type !== \"SpreadElement\") && this.isAssignable(prop);\n });\n }\n case \"ObjectProperty\":\n return this.isAssignable(node.value);\n case \"SpreadElement\":\n return this.isAssignable(node.argument);\n case \"ArrayExpression\":\n return node.elements.every(element => element === null || this.isAssignable(element));\n case \"AssignmentExpression\":\n return node.operator === \"=\";\n case \"ParenthesizedExpression\":\n return this.isAssignable(node.expression);\n case \"MemberExpression\":\n case \"OptionalMemberExpression\":\n return !isBinding;\n default:\n return false;\n }\n }\n toReferencedList(exprList, isParenthesizedExpr) {\n return exprList;\n }\n parseSpread(refExpressionErrors) {\n const node = this.startNode();\n this.next();\n node.argument = this.parseMaybeAssignAllowIn(refExpressionErrors, undefined);\n return this.finishNode(node, \"SpreadElement\");\n }\n parseRestBinding() {\n const node = this.startNode();\n this.next();\n const argument = this.parseBindingAtom();\n if (argument.type === \"VoidPattern\") {\n this.raise(Errors.UnexpectedVoidPattern, argument);\n }\n node.argument = argument;\n return this.finishNode(node, \"RestElement\");\n }\n parseBindingAtom() {\n switch (this.state.type) {\n case 0:\n {\n const node = this.startNode();\n this.next();\n node.elements = this.parseBindingList(1, 93, 1);\n return this.finishNode(node, \"ArrayPattern\");\n }\n case 2:\n return this.parseObjectLike(4, true);\n case 84:\n return this.parseVoidPattern(null);\n }\n return this.parseIdentifier();\n }\n parseBindingList(close, closeCharCode, flags) {\n const allowEmpty = flags & 1;\n const elts = [];\n let first = true;\n while (!this.eat(close)) {\n if (first) {\n first = false;\n } else {\n this.expect(8);\n }\n if (allowEmpty && this.match(8)) {\n elts.push(null);\n } else if (this.eat(close)) {\n break;\n } else if (this.match(17)) {\n let rest = this.parseRestBinding();\n if (flags & 2) {\n rest = this.parseFunctionParamType(rest);\n }\n elts.push(rest);\n if (!this.checkCommaAfterRest(closeCharCode)) {\n this.expect(close);\n break;\n }\n } else {\n const decorators = [];\n if (flags & 2) {\n if (this.match(22) && this.hasPlugin(\"decorators\")) {\n this.raise(Errors.UnsupportedParameterDecorator, this.state.startLoc);\n }\n while (this.match(22)) {\n decorators.push(this.parseDecorator());\n }\n }\n elts.push(this.parseBindingElement(flags, decorators));\n }\n }\n return elts;\n }\n parseBindingRestProperty(prop) {\n this.next();\n if (this.hasPlugin(\"discardBinding\") && this.match(84)) {\n prop.argument = this.parseVoidPattern(null);\n this.raise(Errors.UnexpectedVoidPattern, prop.argument);\n } else {\n prop.argument = this.parseIdentifier();\n }\n this.checkCommaAfterRest(125);\n return this.finishNode(prop, \"RestElement\");\n }\n parseBindingProperty() {\n const {\n type,\n startLoc\n } = this.state;\n if (type === 17) {\n return this.parseBindingRestProperty(this.startNode());\n }\n const prop = this.startNode();\n if (type === 134) {\n this.expectPlugin(\"destructuringPrivate\", startLoc);\n this.classScope.usePrivateName(this.state.value, startLoc);\n prop.key = this.parsePrivateName();\n } else {\n this.parsePropertyName(prop);\n }\n prop.method = false;\n return this.parseObjPropValue(prop, startLoc, false, false, true, false);\n }\n parseBindingElement(flags, decorators) {\n const {\n startLoc\n } = this.state;\n const left = this.parseMaybeDefault();\n if (flags & 2) {\n this.parseFunctionParamType(left);\n }\n if (decorators.length) {\n left.decorators = decorators;\n this.resetStartLocationFromNode(left, decorators[0]);\n }\n const elt = this.parseMaybeDefault(startLoc, left);\n return elt;\n }\n parseFunctionParamType(param) {\n return param;\n }\n parseMaybeDefault(startLoc, left) {\n startLoc ??= this.state.startLoc;\n left = left ?? this.parseBindingAtom();\n if (!this.eat(25)) return left;\n const node = this.startNodeAt(startLoc);\n if (left.type === \"VoidPattern\") {\n this.raise(Errors.VoidPatternInitializer, left);\n }\n node.left = left;\n node.right = this.parseMaybeAssignAllowIn();\n return this.finishNode(node, \"AssignmentPattern\");\n }\n isValidLVal(type, disallowCallExpression, isUnparenthesizedInAssign, binding) {\n switch (type) {\n case \"AssignmentPattern\":\n return \"left\";\n case \"RestElement\":\n return \"argument\";\n case \"ObjectProperty\":\n return \"value\";\n case \"ParenthesizedExpression\":\n return \"expression\";\n case \"ArrayPattern\":\n return \"elements\";\n case \"ObjectPattern\":\n return \"properties\";\n case \"VoidPattern\":\n return true;\n case \"CallExpression\":\n if (!disallowCallExpression && !this.state.strict && this.optionFlags & 16384) {\n return true;\n }\n }\n return false;\n }\n isOptionalMemberExpression(expression) {\n return expression.type === \"OptionalMemberExpression\";\n }\n checkLVal(expression, ancestor, binding = 64, checkClashes = false, strictModeChanged = false, hasParenthesizedAncestor = false, disallowCallExpression = false) {\n const type = expression.type;\n if (this.isObjectMethod(expression)) return;\n const isOptionalMemberExpression = this.isOptionalMemberExpression(expression);\n if (isOptionalMemberExpression || type === \"MemberExpression\") {\n if (isOptionalMemberExpression) {\n this.expectPlugin(\"optionalChainingAssign\", expression.start);\n if (ancestor.type !== \"AssignmentExpression\") {\n this.raise(Errors.InvalidLhsOptionalChaining, expression, {\n ancestor\n });\n }\n }\n if (binding !== 64) {\n this.raise(Errors.InvalidPropertyBindingPattern, expression);\n }\n return;\n }\n if (type === \"Identifier\") {\n this.checkIdentifier(expression, binding, strictModeChanged);\n const {\n name\n } = expression;\n if (checkClashes) {\n if (checkClashes.has(name)) {\n this.raise(Errors.ParamDupe, expression);\n } else {\n checkClashes.add(name);\n }\n }\n return;\n } else if (type === \"VoidPattern\" && ancestor.type === \"CatchClause\") {\n this.raise(Errors.VoidPatternCatchClauseParam, expression);\n }\n const unwrappedExpression = unwrapParenthesizedExpression(expression);\n disallowCallExpression ||= unwrappedExpression.type === \"CallExpression\" && (unwrappedExpression.callee.type === \"Import\" || unwrappedExpression.callee.type === \"Super\");\n const validity = this.isValidLVal(type, disallowCallExpression, !(hasParenthesizedAncestor || expression.extra?.parenthesized) && ancestor.type === \"AssignmentExpression\", binding);\n if (validity === true) return;\n if (validity === false) {\n const ParseErrorClass = binding === 64 ? Errors.InvalidLhs : Errors.InvalidLhsBinding;\n this.raise(ParseErrorClass, expression, {\n ancestor\n });\n return;\n }\n let key, isParenthesizedExpression;\n if (typeof validity === \"string\") {\n key = validity;\n isParenthesizedExpression = type === \"ParenthesizedExpression\";\n } else {\n [key, isParenthesizedExpression] = validity;\n }\n const nextAncestor = type === \"ArrayPattern\" || type === \"ObjectPattern\" ? {\n type\n } : ancestor;\n const val = expression[key];\n if (Array.isArray(val)) {\n for (const child of val) {\n if (child) {\n this.checkLVal(child, nextAncestor, binding, checkClashes, strictModeChanged, isParenthesizedExpression, true);\n }\n }\n } else if (val) {\n this.checkLVal(val, nextAncestor, binding, checkClashes, strictModeChanged, isParenthesizedExpression, disallowCallExpression);\n }\n }\n checkIdentifier(at, bindingType, strictModeChanged = false) {\n if (this.state.strict && (strictModeChanged ? isStrictBindReservedWord(at.name, this.inModule) : isStrictBindOnlyReservedWord(at.name))) {\n if (bindingType === 64) {\n this.raise(Errors.StrictEvalArguments, at, {\n referenceName: at.name\n });\n } else {\n this.raise(Errors.StrictEvalArgumentsBinding, at, {\n bindingName: at.name\n });\n }\n }\n if (bindingType & 8192 && at.name === \"let\") {\n this.raise(Errors.LetInLexicalBinding, at);\n }\n if (!(bindingType & 64)) {\n this.declareNameFromIdentifier(at, bindingType);\n }\n }\n declareNameFromIdentifier(identifier, binding) {\n this.scope.declareName(identifier.name, binding, identifier.start);\n }\n checkToRestConversion(node, allowPattern) {\n switch (node.type) {\n case \"ParenthesizedExpression\":\n this.checkToRestConversion(node.expression, allowPattern);\n break;\n case \"Identifier\":\n case \"MemberExpression\":\n break;\n case \"ArrayExpression\":\n case \"ObjectExpression\":\n if (allowPattern) break;\n default:\n this.raise(Errors.InvalidRestAssignmentPattern, node);\n }\n }\n checkCommaAfterRest(close) {\n if (!this.match(8)) {\n return false;\n }\n this.raise(this.lookaheadCharCode() === close ? Errors.RestTrailingComma : Errors.ElementAfterRest, this.state.startLoc);\n return true;\n }\n}\nclass ExpressionParser extends LValParser {\n checkProto(prop, sawProto, refExpressionErrors) {\n if (prop.type === \"SpreadElement\" || this.isObjectMethod(prop) || prop.computed || prop.shorthand) {\n return sawProto;\n }\n const key = prop.key;\n const name = key.type === \"Identifier\" ? key.name : key.value;\n if (name === \"__proto__\") {\n if (sawProto) {\n if (refExpressionErrors) {\n if (refExpressionErrors.doubleProtoLoc === null) {\n refExpressionErrors.doubleProtoLoc = this.getLoc(key.start);\n }\n } else {\n this.raise(Errors.DuplicateProto, key);\n }\n }\n return true;\n }\n return sawProto;\n }\n shouldExitDescending(expr) {\n return expr.type === \"ArrowFunctionExpression\" && !expr.extra?.parenthesized;\n }\n getExpression() {\n this.enterInitialScopes();\n this.nextToken();\n if (this.match(135)) {\n throw this.raise(Errors.ParseExpressionEmptyInput, this.state.startLoc);\n }\n const expr = this.parseExpression();\n if (!this.match(135)) {\n throw this.raise(Errors.ParseExpressionExpectsEOF, this.state.startLoc, {\n unexpected: this.input.codePointAt(this.state.start)\n });\n }\n this.finalizeRemainingComments();\n expr.comments = this.comments;\n expr.errors = this.state.errors;\n if (this.optionFlags & 512) {\n expr.tokens = createExportedTokens(this.tokens);\n }\n return expr;\n }\n parseExpression(disallowIn, refExpressionErrors) {\n if (disallowIn) {\n return this.disallowInAnd(() => this.parseExpressionBase(refExpressionErrors));\n }\n return this.allowInAnd(() => this.parseExpressionBase(refExpressionErrors));\n }\n parseExpressionBase(refExpressionErrors) {\n const startLoc = this.state.startLoc;\n const expr = this.parseMaybeAssign(refExpressionErrors);\n if (this.match(8)) {\n const node = this.startNodeAt(startLoc);\n node.expressions = [expr];\n while (this.eat(8)) {\n node.expressions.push(this.parseMaybeAssign(refExpressionErrors));\n }\n this.toReferencedList(node.expressions);\n return this.finishNode(node, \"SequenceExpression\");\n }\n return expr;\n }\n parseMaybeAssignDisallowIn(refExpressionErrors, afterLeftParse) {\n return this.disallowInAnd(() => this.parseMaybeAssign(refExpressionErrors, afterLeftParse));\n }\n parseMaybeAssignAllowIn(refExpressionErrors, afterLeftParse) {\n return this.allowInAnd(() => this.parseMaybeAssign(refExpressionErrors, afterLeftParse));\n }\n setOptionalParametersError(refExpressionErrors) {\n refExpressionErrors.optionalParametersLoc = this.state.startLoc;\n }\n parseMaybeAssign(refExpressionErrors, afterLeftParse) {\n const startLoc = this.state.startLoc;\n const isYield = this.isContextual(104);\n if (isYield) {\n if (this.prodParam.hasYield) {\n this.next();\n let left = this.parseYield(startLoc);\n if (afterLeftParse) {\n left = afterLeftParse.call(this, left, startLoc);\n }\n return left;\n }\n }\n let ownExpressionErrors;\n if (refExpressionErrors) {\n ownExpressionErrors = false;\n } else {\n refExpressionErrors = new ExpressionErrors();\n ownExpressionErrors = true;\n }\n this.state.canStartArrow = true;\n let left = this.parseMaybeConditional(refExpressionErrors);\n if (afterLeftParse) {\n left = afterLeftParse.call(this, left, startLoc);\n }\n if (tokenIsAssignment(this.state.type)) {\n const node = this.startNodeAt(startLoc);\n const operator = this.state.value;\n node.operator = operator;\n if (this.match(25)) {\n this.toAssignable(left, true);\n node.left = left;\n const startIndex = startLoc.index;\n if (refExpressionErrors.doubleProtoLoc != null && refExpressionErrors.doubleProtoLoc.index >= startIndex) {\n refExpressionErrors.doubleProtoLoc = null;\n }\n if (refExpressionErrors.shorthandAssignLoc != null && refExpressionErrors.shorthandAssignLoc.index >= startIndex) {\n refExpressionErrors.shorthandAssignLoc = null;\n }\n if (refExpressionErrors.privateKeyLoc != null && refExpressionErrors.privateKeyLoc.index >= startIndex) {\n this.checkDestructuringPrivate(refExpressionErrors);\n refExpressionErrors.privateKeyLoc = null;\n }\n if (refExpressionErrors.voidPatternLoc != null && refExpressionErrors.voidPatternLoc.index >= startIndex) {\n refExpressionErrors.voidPatternLoc = null;\n }\n } else {\n node.left = left;\n }\n this.next();\n node.right = this.parseMaybeAssign();\n this.checkLVal(left, this.finishNode(node, \"AssignmentExpression\"), undefined, undefined, undefined, undefined, operator === \"||=\" || operator === \"&&=\" || operator === \"??=\");\n return node;\n } else if (ownExpressionErrors) {\n this.checkExpressionErrors(refExpressionErrors, true);\n }\n if (isYield) {\n const {\n type\n } = this.state;\n const startsExpr = this.hasPlugin(\"v8intrinsic\") ? tokenCanStartExpression(type) : tokenCanStartExpression(type) && !this.match(50);\n if (startsExpr && !this.isAmbiguousPrefixOrIdentifier()) {\n this.raiseOverwrite(Errors.YieldNotInGeneratorFunction, startLoc);\n return this.parseYield(startLoc);\n }\n }\n return left;\n }\n parseMaybeConditional(refExpressionErrors) {\n const startLoc = this.state.startLoc;\n const expr = this.parseExprOps(refExpressionErrors);\n if (this.shouldExitDescending(expr)) {\n return expr;\n }\n return this.parseConditional(expr, startLoc, refExpressionErrors);\n }\n parseConditional(expr, startLoc, refExpressionErrors) {\n if (this.eat(13)) {\n const node = this.startNodeAt(startLoc);\n node.test = expr;\n node.consequent = this.parseMaybeAssignAllowIn();\n this.expect(10);\n node.alternate = this.parseMaybeAssign();\n return this.finishNode(node, \"ConditionalExpression\");\n }\n return expr;\n }\n parseMaybeUnaryOrPrivate(refExpressionErrors) {\n return this.match(134) ? this.parsePrivateName() : this.parseMaybeUnary(refExpressionErrors);\n }\n parseExprOps(refExpressionErrors) {\n const startLoc = this.state.startLoc;\n const expr = this.parseMaybeUnaryOrPrivate(refExpressionErrors);\n if (this.shouldExitDescending(expr)) {\n return expr;\n }\n this.state.canStartArrow = false;\n return this.parseExprOp(expr, startLoc, -1);\n }\n parseExprOp(left, leftStartLoc, minPrec) {\n if (this.isPrivateName(left)) {\n const value = this.getPrivateNameSV(left);\n if (minPrec >= tokenOperatorPrecedence(54) || !this.prodParam.hasIn || !this.match(54)) {\n this.raise(Errors.PrivateInExpectedIn, leftStartLoc, {\n identifierName: value\n });\n }\n this.classScope.usePrivateName(value, leftStartLoc);\n }\n const op = this.state.type;\n if (tokenIsOperator(op) && (this.prodParam.hasIn || !this.match(54))) {\n let prec = tokenOperatorPrecedence(op);\n if (prec > minPrec) {\n if (op === 35) {\n this.expectPlugin(\"pipelineOperator\");\n if (this.prodParam.inFSharpPipelineDirectBody) {\n return left;\n }\n }\n const node = this.startNodeAt(leftStartLoc);\n node.left = left;\n node.operator = this.state.value;\n const logical = op === 37 || op === 38;\n const coalesce = op === 36;\n if (coalesce) {\n prec = tokenOperatorPrecedence(38);\n }\n this.next();\n node.right = this.parseExprOpRightExpr(op, prec);\n const finishedNode = this.finishNode(node, logical || coalesce ? \"LogicalExpression\" : \"BinaryExpression\");\n const nextOp = this.state.type;\n if (coalesce && (nextOp === 37 || nextOp === 38) || logical && nextOp === 36) {\n throw this.raise(Errors.MixingCoalesceWithLogical, this.state.startLoc);\n }\n return this.parseExprOp(finishedNode, leftStartLoc, minPrec);\n }\n }\n return left;\n }\n parseExprOpRightExpr(op, prec) {\n switch (op) {\n case 35:\n switch (this.getPluginOption(\"pipelineOperator\", \"proposal\")) {\n case \"hack\":\n return this.withTopicBindingContext(() => {\n return this.parseHackPipeBody();\n });\n case \"fsharp\":\n return this.parseFSharpPipelineBody(prec);\n }\n default:\n return this.parseExprOpBaseRightExpr(op, prec);\n }\n }\n parseExprOpBaseRightExpr(op, prec) {\n const startLoc = this.state.startLoc;\n return this.parseExprOp(this.parseMaybeUnaryOrPrivate(), startLoc, tokenIsRightAssociative(op) ? prec - 1 : prec);\n }\n parseHackPipeBody() {\n const {\n startLoc\n } = this.state;\n const body = this.parseMaybeAssign();\n const requiredParentheses = UnparenthesizedPipeBodyDescriptions.has(body.type);\n if (requiredParentheses && !body.extra?.parenthesized) {\n this.raise(Errors.PipeUnparenthesizedBody, startLoc, {\n type: body.type\n });\n }\n if (!this.topicReferenceWasUsedInCurrentContext()) {\n this.raise(Errors.PipeTopicUnused, startLoc);\n }\n return body;\n }\n checkExponentialAfterUnary(node) {\n if (this.match(53)) {\n this.raise(Errors.UnexpectedTokenUnaryExponentiation, node.argument);\n }\n }\n parseMaybeUnary(refExpressionErrors, sawUnary) {\n const startLoc = this.state.startLoc;\n const isAwait = this.isContextual(92);\n if (isAwait && this.recordAwaitIfAllowed()) {\n this.next();\n const expr = this.parseAwait(startLoc);\n if (!sawUnary) this.checkExponentialAfterUnary(expr);\n return expr;\n }\n const update = this.match(30);\n const node = this.startNode();\n if (tokenIsPrefix(this.state.type)) {\n node.operator = this.state.value;\n node.prefix = true;\n this.state.canStartArrow = false;\n if (this.match(68)) {\n this.expectPlugin(\"throwExpressions\");\n }\n const isDelete = this.match(85);\n this.next();\n node.argument = this.parseMaybeUnary(null, true);\n this.checkExpressionErrors(refExpressionErrors, true);\n if (this.state.strict && isDelete) {\n const arg = node.argument;\n if (arg.type === \"Identifier\") {\n this.raise(Errors.StrictDelete, node);\n } else if (this.hasPropertyAsPrivateName(arg)) {\n this.raise(Errors.DeletePrivateField, node);\n }\n }\n if (!update) {\n if (!sawUnary) {\n this.checkExponentialAfterUnary(node);\n }\n return this.finishNode(node, \"UnaryExpression\");\n }\n }\n const expr = this.parseUpdate(node, update, refExpressionErrors);\n if (isAwait) {\n const {\n type\n } = this.state;\n const startsExpr = this.hasPlugin(\"v8intrinsic\") ? tokenCanStartExpression(type) : tokenCanStartExpression(type) && !this.match(50);\n if (startsExpr && !this.isAmbiguousPrefixOrIdentifier()) {\n this.raiseOverwrite(Errors.AwaitNotInAsyncContext, startLoc);\n return this.parseAwait(startLoc);\n }\n }\n return expr;\n }\n parseUpdate(node, update, refExpressionErrors) {\n if (update) {\n const result = this.finishNode(node, \"UpdateExpression\");\n this.checkLVal(result.argument, result);\n return result;\n }\n const startLoc = this.state.startLoc;\n let expr = this.parseExprSubscripts(refExpressionErrors);\n if (this.checkExpressionErrors(refExpressionErrors, false)) return expr;\n while (tokenIsPostfix(this.state.type) && !this.canInsertSemicolon()) {\n const node = this.startNodeAt(startLoc);\n node.operator = this.state.value;\n node.prefix = false;\n node.argument = expr;\n this.next();\n this.checkLVal(expr, expr = this.finishNode(node, \"UpdateExpression\"));\n }\n return expr;\n }\n parseExprSubscripts(refExpressionErrors) {\n const startLoc = this.state.startLoc;\n this.setLoc(startLoc);\n const expr = this.parseExprAtom(refExpressionErrors);\n if (this.shouldExitDescending(expr)) {\n return expr;\n }\n return this.parseSubscripts(expr, startLoc);\n }\n parseSubscripts(base, startLoc, noCalls) {\n const state = {\n optionalChainMember: false,\n maybeAsyncArrow: this.atPossibleAsyncArrow(base),\n stop: false\n };\n do {\n base = this.parseSubscript(base, startLoc, noCalls, state);\n state.maybeAsyncArrow = false;\n } while (!state.stop);\n return base;\n }\n parseSubscript(base, startLoc, noCalls, state) {\n const {\n type\n } = this.state;\n if (!noCalls && type === 11) {\n return this.parseBind(base, startLoc, state);\n } else if (tokenIsTemplate(type)) {\n return this.parseTaggedTemplateExpression(base, startLoc, state);\n }\n let optional = false;\n if (type === 14) {\n if (noCalls) {\n this.raise(Errors.OptionalChainingNoNew, this.state.startLoc);\n if (this.lookaheadCharCode() === 40) {\n return this.stopParseSubscript(base, state);\n }\n }\n state.optionalChainMember = optional = true;\n this.next();\n }\n if (!noCalls && this.match(6)) {\n return this.parseCoverCallAndAsyncArrowHead(base, startLoc, state, optional);\n } else {\n const computed = this.eat(0);\n if (computed || optional || this.eat(12)) {\n return this.parseMember(base, startLoc, state, computed, optional);\n } else {\n return this.stopParseSubscript(base, state);\n }\n }\n }\n stopParseSubscript(base, state) {\n state.stop = true;\n return base;\n }\n parseMember(base, startLoc, state, computed, optional) {\n const node = this.startNodeAt(startLoc);\n node.object = base;\n node.computed = computed;\n if (computed) {\n node.property = this.parseExpression();\n this.expect(1);\n } else if (this.match(134)) {\n if (base.type === \"Super\") {\n this.raise(Errors.SuperPrivateField, startLoc);\n }\n this.classScope.usePrivateName(this.state.value, this.state.startLoc);\n node.property = this.parsePrivateName();\n } else {\n node.property = this.parseIdentifier(true);\n }\n if (state.optionalChainMember) {\n node.optional = optional;\n return this.finishNode(node, \"OptionalMemberExpression\");\n } else {\n return this.finishNode(node, \"MemberExpression\");\n }\n }\n parseBind(base, startLoc, state) {\n const node = this.startNodeAt(startLoc);\n node.object = base;\n this.next();\n const isImport = this.match(79);\n const callee = this.parseNoCallExpr();\n if (callee.type === \"Super\" || isImport && callee.type === \"ImportExpression\" || callee.type === \"Import\") {\n throw this.raise(Errors.UnsupportedBindRHS, callee);\n }\n node.callee = callee;\n state.stop = true;\n return this.parseSubscripts(this.finishNode(node, \"BindExpression\"), startLoc, false);\n }\n parseCoverCallAndAsyncArrowHead(base, startLoc, state, optional) {\n let refExpressionErrors = null;\n this.next();\n const node = this.startNodeAt(startLoc);\n node.callee = base;\n const {\n maybeAsyncArrow,\n optionalChainMember\n } = state;\n if (maybeAsyncArrow) {\n this.expressionScope.enter(newAsyncArrowScope());\n refExpressionErrors = new ExpressionErrors();\n }\n if (optionalChainMember) {\n node.optional = optional;\n }\n if (optional) {\n node.arguments = this.parseCallExpressionArguments();\n } else {\n node.arguments = this.parseCallExpressionArguments(base.type !== \"Super\", node, refExpressionErrors);\n }\n let finishedNode = this.finishCallExpression(node, optionalChainMember);\n if (maybeAsyncArrow && this.shouldParseAsyncArrow() && !optional) {\n state.stop = true;\n this.checkDestructuringPrivate(refExpressionErrors);\n this.expressionScope.validateAsPattern();\n this.expressionScope.exit();\n finishedNode = this.parseAsyncArrowFromCallExpression(this.startNodeAt(startLoc), finishedNode);\n } else {\n if (maybeAsyncArrow) {\n this.checkExpressionErrors(refExpressionErrors, true);\n this.expressionScope.exit();\n }\n this.toReferencedList(node.arguments);\n }\n return finishedNode;\n }\n parseTaggedTemplateExpression(base, startLoc, state) {\n const node = this.startNodeAt(startLoc);\n node.tag = base;\n node.quasi = this.parseTemplate(true);\n if (state.optionalChainMember) {\n this.raise(Errors.OptionalChainingNoTemplate, startLoc);\n }\n return this.finishNode(node, \"TaggedTemplateExpression\");\n }\n atPossibleAsyncArrow(base) {\n return base.type === \"Identifier\" && base.name === \"async\" && this.state.lastTokEndLoc.index === base.end && !this.canInsertSemicolon() && base.end - base.start === 5 && this.state.canStartArrow;\n }\n finishCallExpression(node, optional) {\n if (node.callee.type === \"Import\") {\n if (node.arguments.length === 0 || node.arguments.length > 2) {\n this.raise(Errors.ImportCallArity, node);\n } else {\n for (const arg of node.arguments) {\n if (arg.type === \"SpreadElement\") {\n this.raise(Errors.ImportCallSpreadArgument, arg);\n }\n }\n }\n }\n return this.finishNode(node, optional ? \"OptionalCallExpression\" : \"CallExpression\");\n }\n parseCallExpressionArguments(allowPlaceholder, nodeForExtra, refExpressionErrors) {\n const elts = [];\n let first = true;\n while (!this.eat(7)) {\n if (first) {\n first = false;\n } else {\n this.expect(8);\n if (this.match(7)) {\n if (nodeForExtra) {\n this.addTrailingCommaExtraToNode(nodeForExtra);\n }\n this.next();\n break;\n }\n }\n elts.push(this.parseExprListItem(7, false, refExpressionErrors, allowPlaceholder));\n }\n return elts;\n }\n shouldParseAsyncArrow() {\n return this.match(15) && !this.canInsertSemicolon();\n }\n parseAsyncArrowFromCallExpression(node, call) {\n this.resetPreviousNodeTrailingComments(call);\n this.expect(15);\n this.parseArrowExpression(node, call.arguments, true, call.extra?.trailingCommaLoc);\n if (call.innerComments) {\n setInnerComments(node, call.innerComments);\n }\n if (call.callee.trailingComments) {\n setInnerComments(node, call.callee.trailingComments);\n }\n return node;\n }\n parseNoCallExpr() {\n const startLoc = this.state.startLoc;\n return this.parseSubscripts(this.parseExprAtom(), startLoc, true);\n }\n parseExprAtom(refExpressionErrors) {\n let node;\n let decorators = null;\n const {\n type\n } = this.state;\n switch (type) {\n case 75:\n return this.parseSuper();\n case 79:\n node = this.startNode();\n this.next();\n if (this.match(12)) {\n return this.parseImportMetaPropertyOrPhaseCall(node);\n }\n if (this.match(6)) {\n if (this.optionFlags & 1024) {\n return this.parseImportCall(node);\n } else {\n return this.finishNode(node, \"Import\");\n }\n } else {\n this.raise(Errors.UnsupportedImport, this.state.lastTokStartLoc);\n return this.finishNode(node, \"Import\");\n }\n case 74:\n node = this.startNode();\n this.next();\n return this.finishNode(node, \"ThisExpression\");\n case 86:\n {\n return this.parseDo(this.startNode(), false);\n }\n case 52:\n case 27:\n {\n this.readRegexp();\n return this.parseRegExpLiteral(this.state.value);\n }\n case 131:\n return this.parseNumericLiteral(this.state.value);\n case 132:\n return this.parseBigIntLiteral(this.state.value);\n case 130:\n return this.parseStringLiteral(this.state.value);\n case 80:\n return this.parseNullLiteral();\n case 81:\n return this.parseBooleanLiteral(true);\n case 82:\n return this.parseBooleanLiteral(false);\n case 6:\n {\n return this.parseParenAndDistinguishExpression(this.state.canStartArrow);\n }\n case 0:\n {\n return this.parseArrayLike(1, refExpressionErrors);\n }\n case 2:\n {\n return this.parseObjectLike(4, false, refExpressionErrors);\n }\n case 64:\n return this.parseFunctionOrFunctionSent();\n case 22:\n decorators = this.parseDecorators();\n case 76:\n return this.parseClass(this.maybeTakeDecorators(decorators, this.startNode()), false);\n case 73:\n return this.parseNewOrNewTarget();\n case 21:\n case 20:\n return this.parseTemplate(false);\n case 11:\n {\n node = this.startNode();\n this.next();\n node.object = null;\n const callee = node.callee = this.parseNoCallExpr();\n if (callee.type === \"MemberExpression\") {\n return this.finishNode(node, \"BindExpression\");\n } else {\n throw this.raise(Errors.UnsupportedBind, callee);\n }\n }\n case 134:\n {\n this.raise(Errors.PrivateInExpectedIn, this.state.startLoc, {\n identifierName: this.state.value\n });\n return this.parsePrivateName();\n }\n case 29:\n {\n return this.parseTopicReferenceThenEqualsSign(50, \"%\");\n }\n case 28:\n {\n return this.parseTopicReferenceThenEqualsSign(40, \"^\");\n }\n case 33:\n case 34:\n {\n return this.parseTopicReference(\"hack\");\n }\n case 40:\n case 50:\n case 23:\n {\n const pipeProposal = this.getPluginOption(\"pipelineOperator\", \"proposal\");\n if (pipeProposal) {\n return this.parseTopicReference(pipeProposal);\n }\n throw this.unexpected();\n }\n case 43:\n {\n const lookaheadCh = this.input.codePointAt(this.nextTokenStart());\n if (isIdentifierStart(lookaheadCh) || lookaheadCh === 62) {\n throw this.expectOnePlugin([\"jsx\", \"flow\", \"typescript\"]);\n }\n throw this.unexpected();\n }\n default:\n if (tokenIsIdentifier(type)) {\n if (this.isContextual(123) && this.lookaheadInLineCharCode() === 123) {\n return this.parseModuleExpression();\n }\n const {\n canStartArrow,\n containsEsc\n } = this.state;\n const id = this.parseIdentifier();\n if (!containsEsc && id.name === \"async\" && !this.canInsertSemicolon()) {\n const {\n type\n } = this.state;\n if (type === 64) {\n this.resetPreviousNodeTrailingComments(id);\n this.next();\n return this.parseAsyncFunctionExpression(this.startNodeAtNode(id));\n } else if (tokenIsIdentifier(type)) {\n if (canStartArrow && this.lookaheadCharCode() === 61) {\n return this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(id));\n } else {\n return id;\n }\n } else if (type === 86) {\n this.resetPreviousNodeTrailingComments(id);\n return this.parseDo(this.startNodeAtNode(id), true);\n }\n }\n if (canStartArrow && this.match(15) && !this.canInsertSemicolon()) {\n this.next();\n return this.parseArrowExpression(this.startNodeAtNode(id), [id], false);\n }\n return id;\n } else {\n throw this.unexpected();\n }\n }\n }\n parseTopicReferenceThenEqualsSign(topicTokenType, topicTokenValue) {\n const pipeProposal = this.getPluginOption(\"pipelineOperator\", \"proposal\");\n if (pipeProposal) {\n this.state.type = topicTokenType;\n this.state.value = topicTokenValue;\n this.state.pos--;\n this.state.end--;\n this.state.endLoc = createPositionWithColumnOffset(this.state.endLoc, -1);\n return this.parseTopicReference(pipeProposal);\n }\n throw this.unexpected();\n }\n parseTopicReference(pipeProposal) {\n const node = this.startNode();\n const startLoc = this.state.startLoc;\n const tokenType = this.state.type;\n this.next();\n return this.finishTopicReference(node, startLoc, pipeProposal, tokenType);\n }\n finishTopicReference(node, startLoc, pipeProposal, tokenType) {\n if (this.testTopicReferenceConfiguration(pipeProposal, startLoc, tokenType)) {\n if (!this.topicReferenceIsAllowedInCurrentContext()) {\n this.raise(Errors.PipeTopicUnbound, startLoc);\n }\n this.registerTopicReference();\n return this.finishNode(node, \"TopicReference\");\n } else {\n throw this.raise(Errors.PipeTopicUnconfiguredToken, startLoc, {\n token: tokenLabelName(tokenType)\n });\n }\n }\n testTopicReferenceConfiguration(pipeProposal, startLoc, tokenType) {\n switch (pipeProposal) {\n case \"hack\":\n {\n return this.hasPlugin([\"pipelineOperator\", {\n topicToken: tokenLabelName(tokenType)\n }]);\n }\n default:\n throw this.raise(Errors.PipeTopicRequiresHackPipes, startLoc);\n }\n }\n parseAsyncArrowUnaryFunction(node) {\n this.prodParam.enter(functionFlags(true, this.prodParam.hasYield));\n const params = [this.parseIdentifier()];\n this.prodParam.exit();\n if (this.hasPrecedingLineBreak()) {\n this.raise(Errors.LineTerminatorBeforeArrow, this.state.curPosition());\n }\n this.expect(15);\n return this.parseArrowExpression(node, params, true);\n }\n parseDo(node, isAsync) {\n this.expectPlugin(\"doExpressions\");\n if (isAsync) {\n this.expectPlugin(\"asyncDoExpressions\");\n }\n node.async = isAsync;\n this.next();\n const oldLabels = this.state.labels;\n this.state.labels = [];\n if (isAsync) {\n this.prodParam.enter(2);\n node.body = this.parseBlock();\n this.prodParam.exit();\n } else {\n node.body = this.parseBlock();\n }\n this.state.labels = oldLabels;\n return this.finishNode(node, \"DoExpression\");\n }\n parseSuper() {\n const node = this.startNode();\n this.next();\n if (this.match(6) && !this.scope.allowDirectSuper) {\n this.raise(Errors.SuperNotAllowed, node);\n } else if (!this.scope.allowSuper) {\n this.raise(Errors.UnexpectedSuper, node);\n }\n if (!this.match(6) && !this.match(0) && !this.match(12)) {\n this.raise(Errors.UnsupportedSuper, node);\n }\n return this.finishNode(node, \"Super\");\n }\n parsePrivateName() {\n const node = this.startNode();\n const id = this.startNodeAt(createPositionWithColumnOffset(this.state.startLoc, 1));\n const name = this.state.value;\n this.next();\n node.id = this.createIdentifier(id, name);\n return this.finishNode(node, \"PrivateName\");\n }\n parseFunctionOrFunctionSent() {\n const node = this.startNode();\n this.next();\n if (this.prodParam.hasYield && this.match(12)) {\n const meta = this.createIdentifier(this.startNodeAtNode(node), \"function\");\n this.next();\n if (this.match(99)) {\n this.expectPlugin(\"functionSent\");\n } else if (!this.hasPlugin(\"functionSent\")) {\n this.unexpected();\n }\n return this.parseMetaProperty(node, meta, \"sent\");\n }\n return this.parseFunction(node);\n }\n parseMetaProperty(node, meta, propertyName) {\n node.meta = meta;\n const containsEsc = this.state.containsEsc;\n node.property = this.parseIdentifier(true);\n if (node.property.name !== propertyName || containsEsc) {\n this.raise(Errors.UnsupportedMetaProperty, node.property, {\n target: meta.name,\n onlyValidPropertyName: propertyName\n });\n }\n return this.finishNode(node, \"MetaProperty\");\n }\n parseImportMetaPropertyOrPhaseCall(node) {\n this.next();\n if (this.isContextual(101) || this.isContextual(93)) {\n const isSource = this.isContextual(101);\n this.expectPlugin(isSource ? \"sourcePhaseImports\" : \"deferredImportEvaluation\");\n this.next();\n node.phase = isSource ? \"source\" : \"defer\";\n return this.parseImportCall(node);\n } else {\n const id = this.createIdentifierAt(this.startNodeAtNode(node), \"import\", this.state.lastTokStartLoc);\n if (this.isContextual(97)) {\n if (!this.inModule) {\n this.raise(Errors.ImportMetaOutsideModule, id);\n }\n this.sawUnambiguousESM = true;\n }\n return this.parseMetaProperty(node, id, \"meta\");\n }\n }\n parseLiteralAtNode(value, type, node) {\n this.addExtra(node, \"rawValue\", value);\n this.addExtra(node, \"raw\", this.input.slice(this.offsetToSourcePos(node.start), this.state.end));\n node.value = value;\n this.next();\n return this.finishNode(node, type);\n }\n parseLiteral(value, type) {\n const node = this.startNode();\n return this.parseLiteralAtNode(value, type, node);\n }\n parseStringLiteral(value) {\n return this.parseLiteral(value, \"StringLiteral\");\n }\n parseNumericLiteral(value) {\n return this.parseLiteral(value, \"NumericLiteral\");\n }\n parseBigIntLiteral(value) {\n let bigInt;\n try {\n bigInt = BigInt(value);\n } catch {\n bigInt = null;\n }\n const node = this.parseLiteral(bigInt, \"BigIntLiteral\");\n return node;\n }\n parseRegExpLiteral(value) {\n const node = this.startNode();\n this.addExtra(node, \"raw\", this.input.slice(this.offsetToSourcePos(node.start), this.state.end));\n node.pattern = value.pattern;\n node.flags = value.flags;\n this.next();\n return this.finishNode(node, \"RegExpLiteral\");\n }\n parseBooleanLiteral(value) {\n const node = this.startNode();\n node.value = value;\n this.next();\n return this.finishNode(node, \"BooleanLiteral\");\n }\n parseNullLiteral() {\n const node = this.startNode();\n this.next();\n return this.finishNode(node, \"NullLiteral\");\n }\n parseParenAndDistinguishExpression(canStartArrow) {\n const startLoc = this.state.startLoc;\n let val;\n this.next();\n this.expressionScope.enter(newArrowHeadScope());\n const innerStartLoc = this.state.startLoc;\n const exprList = [];\n const refExpressionErrors = new ExpressionErrors();\n let first = true;\n let spreadStartLoc;\n let optionalCommaStartLoc;\n while (!this.match(7)) {\n if (first) {\n first = false;\n } else {\n this.expect(8, refExpressionErrors.optionalParametersLoc === null ? null : refExpressionErrors.optionalParametersLoc);\n if (this.match(7)) {\n optionalCommaStartLoc = this.state.startLoc;\n break;\n }\n }\n if (this.match(17)) {\n const spreadNodeStartLoc = this.state.startLoc;\n spreadStartLoc = this.state.startLoc;\n exprList.push(this.parseParenItem(this.parseRestBinding(), spreadNodeStartLoc));\n if (!this.checkCommaAfterRest(41)) {\n break;\n }\n } else {\n exprList.push(this.parseMaybeAssignAllowInOrVoidPattern(7, refExpressionErrors, this.parseParenItem));\n }\n }\n const innerEndLoc = this.state.lastTokEndLoc;\n this.expect(7);\n let arrowNode = this.startNodeAt(startLoc);\n if (canStartArrow && this.shouldParseArrow(exprList) && (arrowNode = this.parseArrow(arrowNode))) {\n this.checkDestructuringPrivate(refExpressionErrors);\n this.expressionScope.validateAsPattern();\n this.expressionScope.exit();\n this.parseArrowExpression(arrowNode, exprList, false);\n return arrowNode;\n }\n this.expressionScope.exit();\n if (!exprList.length) {\n this.unexpected(this.state.lastTokStartLoc);\n }\n if (optionalCommaStartLoc) this.unexpected(optionalCommaStartLoc);\n if (spreadStartLoc) this.unexpected(spreadStartLoc);\n this.checkExpressionErrors(refExpressionErrors, true);\n this.toReferencedList(exprList, true);\n if (exprList.length > 1) {\n val = this.startNodeAt(innerStartLoc);\n val.expressions = exprList;\n this.finishNode(val, \"SequenceExpression\");\n this.resetEndLocation(val, innerEndLoc);\n } else {\n val = exprList[0];\n }\n return this.wrapParenthesis(startLoc, val);\n }\n wrapParenthesis(startLoc, expression) {\n if (!(this.optionFlags & 2048)) {\n this.addExtra(expression, \"parenthesized\", true);\n this.addExtra(expression, \"parenStart\", startLoc.index);\n this.takeSurroundingComments(expression, startLoc.index, this.state.lastTokEndLoc.index);\n return expression;\n }\n const parenExpression = this.startNodeAt(startLoc);\n parenExpression.expression = expression;\n return this.finishNode(parenExpression, \"ParenthesizedExpression\");\n }\n shouldParseArrow(params) {\n return !this.canInsertSemicolon();\n }\n parseArrow(node) {\n if (this.eat(15)) {\n return node;\n }\n }\n parseParenItem(node, startLoc) {\n return node;\n }\n parseNewOrNewTarget() {\n const node = this.startNode();\n this.next();\n if (this.match(12)) {\n const meta = this.createIdentifier(this.startNodeAtNode(node), \"new\");\n this.next();\n const metaProp = this.parseMetaProperty(node, meta, \"target\");\n if (!this.scope.allowNewTarget) {\n this.raise(Errors.UnexpectedNewTarget, metaProp);\n }\n return metaProp;\n }\n return this.parseNew(node);\n }\n parseNew(node) {\n this.parseNewCallee(node);\n if (this.eat(6)) {\n const args = this.parseExprList(7);\n this.toReferencedList(args);\n node.arguments = args;\n } else {\n node.arguments = [];\n }\n return this.finishNode(node, \"NewExpression\");\n }\n parseNewCallee(node) {\n const isImport = this.match(79);\n const callee = this.parseNoCallExpr();\n node.callee = callee;\n if (isImport && callee.type === \"ImportExpression\") {\n this.raise(Errors.ImportCallNotNewExpression, callee, callee);\n }\n if (callee.type === \"Import\") {\n this.raise(Errors.ImportCallNotNewExpression, callee);\n }\n if (callee.type === \"Super\") {\n this.raise(Errors.SuperCallNotNewExpression, callee);\n }\n }\n parseTemplateElement(isTagged) {\n const {\n start,\n startLoc,\n end,\n value\n } = this.state;\n const elemStart = start + 1;\n const elem = this.startNodeAt(createPositionWithColumnOffset(startLoc, 1));\n if (value === null) {\n if (!isTagged) {\n this.raise(Errors.InvalidEscapeSequenceTemplate, createPositionWithColumnOffset(this.state.firstInvalidTemplateEscapePos, 1));\n }\n }\n const isTail = this.match(20);\n const endOffset = isTail ? -1 : -2;\n const elemEnd = end + endOffset;\n elem.value = {\n raw: this.input.slice(elemStart, elemEnd).replace(/\\r\\n?/g, \"\\n\"),\n cooked: value === null ? null : value.slice(1, endOffset)\n };\n elem.tail = isTail;\n this.next();\n const finishedNode = this.finishNode(elem, \"TemplateElement\");\n this.resetEndLocation(finishedNode, createPositionWithColumnOffset(this.state.lastTokEndLoc, endOffset));\n return finishedNode;\n }\n parseTemplate(isTagged) {\n const node = this.startNode();\n let curElt = this.parseTemplateElement(isTagged);\n const quasis = [curElt];\n const substitutions = [];\n while (!curElt.tail) {\n substitutions.push(this.parseTemplateSubstitution());\n this.readTemplateContinuation();\n quasis.push(curElt = this.parseTemplateElement(isTagged));\n }\n node.expressions = substitutions;\n node.quasis = quasis;\n return this.finishNode(node, \"TemplateLiteral\");\n }\n parseTemplateSubstitution() {\n return this.parseExpression();\n }\n parseObjectLike(close, isPattern, refExpressionErrors) {\n let sawProto = false;\n let first = true;\n const node = this.startNode();\n node.properties = [];\n this.next();\n while (!this.match(close)) {\n if (first) {\n first = false;\n } else {\n this.expect(8);\n if (this.match(close)) {\n this.addTrailingCommaExtraToNode(node);\n break;\n }\n }\n let prop;\n if (isPattern) {\n prop = this.parseBindingProperty();\n } else {\n prop = this.parsePropertyDefinition(refExpressionErrors);\n sawProto = this.checkProto(prop, sawProto, refExpressionErrors);\n }\n node.properties.push(prop);\n }\n this.next();\n const type = isPattern ? \"ObjectPattern\" : \"ObjectExpression\";\n return this.finishNode(node, type);\n }\n addTrailingCommaExtraToNode(node) {\n this.addExtra(node, \"trailingComma\", this.state.lastTokStartLoc.index);\n this.addExtra(node, \"trailingCommaLoc\", this.state.lastTokStartLoc, false);\n }\n maybeAsyncOrAccessorProp(prop) {\n return !prop.computed && prop.key.type === \"Identifier\" && (this.isLiteralPropertyName() || this.match(0) || this.match(51));\n }\n parsePropertyDefinition(refExpressionErrors) {\n const decorators = [];\n if (this.match(22)) {\n if (this.hasPlugin(\"decorators\")) {\n this.raise(Errors.UnsupportedPropertyDecorator, this.state.startLoc);\n }\n while (this.match(22)) {\n decorators.push(this.parseDecorator());\n }\n }\n const prop = this.startNode();\n let isAsync = false;\n let isAccessor = false;\n let startLoc;\n if (this.match(17)) {\n if (decorators.length) this.unexpected();\n return this.parseSpread();\n }\n if (decorators.length) {\n prop.decorators = decorators;\n }\n prop.method = false;\n if (refExpressionErrors) {\n startLoc = this.state.startLoc;\n }\n let isGenerator = this.eat(51);\n this.parsePropertyNamePrefixOperator(prop);\n const containsEsc = this.state.containsEsc;\n this.parsePropertyName(prop, refExpressionErrors);\n if (!isGenerator && !containsEsc && this.maybeAsyncOrAccessorProp(prop)) {\n const {\n key\n } = prop;\n const keyName = key.name;\n if (keyName === \"async\" && !this.hasPrecedingLineBreak()) {\n isAsync = true;\n this.resetPreviousNodeTrailingComments(key);\n isGenerator = this.eat(51);\n this.parsePropertyName(prop);\n }\n if (keyName === \"get\" || keyName === \"set\") {\n isAccessor = true;\n this.resetPreviousNodeTrailingComments(key);\n prop.kind = keyName;\n if (this.match(51)) {\n isGenerator = true;\n this.raise(Errors.AccessorIsGenerator, this.state.curPosition(), {\n kind: keyName\n });\n this.next();\n }\n this.parsePropertyName(prop);\n }\n }\n return this.parseObjPropValue(prop, startLoc, isGenerator, isAsync, false, isAccessor, refExpressionErrors);\n }\n getGetterSetterExpectedParamCount(method) {\n return method.kind === \"get\" ? 0 : 1;\n }\n getObjectOrClassMethodParams(method) {\n return method.params;\n }\n checkGetterSetterParams(method) {\n const paramCount = this.getGetterSetterExpectedParamCount(method);\n const params = this.getObjectOrClassMethodParams(method);\n if (params.length !== paramCount) {\n this.raise(method.kind === \"get\" ? Errors.BadGetterArity : Errors.BadSetterArity, method);\n }\n if (method.kind === \"set\" && params[params.length - 1]?.type === \"RestElement\") {\n this.raise(Errors.BadSetterRestParameter, method);\n }\n }\n parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor) {\n if (isAccessor) {\n const finishedProp = this.parseMethod(prop, isGenerator, false, false, false, \"ObjectMethod\");\n this.checkGetterSetterParams(finishedProp);\n return finishedProp;\n }\n if (isAsync || isGenerator || this.match(6)) {\n if (isPattern) this.unexpected();\n prop.kind = \"method\";\n prop.method = true;\n return this.parseMethod(prop, isGenerator, isAsync, false, false, \"ObjectMethod\");\n }\n }\n parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors) {\n prop.shorthand = false;\n if (this.eat(10)) {\n prop.value = isPattern ? this.parseMaybeDefault(this.state.startLoc) : this.parseMaybeAssignAllowInOrVoidPattern(4, refExpressionErrors);\n return this.finishObjectProperty(prop);\n }\n if (!prop.computed && prop.key.type === \"Identifier\") {\n this.checkReservedWord(prop.key.name, prop.key.start, true, false);\n if (isPattern) {\n prop.value = this.parseMaybeDefault(startLoc, this.cloneIdentifier(prop.key));\n } else if (this.match(25)) {\n const shorthandAssignLoc = this.state.startLoc;\n if (refExpressionErrors != null) {\n if (refExpressionErrors.shorthandAssignLoc === null) {\n refExpressionErrors.shorthandAssignLoc = shorthandAssignLoc;\n }\n } else {\n this.raise(Errors.InvalidCoverInitializedName, shorthandAssignLoc);\n }\n prop.value = this.parseMaybeDefault(startLoc, this.cloneIdentifier(prop.key));\n } else {\n prop.value = this.cloneIdentifier(prop.key);\n }\n prop.shorthand = true;\n return this.finishObjectProperty(prop);\n }\n }\n finishObjectProperty(node) {\n return this.finishNode(node, \"ObjectProperty\");\n }\n parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors) {\n const node = this.parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor) || this.parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors);\n if (!node) this.unexpected();\n return node;\n }\n parsePropertyName(prop, refExpressionErrors) {\n if (this.eat(0)) {\n prop.computed = true;\n prop.key = this.parseMaybeAssignAllowIn();\n this.expect(1);\n } else {\n const {\n type,\n value\n } = this.state;\n let key;\n if (tokenIsKeywordOrIdentifier(type)) {\n key = this.parseIdentifier(true);\n } else {\n switch (type) {\n case 131:\n key = this.parseNumericLiteral(value);\n break;\n case 130:\n key = this.parseStringLiteral(value);\n break;\n case 132:\n key = this.parseBigIntLiteral(value);\n break;\n case 134:\n {\n const privateKeyLoc = this.state.startLoc;\n if (refExpressionErrors != null) {\n if (refExpressionErrors.privateKeyLoc === null) {\n refExpressionErrors.privateKeyLoc = privateKeyLoc;\n }\n } else {\n this.raise(Errors.UnexpectedPrivateField, privateKeyLoc);\n }\n key = this.parsePrivateName();\n break;\n }\n default:\n this.unexpected();\n }\n }\n prop.key = key;\n if (type !== 134) {\n prop.computed = false;\n }\n }\n }\n initFunction(node, isAsync) {\n node.id = null;\n node.generator = false;\n node.async = isAsync;\n }\n parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope = false) {\n this.initFunction(node, isAsync);\n node.generator = isGenerator;\n this.scope.enter(514 | 16 | (inClassScope ? 576 : 0) | (allowDirectSuper ? 32 : 0));\n this.prodParam.enter(functionFlags(isAsync, node.generator));\n this.parseFunctionParams(node, isConstructor);\n const finishedNode = this.parseFunctionBodyAndFinish(node, type, true);\n this.prodParam.exit();\n this.scope.exit();\n return finishedNode;\n }\n parseArrayLike(close, refExpressionErrors) {\n const node = this.startNode();\n this.next();\n node.elements = this.parseExprList(close, true, refExpressionErrors, node);\n return this.finishNode(node, \"ArrayExpression\");\n }\n parseArrowExpression(node, params, isAsync, trailingCommaLoc) {\n this.scope.enter(514 | 4);\n let flags = functionFlags(isAsync, false);\n if (!this.match(2)) {\n flags |= this.prodParam.currentFlags() & (8 | 16);\n }\n this.prodParam.enter(flags);\n this.initFunction(node, isAsync);\n if (params) {\n this.setArrowFunctionParameters(node, params, trailingCommaLoc);\n }\n this.parseFunctionBody(node, true);\n this.prodParam.exit();\n this.scope.exit();\n return this.finishNode(node, \"ArrowFunctionExpression\");\n }\n setArrowFunctionParameters(node, params, trailingCommaLoc) {\n this.toAssignableList(params, trailingCommaLoc, false);\n node.params = params;\n }\n parseFunctionBodyAndFinish(node, type, isMethod = false) {\n this.parseFunctionBody(node, false, isMethod);\n return this.finishNode(node, type);\n }\n parseFunctionBody(node, allowExpression, isMethod = false) {\n const isExpression = allowExpression && !this.match(2);\n this.expressionScope.enter(newExpressionScope());\n if (isExpression) {\n node.body = this.parseMaybeAssign();\n this.checkParams(node, false, allowExpression, false);\n } else {\n const oldStrict = this.state.strict;\n const oldLabels = this.state.labels;\n this.state.labels = [];\n this.prodParam.enter(this.prodParam.currentFlags() | 4);\n node.body = this.parseBlock(true, false, hasStrictModeDirective => {\n const nonSimple = !this.isSimpleParamList(node.params);\n if (hasStrictModeDirective && nonSimple) {\n this.raise(Errors.IllegalLanguageModeDirective, (node.kind === \"method\" || node.kind === \"constructor\") && !!node.key ? this.optionFlags & 256 ? node.key.loc.end : node.key : node);\n }\n const strictModeChanged = !oldStrict && this.state.strict;\n this.checkParams(node, !this.state.strict && !allowExpression && !isMethod && !nonSimple, allowExpression, strictModeChanged);\n if (this.state.strict && node.id) {\n this.checkIdentifier(node.id, 65, strictModeChanged);\n }\n });\n this.prodParam.exit();\n this.state.labels = oldLabels;\n }\n this.expressionScope.exit();\n }\n isSimpleParameter(node) {\n return node.type === \"Identifier\";\n }\n isSimpleParamList(params) {\n for (let i = 0, len = params.length; i < len; i++) {\n if (!this.isSimpleParameter(params[i])) return false;\n }\n return true;\n }\n checkParams(node, allowDuplicates, isArrowFunction, strictModeChanged = true) {\n const checkClashes = !allowDuplicates && new Set();\n const formalParameters = {\n type: \"FormalParameters\"\n };\n for (const param of node.params) {\n this.checkLVal(param, formalParameters, 5, checkClashes, strictModeChanged);\n }\n }\n parseExprList(close, allowEmpty, refExpressionErrors, nodeForExtra) {\n const elts = [];\n let first = true;\n while (!this.eat(close)) {\n if (first) {\n first = false;\n } else {\n this.expect(8);\n if (this.match(close)) {\n if (nodeForExtra) {\n this.addTrailingCommaExtraToNode(nodeForExtra);\n }\n this.next();\n break;\n }\n }\n elts.push(this.parseExprListItem(close, allowEmpty, refExpressionErrors));\n }\n return elts;\n }\n parseExprListItem(close, allowEmpty, refExpressionErrors, allowPlaceholder) {\n let elt;\n if (this.match(8)) {\n if (!allowEmpty) {\n this.raise(Errors.UnexpectedToken, this.state.curPosition(), {\n unexpected: \",\"\n });\n }\n elt = null;\n } else if (this.match(17)) {\n const spreadNodeStartLoc = this.state.startLoc;\n elt = this.parseParenItem(this.parseSpread(refExpressionErrors), spreadNodeStartLoc);\n } else if (this.match(13)) {\n this.expectPlugin(\"partialApplication\");\n if (!allowPlaceholder) {\n this.raise(Errors.UnexpectedArgumentPlaceholder, this.state.startLoc);\n }\n const node = this.startNode();\n this.next();\n elt = this.finishNode(node, \"ArgumentPlaceholder\");\n } else {\n elt = this.parseMaybeAssignAllowInOrVoidPattern(close, refExpressionErrors, this.parseParenItem);\n }\n return elt;\n }\n parseIdentifier(liberal) {\n const node = this.startNode();\n const name = this.parseIdentifierName(liberal);\n return this.createIdentifier(node, name);\n }\n createIdentifier(node, name) {\n node.name = name;\n if (this.optionFlags & 256) {\n node.loc.identifierName = name;\n }\n return this.finishNode(node, \"Identifier\");\n }\n createIdentifierAt(node, name, endLoc) {\n node.name = name;\n if (this.optionFlags & 256) {\n node.loc.identifierName = name;\n }\n return this.finishNodeAt(node, \"Identifier\", endLoc);\n }\n parseIdentifierName(liberal) {\n let name;\n const {\n start,\n type\n } = this.state;\n if (tokenIsKeywordOrIdentifier(type)) {\n name = this.state.value;\n } else {\n this.unexpected();\n }\n const tokenIsKeyword = tokenKeywordOrIdentifierIsKeyword(type);\n if (liberal) {\n if (tokenIsKeyword) {\n this.replaceToken(128);\n }\n } else {\n this.checkReservedWord(name, this.sourceToOffsetPos(start), tokenIsKeyword, false);\n }\n this.next();\n return name;\n }\n checkReservedWord(word, startLoc, checkKeywords, isBinding) {\n if (word.length > 10) {\n return;\n }\n if (!canBeReservedWord(word)) {\n return;\n }\n if (checkKeywords && isKeyword(word)) {\n this.raise(Errors.UnexpectedKeyword, startLoc, {\n keyword: word\n });\n return;\n }\n const reservedTest = !this.state.strict ? isReservedWord : isBinding ? isStrictBindReservedWord : isStrictReservedWord;\n if (reservedTest(word, this.inModule)) {\n this.raise(Errors.UnexpectedReservedWord, startLoc, {\n reservedWord: word\n });\n return;\n } else if (word === \"yield\") {\n if (this.prodParam.hasYield) {\n this.raise(Errors.YieldBindingIdentifier, startLoc);\n return;\n }\n } else if (word === \"await\") {\n if (this.prodParam.hasAwait) {\n this.raise(Errors.AwaitBindingIdentifier, startLoc);\n return;\n }\n if (this.scope.inStaticBlock) {\n this.raise(Errors.AwaitBindingIdentifierInStaticBlock, startLoc);\n return;\n }\n this.expressionScope.recordAsyncArrowParametersError(startLoc);\n } else if (word === \"arguments\") {\n if (this.scope.inClassAndNotInNonArrowFunction) {\n this.raise(Errors.ArgumentsInClass, startLoc);\n return;\n }\n }\n }\n recordAwaitIfAllowed() {\n const isAwaitAllowed = this.prodParam.hasAwait;\n if (isAwaitAllowed && !this.scope.inFunction) {\n this.state.hasTopLevelAwait = true;\n }\n return isAwaitAllowed;\n }\n parseAwait(startLoc, soloAwait) {\n const startIndex = startLoc.index;\n this.setLoc(startLoc);\n const node = this.startNodeAt(startLoc);\n this.expressionScope.recordParameterInitializerError(Errors.AwaitExpressionFormalParameter, startIndex);\n if (this.eat(51)) {\n this.raise(Errors.ObsoleteAwaitStar, startLoc);\n }\n if (!this.scope.inFunction && !(this.optionFlags & 1)) {\n if (this.isAmbiguousPrefixOrIdentifier()) {\n this.ambiguousScriptDifferentAst = true;\n } else {\n this.sawUnambiguousESM = true;\n }\n }\n if (!soloAwait) {\n node.argument = this.parseMaybeUnary(null, true);\n }\n return this.finishNode(node, \"AwaitExpression\");\n }\n isAmbiguousPrefixOrIdentifier() {\n if (this.hasPrecedingLineBreak()) return true;\n const {\n type\n } = this.state;\n return type === 49 || type === 6 || type === 0 || tokenIsTemplate(type) || type === 98 && !this.state.containsEsc || type === 133 || type === 52 || this.hasPlugin(\"v8intrinsic\") && type === 50;\n }\n parseYield(startLoc) {\n this.setLoc(startLoc);\n const node = this.startNodeAt(startLoc);\n this.expressionScope.recordParameterInitializerError(Errors.YieldInParameter, startLoc.index);\n let delegating = false;\n let argument = null;\n if (!this.hasPrecedingLineBreak()) {\n delegating = this.eat(51);\n switch (this.state.type) {\n case 9:\n case 135:\n case 4:\n case 7:\n case 1:\n case 5:\n case 10:\n case 8:\n if (!delegating) break;\n default:\n argument = this.parseMaybeAssign();\n }\n }\n node.delegate = delegating;\n node.argument = argument;\n return this.finishNode(node, \"YieldExpression\");\n }\n parseImportCall(node) {\n this.next();\n const args = this.parseCallExpressionArguments();\n if (args.length === 0 || args.length > 2) {\n this.raise(Errors.ImportCallArity, node, node);\n } else {\n for (const arg of args) {\n if (arg.type === \"SpreadElement\") {\n this.raise(Errors.ImportCallSpreadArgument, arg, node);\n }\n }\n }\n node.source = args[0];\n node.options = args[1] ?? null;\n return this.finishNode(node, \"ImportExpression\");\n }\n withTopicBindingContext(callback) {\n const oldInHackPipelineBody = this.state.inHackPipelineBody;\n this.state.inHackPipelineBody = true;\n const oldSeenTopicReference = this.state.seenTopicReference;\n this.state.seenTopicReference = false;\n try {\n return callback();\n } finally {\n this.state.inHackPipelineBody = oldInHackPipelineBody;\n this.state.seenTopicReference = oldSeenTopicReference;\n }\n }\n allowInAnd(callback) {\n const flags = this.prodParam.currentFlags();\n const prodParamToSet = (8 | 16) & ~flags;\n if (prodParamToSet) {\n this.prodParam.enter(flags | 8 | 16);\n try {\n return callback();\n } finally {\n this.prodParam.exit();\n }\n }\n return callback();\n }\n disallowInAnd(callback) {\n const flags = this.prodParam.currentFlags();\n const prodParamToClear = 8 & flags;\n const prodParamToSet = 16 & ~flags;\n if (prodParamToClear || prodParamToSet) {\n this.prodParam.enter(flags & -9 | 16);\n try {\n return callback();\n } finally {\n this.prodParam.exit();\n }\n }\n return callback();\n }\n registerTopicReference() {\n this.state.seenTopicReference = true;\n }\n topicReferenceIsAllowedInCurrentContext() {\n return this.state.inHackPipelineBody;\n }\n topicReferenceWasUsedInCurrentContext() {\n return this.state.seenTopicReference;\n }\n parseFSharpPipelineBody(prec) {\n const startLoc = this.state.startLoc;\n this.prodParam.enter(this.prodParam.currentFlags() & -17);\n let ret;\n if (this.isContextual(92) && this.recordAwaitIfAllowed()) {\n this.next();\n ret = this.parseAwait(startLoc, true);\n const nextOp = this.state.type;\n if (tokenIsOperator(nextOp) && nextOp !== 35 && (this.prodParam.hasIn || nextOp !== 54)) {\n this.raise(Errors.PipelineUnparenthesized, startLoc);\n }\n } else {\n this.state.canStartArrow = true;\n ret = this.parseExprOp(this.parseMaybeUnaryOrPrivate(), startLoc, prec);\n }\n this.prodParam.exit();\n return ret;\n }\n parseModuleExpression() {\n this.expectPlugin(\"moduleBlocks\");\n const node = this.startNode();\n this.next();\n if (!this.match(2)) {\n this.unexpected(null, 2);\n }\n const program = this.startNodeAt(this.state.endLoc);\n this.next();\n const revertScopes = this.initializeScopes(true);\n this.enterInitialScopes();\n try {\n node.body = this.parseProgram(program, 4, \"module\");\n } finally {\n revertScopes();\n }\n return this.finishNode(node, \"ModuleExpression\");\n }\n parseVoidPattern(refExpressionErrors) {\n this.expectPlugin(\"discardBinding\");\n const node = this.startNode();\n if (refExpressionErrors != null) {\n refExpressionErrors.voidPatternLoc = this.state.startLoc;\n }\n this.next();\n return this.finishNode(node, \"VoidPattern\");\n }\n parseMaybeAssignAllowInOrVoidPattern(close, refExpressionErrors, afterLeftParse) {\n if (refExpressionErrors != null && this.match(84)) {\n const nextCode = this.lookaheadCharCode();\n if (nextCode === 44 || nextCode === (close === 1 ? 93 : close === 4 ? 125 : 41) || nextCode === 61) {\n return this.parseMaybeDefault(this.state.startLoc, this.parseVoidPattern(refExpressionErrors));\n }\n }\n return this.parseMaybeAssignAllowIn(refExpressionErrors, afterLeftParse);\n }\n parsePropertyNamePrefixOperator(prop) {}\n}\nconst loopLabel = {\n kind: 1\n },\n switchLabel = {\n kind: 2\n };\nconst loneSurrogate = /[\\uD800-\\uDFFF]/u;\nconst keywordRelationalOperator = /in(?:stanceof)?/y;\nfunction createExportedTokens(tokens) {\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n const {\n type\n } = token;\n if (typeof type === \"number\") {\n token.type = getExportedToken(type);\n }\n }\n return tokens;\n}\nclass StatementParser extends ExpressionParser {\n parseTopLevel(file, program) {\n file.program = this.parseProgram(program, 135, this.options.sourceType === \"module\" ? \"module\" : \"script\");\n file.comments = this.comments;\n if (this.optionFlags & 512) {\n file.tokens = createExportedTokens(this.tokens);\n }\n return this.finishNode(file, \"File\");\n }\n parseProgram(program, end, sourceType) {\n program.sourceType = sourceType;\n program.interpreter = this.parseInterpreterDirective();\n this.parseBlockBody(program, true, true, end);\n if (this.inModule) {\n if (!(this.optionFlags & 64) && this.scope.undefinedExports.size > 0) {\n for (const [localName, at] of Array.from(this.scope.undefinedExports)) {\n this.raise(Errors.ModuleExportUndefined, at, {\n localName\n });\n }\n }\n this.addExtra(program, \"topLevelAwait\", this.state.hasTopLevelAwait);\n }\n let finishedProgram;\n if (end === 135) {\n finishedProgram = this.finishNode(program, \"Program\");\n } else {\n finishedProgram = this.finishNodeAt(program, \"Program\", createPositionWithColumnOffset(this.state.startLoc, -1));\n }\n return finishedProgram;\n }\n stmtToDirective(stmt) {\n const directive = this.castNodeTo(stmt, \"Directive\");\n const directiveLiteral = this.castNodeTo(stmt.expression, \"DirectiveLiteral\");\n const expressionValue = directiveLiteral.value;\n const raw = this.input.slice(this.offsetToSourcePos(directiveLiteral.start), this.offsetToSourcePos(directiveLiteral.end));\n const val = directiveLiteral.value = raw.slice(1, -1);\n this.addExtra(directiveLiteral, \"raw\", raw);\n this.addExtra(directiveLiteral, \"rawValue\", val);\n this.addExtra(directiveLiteral, \"expressionValue\", expressionValue);\n directive.value = directiveLiteral;\n delete stmt.expression;\n return directive;\n }\n parseInterpreterDirective() {\n if (!this.match(24)) {\n return null;\n }\n const node = this.startNode();\n node.value = this.state.value;\n this.next();\n return this.finishNode(node, \"InterpreterDirective\");\n }\n isLet() {\n if (!this.isContextual(96)) {\n return false;\n }\n return this.hasFollowingBindingAtom();\n }\n isUsing() {\n if (!this.isContextual(103)) {\n return false;\n }\n return this.nextTokenIsIdentifierOnSameLine();\n }\n isForUsing() {\n if (!this.isContextual(103)) {\n return false;\n }\n const next = this.nextTokenInLineStart();\n const nextCh = this.codePointAtPos(next);\n if (this.isUnparsedContextual(next, \"of\")) {\n const nextCharAfterOf = this.lookaheadCharCodeSince(next + 2);\n if (nextCharAfterOf !== 61 && nextCharAfterOf !== 58 && nextCharAfterOf !== 59) {\n return false;\n }\n }\n if (this.chStartsBindingIdentifier(nextCh, next) || this.isUnparsedContextual(next, \"void\")) {\n return true;\n }\n return false;\n }\n nextTokenIsIdentifierOnSameLine() {\n const next = this.nextTokenInLineStart();\n const nextCh = this.codePointAtPos(next);\n return this.chStartsBindingIdentifier(nextCh, next);\n }\n isAwaitUsing() {\n if (!this.isContextual(92)) {\n return false;\n }\n let next = this.nextTokenInLineStart();\n if (this.isUnparsedContextual(next, \"using\")) {\n next = this.nextTokenInLineStartSince(next + 5);\n const nextCh = this.codePointAtPos(next);\n if (this.chStartsBindingIdentifier(nextCh, next)) {\n return true;\n }\n }\n return false;\n }\n chStartsBindingIdentifier(ch, pos) {\n if (isIdentifierStart(ch)) {\n keywordRelationalOperator.lastIndex = pos;\n if (keywordRelationalOperator.test(this.input)) {\n const endCh = this.codePointAtPos(keywordRelationalOperator.lastIndex);\n if (!isIdentifierChar(endCh) && endCh !== 92) {\n return false;\n }\n }\n return true;\n } else if (ch === 92) {\n return true;\n } else {\n return false;\n }\n }\n chStartsBindingPattern(ch) {\n return ch === 91 || ch === 123;\n }\n hasFollowingBindingAtom() {\n const next = this.nextTokenStart();\n const nextCh = this.codePointAtPos(next);\n return this.chStartsBindingPattern(nextCh) || this.chStartsBindingIdentifier(nextCh, next);\n }\n hasInLineFollowingBindingIdentifierOrBrace() {\n const next = this.nextTokenInLineStart();\n const nextCh = this.codePointAtPos(next);\n return nextCh === 123 || this.chStartsBindingIdentifier(nextCh, next);\n }\n allowsUsing() {\n return (this.scope.inModule || !this.scope.inTopLevel) && !this.scope.inBareCaseStatement;\n }\n parseModuleItem() {\n return this.parseStatementLike(1 | 2 | 4 | 8);\n }\n parseStatementListItem() {\n return this.parseStatementLike(2 | 4 | (!this.options.annexB || this.state.strict ? 0 : 8));\n }\n parseStatementOrSloppyAnnexBFunctionDeclaration(allowLabeledFunction = false) {\n let flags = 0;\n if (this.options.annexB && !this.state.strict) {\n flags |= 4;\n if (allowLabeledFunction) {\n flags |= 8;\n }\n }\n return this.parseStatementLike(flags);\n }\n parseStatement() {\n return this.parseStatementLike(0);\n }\n parseStatementLike(flags) {\n let decorators = null;\n if (this.match(22)) {\n decorators = this.parseDecorators(true);\n }\n return this.parseStatementContent(flags, decorators);\n }\n parseStatementContent(flags, decorators) {\n const startType = this.state.type;\n const node = this.startNode();\n const allowDeclaration = !!(flags & 2);\n const allowFunctionDeclaration = !!(flags & 4);\n const topLevel = flags & 1;\n switch (startType) {\n case 56:\n return this.parseBreakContinueStatement(node, true);\n case 59:\n return this.parseBreakContinueStatement(node, false);\n case 60:\n return this.parseDebuggerStatement(node);\n case 86:\n return this.parseDoWhileStatement(node);\n case 87:\n return this.parseForStatement(node);\n case 64:\n if (this.lookaheadCharCode() === 46) break;\n if (!allowFunctionDeclaration) {\n this.raise(this.state.strict ? Errors.StrictFunction : this.options.annexB ? Errors.SloppyFunctionAnnexB : Errors.SloppyFunction, this.state.startLoc);\n }\n return this.parseFunctionStatement(node, false, !allowDeclaration && allowFunctionDeclaration);\n case 76:\n if (!allowDeclaration) this.unexpected();\n return this.parseClass(this.maybeTakeDecorators(decorators, node), true);\n case 65:\n return this.parseIfStatement(node);\n case 66:\n return this.parseReturnStatement(node);\n case 67:\n return this.parseSwitchStatement(node);\n case 68:\n return this.parseThrowStatement(node);\n case 69:\n return this.parseTryStatement(node);\n case 92:\n if (this.isAwaitUsing()) {\n if (!this.allowsUsing()) {\n this.raise(Errors.UnexpectedUsingDeclaration, node);\n } else if (!allowDeclaration) {\n this.raise(Errors.UnexpectedLexicalDeclaration, node);\n } else if (!this.recordAwaitIfAllowed()) {\n this.raise(Errors.AwaitUsingNotInAsyncContext, node);\n }\n this.next();\n return this.parseVarStatement(node, \"await using\");\n }\n break;\n case 103:\n if (this.state.containsEsc || !this.hasInLineFollowingBindingIdentifierOrBrace()) {\n break;\n }\n if (!this.allowsUsing()) {\n this.raise(Errors.UnexpectedUsingDeclaration, this.state.startLoc);\n } else if (!allowDeclaration) {\n this.raise(Errors.UnexpectedLexicalDeclaration, this.state.startLoc);\n }\n return this.parseVarStatement(node, \"using\");\n case 96:\n {\n if (this.state.containsEsc) {\n break;\n }\n const next = this.nextTokenStart();\n const nextCh = this.codePointAtPos(next);\n if (nextCh !== 91) {\n if (!allowDeclaration && this.hasFollowingLineBreak()) break;\n if (!this.chStartsBindingIdentifier(nextCh, next) && nextCh !== 123) {\n break;\n }\n }\n }\n case 71:\n {\n if (!allowDeclaration) {\n this.raise(Errors.UnexpectedLexicalDeclaration, this.state.startLoc);\n }\n }\n case 70:\n {\n const kind = this.state.value;\n return this.parseVarStatement(node, kind);\n }\n case 88:\n return this.parseWhileStatement(node);\n case 72:\n return this.parseWithStatement(node);\n case 2:\n return this.parseBlock();\n case 9:\n return this.parseEmptyStatement(node);\n case 79:\n {\n const nextTokenCharCode = this.lookaheadCharCode();\n if (nextTokenCharCode === 40 || nextTokenCharCode === 46) {\n break;\n }\n }\n case 78:\n {\n if (!(this.optionFlags & 8) && !topLevel) {\n this.raise(Errors.UnexpectedImportExport, this.state.startLoc);\n }\n this.next();\n let result;\n if (startType === 79) {\n result = this.parseImport(node);\n } else {\n result = this.parseExport(node, decorators);\n }\n this.assertModuleNodeAllowed(result);\n return result;\n }\n default:\n {\n if (this.isAsyncFunction()) {\n if (!allowDeclaration) {\n this.raise(Errors.AsyncFunctionInSingleStatementContext, this.state.startLoc);\n }\n this.next();\n return this.parseFunctionStatement(node, true, !allowDeclaration && allowFunctionDeclaration);\n }\n }\n }\n const maybeName = this.state.value;\n const expr = this.parseExpression();\n if (tokenIsIdentifier(startType) && expr.type === \"Identifier\" && this.eat(10)) {\n return this.parseLabeledStatement(node, maybeName, expr, flags);\n } else {\n return this.parseExpressionStatement(node, expr, decorators);\n }\n }\n assertModuleNodeAllowed(node) {\n if (!(this.optionFlags & 8) && !this.inModule) {\n this.raise(Errors.ImportOutsideModule, node);\n }\n }\n maybeTakeDecorators(maybeDecorators, classNode, exportNode) {\n if (maybeDecorators) {\n if (classNode.decorators?.length) {\n this.raise(Errors.DecoratorsBeforeAfterExport, classNode.decorators[0]);\n classNode.decorators.unshift(...maybeDecorators);\n } else {\n classNode.decorators = maybeDecorators;\n }\n this.resetStartLocationFromNode(classNode, maybeDecorators[0]);\n if (exportNode) this.resetStartLocationFromNode(exportNode, classNode);\n }\n return classNode;\n }\n canHaveLeadingDecorator() {\n return this.match(76);\n }\n parseDecorators(allowExport) {\n const decorators = [];\n do {\n decorators.push(this.parseDecorator());\n } while (this.match(22));\n if (this.match(78)) {\n if (!allowExport) {\n this.unexpected();\n }\n } else if (!this.canHaveLeadingDecorator()) {\n throw this.raise(Errors.UnexpectedLeadingDecorator, this.state.startLoc);\n }\n return decorators;\n }\n parseDecorator() {\n this.expectOnePlugin([\"decorators\", \"decorators-legacy\"]);\n const node = this.startNode();\n this.next();\n if (this.hasPlugin(\"decorators\")) {\n const startLoc = this.state.startLoc;\n let expr;\n if (this.match(6)) {\n const startLoc = this.state.startLoc;\n this.next();\n expr = this.parseExpression();\n this.expect(7);\n expr = this.wrapParenthesis(startLoc, expr);\n const paramsStartLoc = this.state.startLoc;\n node.expression = this.parseMaybeDecoratorArguments(expr, startLoc);\n if (node.expression !== expr) {\n this.raise(Errors.DecoratorArgumentsOutsideParentheses, paramsStartLoc);\n }\n } else {\n expr = this.parseIdentifier(false);\n while (this.eat(12)) {\n const node = this.startNodeAt(startLoc);\n node.object = expr;\n if (this.match(134)) {\n this.classScope.usePrivateName(this.state.value, this.state.startLoc);\n node.property = this.parsePrivateName();\n } else {\n node.property = this.parseIdentifier(true);\n }\n node.computed = false;\n expr = this.finishNode(node, \"MemberExpression\");\n }\n node.expression = this.parseMaybeDecoratorArguments(expr, startLoc);\n }\n } else {\n this.state.canStartArrow = false;\n node.expression = this.parseExprSubscripts();\n }\n return this.finishNode(node, \"Decorator\");\n }\n parseMaybeDecoratorArguments(expr, startLoc) {\n if (this.eat(6)) {\n const node = this.startNodeAt(startLoc);\n node.callee = expr;\n node.arguments = this.parseCallExpressionArguments();\n this.toReferencedList(node.arguments);\n return this.finishNode(node, \"CallExpression\");\n }\n return expr;\n }\n parseBreakContinueStatement(node, isBreak) {\n this.next();\n if (this.isLineTerminator()) {\n node.label = null;\n } else {\n node.label = this.parseIdentifier();\n this.semicolon();\n }\n this.verifyBreakContinue(node, isBreak);\n return this.finishNode(node, isBreak ? \"BreakStatement\" : \"ContinueStatement\");\n }\n verifyBreakContinue(node, isBreak) {\n let i;\n for (i = 0; i < this.state.labels.length; ++i) {\n const lab = this.state.labels[i];\n if (node.label == null || lab.name === node.label.name) {\n if (lab.kind != null && (isBreak || lab.kind === 1)) {\n break;\n }\n if (node.label && isBreak) break;\n }\n }\n if (i === this.state.labels.length) {\n const type = isBreak ? \"BreakStatement\" : \"ContinueStatement\";\n this.raise(Errors.IllegalBreakContinue, node, {\n type\n });\n }\n }\n parseDebuggerStatement(node) {\n this.next();\n this.semicolon();\n return this.finishNode(node, \"DebuggerStatement\");\n }\n parseHeaderExpression() {\n this.expect(6);\n const val = this.parseExpression();\n this.expect(7);\n return val;\n }\n parseDoWhileStatement(node) {\n this.next();\n this.state.labels.push(loopLabel);\n node.body = this.parseStatement();\n this.state.labels.pop();\n this.expect(88);\n node.test = this.parseHeaderExpression();\n this.eat(9);\n return this.finishNode(node, \"DoWhileStatement\");\n }\n parseForStatement(node) {\n this.next();\n this.state.labels.push(loopLabel);\n let awaitAt = null;\n if (this.isContextual(92) && this.recordAwaitIfAllowed()) {\n awaitAt = this.state.startLoc;\n this.next();\n }\n this.scope.enter(0);\n this.expect(6);\n if (this.match(9)) {\n if (awaitAt !== null) {\n this.unexpected(awaitAt);\n }\n return this.parseFor(node, null);\n }\n const startsWithLet = this.isContextual(96);\n {\n const startsWithAwaitUsing = this.isAwaitUsing();\n const starsWithUsingDeclaration = startsWithAwaitUsing || this.isForUsing();\n const isLetOrUsing = startsWithLet && this.hasFollowingBindingAtom() || starsWithUsingDeclaration;\n if (this.match(70) || this.match(71) || isLetOrUsing) {\n const initNode = this.startNode();\n let kind;\n if (startsWithAwaitUsing) {\n kind = \"await using\";\n if (!this.recordAwaitIfAllowed()) {\n this.raise(Errors.AwaitUsingNotInAsyncContext, this.state.startLoc);\n }\n this.next();\n } else {\n kind = this.state.value;\n }\n this.next();\n this.parseVar(initNode, true, kind);\n const init = this.finishNode(initNode, \"VariableDeclaration\");\n const isForIn = this.match(54);\n if (isForIn && starsWithUsingDeclaration) {\n this.raise(Errors.ForInUsing, init);\n }\n if ((isForIn || this.isContextual(98)) && init.declarations.length === 1) {\n return this.parseForIn(node, init, awaitAt);\n }\n if (awaitAt !== null) {\n this.unexpected(awaitAt);\n }\n return this.parseFor(node, init);\n }\n }\n const startsWithAsync = this.isContextual(91);\n const refExpressionErrors = new ExpressionErrors();\n const init = this.parseExpression(true, refExpressionErrors);\n const isForOf = this.isContextual(98);\n if (isForOf) {\n if (startsWithLet) {\n this.raise(Errors.ForOfLet, init);\n }\n if (awaitAt === null && startsWithAsync && init.type === \"Identifier\") {\n this.raise(Errors.ForOfAsync, init);\n }\n }\n if (isForOf || this.match(54)) {\n this.checkDestructuringPrivate(refExpressionErrors);\n this.toAssignable(init, true);\n const type = isForOf ? \"ForOfStatement\" : \"ForInStatement\";\n this.checkLVal(init, {\n type\n });\n return this.parseForIn(node, init, awaitAt);\n } else {\n this.checkExpressionErrors(refExpressionErrors, true);\n }\n if (awaitAt !== null) {\n this.unexpected(awaitAt);\n }\n return this.parseFor(node, init);\n }\n parseFunctionStatement(node, isAsync, isHangingDeclaration) {\n this.next();\n return this.parseFunction(node, 1 | (isHangingDeclaration ? 2 : 0) | (isAsync ? 8 : 0));\n }\n parseIfStatement(node) {\n this.next();\n node.test = this.parseHeaderExpression();\n node.consequent = this.parseStatementOrSloppyAnnexBFunctionDeclaration();\n node.alternate = this.eat(62) ? this.parseStatementOrSloppyAnnexBFunctionDeclaration() : null;\n return this.finishNode(node, \"IfStatement\");\n }\n parseReturnStatement(node) {\n if (!this.prodParam.hasReturn) {\n this.raise(Errors.IllegalReturn, this.state.startLoc);\n }\n this.next();\n if (this.isLineTerminator()) {\n node.argument = null;\n } else {\n node.argument = this.parseExpression();\n this.semicolon();\n }\n return this.finishNode(node, \"ReturnStatement\");\n }\n parseSwitchStatement(node) {\n this.next();\n node.discriminant = this.parseHeaderExpression();\n const cases = node.cases = [];\n this.expect(2);\n this.state.labels.push(switchLabel);\n this.scope.enter(256);\n let cur;\n for (let sawDefault; !this.match(4);) {\n if (this.match(57) || this.match(61)) {\n const isCase = this.match(57);\n if (cur) this.finishNode(cur, \"SwitchCase\");\n cases.push(cur = this.startNode());\n cur.consequent = [];\n this.next();\n if (isCase) {\n cur.test = this.parseExpression();\n } else {\n if (sawDefault) {\n this.raise(Errors.MultipleDefaultsInSwitch, this.state.lastTokStartLoc);\n }\n sawDefault = true;\n cur.test = null;\n }\n this.expect(10);\n } else {\n if (cur) {\n cur.consequent.push(this.parseStatementListItem());\n } else {\n this.unexpected();\n }\n }\n }\n this.scope.exit();\n if (cur) this.finishNode(cur, \"SwitchCase\");\n this.next();\n this.state.labels.pop();\n return this.finishNode(node, \"SwitchStatement\");\n }\n parseThrowStatement(node) {\n this.next();\n if (this.hasPrecedingLineBreak()) {\n this.raise(Errors.NewlineAfterThrow, this.state.lastTokEndLoc);\n }\n node.argument = this.parseExpression();\n this.semicolon();\n return this.finishNode(node, \"ThrowStatement\");\n }\n parseCatchClauseParam() {\n const param = this.parseBindingAtom();\n this.scope.enter(this.options.annexB && param.type === \"Identifier\" ? 8 : 0);\n this.checkLVal(param, {\n type: \"CatchClause\"\n }, 9);\n return param;\n }\n parseTryStatement(node) {\n this.next();\n node.block = this.parseBlock();\n node.handler = null;\n if (this.match(58)) {\n const clause = this.startNode();\n this.next();\n if (this.match(6)) {\n this.expect(6);\n clause.param = this.parseCatchClauseParam();\n this.expect(7);\n } else {\n clause.param = null;\n this.scope.enter(0);\n }\n clause.body = this.parseBlock(false, false);\n this.scope.exit();\n node.handler = this.finishNode(clause, \"CatchClause\");\n }\n node.finalizer = this.eat(63) ? this.parseBlock() : null;\n if (!node.handler && !node.finalizer) {\n this.raise(Errors.NoCatchOrFinally, node);\n }\n return this.finishNode(node, \"TryStatement\");\n }\n parseVarStatement(node, kind, allowMissingInitializer = false) {\n this.next();\n this.parseVar(node, false, kind, allowMissingInitializer);\n this.semicolon();\n return this.finishNode(node, \"VariableDeclaration\");\n }\n parseWhileStatement(node) {\n this.next();\n node.test = this.parseHeaderExpression();\n this.state.labels.push(loopLabel);\n node.body = this.parseStatement();\n this.state.labels.pop();\n return this.finishNode(node, \"WhileStatement\");\n }\n parseWithStatement(node) {\n if (this.state.strict) {\n this.raise(Errors.StrictWith, this.state.startLoc);\n }\n this.next();\n node.object = this.parseHeaderExpression();\n node.body = this.parseStatement();\n return this.finishNode(node, \"WithStatement\");\n }\n parseEmptyStatement(node) {\n this.next();\n return this.finishNode(node, \"EmptyStatement\");\n }\n parseLabeledStatement(node, maybeName, expr, flags) {\n for (const label of this.state.labels) {\n if (label.name === maybeName) {\n this.raise(Errors.LabelRedeclaration, expr, {\n labelName: maybeName\n });\n }\n }\n const kind = tokenIsLoop(this.state.type) ? 1 : this.match(67) ? 2 : null;\n for (let i = this.state.labels.length - 1; i >= 0; i--) {\n const label = this.state.labels[i];\n if (label.statementStart === node.start) {\n label.statementStart = this.sourceToOffsetPos(this.state.start);\n label.kind = kind;\n } else {\n break;\n }\n }\n this.state.labels.push({\n name: maybeName,\n kind: kind,\n statementStart: this.sourceToOffsetPos(this.state.start)\n });\n node.body = flags & 8 ? this.parseStatementOrSloppyAnnexBFunctionDeclaration(true) : this.parseStatement();\n this.state.labels.pop();\n node.label = expr;\n return this.finishNode(node, \"LabeledStatement\");\n }\n parseExpressionStatement(node, expr, decorators) {\n node.expression = expr;\n this.semicolon();\n return this.finishNode(node, \"ExpressionStatement\");\n }\n parseBlock(allowDirectives = false, createNewLexicalScope = true, afterBlockParse) {\n const node = this.startNode();\n if (allowDirectives) {\n this.state.strictErrors.clear();\n }\n this.expect(2);\n if (createNewLexicalScope) {\n this.scope.enter(0);\n }\n this.parseBlockBody(node, allowDirectives, false, 4, afterBlockParse);\n if (createNewLexicalScope) {\n this.scope.exit();\n }\n return this.finishNode(node, \"BlockStatement\");\n }\n isValidDirective(stmt) {\n return stmt.type === \"ExpressionStatement\" && stmt.expression.type === \"StringLiteral\" && !stmt.expression.extra.parenthesized;\n }\n parseBlockBody(node, allowDirectives, topLevel, end, afterBlockParse) {\n const body = node.body = [];\n const directives = node.directives = [];\n this.parseBlockOrModuleBlockBody(body, allowDirectives ? directives : undefined, topLevel, end, afterBlockParse);\n }\n parseBlockOrModuleBlockBody(body, directives, topLevel, end, afterBlockParse) {\n const oldStrict = this.state.strict;\n let hasStrictModeDirective = false;\n let parsedNonDirective = false;\n while (!this.match(end)) {\n const stmt = topLevel ? this.parseModuleItem() : this.parseStatementListItem();\n if (directives && !parsedNonDirective) {\n if (this.isValidDirective(stmt)) {\n const directive = this.stmtToDirective(stmt);\n directives.push(directive);\n if (!hasStrictModeDirective && directive.value.value === \"use strict\") {\n hasStrictModeDirective = true;\n this.setStrict(true);\n }\n continue;\n }\n parsedNonDirective = true;\n this.state.strictErrors.clear();\n }\n body.push(stmt);\n }\n afterBlockParse?.call(this, hasStrictModeDirective);\n if (!oldStrict) {\n this.setStrict(false);\n }\n this.next();\n }\n parseFor(node, init) {\n node.init = init;\n this.semicolon(false);\n node.test = this.match(9) ? null : this.parseExpression();\n this.semicolon(false);\n node.update = this.match(7) ? null : this.parseExpression();\n this.expect(7);\n node.body = this.parseStatement();\n this.scope.exit();\n this.state.labels.pop();\n return this.finishNode(node, \"ForStatement\");\n }\n parseForIn(node, init, awaitAt) {\n const isForIn = this.match(54);\n this.next();\n if (isForIn) {\n if (awaitAt !== null) this.unexpected(awaitAt);\n } else {\n node.await = awaitAt !== null;\n }\n if (init.type === \"VariableDeclaration\" && init.declarations[0].init != null && (!isForIn || !this.options.annexB || this.state.strict || init.kind !== \"var\" || init.declarations[0].id.type !== \"Identifier\")) {\n this.raise(Errors.ForInOfLoopInitializer, init, {\n type: isForIn ? \"ForInStatement\" : \"ForOfStatement\"\n });\n }\n if (init.type === \"AssignmentPattern\") {\n this.raise(Errors.InvalidLhs, init, {\n ancestor: {\n type: \"ForStatement\"\n }\n });\n }\n node.left = init;\n node.right = isForIn ? this.parseExpression() : this.parseMaybeAssignAllowIn();\n this.expect(7);\n node.body = this.parseStatement();\n this.scope.exit();\n this.state.labels.pop();\n return this.finishNode(node, isForIn ? \"ForInStatement\" : \"ForOfStatement\");\n }\n parseVar(node, isFor, kind, allowMissingInitializer = false) {\n const declarations = node.declarations = [];\n node.kind = kind;\n for (;;) {\n const decl = this.startNode();\n this.parseVarId(decl, kind);\n decl.init = !this.eat(25) ? null : isFor ? this.parseMaybeAssignDisallowIn() : this.parseMaybeAssignAllowIn();\n if (decl.init === null && !allowMissingInitializer) {\n if (decl.id.type !== \"Identifier\" && !(isFor && (this.match(54) || this.isContextual(98)))) {\n this.raise(Errors.DeclarationMissingInitializer, this.state.lastTokEndLoc, {\n kind: \"destructuring\"\n });\n } else if ((kind === \"const\" || kind === \"using\" || kind === \"await using\") && !(this.match(54) || this.isContextual(98))) {\n this.raise(Errors.DeclarationMissingInitializer, this.state.lastTokEndLoc, {\n kind\n });\n }\n }\n declarations.push(this.finishNode(decl, \"VariableDeclarator\"));\n if (!this.eat(8)) break;\n }\n return node;\n }\n parseVarId(decl, kind) {\n const id = this.parseBindingAtom();\n if (kind === \"using\" || kind === \"await using\") {\n if (id.type === \"ArrayPattern\" || id.type === \"ObjectPattern\") {\n this.raise(Errors.UsingDeclarationHasBindingPattern, id);\n }\n } else {\n if (id.type === \"VoidPattern\") {\n this.raise(Errors.UnexpectedVoidPattern, id);\n }\n }\n this.checkLVal(id, {\n type: \"VariableDeclarator\"\n }, kind === \"var\" ? 5 : 8201);\n decl.id = id;\n }\n parseAsyncFunctionExpression(node) {\n return this.parseFunction(node, 8);\n }\n parseFunction(node, flags = 0) {\n const hangingDeclaration = flags & 2;\n const isDeclaration = !!(flags & 1);\n const requireId = isDeclaration && !(flags & 4);\n const isAsync = !!(flags & 8);\n this.initFunction(node, isAsync);\n if (this.match(51)) {\n if (hangingDeclaration) {\n this.raise(Errors.GeneratorInSingleStatementContext, this.state.startLoc);\n }\n this.next();\n node.generator = true;\n }\n if (isDeclaration) {\n node.id = this.parseFunctionId(requireId);\n }\n this.scope.enter(514);\n this.prodParam.enter(functionFlags(isAsync, node.generator));\n if (!isDeclaration) {\n node.id = this.parseFunctionId();\n }\n this.parseFunctionParams(node, false);\n this.parseFunctionBodyAndFinish(node, isDeclaration ? \"FunctionDeclaration\" : \"FunctionExpression\");\n this.prodParam.exit();\n this.scope.exit();\n if (isDeclaration && !hangingDeclaration) {\n this.registerFunctionStatementId(node);\n }\n return node;\n }\n parseFunctionId(requireId) {\n return requireId || tokenIsIdentifier(this.state.type) ? this.parseIdentifier() : null;\n }\n parseFunctionParams(node, isConstructor) {\n this.expect(6);\n this.expressionScope.enter(newParameterDeclarationScope());\n node.params = this.parseBindingList(7, 41, 2 | (isConstructor ? 4 : 0));\n this.expressionScope.exit();\n }\n registerFunctionStatementId(node) {\n if (!node.id) return;\n this.scope.declareName(node.id.name, !this.options.annexB || this.state.strict || node.generator || node.async ? this.scope.treatFunctionsAsVar ? 5 : 8201 : 17, node.id.start);\n }\n parseClass(node, isStatement, optionalId) {\n this.next();\n const oldStrict = this.state.strict;\n this.state.strict = true;\n this.parseClassId(node, isStatement, optionalId);\n this.parseClassSuper(node);\n node.body = this.parseClassBody(!!node.superClass, oldStrict);\n return this.finishNode(node, isStatement ? \"ClassDeclaration\" : \"ClassExpression\");\n }\n isClassProperty() {\n return this.match(25) || this.match(9) || this.match(4);\n }\n isClassMethod() {\n return this.match(6);\n }\n nameIsConstructor(key) {\n return key.type === \"Identifier\" && key.name === \"constructor\" || key.type === \"StringLiteral\" && key.value === \"constructor\";\n }\n isNonstaticConstructor(method) {\n return !method.computed && !method.static && this.nameIsConstructor(method.key);\n }\n parseClassBody(hadSuperClass, oldStrict) {\n this.classScope.enter();\n const state = {\n hadConstructor: false,\n hadSuperClass\n };\n let decorators = [];\n const classBody = this.startNode();\n classBody.body = [];\n this.expect(2);\n while (!this.match(4)) {\n if (this.eat(9)) {\n if (decorators.length > 0) {\n throw this.raise(Errors.DecoratorSemicolon, this.state.lastTokEndLoc);\n }\n continue;\n }\n if (this.match(22)) {\n decorators.push(this.parseDecorator());\n continue;\n }\n const member = this.startNode();\n if (decorators.length) {\n member.decorators = decorators;\n this.resetStartLocationFromNode(member, decorators[0]);\n decorators = [];\n }\n this.parseClassMember(classBody, member, state);\n }\n this.state.strict = oldStrict;\n this.next();\n if (decorators.length) {\n throw this.raise(Errors.TrailingDecorator, this.state.startLoc);\n }\n this.classScope.exit();\n return this.finishNode(classBody, \"ClassBody\");\n }\n parseClassMemberFromModifier(classBody, member) {\n const key = this.parseIdentifier(true);\n if (this.isClassMethod()) {\n const method = member;\n method.kind = \"method\";\n method.computed = false;\n method.key = key;\n method.static = false;\n this.pushClassMethod(classBody, method, false, false, false, false);\n return true;\n } else if (this.isClassProperty()) {\n const prop = member;\n prop.computed = false;\n prop.key = key;\n prop.static = false;\n classBody.body.push(this.parseClassProperty(prop));\n return true;\n }\n this.resetPreviousNodeTrailingComments(key);\n return false;\n }\n parseClassMember(classBody, member, state) {\n const isStatic = this.isContextual(102);\n if (isStatic) {\n if (this.parseClassMemberFromModifier(classBody, member)) {\n return;\n }\n if (this.eat(2)) {\n this.parseClassStaticBlock(classBody, member);\n return;\n }\n }\n this.parseClassMemberWithIsStatic(classBody, member, state, isStatic);\n }\n parseClassMemberWithIsStatic(classBody, member, state, isStatic) {\n const publicMethod = member;\n const privateMethod = member;\n const publicProp = member;\n const privateProp = member;\n const accessorProp = member;\n const method = publicMethod;\n const publicMember = publicMethod;\n member.static = isStatic;\n this.parsePropertyNamePrefixOperator(member);\n if (this.eat(51)) {\n method.kind = \"method\";\n const isPrivateName = this.match(134);\n this.parseClassElementName(method);\n this.parsePostMemberNameModifiers(method);\n if (isPrivateName) {\n this.pushClassPrivateMethod(classBody, privateMethod, true, false);\n return;\n }\n if (this.isNonstaticConstructor(publicMethod)) {\n this.raise(Errors.ConstructorIsGenerator, publicMethod.key);\n }\n this.pushClassMethod(classBody, publicMethod, true, false, false, false);\n return;\n }\n const isContextual = !this.state.containsEsc && tokenIsIdentifier(this.state.type);\n const key = this.parseClassElementName(member);\n const maybeContextualKw = isContextual ? key.name : null;\n const isPrivate = this.isPrivateName(key);\n const maybeQuestionTokenStartLoc = this.state.startLoc;\n this.parsePostMemberNameModifiers(publicMember);\n if (this.isClassMethod()) {\n method.kind = \"method\";\n if (isPrivate) {\n this.pushClassPrivateMethod(classBody, privateMethod, false, false);\n return;\n }\n const isConstructor = this.isNonstaticConstructor(publicMethod);\n let allowsDirectSuper = false;\n if (isConstructor) {\n publicMethod.kind = \"constructor\";\n if (publicMethod.decorators && publicMethod.decorators.length > 0) {\n this.raise(Errors.DecoratorConstructor, member);\n }\n if (state.hadConstructor && !this.hasPlugin(\"typescript\")) {\n this.raise(Errors.DuplicateConstructor, key);\n }\n if (isConstructor && this.hasPlugin(\"typescript\") && member.override) {\n this.raise(Errors.OverrideOnConstructor, key);\n }\n state.hadConstructor = true;\n allowsDirectSuper = state.hadSuperClass;\n }\n this.pushClassMethod(classBody, publicMethod, false, false, isConstructor, allowsDirectSuper);\n } else if (this.isClassProperty()) {\n if (isPrivate) {\n this.pushClassPrivateProperty(classBody, privateProp);\n } else {\n this.pushClassProperty(classBody, publicProp);\n }\n } else if (maybeContextualKw === \"async\" && !this.isLineTerminator()) {\n this.resetPreviousNodeTrailingComments(key);\n const isGenerator = this.eat(51);\n if (publicMember.optional) {\n this.unexpected(maybeQuestionTokenStartLoc);\n }\n method.kind = \"method\";\n const isPrivate = this.match(134);\n this.parseClassElementName(method);\n this.parsePostMemberNameModifiers(publicMember);\n if (isPrivate) {\n this.pushClassPrivateMethod(classBody, privateMethod, isGenerator, true);\n } else {\n if (this.isNonstaticConstructor(publicMethod)) {\n this.raise(Errors.ConstructorIsAsync, publicMethod.key);\n }\n this.pushClassMethod(classBody, publicMethod, isGenerator, true, false, false);\n }\n } else if ((maybeContextualKw === \"get\" || maybeContextualKw === \"set\") && !(this.match(51) && this.isLineTerminator())) {\n this.resetPreviousNodeTrailingComments(key);\n method.kind = maybeContextualKw;\n const isPrivate = this.match(134);\n this.parseClassElementName(publicMethod);\n if (isPrivate) {\n this.pushClassPrivateMethod(classBody, privateMethod, false, false);\n } else {\n if (this.isNonstaticConstructor(publicMethod)) {\n this.raise(Errors.ConstructorIsAccessor, publicMethod.key);\n }\n this.pushClassMethod(classBody, publicMethod, false, false, false, false);\n }\n this.checkGetterSetterParams(publicMethod);\n } else if (maybeContextualKw === \"accessor\" && !this.isLineTerminator()) {\n this.expectPlugin(\"decoratorAutoAccessors\");\n this.resetPreviousNodeTrailingComments(key);\n const isPrivate = this.match(134);\n this.parseClassElementName(publicProp);\n this.pushClassAccessorProperty(classBody, accessorProp, isPrivate);\n } else if (this.isLineTerminator()) {\n if (isPrivate) {\n this.pushClassPrivateProperty(classBody, privateProp);\n } else {\n this.pushClassProperty(classBody, publicProp);\n }\n } else {\n this.unexpected();\n }\n }\n parseClassElementName(member) {\n const {\n type,\n value\n } = this.state;\n if ((type === 128 || type === 130) && member.static && value === \"prototype\") {\n this.raise(Errors.StaticPrototype, this.state.startLoc);\n }\n if (type === 134) {\n if (value === \"constructor\") {\n this.raise(Errors.ConstructorClassPrivateField, this.state.startLoc);\n }\n const key = this.parsePrivateName();\n member.key = key;\n return key;\n }\n this.parsePropertyName(member);\n return member.key;\n }\n parseClassStaticBlock(classBody, member) {\n this.scope.enter(576 | 128 | 16);\n const oldLabels = this.state.labels;\n this.state.labels = [];\n this.prodParam.enter(0);\n const body = member.body = [];\n this.parseBlockOrModuleBlockBody(body, undefined, false, 4);\n this.prodParam.exit();\n this.scope.exit();\n this.state.labels = oldLabels;\n classBody.body.push(this.finishNode(member, \"StaticBlock\"));\n if (member.decorators?.length) {\n this.raise(Errors.DecoratorStaticBlock, member);\n }\n }\n pushClassProperty(classBody, prop) {\n if (!prop.computed && this.nameIsConstructor(prop.key)) {\n this.raise(Errors.ConstructorClassField, prop.key);\n }\n classBody.body.push(this.parseClassProperty(prop));\n }\n pushClassPrivateProperty(classBody, prop) {\n const node = this.parseClassPrivateProperty(prop);\n classBody.body.push(node);\n this.classScope.declarePrivateName(this.getPrivateNameSV(node.key), 0, node.key.start);\n }\n pushClassAccessorProperty(classBody, prop, isPrivate) {\n if (!isPrivate && !prop.computed && this.nameIsConstructor(prop.key)) {\n this.raise(Errors.ConstructorClassField, prop.key);\n }\n const node = this.parseClassAccessorProperty(prop);\n classBody.body.push(node);\n if (isPrivate) {\n this.classScope.declarePrivateName(this.getPrivateNameSV(node.key), 0, node.key.start);\n }\n }\n pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) {\n classBody.body.push(this.parseMethod(method, isGenerator, isAsync, isConstructor, allowsDirectSuper, \"ClassMethod\", true));\n }\n pushClassPrivateMethod(classBody, method, isGenerator, isAsync) {\n const node = this.parseMethod(method, isGenerator, isAsync, false, false, \"ClassPrivateMethod\", true);\n classBody.body.push(node);\n const kind = node.kind === \"get\" ? node.static ? 6 : 2 : node.kind === \"set\" ? node.static ? 5 : 1 : 0;\n this.declareClassPrivateMethodInScope(node, kind);\n }\n declareClassPrivateMethodInScope(node, kind) {\n this.classScope.declarePrivateName(this.getPrivateNameSV(node.key), kind, node.key.start);\n }\n parsePostMemberNameModifiers(methodOrProp) {}\n parseClassPrivateProperty(node) {\n this.parseInitializer(node);\n this.semicolon();\n return this.finishNode(node, \"ClassPrivateProperty\");\n }\n parseClassProperty(node) {\n this.parseInitializer(node);\n this.semicolon();\n return this.finishNode(node, \"ClassProperty\");\n }\n parseClassAccessorProperty(node) {\n this.parseInitializer(node);\n this.semicolon();\n return this.finishNode(node, \"ClassAccessorProperty\");\n }\n parseInitializer(node) {\n this.scope.enter(576 | 16);\n this.expressionScope.enter(newExpressionScope());\n this.prodParam.enter(0);\n node.value = this.eat(25) ? this.parseMaybeAssignAllowIn() : null;\n this.expressionScope.exit();\n this.prodParam.exit();\n this.scope.exit();\n }\n parseClassId(node, isStatement, optionalId, bindingType = 8331) {\n if (tokenIsIdentifier(this.state.type)) {\n node.id = this.parseIdentifier();\n if (isStatement) {\n this.declareNameFromIdentifier(node.id, bindingType);\n }\n } else {\n if (optionalId || !isStatement) {\n node.id = null;\n } else {\n throw this.raise(Errors.MissingClassName, this.state.startLoc);\n }\n }\n }\n parseClassSuper(node) {\n if (this.eat(77)) {\n this.state.canStartArrow = false;\n node.superClass = this.parseExprSubscripts();\n } else {\n node.superClass = null;\n }\n }\n parseExport(node, decorators) {\n const maybeDefaultIdentifier = this.parseMaybeImportPhase(node, true);\n const hasDefault = this.maybeParseExportDefaultSpecifier(node, maybeDefaultIdentifier);\n const parseAfterDefault = !hasDefault || this.eat(8);\n const hasStar = parseAfterDefault && this.eatExportStar(node);\n const hasNamespace = hasStar && this.maybeParseExportNamespaceSpecifier(node);\n const parseAfterNamespace = parseAfterDefault && (!hasNamespace || this.eat(8));\n const isFromRequired = hasDefault || hasStar;\n if (hasStar && !hasNamespace) {\n if (hasDefault) this.unexpected();\n if (decorators) {\n throw this.raise(Errors.UnsupportedDecoratorExport, node);\n }\n this.parseExportFrom(node, true);\n this.sawUnambiguousESM = true;\n return this.finishNode(node, \"ExportAllDeclaration\");\n }\n const hasSpecifiers = this.maybeParseExportNamedSpecifiers(node);\n if (hasDefault && parseAfterDefault && !hasStar && !hasSpecifiers) {\n this.unexpected(null, 2);\n }\n if (hasNamespace && parseAfterNamespace) {\n this.unexpected(null, 94);\n }\n let hasDeclaration;\n if (isFromRequired || hasSpecifiers) {\n hasDeclaration = false;\n if (decorators) {\n throw this.raise(Errors.UnsupportedDecoratorExport, node);\n }\n this.parseExportFrom(node, isFromRequired);\n } else {\n hasDeclaration = this.maybeParseExportDeclaration(node);\n }\n if (isFromRequired || hasSpecifiers || hasDeclaration) {\n const node2 = node;\n this.checkExport(node2, true, false, !!node2.source);\n if (node2.declaration?.type === \"ClassDeclaration\") {\n this.maybeTakeDecorators(decorators, node2.declaration, node2);\n } else if (decorators) {\n throw this.raise(Errors.UnsupportedDecoratorExport, node);\n }\n this.sawUnambiguousESM = true;\n return this.finishNode(node2, \"ExportNamedDeclaration\");\n }\n if (this.eat(61)) {\n const node2 = node;\n const decl = this.parseExportDefaultExpression();\n node2.declaration = decl;\n if (decl.type === \"ClassDeclaration\") {\n this.maybeTakeDecorators(decorators, decl, node2);\n } else if (decorators) {\n throw this.raise(Errors.UnsupportedDecoratorExport, node);\n }\n this.checkExport(node2, true, true);\n this.sawUnambiguousESM = true;\n return this.finishNode(node2, \"ExportDefaultDeclaration\");\n }\n throw this.unexpected(null, 2);\n }\n eatExportStar(_) {\n return this.eat(51);\n }\n maybeParseExportDefaultSpecifier(node, maybeDefaultIdentifier) {\n if (maybeDefaultIdentifier || this.isExportDefaultSpecifier()) {\n this.expectPlugin(\"exportDefaultFrom\", maybeDefaultIdentifier?.start);\n const id = maybeDefaultIdentifier || this.parseIdentifier(true);\n const specifier = this.startNodeAtNode(id);\n specifier.exported = id;\n node.specifiers = [this.finishNode(specifier, \"ExportDefaultSpecifier\")];\n return true;\n }\n return false;\n }\n maybeParseExportNamespaceSpecifier(node) {\n if (this.isContextual(89)) {\n node.specifiers ??= [];\n const specifier = this.startNodeAt(this.state.lastTokStartLoc);\n this.next();\n specifier.exported = this.parseModuleExportName();\n node.specifiers.push(this.finishNode(specifier, \"ExportNamespaceSpecifier\"));\n return true;\n }\n return false;\n }\n maybeParseExportNamedSpecifiers(node) {\n if (this.match(2)) {\n const node2 = node;\n if (!node2.specifiers) node2.specifiers = [];\n const isTypeExport = node2.exportKind === \"type\";\n node2.specifiers.push(...this.parseExportSpecifiers(isTypeExport));\n node2.source = null;\n node2.attributes = [];\n node2.declaration = null;\n return true;\n }\n return false;\n }\n maybeParseExportDeclaration(node) {\n if (this.shouldParseExportDeclaration()) {\n node.specifiers = [];\n node.source = null;\n node.attributes = [];\n node.declaration = this.parseExportDeclaration(node);\n return true;\n }\n return false;\n }\n isAsyncFunction() {\n if (!this.isContextual(91)) return false;\n const next = this.nextTokenInLineStart();\n return this.isUnparsedContextual(next, \"function\");\n }\n parseExportDefaultExpression() {\n const expr = this.startNode();\n if (this.match(64)) {\n this.next();\n return this.parseFunction(expr, 1 | 4);\n } else if (this.isAsyncFunction()) {\n this.next();\n this.next();\n return this.parseFunction(expr, 1 | 4 | 8);\n }\n if (this.match(76)) {\n return this.parseClass(expr, true, true);\n }\n if (this.match(22)) {\n return this.parseClass(this.maybeTakeDecorators(this.parseDecorators(false), this.startNode()), true, true);\n }\n if (this.match(71) || this.match(70) || this.isLet() || this.isUsing() || this.isAwaitUsing()) {\n throw this.raise(Errors.UnsupportedDefaultExport, this.state.startLoc);\n }\n const res = this.parseMaybeAssignAllowIn();\n this.semicolon();\n return res;\n }\n parseExportDeclaration(node) {\n if (this.match(76)) {\n const node = this.parseClass(this.startNode(), true, false);\n return node;\n }\n return this.parseStatementListItem();\n }\n isExportDefaultSpecifier() {\n const {\n type\n } = this.state;\n if (tokenIsIdentifier(type)) {\n if (type === 91 && !this.state.containsEsc || type === 96) {\n return false;\n }\n if ((type === 126 || type === 125) && !this.state.containsEsc) {\n const next = this.nextTokenStart();\n const nextChar = this.input.charCodeAt(next);\n if (nextChar === 123 || this.chStartsBindingIdentifier(nextChar, next) && !this.input.startsWith(\"from\", next)) {\n this.expectOnePlugin([\"flow\", \"typescript\"]);\n return false;\n }\n }\n } else if (!this.match(61)) {\n return false;\n }\n const next = this.nextTokenStart();\n const hasFrom = this.isUnparsedContextual(next, \"from\");\n if (this.input.charCodeAt(next) === 44 || tokenIsIdentifier(this.state.type) && hasFrom) {\n return true;\n }\n if (this.match(61) && hasFrom) {\n const nextAfterFrom = this.input.charCodeAt(this.nextTokenStartSince(next + 4));\n return nextAfterFrom === 34 || nextAfterFrom === 39;\n }\n return false;\n }\n parseExportFrom(node, expect) {\n if (this.eatContextual(94)) {\n node.source = this.parseImportSource();\n this.checkExport(node);\n this.maybeParseImportAttributes(node);\n } else if (expect) {\n this.unexpected();\n }\n this.semicolon();\n }\n shouldParseExportDeclaration() {\n const {\n type\n } = this.state;\n if (type === 22) {\n this.expectOnePlugin([\"decorators\", \"decorators-legacy\"]);\n if (this.hasPlugin(\"decorators\")) {\n return true;\n }\n }\n if (this.isUsing()) {\n this.raise(Errors.UsingDeclarationExport, this.state.startLoc);\n return true;\n }\n if (this.isAwaitUsing()) {\n this.raise(Errors.UsingDeclarationExport, this.state.startLoc);\n return true;\n }\n return type === 70 || type === 71 || type === 64 || type === 76 || this.isLet() || this.isAsyncFunction();\n }\n checkExport(node, checkNames, isDefault, isFrom) {\n if (checkNames) {\n if (isDefault) {\n this.checkDuplicateExports(node, \"default\");\n if (this.hasPlugin(\"exportDefaultFrom\")) {\n const declaration = node.declaration;\n if (declaration.type === \"Identifier\" && declaration.name === \"from\" && declaration.end - declaration.start === 4 && !declaration.extra?.parenthesized) {\n this.raise(Errors.ExportDefaultFromAsIdentifier, declaration);\n }\n }\n } else if (node.specifiers?.length) {\n for (const specifier of node.specifiers) {\n const {\n exported\n } = specifier;\n const exportName = exported.type === \"Identifier\" ? exported.name : exported.value;\n this.checkDuplicateExports(specifier, exportName);\n if (!isFrom && specifier.local) {\n const {\n local\n } = specifier;\n if (local.type !== \"Identifier\") {\n this.raise(Errors.ExportBindingIsString, specifier, {\n localName: local.value,\n exportName\n });\n } else {\n this.checkReservedWord(local.name, local.start, true, false);\n this.scope.checkLocalExport(local);\n }\n }\n }\n } else if (node.declaration) {\n const decl = node.declaration;\n if (decl.type === \"FunctionDeclaration\" || decl.type === \"ClassDeclaration\") {\n const {\n id\n } = decl;\n if (!id) throw new Error(\"Assertion failure\");\n this.checkDuplicateExports(node, id.name);\n } else if (decl.type === \"VariableDeclaration\") {\n for (const declaration of decl.declarations) {\n this.checkDeclaration(declaration.id);\n }\n }\n }\n }\n }\n checkDeclaration(node) {\n if (node.type === \"Identifier\") {\n this.checkDuplicateExports(node, node.name);\n } else if (node.type === \"ObjectPattern\") {\n for (const prop of node.properties) {\n this.checkDeclaration(prop);\n }\n } else if (node.type === \"ArrayPattern\") {\n for (const elem of node.elements) {\n if (elem) {\n this.checkDeclaration(elem);\n }\n }\n } else if (node.type === \"ObjectProperty\") {\n this.checkDeclaration(node.value);\n } else if (node.type === \"RestElement\") {\n this.checkDeclaration(node.argument);\n } else if (node.type === \"AssignmentPattern\") {\n this.checkDeclaration(node.left);\n }\n }\n checkDuplicateExports(node, exportName) {\n if (this.exportedIdentifiers.has(exportName)) {\n if (exportName === \"default\") {\n this.raise(Errors.DuplicateDefaultExport, node);\n } else {\n this.raise(Errors.DuplicateExport, node, {\n exportName\n });\n }\n }\n this.exportedIdentifiers.add(exportName);\n }\n parseExportSpecifiers(isInTypeExport) {\n const nodes = [];\n let first = true;\n this.expect(2);\n while (!this.eat(4)) {\n if (first) {\n first = false;\n } else {\n this.expect(8);\n if (this.eat(4)) break;\n }\n const isMaybeTypeOnly = this.isContextual(126);\n const isString = this.match(130);\n const node = this.startNode();\n node.local = this.parseModuleExportName();\n nodes.push(this.parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly));\n }\n return nodes;\n }\n parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly) {\n if (this.eatContextual(89)) {\n node.exported = this.parseModuleExportName();\n } else if (isString) {\n node.exported = this.cloneStringLiteral(node.local);\n } else if (!node.exported) {\n node.exported = this.cloneIdentifier(node.local);\n }\n return this.finishNode(node, \"ExportSpecifier\");\n }\n parseModuleExportName() {\n if (this.match(130)) {\n const result = this.parseStringLiteral(this.state.value);\n const surrogate = loneSurrogate.exec(result.value);\n if (surrogate) {\n this.raise(Errors.ModuleExportNameHasLoneSurrogate, result, {\n surrogateCharCode: surrogate[0].charCodeAt(0)\n });\n }\n return result;\n }\n return this.parseIdentifier(true);\n }\n checkImportPhase(node) {\n const {\n specifiers\n } = node;\n const singleBindingType = specifiers.length === 1 ? specifiers[0].type : null;\n if (node.phase === \"source\") {\n if (singleBindingType !== \"ImportDefaultSpecifier\") {\n this.raise(Errors.SourcePhaseImportRequiresDefault, specifiers[0]);\n }\n } else if (node.phase === \"defer\") {\n if (singleBindingType !== \"ImportNamespaceSpecifier\") {\n this.raise(Errors.DeferImportRequiresNamespace, specifiers[0]);\n }\n }\n }\n isPotentialImportPhase(isExport) {\n if (isExport) return false;\n return this.isContextual(101) || this.isContextual(93);\n }\n applyImportPhase(node, isExport, phase, loc) {\n if (isExport) {\n return;\n }\n if (phase === \"source\") {\n this.expectPlugin(\"sourcePhaseImports\", loc);\n node.phase = \"source\";\n } else if (phase === \"defer\") {\n this.expectPlugin(\"deferredImportEvaluation\", loc);\n node.phase = \"defer\";\n } else if (this.hasPlugin(\"sourcePhaseImports\")) {\n node.phase = null;\n }\n }\n parseMaybeImportPhase(node, isExport) {\n if (!this.isPotentialImportPhase(isExport)) {\n this.applyImportPhase(node, isExport, null);\n return null;\n }\n const phaseIdentifier = this.startNode();\n const phaseIdentifierName = this.parseIdentifierName(true);\n const {\n type\n } = this.state;\n const isImportPhase = tokenIsKeywordOrIdentifier(type) ? type !== 94 || this.lookaheadCharCode() === 102 : type !== 8;\n if (isImportPhase) {\n this.applyImportPhase(node, isExport, phaseIdentifierName, phaseIdentifier.start);\n return null;\n } else {\n this.applyImportPhase(node, isExport, null);\n return this.createIdentifier(phaseIdentifier, phaseIdentifierName);\n }\n }\n isPrecedingIdImportPhase(phase) {\n const {\n type\n } = this.state;\n return tokenIsIdentifier(type) ? type !== 94 || this.lookaheadCharCode() === 102 : type !== 8;\n }\n parseImport(node) {\n if (this.match(130)) {\n return this.parseImportSourceAndAttributes(node);\n }\n return this.parseImportSpecifiersAndAfter(node, this.parseMaybeImportPhase(node, false));\n }\n parseImportSpecifiersAndAfter(node, maybeDefaultIdentifier) {\n node.specifiers = [];\n const hasDefault = this.maybeParseDefaultImportSpecifier(node, maybeDefaultIdentifier);\n const parseNext = !hasDefault || this.eat(8);\n const hasStar = parseNext && this.maybeParseStarImportSpecifier(node);\n if (parseNext && !hasStar) this.parseNamedImportSpecifiers(node);\n this.expectContextual(94);\n return this.parseImportSourceAndAttributes(node);\n }\n parseImportSourceAndAttributes(node) {\n node.specifiers ??= [];\n node.source = this.parseImportSource();\n this.maybeParseImportAttributes(node);\n this.checkImportPhase(node);\n this.semicolon();\n this.sawUnambiguousESM = true;\n return this.finishNode(node, \"ImportDeclaration\");\n }\n parseImportSource() {\n if (!this.match(130)) this.unexpected();\n return this.parseExprAtom();\n }\n parseImportSpecifierLocal(node, specifier, type) {\n specifier.local = this.parseIdentifier();\n node.specifiers.push(this.finishImportSpecifier(specifier, type));\n }\n finishImportSpecifier(specifier, type, bindingType = 8201) {\n this.checkLVal(specifier.local, {\n type\n }, bindingType);\n return this.finishNode(specifier, type);\n }\n parseImportAttributes() {\n this.expect(2);\n const attrs = [];\n const attrNames = new Set();\n do {\n if (this.match(4)) {\n break;\n }\n const node = this.startNode();\n const keyName = this.state.value;\n if (attrNames.has(keyName)) {\n this.raise(Errors.ModuleAttributesWithDuplicateKeys, this.state.startLoc, {\n key: keyName\n });\n }\n attrNames.add(keyName);\n if (this.match(130)) {\n node.key = this.parseStringLiteral(keyName);\n } else {\n node.key = this.parseIdentifier(true);\n }\n this.expect(10);\n if (!this.match(130)) {\n throw this.raise(Errors.ModuleAttributeInvalidValue, this.state.startLoc);\n }\n node.value = this.parseStringLiteral(this.state.value);\n attrs.push(this.finishNode(node, \"ImportAttribute\"));\n } while (this.eat(8));\n this.expect(4);\n return attrs;\n }\n maybeParseImportAttributes(node) {\n let attributes;\n if (this.match(72)) {\n if (this.hasPrecedingLineBreak() && this.lookaheadCharCode() === 40) {\n return;\n }\n this.next();\n attributes = this.parseImportAttributes();\n } else {\n attributes = [];\n }\n node.attributes = attributes;\n }\n maybeParseDefaultImportSpecifier(node, maybeDefaultIdentifier) {\n if (maybeDefaultIdentifier) {\n const specifier = this.startNodeAtNode(maybeDefaultIdentifier);\n specifier.local = maybeDefaultIdentifier;\n node.specifiers.push(this.finishImportSpecifier(specifier, \"ImportDefaultSpecifier\"));\n return true;\n } else if (tokenIsKeywordOrIdentifier(this.state.type)) {\n this.parseImportSpecifierLocal(node, this.startNode(), \"ImportDefaultSpecifier\");\n return true;\n }\n return false;\n }\n maybeParseStarImportSpecifier(node) {\n if (this.match(51)) {\n const specifier = this.startNode();\n this.next();\n this.expectContextual(89);\n this.parseImportSpecifierLocal(node, specifier, \"ImportNamespaceSpecifier\");\n return true;\n }\n return false;\n }\n parseNamedImportSpecifiers(node) {\n let first = true;\n this.expect(2);\n while (!this.eat(4)) {\n if (first) {\n first = false;\n } else {\n if (this.eat(10)) {\n throw this.raise(Errors.DestructureNamedImport, this.state.startLoc);\n }\n this.expect(8);\n if (this.eat(4)) break;\n }\n const specifier = this.startNode();\n const importedIsString = this.match(130);\n const isMaybeTypeOnly = this.isContextual(126);\n specifier.imported = this.parseModuleExportName();\n const importSpecifier = this.parseImportSpecifier(specifier, importedIsString, node.importKind === \"type\" || node.importKind === \"typeof\", isMaybeTypeOnly, undefined);\n node.specifiers.push(importSpecifier);\n }\n }\n parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, bindingType) {\n if (this.eatContextual(89)) {\n specifier.local = this.parseIdentifier();\n } else {\n const {\n imported\n } = specifier;\n if (importedIsString) {\n throw this.raise(Errors.ImportBindingIsString, specifier, {\n importName: imported.value\n });\n }\n this.checkReservedWord(imported.name, specifier.start, true, true);\n if (!specifier.local) {\n specifier.local = this.cloneIdentifier(imported);\n }\n }\n return this.finishImportSpecifier(specifier, \"ImportSpecifier\", bindingType);\n }\n isThisParam(param) {\n return param.type === \"Identifier\" && param.name === \"this\";\n }\n}\nconst keywordAndTSRelationalOperator = /in(?:stanceof)?|as|satisfies/y;\nfunction nonNull(x) {\n if (x == null) {\n throw new Error(`Unexpected ${x} value.`);\n }\n return x;\n}\nfunction assert(x) {\n if (!x) {\n throw new Error(\"Assert fail\");\n }\n}\nconst TSErrorTemplates = {\n AbstractMethodHasImplementation: ({\n methodName\n }) => `Method '${methodName}' cannot have an implementation because it is marked abstract.`,\n AbstractPropertyHasInitializer: ({\n propertyName\n }) => `Property '${propertyName}' cannot have an initializer because it is marked abstract.`,\n AccessorCannotBeOptional: \"An 'accessor' property cannot be declared optional.\",\n AccessorCannotDeclareThisParameter: \"'get' and 'set' accessors cannot declare 'this' parameters.\",\n AccessorCannotHaveTypeParameters: \"An accessor cannot have type parameters.\",\n ClassMethodHasDeclare: \"Class methods cannot have the 'declare' modifier.\",\n ClassMethodHasReadonly: \"Class methods cannot have the 'readonly' modifier.\",\n ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference: \"A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.\",\n ConstructorHasTypeParameters: \"Type parameters cannot appear on a constructor declaration.\",\n DeclareAccessor: ({\n kind\n }) => `'declare' is not allowed in ${kind}ters.`,\n DeclareClassFieldHasInitializer: \"Initializers are not allowed in ambient contexts.\",\n DeclareFunctionHasImplementation: \"An implementation cannot be declared in ambient contexts.\",\n DecoratorAbstractMethod: ({\n kind\n }) => `Decorators can't be used with ${kind.startsWith(\"a\") ? \"an\" : \"a\"} ${kind}.`,\n DuplicateAccessibilityModifier: ({\n modifier\n }) => `Accessibility modifier already seen: '${modifier}'.`,\n DuplicateModifier: ({\n modifier\n }) => `Duplicate modifier: '${modifier}'.`,\n EmptyHeritageClauseType: ({\n token\n }) => `'${token}' list cannot be empty.`,\n EmptyTypeArguments: \"Type argument list cannot be empty.\",\n EmptyTypeParameters: \"Type parameter list cannot be empty.\",\n ExpectedAmbientAfterExportDeclare: \"'export declare' must be followed by an ambient declaration.\",\n ExportAssignmentInTSNamespace: \"An export assignment cannot be used in a namespace.\",\n ExportInTSNamespace: \"Export declarations are not permitted in a namespace.\",\n ImportAliasHasImportType: \"An import alias can not use 'import type'.\",\n ImportInTSNamespace: \"Import declarations in a namespace cannot reference a module.\",\n IncompatibleModifiers: ({\n modifiers\n }) => `'${modifiers[0]}' modifier cannot be used with '${modifiers[1]}' modifier.`,\n IndexSignatureHasAbstract: \"Index signatures cannot have the 'abstract' modifier.\",\n IndexSignatureHasAccessibility: ({\n modifier\n }) => `Index signatures cannot have an accessibility modifier ('${modifier}').`,\n IndexSignatureHasDeclare: \"Index signatures cannot have the 'declare' modifier.\",\n IndexSignatureHasOverride: \"'override' modifier cannot appear on an index signature.\",\n IndexSignatureHasStatic: \"Index signatures cannot have the 'static' modifier.\",\n InitializerNotAllowedInAmbientContext: \"Initializers are not allowed in ambient contexts.\",\n InlineModuleDeclarationMustUseString: \"`module ... {}` declarations must have a string name. Use `namespace ... {}` instead.\",\n InvalidHeritageClauseType: ({\n token\n }) => `'${token}' list can only include identifiers or qualified-names with optional type arguments.`,\n InvalidModifierOnAwaitUsingDeclaration: modifier => `'${modifier}' modifier cannot appear on an await using declaration.`,\n InvalidModifierOnTypeMember: ({\n modifier\n }) => `'${modifier}' modifier cannot appear on a type member.`,\n InvalidModifierOnTypeParameter: ({\n modifier\n }) => `'${modifier}' modifier cannot appear on a type parameter.`,\n InvalidModifierOnTypeParameterPositions: ({\n modifier\n }) => `'${modifier}' modifier can only appear on a type parameter of a class, interface or type alias.`,\n InvalidModifierOnUsingDeclaration: modifier => `'${modifier}' modifier cannot appear on a using declaration.`,\n InvalidModifiersOrder: ({\n orderedModifiers\n }) => `'${orderedModifiers[0]}' modifier must precede '${orderedModifiers[1]}' modifier.`,\n InvalidPropertyAccessAfterInstantiationExpression: \"Invalid property access after an instantiation expression. \" + \"You can either wrap the instantiation expression in parentheses, or delete the type arguments.\",\n InvalidTupleMemberLabel: \"Tuple members must be labeled with a simple identifier.\",\n MissingInterfaceName: \"'interface' declarations must be followed by an identifier.\",\n NamespaceExportInTSNamespace: \"Global module exports may only appear at top level.\",\n NonAbstractClassHasAbstractMethod: \"Abstract methods can only appear within an abstract class.\",\n NonClassMethodPropertyHasAbstractModifier: \"'abstract' modifier can only appear on a class, method, or property declaration.\",\n OptionalTypeBeforeRequired: \"A required element cannot follow an optional element.\",\n OverrideNotInSubClass: \"This member cannot have an 'override' modifier because its containing class does not extend another class.\",\n PatternIsOptional: \"A binding pattern parameter cannot be optional in an implementation signature.\",\n PrivateElementHasAbstract: \"Private elements cannot have the 'abstract' modifier.\",\n PrivateElementHasAccessibility: ({\n modifier\n }) => `Private elements cannot have an accessibility modifier ('${modifier}').`,\n ReadonlyForMethodSignature: \"'readonly' modifier can only appear on a property declaration or index signature.\",\n ReservedArrowTypeParam: \"This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma, as in `<T,>() => ...`.\",\n ReservedTypeAssertion: \"This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead.\",\n SetAccessorCannotHaveOptionalParameter: \"A 'set' accessor cannot have an optional parameter.\",\n SetAccessorCannotHaveRestParameter: \"A 'set' accessor cannot have rest parameter.\",\n SetAccessorCannotHaveReturnType: \"A 'set' accessor cannot have a return type annotation.\",\n SingleTypeParameterWithoutTrailingComma: ({\n typeParameterName\n }) => `Single type parameter ${typeParameterName} should have a trailing comma. Example usage: <${typeParameterName},>.`,\n StaticBlockCannotHaveModifier: \"Static class blocks cannot have any modifier.\",\n TupleOptionalAfterType: \"A labeled tuple optional element must be declared using a question mark after the name and before the colon (`name?: type`), rather than after the type (`name: type?`).\",\n TypeAnnotationAfterAssign: \"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.\",\n TypeImportCannotSpecifyDefaultAndNamed: \"A type-only import can specify a default import or named bindings, but not both.\",\n TypeModifierIsUsedInTypeExports: \"The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement.\",\n TypeModifierIsUsedInTypeImports: \"The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement.\",\n UnexpectedParameterInitializer: \"A parameter initializer is only allowed in a function or constructor implementation.\",\n UnexpectedParameterModifier: \"A parameter property is only allowed in a constructor implementation.\",\n UnexpectedReadonly: \"'readonly' type modifier is only permitted on array and tuple literal types.\",\n UnexpectedTypeAnnotation: \"Did not expect a type annotation here.\",\n UnexpectedTypeCastInParameter: \"Unexpected type cast in parameter position.\",\n UnexpectedTypeDeclaration: type => `'${type}' declarations can only be declared inside a block.`,\n UnsupportedImportTypeArgument: \"Argument in a type import must be a string literal.\",\n UnsupportedParameterPropertyKind: \"A parameter property may not be declared using a binding pattern.\",\n UnsupportedSignatureParameterKind: ({\n type\n }) => `Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got ${type}.`,\n UsingDeclarationInAmbientContext: kind => `'${kind}' declarations are not allowed in ambient contexts.`\n};\nconst TSErrors = ParseErrorEnum`typescript`(TSErrorTemplates);\nfunction keywordTypeFromName(value) {\n switch (value) {\n case \"any\":\n return \"TSAnyKeyword\";\n case \"boolean\":\n return \"TSBooleanKeyword\";\n case \"bigint\":\n return \"TSBigIntKeyword\";\n case \"never\":\n return \"TSNeverKeyword\";\n case \"number\":\n return \"TSNumberKeyword\";\n case \"object\":\n return \"TSObjectKeyword\";\n case \"string\":\n return \"TSStringKeyword\";\n case \"symbol\":\n return \"TSSymbolKeyword\";\n case \"undefined\":\n return \"TSUndefinedKeyword\";\n case \"unknown\":\n return \"TSUnknownKeyword\";\n default:\n return undefined;\n }\n}\nfunction tsIsAccessModifier(modifier) {\n return modifier === \"private\" || modifier === \"public\" || modifier === \"protected\";\n}\nfunction tsIsVarianceAnnotations(modifier) {\n return modifier === \"in\" || modifier === \"out\";\n}\nfunction tsIsEntityName(node) {\n if (node.extra?.parenthesized) {\n return false;\n }\n switch (node.type) {\n case \"Identifier\":\n return true;\n case \"MemberExpression\":\n return !node.computed && tsIsEntityName(node.object);\n case \"TSInstantiationExpression\":\n return tsIsEntityName(node.expression);\n default:\n return false;\n }\n}\nconst typescript = superClass => class TypeScriptParserMixin extends superClass {\n getScopeHandler() {\n return TypeScriptScopeHandler;\n }\n tsIsIdentifier() {\n return tokenIsIdentifier(this.state.type);\n }\n tsTokenCanFollowModifier() {\n return this.match(0) || this.match(2) || this.match(51) || this.match(17) || this.match(134) || this.isLiteralPropertyName();\n }\n tsNextTokenOnSameLineAndCanFollowModifier() {\n this.next();\n if (this.hasPrecedingLineBreak()) {\n return false;\n }\n return this.tsTokenCanFollowModifier();\n }\n tsNextTokenCanFollowModifier() {\n if (this.match(102)) {\n this.next();\n return this.tsTokenCanFollowModifier();\n }\n return this.tsNextTokenOnSameLineAndCanFollowModifier();\n }\n tsParseModifier(allowedModifiers, stopOnStartOfClassStaticBlock, hasSeenStaticModifier) {\n if (!tokenIsIdentifier(this.state.type) && this.state.type !== 54 && this.state.type !== 71) {\n return undefined;\n }\n const modifier = this.state.value;\n if (allowedModifiers.includes(modifier)) {\n if (hasSeenStaticModifier && this.match(102)) {\n return undefined;\n }\n if (stopOnStartOfClassStaticBlock && this.tsIsStartOfStaticBlocks()) {\n return undefined;\n }\n if (this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this))) {\n return modifier;\n }\n }\n return undefined;\n }\n tsParseModifiers({\n allowedModifiers,\n disallowedModifiers,\n stopOnStartOfClassStaticBlock,\n errorTemplate = TSErrors.InvalidModifierOnTypeMember\n }, modified) {\n const enforceOrder = (loc, modifier, before, after) => {\n if (modifier === before && modified[after]) {\n this.raise(TSErrors.InvalidModifiersOrder, loc, {\n orderedModifiers: [before, after]\n });\n }\n };\n const incompatible = (loc, modifier, mod1, mod2) => {\n if (modified[mod1] && modifier === mod2 || modified[mod2] && modifier === mod1) {\n this.raise(TSErrors.IncompatibleModifiers, loc, {\n modifiers: [mod1, mod2]\n });\n }\n };\n for (;;) {\n const {\n startLoc\n } = this.state;\n const modifier = this.tsParseModifier(allowedModifiers.concat(disallowedModifiers ?? []), stopOnStartOfClassStaticBlock, modified.static);\n if (!modifier) break;\n if (tsIsAccessModifier(modifier)) {\n if (modified.accessibility) {\n this.raise(TSErrors.DuplicateAccessibilityModifier, startLoc, {\n modifier\n });\n } else {\n enforceOrder(startLoc, modifier, modifier, \"override\");\n enforceOrder(startLoc, modifier, modifier, \"static\");\n enforceOrder(startLoc, modifier, modifier, \"readonly\");\n modified.accessibility = modifier;\n }\n } else if (tsIsVarianceAnnotations(modifier)) {\n if (modified[modifier]) {\n this.raise(TSErrors.DuplicateModifier, startLoc, {\n modifier\n });\n }\n modified[modifier] = true;\n enforceOrder(startLoc, modifier, \"in\", \"out\");\n } else {\n if (Object.hasOwn(modified, modifier)) {\n this.raise(TSErrors.DuplicateModifier, startLoc, {\n modifier\n });\n } else {\n enforceOrder(startLoc, modifier, \"static\", \"readonly\");\n enforceOrder(startLoc, modifier, \"static\", \"override\");\n enforceOrder(startLoc, modifier, \"override\", \"readonly\");\n enforceOrder(startLoc, modifier, \"abstract\", \"override\");\n incompatible(startLoc, modifier, \"declare\", \"override\");\n incompatible(startLoc, modifier, \"static\", \"abstract\");\n }\n modified[modifier] = true;\n }\n if (disallowedModifiers?.includes(modifier)) {\n this.raise(errorTemplate, startLoc, {\n modifier\n });\n }\n }\n }\n tsIsListTerminator(kind) {\n switch (kind) {\n case \"EnumMembers\":\n case \"TypeMembers\":\n return this.match(4);\n case \"HeritageClauseElement\":\n return this.match(2);\n case \"TupleElementTypes\":\n return this.match(1);\n case \"TypeParametersOrArguments\":\n return this.match(44);\n }\n }\n tsParseList(kind, parseElement) {\n const result = [];\n while (!this.tsIsListTerminator(kind)) {\n result.push(parseElement());\n }\n return result;\n }\n tsParseDelimitedList(kind, parseElement, refTrailingCommaPos) {\n return nonNull(this.tsParseDelimitedListWorker(kind, parseElement, true, refTrailingCommaPos));\n }\n tsParseDelimitedListWorker(kind, parseElement, expectSuccess, refTrailingCommaPos) {\n const result = [];\n let trailingCommaPos = -1;\n for (;;) {\n if (this.tsIsListTerminator(kind)) {\n break;\n }\n trailingCommaPos = -1;\n const element = parseElement();\n if (element == null) {\n return undefined;\n }\n result.push(element);\n if (this.eat(8)) {\n trailingCommaPos = this.state.lastTokStartLoc.index;\n continue;\n }\n if (this.tsIsListTerminator(kind)) {\n break;\n }\n if (expectSuccess) {\n this.expect(8);\n }\n return undefined;\n }\n if (refTrailingCommaPos) {\n refTrailingCommaPos.value = trailingCommaPos;\n }\n return result;\n }\n tsParseBracketedList(kind, parseElement, bracket, skipFirstToken, refTrailingCommaPos) {\n if (!skipFirstToken) {\n if (bracket) {\n this.expect(0);\n } else {\n this.expect(43);\n }\n }\n const result = this.tsParseDelimitedList(kind, parseElement, refTrailingCommaPos);\n if (bracket) {\n this.expect(1);\n } else {\n this.expect(44);\n }\n return result;\n }\n tsParseImportType() {\n const node = this.startNode();\n this.expect(79);\n this.expect(6);\n if (!this.match(130)) {\n this.raise(TSErrors.UnsupportedImportTypeArgument, this.state.startLoc);\n node.source = this.tsParseNonConditionalType();\n } else {\n node.source = this.parseStringLiteral(this.state.value);\n }\n if (this.eat(8)) {\n node.options = this.tsParseImportTypeOptions();\n } else {\n node.options = null;\n }\n this.expect(7);\n if (this.eat(12)) {\n node.qualifier = this.tsParseEntityName(1 | 2);\n }\n if (this.match(43)) {\n node.typeArguments = this.tsParseTypeArguments();\n }\n return this.finishNode(node, \"TSImportType\");\n }\n tsParseImportTypeOptions() {\n const node = this.startNode();\n this.expect(2);\n const withProperty = this.startNode();\n if (this.isContextual(72)) {\n withProperty.method = false;\n withProperty.key = this.parseIdentifier(true);\n withProperty.computed = false;\n withProperty.shorthand = false;\n } else {\n this.unexpected(null, 72);\n }\n this.expect(10);\n withProperty.value = this.tsParseImportTypeWithPropertyValue();\n node.properties = [this.finishObjectProperty(withProperty)];\n this.eat(8);\n this.expect(4);\n return this.finishNode(node, \"ObjectExpression\");\n }\n tsParseImportTypeWithPropertyValue() {\n const node = this.startNode();\n const properties = [];\n this.expect(2);\n while (!this.match(4)) {\n const type = this.state.type;\n if (tokenIsIdentifier(type) || type === 130) {\n properties.push(super.parsePropertyDefinition(null));\n } else {\n this.unexpected();\n }\n this.eat(8);\n }\n node.properties = properties;\n this.next();\n return this.finishNode(node, \"ObjectExpression\");\n }\n tsParseEntityName(flags) {\n let entity;\n if (flags & 1 && this.match(74)) {\n if (flags & 2) {\n entity = this.parseIdentifier(true);\n } else {\n const node = this.startNode();\n this.next();\n entity = this.finishNode(node, \"ThisExpression\");\n }\n } else {\n entity = this.parseIdentifier(!!(flags & 1));\n }\n while (this.eat(12)) {\n const node = this.startNodeAtNode(entity);\n node.left = entity;\n node.right = this.parseIdentifier(!!(flags & 1));\n entity = this.finishNode(node, \"TSQualifiedName\");\n }\n return entity;\n }\n tsParseTypeReference() {\n const node = this.startNode();\n node.typeName = this.tsParseEntityName(1);\n if (!this.hasPrecedingLineBreak() && this.match(43)) {\n node.typeArguments = this.tsParseTypeArguments();\n }\n return this.finishNode(node, \"TSTypeReference\");\n }\n tsParseThisTypePredicate(lhs) {\n this.next();\n const node = this.startNodeAtNode(lhs);\n node.parameterName = lhs;\n node.typeAnnotation = this.tsParseTypeAnnotation(false);\n node.asserts = false;\n return this.finishNode(node, \"TSTypePredicate\");\n }\n tsParseThisTypeNode() {\n const node = this.startNode();\n this.next();\n return this.finishNode(node, \"TSThisType\");\n }\n tsParseTypeQuery() {\n const node = this.startNode();\n this.expect(83);\n if (this.match(79)) {\n node.exprName = this.tsParseImportType();\n } else {\n node.exprName = this.tsParseEntityName(1);\n }\n if (!this.hasPrecedingLineBreak() && this.match(43)) {\n node.typeArguments = this.tsParseTypeArguments();\n }\n return this.finishNode(node, \"TSTypeQuery\");\n }\n tsParseInOutModifiers = this.tsParseModifiers.bind(this, {\n allowedModifiers: [\"in\", \"out\"],\n disallowedModifiers: [\"const\", \"public\", \"private\", \"protected\", \"readonly\", \"declare\", \"abstract\", \"override\"],\n errorTemplate: TSErrors.InvalidModifierOnTypeParameter\n });\n tsParseConstModifier = this.tsParseModifiers.bind(this, {\n allowedModifiers: [\"const\"],\n disallowedModifiers: [\"in\", \"out\"],\n errorTemplate: TSErrors.InvalidModifierOnTypeParameterPositions\n });\n tsParseInOutConstModifiers = this.tsParseModifiers.bind(this, {\n allowedModifiers: [\"in\", \"out\", \"const\"],\n disallowedModifiers: [\"public\", \"private\", \"protected\", \"readonly\", \"declare\", \"abstract\", \"override\"],\n errorTemplate: TSErrors.InvalidModifierOnTypeParameter\n });\n tsParseTypeParameter(parseModifiers) {\n const node = this.startNode();\n parseModifiers(node);\n node.name = this.tsParseTypeParameterName();\n node.constraint = this.tsEatThenParseType(77);\n node.default = this.tsEatThenParseType(25);\n return this.finishNode(node, \"TSTypeParameter\");\n }\n tsTryParseTypeParameters(parseModifiers) {\n if (this.match(43)) {\n return this.tsParseTypeParameters(parseModifiers);\n }\n }\n tsParseTypeParameters(parseModifiers) {\n const node = this.startNode();\n if (this.match(43) || this.match(138)) {\n this.next();\n } else {\n this.unexpected();\n }\n const refTrailingCommaPos = {\n value: -1\n };\n node.params = this.tsParseBracketedList(\"TypeParametersOrArguments\", this.tsParseTypeParameter.bind(this, parseModifiers), false, true, refTrailingCommaPos);\n if (node.params.length === 0) {\n this.raise(TSErrors.EmptyTypeParameters, node);\n }\n if (refTrailingCommaPos.value !== -1) {\n this.addExtra(node, \"trailingComma\", refTrailingCommaPos.value);\n }\n return this.finishNode(node, \"TSTypeParameterDeclaration\");\n }\n tsFillSignature(returnToken, signature) {\n const returnTokenRequired = returnToken === 15;\n const paramsKey = \"params\";\n const returnTypeKey = \"returnType\";\n signature.typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier);\n this.expect(6);\n signature[paramsKey] = this.tsParseBindingListForSignature();\n if (returnTokenRequired) {\n signature[returnTypeKey] = this.tsParseTypeOrTypePredicateAnnotation(returnToken);\n } else if (this.match(returnToken)) {\n signature[returnTypeKey] = this.tsParseTypeOrTypePredicateAnnotation(returnToken);\n }\n }\n tsParseBindingListForSignature() {\n const list = super.parseBindingList(7, 41, 2);\n for (const pattern of list) {\n const {\n type\n } = pattern;\n if (type === \"AssignmentPattern\" || type === \"TSParameterProperty\") {\n this.raise(TSErrors.UnsupportedSignatureParameterKind, pattern, {\n type\n });\n }\n }\n return list;\n }\n tsParseTypeMemberSemicolon() {\n if (!this.eat(8) && !this.isLineTerminator()) {\n this.expect(9);\n }\n }\n tsParseSignatureMember(kind, node) {\n this.tsFillSignature(10, node);\n this.tsParseTypeMemberSemicolon();\n return this.finishNode(node, kind);\n }\n tsIsUnambiguouslyIndexSignature() {\n this.next();\n if (tokenIsIdentifier(this.state.type)) {\n this.next();\n return this.match(10);\n }\n return false;\n }\n tsTryParseIndexSignature(node) {\n if (!(this.match(0) && this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this)))) {\n return;\n }\n this.expect(0);\n const id = this.parseIdentifier();\n id.typeAnnotation = this.tsParseTypeAnnotation();\n this.resetEndLocation(id);\n this.expect(1);\n node.parameters = [id];\n const type = this.tsTryParseTypeAnnotation();\n if (type) node.typeAnnotation = type;\n this.tsParseTypeMemberSemicolon();\n return this.finishNode(node, \"TSIndexSignature\");\n }\n tsParsePropertyOrMethodSignature(node, readonly) {\n if (this.eat(13)) node.optional = true;\n if (this.match(6) || this.match(43)) {\n if (readonly) {\n this.raise(TSErrors.ReadonlyForMethodSignature, node);\n }\n const method = node;\n if (method.kind && this.match(43)) {\n this.raise(TSErrors.AccessorCannotHaveTypeParameters, this.state.curPosition());\n }\n this.tsFillSignature(10, method);\n this.tsParseTypeMemberSemicolon();\n if (method.kind === \"get\") {\n if (method.params.length > 0) {\n this.raise(Errors.BadGetterArity, this.state.curPosition());\n if (this.isThisParam(method.params[0])) {\n this.raise(TSErrors.AccessorCannotDeclareThisParameter, this.state.curPosition());\n }\n }\n } else if (method.kind === \"set\") {\n if (method.params.length !== 1) {\n this.raise(Errors.BadSetterArity, this.state.curPosition());\n } else {\n const firstParameter = method.params[0];\n if (this.isThisParam(firstParameter)) {\n this.raise(TSErrors.AccessorCannotDeclareThisParameter, this.state.curPosition());\n }\n if (firstParameter.type === \"Identifier\" && firstParameter.optional) {\n this.raise(TSErrors.SetAccessorCannotHaveOptionalParameter, this.state.curPosition());\n }\n if (firstParameter.type === \"RestElement\") {\n this.raise(TSErrors.SetAccessorCannotHaveRestParameter, this.state.curPosition());\n }\n }\n if (method.returnType) {\n this.raise(TSErrors.SetAccessorCannotHaveReturnType, method.returnType);\n }\n } else {\n method.kind = \"method\";\n }\n return this.finishNode(method, \"TSMethodSignature\");\n } else {\n const property = node;\n if (readonly) property.readonly = true;\n const type = this.tsTryParseTypeAnnotation();\n if (type) property.typeAnnotation = type;\n this.tsParseTypeMemberSemicolon();\n return this.finishNode(property, \"TSPropertySignature\");\n }\n }\n tsParseTypeMember() {\n const node = this.startNode();\n if (this.match(6) || this.match(43)) {\n return this.tsParseSignatureMember(\"TSCallSignatureDeclaration\", node);\n }\n if (this.match(73)) {\n const id = this.startNode();\n this.next();\n if (this.match(6) || this.match(43)) {\n return this.tsParseSignatureMember(\"TSConstructSignatureDeclaration\", node);\n } else {\n node.key = this.createIdentifier(id, \"new\");\n return this.tsParsePropertyOrMethodSignature(node, false);\n }\n }\n this.tsParseModifiers({\n allowedModifiers: [\"readonly\"],\n disallowedModifiers: [\"declare\", \"abstract\", \"private\", \"protected\", \"public\", \"static\", \"override\"]\n }, node);\n const idx = this.tsTryParseIndexSignature(node);\n if (idx) {\n return idx;\n }\n super.parsePropertyName(node);\n if (!node.computed && node.key.type === \"Identifier\" && (node.key.name === \"get\" || node.key.name === \"set\") && this.tsTokenCanFollowModifier()) {\n node.kind = node.key.name;\n super.parsePropertyName(node);\n if (!this.match(6) && !this.match(43)) {\n this.unexpected(null, 6);\n }\n }\n return this.tsParsePropertyOrMethodSignature(node, !!node.readonly);\n }\n tsParseTypeLiteral() {\n const node = this.startNode();\n node.members = this.tsParseObjectTypeMembers();\n return this.finishNode(node, \"TSTypeLiteral\");\n }\n tsParseObjectTypeMembers() {\n this.expect(2);\n const members = this.tsParseList(\"TypeMembers\", this.tsParseTypeMember.bind(this));\n this.expect(4);\n return members;\n }\n tsIsStartOfMappedType() {\n this.next();\n if (this.eat(49)) {\n return this.isContextual(118);\n }\n if (this.isContextual(118)) {\n this.next();\n }\n if (!this.match(0)) {\n return false;\n }\n this.next();\n if (!this.tsIsIdentifier()) {\n return false;\n }\n this.next();\n return this.match(54);\n }\n tsParseMappedType() {\n const node = this.startNode();\n this.expect(2);\n if (this.match(49)) {\n node.readonly = this.state.value;\n this.next();\n this.expectContextual(118);\n } else if (this.eatContextual(118)) {\n node.readonly = true;\n }\n this.expect(0);\n node.key = this.tsParseTypeParameterName();\n node.constraint = this.tsExpectThenParseType(54);\n node.nameType = this.eatContextual(89) ? this.tsParseType() : null;\n this.expect(1);\n if (this.match(49)) {\n node.optional = this.state.value;\n this.next();\n this.expect(13);\n } else if (this.eat(13)) {\n node.optional = true;\n }\n node.typeAnnotation = this.tsTryParseType();\n this.semicolon();\n this.expect(4);\n return this.finishNode(node, \"TSMappedType\");\n }\n tsParseTupleType() {\n const node = this.startNode();\n node.elementTypes = this.tsParseBracketedList(\"TupleElementTypes\", this.tsParseTupleElementType.bind(this), true, false);\n let seenOptionalElement = false;\n node.elementTypes.forEach(elementNode => {\n const {\n type\n } = elementNode;\n if (seenOptionalElement && type !== \"TSRestType\" && type !== \"TSOptionalType\" && !(type === \"TSNamedTupleMember\" && elementNode.optional)) {\n this.raise(TSErrors.OptionalTypeBeforeRequired, elementNode);\n }\n seenOptionalElement ||= type === \"TSNamedTupleMember\" && elementNode.optional || type === \"TSOptionalType\";\n });\n return this.finishNode(node, \"TSTupleType\");\n }\n tsParseTupleElementType() {\n const restStartLoc = this.state.startLoc;\n const rest = this.eat(17);\n const {\n startLoc\n } = this.state;\n let labeled;\n let label;\n let optional;\n let type;\n const isWord = tokenIsKeywordOrIdentifier(this.state.type);\n const chAfterWord = isWord ? this.lookaheadCharCode() : null;\n if (chAfterWord === 58) {\n labeled = true;\n optional = false;\n label = this.parseIdentifier(true);\n this.expect(10);\n type = this.tsParseType();\n } else if (chAfterWord === 63) {\n optional = true;\n const wordName = this.state.value;\n const typeOrLabel = this.tsParseNonArrayType();\n if (this.lookaheadCharCode() === 58) {\n labeled = true;\n label = this.createIdentifier(this.startNodeAt(startLoc), wordName);\n this.expect(13);\n this.expect(10);\n type = this.tsParseType();\n } else {\n labeled = false;\n type = typeOrLabel;\n this.expect(13);\n }\n } else {\n type = this.tsParseType();\n optional = this.eat(13);\n labeled = this.eat(10);\n }\n if (labeled) {\n let labeledNode;\n if (label) {\n labeledNode = this.startNodeAt(startLoc);\n labeledNode.optional = optional;\n labeledNode.label = label;\n labeledNode.elementType = type;\n if (this.eat(13)) {\n labeledNode.optional = true;\n this.raise(TSErrors.TupleOptionalAfterType, this.state.lastTokStartLoc);\n }\n } else {\n labeledNode = this.startNodeAt(startLoc);\n labeledNode.optional = optional;\n this.raise(TSErrors.InvalidTupleMemberLabel, type);\n labeledNode.label = type;\n labeledNode.elementType = this.tsParseType();\n }\n type = this.finishNode(labeledNode, \"TSNamedTupleMember\");\n } else if (optional) {\n const optionalTypeNode = this.startNodeAt(startLoc);\n optionalTypeNode.typeAnnotation = type;\n type = this.finishNode(optionalTypeNode, \"TSOptionalType\");\n }\n if (rest) {\n const restNode = this.startNodeAt(restStartLoc);\n restNode.typeAnnotation = type;\n type = this.finishNode(restNode, \"TSRestType\");\n }\n return type;\n }\n tsParseParenthesizedType() {\n const node = this.startNode();\n this.expect(6);\n node.typeAnnotation = this.tsParseType();\n this.expect(7);\n return this.finishNode(node, \"TSParenthesizedType\");\n }\n tsParseFunctionOrConstructorType(type, abstract) {\n const node = this.startNode();\n if (type === \"TSConstructorType\") {\n node.abstract = !!abstract;\n if (abstract) this.next();\n this.next();\n }\n this.tsInAllowConditionalTypesContext(() => this.tsFillSignature(15, node));\n return this.finishNode(node, type);\n }\n tsParseLiteralTypeNode() {\n const node = this.startNode();\n switch (this.state.type) {\n case 131:\n case 132:\n case 130:\n case 81:\n case 82:\n node.literal = super.parseExprAtom();\n break;\n default:\n this.unexpected();\n }\n return this.finishNode(node, \"TSLiteralType\");\n }\n tsParseTemplateLiteralType() {\n const startLoc = this.state.startLoc;\n let curElt = this.parseTemplateElement(false);\n const quasis = [curElt];\n if (curElt.tail) {\n const node = this.startNodeAt(startLoc);\n const literal = this.startNodeAt(startLoc);\n literal.expressions = [];\n literal.quasis = quasis;\n node.literal = this.finishNode(literal, \"TemplateLiteral\");\n return this.finishNode(node, \"TSLiteralType\");\n } else {\n const substitutions = [];\n while (!curElt.tail) {\n substitutions.push(this.tsParseType());\n this.readTemplateContinuation();\n quasis.push(curElt = this.parseTemplateElement(false));\n }\n const node = this.startNodeAt(startLoc);\n node.types = substitutions;\n node.quasis = quasis;\n return this.finishNode(node, \"TSTemplateLiteralType\");\n }\n }\n parseTemplateSubstitution() {\n if (this.state.inType) return this.tsParseType();\n return super.parseTemplateSubstitution();\n }\n tsParseThisTypeOrThisTypePredicate() {\n const thisKeyword = this.tsParseThisTypeNode();\n if (this.isContextual(112) && !this.hasPrecedingLineBreak()) {\n return this.tsParseThisTypePredicate(thisKeyword);\n } else {\n return thisKeyword;\n }\n }\n tsParseNonArrayType() {\n switch (this.state.type) {\n case 130:\n case 131:\n case 132:\n case 81:\n case 82:\n return this.tsParseLiteralTypeNode();\n case 49:\n if (this.state.value === \"-\") {\n const node = this.startNode();\n const nextToken = this.lookahead();\n if (nextToken.type !== 131 && nextToken.type !== 132) {\n this.unexpected();\n }\n node.literal = this.parseMaybeUnary();\n return this.finishNode(node, \"TSLiteralType\");\n }\n break;\n case 74:\n return this.tsParseThisTypeOrThisTypePredicate();\n case 83:\n return this.tsParseTypeQuery();\n case 79:\n return this.tsParseImportType();\n case 2:\n return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this)) ? this.tsParseMappedType() : this.tsParseTypeLiteral();\n case 0:\n return this.tsParseTupleType();\n case 6:\n if (!(this.optionFlags & 2048)) {\n const startLoc = this.state.startLoc;\n this.next();\n const type = this.tsParseType();\n this.expect(7);\n this.addExtra(type, \"parenthesized\", true);\n this.addExtra(type, \"parenStart\", startLoc.index);\n return type;\n }\n return this.tsParseParenthesizedType();\n case 21:\n case 20:\n return this.tsParseTemplateLiteralType();\n default:\n {\n const {\n type\n } = this.state;\n if (tokenIsIdentifier(type) || type === 84 || type === 80) {\n const nodeType = type === 84 ? \"TSVoidKeyword\" : type === 80 ? \"TSNullKeyword\" : keywordTypeFromName(this.state.value);\n if (nodeType !== undefined && this.lookaheadCharCode() !== 46) {\n const node = this.startNode();\n this.next();\n return this.finishNode(node, nodeType);\n }\n return this.tsParseTypeReference();\n }\n }\n }\n throw this.unexpected();\n }\n tsParseArrayTypeOrHigher() {\n const {\n startLoc\n } = this.state;\n let type = this.tsParseNonArrayType();\n while (!this.hasPrecedingLineBreak() && this.eat(0)) {\n if (this.match(1)) {\n const node = this.startNodeAt(startLoc);\n node.elementType = type;\n this.expect(1);\n type = this.finishNode(node, \"TSArrayType\");\n } else {\n const node = this.startNodeAt(startLoc);\n node.objectType = type;\n node.indexType = this.tsParseType();\n this.expect(1);\n type = this.finishNode(node, \"TSIndexedAccessType\");\n }\n }\n return type;\n }\n tsParseTypeOperator() {\n const node = this.startNode();\n const operator = this.state.value;\n this.next();\n node.operator = operator;\n node.typeAnnotation = this.tsParseTypeOperatorOrHigher();\n if (operator === \"readonly\") {\n this.tsCheckTypeAnnotationForReadOnly(node);\n }\n return this.finishNode(node, \"TSTypeOperator\");\n }\n tsCheckTypeAnnotationForReadOnly(node) {\n switch (node.typeAnnotation.type) {\n case \"TSTupleType\":\n case \"TSArrayType\":\n return;\n default:\n this.raise(TSErrors.UnexpectedReadonly, node);\n }\n }\n tsParseInferType() {\n const node = this.startNode();\n this.expectContextual(111);\n const typeParameter = this.startNode();\n typeParameter.name = this.tsParseTypeParameterName();\n typeParameter.constraint = this.tsTryParse(() => this.tsParseConstraintForInferType());\n node.typeParameter = this.finishNode(typeParameter, \"TSTypeParameter\");\n return this.finishNode(node, \"TSInferType\");\n }\n tsParseConstraintForInferType() {\n if (this.eat(77)) {\n const constraint = this.tsInDisallowConditionalTypesContext(() => this.tsParseType());\n if (this.state.inDisallowConditionalTypesContext || !this.match(13)) {\n return constraint;\n }\n }\n }\n tsParseTypeOperatorOrHigher() {\n const isTypeOperator = tokenIsTSTypeOperator(this.state.type) && !this.state.containsEsc;\n return isTypeOperator ? this.tsParseTypeOperator() : this.isContextual(111) ? this.tsParseInferType() : this.tsInAllowConditionalTypesContext(() => this.tsParseArrayTypeOrHigher());\n }\n tsParseUnionOrIntersectionType(kind, parseConstituentType, operator) {\n const node = this.startNode();\n const hasLeadingOperator = this.eat(operator);\n const types = [];\n do {\n types.push(parseConstituentType());\n } while (this.eat(operator));\n if (types.length === 1 && !hasLeadingOperator) {\n return types[0];\n }\n node.types = types;\n return this.finishNode(node, kind);\n }\n tsParseIntersectionTypeOrHigher() {\n return this.tsParseUnionOrIntersectionType(\"TSIntersectionType\", this.tsParseTypeOperatorOrHigher.bind(this), 41);\n }\n tsParseUnionTypeOrHigher() {\n return this.tsParseUnionOrIntersectionType(\"TSUnionType\", this.tsParseIntersectionTypeOrHigher.bind(this), 39);\n }\n tsIsStartOfFunctionType() {\n if (this.match(43)) {\n return true;\n }\n return this.match(6) && this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this));\n }\n tsSkipParameterStart() {\n if (tokenIsIdentifier(this.state.type) || this.match(74)) {\n this.next();\n return true;\n }\n if (this.match(2)) {\n const {\n errors\n } = this.state;\n const previousErrorCount = errors.length;\n try {\n this.parseObjectLike(4, true);\n return errors.length === previousErrorCount;\n } catch {\n return false;\n }\n }\n if (this.match(0)) {\n this.next();\n const {\n errors\n } = this.state;\n const previousErrorCount = errors.length;\n try {\n super.parseBindingList(1, 93, 1);\n return errors.length === previousErrorCount;\n } catch {\n return false;\n }\n }\n return false;\n }\n tsIsUnambiguouslyStartOfFunctionType() {\n this.next();\n if (this.match(7) || this.match(17)) {\n return true;\n }\n if (this.tsSkipParameterStart()) {\n if (this.match(10) || this.match(8) || this.match(13) || this.match(25)) {\n return true;\n }\n if (this.match(7)) {\n this.next();\n if (this.match(15)) {\n return true;\n }\n }\n }\n return false;\n }\n tsParseTypeOrTypePredicateAnnotation(returnToken) {\n return this.tsInType(() => {\n const t = this.startNode();\n this.expect(returnToken);\n const node = this.startNode();\n const asserts = !!this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this));\n if (asserts && this.match(74)) {\n let thisTypePredicate = this.tsParseThisTypeOrThisTypePredicate();\n if (thisTypePredicate.type === \"TSThisType\") {\n node.parameterName = thisTypePredicate;\n node.asserts = true;\n node.typeAnnotation = null;\n thisTypePredicate = this.finishNode(node, \"TSTypePredicate\");\n } else {\n this.resetStartLocationFromNode(thisTypePredicate, node);\n thisTypePredicate.asserts = true;\n }\n t.typeAnnotation = thisTypePredicate;\n return this.finishNode(t, \"TSTypeAnnotation\");\n }\n const typePredicateVariable = this.tsIsIdentifier() && this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));\n if (!typePredicateVariable) {\n if (!asserts) {\n return this.tsParseTypeAnnotation(false, t);\n }\n node.parameterName = this.parseIdentifier();\n node.asserts = asserts;\n node.typeAnnotation = null;\n t.typeAnnotation = this.finishNode(node, \"TSTypePredicate\");\n return this.finishNode(t, \"TSTypeAnnotation\");\n }\n const type = this.tsParseTypeAnnotation(false);\n node.parameterName = typePredicateVariable;\n node.typeAnnotation = type;\n node.asserts = asserts;\n t.typeAnnotation = this.finishNode(node, \"TSTypePredicate\");\n return this.finishNode(t, \"TSTypeAnnotation\");\n });\n }\n tsTryParseTypeOrTypePredicateAnnotation() {\n if (this.match(10)) {\n return this.tsParseTypeOrTypePredicateAnnotation(10);\n }\n }\n tsTryParseTypeAnnotation() {\n if (this.match(10)) {\n return this.tsParseTypeAnnotation();\n }\n }\n tsTryParseType() {\n return this.tsEatThenParseType(10);\n }\n tsParseTypePredicatePrefix() {\n const id = this.parseIdentifier();\n if (this.isContextual(112) && !this.hasPrecedingLineBreak()) {\n this.next();\n return id;\n }\n }\n tsParseTypePredicateAsserts() {\n if (this.state.type !== 105) {\n return false;\n }\n const containsEsc = this.state.containsEsc;\n this.next();\n if (!tokenIsIdentifier(this.state.type) && !this.match(74)) {\n return false;\n }\n if (containsEsc) {\n this.raise(Errors.InvalidEscapedReservedWord, this.state.lastTokStartLoc, {\n reservedWord: \"asserts\"\n });\n }\n return true;\n }\n tsParseTypeAnnotation(eatColon = true, t = this.startNode()) {\n this.tsInType(() => {\n if (eatColon) this.expect(10);\n t.typeAnnotation = this.tsParseType();\n });\n return this.finishNode(t, \"TSTypeAnnotation\");\n }\n tsParseType() {\n assert(this.state.inType);\n const type = this.tsParseNonConditionalType();\n if (this.state.inDisallowConditionalTypesContext || this.hasPrecedingLineBreak() || !this.eat(77)) {\n return type;\n }\n const node = this.startNodeAtNode(type);\n node.checkType = type;\n node.extendsType = this.tsInDisallowConditionalTypesContext(() => this.tsParseNonConditionalType());\n this.expect(13);\n node.trueType = this.tsInAllowConditionalTypesContext(() => this.tsParseType());\n this.expect(10);\n node.falseType = this.tsInAllowConditionalTypesContext(() => this.tsParseType());\n return this.finishNode(node, \"TSConditionalType\");\n }\n isAbstractConstructorSignature() {\n return this.isContextual(120) && this.isLookaheadContextual(\"new\");\n }\n tsParseNonConditionalType() {\n if (this.tsIsStartOfFunctionType()) {\n return this.tsParseFunctionOrConstructorType(\"TSFunctionType\");\n }\n if (this.match(73)) {\n return this.tsParseFunctionOrConstructorType(\"TSConstructorType\");\n } else if (this.isAbstractConstructorSignature()) {\n return this.tsParseFunctionOrConstructorType(\"TSConstructorType\", true);\n }\n return this.tsParseUnionTypeOrHigher();\n }\n tsParseTypeAssertion() {\n if (this.getPluginOption(\"typescript\", \"disallowAmbiguousJSXLike\")) {\n this.raise(TSErrors.ReservedTypeAssertion, this.state.startLoc);\n }\n const node = this.startNode();\n node.typeAnnotation = this.tsInType(() => {\n this.next();\n return this.match(71) ? this.tsParseTypeReference() : this.tsParseType();\n });\n this.expect(44);\n node.expression = this.parseMaybeUnary();\n return this.finishNode(node, \"TSTypeAssertion\");\n }\n tsParseHeritageClause(token) {\n const originalStartLoc = this.state.startLoc;\n const delimitedList = this.tsParseDelimitedList(\"HeritageClauseElement\", () => {\n const expression = (this.state.canStartArrow = false, super.parseExprSubscripts());\n if (!tsIsEntityName(expression)) {\n this.raise(TSErrors.InvalidHeritageClauseType, expression.start, {\n token\n });\n }\n const nodeType = token === \"extends\" ? \"TSInterfaceHeritage\" : \"TSClassImplements\";\n if (expression.type === \"TSInstantiationExpression\") {\n expression.type = nodeType;\n return expression;\n }\n const node = this.startNodeAtNode(expression);\n node.expression = expression;\n if (this.match(43) || this.match(47)) {\n node.typeArguments = this.tsParseTypeArgumentsInExpression();\n }\n return this.finishNode(node, nodeType);\n });\n if (!delimitedList.length) {\n this.raise(TSErrors.EmptyHeritageClauseType, originalStartLoc, {\n token\n });\n }\n return delimitedList;\n }\n tsParseInterfaceDeclaration(node, properties = {}) {\n if (this.hasFollowingLineBreak()) return null;\n this.expectContextual(125);\n if (properties.declare) node.declare = true;\n if (tokenIsIdentifier(this.state.type)) {\n node.id = this.parseIdentifier();\n this.checkIdentifier(node.id, 130);\n } else {\n node.id = null;\n this.raise(TSErrors.MissingInterfaceName, this.state.startLoc);\n }\n node.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers);\n if (this.eat(77)) {\n node.extends = this.tsParseHeritageClause(\"extends\");\n }\n const body = this.startNode();\n body.body = this.tsInType(this.tsParseObjectTypeMembers.bind(this));\n node.body = this.finishNode(body, \"TSInterfaceBody\");\n return this.finishNode(node, \"TSInterfaceDeclaration\");\n }\n tsParseTypeAliasDeclaration(node) {\n node.id = this.parseIdentifier();\n this.checkIdentifier(node.id, 2);\n node.typeAnnotation = this.tsInType(() => {\n node.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutModifiers);\n this.expect(25);\n if (this.isContextual(110) && this.lookaheadCharCode() !== 46) {\n const node = this.startNode();\n this.next();\n return this.finishNode(node, \"TSIntrinsicKeyword\");\n }\n return this.tsParseType();\n });\n this.semicolon();\n return this.finishNode(node, \"TSTypeAliasDeclaration\");\n }\n tsInTopLevelContext(cb) {\n if (this.curContext() !== types.brace) {\n const oldContext = this.state.context;\n this.state.context = [oldContext[0]];\n try {\n return cb();\n } finally {\n this.state.context = oldContext;\n }\n } else {\n return cb();\n }\n }\n tsInType(cb) {\n const oldInType = this.state.inType;\n this.state.inType = true;\n try {\n return cb();\n } finally {\n this.state.inType = oldInType;\n }\n }\n tsInDisallowConditionalTypesContext(cb) {\n const oldInDisallowConditionalTypesContext = this.state.inDisallowConditionalTypesContext;\n this.state.inDisallowConditionalTypesContext = true;\n try {\n return cb();\n } finally {\n this.state.inDisallowConditionalTypesContext = oldInDisallowConditionalTypesContext;\n }\n }\n tsInAllowConditionalTypesContext(cb) {\n const oldInDisallowConditionalTypesContext = this.state.inDisallowConditionalTypesContext;\n this.state.inDisallowConditionalTypesContext = false;\n try {\n return cb();\n } finally {\n this.state.inDisallowConditionalTypesContext = oldInDisallowConditionalTypesContext;\n }\n }\n tsEatThenParseType(token) {\n if (this.match(token)) {\n return this.tsNextThenParseType();\n }\n }\n tsExpectThenParseType(token) {\n return this.tsInType(() => {\n this.expect(token);\n return this.tsParseType();\n });\n }\n tsNextThenParseType() {\n return this.tsInType(() => {\n this.next();\n return this.tsParseType();\n });\n }\n tsParseEnumMember() {\n const node = this.startNode();\n node.id = this.match(130) ? super.parseStringLiteral(this.state.value) : this.parseIdentifier(true);\n if (this.eat(25)) {\n node.initializer = super.parseMaybeAssignAllowIn();\n }\n return this.finishNode(node, \"TSEnumMember\");\n }\n tsParseEnumDeclaration(node, properties = {}) {\n if (properties.const) node.const = true;\n if (properties.declare) node.declare = true;\n this.expectContextual(122);\n node.id = this.parseIdentifier();\n this.checkIdentifier(node.id, node.const ? 8971 : 8459);\n node.body = this.tsParseEnumBody();\n return this.finishNode(node, \"TSEnumDeclaration\");\n }\n tsParseEnumBody() {\n const node = this.startNode();\n this.expect(2);\n node.members = this.tsParseDelimitedList(\"EnumMembers\", this.tsParseEnumMember.bind(this));\n this.expect(4);\n return this.finishNode(node, \"TSEnumBody\");\n }\n tsParseModuleBlock(isGlobal) {\n const node = this.startNode();\n if (!isGlobal) {\n this.scope.enter(0);\n }\n this.expect(2);\n super.parseBlockOrModuleBlockBody(node.body = [], undefined, true, 4);\n if (!isGlobal) {\n this.scope.exit();\n }\n return this.finishNode(node, \"TSModuleBlock\");\n }\n tsParseNamespaceDeclaration(node) {\n node.id = this.tsParseEntityName(0);\n if (node.id.type === \"Identifier\") {\n this.checkIdentifier(node.id, 1024);\n }\n this.scope.enter(2048);\n this.prodParam.enter(0);\n node.body = this.tsParseModuleBlock(false);\n this.prodParam.exit();\n this.scope.exit();\n return this.finishNode(node, \"TSModuleDeclaration\");\n }\n tsParseAmbientExternalModuleDeclaration(node) {\n const isGlobal = this.isContextual(108);\n if (isGlobal) {\n node.kind = \"global\";\n node.id = this.parseIdentifier();\n } else {\n node.kind = \"module\";\n node.id = super.parseStringLiteral(this.state.value);\n }\n if (this.match(2)) {\n if (!isGlobal) {\n this.scope.enter(1024);\n }\n this.prodParam.enter(0);\n node.body = this.tsParseModuleBlock(isGlobal);\n this.prodParam.exit();\n if (!isGlobal) {\n this.scope.exit();\n }\n } else {\n this.semicolon();\n }\n return this.finishNode(node, \"TSModuleDeclaration\");\n }\n tsParseImportEqualsDeclaration(node, maybeDefaultIdentifier) {\n node.id = maybeDefaultIdentifier || this.parseIdentifier();\n this.checkIdentifier(node.id, 4096);\n this.expect(25);\n const moduleReference = this.tsParseModuleReference();\n if (node.importKind === \"type\" && moduleReference.type !== \"TSExternalModuleReference\") {\n this.raise(TSErrors.ImportAliasHasImportType, moduleReference);\n }\n node.moduleReference = moduleReference;\n this.semicolon();\n return this.finishNode(node, \"TSImportEqualsDeclaration\");\n }\n tsIsExternalModuleReference() {\n return this.isContextual(115) && this.lookaheadCharCode() === 40;\n }\n tsParseModuleReference() {\n return this.tsIsExternalModuleReference() ? this.tsParseExternalModuleReference() : this.tsParseEntityName(0);\n }\n tsParseExternalModuleReference() {\n const node = this.startNode();\n this.expectContextual(115);\n this.expect(6);\n if (!this.match(130)) {\n this.unexpected();\n }\n node.expression = super.parseExprAtom();\n this.expect(7);\n this.sawUnambiguousESM = true;\n return this.finishNode(node, \"TSExternalModuleReference\");\n }\n tsLookAhead(f) {\n const state = this.state.clone();\n const res = f();\n this.state = state;\n return res;\n }\n tsTryParseAndCatch(f) {\n const result = this.tryParse(abort => f() || abort());\n if (result.aborted || !result.node) return;\n if (result.error) this.state = result.failState;\n return result.node;\n }\n tsTryParse(f) {\n const state = this.state.clone();\n const result = f();\n if (result !== undefined && result !== false) {\n return result;\n }\n this.state = state;\n }\n tsTryParseDeclare(node) {\n if (this.isLineTerminator()) {\n return;\n }\n const startType = this.state.type;\n return this.tsInAmbientContext(() => {\n switch (startType) {\n case 64:\n node.declare = true;\n return super.parseFunctionStatement(node, false, false);\n case 76:\n node.declare = true;\n return this.parseClass(node, true, false);\n case 122:\n return this.tsParseEnumDeclaration(node, {\n declare: true\n });\n case 108:\n return this.tsParseAmbientExternalModuleDeclaration(node);\n case 96:\n if (this.state.containsEsc) {\n return;\n }\n case 71:\n case 70:\n if (!this.match(71) || !this.isLookaheadContextual(\"enum\")) {\n node.declare = true;\n return this.parseVarStatement(node, this.state.value, true);\n }\n this.expect(71);\n return this.tsParseEnumDeclaration(node, {\n const: true,\n declare: true\n });\n case 103:\n if (this.isUsing()) {\n this.raise(TSErrors.InvalidModifierOnUsingDeclaration, this.state.startLoc, \"declare\");\n node.declare = true;\n return this.parseVarStatement(node, \"using\", true);\n }\n break;\n case 92:\n if (this.isAwaitUsing()) {\n this.raise(TSErrors.InvalidModifierOnAwaitUsingDeclaration, this.state.startLoc, \"declare\");\n node.declare = true;\n this.next();\n return this.parseVarStatement(node, \"await using\", true);\n }\n break;\n case 125:\n {\n const result = this.tsParseInterfaceDeclaration(node, {\n declare: true\n });\n if (result) return result;\n }\n default:\n if (tokenIsIdentifier(startType)) {\n return this.tsParseDeclaration(node, this.state.type, true, null);\n }\n }\n });\n }\n tsTryParseExportDeclaration() {\n return this.tsParseDeclaration(this.startNode(), this.state.type, true, null);\n }\n tsParseDeclaration(node, type, next, decorators) {\n switch (type) {\n case 120:\n if (this.tsCheckLineTerminator(next) && (this.match(76) || tokenIsIdentifier(this.state.type))) {\n return this.tsParseAbstractDeclaration(node, decorators);\n }\n break;\n case 123:\n if (this.tsCheckLineTerminator(next)) {\n return this.tsParseAmbientExternalModuleDeclaration(node);\n }\n break;\n case 124:\n if (this.tsCheckLineTerminator(next) && tokenIsIdentifier(this.state.type)) {\n node.kind = \"namespace\";\n return this.tsParseNamespaceDeclaration(node);\n }\n break;\n case 126:\n if (this.tsCheckLineTerminator(next) && tokenIsIdentifier(this.state.type)) {\n return this.tsParseTypeAliasDeclaration(node);\n }\n break;\n }\n }\n tsCheckLineTerminator(next) {\n if (next) {\n if (this.hasFollowingLineBreak()) return false;\n this.next();\n return true;\n }\n return !this.isLineTerminator();\n }\n tsTryParseGenericAsyncArrowFunction(startLoc) {\n if (!this.match(43)) return;\n const res = this.tsTryParseAndCatch(() => {\n const node = this.startNodeAt(startLoc);\n node.typeParameters = this.tsParseTypeParameters(this.tsParseConstModifier);\n super.parseFunctionParams(node);\n node.returnType = this.tsTryParseTypeOrTypePredicateAnnotation();\n this.expect(15);\n return node;\n });\n if (!res) return;\n return super.parseArrowExpression(res, null, true);\n }\n tsParseTypeArgumentsInExpression() {\n if (this.reScan_lt() !== 43) return;\n return this.tsParseTypeArguments();\n }\n tsParseTypeArguments() {\n const node = this.startNode();\n node.params = this.tsInType(() => this.tsInTopLevelContext(() => {\n this.expect(43);\n return this.tsParseDelimitedList(\"TypeParametersOrArguments\", this.tsParseType.bind(this));\n }));\n if (node.params.length === 0) {\n this.raise(TSErrors.EmptyTypeArguments, node);\n } else if (!this.state.inType && this.curContext() === types.brace) {\n this.reScan_lt_gt();\n }\n this.expect(44);\n return this.finishNode(node, \"TSTypeParameterInstantiation\");\n }\n tsIsDeclarationStart() {\n return tokenIsTSDeclarationStart(this.state.type);\n }\n isExportDefaultSpecifier() {\n if (this.tsIsDeclarationStart()) return false;\n return super.isExportDefaultSpecifier();\n }\n parseBindingElement(flags, decorators) {\n const startLoc = decorators.length ? null : this.state.startLoc;\n const modified = {};\n this.tsParseModifiers({\n allowedModifiers: [\"public\", \"private\", \"protected\", \"override\", \"readonly\"]\n }, modified);\n const accessibility = modified.accessibility;\n const override = modified.override;\n const readonly = modified.readonly;\n if (!(flags & 4) && (accessibility || readonly || override)) {\n this.raise(TSErrors.UnexpectedParameterModifier, startLoc || decorators[0]);\n }\n const startLoc2 = this.state.startLoc;\n const left = this.parseMaybeDefault(startLoc2);\n if (flags & 2) {\n this.parseFunctionParamType(left);\n }\n const elt = this.parseMaybeDefault(startLoc2, left);\n if (accessibility || readonly || override) {\n const pp = startLoc ? this.startNodeAt(startLoc) : this.startNodeAtNode(decorators[0]);\n if (decorators.length) {\n pp.decorators = decorators;\n } else {\n this.setLoc(startLoc);\n }\n if (accessibility) pp.accessibility = accessibility;\n if (readonly) pp.readonly = readonly;\n if (override) pp.override = override;\n if (elt.type !== \"Identifier\" && elt.type !== \"AssignmentPattern\") {\n this.raise(TSErrors.UnsupportedParameterPropertyKind, startLoc || decorators[0]);\n }\n pp.parameter = elt;\n return this.finishNode(pp, \"TSParameterProperty\");\n }\n if (decorators.length) {\n left.decorators = decorators;\n }\n return elt;\n }\n isSimpleParameter(node) {\n return node.type === \"TSParameterProperty\" && super.isSimpleParameter(node.parameter) || super.isSimpleParameter(node);\n }\n tsDisallowOptionalPattern(node) {\n for (const param of node.params) {\n if (param.type !== \"Identifier\" && param.optional && !this.state.isAmbientContext) {\n this.raise(TSErrors.PatternIsOptional, param);\n }\n }\n }\n setArrowFunctionParameters(node, params, trailingCommaLoc) {\n super.setArrowFunctionParameters(node, params, trailingCommaLoc);\n this.tsDisallowOptionalPattern(node);\n }\n parseFunctionBodyAndFinish(node, type, isMethod = false) {\n if (this.match(10)) {\n node.returnType = this.tsParseTypeOrTypePredicateAnnotation(10);\n }\n const bodilessType = type === \"FunctionDeclaration\" ? \"TSDeclareFunction\" : type === \"ClassMethod\" || type === \"ClassPrivateMethod\" ? \"TSDeclareMethod\" : undefined;\n if (bodilessType && !this.match(2) && this.isLineTerminator()) {\n if (bodilessType === \"TSDeclareMethod\" && node.kind === \"constructor\") {\n for (const param of node.params) {\n if (param.type === \"TSParameterProperty\") {\n this.raise(TSErrors.UnexpectedParameterModifier, param);\n } else if (param.type === \"AssignmentPattern\") {\n this.raise(TSErrors.UnexpectedParameterInitializer, param);\n }\n }\n } else {\n for (const param of node.params) {\n if (param.type === \"AssignmentPattern\") {\n this.raise(TSErrors.UnexpectedParameterInitializer, param);\n }\n }\n }\n return this.finishNode(node, bodilessType);\n }\n if (bodilessType && this.state.isAmbientContext) {\n this.raise(TSErrors.DeclareFunctionHasImplementation, this.state.startLoc);\n if (bodilessType === \"TSDeclareFunction\" && node.declare) {\n return super.parseFunctionBodyAndFinish(node, bodilessType, isMethod);\n }\n }\n this.tsDisallowOptionalPattern(node);\n return super.parseFunctionBodyAndFinish(node, type, isMethod);\n }\n registerFunctionStatementId(node) {\n if (!node.body && node.id) {\n this.checkIdentifier(node.id, 1024);\n } else {\n super.registerFunctionStatementId(node);\n }\n }\n tsCheckForInvalidTypeCasts(items) {\n items.forEach(node => {\n if (node?.type === \"TSTypeCastExpression\") {\n this.raise(TSErrors.UnexpectedTypeAnnotation, node.typeAnnotation);\n }\n });\n }\n toReferencedList(exprList, isInParens) {\n this.tsCheckForInvalidTypeCasts(exprList);\n return exprList;\n }\n parseArrayLike(close, refExpressionErrors) {\n const node = super.parseArrayLike(close, refExpressionErrors);\n if (node.type === \"ArrayExpression\") {\n this.tsCheckForInvalidTypeCasts(node.elements);\n }\n return node;\n }\n parseSubscript(base, startLoc, noCalls, state) {\n if (!this.hasPrecedingLineBreak() && this.match(31)) {\n this.state.canStartJSXElement = false;\n this.next();\n const nonNullExpression = this.startNodeAt(startLoc);\n nonNullExpression.expression = base;\n return this.finishNode(nonNullExpression, \"TSNonNullExpression\");\n }\n let isOptionalCall = false;\n if (this.match(14) && this.lookaheadCharCode() === 60) {\n if (noCalls) {\n state.stop = true;\n return base;\n }\n state.optionalChainMember = isOptionalCall = true;\n this.next();\n }\n if (this.match(43) || this.match(47)) {\n let missingParenErrorLoc;\n const result = this.tsTryParseAndCatch(() => {\n if (!noCalls && this.atPossibleAsyncArrow(base)) {\n const asyncArrowFn = this.tsTryParseGenericAsyncArrowFunction(startLoc);\n if (asyncArrowFn) {\n state.stop = true;\n return asyncArrowFn;\n }\n }\n const typeArguments = this.tsParseTypeArgumentsInExpression();\n if (!typeArguments) return;\n if (isOptionalCall && !this.match(6)) {\n missingParenErrorLoc = this.state.curPosition();\n return;\n }\n if (tokenIsTemplate(this.state.type)) {\n const result = super.parseTaggedTemplateExpression(base, startLoc, state);\n result.typeArguments = typeArguments;\n return result;\n }\n if (!noCalls && this.eat(6)) {\n const node = this.startNodeAt(startLoc);\n node.callee = base;\n node.arguments = this.parseCallExpressionArguments();\n this.tsCheckForInvalidTypeCasts(node.arguments);\n node.typeArguments = typeArguments;\n if (state.optionalChainMember) {\n node.optional = isOptionalCall;\n }\n return this.finishCallExpression(node, state.optionalChainMember);\n }\n const tokenType = this.state.type;\n if (tokenType === 44 || tokenType === 48 || tokenType !== 6 && tokenType !== 89 && tokenType !== 116 && tokenCanStartExpression(tokenType) && !this.hasPrecedingLineBreak()) {\n return;\n }\n const node = this.startNodeAt(startLoc);\n node.expression = base;\n node.typeArguments = typeArguments;\n return this.finishNode(node, \"TSInstantiationExpression\");\n });\n if (missingParenErrorLoc) {\n this.unexpected(missingParenErrorLoc, 6);\n }\n if (result) {\n if (result.type === \"TSInstantiationExpression\") {\n if (this.match(12) || this.match(14) && this.lookaheadCharCode() !== 40) {\n this.raise(TSErrors.InvalidPropertyAccessAfterInstantiationExpression, this.state.startLoc);\n }\n if (!this.match(12) && !this.match(14)) {\n result.expression = super.stopParseSubscript(base, state);\n }\n }\n return result;\n }\n }\n return super.parseSubscript(base, startLoc, noCalls, state);\n }\n parseNewCallee(node) {\n super.parseNewCallee(node);\n const {\n callee\n } = node;\n if (callee.type === \"TSInstantiationExpression\" && !callee.extra?.parenthesized) {\n node.typeArguments = callee.typeArguments;\n node.callee = callee.expression;\n }\n }\n parseExprOp(left, leftStartLoc, minPrec) {\n let isSatisfies;\n if (tokenOperatorPrecedence(54) > minPrec && !this.hasPrecedingLineBreak() && (this.isContextual(89) || (isSatisfies = this.isContextual(116)))) {\n const node = this.startNodeAt(leftStartLoc);\n node.expression = left;\n node.typeAnnotation = this.tsInType(() => {\n this.next();\n if (this.match(71)) {\n if (isSatisfies) {\n this.raise(Errors.UnexpectedKeyword, this.state.startLoc, {\n keyword: \"const\"\n });\n }\n return this.tsParseTypeReference();\n }\n return this.tsParseType();\n });\n const result = this.finishNode(node, isSatisfies ? \"TSSatisfiesExpression\" : \"TSAsExpression\");\n this.reScan_lt_gt();\n return this.parseExprOp(result, leftStartLoc, minPrec);\n }\n return super.parseExprOp(left, leftStartLoc, minPrec);\n }\n checkReservedWord(word, startLoc, checkKeywords, isBinding) {\n if (!this.state.isAmbientContext) {\n super.checkReservedWord(word, startLoc, checkKeywords, isBinding);\n }\n }\n checkDuplicateExports() {}\n isPotentialImportPhase(isExport) {\n if (super.isPotentialImportPhase(isExport)) return true;\n if (this.isContextual(126)) {\n const ch = this.lookaheadCharCode();\n return isExport ? ch === 123 || ch === 42 : ch !== 61;\n }\n return !isExport && this.isContextual(83);\n }\n applyImportPhase(node, isExport, phase, loc) {\n super.applyImportPhase(node, isExport, phase, loc);\n if (isExport) {\n node.exportKind = phase === \"type\" ? \"type\" : \"value\";\n } else {\n node.importKind = phase === \"type\" || phase === \"typeof\" ? phase : \"value\";\n }\n }\n parseImport(node) {\n if (this.match(130)) {\n node.importKind = \"value\";\n if (this.scope.inTSNamespace) {\n this.raise(TSErrors.ImportInTSNamespace, node);\n }\n return super.parseImport(node);\n }\n let importNode;\n if (tokenIsIdentifier(this.state.type) && this.lookaheadCharCode() === 61) {\n node.importKind = \"value\";\n const result = this.tsParseImportEqualsDeclaration(node);\n if (this.scope.inTSNamespace && result.moduleReference.type === \"TSExternalModuleReference\") {\n this.raise(TSErrors.ImportInTSNamespace, node);\n }\n return result;\n } else if (this.isContextual(126)) {\n const maybeDefaultIdentifier = this.parseMaybeImportPhase(node, false);\n if (this.lookaheadCharCode() === 61) {\n if (this.scope.inTSNamespace) {\n this.raise(TSErrors.ImportInTSNamespace, node);\n }\n return this.tsParseImportEqualsDeclaration(node, maybeDefaultIdentifier);\n } else {\n importNode = super.parseImportSpecifiersAndAfter(node, maybeDefaultIdentifier);\n }\n } else {\n importNode = super.parseImport(node);\n }\n if (importNode.importKind === \"type\" && importNode.specifiers.length > 1 && importNode.specifiers[0].type === \"ImportDefaultSpecifier\") {\n this.raise(TSErrors.TypeImportCannotSpecifyDefaultAndNamed, importNode);\n } else if (this.scope.inTSNamespace) {\n this.raise(TSErrors.ImportInTSNamespace, importNode);\n }\n return importNode;\n }\n parseExport(node, decorators) {\n if (this.match(79)) {\n const nodeImportEquals = this.startNode();\n this.next();\n let maybeDefaultIdentifier = null;\n if (this.isContextual(126) && this.isPotentialImportPhase(false)) {\n maybeDefaultIdentifier = this.parseMaybeImportPhase(nodeImportEquals, false);\n } else {\n nodeImportEquals.importKind = \"value\";\n }\n const declaration = this.tsParseImportEqualsDeclaration(nodeImportEquals, maybeDefaultIdentifier);\n node.attributes = [];\n node.declaration = declaration;\n node.exportKind = \"value\";\n node.source = null;\n node.specifiers = [];\n return this.finishNode(node, \"ExportNamedDeclaration\");\n } else if (this.eat(25)) {\n const assign = node;\n assign.expression = super.parseExpression();\n this.semicolon();\n this.sawUnambiguousESM = true;\n if (this.scope.inTSNamespace) {\n this.raise(TSErrors.ExportAssignmentInTSNamespace, assign);\n }\n return this.finishNode(assign, \"TSExportAssignment\");\n } else if (this.eatContextual(89)) {\n const decl = node;\n this.expectContextual(124);\n decl.id = this.parseIdentifier();\n this.checkIdentifier(decl.id, 8201);\n this.semicolon();\n if (this.scope.inTSNamespace) {\n this.raise(TSErrors.NamespaceExportInTSNamespace, decl);\n }\n return this.finishNode(decl, \"TSNamespaceExportDeclaration\");\n } else {\n const result = super.parseExport(node, decorators);\n if (this.scope.inTSNamespace && (result.type !== \"ExportNamedDeclaration\" || result.source || !result.declaration && !this.state.isAmbientContext)) {\n this.raise(TSErrors.ExportInTSNamespace, result);\n }\n return result;\n }\n }\n isAbstractClass() {\n return this.isContextual(120) && this.isLookaheadContextual(\"class\");\n }\n parseExportDefaultExpression() {\n if (this.isAbstractClass()) {\n const cls = this.startNode();\n this.next();\n cls.abstract = true;\n return this.parseClass(cls, true, true);\n }\n if (this.match(125)) {\n const result = this.tsParseInterfaceDeclaration(this.startNode());\n if (result) return result;\n }\n return super.parseExportDefaultExpression();\n }\n parseVarStatement(node, kind, allowMissingInitializer = false) {\n const {\n isAmbientContext\n } = this.state;\n const declaration = super.parseVarStatement(node, kind, allowMissingInitializer || isAmbientContext);\n if (!isAmbientContext) return declaration;\n if (!node.declare && (kind === \"using\" || kind === \"await using\")) {\n this.raiseOverwrite(TSErrors.UsingDeclarationInAmbientContext, node, kind);\n return declaration;\n }\n for (const {\n id,\n init\n } of declaration.declarations) {\n if (!init) continue;\n if (kind === \"var\" || kind === \"let\" || !!id.typeAnnotation) {\n this.raise(TSErrors.InitializerNotAllowedInAmbientContext, init);\n } else if (!isValidAmbientConstInitializer(init, this.hasPlugin(\"estree\"))) {\n this.raise(TSErrors.ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference, init);\n }\n }\n return declaration;\n }\n parseStatementContent(flags, decorators) {\n const allowDeclaration = !!(flags & 2);\n if (!this.state.containsEsc) {\n switch (this.state.type) {\n case 71:\n {\n if (this.isLookaheadContextual(\"enum\")) {\n const node = this.startNode();\n this.next();\n return this.tsParseEnumDeclaration(node, {\n const: true\n });\n }\n break;\n }\n case 120:\n case 121:\n {\n if (this.nextTokenIsIdentifierAndNotTSRelationalOperatorOnSameLine()) {\n const token = this.state.type;\n const node = this.startNode();\n this.next();\n const declaration = token === 121 ? this.tsTryParseDeclare(node) : this.tsParseAbstractDeclaration(node, decorators);\n if (declaration) {\n if (token === 121) {\n declaration.declare = true;\n }\n return declaration;\n } else {\n node.expression = this.createIdentifier(this.startNodeAtNode(node), token === 121 ? \"declare\" : \"abstract\");\n this.semicolon(false);\n return this.finishNode(node, \"ExpressionStatement\");\n }\n }\n break;\n }\n case 122:\n return this.tsParseEnumDeclaration(this.startNode());\n case 108:\n {\n const nextCh = this.lookaheadCharCode();\n if (nextCh === 123) {\n const node = this.startNode();\n return this.tsParseAmbientExternalModuleDeclaration(node);\n }\n break;\n }\n case 125:\n {\n const result = this.tsParseInterfaceDeclaration(this.startNode());\n if (result) {\n if (!allowDeclaration) {\n this.raise(TSErrors.UnexpectedTypeDeclaration, result, \"interface\");\n }\n return result;\n }\n break;\n }\n case 123:\n {\n if (this.nextTokenIsStringLiteralOnSameLine()) {\n const node = this.startNode();\n this.next();\n return this.tsParseDeclaration(node, 123, false, decorators);\n } else if (this.nextTokenIsIdentifierOnSameLine()) {\n this.raise(TSErrors.InlineModuleDeclarationMustUseString, this.state.startLoc);\n const node = this.startNode();\n this.next();\n return this.tsParseDeclaration(node, 124, false, decorators);\n }\n break;\n }\n case 124:\n {\n if (this.nextTokenIsIdentifierOnSameLine()) {\n const node = this.startNode();\n this.next();\n return this.tsParseDeclaration(node, 124, false, decorators);\n }\n break;\n }\n case 126:\n {\n if (this.nextTokenIsIdentifierOnSameLine()) {\n const node = this.startNode();\n if (!allowDeclaration) {\n this.raise(TSErrors.UnexpectedTypeDeclaration, node, \"type\");\n }\n this.next();\n return this.tsParseTypeAliasDeclaration(node);\n }\n break;\n }\n }\n }\n return super.parseStatementContent(flags, decorators);\n }\n parseAccessModifier() {\n return this.tsParseModifier([\"public\", \"protected\", \"private\"]);\n }\n tsHasSomeModifiers(member, modifiers) {\n return modifiers.some(modifier => {\n if (tsIsAccessModifier(modifier)) {\n return member.accessibility === modifier;\n }\n return !!member[modifier];\n });\n }\n tsIsStartOfStaticBlocks() {\n return this.isContextual(102) && this.lookaheadCharCode() === 123;\n }\n parseClassMember(classBody, member, state) {\n const modifiers = [\"declare\", \"private\", \"public\", \"protected\", \"override\", \"abstract\", \"readonly\", \"static\"];\n this.tsParseModifiers({\n allowedModifiers: modifiers,\n disallowedModifiers: [\"in\", \"out\"],\n stopOnStartOfClassStaticBlock: true,\n errorTemplate: TSErrors.InvalidModifierOnTypeParameterPositions\n }, member);\n const callParseClassMemberWithIsStatic = () => {\n if (this.tsIsStartOfStaticBlocks()) {\n this.next();\n this.next();\n if (this.tsHasSomeModifiers(member, modifiers)) {\n this.raise(TSErrors.StaticBlockCannotHaveModifier, this.state.curPosition());\n }\n super.parseClassStaticBlock(classBody, member);\n } else {\n this.parseClassMemberWithIsStatic(classBody, member, state, !!member.static);\n }\n };\n if (member.declare) {\n this.tsInAmbientContext(callParseClassMemberWithIsStatic);\n } else {\n callParseClassMemberWithIsStatic();\n }\n if (member.decorators && member.decorators.length > 0 && !this.hasPlugin(\"decorators-legacy\")) {\n if (member.type === \"TSAbstractMethodDefinition\" || member.type === \"TSDeclareMethod\") {\n this.raise(TSErrors.DecoratorAbstractMethod, member, {\n kind: \"abstract method\"\n });\n } else if (member.type === \"ClassProperty\" && member.abstract || member.type === \"ClassProperty\" && member.declare || member.type === \"TSAbstractPropertyDefinition\" || member.type === \"PropertyDefinition\" && member.declare) {\n this.raise(TSErrors.DecoratorAbstractMethod, member, {\n kind: member.declare ? \"declare field\" : \"abstract field\"\n });\n }\n }\n }\n parseClassMemberWithIsStatic(classBody, member, state, isStatic) {\n const idx = this.tsTryParseIndexSignature(member);\n if (idx) {\n classBody.body.push(idx);\n if (member.abstract) {\n this.raise(TSErrors.IndexSignatureHasAbstract, member);\n }\n if (member.accessibility) {\n this.raise(TSErrors.IndexSignatureHasAccessibility, member, {\n modifier: member.accessibility\n });\n }\n if (member.declare) {\n this.raise(TSErrors.IndexSignatureHasDeclare, member);\n }\n if (member.override) {\n this.raise(TSErrors.IndexSignatureHasOverride, member);\n }\n return;\n }\n if (!this.state.inAbstractClass && member.abstract) {\n this.raise(TSErrors.NonAbstractClassHasAbstractMethod, member);\n }\n if (member.override) {\n if (!state.hadSuperClass) {\n this.raise(TSErrors.OverrideNotInSubClass, member);\n }\n }\n super.parseClassMemberWithIsStatic(classBody, member, state, isStatic);\n }\n parsePostMemberNameModifiers(methodOrProp) {\n const optional = this.eat(13);\n if (optional) methodOrProp.optional = true;\n if (methodOrProp.readonly && this.match(6)) {\n this.raise(TSErrors.ClassMethodHasReadonly, methodOrProp);\n }\n if (methodOrProp.declare && this.match(6)) {\n this.raise(TSErrors.ClassMethodHasDeclare, methodOrProp);\n }\n }\n shouldParseExportDeclaration() {\n if (this.tsIsDeclarationStart()) return true;\n return super.shouldParseExportDeclaration();\n }\n parseConditional(expr, startLoc, refExpressionErrors) {\n if (!this.match(13)) return expr;\n if (refExpressionErrors != null) {\n const nextCh = this.lookaheadCharCode();\n if (nextCh === 44 || nextCh === 61 || nextCh === 58 || nextCh === 41) {\n this.setOptionalParametersError(refExpressionErrors);\n return expr;\n }\n }\n this.next();\n const node = this.startNodeAt(startLoc);\n node.test = expr;\n const oldInConditionalConsequent = this.state.inConditionalConsequent;\n this.state.inConditionalConsequent = true;\n node.consequent = this.parseMaybeAssignAllowIn();\n this.state.inConditionalConsequent = oldInConditionalConsequent;\n this.expect(10);\n node.alternate = this.parseMaybeAssign();\n return this.finishNode(node, \"ConditionalExpression\");\n }\n parseParenItem(node, startLoc) {\n const newNode = super.parseParenItem(node, startLoc);\n if (this.eat(13)) {\n newNode.optional = true;\n this.resetEndLocation(node);\n }\n if (this.match(10)) {\n const typeCastNode = this.startNodeAt(startLoc);\n typeCastNode.expression = node;\n typeCastNode.typeAnnotation = this.tsParseTypeAnnotation();\n return this.finishNode(typeCastNode, \"TSTypeCastExpression\");\n }\n return node;\n }\n parseExportDeclaration(node) {\n if (!this.state.isAmbientContext && this.isContextual(121)) {\n return this.tsInAmbientContext(() => this.parseExportDeclaration(node));\n }\n const startLoc = this.state.startLoc;\n const isDeclare = this.eatContextual(121);\n if (isDeclare && (this.isContextual(121) || !this.shouldParseExportDeclaration())) {\n throw this.raise(TSErrors.ExpectedAmbientAfterExportDeclare, this.state.startLoc);\n }\n const isIdentifier = tokenIsIdentifier(this.state.type);\n const declaration = isIdentifier && this.tsTryParseExportDeclaration() || super.parseExportDeclaration(node);\n if (!declaration) return null;\n if (declaration.type === \"TSInterfaceDeclaration\" || declaration.type === \"TSTypeAliasDeclaration\" || isDeclare) {\n node.exportKind = \"type\";\n }\n if (isDeclare && declaration.type !== \"TSImportEqualsDeclaration\") {\n this.resetStartLocation(declaration, startLoc);\n declaration.declare = true;\n }\n return declaration;\n }\n parseClassId(node, isStatement, optionalId, bindingType) {\n if ((!isStatement || optionalId) && this.isContextual(109)) {\n node.id = null;\n return;\n }\n super.parseClassId(node, isStatement, optionalId, node.declare ? 1024 : 8331);\n const typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers);\n if (typeParameters) node.typeParameters = typeParameters;\n }\n parseClassPropertyAnnotation(node) {\n if (!node.optional) {\n if (this.eat(31)) {\n node.definite = true;\n } else if (this.eat(13)) {\n node.optional = true;\n }\n }\n const type = this.tsTryParseTypeAnnotation();\n if (type) node.typeAnnotation = type;\n }\n parseClassProperty(node) {\n this.parseClassPropertyAnnotation(node);\n if (this.state.isAmbientContext && !(node.readonly && !node.typeAnnotation) && this.match(25)) {\n this.raise(TSErrors.DeclareClassFieldHasInitializer, this.state.startLoc);\n }\n if (node.abstract && this.match(25)) {\n const {\n key\n } = node;\n this.raise(TSErrors.AbstractPropertyHasInitializer, this.state.startLoc, {\n propertyName: key.type === \"Identifier\" && !node.computed ? key.name : `[${this.input.slice(this.offsetToSourcePos(key.start), this.offsetToSourcePos(key.end))}]`\n });\n }\n return super.parseClassProperty(node);\n }\n parseClassPrivateProperty(node) {\n if (node.abstract) {\n this.raise(TSErrors.PrivateElementHasAbstract, node);\n }\n if (node.accessibility) {\n this.raise(TSErrors.PrivateElementHasAccessibility, node, {\n modifier: node.accessibility\n });\n }\n this.parseClassPropertyAnnotation(node);\n return super.parseClassPrivateProperty(node);\n }\n parseClassAccessorProperty(node) {\n this.parseClassPropertyAnnotation(node);\n if (node.optional) {\n this.raise(TSErrors.AccessorCannotBeOptional, node);\n }\n return super.parseClassAccessorProperty(node);\n }\n pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) {\n const typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier);\n if (typeParameters && isConstructor) {\n this.raise(TSErrors.ConstructorHasTypeParameters, typeParameters);\n }\n const {\n declare = false,\n kind\n } = method;\n if (declare && (kind === \"get\" || kind === \"set\")) {\n this.raise(TSErrors.DeclareAccessor, method, {\n kind\n });\n }\n if (typeParameters) method.typeParameters = typeParameters;\n super.pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper);\n }\n pushClassPrivateMethod(classBody, method, isGenerator, isAsync) {\n const typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier);\n if (typeParameters) method.typeParameters = typeParameters;\n super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync);\n }\n declareClassPrivateMethodInScope(node, kind) {\n if (node.type === \"TSDeclareMethod\") return;\n if (node.type === \"MethodDefinition\" && node.value.body == null) {\n return;\n }\n super.declareClassPrivateMethodInScope(node, kind);\n }\n parseClassSuper(node) {\n super.parseClassSuper(node);\n if (node.superClass) {\n if (node.superClass.type === \"TSInstantiationExpression\") {\n const tsInstantiationExpression = node.superClass;\n const superClass = tsInstantiationExpression.expression;\n this.takeSurroundingComments(superClass, superClass.start, superClass.end);\n const superTypeArguments = tsInstantiationExpression.typeArguments;\n this.takeSurroundingComments(superTypeArguments, superTypeArguments.start, superTypeArguments.end);\n node.superClass = superClass;\n node.superTypeArguments = superTypeArguments;\n } else if (this.match(43) || this.match(47)) {\n node.superTypeArguments = this.tsParseTypeArgumentsInExpression();\n }\n }\n if (this.eatContextual(109)) {\n node.implements = this.tsParseHeritageClause(\"implements\");\n }\n }\n parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors) {\n const typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier);\n if (typeParameters) prop.typeParameters = typeParameters;\n return super.parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors);\n }\n parseFunctionParams(node, isConstructor) {\n const typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier);\n if (typeParameters) node.typeParameters = typeParameters;\n super.parseFunctionParams(node, isConstructor);\n }\n parseVarId(decl, kind) {\n super.parseVarId(decl, kind);\n if (decl.id.type === \"Identifier\" && !this.hasPrecedingLineBreak() && this.eat(31)) {\n decl.definite = true;\n }\n const type = this.tsTryParseTypeAnnotation();\n if (type) {\n decl.id.typeAnnotation = type;\n this.resetEndLocation(decl.id);\n }\n }\n parseAsyncArrowFromCallExpression(node, call) {\n if (this.match(10)) {\n node.returnType = this.tsParseTypeAnnotation();\n }\n return super.parseAsyncArrowFromCallExpression(node, call);\n }\n parseMaybeAssign(refExpressionErrors, afterLeftParse) {\n let state;\n let jsx;\n let typeCast;\n if (this.hasPlugin(\"jsx\") && (this.match(138) || this.match(43))) {\n state = this.state.clone();\n jsx = this.tryParse(() => super.parseMaybeAssign(refExpressionErrors, afterLeftParse), state);\n if (!jsx.error) return jsx.node;\n const {\n context\n } = this.state;\n const currentContext = context[context.length - 1];\n if (currentContext === types.j_oTag || currentContext === types.j_expr) {\n context.pop();\n }\n }\n if (!jsx?.error && !this.match(43)) {\n return super.parseMaybeAssign(refExpressionErrors, afterLeftParse);\n }\n if (!state || state === this.state) state = this.state.clone();\n let typeParameters;\n const arrow = this.tryParse(abort => {\n typeParameters = this.tsParseTypeParameters(this.tsParseConstModifier);\n const expr = super.parseMaybeAssign(refExpressionErrors, afterLeftParse);\n if (expr.type !== \"ArrowFunctionExpression\" || expr.extra?.parenthesized) {\n abort();\n }\n if (typeParameters?.params.length !== 0) {\n this.resetStartLocationFromNode(expr, typeParameters);\n }\n expr.typeParameters = typeParameters;\n if (this.hasPlugin(\"jsx\") && expr.typeParameters.params.length === 1 && !expr.typeParameters.extra?.trailingComma) {\n const parameter = expr.typeParameters.params[0];\n if (!parameter.constraint) {\n this.raise(TSErrors.SingleTypeParameterWithoutTrailingComma, this.optionFlags & 256 ? createPositionWithColumnOffset(parameter.loc.end, 1) : parameter, {\n typeParameterName: parameter.name.name\n });\n }\n }\n return expr;\n }, state);\n if (!arrow.error && !arrow.aborted) {\n if (typeParameters) this.reportReservedArrowTypeParam(typeParameters);\n return arrow.node;\n }\n if (!jsx) {\n assert(!this.hasPlugin(\"jsx\"));\n typeCast = this.tryParse(() => super.parseMaybeAssign(refExpressionErrors, afterLeftParse), state);\n if (!typeCast.error) return typeCast.node;\n }\n if (jsx?.node) {\n this.state = jsx.failState;\n return jsx.node;\n }\n if (arrow.node) {\n this.state = arrow.failState;\n if (typeParameters) this.reportReservedArrowTypeParam(typeParameters);\n return arrow.node;\n }\n if (typeCast?.node) {\n this.state = typeCast.failState;\n return typeCast.node;\n }\n throw jsx?.error || arrow.error || typeCast?.error;\n }\n reportReservedArrowTypeParam(node) {\n if (node.params.length === 1 && !node.params[0].constraint && !node.extra?.trailingComma && this.getPluginOption(\"typescript\", \"disallowAmbiguousJSXLike\")) {\n this.raise(TSErrors.ReservedArrowTypeParam, node);\n }\n }\n parseMaybeUnary(refExpressionErrors, sawUnary) {\n if (!this.hasPlugin(\"jsx\") && this.match(43)) {\n return this.tsParseTypeAssertion();\n }\n return super.parseMaybeUnary(refExpressionErrors, sawUnary);\n }\n parseArrow(node) {\n if (this.match(10)) {\n const result = this.tryParse(abort => {\n const returnType = this.tsParseTypeOrTypePredicateAnnotation(10);\n if (this.canInsertSemicolon() || !this.match(15)) abort();\n return returnType;\n });\n if (result.aborted) return;\n if (!result.thrown) {\n if (result.error) this.state = result.failState;\n node.returnType = result.node;\n }\n }\n return super.parseArrow(node);\n }\n parseFunctionParamType(param) {\n if (this.eat(13)) {\n param.optional = true;\n }\n const type = this.tsTryParseTypeAnnotation();\n if (type) param.typeAnnotation = type;\n this.resetEndLocation(param);\n return param;\n }\n isAssignable(node, isBinding) {\n switch (node.type) {\n case \"TSTypeCastExpression\":\n return this.isAssignable(node.expression, isBinding);\n case \"TSParameterProperty\":\n return true;\n default:\n return super.isAssignable(node, isBinding);\n }\n }\n toAssignable(node, isLHS = false) {\n switch (node.type) {\n case \"ParenthesizedExpression\":\n this.toAssignableParenthesizedExpression(node, isLHS);\n break;\n case \"TSAsExpression\":\n case \"TSSatisfiesExpression\":\n case \"TSNonNullExpression\":\n case \"TSTypeAssertion\":\n if (isLHS) {\n this.expressionScope.recordArrowParameterBindingError(TSErrors.UnexpectedTypeCastInParameter, node);\n } else {\n this.raise(TSErrors.UnexpectedTypeCastInParameter, node);\n }\n this.toAssignable(node.expression, isLHS);\n break;\n case \"AssignmentExpression\":\n if (!isLHS && node.left.type === \"TSTypeCastExpression\") {\n node.left = this.typeCastToParameter(node.left);\n }\n default:\n super.toAssignable(node, isLHS);\n }\n }\n toAssignableParenthesizedExpression(node, isLHS) {\n switch (node.expression.type) {\n case \"TSAsExpression\":\n case \"TSSatisfiesExpression\":\n case \"TSNonNullExpression\":\n case \"TSTypeAssertion\":\n case \"ParenthesizedExpression\":\n this.toAssignable(node.expression, isLHS);\n break;\n default:\n super.toAssignable(node, isLHS);\n }\n }\n checkToRestConversion(node, allowPattern) {\n switch (node.type) {\n case \"TSAsExpression\":\n case \"TSSatisfiesExpression\":\n case \"TSTypeAssertion\":\n case \"TSNonNullExpression\":\n this.checkToRestConversion(node.expression, false);\n break;\n default:\n super.checkToRestConversion(node, allowPattern);\n }\n }\n isValidLVal(type, disallowCallExpression, isUnparenthesizedInAssign, binding) {\n switch (type) {\n case \"TSTypeCastExpression\":\n return true;\n case \"TSParameterProperty\":\n return \"parameter\";\n case \"TSNonNullExpression\":\n return \"expression\";\n case \"TSAsExpression\":\n case \"TSSatisfiesExpression\":\n case \"TSTypeAssertion\":\n return (binding !== 64 || !isUnparenthesizedInAssign) && [\"expression\", true];\n default:\n return super.isValidLVal(type, disallowCallExpression, isUnparenthesizedInAssign, binding);\n }\n }\n parseBindingAtom() {\n if (this.state.type === 74) {\n return this.parseIdentifier(true);\n }\n return super.parseBindingAtom();\n }\n parseMaybeDecoratorArguments(expr, startLoc) {\n if (this.match(43) || this.match(47)) {\n const typeArguments = this.tsParseTypeArgumentsInExpression();\n if (this.match(6)) {\n const call = super.parseMaybeDecoratorArguments(expr, startLoc);\n call.typeArguments = typeArguments;\n return call;\n }\n this.unexpected(null, 6);\n }\n return super.parseMaybeDecoratorArguments(expr, startLoc);\n }\n checkCommaAfterRest(close) {\n if (this.state.isAmbientContext && this.match(8) && this.lookaheadCharCode() === close) {\n this.next();\n return false;\n }\n return super.checkCommaAfterRest(close);\n }\n isClassMethod() {\n return this.match(43) || super.isClassMethod();\n }\n isClassProperty() {\n return this.match(31) || this.match(10) || super.isClassProperty();\n }\n parseMaybeDefault(startLoc, left) {\n const node = super.parseMaybeDefault(startLoc, left);\n if (node.type === \"AssignmentPattern\" && node.typeAnnotation && node.right.start < node.typeAnnotation.start) {\n this.raise(TSErrors.TypeAnnotationAfterAssign, node.typeAnnotation);\n }\n return node;\n }\n getTokenFromCode(code) {\n if (this.state.inType) {\n if (code === 62) {\n this.finishOp(44, 1);\n return;\n }\n if (code === 60) {\n this.finishOp(43, 1);\n return;\n }\n }\n super.getTokenFromCode(code);\n }\n reScan_lt_gt() {\n const {\n type\n } = this.state;\n if (type === 43) {\n this.state.pos -= 1;\n this.readToken_lt();\n } else if (type === 44) {\n this.state.pos -= 1;\n this.readToken_gt();\n }\n }\n reScan_lt() {\n const {\n type\n } = this.state;\n if (type === 47) {\n this.state.pos -= 2;\n this.finishOp(43, 1);\n return 43;\n }\n return type;\n }\n toAssignableListItem(exprList, index, isLHS) {\n const node = exprList[index];\n if (node.type === \"TSTypeCastExpression\") {\n exprList[index] = this.typeCastToParameter(node);\n }\n super.toAssignableListItem(exprList, index, isLHS);\n }\n typeCastToParameter(node) {\n node.expression.typeAnnotation = node.typeAnnotation;\n this.resetEndLocationFromNode(node.expression, node.typeAnnotation);\n return node.expression;\n }\n shouldParseArrow(params) {\n if (this.match(10)) {\n return params.every(expr => this.isAssignable(expr, true));\n }\n return super.shouldParseArrow(params);\n }\n shouldParseAsyncArrow() {\n if (this.match(10)) {\n if (this.state.inConditionalConsequent) return false;\n return true;\n }\n return super.shouldParseAsyncArrow();\n }\n parseParenAndDistinguishExpression(canStartArrow) {\n const oldInConditionalConsequent = this.state.inConditionalConsequent;\n this.state.inConditionalConsequent = false;\n const result = super.parseParenAndDistinguishExpression(canStartArrow);\n this.state.inConditionalConsequent = oldInConditionalConsequent;\n return result;\n }\n canHaveLeadingDecorator() {\n return super.canHaveLeadingDecorator() || this.isAbstractClass();\n }\n jsxParseOpeningElementAfterName(node) {\n if (this.match(43) || this.match(47)) {\n const typeArguments = this.tsTryParseAndCatch(() => this.tsParseTypeArgumentsInExpression());\n if (typeArguments) {\n node.typeArguments = typeArguments;\n }\n }\n return super.jsxParseOpeningElementAfterName(node);\n }\n getGetterSetterExpectedParamCount(method) {\n const baseCount = super.getGetterSetterExpectedParamCount(method);\n const params = this.getObjectOrClassMethodParams(method);\n const firstParam = params[0];\n const hasContextParam = firstParam && this.isThisParam(firstParam);\n return hasContextParam ? baseCount + 1 : baseCount;\n }\n parseCatchClauseParam() {\n const param = super.parseCatchClauseParam();\n const type = this.tsTryParseTypeAnnotation();\n if (type) {\n param.typeAnnotation = type;\n this.resetEndLocation(param);\n }\n return param;\n }\n tsInAmbientContext(cb) {\n const {\n isAmbientContext: oldIsAmbientContext,\n strict: oldStrict\n } = this.state;\n this.state.isAmbientContext = true;\n this.state.strict = false;\n try {\n return cb();\n } finally {\n this.state.isAmbientContext = oldIsAmbientContext;\n this.state.strict = oldStrict;\n }\n }\n parseClass(node, isStatement, optionalId) {\n const oldInAbstractClass = this.state.inAbstractClass;\n this.state.inAbstractClass = !!node.abstract;\n try {\n return super.parseClass(node, isStatement, optionalId);\n } finally {\n this.state.inAbstractClass = oldInAbstractClass;\n }\n }\n tsParseAbstractDeclaration(node, decorators) {\n if (this.match(76)) {\n node.abstract = true;\n return this.maybeTakeDecorators(decorators, this.parseClass(node, true, false));\n } else if (this.isContextual(125)) {\n if (!this.hasFollowingLineBreak()) {\n node.abstract = true;\n this.raise(TSErrors.NonClassMethodPropertyHasAbstractModifier, node);\n return this.tsParseInterfaceDeclaration(node);\n } else {\n return null;\n }\n }\n throw this.unexpected(null, 76);\n }\n parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope) {\n const method = super.parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope);\n if (method.abstract || method.type === \"TSAbstractMethodDefinition\") {\n const hasEstreePlugin = this.hasPlugin(\"estree\");\n const methodFn = hasEstreePlugin ? method.value : method;\n if (methodFn.body) {\n const {\n key\n } = method;\n this.raise(TSErrors.AbstractMethodHasImplementation, method, {\n methodName: key.type === \"Identifier\" && !method.computed ? key.name : `[${this.input.slice(this.offsetToSourcePos(key.start), this.offsetToSourcePos(key.end))}]`\n });\n }\n }\n return method;\n }\n tsParseTypeParameterName() {\n return this.parseIdentifier();\n }\n shouldParseAsAmbientContext() {\n return !!this.getPluginOption(\"typescript\", \"dts\");\n }\n parse() {\n if (this.shouldParseAsAmbientContext()) {\n this.state.isAmbientContext = true;\n }\n return super.parse();\n }\n getExpression() {\n if (this.shouldParseAsAmbientContext()) {\n this.state.isAmbientContext = true;\n }\n return super.getExpression();\n }\n parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly) {\n if (!isString && isMaybeTypeOnly) {\n this.parseTypeOnlyImportExportSpecifier(node, false, isInTypeExport);\n return this.finishNode(node, \"ExportSpecifier\");\n }\n node.exportKind = \"value\";\n return super.parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly);\n }\n parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, bindingType) {\n if (!importedIsString && isMaybeTypeOnly) {\n this.parseTypeOnlyImportExportSpecifier(specifier, true, isInTypeOnlyImport);\n return this.finishNode(specifier, \"ImportSpecifier\");\n }\n specifier.importKind = \"value\";\n return super.parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, isInTypeOnlyImport ? 4098 : 4096);\n }\n parseTypeOnlyImportExportSpecifier(node, isImport, isInTypeOnlyImportExport) {\n const leftOfAsKey = isImport ? \"imported\" : \"local\";\n const rightOfAsKey = isImport ? \"local\" : \"exported\";\n let leftOfAs = node[leftOfAsKey];\n let rightOfAs;\n let hasTypeSpecifier = false;\n let canParseAsKeyword = true;\n const loc = leftOfAs.start;\n if (this.isContextual(89)) {\n const firstAs = this.parseIdentifier();\n if (this.isContextual(89)) {\n const secondAs = this.parseIdentifier();\n if (tokenIsKeywordOrIdentifier(this.state.type)) {\n hasTypeSpecifier = true;\n leftOfAs = firstAs;\n rightOfAs = isImport ? this.parseIdentifier() : this.parseModuleExportName();\n canParseAsKeyword = false;\n } else {\n rightOfAs = secondAs;\n canParseAsKeyword = false;\n }\n } else if (tokenIsKeywordOrIdentifier(this.state.type)) {\n canParseAsKeyword = false;\n rightOfAs = isImport ? this.parseIdentifier() : this.parseModuleExportName();\n } else {\n hasTypeSpecifier = true;\n leftOfAs = firstAs;\n }\n } else if (tokenIsKeywordOrIdentifier(this.state.type)) {\n hasTypeSpecifier = true;\n if (isImport) {\n leftOfAs = this.parseIdentifier(true);\n if (!this.isContextual(89)) {\n this.checkReservedWord(leftOfAs.name, leftOfAs.start, true, true);\n }\n } else {\n leftOfAs = this.parseModuleExportName();\n }\n }\n if (hasTypeSpecifier && isInTypeOnlyImportExport) {\n this.raise(isImport ? TSErrors.TypeModifierIsUsedInTypeImports : TSErrors.TypeModifierIsUsedInTypeExports, loc);\n }\n node[leftOfAsKey] = leftOfAs;\n node[rightOfAsKey] = rightOfAs;\n const kindKey = isImport ? \"importKind\" : \"exportKind\";\n node[kindKey] = hasTypeSpecifier ? \"type\" : \"value\";\n if (canParseAsKeyword && this.eatContextual(89)) {\n node[rightOfAsKey] = isImport ? this.parseIdentifier() : this.parseModuleExportName();\n }\n if (!node[rightOfAsKey]) {\n node[rightOfAsKey] = this.cloneIdentifier(node[leftOfAsKey]);\n }\n if (isImport) {\n this.checkIdentifier(node[rightOfAsKey], hasTypeSpecifier ? 4098 : 4096);\n }\n }\n fillOptionalPropertiesForTSESLint(node) {\n switch (node.type) {\n case \"ExpressionStatement\":\n node.directive ??= undefined;\n return;\n case \"RestElement\":\n node.value = undefined;\n case \"Identifier\":\n case \"ArrayPattern\":\n case \"AssignmentPattern\":\n case \"ObjectPattern\":\n node.decorators ??= [];\n node.optional ??= false;\n node.typeAnnotation ??= undefined;\n return;\n case \"TSParameterProperty\":\n node.accessibility ??= undefined;\n node.decorators ??= [];\n node.override ??= false;\n node.readonly ??= false;\n node.static ??= false;\n return;\n case \"TSEmptyBodyFunctionExpression\":\n node.body = null;\n case \"TSDeclareFunction\":\n case \"FunctionDeclaration\":\n case \"FunctionExpression\":\n case \"ClassMethod\":\n case \"ClassPrivateMethod\":\n node.declare ??= false;\n node.returnType ??= undefined;\n node.typeParameters ??= undefined;\n return;\n case \"Property\":\n node.optional ??= false;\n return;\n case \"TSMethodSignature\":\n case \"TSPropertySignature\":\n node.optional ??= false;\n case \"TSIndexSignature\":\n node.accessibility ??= undefined;\n node.readonly ??= false;\n node.static ??= false;\n return;\n case \"TSAbstractPropertyDefinition\":\n case \"PropertyDefinition\":\n case \"TSAbstractAccessorProperty\":\n case \"AccessorProperty\":\n node.declare ??= false;\n node.definite ??= false;\n node.readonly ??= false;\n node.typeAnnotation ??= undefined;\n case \"TSAbstractMethodDefinition\":\n case \"MethodDefinition\":\n node.accessibility ??= undefined;\n node.decorators ??= [];\n node.override ??= false;\n node.optional ??= false;\n return;\n case \"ClassExpression\":\n node.id ??= null;\n case \"ClassDeclaration\":\n node.abstract ??= false;\n node.declare ??= false;\n node.decorators ??= [];\n node.implements ??= [];\n node.superTypeArguments ??= undefined;\n node.typeParameters ??= undefined;\n return;\n case \"TSTypeAliasDeclaration\":\n case \"VariableDeclaration\":\n node.declare ??= false;\n return;\n case \"VariableDeclarator\":\n node.definite ??= false;\n return;\n case \"TSEnumDeclaration\":\n node.const ??= false;\n node.declare ??= false;\n return;\n case \"TSEnumMember\":\n node.computed ??= false;\n return;\n case \"TSImportType\":\n node.qualifier ??= null;\n node.options ??= null;\n node.typeArguments ??= null;\n return;\n case \"TSInterfaceDeclaration\":\n node.declare ??= false;\n node.extends ??= [];\n return;\n case \"TSMappedType\":\n node.optional ??= false;\n node.readonly ??= undefined;\n return;\n case \"TSModuleDeclaration\":\n node.declare ??= false;\n node.global ??= node.kind === \"global\";\n return;\n case \"TSTypeParameter\":\n node.const ??= false;\n node.in ??= false;\n node.out ??= false;\n return;\n }\n }\n chStartsBindingIdentifierAndNotRelationalOperator(ch, pos) {\n if (isIdentifierStart(ch)) {\n keywordAndTSRelationalOperator.lastIndex = pos;\n if (keywordAndTSRelationalOperator.test(this.input)) {\n const endCh = this.codePointAtPos(keywordAndTSRelationalOperator.lastIndex);\n if (!isIdentifierChar(endCh) && endCh !== 92) {\n return false;\n }\n }\n return true;\n } else if (ch === 92) {\n return true;\n } else {\n return false;\n }\n }\n nextTokenIsIdentifierAndNotTSRelationalOperatorOnSameLine() {\n const next = this.nextTokenInLineStart();\n const nextCh = this.codePointAtPos(next);\n return this.chStartsBindingIdentifierAndNotRelationalOperator(nextCh, next);\n }\n nextTokenIsStringLiteralOnSameLine() {\n const next = this.nextTokenInLineStart();\n const nextCh = this.codePointAtPos(next);\n return nextCh === 34 || nextCh === 39;\n }\n};\nfunction isPossiblyLiteralEnum(expression) {\n if (expression.type !== \"MemberExpression\") return false;\n const {\n computed,\n property\n } = expression;\n if (computed && property.type !== \"StringLiteral\" && (property.type !== \"TemplateLiteral\" || property.expressions.length > 0)) {\n return false;\n }\n return isUncomputedMemberExpressionChain(expression.object);\n}\nfunction isValidAmbientConstInitializer(expression, estree) {\n const {\n type\n } = expression;\n if (expression.extra?.parenthesized) {\n return false;\n }\n if (estree) {\n if (type === \"Literal\") {\n const {\n value\n } = expression;\n if (typeof value === \"string\" || typeof value === \"boolean\") {\n return true;\n }\n }\n } else {\n if (type === \"StringLiteral\" || type === \"BooleanLiteral\") {\n return true;\n }\n }\n if (isNumber(expression, estree) || isNegativeNumber(expression, estree)) {\n return true;\n }\n if (type === \"TemplateLiteral\" && expression.expressions.length === 0) {\n return true;\n }\n if (isPossiblyLiteralEnum(expression)) {\n return true;\n }\n return false;\n}\nfunction isNumber(expression, estree) {\n if (estree) {\n return expression.type === \"Literal\" && (typeof expression.value === \"number\" || \"bigint\" in expression);\n }\n return expression.type === \"NumericLiteral\" || expression.type === \"BigIntLiteral\";\n}\nfunction isNegativeNumber(expression, estree) {\n if (expression.type === \"UnaryExpression\") {\n const {\n operator,\n argument\n } = expression;\n if (operator === \"-\" && isNumber(argument, estree)) {\n return true;\n }\n }\n return false;\n}\nfunction isUncomputedMemberExpressionChain(expression) {\n if (expression.type === \"Identifier\") return true;\n if (expression.type !== \"MemberExpression\" || expression.computed) {\n return false;\n }\n return isUncomputedMemberExpressionChain(expression.object);\n}\nconst PlaceholderErrorTemplates = {\n ClassNameIsRequired: \"A class name is required.\",\n UnexpectedSpace: \"Unexpected space in placeholder.\"\n};\nconst PlaceholderErrors = ParseErrorEnum`placeholders`(PlaceholderErrorTemplates);\nconst placeholders = superClass => class PlaceholdersParserMixin extends superClass {\n parsePlaceholder(expectedNode) {\n if (this.match(129)) {\n const node = this.startNode();\n this.next();\n this.assertNoSpace();\n node.name = super.parseIdentifier(true);\n this.assertNoSpace();\n this.expect(129);\n return this.finishPlaceholder(node, expectedNode);\n }\n }\n finishPlaceholder(node, expectedNode) {\n let placeholder = node;\n if (!placeholder.expectedNode || !placeholder.type) {\n placeholder = this.finishNode(placeholder, \"Placeholder\");\n }\n placeholder.expectedNode = expectedNode;\n return placeholder;\n }\n getTokenFromCode(code) {\n if (code === 37 && this.input.charCodeAt(this.state.pos + 1) === 37) {\n this.finishOp(129, 2);\n } else {\n super.getTokenFromCode(code);\n }\n }\n parseExprAtom(refExpressionErrors) {\n return this.parsePlaceholder(\"Expression\") || super.parseExprAtom(refExpressionErrors);\n }\n parseIdentifier(liberal) {\n return this.parsePlaceholder(\"Identifier\") || super.parseIdentifier(liberal);\n }\n checkReservedWord(word, startLoc, checkKeywords, isBinding) {\n if (word !== undefined) {\n super.checkReservedWord(word, startLoc, checkKeywords, isBinding);\n }\n }\n cloneIdentifier(node) {\n const cloned = super.cloneIdentifier(node);\n if (cloned.type === \"Placeholder\") {\n cloned.expectedNode = node.expectedNode;\n }\n return cloned;\n }\n cloneStringLiteral(node) {\n if (node.type === \"Placeholder\") {\n return this.cloneIdentifier(node);\n }\n return super.cloneStringLiteral(node);\n }\n parseBindingAtom() {\n return this.parsePlaceholder(\"Pattern\") || super.parseBindingAtom();\n }\n isValidLVal(type, disallowCallExpression, isParenthesized, binding) {\n return type === \"Placeholder\" || super.isValidLVal(type, disallowCallExpression, isParenthesized, binding);\n }\n toAssignable(node, isLHS) {\n if (node && node.type === \"Placeholder\" && node.expectedNode === \"Expression\") {\n node.expectedNode = \"Pattern\";\n } else {\n super.toAssignable(node, isLHS);\n }\n }\n chStartsBindingIdentifier(ch, pos) {\n if (super.chStartsBindingIdentifier(ch, pos)) {\n return true;\n }\n const next = this.nextTokenStart();\n if (this.input.charCodeAt(next) === 37 && this.input.charCodeAt(next + 1) === 37) {\n return true;\n }\n return false;\n }\n verifyBreakContinue(node, isBreak) {\n if (node.label?.type === \"Placeholder\") return;\n super.verifyBreakContinue(node, isBreak);\n }\n parseExpressionStatement(node, expr) {\n if (expr.type !== \"Placeholder\" || expr.extra?.parenthesized) {\n return super.parseExpressionStatement(node, expr);\n }\n if (this.match(10)) {\n const stmt = node;\n stmt.label = this.finishPlaceholder(expr, \"Identifier\");\n this.next();\n stmt.body = super.parseStatementOrSloppyAnnexBFunctionDeclaration();\n return this.finishNode(stmt, \"LabeledStatement\");\n }\n this.semicolon();\n const stmtPlaceholder = node;\n stmtPlaceholder.name = expr.name;\n return this.finishPlaceholder(stmtPlaceholder, \"Statement\");\n }\n parseBlock(allowDirectives, createNewLexicalScope, afterBlockParse) {\n return this.parsePlaceholder(\"BlockStatement\") || super.parseBlock(allowDirectives, createNewLexicalScope, afterBlockParse);\n }\n parseFunctionId(requireId) {\n return this.parsePlaceholder(\"Identifier\") || super.parseFunctionId(requireId);\n }\n parseClass(node, isStatement, optionalId) {\n const type = isStatement ? \"ClassDeclaration\" : \"ClassExpression\";\n this.next();\n const oldStrict = this.state.strict;\n const placeholder = this.parsePlaceholder(\"Identifier\");\n if (placeholder) {\n if (this.match(77) || this.match(129) || this.match(2)) {\n node.id = placeholder;\n } else if (optionalId || !isStatement) {\n node.id = null;\n node.body = this.finishPlaceholder(placeholder, \"ClassBody\");\n return this.finishNode(node, type);\n } else {\n throw this.raise(PlaceholderErrors.ClassNameIsRequired, this.state.startLoc);\n }\n } else {\n this.parseClassId(node, isStatement, optionalId);\n }\n super.parseClassSuper(node);\n node.body = this.parsePlaceholder(\"ClassBody\") || super.parseClassBody(!!node.superClass, oldStrict);\n return this.finishNode(node, type);\n }\n parseExport(node, decorators) {\n const placeholder = this.parsePlaceholder(\"Identifier\");\n if (!placeholder) return super.parseExport(node, decorators);\n const node2 = node;\n if (!this.isContextual(94) && !this.match(8)) {\n node2.specifiers = [];\n node2.source = null;\n node2.declaration = this.finishPlaceholder(placeholder, \"Declaration\");\n return this.finishNode(node2, \"ExportNamedDeclaration\");\n }\n this.expectPlugin(\"exportDefaultFrom\");\n const specifier = this.startNode();\n specifier.exported = placeholder;\n node2.specifiers = [this.finishNode(specifier, \"ExportDefaultSpecifier\")];\n return super.parseExport(node2, decorators);\n }\n isExportDefaultSpecifier() {\n if (this.match(61)) {\n const next = this.nextTokenStart();\n if (this.isUnparsedContextual(next, \"from\")) {\n if (this.input.startsWith(tokenLabelName(129), this.nextTokenStartSince(next + 4))) {\n return true;\n }\n }\n }\n return super.isExportDefaultSpecifier();\n }\n maybeParseExportDefaultSpecifier(node, maybeDefaultIdentifier) {\n if (node.specifiers?.length) {\n return true;\n }\n return super.maybeParseExportDefaultSpecifier(node, maybeDefaultIdentifier);\n }\n checkExport(node) {\n const {\n specifiers\n } = node;\n if (specifiers?.length) {\n node.specifiers = specifiers.filter(node => node.exported.type === \"Placeholder\");\n }\n super.checkExport(node);\n node.specifiers = specifiers;\n }\n parseImport(node) {\n const placeholder = this.parsePlaceholder(\"Identifier\");\n if (!placeholder) return super.parseImport(node);\n node.specifiers = [];\n if (!this.isContextual(94) && !this.match(8)) {\n node.source = this.finishPlaceholder(placeholder, \"StringLiteral\");\n this.semicolon();\n return this.finishNode(node, \"ImportDeclaration\");\n }\n const specifier = this.startNodeAtNode(placeholder);\n specifier.local = placeholder;\n node.specifiers.push(this.finishNode(specifier, \"ImportDefaultSpecifier\"));\n if (this.eat(8)) {\n const hasStarImport = this.maybeParseStarImportSpecifier(node);\n if (!hasStarImport) this.parseNamedImportSpecifiers(node);\n }\n this.expectContextual(94);\n node.source = this.parseImportSource();\n this.semicolon();\n return this.finishNode(node, \"ImportDeclaration\");\n }\n parseImportSource() {\n return this.parsePlaceholder(\"StringLiteral\") || super.parseImportSource();\n }\n assertNoSpace() {\n if (this.state.start > this.offsetToSourcePos(this.state.lastTokEndLoc.index)) {\n this.raise(PlaceholderErrors.UnexpectedSpace, this.state.lastTokEndLoc);\n }\n }\n};\nconst v8intrinsic = superClass => class V8IntrinsicMixin extends superClass {\n parseV8Intrinsic() {\n if (this.match(50)) {\n const v8IntrinsicStartLoc = this.state.startLoc;\n const node = this.startNode();\n this.next();\n if (tokenIsIdentifier(this.state.type)) {\n const name = this.parseIdentifierName();\n const identifier = this.createIdentifier(node, name);\n this.castNodeTo(identifier, \"V8IntrinsicIdentifier\");\n if (this.match(6)) {\n return identifier;\n }\n }\n this.unexpected(v8IntrinsicStartLoc);\n }\n }\n parseExprAtom(refExpressionErrors) {\n return this.parseV8Intrinsic() || super.parseExprAtom(refExpressionErrors);\n }\n};\nconst PIPELINE_PROPOSALS = [\"fsharp\", \"hack\"];\nconst TOPIC_TOKENS = [\"^^\", \"@@\", \"^\", \"%\", \"#\"];\nfunction validatePlugins(pluginsMap) {\n if (pluginsMap.has(\"decorators\")) {\n if (pluginsMap.has(\"decorators-legacy\")) {\n throw new Error(\"Cannot use the decorators and decorators-legacy plugin together\");\n }\n }\n if (pluginsMap.has(\"flow\") && pluginsMap.has(\"typescript\")) {\n throw new Error(\"Cannot combine flow and typescript plugins.\");\n }\n if (pluginsMap.has(\"placeholders\") && pluginsMap.has(\"v8intrinsic\")) {\n throw new Error(\"Cannot combine placeholders and v8intrinsic plugins.\");\n }\n if (pluginsMap.has(\"pipelineOperator\")) {\n const proposal = pluginsMap.get(\"pipelineOperator\").proposal;\n if (!PIPELINE_PROPOSALS.includes(proposal)) {\n const proposalList = PIPELINE_PROPOSALS.map(p => `\"${p}\"`).join(\", \");\n throw new Error(`\"pipelineOperator\" requires \"proposal\" option whose value must be one of: ${proposalList}.`);\n }\n if (proposal === \"hack\") {\n if (pluginsMap.has(\"placeholders\")) {\n throw new Error(\"Cannot combine placeholders plugin and Hack-style pipes.\");\n }\n if (pluginsMap.has(\"v8intrinsic\")) {\n throw new Error(\"Cannot combine v8intrinsic plugin and Hack-style pipes.\");\n }\n const topicToken = pluginsMap.get(\"pipelineOperator\").topicToken;\n if (!TOPIC_TOKENS.includes(topicToken)) {\n const tokenList = TOPIC_TOKENS.map(t => `\"${t}\"`).join(\", \");\n throw new Error(`\"pipelineOperator\" in \"proposal\": \"hack\" mode also requires a \"topicToken\" option whose value must be one of: ${tokenList}.`);\n }\n }\n }\n if (pluginsMap.has(\"moduleAttributes\")) {\n throw new Error(\"`moduleAttributes` has been removed in Babel 8, please migrate to import attributes instead.\");\n }\n if (pluginsMap.has(\"importAssertions\")) {\n throw new Error(\"`importAssertions` has been removed in Babel 8, please use import attributes instead.\");\n }\n if (pluginsMap.has(\"deprecatedImportAssert\")) {\n console.warn(\"`deprecatedImportAssert` has been removed in Babel 8, please use import attributes instead.\");\n } else if (pluginsMap.has(\"importAttributes\") && pluginsMap.get(\"importAttributes\").deprecatedAssertSyntax) {\n console.warn(\"The 'importAttributes' plugin has been removed in Babel 8. Please migrate any usage of `assert`-style attributes to `with`.\");\n }\n if (pluginsMap.has(\"recordAndTuple\")) {\n throw new Error(\"The 'recordAndTuple' plugin has been removed in Babel 8. Please remove it from your configuration.\");\n }\n if (pluginsMap.has(\"asyncDoExpressions\") && !pluginsMap.has(\"doExpressions\")) {\n const error = new Error(\"'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins.\");\n error.missingPlugins = \"doExpressions\";\n throw error;\n }\n if (pluginsMap.has(\"optionalChainingAssign\") && pluginsMap.get(\"optionalChainingAssign\").version !== \"2023-07\") {\n throw new Error(\"The 'optionalChainingAssign' plugin requires a 'version' option,\" + \" representing the last proposal update. Currently, the\" + \" only supported value is '2023-07'.\");\n }\n if (pluginsMap.has(\"discardBinding\") && pluginsMap.get(\"discardBinding\").syntaxType !== \"void\") {\n throw new Error(\"The 'discardBinding' plugin requires a 'syntaxType' option. Currently the only supported value is 'void'.\");\n }\n if (pluginsMap.has(\"decimal\")) {\n throw new Error(\"The 'decimal' plugin has been removed in Babel 8. Please remove it from your configuration.\");\n }\n if (pluginsMap.has(\"importReflection\")) {\n throw new Error(\"The 'importReflection' plugin has been removed in Babel 8. Use 'sourcePhaseImports' instead, and \" + \"replace 'import module' with 'import source' in your code.\");\n }\n}\nconst mixinPlugins = {\n estree,\n jsx,\n flow,\n typescript,\n v8intrinsic,\n placeholders\n};\nconst mixinPluginNames = Object.keys(mixinPlugins);\nclass Parser extends StatementParser {\n constructor(options, input, pluginsMap) {\n const normalizedOptions = getOptions(options);\n super(normalizedOptions, input);\n this.options = normalizedOptions;\n this.initializeScopes();\n this.plugins = pluginsMap;\n this.filename = normalizedOptions.sourceFilename;\n this.startIndex = normalizedOptions.startIndex;\n let optionFlags = 0;\n if (normalizedOptions.allowAwaitOutsideFunction) {\n optionFlags |= 1;\n }\n if (normalizedOptions.allowReturnOutsideFunction) {\n optionFlags |= 2;\n }\n if (normalizedOptions.allowImportExportEverywhere) {\n optionFlags |= 8;\n }\n if (normalizedOptions.allowSuperOutsideMethod) {\n optionFlags |= 16;\n }\n if (normalizedOptions.allowUndeclaredExports) {\n optionFlags |= 64;\n }\n if (normalizedOptions.allowNewTargetOutsideFunction) {\n optionFlags |= 4;\n }\n if (normalizedOptions.allowYieldOutsideFunction) {\n optionFlags |= 32;\n }\n if (normalizedOptions.ranges) {\n optionFlags |= 128;\n }\n if (normalizedOptions.locations === true) {\n optionFlags |= 256;\n }\n if (normalizedOptions.tokens) {\n optionFlags |= 512;\n }\n if (normalizedOptions.createImportExpressions) {\n optionFlags |= 1024;\n }\n if (normalizedOptions.createParenthesizedExpressions) {\n optionFlags |= 2048;\n }\n if (normalizedOptions.errorRecovery) {\n optionFlags |= 4096;\n }\n if (normalizedOptions.attachComment) {\n optionFlags |= 8192;\n }\n if (normalizedOptions.annexB) {\n optionFlags |= 16384;\n }\n this.optionFlags = optionFlags;\n }\n getScopeHandler() {\n return ScopeHandler;\n }\n parse() {\n this.enterInitialScopes();\n const file = this.startNode();\n const program = this.startNode();\n this.nextToken();\n file.errors = [];\n const result = this.parseTopLevel(file, program);\n result.errors = this.state.errors;\n result.comments.length = this.state.commentsLen;\n return result;\n }\n}\nfunction parse(input, options) {\n if (options?.sourceType === \"unambiguous\") {\n options = {\n ...options\n };\n try {\n options.sourceType = \"module\";\n const parser = getParser(options, input);\n const ast = parser.parse();\n if (parser.sawUnambiguousESM) {\n return ast;\n }\n if (parser.ambiguousScriptDifferentAst) {\n try {\n options.sourceType = \"script\";\n return getParser(options, input).parse();\n } catch {}\n } else {\n ast.program.sourceType = \"script\";\n }\n return ast;\n } catch (moduleError) {\n try {\n options.sourceType = \"script\";\n return getParser(options, input).parse();\n } catch {}\n throw moduleError;\n }\n } else {\n return getParser(options, input).parse();\n }\n}\nfunction parseExpression(input, options) {\n const parser = getParser(options, input);\n if (parser.options.strictMode) {\n parser.state.strict = true;\n }\n return parser.getExpression();\n}\nfunction generateExportedTokenTypes(internalTokenTypes) {\n const tokenTypes = {};\n for (const typeName of Object.keys(internalTokenTypes)) {\n tokenTypes[typeName] = getExportedToken(internalTokenTypes[typeName]);\n }\n return tokenTypes;\n}\nconst tokTypes = generateExportedTokenTypes(tt);\nfunction getParser(options, input) {\n let cls = Parser;\n const pluginsMap = new Map();\n if (options?.plugins) {\n for (const plugin of options.plugins) {\n let name, opts;\n if (typeof plugin === \"string\") {\n name = plugin;\n } else {\n [name, opts] = plugin;\n }\n if (!pluginsMap.has(name)) {\n pluginsMap.set(name, opts || {});\n }\n }\n validatePlugins(pluginsMap);\n cls = getParserClass(pluginsMap);\n }\n return new cls(options, input, pluginsMap);\n}\nconst parserClassCache = new Map();\nfunction getParserClass(pluginsMap) {\n const pluginList = [];\n for (const name of mixinPluginNames) {\n if (pluginsMap.has(name)) {\n pluginList.push(name);\n }\n }\n const key = pluginList.join(\"|\");\n let cls = parserClassCache.get(key);\n if (!cls) {\n cls = Parser;\n for (const plugin of pluginList) {\n cls = mixinPlugins[plugin](cls);\n }\n parserClassCache.set(key, cls);\n }\n return cls;\n}\nfunction getLine(locData, pos) {\n if (pos < 0 || pos * 2 >= locData.length) {\n throw new Error(`Position ${pos} is out of bounds for location data.`);\n }\n return locData[pos * 2];\n}\nfunction getColumn(locData, pos) {\n if (pos < 0 || pos * 2 + 1 >= locData.length) {\n throw new Error(`Position ${pos} is out of bounds for location data.`);\n }\n return locData[pos * 2 + 1];\n}\nexport { getColumn, getLine, parse, parseExpression, tokTypes };\n//# sourceMappingURL=index.js.map\n","const bmpIdentifierStartChars = \"ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࡰ-ࢇࢉ-ࢠ-ࣉऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౝౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽ-ೞೠೡೱೲഄ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜑᜟ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭌᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-Ა-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ--ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ\";\n\nconst bmpIdentifierChars = \"·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛-࢟࣊-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍୕-ୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄ఼ా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ೳഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ඁ-ඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ຼ່-໎໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜕ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠏-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᪿ--ᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷿‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯・꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧ꠬ꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_・\";\n\nconst supplementaryIdentifierStartCodes = [\n\t0,\n\t11,\n\t2,\n\t25,\n\t2,\n\t18,\n\t2,\n\t1,\n\t2,\n\t14,\n\t3,\n\t13,\n\t35,\n\t122,\n\t70,\n\t52,\n\t268,\n\t28,\n\t4,\n\t48,\n\t48,\n\t31,\n\t14,\n\t29,\n\t6,\n\t37,\n\t11,\n\t29,\n\t3,\n\t35,\n\t5,\n\t7,\n\t2,\n\t4,\n\t43,\n\t157,\n\t19,\n\t35,\n\t5,\n\t35,\n\t5,\n\t39,\n\t9,\n\t51,\n\t13,\n\t10,\n\t2,\n\t14,\n\t2,\n\t6,\n\t2,\n\t1,\n\t2,\n\t10,\n\t2,\n\t14,\n\t2,\n\t6,\n\t2,\n\t1,\n\t4,\n\t51,\n\t13,\n\t310,\n\t10,\n\t21,\n\t11,\n\t7,\n\t25,\n\t5,\n\t2,\n\t41,\n\t2,\n\t8,\n\t70,\n\t5,\n\t3,\n\t0,\n\t2,\n\t43,\n\t2,\n\t1,\n\t4,\n\t0,\n\t3,\n\t22,\n\t11,\n\t22,\n\t10,\n\t30,\n\t66,\n\t18,\n\t2,\n\t1,\n\t11,\n\t21,\n\t11,\n\t25,\n\t7,\n\t25,\n\t39,\n\t55,\n\t7,\n\t1,\n\t65,\n\t0,\n\t16,\n\t3,\n\t2,\n\t2,\n\t2,\n\t28,\n\t43,\n\t28,\n\t4,\n\t28,\n\t36,\n\t7,\n\t2,\n\t27,\n\t28,\n\t53,\n\t11,\n\t21,\n\t11,\n\t18,\n\t14,\n\t17,\n\t111,\n\t72,\n\t56,\n\t50,\n\t14,\n\t50,\n\t14,\n\t35,\n\t39,\n\t27,\n\t10,\n\t22,\n\t251,\n\t41,\n\t7,\n\t1,\n\t17,\n\t5,\n\t57,\n\t28,\n\t11,\n\t0,\n\t9,\n\t21,\n\t43,\n\t17,\n\t47,\n\t20,\n\t28,\n\t22,\n\t13,\n\t52,\n\t58,\n\t1,\n\t3,\n\t0,\n\t14,\n\t44,\n\t33,\n\t24,\n\t27,\n\t35,\n\t30,\n\t0,\n\t3,\n\t0,\n\t9,\n\t34,\n\t4,\n\t0,\n\t13,\n\t47,\n\t15,\n\t3,\n\t22,\n\t0,\n\t2,\n\t0,\n\t36,\n\t17,\n\t2,\n\t24,\n\t20,\n\t1,\n\t64,\n\t6,\n\t2,\n\t0,\n\t2,\n\t3,\n\t2,\n\t14,\n\t2,\n\t9,\n\t8,\n\t46,\n\t39,\n\t7,\n\t3,\n\t1,\n\t3,\n\t21,\n\t2,\n\t6,\n\t2,\n\t1,\n\t2,\n\t4,\n\t4,\n\t0,\n\t19,\n\t0,\n\t13,\n\t4,\n\t31,\n\t9,\n\t2,\n\t0,\n\t3,\n\t0,\n\t2,\n\t37,\n\t2,\n\t0,\n\t26,\n\t0,\n\t2,\n\t0,\n\t45,\n\t52,\n\t19,\n\t3,\n\t21,\n\t2,\n\t31,\n\t47,\n\t21,\n\t1,\n\t2,\n\t0,\n\t185,\n\t46,\n\t42,\n\t3,\n\t37,\n\t47,\n\t21,\n\t0,\n\t60,\n\t42,\n\t14,\n\t0,\n\t72,\n\t26,\n\t38,\n\t6,\n\t186,\n\t43,\n\t117,\n\t63,\n\t32,\n\t7,\n\t3,\n\t0,\n\t3,\n\t7,\n\t2,\n\t1,\n\t2,\n\t23,\n\t16,\n\t0,\n\t2,\n\t0,\n\t95,\n\t7,\n\t3,\n\t38,\n\t17,\n\t0,\n\t2,\n\t0,\n\t29,\n\t0,\n\t11,\n\t39,\n\t8,\n\t0,\n\t22,\n\t0,\n\t12,\n\t45,\n\t20,\n\t0,\n\t19,\n\t72,\n\t200,\n\t32,\n\t32,\n\t8,\n\t2,\n\t36,\n\t18,\n\t0,\n\t50,\n\t29,\n\t113,\n\t6,\n\t2,\n\t1,\n\t2,\n\t37,\n\t22,\n\t0,\n\t26,\n\t5,\n\t2,\n\t1,\n\t2,\n\t31,\n\t15,\n\t0,\n\t24,\n\t43,\n\t261,\n\t18,\n\t16,\n\t0,\n\t2,\n\t12,\n\t2,\n\t33,\n\t125,\n\t0,\n\t80,\n\t921,\n\t103,\n\t110,\n\t18,\n\t195,\n\t2637,\n\t96,\n\t16,\n\t1071,\n\t18,\n\t5,\n\t26,\n\t3994,\n\t6,\n\t582,\n\t6842,\n\t29,\n\t1763,\n\t568,\n\t8,\n\t30,\n\t18,\n\t78,\n\t18,\n\t29,\n\t19,\n\t47,\n\t17,\n\t3,\n\t32,\n\t20,\n\t6,\n\t18,\n\t433,\n\t44,\n\t212,\n\t63,\n\t33,\n\t24,\n\t3,\n\t24,\n\t45,\n\t74,\n\t6,\n\t0,\n\t67,\n\t12,\n\t65,\n\t1,\n\t2,\n\t0,\n\t15,\n\t4,\n\t10,\n\t7381,\n\t42,\n\t31,\n\t98,\n\t114,\n\t8702,\n\t3,\n\t2,\n\t6,\n\t2,\n\t1,\n\t2,\n\t290,\n\t16,\n\t0,\n\t30,\n\t2,\n\t3,\n\t0,\n\t15,\n\t3,\n\t9,\n\t395,\n\t2309,\n\t106,\n\t6,\n\t12,\n\t4,\n\t8,\n\t8,\n\t9,\n\t5991,\n\t84,\n\t2,\n\t70,\n\t2,\n\t1,\n\t3,\n\t0,\n\t3,\n\t1,\n\t3,\n\t3,\n\t2,\n\t11,\n\t2,\n\t0,\n\t2,\n\t6,\n\t2,\n\t64,\n\t2,\n\t3,\n\t3,\n\t7,\n\t2,\n\t6,\n\t2,\n\t27,\n\t2,\n\t3,\n\t2,\n\t4,\n\t2,\n\t0,\n\t4,\n\t6,\n\t2,\n\t339,\n\t3,\n\t24,\n\t2,\n\t24,\n\t2,\n\t30,\n\t2,\n\t24,\n\t2,\n\t30,\n\t2,\n\t24,\n\t2,\n\t30,\n\t2,\n\t24,\n\t2,\n\t30,\n\t2,\n\t24,\n\t2,\n\t7,\n\t1845,\n\t30,\n\t7,\n\t5,\n\t262,\n\t61,\n\t147,\n\t44,\n\t11,\n\t6,\n\t17,\n\t0,\n\t322,\n\t29,\n\t19,\n\t43,\n\t485,\n\t27,\n\t229,\n\t29,\n\t3,\n\t0,\n\t208,\n\t30,\n\t2,\n\t2,\n\t2,\n\t1,\n\t2,\n\t6,\n\t3,\n\t4,\n\t10,\n\t1,\n\t225,\n\t6,\n\t2,\n\t3,\n\t2,\n\t1,\n\t2,\n\t14,\n\t2,\n\t196,\n\t60,\n\t67,\n\t8,\n\t0,\n\t1205,\n\t3,\n\t2,\n\t26,\n\t2,\n\t1,\n\t2,\n\t0,\n\t3,\n\t0,\n\t2,\n\t9,\n\t2,\n\t3,\n\t2,\n\t0,\n\t2,\n\t0,\n\t7,\n\t0,\n\t5,\n\t0,\n\t2,\n\t0,\n\t2,\n\t0,\n\t2,\n\t2,\n\t2,\n\t1,\n\t2,\n\t0,\n\t3,\n\t0,\n\t2,\n\t0,\n\t2,\n\t0,\n\t2,\n\t0,\n\t2,\n\t0,\n\t2,\n\t1,\n\t2,\n\t0,\n\t3,\n\t3,\n\t2,\n\t6,\n\t2,\n\t3,\n\t2,\n\t3,\n\t2,\n\t0,\n\t2,\n\t9,\n\t2,\n\t16,\n\t6,\n\t2,\n\t2,\n\t4,\n\t2,\n\t16,\n\t4421,\n\t42719,\n\t33,\n\t4381,\n\t3,\n\t5773,\n\t3,\n\t7472,\n\t16,\n\t621,\n\t2467,\n\t541,\n\t1507,\n\t4938,\n\t6,\n\t8489\n];\n\nconst supplementaryIdentifierCodes = [\n\t509,\n\t0,\n\t227,\n\t0,\n\t150,\n\t4,\n\t294,\n\t9,\n\t1368,\n\t2,\n\t2,\n\t1,\n\t6,\n\t3,\n\t41,\n\t2,\n\t5,\n\t0,\n\t166,\n\t1,\n\t574,\n\t3,\n\t9,\n\t9,\n\t7,\n\t9,\n\t32,\n\t4,\n\t318,\n\t1,\n\t78,\n\t5,\n\t71,\n\t10,\n\t50,\n\t3,\n\t123,\n\t2,\n\t54,\n\t14,\n\t32,\n\t10,\n\t3,\n\t1,\n\t11,\n\t3,\n\t46,\n\t10,\n\t8,\n\t0,\n\t46,\n\t9,\n\t7,\n\t2,\n\t37,\n\t13,\n\t2,\n\t9,\n\t6,\n\t1,\n\t45,\n\t0,\n\t13,\n\t2,\n\t49,\n\t13,\n\t9,\n\t3,\n\t2,\n\t11,\n\t83,\n\t11,\n\t7,\n\t0,\n\t3,\n\t0,\n\t158,\n\t11,\n\t6,\n\t9,\n\t7,\n\t3,\n\t56,\n\t1,\n\t2,\n\t6,\n\t3,\n\t1,\n\t3,\n\t2,\n\t10,\n\t0,\n\t11,\n\t1,\n\t3,\n\t6,\n\t4,\n\t4,\n\t68,\n\t8,\n\t2,\n\t0,\n\t3,\n\t0,\n\t2,\n\t3,\n\t2,\n\t4,\n\t2,\n\t0,\n\t15,\n\t1,\n\t83,\n\t17,\n\t10,\n\t9,\n\t5,\n\t0,\n\t82,\n\t19,\n\t13,\n\t9,\n\t214,\n\t6,\n\t3,\n\t8,\n\t28,\n\t1,\n\t83,\n\t16,\n\t16,\n\t9,\n\t82,\n\t12,\n\t9,\n\t9,\n\t7,\n\t19,\n\t58,\n\t14,\n\t5,\n\t9,\n\t243,\n\t14,\n\t166,\n\t9,\n\t71,\n\t5,\n\t2,\n\t1,\n\t3,\n\t3,\n\t2,\n\t0,\n\t2,\n\t1,\n\t13,\n\t9,\n\t120,\n\t6,\n\t3,\n\t6,\n\t4,\n\t0,\n\t29,\n\t9,\n\t41,\n\t6,\n\t2,\n\t3,\n\t9,\n\t0,\n\t10,\n\t10,\n\t47,\n\t15,\n\t199,\n\t7,\n\t137,\n\t9,\n\t54,\n\t7,\n\t2,\n\t7,\n\t17,\n\t9,\n\t57,\n\t21,\n\t2,\n\t13,\n\t123,\n\t5,\n\t4,\n\t0,\n\t2,\n\t1,\n\t2,\n\t6,\n\t2,\n\t0,\n\t9,\n\t9,\n\t49,\n\t4,\n\t2,\n\t1,\n\t2,\n\t4,\n\t9,\n\t9,\n\t55,\n\t9,\n\t266,\n\t3,\n\t10,\n\t1,\n\t2,\n\t0,\n\t49,\n\t6,\n\t4,\n\t4,\n\t14,\n\t10,\n\t5350,\n\t0,\n\t7,\n\t14,\n\t11465,\n\t27,\n\t2343,\n\t9,\n\t87,\n\t9,\n\t39,\n\t4,\n\t60,\n\t6,\n\t26,\n\t9,\n\t535,\n\t9,\n\t470,\n\t0,\n\t2,\n\t54,\n\t8,\n\t3,\n\t82,\n\t0,\n\t12,\n\t1,\n\t19628,\n\t1,\n\t4178,\n\t9,\n\t519,\n\t45,\n\t3,\n\t22,\n\t543,\n\t4,\n\t4,\n\t5,\n\t9,\n\t7,\n\t3,\n\t6,\n\t31,\n\t3,\n\t149,\n\t2,\n\t1418,\n\t49,\n\t513,\n\t54,\n\t5,\n\t49,\n\t9,\n\t0,\n\t15,\n\t0,\n\t23,\n\t4,\n\t2,\n\t14,\n\t1361,\n\t6,\n\t2,\n\t16,\n\t3,\n\t6,\n\t2,\n\t1,\n\t2,\n\t4,\n\t101,\n\t0,\n\t161,\n\t6,\n\t10,\n\t9,\n\t357,\n\t0,\n\t62,\n\t13,\n\t499,\n\t13,\n\t245,\n\t1,\n\t2,\n\t9,\n\t233,\n\t0,\n\t3,\n\t0,\n\t8,\n\t1,\n\t6,\n\t0,\n\t475,\n\t6,\n\t110,\n\t6,\n\t6,\n\t9,\n\t4759,\n\t9,\n\t787719,\n\t239\n];\n\nconst bmpIdentifierStart = new RegExp(\"[\" + bmpIdentifierStartChars + \"]\");\nconst bmpIdentifier = new RegExp(\"[\" + bmpIdentifierStartChars + bmpIdentifierChars + \"]\");\nfunction isInSupplementarySet(code, set) {\n let pos = 0x10000;\n for (let i = 0, length = set.length; i < length; i += 2) {\n pos += set[i];\n if (pos > code) return false;\n pos += set[i + 1];\n if (pos >= code) return true;\n }\n return false;\n}\nfunction isIdentifierStart(code) {\n if (code < 65) return code === 36;\n if (code <= 90) return true;\n if (code < 97) return code === 95;\n if (code <= 122) return true;\n if (code <= 0xffff) {\n return code >= 0xaa && bmpIdentifierStart.test(String.fromCharCode(code));\n }\n return isInSupplementarySet(code, supplementaryIdentifierStartCodes);\n}\nfunction isIdentifierChar(code) {\n if (code < 48) return code === 36;\n if (code < 58) return true;\n if (code < 65) return false;\n if (code <= 90) return true;\n if (code < 97) return code === 95;\n if (code <= 122) return true;\n if (code <= 0xffff) {\n return code >= 0xaa && bmpIdentifier.test(String.fromCharCode(code));\n }\n return isInSupplementarySet(code, supplementaryIdentifierStartCodes) || isInSupplementarySet(code, supplementaryIdentifierCodes);\n}\nfunction isIdentifierName(name) {\n let isFirst = true;\n for (let i = 0; i < name.length; i++) {\n let cp = name.charCodeAt(i);\n if ((cp & 0xfc00) === 0xd800 && i + 1 < name.length) {\n const trail = name.charCodeAt(++i);\n if ((trail & 0xfc00) === 0xdc00) {\n cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff);\n }\n }\n if (isFirst) {\n isFirst = false;\n if (!isIdentifierStart(cp)) {\n return false;\n }\n } else if (!isIdentifierChar(cp)) {\n return false;\n }\n }\n return !isFirst;\n}\n\nconst reservedWords = {\n keyword: [\"break\", \"case\", \"catch\", \"continue\", \"debugger\", \"default\", \"do\", \"else\", \"finally\", \"for\", \"function\", \"if\", \"return\", \"switch\", \"throw\", \"try\", \"var\", \"const\", \"while\", \"with\", \"new\", \"this\", \"super\", \"class\", \"extends\", \"export\", \"import\", \"null\", \"true\", \"false\", \"in\", \"instanceof\", \"typeof\", \"void\", \"delete\"],\n strict: [\"implements\", \"interface\", \"let\", \"package\", \"private\", \"protected\", \"public\", \"static\", \"yield\"],\n strictBind: [\"eval\", \"arguments\"]\n};\nconst keywords = new Set(reservedWords.keyword);\nconst reservedWordsStrictSet = new Set(reservedWords.strict);\nconst reservedWordsStrictBindSet = new Set(reservedWords.strictBind);\nfunction isReservedWord(word, inModule) {\n return inModule && word === \"await\" || word === \"enum\";\n}\nfunction isStrictReservedWord(word, inModule) {\n return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);\n}\nfunction isStrictBindOnlyReservedWord(word) {\n return reservedWordsStrictBindSet.has(word);\n}\nfunction isStrictBindReservedWord(word, inModule) {\n return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word);\n}\nfunction isKeyword(word) {\n return keywords.has(word);\n}\n\nexport { isIdentifierChar, isIdentifierName, isIdentifierStart, isKeyword, isReservedWord, isStrictBindOnlyReservedWord, isStrictBindReservedWord, isStrictReservedWord };\n//# sourceMappingURL=index.js.map\n","var _isDigit = function isDigit(code) {\n return code >= 48 && code <= 57;\n};\nconst forbiddenNumericSeparatorSiblings = {\n decBinOct: new Set([46, 66, 69, 79, 95, 98, 101, 111]),\n hex: new Set([46, 88, 95, 120])\n};\nconst isAllowedNumericSeparatorSibling = {\n bin: ch => ch === 48 || ch === 49,\n oct: ch => ch >= 48 && ch <= 55,\n dec: ch => ch >= 48 && ch <= 57,\n hex: ch => ch >= 48 && ch <= 57 || ch >= 65 && ch <= 70 || ch >= 97 && ch <= 102\n};\nfunction readStringContents(type, input, pos, lineStart, curLine, errors) {\n const initialPos = pos;\n const initialLineStart = lineStart;\n const initialCurLine = curLine;\n let out = \"\";\n let firstInvalidLoc = null;\n let chunkStart = pos;\n const {\n length\n } = input;\n for (;;) {\n if (pos >= length) {\n errors.unterminated(initialPos, initialLineStart, initialCurLine);\n out += input.slice(chunkStart, pos);\n break;\n }\n const ch = input.charCodeAt(pos);\n if (isStringEnd(type, ch, input, pos)) {\n out += input.slice(chunkStart, pos);\n break;\n }\n if (ch === 92) {\n out += input.slice(chunkStart, pos);\n const res = readEscapedChar(input, pos, lineStart, curLine, type === \"template\", errors);\n if (res.ch === null && !firstInvalidLoc) {\n firstInvalidLoc = {\n pos,\n lineStart,\n curLine\n };\n } else {\n out += res.ch;\n }\n ({\n pos,\n lineStart,\n curLine\n } = res);\n chunkStart = pos;\n } else if (ch === 8232 || ch === 8233) {\n ++pos;\n ++curLine;\n lineStart = pos;\n } else if (ch === 10 || ch === 13) {\n if (type === \"template\") {\n out += input.slice(chunkStart, pos) + \"\\n\";\n ++pos;\n if (ch === 13 && input.charCodeAt(pos) === 10) {\n ++pos;\n }\n ++curLine;\n chunkStart = lineStart = pos;\n } else {\n errors.unterminated(initialPos, initialLineStart, initialCurLine);\n }\n } else {\n ++pos;\n }\n }\n return {\n pos,\n str: out,\n firstInvalidLoc,\n lineStart,\n curLine\n };\n}\nfunction isStringEnd(type, ch, input, pos) {\n if (type === \"template\") {\n return ch === 96 || ch === 36 && input.charCodeAt(pos + 1) === 123;\n }\n return ch === (type === \"double\" ? 34 : 39);\n}\nfunction readEscapedChar(input, pos, lineStart, curLine, inTemplate, errors) {\n const throwOnInvalid = !inTemplate;\n pos++;\n const res = ch => ({\n pos,\n ch,\n lineStart,\n curLine\n });\n const ch = input.charCodeAt(pos++);\n switch (ch) {\n case 110:\n return res(\"\\n\");\n case 114:\n return res(\"\\r\");\n case 120:\n {\n let code;\n ({\n code,\n pos\n } = readHexChar(input, pos, lineStart, curLine, 2, false, throwOnInvalid, errors));\n return res(code === null ? null : String.fromCharCode(code));\n }\n case 117:\n {\n let code;\n ({\n code,\n pos\n } = readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors));\n return res(code === null ? null : String.fromCodePoint(code));\n }\n case 116:\n return res(\"\\t\");\n case 98:\n return res(\"\\b\");\n case 118:\n return res(\"\\u000b\");\n case 102:\n return res(\"\\f\");\n case 13:\n if (input.charCodeAt(pos) === 10) {\n ++pos;\n }\n case 10:\n lineStart = pos;\n ++curLine;\n case 8232:\n case 8233:\n return res(\"\");\n case 56:\n case 57:\n if (inTemplate) {\n return res(null);\n } else {\n errors.strictNumericEscape(pos - 1, lineStart, curLine);\n }\n default:\n if (ch >= 48 && ch <= 55) {\n const startPos = pos - 1;\n const match = /^[0-7]+/.exec(input.slice(startPos, pos + 2));\n let octalStr = match[0];\n let octal = parseInt(octalStr, 8);\n if (octal > 255) {\n octalStr = octalStr.slice(0, -1);\n octal = parseInt(octalStr, 8);\n }\n pos += octalStr.length - 1;\n const next = input.charCodeAt(pos);\n if (octalStr !== \"0\" || next === 56 || next === 57) {\n if (inTemplate) {\n return res(null);\n } else {\n errors.strictNumericEscape(startPos, lineStart, curLine);\n }\n }\n return res(String.fromCharCode(octal));\n }\n return res(String.fromCharCode(ch));\n }\n}\nfunction readHexChar(input, pos, lineStart, curLine, len, forceLen, throwOnInvalid, errors) {\n const initialPos = pos;\n let n;\n ({\n n,\n pos\n } = readInt(input, pos, lineStart, curLine, 16, len, forceLen, false, errors, !throwOnInvalid));\n if (n === null) {\n if (throwOnInvalid) {\n errors.invalidEscapeSequence(initialPos, lineStart, curLine);\n } else {\n pos = initialPos - 1;\n }\n }\n return {\n code: n,\n pos\n };\n}\nfunction readInt(input, pos, lineStart, curLine, radix, len, forceLen, allowNumSeparator, errors, bailOnError) {\n const start = pos;\n const forbiddenSiblings = radix === 16 ? forbiddenNumericSeparatorSiblings.hex : forbiddenNumericSeparatorSiblings.decBinOct;\n const isAllowedSibling = radix === 16 ? isAllowedNumericSeparatorSibling.hex : radix === 10 ? isAllowedNumericSeparatorSibling.dec : radix === 8 ? isAllowedNumericSeparatorSibling.oct : isAllowedNumericSeparatorSibling.bin;\n let invalid = false;\n let total = 0;\n for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) {\n const code = input.charCodeAt(pos);\n let val;\n if (code === 95 && allowNumSeparator !== \"bail\") {\n const prev = input.charCodeAt(pos - 1);\n const next = input.charCodeAt(pos + 1);\n if (!allowNumSeparator) {\n if (bailOnError) return {\n n: null,\n pos\n };\n errors.numericSeparatorInEscapeSequence(pos, lineStart, curLine);\n } else if (Number.isNaN(next) || !isAllowedSibling(next) || forbiddenSiblings.has(prev) || forbiddenSiblings.has(next)) {\n if (bailOnError) return {\n n: null,\n pos\n };\n errors.unexpectedNumericSeparator(pos, lineStart, curLine);\n }\n ++pos;\n continue;\n }\n if (code >= 97) {\n val = code - 97 + 10;\n } else if (code >= 65) {\n val = code - 65 + 10;\n } else if (_isDigit(code)) {\n val = code - 48;\n } else {\n val = Infinity;\n }\n if (val >= radix) {\n if (val <= 9 && bailOnError) {\n return {\n n: null,\n pos\n };\n } else if (val <= 9 && errors.invalidDigit(pos, lineStart, curLine, radix)) {\n val = 0;\n } else if (forceLen) {\n val = 0;\n invalid = true;\n } else {\n break;\n }\n }\n ++pos;\n total = total * radix + val;\n }\n if (pos === start || len != null && pos - start !== len || invalid) {\n return {\n n: null,\n pos\n };\n }\n return {\n n: total,\n pos\n };\n}\nfunction readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors) {\n const ch = input.charCodeAt(pos);\n let code;\n if (ch === 123) {\n ++pos;\n ({\n code,\n pos\n } = readHexChar(input, pos, lineStart, curLine, input.indexOf(\"}\", pos) - pos, true, throwOnInvalid, errors));\n ++pos;\n if (code !== null && code > 0x10ffff) {\n if (throwOnInvalid) {\n errors.invalidCodePoint(pos, lineStart, curLine);\n } else {\n return {\n code: null,\n pos\n };\n }\n }\n } else {\n ({\n code,\n pos\n } = readHexChar(input, pos, lineStart, curLine, 4, false, throwOnInvalid, errors));\n }\n return {\n code,\n pos\n };\n}\n\nexport { readCodePoint, readInt, readStringContents };\n//# sourceMappingURL=index.js.map\n","import { isKeyword, isStrictReservedWord, isIdentifierName, isReservedWord, isIdentifierChar } from '@babel/helper-validator-identifier';\nimport { readStringContents } from '@babel/helper-string-parser';\n\nfunction shallowEqual(actual, expected) {\n const keys = Object.keys(expected);\n for (const key of keys) {\n if (actual[key] !== expected[key]) {\n return false;\n }\n }\n return true;\n}\n\nconst warnings = new Set();\nfunction deprecationWarning(oldName, newName, prefix = \"\", cacheKey = oldName) {\n if (warnings.has(cacheKey)) return;\n warnings.add(cacheKey);\n const {\n internal,\n trace\n } = captureShortStackTrace(1, 2);\n if (internal) {\n return;\n }\n console.warn(`${prefix}\\`${oldName}\\` has been deprecated, please migrate to \\`${newName}\\`\\n${trace}`);\n}\nfunction captureShortStackTrace(skip, length) {\n const {\n stackTraceLimit,\n prepareStackTrace\n } = Error;\n let stackTrace;\n Error.stackTraceLimit = 1 + skip + length;\n Error.prepareStackTrace = function (err, stack) {\n stackTrace = stack;\n };\n new Error().stack;\n Error.stackTraceLimit = stackTraceLimit;\n Error.prepareStackTrace = prepareStackTrace;\n if (!stackTrace) return {\n internal: false,\n trace: \"\"\n };\n const shortStackTrace = stackTrace.slice(1 + skip, 1 + skip + length);\n return {\n internal: /[\\\\/]@babel[\\\\/]/.test(shortStackTrace[1].getFileName()),\n trace: shortStackTrace.map(frame => ` at ${frame}`).join(\"\\n\")\n };\n}\n\nfunction isArrayExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"ArrayExpression\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isAssignmentExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"AssignmentExpression\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isBinaryExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"BinaryExpression\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isInterpreterDirective(node, opts) {\n if (!node) return false;\n if (node.type !== \"InterpreterDirective\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isDirective(node, opts) {\n if (!node) return false;\n if (node.type !== \"Directive\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isDirectiveLiteral(node, opts) {\n if (!node) return false;\n if (node.type !== \"DirectiveLiteral\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isBlockStatement(node, opts) {\n if (!node) return false;\n if (node.type !== \"BlockStatement\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isBreakStatement(node, opts) {\n if (!node) return false;\n if (node.type !== \"BreakStatement\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isCallExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"CallExpression\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isCatchClause(node, opts) {\n if (!node) return false;\n if (node.type !== \"CatchClause\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isConditionalExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"ConditionalExpression\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isContinueStatement(node, opts) {\n if (!node) return false;\n if (node.type !== \"ContinueStatement\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isDebuggerStatement(node, opts) {\n if (!node) return false;\n if (node.type !== \"DebuggerStatement\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isDoWhileStatement(node, opts) {\n if (!node) return false;\n if (node.type !== \"DoWhileStatement\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isEmptyStatement(node, opts) {\n if (!node) return false;\n if (node.type !== \"EmptyStatement\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isExpressionStatement(node, opts) {\n if (!node) return false;\n if (node.type !== \"ExpressionStatement\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isFile(node, opts) {\n if (!node) return false;\n if (node.type !== \"File\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isForInStatement(node, opts) {\n if (!node) return false;\n if (node.type !== \"ForInStatement\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isForStatement(node, opts) {\n if (!node) return false;\n if (node.type !== \"ForStatement\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isFunctionDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"FunctionDeclaration\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isFunctionExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"FunctionExpression\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isIdentifier(node, opts) {\n if (!node) return false;\n if (node.type !== \"Identifier\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isIfStatement(node, opts) {\n if (!node) return false;\n if (node.type !== \"IfStatement\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isLabeledStatement(node, opts) {\n if (!node) return false;\n if (node.type !== \"LabeledStatement\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isStringLiteral(node, opts) {\n if (!node) return false;\n if (node.type !== \"StringLiteral\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isNumericLiteral(node, opts) {\n if (!node) return false;\n if (node.type !== \"NumericLiteral\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isNullLiteral(node, opts) {\n if (!node) return false;\n if (node.type !== \"NullLiteral\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isBooleanLiteral(node, opts) {\n if (!node) return false;\n if (node.type !== \"BooleanLiteral\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isRegExpLiteral(node, opts) {\n if (!node) return false;\n if (node.type !== \"RegExpLiteral\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isLogicalExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"LogicalExpression\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isMemberExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"MemberExpression\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isNewExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"NewExpression\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isProgram(node, opts) {\n if (!node) return false;\n if (node.type !== \"Program\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isObjectExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"ObjectExpression\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isObjectMethod(node, opts) {\n if (!node) return false;\n if (node.type !== \"ObjectMethod\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isObjectProperty(node, opts) {\n if (!node) return false;\n if (node.type !== \"ObjectProperty\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isRestElement(node, opts) {\n if (!node) return false;\n if (node.type !== \"RestElement\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isReturnStatement(node, opts) {\n if (!node) return false;\n if (node.type !== \"ReturnStatement\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isSequenceExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"SequenceExpression\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isParenthesizedExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"ParenthesizedExpression\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isSwitchCase(node, opts) {\n if (!node) return false;\n if (node.type !== \"SwitchCase\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isSwitchStatement(node, opts) {\n if (!node) return false;\n if (node.type !== \"SwitchStatement\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isThisExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"ThisExpression\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isThrowStatement(node, opts) {\n if (!node) return false;\n if (node.type !== \"ThrowStatement\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTryStatement(node, opts) {\n if (!node) return false;\n if (node.type !== \"TryStatement\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isUnaryExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"UnaryExpression\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isUpdateExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"UpdateExpression\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isVariableDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"VariableDeclaration\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isVariableDeclarator(node, opts) {\n if (!node) return false;\n if (node.type !== \"VariableDeclarator\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isWhileStatement(node, opts) {\n if (!node) return false;\n if (node.type !== \"WhileStatement\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isWithStatement(node, opts) {\n if (!node) return false;\n if (node.type !== \"WithStatement\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isAssignmentPattern(node, opts) {\n if (!node) return false;\n if (node.type !== \"AssignmentPattern\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isArrayPattern(node, opts) {\n if (!node) return false;\n if (node.type !== \"ArrayPattern\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isArrowFunctionExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"ArrowFunctionExpression\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isClassBody(node, opts) {\n if (!node) return false;\n if (node.type !== \"ClassBody\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isClassExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"ClassExpression\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isClassDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"ClassDeclaration\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isExportAllDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"ExportAllDeclaration\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isExportDefaultDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"ExportDefaultDeclaration\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isExportNamedDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"ExportNamedDeclaration\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isExportSpecifier(node, opts) {\n if (!node) return false;\n if (node.type !== \"ExportSpecifier\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isForOfStatement(node, opts) {\n if (!node) return false;\n if (node.type !== \"ForOfStatement\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isImportDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"ImportDeclaration\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isImportDefaultSpecifier(node, opts) {\n if (!node) return false;\n if (node.type !== \"ImportDefaultSpecifier\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isImportNamespaceSpecifier(node, opts) {\n if (!node) return false;\n if (node.type !== \"ImportNamespaceSpecifier\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isImportSpecifier(node, opts) {\n if (!node) return false;\n if (node.type !== \"ImportSpecifier\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isMetaProperty(node, opts) {\n if (!node) return false;\n if (node.type !== \"MetaProperty\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isClassMethod(node, opts) {\n if (!node) return false;\n if (node.type !== \"ClassMethod\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isObjectPattern(node, opts) {\n if (!node) return false;\n if (node.type !== \"ObjectPattern\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isSpreadElement(node, opts) {\n if (!node) return false;\n if (node.type !== \"SpreadElement\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isSuper(node, opts) {\n if (!node) return false;\n if (node.type !== \"Super\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTaggedTemplateExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"TaggedTemplateExpression\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTemplateElement(node, opts) {\n if (!node) return false;\n if (node.type !== \"TemplateElement\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTemplateLiteral(node, opts) {\n if (!node) return false;\n if (node.type !== \"TemplateLiteral\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isYieldExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"YieldExpression\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isAwaitExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"AwaitExpression\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isImportExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"ImportExpression\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isImport(node, opts) {\n if (!node) return false;\n if (node.type !== \"Import\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isBigIntLiteral(node, opts) {\n if (!node) return false;\n if (node.type !== \"BigIntLiteral\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isExportNamespaceSpecifier(node, opts) {\n if (!node) return false;\n if (node.type !== \"ExportNamespaceSpecifier\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isOptionalMemberExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"OptionalMemberExpression\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isOptionalCallExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"OptionalCallExpression\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isClassProperty(node, opts) {\n if (!node) return false;\n if (node.type !== \"ClassProperty\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isClassPrivateProperty(node, opts) {\n if (!node) return false;\n if (node.type !== \"ClassPrivateProperty\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isClassPrivateMethod(node, opts) {\n if (!node) return false;\n if (node.type !== \"ClassPrivateMethod\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isPrivateName(node, opts) {\n if (!node) return false;\n if (node.type !== \"PrivateName\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isStaticBlock(node, opts) {\n if (!node) return false;\n if (node.type !== \"StaticBlock\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isImportAttribute(node, opts) {\n if (!node) return false;\n if (node.type !== \"ImportAttribute\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isAnyTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"AnyTypeAnnotation\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isArrayTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"ArrayTypeAnnotation\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isBooleanTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"BooleanTypeAnnotation\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isBooleanLiteralTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"BooleanLiteralTypeAnnotation\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isNullLiteralTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"NullLiteralTypeAnnotation\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isClassImplements(node, opts) {\n if (!node) return false;\n if (node.type !== \"ClassImplements\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isDeclareClass(node, opts) {\n if (!node) return false;\n if (node.type !== \"DeclareClass\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isDeclareFunction(node, opts) {\n if (!node) return false;\n if (node.type !== \"DeclareFunction\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isDeclareInterface(node, opts) {\n if (!node) return false;\n if (node.type !== \"DeclareInterface\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isDeclareModule(node, opts) {\n if (!node) return false;\n if (node.type !== \"DeclareModule\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isDeclareModuleExports(node, opts) {\n if (!node) return false;\n if (node.type !== \"DeclareModuleExports\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isDeclareTypeAlias(node, opts) {\n if (!node) return false;\n if (node.type !== \"DeclareTypeAlias\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isDeclareOpaqueType(node, opts) {\n if (!node) return false;\n if (node.type !== \"DeclareOpaqueType\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isDeclareVariable(node, opts) {\n if (!node) return false;\n if (node.type !== \"DeclareVariable\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isDeclareExportDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"DeclareExportDeclaration\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isDeclareExportAllDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"DeclareExportAllDeclaration\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isDeclaredPredicate(node, opts) {\n if (!node) return false;\n if (node.type !== \"DeclaredPredicate\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isExistsTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"ExistsTypeAnnotation\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isFunctionTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"FunctionTypeAnnotation\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isFunctionTypeParam(node, opts) {\n if (!node) return false;\n if (node.type !== \"FunctionTypeParam\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isGenericTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"GenericTypeAnnotation\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isInferredPredicate(node, opts) {\n if (!node) return false;\n if (node.type !== \"InferredPredicate\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isInterfaceExtends(node, opts) {\n if (!node) return false;\n if (node.type !== \"InterfaceExtends\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isInterfaceDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"InterfaceDeclaration\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isInterfaceTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"InterfaceTypeAnnotation\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isIntersectionTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"IntersectionTypeAnnotation\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isMixedTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"MixedTypeAnnotation\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isEmptyTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"EmptyTypeAnnotation\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isNullableTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"NullableTypeAnnotation\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isNumberLiteralTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"NumberLiteralTypeAnnotation\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isBigIntLiteralTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"BigIntLiteralTypeAnnotation\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isNumberTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"NumberTypeAnnotation\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isObjectTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"ObjectTypeAnnotation\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isObjectTypeInternalSlot(node, opts) {\n if (!node) return false;\n if (node.type !== \"ObjectTypeInternalSlot\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isObjectTypeCallProperty(node, opts) {\n if (!node) return false;\n if (node.type !== \"ObjectTypeCallProperty\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isObjectTypeIndexer(node, opts) {\n if (!node) return false;\n if (node.type !== \"ObjectTypeIndexer\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isObjectTypeProperty(node, opts) {\n if (!node) return false;\n if (node.type !== \"ObjectTypeProperty\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isObjectTypeSpreadProperty(node, opts) {\n if (!node) return false;\n if (node.type !== \"ObjectTypeSpreadProperty\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isOpaqueType(node, opts) {\n if (!node) return false;\n if (node.type !== \"OpaqueType\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isQualifiedTypeIdentifier(node, opts) {\n if (!node) return false;\n if (node.type !== \"QualifiedTypeIdentifier\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isStringLiteralTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"StringLiteralTypeAnnotation\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isStringTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"StringTypeAnnotation\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isSymbolTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"SymbolTypeAnnotation\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isThisTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"ThisTypeAnnotation\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTupleTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"TupleTypeAnnotation\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTypeofTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"TypeofTypeAnnotation\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTypeAlias(node, opts) {\n if (!node) return false;\n if (node.type !== \"TypeAlias\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"TypeAnnotation\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTypeCastExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"TypeCastExpression\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTypeParameter(node, opts) {\n if (!node) return false;\n if (node.type !== \"TypeParameter\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTypeParameterDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"TypeParameterDeclaration\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTypeParameterInstantiation(node, opts) {\n if (!node) return false;\n if (node.type !== \"TypeParameterInstantiation\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isUnionTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"UnionTypeAnnotation\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isVariance(node, opts) {\n if (!node) return false;\n if (node.type !== \"Variance\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isVoidTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"VoidTypeAnnotation\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isEnumDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"EnumDeclaration\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isEnumBooleanBody(node, opts) {\n if (!node) return false;\n if (node.type !== \"EnumBooleanBody\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isEnumNumberBody(node, opts) {\n if (!node) return false;\n if (node.type !== \"EnumNumberBody\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isEnumStringBody(node, opts) {\n if (!node) return false;\n if (node.type !== \"EnumStringBody\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isEnumSymbolBody(node, opts) {\n if (!node) return false;\n if (node.type !== \"EnumSymbolBody\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isEnumBooleanMember(node, opts) {\n if (!node) return false;\n if (node.type !== \"EnumBooleanMember\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isEnumNumberMember(node, opts) {\n if (!node) return false;\n if (node.type !== \"EnumNumberMember\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isEnumStringMember(node, opts) {\n if (!node) return false;\n if (node.type !== \"EnumStringMember\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isEnumDefaultedMember(node, opts) {\n if (!node) return false;\n if (node.type !== \"EnumDefaultedMember\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isIndexedAccessType(node, opts) {\n if (!node) return false;\n if (node.type !== \"IndexedAccessType\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isOptionalIndexedAccessType(node, opts) {\n if (!node) return false;\n if (node.type !== \"OptionalIndexedAccessType\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isJSXAttribute(node, opts) {\n if (!node) return false;\n if (node.type !== \"JSXAttribute\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isJSXClosingElement(node, opts) {\n if (!node) return false;\n if (node.type !== \"JSXClosingElement\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isJSXElement(node, opts) {\n if (!node) return false;\n if (node.type !== \"JSXElement\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isJSXEmptyExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"JSXEmptyExpression\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isJSXExpressionContainer(node, opts) {\n if (!node) return false;\n if (node.type !== \"JSXExpressionContainer\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isJSXSpreadChild(node, opts) {\n if (!node) return false;\n if (node.type !== \"JSXSpreadChild\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isJSXIdentifier(node, opts) {\n if (!node) return false;\n if (node.type !== \"JSXIdentifier\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isJSXMemberExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"JSXMemberExpression\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isJSXNamespacedName(node, opts) {\n if (!node) return false;\n if (node.type !== \"JSXNamespacedName\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isJSXOpeningElement(node, opts) {\n if (!node) return false;\n if (node.type !== \"JSXOpeningElement\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isJSXSpreadAttribute(node, opts) {\n if (!node) return false;\n if (node.type !== \"JSXSpreadAttribute\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isJSXText(node, opts) {\n if (!node) return false;\n if (node.type !== \"JSXText\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isJSXFragment(node, opts) {\n if (!node) return false;\n if (node.type !== \"JSXFragment\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isJSXOpeningFragment(node, opts) {\n if (!node) return false;\n if (node.type !== \"JSXOpeningFragment\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isJSXClosingFragment(node, opts) {\n if (!node) return false;\n if (node.type !== \"JSXClosingFragment\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isPlaceholder(node, opts) {\n if (!node) return false;\n if (node.type !== \"Placeholder\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isV8IntrinsicIdentifier(node, opts) {\n if (!node) return false;\n if (node.type !== \"V8IntrinsicIdentifier\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isArgumentPlaceholder(node, opts) {\n if (!node) return false;\n if (node.type !== \"ArgumentPlaceholder\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isBindExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"BindExpression\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isClassAccessorProperty(node, opts) {\n if (!node) return false;\n if (node.type !== \"ClassAccessorProperty\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isDecorator(node, opts) {\n if (!node) return false;\n if (node.type !== \"Decorator\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isDoExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"DoExpression\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isExportDefaultSpecifier(node, opts) {\n if (!node) return false;\n if (node.type !== \"ExportDefaultSpecifier\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isModuleExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"ModuleExpression\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTopicReference(node, opts) {\n if (!node) return false;\n if (node.type !== \"TopicReference\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isVoidPattern(node, opts) {\n if (!node) return false;\n if (node.type !== \"VoidPattern\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSParameterProperty(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSParameterProperty\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSDeclareFunction(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSDeclareFunction\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSDeclareMethod(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSDeclareMethod\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSQualifiedName(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSQualifiedName\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSCallSignatureDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSCallSignatureDeclaration\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSConstructSignatureDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSConstructSignatureDeclaration\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSPropertySignature(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSPropertySignature\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSMethodSignature(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSMethodSignature\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSIndexSignature(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSIndexSignature\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSAnyKeyword(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSAnyKeyword\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSBooleanKeyword(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSBooleanKeyword\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSBigIntKeyword(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSBigIntKeyword\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSIntrinsicKeyword(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSIntrinsicKeyword\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSNeverKeyword(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSNeverKeyword\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSNullKeyword(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSNullKeyword\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSNumberKeyword(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSNumberKeyword\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSObjectKeyword(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSObjectKeyword\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSStringKeyword(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSStringKeyword\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSSymbolKeyword(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSSymbolKeyword\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSUndefinedKeyword(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSUndefinedKeyword\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSUnknownKeyword(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSUnknownKeyword\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSVoidKeyword(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSVoidKeyword\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSThisType(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSThisType\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSFunctionType(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSFunctionType\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSConstructorType(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSConstructorType\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSTypeReference(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSTypeReference\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSTypePredicate(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSTypePredicate\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSTypeQuery(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSTypeQuery\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSTypeLiteral(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSTypeLiteral\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSArrayType(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSArrayType\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSTupleType(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSTupleType\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSOptionalType(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSOptionalType\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSRestType(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSRestType\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSNamedTupleMember(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSNamedTupleMember\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSUnionType(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSUnionType\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSIntersectionType(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSIntersectionType\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSConditionalType(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSConditionalType\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSInferType(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSInferType\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSParenthesizedType(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSParenthesizedType\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSTypeOperator(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSTypeOperator\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSIndexedAccessType(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSIndexedAccessType\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSMappedType(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSMappedType\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSTemplateLiteralType(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSTemplateLiteralType\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSLiteralType(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSLiteralType\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSClassImplements(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSClassImplements\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSInterfaceHeritage(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSInterfaceHeritage\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSInterfaceDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSInterfaceDeclaration\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSInterfaceBody(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSInterfaceBody\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSTypeAliasDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSTypeAliasDeclaration\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSInstantiationExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSInstantiationExpression\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSAsExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSAsExpression\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSSatisfiesExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSSatisfiesExpression\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSTypeAssertion(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSTypeAssertion\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSEnumBody(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSEnumBody\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSEnumDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSEnumDeclaration\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSEnumMember(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSEnumMember\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSModuleDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSModuleDeclaration\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSModuleBlock(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSModuleBlock\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSImportType(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSImportType\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSImportEqualsDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSImportEqualsDeclaration\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSExternalModuleReference(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSExternalModuleReference\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSNonNullExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSNonNullExpression\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSExportAssignment(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSExportAssignment\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSNamespaceExportDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSNamespaceExportDeclaration\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSTypeAnnotation\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSTypeParameterInstantiation(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSTypeParameterInstantiation\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSTypeParameterDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSTypeParameterDeclaration\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSTypeParameter(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSTypeParameter\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isStandardized(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"ArrayExpression\":\n case \"AssignmentExpression\":\n case \"BinaryExpression\":\n case \"InterpreterDirective\":\n case \"Directive\":\n case \"DirectiveLiteral\":\n case \"BlockStatement\":\n case \"BreakStatement\":\n case \"CallExpression\":\n case \"CatchClause\":\n case \"ConditionalExpression\":\n case \"ContinueStatement\":\n case \"DebuggerStatement\":\n case \"DoWhileStatement\":\n case \"EmptyStatement\":\n case \"ExpressionStatement\":\n case \"File\":\n case \"ForInStatement\":\n case \"ForStatement\":\n case \"FunctionDeclaration\":\n case \"FunctionExpression\":\n case \"Identifier\":\n case \"IfStatement\":\n case \"LabeledStatement\":\n case \"StringLiteral\":\n case \"NumericLiteral\":\n case \"NullLiteral\":\n case \"BooleanLiteral\":\n case \"RegExpLiteral\":\n case \"LogicalExpression\":\n case \"MemberExpression\":\n case \"NewExpression\":\n case \"Program\":\n case \"ObjectExpression\":\n case \"ObjectMethod\":\n case \"ObjectProperty\":\n case \"RestElement\":\n case \"ReturnStatement\":\n case \"SequenceExpression\":\n case \"ParenthesizedExpression\":\n case \"SwitchCase\":\n case \"SwitchStatement\":\n case \"ThisExpression\":\n case \"ThrowStatement\":\n case \"TryStatement\":\n case \"UnaryExpression\":\n case \"UpdateExpression\":\n case \"VariableDeclaration\":\n case \"VariableDeclarator\":\n case \"WhileStatement\":\n case \"WithStatement\":\n case \"AssignmentPattern\":\n case \"ArrayPattern\":\n case \"ArrowFunctionExpression\":\n case \"ClassBody\":\n case \"ClassExpression\":\n case \"ClassDeclaration\":\n case \"ExportAllDeclaration\":\n case \"ExportDefaultDeclaration\":\n case \"ExportNamedDeclaration\":\n case \"ExportSpecifier\":\n case \"ForOfStatement\":\n case \"ImportDeclaration\":\n case \"ImportDefaultSpecifier\":\n case \"ImportNamespaceSpecifier\":\n case \"ImportSpecifier\":\n case \"MetaProperty\":\n case \"ClassMethod\":\n case \"ObjectPattern\":\n case \"SpreadElement\":\n case \"Super\":\n case \"TaggedTemplateExpression\":\n case \"TemplateElement\":\n case \"TemplateLiteral\":\n case \"YieldExpression\":\n case \"AwaitExpression\":\n case \"ImportExpression\":\n case \"Import\":\n case \"BigIntLiteral\":\n case \"ExportNamespaceSpecifier\":\n case \"OptionalMemberExpression\":\n case \"OptionalCallExpression\":\n case \"ClassProperty\":\n case \"ClassPrivateProperty\":\n case \"ClassPrivateMethod\":\n case \"PrivateName\":\n case \"StaticBlock\":\n case \"ImportAttribute\":\n break;\n case \"Placeholder\":\n switch (node.expectedNode) {\n case \"Identifier\":\n case \"StringLiteral\":\n case \"BlockStatement\":\n case \"ClassBody\":\n break;\n default:\n return false;\n }\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isExpression(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"ArrayExpression\":\n case \"AssignmentExpression\":\n case \"BinaryExpression\":\n case \"CallExpression\":\n case \"ConditionalExpression\":\n case \"FunctionExpression\":\n case \"Identifier\":\n case \"StringLiteral\":\n case \"NumericLiteral\":\n case \"NullLiteral\":\n case \"BooleanLiteral\":\n case \"RegExpLiteral\":\n case \"LogicalExpression\":\n case \"MemberExpression\":\n case \"NewExpression\":\n case \"ObjectExpression\":\n case \"SequenceExpression\":\n case \"ParenthesizedExpression\":\n case \"ThisExpression\":\n case \"UnaryExpression\":\n case \"UpdateExpression\":\n case \"ArrowFunctionExpression\":\n case \"ClassExpression\":\n case \"MetaProperty\":\n case \"TaggedTemplateExpression\":\n case \"TemplateLiteral\":\n case \"YieldExpression\":\n case \"AwaitExpression\":\n case \"ImportExpression\":\n case \"BigIntLiteral\":\n case \"OptionalMemberExpression\":\n case \"OptionalCallExpression\":\n case \"TypeCastExpression\":\n case \"JSXElement\":\n case \"JSXFragment\":\n case \"BindExpression\":\n case \"DoExpression\":\n case \"ModuleExpression\":\n case \"TopicReference\":\n case \"TSInstantiationExpression\":\n case \"TSAsExpression\":\n case \"TSSatisfiesExpression\":\n case \"TSTypeAssertion\":\n case \"TSNonNullExpression\":\n break;\n case \"Placeholder\":\n switch (node.expectedNode) {\n case \"Expression\":\n case \"Identifier\":\n case \"StringLiteral\":\n break;\n default:\n return false;\n }\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isBinary(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"BinaryExpression\":\n case \"LogicalExpression\":\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isScopable(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"BlockStatement\":\n case \"CatchClause\":\n case \"DoWhileStatement\":\n case \"ForInStatement\":\n case \"ForStatement\":\n case \"FunctionDeclaration\":\n case \"FunctionExpression\":\n case \"Program\":\n case \"ObjectMethod\":\n case \"SwitchStatement\":\n case \"WhileStatement\":\n case \"ArrowFunctionExpression\":\n case \"ClassExpression\":\n case \"ClassDeclaration\":\n case \"ForOfStatement\":\n case \"ClassMethod\":\n case \"ClassPrivateMethod\":\n case \"StaticBlock\":\n case \"TSModuleBlock\":\n break;\n case \"Placeholder\":\n if (node.expectedNode === \"BlockStatement\") break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isBlockParent(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"BlockStatement\":\n case \"CatchClause\":\n case \"DoWhileStatement\":\n case \"ForInStatement\":\n case \"ForStatement\":\n case \"FunctionDeclaration\":\n case \"FunctionExpression\":\n case \"Program\":\n case \"ObjectMethod\":\n case \"SwitchStatement\":\n case \"WhileStatement\":\n case \"ArrowFunctionExpression\":\n case \"ForOfStatement\":\n case \"ClassMethod\":\n case \"ClassPrivateMethod\":\n case \"StaticBlock\":\n case \"TSModuleBlock\":\n break;\n case \"Placeholder\":\n if (node.expectedNode === \"BlockStatement\") break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isBlock(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"BlockStatement\":\n case \"Program\":\n case \"TSModuleBlock\":\n break;\n case \"Placeholder\":\n if (node.expectedNode === \"BlockStatement\") break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isStatement(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"BlockStatement\":\n case \"BreakStatement\":\n case \"ContinueStatement\":\n case \"DebuggerStatement\":\n case \"DoWhileStatement\":\n case \"EmptyStatement\":\n case \"ExpressionStatement\":\n case \"ForInStatement\":\n case \"ForStatement\":\n case \"FunctionDeclaration\":\n case \"IfStatement\":\n case \"LabeledStatement\":\n case \"ReturnStatement\":\n case \"SwitchStatement\":\n case \"ThrowStatement\":\n case \"TryStatement\":\n case \"VariableDeclaration\":\n case \"WhileStatement\":\n case \"WithStatement\":\n case \"ClassDeclaration\":\n case \"ExportAllDeclaration\":\n case \"ExportDefaultDeclaration\":\n case \"ExportNamedDeclaration\":\n case \"ForOfStatement\":\n case \"ImportDeclaration\":\n case \"DeclareClass\":\n case \"DeclareFunction\":\n case \"DeclareInterface\":\n case \"DeclareModule\":\n case \"DeclareModuleExports\":\n case \"DeclareTypeAlias\":\n case \"DeclareOpaqueType\":\n case \"DeclareVariable\":\n case \"DeclareExportDeclaration\":\n case \"DeclareExportAllDeclaration\":\n case \"InterfaceDeclaration\":\n case \"OpaqueType\":\n case \"TypeAlias\":\n case \"EnumDeclaration\":\n case \"TSDeclareFunction\":\n case \"TSInterfaceDeclaration\":\n case \"TSTypeAliasDeclaration\":\n case \"TSEnumDeclaration\":\n case \"TSModuleDeclaration\":\n case \"TSImportEqualsDeclaration\":\n case \"TSExportAssignment\":\n case \"TSNamespaceExportDeclaration\":\n break;\n case \"Placeholder\":\n switch (node.expectedNode) {\n case \"Statement\":\n case \"Declaration\":\n case \"BlockStatement\":\n break;\n default:\n return false;\n }\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTerminatorless(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"BreakStatement\":\n case \"ContinueStatement\":\n case \"ReturnStatement\":\n case \"ThrowStatement\":\n case \"YieldExpression\":\n case \"AwaitExpression\":\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isCompletionStatement(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"BreakStatement\":\n case \"ContinueStatement\":\n case \"ReturnStatement\":\n case \"ThrowStatement\":\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isConditional(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"ConditionalExpression\":\n case \"IfStatement\":\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isLoop(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"DoWhileStatement\":\n case \"ForInStatement\":\n case \"ForStatement\":\n case \"WhileStatement\":\n case \"ForOfStatement\":\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isWhile(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"DoWhileStatement\":\n case \"WhileStatement\":\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isExpressionWrapper(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"ExpressionStatement\":\n case \"ParenthesizedExpression\":\n case \"TypeCastExpression\":\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isFor(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"ForInStatement\":\n case \"ForStatement\":\n case \"ForOfStatement\":\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isForXStatement(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"ForInStatement\":\n case \"ForOfStatement\":\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isFunction(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"FunctionDeclaration\":\n case \"FunctionExpression\":\n case \"ObjectMethod\":\n case \"ArrowFunctionExpression\":\n case \"ClassMethod\":\n case \"ClassPrivateMethod\":\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isFunctionParent(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"FunctionDeclaration\":\n case \"FunctionExpression\":\n case \"ObjectMethod\":\n case \"ArrowFunctionExpression\":\n case \"ClassMethod\":\n case \"ClassPrivateMethod\":\n case \"StaticBlock\":\n case \"TSModuleBlock\":\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isPureish(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"FunctionDeclaration\":\n case \"FunctionExpression\":\n case \"StringLiteral\":\n case \"NumericLiteral\":\n case \"NullLiteral\":\n case \"BooleanLiteral\":\n case \"RegExpLiteral\":\n case \"ArrowFunctionExpression\":\n case \"BigIntLiteral\":\n break;\n case \"Placeholder\":\n if (node.expectedNode === \"StringLiteral\") break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isDeclaration(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"FunctionDeclaration\":\n case \"VariableDeclaration\":\n case \"ClassDeclaration\":\n case \"ExportAllDeclaration\":\n case \"ExportDefaultDeclaration\":\n case \"ExportNamedDeclaration\":\n case \"ImportDeclaration\":\n case \"DeclareClass\":\n case \"DeclareFunction\":\n case \"DeclareInterface\":\n case \"DeclareModule\":\n case \"DeclareModuleExports\":\n case \"DeclareTypeAlias\":\n case \"DeclareOpaqueType\":\n case \"DeclareVariable\":\n case \"DeclareExportDeclaration\":\n case \"DeclareExportAllDeclaration\":\n case \"InterfaceDeclaration\":\n case \"OpaqueType\":\n case \"TypeAlias\":\n case \"EnumDeclaration\":\n case \"TSDeclareFunction\":\n case \"TSInterfaceDeclaration\":\n case \"TSTypeAliasDeclaration\":\n case \"TSEnumDeclaration\":\n case \"TSModuleDeclaration\":\n case \"TSImportEqualsDeclaration\":\n break;\n case \"Placeholder\":\n if (node.expectedNode === \"Declaration\") break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isFunctionParameter(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"Identifier\":\n case \"RestElement\":\n case \"AssignmentPattern\":\n case \"ArrayPattern\":\n case \"ObjectPattern\":\n case \"VoidPattern\":\n break;\n case \"Placeholder\":\n if (node.expectedNode === \"Identifier\") break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isPatternLike(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"Identifier\":\n case \"MemberExpression\":\n case \"RestElement\":\n case \"AssignmentPattern\":\n case \"ArrayPattern\":\n case \"ObjectPattern\":\n case \"VoidPattern\":\n case \"TSAsExpression\":\n case \"TSSatisfiesExpression\":\n case \"TSTypeAssertion\":\n case \"TSNonNullExpression\":\n break;\n case \"Placeholder\":\n switch (node.expectedNode) {\n case \"Pattern\":\n case \"Identifier\":\n break;\n default:\n return false;\n }\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isLVal(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"Identifier\":\n case \"MemberExpression\":\n case \"ArrayPattern\":\n case \"ObjectPattern\":\n case \"TSAsExpression\":\n case \"TSSatisfiesExpression\":\n case \"TSTypeAssertion\":\n case \"TSNonNullExpression\":\n break;\n case \"Placeholder\":\n switch (node.expectedNode) {\n case \"Pattern\":\n case \"Identifier\":\n break;\n default:\n return false;\n }\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSEntityName(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"Identifier\":\n case \"ThisExpression\":\n case \"TSQualifiedName\":\n break;\n case \"Placeholder\":\n if (node.expectedNode === \"Identifier\") break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isLiteral(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"StringLiteral\":\n case \"NumericLiteral\":\n case \"NullLiteral\":\n case \"BooleanLiteral\":\n case \"RegExpLiteral\":\n case \"TemplateLiteral\":\n case \"BigIntLiteral\":\n break;\n case \"Placeholder\":\n if (node.expectedNode === \"StringLiteral\") break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isUserWhitespacable(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"ObjectMethod\":\n case \"ObjectProperty\":\n case \"ObjectTypeInternalSlot\":\n case \"ObjectTypeCallProperty\":\n case \"ObjectTypeIndexer\":\n case \"ObjectTypeProperty\":\n case \"ObjectTypeSpreadProperty\":\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isMethod(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"ObjectMethod\":\n case \"ClassMethod\":\n case \"ClassPrivateMethod\":\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isObjectMember(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"ObjectMethod\":\n case \"ObjectProperty\":\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isProperty(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"ObjectProperty\":\n case \"ClassProperty\":\n case \"ClassPrivateProperty\":\n case \"ClassAccessorProperty\":\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isUnaryLike(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"UnaryExpression\":\n case \"SpreadElement\":\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isPattern(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"AssignmentPattern\":\n case \"ArrayPattern\":\n case \"ObjectPattern\":\n case \"VoidPattern\":\n break;\n case \"Placeholder\":\n if (node.expectedNode === \"Pattern\") break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isClass(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"ClassExpression\":\n case \"ClassDeclaration\":\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isImportOrExportDeclaration(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"ExportAllDeclaration\":\n case \"ExportDefaultDeclaration\":\n case \"ExportNamedDeclaration\":\n case \"ImportDeclaration\":\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isExportDeclaration(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"ExportAllDeclaration\":\n case \"ExportDefaultDeclaration\":\n case \"ExportNamedDeclaration\":\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isModuleSpecifier(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"ExportSpecifier\":\n case \"ImportDefaultSpecifier\":\n case \"ImportNamespaceSpecifier\":\n case \"ImportSpecifier\":\n case \"ExportNamespaceSpecifier\":\n case \"ExportDefaultSpecifier\":\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isPrivate(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"ClassPrivateProperty\":\n case \"ClassPrivateMethod\":\n case \"PrivateName\":\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isFlow(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"AnyTypeAnnotation\":\n case \"ArrayTypeAnnotation\":\n case \"BooleanTypeAnnotation\":\n case \"BooleanLiteralTypeAnnotation\":\n case \"NullLiteralTypeAnnotation\":\n case \"ClassImplements\":\n case \"DeclareClass\":\n case \"DeclareFunction\":\n case \"DeclareInterface\":\n case \"DeclareModule\":\n case \"DeclareModuleExports\":\n case \"DeclareTypeAlias\":\n case \"DeclareOpaqueType\":\n case \"DeclareVariable\":\n case \"DeclareExportDeclaration\":\n case \"DeclareExportAllDeclaration\":\n case \"DeclaredPredicate\":\n case \"ExistsTypeAnnotation\":\n case \"FunctionTypeAnnotation\":\n case \"FunctionTypeParam\":\n case \"GenericTypeAnnotation\":\n case \"InferredPredicate\":\n case \"InterfaceExtends\":\n case \"InterfaceDeclaration\":\n case \"InterfaceTypeAnnotation\":\n case \"IntersectionTypeAnnotation\":\n case \"MixedTypeAnnotation\":\n case \"EmptyTypeAnnotation\":\n case \"NullableTypeAnnotation\":\n case \"NumberLiteralTypeAnnotation\":\n case \"BigIntLiteralTypeAnnotation\":\n case \"NumberTypeAnnotation\":\n case \"ObjectTypeAnnotation\":\n case \"ObjectTypeInternalSlot\":\n case \"ObjectTypeCallProperty\":\n case \"ObjectTypeIndexer\":\n case \"ObjectTypeProperty\":\n case \"ObjectTypeSpreadProperty\":\n case \"OpaqueType\":\n case \"QualifiedTypeIdentifier\":\n case \"StringLiteralTypeAnnotation\":\n case \"StringTypeAnnotation\":\n case \"SymbolTypeAnnotation\":\n case \"ThisTypeAnnotation\":\n case \"TupleTypeAnnotation\":\n case \"TypeofTypeAnnotation\":\n case \"TypeAlias\":\n case \"TypeAnnotation\":\n case \"TypeCastExpression\":\n case \"TypeParameter\":\n case \"TypeParameterDeclaration\":\n case \"TypeParameterInstantiation\":\n case \"UnionTypeAnnotation\":\n case \"Variance\":\n case \"VoidTypeAnnotation\":\n case \"EnumDeclaration\":\n case \"EnumBooleanBody\":\n case \"EnumNumberBody\":\n case \"EnumStringBody\":\n case \"EnumSymbolBody\":\n case \"EnumBooleanMember\":\n case \"EnumNumberMember\":\n case \"EnumStringMember\":\n case \"EnumDefaultedMember\":\n case \"IndexedAccessType\":\n case \"OptionalIndexedAccessType\":\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isFlowType(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"AnyTypeAnnotation\":\n case \"ArrayTypeAnnotation\":\n case \"BooleanTypeAnnotation\":\n case \"BooleanLiteralTypeAnnotation\":\n case \"NullLiteralTypeAnnotation\":\n case \"ExistsTypeAnnotation\":\n case \"FunctionTypeAnnotation\":\n case \"GenericTypeAnnotation\":\n case \"InterfaceTypeAnnotation\":\n case \"IntersectionTypeAnnotation\":\n case \"MixedTypeAnnotation\":\n case \"EmptyTypeAnnotation\":\n case \"NullableTypeAnnotation\":\n case \"NumberLiteralTypeAnnotation\":\n case \"BigIntLiteralTypeAnnotation\":\n case \"NumberTypeAnnotation\":\n case \"ObjectTypeAnnotation\":\n case \"StringLiteralTypeAnnotation\":\n case \"StringTypeAnnotation\":\n case \"SymbolTypeAnnotation\":\n case \"ThisTypeAnnotation\":\n case \"TupleTypeAnnotation\":\n case \"TypeofTypeAnnotation\":\n case \"UnionTypeAnnotation\":\n case \"VoidTypeAnnotation\":\n case \"IndexedAccessType\":\n case \"OptionalIndexedAccessType\":\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isFlowBaseAnnotation(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"AnyTypeAnnotation\":\n case \"BooleanTypeAnnotation\":\n case \"NullLiteralTypeAnnotation\":\n case \"MixedTypeAnnotation\":\n case \"EmptyTypeAnnotation\":\n case \"NumberTypeAnnotation\":\n case \"StringTypeAnnotation\":\n case \"SymbolTypeAnnotation\":\n case \"ThisTypeAnnotation\":\n case \"VoidTypeAnnotation\":\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isFlowDeclaration(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"DeclareClass\":\n case \"DeclareFunction\":\n case \"DeclareInterface\":\n case \"DeclareModule\":\n case \"DeclareModuleExports\":\n case \"DeclareTypeAlias\":\n case \"DeclareOpaqueType\":\n case \"DeclareVariable\":\n case \"DeclareExportDeclaration\":\n case \"DeclareExportAllDeclaration\":\n case \"InterfaceDeclaration\":\n case \"OpaqueType\":\n case \"TypeAlias\":\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isFlowPredicate(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"DeclaredPredicate\":\n case \"InferredPredicate\":\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isEnumBody(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"EnumBooleanBody\":\n case \"EnumNumberBody\":\n case \"EnumStringBody\":\n case \"EnumSymbolBody\":\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isEnumMember(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"EnumBooleanMember\":\n case \"EnumNumberMember\":\n case \"EnumStringMember\":\n case \"EnumDefaultedMember\":\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isJSX(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"JSXAttribute\":\n case \"JSXClosingElement\":\n case \"JSXElement\":\n case \"JSXEmptyExpression\":\n case \"JSXExpressionContainer\":\n case \"JSXSpreadChild\":\n case \"JSXIdentifier\":\n case \"JSXMemberExpression\":\n case \"JSXNamespacedName\":\n case \"JSXOpeningElement\":\n case \"JSXSpreadAttribute\":\n case \"JSXText\":\n case \"JSXFragment\":\n case \"JSXOpeningFragment\":\n case \"JSXClosingFragment\":\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isMiscellaneous(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"Placeholder\":\n case \"V8IntrinsicIdentifier\":\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isAccessor(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"ClassAccessorProperty\":\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTypeScript(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"TSParameterProperty\":\n case \"TSDeclareFunction\":\n case \"TSDeclareMethod\":\n case \"TSQualifiedName\":\n case \"TSCallSignatureDeclaration\":\n case \"TSConstructSignatureDeclaration\":\n case \"TSPropertySignature\":\n case \"TSMethodSignature\":\n case \"TSIndexSignature\":\n case \"TSAnyKeyword\":\n case \"TSBooleanKeyword\":\n case \"TSBigIntKeyword\":\n case \"TSIntrinsicKeyword\":\n case \"TSNeverKeyword\":\n case \"TSNullKeyword\":\n case \"TSNumberKeyword\":\n case \"TSObjectKeyword\":\n case \"TSStringKeyword\":\n case \"TSSymbolKeyword\":\n case \"TSUndefinedKeyword\":\n case \"TSUnknownKeyword\":\n case \"TSVoidKeyword\":\n case \"TSThisType\":\n case \"TSFunctionType\":\n case \"TSConstructorType\":\n case \"TSTypeReference\":\n case \"TSTypePredicate\":\n case \"TSTypeQuery\":\n case \"TSTypeLiteral\":\n case \"TSArrayType\":\n case \"TSTupleType\":\n case \"TSOptionalType\":\n case \"TSRestType\":\n case \"TSNamedTupleMember\":\n case \"TSUnionType\":\n case \"TSIntersectionType\":\n case \"TSConditionalType\":\n case \"TSInferType\":\n case \"TSParenthesizedType\":\n case \"TSTypeOperator\":\n case \"TSIndexedAccessType\":\n case \"TSMappedType\":\n case \"TSTemplateLiteralType\":\n case \"TSLiteralType\":\n case \"TSClassImplements\":\n case \"TSInterfaceHeritage\":\n case \"TSInterfaceDeclaration\":\n case \"TSInterfaceBody\":\n case \"TSTypeAliasDeclaration\":\n case \"TSInstantiationExpression\":\n case \"TSAsExpression\":\n case \"TSSatisfiesExpression\":\n case \"TSTypeAssertion\":\n case \"TSEnumBody\":\n case \"TSEnumDeclaration\":\n case \"TSEnumMember\":\n case \"TSModuleDeclaration\":\n case \"TSModuleBlock\":\n case \"TSImportType\":\n case \"TSImportEqualsDeclaration\":\n case \"TSExternalModuleReference\":\n case \"TSNonNullExpression\":\n case \"TSExportAssignment\":\n case \"TSNamespaceExportDeclaration\":\n case \"TSTypeAnnotation\":\n case \"TSTypeParameterInstantiation\":\n case \"TSTypeParameterDeclaration\":\n case \"TSTypeParameter\":\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSTypeElement(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"TSCallSignatureDeclaration\":\n case \"TSConstructSignatureDeclaration\":\n case \"TSPropertySignature\":\n case \"TSMethodSignature\":\n case \"TSIndexSignature\":\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSType(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"TSAnyKeyword\":\n case \"TSBooleanKeyword\":\n case \"TSBigIntKeyword\":\n case \"TSIntrinsicKeyword\":\n case \"TSNeverKeyword\":\n case \"TSNullKeyword\":\n case \"TSNumberKeyword\":\n case \"TSObjectKeyword\":\n case \"TSStringKeyword\":\n case \"TSSymbolKeyword\":\n case \"TSUndefinedKeyword\":\n case \"TSUnknownKeyword\":\n case \"TSVoidKeyword\":\n case \"TSThisType\":\n case \"TSFunctionType\":\n case \"TSConstructorType\":\n case \"TSTypeReference\":\n case \"TSTypePredicate\":\n case \"TSTypeQuery\":\n case \"TSTypeLiteral\":\n case \"TSArrayType\":\n case \"TSTupleType\":\n case \"TSOptionalType\":\n case \"TSRestType\":\n case \"TSUnionType\":\n case \"TSIntersectionType\":\n case \"TSConditionalType\":\n case \"TSInferType\":\n case \"TSParenthesizedType\":\n case \"TSTypeOperator\":\n case \"TSIndexedAccessType\":\n case \"TSMappedType\":\n case \"TSTemplateLiteralType\":\n case \"TSLiteralType\":\n case \"TSClassImplements\":\n case \"TSInterfaceHeritage\":\n case \"TSImportType\":\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isTSBaseType(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"TSAnyKeyword\":\n case \"TSBooleanKeyword\":\n case \"TSBigIntKeyword\":\n case \"TSIntrinsicKeyword\":\n case \"TSNeverKeyword\":\n case \"TSNullKeyword\":\n case \"TSNumberKeyword\":\n case \"TSObjectKeyword\":\n case \"TSStringKeyword\":\n case \"TSSymbolKeyword\":\n case \"TSUndefinedKeyword\":\n case \"TSUnknownKeyword\":\n case \"TSVoidKeyword\":\n case \"TSThisType\":\n case \"TSTemplateLiteralType\":\n case \"TSLiteralType\":\n break;\n default:\n return false;\n }\n return opts == null || shallowEqual(node, opts);\n}\nfunction isNumberLiteral(node, opts) {\n deprecationWarning(\"isNumberLiteral\", \"isNumericLiteral\");\n if (!node) return false;\n if (node.type !== \"NumberLiteral\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isRegexLiteral(node, opts) {\n deprecationWarning(\"isRegexLiteral\", \"isRegExpLiteral\");\n if (!node) return false;\n if (node.type !== \"RegexLiteral\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isRestProperty(node, opts) {\n deprecationWarning(\"isRestProperty\", \"isRestElement\");\n if (!node) return false;\n if (node.type !== \"RestProperty\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isSpreadProperty(node, opts) {\n deprecationWarning(\"isSpreadProperty\", \"isSpreadElement\");\n if (!node) return false;\n if (node.type !== \"SpreadProperty\") return false;\n return opts == null || shallowEqual(node, opts);\n}\nfunction isModuleDeclaration(node, opts) {\n deprecationWarning(\"isModuleDeclaration\", \"isImportOrExportDeclaration\");\n return isImportOrExportDeclaration(node, opts);\n}\n\nfunction isMemberExpressionLike(node) {\n return isMemberExpression(node) || isMetaProperty(node);\n}\nfunction matchesPattern(member, match, allowPartial) {\n if (!isMemberExpressionLike(member)) return false;\n const parts = Array.isArray(match) ? match : match.split(\".\");\n const nodes = [];\n let node;\n for (node = member; isMemberExpressionLike(node); node = node.object ?? node.meta) {\n nodes.push(node.property);\n }\n nodes.push(node);\n if (nodes.length < parts.length) return false;\n if (!allowPartial && nodes.length > parts.length) return false;\n for (let i = 0, j = nodes.length - 1; i < parts.length; i++, j--) {\n const node = nodes[j];\n let value;\n if (isIdentifier(node)) {\n value = node.name;\n } else if (isStringLiteral(node)) {\n value = node.value;\n } else if (isThisExpression(node)) {\n value = \"this\";\n } else if (isSuper(node)) {\n value = \"super\";\n } else if (isPrivateName(node)) {\n value = \"#\" + node.id.name;\n } else {\n return false;\n }\n if (parts[i] !== value) return false;\n }\n return true;\n}\n\nfunction buildMatchMemberExpression(match, allowPartial) {\n const parts = match.split(\".\");\n return member => matchesPattern(member, parts, allowPartial);\n}\n\nconst isReactComponent = buildMatchMemberExpression(\"React.Component\");\n\nfunction isCompatTag(tagName) {\n return !!tagName && /^[a-z]/.test(tagName);\n}\n\nfunction isType(nodeType, targetType) {\n if (nodeType === targetType) return true;\n if (nodeType == null) return false;\n if (ALIAS_KEYS[targetType]) return false;\n const aliases = FLIPPED_ALIAS_KEYS[targetType];\n if (aliases?.includes(nodeType)) return true;\n return false;\n}\n\nfunction isPlaceholderType(placeholderType, targetType) {\n if (placeholderType === targetType) return true;\n const aliases = PLACEHOLDERS_ALIAS[placeholderType];\n if (aliases?.includes(targetType)) return true;\n return false;\n}\n\nfunction is(type, node, opts) {\n if (!node) return false;\n const matches = isType(node.type, type);\n if (!matches) {\n if (!opts && node.type === \"Placeholder\" && type in FLIPPED_ALIAS_KEYS) {\n return isPlaceholderType(node.expectedNode, type);\n }\n return false;\n }\n if (opts === undefined) {\n return true;\n } else {\n return shallowEqual(node, opts);\n }\n}\n\nfunction isValidIdentifier(name, reserved = true) {\n if (typeof name !== \"string\") return false;\n if (reserved) {\n if (isKeyword(name) || isStrictReservedWord(name, true)) {\n return false;\n }\n }\n return isIdentifierName(name);\n}\n\nconst STATEMENT_OR_BLOCK_KEYS = [\"consequent\", \"body\", \"alternate\"];\nconst FLATTENABLE_KEYS = [\"body\", \"expressions\"];\nconst FOR_INIT_KEYS = [\"left\", \"init\"];\nconst COMMENT_KEYS = [\"leadingComments\", \"trailingComments\", \"innerComments\"];\nconst LOGICAL_OPERATORS = [\"||\", \"&&\", \"??\"];\nconst UPDATE_OPERATORS = [\"++\", \"--\"];\nconst BOOLEAN_NUMBER_BINARY_OPERATORS = [\">\", \"<\", \">=\", \"<=\"];\nconst EQUALITY_BINARY_OPERATORS = [\"==\", \"===\", \"!=\", \"!==\"];\nconst COMPARISON_BINARY_OPERATORS = [...EQUALITY_BINARY_OPERATORS, \"in\", \"instanceof\"];\nconst BOOLEAN_BINARY_OPERATORS = [...COMPARISON_BINARY_OPERATORS, ...BOOLEAN_NUMBER_BINARY_OPERATORS];\nconst NUMBER_BINARY_OPERATORS = [\"-\", \"/\", \"%\", \"*\", \"**\", \"&\", \"|\", \">>\", \">>>\", \"<<\", \"^\"];\nconst BINARY_OPERATORS = [\"+\", ...NUMBER_BINARY_OPERATORS, ...BOOLEAN_BINARY_OPERATORS, \"|>\"];\nconst ASSIGNMENT_OPERATORS = [\"=\", \"+=\", ...NUMBER_BINARY_OPERATORS.map(op => op + \"=\"), ...LOGICAL_OPERATORS.map(op => op + \"=\")];\nconst BOOLEAN_UNARY_OPERATORS = [\"delete\", \"!\"];\nconst NUMBER_UNARY_OPERATORS = [\"+\", \"-\", \"~\"];\nconst STRING_UNARY_OPERATORS = [\"typeof\"];\nconst UNARY_OPERATORS = [\"void\", \"throw\", ...BOOLEAN_UNARY_OPERATORS, ...NUMBER_UNARY_OPERATORS, ...STRING_UNARY_OPERATORS];\nconst INHERIT_KEYS = {\n optional: [\"typeAnnotation\", \"typeParameters\", \"returnType\"],\n force: [\"start\", \"loc\", \"end\"]\n};\n\nconst VISITOR_KEYS = {};\nconst ALIAS_KEYS = {};\nconst FLIPPED_ALIAS_KEYS = {};\nconst NODE_FIELDS$1 = {};\nconst BUILDER_KEYS = {};\nconst DEPRECATED_KEYS = {};\nconst NODE_PARENT_VALIDATIONS = {};\nconst NODE_UNION_SHAPES__PRIVATE = {};\nfunction getType(val) {\n if (Array.isArray(val)) {\n return \"array\";\n } else if (val === null) {\n return \"null\";\n } else {\n return typeof val;\n }\n}\nfunction combine(fn, ...validators) {\n return Object.assign(fn, ...validators);\n}\nfunction validate$2(validate) {\n return {\n validate\n };\n}\nfunction validateType(...typeNames) {\n return validate$2(assertNodeType(...typeNames));\n}\nfunction validateOptional(validate) {\n return {\n validate,\n optional: true\n };\n}\nfunction validateDefault(validate, defaultValue) {\n return {\n validate,\n default: defaultValue,\n optional: false\n };\n}\nfunction validateOptionalType(...typeNames) {\n return {\n validate: assertNodeType(...typeNames),\n optional: true\n };\n}\nfunction arrayOf(elementType) {\n return chain(assertValueType(\"array\"), assertEach(elementType));\n}\nfunction arrayOfType(...typeNames) {\n return arrayOf(assertNodeType(...typeNames));\n}\nfunction validateArrayOfType(...typeNames) {\n return validate$2(arrayOfType(...typeNames));\n}\nfunction assertEach(callback) {\n const childValidator = validateChild;\n function validator(node, key, val) {\n if (!Array.isArray(val)) return;\n let i = 0;\n const subKey = {\n toString() {\n return `${key}[${i}]`;\n }\n };\n for (; i < val.length; i++) {\n const v = val[i];\n callback(node, subKey, v);\n childValidator(node, subKey, v);\n }\n }\n validator.each = callback;\n return validator;\n}\nfunction assertOneOf(...values) {\n function validate(node, key, val) {\n if (!values.includes(val)) {\n throw new TypeError(`Property ${key} expected value to be one of ${JSON.stringify(values)} but got ${JSON.stringify(val)}`);\n }\n }\n validate.oneOf = values;\n return validate;\n}\nconst allExpandedTypes = [];\nfunction assertNodeType(...types) {\n const expandedTypes = new Set();\n allExpandedTypes.push({\n types,\n set: expandedTypes\n });\n function validate(node, key, val) {\n const valType = val?.type;\n if (valType != null) {\n if (expandedTypes.has(valType)) {\n validateChild(node, key, val);\n return;\n }\n if (valType === \"Placeholder\") {\n for (const type of types) {\n if (is(type, val)) {\n validateChild(node, key, val);\n return;\n }\n }\n }\n }\n throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(valType)}`);\n }\n validate.oneOfNodeTypes = types;\n return validate;\n}\nfunction assertNodeOrValueType(...types) {\n function validate(node, key, val) {\n const primitiveType = getType(val);\n for (const type of types) {\n if (primitiveType === type || is(type, val)) {\n validateChild(node, key, val);\n return;\n }\n }\n throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val?.type)}`);\n }\n validate.oneOfNodeOrValueTypes = types;\n return validate;\n}\nfunction assertValueType(type) {\n function validate(node, key, val) {\n if (getType(val) === type) {\n return;\n }\n throw new TypeError(`Property ${key} expected type of ${type} but got ${getType(val)}`);\n }\n validate.type = type;\n return validate;\n}\nfunction assertShape(shape) {\n const keys = Object.keys(shape);\n function validate(node, key, val) {\n const errors = [];\n for (const property of keys) {\n try {\n validateField(node, property, val[property], shape[property]);\n } catch (error) {\n if (error instanceof TypeError) {\n errors.push(error.message);\n continue;\n }\n throw error;\n }\n }\n if (errors.length) {\n throw new TypeError(`Property ${key} of ${node.type} expected to have the following:\\n${errors.join(\"\\n\")}`);\n }\n }\n validate.shapeOf = shape;\n return validate;\n}\nfunction assertOptionalChainStart() {\n function validate(node) {\n let current = node;\n while (node) {\n const {\n type\n } = current;\n if (type === \"OptionalCallExpression\") {\n if (current.optional) return;\n current = current.callee;\n continue;\n }\n if (type === \"OptionalMemberExpression\") {\n if (current.optional) return;\n current = current.object;\n continue;\n }\n break;\n }\n throw new TypeError(`Non-optional ${node.type} must chain from an optional OptionalMemberExpression or OptionalCallExpression. Found chain from ${current?.type}`);\n }\n return validate;\n}\nfunction chain(...fns) {\n function validate(...args) {\n for (const fn of fns) {\n fn(...args);\n }\n }\n validate.chainOf = fns;\n if (fns.length >= 2 && \"type\" in fns[0] && fns[0].type === \"array\" && !(\"each\" in fns[1])) {\n throw new Error(`An assertValueType(\"array\") validator can only be followed by an assertEach(...) validator.`);\n }\n return validate;\n}\nconst validTypeOpts = new Set([\"aliases\", \"builder\", \"deprecatedAlias\", \"fields\", \"inherits\", \"visitor\", \"validate\", \"unionShape\"]);\nconst validFieldKeys = new Set([\"default\", \"optional\", \"deprecated\", \"validate\"]);\nconst store = {};\nfunction defineAliasedType(...aliases) {\n return (type, opts = {}) => {\n let defined = opts.aliases;\n if (!defined) {\n if (opts.inherits) defined = store[opts.inherits].aliases?.slice();\n defined ??= [];\n opts.aliases = defined;\n }\n const additional = aliases.filter(a => !defined.includes(a));\n defined.unshift(...additional);\n defineType$5(type, opts);\n };\n}\nfunction defineType$5(type, opts = {}) {\n const inherits = opts.inherits && store[opts.inherits] || {};\n const visitor = opts.visitor || inherits.visitor || [];\n const aliases = opts.aliases || inherits.aliases || [];\n const builder = opts.builder || inherits.builder || opts.visitor || [];\n let fields = opts.fields;\n if (!fields) {\n fields = {};\n if (inherits.fields) {\n const keys = Object.getOwnPropertyNames(inherits.fields);\n for (const key of keys) {\n const field = inherits.fields[key];\n const def = field.default;\n if (Array.isArray(def) ? def.length > 0 : def && typeof def === \"object\") {\n throw new Error(\"field defaults can only be primitives or empty arrays currently\");\n }\n fields[key] = {\n default: Array.isArray(def) ? [] : def,\n optional: field.optional,\n deprecated: field.deprecated,\n validate: field.validate\n };\n }\n }\n }\n for (const k of Object.keys(opts)) {\n if (!validTypeOpts.has(k)) {\n throw new Error(`Unknown type option \"${k}\" on ${type}`);\n }\n }\n if (opts.deprecatedAlias) {\n DEPRECATED_KEYS[opts.deprecatedAlias] = type;\n }\n for (const key of visitor.concat(builder)) {\n fields[key] = fields[key] || {};\n }\n for (const key of Object.keys(fields)) {\n const field = fields[key];\n if (field.default === null) {\n field.optional ??= true;\n }\n if (field.default === undefined) {\n field.default = null;\n field.optional ??= false;\n } else if (!field.validate && field.default != null) {\n field.validate = assertValueType(getType(field.default));\n }\n for (const k of Object.keys(field)) {\n if (!validFieldKeys.has(k)) {\n throw new Error(`Unknown field key \"${k}\" on ${type}.${key}`);\n }\n }\n }\n VISITOR_KEYS[type] = opts.visitor = visitor;\n BUILDER_KEYS[type] = opts.builder = builder;\n NODE_FIELDS$1[type] = opts.fields = fields;\n ALIAS_KEYS[type] = opts.aliases = aliases;\n aliases.forEach(alias => {\n FLIPPED_ALIAS_KEYS[alias] = FLIPPED_ALIAS_KEYS[alias] || [];\n FLIPPED_ALIAS_KEYS[alias].push(type);\n });\n if (opts.validate) {\n NODE_PARENT_VALIDATIONS[type] = opts.validate;\n }\n if (opts.unionShape) {\n NODE_UNION_SHAPES__PRIVATE[type] = opts.unionShape;\n }\n store[type] = opts;\n}\n\nconst utils = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n ALIAS_KEYS,\n BUILDER_KEYS,\n DEPRECATED_KEYS,\n FLIPPED_ALIAS_KEYS,\n NODE_FIELDS: NODE_FIELDS$1,\n NODE_PARENT_VALIDATIONS,\n NODE_UNION_SHAPES__PRIVATE,\n VISITOR_KEYS,\n allExpandedTypes,\n arrayOf,\n arrayOfType,\n assertEach,\n assertNodeOrValueType,\n assertNodeType,\n assertOneOf,\n assertOptionalChainStart,\n assertShape,\n assertValueType,\n chain,\n combine,\n default: defineType$5,\n defineAliasedType,\n validate: validate$2,\n validateArrayOfType,\n validateDefault,\n validateOptional,\n validateOptionalType,\n validateType\n}, Symbol.toStringTag, { value: 'Module' });\n\nconst classMethodOrPropertyUnionShapeCommon = (allowPrivateName = false) => ({\n unionShape: {\n discriminator: \"computed\",\n shapes: [{\n name: \"computed\",\n value: [true],\n properties: {\n key: {\n validate: assertNodeType(\"Expression\")\n }\n }\n }, {\n name: \"nonComputed\",\n value: [false],\n properties: {\n key: {\n validate: allowPrivateName ? assertNodeType(\"Identifier\", \"StringLiteral\", \"NumericLiteral\", \"BigIntLiteral\", \"PrivateName\") : assertNodeType(\"Identifier\", \"StringLiteral\", \"NumericLiteral\", \"BigIntLiteral\")\n }\n }\n }]\n }\n});\nconst memberExpressionUnionShapeCommon = {\n unionShape: {\n discriminator: \"computed\",\n shapes: [{\n name: \"computed\",\n value: [true],\n properties: {\n property: {\n validate: assertNodeType(\"Expression\")\n }\n }\n }, {\n name: \"nonComputed\",\n value: [false],\n properties: {\n property: {\n validate: assertNodeType(\"Identifier\", \"PrivateName\")\n }\n }\n }]\n }\n};\nconst defineType$4 = defineAliasedType(\"Standardized\");\ndefineType$4(\"ArrayExpression\", {\n fields: {\n elements: {\n validate: arrayOf(assertNodeOrValueType(\"null\", \"Expression\", \"SpreadElement\")),\n default: undefined\n }\n },\n visitor: [\"elements\"],\n aliases: [\"Expression\"]\n});\ndefineType$4(\"AssignmentExpression\", {\n fields: {\n operator: {\n validate: combine(function () {\n const identifier = assertOneOf(...ASSIGNMENT_OPERATORS);\n const pattern = assertOneOf(\"=\");\n return function (node, key, val) {\n const validator = is(\"Pattern\", node.left) ? pattern : identifier;\n validator(node, key, val);\n };\n }(), {\n oneOf: ASSIGNMENT_OPERATORS\n })\n },\n left: {\n validate: assertNodeType(\"Identifier\", \"MemberExpression\", \"OptionalMemberExpression\", \"ArrayPattern\", \"ObjectPattern\", \"TSAsExpression\", \"TSSatisfiesExpression\", \"TSTypeAssertion\", \"TSNonNullExpression\")\n },\n right: {\n validate: assertNodeType(\"Expression\")\n }\n },\n builder: [\"operator\", \"left\", \"right\"],\n visitor: [\"left\", \"right\"],\n aliases: [\"Expression\"]\n});\ndefineType$4(\"BinaryExpression\", {\n builder: [\"operator\", \"left\", \"right\"],\n fields: {\n operator: {\n validate: assertOneOf(...BINARY_OPERATORS)\n },\n left: {\n validate: function () {\n const expression = assertNodeType(\"Expression\");\n const inOp = assertNodeType(\"Expression\", \"PrivateName\");\n const validator = combine(function (node, key, val) {\n const validator = node.operator === \"in\" ? inOp : expression;\n validator(node, key, val);\n }, {\n oneOfNodeTypes: [\"Expression\", \"PrivateName\"]\n });\n return validator;\n }()\n },\n right: {\n validate: assertNodeType(\"Expression\")\n }\n },\n unionShape: {\n discriminator: \"operator\",\n shapes: [{\n name: \"in\",\n value: [\"in\"],\n properties: {\n left: {\n validate: assertNodeType(\"Expression\", \"PrivateName\")\n }\n }\n }, {\n name: \"notIn\",\n value: BINARY_OPERATORS.filter(op => op !== \"in\"),\n properties: {\n left: {\n validate: assertNodeType(\"Expression\")\n }\n }\n }]\n },\n visitor: [\"left\", \"right\"],\n aliases: [\"Binary\", \"Expression\"]\n});\ndefineType$4(\"InterpreterDirective\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: assertValueType(\"string\")\n }\n }\n});\ndefineType$4(\"Directive\", {\n visitor: [\"value\"],\n fields: {\n value: {\n validate: assertNodeType(\"DirectiveLiteral\")\n }\n }\n});\ndefineType$4(\"DirectiveLiteral\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: assertValueType(\"string\")\n }\n }\n});\ndefineType$4(\"BlockStatement\", {\n builder: [\"body\", \"directives\"],\n visitor: [\"directives\", \"body\"],\n fields: {\n directives: {\n validate: arrayOfType(\"Directive\"),\n default: []\n },\n body: validateArrayOfType(\"Statement\")\n },\n aliases: [\"Scopable\", \"BlockParent\", \"Block\", \"Statement\"]\n});\ndefineType$4(\"BreakStatement\", {\n visitor: [\"label\"],\n fields: {\n label: {\n validate: assertNodeType(\"Identifier\"),\n optional: true\n }\n },\n aliases: [\"Statement\", \"Terminatorless\", \"CompletionStatement\"]\n});\ndefineType$4(\"CallExpression\", {\n visitor: [\"callee\", \"typeArguments\", \"arguments\"],\n builder: [\"callee\", \"arguments\"],\n aliases: [\"Expression\"],\n fields: {\n callee: {\n validate: assertNodeType(\"Expression\", \"Super\", \"Import\", \"V8IntrinsicIdentifier\")\n },\n arguments: validateArrayOfType(\"Expression\", \"SpreadElement\", \"ArgumentPlaceholder\"),\n typeArguments: {\n validate: assertNodeType(\"TypeParameterInstantiation\", \"TSTypeParameterInstantiation\"),\n optional: true\n }\n }\n});\ndefineType$4(\"CatchClause\", {\n visitor: [\"param\", \"body\"],\n fields: {\n param: {\n validate: assertNodeType(\"Identifier\", \"ArrayPattern\", \"ObjectPattern\"),\n optional: true\n },\n body: {\n validate: assertNodeType(\"BlockStatement\")\n }\n },\n aliases: [\"Scopable\", \"BlockParent\"]\n});\ndefineType$4(\"ConditionalExpression\", {\n visitor: [\"test\", \"consequent\", \"alternate\"],\n fields: {\n test: {\n validate: assertNodeType(\"Expression\")\n },\n consequent: {\n validate: assertNodeType(\"Expression\")\n },\n alternate: {\n validate: assertNodeType(\"Expression\")\n }\n },\n aliases: [\"Expression\", \"Conditional\"]\n});\ndefineType$4(\"ContinueStatement\", {\n visitor: [\"label\"],\n fields: {\n label: {\n validate: assertNodeType(\"Identifier\"),\n optional: true\n }\n },\n aliases: [\"Statement\", \"Terminatorless\", \"CompletionStatement\"]\n});\ndefineType$4(\"DebuggerStatement\", {\n aliases: [\"Statement\"]\n});\ndefineType$4(\"DoWhileStatement\", {\n builder: [\"test\", \"body\"],\n visitor: [\"body\", \"test\"],\n fields: {\n test: {\n validate: assertNodeType(\"Expression\")\n },\n body: {\n validate: assertNodeType(\"Statement\")\n }\n },\n aliases: [\"Statement\", \"BlockParent\", \"Loop\", \"While\", \"Scopable\"]\n});\ndefineType$4(\"EmptyStatement\", {\n aliases: [\"Statement\"]\n});\ndefineType$4(\"ExpressionStatement\", {\n visitor: [\"expression\"],\n fields: {\n expression: {\n validate: assertNodeType(\"Expression\")\n }\n },\n aliases: [\"Statement\", \"ExpressionWrapper\"]\n});\ndefineType$4(\"File\", {\n builder: [\"program\", \"comments\", \"tokens\"],\n visitor: [\"program\"],\n fields: {\n program: {\n validate: assertNodeType(\"Program\")\n },\n comments: {\n validate: assertEach(assertNodeType(\"CommentBlock\", \"CommentLine\")),\n optional: true\n },\n tokens: {\n validate: assertEach(Object.assign(() => {}, {\n type: \"any\"\n })),\n optional: true\n }\n }\n});\ndefineType$4(\"ForInStatement\", {\n visitor: [\"left\", \"right\", \"body\"],\n aliases: [\"Scopable\", \"Statement\", \"For\", \"BlockParent\", \"Loop\", \"ForXStatement\"],\n fields: {\n left: {\n validate: assertNodeType(\"VariableDeclaration\", \"Identifier\", \"MemberExpression\", \"ArrayPattern\", \"ObjectPattern\", \"TSAsExpression\", \"TSSatisfiesExpression\", \"TSTypeAssertion\", \"TSNonNullExpression\")\n },\n right: {\n validate: assertNodeType(\"Expression\")\n },\n body: {\n validate: assertNodeType(\"Statement\")\n }\n }\n});\ndefineType$4(\"ForStatement\", {\n visitor: [\"init\", \"test\", \"update\", \"body\"],\n aliases: [\"Scopable\", \"Statement\", \"For\", \"BlockParent\", \"Loop\"],\n fields: {\n init: {\n validate: assertNodeType(\"VariableDeclaration\", \"Expression\"),\n optional: true\n },\n test: {\n validate: assertNodeType(\"Expression\"),\n optional: true\n },\n update: {\n validate: assertNodeType(\"Expression\"),\n optional: true\n },\n body: {\n validate: assertNodeType(\"Statement\")\n }\n }\n});\nconst functionCommon = () => ({\n params: validateArrayOfType(\"FunctionParameter\"),\n generator: {\n default: false\n },\n async: {\n default: false\n }\n});\nconst functionTypeAnnotationCommon = () => ({\n returnType: {\n validate: assertNodeType(\"TypeAnnotation\", \"TSTypeAnnotation\"),\n optional: true\n },\n typeParameters: {\n validate: assertNodeType(\"TypeParameterDeclaration\", \"TSTypeParameterDeclaration\"),\n optional: true\n }\n});\nconst functionDeclarationCommon = () => ({\n ...functionCommon(),\n declare: {\n validate: assertValueType(\"boolean\"),\n optional: true\n },\n id: {\n validate: assertNodeType(\"Identifier\"),\n optional: true\n }\n});\ndefineType$4(\"FunctionDeclaration\", {\n builder: [\"id\", \"params\", \"body\", \"generator\", \"async\"],\n visitor: [\"id\", \"typeParameters\", \"params\", \"predicate\", \"returnType\", \"body\"],\n fields: {\n ...functionDeclarationCommon(),\n ...functionTypeAnnotationCommon(),\n body: {\n validate: assertNodeType(\"BlockStatement\")\n },\n predicate: {\n validate: assertNodeType(\"FlowPredicate\"),\n optional: true\n }\n },\n aliases: [\"Scopable\", \"Function\", \"BlockParent\", \"FunctionParent\", \"Statement\", \"Pureish\", \"Declaration\"],\n validate: function () {\n const identifier = assertNodeType(\"Identifier\");\n return function (parent, key, node) {\n if (!is(\"ExportDefaultDeclaration\", parent)) {\n identifier(node, \"id\", node.id);\n }\n };\n }()\n});\ndefineType$4(\"FunctionExpression\", {\n inherits: \"FunctionDeclaration\",\n aliases: [\"Scopable\", \"Function\", \"BlockParent\", \"FunctionParent\", \"Expression\", \"Pureish\"],\n fields: {\n ...functionCommon(),\n ...functionTypeAnnotationCommon(),\n id: {\n validate: assertNodeType(\"Identifier\"),\n optional: true\n },\n body: {\n validate: assertNodeType(\"BlockStatement\")\n },\n predicate: {\n validate: assertNodeType(\"FlowPredicate\"),\n optional: true\n }\n }\n});\nconst patternLikeCommon = () => ({\n typeAnnotation: {\n validate: assertNodeType(\"TypeAnnotation\", \"TSTypeAnnotation\"),\n optional: true\n },\n optional: {\n validate: assertValueType(\"boolean\"),\n optional: true\n },\n decorators: {\n validate: arrayOfType(\"Decorator\"),\n optional: true\n }\n});\ndefineType$4(\"Identifier\", {\n builder: [\"name\"],\n visitor: [\"typeAnnotation\", \"decorators\"],\n aliases: [\"Expression\", \"FunctionParameter\", \"PatternLike\", \"LVal\", \"TSEntityName\"],\n fields: {\n ...patternLikeCommon(),\n name: {\n validate: chain(assertValueType(\"string\"), combine(function (node, key, val) {\n if (!isValidIdentifier(val, false)) {\n throw new TypeError(`\"${val}\" is not a valid identifier name`);\n }\n }, {\n type: \"string\"\n }))\n }\n },\n validate: function (parent, key, node) {\n const match = /\\.(\\w+)$/.exec(key.toString());\n if (!match) return;\n const [, parentKey] = match;\n const nonComp = {\n computed: false\n };\n if (parentKey === \"property\") {\n if (is(\"MemberExpression\", parent, nonComp)) return;\n if (is(\"OptionalMemberExpression\", parent, nonComp)) return;\n } else if (parentKey === \"key\") {\n if (is(\"Property\", parent, nonComp)) return;\n if (is(\"Method\", parent, nonComp)) return;\n } else if (parentKey === \"exported\") {\n if (is(\"ExportSpecifier\", parent)) return;\n } else if (parentKey === \"imported\") {\n if (is(\"ImportSpecifier\", parent, {\n imported: node\n })) return;\n } else if (parentKey === \"meta\") {\n if (is(\"MetaProperty\", parent, {\n meta: node\n })) return;\n }\n if ((isKeyword(node.name) || isReservedWord(node.name, false)) && node.name !== \"this\") {\n throw new TypeError(`\"${node.name}\" is not a valid identifier`);\n }\n }\n});\ndefineType$4(\"IfStatement\", {\n visitor: [\"test\", \"consequent\", \"alternate\"],\n aliases: [\"Statement\", \"Conditional\"],\n fields: {\n test: {\n validate: assertNodeType(\"Expression\")\n },\n consequent: {\n validate: assertNodeType(\"Statement\")\n },\n alternate: {\n optional: true,\n validate: assertNodeType(\"Statement\")\n }\n }\n});\ndefineType$4(\"LabeledStatement\", {\n visitor: [\"label\", \"body\"],\n aliases: [\"Statement\"],\n fields: {\n label: {\n validate: assertNodeType(\"Identifier\")\n },\n body: {\n validate: assertNodeType(\"Statement\")\n }\n }\n});\ndefineType$4(\"StringLiteral\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: assertValueType(\"string\")\n }\n },\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"]\n});\ndefineType$4(\"NumericLiteral\", {\n builder: [\"value\"],\n deprecatedAlias: \"NumberLiteral\",\n fields: {\n value: {\n validate: chain(assertValueType(\"number\"), combine(function (node, key, val) {\n if (1 / val < 0 || !Number.isFinite(val)) {\n const error = new Error(\"NumericLiterals must be non-negative finite numbers. \" + `You can use t.valueToNode(${val}) instead.`);\n if (!new Error().stack.includes(\"regenerator\")) {\n throw error;\n }\n }\n }, {\n type: \"number\"\n }))\n }\n },\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"]\n});\ndefineType$4(\"NullLiteral\", {\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"]\n});\ndefineType$4(\"BooleanLiteral\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: assertValueType(\"boolean\")\n }\n },\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"]\n});\ndefineType$4(\"RegExpLiteral\", {\n builder: [\"pattern\", \"flags\"],\n deprecatedAlias: \"RegexLiteral\",\n aliases: [\"Expression\", \"Pureish\", \"Literal\"],\n fields: {\n pattern: {\n validate: assertValueType(\"string\")\n },\n flags: {\n validate: chain(assertValueType(\"string\"), combine(function (node, key, val) {\n const invalid = /[^dgimsuvy]/.exec(val);\n if (invalid) {\n throw new TypeError(`\"${invalid[0]}\" is not a valid RegExp flag`);\n }\n }, {\n type: \"string\"\n })),\n default: \"\"\n }\n }\n});\ndefineType$4(\"LogicalExpression\", {\n builder: [\"operator\", \"left\", \"right\"],\n visitor: [\"left\", \"right\"],\n aliases: [\"Binary\", \"Expression\"],\n fields: {\n operator: {\n validate: assertOneOf(...LOGICAL_OPERATORS)\n },\n left: {\n validate: assertNodeType(\"Expression\")\n },\n right: {\n validate: assertNodeType(\"Expression\")\n }\n }\n});\ndefineType$4(\"MemberExpression\", {\n builder: [\"object\", \"property\", \"computed\"],\n visitor: [\"object\", \"property\"],\n aliases: [\"Expression\", \"LVal\", \"PatternLike\"],\n ...memberExpressionUnionShapeCommon,\n fields: {\n object: {\n validate: assertNodeType(\"Expression\", \"Super\")\n },\n property: {\n validate: function () {\n const normal = assertNodeType(\"Identifier\", \"PrivateName\");\n const computed = assertNodeType(\"Expression\");\n const validator = combine(function (node, key, val) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n }, {\n oneOfNodeTypes: [\"Expression\", \"Identifier\", \"PrivateName\"]\n });\n return validator;\n }()\n },\n computed: {\n default: false\n }\n }\n});\ndefineType$4(\"NewExpression\", {\n inherits: \"CallExpression\",\n fields: {\n callee: {\n validate: assertNodeType(\"Expression\")\n },\n arguments: validateArrayOfType(\"Expression\", \"SpreadElement\", \"ArgumentPlaceholder\"),\n typeArguments: {\n validate: assertNodeType(\"TypeParameterInstantiation\", \"TSTypeParameterInstantiation\"),\n optional: true\n }\n }\n});\ndefineType$4(\"Program\", {\n visitor: [\"directives\", \"body\"],\n builder: [\"body\", \"directives\", \"sourceType\", \"interpreter\"],\n fields: {\n sourceType: {\n validate: assertOneOf(\"script\", \"module\"),\n default: \"script\"\n },\n interpreter: {\n validate: assertNodeType(\"InterpreterDirective\"),\n default: null,\n optional: true\n },\n directives: {\n validate: arrayOfType(\"Directive\"),\n default: []\n },\n body: validateArrayOfType(\"Statement\")\n },\n aliases: [\"Scopable\", \"BlockParent\", \"Block\"]\n});\ndefineType$4(\"ObjectExpression\", {\n visitor: [\"properties\"],\n aliases: [\"Expression\"],\n fields: {\n properties: validateArrayOfType(\"ObjectMethod\", \"ObjectProperty\", \"SpreadElement\")\n }\n});\ndefineType$4(\"ObjectMethod\", {\n builder: [\"kind\", \"key\", \"params\", \"body\", \"computed\", \"generator\", \"async\"],\n visitor: [\"decorators\", \"key\", \"typeParameters\", \"params\", \"returnType\", \"body\"],\n ...classMethodOrPropertyUnionShapeCommon(),\n fields: {\n ...functionCommon(),\n ...functionTypeAnnotationCommon(),\n kind: {\n validate: assertOneOf(\"method\", \"get\", \"set\")\n },\n computed: {\n default: false\n },\n key: {\n validate: function () {\n const normal = assertNodeType(\"Identifier\", \"StringLiteral\", \"NumericLiteral\", \"BigIntLiteral\");\n const computed = assertNodeType(\"Expression\");\n const validator = combine(function (node, key, val) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n }, {\n oneOfNodeTypes: [\"Expression\", \"Identifier\", \"StringLiteral\", \"NumericLiteral\", \"BigIntLiteral\"]\n });\n return validator;\n }()\n },\n decorators: {\n validate: arrayOfType(\"Decorator\"),\n optional: true\n },\n body: {\n validate: assertNodeType(\"BlockStatement\")\n }\n },\n aliases: [\"UserWhitespacable\", \"Function\", \"Scopable\", \"BlockParent\", \"FunctionParent\", \"Method\", \"ObjectMember\"]\n});\ndefineType$4(\"ObjectProperty\", {\n builder: [\"key\", \"value\", \"computed\", \"shorthand\"],\n ...classMethodOrPropertyUnionShapeCommon(true),\n fields: {\n computed: {\n default: false\n },\n key: {\n validate: function () {\n const normal = assertNodeType(\"Identifier\", \"StringLiteral\", \"NumericLiteral\", \"BigIntLiteral\", \"PrivateName\");\n const computed = assertNodeType(\"Expression\");\n const validator = combine(function (node, key, val) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n }, {\n oneOfNodeTypes: [\"Expression\", \"Identifier\", \"StringLiteral\", \"NumericLiteral\", \"BigIntLiteral\", \"PrivateName\"]\n });\n return validator;\n }()\n },\n value: {\n validate: assertNodeType(\"Expression\", \"PatternLike\")\n },\n shorthand: {\n validate: chain(assertValueType(\"boolean\"), combine(function (node, key, shorthand) {\n if (!shorthand) return;\n if (node.computed) {\n throw new TypeError(\"Property shorthand of ObjectProperty cannot be true if computed is true\");\n }\n if (!is(\"Identifier\", node.key)) {\n throw new TypeError(\"Property shorthand of ObjectProperty cannot be true if key is not an Identifier\");\n }\n }, {\n type: \"boolean\"\n })),\n default: false\n },\n decorators: {\n validate: arrayOfType(\"Decorator\"),\n optional: true\n }\n },\n visitor: [\"decorators\", \"key\", \"value\"],\n aliases: [\"UserWhitespacable\", \"Property\", \"ObjectMember\"],\n validate: function () {\n const pattern = assertNodeType(\"Identifier\", \"Pattern\", \"TSAsExpression\", \"TSSatisfiesExpression\", \"TSNonNullExpression\", \"TSTypeAssertion\");\n const expression = assertNodeType(\"Expression\");\n return function (parent, key, node) {\n const validator = is(\"ObjectPattern\", parent) ? pattern : expression;\n validator(node, \"value\", node.value);\n };\n }()\n});\ndefineType$4(\"RestElement\", {\n visitor: [\"argument\", \"typeAnnotation\"],\n builder: [\"argument\"],\n aliases: [\"FunctionParameter\", \"PatternLike\"],\n deprecatedAlias: \"RestProperty\",\n fields: {\n ...patternLikeCommon(),\n argument: {\n validate: assertNodeType(\"Identifier\", \"ArrayPattern\", \"ObjectPattern\", \"MemberExpression\", \"TSAsExpression\", \"TSSatisfiesExpression\", \"TSTypeAssertion\", \"TSNonNullExpression\")\n }\n },\n validate: function (parent, key) {\n const match = /(\\w+)\\[(\\d+)\\]/.exec(key.toString());\n if (!match) throw new Error(\"Internal Babel error: malformed key.\");\n const [, listKey, index] = match;\n if (parent[listKey].length > +index + 1) {\n throw new TypeError(`RestElement must be last element of ${listKey}`);\n }\n }\n});\ndefineType$4(\"ReturnStatement\", {\n visitor: [\"argument\"],\n aliases: [\"Statement\", \"Terminatorless\", \"CompletionStatement\"],\n fields: {\n argument: {\n validate: assertNodeType(\"Expression\"),\n optional: true\n }\n }\n});\ndefineType$4(\"SequenceExpression\", {\n visitor: [\"expressions\"],\n fields: {\n expressions: validateArrayOfType(\"Expression\")\n },\n aliases: [\"Expression\"]\n});\ndefineType$4(\"ParenthesizedExpression\", {\n visitor: [\"expression\"],\n aliases: [\"Expression\", \"ExpressionWrapper\"],\n fields: {\n expression: {\n validate: assertNodeType(\"Expression\")\n }\n }\n});\ndefineType$4(\"SwitchCase\", {\n visitor: [\"test\", \"consequent\"],\n fields: {\n test: {\n validate: assertNodeType(\"Expression\"),\n optional: true\n },\n consequent: validateArrayOfType(\"Statement\")\n }\n});\ndefineType$4(\"SwitchStatement\", {\n visitor: [\"discriminant\", \"cases\"],\n aliases: [\"Statement\", \"BlockParent\", \"Scopable\"],\n fields: {\n discriminant: {\n validate: assertNodeType(\"Expression\")\n },\n cases: validateArrayOfType(\"SwitchCase\")\n }\n});\ndefineType$4(\"ThisExpression\", {\n aliases: [\"Expression\", \"TSEntityName\"]\n});\ndefineType$4(\"ThrowStatement\", {\n visitor: [\"argument\"],\n aliases: [\"Statement\", \"Terminatorless\", \"CompletionStatement\"],\n fields: {\n argument: {\n validate: assertNodeType(\"Expression\")\n }\n }\n});\ndefineType$4(\"TryStatement\", {\n visitor: [\"block\", \"handler\", \"finalizer\"],\n aliases: [\"Statement\"],\n fields: {\n block: {\n validate: chain(assertNodeType(\"BlockStatement\"), combine(function (node) {\n if (!node.handler && !node.finalizer) {\n throw new TypeError(\"TryStatement expects either a handler or finalizer, or both\");\n }\n }, {\n oneOfNodeTypes: [\"BlockStatement\"]\n }))\n },\n handler: {\n optional: true,\n validate: assertNodeType(\"CatchClause\")\n },\n finalizer: {\n optional: true,\n validate: assertNodeType(\"BlockStatement\")\n }\n }\n});\ndefineType$4(\"UnaryExpression\", {\n builder: [\"operator\", \"argument\", \"prefix\"],\n fields: {\n prefix: {\n default: true\n },\n argument: {\n validate: assertNodeType(\"Expression\")\n },\n operator: {\n validate: assertOneOf(...UNARY_OPERATORS)\n }\n },\n visitor: [\"argument\"],\n aliases: [\"UnaryLike\", \"Expression\"]\n});\ndefineType$4(\"UpdateExpression\", {\n builder: [\"operator\", \"argument\", \"prefix\"],\n fields: {\n prefix: {\n default: false\n },\n argument: {\n validate: assertNodeType(\"Identifier\", \"MemberExpression\")\n },\n operator: {\n validate: assertOneOf(...UPDATE_OPERATORS)\n }\n },\n visitor: [\"argument\"],\n aliases: [\"Expression\"]\n});\ndefineType$4(\"VariableDeclaration\", {\n builder: [\"kind\", \"declarations\"],\n visitor: [\"declarations\"],\n aliases: [\"Statement\", \"Declaration\"],\n fields: {\n declare: {\n validate: assertValueType(\"boolean\"),\n optional: true\n },\n kind: {\n validate: assertOneOf(\"var\", \"let\", \"const\", \"using\", \"await using\")\n },\n declarations: validateArrayOfType(\"VariableDeclarator\")\n },\n validate: (() => {\n const withoutInit = assertNodeType(\"Identifier\", \"Placeholder\");\n const constOrLetOrVar = assertNodeType(\"Identifier\", \"ArrayPattern\", \"ObjectPattern\", \"Placeholder\");\n const usingOrAwaitUsing = assertNodeType(\"Identifier\", \"VoidPattern\", \"Placeholder\");\n return function (parent, key, node) {\n const {\n kind,\n declarations\n } = node;\n const parentIsForX = is(\"ForXStatement\", parent, {\n left: node\n });\n if (parentIsForX) {\n if (declarations.length !== 1) {\n throw new TypeError(`Exactly one VariableDeclarator is required in the VariableDeclaration of a ${parent.type}`);\n }\n }\n for (const decl of declarations) {\n if (kind === \"const\" || kind === \"let\" || kind === \"var\") {\n if (!parentIsForX && !decl.init) {\n withoutInit(decl, \"id\", decl.id);\n } else {\n constOrLetOrVar(decl, \"id\", decl.id);\n }\n } else {\n usingOrAwaitUsing(decl, \"id\", decl.id);\n }\n }\n };\n })()\n});\ndefineType$4(\"VariableDeclarator\", {\n visitor: [\"id\", \"init\"],\n fields: {\n id: {\n validate: assertNodeType(\"Identifier\", \"ArrayPattern\", \"ObjectPattern\", \"VoidPattern\")\n },\n definite: {\n optional: true,\n validate: assertValueType(\"boolean\")\n },\n init: {\n optional: true,\n validate: assertNodeType(\"Expression\")\n }\n }\n});\ndefineType$4(\"WhileStatement\", {\n visitor: [\"test\", \"body\"],\n aliases: [\"Statement\", \"BlockParent\", \"Loop\", \"While\", \"Scopable\"],\n fields: {\n test: {\n validate: assertNodeType(\"Expression\")\n },\n body: {\n validate: assertNodeType(\"Statement\")\n }\n }\n});\ndefineType$4(\"WithStatement\", {\n visitor: [\"object\", \"body\"],\n aliases: [\"Statement\"],\n fields: {\n object: {\n validate: assertNodeType(\"Expression\")\n },\n body: {\n validate: assertNodeType(\"Statement\")\n }\n }\n});\ndefineType$4(\"AssignmentPattern\", {\n visitor: [\"left\", \"right\", \"decorators\"],\n builder: [\"left\", \"right\"],\n aliases: [\"FunctionParameter\", \"Pattern\", \"PatternLike\"],\n fields: {\n ...patternLikeCommon(),\n left: {\n validate: assertNodeType(\"Identifier\", \"ObjectPattern\", \"ArrayPattern\", \"MemberExpression\", \"TSAsExpression\", \"TSSatisfiesExpression\", \"TSTypeAssertion\", \"TSNonNullExpression\")\n },\n right: {\n validate: assertNodeType(\"Expression\")\n },\n decorators: {\n validate: arrayOfType(\"Decorator\"),\n optional: true\n }\n }\n});\ndefineType$4(\"ArrayPattern\", {\n visitor: [\"elements\", \"typeAnnotation\"],\n builder: [\"elements\"],\n aliases: [\"FunctionParameter\", \"Pattern\", \"PatternLike\", \"LVal\"],\n fields: {\n ...patternLikeCommon(),\n elements: {\n validate: chain(assertValueType(\"array\"), assertEach(assertNodeOrValueType(\"null\", \"PatternLike\")))\n }\n }\n});\ndefineType$4(\"ArrowFunctionExpression\", {\n builder: [\"params\", \"body\", \"async\"],\n visitor: [\"typeParameters\", \"params\", \"predicate\", \"returnType\", \"body\"],\n aliases: [\"Scopable\", \"Function\", \"BlockParent\", \"FunctionParent\", \"Expression\", \"Pureish\"],\n fields: {\n ...functionCommon(),\n generator: {\n default: null,\n optional: true,\n validate: combine((node, key, val) => {\n if (val) {\n throw new TypeError(\"ArrowFunctionExpression cannot be a generator\");\n }\n }, {\n type: \"boolean\"\n })\n },\n ...functionTypeAnnotationCommon(),\n expression: {\n optional: true,\n validate: assertValueType(\"boolean\")\n },\n body: {\n validate: assertNodeType(\"BlockStatement\", \"Expression\")\n },\n predicate: {\n validate: assertNodeType(\"FlowPredicate\"),\n optional: true\n }\n }\n});\ndefineType$4(\"ClassBody\", {\n visitor: [\"body\"],\n fields: {\n body: validateArrayOfType(\"ClassMethod\", \"ClassPrivateMethod\", \"ClassProperty\", \"ClassPrivateProperty\", \"ClassAccessorProperty\", \"TSDeclareMethod\", \"TSIndexSignature\", \"StaticBlock\")\n }\n});\ndefineType$4(\"ClassExpression\", {\n builder: [\"id\", \"superClass\", \"body\", \"decorators\"],\n visitor: [\"decorators\", \"id\", \"typeParameters\", \"superClass\", \"superTypeArguments\", \"mixins\", \"implements\", \"body\"],\n aliases: [\"Scopable\", \"Class\", \"Expression\"],\n fields: {\n id: {\n validate: assertNodeType(\"Identifier\"),\n optional: true\n },\n typeParameters: {\n validate: assertNodeType(\"TypeParameterDeclaration\", \"TSTypeParameterDeclaration\"),\n optional: true\n },\n body: {\n validate: assertNodeType(\"ClassBody\")\n },\n superClass: {\n optional: true,\n validate: assertNodeType(\"Expression\")\n },\n [\"superTypeArguments\"]: {\n validate: assertNodeType(\"TypeParameterInstantiation\", \"TSTypeParameterInstantiation\"),\n optional: true\n },\n implements: {\n validate: arrayOfType(\"TSClassImplements\", \"ClassImplements\"),\n optional: true\n },\n decorators: {\n validate: arrayOfType(\"Decorator\"),\n optional: true\n },\n mixins: {\n validate: assertNodeType(\"InterfaceExtends\"),\n optional: true\n }\n }\n});\ndefineType$4(\"ClassDeclaration\", {\n inherits: \"ClassExpression\",\n aliases: [\"Scopable\", \"Class\", \"Statement\", \"Declaration\"],\n fields: {\n id: {\n validate: assertNodeType(\"Identifier\"),\n optional: true\n },\n typeParameters: {\n validate: assertNodeType(\"TypeParameterDeclaration\", \"TSTypeParameterDeclaration\"),\n optional: true\n },\n body: {\n validate: assertNodeType(\"ClassBody\")\n },\n superClass: {\n optional: true,\n validate: assertNodeType(\"Expression\")\n },\n [\"superTypeArguments\"]: {\n validate: assertNodeType(\"TypeParameterInstantiation\", \"TSTypeParameterInstantiation\"),\n optional: true\n },\n implements: {\n validate: arrayOfType(\"TSClassImplements\", \"ClassImplements\"),\n optional: true\n },\n decorators: {\n validate: arrayOfType(\"Decorator\"),\n optional: true\n },\n mixins: {\n validate: assertNodeType(\"InterfaceExtends\"),\n optional: true\n },\n declare: {\n validate: assertValueType(\"boolean\"),\n optional: true\n },\n abstract: {\n validate: assertValueType(\"boolean\"),\n optional: true\n }\n },\n validate: function () {\n const identifier = assertNodeType(\"Identifier\");\n return function (parent, key, node) {\n if (!is(\"ExportDefaultDeclaration\", parent)) {\n identifier(node, \"id\", node.id);\n }\n };\n }()\n});\nconst importAttributes = {\n attributes: {\n optional: true,\n validate: arrayOfType(\"ImportAttribute\")\n }\n};\ndefineType$4(\"ExportAllDeclaration\", {\n visitor: [\"source\", \"attributes\"],\n aliases: [\"Statement\", \"Declaration\", \"ImportOrExportDeclaration\", \"ExportDeclaration\"],\n fields: {\n source: {\n validate: assertNodeType(\"StringLiteral\")\n },\n exportKind: validateOptional(assertOneOf(\"type\", \"value\")),\n ...importAttributes\n }\n});\ndefineType$4(\"ExportDefaultDeclaration\", {\n visitor: [\"declaration\"],\n aliases: [\"Statement\", \"Declaration\", \"ImportOrExportDeclaration\", \"ExportDeclaration\"],\n fields: {\n declaration: validateType(\"FunctionDeclaration\", \"ClassDeclaration\", \"Expression\", \"TSDeclareFunction\", \"TSInterfaceDeclaration\", \"EnumDeclaration\"),\n exportKind: validateOptional(assertOneOf(\"value\"))\n }\n});\ndefineType$4(\"ExportNamedDeclaration\", {\n builder: [\"declaration\", \"specifiers\", \"source\", \"attributes\"],\n visitor: [\"declaration\", \"specifiers\", \"source\", \"attributes\"],\n aliases: [\"Statement\", \"Declaration\", \"ImportOrExportDeclaration\", \"ExportDeclaration\"],\n fields: {\n declaration: {\n optional: true,\n validate: chain(assertNodeType(\"Declaration\"), combine(function (node, key, val) {\n if (val && node.specifiers.length) {\n throw new TypeError(\"Only declaration or specifiers is allowed on ExportNamedDeclaration\");\n }\n if (val && node.source) {\n throw new TypeError(\"Cannot export a declaration from a source\");\n }\n }, {\n oneOfNodeTypes: [\"VariableDeclaration\", \"FunctionDeclaration\", \"ClassDeclaration\", \"TSDeclareFunction\", \"TSEnumDeclaration\", \"TSImportEqualsDeclaration\", \"TSInterfaceDeclaration\", \"TSModuleDeclaration\", \"TSTypeAliasDeclaration\", \"EnumDeclaration\", \"InterfaceDeclaration\", \"OpaqueType\", \"TypeAlias\"]\n }))\n },\n ...importAttributes,\n specifiers: {\n default: [],\n validate: arrayOf(function () {\n const sourced = assertNodeType(\"ExportSpecifier\", \"ExportDefaultSpecifier\", \"ExportNamespaceSpecifier\");\n const sourceless = assertNodeType(\"ExportSpecifier\");\n return combine(function (node, key, val) {\n const validator = node.source ? sourced : sourceless;\n validator(node, key, val);\n }, {\n oneOfNodeTypes: [\"ExportSpecifier\", \"ExportDefaultSpecifier\", \"ExportNamespaceSpecifier\"]\n });\n }())\n },\n source: {\n validate: assertNodeType(\"StringLiteral\"),\n optional: true\n },\n exportKind: validateOptional(assertOneOf(\"type\", \"value\"))\n }\n});\ndefineType$4(\"ExportSpecifier\", {\n visitor: [\"local\", \"exported\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n local: {\n validate: assertNodeType(\"Identifier\")\n },\n exported: {\n validate: assertNodeType(\"Identifier\", \"StringLiteral\")\n },\n exportKind: {\n validate: assertOneOf(\"type\", \"value\"),\n optional: true\n }\n }\n});\ndefineType$4(\"ForOfStatement\", {\n visitor: [\"left\", \"right\", \"body\"],\n builder: [\"left\", \"right\", \"body\", \"await\"],\n aliases: [\"Scopable\", \"Statement\", \"For\", \"BlockParent\", \"Loop\", \"ForXStatement\"],\n fields: {\n left: {\n validate: function () {\n const declaration = assertNodeType(\"VariableDeclaration\");\n const lval = assertNodeType(\"Identifier\", \"MemberExpression\", \"ArrayPattern\", \"ObjectPattern\", \"TSAsExpression\", \"TSSatisfiesExpression\", \"TSTypeAssertion\", \"TSNonNullExpression\");\n return combine(function (node, key, val) {\n if (is(\"VariableDeclaration\", val)) {\n declaration(node, key, val);\n } else {\n lval(node, key, val);\n }\n }, {\n oneOfNodeTypes: [\"VariableDeclaration\", \"Identifier\", \"MemberExpression\", \"ArrayPattern\", \"ObjectPattern\", \"TSAsExpression\", \"TSSatisfiesExpression\", \"TSTypeAssertion\", \"TSNonNullExpression\"]\n });\n }()\n },\n right: {\n validate: assertNodeType(\"Expression\")\n },\n body: {\n validate: assertNodeType(\"Statement\")\n },\n await: {\n default: false\n }\n }\n});\ndefineType$4(\"ImportDeclaration\", {\n builder: [\"specifiers\", \"source\", \"attributes\"],\n visitor: [\"specifiers\", \"source\", \"attributes\"],\n aliases: [\"Statement\", \"Declaration\", \"ImportOrExportDeclaration\"],\n fields: {\n ...importAttributes,\n module: {\n optional: true,\n validate: assertValueType(\"boolean\")\n },\n phase: {\n default: null,\n validate: assertOneOf(\"source\", \"defer\")\n },\n specifiers: validateArrayOfType(\"ImportSpecifier\", \"ImportDefaultSpecifier\", \"ImportNamespaceSpecifier\"),\n source: {\n validate: assertNodeType(\"StringLiteral\")\n },\n importKind: {\n validate: assertOneOf(\"type\", \"typeof\", \"value\"),\n optional: true\n }\n }\n});\ndefineType$4(\"ImportDefaultSpecifier\", {\n visitor: [\"local\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n local: {\n validate: assertNodeType(\"Identifier\")\n }\n }\n});\ndefineType$4(\"ImportNamespaceSpecifier\", {\n visitor: [\"local\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n local: {\n validate: assertNodeType(\"Identifier\")\n }\n }\n});\ndefineType$4(\"ImportSpecifier\", {\n visitor: [\"imported\", \"local\"],\n builder: [\"local\", \"imported\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n local: {\n validate: assertNodeType(\"Identifier\")\n },\n imported: {\n validate: assertNodeType(\"Identifier\", \"StringLiteral\")\n },\n importKind: {\n validate: assertOneOf(\"type\", \"typeof\", \"value\"),\n optional: true\n }\n }\n});\ndefineType$4(\"MetaProperty\", {\n visitor: [\"meta\", \"property\"],\n aliases: [\"Expression\"],\n fields: {\n meta: {\n validate: chain(assertNodeType(\"Identifier\"), combine(function (node, key, val) {\n let property;\n switch (val.name) {\n case \"function\":\n property = \"sent\";\n break;\n case \"new\":\n property = \"target\";\n break;\n case \"import\":\n property = \"meta\";\n break;\n }\n if (!is(\"Identifier\", node.property, {\n name: property\n })) {\n throw new TypeError(\"Unrecognised MetaProperty\");\n }\n }, {\n oneOfNodeTypes: [\"Identifier\"]\n }))\n },\n property: {\n validate: assertNodeType(\"Identifier\")\n }\n }\n});\nconst classMethodOrPropertyCommon = () => ({\n abstract: {\n validate: assertValueType(\"boolean\"),\n default: false,\n optional: true\n },\n accessibility: {\n validate: assertOneOf(\"public\", \"private\", \"protected\"),\n optional: true\n },\n static: {\n default: false\n },\n override: {\n optional: true,\n validate: assertValueType(\"boolean\"),\n default: false\n },\n computed: {\n default: false\n },\n optional: {\n validate: assertValueType(\"boolean\"),\n optional: true\n },\n key: {\n validate: chain(function () {\n const normal = assertNodeType(\"Identifier\", \"StringLiteral\", \"NumericLiteral\", \"BigIntLiteral\");\n const computed = assertNodeType(\"Expression\");\n return function (node, key, val) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n };\n }(), assertNodeType(\"Identifier\", \"StringLiteral\", \"NumericLiteral\", \"BigIntLiteral\", \"Expression\"))\n }\n});\nconst classMethodOrDeclareMethodCommon = (allowDecorators = true) => ({\n ...functionCommon(),\n ...classMethodOrPropertyCommon(),\n params: validateArrayOfType(\"FunctionParameter\", \"TSParameterProperty\"),\n kind: {\n validate: assertOneOf(\"get\", \"set\", \"method\", \"constructor\"),\n default: \"method\"\n },\n access: {\n validate: chain(assertValueType(\"string\"), assertOneOf(\"public\", \"private\", \"protected\")),\n optional: true\n },\n ...(allowDecorators ? {\n decorators: {\n validate: arrayOfType(\"Decorator\"),\n optional: true\n }\n } : {})\n});\ndefineType$4(\"ClassMethod\", {\n aliases: [\"Function\", \"Scopable\", \"BlockParent\", \"FunctionParent\", \"Method\"],\n builder: [\"kind\", \"key\", \"params\", \"body\", \"computed\", \"static\", \"generator\", \"async\"],\n visitor: [\"decorators\", \"key\", \"typeParameters\", \"params\", \"returnType\", \"body\"],\n ...classMethodOrPropertyUnionShapeCommon(),\n fields: {\n ...classMethodOrDeclareMethodCommon(),\n ...functionTypeAnnotationCommon(),\n body: {\n validate: assertNodeType(\"BlockStatement\")\n }\n }\n});\ndefineType$4(\"ObjectPattern\", {\n visitor: [\"decorators\", \"properties\", \"typeAnnotation\"],\n builder: [\"properties\"],\n aliases: [\"FunctionParameter\", \"Pattern\", \"PatternLike\", \"LVal\"],\n fields: {\n ...patternLikeCommon(),\n properties: validateArrayOfType(\"RestElement\", \"ObjectProperty\")\n }\n});\ndefineType$4(\"SpreadElement\", {\n visitor: [\"argument\"],\n aliases: [\"UnaryLike\"],\n deprecatedAlias: \"SpreadProperty\",\n fields: {\n argument: {\n validate: assertNodeType(\"Expression\")\n }\n }\n});\ndefineType$4(\"Super\");\ndefineType$4(\"TaggedTemplateExpression\", {\n visitor: [\"tag\", \"typeArguments\", \"quasi\"],\n builder: [\"tag\", \"quasi\"],\n aliases: [\"Expression\"],\n fields: {\n tag: {\n validate: assertNodeType(\"Expression\")\n },\n quasi: {\n validate: assertNodeType(\"TemplateLiteral\")\n },\n [\"typeArguments\"]: {\n validate: assertNodeType(\"TypeParameterInstantiation\", \"TSTypeParameterInstantiation\"),\n optional: true\n }\n }\n});\ndefineType$4(\"TemplateElement\", {\n builder: [\"value\", \"tail\"],\n fields: {\n value: {\n validate: chain(assertShape({\n raw: {\n validate: assertValueType(\"string\")\n },\n cooked: {\n validate: assertValueType(\"string\"),\n optional: true\n }\n }), function templateElementCookedValidator(node) {\n const raw = node.value.raw;\n let unterminatedCalled = false;\n const error = () => {\n throw new Error(\"Internal @babel/types error.\");\n };\n const {\n str,\n firstInvalidLoc\n } = readStringContents(\"template\", raw, 0, 0, 0, {\n unterminated() {\n unterminatedCalled = true;\n },\n strictNumericEscape: error,\n invalidEscapeSequence: error,\n numericSeparatorInEscapeSequence: error,\n unexpectedNumericSeparator: error,\n invalidDigit: error,\n invalidCodePoint: error\n });\n if (!unterminatedCalled) throw new Error(\"Invalid raw\");\n node.value.cooked = firstInvalidLoc ? null : str;\n })\n },\n tail: {\n default: false\n }\n }\n});\ndefineType$4(\"TemplateLiteral\", {\n visitor: [\"quasis\", \"expressions\"],\n aliases: [\"Expression\", \"Literal\"],\n fields: {\n quasis: validateArrayOfType(\"TemplateElement\"),\n expressions: {\n validate: chain(assertValueType(\"array\"), assertEach(assertNodeType(\"Expression\", \"TSType\")), function (node, key, val) {\n if (node.quasis.length !== val.length + 1) {\n throw new TypeError(`Number of ${node.type} quasis should be exactly one more than the number of expressions.\\nExpected ${val.length + 1} quasis but got ${node.quasis.length}`);\n }\n })\n }\n }\n});\ndefineType$4(\"YieldExpression\", {\n builder: [\"argument\", \"delegate\"],\n visitor: [\"argument\"],\n aliases: [\"Expression\", \"Terminatorless\"],\n fields: {\n delegate: {\n validate: chain(assertValueType(\"boolean\"), combine(function (node, key, val) {\n if (val && !node.argument) {\n throw new TypeError(\"Property delegate of YieldExpression cannot be true if there is no argument\");\n }\n }, {\n type: \"boolean\"\n })),\n default: false\n },\n argument: {\n optional: true,\n validate: assertNodeType(\"Expression\")\n }\n }\n});\ndefineType$4(\"AwaitExpression\", {\n builder: [\"argument\"],\n visitor: [\"argument\"],\n aliases: [\"Expression\", \"Terminatorless\"],\n fields: {\n argument: {\n validate: assertNodeType(\"Expression\")\n }\n }\n});\ndefineType$4(\"ImportExpression\", {\n visitor: [\"source\", \"options\"],\n aliases: [\"Expression\"],\n fields: {\n phase: {\n default: null,\n validate: assertOneOf(\"source\", \"defer\")\n },\n source: {\n validate: assertNodeType(\"Expression\")\n },\n options: {\n validate: assertNodeType(\"Expression\"),\n optional: true\n }\n }\n});\ndefineType$4(\"Import\");\ndefineType$4(\"BigIntLiteral\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: assertValueType(\"bigint\")\n }\n },\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"]\n});\ndefineType$4(\"ExportNamespaceSpecifier\", {\n visitor: [\"exported\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n exported: {\n validate: assertNodeType(\"Identifier\", \"StringLiteral\")\n }\n }\n});\ndefineType$4(\"OptionalMemberExpression\", {\n builder: [\"object\", \"property\", \"computed\", \"optional\"],\n visitor: [\"object\", \"property\"],\n aliases: [\"Expression\"],\n ...memberExpressionUnionShapeCommon,\n fields: {\n object: {\n validate: assertNodeType(\"Expression\")\n },\n property: {\n validate: function () {\n const normal = assertNodeType(\"Identifier\", \"PrivateName\");\n const computed = assertNodeType(\"Expression\");\n return combine(function (node, key, val) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n }, {\n oneOfNodeTypes: [\"Expression\", \"PrivateName\"]\n });\n }()\n },\n computed: {\n default: false\n },\n optional: {\n validate: chain(assertValueType(\"boolean\"), assertOptionalChainStart())\n }\n }\n});\ndefineType$4(\"OptionalCallExpression\", {\n visitor: [\"callee\", \"typeArguments\", \"arguments\"],\n builder: [\"callee\", \"arguments\", \"optional\"],\n aliases: [\"Expression\"],\n fields: {\n callee: {\n validate: assertNodeType(\"Expression\")\n },\n arguments: validateArrayOfType(\"Expression\", \"SpreadElement\", \"ArgumentPlaceholder\"),\n optional: {\n validate: chain(assertValueType(\"boolean\"), assertOptionalChainStart())\n },\n typeArguments: {\n validate: assertNodeType(\"TypeParameterInstantiation\", \"TSTypeParameterInstantiation\"),\n optional: true\n }\n }\n});\ndefineType$4(\"ClassProperty\", {\n visitor: [\"decorators\", \"variance\", \"key\", \"typeAnnotation\", \"value\"],\n builder: [\"key\", \"value\", \"typeAnnotation\", \"decorators\", \"computed\", \"static\"],\n aliases: [\"Property\"],\n ...classMethodOrPropertyUnionShapeCommon(),\n fields: {\n ...classMethodOrPropertyCommon(),\n value: {\n validate: assertNodeType(\"Expression\"),\n optional: true\n },\n definite: {\n validate: assertValueType(\"boolean\"),\n optional: true\n },\n typeAnnotation: {\n validate: assertNodeType(\"TypeAnnotation\", \"TSTypeAnnotation\"),\n optional: true\n },\n decorators: {\n validate: arrayOfType(\"Decorator\"),\n optional: true\n },\n readonly: {\n validate: assertValueType(\"boolean\"),\n optional: true\n },\n declare: {\n validate: assertValueType(\"boolean\"),\n optional: true\n },\n variance: {\n validate: assertNodeType(\"Variance\"),\n optional: true\n }\n }\n});\ndefineType$4(\"ClassPrivateProperty\", {\n visitor: [\"decorators\", \"variance\", \"key\", \"typeAnnotation\", \"value\"],\n builder: [\"key\", \"value\", \"decorators\", \"static\"],\n aliases: [\"Property\", \"Private\"],\n fields: {\n key: {\n validate: assertNodeType(\"PrivateName\")\n },\n value: {\n validate: assertNodeType(\"Expression\"),\n optional: true\n },\n typeAnnotation: {\n validate: assertNodeType(\"TypeAnnotation\", \"TSTypeAnnotation\"),\n optional: true\n },\n decorators: {\n validate: arrayOfType(\"Decorator\"),\n optional: true\n },\n static: {\n validate: assertValueType(\"boolean\"),\n default: false\n },\n readonly: {\n validate: assertValueType(\"boolean\"),\n optional: true\n },\n optional: {\n validate: assertValueType(\"boolean\"),\n optional: true\n },\n definite: {\n validate: assertValueType(\"boolean\"),\n optional: true\n },\n variance: {\n validate: assertNodeType(\"Variance\"),\n optional: true\n }\n }\n});\ndefineType$4(\"ClassPrivateMethod\", {\n builder: [\"kind\", \"key\", \"params\", \"body\", \"static\"],\n visitor: [\"decorators\", \"key\", \"typeParameters\", \"params\", \"returnType\", \"body\"],\n aliases: [\"Function\", \"Scopable\", \"BlockParent\", \"FunctionParent\", \"Method\", \"Private\"],\n fields: {\n ...classMethodOrDeclareMethodCommon(),\n ...functionTypeAnnotationCommon(),\n kind: {\n validate: assertOneOf(\"get\", \"set\", \"method\"),\n default: \"method\"\n },\n key: {\n validate: assertNodeType(\"PrivateName\")\n },\n body: {\n validate: assertNodeType(\"BlockStatement\")\n }\n }\n});\ndefineType$4(\"PrivateName\", {\n visitor: [\"id\"],\n aliases: [\"Private\"],\n fields: {\n id: {\n validate: assertNodeType(\"Identifier\")\n }\n }\n});\ndefineType$4(\"StaticBlock\", {\n visitor: [\"body\"],\n fields: {\n body: validateArrayOfType(\"Statement\")\n },\n aliases: [\"Scopable\", \"BlockParent\", \"FunctionParent\"]\n});\ndefineType$4(\"ImportAttribute\", {\n visitor: [\"key\", \"value\"],\n fields: {\n key: {\n validate: assertNodeType(\"Identifier\", \"StringLiteral\")\n },\n value: {\n validate: assertNodeType(\"StringLiteral\")\n }\n }\n});\n\nconst defineType$3 = defineAliasedType(\"Flow\");\nconst defineInterfaceishType = name => {\n const isDeclareClass = name === \"DeclareClass\";\n defineType$3(name, {\n builder: [\"id\", \"typeParameters\", \"extends\", \"body\"],\n visitor: [\"id\", \"typeParameters\", \"extends\", ...(isDeclareClass ? [\"mixins\", \"implements\"] : []), \"body\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: validateType(\"Identifier\"),\n typeParameters: validateOptionalType(\"TypeParameterDeclaration\"),\n extends: validateOptional(arrayOfType(\"InterfaceExtends\")),\n ...(isDeclareClass ? {\n mixins: validateOptional(arrayOfType(\"InterfaceExtends\")),\n implements: validateOptional(arrayOfType(\"ClassImplements\"))\n } : {}),\n body: validateType(\"ObjectTypeAnnotation\")\n }\n });\n};\ndefineType$3(\"AnyTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"]\n});\ndefineType$3(\"ArrayTypeAnnotation\", {\n visitor: [\"elementType\"],\n aliases: [\"FlowType\"],\n fields: {\n elementType: validateType(\"FlowType\")\n }\n});\ndefineType$3(\"BooleanTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"]\n});\ndefineType$3(\"BooleanLiteralTypeAnnotation\", {\n builder: [\"value\"],\n aliases: [\"FlowType\"],\n fields: {\n value: validate$2(assertValueType(\"boolean\"))\n }\n});\ndefineType$3(\"NullLiteralTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"]\n});\ndefineType$3(\"ClassImplements\", {\n visitor: [\"id\", \"typeParameters\"],\n fields: {\n id: validateType(\"Identifier\"),\n typeParameters: validateOptionalType(\"TypeParameterInstantiation\")\n }\n});\ndefineInterfaceishType(\"DeclareClass\");\ndefineType$3(\"DeclareFunction\", {\n builder: [\"id\"],\n visitor: [\"id\", \"predicate\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: validateType(\"Identifier\"),\n predicate: validateOptionalType(\"FlowPredicate\")\n }\n});\ndefineInterfaceishType(\"DeclareInterface\");\ndefineType$3(\"DeclareModule\", {\n builder: [\"id\", \"body\", \"kind\"],\n visitor: [\"id\", \"body\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: validateType(\"Identifier\", \"StringLiteral\"),\n body: validateType(\"BlockStatement\"),\n kind: validateOptional(assertOneOf(\"CommonJS\", \"ES\"))\n }\n});\ndefineType$3(\"DeclareModuleExports\", {\n visitor: [\"typeAnnotation\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n typeAnnotation: validateType(\"TypeAnnotation\")\n }\n});\ndefineType$3(\"DeclareTypeAlias\", {\n visitor: [\"id\", \"typeParameters\", \"right\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: validateType(\"Identifier\"),\n typeParameters: validateOptionalType(\"TypeParameterDeclaration\"),\n right: validateType(\"FlowType\")\n }\n});\ndefineType$3(\"DeclareOpaqueType\", {\n visitor: [\"id\", \"typeParameters\", \"supertype\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: validateType(\"Identifier\"),\n typeParameters: validateOptionalType(\"TypeParameterDeclaration\"),\n supertype: validateOptionalType(\"FlowType\"),\n impltype: validateOptionalType(\"FlowType\")\n }\n});\ndefineType$3(\"DeclareVariable\", {\n visitor: [\"id\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: validateType(\"Identifier\")\n }\n});\ndefineType$3(\"DeclareExportDeclaration\", {\n visitor: [\"declaration\", \"specifiers\", \"source\", \"attributes\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n declaration: validateOptionalType(\"Flow\"),\n specifiers: validateOptional(arrayOfType(\"ExportSpecifier\", \"ExportNamespaceSpecifier\")),\n source: validateOptionalType(\"StringLiteral\"),\n default: validateOptional(assertValueType(\"boolean\")),\n ...importAttributes\n }\n});\ndefineType$3(\"DeclareExportAllDeclaration\", {\n visitor: [\"source\", \"attributes\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n source: validateType(\"StringLiteral\"),\n exportKind: validateOptional(assertOneOf(\"type\", \"value\")),\n ...importAttributes\n }\n});\ndefineType$3(\"DeclaredPredicate\", {\n visitor: [\"value\"],\n aliases: [\"FlowPredicate\"],\n fields: {\n value: validateType(\"Expression\")\n }\n});\ndefineType$3(\"ExistsTypeAnnotation\", {\n aliases: [\"FlowType\"]\n});\ndefineType$3(\"FunctionTypeAnnotation\", {\n builder: [\"typeParameters\", \"params\", \"rest\", \"returnType\"],\n visitor: [\"typeParameters\", \"this\", \"params\", \"rest\", \"returnType\"],\n aliases: [\"FlowType\"],\n fields: {\n typeParameters: validateOptionalType(\"TypeParameterDeclaration\"),\n params: validateArrayOfType(\"FunctionTypeParam\"),\n rest: validateOptionalType(\"FunctionTypeParam\"),\n this: validateOptionalType(\"FunctionTypeParam\"),\n returnType: validateType(\"FlowType\")\n }\n});\ndefineType$3(\"FunctionTypeParam\", {\n visitor: [\"name\", \"typeAnnotation\"],\n fields: {\n name: validateOptionalType(\"Identifier\"),\n typeAnnotation: validateType(\"FlowType\"),\n optional: validateOptional(assertValueType(\"boolean\"))\n }\n});\ndefineType$3(\"GenericTypeAnnotation\", {\n visitor: [\"id\", \"typeParameters\"],\n aliases: [\"FlowType\"],\n fields: {\n id: validateType(\"Identifier\", \"QualifiedTypeIdentifier\"),\n typeParameters: validateOptionalType(\"TypeParameterInstantiation\")\n }\n});\ndefineType$3(\"InferredPredicate\", {\n aliases: [\"FlowPredicate\"]\n});\ndefineType$3(\"InterfaceExtends\", {\n visitor: [\"id\", \"typeParameters\"],\n fields: {\n id: validateType(\"Identifier\", \"QualifiedTypeIdentifier\"),\n typeParameters: validateOptionalType(\"TypeParameterInstantiation\")\n }\n});\ndefineInterfaceishType(\"InterfaceDeclaration\");\ndefineType$3(\"InterfaceTypeAnnotation\", {\n visitor: [\"extends\", \"body\"],\n aliases: [\"FlowType\"],\n fields: {\n extends: validateOptional(arrayOfType(\"InterfaceExtends\")),\n body: validateType(\"ObjectTypeAnnotation\")\n }\n});\ndefineType$3(\"IntersectionTypeAnnotation\", {\n visitor: [\"types\"],\n aliases: [\"FlowType\"],\n fields: {\n types: validate$2(arrayOfType(\"FlowType\"))\n }\n});\ndefineType$3(\"MixedTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"]\n});\ndefineType$3(\"EmptyTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"]\n});\ndefineType$3(\"NullableTypeAnnotation\", {\n visitor: [\"typeAnnotation\"],\n aliases: [\"FlowType\"],\n fields: {\n typeAnnotation: validateType(\"FlowType\")\n }\n});\ndefineType$3(\"NumberLiteralTypeAnnotation\", {\n builder: [\"value\"],\n aliases: [\"FlowType\"],\n fields: {\n value: validate$2(assertValueType(\"number\"))\n }\n});\ndefineType$3(\"BigIntLiteralTypeAnnotation\", {\n builder: [\"value\"],\n aliases: [\"FlowType\"],\n fields: {\n value: validate$2(assertValueType(\"bigint\"))\n }\n});\ndefineType$3(\"NumberTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"]\n});\ndefineType$3(\"ObjectTypeAnnotation\", {\n visitor: [\"properties\", \"indexers\", \"callProperties\", \"internalSlots\"],\n aliases: [\"FlowType\"],\n builder: [\"properties\", \"indexers\", \"callProperties\", \"internalSlots\", \"exact\"],\n fields: {\n properties: validate$2(arrayOfType(\"ObjectTypeProperty\", \"ObjectTypeSpreadProperty\")),\n indexers: {\n validate: arrayOfType(\"ObjectTypeIndexer\"),\n optional: false,\n default: []\n },\n callProperties: {\n validate: arrayOfType(\"ObjectTypeCallProperty\"),\n optional: false,\n default: []\n },\n internalSlots: {\n validate: arrayOfType(\"ObjectTypeInternalSlot\"),\n optional: false,\n default: []\n },\n exact: {\n validate: assertValueType(\"boolean\"),\n default: false\n },\n inexact: validateOptional(assertValueType(\"boolean\"))\n }\n});\ndefineType$3(\"ObjectTypeInternalSlot\", {\n visitor: [\"id\", \"value\"],\n builder: [\"id\", \"value\", \"optional\", \"static\", \"method\"],\n aliases: [\"UserWhitespacable\"],\n fields: {\n id: validateType(\"Identifier\"),\n value: validateType(\"FlowType\"),\n optional: validate$2(assertValueType(\"boolean\")),\n static: validate$2(assertValueType(\"boolean\")),\n method: validate$2(assertValueType(\"boolean\"))\n }\n});\ndefineType$3(\"ObjectTypeCallProperty\", {\n visitor: [\"value\"],\n aliases: [\"UserWhitespacable\"],\n fields: {\n value: validateType(\"FlowType\"),\n static: validateDefault(assertValueType(\"boolean\"), false)\n }\n});\ndefineType$3(\"ObjectTypeIndexer\", {\n visitor: [\"variance\", \"id\", \"key\", \"value\"],\n builder: [\"id\", \"key\", \"value\", \"variance\"],\n aliases: [\"UserWhitespacable\"],\n fields: {\n id: validateOptionalType(\"Identifier\"),\n key: validateType(\"FlowType\"),\n value: validateType(\"FlowType\"),\n static: validateDefault(assertValueType(\"boolean\"), false),\n variance: validateOptionalType(\"Variance\")\n }\n});\ndefineType$3(\"ObjectTypeProperty\", {\n visitor: [\"key\", \"value\", \"variance\"],\n aliases: [\"UserWhitespacable\"],\n fields: {\n key: validateType(\"Identifier\", \"StringLiteral\", \"NumericLiteral\"),\n value: validateType(\"FlowType\"),\n kind: {\n validate: assertOneOf(\"init\", \"get\", \"set\"),\n default: \"init\",\n optional: false\n },\n static: validateDefault(assertValueType(\"boolean\"), false),\n proto: validateDefault(assertValueType(\"boolean\"), false),\n optional: validateDefault(assertValueType(\"boolean\"), false),\n variance: validateOptionalType(\"Variance\"),\n method: validateDefault(assertValueType(\"boolean\"), false)\n }\n});\ndefineType$3(\"ObjectTypeSpreadProperty\", {\n visitor: [\"argument\"],\n aliases: [\"UserWhitespacable\"],\n fields: {\n argument: validateType(\"FlowType\")\n }\n});\ndefineType$3(\"OpaqueType\", {\n visitor: [\"id\", \"typeParameters\", \"supertype\", \"impltype\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: validateType(\"Identifier\"),\n typeParameters: validateOptionalType(\"TypeParameterDeclaration\"),\n supertype: validateOptionalType(\"FlowType\"),\n impltype: validateType(\"FlowType\")\n }\n});\ndefineType$3(\"QualifiedTypeIdentifier\", {\n visitor: [\"qualification\", \"id\"],\n builder: [\"id\", \"qualification\"],\n fields: {\n id: validateType(\"Identifier\"),\n qualification: validateType(\"Identifier\", \"QualifiedTypeIdentifier\")\n }\n});\ndefineType$3(\"StringLiteralTypeAnnotation\", {\n builder: [\"value\"],\n aliases: [\"FlowType\"],\n fields: {\n value: validate$2(assertValueType(\"string\"))\n }\n});\ndefineType$3(\"StringTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"]\n});\ndefineType$3(\"SymbolTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"]\n});\ndefineType$3(\"ThisTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"]\n});\ndefineType$3(\"TupleTypeAnnotation\", {\n visitor: [\"types\"],\n aliases: [\"FlowType\"],\n fields: {\n types: validate$2(arrayOfType(\"FlowType\"))\n }\n});\ndefineType$3(\"TypeofTypeAnnotation\", {\n visitor: [\"argument\"],\n aliases: [\"FlowType\"],\n fields: {\n argument: validateType(\"FlowType\")\n }\n});\ndefineType$3(\"TypeAlias\", {\n visitor: [\"id\", \"typeParameters\", \"right\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: validateType(\"Identifier\"),\n typeParameters: validateOptionalType(\"TypeParameterDeclaration\"),\n right: validateType(\"FlowType\")\n }\n});\ndefineType$3(\"TypeAnnotation\", {\n visitor: [\"typeAnnotation\"],\n fields: {\n typeAnnotation: validateType(\"FlowType\")\n }\n});\ndefineType$3(\"TypeCastExpression\", {\n visitor: [\"expression\", \"typeAnnotation\"],\n aliases: [\"ExpressionWrapper\", \"Expression\"],\n fields: {\n expression: validateType(\"Expression\"),\n typeAnnotation: validateType(\"TypeAnnotation\")\n }\n});\ndefineType$3(\"TypeParameter\", {\n builder: [\"name\", \"bound\", \"default\", \"variance\"],\n visitor: [\"bound\", \"default\", \"variance\"],\n fields: {\n name: validate$2(assertValueType(\"string\")),\n bound: validateOptionalType(\"TypeAnnotation\"),\n default: validateOptionalType(\"FlowType\"),\n variance: validateOptionalType(\"Variance\")\n }\n});\ndefineType$3(\"TypeParameterDeclaration\", {\n visitor: [\"params\"],\n fields: {\n params: validate$2(arrayOfType(\"TypeParameter\"))\n }\n});\ndefineType$3(\"TypeParameterInstantiation\", {\n visitor: [\"params\"],\n fields: {\n params: validate$2(arrayOfType(\"FlowType\"))\n }\n});\ndefineType$3(\"UnionTypeAnnotation\", {\n visitor: [\"types\"],\n aliases: [\"FlowType\"],\n fields: {\n types: validate$2(arrayOfType(\"FlowType\"))\n }\n});\ndefineType$3(\"Variance\", {\n builder: [\"kind\"],\n fields: {\n kind: validate$2(assertOneOf(\"minus\", \"plus\"))\n }\n});\ndefineType$3(\"VoidTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"]\n});\ndefineType$3(\"EnumDeclaration\", {\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"body\"],\n fields: {\n id: validateType(\"Identifier\"),\n body: validateType(\"EnumBooleanBody\", \"EnumNumberBody\", \"EnumStringBody\", \"EnumSymbolBody\")\n }\n});\nconst enumBodyBase = {\n explicitType: validateDefault(assertValueType(\"boolean\"), false),\n hasUnknownMembers: validateDefault(assertValueType(\"boolean\"), false)\n};\ndefineType$3(\"EnumBooleanBody\", {\n aliases: [\"EnumBody\"],\n visitor: [\"members\"],\n fields: {\n ...enumBodyBase,\n members: validateArrayOfType(\"EnumBooleanMember\")\n }\n});\ndefineType$3(\"EnumNumberBody\", {\n aliases: [\"EnumBody\"],\n visitor: [\"members\"],\n fields: {\n ...enumBodyBase,\n members: validateArrayOfType(\"EnumNumberMember\")\n }\n});\ndefineType$3(\"EnumStringBody\", {\n aliases: [\"EnumBody\"],\n visitor: [\"members\"],\n fields: {\n ...enumBodyBase,\n members: validateArrayOfType(\"EnumStringMember\", \"EnumDefaultedMember\")\n }\n});\ndefineType$3(\"EnumSymbolBody\", {\n aliases: [\"EnumBody\"],\n visitor: [\"members\"],\n fields: {\n members: validateArrayOfType(\"EnumDefaultedMember\"),\n hasUnknownMembers: validateDefault(assertValueType(\"boolean\"), false)\n }\n});\ndefineType$3(\"EnumBooleanMember\", {\n aliases: [\"EnumMember\"],\n visitor: [\"id\", \"init\"],\n fields: {\n id: validateType(\"Identifier\"),\n init: validateType(\"BooleanLiteral\")\n }\n});\ndefineType$3(\"EnumNumberMember\", {\n aliases: [\"EnumMember\"],\n visitor: [\"id\", \"init\"],\n fields: {\n id: validateType(\"Identifier\"),\n init: validateType(\"NumericLiteral\")\n }\n});\ndefineType$3(\"EnumStringMember\", {\n aliases: [\"EnumMember\"],\n visitor: [\"id\", \"init\"],\n fields: {\n id: validateType(\"Identifier\"),\n init: validateType(\"StringLiteral\")\n }\n});\ndefineType$3(\"EnumDefaultedMember\", {\n aliases: [\"EnumMember\"],\n visitor: [\"id\"],\n fields: {\n id: validateType(\"Identifier\")\n }\n});\ndefineType$3(\"IndexedAccessType\", {\n visitor: [\"objectType\", \"indexType\"],\n aliases: [\"FlowType\"],\n fields: {\n objectType: validateType(\"FlowType\"),\n indexType: validateType(\"FlowType\")\n }\n});\ndefineType$3(\"OptionalIndexedAccessType\", {\n visitor: [\"objectType\", \"indexType\"],\n aliases: [\"FlowType\"],\n fields: {\n objectType: validateType(\"FlowType\"),\n indexType: validateType(\"FlowType\"),\n optional: validateDefault(assertValueType(\"boolean\"), false)\n }\n});\n\nconst defineType$2 = defineAliasedType(\"JSX\");\ndefineType$2(\"JSXAttribute\", {\n visitor: [\"name\", \"value\"],\n aliases: [\"Immutable\"],\n fields: {\n name: {\n validate: assertNodeType(\"JSXIdentifier\", \"JSXNamespacedName\")\n },\n value: {\n optional: true,\n validate: assertNodeType(\"JSXElement\", \"JSXFragment\", \"StringLiteral\", \"JSXExpressionContainer\")\n }\n }\n});\ndefineType$2(\"JSXClosingElement\", {\n visitor: [\"name\"],\n aliases: [\"Immutable\"],\n fields: {\n name: {\n validate: assertNodeType(\"JSXIdentifier\", \"JSXMemberExpression\", \"JSXNamespacedName\")\n }\n }\n});\ndefineType$2(\"JSXElement\", {\n builder: [\"openingElement\", \"closingElement\", \"children\"],\n visitor: [\"openingElement\", \"children\", \"closingElement\"],\n aliases: [\"Immutable\", \"Expression\"],\n fields: {\n openingElement: {\n validate: assertNodeType(\"JSXOpeningElement\")\n },\n closingElement: {\n optional: true,\n validate: assertNodeType(\"JSXClosingElement\")\n },\n children: validateArrayOfType(\"JSXText\", \"JSXExpressionContainer\", \"JSXSpreadChild\", \"JSXElement\", \"JSXFragment\")\n }\n});\ndefineType$2(\"JSXEmptyExpression\", {});\ndefineType$2(\"JSXExpressionContainer\", {\n visitor: [\"expression\"],\n aliases: [\"Immutable\"],\n fields: {\n expression: {\n validate: assertNodeType(\"Expression\", \"JSXEmptyExpression\")\n }\n }\n});\ndefineType$2(\"JSXSpreadChild\", {\n visitor: [\"expression\"],\n aliases: [\"Immutable\"],\n fields: {\n expression: {\n validate: assertNodeType(\"Expression\")\n }\n }\n});\ndefineType$2(\"JSXIdentifier\", {\n builder: [\"name\"],\n fields: {\n name: {\n validate: assertValueType(\"string\")\n }\n }\n});\ndefineType$2(\"JSXMemberExpression\", {\n visitor: [\"object\", \"property\"],\n fields: {\n object: {\n validate: assertNodeType(\"JSXMemberExpression\", \"JSXIdentifier\")\n },\n property: {\n validate: assertNodeType(\"JSXIdentifier\")\n }\n }\n});\ndefineType$2(\"JSXNamespacedName\", {\n visitor: [\"namespace\", \"name\"],\n fields: {\n namespace: {\n validate: assertNodeType(\"JSXIdentifier\")\n },\n name: {\n validate: assertNodeType(\"JSXIdentifier\")\n }\n }\n});\ndefineType$2(\"JSXOpeningElement\", {\n builder: [\"name\", \"attributes\", \"selfClosing\"],\n visitor: [\"name\", \"typeArguments\", \"attributes\"],\n aliases: [\"Immutable\"],\n fields: {\n name: {\n validate: assertNodeType(\"JSXIdentifier\", \"JSXMemberExpression\", \"JSXNamespacedName\")\n },\n selfClosing: {\n default: false\n },\n attributes: validateArrayOfType(\"JSXAttribute\", \"JSXSpreadAttribute\"),\n typeArguments: {\n validate: assertNodeType(\"TypeParameterInstantiation\", \"TSTypeParameterInstantiation\"),\n optional: true\n }\n }\n});\ndefineType$2(\"JSXSpreadAttribute\", {\n visitor: [\"argument\"],\n fields: {\n argument: {\n validate: assertNodeType(\"Expression\")\n }\n }\n});\ndefineType$2(\"JSXText\", {\n aliases: [\"Immutable\"],\n builder: [\"value\"],\n fields: {\n value: {\n validate: assertValueType(\"string\")\n }\n }\n});\ndefineType$2(\"JSXFragment\", {\n builder: [\"openingFragment\", \"closingFragment\", \"children\"],\n visitor: [\"openingFragment\", \"children\", \"closingFragment\"],\n aliases: [\"Immutable\", \"Expression\"],\n fields: {\n openingFragment: {\n validate: assertNodeType(\"JSXOpeningFragment\")\n },\n closingFragment: {\n validate: assertNodeType(\"JSXClosingFragment\")\n },\n children: validateArrayOfType(\"JSXText\", \"JSXExpressionContainer\", \"JSXSpreadChild\", \"JSXElement\", \"JSXFragment\")\n }\n});\ndefineType$2(\"JSXOpeningFragment\", {\n aliases: [\"Immutable\"]\n});\ndefineType$2(\"JSXClosingFragment\", {\n aliases: [\"Immutable\"]\n});\n\nconst PLACEHOLDERS = [\"Identifier\", \"StringLiteral\", \"Expression\", \"Statement\", \"Declaration\", \"BlockStatement\", \"ClassBody\", \"Pattern\"];\nconst PLACEHOLDERS_ALIAS = {\n Declaration: [\"Statement\"],\n Pattern: [\"PatternLike\", \"LVal\"]\n};\nfor (const type of PLACEHOLDERS) {\n const alias = ALIAS_KEYS[type];\n if (alias?.length) PLACEHOLDERS_ALIAS[type] = alias;\n}\nconst PLACEHOLDERS_FLIPPED_ALIAS = {};\nObject.keys(PLACEHOLDERS_ALIAS).forEach(type => {\n PLACEHOLDERS_ALIAS[type].forEach(alias => {\n if (!Object.hasOwn(PLACEHOLDERS_FLIPPED_ALIAS, alias)) {\n PLACEHOLDERS_FLIPPED_ALIAS[alias] = [];\n }\n PLACEHOLDERS_FLIPPED_ALIAS[alias].push(type);\n });\n});\n\nconst defineType$1 = defineAliasedType(\"Miscellaneous\");\ndefineType$1(\"Placeholder\", {\n visitor: [],\n builder: [\"expectedNode\", \"name\"],\n fields: {\n name: {\n validate: assertNodeType(\"Identifier\")\n },\n expectedNode: {\n validate: assertOneOf(...PLACEHOLDERS)\n },\n ...patternLikeCommon()\n }\n});\ndefineType$1(\"V8IntrinsicIdentifier\", {\n builder: [\"name\"],\n fields: {\n name: {\n validate: assertValueType(\"string\")\n }\n }\n});\n\ndefineType$5(\"ArgumentPlaceholder\", {});\ndefineType$5(\"BindExpression\", {\n visitor: [\"object\", \"callee\"],\n aliases: [\"Expression\"],\n fields: {\n object: {\n validate: assertNodeOrValueType(\"null\", \"Expression\")\n },\n callee: {\n validate: assertNodeType(\"Expression\")\n }\n }\n});\ndefineType$5(\"ClassAccessorProperty\", {\n visitor: [\"decorators\", \"key\", \"typeAnnotation\", \"value\"],\n builder: [\"key\", \"value\", \"typeAnnotation\", \"decorators\", \"computed\", \"static\"],\n aliases: [\"Property\", \"Accessor\"],\n ...classMethodOrPropertyUnionShapeCommon(true),\n fields: {\n ...classMethodOrPropertyCommon(),\n key: {\n validate: chain(function () {\n const normal = assertNodeType(\"Identifier\", \"StringLiteral\", \"NumericLiteral\", \"BigIntLiteral\", \"PrivateName\");\n const computed = assertNodeType(\"Expression\");\n return function (node, key, val) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n };\n }(), assertNodeType(\"Identifier\", \"StringLiteral\", \"NumericLiteral\", \"BigIntLiteral\", \"Expression\", \"PrivateName\"))\n },\n value: {\n validate: assertNodeType(\"Expression\"),\n optional: true\n },\n definite: {\n validate: assertValueType(\"boolean\"),\n optional: true\n },\n typeAnnotation: {\n validate: assertNodeType(\"TypeAnnotation\", \"TSTypeAnnotation\"),\n optional: true\n },\n decorators: {\n validate: arrayOfType(\"Decorator\"),\n optional: true\n },\n readonly: {\n validate: assertValueType(\"boolean\"),\n optional: true\n },\n declare: {\n validate: assertValueType(\"boolean\"),\n optional: true\n },\n variance: {\n validate: assertNodeType(\"Variance\"),\n optional: true\n }\n }\n});\ndefineType$5(\"Decorator\", {\n visitor: [\"expression\"],\n fields: {\n expression: {\n validate: assertNodeType(\"Expression\")\n }\n }\n});\ndefineType$5(\"DoExpression\", {\n visitor: [\"body\"],\n builder: [\"body\", \"async\"],\n aliases: [\"Expression\"],\n fields: {\n body: {\n validate: assertNodeType(\"BlockStatement\")\n },\n async: {\n validate: assertValueType(\"boolean\"),\n default: false\n }\n }\n});\ndefineType$5(\"ExportDefaultSpecifier\", {\n visitor: [\"exported\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n exported: {\n validate: assertNodeType(\"Identifier\")\n }\n }\n});\ndefineType$5(\"ModuleExpression\", {\n visitor: [\"body\"],\n fields: {\n body: {\n validate: assertNodeType(\"Program\")\n }\n },\n aliases: [\"Expression\"]\n});\ndefineType$5(\"TopicReference\", {\n aliases: [\"Expression\"]\n});\ndefineType$5(\"VoidPattern\", {\n aliases: [\"Pattern\", \"PatternLike\", \"FunctionParameter\"]\n});\n\nconst defineType = defineAliasedType(\"TypeScript\");\nconst bool = assertValueType(\"boolean\");\nconst tSFunctionTypeAnnotationCommon = () => ({\n returnType: {\n validate: assertNodeType(\"TSTypeAnnotation\"),\n optional: true\n },\n typeParameters: {\n validate: assertNodeType(\"TSTypeParameterDeclaration\"),\n optional: true\n }\n});\ndefineType(\"TSParameterProperty\", {\n aliases: [],\n visitor: [\"parameter\"],\n fields: {\n accessibility: {\n validate: assertOneOf(\"public\", \"private\", \"protected\"),\n optional: true\n },\n readonly: {\n validate: assertValueType(\"boolean\"),\n optional: true\n },\n parameter: {\n validate: assertNodeType(\"Identifier\", \"AssignmentPattern\")\n },\n override: {\n validate: assertValueType(\"boolean\"),\n optional: true\n },\n decorators: {\n validate: arrayOfType(\"Decorator\"),\n optional: true\n }\n }\n});\ndefineType(\"TSDeclareFunction\", {\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"typeParameters\", \"params\", \"returnType\"],\n fields: {\n ...functionDeclarationCommon(),\n ...tSFunctionTypeAnnotationCommon()\n }\n});\ndefineType(\"TSDeclareMethod\", {\n visitor: [\"key\", \"typeParameters\", \"params\", \"returnType\"],\n ...classMethodOrPropertyUnionShapeCommon(),\n fields: {\n ...classMethodOrDeclareMethodCommon(false),\n ...tSFunctionTypeAnnotationCommon()\n }\n});\ndefineType(\"TSQualifiedName\", {\n aliases: [\"TSEntityName\"],\n visitor: [\"left\", \"right\"],\n fields: {\n left: validateType(\"TSEntityName\"),\n right: validateType(\"Identifier\")\n }\n});\nconst signatureDeclarationCommon = () => ({\n typeParameters: validateOptionalType(\"TSTypeParameterDeclaration\"),\n [\"params\"]: validateArrayOfType(\"ArrayPattern\", \"Identifier\", \"ObjectPattern\", \"RestElement\"),\n [\"returnType\"]: validateOptionalType(\"TSTypeAnnotation\")\n});\nconst callConstructSignatureDeclaration = {\n aliases: [\"TSTypeElement\"],\n visitor: [\"typeParameters\", \"params\", \"returnType\"],\n fields: signatureDeclarationCommon()\n};\ndefineType(\"TSCallSignatureDeclaration\", callConstructSignatureDeclaration);\ndefineType(\"TSConstructSignatureDeclaration\", callConstructSignatureDeclaration);\nconst namedTypeElementCommon = () => ({\n key: validateType(\"Expression\"),\n computed: {\n default: false\n },\n optional: validateOptional(bool)\n});\ndefineType(\"TSPropertySignature\", {\n aliases: [\"TSTypeElement\"],\n visitor: [\"key\", \"typeAnnotation\"],\n fields: {\n ...namedTypeElementCommon(),\n readonly: validateOptional(bool),\n typeAnnotation: validateOptionalType(\"TSTypeAnnotation\"),\n kind: {\n optional: true,\n validate: assertOneOf(\"get\", \"set\")\n }\n }\n});\ndefineType(\"TSMethodSignature\", {\n aliases: [\"TSTypeElement\"],\n visitor: [\"key\", \"typeParameters\", \"params\", \"returnType\"],\n fields: {\n ...signatureDeclarationCommon(),\n ...namedTypeElementCommon(),\n kind: {\n validate: assertOneOf(\"method\", \"get\", \"set\"),\n default: \"method\"\n }\n }\n});\ndefineType(\"TSIndexSignature\", {\n aliases: [\"TSTypeElement\"],\n visitor: [\"parameters\", \"typeAnnotation\"],\n fields: {\n readonly: validateOptional(bool),\n static: validateOptional(bool),\n parameters: validateArrayOfType(\"Identifier\"),\n typeAnnotation: validateOptionalType(\"TSTypeAnnotation\")\n }\n});\nconst tsKeywordTypes = [\"TSAnyKeyword\", \"TSBooleanKeyword\", \"TSBigIntKeyword\", \"TSIntrinsicKeyword\", \"TSNeverKeyword\", \"TSNullKeyword\", \"TSNumberKeyword\", \"TSObjectKeyword\", \"TSStringKeyword\", \"TSSymbolKeyword\", \"TSUndefinedKeyword\", \"TSUnknownKeyword\", \"TSVoidKeyword\"];\nfor (const type of tsKeywordTypes) {\n defineType(type, {\n aliases: [\"TSType\", \"TSBaseType\"],\n visitor: [],\n fields: {}\n });\n}\ndefineType(\"TSThisType\", {\n aliases: [\"TSType\", \"TSBaseType\"],\n visitor: [],\n fields: {}\n});\nconst fnOrCtrBase = {\n aliases: [\"TSType\"],\n visitor: [\"typeParameters\", \"params\", \"returnType\"]\n};\ndefineType(\"TSFunctionType\", {\n ...fnOrCtrBase,\n fields: signatureDeclarationCommon()\n});\ndefineType(\"TSConstructorType\", {\n ...fnOrCtrBase,\n fields: {\n ...signatureDeclarationCommon(),\n abstract: validateOptional(bool)\n }\n});\ndefineType(\"TSTypeReference\", {\n aliases: [\"TSType\"],\n visitor: [\"typeName\", \"typeArguments\"],\n fields: {\n typeName: validateType(\"TSEntityName\"),\n [\"typeArguments\"]: validateOptionalType(\"TSTypeParameterInstantiation\")\n }\n});\ndefineType(\"TSTypePredicate\", {\n aliases: [\"TSType\"],\n visitor: [\"parameterName\", \"typeAnnotation\"],\n builder: [\"parameterName\", \"typeAnnotation\", \"asserts\"],\n fields: {\n parameterName: validateType(\"Identifier\", \"TSThisType\"),\n typeAnnotation: validateOptionalType(\"TSTypeAnnotation\"),\n asserts: validateOptional(bool)\n }\n});\ndefineType(\"TSTypeQuery\", {\n aliases: [\"TSType\"],\n visitor: [\"exprName\", \"typeArguments\"],\n fields: {\n exprName: validateType(\"TSEntityName\", \"TSImportType\"),\n [\"typeArguments\"]: validateOptionalType(\"TSTypeParameterInstantiation\")\n }\n});\ndefineType(\"TSTypeLiteral\", {\n aliases: [\"TSType\"],\n visitor: [\"members\"],\n fields: {\n members: validateArrayOfType(\"TSTypeElement\")\n }\n});\ndefineType(\"TSArrayType\", {\n aliases: [\"TSType\"],\n visitor: [\"elementType\"],\n fields: {\n elementType: validateType(\"TSType\")\n }\n});\ndefineType(\"TSTupleType\", {\n aliases: [\"TSType\"],\n visitor: [\"elementTypes\"],\n fields: {\n elementTypes: validateArrayOfType(\"TSType\", \"TSNamedTupleMember\")\n }\n});\ndefineType(\"TSOptionalType\", {\n aliases: [\"TSType\"],\n visitor: [\"typeAnnotation\"],\n fields: {\n typeAnnotation: validateType(\"TSType\")\n }\n});\ndefineType(\"TSRestType\", {\n aliases: [\"TSType\"],\n visitor: [\"typeAnnotation\"],\n fields: {\n typeAnnotation: validateType(\"TSType\")\n }\n});\ndefineType(\"TSNamedTupleMember\", {\n visitor: [\"label\", \"elementType\"],\n builder: [\"label\", \"elementType\", \"optional\"],\n fields: {\n label: validateType(\"Identifier\"),\n optional: {\n validate: bool,\n default: false\n },\n elementType: validateType(\"TSType\")\n }\n});\nconst unionOrIntersection = {\n aliases: [\"TSType\"],\n visitor: [\"types\"],\n fields: {\n types: validateArrayOfType(\"TSType\")\n }\n};\ndefineType(\"TSUnionType\", unionOrIntersection);\ndefineType(\"TSIntersectionType\", unionOrIntersection);\ndefineType(\"TSConditionalType\", {\n aliases: [\"TSType\"],\n visitor: [\"checkType\", \"extendsType\", \"trueType\", \"falseType\"],\n fields: {\n checkType: validateType(\"TSType\"),\n extendsType: validateType(\"TSType\"),\n trueType: validateType(\"TSType\"),\n falseType: validateType(\"TSType\")\n }\n});\ndefineType(\"TSInferType\", {\n aliases: [\"TSType\"],\n visitor: [\"typeParameter\"],\n fields: {\n typeParameter: validateType(\"TSTypeParameter\")\n }\n});\ndefineType(\"TSParenthesizedType\", {\n aliases: [\"TSType\"],\n visitor: [\"typeAnnotation\"],\n fields: {\n typeAnnotation: validateType(\"TSType\")\n }\n});\ndefineType(\"TSTypeOperator\", {\n aliases: [\"TSType\"],\n visitor: [\"typeAnnotation\"],\n builder: [\"typeAnnotation\", \"operator\"],\n fields: {\n operator: {\n validate: assertOneOf(\"keyof\", \"readonly\", \"unique\"),\n default: undefined\n },\n typeAnnotation: validateType(\"TSType\")\n }\n});\ndefineType(\"TSIndexedAccessType\", {\n aliases: [\"TSType\"],\n visitor: [\"objectType\", \"indexType\"],\n fields: {\n objectType: validateType(\"TSType\"),\n indexType: validateType(\"TSType\")\n }\n});\ndefineType(\"TSMappedType\", {\n aliases: [\"TSType\"],\n visitor: [\"key\", \"constraint\", \"nameType\", \"typeAnnotation\"],\n builder: [\"key\", \"constraint\", \"nameType\", \"typeAnnotation\"],\n fields: {\n key: validateType(\"Identifier\"),\n constraint: validateType(\"TSType\"),\n readonly: validateOptional(assertOneOf(true, false, \"+\", \"-\")),\n optional: validateOptional(assertOneOf(true, false, \"+\", \"-\")),\n typeAnnotation: validateOptionalType(\"TSType\"),\n nameType: validateOptionalType(\"TSType\")\n }\n});\ndefineType(\"TSTemplateLiteralType\", {\n aliases: [\"TSType\", \"TSBaseType\"],\n visitor: [\"quasis\", \"types\"],\n fields: {\n quasis: validateArrayOfType(\"TemplateElement\"),\n types: {\n validate: chain(assertValueType(\"array\"), assertEach(assertNodeType(\"TSType\")), function (node, key, val) {\n if (node.quasis.length !== val.length + 1) {\n throw new TypeError(`Number of ${node.type} quasis should be exactly one more than the number of types.\\nExpected ${val.length + 1} quasis but got ${node.quasis.length}`);\n }\n })\n }\n }\n});\ndefineType(\"TSLiteralType\", {\n aliases: [\"TSType\", \"TSBaseType\"],\n visitor: [\"literal\"],\n fields: {\n literal: {\n validate: function () {\n const unaryExpression = assertNodeType(\"NumericLiteral\", \"BigIntLiteral\");\n const unaryOperator = assertOneOf(\"-\");\n const literal = assertNodeType(\"NumericLiteral\", \"StringLiteral\", \"BooleanLiteral\", \"BigIntLiteral\", \"TemplateLiteral\");\n const validator = combine(function validator(parent, key, node) {\n if (is(\"UnaryExpression\", node)) {\n unaryOperator(node, \"operator\", node.operator);\n unaryExpression(node, \"argument\", node.argument);\n } else {\n literal(parent, key, node);\n }\n }, {\n oneOfNodeTypes: [\"NumericLiteral\", \"StringLiteral\", \"BooleanLiteral\", \"BigIntLiteral\", \"TemplateLiteral\", \"UnaryExpression\"]\n });\n return validator;\n }()\n }\n }\n});\ndefineType(\"TSClassImplements\", {\n aliases: [\"TSType\"],\n visitor: [\"expression\", \"typeArguments\"],\n fields: {\n expression: validateType(\"Expression\"),\n typeArguments: validateOptionalType(\"TSTypeParameterInstantiation\")\n }\n});\ndefineType(\"TSInterfaceHeritage\", {\n aliases: [\"TSType\"],\n visitor: [\"expression\", \"typeArguments\"],\n fields: {\n expression: validateType(\"Expression\"),\n typeArguments: validateOptionalType(\"TSTypeParameterInstantiation\")\n }\n});\ndefineType(\"TSInterfaceDeclaration\", {\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"typeParameters\", \"extends\", \"body\"],\n fields: {\n declare: validateOptional(bool),\n id: validateType(\"Identifier\"),\n typeParameters: validateOptionalType(\"TSTypeParameterDeclaration\"),\n extends: validateOptional(arrayOfType(\"TSInterfaceHeritage\")),\n body: validateType(\"TSInterfaceBody\")\n }\n});\ndefineType(\"TSInterfaceBody\", {\n visitor: [\"body\"],\n fields: {\n body: validateArrayOfType(\"TSTypeElement\")\n }\n});\ndefineType(\"TSTypeAliasDeclaration\", {\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"typeParameters\", \"typeAnnotation\"],\n fields: {\n declare: validateOptional(bool),\n id: validateType(\"Identifier\"),\n typeParameters: validateOptionalType(\"TSTypeParameterDeclaration\"),\n typeAnnotation: validateType(\"TSType\")\n }\n});\ndefineType(\"TSInstantiationExpression\", {\n aliases: [\"Expression\"],\n visitor: [\"expression\", \"typeArguments\"],\n fields: {\n expression: validateType(\"Expression\"),\n [\"typeArguments\"]: validateOptionalType(\"TSTypeParameterInstantiation\")\n }\n});\nconst TSTypeExpression = {\n aliases: [\"Expression\", \"LVal\", \"PatternLike\"],\n visitor: [\"expression\", \"typeAnnotation\"],\n fields: {\n expression: validateType(\"Expression\"),\n typeAnnotation: validateType(\"TSType\")\n }\n};\ndefineType(\"TSAsExpression\", TSTypeExpression);\ndefineType(\"TSSatisfiesExpression\", TSTypeExpression);\ndefineType(\"TSTypeAssertion\", {\n aliases: [\"Expression\", \"LVal\", \"PatternLike\"],\n visitor: [\"typeAnnotation\", \"expression\"],\n fields: {\n typeAnnotation: validateType(\"TSType\"),\n expression: validateType(\"Expression\")\n }\n});\ndefineType(\"TSEnumBody\", {\n visitor: [\"members\"],\n fields: {\n members: validateArrayOfType(\"TSEnumMember\")\n }\n});\ndefineType(\"TSEnumDeclaration\", {\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"body\"],\n fields: {\n declare: validateOptional(bool),\n const: validateOptional(bool),\n id: validateType(\"Identifier\"),\n body: validateType(\"TSEnumBody\")\n }\n});\ndefineType(\"TSEnumMember\", {\n visitor: [\"id\", \"initializer\"],\n fields: {\n id: validateType(\"Identifier\", \"StringLiteral\"),\n initializer: validateOptionalType(\"Expression\")\n }\n});\ndefineType(\"TSModuleDeclaration\", {\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"body\"],\n fields: {\n kind: {\n validate: assertOneOf(\"global\", \"namespace\", \"module\"),\n default: \"namespace\"\n },\n declare: validateOptional(bool),\n id: {\n validate: chain(assertNodeType(\"TSEntityName\", \"StringLiteral\"), combine(function (node, key, val) {\n if (node.kind === \"namespace\" && is(\"StringLiteral\", val)) {\n throw new TypeError(`TSModuleDeclaration of kind 'namespace' cannot have a StringLiteral id.`);\n }\n }, {\n oneOfNodeTypes: [\"TSEntityName\", \"StringLiteral\"]\n }))\n },\n body: validateType(\"TSModuleBlock\")\n }\n});\ndefineType(\"TSModuleBlock\", {\n aliases: [\"Scopable\", \"Block\", \"BlockParent\", \"FunctionParent\"],\n visitor: [\"body\"],\n fields: {\n body: validateArrayOfType(\"Statement\")\n }\n});\ndefineType(\"TSImportType\", {\n aliases: [\"TSType\"],\n builder: [\"source\", \"qualifier\", \"typeArguments\"],\n visitor: [\"source\", \"options\", \"qualifier\", \"typeArguments\"],\n fields: {\n source: validateType(\"StringLiteral\"),\n qualifier: validateOptionalType(\"TSEntityName\"),\n typeArguments: validateOptionalType(\"TSTypeParameterInstantiation\"),\n options: {\n validate: assertNodeType(\"ObjectExpression\"),\n optional: true\n }\n }\n});\ndefineType(\"TSImportEqualsDeclaration\", {\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"moduleReference\"],\n fields: {\n id: validateType(\"Identifier\"),\n moduleReference: validateType(\"TSEntityName\", \"TSExternalModuleReference\"),\n importKind: {\n validate: assertOneOf(\"type\", \"value\"),\n optional: true\n }\n }\n});\ndefineType(\"TSExternalModuleReference\", {\n visitor: [\"expression\"],\n fields: {\n expression: validateType(\"StringLiteral\")\n }\n});\ndefineType(\"TSNonNullExpression\", {\n aliases: [\"Expression\", \"LVal\", \"PatternLike\"],\n visitor: [\"expression\"],\n fields: {\n expression: validateType(\"Expression\")\n }\n});\ndefineType(\"TSExportAssignment\", {\n aliases: [\"Statement\"],\n visitor: [\"expression\"],\n fields: {\n expression: validateType(\"Expression\")\n }\n});\ndefineType(\"TSNamespaceExportDeclaration\", {\n aliases: [\"Statement\"],\n visitor: [\"id\"],\n fields: {\n id: validateType(\"Identifier\")\n }\n});\ndefineType(\"TSTypeAnnotation\", {\n visitor: [\"typeAnnotation\"],\n fields: {\n typeAnnotation: {\n validate: assertNodeType(\"TSType\")\n }\n }\n});\ndefineType(\"TSTypeParameterInstantiation\", {\n visitor: [\"params\"],\n fields: {\n params: validateArrayOfType(\"TSType\")\n }\n});\ndefineType(\"TSTypeParameterDeclaration\", {\n visitor: [\"params\"],\n fields: {\n params: validateArrayOfType(\"TSTypeParameter\")\n }\n});\ndefineType(\"TSTypeParameter\", {\n builder: [\"constraint\", \"default\", \"name\"],\n visitor: [\"name\", \"constraint\", \"default\"],\n fields: {\n name: {\n validate: assertNodeType(\"Identifier\")\n },\n in: {\n validate: assertValueType(\"boolean\"),\n optional: true\n },\n out: {\n validate: assertValueType(\"boolean\"),\n optional: true\n },\n const: {\n validate: assertValueType(\"boolean\"),\n optional: true\n },\n constraint: {\n validate: assertNodeType(\"TSType\"),\n optional: true\n },\n default: {\n validate: assertNodeType(\"TSType\"),\n optional: true\n }\n }\n});\n\nconst DEPRECATED_ALIASES = {\n ModuleDeclaration: \"ImportOrExportDeclaration\"\n};\n\nObject.keys(DEPRECATED_ALIASES).forEach(deprecatedAlias => {\n FLIPPED_ALIAS_KEYS[deprecatedAlias] = FLIPPED_ALIAS_KEYS[DEPRECATED_ALIASES[deprecatedAlias]];\n});\nfor (const {\n types,\n set\n} of allExpandedTypes) {\n for (const type of types) {\n const aliases = FLIPPED_ALIAS_KEYS[type];\n if (aliases) {\n aliases.forEach(set.add, set);\n } else {\n set.add(type);\n }\n }\n}\nconst TYPES = [].concat(Object.keys(VISITOR_KEYS), Object.keys(FLIPPED_ALIAS_KEYS), Object.keys(DEPRECATED_KEYS));\n\nfunction validate$1(node, key, val) {\n if (!node) return;\n const fields = NODE_FIELDS$1[node.type];\n if (!fields) return;\n const field = fields[key];\n validateField(node, key, val, field);\n validateChild(node, key, val);\n}\nfunction validateInternal(field, node, key, val, maybeNode) {\n if (!field?.validate) return;\n if (field.optional && val == null) return;\n field.validate(node, key, val);\n if (maybeNode) {\n const type = val.type;\n if (type == null) return;\n NODE_PARENT_VALIDATIONS[type]?.(node, key, val);\n }\n}\nfunction validateField(node, key, val, field) {\n if (!field?.validate) return;\n if (field.optional && val == null) return;\n field.validate(node, key, val);\n}\nfunction validateChild(node, key, val) {\n const type = val?.type;\n if (type == null) return;\n NODE_PARENT_VALIDATIONS[type]?.(node, key, val);\n}\n\nconst _validate = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n default: validate$1,\n validateChild,\n validateField,\n validateInternal\n}, Symbol.toStringTag, { value: 'Module' });\n\nconst {\n validateInternal: validate\n} = _validate;\nconst {\n NODE_FIELDS\n} = utils;\nfunction arrayExpression(elements) {\n const node = {\n type: \"ArrayExpression\",\n elements\n };\n const defs = NODE_FIELDS.ArrayExpression;\n validate(defs.elements, node, \"elements\", elements, 1);\n return node;\n}\nfunction assignmentExpression(operator, left, right) {\n const node = {\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}\nfunction binaryExpression(operator, left, right) {\n const node = {\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}\nfunction interpreterDirective(value) {\n const node = {\n type: \"InterpreterDirective\",\n value\n };\n const defs = NODE_FIELDS.InterpreterDirective;\n validate(defs.value, node, \"value\", value);\n return node;\n}\nfunction directive(value) {\n const node = {\n type: \"Directive\",\n value\n };\n const defs = NODE_FIELDS.Directive;\n validate(defs.value, node, \"value\", value, 1);\n return node;\n}\nfunction directiveLiteral(value) {\n const node = {\n type: \"DirectiveLiteral\",\n value\n };\n const defs = NODE_FIELDS.DirectiveLiteral;\n validate(defs.value, node, \"value\", value);\n return node;\n}\nfunction blockStatement(body, directives = []) {\n const node = {\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}\nfunction breakStatement(label = null) {\n const node = {\n type: \"BreakStatement\",\n label\n };\n const defs = NODE_FIELDS.BreakStatement;\n validate(defs.label, node, \"label\", label, 1);\n return node;\n}\nfunction callExpression(callee, _arguments) {\n const node = {\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}\nfunction catchClause(param = null, body) {\n const node = {\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}\nfunction conditionalExpression(test, consequent, alternate) {\n const node = {\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}\nfunction continueStatement(label = null) {\n const node = {\n type: \"ContinueStatement\",\n label\n };\n const defs = NODE_FIELDS.ContinueStatement;\n validate(defs.label, node, \"label\", label, 1);\n return node;\n}\nfunction debuggerStatement() {\n return {\n type: \"DebuggerStatement\"\n };\n}\nfunction doWhileStatement(test, body) {\n const node = {\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}\nfunction emptyStatement() {\n return {\n type: \"EmptyStatement\"\n };\n}\nfunction expressionStatement(expression) {\n const node = {\n type: \"ExpressionStatement\",\n expression\n };\n const defs = NODE_FIELDS.ExpressionStatement;\n validate(defs.expression, node, \"expression\", expression, 1);\n return node;\n}\nfunction file(program, comments = null, tokens = null) {\n const node = {\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}\nfunction forInStatement(left, right, body) {\n const node = {\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}\nfunction forStatement(init = null, test = null, update = null, body) {\n const node = {\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}\nfunction functionDeclaration(id = null, params, body, generator = false, async = false) {\n const node = {\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}\nfunction functionExpression(id = null, params, body, generator = false, async = false) {\n const node = {\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}\nfunction identifier(name) {\n const node = {\n type: \"Identifier\",\n name\n };\n const defs = NODE_FIELDS.Identifier;\n validate(defs.name, node, \"name\", name);\n return node;\n}\nfunction ifStatement(test, consequent, alternate = null) {\n const node = {\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}\nfunction labeledStatement(label, body) {\n const node = {\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}\nfunction stringLiteral(value) {\n const node = {\n type: \"StringLiteral\",\n value\n };\n const defs = NODE_FIELDS.StringLiteral;\n validate(defs.value, node, \"value\", value);\n return node;\n}\nfunction numericLiteral(value) {\n const node = {\n type: \"NumericLiteral\",\n value\n };\n const defs = NODE_FIELDS.NumericLiteral;\n validate(defs.value, node, \"value\", value);\n return node;\n}\nfunction nullLiteral() {\n return {\n type: \"NullLiteral\"\n };\n}\nfunction booleanLiteral(value) {\n const node = {\n type: \"BooleanLiteral\",\n value\n };\n const defs = NODE_FIELDS.BooleanLiteral;\n validate(defs.value, node, \"value\", value);\n return node;\n}\nfunction regExpLiteral(pattern, flags = \"\") {\n const node = {\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}\nfunction logicalExpression(operator, left, right) {\n const node = {\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}\nfunction memberExpression(object, property, computed = false) {\n const node = {\n type: \"MemberExpression\",\n object,\n property,\n computed\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 return node;\n}\nfunction newExpression(callee, _arguments) {\n const node = {\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}\nfunction program(body, directives = [], sourceType = \"script\", interpreter = null) {\n const node = {\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}\nfunction objectExpression(properties) {\n const node = {\n type: \"ObjectExpression\",\n properties\n };\n const defs = NODE_FIELDS.ObjectExpression;\n validate(defs.properties, node, \"properties\", properties, 1);\n return node;\n}\nfunction objectMethod(kind, key, params, body, computed = false, generator = false, async = false) {\n const node = {\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}\nfunction objectProperty(key, value, computed = false, shorthand = false) {\n const node = {\n type: \"ObjectProperty\",\n key,\n value,\n computed,\n shorthand\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 return node;\n}\nfunction restElement(argument) {\n const node = {\n type: \"RestElement\",\n argument\n };\n const defs = NODE_FIELDS.RestElement;\n validate(defs.argument, node, \"argument\", argument, 1);\n return node;\n}\nfunction returnStatement(argument = null) {\n const node = {\n type: \"ReturnStatement\",\n argument\n };\n const defs = NODE_FIELDS.ReturnStatement;\n validate(defs.argument, node, \"argument\", argument, 1);\n return node;\n}\nfunction sequenceExpression(expressions) {\n const node = {\n type: \"SequenceExpression\",\n expressions\n };\n const defs = NODE_FIELDS.SequenceExpression;\n validate(defs.expressions, node, \"expressions\", expressions, 1);\n return node;\n}\nfunction parenthesizedExpression(expression) {\n const node = {\n type: \"ParenthesizedExpression\",\n expression\n };\n const defs = NODE_FIELDS.ParenthesizedExpression;\n validate(defs.expression, node, \"expression\", expression, 1);\n return node;\n}\nfunction switchCase(test = null, consequent) {\n const node = {\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}\nfunction switchStatement(discriminant, cases) {\n const node = {\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}\nfunction thisExpression() {\n return {\n type: \"ThisExpression\"\n };\n}\nfunction throwStatement(argument) {\n const node = {\n type: \"ThrowStatement\",\n argument\n };\n const defs = NODE_FIELDS.ThrowStatement;\n validate(defs.argument, node, \"argument\", argument, 1);\n return node;\n}\nfunction tryStatement(block, handler = null, finalizer = null) {\n const node = {\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}\nfunction unaryExpression(operator, argument, prefix = true) {\n const node = {\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}\nfunction updateExpression(operator, argument, prefix = false) {\n const node = {\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}\nfunction variableDeclaration(kind, declarations) {\n const node = {\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}\nfunction variableDeclarator(id, init = null) {\n const node = {\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}\nfunction whileStatement(test, body) {\n const node = {\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}\nfunction withStatement(object, body) {\n const node = {\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}\nfunction assignmentPattern(left, right) {\n const node = {\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}\nfunction arrayPattern(elements) {\n const node = {\n type: \"ArrayPattern\",\n elements\n };\n const defs = NODE_FIELDS.ArrayPattern;\n validate(defs.elements, node, \"elements\", elements, 1);\n return node;\n}\nfunction arrowFunctionExpression(params, body, async = false) {\n const node = {\n type: \"ArrowFunctionExpression\",\n params,\n body,\n async\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}\nfunction classBody(body) {\n const node = {\n type: \"ClassBody\",\n body\n };\n const defs = NODE_FIELDS.ClassBody;\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nfunction classExpression(id = null, superClass = null, body, decorators = null) {\n const node = {\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}\nfunction classDeclaration(id = null, superClass = null, body, decorators = null) {\n const node = {\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}\nfunction exportAllDeclaration(source, attributes = null) {\n const node = {\n type: \"ExportAllDeclaration\",\n source,\n attributes\n };\n const defs = NODE_FIELDS.ExportAllDeclaration;\n validate(defs.source, node, \"source\", source, 1);\n validate(defs.attributes, node, \"attributes\", attributes, 1);\n return node;\n}\nfunction exportDefaultDeclaration(declaration) {\n const node = {\n type: \"ExportDefaultDeclaration\",\n declaration\n };\n const defs = NODE_FIELDS.ExportDefaultDeclaration;\n validate(defs.declaration, node, \"declaration\", declaration, 1);\n return node;\n}\nfunction exportNamedDeclaration(declaration = null, specifiers = [], source = null, attributes = null) {\n const node = {\n type: \"ExportNamedDeclaration\",\n declaration,\n specifiers,\n source,\n attributes\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 validate(defs.attributes, node, \"attributes\", attributes, 1);\n return node;\n}\nfunction exportSpecifier(local, exported) {\n const node = {\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}\nfunction forOfStatement(left, right, body, _await = false) {\n const node = {\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}\nfunction importDeclaration(specifiers, source, attributes = null) {\n const node = {\n type: \"ImportDeclaration\",\n specifiers,\n source,\n attributes\n };\n const defs = NODE_FIELDS.ImportDeclaration;\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}\nfunction importDefaultSpecifier(local) {\n const node = {\n type: \"ImportDefaultSpecifier\",\n local\n };\n const defs = NODE_FIELDS.ImportDefaultSpecifier;\n validate(defs.local, node, \"local\", local, 1);\n return node;\n}\nfunction importNamespaceSpecifier(local) {\n const node = {\n type: \"ImportNamespaceSpecifier\",\n local\n };\n const defs = NODE_FIELDS.ImportNamespaceSpecifier;\n validate(defs.local, node, \"local\", local, 1);\n return node;\n}\nfunction importSpecifier(local, imported) {\n const node = {\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}\nfunction metaProperty(meta, property) {\n const node = {\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}\nfunction classMethod(kind = \"method\", key, params, body, computed = false, _static = false, generator = false, async = false) {\n const node = {\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}\nfunction objectPattern(properties) {\n const node = {\n type: \"ObjectPattern\",\n properties\n };\n const defs = NODE_FIELDS.ObjectPattern;\n validate(defs.properties, node, \"properties\", properties, 1);\n return node;\n}\nfunction spreadElement(argument) {\n const node = {\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() {\n return {\n type: \"Super\"\n };\n}\nfunction taggedTemplateExpression(tag, quasi) {\n const node = {\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}\nfunction templateElement(value, tail = false) {\n const node = {\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}\nfunction templateLiteral(quasis, expressions) {\n const node = {\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}\nfunction yieldExpression(argument = null, delegate = false) {\n const node = {\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}\nfunction awaitExpression(argument) {\n const node = {\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 importExpression(source, options = null) {\n const node = {\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}\nfunction _import() {\n return {\n type: \"Import\"\n };\n}\nfunction bigIntLiteral(value) {\n const node = {\n type: \"BigIntLiteral\",\n value\n };\n const defs = NODE_FIELDS.BigIntLiteral;\n validate(defs.value, node, \"value\", value);\n return node;\n}\nfunction exportNamespaceSpecifier(exported) {\n const node = {\n type: \"ExportNamespaceSpecifier\",\n exported\n };\n const defs = NODE_FIELDS.ExportNamespaceSpecifier;\n validate(defs.exported, node, \"exported\", exported, 1);\n return node;\n}\nfunction optionalMemberExpression(object, property, computed = false, optional) {\n const node = {\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}\nfunction optionalCallExpression(callee, _arguments, optional) {\n const node = {\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}\nfunction classProperty(key, value = null, typeAnnotation = null, decorators = null, computed = false, _static = false) {\n const node = {\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}\nfunction classPrivateProperty(key, value = null, decorators = null, _static = false) {\n const node = {\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}\nfunction classPrivateMethod(kind = \"method\", key, params, body, _static = false) {\n const node = {\n type: \"ClassPrivateMethod\",\n kind,\n key,\n params,\n body,\n static: _static,\n async: false,\n computed: false,\n generator: false\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}\nfunction privateName(id) {\n const node = {\n type: \"PrivateName\",\n id\n };\n const defs = NODE_FIELDS.PrivateName;\n validate(defs.id, node, \"id\", id, 1);\n return node;\n}\nfunction staticBlock(body) {\n const node = {\n type: \"StaticBlock\",\n body\n };\n const defs = NODE_FIELDS.StaticBlock;\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nfunction importAttribute(key, value) {\n const node = {\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}\nfunction anyTypeAnnotation() {\n return {\n type: \"AnyTypeAnnotation\"\n };\n}\nfunction arrayTypeAnnotation(elementType) {\n const node = {\n type: \"ArrayTypeAnnotation\",\n elementType\n };\n const defs = NODE_FIELDS.ArrayTypeAnnotation;\n validate(defs.elementType, node, \"elementType\", elementType, 1);\n return node;\n}\nfunction booleanTypeAnnotation() {\n return {\n type: \"BooleanTypeAnnotation\"\n };\n}\nfunction booleanLiteralTypeAnnotation(value) {\n const node = {\n type: \"BooleanLiteralTypeAnnotation\",\n value\n };\n const defs = NODE_FIELDS.BooleanLiteralTypeAnnotation;\n validate(defs.value, node, \"value\", value);\n return node;\n}\nfunction nullLiteralTypeAnnotation() {\n return {\n type: \"NullLiteralTypeAnnotation\"\n };\n}\nfunction classImplements(id, typeParameters = null) {\n const node = {\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}\nfunction declareClass(id, typeParameters = null, _extends = null, body) {\n const node = {\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}\nfunction declareFunction(id) {\n const node = {\n type: \"DeclareFunction\",\n id\n };\n const defs = NODE_FIELDS.DeclareFunction;\n validate(defs.id, node, \"id\", id, 1);\n return node;\n}\nfunction declareInterface(id, typeParameters = null, _extends = null, body) {\n const node = {\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}\nfunction declareModule(id, body, kind = null) {\n const node = {\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}\nfunction declareModuleExports(typeAnnotation) {\n const node = {\n type: \"DeclareModuleExports\",\n typeAnnotation\n };\n const defs = NODE_FIELDS.DeclareModuleExports;\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nfunction declareTypeAlias(id, typeParameters = null, right) {\n const node = {\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}\nfunction declareOpaqueType(id, typeParameters = null, supertype = null) {\n const node = {\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}\nfunction declareVariable(id) {\n const node = {\n type: \"DeclareVariable\",\n id\n };\n const defs = NODE_FIELDS.DeclareVariable;\n validate(defs.id, node, \"id\", id, 1);\n return node;\n}\nfunction declareExportDeclaration(declaration = null, specifiers = null, source = null, attributes = null) {\n const node = {\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}\nfunction declareExportAllDeclaration(source, attributes = null) {\n const node = {\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}\nfunction declaredPredicate(value) {\n const node = {\n type: \"DeclaredPredicate\",\n value\n };\n const defs = NODE_FIELDS.DeclaredPredicate;\n validate(defs.value, node, \"value\", value, 1);\n return node;\n}\nfunction existsTypeAnnotation() {\n return {\n type: \"ExistsTypeAnnotation\"\n };\n}\nfunction functionTypeAnnotation(typeParameters = null, params, rest = null, returnType) {\n const node = {\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}\nfunction functionTypeParam(name = null, typeAnnotation) {\n const node = {\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}\nfunction genericTypeAnnotation(id, typeParameters = null) {\n const node = {\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}\nfunction inferredPredicate() {\n return {\n type: \"InferredPredicate\"\n };\n}\nfunction interfaceExtends(id, typeParameters = null) {\n const node = {\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}\nfunction interfaceDeclaration(id, typeParameters = null, _extends = null, body) {\n const node = {\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}\nfunction interfaceTypeAnnotation(_extends = null, body) {\n const node = {\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}\nfunction intersectionTypeAnnotation(types) {\n const node = {\n type: \"IntersectionTypeAnnotation\",\n types\n };\n const defs = NODE_FIELDS.IntersectionTypeAnnotation;\n validate(defs.types, node, \"types\", types, 1);\n return node;\n}\nfunction mixedTypeAnnotation() {\n return {\n type: \"MixedTypeAnnotation\"\n };\n}\nfunction emptyTypeAnnotation() {\n return {\n type: \"EmptyTypeAnnotation\"\n };\n}\nfunction nullableTypeAnnotation(typeAnnotation) {\n const node = {\n type: \"NullableTypeAnnotation\",\n typeAnnotation\n };\n const defs = NODE_FIELDS.NullableTypeAnnotation;\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nfunction numberLiteralTypeAnnotation(value) {\n const node = {\n type: \"NumberLiteralTypeAnnotation\",\n value\n };\n const defs = NODE_FIELDS.NumberLiteralTypeAnnotation;\n validate(defs.value, node, \"value\", value);\n return node;\n}\nfunction bigIntLiteralTypeAnnotation(value) {\n const node = {\n type: \"BigIntLiteralTypeAnnotation\",\n value\n };\n const defs = NODE_FIELDS.BigIntLiteralTypeAnnotation;\n validate(defs.value, node, \"value\", value);\n return node;\n}\nfunction numberTypeAnnotation() {\n return {\n type: \"NumberTypeAnnotation\"\n };\n}\nfunction objectTypeAnnotation(properties, indexers = [], callProperties = [], internalSlots = [], exact = false) {\n const node = {\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}\nfunction objectTypeInternalSlot(id, value, optional, _static, method) {\n const node = {\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}\nfunction objectTypeCallProperty(value) {\n const node = {\n type: \"ObjectTypeCallProperty\",\n value,\n static: false\n };\n const defs = NODE_FIELDS.ObjectTypeCallProperty;\n validate(defs.value, node, \"value\", value, 1);\n return node;\n}\nfunction objectTypeIndexer(id = null, key, value, variance = null) {\n const node = {\n type: \"ObjectTypeIndexer\",\n id,\n key,\n value,\n variance,\n static: false\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}\nfunction objectTypeProperty(key, value, variance = null) {\n const node = {\n type: \"ObjectTypeProperty\",\n key,\n value,\n variance,\n kind: \"init\",\n method: false,\n optional: false,\n proto: false,\n static: false\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}\nfunction objectTypeSpreadProperty(argument) {\n const node = {\n type: \"ObjectTypeSpreadProperty\",\n argument\n };\n const defs = NODE_FIELDS.ObjectTypeSpreadProperty;\n validate(defs.argument, node, \"argument\", argument, 1);\n return node;\n}\nfunction opaqueType(id, typeParameters = null, supertype = null, impltype) {\n const node = {\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}\nfunction qualifiedTypeIdentifier(id, qualification) {\n const node = {\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}\nfunction stringLiteralTypeAnnotation(value) {\n const node = {\n type: \"StringLiteralTypeAnnotation\",\n value\n };\n const defs = NODE_FIELDS.StringLiteralTypeAnnotation;\n validate(defs.value, node, \"value\", value);\n return node;\n}\nfunction stringTypeAnnotation() {\n return {\n type: \"StringTypeAnnotation\"\n };\n}\nfunction symbolTypeAnnotation() {\n return {\n type: \"SymbolTypeAnnotation\"\n };\n}\nfunction thisTypeAnnotation() {\n return {\n type: \"ThisTypeAnnotation\"\n };\n}\nfunction tupleTypeAnnotation(types) {\n const node = {\n type: \"TupleTypeAnnotation\",\n types\n };\n const defs = NODE_FIELDS.TupleTypeAnnotation;\n validate(defs.types, node, \"types\", types, 1);\n return node;\n}\nfunction typeofTypeAnnotation(argument) {\n const node = {\n type: \"TypeofTypeAnnotation\",\n argument\n };\n const defs = NODE_FIELDS.TypeofTypeAnnotation;\n validate(defs.argument, node, \"argument\", argument, 1);\n return node;\n}\nfunction typeAlias(id, typeParameters = null, right) {\n const node = {\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}\nfunction typeAnnotation(typeAnnotation) {\n const node = {\n type: \"TypeAnnotation\",\n typeAnnotation\n };\n const defs = NODE_FIELDS.TypeAnnotation;\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nfunction typeCastExpression(expression, typeAnnotation) {\n const node = {\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}\nfunction typeParameter(name, bound = null, _default = null, variance = null) {\n const node = {\n type: \"TypeParameter\",\n name,\n bound,\n default: _default,\n variance\n };\n const defs = NODE_FIELDS.TypeParameter;\n validate(defs.name, node, \"name\", name);\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}\nfunction typeParameterDeclaration(params) {\n const node = {\n type: \"TypeParameterDeclaration\",\n params\n };\n const defs = NODE_FIELDS.TypeParameterDeclaration;\n validate(defs.params, node, \"params\", params, 1);\n return node;\n}\nfunction typeParameterInstantiation(params) {\n const node = {\n type: \"TypeParameterInstantiation\",\n params\n };\n const defs = NODE_FIELDS.TypeParameterInstantiation;\n validate(defs.params, node, \"params\", params, 1);\n return node;\n}\nfunction unionTypeAnnotation(types) {\n const node = {\n type: \"UnionTypeAnnotation\",\n types\n };\n const defs = NODE_FIELDS.UnionTypeAnnotation;\n validate(defs.types, node, \"types\", types, 1);\n return node;\n}\nfunction variance(kind) {\n const node = {\n type: \"Variance\",\n kind\n };\n const defs = NODE_FIELDS.Variance;\n validate(defs.kind, node, \"kind\", kind);\n return node;\n}\nfunction voidTypeAnnotation() {\n return {\n type: \"VoidTypeAnnotation\"\n };\n}\nfunction enumDeclaration(id, body) {\n const node = {\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}\nfunction enumBooleanBody(members) {\n const node = {\n type: \"EnumBooleanBody\",\n members,\n explicitType: false,\n hasUnknownMembers: false\n };\n const defs = NODE_FIELDS.EnumBooleanBody;\n validate(defs.members, node, \"members\", members, 1);\n return node;\n}\nfunction enumNumberBody(members) {\n const node = {\n type: \"EnumNumberBody\",\n members,\n explicitType: false,\n hasUnknownMembers: false\n };\n const defs = NODE_FIELDS.EnumNumberBody;\n validate(defs.members, node, \"members\", members, 1);\n return node;\n}\nfunction enumStringBody(members) {\n const node = {\n type: \"EnumStringBody\",\n members,\n explicitType: false,\n hasUnknownMembers: false\n };\n const defs = NODE_FIELDS.EnumStringBody;\n validate(defs.members, node, \"members\", members, 1);\n return node;\n}\nfunction enumSymbolBody(members) {\n const node = {\n type: \"EnumSymbolBody\",\n members,\n hasUnknownMembers: false\n };\n const defs = NODE_FIELDS.EnumSymbolBody;\n validate(defs.members, node, \"members\", members, 1);\n return node;\n}\nfunction enumBooleanMember(id, init) {\n const node = {\n type: \"EnumBooleanMember\",\n id,\n init\n };\n const defs = NODE_FIELDS.EnumBooleanMember;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.init, node, \"init\", init, 1);\n return node;\n}\nfunction enumNumberMember(id, init) {\n const node = {\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}\nfunction enumStringMember(id, init) {\n const node = {\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}\nfunction enumDefaultedMember(id) {\n const node = {\n type: \"EnumDefaultedMember\",\n id\n };\n const defs = NODE_FIELDS.EnumDefaultedMember;\n validate(defs.id, node, \"id\", id, 1);\n return node;\n}\nfunction indexedAccessType(objectType, indexType) {\n const node = {\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}\nfunction optionalIndexedAccessType(objectType, indexType) {\n const node = {\n type: \"OptionalIndexedAccessType\",\n objectType,\n indexType,\n optional: false\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}\nfunction jsxAttribute(name, value = null) {\n const node = {\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}\nfunction jsxClosingElement(name) {\n const node = {\n type: \"JSXClosingElement\",\n name\n };\n const defs = NODE_FIELDS.JSXClosingElement;\n validate(defs.name, node, \"name\", name, 1);\n return node;\n}\nfunction jsxElement(openingElement, closingElement = null, children) {\n const node = {\n type: \"JSXElement\",\n openingElement,\n closingElement,\n children\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 return node;\n}\nfunction jsxEmptyExpression() {\n return {\n type: \"JSXEmptyExpression\"\n };\n}\nfunction jsxExpressionContainer(expression) {\n const node = {\n type: \"JSXExpressionContainer\",\n expression\n };\n const defs = NODE_FIELDS.JSXExpressionContainer;\n validate(defs.expression, node, \"expression\", expression, 1);\n return node;\n}\nfunction jsxSpreadChild(expression) {\n const node = {\n type: \"JSXSpreadChild\",\n expression\n };\n const defs = NODE_FIELDS.JSXSpreadChild;\n validate(defs.expression, node, \"expression\", expression, 1);\n return node;\n}\nfunction jsxIdentifier(name) {\n const node = {\n type: \"JSXIdentifier\",\n name\n };\n const defs = NODE_FIELDS.JSXIdentifier;\n validate(defs.name, node, \"name\", name);\n return node;\n}\nfunction jsxMemberExpression(object, property) {\n const node = {\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}\nfunction jsxNamespacedName(namespace, name) {\n const node = {\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}\nfunction jsxOpeningElement(name, attributes, selfClosing = false) {\n const node = {\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}\nfunction jsxSpreadAttribute(argument) {\n const node = {\n type: \"JSXSpreadAttribute\",\n argument\n };\n const defs = NODE_FIELDS.JSXSpreadAttribute;\n validate(defs.argument, node, \"argument\", argument, 1);\n return node;\n}\nfunction jsxText(value) {\n const node = {\n type: \"JSXText\",\n value\n };\n const defs = NODE_FIELDS.JSXText;\n validate(defs.value, node, \"value\", value);\n return node;\n}\nfunction jsxFragment(openingFragment, closingFragment, children) {\n const node = {\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}\nfunction jsxOpeningFragment() {\n return {\n type: \"JSXOpeningFragment\"\n };\n}\nfunction jsxClosingFragment() {\n return {\n type: \"JSXClosingFragment\"\n };\n}\nfunction placeholder(expectedNode, name) {\n const node = {\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}\nfunction v8IntrinsicIdentifier(name) {\n const node = {\n type: \"V8IntrinsicIdentifier\",\n name\n };\n const defs = NODE_FIELDS.V8IntrinsicIdentifier;\n validate(defs.name, node, \"name\", name);\n return node;\n}\nfunction argumentPlaceholder() {\n return {\n type: \"ArgumentPlaceholder\"\n };\n}\nfunction bindExpression(object, callee) {\n const node = {\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}\nfunction classAccessorProperty(key, value = null, typeAnnotation = null, decorators = null, computed = false, _static = false) {\n const node = {\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}\nfunction decorator(expression) {\n const node = {\n type: \"Decorator\",\n expression\n };\n const defs = NODE_FIELDS.Decorator;\n validate(defs.expression, node, \"expression\", expression, 1);\n return node;\n}\nfunction doExpression(body, async = false) {\n const node = {\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}\nfunction exportDefaultSpecifier(exported) {\n const node = {\n type: \"ExportDefaultSpecifier\",\n exported\n };\n const defs = NODE_FIELDS.ExportDefaultSpecifier;\n validate(defs.exported, node, \"exported\", exported, 1);\n return node;\n}\nfunction moduleExpression(body) {\n const node = {\n type: \"ModuleExpression\",\n body\n };\n const defs = NODE_FIELDS.ModuleExpression;\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nfunction topicReference() {\n return {\n type: \"TopicReference\"\n };\n}\nfunction voidPattern() {\n return {\n type: \"VoidPattern\"\n };\n}\nfunction tsParameterProperty(parameter) {\n const node = {\n type: \"TSParameterProperty\",\n parameter\n };\n const defs = NODE_FIELDS.TSParameterProperty;\n validate(defs.parameter, node, \"parameter\", parameter, 1);\n return node;\n}\nfunction tsDeclareFunction(id = null, typeParameters = null, params, returnType = null) {\n const node = {\n type: \"TSDeclareFunction\",\n id,\n typeParameters,\n params,\n returnType,\n async: false,\n generator: false\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}\nfunction tsDeclareMethod(key, typeParameters = null, params, returnType = null) {\n const node = {\n type: \"TSDeclareMethod\",\n key,\n typeParameters,\n params,\n returnType,\n async: false,\n computed: false,\n generator: false,\n kind: \"method\",\n static: false\n };\n const defs = NODE_FIELDS.TSDeclareMethod;\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}\nfunction tsQualifiedName(left, right) {\n const node = {\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}\nfunction tsCallSignatureDeclaration(typeParameters = null, params, returnType = null) {\n const node = {\n type: \"TSCallSignatureDeclaration\",\n typeParameters,\n params,\n returnType\n };\n const defs = NODE_FIELDS.TSCallSignatureDeclaration;\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}\nfunction tsConstructSignatureDeclaration(typeParameters = null, params, returnType = null) {\n const node = {\n type: \"TSConstructSignatureDeclaration\",\n typeParameters,\n params,\n returnType\n };\n const defs = NODE_FIELDS.TSConstructSignatureDeclaration;\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}\nfunction tsPropertySignature(key, typeAnnotation = null) {\n const node = {\n type: \"TSPropertySignature\",\n key,\n typeAnnotation,\n computed: false\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}\nfunction tsMethodSignature(key, typeParameters = null, params, returnType = null) {\n const node = {\n type: \"TSMethodSignature\",\n key,\n typeParameters,\n params,\n returnType,\n computed: false,\n kind: \"method\"\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.params, node, \"params\", params, 1);\n validate(defs.returnType, node, \"returnType\", returnType, 1);\n return node;\n}\nfunction tsIndexSignature(parameters, typeAnnotation = null) {\n const node = {\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}\nfunction tsAnyKeyword() {\n return {\n type: \"TSAnyKeyword\"\n };\n}\nfunction tsBooleanKeyword() {\n return {\n type: \"TSBooleanKeyword\"\n };\n}\nfunction tsBigIntKeyword() {\n return {\n type: \"TSBigIntKeyword\"\n };\n}\nfunction tsIntrinsicKeyword() {\n return {\n type: \"TSIntrinsicKeyword\"\n };\n}\nfunction tsNeverKeyword() {\n return {\n type: \"TSNeverKeyword\"\n };\n}\nfunction tsNullKeyword() {\n return {\n type: \"TSNullKeyword\"\n };\n}\nfunction tsNumberKeyword() {\n return {\n type: \"TSNumberKeyword\"\n };\n}\nfunction tsObjectKeyword() {\n return {\n type: \"TSObjectKeyword\"\n };\n}\nfunction tsStringKeyword() {\n return {\n type: \"TSStringKeyword\"\n };\n}\nfunction tsSymbolKeyword() {\n return {\n type: \"TSSymbolKeyword\"\n };\n}\nfunction tsUndefinedKeyword() {\n return {\n type: \"TSUndefinedKeyword\"\n };\n}\nfunction tsUnknownKeyword() {\n return {\n type: \"TSUnknownKeyword\"\n };\n}\nfunction tsVoidKeyword() {\n return {\n type: \"TSVoidKeyword\"\n };\n}\nfunction tsThisType() {\n return {\n type: \"TSThisType\"\n };\n}\nfunction tsFunctionType(typeParameters = null, params, returnType = null) {\n const node = {\n type: \"TSFunctionType\",\n typeParameters,\n params,\n returnType\n };\n const defs = NODE_FIELDS.TSFunctionType;\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}\nfunction tsConstructorType(typeParameters = null, params, returnType = null) {\n const node = {\n type: \"TSConstructorType\",\n typeParameters,\n params,\n returnType\n };\n const defs = NODE_FIELDS.TSConstructorType;\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}\nfunction tsTypeReference(typeName, typeArguments = null) {\n const node = {\n type: \"TSTypeReference\",\n typeName,\n typeArguments\n };\n const defs = NODE_FIELDS.TSTypeReference;\n validate(defs.typeName, node, \"typeName\", typeName, 1);\n validate(defs.typeArguments, node, \"typeArguments\", typeArguments, 1);\n return node;\n}\nfunction tsTypePredicate(parameterName, typeAnnotation = null, asserts = null) {\n const node = {\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}\nfunction tsTypeQuery(exprName, typeArguments = null) {\n const node = {\n type: \"TSTypeQuery\",\n exprName,\n typeArguments\n };\n const defs = NODE_FIELDS.TSTypeQuery;\n validate(defs.exprName, node, \"exprName\", exprName, 1);\n validate(defs.typeArguments, node, \"typeArguments\", typeArguments, 1);\n return node;\n}\nfunction tsTypeLiteral(members) {\n const node = {\n type: \"TSTypeLiteral\",\n members\n };\n const defs = NODE_FIELDS.TSTypeLiteral;\n validate(defs.members, node, \"members\", members, 1);\n return node;\n}\nfunction tsArrayType(elementType) {\n const node = {\n type: \"TSArrayType\",\n elementType\n };\n const defs = NODE_FIELDS.TSArrayType;\n validate(defs.elementType, node, \"elementType\", elementType, 1);\n return node;\n}\nfunction tsTupleType(elementTypes) {\n const node = {\n type: \"TSTupleType\",\n elementTypes\n };\n const defs = NODE_FIELDS.TSTupleType;\n validate(defs.elementTypes, node, \"elementTypes\", elementTypes, 1);\n return node;\n}\nfunction tsOptionalType(typeAnnotation) {\n const node = {\n type: \"TSOptionalType\",\n typeAnnotation\n };\n const defs = NODE_FIELDS.TSOptionalType;\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nfunction tsRestType(typeAnnotation) {\n const node = {\n type: \"TSRestType\",\n typeAnnotation\n };\n const defs = NODE_FIELDS.TSRestType;\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nfunction tsNamedTupleMember(label, elementType, optional = false) {\n const node = {\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}\nfunction tsUnionType(types) {\n const node = {\n type: \"TSUnionType\",\n types\n };\n const defs = NODE_FIELDS.TSUnionType;\n validate(defs.types, node, \"types\", types, 1);\n return node;\n}\nfunction tsIntersectionType(types) {\n const node = {\n type: \"TSIntersectionType\",\n types\n };\n const defs = NODE_FIELDS.TSIntersectionType;\n validate(defs.types, node, \"types\", types, 1);\n return node;\n}\nfunction tsConditionalType(checkType, extendsType, trueType, falseType) {\n const node = {\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}\nfunction tsInferType(typeParameter) {\n const node = {\n type: \"TSInferType\",\n typeParameter\n };\n const defs = NODE_FIELDS.TSInferType;\n validate(defs.typeParameter, node, \"typeParameter\", typeParameter, 1);\n return node;\n}\nfunction tsParenthesizedType(typeAnnotation) {\n const node = {\n type: \"TSParenthesizedType\",\n typeAnnotation\n };\n const defs = NODE_FIELDS.TSParenthesizedType;\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nfunction tsTypeOperator(typeAnnotation, operator) {\n const node = {\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}\nfunction tsIndexedAccessType(objectType, indexType) {\n const node = {\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}\nfunction tsMappedType(key, constraint, nameType = null, typeAnnotation = null) {\n const node = {\n type: \"TSMappedType\",\n key,\n constraint,\n nameType,\n typeAnnotation\n };\n const defs = NODE_FIELDS.TSMappedType;\n validate(defs.key, node, \"key\", key, 1);\n validate(defs.constraint, node, \"constraint\", constraint, 1);\n validate(defs.nameType, node, \"nameType\", nameType, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nfunction tsTemplateLiteralType(quasis, types) {\n const node = {\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}\nfunction tsLiteralType(literal) {\n const node = {\n type: \"TSLiteralType\",\n literal\n };\n const defs = NODE_FIELDS.TSLiteralType;\n validate(defs.literal, node, \"literal\", literal, 1);\n return node;\n}\nfunction tsClassImplements(expression, typeArguments = null) {\n const node = {\n type: \"TSClassImplements\",\n expression,\n typeArguments\n };\n const defs = NODE_FIELDS.TSClassImplements;\n validate(defs.expression, node, \"expression\", expression, 1);\n validate(defs.typeArguments, node, \"typeArguments\", typeArguments, 1);\n return node;\n}\nfunction tsInterfaceHeritage(expression, typeArguments = null) {\n const node = {\n type: \"TSInterfaceHeritage\",\n expression,\n typeArguments\n };\n const defs = NODE_FIELDS.TSInterfaceHeritage;\n validate(defs.expression, node, \"expression\", expression, 1);\n validate(defs.typeArguments, node, \"typeArguments\", typeArguments, 1);\n return node;\n}\nfunction tsInterfaceDeclaration(id, typeParameters = null, _extends = null, body) {\n const node = {\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}\nfunction tsInterfaceBody(body) {\n const node = {\n type: \"TSInterfaceBody\",\n body\n };\n const defs = NODE_FIELDS.TSInterfaceBody;\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nfunction tsTypeAliasDeclaration(id, typeParameters = null, typeAnnotation) {\n const node = {\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}\nfunction tsInstantiationExpression(expression, typeArguments = null) {\n const node = {\n type: \"TSInstantiationExpression\",\n expression,\n typeArguments\n };\n const defs = NODE_FIELDS.TSInstantiationExpression;\n validate(defs.expression, node, \"expression\", expression, 1);\n validate(defs.typeArguments, node, \"typeArguments\", typeArguments, 1);\n return node;\n}\nfunction tsAsExpression(expression, typeAnnotation) {\n const node = {\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}\nfunction tsSatisfiesExpression(expression, typeAnnotation) {\n const node = {\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}\nfunction tsTypeAssertion(typeAnnotation, expression) {\n const node = {\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}\nfunction tsEnumBody(members) {\n const node = {\n type: \"TSEnumBody\",\n members\n };\n const defs = NODE_FIELDS.TSEnumBody;\n validate(defs.members, node, \"members\", members, 1);\n return node;\n}\nfunction tsEnumDeclaration(id, body) {\n const node = {\n type: \"TSEnumDeclaration\",\n id,\n body\n };\n const defs = NODE_FIELDS.TSEnumDeclaration;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nfunction tsEnumMember(id, initializer = null) {\n const node = {\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}\nfunction tsModuleDeclaration(id, body) {\n const node = {\n type: \"TSModuleDeclaration\",\n id,\n body,\n kind: \"namespace\"\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}\nfunction tsModuleBlock(body) {\n const node = {\n type: \"TSModuleBlock\",\n body\n };\n const defs = NODE_FIELDS.TSModuleBlock;\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nfunction tsImportType(source, qualifier = null, typeArguments = null) {\n const node = {\n type: \"TSImportType\",\n source,\n qualifier,\n typeArguments\n };\n const defs = NODE_FIELDS.TSImportType;\n validate(defs.source, node, \"source\", source, 1);\n validate(defs.qualifier, node, \"qualifier\", qualifier, 1);\n validate(defs.typeArguments, node, \"typeArguments\", typeArguments, 1);\n return node;\n}\nfunction tsImportEqualsDeclaration(id, moduleReference) {\n const node = {\n type: \"TSImportEqualsDeclaration\",\n id,\n moduleReference\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}\nfunction tsExternalModuleReference(expression) {\n const node = {\n type: \"TSExternalModuleReference\",\n expression\n };\n const defs = NODE_FIELDS.TSExternalModuleReference;\n validate(defs.expression, node, \"expression\", expression, 1);\n return node;\n}\nfunction tsNonNullExpression(expression) {\n const node = {\n type: \"TSNonNullExpression\",\n expression\n };\n const defs = NODE_FIELDS.TSNonNullExpression;\n validate(defs.expression, node, \"expression\", expression, 1);\n return node;\n}\nfunction tsExportAssignment(expression) {\n const node = {\n type: \"TSExportAssignment\",\n expression\n };\n const defs = NODE_FIELDS.TSExportAssignment;\n validate(defs.expression, node, \"expression\", expression, 1);\n return node;\n}\nfunction tsNamespaceExportDeclaration(id) {\n const node = {\n type: \"TSNamespaceExportDeclaration\",\n id\n };\n const defs = NODE_FIELDS.TSNamespaceExportDeclaration;\n validate(defs.id, node, \"id\", id, 1);\n return node;\n}\nfunction tsTypeAnnotation(typeAnnotation) {\n const node = {\n type: \"TSTypeAnnotation\",\n typeAnnotation\n };\n const defs = NODE_FIELDS.TSTypeAnnotation;\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nfunction tsTypeParameterInstantiation(params) {\n const node = {\n type: \"TSTypeParameterInstantiation\",\n params\n };\n const defs = NODE_FIELDS.TSTypeParameterInstantiation;\n validate(defs.params, node, \"params\", params, 1);\n return node;\n}\nfunction tsTypeParameterDeclaration(params) {\n const node = {\n type: \"TSTypeParameterDeclaration\",\n params\n };\n const defs = NODE_FIELDS.TSTypeParameterDeclaration;\n validate(defs.params, node, \"params\", params, 1);\n return node;\n}\nfunction tsTypeParameter(constraint = null, _default = null, name) {\n const node = {\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, 1);\n return node;\n}\nfunction NumberLiteral(value) {\n deprecationWarning(\"NumberLiteral\", \"NumericLiteral\", \"The node type \");\n return numericLiteral(value);\n}\nfunction RegexLiteral(pattern, flags = \"\") {\n deprecationWarning(\"RegexLiteral\", \"RegExpLiteral\", \"The node type \");\n return regExpLiteral(pattern, flags);\n}\nfunction RestProperty(argument) {\n deprecationWarning(\"RestProperty\", \"RestElement\", \"The node type \");\n return restElement(argument);\n}\nfunction SpreadProperty(argument) {\n deprecationWarning(\"SpreadProperty\", \"SpreadElement\", \"The node type \");\n return spreadElement(argument);\n}\n\nconst b = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n anyTypeAnnotation,\n argumentPlaceholder,\n arrayExpression,\n arrayPattern,\n arrayTypeAnnotation,\n arrowFunctionExpression,\n assignmentExpression,\n assignmentPattern,\n awaitExpression,\n bigIntLiteral,\n bigIntLiteralTypeAnnotation,\n binaryExpression,\n bindExpression,\n blockStatement,\n booleanLiteral,\n booleanLiteralTypeAnnotation,\n booleanTypeAnnotation,\n breakStatement,\n callExpression,\n catchClause,\n classAccessorProperty,\n classBody,\n classDeclaration,\n classExpression,\n classImplements,\n classMethod,\n classPrivateMethod,\n classPrivateProperty,\n classProperty,\n conditionalExpression,\n continueStatement,\n debuggerStatement,\n declareClass,\n declareExportAllDeclaration,\n declareExportDeclaration,\n declareFunction,\n declareInterface,\n declareModule,\n declareModuleExports,\n declareOpaqueType,\n declareTypeAlias,\n declareVariable,\n declaredPredicate,\n decorator,\n directive,\n directiveLiteral,\n doExpression,\n doWhileStatement,\n emptyStatement,\n emptyTypeAnnotation,\n enumBooleanBody,\n enumBooleanMember,\n enumDeclaration,\n enumDefaultedMember,\n enumNumberBody,\n enumNumberMember,\n enumStringBody,\n enumStringMember,\n enumSymbolBody,\n existsTypeAnnotation,\n exportAllDeclaration,\n exportDefaultDeclaration,\n exportDefaultSpecifier,\n exportNamedDeclaration,\n exportNamespaceSpecifier,\n exportSpecifier,\n expressionStatement,\n file,\n forInStatement,\n forOfStatement,\n forStatement,\n functionDeclaration,\n functionExpression,\n functionTypeAnnotation,\n functionTypeParam,\n genericTypeAnnotation,\n identifier,\n ifStatement,\n import: _import,\n importAttribute,\n importDeclaration,\n importDefaultSpecifier,\n importExpression,\n importNamespaceSpecifier,\n importSpecifier,\n indexedAccessType,\n inferredPredicate,\n interfaceDeclaration,\n interfaceExtends,\n interfaceTypeAnnotation,\n interpreterDirective,\n intersectionTypeAnnotation,\n jsxAttribute,\n jsxClosingElement,\n jsxClosingFragment,\n jsxElement,\n jsxEmptyExpression,\n jsxExpressionContainer,\n jsxFragment,\n jsxIdentifier,\n jsxMemberExpression,\n jsxNamespacedName,\n jsxOpeningElement,\n jsxOpeningFragment,\n jsxSpreadAttribute,\n jsxSpreadChild,\n jsxText,\n labeledStatement,\n logicalExpression,\n memberExpression,\n metaProperty,\n mixedTypeAnnotation,\n moduleExpression,\n newExpression,\n nullLiteral,\n nullLiteralTypeAnnotation,\n nullableTypeAnnotation,\n numberLiteral: NumberLiteral,\n numberLiteralTypeAnnotation,\n numberTypeAnnotation,\n numericLiteral,\n objectExpression,\n objectMethod,\n objectPattern,\n objectProperty,\n objectTypeAnnotation,\n objectTypeCallProperty,\n objectTypeIndexer,\n objectTypeInternalSlot,\n objectTypeProperty,\n objectTypeSpreadProperty,\n opaqueType,\n optionalCallExpression,\n optionalIndexedAccessType,\n optionalMemberExpression,\n parenthesizedExpression,\n placeholder,\n privateName,\n program,\n qualifiedTypeIdentifier,\n regExpLiteral,\n regexLiteral: RegexLiteral,\n restElement,\n restProperty: RestProperty,\n returnStatement,\n sequenceExpression,\n spreadElement,\n spreadProperty: SpreadProperty,\n staticBlock,\n stringLiteral,\n stringLiteralTypeAnnotation,\n stringTypeAnnotation,\n super: _super,\n switchCase,\n switchStatement,\n symbolTypeAnnotation,\n taggedTemplateExpression,\n templateElement,\n templateLiteral,\n thisExpression,\n thisTypeAnnotation,\n throwStatement,\n topicReference,\n tryStatement,\n tsAnyKeyword,\n tsArrayType,\n tsAsExpression,\n tsBigIntKeyword,\n tsBooleanKeyword,\n tsCallSignatureDeclaration,\n tsClassImplements,\n tsConditionalType,\n tsConstructSignatureDeclaration,\n tsConstructorType,\n tsDeclareFunction,\n tsDeclareMethod,\n tsEnumBody,\n tsEnumDeclaration,\n tsEnumMember,\n tsExportAssignment,\n tsExternalModuleReference,\n tsFunctionType,\n tsImportEqualsDeclaration,\n tsImportType,\n tsIndexSignature,\n tsIndexedAccessType,\n tsInferType,\n tsInstantiationExpression,\n tsInterfaceBody,\n tsInterfaceDeclaration,\n tsInterfaceHeritage,\n tsIntersectionType,\n tsIntrinsicKeyword,\n tsLiteralType,\n tsMappedType,\n tsMethodSignature,\n tsModuleBlock,\n tsModuleDeclaration,\n tsNamedTupleMember,\n tsNamespaceExportDeclaration,\n tsNeverKeyword,\n tsNonNullExpression,\n tsNullKeyword,\n tsNumberKeyword,\n tsObjectKeyword,\n tsOptionalType,\n tsParameterProperty,\n tsParenthesizedType,\n tsPropertySignature,\n tsQualifiedName,\n tsRestType,\n tsSatisfiesExpression,\n tsStringKeyword,\n tsSymbolKeyword,\n tsTemplateLiteralType,\n tsThisType,\n tsTupleType,\n tsTypeAliasDeclaration,\n tsTypeAnnotation,\n tsTypeAssertion,\n tsTypeLiteral,\n tsTypeOperator,\n tsTypeParameter,\n tsTypeParameterDeclaration,\n tsTypeParameterInstantiation,\n tsTypePredicate,\n tsTypeQuery,\n tsTypeReference,\n tsUndefinedKeyword,\n tsUnionType,\n tsUnknownKeyword,\n tsVoidKeyword,\n tupleTypeAnnotation,\n typeAlias,\n typeAnnotation,\n typeCastExpression,\n typeParameter,\n typeParameterDeclaration,\n typeParameterInstantiation,\n typeofTypeAnnotation,\n unaryExpression,\n unionTypeAnnotation,\n updateExpression,\n v8IntrinsicIdentifier,\n variableDeclaration,\n variableDeclarator,\n variance,\n voidPattern,\n voidTypeAnnotation,\n whileStatement,\n withStatement,\n yieldExpression\n}, Symbol.toStringTag, { value: 'Module' });\n\nfunction alias(lowercase) {\n return function () {\n deprecationWarning(lowercase.replace(/^(?:ts|jsx|[a-z])/, x => x.toUpperCase()), lowercase, \"Usage of builders starting with an uppercase letter such as \", \"uppercase builders\");\n return b[lowercase](...arguments);\n };\n}\nconst 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 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 ImportExpression = alias(\"importExpression\"),\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 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 BigIntLiteralTypeAnnotation = alias(\"bigIntLiteralTypeAnnotation\"),\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 Placeholder = alias(\"placeholder\"),\n V8IntrinsicIdentifier = alias(\"v8IntrinsicIdentifier\"),\n ArgumentPlaceholder = alias(\"argumentPlaceholder\"),\n BindExpression = alias(\"bindExpression\"),\n ClassAccessorProperty = alias(\"classAccessorProperty\"),\n Decorator = alias(\"decorator\"),\n DoExpression = alias(\"doExpression\"),\n ExportDefaultSpecifier = alias(\"exportDefaultSpecifier\"),\n ModuleExpression = alias(\"moduleExpression\"),\n TopicReference = alias(\"topicReference\"),\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 TSClassImplements = alias(\"tsClassImplements\"),\n TSInterfaceHeritage = alias(\"tsInterfaceHeritage\"),\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\");\n\nfunction cleanJSXElementLiteralChild(child, args) {\n const lines = child.value.split(/\\r\\n|\\n|\\r/);\n let lastNonEmptyLine = 0;\n for (let i = 0; i < lines.length; i++) {\n if (/[^ \\t]/.exec(lines[i])) {\n lastNonEmptyLine = i;\n }\n }\n let str = \"\";\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i];\n const isFirstLine = i === 0;\n const isLastLine = i === lines.length - 1;\n const isLastNonEmptyLine = i === lastNonEmptyLine;\n let trimmedLine = line.replace(/\\t/g, \" \");\n if (!isFirstLine) {\n trimmedLine = trimmedLine.replace(/^ +/, \"\");\n }\n if (!isLastLine) {\n trimmedLine = trimmedLine.replace(/ +$/, \"\");\n }\n if (trimmedLine) {\n if (!isLastNonEmptyLine) {\n trimmedLine += \" \";\n }\n str += trimmedLine;\n }\n }\n if (str) args.push(inherits(stringLiteral(str), child));\n}\n\nfunction buildChildren(node) {\n const elements = [];\n for (let i = 0; i < node.children.length; i++) {\n let child = node.children[i];\n if (isJSXText(child)) {\n cleanJSXElementLiteralChild(child, elements);\n continue;\n }\n if (isJSXExpressionContainer(child)) child = child.expression;\n if (isJSXEmptyExpression(child)) continue;\n elements.push(child);\n }\n return elements;\n}\n\nfunction isNode(node) {\n return !!(node && VISITOR_KEYS[node.type]);\n}\n\nfunction assertNode(node) {\n if (!isNode(node)) {\n const type = node?.type ?? JSON.stringify(node);\n throw new TypeError(`Not a valid node of type \"${type}\"`);\n }\n}\n\nfunction assert(type, node, opts) {\n if (!is(type, node, opts)) {\n throw new Error(`Expected type \"${type}\" with option ${JSON.stringify(opts)}, ` + `but instead got \"${node.type}\".`);\n }\n}\nfunction assertArrayExpression(node, opts) {\n assert(\"ArrayExpression\", node, opts);\n}\nfunction assertAssignmentExpression(node, opts) {\n assert(\"AssignmentExpression\", node, opts);\n}\nfunction assertBinaryExpression(node, opts) {\n assert(\"BinaryExpression\", node, opts);\n}\nfunction assertInterpreterDirective(node, opts) {\n assert(\"InterpreterDirective\", node, opts);\n}\nfunction assertDirective(node, opts) {\n assert(\"Directive\", node, opts);\n}\nfunction assertDirectiveLiteral(node, opts) {\n assert(\"DirectiveLiteral\", node, opts);\n}\nfunction assertBlockStatement(node, opts) {\n assert(\"BlockStatement\", node, opts);\n}\nfunction assertBreakStatement(node, opts) {\n assert(\"BreakStatement\", node, opts);\n}\nfunction assertCallExpression(node, opts) {\n assert(\"CallExpression\", node, opts);\n}\nfunction assertCatchClause(node, opts) {\n assert(\"CatchClause\", node, opts);\n}\nfunction assertConditionalExpression(node, opts) {\n assert(\"ConditionalExpression\", node, opts);\n}\nfunction assertContinueStatement(node, opts) {\n assert(\"ContinueStatement\", node, opts);\n}\nfunction assertDebuggerStatement(node, opts) {\n assert(\"DebuggerStatement\", node, opts);\n}\nfunction assertDoWhileStatement(node, opts) {\n assert(\"DoWhileStatement\", node, opts);\n}\nfunction assertEmptyStatement(node, opts) {\n assert(\"EmptyStatement\", node, opts);\n}\nfunction assertExpressionStatement(node, opts) {\n assert(\"ExpressionStatement\", node, opts);\n}\nfunction assertFile(node, opts) {\n assert(\"File\", node, opts);\n}\nfunction assertForInStatement(node, opts) {\n assert(\"ForInStatement\", node, opts);\n}\nfunction assertForStatement(node, opts) {\n assert(\"ForStatement\", node, opts);\n}\nfunction assertFunctionDeclaration(node, opts) {\n assert(\"FunctionDeclaration\", node, opts);\n}\nfunction assertFunctionExpression(node, opts) {\n assert(\"FunctionExpression\", node, opts);\n}\nfunction assertIdentifier(node, opts) {\n assert(\"Identifier\", node, opts);\n}\nfunction assertIfStatement(node, opts) {\n assert(\"IfStatement\", node, opts);\n}\nfunction assertLabeledStatement(node, opts) {\n assert(\"LabeledStatement\", node, opts);\n}\nfunction assertStringLiteral(node, opts) {\n assert(\"StringLiteral\", node, opts);\n}\nfunction assertNumericLiteral(node, opts) {\n assert(\"NumericLiteral\", node, opts);\n}\nfunction assertNullLiteral(node, opts) {\n assert(\"NullLiteral\", node, opts);\n}\nfunction assertBooleanLiteral(node, opts) {\n assert(\"BooleanLiteral\", node, opts);\n}\nfunction assertRegExpLiteral(node, opts) {\n assert(\"RegExpLiteral\", node, opts);\n}\nfunction assertLogicalExpression(node, opts) {\n assert(\"LogicalExpression\", node, opts);\n}\nfunction assertMemberExpression(node, opts) {\n assert(\"MemberExpression\", node, opts);\n}\nfunction assertNewExpression(node, opts) {\n assert(\"NewExpression\", node, opts);\n}\nfunction assertProgram(node, opts) {\n assert(\"Program\", node, opts);\n}\nfunction assertObjectExpression(node, opts) {\n assert(\"ObjectExpression\", node, opts);\n}\nfunction assertObjectMethod(node, opts) {\n assert(\"ObjectMethod\", node, opts);\n}\nfunction assertObjectProperty(node, opts) {\n assert(\"ObjectProperty\", node, opts);\n}\nfunction assertRestElement(node, opts) {\n assert(\"RestElement\", node, opts);\n}\nfunction assertReturnStatement(node, opts) {\n assert(\"ReturnStatement\", node, opts);\n}\nfunction assertSequenceExpression(node, opts) {\n assert(\"SequenceExpression\", node, opts);\n}\nfunction assertParenthesizedExpression(node, opts) {\n assert(\"ParenthesizedExpression\", node, opts);\n}\nfunction assertSwitchCase(node, opts) {\n assert(\"SwitchCase\", node, opts);\n}\nfunction assertSwitchStatement(node, opts) {\n assert(\"SwitchStatement\", node, opts);\n}\nfunction assertThisExpression(node, opts) {\n assert(\"ThisExpression\", node, opts);\n}\nfunction assertThrowStatement(node, opts) {\n assert(\"ThrowStatement\", node, opts);\n}\nfunction assertTryStatement(node, opts) {\n assert(\"TryStatement\", node, opts);\n}\nfunction assertUnaryExpression(node, opts) {\n assert(\"UnaryExpression\", node, opts);\n}\nfunction assertUpdateExpression(node, opts) {\n assert(\"UpdateExpression\", node, opts);\n}\nfunction assertVariableDeclaration(node, opts) {\n assert(\"VariableDeclaration\", node, opts);\n}\nfunction assertVariableDeclarator(node, opts) {\n assert(\"VariableDeclarator\", node, opts);\n}\nfunction assertWhileStatement(node, opts) {\n assert(\"WhileStatement\", node, opts);\n}\nfunction assertWithStatement(node, opts) {\n assert(\"WithStatement\", node, opts);\n}\nfunction assertAssignmentPattern(node, opts) {\n assert(\"AssignmentPattern\", node, opts);\n}\nfunction assertArrayPattern(node, opts) {\n assert(\"ArrayPattern\", node, opts);\n}\nfunction assertArrowFunctionExpression(node, opts) {\n assert(\"ArrowFunctionExpression\", node, opts);\n}\nfunction assertClassBody(node, opts) {\n assert(\"ClassBody\", node, opts);\n}\nfunction assertClassExpression(node, opts) {\n assert(\"ClassExpression\", node, opts);\n}\nfunction assertClassDeclaration(node, opts) {\n assert(\"ClassDeclaration\", node, opts);\n}\nfunction assertExportAllDeclaration(node, opts) {\n assert(\"ExportAllDeclaration\", node, opts);\n}\nfunction assertExportDefaultDeclaration(node, opts) {\n assert(\"ExportDefaultDeclaration\", node, opts);\n}\nfunction assertExportNamedDeclaration(node, opts) {\n assert(\"ExportNamedDeclaration\", node, opts);\n}\nfunction assertExportSpecifier(node, opts) {\n assert(\"ExportSpecifier\", node, opts);\n}\nfunction assertForOfStatement(node, opts) {\n assert(\"ForOfStatement\", node, opts);\n}\nfunction assertImportDeclaration(node, opts) {\n assert(\"ImportDeclaration\", node, opts);\n}\nfunction assertImportDefaultSpecifier(node, opts) {\n assert(\"ImportDefaultSpecifier\", node, opts);\n}\nfunction assertImportNamespaceSpecifier(node, opts) {\n assert(\"ImportNamespaceSpecifier\", node, opts);\n}\nfunction assertImportSpecifier(node, opts) {\n assert(\"ImportSpecifier\", node, opts);\n}\nfunction assertMetaProperty(node, opts) {\n assert(\"MetaProperty\", node, opts);\n}\nfunction assertClassMethod(node, opts) {\n assert(\"ClassMethod\", node, opts);\n}\nfunction assertObjectPattern(node, opts) {\n assert(\"ObjectPattern\", node, opts);\n}\nfunction assertSpreadElement(node, opts) {\n assert(\"SpreadElement\", node, opts);\n}\nfunction assertSuper(node, opts) {\n assert(\"Super\", node, opts);\n}\nfunction assertTaggedTemplateExpression(node, opts) {\n assert(\"TaggedTemplateExpression\", node, opts);\n}\nfunction assertTemplateElement(node, opts) {\n assert(\"TemplateElement\", node, opts);\n}\nfunction assertTemplateLiteral(node, opts) {\n assert(\"TemplateLiteral\", node, opts);\n}\nfunction assertYieldExpression(node, opts) {\n assert(\"YieldExpression\", node, opts);\n}\nfunction assertAwaitExpression(node, opts) {\n assert(\"AwaitExpression\", node, opts);\n}\nfunction assertImportExpression(node, opts) {\n assert(\"ImportExpression\", node, opts);\n}\nfunction assertImport(node, opts) {\n assert(\"Import\", node, opts);\n}\nfunction assertBigIntLiteral(node, opts) {\n assert(\"BigIntLiteral\", node, opts);\n}\nfunction assertExportNamespaceSpecifier(node, opts) {\n assert(\"ExportNamespaceSpecifier\", node, opts);\n}\nfunction assertOptionalMemberExpression(node, opts) {\n assert(\"OptionalMemberExpression\", node, opts);\n}\nfunction assertOptionalCallExpression(node, opts) {\n assert(\"OptionalCallExpression\", node, opts);\n}\nfunction assertClassProperty(node, opts) {\n assert(\"ClassProperty\", node, opts);\n}\nfunction assertClassPrivateProperty(node, opts) {\n assert(\"ClassPrivateProperty\", node, opts);\n}\nfunction assertClassPrivateMethod(node, opts) {\n assert(\"ClassPrivateMethod\", node, opts);\n}\nfunction assertPrivateName(node, opts) {\n assert(\"PrivateName\", node, opts);\n}\nfunction assertStaticBlock(node, opts) {\n assert(\"StaticBlock\", node, opts);\n}\nfunction assertImportAttribute(node, opts) {\n assert(\"ImportAttribute\", node, opts);\n}\nfunction assertAnyTypeAnnotation(node, opts) {\n assert(\"AnyTypeAnnotation\", node, opts);\n}\nfunction assertArrayTypeAnnotation(node, opts) {\n assert(\"ArrayTypeAnnotation\", node, opts);\n}\nfunction assertBooleanTypeAnnotation(node, opts) {\n assert(\"BooleanTypeAnnotation\", node, opts);\n}\nfunction assertBooleanLiteralTypeAnnotation(node, opts) {\n assert(\"BooleanLiteralTypeAnnotation\", node, opts);\n}\nfunction assertNullLiteralTypeAnnotation(node, opts) {\n assert(\"NullLiteralTypeAnnotation\", node, opts);\n}\nfunction assertClassImplements(node, opts) {\n assert(\"ClassImplements\", node, opts);\n}\nfunction assertDeclareClass(node, opts) {\n assert(\"DeclareClass\", node, opts);\n}\nfunction assertDeclareFunction(node, opts) {\n assert(\"DeclareFunction\", node, opts);\n}\nfunction assertDeclareInterface(node, opts) {\n assert(\"DeclareInterface\", node, opts);\n}\nfunction assertDeclareModule(node, opts) {\n assert(\"DeclareModule\", node, opts);\n}\nfunction assertDeclareModuleExports(node, opts) {\n assert(\"DeclareModuleExports\", node, opts);\n}\nfunction assertDeclareTypeAlias(node, opts) {\n assert(\"DeclareTypeAlias\", node, opts);\n}\nfunction assertDeclareOpaqueType(node, opts) {\n assert(\"DeclareOpaqueType\", node, opts);\n}\nfunction assertDeclareVariable(node, opts) {\n assert(\"DeclareVariable\", node, opts);\n}\nfunction assertDeclareExportDeclaration(node, opts) {\n assert(\"DeclareExportDeclaration\", node, opts);\n}\nfunction assertDeclareExportAllDeclaration(node, opts) {\n assert(\"DeclareExportAllDeclaration\", node, opts);\n}\nfunction assertDeclaredPredicate(node, opts) {\n assert(\"DeclaredPredicate\", node, opts);\n}\nfunction assertExistsTypeAnnotation(node, opts) {\n assert(\"ExistsTypeAnnotation\", node, opts);\n}\nfunction assertFunctionTypeAnnotation(node, opts) {\n assert(\"FunctionTypeAnnotation\", node, opts);\n}\nfunction assertFunctionTypeParam(node, opts) {\n assert(\"FunctionTypeParam\", node, opts);\n}\nfunction assertGenericTypeAnnotation(node, opts) {\n assert(\"GenericTypeAnnotation\", node, opts);\n}\nfunction assertInferredPredicate(node, opts) {\n assert(\"InferredPredicate\", node, opts);\n}\nfunction assertInterfaceExtends(node, opts) {\n assert(\"InterfaceExtends\", node, opts);\n}\nfunction assertInterfaceDeclaration(node, opts) {\n assert(\"InterfaceDeclaration\", node, opts);\n}\nfunction assertInterfaceTypeAnnotation(node, opts) {\n assert(\"InterfaceTypeAnnotation\", node, opts);\n}\nfunction assertIntersectionTypeAnnotation(node, opts) {\n assert(\"IntersectionTypeAnnotation\", node, opts);\n}\nfunction assertMixedTypeAnnotation(node, opts) {\n assert(\"MixedTypeAnnotation\", node, opts);\n}\nfunction assertEmptyTypeAnnotation(node, opts) {\n assert(\"EmptyTypeAnnotation\", node, opts);\n}\nfunction assertNullableTypeAnnotation(node, opts) {\n assert(\"NullableTypeAnnotation\", node, opts);\n}\nfunction assertNumberLiteralTypeAnnotation(node, opts) {\n assert(\"NumberLiteralTypeAnnotation\", node, opts);\n}\nfunction assertBigIntLiteralTypeAnnotation(node, opts) {\n assert(\"BigIntLiteralTypeAnnotation\", node, opts);\n}\nfunction assertNumberTypeAnnotation(node, opts) {\n assert(\"NumberTypeAnnotation\", node, opts);\n}\nfunction assertObjectTypeAnnotation(node, opts) {\n assert(\"ObjectTypeAnnotation\", node, opts);\n}\nfunction assertObjectTypeInternalSlot(node, opts) {\n assert(\"ObjectTypeInternalSlot\", node, opts);\n}\nfunction assertObjectTypeCallProperty(node, opts) {\n assert(\"ObjectTypeCallProperty\", node, opts);\n}\nfunction assertObjectTypeIndexer(node, opts) {\n assert(\"ObjectTypeIndexer\", node, opts);\n}\nfunction assertObjectTypeProperty(node, opts) {\n assert(\"ObjectTypeProperty\", node, opts);\n}\nfunction assertObjectTypeSpreadProperty(node, opts) {\n assert(\"ObjectTypeSpreadProperty\", node, opts);\n}\nfunction assertOpaqueType(node, opts) {\n assert(\"OpaqueType\", node, opts);\n}\nfunction assertQualifiedTypeIdentifier(node, opts) {\n assert(\"QualifiedTypeIdentifier\", node, opts);\n}\nfunction assertStringLiteralTypeAnnotation(node, opts) {\n assert(\"StringLiteralTypeAnnotation\", node, opts);\n}\nfunction assertStringTypeAnnotation(node, opts) {\n assert(\"StringTypeAnnotation\", node, opts);\n}\nfunction assertSymbolTypeAnnotation(node, opts) {\n assert(\"SymbolTypeAnnotation\", node, opts);\n}\nfunction assertThisTypeAnnotation(node, opts) {\n assert(\"ThisTypeAnnotation\", node, opts);\n}\nfunction assertTupleTypeAnnotation(node, opts) {\n assert(\"TupleTypeAnnotation\", node, opts);\n}\nfunction assertTypeofTypeAnnotation(node, opts) {\n assert(\"TypeofTypeAnnotation\", node, opts);\n}\nfunction assertTypeAlias(node, opts) {\n assert(\"TypeAlias\", node, opts);\n}\nfunction assertTypeAnnotation(node, opts) {\n assert(\"TypeAnnotation\", node, opts);\n}\nfunction assertTypeCastExpression(node, opts) {\n assert(\"TypeCastExpression\", node, opts);\n}\nfunction assertTypeParameter(node, opts) {\n assert(\"TypeParameter\", node, opts);\n}\nfunction assertTypeParameterDeclaration(node, opts) {\n assert(\"TypeParameterDeclaration\", node, opts);\n}\nfunction assertTypeParameterInstantiation(node, opts) {\n assert(\"TypeParameterInstantiation\", node, opts);\n}\nfunction assertUnionTypeAnnotation(node, opts) {\n assert(\"UnionTypeAnnotation\", node, opts);\n}\nfunction assertVariance(node, opts) {\n assert(\"Variance\", node, opts);\n}\nfunction assertVoidTypeAnnotation(node, opts) {\n assert(\"VoidTypeAnnotation\", node, opts);\n}\nfunction assertEnumDeclaration(node, opts) {\n assert(\"EnumDeclaration\", node, opts);\n}\nfunction assertEnumBooleanBody(node, opts) {\n assert(\"EnumBooleanBody\", node, opts);\n}\nfunction assertEnumNumberBody(node, opts) {\n assert(\"EnumNumberBody\", node, opts);\n}\nfunction assertEnumStringBody(node, opts) {\n assert(\"EnumStringBody\", node, opts);\n}\nfunction assertEnumSymbolBody(node, opts) {\n assert(\"EnumSymbolBody\", node, opts);\n}\nfunction assertEnumBooleanMember(node, opts) {\n assert(\"EnumBooleanMember\", node, opts);\n}\nfunction assertEnumNumberMember(node, opts) {\n assert(\"EnumNumberMember\", node, opts);\n}\nfunction assertEnumStringMember(node, opts) {\n assert(\"EnumStringMember\", node, opts);\n}\nfunction assertEnumDefaultedMember(node, opts) {\n assert(\"EnumDefaultedMember\", node, opts);\n}\nfunction assertIndexedAccessType(node, opts) {\n assert(\"IndexedAccessType\", node, opts);\n}\nfunction assertOptionalIndexedAccessType(node, opts) {\n assert(\"OptionalIndexedAccessType\", node, opts);\n}\nfunction assertJSXAttribute(node, opts) {\n assert(\"JSXAttribute\", node, opts);\n}\nfunction assertJSXClosingElement(node, opts) {\n assert(\"JSXClosingElement\", node, opts);\n}\nfunction assertJSXElement(node, opts) {\n assert(\"JSXElement\", node, opts);\n}\nfunction assertJSXEmptyExpression(node, opts) {\n assert(\"JSXEmptyExpression\", node, opts);\n}\nfunction assertJSXExpressionContainer(node, opts) {\n assert(\"JSXExpressionContainer\", node, opts);\n}\nfunction assertJSXSpreadChild(node, opts) {\n assert(\"JSXSpreadChild\", node, opts);\n}\nfunction assertJSXIdentifier(node, opts) {\n assert(\"JSXIdentifier\", node, opts);\n}\nfunction assertJSXMemberExpression(node, opts) {\n assert(\"JSXMemberExpression\", node, opts);\n}\nfunction assertJSXNamespacedName(node, opts) {\n assert(\"JSXNamespacedName\", node, opts);\n}\nfunction assertJSXOpeningElement(node, opts) {\n assert(\"JSXOpeningElement\", node, opts);\n}\nfunction assertJSXSpreadAttribute(node, opts) {\n assert(\"JSXSpreadAttribute\", node, opts);\n}\nfunction assertJSXText(node, opts) {\n assert(\"JSXText\", node, opts);\n}\nfunction assertJSXFragment(node, opts) {\n assert(\"JSXFragment\", node, opts);\n}\nfunction assertJSXOpeningFragment(node, opts) {\n assert(\"JSXOpeningFragment\", node, opts);\n}\nfunction assertJSXClosingFragment(node, opts) {\n assert(\"JSXClosingFragment\", node, opts);\n}\nfunction assertPlaceholder(node, opts) {\n assert(\"Placeholder\", node, opts);\n}\nfunction assertV8IntrinsicIdentifier(node, opts) {\n assert(\"V8IntrinsicIdentifier\", node, opts);\n}\nfunction assertArgumentPlaceholder(node, opts) {\n assert(\"ArgumentPlaceholder\", node, opts);\n}\nfunction assertBindExpression(node, opts) {\n assert(\"BindExpression\", node, opts);\n}\nfunction assertClassAccessorProperty(node, opts) {\n assert(\"ClassAccessorProperty\", node, opts);\n}\nfunction assertDecorator(node, opts) {\n assert(\"Decorator\", node, opts);\n}\nfunction assertDoExpression(node, opts) {\n assert(\"DoExpression\", node, opts);\n}\nfunction assertExportDefaultSpecifier(node, opts) {\n assert(\"ExportDefaultSpecifier\", node, opts);\n}\nfunction assertModuleExpression(node, opts) {\n assert(\"ModuleExpression\", node, opts);\n}\nfunction assertTopicReference(node, opts) {\n assert(\"TopicReference\", node, opts);\n}\nfunction assertVoidPattern(node, opts) {\n assert(\"VoidPattern\", node, opts);\n}\nfunction assertTSParameterProperty(node, opts) {\n assert(\"TSParameterProperty\", node, opts);\n}\nfunction assertTSDeclareFunction(node, opts) {\n assert(\"TSDeclareFunction\", node, opts);\n}\nfunction assertTSDeclareMethod(node, opts) {\n assert(\"TSDeclareMethod\", node, opts);\n}\nfunction assertTSQualifiedName(node, opts) {\n assert(\"TSQualifiedName\", node, opts);\n}\nfunction assertTSCallSignatureDeclaration(node, opts) {\n assert(\"TSCallSignatureDeclaration\", node, opts);\n}\nfunction assertTSConstructSignatureDeclaration(node, opts) {\n assert(\"TSConstructSignatureDeclaration\", node, opts);\n}\nfunction assertTSPropertySignature(node, opts) {\n assert(\"TSPropertySignature\", node, opts);\n}\nfunction assertTSMethodSignature(node, opts) {\n assert(\"TSMethodSignature\", node, opts);\n}\nfunction assertTSIndexSignature(node, opts) {\n assert(\"TSIndexSignature\", node, opts);\n}\nfunction assertTSAnyKeyword(node, opts) {\n assert(\"TSAnyKeyword\", node, opts);\n}\nfunction assertTSBooleanKeyword(node, opts) {\n assert(\"TSBooleanKeyword\", node, opts);\n}\nfunction assertTSBigIntKeyword(node, opts) {\n assert(\"TSBigIntKeyword\", node, opts);\n}\nfunction assertTSIntrinsicKeyword(node, opts) {\n assert(\"TSIntrinsicKeyword\", node, opts);\n}\nfunction assertTSNeverKeyword(node, opts) {\n assert(\"TSNeverKeyword\", node, opts);\n}\nfunction assertTSNullKeyword(node, opts) {\n assert(\"TSNullKeyword\", node, opts);\n}\nfunction assertTSNumberKeyword(node, opts) {\n assert(\"TSNumberKeyword\", node, opts);\n}\nfunction assertTSObjectKeyword(node, opts) {\n assert(\"TSObjectKeyword\", node, opts);\n}\nfunction assertTSStringKeyword(node, opts) {\n assert(\"TSStringKeyword\", node, opts);\n}\nfunction assertTSSymbolKeyword(node, opts) {\n assert(\"TSSymbolKeyword\", node, opts);\n}\nfunction assertTSUndefinedKeyword(node, opts) {\n assert(\"TSUndefinedKeyword\", node, opts);\n}\nfunction assertTSUnknownKeyword(node, opts) {\n assert(\"TSUnknownKeyword\", node, opts);\n}\nfunction assertTSVoidKeyword(node, opts) {\n assert(\"TSVoidKeyword\", node, opts);\n}\nfunction assertTSThisType(node, opts) {\n assert(\"TSThisType\", node, opts);\n}\nfunction assertTSFunctionType(node, opts) {\n assert(\"TSFunctionType\", node, opts);\n}\nfunction assertTSConstructorType(node, opts) {\n assert(\"TSConstructorType\", node, opts);\n}\nfunction assertTSTypeReference(node, opts) {\n assert(\"TSTypeReference\", node, opts);\n}\nfunction assertTSTypePredicate(node, opts) {\n assert(\"TSTypePredicate\", node, opts);\n}\nfunction assertTSTypeQuery(node, opts) {\n assert(\"TSTypeQuery\", node, opts);\n}\nfunction assertTSTypeLiteral(node, opts) {\n assert(\"TSTypeLiteral\", node, opts);\n}\nfunction assertTSArrayType(node, opts) {\n assert(\"TSArrayType\", node, opts);\n}\nfunction assertTSTupleType(node, opts) {\n assert(\"TSTupleType\", node, opts);\n}\nfunction assertTSOptionalType(node, opts) {\n assert(\"TSOptionalType\", node, opts);\n}\nfunction assertTSRestType(node, opts) {\n assert(\"TSRestType\", node, opts);\n}\nfunction assertTSNamedTupleMember(node, opts) {\n assert(\"TSNamedTupleMember\", node, opts);\n}\nfunction assertTSUnionType(node, opts) {\n assert(\"TSUnionType\", node, opts);\n}\nfunction assertTSIntersectionType(node, opts) {\n assert(\"TSIntersectionType\", node, opts);\n}\nfunction assertTSConditionalType(node, opts) {\n assert(\"TSConditionalType\", node, opts);\n}\nfunction assertTSInferType(node, opts) {\n assert(\"TSInferType\", node, opts);\n}\nfunction assertTSParenthesizedType(node, opts) {\n assert(\"TSParenthesizedType\", node, opts);\n}\nfunction assertTSTypeOperator(node, opts) {\n assert(\"TSTypeOperator\", node, opts);\n}\nfunction assertTSIndexedAccessType(node, opts) {\n assert(\"TSIndexedAccessType\", node, opts);\n}\nfunction assertTSMappedType(node, opts) {\n assert(\"TSMappedType\", node, opts);\n}\nfunction assertTSTemplateLiteralType(node, opts) {\n assert(\"TSTemplateLiteralType\", node, opts);\n}\nfunction assertTSLiteralType(node, opts) {\n assert(\"TSLiteralType\", node, opts);\n}\nfunction assertTSClassImplements(node, opts) {\n assert(\"TSClassImplements\", node, opts);\n}\nfunction assertTSInterfaceHeritage(node, opts) {\n assert(\"TSInterfaceHeritage\", node, opts);\n}\nfunction assertTSInterfaceDeclaration(node, opts) {\n assert(\"TSInterfaceDeclaration\", node, opts);\n}\nfunction assertTSInterfaceBody(node, opts) {\n assert(\"TSInterfaceBody\", node, opts);\n}\nfunction assertTSTypeAliasDeclaration(node, opts) {\n assert(\"TSTypeAliasDeclaration\", node, opts);\n}\nfunction assertTSInstantiationExpression(node, opts) {\n assert(\"TSInstantiationExpression\", node, opts);\n}\nfunction assertTSAsExpression(node, opts) {\n assert(\"TSAsExpression\", node, opts);\n}\nfunction assertTSSatisfiesExpression(node, opts) {\n assert(\"TSSatisfiesExpression\", node, opts);\n}\nfunction assertTSTypeAssertion(node, opts) {\n assert(\"TSTypeAssertion\", node, opts);\n}\nfunction assertTSEnumBody(node, opts) {\n assert(\"TSEnumBody\", node, opts);\n}\nfunction assertTSEnumDeclaration(node, opts) {\n assert(\"TSEnumDeclaration\", node, opts);\n}\nfunction assertTSEnumMember(node, opts) {\n assert(\"TSEnumMember\", node, opts);\n}\nfunction assertTSModuleDeclaration(node, opts) {\n assert(\"TSModuleDeclaration\", node, opts);\n}\nfunction assertTSModuleBlock(node, opts) {\n assert(\"TSModuleBlock\", node, opts);\n}\nfunction assertTSImportType(node, opts) {\n assert(\"TSImportType\", node, opts);\n}\nfunction assertTSImportEqualsDeclaration(node, opts) {\n assert(\"TSImportEqualsDeclaration\", node, opts);\n}\nfunction assertTSExternalModuleReference(node, opts) {\n assert(\"TSExternalModuleReference\", node, opts);\n}\nfunction assertTSNonNullExpression(node, opts) {\n assert(\"TSNonNullExpression\", node, opts);\n}\nfunction assertTSExportAssignment(node, opts) {\n assert(\"TSExportAssignment\", node, opts);\n}\nfunction assertTSNamespaceExportDeclaration(node, opts) {\n assert(\"TSNamespaceExportDeclaration\", node, opts);\n}\nfunction assertTSTypeAnnotation(node, opts) {\n assert(\"TSTypeAnnotation\", node, opts);\n}\nfunction assertTSTypeParameterInstantiation(node, opts) {\n assert(\"TSTypeParameterInstantiation\", node, opts);\n}\nfunction assertTSTypeParameterDeclaration(node, opts) {\n assert(\"TSTypeParameterDeclaration\", node, opts);\n}\nfunction assertTSTypeParameter(node, opts) {\n assert(\"TSTypeParameter\", node, opts);\n}\nfunction assertStandardized(node, opts) {\n assert(\"Standardized\", node, opts);\n}\nfunction assertExpression(node, opts) {\n assert(\"Expression\", node, opts);\n}\nfunction assertBinary(node, opts) {\n assert(\"Binary\", node, opts);\n}\nfunction assertScopable(node, opts) {\n assert(\"Scopable\", node, opts);\n}\nfunction assertBlockParent(node, opts) {\n assert(\"BlockParent\", node, opts);\n}\nfunction assertBlock(node, opts) {\n assert(\"Block\", node, opts);\n}\nfunction assertStatement(node, opts) {\n assert(\"Statement\", node, opts);\n}\nfunction assertTerminatorless(node, opts) {\n assert(\"Terminatorless\", node, opts);\n}\nfunction assertCompletionStatement(node, opts) {\n assert(\"CompletionStatement\", node, opts);\n}\nfunction assertConditional(node, opts) {\n assert(\"Conditional\", node, opts);\n}\nfunction assertLoop(node, opts) {\n assert(\"Loop\", node, opts);\n}\nfunction assertWhile(node, opts) {\n assert(\"While\", node, opts);\n}\nfunction assertExpressionWrapper(node, opts) {\n assert(\"ExpressionWrapper\", node, opts);\n}\nfunction assertFor(node, opts) {\n assert(\"For\", node, opts);\n}\nfunction assertForXStatement(node, opts) {\n assert(\"ForXStatement\", node, opts);\n}\nfunction assertFunction(node, opts) {\n assert(\"Function\", node, opts);\n}\nfunction assertFunctionParent(node, opts) {\n assert(\"FunctionParent\", node, opts);\n}\nfunction assertPureish(node, opts) {\n assert(\"Pureish\", node, opts);\n}\nfunction assertDeclaration(node, opts) {\n assert(\"Declaration\", node, opts);\n}\nfunction assertFunctionParameter(node, opts) {\n assert(\"FunctionParameter\", node, opts);\n}\nfunction assertPatternLike(node, opts) {\n assert(\"PatternLike\", node, opts);\n}\nfunction assertLVal(node, opts) {\n assert(\"LVal\", node, opts);\n}\nfunction assertTSEntityName(node, opts) {\n assert(\"TSEntityName\", node, opts);\n}\nfunction assertLiteral(node, opts) {\n assert(\"Literal\", node, opts);\n}\nfunction assertImmutable(node, opts) {\n assert(\"Immutable\", node, opts);\n}\nfunction assertUserWhitespacable(node, opts) {\n assert(\"UserWhitespacable\", node, opts);\n}\nfunction assertMethod(node, opts) {\n assert(\"Method\", node, opts);\n}\nfunction assertObjectMember(node, opts) {\n assert(\"ObjectMember\", node, opts);\n}\nfunction assertProperty(node, opts) {\n assert(\"Property\", node, opts);\n}\nfunction assertUnaryLike(node, opts) {\n assert(\"UnaryLike\", node, opts);\n}\nfunction assertPattern(node, opts) {\n assert(\"Pattern\", node, opts);\n}\nfunction assertClass(node, opts) {\n assert(\"Class\", node, opts);\n}\nfunction assertImportOrExportDeclaration(node, opts) {\n assert(\"ImportOrExportDeclaration\", node, opts);\n}\nfunction assertExportDeclaration(node, opts) {\n assert(\"ExportDeclaration\", node, opts);\n}\nfunction assertModuleSpecifier(node, opts) {\n assert(\"ModuleSpecifier\", node, opts);\n}\nfunction assertPrivate(node, opts) {\n assert(\"Private\", node, opts);\n}\nfunction assertFlow(node, opts) {\n assert(\"Flow\", node, opts);\n}\nfunction assertFlowType(node, opts) {\n assert(\"FlowType\", node, opts);\n}\nfunction assertFlowBaseAnnotation(node, opts) {\n assert(\"FlowBaseAnnotation\", node, opts);\n}\nfunction assertFlowDeclaration(node, opts) {\n assert(\"FlowDeclaration\", node, opts);\n}\nfunction assertFlowPredicate(node, opts) {\n assert(\"FlowPredicate\", node, opts);\n}\nfunction assertEnumBody(node, opts) {\n assert(\"EnumBody\", node, opts);\n}\nfunction assertEnumMember(node, opts) {\n assert(\"EnumMember\", node, opts);\n}\nfunction assertJSX(node, opts) {\n assert(\"JSX\", node, opts);\n}\nfunction assertMiscellaneous(node, opts) {\n assert(\"Miscellaneous\", node, opts);\n}\nfunction assertAccessor(node, opts) {\n assert(\"Accessor\", node, opts);\n}\nfunction assertTypeScript(node, opts) {\n assert(\"TypeScript\", node, opts);\n}\nfunction assertTSTypeElement(node, opts) {\n assert(\"TSTypeElement\", node, opts);\n}\nfunction assertTSType(node, opts) {\n assert(\"TSType\", node, opts);\n}\nfunction assertTSBaseType(node, opts) {\n assert(\"TSBaseType\", node, opts);\n}\nfunction assertNumberLiteral(node, opts) {\n deprecationWarning(\"assertNumberLiteral\", \"assertNumericLiteral\");\n assert(\"NumberLiteral\", node, opts);\n}\nfunction assertRegexLiteral(node, opts) {\n deprecationWarning(\"assertRegexLiteral\", \"assertRegExpLiteral\");\n assert(\"RegexLiteral\", node, opts);\n}\nfunction assertRestProperty(node, opts) {\n deprecationWarning(\"assertRestProperty\", \"assertRestElement\");\n assert(\"RestProperty\", node, opts);\n}\nfunction assertSpreadProperty(node, opts) {\n deprecationWarning(\"assertSpreadProperty\", \"assertSpreadElement\");\n assert(\"SpreadProperty\", node, opts);\n}\nfunction assertModuleDeclaration(node, opts) {\n deprecationWarning(\"assertModuleDeclaration\", \"assertImportOrExportDeclaration\");\n assert(\"ModuleDeclaration\", node, opts);\n}\n\nfunction createTypeAnnotationBasedOnTypeof(type) {\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 return anyTypeAnnotation();\n }\n throw new Error(\"Invalid typeof value: \" + type);\n}\n\nfunction getQualifiedName$1(node) {\n return isIdentifier(node) ? node.name : `${node.id.name}.${getQualifiedName$1(node.qualification)}`;\n}\nfunction removeTypeDuplicates$1(nodesIn) {\n const nodes = Array.from(nodesIn);\n const generics = new Map();\n const bases = new Map();\n const typeGroups = new Set();\n const types = [];\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n if (!node) continue;\n if (types.includes(node)) {\n continue;\n }\n if (isAnyTypeAnnotation(node)) {\n return [node];\n }\n if (isFlowBaseAnnotation(node)) {\n bases.set(node.type, node);\n continue;\n }\n if (isUnionTypeAnnotation(node)) {\n if (!typeGroups.has(node.types)) {\n nodes.push(...node.types);\n typeGroups.add(node.types);\n }\n continue;\n }\n if (isGenericTypeAnnotation(node)) {\n const name = getQualifiedName$1(node.id);\n if (generics.has(name)) {\n const existingTypeParameters = generics.get(name).typeParameters;\n if (existingTypeParameters) {\n if (node.typeParameters) {\n existingTypeParameters.params.push(...node.typeParameters.params);\n existingTypeParameters.params = removeTypeDuplicates$1(existingTypeParameters.params);\n }\n }\n } else {\n generics.set(name, node);\n }\n continue;\n }\n types.push(node);\n }\n for (const [, baseType] of bases) {\n types.push(baseType);\n }\n for (const [, genericName] of generics) {\n types.push(genericName);\n }\n return types;\n}\n\nfunction createFlowUnionType(types) {\n const flattened = removeTypeDuplicates$1(types);\n if (flattened.length === 1) {\n return flattened[0];\n } else {\n return unionTypeAnnotation(flattened);\n }\n}\n\nfunction getQualifiedName(node) {\n return isIdentifier(node) ? node.name : isThisExpression(node) ? \"this\" : `${node.right.name}.${getQualifiedName(node.left)}`;\n}\nfunction removeTypeDuplicates(nodesIn) {\n const nodes = Array.from(nodesIn);\n const generics = new Map();\n const bases = new Map();\n const typeGroups = new Set();\n const types = [];\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n if (!node) continue;\n if (types.includes(node)) {\n continue;\n }\n if (isTSAnyKeyword(node)) {\n return [node];\n }\n if (isTSBaseType(node)) {\n bases.set(node.type, node);\n continue;\n }\n if (isTSUnionType(node)) {\n if (!typeGroups.has(node.types)) {\n nodes.push(...node.types);\n typeGroups.add(node.types);\n }\n continue;\n }\n const typeArgumentsKey = \"typeArguments\";\n if (isTSTypeReference(node) && node[typeArgumentsKey]) {\n const typeArguments = node[typeArgumentsKey];\n const name = getQualifiedName(node.typeName);\n if (generics.has(name)) {\n const existingTypeArguments = generics.get(name)[typeArgumentsKey];\n if (existingTypeArguments) {\n existingTypeArguments.params.push(...typeArguments.params);\n existingTypeArguments.params = removeTypeDuplicates(existingTypeArguments.params);\n }\n } else {\n generics.set(name, node);\n }\n continue;\n }\n types.push(node);\n }\n for (const [, baseType] of bases) {\n types.push(baseType);\n }\n for (const [, genericName] of generics) {\n types.push(genericName);\n }\n return types;\n}\n\nfunction createTSUnionType(typeAnnotations) {\n const types = typeAnnotations.map(type => {\n return isTSTypeAnnotation(type) ? type.typeAnnotation : type;\n });\n const flattened = removeTypeDuplicates(types);\n if (flattened.length === 1) {\n return flattened[0];\n } else {\n return tsUnionType(flattened);\n }\n}\n\nfunction buildUndefinedNode() {\n return unaryExpression(\"void\", numericLiteral(0), true);\n}\n\nconst {\n hasOwn\n} = Object;\nfunction cloneIfNode(obj, deep, withoutLoc, commentsCache) {\n if (obj && typeof obj.type === \"string\") {\n return cloneNodeInternal(obj, deep, withoutLoc, commentsCache);\n }\n return obj;\n}\nfunction cloneIfNodeOrArray(obj, deep, withoutLoc, commentsCache) {\n if (Array.isArray(obj)) {\n return obj.map(node => cloneIfNode(node, deep, withoutLoc, commentsCache));\n }\n return cloneIfNode(obj, deep, withoutLoc, commentsCache);\n}\nfunction cloneNode(node, deep = true, withoutLoc = false) {\n if (!node) return node;\n return cloneNodeInternal(node, deep, withoutLoc, new Map());\n}\nfunction cloneNodeInternal(node, deep = true, withoutLoc = false, commentsCache) {\n if (!node) return node;\n const {\n type\n } = node;\n const newNode = {\n type: node.type\n };\n if (isIdentifier(node)) {\n newNode.name = node.name;\n if (hasOwn(node, \"optional\") && typeof node.optional === \"boolean\") {\n newNode.optional = node.optional;\n }\n if (hasOwn(node, \"typeAnnotation\")) {\n newNode.typeAnnotation = deep ? cloneIfNodeOrArray(node.typeAnnotation, true, withoutLoc, commentsCache) : node.typeAnnotation;\n }\n if (hasOwn(node, \"decorators\")) {\n newNode.decorators = deep ? cloneIfNodeOrArray(node.decorators, true, withoutLoc, commentsCache) : node.decorators;\n }\n } else if (!hasOwn(NODE_FIELDS$1, type)) {\n throw new Error(`Unknown node type: \"${type}\"`);\n } else {\n for (const field of Object.keys(NODE_FIELDS$1[type])) {\n if (hasOwn(node, field)) {\n if (deep) {\n newNode[field] = isFile(node) && field === \"comments\" ? maybeCloneComments(node.comments, deep, withoutLoc, commentsCache) : cloneIfNodeOrArray(node[field], true, withoutLoc, commentsCache);\n } else {\n newNode[field] = node[field];\n }\n }\n }\n }\n if (hasOwn(node, \"loc\")) {\n if (withoutLoc) {\n newNode.loc = null;\n } else {\n newNode.loc = node.loc;\n }\n }\n if (hasOwn(node, \"leadingComments\")) {\n newNode.leadingComments = maybeCloneComments(node.leadingComments, deep, withoutLoc, commentsCache);\n }\n if (hasOwn(node, \"innerComments\")) {\n newNode.innerComments = maybeCloneComments(node.innerComments, deep, withoutLoc, commentsCache);\n }\n if (hasOwn(node, \"trailingComments\")) {\n newNode.trailingComments = maybeCloneComments(node.trailingComments, deep, withoutLoc, commentsCache);\n }\n if (hasOwn(node, \"extra\")) {\n newNode.extra = {\n ...node.extra\n };\n }\n return newNode;\n}\nfunction maybeCloneComments(comments, deep, withoutLoc, commentsCache) {\n if (!comments || !deep) {\n return comments;\n }\n return comments.map(comment => {\n const cache = commentsCache.get(comment);\n if (cache) return cache;\n const {\n type,\n value,\n loc\n } = comment;\n const ret = {\n type,\n value,\n loc\n };\n if (withoutLoc) {\n ret.loc = undefined;\n }\n commentsCache.set(comment, ret);\n return ret;\n });\n}\n\nfunction clone(node) {\n return cloneNode(node, false);\n}\n\nfunction cloneDeep(node) {\n return cloneNode(node);\n}\n\nfunction cloneDeepWithoutLoc(node) {\n return cloneNode(node, true, true);\n}\n\nfunction cloneWithoutLoc(node) {\n return cloneNode(node, false, true);\n}\n\nfunction addComments(node, type, comments) {\n if (!comments || !node) return node;\n const key = `${type}Comments`;\n if (node[key]) {\n if (type === \"leading\") {\n node[key] = comments.concat(node[key]);\n } else {\n node[key].push(...comments);\n }\n } else {\n node[key] = comments;\n }\n return node;\n}\n\nfunction addComment(node, type, content, line) {\n return addComments(node, type, [{\n type: line ? \"CommentLine\" : \"CommentBlock\",\n value: content\n }]);\n}\n\nfunction inherit(key, child, parent) {\n if (child && parent) {\n child[key] = Array.from(new Set([].concat(child[key], parent[key]).filter(Boolean)));\n }\n}\n\nfunction inheritInnerComments(child, parent) {\n inherit(\"innerComments\", child, parent);\n}\n\nfunction inheritLeadingComments(child, parent) {\n inherit(\"leadingComments\", child, parent);\n}\n\nfunction inheritTrailingComments(child, parent) {\n inherit(\"trailingComments\", child, parent);\n}\n\nfunction inheritsComments(child, parent) {\n inheritTrailingComments(child, parent);\n inheritLeadingComments(child, parent);\n inheritInnerComments(child, parent);\n return child;\n}\n\nfunction removeComments(node) {\n COMMENT_KEYS.forEach(key => {\n node[key] = null;\n });\n return node;\n}\n\nconst STANDARDIZED_TYPES = FLIPPED_ALIAS_KEYS[\"Standardized\"];\nconst EXPRESSION_TYPES = FLIPPED_ALIAS_KEYS[\"Expression\"];\nconst BINARY_TYPES = FLIPPED_ALIAS_KEYS[\"Binary\"];\nconst SCOPABLE_TYPES = FLIPPED_ALIAS_KEYS[\"Scopable\"];\nconst BLOCKPARENT_TYPES = FLIPPED_ALIAS_KEYS[\"BlockParent\"];\nconst BLOCK_TYPES = FLIPPED_ALIAS_KEYS[\"Block\"];\nconst STATEMENT_TYPES = FLIPPED_ALIAS_KEYS[\"Statement\"];\nconst TERMINATORLESS_TYPES = FLIPPED_ALIAS_KEYS[\"Terminatorless\"];\nconst COMPLETIONSTATEMENT_TYPES = FLIPPED_ALIAS_KEYS[\"CompletionStatement\"];\nconst CONDITIONAL_TYPES = FLIPPED_ALIAS_KEYS[\"Conditional\"];\nconst LOOP_TYPES = FLIPPED_ALIAS_KEYS[\"Loop\"];\nconst WHILE_TYPES = FLIPPED_ALIAS_KEYS[\"While\"];\nconst EXPRESSIONWRAPPER_TYPES = FLIPPED_ALIAS_KEYS[\"ExpressionWrapper\"];\nconst FOR_TYPES = FLIPPED_ALIAS_KEYS[\"For\"];\nconst FORXSTATEMENT_TYPES = FLIPPED_ALIAS_KEYS[\"ForXStatement\"];\nconst FUNCTION_TYPES = FLIPPED_ALIAS_KEYS[\"Function\"];\nconst FUNCTIONPARENT_TYPES = FLIPPED_ALIAS_KEYS[\"FunctionParent\"];\nconst PUREISH_TYPES = FLIPPED_ALIAS_KEYS[\"Pureish\"];\nconst DECLARATION_TYPES = FLIPPED_ALIAS_KEYS[\"Declaration\"];\nconst FUNCTIONPARAMETER_TYPES = FLIPPED_ALIAS_KEYS[\"FunctionParameter\"];\nconst PATTERNLIKE_TYPES = FLIPPED_ALIAS_KEYS[\"PatternLike\"];\nconst LVAL_TYPES = FLIPPED_ALIAS_KEYS[\"LVal\"];\nconst TSENTITYNAME_TYPES = FLIPPED_ALIAS_KEYS[\"TSEntityName\"];\nconst LITERAL_TYPES = FLIPPED_ALIAS_KEYS[\"Literal\"];\nconst IMMUTABLE_TYPES = FLIPPED_ALIAS_KEYS[\"Immutable\"];\nconst USERWHITESPACABLE_TYPES = FLIPPED_ALIAS_KEYS[\"UserWhitespacable\"];\nconst METHOD_TYPES = FLIPPED_ALIAS_KEYS[\"Method\"];\nconst OBJECTMEMBER_TYPES = FLIPPED_ALIAS_KEYS[\"ObjectMember\"];\nconst PROPERTY_TYPES = FLIPPED_ALIAS_KEYS[\"Property\"];\nconst UNARYLIKE_TYPES = FLIPPED_ALIAS_KEYS[\"UnaryLike\"];\nconst PATTERN_TYPES = FLIPPED_ALIAS_KEYS[\"Pattern\"];\nconst CLASS_TYPES = FLIPPED_ALIAS_KEYS[\"Class\"];\nconst IMPORTOREXPORTDECLARATION_TYPES = FLIPPED_ALIAS_KEYS[\"ImportOrExportDeclaration\"];\nconst EXPORTDECLARATION_TYPES = FLIPPED_ALIAS_KEYS[\"ExportDeclaration\"];\nconst MODULESPECIFIER_TYPES = FLIPPED_ALIAS_KEYS[\"ModuleSpecifier\"];\nconst PRIVATE_TYPES = FLIPPED_ALIAS_KEYS[\"Private\"];\nconst FLOW_TYPES = FLIPPED_ALIAS_KEYS[\"Flow\"];\nconst FLOWTYPE_TYPES = FLIPPED_ALIAS_KEYS[\"FlowType\"];\nconst FLOWBASEANNOTATION_TYPES = FLIPPED_ALIAS_KEYS[\"FlowBaseAnnotation\"];\nconst FLOWDECLARATION_TYPES = FLIPPED_ALIAS_KEYS[\"FlowDeclaration\"];\nconst FLOWPREDICATE_TYPES = FLIPPED_ALIAS_KEYS[\"FlowPredicate\"];\nconst ENUMBODY_TYPES = FLIPPED_ALIAS_KEYS[\"EnumBody\"];\nconst ENUMMEMBER_TYPES = FLIPPED_ALIAS_KEYS[\"EnumMember\"];\nconst JSX_TYPES = FLIPPED_ALIAS_KEYS[\"JSX\"];\nconst MISCELLANEOUS_TYPES = FLIPPED_ALIAS_KEYS[\"Miscellaneous\"];\nconst ACCESSOR_TYPES = FLIPPED_ALIAS_KEYS[\"Accessor\"];\nconst TYPESCRIPT_TYPES = FLIPPED_ALIAS_KEYS[\"TypeScript\"];\nconst TSTYPEELEMENT_TYPES = FLIPPED_ALIAS_KEYS[\"TSTypeElement\"];\nconst TSTYPE_TYPES = FLIPPED_ALIAS_KEYS[\"TSType\"];\nconst TSBASETYPE_TYPES = FLIPPED_ALIAS_KEYS[\"TSBaseType\"];\nconst MODULEDECLARATION_TYPES = IMPORTOREXPORTDECLARATION_TYPES;\n\nfunction toBlock(node, parent) {\n if (isBlockStatement(node)) {\n return node;\n }\n let blockNodes;\n if (isEmptyStatement(node)) {\n blockNodes = [];\n } else {\n if (!isStatement(node)) {\n if (isFunction(parent)) {\n node = returnStatement(node);\n } else {\n node = expressionStatement(node);\n }\n }\n blockNodes = [node];\n }\n return blockStatement(blockNodes);\n}\n\nfunction ensureBlock(node, key = \"body\") {\n const result = toBlock(node[key], node);\n node[key] = result;\n return result;\n}\n\nfunction toIdentifier(input) {\n input = input + \"\";\n let name = \"\";\n for (const c of input) {\n name += isIdentifierChar(c.codePointAt(0)) ? c : \"-\";\n }\n name = name.replace(/^[-0-9]+/, \"\");\n name = name.replace(/[-\\s]+(.)?/g, function (match, c) {\n return c ? c.toUpperCase() : \"\";\n });\n if (!isValidIdentifier(name)) {\n name = `_${name}`;\n }\n return name || \"_\";\n}\n\nfunction toBindingIdentifierName(name) {\n name = toIdentifier(name);\n if (name === \"eval\" || name === \"arguments\") name = \"_\" + name;\n return name;\n}\n\nfunction toComputedKey(node, key = node.key || node.property) {\n if (!node.computed && isIdentifier(key)) key = stringLiteral(key.name);\n return key;\n}\n\nfunction toExpression(node) {\n if (isExpressionStatement(node)) {\n node = node.expression;\n }\n if (isExpression(node)) {\n return node;\n }\n if (isClass(node)) {\n node.type = \"ClassExpression\";\n node.abstract = false;\n } else if (isFunction(node)) {\n node.type = \"FunctionExpression\";\n }\n if (!isExpression(node)) {\n throw new Error(`cannot turn ${node.type} to an expression`);\n }\n return node;\n}\n\nconst _skip = Symbol();\nconst _stop = Symbol();\nfunction traverseFast(node, enter, opts) {\n if (!node) return false;\n const keys = VISITOR_KEYS[node.type];\n if (!keys) return false;\n opts = opts || {};\n const ret = enter(node, opts);\n if (ret !== undefined) {\n switch (ret) {\n case _skip:\n return false;\n case _stop:\n return true;\n }\n }\n for (const key of keys) {\n const subNode = node[key];\n if (!subNode) continue;\n if (Array.isArray(subNode)) {\n for (const node of subNode) {\n if (traverseFast(node, enter, opts)) return true;\n }\n } else {\n if (traverseFast(subNode, enter, opts)) return true;\n }\n }\n return false;\n}\ntraverseFast.skip = _skip;\ntraverseFast.stop = _stop;\n\nconst CLEAR_KEYS = [\"tokens\", \"start\", \"end\", \"loc\", \"raw\", \"rawValue\"];\nconst CLEAR_KEYS_PLUS_COMMENTS = [...COMMENT_KEYS, \"comments\", ...CLEAR_KEYS];\nfunction removeProperties(node, opts = {}) {\n const map = opts.preserveComments ? CLEAR_KEYS : CLEAR_KEYS_PLUS_COMMENTS;\n for (const key of map) {\n if (node[key] != null) node[key] = undefined;\n }\n for (const key of Object.keys(node)) {\n if (key.startsWith(\"_\") && node[key] != null) node[key] = undefined;\n }\n const symbols = Object.getOwnPropertySymbols(node);\n for (const sym of symbols) {\n node[sym] = null;\n }\n}\n\nfunction removePropertiesDeep(tree, opts) {\n traverseFast(tree, removeProperties, opts);\n return tree;\n}\n\nfunction toKeyAlias(node, key = node.key) {\n let alias;\n if (node.kind === \"method\") {\n return toKeyAlias.increment() + \"\";\n } else if (isIdentifier(key)) {\n alias = key.name;\n } else if (isStringLiteral(key)) {\n alias = JSON.stringify(key.value);\n } else {\n alias = JSON.stringify(removePropertiesDeep(cloneNode(key)));\n }\n if (node.computed) {\n alias = `[${alias}]`;\n }\n if (node.static) {\n alias = `static:${alias}`;\n }\n return alias;\n}\ntoKeyAlias.uid = 0;\ntoKeyAlias.increment = function () {\n if (toKeyAlias.uid >= Number.MAX_SAFE_INTEGER) {\n return toKeyAlias.uid = 0;\n } else {\n return toKeyAlias.uid++;\n }\n};\n\nfunction toStatement(node, ignore) {\n if (isStatement(node)) {\n return node;\n }\n let mustHaveId = false;\n let newType;\n if (isClass(node)) {\n mustHaveId = true;\n newType = \"ClassDeclaration\";\n } else if (isFunction(node)) {\n mustHaveId = true;\n newType = \"FunctionDeclaration\";\n } else if (isAssignmentExpression(node)) {\n return expressionStatement(node);\n }\n if (mustHaveId && !node.id) {\n newType = false;\n }\n if (!newType) {\n if (ignore) {\n return false;\n } else {\n throw new Error(`cannot turn ${node.type} to a statement`);\n }\n }\n node.type = newType;\n return node;\n}\n\nconst objectToString = Function.call.bind(Object.prototype.toString);\nfunction isRegExp(value) {\n return objectToString(value) === \"[object RegExp]\";\n}\nfunction isPlainObject(value) {\n if (typeof value !== \"object\" || value === null || Object.prototype.toString.call(value) !== \"[object Object]\") {\n return false;\n }\n const proto = Object.getPrototypeOf(value);\n return proto === null || Object.getPrototypeOf(proto) === null;\n}\nfunction valueToNode(value) {\n if (value === undefined) {\n return identifier(\"undefined\");\n }\n if (value === true || value === false) {\n return booleanLiteral(value);\n }\n if (value === null) {\n return nullLiteral();\n }\n if (typeof value === \"string\") {\n return stringLiteral(value);\n }\n if (typeof value === \"number\") {\n let result;\n if (Number.isFinite(value)) {\n result = numericLiteral(Math.abs(value));\n } else {\n let numerator;\n if (Number.isNaN(value)) {\n numerator = numericLiteral(0);\n } else {\n numerator = numericLiteral(1);\n }\n result = binaryExpression(\"/\", numerator, numericLiteral(0));\n }\n if (value < 0 || Object.is(value, -0)) {\n result = unaryExpression(\"-\", result);\n }\n return result;\n }\n if (typeof value === \"bigint\") {\n if (value < 0) {\n return unaryExpression(\"-\", bigIntLiteral(-value));\n } else {\n return bigIntLiteral(value);\n }\n }\n if (isRegExp(value)) {\n const pattern = value.source;\n const flags = /\\/([a-z]*)$/.exec(value.toString())[1];\n return regExpLiteral(pattern, flags);\n }\n if (Array.isArray(value)) {\n return arrayExpression(value.map(valueToNode));\n }\n if (isPlainObject(value)) {\n const props = [];\n for (const key of Object.keys(value)) {\n let nodeKey,\n computed = false;\n if (isValidIdentifier(key)) {\n if (key === \"__proto__\") {\n computed = true;\n nodeKey = stringLiteral(key);\n } else {\n nodeKey = identifier(key);\n }\n } else {\n nodeKey = stringLiteral(key);\n }\n props.push(objectProperty(nodeKey, valueToNode(value[key]), computed));\n }\n return objectExpression(props);\n }\n throw new Error(\"don't know how to turn this value into a node\");\n}\n\nfunction appendToMemberExpression(member, append, computed = false) {\n member.object = memberExpression(member.object, member.property, member.computed);\n member.property = append;\n member.computed = !!computed;\n return member;\n}\n\nfunction inherits(child, parent) {\n if (!child || !parent) return child;\n for (const key of INHERIT_KEYS.optional) {\n if (child[key] == null) {\n child[key] = parent[key];\n }\n }\n for (const key of Object.keys(parent)) {\n if (key.startsWith(\"_\") && key !== \"__clone\") {\n child[key] = parent[key];\n }\n }\n for (const key of INHERIT_KEYS.force) {\n child[key] = parent[key];\n }\n inheritsComments(child, parent);\n return child;\n}\n\nfunction prependToMemberExpression(member, prepend) {\n if (isSuper(member.object)) {\n throw new Error(\"Cannot prepend node to super property access (`super.foo`).\");\n }\n member.object = memberExpression(prepend, member.object);\n return member;\n}\n\nfunction getAssignmentIdentifiers(node) {\n const search = [].concat(node);\n const ids = Object.create(null);\n while (search.length) {\n const id = search.pop();\n if (!id) continue;\n switch (id.type) {\n case \"ArrayPattern\":\n search.push(...id.elements);\n break;\n case \"AssignmentExpression\":\n case \"AssignmentPattern\":\n case \"ForInStatement\":\n case \"ForOfStatement\":\n search.push(id.left);\n break;\n case \"ObjectPattern\":\n search.push(...id.properties);\n break;\n case \"ObjectProperty\":\n search.push(id.value);\n break;\n case \"RestElement\":\n case \"UpdateExpression\":\n search.push(id.argument);\n break;\n case \"UnaryExpression\":\n if (id.operator === \"delete\") {\n search.push(id.argument);\n }\n break;\n case \"Identifier\":\n ids[id.name] = id;\n break;\n }\n }\n return ids;\n}\n\nfunction getBindingIdentifiers(node, duplicates, outerOnly, newBindingsOnly) {\n const search = [].concat(node);\n const ids = Object.create(null);\n while (search.length) {\n const id = search.shift();\n if (!id) continue;\n if (newBindingsOnly && (isAssignmentExpression(id) || isUnaryExpression(id) || isUpdateExpression(id))) {\n continue;\n }\n if (isIdentifier(id)) {\n if (duplicates) {\n const _ids = ids[id.name] = ids[id.name] || [];\n _ids.push(id);\n } else {\n ids[id.name] = id;\n }\n continue;\n }\n if (isExportDeclaration(id) && !isExportAllDeclaration(id)) {\n if (isDeclaration(id.declaration)) {\n search.push(id.declaration);\n }\n continue;\n }\n if (outerOnly) {\n if (isFunctionDeclaration(id)) {\n search.push(id.id);\n continue;\n }\n if (isFunctionExpression(id) || isClassExpression(id)) {\n continue;\n }\n }\n const keys = getBindingIdentifiers.keys[id.type];\n if (keys) {\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const nodes = id[key];\n if (nodes) {\n if (Array.isArray(nodes)) {\n search.push(...nodes);\n } else {\n search.push(nodes);\n }\n }\n }\n }\n }\n return ids;\n}\nconst keys = {\n DeclareClass: [\"id\"],\n DeclareFunction: [\"id\"],\n DeclareModule: [\"id\"],\n DeclareVariable: [\"id\"],\n DeclareInterface: [\"id\"],\n DeclareTypeAlias: [\"id\"],\n DeclareOpaqueType: [\"id\"],\n InterfaceDeclaration: [\"id\"],\n TypeAlias: [\"id\"],\n OpaqueType: [\"id\"],\n CatchClause: [\"param\"],\n LabeledStatement: [\"label\"],\n UnaryExpression: [\"argument\"],\n AssignmentExpression: [\"left\"],\n ImportSpecifier: [\"local\"],\n ImportNamespaceSpecifier: [\"local\"],\n ImportDefaultSpecifier: [\"local\"],\n ImportDeclaration: [\"specifiers\"],\n TSImportEqualsDeclaration: [\"id\"],\n ExportSpecifier: [\"exported\"],\n ExportNamespaceSpecifier: [\"exported\"],\n ExportDefaultSpecifier: [\"exported\"],\n FunctionDeclaration: [\"id\", \"params\"],\n FunctionExpression: [\"id\", \"params\"],\n ArrowFunctionExpression: [\"params\"],\n ObjectMethod: [\"params\"],\n ClassMethod: [\"params\"],\n ClassPrivateMethod: [\"params\"],\n ForInStatement: [\"left\"],\n ForOfStatement: [\"left\"],\n ClassDeclaration: [\"id\"],\n ClassExpression: [\"id\"],\n RestElement: [\"argument\"],\n UpdateExpression: [\"argument\"],\n ObjectProperty: [\"value\"],\n AssignmentPattern: [\"left\"],\n ArrayPattern: [\"elements\"],\n ObjectPattern: [\"properties\"],\n VariableDeclaration: [\"declarations\"],\n VariableDeclarator: [\"id\"]\n};\ngetBindingIdentifiers.keys = keys;\n\nfunction getOuterBindingIdentifiers(node, duplicates) {\n return getBindingIdentifiers(node, duplicates, true);\n}\n\nfunction getNameFromLiteralId(id) {\n if (isNullLiteral(id)) {\n return \"null\";\n }\n if (isRegExpLiteral(id)) {\n return `/${id.pattern}/${id.flags}`;\n }\n if (isTemplateLiteral(id)) {\n return id.quasis.map(quasi => quasi.value.raw).join(\"\");\n }\n if (id.value !== undefined) {\n return String(id.value);\n }\n return null;\n}\nfunction getObjectMemberKey(node) {\n if (!node.computed || isLiteral(node.key)) {\n return node.key;\n }\n return null;\n}\nfunction getFunctionName(node, parent) {\n if (\"id\" in node && node.id) {\n return {\n name: node.id.name,\n originalNode: node.id\n };\n }\n let prefix = \"\";\n let id;\n if (isObjectProperty(parent, {\n value: node\n })) {\n id = getObjectMemberKey(parent);\n } else if (isObjectMethod(node) || isClassMethod(node)) {\n id = getObjectMemberKey(node);\n if (node.kind === \"get\") prefix = \"get \";else if (node.kind === \"set\") prefix = \"set \";\n } else if (isVariableDeclarator(parent) && parent.init === node) {\n id = parent.id;\n } else if (isAssignmentExpression(parent, {\n operator: \"=\",\n right: node\n })) {\n id = parent.left;\n }\n if (!id) return null;\n const name = isLiteral(id) ? getNameFromLiteralId(id) : isIdentifier(id) ? id.name : isPrivateName(id) ? id.id.name : null;\n if (name == null) return null;\n return {\n name: prefix + name,\n originalNode: id\n };\n}\n\nfunction traverse(node, handlers, state) {\n if (typeof handlers === \"function\") {\n handlers = {\n enter: handlers\n };\n }\n const {\n enter,\n exit\n } = handlers;\n traverseSimpleImpl(node, enter, exit, state, []);\n}\nfunction traverseSimpleImpl(node, enter, exit, state, ancestors) {\n const keys = VISITOR_KEYS[node.type];\n if (!keys) return;\n if (enter) enter(node, ancestors, state);\n for (const key of keys) {\n const subNode = node[key];\n if (Array.isArray(subNode)) {\n for (let i = 0; i < subNode.length; i++) {\n const child = subNode[i];\n if (!child) continue;\n ancestors.push({\n node,\n key,\n index: i\n });\n traverseSimpleImpl(child, enter, exit, state, ancestors);\n ancestors.pop();\n }\n } else if (subNode) {\n ancestors.push({\n node,\n key\n });\n traverseSimpleImpl(subNode, enter, exit, state, ancestors);\n ancestors.pop();\n }\n }\n if (exit) exit(node, ancestors, state);\n}\n\nfunction isBinding(node, parent, grandparent) {\n if (grandparent && node.type === \"Identifier\" && parent.type === \"ObjectProperty\" && grandparent.type === \"ObjectExpression\") {\n return false;\n }\n const keys = getBindingIdentifiers.keys[parent.type];\n if (keys) {\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const val = parent[key];\n if (Array.isArray(val)) {\n if (val.includes(node)) return true;\n } else {\n if (val === node) return true;\n }\n }\n }\n return false;\n}\n\nfunction isLet(node) {\n return isVariableDeclaration(node) && node.kind !== \"var\";\n}\n\nfunction isBlockScoped(node) {\n return isFunctionDeclaration(node) || isClassDeclaration(node) || isLet(node);\n}\n\nfunction isImmutable(node) {\n if (isType(node.type, \"Immutable\")) return true;\n if (isIdentifier(node)) {\n if (node.name === \"undefined\") {\n return true;\n } else {\n return false;\n }\n }\n return false;\n}\n\nfunction isNodesEquivalent(a, b) {\n if (typeof a !== \"object\" || typeof b !== \"object\" || a == null || b == null) {\n return a === b;\n }\n if (a.type !== b.type) {\n return false;\n }\n const fields = Object.keys(NODE_FIELDS$1[a.type] || a.type);\n const visitorKeys = VISITOR_KEYS[a.type];\n for (const field of fields) {\n const val_a = a[field];\n const val_b = b[field];\n if (typeof val_a !== typeof val_b) {\n return false;\n }\n if (val_a == null && val_b == null) {\n continue;\n } else if (val_a == null || val_b == null) {\n return false;\n }\n if (Array.isArray(val_a)) {\n if (!Array.isArray(val_b)) {\n return false;\n }\n if (val_a.length !== val_b.length) {\n return false;\n }\n for (let i = 0; i < val_a.length; i++) {\n if (!isNodesEquivalent(val_a[i], val_b[i])) {\n return false;\n }\n }\n continue;\n }\n if (typeof val_a === \"object\" && !visitorKeys?.includes(field)) {\n for (const key of Object.keys(val_a)) {\n if (val_a[key] !== val_b[key]) {\n return false;\n }\n }\n continue;\n }\n if (!isNodesEquivalent(val_a, val_b)) {\n return false;\n }\n }\n return true;\n}\n\nfunction isReferenced(node, parent, grandparent) {\n switch (parent.type) {\n case \"MemberExpression\":\n case \"OptionalMemberExpression\":\n if (parent.property === node) {\n return !!parent.computed;\n }\n return parent.object === node;\n case \"JSXMemberExpression\":\n return parent.object === node;\n case \"VariableDeclarator\":\n return parent.init === node;\n case \"ArrowFunctionExpression\":\n return parent.body === node;\n case \"PrivateName\":\n return false;\n case \"ClassMethod\":\n case \"ClassPrivateMethod\":\n case \"ObjectMethod\":\n if (parent.key === node) {\n return !!parent.computed;\n }\n return false;\n case \"ObjectProperty\":\n if (parent.key === node) {\n return !!parent.computed;\n }\n return grandparent?.type !== \"ObjectPattern\";\n case \"ClassProperty\":\n case \"ClassAccessorProperty\":\n if (parent.key === node) {\n return !!parent.computed;\n }\n return true;\n case \"ClassPrivateProperty\":\n return parent.key !== node;\n case \"ClassDeclaration\":\n case \"ClassExpression\":\n return parent.superClass === node;\n case \"AssignmentExpression\":\n return parent.right === node;\n case \"AssignmentPattern\":\n return parent.right === node;\n case \"LabeledStatement\":\n return false;\n case \"CatchClause\":\n return false;\n case \"RestElement\":\n return false;\n case \"BreakStatement\":\n case \"ContinueStatement\":\n return false;\n case \"FunctionDeclaration\":\n case \"FunctionExpression\":\n return false;\n case \"ExportNamespaceSpecifier\":\n case \"ExportDefaultSpecifier\":\n return false;\n case \"ExportSpecifier\":\n if (grandparent?.source) {\n return false;\n }\n return parent.local === node;\n case \"ImportDefaultSpecifier\":\n case \"ImportNamespaceSpecifier\":\n case \"ImportSpecifier\":\n return false;\n case \"ImportAttribute\":\n return false;\n case \"JSXAttribute\":\n return false;\n case \"ObjectPattern\":\n case \"ArrayPattern\":\n return false;\n case \"MetaProperty\":\n return false;\n case \"ObjectTypeProperty\":\n return parent.key !== node;\n case \"TSEnumMember\":\n return parent.id !== node;\n case \"TSPropertySignature\":\n if (parent.key === node) {\n return !!parent.computed;\n }\n return true;\n }\n return true;\n}\n\nfunction isScope(node, parent) {\n if (isBlockStatement(node) && (isFunction(parent) || isCatchClause(parent))) {\n return false;\n }\n if (isPattern(node) && (isFunction(parent) || isCatchClause(parent))) {\n return true;\n }\n return isScopable(node);\n}\n\nfunction isSpecifierDefault(specifier) {\n return isImportDefaultSpecifier(specifier) || isIdentifier(specifier.imported || specifier.exported, {\n name: \"default\"\n });\n}\n\nconst RESERVED_WORDS_ES3_ONLY = new Set([\"abstract\", \"boolean\", \"byte\", \"char\", \"double\", \"enum\", \"final\", \"float\", \"goto\", \"implements\", \"int\", \"interface\", \"long\", \"native\", \"package\", \"private\", \"protected\", \"public\", \"short\", \"static\", \"synchronized\", \"throws\", \"transient\", \"volatile\"]);\nfunction isValidES3Identifier(name) {\n return isValidIdentifier(name) && !RESERVED_WORDS_ES3_ONLY.has(name);\n}\n\nfunction isVar(node) {\n return isVariableDeclaration(node) && node.kind === \"var\";\n}\n\nconst react = {\n isReactComponent,\n isCompatTag,\n buildChildren\n};\n\nexport { ACCESSOR_TYPES, ALIAS_KEYS, ASSIGNMENT_OPERATORS, AnyTypeAnnotation, ArgumentPlaceholder, ArrayExpression, ArrayPattern, ArrayTypeAnnotation, ArrowFunctionExpression, AssignmentExpression, AssignmentPattern, AwaitExpression, BINARY_OPERATORS, BINARY_TYPES, BLOCKPARENT_TYPES, BLOCK_TYPES, BOOLEAN_BINARY_OPERATORS, BOOLEAN_NUMBER_BINARY_OPERATORS, BOOLEAN_UNARY_OPERATORS, BUILDER_KEYS, BigIntLiteral, BigIntLiteralTypeAnnotation, BinaryExpression, BindExpression, BlockStatement, BooleanLiteral, BooleanLiteralTypeAnnotation, BooleanTypeAnnotation, BreakStatement, CLASS_TYPES, COMMENT_KEYS, COMPARISON_BINARY_OPERATORS, COMPLETIONSTATEMENT_TYPES, CONDITIONAL_TYPES, CallExpression, CatchClause, ClassAccessorProperty, ClassBody, ClassDeclaration, ClassExpression, ClassImplements, ClassMethod, ClassPrivateMethod, ClassPrivateProperty, ClassProperty, ConditionalExpression, ContinueStatement, DECLARATION_TYPES, DEPRECATED_ALIASES, DEPRECATED_KEYS, DebuggerStatement, DeclareClass, DeclareExportAllDeclaration, DeclareExportDeclaration, DeclareFunction, DeclareInterface, DeclareModule, DeclareModuleExports, DeclareOpaqueType, DeclareTypeAlias, DeclareVariable, DeclaredPredicate, Decorator, Directive, DirectiveLiteral, DoExpression, DoWhileStatement, ENUMBODY_TYPES, ENUMMEMBER_TYPES, EQUALITY_BINARY_OPERATORS, EXPORTDECLARATION_TYPES, EXPRESSIONWRAPPER_TYPES, EXPRESSION_TYPES, EmptyStatement, EmptyTypeAnnotation, EnumBooleanBody, EnumBooleanMember, EnumDeclaration, EnumDefaultedMember, EnumNumberBody, EnumNumberMember, EnumStringBody, EnumStringMember, EnumSymbolBody, ExistsTypeAnnotation, ExportAllDeclaration, ExportDefaultDeclaration, ExportDefaultSpecifier, ExportNamedDeclaration, ExportNamespaceSpecifier, ExportSpecifier, ExpressionStatement, FLATTENABLE_KEYS, FLIPPED_ALIAS_KEYS, FLOWBASEANNOTATION_TYPES, FLOWDECLARATION_TYPES, FLOWPREDICATE_TYPES, FLOWTYPE_TYPES, FLOW_TYPES, FORXSTATEMENT_TYPES, FOR_INIT_KEYS, FOR_TYPES, FUNCTIONPARAMETER_TYPES, FUNCTIONPARENT_TYPES, FUNCTION_TYPES, File, ForInStatement, ForOfStatement, ForStatement, FunctionDeclaration, FunctionExpression, FunctionTypeAnnotation, FunctionTypeParam, GenericTypeAnnotation, IMMUTABLE_TYPES, IMPORTOREXPORTDECLARATION_TYPES, INHERIT_KEYS, Identifier, IfStatement, Import, ImportAttribute, ImportDeclaration, ImportDefaultSpecifier, ImportExpression, ImportNamespaceSpecifier, ImportSpecifier, IndexedAccessType, InferredPredicate, InterfaceDeclaration, InterfaceExtends, InterfaceTypeAnnotation, InterpreterDirective, IntersectionTypeAnnotation, JSXAttribute, JSXClosingElement, JSXClosingFragment, JSXElement, JSXEmptyExpression, JSXExpressionContainer, JSXFragment, JSXIdentifier, JSXMemberExpression, JSXNamespacedName, JSXOpeningElement, JSXOpeningFragment, JSXSpreadAttribute, JSXSpreadChild, JSXText, JSX_TYPES, LITERAL_TYPES, LOGICAL_OPERATORS, LOOP_TYPES, LVAL_TYPES, LabeledStatement, LogicalExpression, METHOD_TYPES, MISCELLANEOUS_TYPES, MODULEDECLARATION_TYPES, MODULESPECIFIER_TYPES, MemberExpression, MetaProperty, MixedTypeAnnotation, ModuleExpression, NODE_FIELDS$1 as NODE_FIELDS, NODE_PARENT_VALIDATIONS, NODE_UNION_SHAPES__PRIVATE, NUMBER_BINARY_OPERATORS, NUMBER_UNARY_OPERATORS, NewExpression, NullLiteral, NullLiteralTypeAnnotation, NullableTypeAnnotation, NumberLiteralTypeAnnotation, NumberTypeAnnotation, NumericLiteral, OBJECTMEMBER_TYPES, ObjectExpression, ObjectMethod, ObjectPattern, ObjectProperty, ObjectTypeAnnotation, ObjectTypeCallProperty, ObjectTypeIndexer, ObjectTypeInternalSlot, ObjectTypeProperty, ObjectTypeSpreadProperty, OpaqueType, OptionalCallExpression, OptionalIndexedAccessType, OptionalMemberExpression, PATTERNLIKE_TYPES, PATTERN_TYPES, PLACEHOLDERS, PLACEHOLDERS_ALIAS, PLACEHOLDERS_FLIPPED_ALIAS, PRIVATE_TYPES, PROPERTY_TYPES, PUREISH_TYPES, ParenthesizedExpression, Placeholder, PrivateName, Program, QualifiedTypeIdentifier, RegExpLiteral, RestElement, ReturnStatement, SCOPABLE_TYPES, STANDARDIZED_TYPES, STATEMENT_OR_BLOCK_KEYS, STATEMENT_TYPES, STRING_UNARY_OPERATORS, SequenceExpression, SpreadElement, StaticBlock, StringLiteral, StringLiteralTypeAnnotation, StringTypeAnnotation, Super, SwitchCase, SwitchStatement, SymbolTypeAnnotation, TERMINATORLESS_TYPES, TSAnyKeyword, TSArrayType, TSAsExpression, TSBASETYPE_TYPES, TSBigIntKeyword, TSBooleanKeyword, TSCallSignatureDeclaration, TSClassImplements, TSConditionalType, TSConstructSignatureDeclaration, TSConstructorType, TSDeclareFunction, TSDeclareMethod, TSENTITYNAME_TYPES, TSEnumBody, TSEnumDeclaration, TSEnumMember, TSExportAssignment, TSExternalModuleReference, TSFunctionType, TSImportEqualsDeclaration, TSImportType, TSIndexSignature, TSIndexedAccessType, TSInferType, TSInstantiationExpression, TSInterfaceBody, TSInterfaceDeclaration, TSInterfaceHeritage, TSIntersectionType, TSIntrinsicKeyword, TSLiteralType, TSMappedType, TSMethodSignature, TSModuleBlock, TSModuleDeclaration, TSNamedTupleMember, TSNamespaceExportDeclaration, TSNeverKeyword, TSNonNullExpression, TSNullKeyword, TSNumberKeyword, TSObjectKeyword, TSOptionalType, TSParameterProperty, TSParenthesizedType, TSPropertySignature, TSQualifiedName, TSRestType, TSSatisfiesExpression, TSStringKeyword, TSSymbolKeyword, TSTYPEELEMENT_TYPES, TSTYPE_TYPES, TSTemplateLiteralType, TSThisType, TSTupleType, TSTypeAliasDeclaration, TSTypeAnnotation, TSTypeAssertion, TSTypeLiteral, TSTypeOperator, TSTypeParameter, TSTypeParameterDeclaration, TSTypeParameterInstantiation, TSTypePredicate, TSTypeQuery, TSTypeReference, TSUndefinedKeyword, TSUnionType, TSUnknownKeyword, TSVoidKeyword, TYPES, TYPESCRIPT_TYPES, TaggedTemplateExpression, TemplateElement, TemplateLiteral, ThisExpression, ThisTypeAnnotation, ThrowStatement, TopicReference, TryStatement, TupleTypeAnnotation, TypeAlias, TypeAnnotation, TypeCastExpression, TypeParameter, TypeParameterDeclaration, TypeParameterInstantiation, TypeofTypeAnnotation, UNARYLIKE_TYPES, UNARY_OPERATORS, UPDATE_OPERATORS, USERWHITESPACABLE_TYPES, UnaryExpression, UnionTypeAnnotation, UpdateExpression, V8IntrinsicIdentifier, VISITOR_KEYS, VariableDeclaration, VariableDeclarator, Variance, VoidPattern, VoidTypeAnnotation, WHILE_TYPES, WhileStatement, WithStatement, YieldExpression, deprecationWarning as __internal__deprecationWarning, addComment, addComments, anyTypeAnnotation, appendToMemberExpression, argumentPlaceholder, arrayExpression, arrayPattern, arrayTypeAnnotation, arrowFunctionExpression, assertAccessor, assertAnyTypeAnnotation, assertArgumentPlaceholder, assertArrayExpression, assertArrayPattern, assertArrayTypeAnnotation, assertArrowFunctionExpression, assertAssignmentExpression, assertAssignmentPattern, assertAwaitExpression, assertBigIntLiteral, assertBigIntLiteralTypeAnnotation, assertBinary, assertBinaryExpression, assertBindExpression, assertBlock, assertBlockParent, assertBlockStatement, assertBooleanLiteral, assertBooleanLiteralTypeAnnotation, assertBooleanTypeAnnotation, assertBreakStatement, assertCallExpression, assertCatchClause, assertClass, assertClassAccessorProperty, assertClassBody, assertClassDeclaration, assertClassExpression, assertClassImplements, assertClassMethod, assertClassPrivateMethod, assertClassPrivateProperty, assertClassProperty, assertCompletionStatement, assertConditional, assertConditionalExpression, assertContinueStatement, assertDebuggerStatement, assertDeclaration, assertDeclareClass, assertDeclareExportAllDeclaration, assertDeclareExportDeclaration, assertDeclareFunction, assertDeclareInterface, assertDeclareModule, assertDeclareModuleExports, assertDeclareOpaqueType, assertDeclareTypeAlias, assertDeclareVariable, assertDeclaredPredicate, assertDecorator, assertDirective, assertDirectiveLiteral, assertDoExpression, assertDoWhileStatement, assertEmptyStatement, assertEmptyTypeAnnotation, assertEnumBody, assertEnumBooleanBody, assertEnumBooleanMember, assertEnumDeclaration, assertEnumDefaultedMember, assertEnumMember, assertEnumNumberBody, assertEnumNumberMember, assertEnumStringBody, assertEnumStringMember, assertEnumSymbolBody, assertExistsTypeAnnotation, assertExportAllDeclaration, assertExportDeclaration, assertExportDefaultDeclaration, assertExportDefaultSpecifier, assertExportNamedDeclaration, assertExportNamespaceSpecifier, assertExportSpecifier, assertExpression, assertExpressionStatement, assertExpressionWrapper, assertFile, assertFlow, assertFlowBaseAnnotation, assertFlowDeclaration, assertFlowPredicate, assertFlowType, assertFor, assertForInStatement, assertForOfStatement, assertForStatement, assertForXStatement, assertFunction, assertFunctionDeclaration, assertFunctionExpression, assertFunctionParameter, assertFunctionParent, assertFunctionTypeAnnotation, assertFunctionTypeParam, assertGenericTypeAnnotation, assertIdentifier, assertIfStatement, assertImmutable, assertImport, assertImportAttribute, assertImportDeclaration, assertImportDefaultSpecifier, assertImportExpression, assertImportNamespaceSpecifier, assertImportOrExportDeclaration, assertImportSpecifier, assertIndexedAccessType, assertInferredPredicate, assertInterfaceDeclaration, assertInterfaceExtends, assertInterfaceTypeAnnotation, assertInterpreterDirective, assertIntersectionTypeAnnotation, assertJSX, assertJSXAttribute, assertJSXClosingElement, assertJSXClosingFragment, assertJSXElement, assertJSXEmptyExpression, assertJSXExpressionContainer, assertJSXFragment, assertJSXIdentifier, assertJSXMemberExpression, assertJSXNamespacedName, assertJSXOpeningElement, assertJSXOpeningFragment, assertJSXSpreadAttribute, assertJSXSpreadChild, assertJSXText, assertLVal, assertLabeledStatement, assertLiteral, assertLogicalExpression, assertLoop, assertMemberExpression, assertMetaProperty, assertMethod, assertMiscellaneous, assertMixedTypeAnnotation, assertModuleDeclaration, assertModuleExpression, assertModuleSpecifier, assertNewExpression, assertNode, assertNullLiteral, assertNullLiteralTypeAnnotation, assertNullableTypeAnnotation, assertNumberLiteral, assertNumberLiteralTypeAnnotation, assertNumberTypeAnnotation, assertNumericLiteral, assertObjectExpression, assertObjectMember, assertObjectMethod, assertObjectPattern, assertObjectProperty, assertObjectTypeAnnotation, assertObjectTypeCallProperty, assertObjectTypeIndexer, assertObjectTypeInternalSlot, assertObjectTypeProperty, assertObjectTypeSpreadProperty, assertOpaqueType, assertOptionalCallExpression, assertOptionalIndexedAccessType, assertOptionalMemberExpression, assertParenthesizedExpression, assertPattern, assertPatternLike, assertPlaceholder, assertPrivate, assertPrivateName, assertProgram, assertProperty, assertPureish, assertQualifiedTypeIdentifier, assertRegExpLiteral, assertRegexLiteral, assertRestElement, assertRestProperty, assertReturnStatement, assertScopable, assertSequenceExpression, assertSpreadElement, assertSpreadProperty, assertStandardized, assertStatement, assertStaticBlock, assertStringLiteral, assertStringLiteralTypeAnnotation, assertStringTypeAnnotation, assertSuper, assertSwitchCase, assertSwitchStatement, assertSymbolTypeAnnotation, assertTSAnyKeyword, assertTSArrayType, assertTSAsExpression, assertTSBaseType, assertTSBigIntKeyword, assertTSBooleanKeyword, assertTSCallSignatureDeclaration, assertTSClassImplements, assertTSConditionalType, assertTSConstructSignatureDeclaration, assertTSConstructorType, assertTSDeclareFunction, assertTSDeclareMethod, assertTSEntityName, assertTSEnumBody, assertTSEnumDeclaration, assertTSEnumMember, assertTSExportAssignment, assertTSExternalModuleReference, assertTSFunctionType, assertTSImportEqualsDeclaration, assertTSImportType, assertTSIndexSignature, assertTSIndexedAccessType, assertTSInferType, assertTSInstantiationExpression, assertTSInterfaceBody, assertTSInterfaceDeclaration, assertTSInterfaceHeritage, assertTSIntersectionType, assertTSIntrinsicKeyword, assertTSLiteralType, assertTSMappedType, assertTSMethodSignature, assertTSModuleBlock, assertTSModuleDeclaration, assertTSNamedTupleMember, assertTSNamespaceExportDeclaration, assertTSNeverKeyword, assertTSNonNullExpression, assertTSNullKeyword, assertTSNumberKeyword, assertTSObjectKeyword, assertTSOptionalType, assertTSParameterProperty, assertTSParenthesizedType, assertTSPropertySignature, assertTSQualifiedName, assertTSRestType, assertTSSatisfiesExpression, assertTSStringKeyword, assertTSSymbolKeyword, assertTSTemplateLiteralType, assertTSThisType, assertTSTupleType, assertTSType, assertTSTypeAliasDeclaration, assertTSTypeAnnotation, assertTSTypeAssertion, assertTSTypeElement, assertTSTypeLiteral, assertTSTypeOperator, assertTSTypeParameter, assertTSTypeParameterDeclaration, assertTSTypeParameterInstantiation, assertTSTypePredicate, assertTSTypeQuery, assertTSTypeReference, assertTSUndefinedKeyword, assertTSUnionType, assertTSUnknownKeyword, assertTSVoidKeyword, assertTaggedTemplateExpression, assertTemplateElement, assertTemplateLiteral, assertTerminatorless, assertThisExpression, assertThisTypeAnnotation, assertThrowStatement, assertTopicReference, assertTryStatement, assertTupleTypeAnnotation, assertTypeAlias, assertTypeAnnotation, assertTypeCastExpression, assertTypeParameter, assertTypeParameterDeclaration, assertTypeParameterInstantiation, assertTypeScript, assertTypeofTypeAnnotation, assertUnaryExpression, assertUnaryLike, assertUnionTypeAnnotation, assertUpdateExpression, assertUserWhitespacable, assertV8IntrinsicIdentifier, assertVariableDeclaration, assertVariableDeclarator, assertVariance, assertVoidPattern, assertVoidTypeAnnotation, assertWhile, assertWhileStatement, assertWithStatement, assertYieldExpression, assignmentExpression, assignmentPattern, awaitExpression, bigIntLiteral, bigIntLiteralTypeAnnotation, binaryExpression, bindExpression, blockStatement, booleanLiteral, booleanLiteralTypeAnnotation, booleanTypeAnnotation, breakStatement, buildMatchMemberExpression, buildUndefinedNode, callExpression, catchClause, classAccessorProperty, classBody, classDeclaration, classExpression, classImplements, classMethod, classPrivateMethod, classPrivateProperty, classProperty, clone, cloneDeep, cloneDeepWithoutLoc, cloneNode, cloneWithoutLoc, conditionalExpression, continueStatement, createFlowUnionType, createTSUnionType, createTypeAnnotationBasedOnTypeof, createFlowUnionType as createUnionTypeAnnotation, debuggerStatement, declareClass, declareExportAllDeclaration, declareExportDeclaration, declareFunction, declareInterface, declareModule, declareModuleExports, declareOpaqueType, declareTypeAlias, declareVariable, declaredPredicate, decorator, directive, directiveLiteral, doExpression, doWhileStatement, emptyStatement, emptyTypeAnnotation, ensureBlock, enumBooleanBody, enumBooleanMember, enumDeclaration, enumDefaultedMember, enumNumberBody, enumNumberMember, enumStringBody, enumStringMember, enumSymbolBody, existsTypeAnnotation, exportAllDeclaration, exportDefaultDeclaration, exportDefaultSpecifier, exportNamedDeclaration, exportNamespaceSpecifier, exportSpecifier, expressionStatement, file, forInStatement, forOfStatement, forStatement, functionDeclaration, functionExpression, functionTypeAnnotation, functionTypeParam, genericTypeAnnotation, getAssignmentIdentifiers, getBindingIdentifiers, getFunctionName, getOuterBindingIdentifiers, identifier, ifStatement, _import as import, importAttribute, importDeclaration, importDefaultSpecifier, importExpression, importNamespaceSpecifier, importSpecifier, indexedAccessType, inferredPredicate, inheritInnerComments, inheritLeadingComments, inheritTrailingComments, inherits, inheritsComments, interfaceDeclaration, interfaceExtends, interfaceTypeAnnotation, interpreterDirective, intersectionTypeAnnotation, is, isAccessor, isAnyTypeAnnotation, isArgumentPlaceholder, isArrayExpression, isArrayPattern, isArrayTypeAnnotation, isArrowFunctionExpression, isAssignmentExpression, isAssignmentPattern, isAwaitExpression, isBigIntLiteral, isBigIntLiteralTypeAnnotation, isBinary, isBinaryExpression, isBindExpression, isBinding, isBlock, isBlockParent, isBlockScoped, isBlockStatement, isBooleanLiteral, isBooleanLiteralTypeAnnotation, isBooleanTypeAnnotation, isBreakStatement, isCallExpression, isCatchClause, isClass, isClassAccessorProperty, isClassBody, isClassDeclaration, isClassExpression, isClassImplements, isClassMethod, isClassPrivateMethod, isClassPrivateProperty, isClassProperty, isCompletionStatement, isConditional, isConditionalExpression, isContinueStatement, isDebuggerStatement, isDeclaration, isDeclareClass, isDeclareExportAllDeclaration, isDeclareExportDeclaration, isDeclareFunction, isDeclareInterface, isDeclareModule, isDeclareModuleExports, isDeclareOpaqueType, isDeclareTypeAlias, isDeclareVariable, isDeclaredPredicate, isDecorator, isDirective, isDirectiveLiteral, isDoExpression, isDoWhileStatement, isEmptyStatement, isEmptyTypeAnnotation, isEnumBody, isEnumBooleanBody, isEnumBooleanMember, isEnumDeclaration, isEnumDefaultedMember, isEnumMember, isEnumNumberBody, isEnumNumberMember, isEnumStringBody, isEnumStringMember, isEnumSymbolBody, isExistsTypeAnnotation, isExportAllDeclaration, isExportDeclaration, isExportDefaultDeclaration, isExportDefaultSpecifier, isExportNamedDeclaration, isExportNamespaceSpecifier, isExportSpecifier, isExpression, isExpressionStatement, isExpressionWrapper, isFile, isFlow, isFlowBaseAnnotation, isFlowDeclaration, isFlowPredicate, isFlowType, isFor, isForInStatement, isForOfStatement, isForStatement, isForXStatement, isFunction, isFunctionDeclaration, isFunctionExpression, isFunctionParameter, isFunctionParent, isFunctionTypeAnnotation, isFunctionTypeParam, isGenericTypeAnnotation, isIdentifier, isIfStatement, isImmutable, isImport, isImportAttribute, isImportDeclaration, isImportDefaultSpecifier, isImportExpression, isImportNamespaceSpecifier, isImportOrExportDeclaration, isImportSpecifier, isIndexedAccessType, isInferredPredicate, isInterfaceDeclaration, isInterfaceExtends, isInterfaceTypeAnnotation, isInterpreterDirective, isIntersectionTypeAnnotation, isJSX, isJSXAttribute, isJSXClosingElement, isJSXClosingFragment, isJSXElement, isJSXEmptyExpression, isJSXExpressionContainer, isJSXFragment, isJSXIdentifier, isJSXMemberExpression, isJSXNamespacedName, isJSXOpeningElement, isJSXOpeningFragment, isJSXSpreadAttribute, isJSXSpreadChild, isJSXText, isLVal, isLabeledStatement, isLet, isLiteral, isLogicalExpression, isLoop, isMemberExpression, isMetaProperty, isMethod, isMiscellaneous, isMixedTypeAnnotation, isModuleDeclaration, isModuleExpression, isModuleSpecifier, isNewExpression, isNode, isNodesEquivalent, isNullLiteral, isNullLiteralTypeAnnotation, isNullableTypeAnnotation, isNumberLiteral, isNumberLiteralTypeAnnotation, isNumberTypeAnnotation, isNumericLiteral, isObjectExpression, isObjectMember, isObjectMethod, isObjectPattern, isObjectProperty, isObjectTypeAnnotation, isObjectTypeCallProperty, isObjectTypeIndexer, isObjectTypeInternalSlot, isObjectTypeProperty, isObjectTypeSpreadProperty, isOpaqueType, isOptionalCallExpression, isOptionalIndexedAccessType, isOptionalMemberExpression, isParenthesizedExpression, isPattern, isPatternLike, isPlaceholder, isPlaceholderType, isPrivate, isPrivateName, isProgram, isProperty, isPureish, isQualifiedTypeIdentifier, isReferenced, isRegExpLiteral, isRegexLiteral, isRestElement, isRestProperty, isReturnStatement, isScopable, isScope, isSequenceExpression, isSpecifierDefault, isSpreadElement, isSpreadProperty, isStandardized, isStatement, isStaticBlock, isStringLiteral, isStringLiteralTypeAnnotation, isStringTypeAnnotation, isSuper, isSwitchCase, isSwitchStatement, isSymbolTypeAnnotation, isTSAnyKeyword, isTSArrayType, isTSAsExpression, isTSBaseType, isTSBigIntKeyword, isTSBooleanKeyword, isTSCallSignatureDeclaration, isTSClassImplements, isTSConditionalType, isTSConstructSignatureDeclaration, isTSConstructorType, isTSDeclareFunction, isTSDeclareMethod, isTSEntityName, isTSEnumBody, isTSEnumDeclaration, isTSEnumMember, isTSExportAssignment, isTSExternalModuleReference, isTSFunctionType, isTSImportEqualsDeclaration, isTSImportType, isTSIndexSignature, isTSIndexedAccessType, isTSInferType, isTSInstantiationExpression, isTSInterfaceBody, isTSInterfaceDeclaration, isTSInterfaceHeritage, isTSIntersectionType, isTSIntrinsicKeyword, isTSLiteralType, isTSMappedType, isTSMethodSignature, isTSModuleBlock, isTSModuleDeclaration, isTSNamedTupleMember, isTSNamespaceExportDeclaration, isTSNeverKeyword, isTSNonNullExpression, isTSNullKeyword, isTSNumberKeyword, isTSObjectKeyword, isTSOptionalType, isTSParameterProperty, isTSParenthesizedType, isTSPropertySignature, isTSQualifiedName, isTSRestType, isTSSatisfiesExpression, isTSStringKeyword, isTSSymbolKeyword, isTSTemplateLiteralType, isTSThisType, isTSTupleType, isTSType, isTSTypeAliasDeclaration, isTSTypeAnnotation, isTSTypeAssertion, isTSTypeElement, isTSTypeLiteral, isTSTypeOperator, isTSTypeParameter, isTSTypeParameterDeclaration, isTSTypeParameterInstantiation, isTSTypePredicate, isTSTypeQuery, isTSTypeReference, isTSUndefinedKeyword, isTSUnionType, isTSUnknownKeyword, isTSVoidKeyword, isTaggedTemplateExpression, isTemplateElement, isTemplateLiteral, isTerminatorless, isThisExpression, isThisTypeAnnotation, isThrowStatement, isTopicReference, isTryStatement, isTupleTypeAnnotation, isType, isTypeAlias, isTypeAnnotation, isTypeCastExpression, isTypeParameter, isTypeParameterDeclaration, isTypeParameterInstantiation, isTypeScript, isTypeofTypeAnnotation, isUnaryExpression, isUnaryLike, isUnionTypeAnnotation, isUpdateExpression, isUserWhitespacable, isV8IntrinsicIdentifier, isValidES3Identifier, isValidIdentifier, isVar, isVariableDeclaration, isVariableDeclarator, isVariance, isVoidPattern, isVoidTypeAnnotation, isWhile, isWhileStatement, isWithStatement, isYieldExpression, jsxAttribute, jsxClosingElement, jsxClosingFragment, jsxElement, jsxEmptyExpression, jsxExpressionContainer, jsxFragment, jsxIdentifier, jsxMemberExpression, jsxNamespacedName, jsxOpeningElement, jsxOpeningFragment, jsxSpreadAttribute, jsxSpreadChild, jsxText, labeledStatement, logicalExpression, matchesPattern, memberExpression, metaProperty, mixedTypeAnnotation, moduleExpression, newExpression, nullLiteral, nullLiteralTypeAnnotation, nullableTypeAnnotation, NumberLiteral as numberLiteral, numberLiteralTypeAnnotation, numberTypeAnnotation, numericLiteral, objectExpression, objectMethod, objectPattern, objectProperty, objectTypeAnnotation, objectTypeCallProperty, objectTypeIndexer, objectTypeInternalSlot, objectTypeProperty, objectTypeSpreadProperty, opaqueType, optionalCallExpression, optionalIndexedAccessType, optionalMemberExpression, parenthesizedExpression, placeholder, prependToMemberExpression, privateName, program, qualifiedTypeIdentifier, react, regExpLiteral, RegexLiteral as regexLiteral, removeComments, removeProperties, removePropertiesDeep, removeTypeDuplicates$1 as removeTypeDuplicates, restElement, RestProperty as restProperty, returnStatement, sequenceExpression, shallowEqual, spreadElement, SpreadProperty as spreadProperty, staticBlock, stringLiteral, stringLiteralTypeAnnotation, stringTypeAnnotation, _super as super, switchCase, switchStatement, symbolTypeAnnotation, taggedTemplateExpression, templateElement, templateLiteral, thisExpression, thisTypeAnnotation, throwStatement, toBindingIdentifierName, toBlock, toComputedKey, toExpression, toIdentifier, toKeyAlias, toStatement, topicReference, traverse, traverseFast, tryStatement, tsAnyKeyword, tsArrayType, tsAsExpression, tsBigIntKeyword, tsBooleanKeyword, tsCallSignatureDeclaration, tsClassImplements, tsConditionalType, tsConstructSignatureDeclaration, tsConstructorType, tsDeclareFunction, tsDeclareMethod, tsEnumBody, tsEnumDeclaration, tsEnumMember, tsExportAssignment, tsExternalModuleReference, tsFunctionType, tsImportEqualsDeclaration, tsImportType, tsIndexSignature, tsIndexedAccessType, tsInferType, tsInstantiationExpression, tsInterfaceBody, tsInterfaceDeclaration, tsInterfaceHeritage, tsIntersectionType, tsIntrinsicKeyword, tsLiteralType, tsMappedType, tsMethodSignature, tsModuleBlock, tsModuleDeclaration, tsNamedTupleMember, tsNamespaceExportDeclaration, tsNeverKeyword, tsNonNullExpression, tsNullKeyword, tsNumberKeyword, tsObjectKeyword, tsOptionalType, tsParameterProperty, tsParenthesizedType, tsPropertySignature, tsQualifiedName, tsRestType, tsSatisfiesExpression, tsStringKeyword, tsSymbolKeyword, tsTemplateLiteralType, tsThisType, tsTupleType, tsTypeAliasDeclaration, tsTypeAnnotation, tsTypeAssertion, tsTypeLiteral, tsTypeOperator, tsTypeParameter, tsTypeParameterDeclaration, tsTypeParameterInstantiation, tsTypePredicate, tsTypeQuery, tsTypeReference, tsUndefinedKeyword, tsUnionType, tsUnknownKeyword, tsVoidKeyword, tupleTypeAnnotation, typeAlias, typeAnnotation, typeCastExpression, typeParameter, typeParameterDeclaration, typeParameterInstantiation, typeofTypeAnnotation, unaryExpression, unionTypeAnnotation, updateExpression, v8IntrinsicIdentifier, validate$1 as validate, valueToNode, variableDeclaration, variableDeclarator, variance, voidPattern, voidTypeAnnotation, whileStatement, withStatement, yieldExpression };\n//# sourceMappingURL=index.js.map\n","// src/vlq.ts\nvar comma = \",\".charCodeAt(0);\nvar semicolon = \";\".charCodeAt(0);\nvar chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nvar intToChar = new Uint8Array(64);\nvar charToInt = new Uint8Array(128);\nfor (let i = 0; i < chars.length; i++) {\n const c = chars.charCodeAt(i);\n intToChar[i] = c;\n charToInt[c] = i;\n}\nfunction decodeInteger(reader, relative) {\n let value = 0;\n let shift = 0;\n let integer = 0;\n do {\n const c = reader.next();\n integer = charToInt[c];\n value |= (integer & 31) << shift;\n shift += 5;\n } while (integer & 32);\n const shouldNegate = value & 1;\n value >>>= 1;\n if (shouldNegate) {\n value = -2147483648 | -value;\n }\n return relative + value;\n}\nfunction encodeInteger(builder, num, relative) {\n let delta = num - relative;\n delta = delta < 0 ? -delta << 1 | 1 : delta << 1;\n do {\n let clamped = delta & 31;\n delta >>>= 5;\n if (delta > 0) clamped |= 32;\n builder.write(intToChar[clamped]);\n } while (delta > 0);\n return num;\n}\nfunction hasMoreVlq(reader, max) {\n if (reader.pos >= max) return false;\n return reader.peek() !== comma;\n}\n\n// src/strings.ts\nvar bufLength = 1024 * 16;\nvar td = typeof TextDecoder !== \"undefined\" ? /* @__PURE__ */ new TextDecoder() : typeof Buffer !== \"undefined\" ? {\n decode(buf) {\n const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength);\n return out.toString();\n }\n} : {\n decode(buf) {\n let out = \"\";\n for (let i = 0; i < buf.length; i++) {\n out += String.fromCharCode(buf[i]);\n }\n return out;\n }\n};\nvar StringWriter = class {\n constructor() {\n this.pos = 0;\n this.out = \"\";\n this.buffer = new Uint8Array(bufLength);\n }\n write(v) {\n const { buffer } = this;\n buffer[this.pos++] = v;\n if (this.pos === bufLength) {\n this.out += td.decode(buffer);\n this.pos = 0;\n }\n }\n flush() {\n const { buffer, out, pos } = this;\n return pos > 0 ? out + td.decode(buffer.subarray(0, pos)) : out;\n }\n};\nvar StringReader = class {\n constructor(buffer) {\n this.pos = 0;\n this.buffer = buffer;\n }\n next() {\n return this.buffer.charCodeAt(this.pos++);\n }\n peek() {\n return this.buffer.charCodeAt(this.pos);\n }\n indexOf(char) {\n const { buffer, pos } = this;\n const idx = buffer.indexOf(char, pos);\n return idx === -1 ? buffer.length : idx;\n }\n};\n\n// src/scopes.ts\nvar EMPTY = [];\nfunction decodeOriginalScopes(input) {\n const { length } = input;\n const reader = new StringReader(input);\n const scopes = [];\n const stack = [];\n let line = 0;\n for (; reader.pos < length; reader.pos++) {\n line = decodeInteger(reader, line);\n const column = decodeInteger(reader, 0);\n if (!hasMoreVlq(reader, length)) {\n const last = stack.pop();\n last[2] = line;\n last[3] = column;\n continue;\n }\n const kind = decodeInteger(reader, 0);\n const fields = decodeInteger(reader, 0);\n const hasName = fields & 1;\n const scope = hasName ? [line, column, 0, 0, kind, decodeInteger(reader, 0)] : [line, column, 0, 0, kind];\n let vars = EMPTY;\n if (hasMoreVlq(reader, length)) {\n vars = [];\n do {\n const varsIndex = decodeInteger(reader, 0);\n vars.push(varsIndex);\n } while (hasMoreVlq(reader, length));\n }\n scope.vars = vars;\n scopes.push(scope);\n stack.push(scope);\n }\n return scopes;\n}\nfunction encodeOriginalScopes(scopes) {\n const writer = new StringWriter();\n for (let i = 0; i < scopes.length; ) {\n i = _encodeOriginalScopes(scopes, i, writer, [0]);\n }\n return writer.flush();\n}\nfunction _encodeOriginalScopes(scopes, index, writer, state) {\n const scope = scopes[index];\n const { 0: startLine, 1: startColumn, 2: endLine, 3: endColumn, 4: kind, vars } = scope;\n if (index > 0) writer.write(comma);\n state[0] = encodeInteger(writer, startLine, state[0]);\n encodeInteger(writer, startColumn, 0);\n encodeInteger(writer, kind, 0);\n const fields = scope.length === 6 ? 1 : 0;\n encodeInteger(writer, fields, 0);\n if (scope.length === 6) encodeInteger(writer, scope[5], 0);\n for (const v of vars) {\n encodeInteger(writer, v, 0);\n }\n for (index++; index < scopes.length; ) {\n const next = scopes[index];\n const { 0: l, 1: c } = next;\n if (l > endLine || l === endLine && c >= endColumn) {\n break;\n }\n index = _encodeOriginalScopes(scopes, index, writer, state);\n }\n writer.write(comma);\n state[0] = encodeInteger(writer, endLine, state[0]);\n encodeInteger(writer, endColumn, 0);\n return index;\n}\nfunction decodeGeneratedRanges(input) {\n const { length } = input;\n const reader = new StringReader(input);\n const ranges = [];\n const stack = [];\n let genLine = 0;\n let definitionSourcesIndex = 0;\n let definitionScopeIndex = 0;\n let callsiteSourcesIndex = 0;\n let callsiteLine = 0;\n let callsiteColumn = 0;\n let bindingLine = 0;\n let bindingColumn = 0;\n do {\n const semi = reader.indexOf(\";\");\n let genColumn = 0;\n for (; reader.pos < semi; reader.pos++) {\n genColumn = decodeInteger(reader, genColumn);\n if (!hasMoreVlq(reader, semi)) {\n const last = stack.pop();\n last[2] = genLine;\n last[3] = genColumn;\n continue;\n }\n const fields = decodeInteger(reader, 0);\n const hasDefinition = fields & 1;\n const hasCallsite = fields & 2;\n const hasScope = fields & 4;\n let callsite = null;\n let bindings = EMPTY;\n let range;\n if (hasDefinition) {\n const defSourcesIndex = decodeInteger(reader, definitionSourcesIndex);\n definitionScopeIndex = decodeInteger(\n reader,\n definitionSourcesIndex === defSourcesIndex ? definitionScopeIndex : 0\n );\n definitionSourcesIndex = defSourcesIndex;\n range = [genLine, genColumn, 0, 0, defSourcesIndex, definitionScopeIndex];\n } else {\n range = [genLine, genColumn, 0, 0];\n }\n range.isScope = !!hasScope;\n if (hasCallsite) {\n const prevCsi = callsiteSourcesIndex;\n const prevLine = callsiteLine;\n callsiteSourcesIndex = decodeInteger(reader, callsiteSourcesIndex);\n const sameSource = prevCsi === callsiteSourcesIndex;\n callsiteLine = decodeInteger(reader, sameSource ? callsiteLine : 0);\n callsiteColumn = decodeInteger(\n reader,\n sameSource && prevLine === callsiteLine ? callsiteColumn : 0\n );\n callsite = [callsiteSourcesIndex, callsiteLine, callsiteColumn];\n }\n range.callsite = callsite;\n if (hasMoreVlq(reader, semi)) {\n bindings = [];\n do {\n bindingLine = genLine;\n bindingColumn = genColumn;\n const expressionsCount = decodeInteger(reader, 0);\n let expressionRanges;\n if (expressionsCount < -1) {\n expressionRanges = [[decodeInteger(reader, 0)]];\n for (let i = -1; i > expressionsCount; i--) {\n const prevBl = bindingLine;\n bindingLine = decodeInteger(reader, bindingLine);\n bindingColumn = decodeInteger(reader, bindingLine === prevBl ? bindingColumn : 0);\n const expression = decodeInteger(reader, 0);\n expressionRanges.push([expression, bindingLine, bindingColumn]);\n }\n } else {\n expressionRanges = [[expressionsCount]];\n }\n bindings.push(expressionRanges);\n } while (hasMoreVlq(reader, semi));\n }\n range.bindings = bindings;\n ranges.push(range);\n stack.push(range);\n }\n genLine++;\n reader.pos = semi + 1;\n } while (reader.pos < length);\n return ranges;\n}\nfunction encodeGeneratedRanges(ranges) {\n if (ranges.length === 0) return \"\";\n const writer = new StringWriter();\n for (let i = 0; i < ranges.length; ) {\n i = _encodeGeneratedRanges(ranges, i, writer, [0, 0, 0, 0, 0, 0, 0]);\n }\n return writer.flush();\n}\nfunction _encodeGeneratedRanges(ranges, index, writer, state) {\n const range = ranges[index];\n const {\n 0: startLine,\n 1: startColumn,\n 2: endLine,\n 3: endColumn,\n isScope,\n callsite,\n bindings\n } = range;\n if (state[0] < startLine) {\n catchupLine(writer, state[0], startLine);\n state[0] = startLine;\n state[1] = 0;\n } else if (index > 0) {\n writer.write(comma);\n }\n state[1] = encodeInteger(writer, range[1], state[1]);\n const fields = (range.length === 6 ? 1 : 0) | (callsite ? 2 : 0) | (isScope ? 4 : 0);\n encodeInteger(writer, fields, 0);\n if (range.length === 6) {\n const { 4: sourcesIndex, 5: scopesIndex } = range;\n if (sourcesIndex !== state[2]) {\n state[3] = 0;\n }\n state[2] = encodeInteger(writer, sourcesIndex, state[2]);\n state[3] = encodeInteger(writer, scopesIndex, state[3]);\n }\n if (callsite) {\n const { 0: sourcesIndex, 1: callLine, 2: callColumn } = range.callsite;\n if (sourcesIndex !== state[4]) {\n state[5] = 0;\n state[6] = 0;\n } else if (callLine !== state[5]) {\n state[6] = 0;\n }\n state[4] = encodeInteger(writer, sourcesIndex, state[4]);\n state[5] = encodeInteger(writer, callLine, state[5]);\n state[6] = encodeInteger(writer, callColumn, state[6]);\n }\n if (bindings) {\n for (const binding of bindings) {\n if (binding.length > 1) encodeInteger(writer, -binding.length, 0);\n const expression = binding[0][0];\n encodeInteger(writer, expression, 0);\n let bindingStartLine = startLine;\n let bindingStartColumn = startColumn;\n for (let i = 1; i < binding.length; i++) {\n const expRange = binding[i];\n bindingStartLine = encodeInteger(writer, expRange[1], bindingStartLine);\n bindingStartColumn = encodeInteger(writer, expRange[2], bindingStartColumn);\n encodeInteger(writer, expRange[0], 0);\n }\n }\n }\n for (index++; index < ranges.length; ) {\n const next = ranges[index];\n const { 0: l, 1: c } = next;\n if (l > endLine || l === endLine && c >= endColumn) {\n break;\n }\n index = _encodeGeneratedRanges(ranges, index, writer, state);\n }\n if (state[0] < endLine) {\n catchupLine(writer, state[0], endLine);\n state[0] = endLine;\n state[1] = 0;\n } else {\n writer.write(comma);\n }\n state[1] = encodeInteger(writer, endColumn, state[1]);\n return index;\n}\nfunction catchupLine(writer, lastLine, line) {\n do {\n writer.write(semicolon);\n } while (++lastLine < line);\n}\n\n// src/sourcemap-codec.ts\nfunction decode(mappings) {\n const { length } = mappings;\n const reader = new StringReader(mappings);\n const decoded = [];\n let genColumn = 0;\n let sourcesIndex = 0;\n let sourceLine = 0;\n let sourceColumn = 0;\n let namesIndex = 0;\n do {\n const semi = reader.indexOf(\";\");\n const line = [];\n let sorted = true;\n let lastCol = 0;\n genColumn = 0;\n while (reader.pos < semi) {\n let seg;\n genColumn = decodeInteger(reader, genColumn);\n if (genColumn < lastCol) sorted = false;\n lastCol = genColumn;\n if (hasMoreVlq(reader, semi)) {\n sourcesIndex = decodeInteger(reader, sourcesIndex);\n sourceLine = decodeInteger(reader, sourceLine);\n sourceColumn = decodeInteger(reader, sourceColumn);\n if (hasMoreVlq(reader, semi)) {\n namesIndex = decodeInteger(reader, namesIndex);\n seg = [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex];\n } else {\n seg = [genColumn, sourcesIndex, sourceLine, sourceColumn];\n }\n } else {\n seg = [genColumn];\n }\n line.push(seg);\n reader.pos++;\n }\n if (!sorted) sort(line);\n decoded.push(line);\n reader.pos = semi + 1;\n } while (reader.pos <= length);\n return decoded;\n}\nfunction sort(line) {\n line.sort(sortComparator);\n}\nfunction sortComparator(a, b) {\n return a[0] - b[0];\n}\nfunction encode(decoded) {\n const writer = new StringWriter();\n let sourcesIndex = 0;\n let sourceLine = 0;\n let sourceColumn = 0;\n let namesIndex = 0;\n for (let i = 0; i < decoded.length; i++) {\n const line = decoded[i];\n if (i > 0) writer.write(semicolon);\n if (line.length === 0) continue;\n let genColumn = 0;\n for (let j = 0; j < line.length; j++) {\n const segment = line[j];\n if (j > 0) writer.write(comma);\n genColumn = encodeInteger(writer, segment[0], genColumn);\n if (segment.length === 1) continue;\n sourcesIndex = encodeInteger(writer, segment[1], sourcesIndex);\n sourceLine = encodeInteger(writer, segment[2], sourceLine);\n sourceColumn = encodeInteger(writer, segment[3], sourceColumn);\n if (segment.length === 4) continue;\n namesIndex = encodeInteger(writer, segment[4], namesIndex);\n }\n }\n return writer.flush();\n}\nexport {\n decode,\n decodeGeneratedRanges,\n decodeOriginalScopes,\n encode,\n encodeGeneratedRanges,\n encodeOriginalScopes\n};\n//# sourceMappingURL=sourcemap-codec.mjs.map\n","// Matches the scheme of a URL, eg \"http://\"\nconst schemeRegex = /^[\\w+.-]+:\\/\\//;\n/**\n * Matches the parts of a URL:\n * 1. Scheme, including \":\", guaranteed.\n * 2. User/password, including \"@\", optional.\n * 3. Host, guaranteed.\n * 4. Port, including \":\", optional.\n * 5. Path, including \"/\", optional.\n * 6. Query, including \"?\", optional.\n * 7. Hash, including \"#\", optional.\n */\nconst urlRegex = /^([\\w+.-]+:)\\/\\/([^@/#?]*@)?([^:/#?]*)(:\\d+)?(\\/[^#?]*)?(\\?[^#]*)?(#.*)?/;\n/**\n * File URLs are weird. They dont' need the regular `//` in the scheme, they may or may not start\n * with a leading `/`, they can have a domain (but only if they don't start with a Windows drive).\n *\n * 1. Host, optional.\n * 2. Path, which may include \"/\", guaranteed.\n * 3. Query, including \"?\", optional.\n * 4. Hash, including \"#\", optional.\n */\nconst fileRegex = /^file:(?:\\/\\/((?![a-z]:)[^/#?]*)?)?(\\/?[^#?]*)(\\?[^#]*)?(#.*)?/i;\nfunction isAbsoluteUrl(input) {\n return schemeRegex.test(input);\n}\nfunction isSchemeRelativeUrl(input) {\n return input.startsWith('//');\n}\nfunction isAbsolutePath(input) {\n return input.startsWith('/');\n}\nfunction isFileUrl(input) {\n return input.startsWith('file:');\n}\nfunction isRelative(input) {\n return /^[.?#]/.test(input);\n}\nfunction parseAbsoluteUrl(input) {\n const match = urlRegex.exec(input);\n return makeUrl(match[1], match[2] || '', match[3], match[4] || '', match[5] || '/', match[6] || '', match[7] || '');\n}\nfunction parseFileUrl(input) {\n const match = fileRegex.exec(input);\n const path = match[2];\n return makeUrl('file:', '', match[1] || '', '', isAbsolutePath(path) ? path : '/' + path, match[3] || '', match[4] || '');\n}\nfunction makeUrl(scheme, user, host, port, path, query, hash) {\n return {\n scheme,\n user,\n host,\n port,\n path,\n query,\n hash,\n type: 7 /* Absolute */,\n };\n}\nfunction parseUrl(input) {\n if (isSchemeRelativeUrl(input)) {\n const url = parseAbsoluteUrl('http:' + input);\n url.scheme = '';\n url.type = 6 /* SchemeRelative */;\n return url;\n }\n if (isAbsolutePath(input)) {\n const url = parseAbsoluteUrl('http://foo.com' + input);\n url.scheme = '';\n url.host = '';\n url.type = 5 /* AbsolutePath */;\n return url;\n }\n if (isFileUrl(input))\n return parseFileUrl(input);\n if (isAbsoluteUrl(input))\n return parseAbsoluteUrl(input);\n const url = parseAbsoluteUrl('http://foo.com/' + input);\n url.scheme = '';\n url.host = '';\n url.type = input\n ? input.startsWith('?')\n ? 3 /* Query */\n : input.startsWith('#')\n ? 2 /* Hash */\n : 4 /* RelativePath */\n : 1 /* Empty */;\n return url;\n}\nfunction stripPathFilename(path) {\n // If a path ends with a parent directory \"..\", then it's a relative path with excess parent\n // paths. It's not a file, so we can't strip it.\n if (path.endsWith('/..'))\n return path;\n const index = path.lastIndexOf('/');\n return path.slice(0, index + 1);\n}\nfunction mergePaths(url, base) {\n normalizePath(base, base.type);\n // If the path is just a \"/\", then it was an empty path to begin with (remember, we're a relative\n // path).\n if (url.path === '/') {\n url.path = base.path;\n }\n else {\n // Resolution happens relative to the base path's directory, not the file.\n url.path = stripPathFilename(base.path) + url.path;\n }\n}\n/**\n * The path can have empty directories \"//\", unneeded parents \"foo/..\", or current directory\n * \"foo/.\". We need to normalize to a standard representation.\n */\nfunction normalizePath(url, type) {\n const rel = type <= 4 /* RelativePath */;\n const pieces = url.path.split('/');\n // We need to preserve the first piece always, so that we output a leading slash. The item at\n // pieces[0] is an empty string.\n let pointer = 1;\n // Positive is the number of real directories we've output, used for popping a parent directory.\n // Eg, \"foo/bar/..\" will have a positive 2, and we can decrement to be left with just \"foo\".\n let positive = 0;\n // We need to keep a trailing slash if we encounter an empty directory (eg, splitting \"foo/\" will\n // generate `[\"foo\", \"\"]` pieces). And, if we pop a parent directory. But once we encounter a\n // real directory, we won't need to append, unless the other conditions happen again.\n let addTrailingSlash = false;\n for (let i = 1; i < pieces.length; i++) {\n const piece = pieces[i];\n // An empty directory, could be a trailing slash, or just a double \"//\" in the path.\n if (!piece) {\n addTrailingSlash = true;\n continue;\n }\n // If we encounter a real directory, then we don't need to append anymore.\n addTrailingSlash = false;\n // A current directory, which we can always drop.\n if (piece === '.')\n continue;\n // A parent directory, we need to see if there are any real directories we can pop. Else, we\n // have an excess of parents, and we'll need to keep the \"..\".\n if (piece === '..') {\n if (positive) {\n addTrailingSlash = true;\n positive--;\n pointer--;\n }\n else if (rel) {\n // If we're in a relativePath, then we need to keep the excess parents. Else, in an absolute\n // URL, protocol relative URL, or an absolute path, we don't need to keep excess.\n pieces[pointer++] = piece;\n }\n continue;\n }\n // We've encountered a real directory. Move it to the next insertion pointer, which accounts for\n // any popped or dropped directories.\n pieces[pointer++] = piece;\n positive++;\n }\n let path = '';\n for (let i = 1; i < pointer; i++) {\n path += '/' + pieces[i];\n }\n if (!path || (addTrailingSlash && !path.endsWith('/..'))) {\n path += '/';\n }\n url.path = path;\n}\n/**\n * Attempts to resolve `input` URL/path relative to `base`.\n */\nfunction resolve(input, base) {\n if (!input && !base)\n return '';\n const url = parseUrl(input);\n let inputType = url.type;\n if (base && inputType !== 7 /* Absolute */) {\n const baseUrl = parseUrl(base);\n const baseType = baseUrl.type;\n switch (inputType) {\n case 1 /* Empty */:\n url.hash = baseUrl.hash;\n // fall through\n case 2 /* Hash */:\n url.query = baseUrl.query;\n // fall through\n case 3 /* Query */:\n case 4 /* RelativePath */:\n mergePaths(url, baseUrl);\n // fall through\n case 5 /* AbsolutePath */:\n // The host, user, and port are joined, you can't copy one without the others.\n url.user = baseUrl.user;\n url.host = baseUrl.host;\n url.port = baseUrl.port;\n // fall through\n case 6 /* SchemeRelative */:\n // The input doesn't have a schema at least, so we need to copy at least that over.\n url.scheme = baseUrl.scheme;\n }\n if (baseType > inputType)\n inputType = baseType;\n }\n normalizePath(url, inputType);\n const queryHash = url.query + url.hash;\n switch (inputType) {\n // This is impossible, because of the empty checks at the start of the function.\n // case UrlType.Empty:\n case 2 /* Hash */:\n case 3 /* Query */:\n return queryHash;\n case 4 /* RelativePath */: {\n // The first char is always a \"/\", and we need it to be relative.\n const path = url.path.slice(1);\n if (!path)\n return queryHash || '.';\n if (isRelative(base || input) && !isRelative(path)) {\n // If base started with a leading \".\", or there is no base and input started with a \".\",\n // then we need to ensure that the relative path starts with a \".\". We don't know if\n // relative starts with a \"..\", though, so check before prepending.\n return './' + path + queryHash;\n }\n return path + queryHash;\n }\n case 5 /* AbsolutePath */:\n return url.path + queryHash;\n default:\n return url.scheme + '//' + url.user + url.host + url.port + url.path + queryHash;\n }\n}\n\nexport { resolve as default };\n//# sourceMappingURL=resolve-uri.mjs.map\n","// src/trace-mapping.ts\nimport { encode, decode } from \"@jridgewell/sourcemap-codec\";\n\n// src/resolve.ts\nimport resolveUri from \"@jridgewell/resolve-uri\";\n\n// src/strip-filename.ts\nfunction stripFilename(path) {\n if (!path) return \"\";\n const index = path.lastIndexOf(\"/\");\n return path.slice(0, index + 1);\n}\n\n// src/resolve.ts\nfunction resolver(mapUrl, sourceRoot) {\n const from = stripFilename(mapUrl);\n const prefix = sourceRoot ? sourceRoot + \"/\" : \"\";\n return (source) => resolveUri(prefix + (source || \"\"), from);\n}\n\n// src/sourcemap-segment.ts\nvar COLUMN = 0;\nvar SOURCES_INDEX = 1;\nvar SOURCE_LINE = 2;\nvar SOURCE_COLUMN = 3;\nvar NAMES_INDEX = 4;\nvar REV_GENERATED_LINE = 1;\nvar REV_GENERATED_COLUMN = 2;\n\n// src/sort.ts\nfunction maybeSort(mappings, owned) {\n const unsortedIndex = nextUnsortedSegmentLine(mappings, 0);\n if (unsortedIndex === mappings.length) return mappings;\n if (!owned) mappings = mappings.slice();\n for (let i = unsortedIndex; i < mappings.length; i = nextUnsortedSegmentLine(mappings, i + 1)) {\n mappings[i] = sortSegments(mappings[i], owned);\n }\n return mappings;\n}\nfunction nextUnsortedSegmentLine(mappings, start) {\n for (let i = start; i < mappings.length; i++) {\n if (!isSorted(mappings[i])) return i;\n }\n return mappings.length;\n}\nfunction isSorted(line) {\n for (let j = 1; j < line.length; j++) {\n if (line[j][COLUMN] < line[j - 1][COLUMN]) {\n return false;\n }\n }\n return true;\n}\nfunction sortSegments(line, owned) {\n if (!owned) line = line.slice();\n return line.sort(sortComparator);\n}\nfunction sortComparator(a, b) {\n return a[COLUMN] - b[COLUMN];\n}\n\n// src/by-source.ts\nfunction buildBySources(decoded, memos) {\n const sources = memos.map(() => []);\n for (let i = 0; i < decoded.length; i++) {\n const line = decoded[i];\n for (let j = 0; j < line.length; j++) {\n const seg = line[j];\n if (seg.length === 1) continue;\n const sourceIndex2 = seg[SOURCES_INDEX];\n const sourceLine = seg[SOURCE_LINE];\n const sourceColumn = seg[SOURCE_COLUMN];\n const source = sources[sourceIndex2];\n const segs = source[sourceLine] || (source[sourceLine] = []);\n segs.push([sourceColumn, i, seg[COLUMN]]);\n }\n }\n for (let i = 0; i < sources.length; i++) {\n const source = sources[i];\n for (let j = 0; j < source.length; j++) {\n const line = source[j];\n if (line) line.sort(sortComparator);\n }\n }\n return sources;\n}\n\n// src/binary-search.ts\nvar found = false;\nfunction binarySearch(haystack, needle, low, high) {\n while (low <= high) {\n const mid = low + (high - low >> 1);\n const cmp = haystack[mid][COLUMN] - needle;\n if (cmp === 0) {\n found = true;\n return mid;\n }\n if (cmp < 0) {\n low = mid + 1;\n } else {\n high = mid - 1;\n }\n }\n found = false;\n return low - 1;\n}\nfunction upperBound(haystack, needle, index) {\n for (let i = index + 1; i < haystack.length; index = i++) {\n if (haystack[i][COLUMN] !== needle) break;\n }\n return index;\n}\nfunction lowerBound(haystack, needle, index) {\n for (let i = index - 1; i >= 0; index = i--) {\n if (haystack[i][COLUMN] !== needle) break;\n }\n return index;\n}\nfunction memoizedState() {\n return {\n lastKey: -1,\n lastNeedle: -1,\n lastIndex: -1\n };\n}\nfunction memoizedBinarySearch(haystack, needle, state, key) {\n const { lastKey, lastNeedle, lastIndex } = state;\n let low = 0;\n let high = haystack.length - 1;\n if (key === lastKey) {\n if (needle === lastNeedle) {\n found = lastIndex !== -1 && haystack[lastIndex][COLUMN] === needle;\n return lastIndex;\n }\n if (needle >= lastNeedle) {\n low = lastIndex === -1 ? 0 : lastIndex;\n } else {\n high = lastIndex;\n }\n }\n state.lastKey = key;\n state.lastNeedle = needle;\n return state.lastIndex = binarySearch(haystack, needle, low, high);\n}\n\n// src/types.ts\nfunction parse(map) {\n return typeof map === \"string\" ? JSON.parse(map) : map;\n}\n\n// src/flatten-map.ts\nvar FlattenMap = function(map, mapUrl) {\n const parsed = parse(map);\n if (!(\"sections\" in parsed)) {\n return new TraceMap(parsed, mapUrl);\n }\n const mappings = [];\n const sources = [];\n const sourcesContent = [];\n const names = [];\n const ignoreList = [];\n recurse(\n parsed,\n mapUrl,\n mappings,\n sources,\n sourcesContent,\n names,\n ignoreList,\n 0,\n 0,\n Infinity,\n Infinity\n );\n const joined = {\n version: 3,\n file: parsed.file,\n names,\n sources,\n sourcesContent,\n mappings,\n ignoreList\n };\n return presortedDecodedMap(joined);\n};\nfunction recurse(input, mapUrl, mappings, sources, sourcesContent, names, ignoreList, lineOffset, columnOffset, stopLine, stopColumn) {\n const { sections } = input;\n for (let i = 0; i < sections.length; i++) {\n const { map, offset } = sections[i];\n let sl = stopLine;\n let sc = stopColumn;\n if (i + 1 < sections.length) {\n const nextOffset = sections[i + 1].offset;\n sl = Math.min(stopLine, lineOffset + nextOffset.line);\n if (sl === stopLine) {\n sc = Math.min(stopColumn, columnOffset + nextOffset.column);\n } else if (sl < stopLine) {\n sc = columnOffset + nextOffset.column;\n }\n }\n addSection(\n map,\n mapUrl,\n mappings,\n sources,\n sourcesContent,\n names,\n ignoreList,\n lineOffset + offset.line,\n columnOffset + offset.column,\n sl,\n sc\n );\n }\n}\nfunction addSection(input, mapUrl, mappings, sources, sourcesContent, names, ignoreList, lineOffset, columnOffset, stopLine, stopColumn) {\n const parsed = parse(input);\n if (\"sections\" in parsed) return recurse(...arguments);\n const map = new TraceMap(parsed, mapUrl);\n const sourcesOffset = sources.length;\n const namesOffset = names.length;\n const decoded = decodedMappings(map);\n const { resolvedSources, sourcesContent: contents, ignoreList: ignores } = map;\n append(sources, resolvedSources);\n append(names, map.names);\n if (contents) append(sourcesContent, contents);\n else for (let i = 0; i < resolvedSources.length; i++) sourcesContent.push(null);\n if (ignores) for (let i = 0; i < ignores.length; i++) ignoreList.push(ignores[i] + sourcesOffset);\n for (let i = 0; i < decoded.length; i++) {\n const lineI = lineOffset + i;\n if (lineI > stopLine) return;\n const out = getLine(mappings, lineI);\n const cOffset = i === 0 ? columnOffset : 0;\n const line = decoded[i];\n for (let j = 0; j < line.length; j++) {\n const seg = line[j];\n const column = cOffset + seg[COLUMN];\n if (lineI === stopLine && column >= stopColumn) return;\n if (seg.length === 1) {\n out.push([column]);\n continue;\n }\n const sourcesIndex = sourcesOffset + seg[SOURCES_INDEX];\n const sourceLine = seg[SOURCE_LINE];\n const sourceColumn = seg[SOURCE_COLUMN];\n out.push(\n seg.length === 4 ? [column, sourcesIndex, sourceLine, sourceColumn] : [column, sourcesIndex, sourceLine, sourceColumn, namesOffset + seg[NAMES_INDEX]]\n );\n }\n }\n}\nfunction append(arr, other) {\n for (let i = 0; i < other.length; i++) arr.push(other[i]);\n}\nfunction getLine(arr, index) {\n for (let i = arr.length; i <= index; i++) arr[i] = [];\n return arr[index];\n}\n\n// src/trace-mapping.ts\nvar LINE_GTR_ZERO = \"`line` must be greater than 0 (lines start at line 1)\";\nvar COL_GTR_EQ_ZERO = \"`column` must be greater than or equal to 0 (columns start at column 0)\";\nvar LEAST_UPPER_BOUND = -1;\nvar GREATEST_LOWER_BOUND = 1;\nvar TraceMap = class {\n constructor(map, mapUrl) {\n const isString = typeof map === \"string\";\n if (!isString && map._decodedMemo) return map;\n const parsed = parse(map);\n const { version, file, names, sourceRoot, sources, sourcesContent } = parsed;\n this.version = version;\n this.file = file;\n this.names = names || [];\n this.sourceRoot = sourceRoot;\n this.sources = sources;\n this.sourcesContent = sourcesContent;\n this.ignoreList = parsed.ignoreList || parsed.x_google_ignoreList || void 0;\n const resolve = resolver(mapUrl, sourceRoot);\n this.resolvedSources = sources.map(resolve);\n const { mappings } = parsed;\n if (typeof mappings === \"string\") {\n this._encoded = mappings;\n this._decoded = void 0;\n } else if (Array.isArray(mappings)) {\n this._encoded = void 0;\n this._decoded = maybeSort(mappings, isString);\n } else if (parsed.sections) {\n throw new Error(`TraceMap passed sectioned source map, please use FlattenMap export instead`);\n } else {\n throw new Error(`invalid source map: ${JSON.stringify(parsed)}`);\n }\n this._decodedMemo = memoizedState();\n this._bySources = void 0;\n this._bySourceMemos = void 0;\n }\n};\nfunction cast(map) {\n return map;\n}\nfunction encodedMappings(map) {\n var _a, _b;\n return (_b = (_a = cast(map))._encoded) != null ? _b : _a._encoded = encode(cast(map)._decoded);\n}\nfunction decodedMappings(map) {\n var _a;\n return (_a = cast(map))._decoded || (_a._decoded = decode(cast(map)._encoded));\n}\nfunction traceSegment(map, line, column) {\n const decoded = decodedMappings(map);\n if (line >= decoded.length) return null;\n const segments = decoded[line];\n const index = traceSegmentInternal(\n segments,\n cast(map)._decodedMemo,\n line,\n column,\n GREATEST_LOWER_BOUND\n );\n return index === -1 ? null : segments[index];\n}\nfunction originalPositionFor(map, needle) {\n let { line, column, bias } = needle;\n line--;\n if (line < 0) throw new Error(LINE_GTR_ZERO);\n if (column < 0) throw new Error(COL_GTR_EQ_ZERO);\n const decoded = decodedMappings(map);\n if (line >= decoded.length) return OMapping(null, null, null, null);\n const segments = decoded[line];\n const index = traceSegmentInternal(\n segments,\n cast(map)._decodedMemo,\n line,\n column,\n bias || GREATEST_LOWER_BOUND\n );\n if (index === -1) return OMapping(null, null, null, null);\n const segment = segments[index];\n if (segment.length === 1) return OMapping(null, null, null, null);\n const { names, resolvedSources } = map;\n return OMapping(\n resolvedSources[segment[SOURCES_INDEX]],\n segment[SOURCE_LINE] + 1,\n segment[SOURCE_COLUMN],\n segment.length === 5 ? names[segment[NAMES_INDEX]] : null\n );\n}\nfunction generatedPositionFor(map, needle) {\n const { source, line, column, bias } = needle;\n return generatedPosition(map, source, line, column, bias || GREATEST_LOWER_BOUND, false);\n}\nfunction allGeneratedPositionsFor(map, needle) {\n const { source, line, column, bias } = needle;\n return generatedPosition(map, source, line, column, bias || LEAST_UPPER_BOUND, true);\n}\nfunction eachMapping(map, cb) {\n const decoded = decodedMappings(map);\n const { names, resolvedSources } = map;\n for (let i = 0; i < decoded.length; i++) {\n const line = decoded[i];\n for (let j = 0; j < line.length; j++) {\n const seg = line[j];\n const generatedLine = i + 1;\n const generatedColumn = seg[0];\n let source = null;\n let originalLine = null;\n let originalColumn = null;\n let name = null;\n if (seg.length !== 1) {\n source = resolvedSources[seg[1]];\n originalLine = seg[2] + 1;\n originalColumn = seg[3];\n }\n if (seg.length === 5) name = names[seg[4]];\n cb({\n generatedLine,\n generatedColumn,\n source,\n originalLine,\n originalColumn,\n name\n });\n }\n }\n}\nfunction sourceIndex(map, source) {\n const { sources, resolvedSources } = map;\n let index = sources.indexOf(source);\n if (index === -1) index = resolvedSources.indexOf(source);\n return index;\n}\nfunction sourceContentFor(map, source) {\n const { sourcesContent } = map;\n if (sourcesContent == null) return null;\n const index = sourceIndex(map, source);\n return index === -1 ? null : sourcesContent[index];\n}\nfunction isIgnored(map, source) {\n const { ignoreList } = map;\n if (ignoreList == null) return false;\n const index = sourceIndex(map, source);\n return index === -1 ? false : ignoreList.includes(index);\n}\nfunction presortedDecodedMap(map, mapUrl) {\n const tracer = new TraceMap(clone(map, []), mapUrl);\n cast(tracer)._decoded = map.mappings;\n return tracer;\n}\nfunction decodedMap(map) {\n return clone(map, decodedMappings(map));\n}\nfunction encodedMap(map) {\n return clone(map, encodedMappings(map));\n}\nfunction clone(map, mappings) {\n return {\n version: map.version,\n file: map.file,\n names: map.names,\n sourceRoot: map.sourceRoot,\n sources: map.sources,\n sourcesContent: map.sourcesContent,\n mappings,\n ignoreList: map.ignoreList || map.x_google_ignoreList\n };\n}\nfunction OMapping(source, line, column, name) {\n return { source, line, column, name };\n}\nfunction GMapping(line, column) {\n return { line, column };\n}\nfunction traceSegmentInternal(segments, memo, line, column, bias) {\n let index = memoizedBinarySearch(segments, column, memo, line);\n if (found) {\n index = (bias === LEAST_UPPER_BOUND ? upperBound : lowerBound)(segments, column, index);\n } else if (bias === LEAST_UPPER_BOUND) index++;\n if (index === -1 || index === segments.length) return -1;\n return index;\n}\nfunction sliceGeneratedPositions(segments, memo, line, column, bias) {\n let min = traceSegmentInternal(segments, memo, line, column, GREATEST_LOWER_BOUND);\n if (!found && bias === LEAST_UPPER_BOUND) min++;\n if (min === -1 || min === segments.length) return [];\n const matchedColumn = found ? column : segments[min][COLUMN];\n if (!found) min = lowerBound(segments, matchedColumn, min);\n const max = upperBound(segments, matchedColumn, min);\n const result = [];\n for (; min <= max; min++) {\n const segment = segments[min];\n result.push(GMapping(segment[REV_GENERATED_LINE] + 1, segment[REV_GENERATED_COLUMN]));\n }\n return result;\n}\nfunction generatedPosition(map, source, line, column, bias, all) {\n var _a, _b;\n line--;\n if (line < 0) throw new Error(LINE_GTR_ZERO);\n if (column < 0) throw new Error(COL_GTR_EQ_ZERO);\n const { sources, resolvedSources } = map;\n let sourceIndex2 = sources.indexOf(source);\n if (sourceIndex2 === -1) sourceIndex2 = resolvedSources.indexOf(source);\n if (sourceIndex2 === -1) return all ? [] : GMapping(null, null);\n const bySourceMemos = (_a = cast(map))._bySourceMemos || (_a._bySourceMemos = sources.map(memoizedState));\n const generated = (_b = cast(map))._bySources || (_b._bySources = buildBySources(decodedMappings(map), bySourceMemos));\n const segments = generated[sourceIndex2][line];\n if (segments == null) return all ? [] : GMapping(null, null);\n const memo = bySourceMemos[sourceIndex2];\n if (all) return sliceGeneratedPositions(segments, memo, line, column, bias);\n const index = traceSegmentInternal(segments, memo, line, column, bias);\n if (index === -1) return GMapping(null, null);\n const segment = segments[index];\n return GMapping(segment[REV_GENERATED_LINE] + 1, segment[REV_GENERATED_COLUMN]);\n}\nexport {\n FlattenMap as AnyMap,\n FlattenMap,\n GREATEST_LOWER_BOUND,\n LEAST_UPPER_BOUND,\n TraceMap,\n allGeneratedPositionsFor,\n decodedMap,\n decodedMappings,\n eachMapping,\n encodedMap,\n encodedMappings,\n generatedPositionFor,\n isIgnored,\n originalPositionFor,\n presortedDecodedMap,\n sourceContentFor,\n traceSegment\n};\n//# sourceMappingURL=trace-mapping.mjs.map\n","// src/set-array.ts\nvar SetArray = class {\n constructor() {\n this._indexes = { __proto__: null };\n this.array = [];\n }\n};\nfunction cast(set) {\n return set;\n}\nfunction get(setarr, key) {\n return cast(setarr)._indexes[key];\n}\nfunction put(setarr, key) {\n const index = get(setarr, key);\n if (index !== void 0) return index;\n const { array, _indexes: indexes } = cast(setarr);\n const length = array.push(key);\n return indexes[key] = length - 1;\n}\nfunction remove(setarr, key) {\n const index = get(setarr, key);\n if (index === void 0) return;\n const { array, _indexes: indexes } = cast(setarr);\n for (let i = index + 1; i < array.length; i++) {\n const k = array[i];\n array[i - 1] = k;\n indexes[k]--;\n }\n indexes[key] = void 0;\n array.pop();\n}\n\n// src/gen-mapping.ts\nimport {\n encode\n} from \"@jridgewell/sourcemap-codec\";\nimport { TraceMap, decodedMappings } from \"@jridgewell/trace-mapping\";\n\n// src/sourcemap-segment.ts\nvar COLUMN = 0;\nvar SOURCES_INDEX = 1;\nvar SOURCE_LINE = 2;\nvar SOURCE_COLUMN = 3;\nvar NAMES_INDEX = 4;\n\n// src/gen-mapping.ts\nvar NO_NAME = -1;\nvar GenMapping = class {\n constructor({ file, sourceRoot } = {}) {\n this._names = new SetArray();\n this._sources = new SetArray();\n this._sourcesContent = [];\n this._mappings = [];\n this.file = file;\n this.sourceRoot = sourceRoot;\n this._ignoreList = new SetArray();\n }\n};\nfunction cast2(map) {\n return map;\n}\nfunction addSegment(map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) {\n return addSegmentInternal(\n false,\n map,\n genLine,\n genColumn,\n source,\n sourceLine,\n sourceColumn,\n name,\n content\n );\n}\nfunction addMapping(map, mapping) {\n return addMappingInternal(false, map, mapping);\n}\nvar maybeAddSegment = (map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) => {\n return addSegmentInternal(\n true,\n map,\n genLine,\n genColumn,\n source,\n sourceLine,\n sourceColumn,\n name,\n content\n );\n};\nvar maybeAddMapping = (map, mapping) => {\n return addMappingInternal(true, map, mapping);\n};\nfunction setSourceContent(map, source, content) {\n const {\n _sources: sources,\n _sourcesContent: sourcesContent\n // _originalScopes: originalScopes,\n } = cast2(map);\n const index = put(sources, source);\n sourcesContent[index] = content;\n}\nfunction setIgnore(map, source, ignore = true) {\n const {\n _sources: sources,\n _sourcesContent: sourcesContent,\n _ignoreList: ignoreList\n // _originalScopes: originalScopes,\n } = cast2(map);\n const index = put(sources, source);\n if (index === sourcesContent.length) sourcesContent[index] = null;\n if (ignore) put(ignoreList, index);\n else remove(ignoreList, index);\n}\nfunction toDecodedMap(map) {\n const {\n _mappings: mappings,\n _sources: sources,\n _sourcesContent: sourcesContent,\n _names: names,\n _ignoreList: ignoreList\n // _originalScopes: originalScopes,\n // _generatedRanges: generatedRanges,\n } = cast2(map);\n removeEmptyFinalLines(mappings);\n return {\n version: 3,\n file: map.file || void 0,\n names: names.array,\n sourceRoot: map.sourceRoot || void 0,\n sources: sources.array,\n sourcesContent,\n mappings,\n // originalScopes,\n // generatedRanges,\n ignoreList: ignoreList.array\n };\n}\nfunction toEncodedMap(map) {\n const decoded = toDecodedMap(map);\n return Object.assign({}, decoded, {\n // originalScopes: decoded.originalScopes.map((os) => encodeOriginalScopes(os)),\n // generatedRanges: encodeGeneratedRanges(decoded.generatedRanges as GeneratedRange[]),\n mappings: encode(decoded.mappings)\n });\n}\nfunction fromMap(input) {\n const map = new TraceMap(input);\n const gen = new GenMapping({ file: map.file, sourceRoot: map.sourceRoot });\n putAll(cast2(gen)._names, map.names);\n putAll(cast2(gen)._sources, map.sources);\n cast2(gen)._sourcesContent = map.sourcesContent || map.sources.map(() => null);\n cast2(gen)._mappings = decodedMappings(map);\n if (map.ignoreList) putAll(cast2(gen)._ignoreList, map.ignoreList);\n return gen;\n}\nfunction allMappings(map) {\n const out = [];\n const { _mappings: mappings, _sources: sources, _names: names } = cast2(map);\n for (let i = 0; i < mappings.length; i++) {\n const line = mappings[i];\n for (let j = 0; j < line.length; j++) {\n const seg = line[j];\n const generated = { line: i + 1, column: seg[COLUMN] };\n let source = void 0;\n let original = void 0;\n let name = void 0;\n if (seg.length !== 1) {\n source = sources.array[seg[SOURCES_INDEX]];\n original = { line: seg[SOURCE_LINE] + 1, column: seg[SOURCE_COLUMN] };\n if (seg.length === 5) name = names.array[seg[NAMES_INDEX]];\n }\n out.push({ generated, source, original, name });\n }\n }\n return out;\n}\nfunction addSegmentInternal(skipable, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) {\n const {\n _mappings: mappings,\n _sources: sources,\n _sourcesContent: sourcesContent,\n _names: names\n // _originalScopes: originalScopes,\n } = cast2(map);\n const line = getIndex(mappings, genLine);\n const index = getColumnIndex(line, genColumn);\n if (!source) {\n if (skipable && skipSourceless(line, index)) return;\n return insert(line, index, [genColumn]);\n }\n assert(sourceLine);\n assert(sourceColumn);\n const sourcesIndex = put(sources, source);\n const namesIndex = name ? put(names, name) : NO_NAME;\n if (sourcesIndex === sourcesContent.length) sourcesContent[sourcesIndex] = content != null ? content : null;\n if (skipable && skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex)) {\n return;\n }\n return insert(\n line,\n index,\n name ? [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex] : [genColumn, sourcesIndex, sourceLine, sourceColumn]\n );\n}\nfunction assert(_val) {\n}\nfunction getIndex(arr, index) {\n for (let i = arr.length; i <= index; i++) {\n arr[i] = [];\n }\n return arr[index];\n}\nfunction getColumnIndex(line, genColumn) {\n let index = line.length;\n for (let i = index - 1; i >= 0; index = i--) {\n const current = line[i];\n if (genColumn >= current[COLUMN]) break;\n }\n return index;\n}\nfunction insert(array, index, value) {\n for (let i = array.length; i > index; i--) {\n array[i] = array[i - 1];\n }\n array[index] = value;\n}\nfunction removeEmptyFinalLines(mappings) {\n const { length } = mappings;\n let len = length;\n for (let i = len - 1; i >= 0; len = i, i--) {\n if (mappings[i].length > 0) break;\n }\n if (len < length) mappings.length = len;\n}\nfunction putAll(setarr, array) {\n for (let i = 0; i < array.length; i++) put(setarr, array[i]);\n}\nfunction skipSourceless(line, index) {\n if (index === 0) return true;\n const prev = line[index - 1];\n return prev.length === 1;\n}\nfunction skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex) {\n if (index === 0) return false;\n const prev = line[index - 1];\n if (prev.length === 1) return false;\n return sourcesIndex === prev[SOURCES_INDEX] && sourceLine === prev[SOURCE_LINE] && sourceColumn === prev[SOURCE_COLUMN] && namesIndex === (prev.length === 5 ? prev[NAMES_INDEX] : NO_NAME);\n}\nfunction addMappingInternal(skipable, map, mapping) {\n const { generated, source, original, name, content } = mapping;\n if (!source) {\n return addSegmentInternal(\n skipable,\n map,\n generated.line - 1,\n generated.column,\n null,\n null,\n null,\n null,\n null\n );\n }\n assert(original);\n return addSegmentInternal(\n skipable,\n map,\n generated.line - 1,\n generated.column,\n source,\n original.line - 1,\n original.column,\n name,\n content\n );\n}\nexport {\n GenMapping,\n addMapping,\n addSegment,\n allMappings,\n fromMap,\n maybeAddMapping,\n maybeAddSegment,\n setIgnore,\n setSourceContent,\n toDecodedMap,\n toEncodedMap\n};\n//# sourceMappingURL=gen-mapping.mjs.map\n","'use strict';\n\nconst object = {};\nconst hasOwnProperty = object.hasOwnProperty;\nconst forOwn = (object, callback) => {\n\tfor (const key in object) {\n\t\tif (hasOwnProperty.call(object, key)) {\n\t\t\tcallback(key, object[key]);\n\t\t}\n\t}\n};\n\nconst extend = (destination, source) => {\n\tif (!source) {\n\t\treturn destination;\n\t}\n\tforOwn(source, (key, value) => {\n\t\tdestination[key] = value;\n\t});\n\treturn destination;\n};\n\nconst forEach = (array, callback) => {\n\tconst length = array.length;\n\tlet index = -1;\n\twhile (++index < length) {\n\t\tcallback(array[index]);\n\t}\n};\n\nconst fourHexEscape = (hex) => {\n\treturn '\\\\u' + ('0000' + hex).slice(-4);\n}\n\nconst hexadecimal = (code, lowercase) => {\n\tlet hexadecimal = code.toString(16);\n\tif (lowercase) return hexadecimal;\n\treturn hexadecimal.toUpperCase();\n};\n\nconst toString = object.toString;\nconst isArray = Array.isArray;\nconst isBuffer = (value) => {\n\treturn typeof Buffer === 'function' && Buffer.isBuffer(value);\n};\nconst isObject = (value) => {\n\t// This is a very simple check, but it’s good enough for what we need.\n\treturn toString.call(value) == '[object Object]';\n};\nconst isString = (value) => {\n\treturn typeof value == 'string' ||\n\t\ttoString.call(value) == '[object String]';\n};\nconst isNumber = (value) => {\n\treturn typeof value == 'number' ||\n\t\ttoString.call(value) == '[object Number]';\n};\nconst isBigInt = (value) => {\n return typeof value == 'bigint';\n};\nconst isFunction = (value) => {\n\treturn typeof value == 'function';\n};\nconst isMap = (value) => {\n\treturn toString.call(value) == '[object Map]';\n};\nconst isSet = (value) => {\n\treturn toString.call(value) == '[object Set]';\n};\n\n/*--------------------------------------------------------------------------*/\n\n// https://mathiasbynens.be/notes/javascript-escapes#single\nconst singleEscapes = {\n\t'\\\\': '\\\\\\\\',\n\t'\\b': '\\\\b',\n\t'\\f': '\\\\f',\n\t'\\n': '\\\\n',\n\t'\\r': '\\\\r',\n\t'\\t': '\\\\t'\n\t// `\\v` is omitted intentionally, because in IE < 9, '\\v' == 'v'.\n\t// '\\v': '\\\\x0B'\n};\nconst regexSingleEscape = /[\\\\\\b\\f\\n\\r\\t]/;\n\nconst regexDigit = /[0-9]/;\nconst regexWhitespace = /[\\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000]/;\n\nconst escapeEverythingRegex = /([\\uD800-\\uDBFF][\\uDC00-\\uDFFF])|([\\uD800-\\uDFFF])|(['\"`])|[^]/g;\nconst escapeNonAsciiRegex = /([\\uD800-\\uDBFF][\\uDC00-\\uDFFF])|([\\uD800-\\uDFFF])|(['\"`])|[^ !#-&\\(-\\[\\]-_a-~]/g;\n\nconst jsesc = (argument, options) => {\n\tconst increaseIndentation = () => {\n\t\toldIndent = indent;\n\t\t++options.indentLevel;\n\t\tindent = options.indent.repeat(options.indentLevel)\n\t};\n\t// Handle options\n\tconst defaults = {\n\t\t'escapeEverything': false,\n\t\t'minimal': false,\n\t\t'isScriptContext': false,\n\t\t'quotes': 'single',\n\t\t'wrap': false,\n\t\t'es6': false,\n\t\t'json': false,\n\t\t'compact': true,\n\t\t'lowercaseHex': false,\n\t\t'numbers': 'decimal',\n\t\t'indent': '\\t',\n\t\t'indentLevel': 0,\n\t\t'__inline1__': false,\n\t\t'__inline2__': false\n\t};\n\tconst json = options && options.json;\n\tif (json) {\n\t\tdefaults.quotes = 'double';\n\t\tdefaults.wrap = true;\n\t}\n\toptions = extend(defaults, options);\n\tif (\n\t\toptions.quotes != 'single' &&\n\t\toptions.quotes != 'double' &&\n\t\toptions.quotes != 'backtick'\n\t) {\n\t\toptions.quotes = 'single';\n\t}\n\tconst quote = options.quotes == 'double' ?\n\t\t'\"' :\n\t\t(options.quotes == 'backtick' ?\n\t\t\t'`' :\n\t\t\t'\\''\n\t\t);\n\tconst compact = options.compact;\n\tconst lowercaseHex = options.lowercaseHex;\n\tlet indent = options.indent.repeat(options.indentLevel);\n\tlet oldIndent = '';\n\tconst inline1 = options.__inline1__;\n\tconst inline2 = options.__inline2__;\n\tconst newLine = compact ? '' : '\\n';\n\tlet result;\n\tlet isEmpty = true;\n\tconst useBinNumbers = options.numbers == 'binary';\n\tconst useOctNumbers = options.numbers == 'octal';\n\tconst useDecNumbers = options.numbers == 'decimal';\n\tconst useHexNumbers = options.numbers == 'hexadecimal';\n\n\tif (json && argument && isFunction(argument.toJSON)) {\n\t\targument = argument.toJSON();\n\t}\n\n\tif (!isString(argument)) {\n\t\tif (isMap(argument)) {\n\t\t\tif (argument.size == 0) {\n\t\t\t\treturn 'new Map()';\n\t\t\t}\n\t\t\tif (!compact) {\n\t\t\t\toptions.__inline1__ = true;\n\t\t\t\toptions.__inline2__ = false;\n\t\t\t}\n\t\t\treturn 'new Map(' + jsesc(Array.from(argument), options) + ')';\n\t\t}\n\t\tif (isSet(argument)) {\n\t\t\tif (argument.size == 0) {\n\t\t\t\treturn 'new Set()';\n\t\t\t}\n\t\t\treturn 'new Set(' + jsesc(Array.from(argument), options) + ')';\n\t\t}\n\t\tif (isBuffer(argument)) {\n\t\t\tif (argument.length == 0) {\n\t\t\t\treturn 'Buffer.from([])';\n\t\t\t}\n\t\t\treturn 'Buffer.from(' + jsesc(Array.from(argument), options) + ')';\n\t\t}\n\t\tif (isArray(argument)) {\n\t\t\tresult = [];\n\t\t\toptions.wrap = true;\n\t\t\tif (inline1) {\n\t\t\t\toptions.__inline1__ = false;\n\t\t\t\toptions.__inline2__ = true;\n\t\t\t}\n\t\t\tif (!inline2) {\n\t\t\t\tincreaseIndentation();\n\t\t\t}\n\t\t\tforEach(argument, (value) => {\n\t\t\t\tisEmpty = false;\n\t\t\t\tif (inline2) {\n\t\t\t\t\toptions.__inline2__ = false;\n\t\t\t\t}\n\t\t\t\tresult.push(\n\t\t\t\t\t(compact || inline2 ? '' : indent) +\n\t\t\t\t\tjsesc(value, options)\n\t\t\t\t);\n\t\t\t});\n\t\t\tif (isEmpty) {\n\t\t\t\treturn '[]';\n\t\t\t}\n\t\t\tif (inline2) {\n\t\t\t\treturn '[' + result.join(', ') + ']';\n\t\t\t}\n\t\t\treturn '[' + newLine + result.join(',' + newLine) + newLine +\n\t\t\t\t(compact ? '' : oldIndent) + ']';\n\t\t} else if (isNumber(argument) || isBigInt(argument)) {\n\t\t\tif (json) {\n\t\t\t\t// Some number values (e.g. `Infinity`) cannot be represented in JSON.\n\t\t\t\t// `BigInt` values less than `-Number.MAX_VALUE` or greater than\n // `Number.MAX_VALUE` cannot be represented in JSON so they will become\n // `-Infinity` or `Infinity`, respectively, and then become `null` when\n // stringified.\n\t\t\t\treturn JSON.stringify(Number(argument));\n\t\t\t}\n\n let result;\n\t\t\tif (useDecNumbers) {\n\t\t\t\tresult = String(argument);\n\t\t\t} else if (useHexNumbers) {\n\t\t\t\tlet hexadecimal = argument.toString(16);\n\t\t\t\tif (!lowercaseHex) {\n\t\t\t\t\thexadecimal = hexadecimal.toUpperCase();\n\t\t\t\t}\n\t\t\t\tresult = '0x' + hexadecimal;\n\t\t\t} else if (useBinNumbers) {\n\t\t\t\tresult = '0b' + argument.toString(2);\n\t\t\t} else if (useOctNumbers) {\n\t\t\t\tresult = '0o' + argument.toString(8);\n\t\t\t}\n\n if (isBigInt(argument)) {\n return result + 'n';\n }\n return result;\n\t\t} else if (isBigInt(argument)) {\n\t\t\tif (json) {\n\t\t\t\t// `BigInt` values less than `-Number.MAX_VALUE` or greater than\n // `Number.MAX_VALUE` will become `-Infinity` or `Infinity`,\n // respectively, and cannot be represented in JSON.\n\t\t\t\treturn JSON.stringify(Number(argument));\n\t\t\t}\n return argument + 'n';\n } else if (!isObject(argument)) {\n\t\t\tif (json) {\n\t\t\t\t// For some values (e.g. `undefined`, `function` objects),\n\t\t\t\t// `JSON.stringify(value)` returns `undefined` (which isn’t valid\n\t\t\t\t// JSON) instead of `'null'`.\n\t\t\t\treturn JSON.stringify(argument) || 'null';\n\t\t\t}\n\t\t\treturn String(argument);\n\t\t} else { // it’s an object\n\t\t\tresult = [];\n\t\t\toptions.wrap = true;\n\t\t\tincreaseIndentation();\n\t\t\tforOwn(argument, (key, value) => {\n\t\t\t\tisEmpty = false;\n\t\t\t\tresult.push(\n\t\t\t\t\t(compact ? '' : indent) +\n\t\t\t\t\tjsesc(key, options) + ':' +\n\t\t\t\t\t(compact ? '' : ' ') +\n\t\t\t\t\tjsesc(value, options)\n\t\t\t\t);\n\t\t\t});\n\t\t\tif (isEmpty) {\n\t\t\t\treturn '{}';\n\t\t\t}\n\t\t\treturn '{' + newLine + result.join(',' + newLine) + newLine +\n\t\t\t\t(compact ? '' : oldIndent) + '}';\n\t\t}\n\t}\n\n\tconst regex = options.escapeEverything ? escapeEverythingRegex : escapeNonAsciiRegex;\n\tresult = argument.replace(regex, (char, pair, lone, quoteChar, index, string) => {\n\t\tif (pair) {\n\t\t\tif (options.minimal) return pair;\n\t\t\tconst first = pair.charCodeAt(0);\n\t\t\tconst second = pair.charCodeAt(1);\n\t\t\tif (options.es6) {\n\t\t\t\t// https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n\t\t\t\tconst codePoint = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n\t\t\t\tconst hex = hexadecimal(codePoint, lowercaseHex);\n\t\t\t\treturn '\\\\u{' + hex + '}';\n\t\t\t}\n\t\t\treturn fourHexEscape(hexadecimal(first, lowercaseHex)) + fourHexEscape(hexadecimal(second, lowercaseHex));\n\t\t}\n\n\t\tif (lone) {\n\t\t\treturn fourHexEscape(hexadecimal(lone.charCodeAt(0), lowercaseHex));\n\t\t}\n\n\t\tif (\n\t\t\tchar == '\\0' &&\n\t\t\t!json &&\n\t\t\t!regexDigit.test(string.charAt(index + 1))\n\t\t) {\n\t\t\treturn '\\\\0';\n\t\t}\n\n\t\tif (quoteChar) {\n\t\t\tif (quoteChar == quote || options.escapeEverything) {\n\t\t\t\treturn '\\\\' + quoteChar;\n\t\t\t}\n\t\t\treturn quoteChar;\n\t\t}\n\n\t\tif (regexSingleEscape.test(char)) {\n\t\t\t// no need for a `hasOwnProperty` check here\n\t\t\treturn singleEscapes[char];\n\t\t}\n\n\t\tif (options.minimal && !regexWhitespace.test(char)) {\n\t\t\treturn char;\n\t\t}\n\n\t\tconst hex = hexadecimal(char.charCodeAt(0), lowercaseHex);\n\t\tif (json || hex.length > 2) {\n\t\t\treturn fourHexEscape(hex);\n\t\t}\n\n\t\treturn '\\\\x' + ('00' + hex).slice(-2);\n\t});\n\n\tif (quote == '`') {\n\t\tresult = result.replace(/\\$\\{/g, '\\\\${');\n\t}\n\tif (options.isScriptContext) {\n\t\t// https://mathiasbynens.be/notes/etago\n\t\tresult = result\n\t\t\t.replace(/<\\/(script|style)/gi, '<\\\\/$1')\n\t\t\t.replace(/<!--/g, json ? '\\\\u003C!--' : '\\\\x3C!--');\n\t}\n\tif (options.wrap) {\n\t\tresult = quote + result + quote;\n\t}\n\treturn result;\n};\n\njsesc.version = '3.0.2';\n\nmodule.exports = jsesc;\n","import { GenMapping, setSourceContent, toEncodedMap, toDecodedMap, allMappings, maybeAddMapping } from '@jridgewell/gen-mapping';\nimport { TraceMap, originalPositionFor } from '@jridgewell/trace-mapping';\nimport * as _t from '@babel/types';\nimport jsesc from 'jsesc';\nclass SourceMap {\n _map;\n _rawMappings;\n _sourceFileName;\n _lastGenLine = 0;\n _lastSourceLine = 0;\n _lastSourceColumn = 0;\n _inputMap = null;\n constructor(opts, code) {\n const map = this._map = new GenMapping({\n sourceRoot: opts.sourceRoot\n });\n this._sourceFileName = opts.sourceFileName?.replace(/\\\\/g, \"/\");\n this._rawMappings = undefined;\n if (opts.inputSourceMap) {\n this._inputMap = new TraceMap(opts.inputSourceMap);\n const resolvedSources = this._inputMap.resolvedSources;\n if (resolvedSources.length) {\n for (let i = 0; i < resolvedSources.length; i++) {\n setSourceContent(map, resolvedSources[i], this._inputMap.sourcesContent?.[i]);\n }\n }\n }\n if (typeof code === \"string\" && !opts.inputSourceMap) {\n setSourceContent(map, this._sourceFileName, code);\n } else if (typeof code === \"object\") {\n for (const sourceFileName of Object.keys(code)) {\n setSourceContent(map, sourceFileName.replace(/\\\\/g, \"/\"), code[sourceFileName]);\n }\n }\n }\n get() {\n return toEncodedMap(this._map);\n }\n getDecoded() {\n return toDecodedMap(this._map);\n }\n getRawMappings() {\n return this._rawMappings ||= allMappings(this._map);\n }\n mark(generated, generatedIdentifierName, line, column, identifierName, identifierNamePos, filename) {\n this._rawMappings = undefined;\n let originalMapping;\n if (line != null) {\n if (this._inputMap) {\n originalMapping = originalPositionFor(this._inputMap, {\n line,\n column: column\n });\n if (originalMapping.name && (identifierNamePos || identifierName != null && originalMapping.column === column)) {\n identifierName = originalMapping.name;\n } else if (identifierNamePos) {\n const originalIdentifierMapping = originalPositionFor(this._inputMap, identifierNamePos);\n if (originalIdentifierMapping.name) {\n identifierName = originalIdentifierMapping.name;\n }\n }\n } else {\n originalMapping = {\n name: null,\n source: filename?.replace(/\\\\/g, \"/\") || this._sourceFileName,\n line: line,\n column: column\n };\n }\n }\n if (identifierName != null && identifierName === generatedIdentifierName) {\n identifierName = null;\n }\n maybeAddMapping(this._map, {\n name: identifierName,\n generated,\n source: originalMapping?.source,\n original: originalMapping\n });\n }\n}\nconst spaceIndents = [];\nfor (let i = 0; i < 32; i++) {\n spaceIndents.push(\" \".repeat(i * 2));\n}\nclass Buffer {\n constructor(map, indentChar) {\n this._map = map;\n this._indentChar = indentChar;\n }\n _map = null;\n _buf = \"\";\n _str = \"\";\n _appendCount = 0;\n _last = 0;\n _canMarkIdName = true;\n _indentChar = \"\";\n _queuedChar = 0;\n _position = {\n line: 1,\n column: 0\n };\n _sourcePosition = {\n identifierName: undefined,\n identifierNamePos: undefined,\n line: undefined,\n column: undefined,\n filename: undefined\n };\n get() {\n const {\n _map,\n _last\n } = this;\n if (this._queuedChar !== 32) {\n this._flush();\n }\n const code = _last === 10 ? (this._buf + this._str).trimRight() : this._buf + this._str;\n if (_map === null) {\n return {\n code: code,\n decodedMap: undefined,\n map: null,\n rawMappings: undefined\n };\n }\n const result = {\n code: code,\n decodedMap: _map.getDecoded(),\n get map() {\n const resultMap = _map.get();\n result.map = resultMap;\n return resultMap;\n },\n set map(value) {\n Object.defineProperty(result, \"map\", {\n value,\n writable: true\n });\n },\n get rawMappings() {\n const mappings = _map.getRawMappings();\n result.rawMappings = mappings;\n return mappings;\n },\n set rawMappings(value) {\n Object.defineProperty(result, \"rawMappings\", {\n value,\n writable: true\n });\n }\n };\n return result;\n }\n append(str, maybeNewline, ignoreMapping = false) {\n this._flush();\n this._append(str, maybeNewline, ignoreMapping);\n }\n appendChar(char) {\n this._flush();\n this._appendChar(char, 1, true);\n }\n queue(char) {\n this._flush();\n this._queuedChar = char;\n }\n _flush() {\n const queuedChar = this._queuedChar;\n if (queuedChar !== 0) {\n this._appendChar(queuedChar, 1, true);\n this._queuedChar = 0;\n }\n }\n _appendChar(char, repeat, useSourcePos) {\n this._last = char;\n if (char === -1) {\n const indent = repeat >= 64 ? this._indentChar.repeat(repeat) : spaceIndents[repeat / 2];\n this._str += indent;\n } else {\n this._str += repeat > 1 ? String.fromCharCode(char).repeat(repeat) : String.fromCharCode(char);\n }\n const isSpace = char === 32;\n const position = this._position;\n if (char !== 10) {\n if (this._map) {\n const sourcePos = this._sourcePosition;\n if (useSourcePos && sourcePos) {\n this._map.mark(position, null, sourcePos.line, sourcePos.column, isSpace ? undefined : sourcePos.identifierName, isSpace ? undefined : sourcePos.identifierNamePos, sourcePos.filename);\n if (!isSpace && this._canMarkIdName) {\n sourcePos.identifierName = undefined;\n sourcePos.identifierNamePos = undefined;\n }\n } else {\n this._map.mark(position, null);\n }\n }\n position.column += repeat;\n } else {\n position.line++;\n position.column = 0;\n }\n }\n _append(str, maybeNewline, ignoreMapping) {\n const len = str.length;\n const position = this._position;\n const sourcePos = this._sourcePosition;\n this._last = -1;\n if (++this._appendCount > 4096) {\n +this._str;\n this._buf += this._str;\n this._str = str;\n this._appendCount = 0;\n } else {\n this._str += str;\n }\n const hasMap = !ignoreMapping && this._map !== null;\n if (!maybeNewline && !hasMap) {\n position.column += len;\n return;\n }\n const {\n column,\n identifierName,\n identifierNamePos,\n filename\n } = sourcePos;\n let line = sourcePos.line;\n if ((identifierName != null || identifierNamePos != null) && this._canMarkIdName) {\n sourcePos.identifierName = undefined;\n sourcePos.identifierNamePos = undefined;\n }\n let i = str.indexOf(\"\\n\");\n let last = 0;\n if (hasMap && i !== 0) {\n this._map.mark(position, str, line, column, identifierName, identifierNamePos, filename);\n }\n while (i !== -1) {\n position.line++;\n position.column = 0;\n last = i + 1;\n if (last < len && line !== undefined) {\n line++;\n if (hasMap) {\n this._map.mark(position, str, line, 0, undefined, undefined, filename);\n }\n }\n i = str.indexOf(\"\\n\", last);\n }\n position.column += len - last;\n }\n removeLastSemicolon() {\n if (this._queuedChar === 59) {\n this._queuedChar = 0;\n }\n }\n getLastChar(checkQueue) {\n if (!checkQueue) {\n return this._last;\n }\n const queuedChar = this._queuedChar;\n return queuedChar !== 0 ? queuedChar : this._last;\n }\n getNewlineCount() {\n return this._queuedChar === 0 && this._last === 10 ? 1 : 0;\n }\n hasContent() {\n return this._last !== 0;\n }\n exactSource(loc, cb) {\n if (!this._map) {\n cb();\n return;\n }\n this.source(\"start\", loc);\n const identifierName = loc.identifierName;\n const sourcePos = this._sourcePosition;\n if (identifierName != null) {\n this._canMarkIdName = false;\n sourcePos.identifierName = identifierName;\n }\n cb();\n if (identifierName != null) {\n this._canMarkIdName = true;\n sourcePos.identifierName = undefined;\n sourcePos.identifierNamePos = undefined;\n }\n this.source(\"end\", loc);\n }\n source(prop, loc) {\n if (!this._map) return;\n this._normalizePosition(prop, loc, 0);\n }\n sourceWithOffset(prop, loc, columnOffset) {\n if (!this._map) return;\n this._normalizePosition(prop, loc, columnOffset);\n }\n _normalizePosition(prop, loc, columnOffset) {\n this._flush();\n const pos = loc[prop];\n if (pos) {\n this.setSourcePosition(pos.line, Math.max(pos.column + columnOffset, 0));\n this._sourcePosition.filename = loc.filename;\n }\n }\n setSourcePosition(line, column) {\n const target = this._sourcePosition;\n target.line = line;\n target.column = column;\n }\n getCurrentColumn() {\n return this._position.column + (this._queuedChar ? 1 : 0);\n }\n getCurrentLine() {\n return this._position.line;\n }\n}\nconst {\n isMemberExpression: isMemberExpression$1,\n isOptionalMemberExpression,\n isYieldExpression,\n isStatement: isStatement$4\n} = _t;\nconst PRECEDENCE = new Map([[\"||\", 0], [\"??\", 1], [\"&&\", 2], [\"|\", 3], [\"^\", 4], [\"&\", 5], [\"==\", 6], [\"===\", 6], [\"!=\", 6], [\"!==\", 6], [\"<\", 7], [\">\", 7], [\"<=\", 7], [\">=\", 7], [\"in\", 7], [\"instanceof\", 7], [\">>\", 8], [\"<<\", 8], [\">>>\", 8], [\"+\", 9], [\"-\", 9], [\"*\", 10], [\"/\", 10], [\"%\", 10], [\"**\", 11]]);\nfunction isTSTypeExpression(nodeId) {\n return nodeId === 154 || nodeId === 199 || nodeId === 207;\n}\nconst isClassExtendsClause = (node, parent, parentId) => {\n return (parentId === 22 || parentId === 23) && parent.superClass === node;\n};\nconst hasPostfixPart = (node, parent, parentId) => {\n switch (parentId) {\n case 109:\n case 133:\n return parent.object === node;\n case 18:\n case 131:\n case 113:\n return parent.callee === node;\n case 220:\n return parent.tag === node;\n case 189:\n return true;\n }\n return false;\n};\nfunction NullableTypeAnnotation$1(node, parent, parentId) {\n return parentId === 4;\n}\nfunction FunctionTypeAnnotation$1(node, parent, parentId, tokenContext) {\n return parentId === 237 || parentId === 91 || parentId === 4 || (tokenContext & 8) > 0;\n}\nfunction UpdateExpression$1(node, parent, parentId) {\n return hasPostfixPart(node, parent, parentId) || isClassExtendsClause(node, parent, parentId);\n}\nfunction needsParenBeforeExpressionBrace(tokenContext) {\n return (tokenContext & (1 | 2)) > 0;\n}\nfunction ObjectExpression$1(node, parent, parentId, tokenContext) {\n return needsParenBeforeExpressionBrace(tokenContext);\n}\nfunction DoExpression$1(node, parent, parentId, tokenContext) {\n return (tokenContext & 1) > 0 && !node.async;\n}\nfunction BinaryLike(node, parent, parentId, nodeType) {\n if (isClassExtendsClause(node, parent, parentId)) {\n return true;\n }\n if (hasPostfixPart(node, parent, parentId) || parentId === 236 || parentId === 143 || parentId === 8) {\n return true;\n }\n let parentPos;\n switch (parentId) {\n case 11:\n case 108:\n parentPos = PRECEDENCE.get(parent.operator);\n break;\n case 154:\n case 199:\n parentPos = 7;\n }\n if (parentPos !== undefined) {\n const nodePos = nodeType === 2 ? 7 : PRECEDENCE.get(node.operator);\n if (parentPos > nodePos) return true;\n if (parentPos === nodePos && parentId === 11 && (nodePos === 11 ? parent.left === node : parent.right === node)) {\n return true;\n }\n if (nodeType === 1 && parentId === 108 && (nodePos === 1 && parentPos !== 1 || parentPos === 1 && nodePos !== 1)) {\n return true;\n }\n }\n return false;\n}\nfunction UnionTypeAnnotation$1(node, parent, parentId) {\n switch (parentId) {\n case 4:\n case 116:\n case 91:\n case 237:\n return true;\n }\n return false;\n}\nfunction OptionalIndexedAccessType$1(node, parent, parentId) {\n return parentId === 85 && parent.objectType === node;\n}\nfunction TSAsExpression$1(node, parent, parentId) {\n if ((parentId === 6 || parentId === 7) && parent.left === node) {\n return true;\n }\n if (parentId === 11 && (parent.operator === \"|\" || parent.operator === \"&\") && node === parent.left) {\n return true;\n }\n return BinaryLike(node, parent, parentId, 2);\n}\nfunction TSConditionalType$1(node, parent, parentId) {\n switch (parentId) {\n case 153:\n case 193:\n case 209:\n case 210:\n case 179:\n case 217:\n return true;\n case 173:\n return parent.objectType === node;\n case 159:\n return parent.checkType === node || parent.extendsType === node;\n }\n return false;\n}\nfunction TSUnionType$1(node, parent, parentId) {\n switch (parentId) {\n case 179:\n case 209:\n case 153:\n case 193:\n return true;\n case 173:\n return parent.objectType === node;\n }\n return false;\n}\nfunction TSIntersectionType$1(node, parent, parentId) {\n return parentId === 209 || TSTypeOperator$1(node, parent, parentId);\n}\nfunction TSInferType$1(node, parent, parentId) {\n if (TSTypeOperator$1(node, parent, parentId)) {\n return true;\n }\n if ((parentId === 179 || parentId === 217) && node.typeParameter.constraint != null) {\n return true;\n }\n return false;\n}\nfunction TSTypeOperator$1(node, parent, parentId) {\n switch (parentId) {\n case 153:\n case 193:\n return true;\n case 173:\n if (parent.objectType === node) {\n return true;\n }\n }\n return false;\n}\nfunction TSInstantiationExpression$1(node, parent, parentId) {\n switch (parentId) {\n case 18:\n case 131:\n case 113:\n case 175:\n return parent.typeArguments != null;\n }\n return false;\n}\nfunction TSFunctionType$1(node, parent, parentId) {\n if (TSUnionType$1(node, parent, parentId)) return true;\n return parentId === 217 || parentId === 159 && (parent.checkType === node || parent.extendsType === node);\n}\nfunction BinaryExpression$1(node, parent, parentId, tokenContext) {\n if (BinaryLike(node, parent, parentId, 0)) return true;\n return (tokenContext & 128) > 0 && node.operator === \"in\";\n}\nfunction LogicalExpression(node, parent, parentId) {\n return BinaryLike(node, parent, parentId, 1);\n}\nfunction SequenceExpression$1(node, parent, parentId) {\n if (parentId === 142 || parentId === 134 || parentId === 109 && parent.property === node || parentId === 133 && parent.property === node || parentId === 222) {\n return false;\n }\n if (parentId === 22) {\n return true;\n }\n if (parentId === 69) {\n return parent.right === node;\n }\n if (parentId === 61) {\n return true;\n }\n return !isStatement$4(parent);\n}\nfunction YieldExpression$1(node, parent, parentId) {\n return parentId === 11 || parentId === 108 || parentId === 236 || parentId === 143 || hasPostfixPart(node, parent, parentId) || parentId === 8 && isYieldExpression(node) || parentId === 29 && node === parent.test || isClassExtendsClause(node, parent, parentId) || isTSTypeExpression(parentId);\n}\nfunction ClassExpression(node, parent, parentId, tokenContext) {\n return (tokenContext & (1 | 4)) > 0;\n}\nfunction UnaryLike(node, parent, parentId) {\n return hasPostfixPart(node, parent, parentId) || parentId === 11 && parent.operator === \"**\" && parent.left === node || isClassExtendsClause(node, parent, parentId);\n}\nfunction FunctionExpression$1(node, parent, parentId, tokenContext) {\n return (tokenContext & (1 | 4)) > 0;\n}\nfunction ConditionalExpression$1(node, parent, parentId) {\n switch (parentId) {\n case 236:\n case 143:\n case 11:\n case 108:\n case 8:\n return true;\n case 29:\n if (parent.test === node) {\n return true;\n }\n }\n if (isTSTypeExpression(parentId)) {\n return true;\n }\n return UnaryLike(node, parent, parentId);\n}\nfunction OptionalMemberExpression$1(node, parent, parentId) {\n switch (parentId) {\n case 18:\n return parent.callee === node;\n case 109:\n return parent.object === node;\n }\n return false;\n}\nfunction AssignmentExpression$1(node, parent, parentId, tokenContext) {\n if (needsParenBeforeExpressionBrace(tokenContext) && node.left.type === \"ObjectPattern\") {\n return true;\n }\n return ConditionalExpression$1(node, parent, parentId);\n}\nfunction Identifier$1(node, parent, parentId, tokenContext, getRawIdentifier) {\n if (getRawIdentifier && getRawIdentifier(node) !== node.name) {\n return false;\n }\n if (parentId === 6 && node.extra?.parenthesized && parent.left === node) {\n const rightType = parent.right.type;\n if ((rightType === \"FunctionExpression\" || rightType === \"ClassExpression\") && parent.right.id == null) {\n return true;\n }\n }\n if (tokenContext & 64 || (parentId === 109 || parentId === 133) && tokenContext & (1 | 16 | 32)) {\n if (node.name === \"let\") {\n const isFollowedByBracket = isMemberExpression$1(parent, {\n object: node,\n computed: true\n }) || isOptionalMemberExpression(parent, {\n object: node,\n computed: true,\n optional: false\n });\n if (isFollowedByBracket && tokenContext & (1 | 16 | 32)) {\n return true;\n }\n return (tokenContext & 64) > 0;\n }\n }\n return parentId === 69 && parent.left === node && node.name === \"async\" && !parent.await;\n}\nconst parens = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n ArrowFunctionExpression: ConditionalExpression$1,\n AssignmentExpression: AssignmentExpression$1,\n AwaitExpression: YieldExpression$1,\n BinaryExpression: BinaryExpression$1,\n ClassExpression,\n ConditionalExpression: ConditionalExpression$1,\n DoExpression: DoExpression$1,\n FunctionExpression: FunctionExpression$1,\n FunctionTypeAnnotation: FunctionTypeAnnotation$1,\n Identifier: Identifier$1,\n IntersectionTypeAnnotation: UnionTypeAnnotation$1,\n LogicalExpression,\n NullableTypeAnnotation: NullableTypeAnnotation$1,\n ObjectExpression: ObjectExpression$1,\n OptionalCallExpression: OptionalMemberExpression$1,\n OptionalIndexedAccessType: OptionalIndexedAccessType$1,\n OptionalMemberExpression: OptionalMemberExpression$1,\n SequenceExpression: SequenceExpression$1,\n SpreadElement: UnaryLike,\n TSAsExpression: TSAsExpression$1,\n TSConditionalType: TSConditionalType$1,\n TSConstructorType: TSFunctionType$1,\n TSFunctionType: TSFunctionType$1,\n TSInferType: TSInferType$1,\n TSInstantiationExpression: TSInstantiationExpression$1,\n TSIntersectionType: TSIntersectionType$1,\n TSSatisfiesExpression: TSAsExpression$1,\n TSTypeAssertion: UnaryLike,\n TSTypeOperator: TSTypeOperator$1,\n TSUnionType: TSUnionType$1,\n UnaryExpression: UnaryLike,\n UnionTypeAnnotation: UnionTypeAnnotation$1,\n UpdateExpression: UpdateExpression$1,\n YieldExpression: YieldExpression$1\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nfunction TaggedTemplateExpression(node) {\n this.print(node.tag);\n this.print(node.typeArguments);\n this.print(node.quasi);\n}\nfunction TemplateElement() {\n throw new Error(\"TemplateElement printing is handled in TemplateLiteral\");\n}\nfunction _printTemplate(node, substitutions) {\n const quasis = node.quasis;\n let partRaw = \"`\";\n for (let i = 0; i < quasis.length - 1; i++) {\n partRaw += quasis[i].value.raw;\n this.token(partRaw + \"${\", true);\n this.print(substitutions[i]);\n partRaw = \"}\";\n }\n partRaw += quasis[quasis.length - 1].value.raw;\n this.token(partRaw + \"`\", true);\n}\nfunction TemplateLiteral(node) {\n _printTemplate.call(this, node, node.expressions);\n}\nconst {\n isCallExpression,\n isLiteral,\n isMemberExpression,\n isNewExpression,\n isPattern\n} = _t;\nfunction UnaryExpression(node) {\n const {\n operator\n } = node;\n const firstChar = operator.charCodeAt(0);\n if (firstChar >= 97 && firstChar <= 122) {\n this.word(operator);\n this.space();\n } else {\n this.tokenChar(firstChar);\n }\n this.print(node.argument);\n}\nfunction DoExpression(node) {\n if (node.async) {\n this.word(\"async\", true);\n this.space();\n }\n this.word(\"do\");\n this.space();\n this.print(node.body);\n}\nfunction ParenthesizedExpression(node) {\n this.tokenChar(40);\n const oldNoLineTerminatorAfterNode = this.enterDelimited();\n this.print(node.expression, undefined, true);\n this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode;\n this.rightParens(node);\n}\nfunction UpdateExpression(node) {\n if (node.prefix) {\n this.token(node.operator, false, 0, true);\n this.print(node.argument);\n } else {\n this.print(node.argument, true);\n this.token(node.operator, false, 0, true);\n }\n}\nfunction ConditionalExpression(node) {\n this.print(node.test);\n this.space();\n this.tokenChar(63);\n this.space();\n this.print(node.consequent);\n this.space();\n this.tokenChar(58);\n this.space();\n this.print(node.alternate);\n}\nfunction _printExpressionArguments(node) {\n this.tokenChar(40);\n const oldNoLineTerminatorAfterNode = this.enterDelimited();\n this.printList(node.arguments, this.shouldPrintTrailingComma(\")\"), undefined, undefined, undefined, true);\n this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode;\n this.rightParens(node);\n}\nfunction NewExpression(node, parent) {\n this.word(\"new\");\n this.space();\n this.print(node.callee);\n if (this.format.minified && node.arguments.length === 0 && !isCallExpression(parent, {\n callee: node\n }) && !isMemberExpression(parent) && !isNewExpression(parent)) {\n return;\n }\n this.print(node.typeArguments);\n if (node.arguments.length === 0 && this.tokenMap && !this.tokenMap.endMatches(node, \")\")) {\n return;\n }\n _printExpressionArguments.call(this, node);\n}\nfunction SequenceExpression(node) {\n this.printList(node.expressions);\n}\nfunction ThisExpression() {\n this.word(\"this\");\n}\nfunction Super() {\n this.word(\"super\");\n}\nfunction _shouldPrintDecoratorsBeforeExport(node) {\n return typeof node.start === \"number\" && node.start === node.declaration.start;\n}\nfunction Decorator(node) {\n this.tokenChar(64);\n const {\n expression\n } = node;\n this.print(expression);\n this.newline();\n}\nfunction OptionalMemberExpression(node) {\n let {\n computed\n } = node;\n const {\n optional,\n property\n } = node;\n this.print(node.object);\n if (!computed && isMemberExpression(property)) {\n throw new TypeError(\"Got a MemberExpression for MemberExpression property\");\n }\n if (isLiteral(property) && typeof property.value === \"number\") {\n computed = true;\n }\n if (optional) {\n this.token(\"?.\");\n }\n if (computed) {\n this.tokenChar(91);\n this.print(property);\n this.tokenChar(93);\n } else {\n if (!optional) {\n this.tokenChar(46);\n }\n this.print(property);\n }\n}\nfunction OptionalCallExpression(node) {\n this.print(node.callee);\n if (node.optional) {\n this.token(\"?.\");\n }\n this.print(node.typeArguments);\n _printExpressionArguments.call(this, node);\n}\nfunction CallExpression(node) {\n this.print(node.callee);\n this.print(node.typeArguments);\n _printExpressionArguments.call(this, node);\n}\nfunction Import() {\n this.word(\"import\");\n}\nfunction AwaitExpression(node) {\n this.word(\"await\");\n this.space();\n this.print(node.argument);\n}\nfunction YieldExpression(node) {\n if (node.delegate) {\n this.word(\"yield\", true);\n this.tokenChar(42);\n if (node.argument) {\n this.space();\n this.print(node.argument);\n }\n } else if (node.argument) {\n this.word(\"yield\", true);\n this.space();\n this.print(node.argument);\n } else {\n this.word(\"yield\");\n }\n}\nfunction EmptyStatement() {\n this.semicolon(true);\n}\nfunction ExpressionStatement(node) {\n this.tokenContext |= 1;\n this.print(node.expression);\n this.semicolon();\n}\nfunction AssignmentPattern(node) {\n this.print(node.left);\n if (node.left.type === \"Identifier\" || isPattern(node.left)) {\n if (node.left.optional) this.tokenChar(63);\n this.print(node.left.typeAnnotation);\n }\n this.space();\n this.tokenChar(61);\n this.space();\n this.print(node.right);\n}\nfunction AssignmentExpression(node) {\n this.print(node.left);\n this.space();\n this.token(node.operator, false, 0, true);\n this.space();\n this.print(node.right);\n}\nfunction BinaryExpression(node) {\n this.print(node.left);\n this.space();\n const {\n operator\n } = node;\n if (operator.charCodeAt(0) === 105) {\n this.word(operator);\n } else {\n this.token(operator, false, 0, true);\n this.setLastChar(operator.charCodeAt(operator.length - 1));\n }\n this.space();\n this.print(node.right);\n}\nfunction BindExpression(node) {\n this.print(node.object);\n this.token(\"::\");\n this.print(node.callee);\n}\nfunction MemberExpression(node) {\n this.print(node.object);\n if (!node.computed && isMemberExpression(node.property)) {\n throw new TypeError(\"Got a MemberExpression for MemberExpression property\");\n }\n let computed = node.computed;\n if (isLiteral(node.property) && typeof node.property.value === \"number\") {\n computed = true;\n }\n if (computed) {\n const oldNoLineTerminatorAfterNode = this.enterDelimited();\n this.tokenChar(91);\n this.print(node.property, undefined, true);\n this.tokenChar(93);\n this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode;\n } else {\n this.tokenChar(46);\n this.print(node.property);\n }\n}\nfunction MetaProperty(node) {\n this.print(node.meta);\n this.tokenChar(46);\n this.print(node.property);\n}\nfunction PrivateName(node) {\n this.tokenChar(35);\n this.print(node.id);\n}\nfunction V8IntrinsicIdentifier(node) {\n this.tokenChar(37);\n this.word(node.name);\n}\nfunction ModuleExpression(node) {\n this.word(\"module\", true);\n this.space();\n this.tokenChar(123);\n this.indent();\n const {\n body\n } = node;\n if (body.body.length || body.directives.length) {\n this.newline();\n }\n this.print(body);\n this.dedent();\n this.rightBrace(node);\n}\nconst {\n isFor,\n isIfStatement,\n isStatement: isStatement$3,\n isVoidPattern\n} = _t;\nfunction WithStatement(node) {\n this.word(\"with\");\n this.space();\n this.tokenChar(40);\n this.print(node.object);\n this.tokenChar(41);\n this.printBlock(node.body);\n}\nfunction IfStatement(node) {\n this.word(\"if\");\n this.space();\n this.tokenChar(40);\n this.print(node.test);\n this.tokenChar(41);\n this.space();\n const needsBlock = node.alternate && isIfStatement(getLastStatement(node.consequent));\n if (needsBlock) {\n this.tokenChar(123);\n this.newline();\n this.indent();\n }\n this.printAndIndentOnComments(node.consequent);\n if (needsBlock) {\n this.dedent();\n this.newline();\n this.tokenChar(125);\n }\n if (node.alternate) {\n if (this.endsWith(125)) this.space();\n this.word(\"else\");\n this.space();\n this.printAndIndentOnComments(node.alternate);\n }\n}\nfunction getLastStatement(statement) {\n const {\n body\n } = statement;\n if (isStatement$3(body) === false) {\n return statement;\n }\n return getLastStatement(body);\n}\nfunction ForStatement(node) {\n this.word(\"for\");\n this.space();\n this.tokenChar(40);\n this.tokenContext |= 16 | 128;\n this.print(node.init);\n this.tokenContext = 0;\n this.tokenChar(59);\n if (node.test) {\n this.space();\n this.print(node.test);\n }\n this.tokenChar(59, 1);\n if (node.update) {\n this.space();\n this.print(node.update);\n }\n this.tokenChar(41);\n this.printBlock(node.body);\n}\nfunction WhileStatement(node) {\n this.word(\"while\");\n this.space();\n this.tokenChar(40);\n this.print(node.test);\n this.tokenChar(41);\n this.printBlock(node.body);\n}\nfunction ForInStatement(node) {\n this.word(\"for\");\n this.space();\n this.noIndentInnerCommentsHere();\n this.tokenChar(40);\n this.tokenContext |= 32 | 128;\n this.print(node.left);\n this.tokenContext = 0;\n this.space();\n this.word(\"in\");\n this.space();\n this.print(node.right);\n this.tokenChar(41);\n this.printBlock(node.body);\n}\nfunction ForOfStatement(node) {\n this.word(\"for\");\n this.space();\n if (node.await) {\n this.word(\"await\");\n this.space();\n }\n this.noIndentInnerCommentsHere();\n this.tokenChar(40);\n this.tokenContext |= 64;\n this.print(node.left);\n this.space();\n this.word(\"of\");\n this.space();\n this.print(node.right);\n this.tokenChar(41);\n this.printBlock(node.body);\n}\nfunction DoWhileStatement(node) {\n this.word(\"do\");\n this.space();\n this.print(node.body);\n this.space();\n this.word(\"while\");\n this.space();\n this.tokenChar(40);\n this.print(node.test);\n this.tokenChar(41);\n this.semicolon();\n}\nfunction printStatementAfterKeyword(printer, node) {\n if (node) {\n printer.space();\n printer.printTerminatorless(node);\n }\n printer.semicolon();\n}\nfunction BreakStatement(node) {\n this.word(\"break\");\n printStatementAfterKeyword(this, node.label);\n}\nfunction ContinueStatement(node) {\n this.word(\"continue\");\n printStatementAfterKeyword(this, node.label);\n}\nfunction ReturnStatement(node) {\n this.word(\"return\");\n printStatementAfterKeyword(this, node.argument);\n}\nfunction ThrowStatement(node) {\n this.word(\"throw\");\n printStatementAfterKeyword(this, node.argument);\n}\nfunction LabeledStatement(node) {\n this.print(node.label);\n this.tokenChar(58);\n this.space();\n this.print(node.body);\n}\nfunction TryStatement(node) {\n this.word(\"try\");\n this.space();\n this.print(node.block);\n this.space();\n if (node.handlers) {\n this.print(node.handlers[0]);\n } else {\n this.print(node.handler);\n }\n if (node.finalizer) {\n this.space();\n this.word(\"finally\");\n this.space();\n this.print(node.finalizer);\n }\n}\nfunction CatchClause(node) {\n this.word(\"catch\");\n this.space();\n if (node.param) {\n this.tokenChar(40);\n this.print(node.param);\n this.print(node.param.typeAnnotation);\n this.tokenChar(41);\n this.space();\n }\n this.print(node.body);\n}\nfunction SwitchStatement(node) {\n this.word(\"switch\");\n this.space();\n this.tokenChar(40);\n this.print(node.discriminant);\n this.tokenChar(41);\n this.space();\n this.tokenChar(123);\n this.printSequence(node.cases, true);\n this.rightBrace(node);\n}\nfunction SwitchCase(node) {\n if (node.test) {\n this.word(\"case\");\n this.space();\n this.print(node.test);\n this.tokenChar(58);\n } else {\n this.word(\"default\");\n this.tokenChar(58);\n }\n if (node.consequent.length) {\n this.newline();\n this.printSequence(node.consequent, true);\n }\n}\nfunction DebuggerStatement() {\n this.word(\"debugger\");\n this.semicolon();\n}\nfunction commaSeparatorWithNewline(occurrenceCount) {\n this.tokenChar(44, occurrenceCount);\n this.newline();\n}\nfunction VariableDeclaration(node, parent) {\n if (node.declare) {\n this.word(\"declare\");\n this.space();\n }\n const {\n kind\n } = node;\n switch (kind) {\n case \"await using\":\n this.word(\"await\");\n this.space();\n case \"using\":\n this.word(\"using\", true);\n break;\n default:\n this.word(kind);\n }\n this.space();\n let hasInits = false;\n if (!isFor(parent)) {\n for (const declar of node.declarations) {\n if (declar.init) {\n hasInits = true;\n break;\n }\n }\n }\n this.printList(node.declarations, undefined, undefined, node.declarations.length > 1, hasInits ? commaSeparatorWithNewline : undefined);\n if (parent != null) {\n switch (parent.type) {\n case \"ForStatement\":\n if (parent.init === node) {\n return;\n }\n break;\n case \"ForInStatement\":\n case \"ForOfStatement\":\n if (parent.left === node) {\n return;\n }\n }\n }\n this.semicolon();\n}\nfunction VariableDeclarator(node) {\n this.print(node.id);\n if (node.definite) this.tokenChar(33);\n if (!isVoidPattern(node.id)) {\n this.print(node.id.typeAnnotation);\n }\n if (node.init) {\n this.space();\n this.tokenChar(61);\n this.space();\n this.print(node.init);\n }\n}\nconst {\n isIdentifier: isIdentifier$1\n} = _t;\nfunction _params(node, noLineTerminator, idNode, parentNode) {\n this.print(node.typeParameters);\n if (idNode !== undefined || parentNode !== undefined) {\n const nameInfo = _getFuncIdName.call(this, idNode, parentNode);\n if (nameInfo) {\n this.sourceIdentifierName(nameInfo.name, nameInfo.pos);\n }\n }\n this.tokenChar(40);\n _parameters.call(this, node.params, 41);\n this.print(node.returnType, noLineTerminator);\n this._noLineTerminator = noLineTerminator;\n}\nfunction _parameters(parameters, endToken) {\n const oldNoLineTerminatorAfterNode = this.enterDelimited();\n const trailingComma = this.shouldPrintTrailingComma(endToken);\n const paramLength = parameters.length;\n for (let i = 0; i < paramLength; i++) {\n _param.call(this, parameters[i]);\n if (trailingComma || i < paramLength - 1) {\n this.tokenChar(44, i);\n this.space();\n }\n }\n this.tokenChar(endToken);\n this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode;\n}\nfunction _param(parameter) {\n this.printJoin(parameter.decorators, undefined, undefined, undefined, undefined, true);\n this.print(parameter, undefined, true);\n if (parameter.optional) {\n this.tokenChar(63);\n }\n this.print(parameter.typeAnnotation, undefined, true);\n}\nfunction _methodHead(node) {\n const kind = node.kind;\n const key = node.key;\n if (kind === \"get\" || kind === \"set\") {\n this.word(kind);\n this.space();\n }\n if (node.async) {\n this.word(\"async\", true);\n this.space();\n }\n if (kind === \"method\" || kind === \"init\") {\n if (node.generator) {\n this.tokenChar(42);\n }\n }\n if (node.computed) {\n this.tokenChar(91);\n this.print(key);\n this.tokenChar(93);\n } else {\n this.print(key);\n }\n if (node.optional) {\n this.tokenChar(63);\n }\n if (this._buf._map) {\n _params.call(this, node, false, node.computed && node.key.type !== \"StringLiteral\" ? undefined : node.key);\n } else {\n _params.call(this, node, false);\n }\n}\nfunction _predicate(node, noLineTerminatorAfter) {\n if (node.predicate) {\n if (!node.returnType) {\n this.tokenChar(58);\n }\n this.space();\n this.print(node.predicate, noLineTerminatorAfter);\n }\n}\nfunction _functionHead(node, parent, hasPredicate) {\n if (node.async) {\n this.word(\"async\");\n if (!this.format.preserveFormat) {\n this._innerCommentsState = 0;\n }\n this.space();\n }\n this.word(\"function\");\n if (node.generator) {\n if (!this.format.preserveFormat) {\n this._innerCommentsState = 0;\n }\n this.tokenChar(42);\n }\n this.space();\n if (node.id) {\n this.print(node.id);\n }\n if (this._buf._map) {\n _params.call(this, node, false, node.id, parent);\n } else {\n _params.call(this, node, false);\n }\n if (hasPredicate) {\n _predicate.call(this, node);\n }\n}\nfunction FunctionExpression(node, parent) {\n _functionHead.call(this, node, parent, true);\n this.space();\n this.print(node.body);\n}\nfunction ArrowFunctionExpression(node, parent) {\n if (node.async) {\n this.word(\"async\", true);\n this.space();\n }\n if (_shouldPrintArrowParamsParens.call(this, node)) {\n _params.call(this, node, true, undefined, this._buf._map ? parent : undefined);\n } else {\n this.print(node.params[0], true);\n }\n _predicate.call(this, node, true);\n this.space();\n this.printInnerComments();\n this.token(\"=>\");\n this.space();\n this.tokenContext |= 2;\n this.print(node.body);\n}\nfunction _shouldPrintArrowParamsParens(node) {\n if (node.params.length !== 1) return true;\n if (node.typeParameters || node.returnType || node.predicate) {\n return true;\n }\n const firstParam = node.params[0];\n if (!isIdentifier$1(firstParam) || firstParam.typeAnnotation || firstParam.optional || firstParam.leadingComments?.length || firstParam.trailingComments?.length) {\n return true;\n }\n if (this.tokenMap) {\n if (node.loc == null) return true;\n if (this.tokenMap.findMatching(node, \"(\") !== null) return true;\n const arrowToken = this.tokenMap.findMatching(node, \"=>\");\n if (arrowToken?.loc == null) return true;\n return arrowToken.loc.start.line !== node.loc.start.line;\n }\n if (this.format.retainLines) return true;\n return false;\n}\nfunction isRenamedIdentifier(id) {\n return !!id.loc?.identifierName && id.loc.identifierName !== id.name;\n}\nfunction _getFuncIdName(idNode, parent) {\n let id = idNode;\n if (!id && parent) {\n const parentType = parent.type;\n if (parentType === \"VariableDeclarator\") {\n id = parent.id;\n } else if (parentType === \"AssignmentExpression\" || parentType === \"AssignmentPattern\") {\n id = parent.left;\n } else if (parentType === \"ObjectProperty\" || parentType === \"ClassProperty\") {\n if (!parent.computed || parent.key.type === \"StringLiteral\") {\n id = parent.key;\n }\n } else if (parentType === \"ClassPrivateProperty\" || parentType === \"ClassAccessorProperty\") {\n id = parent.key;\n }\n }\n if (!id?.loc) return;\n let nameInfo;\n if (id.type === \"Identifier\") {\n if (!isRenamedIdentifier(id)) return;\n nameInfo = {\n pos: id.loc.start,\n name: id.loc.identifierName\n };\n } else if (id.type === \"PrivateName\") {\n if (!isRenamedIdentifier(id.id)) return;\n nameInfo = {\n pos: id.loc.start,\n name: \"#\" + id.id.loc.identifierName\n };\n } else if (id.type === \"StringLiteral\") {\n nameInfo = {\n pos: id.loc.start,\n name: id.value\n };\n }\n return nameInfo;\n}\nfunction TSTypeAnnotation(node, parent) {\n this.token((parent.type === \"TSFunctionType\" || parent.type === \"TSConstructorType\") && parent.returnType === node ? \"=>\" : \":\");\n this.space();\n if (node.optional) this.tokenChar(63);\n this.print(node.typeAnnotation);\n}\nfunction TSTypeParameterInstantiation(node, parent) {\n this.tokenChar(60);\n let printTrailingSeparator = parent.type === \"ArrowFunctionExpression\" && node.params.length === 1;\n if (this.tokenMap && node.start != null && node.end != null) {\n printTrailingSeparator &&= !!this.tokenMap.find(node, t => this.tokenMap.matchesOriginal(t, \",\"));\n printTrailingSeparator ||= this.shouldPrintTrailingComma(\">\");\n }\n this.printList(node.params, printTrailingSeparator);\n this.tokenChar(62);\n}\nfunction TSTypeParameter(node) {\n if (node.const) {\n this.word(\"const\");\n this.space();\n }\n if (node.in) {\n this.word(\"in\");\n this.space();\n }\n if (node.out) {\n this.word(\"out\");\n this.space();\n }\n this.word(node.name.name);\n if (node.constraint) {\n this.space();\n this.word(\"extends\");\n this.space();\n this.print(node.constraint);\n }\n if (node.default) {\n this.space();\n this.tokenChar(61);\n this.space();\n this.print(node.default);\n }\n}\nfunction TSParameterProperty(node) {\n if (node.accessibility) {\n this.word(node.accessibility);\n this.space();\n }\n if (node.readonly) {\n this.word(\"readonly\");\n this.space();\n }\n _param.call(this, node.parameter);\n}\nfunction TSDeclareFunction(node, parent) {\n if (node.declare) {\n this.word(\"declare\");\n this.space();\n }\n _functionHead.call(this, node, parent, false);\n this.semicolon();\n}\nfunction TSDeclareMethod(node) {\n _classMethodHead.call(this, node, false);\n this.semicolon();\n}\nfunction TSQualifiedName(node) {\n this.print(node.left);\n this.tokenChar(46);\n this.print(node.right);\n}\nfunction TSCallSignatureDeclaration(node) {\n tsPrintSignatureDeclarationBase.call(this, node);\n maybePrintTrailingCommaOrSemicolon(this, node);\n}\nfunction maybePrintTrailingCommaOrSemicolon(printer, node) {\n if (!printer.tokenMap || !node.start || !node.end) {\n printer.semicolon();\n return;\n }\n if (printer.tokenMap.endMatches(node, \",\")) {\n printer.token(\",\");\n } else if (printer.tokenMap.endMatches(node, \";\")) {\n printer.semicolon();\n }\n}\nfunction TSConstructSignatureDeclaration(node) {\n this.word(\"new\");\n this.space();\n tsPrintSignatureDeclarationBase.call(this, node);\n maybePrintTrailingCommaOrSemicolon(this, node);\n}\nfunction TSPropertySignature(node) {\n const {\n readonly\n } = node;\n if (readonly) {\n this.word(\"readonly\");\n this.space();\n }\n tsPrintPropertyOrMethodName.call(this, node);\n this.print(node.typeAnnotation);\n maybePrintTrailingCommaOrSemicolon(this, node);\n}\nfunction tsPrintPropertyOrMethodName(node) {\n if (node.computed) {\n this.tokenChar(91);\n }\n this.print(node.key);\n if (node.computed) {\n this.tokenChar(93);\n }\n if (node.optional) {\n this.tokenChar(63);\n }\n}\nfunction TSMethodSignature(node) {\n const {\n kind\n } = node;\n if (kind === \"set\" || kind === \"get\") {\n this.word(kind);\n this.space();\n }\n tsPrintPropertyOrMethodName.call(this, node);\n tsPrintSignatureDeclarationBase.call(this, node);\n maybePrintTrailingCommaOrSemicolon(this, node);\n}\nfunction TSIndexSignature(node) {\n const {\n readonly,\n static: isStatic\n } = node;\n if (isStatic) {\n this.word(\"static\");\n this.space();\n }\n if (readonly) {\n this.word(\"readonly\");\n this.space();\n }\n this.tokenChar(91);\n _parameters.call(this, node.parameters, 93);\n this.print(node.typeAnnotation);\n maybePrintTrailingCommaOrSemicolon(this, node);\n}\nfunction TSAnyKeyword() {\n this.word(\"any\");\n}\nfunction TSBigIntKeyword() {\n this.word(\"bigint\");\n}\nfunction TSUnknownKeyword() {\n this.word(\"unknown\");\n}\nfunction TSNumberKeyword() {\n this.word(\"number\");\n}\nfunction TSObjectKeyword() {\n this.word(\"object\");\n}\nfunction TSBooleanKeyword() {\n this.word(\"boolean\");\n}\nfunction TSStringKeyword() {\n this.word(\"string\");\n}\nfunction TSSymbolKeyword() {\n this.word(\"symbol\");\n}\nfunction TSVoidKeyword() {\n this.word(\"void\");\n}\nfunction TSUndefinedKeyword() {\n this.word(\"undefined\");\n}\nfunction TSNullKeyword() {\n this.word(\"null\");\n}\nfunction TSNeverKeyword() {\n this.word(\"never\");\n}\nfunction TSIntrinsicKeyword() {\n this.word(\"intrinsic\");\n}\nfunction TSThisType() {\n this.word(\"this\");\n}\nfunction TSFunctionType(node) {\n tsPrintFunctionOrConstructorType.call(this, node);\n}\nfunction TSConstructorType(node) {\n if (node.abstract) {\n this.word(\"abstract\");\n this.space();\n }\n this.word(\"new\");\n this.space();\n tsPrintFunctionOrConstructorType.call(this, node);\n}\nfunction tsPrintFunctionOrConstructorType(node) {\n const {\n typeParameters\n } = node;\n const parameters = node.params;\n this.print(typeParameters);\n this.tokenChar(40);\n _parameters.call(this, parameters, 41);\n this.space();\n const returnType = node.returnType;\n this.print(returnType);\n}\nfunction TSTypeReference(node) {\n const typeArguments = node.typeArguments;\n this.print(node.typeName, !!typeArguments);\n this.print(typeArguments);\n}\nfunction TSTypePredicate(node) {\n if (node.asserts) {\n this.word(\"asserts\");\n this.space();\n }\n this.print(node.parameterName);\n if (node.typeAnnotation) {\n this.space();\n this.word(\"is\");\n this.space();\n this.print(node.typeAnnotation.typeAnnotation);\n }\n}\nfunction TSTypeQuery(node) {\n this.word(\"typeof\");\n this.space();\n this.print(node.exprName);\n const typeArguments = node.typeArguments;\n if (typeArguments) {\n this.print(typeArguments);\n }\n}\nfunction TSTypeLiteral(node) {\n printBraced(this, node, () => this.printJoin(node.members, true, true, undefined, undefined, true));\n}\nfunction TSArrayType(node) {\n this.print(node.elementType, true);\n this.tokenChar(91);\n this.tokenChar(93);\n}\nfunction TSTupleType(node) {\n this.tokenChar(91);\n this.printList(node.elementTypes, this.shouldPrintTrailingComma(\"]\"));\n this.tokenChar(93);\n}\nfunction TSOptionalType(node) {\n this.print(node.typeAnnotation);\n this.tokenChar(63);\n}\nfunction TSRestType(node) {\n this.token(\"...\");\n this.print(node.typeAnnotation);\n}\nfunction TSNamedTupleMember(node) {\n this.print(node.label);\n if (node.optional) this.tokenChar(63);\n this.tokenChar(58);\n this.space();\n this.print(node.elementType);\n}\nfunction TSUnionType(node) {\n tsPrintUnionOrIntersectionType(this, node, \"|\");\n}\nfunction TSIntersectionType(node) {\n tsPrintUnionOrIntersectionType(this, node, \"&\");\n}\nfunction tsPrintUnionOrIntersectionType(printer, node, sep) {\n let hasLeadingToken = 0;\n if (printer.tokenMap?.startMatches(node, sep)) {\n hasLeadingToken = 1;\n printer.token(sep);\n }\n printer.printJoin(node.types, undefined, undefined, function (i) {\n this.space();\n this.token(sep, undefined, i + hasLeadingToken);\n this.space();\n });\n}\nfunction TSConditionalType(node) {\n this.print(node.checkType);\n this.space();\n this.word(\"extends\");\n this.space();\n this.print(node.extendsType);\n this.space();\n this.tokenChar(63);\n this.space();\n this.print(node.trueType);\n this.space();\n this.tokenChar(58);\n this.space();\n this.print(node.falseType);\n}\nfunction TSInferType(node) {\n this.word(\"infer\");\n this.print(node.typeParameter);\n}\nfunction TSParenthesizedType(node) {\n this.tokenChar(40);\n this.print(node.typeAnnotation);\n this.tokenChar(41);\n}\nfunction TSTypeOperator(node) {\n this.word(node.operator);\n this.space();\n this.print(node.typeAnnotation);\n}\nfunction TSIndexedAccessType(node) {\n this.print(node.objectType, true);\n this.tokenChar(91);\n this.print(node.indexType);\n this.tokenChar(93);\n}\nfunction TSMappedType(node) {\n const {\n nameType,\n optional,\n readonly,\n typeAnnotation\n } = node;\n this.tokenChar(123);\n const oldNoLineTerminatorAfterNode = this.enterDelimited();\n this.space();\n if (readonly) {\n tokenIfPlusMinus(this, readonly);\n this.word(\"readonly\");\n this.space();\n }\n this.tokenChar(91);\n this.word(node.key.name);\n this.space();\n this.word(\"in\");\n this.space();\n this.print(node.constraint);\n if (nameType) {\n this.space();\n this.word(\"as\");\n this.space();\n this.print(nameType, undefined, true);\n }\n this.tokenChar(93);\n if (optional) {\n tokenIfPlusMinus(this, optional);\n this.tokenChar(63);\n }\n if (typeAnnotation) {\n this.tokenChar(58);\n this.space();\n this.print(typeAnnotation, undefined, true);\n }\n this.space();\n this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode;\n this.tokenChar(125);\n}\nfunction tokenIfPlusMinus(self, tok) {\n if (tok !== true) {\n self.token(tok);\n }\n}\nfunction TSTemplateLiteralType(node) {\n _printTemplate.call(this, node, node.types);\n}\nfunction TSLiteralType(node) {\n this.print(node.literal);\n}\nfunction TSClassImplements(node) {\n this.print(node.expression);\n this.print(node.typeArguments);\n}\nfunction TSInterfaceDeclaration(node) {\n const {\n declare,\n id,\n typeParameters,\n extends: extendz,\n body\n } = node;\n if (declare) {\n this.word(\"declare\");\n this.space();\n }\n this.word(\"interface\");\n this.space();\n this.print(id);\n this.print(typeParameters);\n if (extendz?.length) {\n this.space();\n this.word(\"extends\");\n this.space();\n this.printList(extendz);\n }\n this.space();\n this.print(body);\n}\nfunction TSInterfaceBody(node) {\n printBraced(this, node, () => this.printJoin(node.body, true, true, undefined, undefined, true));\n}\nfunction TSTypeAliasDeclaration(node) {\n const {\n declare,\n id,\n typeParameters,\n typeAnnotation\n } = node;\n if (declare) {\n this.word(\"declare\");\n this.space();\n }\n this.word(\"type\");\n this.space();\n this.print(id);\n this.print(typeParameters);\n this.space();\n this.tokenChar(61);\n this.space();\n this.print(typeAnnotation);\n this.semicolon();\n}\nfunction TSAsExpression(node) {\n const {\n expression,\n typeAnnotation\n } = node;\n this.print(expression, true);\n this.space();\n this.word(\"as\");\n this.space();\n this.print(typeAnnotation);\n}\nfunction TSSatisfiesExpression(node) {\n const {\n expression,\n typeAnnotation\n } = node;\n this.print(expression, true);\n this.space();\n this.word(\"satisfies\");\n this.space();\n this.print(typeAnnotation);\n}\nfunction TSTypeAssertion(node) {\n const {\n typeAnnotation,\n expression\n } = node;\n this.tokenChar(60);\n this.print(typeAnnotation);\n this.tokenChar(62);\n this.space();\n this.print(expression);\n}\nfunction TSInstantiationExpression(node) {\n this.print(node.expression);\n this.print(node.typeArguments);\n}\nfunction TSEnumDeclaration(node) {\n const {\n declare,\n const: isConst,\n id\n } = node;\n if (declare) {\n this.word(\"declare\");\n this.space();\n }\n if (isConst) {\n this.word(\"const\");\n this.space();\n }\n this.word(\"enum\");\n this.space();\n this.print(id);\n this.space();\n this.print(node.body);\n}\nfunction TSEnumBody(node) {\n printBraced(this, node, () => this.printList(node.members, this.shouldPrintTrailingComma(\"}\") ?? false, true, true, undefined, true));\n}\nfunction TSEnumMember(node) {\n const {\n id,\n initializer\n } = node;\n this.print(id);\n if (initializer) {\n this.space();\n this.tokenChar(61);\n this.space();\n this.print(initializer);\n }\n}\nfunction TSModuleDeclaration(node) {\n const {\n declare,\n kind\n } = node;\n if (declare) {\n this.word(\"declare\");\n this.space();\n }\n if (kind !== \"global\") {\n this.word(kind);\n this.space();\n }\n this.print(node.id);\n if (!node.body) {\n this.semicolon();\n return;\n }\n this.space();\n this.print(node.body);\n}\nfunction TSModuleBlock(node) {\n printBraced(this, node, () => this.printSequence(node.body, true, true));\n}\nfunction TSImportType(node) {\n const {\n qualifier,\n options\n } = node;\n this.word(\"import\");\n this.tokenChar(40);\n this.print(node.source);\n if (options) {\n this.tokenChar(44);\n this.print(options);\n }\n this.tokenChar(41);\n if (qualifier) {\n this.tokenChar(46);\n this.print(qualifier);\n }\n const typeArguments = node.typeArguments;\n if (typeArguments) {\n this.print(typeArguments);\n }\n}\nfunction TSImportEqualsDeclaration(node) {\n const {\n id,\n moduleReference\n } = node;\n this.word(\"import\");\n this.space();\n this.print(id);\n this.space();\n this.tokenChar(61);\n this.space();\n this.print(moduleReference);\n this.semicolon();\n}\nfunction TSExternalModuleReference(node) {\n this.token(\"require(\");\n this.print(node.expression);\n this.tokenChar(41);\n}\nfunction TSNonNullExpression(node) {\n this.print(node.expression);\n this.tokenChar(33);\n this.setLastChar(33);\n}\nfunction TSExportAssignment(node) {\n this.word(\"export\");\n this.space();\n this.tokenChar(61);\n this.space();\n this.print(node.expression);\n this.semicolon();\n}\nfunction TSNamespaceExportDeclaration(node) {\n this.word(\"export\");\n this.space();\n this.word(\"as\");\n this.space();\n this.word(\"namespace\");\n this.space();\n this.print(node.id);\n this.semicolon();\n}\nfunction tsPrintSignatureDeclarationBase(node) {\n const {\n typeParameters\n } = node;\n const parameters = node.params;\n this.print(typeParameters);\n this.tokenChar(40);\n _parameters.call(this, parameters, 41);\n this.print(node.returnType);\n}\nfunction _tsPrintClassMemberModifiers(node) {\n const isPrivateField = node.type === \"ClassPrivateProperty\";\n const isPublicField = node.type === \"ClassAccessorProperty\" || node.type === \"ClassProperty\";\n printModifiersList(this, node, [isPublicField && node.declare && \"declare\", !isPrivateField && node.accessibility]);\n if (node.static) {\n this.word(\"static\");\n this.space();\n }\n printModifiersList(this, node, [!isPrivateField && node.abstract && \"abstract\", !isPrivateField && node.override && \"override\", (isPublicField || isPrivateField) && node.readonly && \"readonly\"]);\n}\nfunction printBraced(printer, node, cb) {\n printer.token(\"{\");\n const oldNoLineTerminatorAfterNode = printer.enterDelimited();\n cb();\n printer._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode;\n printer.rightBrace(node);\n}\nfunction printModifiersList(printer, node, modifiers) {\n const modifiersSet = new Set();\n for (const modifier of modifiers) {\n if (modifier) modifiersSet.add(modifier);\n }\n printer.tokenMap?.find(node, tok => {\n if (modifiersSet.has(tok.value)) {\n printer.token(tok.value);\n printer.space();\n modifiersSet.delete(tok.value);\n return modifiersSet.size === 0;\n }\n return false;\n });\n for (const modifier of modifiersSet) {\n printer.word(modifier);\n printer.space();\n }\n}\nconst {\n isClassDeclaration,\n isExportDefaultSpecifier,\n isExportNamespaceSpecifier,\n isImportDefaultSpecifier,\n isImportNamespaceSpecifier,\n isStatement: isStatement$2\n} = _t;\nfunction ImportSpecifier(node) {\n if (node.importKind === \"type\" || node.importKind === \"typeof\") {\n this.word(node.importKind);\n this.space();\n }\n this.print(node.imported);\n if (node.local && node.local.name !== node.imported.name) {\n this.space();\n this.word(\"as\");\n this.space();\n this.print(node.local);\n }\n}\nfunction ImportDefaultSpecifier(node) {\n this.print(node.local);\n}\nfunction ExportDefaultSpecifier(node) {\n this.print(node.exported);\n}\nfunction ExportSpecifier(node) {\n if (node.exportKind === \"type\") {\n this.word(\"type\");\n this.space();\n }\n this.print(node.local);\n if (node.exported && node.local.name !== node.exported.name) {\n this.space();\n this.word(\"as\");\n this.space();\n this.print(node.exported);\n }\n}\nfunction ExportNamespaceSpecifier(node) {\n this.tokenChar(42);\n this.space();\n this.word(\"as\");\n this.space();\n this.print(node.exported);\n}\nfunction _printAttributes(node, hasPreviousBrace) {\n const {\n attributes\n } = node;\n this.word(\"with\");\n this.space();\n const occurrenceCount = hasPreviousBrace ? 1 : 0;\n this.token(\"{\", undefined, occurrenceCount);\n this.space();\n this.printList(attributes, this.shouldPrintTrailingComma(\"}\"));\n this.space();\n this.token(\"}\", undefined, occurrenceCount);\n}\nfunction ExportAllDeclaration(node) {\n this.word(\"export\");\n this.space();\n if (node.exportKind === \"type\") {\n this.word(\"type\");\n this.space();\n }\n this.tokenChar(42);\n this.space();\n this.word(\"from\");\n this.space();\n if (node.attributes?.length) {\n this.print(node.source, true);\n this.space();\n _printAttributes.call(this, node, false);\n } else {\n this.print(node.source);\n }\n this.semicolon();\n}\nfunction maybePrintDecoratorsBeforeExport(printer, node) {\n if (isClassDeclaration(node.declaration) && _shouldPrintDecoratorsBeforeExport.call(printer, node)) {\n printer.printJoin(node.declaration.decorators);\n }\n}\nfunction ExportNamedDeclaration(node) {\n maybePrintDecoratorsBeforeExport(this, node);\n this.word(\"export\");\n this.space();\n if (node.declaration) {\n const declar = node.declaration;\n this.print(declar);\n if (!isStatement$2(declar)) this.semicolon();\n } else {\n if (node.exportKind === \"type\") {\n this.word(\"type\");\n this.space();\n }\n const specifiers = node.specifiers.slice(0);\n let hasSpecial = false;\n for (;;) {\n const first = specifiers[0];\n if (isExportDefaultSpecifier(first) || isExportNamespaceSpecifier(first)) {\n hasSpecial = true;\n this.print(specifiers.shift());\n if (specifiers.length) {\n this.tokenChar(44);\n this.space();\n }\n } else {\n break;\n }\n }\n let hasBrace = false;\n if (specifiers.length || !specifiers.length && !hasSpecial) {\n hasBrace = true;\n this.tokenChar(123);\n if (specifiers.length) {\n this.space();\n this.printList(specifiers, this.shouldPrintTrailingComma(\"}\"));\n this.space();\n }\n this.tokenChar(125);\n }\n if (node.source) {\n this.space();\n this.word(\"from\");\n this.space();\n if (node.attributes?.length) {\n this.print(node.source, true);\n this.space();\n _printAttributes.call(this, node, hasBrace);\n } else {\n this.print(node.source);\n }\n }\n this.semicolon();\n }\n}\nfunction ExportDefaultDeclaration(node) {\n maybePrintDecoratorsBeforeExport(this, node);\n this.word(\"export\");\n this.noIndentInnerCommentsHere();\n this.space();\n this.word(\"default\");\n this.space();\n this.tokenContext |= 4;\n const declar = node.declaration;\n this.print(declar);\n if (!isStatement$2(declar)) this.semicolon();\n}\nfunction ImportDeclaration(node) {\n this.word(\"import\");\n this.space();\n const isTypeKind = node.importKind === \"type\" || node.importKind === \"typeof\";\n if (isTypeKind) {\n this.noIndentInnerCommentsHere();\n this.word(node.importKind);\n this.space();\n } else if (node.module) {\n this.noIndentInnerCommentsHere();\n this.word(\"module\");\n this.space();\n } else if (node.phase) {\n this.noIndentInnerCommentsHere();\n this.word(node.phase);\n this.space();\n }\n const specifiers = node.specifiers.slice(0);\n const hasSpecifiers = !!specifiers.length;\n while (hasSpecifiers) {\n const first = specifiers[0];\n if (isImportDefaultSpecifier(first) || isImportNamespaceSpecifier(first)) {\n this.print(specifiers.shift());\n if (specifiers.length) {\n this.tokenChar(44);\n this.space();\n }\n } else {\n break;\n }\n }\n let hasBrace = false;\n if (specifiers.length) {\n hasBrace = true;\n this.tokenChar(123);\n this.space();\n this.printList(specifiers, this.shouldPrintTrailingComma(\"}\"));\n this.space();\n this.tokenChar(125);\n } else if (isTypeKind && !hasSpecifiers) {\n hasBrace = true;\n this.tokenChar(123);\n this.tokenChar(125);\n }\n if (hasSpecifiers || isTypeKind) {\n this.space();\n this.word(\"from\");\n this.space();\n }\n if (node.attributes?.length) {\n this.print(node.source, true);\n this.space();\n _printAttributes.call(this, node, hasBrace);\n } else {\n this.print(node.source);\n }\n this.semicolon();\n}\nfunction ImportAttribute(node) {\n this.print(node.key);\n this.tokenChar(58);\n this.space();\n this.print(node.value);\n}\nfunction ImportNamespaceSpecifier(node) {\n this.tokenChar(42);\n this.space();\n this.word(\"as\");\n this.space();\n this.print(node.local);\n}\nfunction ImportExpression(node) {\n this.word(\"import\");\n if (node.phase) {\n this.tokenChar(46);\n this.word(node.phase);\n }\n this.tokenChar(40);\n const shouldPrintTrailingComma = this.shouldPrintTrailingComma(\")\");\n this.print(node.source);\n if (node.options != null) {\n this.tokenChar(44);\n this.space();\n this.print(node.options);\n }\n if (shouldPrintTrailingComma) {\n this.tokenChar(44);\n }\n this.rightParens(node);\n}\nconst {\n isAssignmentPattern,\n isIdentifier\n} = _t;\nlet lastRawIdentResult = \"\";\nfunction _getRawIdentifier(node) {\n const {\n name\n } = node;\n const token = this.tokenMap.find(node, tok => tok.value === name);\n if (token) {\n lastRawIdentResult = this._originalCode.slice(token.start, token.end);\n return lastRawIdentResult;\n }\n return lastRawIdentResult = node.name;\n}\nfunction Identifier(node) {\n if (this._buf._map && node.loc?.identifierName && node.loc.identifierName !== node.name) {\n this.sourceIdentifierName(node.loc.identifierName);\n }\n this.word(this.tokenMap ? lastRawIdentResult : node.name);\n}\nfunction ArgumentPlaceholder() {\n this.tokenChar(63);\n}\nfunction RestElement(node) {\n this.token(\"...\");\n this.print(node.argument);\n}\nfunction ObjectExpression(node) {\n const props = node.properties;\n this.tokenChar(123);\n if (props.length) {\n const oldNoLineTerminatorAfterNode = this.enterDelimited();\n this.space();\n this.printList(props, this.shouldPrintTrailingComma(\"}\"), true, true, undefined, true);\n this.space();\n this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode;\n }\n this.rightBrace(node);\n}\nfunction ObjectMethod(node) {\n this.printJoin(node.decorators);\n _methodHead.call(this, node);\n this.space();\n this.print(node.body);\n}\nfunction ObjectProperty(node) {\n this.printJoin(node.decorators);\n if (node.computed) {\n this.tokenChar(91);\n this.print(node.key);\n this.tokenChar(93);\n } else {\n if (isAssignmentPattern(node.value) && isIdentifier(node.key) && node.key.name === node.value.left.name) {\n this.print(node.value);\n return;\n }\n this.print(node.key);\n if (node.shorthand && isIdentifier(node.key) && isIdentifier(node.value) && node.key.name === node.value.name) {\n return;\n }\n }\n this.tokenChar(58);\n this.space();\n this.print(node.value);\n}\nfunction ArrayExpression(node) {\n const elems = node.elements;\n const len = elems.length;\n this.tokenChar(91);\n const oldNoLineTerminatorAfterNode = this.enterDelimited();\n for (let i = 0; i < elems.length; i++) {\n const elem = elems[i];\n if (elem) {\n if (i > 0) this.space();\n this.print(elem, undefined, true);\n if (i < len - 1 || this.shouldPrintTrailingComma(\"]\")) {\n this.tokenChar(44, i);\n }\n } else {\n this.tokenChar(44, i);\n }\n }\n this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode;\n this.tokenChar(93);\n}\nfunction RegExpLiteral(node) {\n this.word(`/${node.pattern}/${node.flags}`, false);\n}\nfunction BooleanLiteral(node) {\n this.word(node.value ? \"true\" : \"false\");\n}\nfunction NullLiteral() {\n this.word(\"null\");\n}\nfunction NumericLiteral(node) {\n const raw = this.getPossibleRaw(node);\n const opts = this.format.jsescOption;\n const value = node.value;\n const str = value + \"\";\n if (opts.numbers) {\n this.number(jsesc(value, opts), value);\n } else if (raw == null) {\n this.number(str, value);\n } else if (this.format.minified) {\n this.number(raw.length < str.length ? raw : str, value);\n } else {\n this.number(raw, value);\n }\n}\nfunction StringLiteral(node) {\n const raw = this.getPossibleRaw(node);\n if (!this.format.minified && raw !== undefined) {\n this.token(raw);\n return;\n }\n const val = jsesc(node.value, this.format.jsescOption);\n this.token(val);\n}\nfunction BigIntLiteral(node) {\n const raw = this.getPossibleRaw(node);\n if (!this.format.minified && raw !== undefined) {\n this.word(raw);\n return;\n }\n this.word(node.value + \"n\");\n}\nconst validTopicTokenSet = new Set([\"^^\", \"@@\", \"^\", \"%\", \"#\"]);\nfunction TopicReference() {\n const {\n topicToken\n } = this.format;\n if (validTopicTokenSet.has(topicToken)) {\n this.token(topicToken);\n } else {\n const givenTopicTokenJSON = JSON.stringify(topicToken);\n const validTopics = Array.from(validTopicTokenSet, v => JSON.stringify(v));\n throw new Error(`The \"topicToken\" generator option must be one of ` + `${validTopics.join(\", \")} (${givenTopicTokenJSON} received instead).`);\n }\n}\nfunction VoidPattern() {\n this.word(\"void\");\n}\nconst {\n isDeclareExportDeclaration,\n isStatement: isStatement$1\n} = _t;\nfunction AnyTypeAnnotation() {\n this.word(\"any\");\n}\nfunction ArrayTypeAnnotation(node) {\n this.print(node.elementType, true);\n this.tokenChar(91);\n this.tokenChar(93);\n}\nfunction BooleanTypeAnnotation() {\n this.word(\"boolean\");\n}\nfunction BooleanLiteralTypeAnnotation(node) {\n this.word(node.value ? \"true\" : \"false\");\n}\nfunction NullLiteralTypeAnnotation() {\n this.word(\"null\");\n}\nfunction DeclareClass(node, parent) {\n if (!isDeclareExportDeclaration(parent)) {\n this.word(\"declare\");\n this.space();\n }\n this.word(\"class\");\n this.space();\n _interfaceish.call(this, node);\n}\nfunction DeclareFunction(node, parent) {\n if (!isDeclareExportDeclaration(parent)) {\n this.word(\"declare\");\n this.space();\n }\n this.word(\"function\");\n this.space();\n this.print(node.id);\n this.print(node.id.typeAnnotation?.typeAnnotation);\n if (node.predicate) {\n this.space();\n this.print(node.predicate);\n }\n this.semicolon();\n}\nfunction InferredPredicate() {\n this.tokenChar(37);\n this.word(\"checks\");\n}\nfunction DeclaredPredicate(node) {\n this.tokenChar(37);\n this.word(\"checks\");\n this.tokenChar(40);\n this.print(node.value);\n this.tokenChar(41);\n}\nfunction DeclareInterface(node) {\n this.word(\"declare\");\n this.space();\n InterfaceDeclaration.call(this, node);\n}\nfunction DeclareModule(node) {\n this.word(\"declare\");\n this.space();\n this.word(\"module\");\n this.space();\n this.print(node.id);\n this.space();\n this.print(node.body);\n}\nfunction DeclareModuleExports(node) {\n this.word(\"declare\");\n this.space();\n this.word(\"module\");\n this.tokenChar(46);\n this.word(\"exports\");\n this.print(node.typeAnnotation);\n}\nfunction DeclareTypeAlias(node) {\n this.word(\"declare\");\n this.space();\n TypeAlias.call(this, node);\n}\nfunction DeclareOpaqueType(node, parent) {\n if (!isDeclareExportDeclaration(parent)) {\n this.word(\"declare\");\n this.space();\n }\n OpaqueType.call(this, node);\n}\nfunction DeclareVariable(node, parent) {\n if (!isDeclareExportDeclaration(parent)) {\n this.word(\"declare\");\n this.space();\n }\n this.word(\"var\");\n this.space();\n this.print(node.id);\n this.print(node.id.typeAnnotation);\n this.semicolon();\n}\nfunction DeclareExportDeclaration(node) {\n this.word(\"declare\");\n this.space();\n this.word(\"export\");\n this.space();\n if (node.default) {\n this.word(\"default\");\n this.space();\n }\n FlowExportDeclaration.call(this, node);\n}\nfunction DeclareExportAllDeclaration(node) {\n this.word(\"declare\");\n this.space();\n ExportAllDeclaration.call(this, node);\n}\nfunction EnumDeclaration(node) {\n const {\n id,\n body\n } = node;\n this.word(\"enum\");\n this.space();\n this.print(id);\n this.print(body);\n}\nfunction enumExplicitType(context, name, hasExplicitType) {\n if (hasExplicitType) {\n context.space();\n context.word(\"of\");\n context.space();\n context.word(name);\n }\n context.space();\n}\nfunction enumBody(context, node) {\n const {\n members\n } = node;\n context.token(\"{\");\n context.indent();\n context.newline();\n for (const member of members) {\n context.print(member);\n context.newline();\n }\n if (node.hasUnknownMembers) {\n context.token(\"...\");\n context.newline();\n }\n context.dedent();\n context.token(\"}\");\n}\nfunction EnumBooleanBody(node) {\n const {\n explicitType\n } = node;\n enumExplicitType(this, \"boolean\", explicitType);\n enumBody(this, node);\n}\nfunction EnumNumberBody(node) {\n const {\n explicitType\n } = node;\n enumExplicitType(this, \"number\", explicitType);\n enumBody(this, node);\n}\nfunction EnumStringBody(node) {\n const {\n explicitType\n } = node;\n enumExplicitType(this, \"string\", explicitType);\n enumBody(this, node);\n}\nfunction EnumSymbolBody(node) {\n enumExplicitType(this, \"symbol\", true);\n enumBody(this, node);\n}\nfunction EnumDefaultedMember(node) {\n const {\n id\n } = node;\n this.print(id);\n this.tokenChar(44);\n}\nfunction enumInitializedMember(context, node) {\n context.print(node.id);\n context.space();\n context.token(\"=\");\n context.space();\n context.print(node.init);\n context.token(\",\");\n}\nfunction EnumBooleanMember(node) {\n enumInitializedMember(this, node);\n}\nfunction EnumNumberMember(node) {\n enumInitializedMember(this, node);\n}\nfunction EnumStringMember(node) {\n enumInitializedMember(this, node);\n}\nfunction FlowExportDeclaration(node) {\n if (node.declaration) {\n const declar = node.declaration;\n this.print(declar);\n if (!isStatement$1(declar)) this.semicolon();\n } else {\n this.tokenChar(123);\n if (node.specifiers.length) {\n this.space();\n this.printList(node.specifiers);\n this.space();\n }\n this.tokenChar(125);\n if (node.source) {\n this.space();\n this.word(\"from\");\n this.space();\n this.print(node.source);\n }\n this.semicolon();\n }\n}\nfunction ExistsTypeAnnotation() {\n this.tokenChar(42);\n}\nfunction FunctionTypeAnnotation(node, parent) {\n this.print(node.typeParameters);\n this.tokenChar(40);\n if (node.this) {\n this.word(\"this\");\n this.tokenChar(58);\n this.space();\n this.print(node.this.typeAnnotation);\n if (node.params.length || node.rest) {\n this.tokenChar(44);\n this.space();\n }\n }\n this.printList(node.params);\n if (node.rest) {\n if (node.params.length) {\n this.tokenChar(44);\n this.space();\n }\n this.token(\"...\");\n this.print(node.rest);\n }\n this.tokenChar(41);\n const type = parent?.type;\n if (type != null && (type === \"ObjectTypeCallProperty\" || type === \"ObjectTypeInternalSlot\" || type === \"DeclareFunction\" || type === \"ObjectTypeProperty\" && parent.method)) {\n this.tokenChar(58);\n } else {\n this.space();\n this.token(\"=>\");\n }\n this.space();\n this.print(node.returnType);\n}\nfunction FunctionTypeParam(node) {\n this.print(node.name);\n if (node.optional) this.tokenChar(63);\n if (node.name) {\n this.tokenChar(58);\n this.space();\n }\n this.print(node.typeAnnotation);\n}\nfunction InterfaceExtends(node) {\n this.print(node.id);\n this.print(node.typeParameters, true);\n}\nfunction _interfaceish(node) {\n this.print(node.id);\n this.print(node.typeParameters);\n if (node.extends?.length) {\n this.space();\n this.word(\"extends\");\n this.space();\n this.printList(node.extends);\n }\n if (node.type === \"DeclareClass\") {\n if (node.mixins?.length) {\n this.space();\n this.word(\"mixins\");\n this.space();\n this.printList(node.mixins);\n }\n if (node.implements?.length) {\n this.space();\n this.word(\"implements\");\n this.space();\n this.printList(node.implements);\n }\n }\n this.space();\n this.print(node.body);\n}\nfunction _variance(node) {\n const kind = node.variance?.kind;\n if (kind != null) {\n if (kind === \"plus\") {\n this.tokenChar(43);\n } else if (kind === \"minus\") {\n this.tokenChar(45);\n }\n }\n}\nfunction InterfaceDeclaration(node) {\n this.word(\"interface\");\n this.space();\n _interfaceish.call(this, node);\n}\nfunction andSeparator(occurrenceCount) {\n this.space();\n this.token(\"&\", false, occurrenceCount);\n this.space();\n}\nfunction InterfaceTypeAnnotation(node) {\n this.word(\"interface\");\n if (node.extends?.length) {\n this.space();\n this.word(\"extends\");\n this.space();\n this.printList(node.extends);\n }\n this.space();\n this.print(node.body);\n}\nfunction IntersectionTypeAnnotation(node) {\n this.printJoin(node.types, undefined, undefined, andSeparator);\n}\nfunction MixedTypeAnnotation() {\n this.word(\"mixed\");\n}\nfunction EmptyTypeAnnotation() {\n this.word(\"empty\");\n}\nfunction NullableTypeAnnotation(node) {\n this.tokenChar(63);\n this.print(node.typeAnnotation);\n}\nfunction NumberTypeAnnotation() {\n this.word(\"number\");\n}\nfunction StringTypeAnnotation() {\n this.word(\"string\");\n}\nfunction ThisTypeAnnotation() {\n this.word(\"this\");\n}\nfunction TupleTypeAnnotation(node) {\n this.tokenChar(91);\n this.printList(node.types);\n this.tokenChar(93);\n}\nfunction TypeofTypeAnnotation(node) {\n this.word(\"typeof\");\n this.space();\n this.print(node.argument);\n}\nfunction TypeAlias(node) {\n this.word(\"type\");\n this.space();\n this.print(node.id);\n this.print(node.typeParameters);\n this.space();\n this.tokenChar(61);\n this.space();\n this.print(node.right);\n this.semicolon();\n}\nfunction TypeAnnotation(node, parent) {\n this.tokenChar(58);\n this.space();\n if (parent.type === \"ArrowFunctionExpression\") {\n this.tokenContext |= 8;\n } else if (node.optional) {\n this.tokenChar(63);\n }\n this.print(node.typeAnnotation);\n}\nfunction TypeParameterInstantiation(node) {\n this.tokenChar(60);\n this.printList(node.params);\n this.tokenChar(62);\n}\nfunction TypeParameter(node) {\n _variance.call(this, node);\n this.word(node.name);\n if (node.bound) {\n this.print(node.bound);\n }\n if (node.default) {\n this.space();\n this.tokenChar(61);\n this.space();\n this.print(node.default);\n }\n}\nfunction OpaqueType(node) {\n this.word(\"opaque\");\n this.space();\n this.word(\"type\");\n this.space();\n this.print(node.id);\n this.print(node.typeParameters);\n if (node.supertype) {\n this.tokenChar(58);\n this.space();\n this.print(node.supertype);\n }\n if (node.impltype) {\n this.space();\n this.tokenChar(61);\n this.space();\n this.print(node.impltype);\n }\n this.semicolon();\n}\nfunction ObjectTypeAnnotation(node) {\n if (node.exact) {\n this.token(\"{|\");\n } else {\n this.tokenChar(123);\n }\n const props = [...node.properties, ...(node.callProperties || []), ...(node.indexers || []), ...(node.internalSlots || [])];\n if (props.length) {\n this.newline();\n this.space();\n this.printJoin(props, true, true, () => {\n if (props.length !== 1 || node.inexact) {\n this.tokenChar(44);\n this.space();\n }\n }, true);\n this.space();\n }\n if (node.inexact) {\n this.indent();\n this.token(\"...\");\n if (props.length) {\n this.newline();\n }\n this.dedent();\n }\n if (node.exact) {\n this.token(\"|}\");\n } else {\n this.tokenChar(125);\n }\n}\nfunction ObjectTypeInternalSlot(node) {\n if (node.static) {\n this.word(\"static\");\n this.space();\n }\n this.tokenChar(91);\n this.tokenChar(91);\n this.print(node.id);\n this.tokenChar(93);\n this.tokenChar(93);\n if (node.optional) this.tokenChar(63);\n if (!node.method) {\n this.tokenChar(58);\n this.space();\n }\n this.print(node.value);\n}\nfunction ObjectTypeCallProperty(node) {\n if (node.static) {\n this.word(\"static\");\n this.space();\n }\n this.print(node.value);\n}\nfunction ObjectTypeIndexer(node) {\n if (node.static) {\n this.word(\"static\");\n this.space();\n }\n _variance.call(this, node);\n this.tokenChar(91);\n if (node.id) {\n this.print(node.id);\n this.tokenChar(58);\n this.space();\n }\n this.print(node.key);\n this.tokenChar(93);\n this.tokenChar(58);\n this.space();\n this.print(node.value);\n}\nfunction ObjectTypeProperty(node) {\n if (node.proto) {\n this.word(\"proto\");\n this.space();\n }\n if (node.static) {\n this.word(\"static\");\n this.space();\n }\n if (node.kind === \"get\" || node.kind === \"set\") {\n this.word(node.kind);\n this.space();\n }\n _variance.call(this, node);\n this.print(node.key);\n if (node.optional) this.tokenChar(63);\n if (!node.method) {\n this.tokenChar(58);\n this.space();\n }\n this.print(node.value);\n}\nfunction ObjectTypeSpreadProperty(node) {\n this.token(\"...\");\n this.print(node.argument);\n}\nfunction QualifiedTypeIdentifier(node) {\n this.print(node.qualification);\n this.tokenChar(46);\n this.print(node.id);\n}\nfunction SymbolTypeAnnotation() {\n this.word(\"symbol\");\n}\nfunction orSeparator(occurrenceCount) {\n this.space();\n this.token(\"|\", false, occurrenceCount);\n this.space();\n}\nfunction UnionTypeAnnotation(node) {\n this.printJoin(node.types, undefined, undefined, orSeparator);\n}\nfunction TypeCastExpression(node) {\n this.tokenChar(40);\n this.print(node.expression);\n this.print(node.typeAnnotation);\n this.tokenChar(41);\n}\nfunction Variance(node) {\n if (node.kind === \"plus\") {\n this.tokenChar(43);\n } else {\n this.tokenChar(45);\n }\n}\nfunction VoidTypeAnnotation() {\n this.word(\"void\");\n}\nfunction IndexedAccessType(node) {\n this.print(node.objectType, true);\n this.tokenChar(91);\n this.print(node.indexType);\n this.tokenChar(93);\n}\nfunction OptionalIndexedAccessType(node) {\n this.print(node.objectType);\n if (node.optional) {\n this.token(\"?.\");\n }\n this.tokenChar(91);\n this.print(node.indexType);\n this.tokenChar(93);\n}\nconst {\n isExportDefaultDeclaration,\n isExportNamedDeclaration\n} = _t;\nfunction ClassDeclaration(node, parent) {\n const inExport = isExportDefaultDeclaration(parent) || isExportNamedDeclaration(parent);\n if (!inExport || !_shouldPrintDecoratorsBeforeExport.call(this, parent)) {\n this.printJoin(node.decorators);\n }\n if (node.declare) {\n this.word(\"declare\");\n this.space();\n }\n if (node.abstract) {\n this.word(\"abstract\");\n this.space();\n }\n this.word(\"class\");\n if (node.id) {\n this.space();\n this.print(node.id);\n }\n this.print(node.typeParameters);\n if (node.superClass) {\n this.space();\n this.word(\"extends\");\n this.space();\n this.print(node.superClass);\n this.print(node.superTypeArguments);\n }\n if (node.implements) {\n this.space();\n this.word(\"implements\");\n this.space();\n this.printList(node.implements);\n }\n this.space();\n this.print(node.body);\n}\nfunction ClassBody(node) {\n this.tokenChar(123);\n if (node.body.length === 0) {\n this.tokenChar(125);\n } else {\n const separator = classBodyEmptySemicolonsPrinter(this, node);\n separator?.(-1);\n const oldNoLineTerminatorAfterNode = this.enterDelimited();\n this.printJoin(node.body, true, true, separator, true, true);\n this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode;\n if (!this.endsWith(10)) this.newline();\n this.rightBrace(node);\n }\n}\nfunction classBodyEmptySemicolonsPrinter(printer, node) {\n if (!printer.tokenMap || node.start == null || node.end == null) {\n return null;\n }\n const indexes = printer.tokenMap.getIndexes(node);\n if (!indexes) return null;\n let k = 1;\n let occurrenceCount = 0;\n let nextLocIndex = 0;\n const advanceNextLocIndex = () => {\n while (nextLocIndex < node.body.length && node.body[nextLocIndex].start == null) {\n nextLocIndex++;\n }\n };\n advanceNextLocIndex();\n return i => {\n if (nextLocIndex <= i) {\n nextLocIndex = i + 1;\n advanceNextLocIndex();\n }\n const end = nextLocIndex === node.body.length ? node.end : node.body[nextLocIndex].start;\n let tok;\n while (k < indexes.length && printer.tokenMap.matchesOriginal(tok = printer._tokens[indexes[k]], \";\") && tok.start < end) {\n printer.tokenChar(59, occurrenceCount++);\n k++;\n }\n };\n}\nfunction ClassProperty(node) {\n this.printJoin(node.decorators);\n if (!node.static && !this.format.preserveFormat) {\n const endLine = node.key.loc?.end?.line;\n if (endLine) this.catchUp(endLine);\n }\n _tsPrintClassMemberModifiers.call(this, node);\n if (node.computed) {\n this.tokenChar(91);\n this.print(node.key);\n this.tokenChar(93);\n } else {\n _variance.call(this, node);\n this.print(node.key);\n }\n if (node.optional) {\n this.tokenChar(63);\n }\n if (node.definite) {\n this.tokenChar(33);\n }\n this.print(node.typeAnnotation);\n if (node.value) {\n this.space();\n this.tokenChar(61);\n this.space();\n this.print(node.value);\n }\n this.semicolon();\n}\nfunction ClassAccessorProperty(node) {\n this.printJoin(node.decorators);\n const endLine = node.key.loc?.end?.line;\n if (endLine) this.catchUp(endLine);\n _tsPrintClassMemberModifiers.call(this, node);\n this.word(\"accessor\", true);\n this.space();\n if (node.computed) {\n this.tokenChar(91);\n this.print(node.key);\n this.tokenChar(93);\n } else {\n _variance.call(this, node);\n this.print(node.key);\n }\n if (node.optional) {\n this.tokenChar(63);\n }\n if (node.definite) {\n this.tokenChar(33);\n }\n this.print(node.typeAnnotation);\n if (node.value) {\n this.space();\n this.tokenChar(61);\n this.space();\n this.print(node.value);\n }\n this.semicolon();\n}\nfunction ClassPrivateProperty(node) {\n this.printJoin(node.decorators);\n _tsPrintClassMemberModifiers.call(this, node);\n this.print(node.key);\n if (node.optional) {\n this.tokenChar(63);\n }\n if (node.definite) {\n this.tokenChar(33);\n }\n this.print(node.typeAnnotation);\n if (node.value) {\n this.space();\n this.tokenChar(61);\n this.space();\n this.print(node.value);\n }\n this.semicolon();\n}\nfunction ClassMethod(node) {\n _classMethodHead.call(this, node);\n this.space();\n this.print(node.body);\n}\nfunction ClassPrivateMethod(node) {\n _classMethodHead.call(this, node);\n this.space();\n this.print(node.body);\n}\nfunction _classMethodHead(node, allowDecorators = true) {\n if (allowDecorators) {\n this.printJoin(node.decorators);\n }\n if (!this.format.preserveFormat) {\n const endLine = node.key.loc?.end?.line;\n if (endLine) this.catchUp(endLine);\n }\n _tsPrintClassMemberModifiers.call(this, node);\n _methodHead.call(this, node);\n}\nfunction StaticBlock(node) {\n this.word(\"static\");\n this.space();\n this.tokenChar(123);\n if (node.body.length === 0) {\n this.tokenChar(125);\n } else {\n this.newline();\n this.printSequence(node.body, true);\n this.rightBrace(node);\n }\n}\nfunction File(node) {\n if (node.program) {\n this.print(node.program.interpreter);\n }\n this.print(node.program);\n}\nfunction Program(node) {\n this.printInnerComments(false);\n const directivesLen = node.directives?.length;\n if (directivesLen) {\n const newline = node.body.length ? 2 : 1;\n this.printSequence(node.directives, undefined, undefined, newline);\n if (!node.directives[directivesLen - 1].trailingComments?.length) {\n this.newline(newline);\n }\n }\n this.printSequence(node.body);\n}\nfunction BlockStatement(node) {\n this.tokenChar(123);\n const oldNoLineTerminatorAfterNode = this.enterDelimited();\n const directivesLen = node.directives?.length;\n if (directivesLen) {\n const newline = node.body.length ? 2 : 1;\n this.printSequence(node.directives, true, true, newline);\n if (!node.directives[directivesLen - 1].trailingComments?.length) {\n this.newline(newline);\n }\n }\n this.printSequence(node.body, true, true);\n this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode;\n this.rightBrace(node);\n}\nfunction Directive(node) {\n this.print(node.value);\n this.semicolon();\n}\nconst unescapedSingleQuoteRE = /(?:^|[^\\\\])(?:\\\\\\\\)*'/;\nconst unescapedDoubleQuoteRE = /(?:^|[^\\\\])(?:\\\\\\\\)*\"/;\nfunction DirectiveLiteral(node) {\n const raw = this.getPossibleRaw(node);\n if (!this.format.minified && raw !== undefined) {\n this.token(raw);\n return;\n }\n const {\n value\n } = node;\n if (!unescapedDoubleQuoteRE.test(value)) {\n this.token(`\"${value}\"`);\n } else if (!unescapedSingleQuoteRE.test(value)) {\n this.token(`'${value}'`);\n } else {\n throw new Error(\"Malformed AST: it is not possible to print a directive containing\" + \" both unescaped single and double quotes.\");\n }\n}\nfunction InterpreterDirective(node) {\n this.token(`#!${node.value}`);\n this._newline();\n}\nfunction Placeholder(node) {\n this.token(\"%%\");\n this.print(node.name);\n this.token(\"%%\");\n if (node.expectedNode === \"Statement\") {\n this.semicolon();\n }\n}\nfunction JSXAttribute(node) {\n this.print(node.name);\n if (node.value) {\n this.tokenChar(61);\n this.print(node.value);\n }\n}\nfunction JSXIdentifier(node) {\n this.word(node.name);\n}\nfunction JSXNamespacedName(node) {\n this.print(node.namespace);\n this.tokenChar(58);\n this.print(node.name);\n}\nfunction JSXMemberExpression(node) {\n this.print(node.object);\n this.tokenChar(46);\n this.print(node.property);\n}\nfunction JSXSpreadAttribute(node) {\n this.tokenChar(123);\n this.token(\"...\");\n this.print(node.argument);\n this.rightBrace(node);\n}\nfunction JSXExpressionContainer(node) {\n this.tokenChar(123);\n this.print(node.expression);\n this.rightBrace(node);\n}\nfunction JSXSpreadChild(node) {\n this.tokenChar(123);\n this.token(\"...\");\n this.print(node.expression);\n this.rightBrace(node);\n}\nfunction JSXText(node) {\n const raw = this.getPossibleRaw(node);\n if (raw !== undefined) {\n this.token(raw, true);\n } else {\n this.token(node.value, true);\n }\n}\nfunction JSXElement(node) {\n const open = node.openingElement;\n this.print(open);\n if (open.selfClosing) return;\n this.indent();\n for (const child of node.children) {\n this.print(child);\n }\n this.dedent();\n this.print(node.closingElement);\n}\nfunction spaceSeparator() {\n this.space();\n}\nfunction JSXOpeningElement(node) {\n this.tokenChar(60);\n this.print(node.name);\n this.print(node.typeArguments);\n if (node.attributes.length > 0) {\n this.space();\n this.printJoin(node.attributes, undefined, undefined, spaceSeparator);\n }\n if (node.selfClosing) {\n this.space();\n this.tokenChar(47);\n }\n this.tokenChar(62);\n}\nfunction JSXClosingElement(node) {\n this.tokenChar(60);\n this.tokenChar(47);\n this.print(node.name);\n this.tokenChar(62);\n}\nfunction JSXEmptyExpression() {\n this.printInnerComments();\n}\nfunction JSXFragment(node) {\n this.print(node.openingFragment);\n this.indent();\n for (const child of node.children) {\n this.print(child);\n }\n this.dedent();\n this.print(node.closingFragment);\n}\nfunction JSXOpeningFragment() {\n this.tokenChar(60);\n this.tokenChar(62);\n}\nfunction JSXClosingFragment() {\n this.token(\"</\");\n this.tokenChar(62);\n}\nconst generatorFunctions = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n AnyTypeAnnotation,\n ArgumentPlaceholder,\n ArrayExpression,\n ArrayPattern: ArrayExpression,\n ArrayTypeAnnotation,\n ArrowFunctionExpression,\n AssignmentExpression,\n AssignmentPattern,\n AwaitExpression,\n BigIntLiteral,\n BigIntLiteralTypeAnnotation: BigIntLiteral,\n BinaryExpression,\n BindExpression,\n BlockStatement,\n BooleanLiteral,\n BooleanLiteralTypeAnnotation,\n BooleanTypeAnnotation,\n BreakStatement,\n CallExpression,\n CatchClause,\n ClassAccessorProperty,\n ClassBody,\n ClassDeclaration,\n ClassExpression: ClassDeclaration,\n ClassImplements: InterfaceExtends,\n ClassMethod,\n ClassPrivateMethod,\n ClassPrivateProperty,\n ClassProperty,\n ConditionalExpression,\n ContinueStatement,\n DebuggerStatement,\n DeclareClass,\n DeclareExportAllDeclaration,\n DeclareExportDeclaration,\n DeclareFunction,\n DeclareInterface,\n DeclareModule,\n DeclareModuleExports,\n DeclareOpaqueType,\n DeclareTypeAlias,\n DeclareVariable,\n DeclaredPredicate,\n Decorator,\n Directive,\n DirectiveLiteral,\n DoExpression,\n DoWhileStatement,\n EmptyStatement,\n EmptyTypeAnnotation,\n EnumBooleanBody,\n EnumBooleanMember,\n EnumDeclaration,\n EnumDefaultedMember,\n EnumNumberBody,\n EnumNumberMember,\n EnumStringBody,\n EnumStringMember,\n EnumSymbolBody,\n ExistsTypeAnnotation,\n ExportAllDeclaration,\n ExportDefaultDeclaration,\n ExportDefaultSpecifier,\n ExportNamedDeclaration,\n ExportNamespaceSpecifier,\n ExportSpecifier,\n ExpressionStatement,\n File,\n ForInStatement,\n ForOfStatement,\n ForStatement,\n FunctionDeclaration: FunctionExpression,\n FunctionExpression,\n FunctionTypeAnnotation,\n FunctionTypeParam,\n GenericTypeAnnotation: InterfaceExtends,\n Identifier,\n IfStatement,\n Import,\n ImportAttribute,\n ImportDeclaration,\n ImportDefaultSpecifier,\n ImportExpression,\n ImportNamespaceSpecifier,\n ImportSpecifier,\n IndexedAccessType,\n InferredPredicate,\n InterfaceDeclaration,\n InterfaceExtends,\n InterfaceTypeAnnotation,\n InterpreterDirective,\n IntersectionTypeAnnotation,\n JSXAttribute,\n JSXClosingElement,\n JSXClosingFragment,\n JSXElement,\n JSXEmptyExpression,\n JSXExpressionContainer,\n JSXFragment,\n JSXIdentifier,\n JSXMemberExpression,\n JSXNamespacedName,\n JSXOpeningElement,\n JSXOpeningFragment,\n JSXSpreadAttribute,\n JSXSpreadChild,\n JSXText,\n LabeledStatement,\n LogicalExpression: AssignmentExpression,\n MemberExpression,\n MetaProperty,\n MixedTypeAnnotation,\n ModuleExpression,\n NewExpression,\n NullLiteral,\n NullLiteralTypeAnnotation,\n NullableTypeAnnotation,\n NumberLiteralTypeAnnotation: NumericLiteral,\n NumberTypeAnnotation,\n NumericLiteral,\n ObjectExpression,\n ObjectMethod,\n ObjectPattern: ObjectExpression,\n ObjectProperty,\n ObjectTypeAnnotation,\n ObjectTypeCallProperty,\n ObjectTypeIndexer,\n ObjectTypeInternalSlot,\n ObjectTypeProperty,\n ObjectTypeSpreadProperty,\n OpaqueType,\n OptionalCallExpression,\n OptionalIndexedAccessType,\n OptionalMemberExpression,\n ParenthesizedExpression,\n Placeholder,\n PrivateName,\n Program,\n QualifiedTypeIdentifier,\n RegExpLiteral,\n RestElement,\n ReturnStatement,\n SequenceExpression,\n SpreadElement: RestElement,\n StaticBlock,\n StringLiteral,\n StringLiteralTypeAnnotation: StringLiteral,\n StringTypeAnnotation,\n Super,\n SwitchCase,\n SwitchStatement,\n SymbolTypeAnnotation,\n TSAnyKeyword,\n TSArrayType,\n TSAsExpression,\n TSBigIntKeyword,\n TSBooleanKeyword,\n TSCallSignatureDeclaration,\n TSClassImplements,\n TSConditionalType,\n TSConstructSignatureDeclaration,\n TSConstructorType,\n TSDeclareFunction,\n TSDeclareMethod,\n TSEnumBody,\n TSEnumDeclaration,\n TSEnumMember,\n TSExportAssignment,\n TSExternalModuleReference,\n TSFunctionType,\n TSImportEqualsDeclaration,\n TSImportType,\n TSIndexSignature,\n TSIndexedAccessType,\n TSInferType,\n TSInstantiationExpression,\n TSInterfaceBody,\n TSInterfaceDeclaration,\n TSInterfaceHeritage: TSClassImplements,\n TSIntersectionType,\n TSIntrinsicKeyword,\n TSLiteralType,\n TSMappedType,\n TSMethodSignature,\n TSModuleBlock,\n TSModuleDeclaration,\n TSNamedTupleMember,\n TSNamespaceExportDeclaration,\n TSNeverKeyword,\n TSNonNullExpression,\n TSNullKeyword,\n TSNumberKeyword,\n TSObjectKeyword,\n TSOptionalType,\n TSParameterProperty,\n TSParenthesizedType,\n TSPropertySignature,\n TSQualifiedName,\n TSRestType,\n TSSatisfiesExpression,\n TSStringKeyword,\n TSSymbolKeyword,\n TSTemplateLiteralType,\n TSThisType,\n TSTupleType,\n TSTypeAliasDeclaration,\n TSTypeAnnotation,\n TSTypeAssertion,\n TSTypeLiteral,\n TSTypeOperator,\n TSTypeParameter,\n TSTypeParameterDeclaration: TSTypeParameterInstantiation,\n TSTypeParameterInstantiation,\n TSTypePredicate,\n TSTypeQuery,\n TSTypeReference,\n TSUndefinedKeyword,\n TSUnionType,\n TSUnknownKeyword,\n TSVoidKeyword,\n TaggedTemplateExpression,\n TemplateElement,\n TemplateLiteral,\n ThisExpression,\n ThisTypeAnnotation,\n ThrowStatement,\n TopicReference,\n TryStatement,\n TupleTypeAnnotation,\n TypeAlias,\n TypeAnnotation,\n TypeCastExpression,\n TypeParameter,\n TypeParameterDeclaration: TypeParameterInstantiation,\n TypeParameterInstantiation,\n TypeofTypeAnnotation,\n UnaryExpression,\n UnionTypeAnnotation,\n UpdateExpression,\n V8IntrinsicIdentifier,\n VariableDeclaration,\n VariableDeclarator,\n Variance,\n VoidPattern,\n VoidTypeAnnotation,\n WhileStatement,\n WithStatement,\n YieldExpression,\n _classMethodHead,\n _functionHead,\n _getRawIdentifier,\n _interfaceish,\n _methodHead,\n _param,\n _parameters,\n _params,\n _predicate,\n _printAttributes,\n _printTemplate,\n _shouldPrintArrowParamsParens,\n _shouldPrintDecoratorsBeforeExport,\n _tsPrintClassMemberModifiers,\n _variance\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst generatorInfosMap = new Map();\nlet index = 0;\nfor (const key of Object.keys(generatorFunctions).sort()) {\n if (key.startsWith(\"_\")) continue;\n generatorInfosMap.set(key, [generatorFunctions[key], index++, undefined]);\n}\nconst {\n VISITOR_KEYS: VISITOR_KEYS$1\n} = _t;\nfor (const type of Object.keys(parens)) {\n const func = parens[type];\n if (generatorInfosMap.has(type)) {\n generatorInfosMap.get(type)[2] = func;\n }\n}\nfunction newCalleeNeedsParens(node) {\n let current = node;\n while (true) {\n switch (current.type) {\n case \"CallExpression\":\n case \"ImportExpression\":\n case \"OptionalCallExpression\":\n case \"OptionalMemberExpression\":\n return true;\n case \"MemberExpression\":\n current = current.object;\n break;\n case \"TaggedTemplateExpression\":\n current = current.tag;\n break;\n case \"TSNonNullExpression\":\n current = current.expression;\n break;\n default:\n return false;\n }\n }\n}\nfunction parentNeedsParens(node, parent, parentId) {\n switch (parentId) {\n case 113:\n if (parent.callee === node) {\n return newCalleeNeedsParens(node);\n }\n break;\n case 43:\n return !isDecoratorMemberExpression(node) && !(node.type === \"CallExpression\" && isDecoratorMemberExpression(node.callee)) && node.type !== \"ParenthesizedExpression\";\n }\n return false;\n}\nfunction isDecoratorMemberExpression(node) {\n switch (node.type) {\n case \"Identifier\":\n return true;\n case \"MemberExpression\":\n return !node.computed && node.property.type === \"Identifier\" && isDecoratorMemberExpression(node.object);\n default:\n return false;\n }\n}\nfunction isLastChild(parent, child) {\n const visitorKeys = VISITOR_KEYS$1[parent.type];\n for (let i = visitorKeys.length - 1; i >= 0; i--) {\n const val = parent[visitorKeys[i]];\n if (val === child) {\n return true;\n } else if (Array.isArray(val)) {\n let j = val.length - 1;\n while (j >= 0 && val[j] === null) j--;\n return j >= 0 && val[j] === child;\n } else if (val) {\n return false;\n }\n }\n return false;\n}\nconst {\n traverseFast,\n VISITOR_KEYS\n} = _t;\nclass TokenMap {\n _tokens;\n _source;\n _nodesToTokenIndexes = new Map();\n _nodesOccurrencesCountCache = new Map();\n _tokensCache = new Map();\n constructor(ast, tokens, source) {\n this._tokens = tokens;\n this._source = source;\n traverseFast(ast, node => {\n const indexes = this._getTokensIndexesOfNode(node);\n if (indexes.length > 0) this._nodesToTokenIndexes.set(node, indexes);\n });\n this._tokensCache.clear();\n }\n has(node) {\n return this._nodesToTokenIndexes.has(node);\n }\n getIndexes(node) {\n return this._nodesToTokenIndexes.get(node);\n }\n find(node, condition) {\n const indexes = this._nodesToTokenIndexes.get(node);\n if (indexes) {\n for (let k = 0; k < indexes.length; k++) {\n const index = indexes[k];\n const tok = this._tokens[index];\n if (condition(tok, index)) return tok;\n }\n }\n return null;\n }\n findLastIndex(node, condition) {\n const indexes = this._nodesToTokenIndexes.get(node);\n if (indexes) {\n for (let k = indexes.length - 1; k >= 0; k--) {\n const index = indexes[k];\n const tok = this._tokens[index];\n if (condition(tok, index)) return index;\n }\n }\n return -1;\n }\n findMatching(node, test, occurrenceCount = 0) {\n const indexes = this._nodesToTokenIndexes.get(node);\n if (indexes) {\n if (typeof test === \"number\") {\n test = String.fromCharCode(test);\n }\n let i = 0;\n const count = occurrenceCount;\n if (count > 1) {\n const cache = this._nodesOccurrencesCountCache.get(node);\n if (cache?.test === test && cache.count < count) {\n i = cache.i + 1;\n occurrenceCount -= cache.count + 1;\n }\n }\n for (; i < indexes.length; i++) {\n const tok = this._tokens[indexes[i]];\n if (this.matchesOriginal(tok, test)) {\n if (occurrenceCount === 0) {\n if (count > 0) {\n this._nodesOccurrencesCountCache.set(node, {\n test,\n count,\n i\n });\n }\n return tok;\n }\n occurrenceCount--;\n }\n }\n }\n return null;\n }\n matchesOriginal(token, test) {\n if (token.end - token.start !== test.length) return false;\n if (token.value != null) return token.value === test;\n return this._source.startsWith(test, token.start);\n }\n startMatches(node, test) {\n const indexes = this._nodesToTokenIndexes.get(node);\n if (!indexes) return false;\n const tok = this._tokens[indexes[0]];\n if (tok.start !== node.start) return false;\n return this.matchesOriginal(tok, test);\n }\n endMatches(node, test) {\n const indexes = this._nodesToTokenIndexes.get(node);\n if (!indexes) return false;\n const tok = this._tokens[indexes[indexes.length - 1]];\n if (tok.end !== node.end) return false;\n return this.matchesOriginal(tok, test);\n }\n _getTokensIndexesOfNode(node) {\n if (node.start == null || node.end == null) return [];\n const {\n first,\n last\n } = this._findTokensOfNode(node, 0, this._tokens.length - 1);\n let low = first;\n const children = childrenIterator(node);\n if ((node.type === \"ExportNamedDeclaration\" || node.type === \"ExportDefaultDeclaration\") && node.declaration?.type === \"ClassDeclaration\") {\n children.next();\n }\n const indexes = [];\n for (const child of children) {\n if (child == null) continue;\n if (child.start == null || child.end == null) continue;\n const childTok = this._findTokensOfNode(child, low, last);\n const high = childTok.first;\n for (let k = low; k < high; k++) indexes.push(k);\n low = childTok.last + 1;\n }\n for (let k = low; k <= last; k++) indexes.push(k);\n return indexes;\n }\n _findTokensOfNode(node, low, high) {\n const cached = this._tokensCache.get(node);\n if (cached) return cached;\n const first = this._findFirstTokenOfNode(node.start, low, high);\n const last = this._findLastTokenOfNode(node.end, first, high);\n this._tokensCache.set(node, {\n first,\n last\n });\n return {\n first,\n last\n };\n }\n _findFirstTokenOfNode(start, low, high) {\n while (low <= high) {\n const mid = high + low >> 1;\n if (start < this._tokens[mid].start) {\n high = mid - 1;\n } else if (start > this._tokens[mid].start) {\n low = mid + 1;\n } else {\n return mid;\n }\n }\n return low;\n }\n _findLastTokenOfNode(end, low, high) {\n while (low <= high) {\n const mid = high + low >> 1;\n if (end < this._tokens[mid].end) {\n high = mid - 1;\n } else if (end > this._tokens[mid].end) {\n low = mid + 1;\n } else {\n return mid;\n }\n }\n return high;\n }\n}\nfunction* childrenIterator(node) {\n if (node.type === \"TemplateLiteral\") {\n yield node.quasis[0];\n for (let i = 1; i < node.quasis.length; i++) {\n yield node.expressions[i - 1];\n yield node.quasis[i];\n }\n return;\n }\n const keys = VISITOR_KEYS[node.type];\n for (const key of keys) {\n const child = node[key];\n if (!child) continue;\n if (Array.isArray(child)) {\n yield* child;\n } else {\n yield child;\n }\n }\n}\nconst {\n isExpression,\n isFunction,\n isStatement,\n isClassBody,\n isTSInterfaceBody,\n isTSEnumMember\n} = _t;\nconst SCIENTIFIC_NOTATION = /e/i;\nconst ZERO_DECIMAL_INTEGER = /\\.0+$/;\nconst HAS_NEWLINE = /[\\n\\r\\u2028\\u2029]/;\nconst HAS_NEWLINE_OR_BlOCK_COMMENT_END = /[\\n\\r\\u2028\\u2029]|\\*\\//;\nfunction commentIsNewline(c) {\n return c.type === \"CommentLine\" || HAS_NEWLINE.test(c.value);\n}\nclass Printer {\n constructor(format, map, tokens = null, originalCode = null) {\n this.format = format;\n this._tokens = tokens;\n this._originalCode = originalCode;\n this._indentRepeat = format.indent.style.length;\n this._inputMap = map?._inputMap || null;\n this._buf = new Buffer(map, format.indent.style[0]);\n const {\n preserveFormat,\n compact,\n concise,\n retainLines,\n retainFunctionParens\n } = format;\n if (preserveFormat) {\n this._flags |= 1;\n }\n if (compact) {\n this._flags |= 2;\n }\n if (concise) {\n this._flags |= 4;\n }\n if (retainLines) {\n this._flags |= 8;\n }\n if (retainFunctionParens) {\n this._flags |= 16;\n }\n if (format.auxiliaryCommentBefore || format.auxiliaryCommentAfter) {\n this._flags |= 32;\n }\n }\n enterDelimited() {\n const oldNoLineTerminatorAfterNode = this._noLineTerminatorAfterNode;\n if (oldNoLineTerminatorAfterNode !== null) {\n this._noLineTerminatorAfterNode = null;\n }\n return oldNoLineTerminatorAfterNode;\n }\n tokenContext = 0;\n _tokens = null;\n _originalCode = null;\n _currentNode = null;\n _currentTypeId = null;\n _indent = 0;\n _indentRepeat = 0;\n _insideAux = false;\n _noLineTerminator = false;\n _noLineTerminatorAfterNode = null;\n _printAuxAfterOnNextUserNode = false;\n _printedComments = new Set();\n _lastCommentLine = 0;\n _innerCommentsState = 0;\n _flags = 0;\n tokenMap = null;\n _boundGetRawIdentifier = null;\n generate(ast) {\n if (this.format.preserveFormat) {\n this.tokenMap = new TokenMap(ast, this._tokens, this._originalCode);\n this._boundGetRawIdentifier = _getRawIdentifier.bind(this);\n }\n this.print(ast);\n this._maybeAddAuxComment();\n return this._buf.get();\n }\n indent(flags = this._flags) {\n if (flags & (1 | 2 | 4)) {\n return;\n }\n this._indent += this._indentRepeat;\n }\n dedent(flags = this._flags) {\n if (flags & (1 | 2 | 4)) {\n return;\n }\n this._indent -= this._indentRepeat;\n }\n _printSemicolonBeforeNextNode = -1;\n _printSemicolonBeforeNextToken = -1;\n semicolon(force = false) {\n const flags = this._flags;\n if (flags & 32) {\n this._maybeAddAuxComment();\n }\n if (flags & 1) {\n const node = this._currentNode;\n if (node.start != null && node.end != null) {\n if (!this.tokenMap.endMatches(node, \";\")) {\n this._printSemicolonBeforeNextNode = this._buf.getCurrentLine();\n return;\n }\n const indexes = this.tokenMap.getIndexes(this._currentNode);\n this._catchUpTo(this._tokens[indexes[indexes.length - 1]].loc.start);\n }\n }\n if (force) {\n this._appendChar(59);\n } else {\n this._queue(59);\n }\n this._noLineTerminator = false;\n }\n rightBrace(node) {\n if (this.format.minified) {\n this._buf.removeLastSemicolon();\n }\n this.sourceWithOffset(\"end\", node.loc, -1);\n this.tokenChar(125);\n }\n rightParens(node) {\n this.sourceWithOffset(\"end\", node.loc, -1);\n this.tokenChar(41);\n }\n space(force = false) {\n if (this._flags & (1 | 2)) {\n return;\n }\n if (force) {\n this._space();\n } else {\n const lastCp = this.getLastChar(true);\n if (lastCp !== 0 && lastCp !== 32 && lastCp !== 10) {\n this._space();\n }\n }\n }\n word(str, noLineTerminatorAfter = false) {\n this.tokenContext &= 128;\n this._maybePrintInnerComments(str);\n const flags = this._flags;\n if (flags & 32) {\n this._maybeAddAuxComment();\n }\n if (flags & 1) this._catchUpToCurrentToken(str);\n const lastChar = this.getLastChar();\n if (lastChar === -2 || lastChar === -3 || lastChar === 47 && str.charCodeAt(0) === 47) {\n this._space();\n }\n this._append(str, false);\n this.setLastChar(-3);\n this._noLineTerminator = noLineTerminatorAfter;\n }\n number(str, number) {\n function isNonDecimalLiteral(str) {\n if (str.length > 2 && str.charCodeAt(0) === 48) {\n const secondChar = str.charCodeAt(1);\n return secondChar === 98 || secondChar === 111 || secondChar === 120;\n }\n return false;\n }\n this.word(str);\n if (Number.isInteger(number) && !isNonDecimalLiteral(str) && !SCIENTIFIC_NOTATION.test(str) && !ZERO_DECIMAL_INTEGER.test(str) && str.charCodeAt(str.length - 1) !== 46) {\n this.setLastChar(-2);\n }\n }\n token(str, maybeNewline = false, occurrenceCount = 0, mayNeedSpace = false) {\n this.tokenContext &= 128;\n this._maybePrintInnerComments(str, occurrenceCount);\n const flags = this._flags;\n if (flags & 32) {\n this._maybeAddAuxComment();\n }\n if (flags & 1) {\n this._catchUpToCurrentToken(str, occurrenceCount);\n }\n if (mayNeedSpace) {\n const strFirst = str.charCodeAt(0);\n if ((strFirst === 45 && str === \"--\" || strFirst === 61) && this.getLastChar() === 33 || strFirst === 43 && this.getLastChar() === 43 || strFirst === 45 && this.getLastChar() === 45 || strFirst === 46 && this.getLastChar() === -2) {\n this._space();\n }\n }\n this._append(str, maybeNewline);\n this._noLineTerminator = false;\n }\n tokenChar(char, occurrenceCount = 0) {\n this.tokenContext &= 128;\n this._maybePrintInnerComments(char, occurrenceCount);\n const flags = this._flags;\n if (flags & 32) {\n this._maybeAddAuxComment();\n }\n if (flags & 1) {\n this._catchUpToCurrentToken(char, occurrenceCount);\n }\n if (char === 43 && this.getLastChar() === 43 || char === 45 && this.getLastChar() === 45 || char === 46 && this.getLastChar() === -2) {\n this._space();\n }\n this._appendChar(char);\n this._noLineTerminator = false;\n }\n newline(i = 1, flags = this._flags) {\n if (i <= 0) return;\n if (flags & (8 | 2)) {\n return;\n }\n if (flags & 4) {\n this.space();\n return;\n }\n if (i > 2) i = 2;\n i -= this._buf.getNewlineCount();\n for (let j = 0; j < i; j++) {\n this._newline();\n }\n }\n endsWith(char) {\n return this.getLastChar(true) === char;\n }\n getLastChar(checkQueue) {\n return this._buf.getLastChar(checkQueue);\n }\n setLastChar(char) {\n this._buf._last = char;\n }\n exactSource(loc, cb) {\n if (!loc) {\n cb();\n return;\n }\n this._catchUp(\"start\", loc);\n this._buf.exactSource(loc, cb);\n }\n source(prop, loc) {\n if (!loc) return;\n this._catchUp(prop, loc);\n this._buf.source(prop, loc);\n }\n sourceWithOffset(prop, loc, columnOffset) {\n if (!loc || this.format.preserveFormat) return;\n this._catchUp(prop, loc);\n this._buf.sourceWithOffset(prop, loc, columnOffset);\n }\n sourceIdentifierName(identifierName, pos) {\n if (!this._buf._canMarkIdName) return;\n const sourcePosition = this._buf._sourcePosition;\n sourcePosition.identifierNamePos = pos;\n sourcePosition.identifierName = identifierName;\n }\n _space() {\n this._queue(32);\n }\n _newline() {\n if (this._buf._queuedChar === 32) this._buf._queuedChar = 0;\n this._appendChar(10, true);\n }\n _catchUpToCurrentToken(str, occurrenceCount = 0) {\n const token = this.tokenMap.findMatching(this._currentNode, str, occurrenceCount);\n if (token) this._catchUpTo(token.loc.start);\n if (this._printSemicolonBeforeNextToken !== -1 && this._printSemicolonBeforeNextToken === this._buf.getCurrentLine()) {\n this._appendChar(59, true);\n }\n this._printSemicolonBeforeNextToken = -1;\n this._printSemicolonBeforeNextNode = -1;\n }\n _append(str, maybeNewline) {\n this._maybeIndent();\n this._buf.append(str, maybeNewline);\n }\n _appendChar(char, noIndent) {\n if (!noIndent) {\n this._maybeIndent();\n }\n this._buf.appendChar(char);\n }\n _queue(char) {\n this._buf.queue(char);\n this.setLastChar(-1);\n }\n _maybeIndent() {\n const indent = this._shouldIndent();\n if (indent > 0) {\n this._buf._appendChar(-1, indent, false);\n }\n }\n _shouldIndent() {\n return this.endsWith(10) ? this._indent : 0;\n }\n catchUp(line) {\n if (!this.format.retainLines) return;\n const count = line - this._buf.getCurrentLine();\n for (let i = 0; i < count; i++) {\n this._newline();\n }\n }\n _catchUp(prop, loc) {\n const flags = this._flags;\n if ((flags & 1) === 0) {\n if (flags & 8 && loc?.[prop]) {\n this.catchUp(loc[prop].line);\n }\n return;\n }\n const pos = loc?.[prop];\n if (pos != null) this._catchUpTo(pos);\n }\n _catchUpTo({\n line,\n column,\n index\n }) {\n const count = line - this._buf.getCurrentLine();\n if (count > 0 && this._noLineTerminator) {\n return;\n }\n for (let i = 0; i < count; i++) {\n this._newline();\n }\n const spacesCount = count > 0 ? column : column - this._buf.getCurrentColumn();\n if (spacesCount > 0) {\n const spaces = this._originalCode ? this._originalCode.slice(index - spacesCount, index).replace(/[^\\t\\v\\f\\uFEFF\\p{Space_Separator}]/gu, \" \") : \" \".repeat(spacesCount);\n this._buf.append(spaces, false, true);\n this._buf.setSourcePosition(line, column);\n this.setLastChar(32);\n }\n }\n printTerminatorless(node) {\n this._noLineTerminator = true;\n this.print(node);\n }\n print(node, noLineTerminatorAfter = false, resetTokenContext = false, trailingCommentsLineOffset) {\n if (!node) return;\n this._innerCommentsState = 0;\n const {\n type,\n loc,\n extra\n } = node;\n const flags = this._flags;\n let changedFlags = false;\n if (node._compact) {\n this._flags |= 4;\n changedFlags = true;\n }\n const nodeInfo = generatorInfosMap.get(type);\n if (nodeInfo === undefined) {\n throw new ReferenceError(`unknown node of type ${JSON.stringify(type)} with constructor ${JSON.stringify(node.constructor.name)}`);\n }\n const [printMethod, nodeId, needsParens] = nodeInfo;\n const parent = this._currentNode;\n const parentId = this._currentTypeId;\n this._currentNode = node;\n this._currentTypeId = nodeId;\n if (flags & 1) {\n this._printSemicolonBeforeNextToken = this._printSemicolonBeforeNextNode;\n }\n let oldInAux;\n if (flags & 32) {\n oldInAux = this._insideAux;\n this._insideAux = loc == null;\n this._maybeAddAuxComment(this._insideAux && !oldInAux);\n }\n let oldTokenContext = 0;\n if (resetTokenContext) {\n oldTokenContext = this.tokenContext;\n if (oldTokenContext & 128) {\n this.tokenContext = 0;\n } else {\n oldTokenContext = 0;\n }\n }\n const parenthesized = extra != null && extra.parenthesized;\n let shouldPrintParens = parenthesized && flags & 1 || parenthesized && flags & 16 && nodeId === 72 || parent && (parentNeedsParens(node, parent, parentId) || needsParens != null && needsParens(node, parent, parentId, this.tokenContext, flags & 1 ? this._boundGetRawIdentifier : undefined));\n if (!shouldPrintParens && parenthesized && node.leadingComments?.length && node.leadingComments[0].type === \"CommentBlock\") {\n switch (parentId) {\n case 66:\n case 241:\n case 6:\n case 141:\n break;\n case 18:\n case 131:\n case 113:\n if (parent.callee !== node) break;\n default:\n shouldPrintParens = true;\n }\n }\n let indentParenthesized = false;\n if (!shouldPrintParens && this._noLineTerminator && (node.leadingComments?.some(commentIsNewline) || flags & 8 && loc && loc.start.line > this._buf.getCurrentLine())) {\n shouldPrintParens = true;\n indentParenthesized = true;\n }\n let oldNoLineTerminatorAfterNode;\n if (!shouldPrintParens) {\n noLineTerminatorAfter ||= !!parent && this._noLineTerminatorAfterNode === parent && isLastChild(parent, node);\n if (noLineTerminatorAfter) {\n if (node.trailingComments?.some(commentIsNewline)) {\n if (isExpression(node)) shouldPrintParens = true;\n } else {\n oldNoLineTerminatorAfterNode = this._noLineTerminatorAfterNode;\n this._noLineTerminatorAfterNode = node;\n }\n }\n }\n if (shouldPrintParens) {\n this.tokenChar(40);\n if (indentParenthesized) this.indent();\n this._innerCommentsState = 0;\n if (!resetTokenContext) {\n oldTokenContext = this.tokenContext;\n }\n if (oldTokenContext & 128) {\n this.tokenContext = 0;\n }\n oldNoLineTerminatorAfterNode = this._noLineTerminatorAfterNode;\n this._noLineTerminatorAfterNode = null;\n }\n this._printLeadingComments(node, parent);\n this.exactSource(nodeId === 137 || nodeId === 67 ? null : loc, printMethod.bind(this, node, parent));\n if (shouldPrintParens) {\n this._printTrailingComments(node, parent);\n if (indentParenthesized) {\n this.dedent();\n this.newline();\n }\n this.tokenChar(41);\n this._noLineTerminator = noLineTerminatorAfter;\n } else if (noLineTerminatorAfter && !this._noLineTerminator) {\n this._noLineTerminator = true;\n this._printTrailingComments(node, parent);\n } else {\n this._printTrailingComments(node, parent, trailingCommentsLineOffset);\n }\n if (oldTokenContext) this.tokenContext = oldTokenContext;\n this._currentNode = parent;\n this._currentTypeId = parentId;\n if (changedFlags) {\n this._flags = flags;\n }\n if (flags & 32) {\n this._insideAux = oldInAux;\n }\n if (oldNoLineTerminatorAfterNode != null) {\n this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode;\n }\n this._innerCommentsState = 0;\n }\n _maybeAddAuxComment(enteredPositionlessNode) {\n if (enteredPositionlessNode) this._printAuxBeforeComment();\n if (!this._insideAux) this._printAuxAfterComment();\n }\n _printAuxBeforeComment() {\n if (this._printAuxAfterOnNextUserNode) return;\n this._printAuxAfterOnNextUserNode = true;\n const comment = this.format.auxiliaryCommentBefore;\n if (comment) {\n this._printComment({\n type: \"CommentBlock\",\n value: comment\n }, 0);\n }\n }\n _printAuxAfterComment() {\n if (!this._printAuxAfterOnNextUserNode) return;\n this._printAuxAfterOnNextUserNode = false;\n const comment = this.format.auxiliaryCommentAfter;\n if (comment) {\n this._printComment({\n type: \"CommentBlock\",\n value: comment\n }, 0);\n }\n }\n getPossibleRaw(node) {\n const extra = node.extra;\n if (extra?.raw != null && extra.rawValue != null && node.value === extra.rawValue) {\n return extra.raw;\n }\n }\n printJoin(nodes, statement, indent, separator, printTrailingSeparator, resetTokenContext, trailingCommentsLineOffset) {\n if (!nodes?.length) return;\n const flags = this._flags;\n if (indent == null && flags & 8) {\n const startLine = nodes[0].loc?.start.line;\n if (startLine != null && startLine !== this._buf.getCurrentLine()) {\n indent = true;\n }\n }\n if (indent) this.indent(flags);\n const len = nodes.length;\n for (let i = 0; i < len; i++) {\n const node = nodes[i];\n if (!node) continue;\n if (statement && i === 0 && this._buf.hasContent()) {\n this.newline(1, flags);\n }\n this.print(node, false, resetTokenContext, trailingCommentsLineOffset || 0);\n if (separator != null) {\n if (i < len - 1) separator.call(this, i, false);else if (printTrailingSeparator) separator.call(this, i, true);\n }\n if (statement) {\n if (i + 1 === len) {\n this.newline(1, flags);\n } else {\n const lastCommentLine = this._lastCommentLine;\n if (lastCommentLine > 0) {\n const offset = (nodes[i + 1].loc?.start.line || 0) - lastCommentLine;\n if (offset >= 0) {\n this.newline(offset || 1, flags);\n continue;\n }\n }\n this.newline(1, flags);\n }\n }\n }\n if (indent) this.dedent(flags);\n }\n printAndIndentOnComments(node) {\n const indent = node.leadingComments && node.leadingComments.length > 0;\n if (indent) this.indent();\n this.print(node);\n if (indent) this.dedent();\n }\n printBlock(body) {\n if (body.type !== \"EmptyStatement\") {\n this.space();\n }\n this.print(body);\n }\n _printTrailingComments(node, parent, lineOffset) {\n const {\n innerComments,\n trailingComments\n } = node;\n if (innerComments?.length) {\n this._printComments(2, innerComments, node, parent, lineOffset);\n }\n if (trailingComments?.length) {\n this._printComments(2, trailingComments, node, parent, lineOffset);\n } else {\n this._lastCommentLine = 0;\n }\n }\n _printLeadingComments(node, parent) {\n const comments = node.leadingComments;\n if (!comments?.length) return;\n this._printComments(0, comments, node, parent);\n }\n _maybePrintInnerComments(nextTokenStr, nextTokenOccurrenceCount) {\n const state = this._innerCommentsState;\n switch (state & 3) {\n case 0:\n this._innerCommentsState = 1 | 4;\n return;\n case 1:\n this.printInnerComments((state & 4) > 0, this.tokenMap?.findMatching(this._currentNode, nextTokenStr, nextTokenOccurrenceCount));\n }\n }\n printInnerComments(indent = true, nextToken) {\n const node = this._currentNode;\n const comments = node.innerComments;\n if (!comments?.length) {\n this._innerCommentsState = 2;\n return;\n }\n const hasSpace = this.endsWith(32);\n if (indent) this.indent();\n switch (this._printComments(1, comments, node, undefined, undefined, nextToken)) {\n case 2:\n this._innerCommentsState = 2;\n case 1:\n if (hasSpace) this.space();\n }\n if (indent) this.dedent();\n }\n noIndentInnerCommentsHere() {\n this._innerCommentsState &= -5;\n }\n printSequence(nodes, indent, resetTokenContext, trailingCommentsLineOffset) {\n this.printJoin(nodes, true, indent ?? false, undefined, undefined, resetTokenContext, trailingCommentsLineOffset);\n }\n printList(items, printTrailingSeparator, statement, indent, separator, resetTokenContext) {\n this.printJoin(items, statement, indent, separator ?? commaSeparator, printTrailingSeparator, resetTokenContext);\n }\n shouldPrintTrailingComma(listEnd) {\n if (!this.tokenMap) return null;\n const listEndIndex = this.tokenMap.findLastIndex(this._currentNode, token => this.tokenMap.matchesOriginal(token, typeof listEnd === \"number\" ? String.fromCharCode(listEnd) : listEnd));\n if (listEndIndex <= 0) return null;\n return this.tokenMap.matchesOriginal(this._tokens[listEndIndex - 1], \",\");\n }\n _shouldPrintComment(comment, nextToken) {\n if (comment.ignore) return 0;\n if (this._printedComments.has(comment)) return 0;\n if (this._noLineTerminator && HAS_NEWLINE_OR_BlOCK_COMMENT_END.test(comment.value)) {\n return 2;\n }\n if (nextToken && this.tokenMap) {\n const commentTok = this.tokenMap.find(this._currentNode, token => token.value === comment.value);\n if (commentTok && commentTok.start > nextToken.start) {\n return 2;\n }\n }\n this._printedComments.add(comment);\n if (!this.format.shouldPrintComment(comment.value)) {\n return 0;\n }\n return 1;\n }\n _printComment(comment, skipNewLines) {\n const noLineTerminator = this._noLineTerminator;\n const isBlockComment = comment.type === \"CommentBlock\";\n const printNewLines = isBlockComment && skipNewLines !== 1 && !noLineTerminator;\n if (printNewLines && this._buf.hasContent() && skipNewLines !== 2) {\n this.newline(1);\n }\n switch (this.getLastChar(true)) {\n case 47:\n this._space();\n case 91:\n case 123:\n case 40:\n break;\n default:\n this.space();\n }\n let val;\n if (isBlockComment) {\n val = `/*${comment.value}*/`;\n if (this.format.indent.adjustMultilineComment) {\n const offset = comment.loc?.start.column;\n if (offset) {\n const newlineRegex = new RegExp(\"\\\\n\\\\s{1,\" + offset + \"}\", \"g\");\n val = val.replace(newlineRegex, \"\\n\");\n }\n if (this._flags & 4) {\n val = val.replace(/\\n(?!$)/g, `\\n`);\n } else {\n let indentSize = this.format.retainLines ? 0 : this._buf.getCurrentColumn();\n if (this._shouldIndent() || this.format.retainLines) {\n indentSize += this._indent;\n }\n val = val.replace(/\\n(?!$)/g, `\\n${\" \".repeat(indentSize)}`);\n }\n }\n } else if (!noLineTerminator) {\n val = `//${comment.value}`;\n } else {\n val = `/*${comment.value}*/`;\n }\n this.source(\"start\", comment.loc);\n this._append(val, isBlockComment);\n if (!isBlockComment && !noLineTerminator) {\n this._newline();\n }\n if (printNewLines && skipNewLines !== 3) {\n this.newline(1);\n }\n }\n _printComments(type, comments, node, parent, lineOffset = 0, nextToken) {\n const nodeLoc = node.loc;\n const len = comments.length;\n let hasLoc = !!nodeLoc;\n const nodeStartLine = hasLoc ? nodeLoc.start.line : 0;\n const nodeEndLine = hasLoc ? nodeLoc.end.line : 0;\n let lastLine = 0;\n let leadingCommentNewline = 0;\n const {\n _noLineTerminator,\n _flags\n } = this;\n for (let i = 0; i < len; i++) {\n const comment = comments[i];\n const shouldPrint = this._shouldPrintComment(comment, nextToken);\n if (shouldPrint === 2) {\n return i === 0 ? 0 : 1;\n }\n if (hasLoc && comment.loc && shouldPrint === 1) {\n const commentStartLine = comment.loc.start.line;\n const commentEndLine = comment.loc.end.line;\n if (type === 0) {\n let offset = 0;\n if (i === 0) {\n if (this._buf.hasContent() && (comment.type === \"CommentLine\" || commentStartLine !== commentEndLine)) {\n offset = leadingCommentNewline = 1;\n }\n } else {\n offset = commentStartLine - lastLine;\n }\n lastLine = commentEndLine;\n if (offset > 0 && !_noLineTerminator) {\n this.newline(offset, _flags);\n }\n this._printComment(comment, 1);\n if (i + 1 === len) {\n const count = Math.max(nodeStartLine - lastLine, leadingCommentNewline);\n if (count > 0 && !_noLineTerminator) {\n this.newline(count, _flags);\n }\n lastLine = nodeStartLine;\n }\n } else if (type === 1) {\n const offset = commentStartLine - (i === 0 ? nodeStartLine : lastLine);\n lastLine = commentEndLine;\n if (offset > 0 && !_noLineTerminator) {\n this.newline(offset, _flags);\n }\n this._printComment(comment, 1);\n if (i + 1 === len) {\n const count = Math.min(1, nodeEndLine - lastLine);\n if (count > 0 && !_noLineTerminator) {\n this.newline(count, _flags);\n }\n lastLine = nodeEndLine;\n }\n } else {\n const offset = commentStartLine - (i === 0 ? nodeEndLine - lineOffset : lastLine);\n lastLine = commentEndLine;\n if (offset > 0 && !_noLineTerminator) {\n this.newline(offset, _flags);\n }\n this._printComment(comment, 1);\n }\n } else {\n hasLoc = false;\n if (shouldPrint !== 1) {\n continue;\n }\n if (len === 1) {\n const singleLine = comment.loc ? comment.loc.start.line === comment.loc.end.line : !HAS_NEWLINE.test(comment.value);\n const shouldSkipNewline = singleLine && !isStatement(node) && !isClassBody(parent) && !isTSInterfaceBody(parent) && !isTSEnumMember(node);\n if (type === 0) {\n this._printComment(comment, shouldSkipNewline && node.type !== \"ObjectExpression\" || singleLine && isFunction(parent) && parent.body === node ? 1 : 0);\n } else if (shouldSkipNewline && type === 2) {\n this._printComment(comment, 1);\n } else {\n this._printComment(comment, 0);\n }\n } else if (type === 1 && !(node.type === \"ObjectExpression\" && node.properties.length > 1) && node.type !== \"ClassBody\" && node.type !== \"TSInterfaceBody\") {\n this._printComment(comment, i === 0 ? 2 : i === len - 1 ? 3 : 0);\n } else {\n this._printComment(comment, 0);\n }\n }\n }\n if (type === 2 && hasLoc && lastLine) {\n this._lastCommentLine = lastLine;\n }\n return 2;\n }\n}\nfunction commaSeparator(occurrenceCount, last) {\n this.tokenChar(44, occurrenceCount);\n if (!last) this.space();\n}\nfunction normalizeOptions(code, opts, ast) {\n if (opts.experimental_preserveFormat) {\n if (typeof code !== \"string\") {\n throw new Error(\"`experimental_preserveFormat` requires the original `code` to be passed to @babel/generator as a string\");\n }\n if (!opts.retainLines) {\n throw new Error(\"`experimental_preserveFormat` requires `retainLines` to be set to `true`\");\n }\n if (opts.compact && opts.compact !== \"auto\") {\n throw new Error(\"`experimental_preserveFormat` is not compatible with the `compact` option\");\n }\n if (opts.minified) {\n throw new Error(\"`experimental_preserveFormat` is not compatible with the `minified` option\");\n }\n if (opts.jsescOption) {\n throw new Error(\"`experimental_preserveFormat` is not compatible with the `jsescOption` option\");\n }\n if (!Array.isArray(ast.tokens)) {\n throw new Error(\"`experimental_preserveFormat` requires the AST to have attached the token of the input code. Make sure to enable the `tokens: true` parser option.\");\n }\n }\n const format = {\n auxiliaryCommentBefore: opts.auxiliaryCommentBefore,\n auxiliaryCommentAfter: opts.auxiliaryCommentAfter,\n shouldPrintComment: opts.shouldPrintComment,\n preserveFormat: opts.experimental_preserveFormat,\n retainLines: opts.retainLines,\n retainFunctionParens: opts.retainFunctionParens,\n comments: opts.comments == null || opts.comments,\n compact: opts.compact,\n minified: opts.minified,\n concise: opts.concise,\n indent: {\n adjustMultilineComment: true,\n style: \" \"\n },\n jsescOption: {\n quotes: \"double\",\n wrap: true,\n minimal: true,\n ...opts.jsescOption\n },\n topicToken: opts.topicToken\n };\n if (format.minified) {\n format.compact = true;\n format.shouldPrintComment = format.shouldPrintComment || (() => format.comments);\n } else {\n format.shouldPrintComment = format.shouldPrintComment || (value => format.comments || value.includes(\"@license\") || value.includes(\"@preserve\"));\n }\n if (format.compact === \"auto\") {\n format.compact = typeof code === \"string\" && code.length > 500_000;\n if (format.compact) {\n console.error(\"[BABEL] Note: The code generator has deoptimised the styling of \" + `${opts.filename} as it exceeds the max of ${\"500KB\"}.`);\n }\n }\n if (format.compact || format.preserveFormat) {\n format.indent.adjustMultilineComment = false;\n }\n const {\n auxiliaryCommentBefore,\n auxiliaryCommentAfter,\n shouldPrintComment\n } = format;\n if (auxiliaryCommentBefore && !shouldPrintComment(auxiliaryCommentBefore)) {\n format.auxiliaryCommentBefore = undefined;\n }\n if (auxiliaryCommentAfter && !shouldPrintComment(auxiliaryCommentAfter)) {\n format.auxiliaryCommentAfter = undefined;\n }\n return format;\n}\nfunction generate(ast, opts = {}, code) {\n const format = normalizeOptions(code, opts, ast);\n const map = opts.sourceMaps ? new SourceMap(opts, code) : null;\n const printer = new Printer(format, map, ast.tokens, typeof code === \"string\" ? code : null);\n return printer.generate(ast);\n}\nexport { generate as default, generate };\n//# sourceMappingURL=index.js.map\n","import { createUnplugin } from 'unplugin';\nimport { parse } from '@babel/parser';\nimport * as t from '@babel/types';\nimport generate from '@babel/generator';\n\nexport interface PluginOptions {\n /**\n * zed-gpui package name or import path\n * @default 'zed-gpui'\n */\n zedGpuiPackageName?: string;\n\n /**\n * Path to the element.ts file in zed-gpui package\n * @default 'zed-gpui/element'\n */\n elementPath?: string;\n\n /**\n * Enable debug logging\n * @default false\n */\n debug?: boolean;\n}\n\ntype UsedMethods = {\n unknown: Set<string>;\n byPrototype: Map<string, Set<string>>;\n};\n\nconst defaultOptions: PluginOptions = {\n zedGpuiPackageName: 'zed-gpui',\n elementPath: 'zed-gpui/element',\n debug: false,\n};\n\nconst keepHTMLElementMethods = new Set(['on', 'off', 'on_', 'off_']);\n\nconst factoryElementTypes: Record<string, string> = {\n div: 'HTMLDivElement',\n span: 'HTMLSpanElement',\n section: 'HTMLElement',\n p: 'HTMLParagraphElement',\n input: 'HTMLInputElement',\n textarea: 'HTMLTextAreaElement',\n btn: 'HTMLButtonElement',\n select: 'HTMLSelectElement',\n};\n\nconst tagElementTypes: Record<string, string> = {\n a: 'HTMLAnchorElement',\n button: 'HTMLButtonElement',\n details: 'HTMLDetailsElement',\n dialog: 'HTMLDialogElement',\n form: 'HTMLFormElement',\n img: 'HTMLImageElement',\n input: 'HTMLInputElement',\n label: 'HTMLLabelElement',\n meter: 'HTMLMeterElement',\n option: 'HTMLOptionElement',\n progress: 'HTMLProgressElement',\n select: 'HTMLSelectElement',\n textarea: 'HTMLTextAreaElement',\n video: 'HTMLMediaElement',\n audio: 'HTMLMediaElement',\n};\n\n/**\n * Unplugin for zed-gpui tree-shaking optimization\n * Removes unused zed-gpui methods from the bundle\n */\nexport const zedGpuiPlugin = createUnplugin((options: PluginOptions = {}) => {\n const opts = { ...defaultOptions, ...options };\n const usedMethods: UsedMethods = {\n unknown: new Set(),\n byPrototype: new Map(),\n };\n\n return {\n name: 'unplugin-zed-gpui',\n\n transform(code, id) {\n if (hasElementPrototypeAssign(code)) {\n if (opts.debug) {\n console.log(`[zed-gpui] Processing element file: ${id}`);\n console.log(`[zed-gpui] Used methods:`, formatUsedMethods(usedMethods));\n }\n\n return transformElementFile(code, usedMethods, opts);\n }\n\n if (shouldProcessFile(id)) {\n analyzeUsage(code, usedMethods, opts);\n }\n\n return null;\n },\n\n buildEnd() {\n usedMethods.unknown.clear();\n usedMethods.byPrototype.clear();\n },\n };\n});\n\n/**\n * Check if a file should be analyzed for zed-gpui usage\n */\nfunction shouldProcessFile(id: string): boolean {\n // Skip node_modules and dist directories\n if (id.includes('node_modules') || id.includes('dist')) {\n return false;\n }\n\n // Only process TypeScript and JavaScript files\n return /\\.(ts|js|tsx|jsx)$/.test(id);\n}\n\n/**\n * Analyze code to find zed-gpui method usage\n */\nfunction analyzeUsage(code: string, usedMethods: UsedMethods, options: PluginOptions) {\n try {\n const ast = parse(code, {\n sourceType: 'module',\n plugins: ['typescript', 'jsx'],\n });\n\n let hasZedGpuiImport = false;\n const program = ast.program;\n\n // First pass: check if file imports zed-gpui\n for (const node of program.body) {\n if (t.isImportDeclaration(node)) {\n const source = node.source.value;\n if (\n source === options.zedGpuiPackageName ||\n source.startsWith(options.zedGpuiPackageName + '/')\n ) {\n hasZedGpuiImport = true;\n break;\n }\n }\n }\n\n if (!hasZedGpuiImport && !hasZedGpuiUsage(code)) {\n return;\n }\n\n scanNodeForMethodCalls(program, usedMethods, new Map());\n\n if (options.debug && (usedMethods.unknown.size > 0 || usedMethods.byPrototype.size > 0)) {\n console.log(`[zed-gpui] Found methods in file:`, formatUsedMethods(usedMethods));\n }\n } catch (error) {\n // Parse errors are expected for some files (like JSON, config files, etc.)\n if (options.debug) {\n console.warn(`[zed-gpui] Failed to parse:`, error);\n }\n }\n}\n\n/**\n * Quick check if code might contain zed-gpui usage\n */\nfunction hasZedGpuiUsage(code: string): boolean {\n return /\\.\\s*([a-z_][a-zA-Z0-9_]*)\\s*\\(/.test(code);\n}\n\nfunction hasElementPrototypeAssign(code: string): boolean {\n return code.includes('Object.assign') && /HTML[A-Za-z]*Element\\.prototype/.test(code);\n}\n\n/**\n * Recursively scan AST nodes for method calls\n */\nfunction scanNodeForMethodCalls(\n node: t.Node,\n usedMethods: UsedMethods,\n bindings: Map<string, string>,\n) {\n if (t.isProgram(node) || t.isBlockStatement(node)) {\n const scopedBindings = new Map(bindings);\n for (const child of node.body) {\n scanNodeForMethodCalls(child, usedMethods, scopedBindings);\n }\n return;\n }\n\n if (\n t.isFunctionDeclaration(node) ||\n t.isFunctionExpression(node) ||\n t.isArrowFunctionExpression(node)\n ) {\n const scopedBindings = new Map(bindings);\n for (const param of node.params) {\n bindElementType(param, scopedBindings);\n }\n scanNodeForMethodCalls(node.body, usedMethods, scopedBindings);\n return;\n }\n\n if (t.isVariableDeclaration(node)) {\n for (const declaration of node.declarations) {\n if (declaration.init) {\n scanNodeForMethodCalls(declaration.init, usedMethods, bindings);\n }\n if (t.isIdentifier(declaration.id)) {\n const elementType =\n getElementTypeFromTypeAnnotation(declaration.id) ??\n (declaration.init ? inferElementType(declaration.init, bindings) : undefined);\n if (elementType) {\n bindings.set(declaration.id.name, elementType);\n }\n }\n }\n return;\n }\n\n if (t.isAssignmentExpression(node)) {\n scanNodeForMethodCalls(node.right, usedMethods, bindings);\n if (t.isIdentifier(node.left)) {\n const elementType = inferElementType(node.right, bindings);\n if (elementType) {\n bindings.set(node.left.name, elementType);\n }\n } else {\n scanNodeForMethodCalls(node.left, usedMethods, bindings);\n }\n return;\n }\n\n if (\n t.isCallExpression(node) &&\n t.isMemberExpression(node.callee) &&\n !t.isSuper(node.callee.object)\n ) {\n const property = node.callee.property;\n if (t.isIdentifier(property) && /^[a-z][a-zA-Z0-9_]*$/.test(property.name)) {\n const elementType = inferElementType(node.callee.object, bindings);\n addUsedMethod(usedMethods, elementType, property.name);\n }\n }\n\n for (const key in node) {\n if (!Object.prototype.hasOwnProperty.call(node, key)) {\n continue;\n }\n const child = (node as any)[key];\n if (Array.isArray(child)) {\n child.forEach((item) => item?.type && scanNodeForMethodCalls(item, usedMethods, bindings));\n } else if (child?.type) {\n scanNodeForMethodCalls(child, usedMethods, bindings);\n }\n }\n}\n\nfunction bindElementType(node: t.Node, bindings: Map<string, string>) {\n if (t.isIdentifier(node)) {\n const elementType = getElementTypeFromTypeAnnotation(node);\n if (elementType) {\n bindings.set(node.name, elementType);\n }\n }\n}\n\nfunction addUsedMethod(\n usedMethods: UsedMethods,\n elementType: string | undefined,\n methodName: string,\n) {\n if (!elementType) {\n usedMethods.unknown.add(methodName);\n return;\n }\n\n if (!usedMethods.byPrototype.has(elementType)) {\n usedMethods.byPrototype.set(elementType, new Set());\n }\n usedMethods.byPrototype.get(elementType)!.add(methodName);\n}\n\nfunction inferElementType(node: t.Node, bindings: Map<string, string>): string | undefined {\n if (t.isIdentifier(node)) {\n return bindings.get(node.name);\n }\n\n if (t.isTSAsExpression(node) || t.isTSTypeAssertion(node)) {\n return (\n getElementTypeFromTsType(node.typeAnnotation) ?? inferElementType(node.expression, bindings)\n );\n }\n\n if (t.isCallExpression(node)) {\n if (t.isIdentifier(node.callee)) {\n if (node.callee.name === 'h' && t.isStringLiteral(node.arguments[0])) {\n return tagElementTypes[node.arguments[0].value] ?? 'HTMLElement';\n }\n return factoryElementTypes[node.callee.name];\n }\n\n if (t.isMemberExpression(node.callee)) {\n if (\n t.isMemberExpression(node.callee) &&\n t.isIdentifier(node.callee.property, { name: 'createElement' }) &&\n t.isIdentifier(node.callee.object, { name: 'document' }) &&\n t.isStringLiteral(node.arguments[0])\n ) {\n return tagElementTypes[node.arguments[0].value] ?? 'HTMLElement';\n }\n\n return inferElementType(node.callee.object, bindings);\n }\n }\n\n return undefined;\n}\n\nfunction getElementTypeFromTypeAnnotation(node: t.Identifier): string | undefined {\n return node.typeAnnotation && t.isTSTypeAnnotation(node.typeAnnotation)\n ? getElementTypeFromTsType(node.typeAnnotation.typeAnnotation)\n : undefined;\n}\n\nfunction getElementTypeFromTsType(node: t.TSType): string | undefined {\n return t.isTSTypeReference(node) &&\n t.isIdentifier(node.typeName) &&\n isElementType(node.typeName.name)\n ? node.typeName.name\n : undefined;\n}\n\nfunction isElementType(name: string): boolean {\n return name === 'HTMLElement' || /^HTML[A-Za-z]*Element$/.test(name);\n}\n\n/**\n * Transform element.ts to remove unused methods\n */\nfunction transformElementFile(code: string, usedMethods: UsedMethods, options: PluginOptions) {\n try {\n const ast = parse(code, {\n sourceType: 'module',\n plugins: ['typescript'],\n });\n\n let modified = false;\n const prototypeMethods = new Map<string, Set<string>>();\n\n for (const node of ast.program.body) {\n if (!t.isExpressionStatement(node) || !t.isCallExpression(node.expression)) {\n continue;\n }\n\n const targetPrototype = getAssignedPrototype(node.expression.arguments[0]);\n const sourceArg = unwrapExpression(node.expression.arguments[1]);\n if (!targetPrototype || !t.isObjectExpression(sourceArg)) {\n continue;\n }\n\n prototypeMethods.set(\n targetPrototype,\n new Set(\n sourceArg.properties\n .map((prop) =>\n t.isObjectProperty(prop) || t.isObjectMethod(prop)\n ? getPropertyName(prop.key)\n : undefined,\n )\n .filter((methodName): methodName is string => !!methodName),\n ),\n );\n }\n\n for (const node of ast.program.body) {\n if (!t.isExpressionStatement(node) || !t.isCallExpression(node.expression)) {\n continue;\n }\n\n const callExpr = node.expression;\n if (\n !t.isMemberExpression(callExpr.callee) ||\n !t.isIdentifier(callExpr.callee.object, { name: 'Object' }) ||\n !t.isIdentifier(callExpr.callee.property, { name: 'assign' }) ||\n callExpr.arguments.length < 2\n ) {\n continue;\n }\n\n const targetPrototype = getAssignedPrototype(callExpr.arguments[0]);\n const sourceArg = unwrapExpression(callExpr.arguments[1]);\n if (!targetPrototype || !t.isObjectExpression(sourceArg)) {\n continue;\n }\n\n const originalProperties = sourceArg.properties.length;\n sourceArg.properties = sourceArg.properties.filter((prop) => {\n if (!t.isObjectProperty(prop) && !t.isObjectMethod(prop)) {\n return true;\n }\n\n const methodName = getPropertyName(prop.key);\n if (\n !methodName ||\n isMethodUsed(targetPrototype, methodName, usedMethods, prototypeMethods)\n ) {\n return true;\n }\n\n if (options.debug) {\n console.log(`[zed-gpui] Removing unused method: ${targetPrototype}.${methodName}`);\n }\n return false;\n });\n\n if (sourceArg.properties.length !== originalProperties) {\n modified = true;\n if (options.debug) {\n console.log(\n `[zed-gpui] Removed ${originalProperties - sourceArg.properties.length} unused methods from ${targetPrototype}`,\n );\n }\n }\n }\n\n if (modified) {\n const output = generate(ast, {}, code);\n return {\n code: output.code,\n };\n }\n\n return null;\n } catch (error) {\n console.error('[zed-gpui] Failed to transform element file:', error);\n return null;\n }\n}\n\nfunction getAssignedPrototype(node: t.Node): string | undefined {\n return t.isMemberExpression(node) &&\n t.isIdentifier(node.object) &&\n t.isIdentifier(node.property, { name: 'prototype' }) &&\n isElementType(node.object.name)\n ? node.object.name\n : undefined;\n}\n\nfunction unwrapExpression(node: t.Node): t.Node {\n while (t.isTSAsExpression(node) || t.isTSTypeAssertion(node) || t.isTSNonNullExpression(node)) {\n node = node.expression;\n }\n return node;\n}\n\nfunction getPropertyName(node: t.Node): string | undefined {\n if (t.isIdentifier(node)) {\n return node.name;\n }\n if (t.isStringLiteral(node)) {\n return node.value;\n }\n return undefined;\n}\n\nfunction isMethodUsed(\n prototypeName: string,\n methodName: string,\n usedMethods: UsedMethods,\n prototypeMethods: Map<string, Set<string>>,\n): boolean {\n if (\n usedMethods.unknown.has(methodName) ||\n usedMethods.byPrototype.get(prototypeName)?.has(methodName)\n ) {\n return true;\n }\n\n if (prototypeName !== 'HTMLElement') {\n return false;\n }\n\n if (keepHTMLElementMethods.has(methodName)) {\n return true;\n }\n\n for (const [usedPrototype, methods] of usedMethods.byPrototype) {\n if (\n usedPrototype !== 'HTMLElement' &&\n methods.has(methodName) &&\n !prototypeMethods.get(usedPrototype)?.has(methodName)\n ) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction formatUsedMethods(usedMethods: UsedMethods) {\n return {\n unknown: Array.from(usedMethods.unknown).sort(),\n byPrototype: Object.fromEntries(\n Array.from(usedMethods.byPrototype.entries()).map(([prototype, methods]) => [\n prototype,\n Array.from(methods).sort(),\n ]),\n ),\n };\n}\n\nexport default zedGpuiPlugin;\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAM,WAAN,MAAe;CACb,YAAY,MAAM,KAAK,OAAO;EAC5B,KAAK,OAAO,KAAA;EACZ,KAAK,SAAS,KAAA;EACd,IAAI,UAAU,KAAA,GAAW,KAAK,QAAQ,KAAA;EACtC,KAAK,OAAO;EACZ,KAAK,SAAS;EACd,IAAI,UAAU,KAAA,GAAW,KAAK,QAAQ;CACxC;AACF;AACA,IAAM,iBAAN,MAAqB;CACnB;CACA;CACA;CACA;CACA,YAAY,OAAO,KAAK;EACtB,KAAK,QAAQ;EACb,KAAK,MAAM;CACb;AACF;AACA,SAAS,+BAA+B,UAAU,cAAc;CAC9D,MAAM,EACJ,MACA,QACA,UACE;CACJ,OAAO,IAAI,SAAS,MAAM,SAAS,cAAc,QAAQ,YAAY;AACvE;AACA,MAAM,OAAO;AACb,MAAM,eAAe;CACnB,yBAAyB;EACvB,SAAS;EACT;CACF;CACA,qBAAqB;EACnB,SAAS;EACT;CACF;AACF;AACA,MAAM,mBAAmB;CACvB,cAAc;CACd,sBAAsB;CACtB,mBAAmB;CACnB,yBAAyB;CACzB,uBAAuB;CACvB,aAAa;CACb,gBAAgB;CAChB,gBAAgB;CAChB,cAAc;CACd,kBAAkB;CAClB,YAAY;CACZ,iBAAiB;CACjB,wBAAwB;CACxB,0BAA0B;CAC1B,eAAe;CACf,yBAAyB;CACzB,aAAa;CACb,kBAAkB;EAChB,MAAM;EACN,OAAO;CACT;CACA,oBAAoB;CACpB,iBAAiB;AACnB;AACA,MAAM,qBAAoB,SAAQ,KAAK,SAAS,qBAAqB,iBAAiB,iBAAiB,GAAG,KAAK,YAAY,iBAAiB,KAAK;AACjJ,MAAM,iBAAiB;CACrB,sBAAsB,EACpB,WACI,KAAK,KAAK;CAChB,kBAAkB;CAClB,uCAAuC;CACvC,wBAAwB;CACxB,qCAAqC;CACrC,gCAAgC;CAChC,6BAA6B;CAC7B,wBAAwB;CACxB,gBAAgB;CAChB,gBAAgB;CAChB,wBAAwB;CACxB,uBAAuB;CACvB,8BAA8B;CAC9B,uBAAuB;CACvB,oBAAoB;CACpB,wBAAwB;CACxB,gCAAgC,EAC9B,WACI,0BAA0B,KAAK;CACrC,sCAAsC;CACtC,6BAA6B;CAC7B,sBAAsB;CACtB,oBAAoB;CACpB,sBAAsB;CACtB,8BAA8B;CAC9B,oBAAoB;CACpB,wBAAwB;CACxB,sBAAsB;CACtB,wBAAwB;CACxB,kBAAkB,EAChB,iBACI,KAAK,WAAW;CACtB,gBAAgB;CAChB,sBAAsB;CACtB,kBAAkB;CAClB,4BAA4B;CAC5B,wBAAwB,EACtB,WACA,iBACI,wGAAwG,UAAU,QAAQ,WAAW;CAC3I,+BAA+B;CAC/B,yBAAyB,EACvB,WACI,IAAI,SAAS,mBAAmB,WAAW,SAAS;CAC1D,YAAY;CACZ,YAAY;CACZ,UAAU;CACV,mCAAmC;CACnC,uBAAuB,EACrB,WACI,eAAe,SAAS,mBAAmB,UAAU,WAAW;CACtE,8BAA8B;CAC9B,eAAe;CACf,wBAAwB,EACtB,iBACI,uFAAuF,WAAW;CACxG,kBAAkB,EAChB,YACI,WAAW,QAAQ,IAAI,UAAU,GAAG;CAC1C,6BAA6B,EAC3B,YACI,6BAA6B,QAAQ,IAAI,UAAU,GAAG;CAC5D,2BAA2B,EACzB,YACI,qCAAqC,QAAQ,IAAI,UAAU,GAAG;CACpE,2BAA2B;CAC3B,sBAAsB;CACtB,kBAAkB;CAClB,4BAA4B;CAC5B,6BAA6B;CAC7B,eAAe,EACb,YACI,4BAA4B,MAAM;CACxC,uBAAuB;CACvB,+BAA+B;CAC/B,6BAA6B,EAC3B,mBACI,8BAA8B,aAAa;CACjD,oBAAoB,EAClB,qBACI,sBAAsB,eAAe;CAC3C,aAAa,EACX,eACI,6BAA6B,kBAAkB,QAAQ,EAAE;CAC/D,oBAAoB,EAClB,eACI,qCAAqC,kBAAkB,QAAQ,EAAE;CACvE,6BAA6B,EAC3B,eACI,sDAAsD,kBAAkB,QAAQ,EAAE;CACxF,eAAe;CACf,0BAA0B;CAC1B,2BAA2B,EACzB,iBACI,yBAAyB,WAAW;CAC1C,gCAAgC;CAChC,gCAAgC,EAC9B,qBACI,iBAAiB,eAAe;CACtC,+BAA+B;CAC/B,8BAA8B;CAC9B,qBAAqB,EACnB,gBACI,UAAU,UAAU;CAC1B,qBAAqB;CACrB,2BAA2B;CAC3B,sBAAsB;CACtB,kBAAkB;CAClB,uBAAuB;CACvB,kBAAkB;CAClB,gBAAgB,EACd,oBACI,iEAAiE,cAAc,KAAI,SAAQ,KAAK,UAAU,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;CAClI,sBAAsB,EACpB,oBACI,qFAAqF,cAAc,KAAI,SAAQ,KAAK,UAAU,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;CACtJ,sBAAsB;CACtB,2BAA2B;CAC3B,6BAA6B;CAC7B,oCAAoC,EAClC,UACI,kBAAkB,IAAI;CAC5B,mCAAmC,EACjC,wBACI,6DAA6D,kBAAkB,SAAS,EAAE,EAAE;CAClG,wBAAwB,EACtB,gBACI,WAAW,UAAU;CAC3B,0BAA0B;CAC1B,mBAAmB;CACnB,kBAAkB;CAClB,kBAAkB;CAClB,kCAAkC;CAClC,mBAAmB;CACnB,uBAAuB;CACvB,4BAA4B;CAC5B,uBAAuB;CACvB,WAAW;CACX,oBAAoB;CACpB,kBAAkB;CAClB,sBAAsB,EACpB,qBACI,+DAA+D,eAAe,mCAAmC,eAAe;CACtI,2BAA2B,EACzB,qBACI,2BAA2B,eAAe;CAChD,mBAAmB;CACnB,gBAAgB;CAChB,sBAAsB;CACtB,kCAAkC;CAClC,iBAAiB;CACjB,2BAA2B;CAC3B,iBAAiB;CACjB,mBAAmB;CACnB,mBAAmB;CACnB,+BAA+B;CAC/B,0BAA0B;CAC1B,wBAAwB;CACxB,oBAAoB,EAClB,cACI,uBAAuB,QAAQ;CACrC,4BAA4B;CAC5B,8BAA8B;CAC9B,qBAAqB;CACrB,4BAA4B;CAC5B,wBAAwB;CACxB,yBAAyB,EACvB,mBACI,6BAA6B,aAAa;CAChD,iBAAiB;CACjB,kBAAkB,EAChB,UACA,iBACI,mBAAmB,aAAa,KAAK,WAAW,MAAM,KAAK,WAAW,eAAe,SAAS,KAAK;CACzG,oCAAoC;CACpC,4BAA4B;CAC5B,uBAAuB;CACvB,4BAA4B;CAC5B,0BAA0B;CAC1B,mBAAmB;CACnB,0BAA0B,EACxB,QACA,4BACI,oCAAoC,OAAO,MAAM,OAAO,GAAG,sBAAsB;CACvF,+BAA+B;CAC/B,8BAA8B;CAC9B,kBAAkB;CAClB,qBAAqB;CACrB,oBAAoB;CACpB,oBAAoB;CACpB,sBAAsB;CACtB,wBAAwB;CACxB,mCAAmC;CACnC,mBAAmB,EACjB,qBACI,eAAe,eAAe;CACpC,6BAA6B;CAC7B,wBAAwB;CACxB,wBAAwB;CACxB,kBAAkB;CAClB,6BAA6B;CAC7B,2BAA2B;AAC7B;AACA,MAAM,mBAAmB;CACvB,cAAc;CACd,sBAAsB,EACpB,oBACI,iBAAiB,cAAc;CACrC,6BAA6B,EAC3B,kBACI,YAAY,YAAY;CAC9B,gBAAgB;CAChB,qBAAqB;CACrB,oBAAoB;CACpB,YAAY;AACd;AACA,MAAM,wBAAwB;CAC5B,2BAA2B;CAC3B,4BAA4B,EAC1B,iBACI,2JAA2J,OAAO,cAAc,UAAU,EAAE;AACpM;AACA,MAAM,sDAAsC,IAAI,IAAI;CAAC;CAA2B;CAAwB;CAAyB;AAAiB,CAAC;AACnJ,MAAM,yBAAyB;CAC7B,4BAA4B;CAC5B,kBAAkB;CAClB,6BAA6B,EAC3B,YACI,uBAAuB,MAAM,oBAAoB,MAAM,kHAAkH,MAAM;CACrL,iBAAiB;CACjB,0BAA0B,EACxB,WACI,qDAAqD,kBAAkB,EAC3E,KACF,CAAC,EAAE;CACH,yBAAyB;AAC3B;AACA,MAAM,qBAAqB;CACzB,iBAAiB;CACjB,oBAAoB;AACtB;AACA,SAAS,aAAa,KAAK,KAAK,OAAO;CACrC,OAAO,eAAe,KAAK,KAAK;EAC9B,YAAY;EACZ,cAAc;EACd;CACF,CAAC;AACH;AACA,SAAS,wBAAwB,EAC/B,WACA,MACA,YACA,gBACC;CACD,MAAM,mBAAmB,eAAe,mBAAmB,eAAe;CAC1E,OAAO,SAAS,YAAY,KAAK,KAAK,SAAS;EAC7C,MAAM,wBAAQ,IAAI,YAAY;EAC9B,MAAM,OAAO;EACb,MAAM,aAAa;EACnB,MAAM,MAAM;EACZ,MAAM,MAAM;EACZ,MAAM,eAAe;EACrB,IAAI,kBACF,MAAM,gBAAgB,QAAQ;EAEhC,aAAa,OAAO,SAAS,SAAS,MAAM,YAAY,CAAC,GAAG;GAC1D,MAAM,EACJ,MACA,QACA,QAAQ,QACN,UAAU,OAAO;GACrB,OAAO,YAAY,IAAI,SAAS,MAAM,MAAM,GAAG,OAAO;IACpD,GAAG;IACH,GAAG,UAAU;GACf,CAAC;EACH,CAAC;EACD,aAAa,OAAO,WAAW,OAAO;EACtC,OAAO,eAAe,OAAO,WAAW;GACtC,cAAc;GACd,MAAM;IACJ,MAAM,UAAU,GAAG,UAAU,OAAO,EAAE,IAAI,IAAI,KAAK,GAAG,IAAI,OAAO;IACjE,KAAK,UAAU;IACf,OAAO;GACT;GACA,IAAI,OAAO;IACT,OAAO,eAAe,MAAM,WAAW;KACrC;KACA,UAAU;IACZ,CAAC;GACH;EACF,CAAC;EACD,OAAO;CACT;AACF;AACA,SAAS,eAAe,UAAU,cAAc;CAC9C,IAAI,MAAM,QAAQ,QAAQ,GACxB,QAAO,wBAAuB,eAAe,qBAAqB,SAAS,EAAE;CAE/E,MAAM,yBAAyB,CAAC;CAChC,KAAK,MAAM,cAAc,OAAO,KAAK,QAAQ,GAAG;EAC9C,MAAM,WAAW,SAAS;EAC1B,MAAM,EACJ,SACA,GAAG,SACD,OAAO,aAAa,WAAW,EACjC,eAAe,SACjB,IAAI,OAAO,aAAa,aAAa,EACnC,SAAS,SACX,IAAI;EAEJ,uBAAuB,cAAc,wBAAwB;GAC3D,MAAM;GACN;GACA,WAJgB,OAAO,YAAY,iBAAiB,UAAU;GAK9D,GAAI,eAAe,EACjB,aACF,IAAI,CAAC;GACL,GAAG;EACL,CAAC;CACH;CACA,OAAO;AACT;AACA,MAAM,SAAS;CACb,GAAG,eAAe,YAAY;CAC9B,GAAG,eAAe,cAAc;CAChC,GAAG,eAAe,gBAAgB;CAClC,GAAG,eAAe,qBAAqB;CACvC,GAAG,cAAc,mBAAmB,sBAAsB;CAC1D,GAAG,cAAc,eAAe,kBAAkB;AACpD;AACA,SAAS,uBAAuB;CAC9B,OAAO;EACL,YAAY;EACZ,gBAAgB,KAAA;EAChB,YAAY;EACZ,aAAa;EACb,WAAW;EACX,2BAA2B;EAC3B,4BAA4B;EAC5B,+BAA+B;EAC/B,6BAA6B;EAC7B,yBAAyB;EACzB,wBAAwB;EACxB,2BAA2B;EAC3B,SAAS,CAAC;EACV,YAAY,KAAA;EACZ,QAAQ;EACR,WAAW;EACX,QAAQ;EACR,yBAAyB;EACzB,gCAAgC;EAChC,eAAe;EACf,eAAe;EACf,QAAQ;CACV;AACF;AACA,SAAS,WAAW,MAAM;CACxB,MAAM,UAAU,qBAAqB;CACrC,IAAI,QAAQ,MACV,OAAO;CAET,IAAI,KAAK,UAAU,QAAQ,KAAK,WAAW,OACzC,MAAM,IAAI,MAAM,iDAAiD;CAEnE,KAAK,MAAM,OAAO,OAAO,KAAK,OAAO,GACnC,IAAI,KAAK,QAAQ,MAAM,QAAQ,OAAO,KAAK;CAE7C,IAAI,QAAQ,cAAc;MACpB,KAAK,cAAc,QAAQ,QAAQ,cAAc,GACnD,QAAQ,aAAa,QAAQ;OACxB,IAAI,KAAK,eAAe,QAAQ,QAAQ,aAAa,GAC1D,QAAQ,cAAc,QAAQ;CAAA,OAE3B,IAAI,KAAK,eAAe,QAAQ,KAAK,cAAc,MACxD,MAAM,IAAI,MAAM,8EAA8E;CAEhG,IAAI,QAAQ,eAAe,YAAY;EACrC,IAAI,KAAK,6BAA6B,MACpC,MAAM,IAAI,MAAM,sFAAsF;EAExG,IAAI,KAAK,8BAA8B,MACrC,MAAM,IAAI,MAAM,2JAA2J;EAE7K,IAAI,KAAK,iCAAiC,MACxC,MAAM,IAAI,MAAM,iKAAiK;CAErL;CACA,OAAO;AACT;AACA,SAAS,iBAAiB,MAAM;CAC9B,MAAM,EACJ,OACA,QACE,KAAK;CACT,KAAK,IAAI,QAAQ,IAAI,SAAS,MAAM,MAAM,MAAM,MAAM;CACtD,KAAK,IAAI,MAAM,IAAI,SAAS,IAAI,MAAM,IAAI,MAAM;CAChD,OAAO;AACT;AACA,MAAM,UAAS,eAAc,MAAM,0BAA0B,WAAW;CACtE,eAAe,KAAK;EAClB,OAAO,IAAI,SAAS,IAAI,MAAM,IAAI,MAAM;CAC1C;CACA,QAAQ;EACN,MAAM,OAAO,MAAM,MAAM;EACzB,IAAI,KAAK,cAAc,KACrB,KAAK,SAAS,KAAK,OAAO,IAAI,gBAAgB;EAEhD,OAAO,iBAAiB,IAAI;CAC9B;CACA,mBAAmB,EACjB,SACA,SACC;EACD,IAAI,QAAQ;EACZ,IAAI;GACF,QAAQ,IAAI,OAAO,SAAS,KAAK;EACnC,SAAS,GAAG,CAAC;EACb,MAAM,OAAO,KAAK,mBAAmB,KAAK;EAC1C,KAAK,QAAQ;GACX;GACA;EACF;EACA,OAAO;CACT;CACA,mBAAmB,OAAO;EACxB,IAAI;EACJ,IAAI;GACF,SAAS,OAAO,KAAK;EACvB,QAAQ;GACN,SAAS;EACX;EACA,MAAM,OAAO,KAAK,mBAAmB,MAAM;EAC3C,KAAK,SAAS,OAAO,KAAK,SAAS,KAAK;EACxC,OAAO;CACT;CACA,mBAAmB,OAAO;EACxB,OAAO,KAAK,aAAa,OAAO,SAAS;CAC3C;CACA,mBAAmB,OAAO;EACxB,OAAO,KAAK,mBAAmB,KAAK;CACtC;CACA,oBAAoB,OAAO;EACzB,OAAO,KAAK,mBAAmB,KAAK;CACtC;CACA,mBAAmB;EACjB,OAAO,KAAK,mBAAmB,IAAI;CACrC;CACA,oBAAoB,OAAO;EACzB,OAAO,KAAK,mBAAmB,KAAK;CACtC;CACA,2BAA2B,MAAM,SAAS;EACxC,MAAM,QAAQ,KAAK,gBAAgB,IAAI;EACvC,MAAM,aAAa;EACnB,OAAO,KAAK,iBAAiB,OAAO,mBAAmB,OAAO;CAChE;CACA,gBAAgB,WAAW;EACzB,MAAM,aAAa,UAAU;EAC7B,OAAO,UAAU;EACjB,KAAK,WAAW,YAAY,SAAS;EACrC,WAAW,MAAM,WAAW,MAAM;EAClC,WAAW,QAAQ,WAAW,MAAM;EACpC,MAAM,OAAO,KAAK,WAAW,WAAW,qBAAqB;EAC7D,KAAK,aAAa;EAClB,KAAK,YAAY,WAAW,MAAM;EAClC,OAAO,WAAW;EAClB,OAAO;CACT;CACA,kCAAkC,MAAM,CAAC;CACzC,yBAAyB,MAAM;EAC7B,MAAM,EACJ,OACA,KACA,KACA,OACA,KACA,UACE;EACJ,MAAM,SAAS,OAAO,OAAO,KAAK,YAAY,SAAS;EACvD,OAAO,OAAO;EACd,OAAO,QAAQ;EACf,OAAO,MAAM;EACb,OAAO,MAAM;EACb,OAAO,QAAQ;EACf,OAAO,MAAM;EACb,OAAO,QAAQ;EACf,OAAO;CACT;CACA,aAAa,MAAM,SAAS;EAC1B,MAAM,aAAa,MAAM,OAAO;EAChC,KAAK,aAAa;CACpB;CACA,iBAAiB,MAAM;EACrB,IAAI,QAAQ,QAAQ,KAAK,iBAAiB,IAAI,GAC5C,KAAK,iBAAiB,KAAK,KAAK;OAEhC,MAAM,iBAAiB,IAAI;CAE/B;CACA,6BAA6B,QAAQ;EACnC,OAAO,OAAO,MAAM;CACtB;CACA,iBAAiB,MAAM;EACrB,OAAO,KAAK,SAAS,yBAAyB,KAAK,WAAW,SAAS,aAAa,OAAO,KAAK,WAAW,UAAU,YAAY,CAAC,KAAK,WAAW,OAAO;CAC3J;CACA,eAAe,MAAM,iBAAiB,UAAU,KAAK,iBAAiB;EACpE,MAAM,eAAe,MAAM,iBAAiB,UAAU,KAAK,eAAe;EAE1E,KAAK,OADuB,KAAK,WAAW,KAAI,MAAK,KAAK,gBAAgB,CAAC,CAC7C,CAAC,CAAC,OAAO,KAAK,IAAI;EAChD,OAAO,KAAK;CACd;CACA,mBAAmB;EACjB,MAAM,OAAO,MAAM,iBAAiB;EACpC,OAAO,KAAK,sCAAsC,IAAI;CACxD;CACA,sCAAsC,MAAM;EAC1C,MAAM,OAAO,MAAM,iBAAiB,IAAI;EACxC,OAAO,KAAK;EACZ,KAAK,OAAO;EACZ,OAAO,KAAK,WAAW,MAAM,mBAAmB;CAClD;CACA,cAAc,MAAM;EAClB,OAAO,KAAK,SAAS;CACvB;CACA,iBAAiB,MAAM;EACrB,OAAO,KAAK;CACd;CACA,aAAa,OAAO,MAAM;EACxB,MAAM,OAAO,MAAM,aAAa,OAAO,IAAI;EAC3C,KAAK,MAAM,KAAK,MAAM;EACtB,OAAO,KAAK;EACZ,OAAO;CACT;CACA,kBAAkB,MAAM,iBAAiB,WAAW,OAAO;EACzD,MAAM,kBAAkB,MAAM,iBAAiB,QAAQ;EACvD,KAAK,aAAa,KAAK,KAAK,SAAS;CACvC;CACA,YAAY,MAAM,aAAa,SAAS,eAAe,kBAAkB,MAAM,eAAe,OAAO;EACnG,IAAI,WAAW,KAAK,UAAU;EAC9B,SAAS,OAAO,KAAK;EACrB,WAAW,MAAM,YAAY,UAAU,aAAa,SAAS,eAAe,kBAAkB,MAAM,YAAY;EAChH,OAAO,SAAS;EAChB,MAAM,EACJ,mBACE;EACJ,IAAI,gBAAgB;GAClB,OAAO,KAAK;GACZ,SAAS,iBAAiB;GAC1B,KAAK,2BAA2B,UAAU,cAAc;EAC1D;EAEA,KAAK,QADa,KAAK,WAAW,UAAU,KAAK,UAAU,YAAY,KAAK,CAAC,SAAS,OAAO,kCAAkC,oBAC1G;EACrB,IAAI,SAAS,sBACX,KAAK,WAAW;EAElB,IAAI,KAAK,UAAU,YAAY;OACzB,KAAK,UAAU;IACjB,OAAO,KAAK;IACZ,OAAO,KAAK,WAAW,MAAM,4BAA4B;GAC3D;;EAEF,IAAI,SAAS,gBAAgB;GAC3B,IAAI,KAAK,SAAS,UAChB,KAAK,OAAO;GAEd,KAAK,YAAY;GACjB,OAAO,KAAK,WAAW,MAAM,UAAU;EACzC,OACE,OAAO,KAAK,WAAW,MAAM,kBAAkB;CAEnD;CACA,kBAAkB,KAAK;EACrB,IAAI,IAAI,SAAS,WAAW,OAAO,IAAI,UAAU;EACjD,OAAO,MAAM,kBAAkB,GAAG;CACpC;CACA,mBAAmB,GAAG,MAAM;EAC1B,MAAM,eAAe,MAAM,mBAAmB,GAAG,IAAI;EACrD,IAAI,aAAa,YAAY,KAAK,UAAU,YAAY,GAAG;GACzD,OAAO,aAAa;GACpB,KAAK,WAAW,cAAc,8BAA8B;EAC9D,OACE,KAAK,WAAW,cAAc,oBAAoB;EAEpD,OAAO;CACT;CACA,0BAA0B,GAAG,MAAM;EACjC,MAAM,eAAe,MAAM,0BAA0B,GAAG,IAAI;EAC5D,IAAI,aAAa,YAAY,KAAK,UAAU,YAAY,GACtD,KAAK,WAAW,cAAc,8BAA8B;OAE5D,KAAK,WAAW,cAAc,oBAAoB;EAEpD,aAAa,WAAW;EACxB,OAAO;CACT;CACA,2BAA2B,MAAM;EAC/B,MAAM,uBAAuB,MAAM,2BAA2B,IAAI;EAClE,IAAI,qBAAqB,YAAY,KAAK,UAAU,YAAY,GAAG;GACjE,OAAO,qBAAqB;GAC5B,KAAK,WAAW,sBAAsB,4BAA4B;EACpE,OACE,KAAK,WAAW,sBAAsB,kBAAkB;EAE1D,OAAO;CACT;CACA,oBAAoB,MAAM,UAAU,WAAW,qBAAqB;EAClE,MAAM,OAAO,MAAM,oBAAoB,MAAM,UAAU,WAAW,mBAAmB;EACrF,IAAI,MAAM;GACR,KAAK,OAAO;GACZ,KAAK,WAAW,MAAM,UAAU;EAClC;EACA,OAAO;CACT;CACA,qBAAqB,MAAM;EACzB,KAAK,OAAO;EACZ,OAAO,KAAK,WAAW,MAAM,UAAU;CACzC;CACA,YAAY,MAAM,wBAAwB,2BAA2B,SAAS;EAC5E,OAAO,SAAS,aAAa,UAAU,MAAM,YAAY,MAAM,wBAAwB,2BAA2B,OAAO;CAC3H;CACA,aAAa,MAAM,WAAW;EAC5B,IAAI,QAAQ,QAAQ,KAAK,iBAAiB,IAAI,GAC5C,OAAO,KAAK,aAAa,KAAK,OAAO,SAAS;EAEhD,OAAO,MAAM,aAAa,MAAM,SAAS;CAC3C;CACA,aAAa,MAAM,QAAQ,OAAO;EAChC,IAAI,QAAQ,QAAQ,KAAK,iBAAiB,IAAI,GAAG;GAC/C,MAAM,EACJ,KACA,UACE;GACJ,IAAI,KAAK,cAAc,GAAG,GACxB,KAAK,WAAW,eAAe,KAAK,iBAAiB,GAAG,GAAG,IAAI,KAAK;GAEtE,KAAK,aAAa,OAAO,KAAK;EAChC,OACE,MAAM,aAAa,MAAM,KAAK;CAElC;CACA,iCAAiC,MAAM,QAAQ,OAAO;EACpD,IAAI,KAAK,SAAS,eAAe,KAAK,SAAS,SAAS,KAAK,SAAS,QACpE,KAAK,MAAM,OAAO,oBAAoB,KAAK,GAAG;OACzC,IAAI,KAAK,SAAS,cAAc,KAAK,QAC1C,KAAK,MAAM,OAAO,kBAAkB,KAAK,GAAG;OAE5C,MAAM,iCAAiC,MAAM,QAAQ,KAAK;CAE9D;CACA,qBAAqB,YAAY,UAAU;EACzC,MAAM,OAAO,MAAM,qBAAqB,YAAY,QAAQ;EAC5D,IAAI,KAAK,OAAO,SAAS,UAAU;GACjC,KAAK,WAAW,MAAM,kBAAkB;GACxC,KAAK,SAAS,KAAK,UAAU;GAC7B,KAAK,UAAU,KAAK,UAAU,MAAM;GACpC,OAAO,KAAK;GACZ,OAAO,KAAK;EACd,OAAO,IAAI,KAAK,SAAS,0BACvB,KAAK,WAAW,MAAM,gBAAgB;OAEtC,KAAK,WAAW;EAElB,OAAO;CACT;CACA,YAAY,YAAY,YAAY;EAClC,MAAM,iBAAiB,KAAK,MAAM;EAClC,MAAM,OAAO,MAAM,YAAY,YAAY,UAAU;EACrD,QAAQ,KAAK,MAAb;GACE,KAAK;IACH,KAAK,WAAW;IAChB;GACF,KAAK,0BACH,IAAI,KAAK,WAAW,WAAW,KAAK,KAAK,WAAW,EAAE,CAAC,SAAS,4BAA4B;IAC1F,KAAK,WAAW,MAAM,sBAAsB;IAC5C,KAAK,WAAW,KAAK,WAAW,EAAE,CAAC;IACnC,OAAO,KAAK;GACd;GACF,KAAK;IACH;KACE,MAAM,EACJ,gBACE;KACJ,IAAI,aAAa,SAAS,sBAAsB,YAAY,YAAY,SAAS,KAAK,YAAY,UAAU,KAAK,OAC/G,KAAK,mBAAmB,MAAM,cAAc;IAEhD;IACA;EACJ;EACA,OAAO;CACT;CACA,mBAAmB,MAAM,OAAO;EAC9B,MAAM,OAAO,MAAM,mBAAmB,MAAM,KAAK;EACjD,IAAI,MAAM,qBACR,OAAO,KAAK,2BAA2B,MAAM,IAAI;EAEnD,OAAO;CACT;CACA,YAAY,MAAM,UAAU,OAAO,UAAU,UAAU;EACrD,MAAM,OAAO,MAAM,YAAY,MAAM,UAAU,OAAO,UAAU,QAAQ;EACxE,IAAI,KAAK,SAAS,4BAChB,KAAK,WAAW,MAAM,kBAAkB;OAExC,KAAK,WAAW;EAElB,OAAO;CACT;CACA,2BAA2B,MAAM;EAC/B,IAAI,KAAK,SAAS,mBAChB,OAAO,KAAK,WAAW,SAAS;EAElC,OAAO,MAAM,2BAA2B,IAAI;CAC9C;CACA,yBAAyB,MAAM;EAC7B,IAAI,KAAK,SAAS,mBAChB,OAAO,KAAK;EAEd,OAAO,MAAM,yBAAyB,IAAI;CAC5C;CACA,iBAAiB,MAAM;EACrB,OAAO,KAAK,SAAS,cAAc,KAAK,SAAS,UAAU,CAAC,KAAK;CACnE;CACA,eAAe,MAAM;EACnB,OAAO,KAAK,SAAS,eAAe,KAAK,UAAU,KAAK,SAAS,SAAS,KAAK,SAAS;CAC1F;CACA,WAAW,MAAM,MAAM;EACrB,MAAM,SAAS,MAAM,WAAW,MAAM,IAAI;EAC1C,KAAK,kCAAkC,MAAM;EAC7C,OAAO;CACT;CACA,gBAAgB,MAAM;EACpB,MAAM,SAAS,MAAM,gBAAgB,IAAI;EACzC,KAAK,kCAAkC,MAAM;EAC7C,OAAO;CACT;CACA,mBAAmB,MAAM;EACvB,IAAI,KAAK,SAAS,WAChB,OAAO,KAAK,yBAAyB,IAAI;EAE3C,OAAO,MAAM,mBAAmB,IAAI;CACtC;CACA,aAAa,MAAM,MAAM,QAAQ;EAC/B,OAAO,iBAAiB,MAAM,aAAa,MAAM,MAAM,MAAM,CAAC;CAChE;CACA,iBAAiB,MAAM,MAAM,SAAS;EACpC,OAAO,iBAAiB,MAAM,iBAAiB,MAAM,MAAM,OAAO,CAAC;CACrE;CACA,WAAW,MAAM,MAAM;EACrB,MAAM,SAAS,MAAM,WAAW,MAAM,IAAI;EAC1C,KAAK,kCAAkC,MAAM;EAC7C,OAAO;CACT;CACA,mBAAmB,MAAM,UAAU;EACjC,MAAM,mBAAmB,MAAM,QAAQ;EACvC,iBAAiB,IAAI;CACvB;CACA,iBAAiB,MAAM,SAAS,KAAK,MAAM,eAAe;EACxD,MAAM,iBAAiB,MAAM,MAAM;EACnC,iBAAiB,IAAI;CACvB;AACF;AACA,MAAM,aAAa;AACnB,MAAM,aAAa;AACnB,MAAMA,WAAS;AACf,MAAM,WAAW;AACjB,MAAM,SAAS;AACf,MAAM,UAAU;AAChB,IAAM,oBAAN,MAAwB;CACtB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,YAAY,OAAO,OAAO,CAAC,GAAG;EAC5B,KAAK,QAAQ;EACb,KAAK,UAAU,KAAK;EACpB,KAAK,aAAa,CAAC,CAAC,KAAK;EACzB,KAAK,aAAa,CAAC,CAAC,KAAK;EACzB,KAAK,mBAAmB,CAAC,CAAC,KAAK;EAC/B,KAAK,SAAS,CAAC,CAAC,KAAK;EACrB,KAAK,WAAW,CAAC,CAAC,KAAK;EACvB,KAAK,SAAS,CAAC,CAAC,KAAK;EACrB,KAAK,UAAU,CAAC,CAAC,KAAK;EACtB,KAAK,QAAQ,KAAK,SAAS,OAAO,KAAK,QAAQ;CACjD;AACF;AACA,MAAM,6BAAa,IAAI,IAAI;AAC3B,SAAS,cAAc,MAAM,UAAU,CAAC,GAAG;CACzC,QAAQ,UAAU;CAClB,MAAM,QAAQ,YAAY,MAAM,OAAO;CACvC,WAAW,IAAI,MAAM,KAAK;CAC1B,OAAO;AACT;AACA,SAAS,YAAY,MAAM,OAAO;CAChC,OAAO,YAAY,MAAM;EACvB;EACA;CACF,CAAC;AACH;AACA,IAAI,mBAAmB;AACvB,MAAM,aAAa,CAAC;AACpB,MAAM,cAAc,CAAC;AACrB,MAAM,cAAc,CAAC;AACrB,MAAM,mBAAmB,CAAC;AAC1B,MAAM,mBAAmB,CAAC;AAC1B,MAAM,gBAAgB,CAAC;AACvB,SAAS,YAAY,MAAM,UAAU,CAAC,GAAG;CACvC,EAAE;CACF,YAAY,KAAK,IAAI;CACrB,YAAY,KAAK,QAAQ,SAAS,EAAE;CACpC,iBAAiB,KAAK,QAAQ,cAAc,KAAK;CACjD,iBAAiB,KAAK,QAAQ,cAAc,KAAK;CACjD,cAAc,KAAK,QAAQ,UAAU,KAAK;CAC1C,WAAW,KAAK,IAAI,kBAAkB,MAAM,OAAO,CAAC;CACpD,OAAO;AACT;AACA,SAAS,kBAAkB,MAAM,UAAU,CAAC,GAAG;CAC7C,EAAE;CACF,WAAW,IAAI,MAAM,gBAAgB;CACrC,YAAY,KAAK,IAAI;CACrB,YAAY,KAAK,QAAQ,SAAS,EAAE;CACpC,iBAAiB,KAAK,QAAQ,cAAc,KAAK;CACjD,iBAAiB,KAAK,QAAQ,cAAc,KAAK;CACjD,cAAc,KAAK,QAAQ,UAAU,KAAK;CAC1C,WAAW,KAAK,IAAI,kBAAkB,QAAQ,OAAO,CAAC;CACtD,OAAO;AACT;AACA,MAAM,KAAK;CACT,UAAU,YAAY,KAAK;EACzB;EACA;CACF,CAAC;CACD,UAAU,YAAY,GAAG;CACzB,QAAQ,YAAY,KAAK;EACvB;EACA;CACF,CAAC;CACD,WAAW,YAAY,MAAM;EAC3B;EACA;CACF,CAAC;CACD,QAAQ,YAAY,GAAG;CACvB,WAAW,YAAY,IAAI;CAC3B,QAAQ,YAAY,KAAK;EACvB;EACA;CACF,CAAC;CACD,QAAQ,YAAY,GAAG;CACvB,OAAO,YAAY,KAAK,EACtB,WACF,CAAC;CACD,MAAM,YAAY,KAAK,EACrB,WACF,CAAC;CACD,OAAO,YAAY,KAAK,EACtB,WACF,CAAC;CACD,aAAa,YAAY,MAAM,EAC7B,WACF,CAAC;CACD,KAAK,YAAY,GAAG;CACpB,UAAU,YAAY,KAAK,EACzB,WACF,CAAC;CACD,aAAa,YAAY,IAAI;CAC7B,OAAO,YAAY,MAAM,EACvB,WACF,CAAC;CACD,UAAU,YAAY,UAAU;CAChC,UAAU,YAAY,OAAO,EAC3B,WACF,CAAC;CACD,WAAW,YAAY,KAAK,EAC1B,WACF,CAAC;CACD,cAAc,YAAY,MAAM;EAC9B;EACA;CACF,CAAC;CACD,cAAc,YAAY,QAAQ,EAChC,WACF,CAAC;CACD,iBAAiB,YAAY,SAAS;EACpC;EACA;CACF,CAAC;CACD,IAAI,YAAY,GAAG;CACnB,MAAM,YAAY,KAAK,EACrB,WACF,CAAC;CACD,sBAAsB,YAAY,OAAO;CACzC,IAAI,YAAY,KAAK;EACnB;EACA;CACF,CAAC;CACD,QAAQ,YAAY,MAAM;EACxB;EACA;CACF,CAAC;CACD,aAAa,YAAY,MAAM;EAC7B;EACA;CACF,CAAC;CACD,WAAW,YAAY,MAAM;EAC3B;EACA;CACF,CAAC;CACD,cAAc,YAAY,MAAM;EAC9B;EACA;CACF,CAAC;CACD,QAAQ,YAAY,SAAS;EAC3B;EACA;EACA;CACF,CAAC;CACD,MAAM,YAAY,KAAK;EACrB;EACA;EACA;CACF,CAAC;CACD,OAAO,YAAY,KAAK;EACtB;EACA;EACA;CACF,CAAC;CACD,aAAa,YAAY,MAAM,EAC7B,WACF,CAAC;CACD,UAAU,YAAY,MAAM,EAC1B,WACF,CAAC;CACD,UAAU,YAAY,MAAM,CAAC;CAC7B,mBAAmB,YAAY,MAAM,CAAC;CACtC,WAAW,YAAY,MAAM,CAAC;CAC9B,YAAY,YAAY,MAAM,CAAC;CAC/B,WAAW,YAAY,KAAK,CAAC;CAC7B,YAAY,YAAY,KAAK,CAAC;CAC9B,YAAY,YAAY,KAAK,CAAC;CAC9B,UAAU,YAAY,iBAAiB,CAAC;CACxC,IAAI,YAAY,aAAa,CAAC;CAC9B,IAAI,YAAY,aAAa,CAAC;CAC9B,YAAY,YAAY,aAAa,CAAC;CACtC,UAAU,YAAY,aAAa,CAAC;CACpC,WAAW,YAAY,aAAa,CAAC;CACrC,WAAW,YAAY,aAAa,CAAC;CACrC,SAAS,YAAY,OAAO;EAC1B;EACA,OAAO;EACP;EACA;CACF,CAAC;CACD,QAAQ,YAAY,KAAK;EACvB,OAAO;EACP;CACF,CAAC;CACD,MAAM,YAAY,KAAK,EACrB,OAAO,GACT,CAAC;CACD,OAAO,YAAY,KAAK,EAAE;CAC1B,UAAU,YAAY,MAAM;EAC1B;EACA,OAAO;EACP,kBAAkB;CACpB,CAAC;CACD,KAAK,cAAc,MAAM;EACvB;EACA,OAAO;CACT,CAAC;CACD,aAAa,cAAc,cAAc;EACvC;EACA,OAAO;CACT,CAAC;CACD,QAAQ,cAAc,OAAO;CAC7B,OAAO,cAAc,QAAQ,EAC3B,WACF,CAAC;CACD,QAAQ,cAAc,OAAO;CAC7B,WAAW,cAAc,UAAU;CACnC,WAAW,cAAc,UAAU;CACnC,UAAU,cAAc,WAAW,EACjC,WACF,CAAC;CACD,OAAO,cAAc,QAAQ,EAC3B,WACF,CAAC;CACD,UAAU,cAAc,SAAS;CACjC,WAAW,cAAc,YAAY,EACnC,WACF,CAAC;CACD,KAAK,cAAc,IAAI;CACvB,SAAS,cAAc,UAAU,EAC/B,WACF,CAAC;CACD,SAAS,cAAc,QAAQ;CAC/B,QAAQ,cAAc,SAAS;EAC7B;EACA;EACA;CACF,CAAC;CACD,MAAM,cAAc,KAAK;CACzB,MAAM,cAAc,KAAK;CACzB,QAAQ,cAAc,OAAO;CAC7B,OAAO,cAAc,MAAM;CAC3B,MAAM,cAAc,OAAO;EACzB;EACA;CACF,CAAC;CACD,OAAO,cAAc,QAAQ,EAC3B,WACF,CAAC;CACD,QAAQ,cAAc,SAAS,EAC7B,WACF,CAAC;CACD,QAAQ,cAAc,SAAS,EAC7B,WACF,CAAC;CACD,UAAU,cAAc,WAAW,EACjC,WACF,CAAC;CACD,SAAS,cAAc,QAAQ;CAC/B,SAAS,cAAc,UAAU,EAC/B,WACF,CAAC;CACD,OAAO,cAAc,QAAQ,EAC3B,WACF,CAAC;CACD,OAAO,cAAc,QAAQ,EAC3B,WACF,CAAC;CACD,QAAQ,cAAc,SAAS,EAC7B,WACF,CAAC;CACD,SAAS,cAAc,UAAU;EAC/B;EACA;EACA;CACF,CAAC;CACD,OAAO,cAAc,QAAQ;EAC3B;EACA;EACA;CACF,CAAC;CACD,SAAS,cAAc,UAAU;EAC/B;EACA;EACA;CACF,CAAC;CACD,KAAK,cAAc,MAAM;EACvB,QAAA;EACA;CACF,CAAC;CACD,MAAM,cAAc,OAAO,EACzB,QAAA,SACF,CAAC;CACD,QAAQ,cAAc,SAAS,EAC7B,QAAA,SACF,CAAC;CACD,KAAK,kBAAkB,MAAM,EAC3B,WACF,CAAC;CACD,SAAS,kBAAkB,UAAU,EACnC,WACF,CAAC;CACD,QAAQ,kBAAkB,SAAS,EACjC,WACF,CAAC;CACD,QAAQ,kBAAkB,SAAS,EACjC,WACF,CAAC;CACD,QAAQ,kBAAkB,SAAS,EACjC,WACF,CAAC;CACD,OAAO,kBAAkB,QAAQ,EAC/B,WACF,CAAC;CACD,MAAM,kBAAkB,OAAO,EAC7B,WACF,CAAC;CACD,MAAM,kBAAkB,OAAO,EAC7B,WACF,CAAC;CACD,OAAO,kBAAkB,QAAQ,EAC/B,WACF,CAAC;CACD,KAAK,kBAAkB,MAAM,EAC3B,WACF,CAAC;CACD,OAAO,kBAAkB,QAAQ,EAC/B,WACF,CAAC;CACD,MAAM,kBAAkB,OAAO,EAC7B,WACF,CAAC;CACD,SAAS,kBAAkB,UAAU,EACnC,WACF,CAAC;CACD,SAAS,kBAAkB,UAAU,EACnC,WACF,CAAC;CACD,QAAQ,kBAAkB,SAAS,EACjC,WACF,CAAC;CACD,QAAQ,kBAAkB,SAAS,EACjC,WACF,CAAC;CACD,UAAU,kBAAkB,WAAW,EACrC,WACF,CAAC;CACD,SAAS,kBAAkB,UAAU,EACnC,WACF,CAAC;CACD,UAAU,kBAAkB,WAAW,EACrC,WACF,CAAC;CACD,SAAS,kBAAkB,UAAU,EACnC,WACF,CAAC;CACD,aAAa,kBAAkB,cAAc,EAC3C,WACF,CAAC;CACD,YAAY,kBAAkB,aAAa,EACzC,WACF,CAAC;CACD,QAAQ,kBAAkB,SAAS,EACjC,WACF,CAAC;CACD,KAAK,kBAAkB,MAAM,EAC3B,WACF,CAAC;CACD,SAAS,kBAAkB,UAAU,EACnC,WACF,CAAC;CACD,QAAQ,kBAAkB,SAAS,EACjC,WACF,CAAC;CACD,UAAU,kBAAkB,WAAW,EACrC,WACF,CAAC;CACD,YAAY,kBAAkB,aAAa,EACzC,WACF,CAAC;CACD,QAAQ,kBAAkB,SAAS,EACjC,WACF,CAAC;CACD,WAAW,kBAAkB,YAAY,EACvC,WACF,CAAC;CACD,SAAS,kBAAkB,UAAU,EACnC,WACF,CAAC;CACD,WAAW,kBAAkB,YAAY,EACvC,WACF,CAAC;CACD,UAAU,kBAAkB,WAAW,EACrC,WACF,CAAC;CACD,OAAO,kBAAkB,QAAQ,EAC/B,WACF,CAAC;CACD,SAAS,kBAAkB,UAAU,EACnC,WACF,CAAC;CACD,YAAY,kBAAkB,aAAa,EACzC,WACF,CAAC;CACD,YAAY,kBAAkB,aAAa,EACzC,WACF,CAAC;CACD,OAAO,kBAAkB,QAAQ,EAC/B,WACF,CAAC;CACD,SAAS,kBAAkB,UAAU,EACnC,WACF,CAAC;CACD,MAAM,YAAY,QAAQ,EACxB,WACF,CAAC;CACD,aAAa,YAAY,MAAM,EAC7B,WACF,CAAC;CACD,QAAQ,YAAY,UAAU,EAC5B,WACF,CAAC;CACD,KAAK,YAAY,OAAO,EACtB,WACF,CAAC;CACD,QAAQ,YAAY,UAAU,EAC5B,WACF,CAAC;CACD,QAAQ,YAAY,UAAU,EAC5B,WACF,CAAC;CACD,aAAa,YAAY,SAAS,EAChC,WACF,CAAC;CACD,KAAK,YAAY,KAAK;CACtB,SAAS,YAAY,SAAS;CAC9B,SAAS,YAAY,WAAW,EAC9B,WACF,CAAC;CACD,aAAa,YAAY,eAAe,EACtC,WACF,CAAC;CACD,WAAW,YAAY,WAAW;AACpC;AACA,SAAS,kBAAkB,OAAO;CAChC,OAAO,SAAS,MAAM,SAAS;AACjC;AACA,SAAS,kCAAkC,OAAO;CAChD,OAAO,SAAS;AAClB;AACA,SAAS,2BAA2B,OAAO;CACzC,OAAO,SAAS,MAAM,SAAS;AACjC;AACA,SAAS,2BAA2B,OAAO;CACzC,OAAO,SAAS,MAAM,SAAS;AACjC;AACA,SAAS,2BAA2B,OAAO;CACzC,OAAO,iBAAiB;AAC1B;AACA,SAAS,wBAAwB,OAAO;CACtC,OAAO,iBAAiB;AAC1B;AACA,SAAS,kBAAkB,OAAO;CAChC,OAAO,SAAS,MAAM,SAAS;AACjC;AACA,SAAS,mCAAmC,OAAO;CACjD,OAAO,SAAS,OAAO,SAAS;AAClC;AACA,SAAS,YAAY,OAAO;CAC1B,OAAO,SAAS,MAAM,SAAS;AACjC;AACA,SAAS,eAAe,OAAO;CAC7B,OAAO,SAAS,MAAM,SAAS;AACjC;AACA,SAAS,gBAAgB,OAAO;CAC9B,OAAO,SAAS,MAAM,SAAS;AACjC;AACA,SAAS,eAAe,OAAO;CAC7B,OAAO,UAAU;AACnB;AACA,SAAS,cAAc,OAAO;CAC5B,OAAO,cAAc;AACvB;AACA,SAAS,sBAAsB,OAAO;CACpC,OAAO,SAAS,OAAO,SAAS;AAClC;AACA,SAAS,0BAA0B,OAAO;CACxC,OAAO,SAAS,OAAO,SAAS;AAClC;AACA,SAAS,eAAe,OAAO;CAC7B,OAAO,YAAY;AACrB;AACA,SAAS,wBAAwB,OAAO;CACtC,OAAO,YAAY;AACrB;AACA,SAAS,wBAAwB,OAAO;CACtC,OAAO,UAAU;AACnB;AACA,SAAS,gBAAgB,OAAO;CAC9B,OAAO,SAAS,MAAM,SAAS;AACjC;AACA,SAAS,iBAAiB,OAAO;CAC/B,OAAO,WAAW;AACpB;AACA,IAAM,aAAN,MAAiB;CACf,YAAY,OAAO,eAAe;EAChC,KAAK,QAAQ;EACb,KAAK,gBAAgB,CAAC,CAAC;CACzB;CACA;CACA;AACF;AACA,MAAM,QAAQ;CACZ,OAAO,IAAI,WAAW,GAAG;CACzB,QAAQ,IAAI,WAAW,MAAM;CAC7B,QAAQ,IAAI,WAAW,OAAO;CAC9B,QAAQ,IAAI,WAAW,kBAAkB,IAAI;AAC/C;AAGA,MAAMC,sCAAoC;CAAC;CAAG;CAAI;CAAG;CAAI;CAAG;CAAI;CAAG;CAAG;CAAG;CAAI;CAAG;CAAI;CAAI;CAAK;CAAI;CAAI;CAAK;CAAI;CAAG;CAAI;CAAI;CAAI;CAAI;CAAI;CAAG;CAAI;CAAI;CAAI;CAAG;CAAI;CAAG;CAAG;CAAG;CAAG;CAAI;CAAK;CAAI;CAAI;CAAG;CAAI;CAAG;CAAI;CAAG;CAAI;CAAI;CAAI;CAAG;CAAI;CAAG;CAAG;CAAG;CAAG;CAAG;CAAI;CAAG;CAAI;CAAG;CAAG;CAAG;CAAG;CAAG;CAAI;CAAI;CAAK;CAAI;CAAI;CAAI;CAAG;CAAI;CAAG;CAAG;CAAI;CAAG;CAAG;CAAI;CAAG;CAAG;CAAG;CAAG;CAAI;CAAG;CAAG;CAAG;CAAG;CAAG;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAG;CAAG;CAAI;CAAI;CAAI;CAAI;CAAG;CAAI;CAAI;CAAI;CAAG;CAAG;CAAI;CAAG;CAAI;CAAG;CAAG;CAAG;CAAG;CAAI;CAAI;CAAI;CAAG;CAAI;CAAI;CAAG;CAAG;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAK;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAK;CAAI;CAAG;CAAG;CAAI;CAAG;CAAI;CAAI;CAAI;CAAG;CAAG;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAG;CAAG;CAAG;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAG;CAAG;CAAG;CAAG;CAAI;CAAG;CAAG;CAAI;CAAI;CAAI;CAAG;CAAI;CAAG;CAAG;CAAG;CAAI;CAAI;CAAG;CAAI;CAAI;CAAG;CAAI;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAI;CAAG;CAAG;CAAG;CAAI;CAAI;CAAG;CAAG;CAAG;CAAG;CAAI;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAI;CAAG;CAAI;CAAG;CAAI;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAI;CAAG;CAAG;CAAI;CAAG;CAAG;CAAG;CAAI;CAAI;CAAI;CAAG;CAAI;CAAG;CAAI;CAAI;CAAI;CAAG;CAAG;CAAG;CAAK;CAAI;CAAI;CAAG;CAAI;CAAI;CAAI;CAAG;CAAI;CAAI;CAAI;CAAG;CAAI;CAAI;CAAI;CAAG;CAAK;CAAI;CAAK;CAAI;CAAI;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAI;CAAI;CAAG;CAAG;CAAG;CAAI;CAAG;CAAG;CAAI;CAAI;CAAG;CAAG;CAAG;CAAI;CAAG;CAAI;CAAI;CAAG;CAAG;CAAI;CAAG;CAAI;CAAI;CAAI;CAAG;CAAI;CAAI;CAAK;CAAI;CAAI;CAAG;CAAG;CAAI;CAAI;CAAG;CAAI;CAAI;CAAK;CAAG;CAAG;CAAG;CAAG;CAAI;CAAI;CAAG;CAAI;CAAG;CAAG;CAAG;CAAG;CAAI;CAAI;CAAG;CAAI;CAAI;CAAK;CAAI;CAAI;CAAG;CAAG;CAAI;CAAG;CAAI;CAAK;CAAG;CAAI;CAAK;CAAK;CAAK;CAAI;CAAK;CAAM;CAAI;CAAI;CAAM;CAAI;CAAG;CAAI;CAAM;CAAG;CAAK;CAAM;CAAI;CAAM;CAAK;CAAG;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAG;CAAI;CAAI;CAAG;CAAI;CAAK;CAAI;CAAK;CAAI;CAAI;CAAI;CAAG;CAAI;CAAI;CAAI;CAAG;CAAG;CAAI;CAAI;CAAI;CAAG;CAAG;CAAG;CAAI;CAAG;CAAI;CAAM;CAAI;CAAI;CAAI;CAAK;CAAM;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAK;CAAI;CAAG;CAAI;CAAG;CAAG;CAAG;CAAI;CAAG;CAAG;CAAK;CAAM;CAAK;CAAG;CAAI;CAAG;CAAG;CAAG;CAAG;CAAM;CAAI;CAAG;CAAI;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAI;CAAG;CAAG;CAAG;CAAG;CAAG;CAAI;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAI;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAK;CAAG;CAAI;CAAG;CAAI;CAAG;CAAI;CAAG;CAAI;CAAG;CAAI;CAAG;CAAI;CAAG;CAAI;CAAG;CAAI;CAAG;CAAI;CAAG;CAAI;CAAG;CAAG;CAAM;CAAI;CAAG;CAAG;CAAK;CAAI;CAAK;CAAI;CAAI;CAAG;CAAI;CAAG;CAAK;CAAI;CAAI;CAAI;CAAK;CAAI;CAAK;CAAI;CAAG;CAAG;CAAK;CAAI;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAI;CAAG;CAAK;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAI;CAAG;CAAK;CAAI;CAAI;CAAG;CAAG;CAAM;CAAG;CAAG;CAAI;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CA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IAAI,CAAC,KAAK;EACR,MAAM;EACN,KAAK,MAAM,UAAU,YACnB,MAAM,aAAa,OAAO,CAAC,GAAG;EAEhC,iBAAiB,IAAI,KAAK,GAAG;CAC/B;CACA,OAAO;AACT;;;ACj5bA,MAAM,oCAAoC;CACzC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACD;AAEA,MAAM,+BAA+B;CACpC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;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EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK,mBACH;EACF,KAAK;GACH,QAAQ,KAAK,cAAb;IACE,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK,aACH;IACF,SACE,OAAO;GACX;GACA;EACF,SACE,OAAO;CACX;CACA,OAAO,QAAQ,QAAQ,aAAa,MAAM,IAAI;AAChD;AACA,SAASC,eAAa,MAAM,MAAM;CAChC,IAAI,CAAC,MAAM,OAAO;CAClB,QAAQ,KAAK,MAAb;EACE,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;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;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,QAAQ;CACR;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,eAAe;CACf;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,cAAc;CACd;CACA,cAAc;CACd;CACA;CACA;CACA,gBAAgB;CAChB;CACA;CACA;CACA;CACA,OAAO;CACP;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,GAAG,OAAO,aAAa,EAAE,OAAO,SAAS,CAAC;AAE1C,SAAS,MAAM,WAAW;CACxB,OAAO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AAK,eAAe;CAC/B,KAAK,OAAO;CACZ,KAAK,MAAM,SAAS,KAAK,UACvB,KAAK,MAAM,KAAK;CAElB,KAAK,OAAO;CACZ,KAAK,MAAM,KAAK,eAAe;AACjC;AACA,SAAS,qBAAqB;CAC5B,KAAK,UAAU,EAAE;CACjB,KAAK,UAAU,EAAE;AACnB;AACA,SAAS,qBAAqB;CAC5B,KAAK,MAAM,IAAI;CACf,KAAK,UAAU,EAAE;AACnB;AACA,MAAM,qBAAkC,qBAAO,eAAe;CAC5D,WAAW;CACX;CACA;CACA;CACA,cAAc;CACd;CACA;CACA;CACA;CACA;CACA;CACA,6BAA6B;CAC7B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,iBAAiB;CACjB,iBAAiB;CACjB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,qBAAqB;CACrB;CACA;CACA;CACA,uBAAuB;CACvB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,mBAAmB;CACnB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,6BAA6B;CAC7B;CACA;CACA;CACA;CACA,eAAe;CACf;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,eAAe;CACf;CACA;CACA,6BAA6B;CAC7B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,qBAAqB;CACrB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,4BAA4B;CAC5B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,0BAA0B;CAC1B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,GAAG,OAAO,aAAa,EACrB,OAAO,SACT,CAAC;AACD,MAAM,oCAAoB,IAAI,IAAI;AAClC,IAAI,QAAQ;AACZ,KAAK,MAAM,OAAO,OAAO,KAAK,kBAAkB,CAAC,CAAC,KAAK,GAAG;CACxD,IAAI,IAAI,WAAW,GAAG,GAAG;CACzB,kBAAkB,IAAI,KAAK;EAAC,mBAAmB;EAAM;EAAS,KAAA;CAAS,CAAC;AAC1E;AACA,MAAM,EACJ,cAAc,mBACZA;AACJ,KAAK,MAAM,QAAQ,OAAO,KAAK,MAAM,GAAG;CACtC,MAAM,OAAO,OAAO;CACpB,IAAI,kBAAkB,IAAI,IAAI,GAC5B,kBAAkB,IAAI,IAAI,CAAC,CAAC,KAAK;AAErC;AACA,SAAS,qBAAqB,MAAM;CAClC,IAAI,UAAU;CACd,OAAO,MACL,QAAQ,QAAQ,MAAhB;EACE,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK,4BACH,OAAO;EACT,KAAK;GACH,UAAU,QAAQ;GAClB;EACF,KAAK;GACH,UAAU,QAAQ;GAClB;EACF,KAAK;GACH,UAAU,QAAQ;GAClB;EACF,SACE,OAAO;CACX;AAEJ;AACA,SAAS,kBAAkB,MAAM,QAAQ,UAAU;CACjD,QAAQ,UAAR;EACE,KAAK;GA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"}
|