@lithent/hmr-parser 0.1.0
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/README.md +146 -0
- package/dist/helper/calculator.d.ts +8 -0
- package/dist/index.d.ts +8 -0
- package/dist/lithentHmrParser.mjs +21509 -0
- package/dist/lithentHmrParser.mjs.map +1 -0
- package/dist/lithentHmrParser.umd.js +216 -0
- package/dist/lithentHmrParser.umd.js.map +1 -0
- package/dist/markerParse.d.ts +2 -0
- package/dist/noMarkerParse.d.ts +2 -0
- package/dist/shared.d.ts +4 -0
- package/dist/strings.d.ts +1 -0
- package/dist/tests/mark.test.d.ts +1 -0
- package/dist/tests/nomark.test.d.ts +1 -0
- package/dist/transform/componentRegister.d.ts +3 -0
- package/dist/transform/renderGuard.d.ts +3 -0
- package/dist/types.d.ts +28 -0
- package/dist/utils/ast/componentCollector.d.ts +8 -0
- package/package.json +52 -0
- package/src/helper/calculator.ts +169 -0
- package/src/index.ts +33 -0
- package/src/markerParse.ts +61 -0
- package/src/noMarkerParse.ts +70 -0
- package/src/shared.ts +109 -0
- package/src/strings.ts +176 -0
- package/src/tests/mark.test.ts +162 -0
- package/src/tests/nomark.test.tsx +100 -0
- package/src/transform/componentRegister.ts +50 -0
- package/src/transform/renderGuard.ts +59 -0
- package/src/types.ts +33 -0
- package/src/utils/ast/componentCollector.ts +119 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lithentHmrParser.mjs","sources":["../../../node_modules/.pnpm/@jridgewell+sourcemap-codec@1.5.5/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs","../../../node_modules/.pnpm/magic-string@0.30.19/node_modules/magic-string/dist/magic-string.es.mjs","../src/strings.ts","../../../node_modules/.pnpm/@babel+parser@7.26.8/node_modules/@babel/parser/lib/index.js","../src/helper/calculator.ts","../src/shared.ts","../src/transform/componentRegister.ts","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/utils/shallowEqual.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/utils/deprecationWarning.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/validators/generated/index.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/validators/matchesPattern.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/validators/react/isReactComponent.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/validators/react/isCompatTag.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/validators/isType.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/validators/isPlaceholderType.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/validators/is.js","../../../node_modules/.pnpm/@babel+helper-validator-identifier@7.28.5/node_modules/@babel/helper-validator-identifier/lib/identifier.js","../../../node_modules/.pnpm/@babel+helper-validator-identifier@7.28.5/node_modules/@babel/helper-validator-identifier/lib/keyword.js","../../../node_modules/.pnpm/@babel+helper-validator-identifier@7.28.5/node_modules/@babel/helper-validator-identifier/lib/index.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/validators/isValidIdentifier.js","../../../node_modules/.pnpm/@babel+helper-string-parser@7.27.1/node_modules/@babel/helper-string-parser/lib/index.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/constants/index.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/definitions/utils.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/definitions/core.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/definitions/flow.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/definitions/jsx.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/definitions/placeholders.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/definitions/misc.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/definitions/experimental.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/definitions/typescript.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/definitions/deprecated-aliases.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/definitions/index.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/validators/validate.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/builders/generated/lowercase.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/builders/generated/uppercase.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/builders/generated/index.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/builders/react/buildChildren.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/validators/isNode.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/asserts/assertNode.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/asserts/generated/index.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/builders/productions.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/clone/cloneNode.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/clone/clone.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/clone/cloneDeep.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/clone/cloneWithoutLoc.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/comments/addComments.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/comments/addComment.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/utils/inherit.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/comments/inheritInnerComments.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/comments/inheritLeadingComments.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/comments/inheritTrailingComments.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/comments/inheritsComments.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/comments/removeComments.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/constants/generated/index.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/converters/toBlock.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/converters/ensureBlock.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/converters/toIdentifier.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/converters/toBindingIdentifierName.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/converters/toComputedKey.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/converters/toExpression.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/traverse/traverseFast.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/modifications/removeProperties.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/modifications/removePropertiesDeep.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/converters/toKeyAlias.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/converters/toStatement.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/converters/valueToNode.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/modifications/appendToMemberExpression.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/modifications/inherits.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/modifications/prependToMemberExpression.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/retrievers/getAssignmentIdentifiers.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/retrievers/getFunctionName.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/traverse/traverse.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/validators/isBinding.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/validators/isLet.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/validators/isBlockScoped.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/validators/isImmutable.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/validators/isNodesEquivalent.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/validators/isReferenced.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/validators/isScope.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/validators/isSpecifierDefault.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/validators/isValidES3Identifier.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/validators/isVar.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/converters/toSequenceExpression.js","../../../node_modules/.pnpm/@babel+types@7.28.5/node_modules/@babel/types/lib/index.js","../src/transform/renderGuard.ts","../src/utils/ast/componentCollector.ts","../src/markerParse.ts","../src/noMarkerParse.ts","../src/index.ts"],"sourcesContent":["// 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","import { encode } from '@jridgewell/sourcemap-codec';\n\nclass BitSet {\n\tconstructor(arg) {\n\t\tthis.bits = arg instanceof BitSet ? arg.bits.slice() : [];\n\t}\n\n\tadd(n) {\n\t\tthis.bits[n >> 5] |= 1 << (n & 31);\n\t}\n\n\thas(n) {\n\t\treturn !!(this.bits[n >> 5] & (1 << (n & 31)));\n\t}\n}\n\nclass Chunk {\n\tconstructor(start, end, content) {\n\t\tthis.start = start;\n\t\tthis.end = end;\n\t\tthis.original = content;\n\n\t\tthis.intro = '';\n\t\tthis.outro = '';\n\n\t\tthis.content = content;\n\t\tthis.storeName = false;\n\t\tthis.edited = false;\n\n\t\t{\n\t\t\tthis.previous = null;\n\t\t\tthis.next = null;\n\t\t}\n\t}\n\n\tappendLeft(content) {\n\t\tthis.outro += content;\n\t}\n\n\tappendRight(content) {\n\t\tthis.intro = this.intro + content;\n\t}\n\n\tclone() {\n\t\tconst chunk = new Chunk(this.start, this.end, this.original);\n\n\t\tchunk.intro = this.intro;\n\t\tchunk.outro = this.outro;\n\t\tchunk.content = this.content;\n\t\tchunk.storeName = this.storeName;\n\t\tchunk.edited = this.edited;\n\n\t\treturn chunk;\n\t}\n\n\tcontains(index) {\n\t\treturn this.start < index && index < this.end;\n\t}\n\n\teachNext(fn) {\n\t\tlet chunk = this;\n\t\twhile (chunk) {\n\t\t\tfn(chunk);\n\t\t\tchunk = chunk.next;\n\t\t}\n\t}\n\n\teachPrevious(fn) {\n\t\tlet chunk = this;\n\t\twhile (chunk) {\n\t\t\tfn(chunk);\n\t\t\tchunk = chunk.previous;\n\t\t}\n\t}\n\n\tedit(content, storeName, contentOnly) {\n\t\tthis.content = content;\n\t\tif (!contentOnly) {\n\t\t\tthis.intro = '';\n\t\t\tthis.outro = '';\n\t\t}\n\t\tthis.storeName = storeName;\n\n\t\tthis.edited = true;\n\n\t\treturn this;\n\t}\n\n\tprependLeft(content) {\n\t\tthis.outro = content + this.outro;\n\t}\n\n\tprependRight(content) {\n\t\tthis.intro = content + this.intro;\n\t}\n\n\treset() {\n\t\tthis.intro = '';\n\t\tthis.outro = '';\n\t\tif (this.edited) {\n\t\t\tthis.content = this.original;\n\t\t\tthis.storeName = false;\n\t\t\tthis.edited = false;\n\t\t}\n\t}\n\n\tsplit(index) {\n\t\tconst sliceIndex = index - this.start;\n\n\t\tconst originalBefore = this.original.slice(0, sliceIndex);\n\t\tconst originalAfter = this.original.slice(sliceIndex);\n\n\t\tthis.original = originalBefore;\n\n\t\tconst newChunk = new Chunk(index, this.end, originalAfter);\n\t\tnewChunk.outro = this.outro;\n\t\tthis.outro = '';\n\n\t\tthis.end = index;\n\n\t\tif (this.edited) {\n\t\t\t// after split we should save the edit content record into the correct chunk\n\t\t\t// to make sure sourcemap correct\n\t\t\t// For example:\n\t\t\t// ' test'.trim()\n\t\t\t// split -> ' ' + 'test'\n\t\t\t// ✔️ edit -> '' + 'test'\n\t\t\t// ✖️ edit -> 'test' + ''\n\t\t\t// TODO is this block necessary?...\n\t\t\tnewChunk.edit('', false);\n\t\t\tthis.content = '';\n\t\t} else {\n\t\t\tthis.content = originalBefore;\n\t\t}\n\n\t\tnewChunk.next = this.next;\n\t\tif (newChunk.next) newChunk.next.previous = newChunk;\n\t\tnewChunk.previous = this;\n\t\tthis.next = newChunk;\n\n\t\treturn newChunk;\n\t}\n\n\ttoString() {\n\t\treturn this.intro + this.content + this.outro;\n\t}\n\n\ttrimEnd(rx) {\n\t\tthis.outro = this.outro.replace(rx, '');\n\t\tif (this.outro.length) return true;\n\n\t\tconst trimmed = this.content.replace(rx, '');\n\n\t\tif (trimmed.length) {\n\t\t\tif (trimmed !== this.content) {\n\t\t\t\tthis.split(this.start + trimmed.length).edit('', undefined, true);\n\t\t\t\tif (this.edited) {\n\t\t\t\t\t// save the change, if it has been edited\n\t\t\t\t\tthis.edit(trimmed, this.storeName, true);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} else {\n\t\t\tthis.edit('', undefined, true);\n\n\t\t\tthis.intro = this.intro.replace(rx, '');\n\t\t\tif (this.intro.length) return true;\n\t\t}\n\t}\n\n\ttrimStart(rx) {\n\t\tthis.intro = this.intro.replace(rx, '');\n\t\tif (this.intro.length) return true;\n\n\t\tconst trimmed = this.content.replace(rx, '');\n\n\t\tif (trimmed.length) {\n\t\t\tif (trimmed !== this.content) {\n\t\t\t\tconst newChunk = this.split(this.end - trimmed.length);\n\t\t\t\tif (this.edited) {\n\t\t\t\t\t// save the change, if it has been edited\n\t\t\t\t\tnewChunk.edit(trimmed, this.storeName, true);\n\t\t\t\t}\n\t\t\t\tthis.edit('', undefined, true);\n\t\t\t}\n\t\t\treturn true;\n\t\t} else {\n\t\t\tthis.edit('', undefined, true);\n\n\t\t\tthis.outro = this.outro.replace(rx, '');\n\t\t\tif (this.outro.length) return true;\n\t\t}\n\t}\n}\n\nfunction getBtoa() {\n\tif (typeof globalThis !== 'undefined' && typeof globalThis.btoa === 'function') {\n\t\treturn (str) => globalThis.btoa(unescape(encodeURIComponent(str)));\n\t} else if (typeof Buffer === 'function') {\n\t\treturn (str) => Buffer.from(str, 'utf-8').toString('base64');\n\t} else {\n\t\treturn () => {\n\t\t\tthrow new Error('Unsupported environment: `window.btoa` or `Buffer` should be supported.');\n\t\t};\n\t}\n}\n\nconst btoa = /*#__PURE__*/ getBtoa();\n\nclass SourceMap {\n\tconstructor(properties) {\n\t\tthis.version = 3;\n\t\tthis.file = properties.file;\n\t\tthis.sources = properties.sources;\n\t\tthis.sourcesContent = properties.sourcesContent;\n\t\tthis.names = properties.names;\n\t\tthis.mappings = encode(properties.mappings);\n\t\tif (typeof properties.x_google_ignoreList !== 'undefined') {\n\t\t\tthis.x_google_ignoreList = properties.x_google_ignoreList;\n\t\t}\n\t\tif (typeof properties.debugId !== 'undefined') {\n\t\t\tthis.debugId = properties.debugId;\n\t\t}\n\t}\n\n\ttoString() {\n\t\treturn JSON.stringify(this);\n\t}\n\n\ttoUrl() {\n\t\treturn 'data:application/json;charset=utf-8;base64,' + btoa(this.toString());\n\t}\n}\n\nfunction guessIndent(code) {\n\tconst lines = code.split('\\n');\n\n\tconst tabbed = lines.filter((line) => /^\\t+/.test(line));\n\tconst spaced = lines.filter((line) => /^ {2,}/.test(line));\n\n\tif (tabbed.length === 0 && spaced.length === 0) {\n\t\treturn null;\n\t}\n\n\t// More lines tabbed than spaced? Assume tabs, and\n\t// default to tabs in the case of a tie (or nothing\n\t// to go on)\n\tif (tabbed.length >= spaced.length) {\n\t\treturn '\\t';\n\t}\n\n\t// Otherwise, we need to guess the multiple\n\tconst min = spaced.reduce((previous, current) => {\n\t\tconst numSpaces = /^ +/.exec(current)[0].length;\n\t\treturn Math.min(numSpaces, previous);\n\t}, Infinity);\n\n\treturn new Array(min + 1).join(' ');\n}\n\nfunction getRelativePath(from, to) {\n\tconst fromParts = from.split(/[/\\\\]/);\n\tconst toParts = to.split(/[/\\\\]/);\n\n\tfromParts.pop(); // get dirname\n\n\twhile (fromParts[0] === toParts[0]) {\n\t\tfromParts.shift();\n\t\ttoParts.shift();\n\t}\n\n\tif (fromParts.length) {\n\t\tlet i = fromParts.length;\n\t\twhile (i--) fromParts[i] = '..';\n\t}\n\n\treturn fromParts.concat(toParts).join('/');\n}\n\nconst toString = Object.prototype.toString;\n\nfunction isObject(thing) {\n\treturn toString.call(thing) === '[object Object]';\n}\n\nfunction getLocator(source) {\n\tconst originalLines = source.split('\\n');\n\tconst lineOffsets = [];\n\n\tfor (let i = 0, pos = 0; i < originalLines.length; i++) {\n\t\tlineOffsets.push(pos);\n\t\tpos += originalLines[i].length + 1;\n\t}\n\n\treturn function locate(index) {\n\t\tlet i = 0;\n\t\tlet j = lineOffsets.length;\n\t\twhile (i < j) {\n\t\t\tconst m = (i + j) >> 1;\n\t\t\tif (index < lineOffsets[m]) {\n\t\t\t\tj = m;\n\t\t\t} else {\n\t\t\t\ti = m + 1;\n\t\t\t}\n\t\t}\n\t\tconst line = i - 1;\n\t\tconst column = index - lineOffsets[line];\n\t\treturn { line, column };\n\t};\n}\n\nconst wordRegex = /\\w/;\n\nclass Mappings {\n\tconstructor(hires) {\n\t\tthis.hires = hires;\n\t\tthis.generatedCodeLine = 0;\n\t\tthis.generatedCodeColumn = 0;\n\t\tthis.raw = [];\n\t\tthis.rawSegments = this.raw[this.generatedCodeLine] = [];\n\t\tthis.pending = null;\n\t}\n\n\taddEdit(sourceIndex, content, loc, nameIndex) {\n\t\tif (content.length) {\n\t\t\tconst contentLengthMinusOne = content.length - 1;\n\t\t\tlet contentLineEnd = content.indexOf('\\n', 0);\n\t\t\tlet previousContentLineEnd = -1;\n\t\t\t// Loop through each line in the content and add a segment, but stop if the last line is empty,\n\t\t\t// else code afterwards would fill one line too many\n\t\t\twhile (contentLineEnd >= 0 && contentLengthMinusOne > contentLineEnd) {\n\t\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\t\t\t\tif (nameIndex >= 0) {\n\t\t\t\t\tsegment.push(nameIndex);\n\t\t\t\t}\n\t\t\t\tthis.rawSegments.push(segment);\n\n\t\t\t\tthis.generatedCodeLine += 1;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t\tthis.generatedCodeColumn = 0;\n\n\t\t\t\tpreviousContentLineEnd = contentLineEnd;\n\t\t\t\tcontentLineEnd = content.indexOf('\\n', contentLineEnd + 1);\n\t\t\t}\n\n\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\t\t\tif (nameIndex >= 0) {\n\t\t\t\tsegment.push(nameIndex);\n\t\t\t}\n\t\t\tthis.rawSegments.push(segment);\n\n\t\t\tthis.advance(content.slice(previousContentLineEnd + 1));\n\t\t} else if (this.pending) {\n\t\t\tthis.rawSegments.push(this.pending);\n\t\t\tthis.advance(content);\n\t\t}\n\n\t\tthis.pending = null;\n\t}\n\n\taddUneditedChunk(sourceIndex, chunk, original, loc, sourcemapLocations) {\n\t\tlet originalCharIndex = chunk.start;\n\t\tlet first = true;\n\t\t// when iterating each char, check if it's in a word boundary\n\t\tlet charInHiresBoundary = false;\n\n\t\twhile (originalCharIndex < chunk.end) {\n\t\t\tif (original[originalCharIndex] === '\\n') {\n\t\t\t\tloc.line += 1;\n\t\t\t\tloc.column = 0;\n\t\t\t\tthis.generatedCodeLine += 1;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t\tthis.generatedCodeColumn = 0;\n\t\t\t\tfirst = true;\n\t\t\t\tcharInHiresBoundary = false;\n\t\t\t} else {\n\t\t\t\tif (this.hires || first || sourcemapLocations.has(originalCharIndex)) {\n\t\t\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\n\t\t\t\t\tif (this.hires === 'boundary') {\n\t\t\t\t\t\t// in hires \"boundary\", group segments per word boundary than per char\n\t\t\t\t\t\tif (wordRegex.test(original[originalCharIndex])) {\n\t\t\t\t\t\t\t// for first char in the boundary found, start the boundary by pushing a segment\n\t\t\t\t\t\t\tif (!charInHiresBoundary) {\n\t\t\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t\t\t\tcharInHiresBoundary = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// for non-word char, end the boundary by pushing a segment\n\t\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t\t\tcharInHiresBoundary = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tloc.column += 1;\n\t\t\t\tthis.generatedCodeColumn += 1;\n\t\t\t\tfirst = false;\n\t\t\t}\n\n\t\t\toriginalCharIndex += 1;\n\t\t}\n\n\t\tthis.pending = null;\n\t}\n\n\tadvance(str) {\n\t\tif (!str) return;\n\n\t\tconst lines = str.split('\\n');\n\n\t\tif (lines.length > 1) {\n\t\t\tfor (let i = 0; i < lines.length - 1; i++) {\n\t\t\t\tthis.generatedCodeLine++;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t}\n\t\t\tthis.generatedCodeColumn = 0;\n\t\t}\n\n\t\tthis.generatedCodeColumn += lines[lines.length - 1].length;\n\t}\n}\n\nconst n = '\\n';\n\nconst warned = {\n\tinsertLeft: false,\n\tinsertRight: false,\n\tstoreName: false,\n};\n\nclass MagicString {\n\tconstructor(string, options = {}) {\n\t\tconst chunk = new Chunk(0, string.length, string);\n\n\t\tObject.defineProperties(this, {\n\t\t\toriginal: { writable: true, value: string },\n\t\t\toutro: { writable: true, value: '' },\n\t\t\tintro: { writable: true, value: '' },\n\t\t\tfirstChunk: { writable: true, value: chunk },\n\t\t\tlastChunk: { writable: true, value: chunk },\n\t\t\tlastSearchedChunk: { writable: true, value: chunk },\n\t\t\tbyStart: { writable: true, value: {} },\n\t\t\tbyEnd: { writable: true, value: {} },\n\t\t\tfilename: { writable: true, value: options.filename },\n\t\t\tindentExclusionRanges: { writable: true, value: options.indentExclusionRanges },\n\t\t\tsourcemapLocations: { writable: true, value: new BitSet() },\n\t\t\tstoredNames: { writable: true, value: {} },\n\t\t\tindentStr: { writable: true, value: undefined },\n\t\t\tignoreList: { writable: true, value: options.ignoreList },\n\t\t\toffset: { writable: true, value: options.offset || 0 },\n\t\t});\n\n\t\tthis.byStart[0] = chunk;\n\t\tthis.byEnd[string.length] = chunk;\n\t}\n\n\taddSourcemapLocation(char) {\n\t\tthis.sourcemapLocations.add(char);\n\t}\n\n\tappend(content) {\n\t\tif (typeof content !== 'string') throw new TypeError('outro content must be a string');\n\n\t\tthis.outro += content;\n\t\treturn this;\n\t}\n\n\tappendLeft(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byEnd[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.appendLeft(content);\n\t\t} else {\n\t\t\tthis.intro += content;\n\t\t}\n\t\treturn this;\n\t}\n\n\tappendRight(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byStart[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.appendRight(content);\n\t\t} else {\n\t\t\tthis.outro += content;\n\t\t}\n\t\treturn this;\n\t}\n\n\tclone() {\n\t\tconst cloned = new MagicString(this.original, { filename: this.filename, offset: this.offset });\n\n\t\tlet originalChunk = this.firstChunk;\n\t\tlet clonedChunk = (cloned.firstChunk = cloned.lastSearchedChunk = originalChunk.clone());\n\n\t\twhile (originalChunk) {\n\t\t\tcloned.byStart[clonedChunk.start] = clonedChunk;\n\t\t\tcloned.byEnd[clonedChunk.end] = clonedChunk;\n\n\t\t\tconst nextOriginalChunk = originalChunk.next;\n\t\t\tconst nextClonedChunk = nextOriginalChunk && nextOriginalChunk.clone();\n\n\t\t\tif (nextClonedChunk) {\n\t\t\t\tclonedChunk.next = nextClonedChunk;\n\t\t\t\tnextClonedChunk.previous = clonedChunk;\n\n\t\t\t\tclonedChunk = nextClonedChunk;\n\t\t\t}\n\n\t\t\toriginalChunk = nextOriginalChunk;\n\t\t}\n\n\t\tcloned.lastChunk = clonedChunk;\n\n\t\tif (this.indentExclusionRanges) {\n\t\t\tcloned.indentExclusionRanges = this.indentExclusionRanges.slice();\n\t\t}\n\n\t\tcloned.sourcemapLocations = new BitSet(this.sourcemapLocations);\n\n\t\tcloned.intro = this.intro;\n\t\tcloned.outro = this.outro;\n\n\t\treturn cloned;\n\t}\n\n\tgenerateDecodedMap(options) {\n\t\toptions = options || {};\n\n\t\tconst sourceIndex = 0;\n\t\tconst names = Object.keys(this.storedNames);\n\t\tconst mappings = new Mappings(options.hires);\n\n\t\tconst locate = getLocator(this.original);\n\n\t\tif (this.intro) {\n\t\t\tmappings.advance(this.intro);\n\t\t}\n\n\t\tthis.firstChunk.eachNext((chunk) => {\n\t\t\tconst loc = locate(chunk.start);\n\n\t\t\tif (chunk.intro.length) mappings.advance(chunk.intro);\n\n\t\t\tif (chunk.edited) {\n\t\t\t\tmappings.addEdit(\n\t\t\t\t\tsourceIndex,\n\t\t\t\t\tchunk.content,\n\t\t\t\t\tloc,\n\t\t\t\t\tchunk.storeName ? names.indexOf(chunk.original) : -1,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tmappings.addUneditedChunk(sourceIndex, chunk, this.original, loc, this.sourcemapLocations);\n\t\t\t}\n\n\t\t\tif (chunk.outro.length) mappings.advance(chunk.outro);\n\t\t});\n\n\t\tif (this.outro) {\n\t\t\tmappings.advance(this.outro);\n\t\t}\n\n\t\treturn {\n\t\t\tfile: options.file ? options.file.split(/[/\\\\]/).pop() : undefined,\n\t\t\tsources: [\n\t\t\t\toptions.source ? getRelativePath(options.file || '', options.source) : options.file || '',\n\t\t\t],\n\t\t\tsourcesContent: options.includeContent ? [this.original] : undefined,\n\t\t\tnames,\n\t\t\tmappings: mappings.raw,\n\t\t\tx_google_ignoreList: this.ignoreList ? [sourceIndex] : undefined,\n\t\t};\n\t}\n\n\tgenerateMap(options) {\n\t\treturn new SourceMap(this.generateDecodedMap(options));\n\t}\n\n\t_ensureindentStr() {\n\t\tif (this.indentStr === undefined) {\n\t\t\tthis.indentStr = guessIndent(this.original);\n\t\t}\n\t}\n\n\t_getRawIndentString() {\n\t\tthis._ensureindentStr();\n\t\treturn this.indentStr;\n\t}\n\n\tgetIndentString() {\n\t\tthis._ensureindentStr();\n\t\treturn this.indentStr === null ? '\\t' : this.indentStr;\n\t}\n\n\tindent(indentStr, options) {\n\t\tconst pattern = /^[^\\r\\n]/gm;\n\n\t\tif (isObject(indentStr)) {\n\t\t\toptions = indentStr;\n\t\t\tindentStr = undefined;\n\t\t}\n\n\t\tif (indentStr === undefined) {\n\t\t\tthis._ensureindentStr();\n\t\t\tindentStr = this.indentStr || '\\t';\n\t\t}\n\n\t\tif (indentStr === '') return this; // noop\n\n\t\toptions = options || {};\n\n\t\t// Process exclusion ranges\n\t\tconst isExcluded = {};\n\n\t\tif (options.exclude) {\n\t\t\tconst exclusions =\n\t\t\t\ttypeof options.exclude[0] === 'number' ? [options.exclude] : options.exclude;\n\t\t\texclusions.forEach((exclusion) => {\n\t\t\t\tfor (let i = exclusion[0]; i < exclusion[1]; i += 1) {\n\t\t\t\t\tisExcluded[i] = true;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tlet shouldIndentNextCharacter = options.indentStart !== false;\n\t\tconst replacer = (match) => {\n\t\t\tif (shouldIndentNextCharacter) return `${indentStr}${match}`;\n\t\t\tshouldIndentNextCharacter = true;\n\t\t\treturn match;\n\t\t};\n\n\t\tthis.intro = this.intro.replace(pattern, replacer);\n\n\t\tlet charIndex = 0;\n\t\tlet chunk = this.firstChunk;\n\n\t\twhile (chunk) {\n\t\t\tconst end = chunk.end;\n\n\t\t\tif (chunk.edited) {\n\t\t\t\tif (!isExcluded[charIndex]) {\n\t\t\t\t\tchunk.content = chunk.content.replace(pattern, replacer);\n\n\t\t\t\t\tif (chunk.content.length) {\n\t\t\t\t\t\tshouldIndentNextCharacter = chunk.content[chunk.content.length - 1] === '\\n';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcharIndex = chunk.start;\n\n\t\t\t\twhile (charIndex < end) {\n\t\t\t\t\tif (!isExcluded[charIndex]) {\n\t\t\t\t\t\tconst char = this.original[charIndex];\n\n\t\t\t\t\t\tif (char === '\\n') {\n\t\t\t\t\t\t\tshouldIndentNextCharacter = true;\n\t\t\t\t\t\t} else if (char !== '\\r' && shouldIndentNextCharacter) {\n\t\t\t\t\t\t\tshouldIndentNextCharacter = false;\n\n\t\t\t\t\t\t\tif (charIndex === chunk.start) {\n\t\t\t\t\t\t\t\tchunk.prependRight(indentStr);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis._splitChunk(chunk, charIndex);\n\t\t\t\t\t\t\t\tchunk = chunk.next;\n\t\t\t\t\t\t\t\tchunk.prependRight(indentStr);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tcharIndex += 1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcharIndex = chunk.end;\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\tthis.outro = this.outro.replace(pattern, replacer);\n\n\t\treturn this;\n\t}\n\n\tinsert() {\n\t\tthrow new Error(\n\t\t\t'magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)',\n\t\t);\n\t}\n\n\tinsertLeft(index, content) {\n\t\tif (!warned.insertLeft) {\n\t\t\tconsole.warn(\n\t\t\t\t'magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead',\n\t\t\t);\n\t\t\twarned.insertLeft = true;\n\t\t}\n\n\t\treturn this.appendLeft(index, content);\n\t}\n\n\tinsertRight(index, content) {\n\t\tif (!warned.insertRight) {\n\t\t\tconsole.warn(\n\t\t\t\t'magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead',\n\t\t\t);\n\t\t\twarned.insertRight = true;\n\t\t}\n\n\t\treturn this.prependRight(index, content);\n\t}\n\n\tmove(start, end, index) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\t\tindex = index + this.offset;\n\n\t\tif (index >= start && index <= end) throw new Error('Cannot move a selection inside itself');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\t\tthis._split(index);\n\n\t\tconst first = this.byStart[start];\n\t\tconst last = this.byEnd[end];\n\n\t\tconst oldLeft = first.previous;\n\t\tconst oldRight = last.next;\n\n\t\tconst newRight = this.byStart[index];\n\t\tif (!newRight && last === this.lastChunk) return this;\n\t\tconst newLeft = newRight ? newRight.previous : this.lastChunk;\n\n\t\tif (oldLeft) oldLeft.next = oldRight;\n\t\tif (oldRight) oldRight.previous = oldLeft;\n\n\t\tif (newLeft) newLeft.next = first;\n\t\tif (newRight) newRight.previous = last;\n\n\t\tif (!first.previous) this.firstChunk = last.next;\n\t\tif (!last.next) {\n\t\t\tthis.lastChunk = first.previous;\n\t\t\tthis.lastChunk.next = null;\n\t\t}\n\n\t\tfirst.previous = newLeft;\n\t\tlast.next = newRight || null;\n\n\t\tif (!newLeft) this.firstChunk = first;\n\t\tif (!newRight) this.lastChunk = last;\n\t\treturn this;\n\t}\n\n\toverwrite(start, end, content, options) {\n\t\toptions = options || {};\n\t\treturn this.update(start, end, content, { ...options, overwrite: !options.contentOnly });\n\t}\n\n\tupdate(start, end, content, options) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('replacement content must be a string');\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tif (end > this.original.length) throw new Error('end is out of bounds');\n\t\tif (start === end)\n\t\t\tthrow new Error(\n\t\t\t\t'Cannot overwrite a zero-length range – use appendLeft or prependRight instead',\n\t\t\t);\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tif (options === true) {\n\t\t\tif (!warned.storeName) {\n\t\t\t\tconsole.warn(\n\t\t\t\t\t'The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string',\n\t\t\t\t);\n\t\t\t\twarned.storeName = true;\n\t\t\t}\n\n\t\t\toptions = { storeName: true };\n\t\t}\n\t\tconst storeName = options !== undefined ? options.storeName : false;\n\t\tconst overwrite = options !== undefined ? options.overwrite : false;\n\n\t\tif (storeName) {\n\t\t\tconst original = this.original.slice(start, end);\n\t\t\tObject.defineProperty(this.storedNames, original, {\n\t\t\t\twritable: true,\n\t\t\t\tvalue: true,\n\t\t\t\tenumerable: true,\n\t\t\t});\n\t\t}\n\n\t\tconst first = this.byStart[start];\n\t\tconst last = this.byEnd[end];\n\n\t\tif (first) {\n\t\t\tlet chunk = first;\n\t\t\twhile (chunk !== last) {\n\t\t\t\tif (chunk.next !== this.byStart[chunk.end]) {\n\t\t\t\t\tthrow new Error('Cannot overwrite across a split point');\n\t\t\t\t}\n\t\t\t\tchunk = chunk.next;\n\t\t\t\tchunk.edit('', false);\n\t\t\t}\n\n\t\t\tfirst.edit(content, storeName, !overwrite);\n\t\t} else {\n\t\t\t// must be inserting at the end\n\t\t\tconst newChunk = new Chunk(start, end, '').edit(content, storeName);\n\n\t\t\t// TODO last chunk in the array may not be the last chunk, if it's moved...\n\t\t\tlast.next = newChunk;\n\t\t\tnewChunk.previous = last;\n\t\t}\n\t\treturn this;\n\t}\n\n\tprepend(content) {\n\t\tif (typeof content !== 'string') throw new TypeError('outro content must be a string');\n\n\t\tthis.intro = content + this.intro;\n\t\treturn this;\n\t}\n\n\tprependLeft(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byEnd[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.prependLeft(content);\n\t\t} else {\n\t\t\tthis.intro = content + this.intro;\n\t\t}\n\t\treturn this;\n\t}\n\n\tprependRight(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byStart[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.prependRight(content);\n\t\t} else {\n\t\t\tthis.outro = content + this.outro;\n\t\t}\n\t\treturn this;\n\t}\n\n\tremove(start, end) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tif (start === end) return this;\n\n\t\tif (start < 0 || end > this.original.length) throw new Error('Character is out of bounds');\n\t\tif (start > end) throw new Error('end must be greater than start');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tlet chunk = this.byStart[start];\n\n\t\twhile (chunk) {\n\t\t\tchunk.intro = '';\n\t\t\tchunk.outro = '';\n\t\t\tchunk.edit('');\n\n\t\t\tchunk = end > chunk.end ? this.byStart[chunk.end] : null;\n\t\t}\n\t\treturn this;\n\t}\n\n\treset(start, end) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tif (start === end) return this;\n\n\t\tif (start < 0 || end > this.original.length) throw new Error('Character is out of bounds');\n\t\tif (start > end) throw new Error('end must be greater than start');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tlet chunk = this.byStart[start];\n\n\t\twhile (chunk) {\n\t\t\tchunk.reset();\n\n\t\t\tchunk = end > chunk.end ? this.byStart[chunk.end] : null;\n\t\t}\n\t\treturn this;\n\t}\n\n\tlastChar() {\n\t\tif (this.outro.length) return this.outro[this.outro.length - 1];\n\t\tlet chunk = this.lastChunk;\n\t\tdo {\n\t\t\tif (chunk.outro.length) return chunk.outro[chunk.outro.length - 1];\n\t\t\tif (chunk.content.length) return chunk.content[chunk.content.length - 1];\n\t\t\tif (chunk.intro.length) return chunk.intro[chunk.intro.length - 1];\n\t\t} while ((chunk = chunk.previous));\n\t\tif (this.intro.length) return this.intro[this.intro.length - 1];\n\t\treturn '';\n\t}\n\n\tlastLine() {\n\t\tlet lineIndex = this.outro.lastIndexOf(n);\n\t\tif (lineIndex !== -1) return this.outro.substr(lineIndex + 1);\n\t\tlet lineStr = this.outro;\n\t\tlet chunk = this.lastChunk;\n\t\tdo {\n\t\t\tif (chunk.outro.length > 0) {\n\t\t\t\tlineIndex = chunk.outro.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.outro.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.outro + lineStr;\n\t\t\t}\n\n\t\t\tif (chunk.content.length > 0) {\n\t\t\t\tlineIndex = chunk.content.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.content.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.content + lineStr;\n\t\t\t}\n\n\t\t\tif (chunk.intro.length > 0) {\n\t\t\t\tlineIndex = chunk.intro.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.intro.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.intro + lineStr;\n\t\t\t}\n\t\t} while ((chunk = chunk.previous));\n\t\tlineIndex = this.intro.lastIndexOf(n);\n\t\tif (lineIndex !== -1) return this.intro.substr(lineIndex + 1) + lineStr;\n\t\treturn this.intro + lineStr;\n\t}\n\n\tslice(start = 0, end = this.original.length - this.offset) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tlet result = '';\n\n\t\t// find start chunk\n\t\tlet chunk = this.firstChunk;\n\t\twhile (chunk && (chunk.start > start || chunk.end <= start)) {\n\t\t\t// found end chunk before start\n\t\t\tif (chunk.start < end && chunk.end >= end) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\tif (chunk && chunk.edited && chunk.start !== start)\n\t\t\tthrow new Error(`Cannot use replaced character ${start} as slice start anchor.`);\n\n\t\tconst startChunk = chunk;\n\t\twhile (chunk) {\n\t\t\tif (chunk.intro && (startChunk !== chunk || chunk.start === start)) {\n\t\t\t\tresult += chunk.intro;\n\t\t\t}\n\n\t\t\tconst containsEnd = chunk.start < end && chunk.end >= end;\n\t\t\tif (containsEnd && chunk.edited && chunk.end !== end)\n\t\t\t\tthrow new Error(`Cannot use replaced character ${end} as slice end anchor.`);\n\n\t\t\tconst sliceStart = startChunk === chunk ? start - chunk.start : 0;\n\t\t\tconst sliceEnd = containsEnd ? chunk.content.length + end - chunk.end : chunk.content.length;\n\n\t\t\tresult += chunk.content.slice(sliceStart, sliceEnd);\n\n\t\t\tif (chunk.outro && (!containsEnd || chunk.end === end)) {\n\t\t\t\tresult += chunk.outro;\n\t\t\t}\n\n\t\t\tif (containsEnd) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\treturn result;\n\t}\n\n\t// TODO deprecate this? not really very useful\n\tsnip(start, end) {\n\t\tconst clone = this.clone();\n\t\tclone.remove(0, start);\n\t\tclone.remove(end, clone.original.length);\n\n\t\treturn clone;\n\t}\n\n\t_split(index) {\n\t\tif (this.byStart[index] || this.byEnd[index]) return;\n\n\t\tlet chunk = this.lastSearchedChunk;\n\t\tlet previousChunk = chunk;\n\t\tconst searchForward = index > chunk.end;\n\n\t\twhile (chunk) {\n\t\t\tif (chunk.contains(index)) return this._splitChunk(chunk, index);\n\n\t\t\tchunk = searchForward ? this.byStart[chunk.end] : this.byEnd[chunk.start];\n\n\t\t\t// Prevent infinite loop (e.g. via empty chunks, where start === end)\n\t\t\tif (chunk === previousChunk) return;\n\n\t\t\tpreviousChunk = chunk;\n\t\t}\n\t}\n\n\t_splitChunk(chunk, index) {\n\t\tif (chunk.edited && chunk.content.length) {\n\t\t\t// zero-length edited chunks are a special case (overlapping replacements)\n\t\t\tconst loc = getLocator(this.original)(index);\n\t\t\tthrow new Error(\n\t\t\t\t`Cannot split a chunk that has already been edited (${loc.line}:${loc.column} – \"${chunk.original}\")`,\n\t\t\t);\n\t\t}\n\n\t\tconst newChunk = chunk.split(index);\n\n\t\tthis.byEnd[index] = chunk;\n\t\tthis.byStart[index] = newChunk;\n\t\tthis.byEnd[newChunk.end] = newChunk;\n\n\t\tif (chunk === this.lastChunk) this.lastChunk = newChunk;\n\n\t\tthis.lastSearchedChunk = chunk;\n\t\treturn true;\n\t}\n\n\ttoString() {\n\t\tlet str = this.intro;\n\n\t\tlet chunk = this.firstChunk;\n\t\twhile (chunk) {\n\t\t\tstr += chunk.toString();\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\treturn str + this.outro;\n\t}\n\n\tisEmpty() {\n\t\tlet chunk = this.firstChunk;\n\t\tdo {\n\t\t\tif (\n\t\t\t\t(chunk.intro.length && chunk.intro.trim()) ||\n\t\t\t\t(chunk.content.length && chunk.content.trim()) ||\n\t\t\t\t(chunk.outro.length && chunk.outro.trim())\n\t\t\t)\n\t\t\t\treturn false;\n\t\t} while ((chunk = chunk.next));\n\t\treturn true;\n\t}\n\n\tlength() {\n\t\tlet chunk = this.firstChunk;\n\t\tlet length = 0;\n\t\tdo {\n\t\t\tlength += chunk.intro.length + chunk.content.length + chunk.outro.length;\n\t\t} while ((chunk = chunk.next));\n\t\treturn length;\n\t}\n\n\ttrimLines() {\n\t\treturn this.trim('[\\\\r\\\\n]');\n\t}\n\n\ttrim(charType) {\n\t\treturn this.trimStart(charType).trimEnd(charType);\n\t}\n\n\ttrimEndAborted(charType) {\n\t\tconst rx = new RegExp((charType || '\\\\s') + '+$');\n\n\t\tthis.outro = this.outro.replace(rx, '');\n\t\tif (this.outro.length) return true;\n\n\t\tlet chunk = this.lastChunk;\n\n\t\tdo {\n\t\t\tconst end = chunk.end;\n\t\t\tconst aborted = chunk.trimEnd(rx);\n\n\t\t\t// if chunk was trimmed, we have a new lastChunk\n\t\t\tif (chunk.end !== end) {\n\t\t\t\tif (this.lastChunk === chunk) {\n\t\t\t\t\tthis.lastChunk = chunk.next;\n\t\t\t\t}\n\n\t\t\t\tthis.byEnd[chunk.end] = chunk;\n\t\t\t\tthis.byStart[chunk.next.start] = chunk.next;\n\t\t\t\tthis.byEnd[chunk.next.end] = chunk.next;\n\t\t\t}\n\n\t\t\tif (aborted) return true;\n\t\t\tchunk = chunk.previous;\n\t\t} while (chunk);\n\n\t\treturn false;\n\t}\n\n\ttrimEnd(charType) {\n\t\tthis.trimEndAborted(charType);\n\t\treturn this;\n\t}\n\ttrimStartAborted(charType) {\n\t\tconst rx = new RegExp('^' + (charType || '\\\\s') + '+');\n\n\t\tthis.intro = this.intro.replace(rx, '');\n\t\tif (this.intro.length) return true;\n\n\t\tlet chunk = this.firstChunk;\n\n\t\tdo {\n\t\t\tconst end = chunk.end;\n\t\t\tconst aborted = chunk.trimStart(rx);\n\n\t\t\tif (chunk.end !== end) {\n\t\t\t\t// special case...\n\t\t\t\tif (chunk === this.lastChunk) this.lastChunk = chunk.next;\n\n\t\t\t\tthis.byEnd[chunk.end] = chunk;\n\t\t\t\tthis.byStart[chunk.next.start] = chunk.next;\n\t\t\t\tthis.byEnd[chunk.next.end] = chunk.next;\n\t\t\t}\n\n\t\t\tif (aborted) return true;\n\t\t\tchunk = chunk.next;\n\t\t} while (chunk);\n\n\t\treturn false;\n\t}\n\n\ttrimStart(charType) {\n\t\tthis.trimStartAborted(charType);\n\t\treturn this;\n\t}\n\n\thasChanged() {\n\t\treturn this.original !== this.toString();\n\t}\n\n\t_replaceRegexp(searchValue, replacement) {\n\t\tfunction getReplacement(match, str) {\n\t\t\tif (typeof replacement === 'string') {\n\t\t\t\treturn replacement.replace(/\\$(\\$|&|\\d+)/g, (_, i) => {\n\t\t\t\t\t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#specifying_a_string_as_a_parameter\n\t\t\t\t\tif (i === '$') return '$';\n\t\t\t\t\tif (i === '&') return match[0];\n\t\t\t\t\tconst num = +i;\n\t\t\t\t\tif (num < match.length) return match[+i];\n\t\t\t\t\treturn `$${i}`;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn replacement(...match, match.index, str, match.groups);\n\t\t\t}\n\t\t}\n\t\tfunction matchAll(re, str) {\n\t\t\tlet match;\n\t\t\tconst matches = [];\n\t\t\twhile ((match = re.exec(str))) {\n\t\t\t\tmatches.push(match);\n\t\t\t}\n\t\t\treturn matches;\n\t\t}\n\t\tif (searchValue.global) {\n\t\t\tconst matches = matchAll(searchValue, this.original);\n\t\t\tmatches.forEach((match) => {\n\t\t\t\tif (match.index != null) {\n\t\t\t\t\tconst replacement = getReplacement(match, this.original);\n\t\t\t\t\tif (replacement !== match[0]) {\n\t\t\t\t\t\tthis.overwrite(match.index, match.index + match[0].length, replacement);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tconst match = this.original.match(searchValue);\n\t\t\tif (match && match.index != null) {\n\t\t\t\tconst replacement = getReplacement(match, this.original);\n\t\t\t\tif (replacement !== match[0]) {\n\t\t\t\t\tthis.overwrite(match.index, match.index + match[0].length, replacement);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\n\t_replaceString(string, replacement) {\n\t\tconst { original } = this;\n\t\tconst index = original.indexOf(string);\n\n\t\tif (index !== -1) {\n\t\t\tif (typeof replacement === 'function') {\n\t\t\t\treplacement = replacement(string, index, original);\n\t\t\t}\n\t\t\tif (string !== replacement) {\n\t\t\t\tthis.overwrite(index, index + string.length, replacement);\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n\n\treplace(searchValue, replacement) {\n\t\tif (typeof searchValue === 'string') {\n\t\t\treturn this._replaceString(searchValue, replacement);\n\t\t}\n\n\t\treturn this._replaceRegexp(searchValue, replacement);\n\t}\n\n\t_replaceAllString(string, replacement) {\n\t\tconst { original } = this;\n\t\tconst stringLength = string.length;\n\t\tfor (\n\t\t\tlet index = original.indexOf(string);\n\t\t\tindex !== -1;\n\t\t\tindex = original.indexOf(string, index + stringLength)\n\t\t) {\n\t\t\tconst previous = original.slice(index, index + stringLength);\n\t\t\tlet _replacement = replacement;\n\t\t\tif (typeof replacement === 'function') {\n\t\t\t\t_replacement = replacement(previous, index, original);\n\t\t\t}\n\t\t\tif (previous !== _replacement) this.overwrite(index, index + stringLength, _replacement);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\treplaceAll(searchValue, replacement) {\n\t\tif (typeof searchValue === 'string') {\n\t\t\treturn this._replaceAllString(searchValue, replacement);\n\t\t}\n\n\t\tif (!searchValue.global) {\n\t\t\tthrow new TypeError(\n\t\t\t\t'MagicString.prototype.replaceAll called with a non-global RegExp argument',\n\t\t\t);\n\t\t}\n\n\t\treturn this._replaceRegexp(searchValue, replacement);\n\t}\n}\n\nconst hasOwnProp = Object.prototype.hasOwnProperty;\n\nclass Bundle {\n\tconstructor(options = {}) {\n\t\tthis.intro = options.intro || '';\n\t\tthis.separator = options.separator !== undefined ? options.separator : '\\n';\n\t\tthis.sources = [];\n\t\tthis.uniqueSources = [];\n\t\tthis.uniqueSourceIndexByFilename = {};\n\t}\n\n\taddSource(source) {\n\t\tif (source instanceof MagicString) {\n\t\t\treturn this.addSource({\n\t\t\t\tcontent: source,\n\t\t\t\tfilename: source.filename,\n\t\t\t\tseparator: this.separator,\n\t\t\t});\n\t\t}\n\n\t\tif (!isObject(source) || !source.content) {\n\t\t\tthrow new Error(\n\t\t\t\t'bundle.addSource() takes an object with a `content` property, which should be an instance of MagicString, and an optional `filename`',\n\t\t\t);\n\t\t}\n\n\t\t['filename', 'ignoreList', 'indentExclusionRanges', 'separator'].forEach((option) => {\n\t\t\tif (!hasOwnProp.call(source, option)) source[option] = source.content[option];\n\t\t});\n\n\t\tif (source.separator === undefined) {\n\t\t\t// TODO there's a bunch of this sort of thing, needs cleaning up\n\t\t\tsource.separator = this.separator;\n\t\t}\n\n\t\tif (source.filename) {\n\t\t\tif (!hasOwnProp.call(this.uniqueSourceIndexByFilename, source.filename)) {\n\t\t\t\tthis.uniqueSourceIndexByFilename[source.filename] = this.uniqueSources.length;\n\t\t\t\tthis.uniqueSources.push({ filename: source.filename, content: source.content.original });\n\t\t\t} else {\n\t\t\t\tconst uniqueSource = this.uniqueSources[this.uniqueSourceIndexByFilename[source.filename]];\n\t\t\t\tif (source.content.original !== uniqueSource.content) {\n\t\t\t\t\tthrow new Error(`Illegal source: same filename (${source.filename}), different contents`);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.sources.push(source);\n\t\treturn this;\n\t}\n\n\tappend(str, options) {\n\t\tthis.addSource({\n\t\t\tcontent: new MagicString(str),\n\t\t\tseparator: (options && options.separator) || '',\n\t\t});\n\n\t\treturn this;\n\t}\n\n\tclone() {\n\t\tconst bundle = new Bundle({\n\t\t\tintro: this.intro,\n\t\t\tseparator: this.separator,\n\t\t});\n\n\t\tthis.sources.forEach((source) => {\n\t\t\tbundle.addSource({\n\t\t\t\tfilename: source.filename,\n\t\t\t\tcontent: source.content.clone(),\n\t\t\t\tseparator: source.separator,\n\t\t\t});\n\t\t});\n\n\t\treturn bundle;\n\t}\n\n\tgenerateDecodedMap(options = {}) {\n\t\tconst names = [];\n\t\tlet x_google_ignoreList = undefined;\n\t\tthis.sources.forEach((source) => {\n\t\t\tObject.keys(source.content.storedNames).forEach((name) => {\n\t\t\t\tif (!~names.indexOf(name)) names.push(name);\n\t\t\t});\n\t\t});\n\n\t\tconst mappings = new Mappings(options.hires);\n\n\t\tif (this.intro) {\n\t\t\tmappings.advance(this.intro);\n\t\t}\n\n\t\tthis.sources.forEach((source, i) => {\n\t\t\tif (i > 0) {\n\t\t\t\tmappings.advance(this.separator);\n\t\t\t}\n\n\t\t\tconst sourceIndex = source.filename ? this.uniqueSourceIndexByFilename[source.filename] : -1;\n\t\t\tconst magicString = source.content;\n\t\t\tconst locate = getLocator(magicString.original);\n\n\t\t\tif (magicString.intro) {\n\t\t\t\tmappings.advance(magicString.intro);\n\t\t\t}\n\n\t\t\tmagicString.firstChunk.eachNext((chunk) => {\n\t\t\t\tconst loc = locate(chunk.start);\n\n\t\t\t\tif (chunk.intro.length) mappings.advance(chunk.intro);\n\n\t\t\t\tif (source.filename) {\n\t\t\t\t\tif (chunk.edited) {\n\t\t\t\t\t\tmappings.addEdit(\n\t\t\t\t\t\t\tsourceIndex,\n\t\t\t\t\t\t\tchunk.content,\n\t\t\t\t\t\t\tloc,\n\t\t\t\t\t\t\tchunk.storeName ? names.indexOf(chunk.original) : -1,\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmappings.addUneditedChunk(\n\t\t\t\t\t\t\tsourceIndex,\n\t\t\t\t\t\t\tchunk,\n\t\t\t\t\t\t\tmagicString.original,\n\t\t\t\t\t\t\tloc,\n\t\t\t\t\t\t\tmagicString.sourcemapLocations,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tmappings.advance(chunk.content);\n\t\t\t\t}\n\n\t\t\t\tif (chunk.outro.length) mappings.advance(chunk.outro);\n\t\t\t});\n\n\t\t\tif (magicString.outro) {\n\t\t\t\tmappings.advance(magicString.outro);\n\t\t\t}\n\n\t\t\tif (source.ignoreList && sourceIndex !== -1) {\n\t\t\t\tif (x_google_ignoreList === undefined) {\n\t\t\t\t\tx_google_ignoreList = [];\n\t\t\t\t}\n\t\t\t\tx_google_ignoreList.push(sourceIndex);\n\t\t\t}\n\t\t});\n\n\t\treturn {\n\t\t\tfile: options.file ? options.file.split(/[/\\\\]/).pop() : undefined,\n\t\t\tsources: this.uniqueSources.map((source) => {\n\t\t\t\treturn options.file ? getRelativePath(options.file, source.filename) : source.filename;\n\t\t\t}),\n\t\t\tsourcesContent: this.uniqueSources.map((source) => {\n\t\t\t\treturn options.includeContent ? source.content : null;\n\t\t\t}),\n\t\t\tnames,\n\t\t\tmappings: mappings.raw,\n\t\t\tx_google_ignoreList,\n\t\t};\n\t}\n\n\tgenerateMap(options) {\n\t\treturn new SourceMap(this.generateDecodedMap(options));\n\t}\n\n\tgetIndentString() {\n\t\tconst indentStringCounts = {};\n\n\t\tthis.sources.forEach((source) => {\n\t\t\tconst indentStr = source.content._getRawIndentString();\n\n\t\t\tif (indentStr === null) return;\n\n\t\t\tif (!indentStringCounts[indentStr]) indentStringCounts[indentStr] = 0;\n\t\t\tindentStringCounts[indentStr] += 1;\n\t\t});\n\n\t\treturn (\n\t\t\tObject.keys(indentStringCounts).sort((a, b) => {\n\t\t\t\treturn indentStringCounts[a] - indentStringCounts[b];\n\t\t\t})[0] || '\\t'\n\t\t);\n\t}\n\n\tindent(indentStr) {\n\t\tif (!arguments.length) {\n\t\t\tindentStr = this.getIndentString();\n\t\t}\n\n\t\tif (indentStr === '') return this; // noop\n\n\t\tlet trailingNewline = !this.intro || this.intro.slice(-1) === '\\n';\n\n\t\tthis.sources.forEach((source, i) => {\n\t\t\tconst separator = source.separator !== undefined ? source.separator : this.separator;\n\t\t\tconst indentStart = trailingNewline || (i > 0 && /\\r?\\n$/.test(separator));\n\n\t\t\tsource.content.indent(indentStr, {\n\t\t\t\texclude: source.indentExclusionRanges,\n\t\t\t\tindentStart, //: trailingNewline || /\\r?\\n$/.test( separator ) //true///\\r?\\n/.test( separator )\n\t\t\t});\n\n\t\t\ttrailingNewline = source.content.lastChar() === '\\n';\n\t\t});\n\n\t\tif (this.intro) {\n\t\t\tthis.intro =\n\t\t\t\tindentStr +\n\t\t\t\tthis.intro.replace(/^[^\\n]/gm, (match, index) => {\n\t\t\t\t\treturn index > 0 ? indentStr + match : match;\n\t\t\t\t});\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tprepend(str) {\n\t\tthis.intro = str + this.intro;\n\t\treturn this;\n\t}\n\n\ttoString() {\n\t\tconst body = this.sources\n\t\t\t.map((source, i) => {\n\t\t\t\tconst separator = source.separator !== undefined ? source.separator : this.separator;\n\t\t\t\tconst str = (i > 0 ? separator : '') + source.content.toString();\n\n\t\t\t\treturn str;\n\t\t\t})\n\t\t\t.join('');\n\n\t\treturn this.intro + body;\n\t}\n\n\tisEmpty() {\n\t\tif (this.intro.length && this.intro.trim()) return false;\n\t\tif (this.sources.some((source) => !source.content.isEmpty())) return false;\n\t\treturn true;\n\t}\n\n\tlength() {\n\t\treturn this.sources.reduce(\n\t\t\t(length, source) => length + source.content.length(),\n\t\t\tthis.intro.length,\n\t\t);\n\t}\n\n\ttrimLines() {\n\t\treturn this.trim('[\\\\r\\\\n]');\n\t}\n\n\ttrim(charType) {\n\t\treturn this.trimStart(charType).trimEnd(charType);\n\t}\n\n\ttrimStart(charType) {\n\t\tconst rx = new RegExp('^' + (charType || '\\\\s') + '+');\n\t\tthis.intro = this.intro.replace(rx, '');\n\n\t\tif (!this.intro) {\n\t\t\tlet source;\n\t\t\tlet i = 0;\n\n\t\t\tdo {\n\t\t\t\tsource = this.sources[i++];\n\t\t\t\tif (!source) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} while (!source.content.trimStartAborted(charType));\n\t\t}\n\n\t\treturn this;\n\t}\n\n\ttrimEnd(charType) {\n\t\tconst rx = new RegExp((charType || '\\\\s') + '+$');\n\n\t\tlet source;\n\t\tlet i = this.sources.length - 1;\n\n\t\tdo {\n\t\t\tsource = this.sources[i--];\n\t\t\tif (!source) {\n\t\t\t\tthis.intro = this.intro.replace(rx, '');\n\t\t\t\tbreak;\n\t\t\t}\n\t\t} while (!source.content.trimEndAborted(charType));\n\n\t\treturn this;\n\t}\n}\n\nexport { Bundle, SourceMap, MagicString as default };\n//# sourceMappingURL=magic-string.es.mjs.map\n","export const createHmrBootstrapBlock = (\n targetExports: string[],\n componentNames: string[]\n) => {\n const normalizedTargets = new Set(\n componentNames.length ? componentNames : targetExports\n );\n\n const serializedTargets = JSON.stringify(Array.from(normalizedTargets));\n\n return `\nconst __lithentModuleId = new URL(import.meta.url).pathname;\nconst __lithentBoundaryStoreKey = \\`__lithent_hmr_boundary__\\${__lithentModuleId}\\`;\nconst __lithentDisposeStoreKey = \\`__lithent_hmr_dispose__\\${__lithentModuleId}\\`;\nconst __lithentGlobalStore =\n typeof globalThis === 'object'\n ? (globalThis as Record<string, unknown>)\n : undefined;\n\nconst __lithentEnsureHotData = (): Record<string, unknown> | undefined => {\n const hot =\n (import.meta.hot as\n | {\n data?: Record<string, unknown>;\n __lithentData?: Record<string, unknown>;\n }\n | undefined) ?? undefined;\n if (!hot) return undefined;\n\n const existing = hot.data;\n if (existing && typeof existing === 'object') {\n return existing;\n }\n\n try {\n const target: Record<string, unknown> = {};\n hot.data = target;\n return target;\n } catch {\n hot.__lithentData = hot.__lithentData || {};\n return hot.__lithentData;\n }\n};\n\nconst __lithentHotData = __lithentEnsureHotData();\ntype __LithentBoundaryController = ReturnType<typeof createBoundary>;\n\nconst counterBoundary: __LithentBoundaryController =\n (__lithentHotData?.counterBoundary as __LithentBoundaryController | undefined) ||\n (__lithentGlobalStore?.[__lithentBoundaryStoreKey] as __LithentBoundaryController | undefined) ||\n createBoundary(__lithentModuleId);\n\nif (__lithentHotData) {\n __lithentHotData.counterBoundary = counterBoundary;\n}\n\nif (__lithentGlobalStore) {\n __lithentGlobalStore[__lithentBoundaryStoreKey] = counterBoundary;\n}\n\nlet disposeApp =\n (__lithentHotData?.disposeApp as (() => void) | undefined) ||\n (__lithentGlobalStore?.[__lithentDisposeStoreKey] as (() => void) | undefined);\n\nconst __lithentRenderOnce = <T,>(factory: () => T) => {\n if (disposeApp) {\n return disposeApp as unknown as T;\n }\n\n const result = factory();\n\n if (typeof result === 'function') {\n disposeApp = result as unknown as () => void;\n\n if (__lithentHotData) {\n __lithentHotData.disposeApp = disposeApp;\n }\n\n if (__lithentGlobalStore && disposeApp) {\n __lithentGlobalStore[__lithentDisposeStoreKey] = disposeApp;\n }\n }\n\n return result;\n};\n\nconst __lithentModuleHotStore =\n __lithentHotData\n ? ((__lithentHotData.components =\n (__lithentHotData.components as Record<\n string,\n TagFunction | undefined\n > | undefined) ?? {}) as Record<string, TagFunction | undefined>)\n : undefined;\n\nconst __lithentHmrTargets = ${serializedTargets};\n\nconst __lithentSetupHmrHooks = () => {\n if (!import.meta.hot) {\n return;\n }\n\n import.meta.hot.accept(mod => {\n let applied = false;\n const nextModule = (mod ?? {}) as Record<string, unknown>;\n const missing: string[] = [];\n const knownNames = new Set([\n ...${JSON.stringify(Array.from(new Set(componentNames)))},\n ...__lithentHmrTargets,\n ]);\n\n for (const name of knownNames) {\n const nextCtor =\n name === 'default'\n ? (nextModule.default as TagFunction | undefined)\n : (nextModule[name] as TagFunction | undefined) ||\n (__lithentModuleHotStore?.[name] as TagFunction | undefined);\n\n if (!nextCtor) {\n missing.push(name);\n continue;\n }\n\n if (counterBoundary.update(nextCtor)) {\n applied = true;\n }\n }\n\n if (!applied) {\n if (missing.length && __lithentModuleHotStore) {\n queueMicrotask(() => {\n let retried = false;\n for (const name of missing) {\n const retryCtor = __lithentModuleHotStore?.[name] as\n | TagFunction\n | undefined;\n if (retryCtor && counterBoundary.update(retryCtor)) {\n retried = true;\n }\n }\n if (!retried) {\n console.warn(\n '[Lithent HMR] 변경된 경계를 적용하지 못해 전체 리프레시합니다.'\n );\n import.meta.hot?.invalidate?.();\n }\n });\n return;\n }\n console.warn(\n '[Lithent HMR] 변경된 경계를 적용하지 못해 전체 리프레시합니다.'\n );\n import.meta.hot?.invalidate?.();\n }\n });\n\n import.meta.hot.dispose(data => {\n data.counterBoundary = counterBoundary;\n\n if (disposeApp) {\n data.disposeApp = disposeApp;\n }\n\n if (__lithentGlobalStore) {\n __lithentGlobalStore[__lithentBoundaryStoreKey] = counterBoundary;\n\n if (disposeApp) {\n __lithentGlobalStore[__lithentDisposeStoreKey] = disposeApp;\n }\n }\n });\n};\n\n__lithentSetupHmrHooks();\n`;\n};\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nfunction _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nclass Position {\n constructor(line, col, index) {\n this.line = void 0;\n this.column = void 0;\n this.index = void 0;\n this.line = line;\n this.column = col;\n this.index = index;\n }\n}\nclass SourceLocation {\n constructor(start, end) {\n this.start = void 0;\n this.end = void 0;\n this.filename = void 0;\n this.identifierName = void 0;\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\";\nvar 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];\nvar 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 AwaitNotInAsyncFunction: \"'await' is only allowed within async functions.\",\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 DecoratorBeforeExport: \"Decorators must be placed *before* the 'export' keyword. Remove the 'decoratorsBeforeExport: true' option to use the 'export @decorator class {}' syntax.\",\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 DecoratorExportClass: \"Decorators must be placed *after* the 'export' keyword. Remove the 'decoratorsBeforeExport: false' option to use the '@decorator export class {}' syntax.\",\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 DynamicImportPhaseRequiresImportExpressions: ({\n phase\n }) => `'import.${phase}(...)' can only be parsed when using the 'createImportExpressions' option.`,\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 ImportAttributesUseAssert: \"The `assert` keyword in import attributes is deprecated and it has been replaced by the `with` keyword. You can enable the `deprecatedImportAssert` parser plugin to suppress this error.\",\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: `\\`import()\\` requires exactly one or two arguments.`,\n ImportCallNotNewExpression: \"Cannot use new with import(...).\",\n ImportCallSpreadArgument: \"`...` is not allowed in `import()`.\",\n ImportJSONBindingNotDefault: \"A JSON module can only be imported with `default`.\",\n ImportReflectionHasAssertion: \"`import module x` cannot have assertions.\",\n ImportReflectionNotBinding: 'Only `import module x from \"./module\"` is valid.',\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 InvalidCoverInitializedName: \"Invalid shorthand property initializer.\",\n InvalidDecimal: \"Invalid decimal.\",\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 InvalidRecordProperty: \"Only properties and spread elements are allowed in record definitions.\",\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 ModuleAttributeDifferentFromType: \"The only accepted module attribute is `type`.\",\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 RecordExpressionBarIncorrectEndSyntaxType: \"Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\",\n RecordExpressionBarIncorrectStartSyntaxType: \"Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\",\n RecordExpressionHashIncorrectStartSyntaxType: \"Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.\",\n RecordNoProto: \"'__proto__' is not allowed in Record expressions.\",\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 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 TupleExpressionBarIncorrectEndSyntaxType: \"Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\",\n TupleExpressionBarIncorrectStartSyntaxType: \"Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\",\n TupleExpressionHashIncorrectStartSyntaxType: \"Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.\",\n UnexpectedArgumentPlaceholder: \"Unexpected argument placeholder.\",\n UnexpectedAwaitAfterPipelineBody: 'Unexpected \"await\" after pipeline body; await must have parentheses in minimal proposal.',\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`.\",\n UnsupportedBind: \"Binding should be performed on object property.\",\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 YieldBindingIdentifier: \"Can not use 'yield' as identifier inside a generator.\",\n YieldInParameter: \"Yield expression is not allowed in formal parameters.\",\n ZeroDigitNumericSeparator: \"Numeric separator can not be used after leading 0.\"\n};\nvar 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 UnparenthesizedPipeBodyDescriptions = new Set([\"ArrowFunctionExpression\", \"AssignmentExpression\", \"ConditionalExpression\", \"YieldExpression\"]);\nvar PipelineOperatorErrors = Object.assign({\n PipeBodyIsTighter: \"Unexpected yield after pipeline body; any yield expression acting as Hack-style pipe body must be parenthesized due to its loose operator precedence.\",\n PipeTopicRequiresHackPipes: 'Topic reference is used, but the pipelineOperator plugin was not passed a \"proposal\": \"hack\" or \"smart\" option.',\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}, {\n PipelineBodyNoArrow: 'Unexpected arrow \"=>\" after pipeline body; arrow function in pipeline body must be parenthesized.',\n PipelineBodySequenceExpression: \"Pipeline body may not be a comma-separated sequence expression.\",\n PipelineHeadSequenceExpression: \"Pipeline head should not be a comma-separated sequence expression.\",\n PipelineTopicUnused: \"Pipeline is in topic style but does not use topic reference.\",\n PrimaryTopicNotAllowed: \"Topic reference was used in a lexical context without topic binding.\",\n PrimaryTopicRequiresSmartPipeline: 'Topic reference is used, but the pipelineOperator plugin was not passed a \"proposal\": \"hack\" or \"smart\" option.'\n});\nconst _excluded = [\"message\"];\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 {\n const oldReasonCodes = {\n AccessorCannotDeclareThisParameter: \"AccesorCannotDeclareThisParameter\",\n AccessorCannotHaveTypeParameters: \"AccesorCannotHaveTypeParameters\",\n ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference: \"ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference\",\n SetAccessorCannotHaveOptionalParameter: \"SetAccesorCannotHaveOptionalParameter\",\n SetAccessorCannotHaveRestParameter: \"SetAccesorCannotHaveRestParameter\",\n SetAccessorCannotHaveReturnType: \"SetAccesorCannotHaveReturnType\"\n };\n if (oldReasonCodes[reasonCode]) {\n reasonCode = oldReasonCodes[reasonCode];\n }\n }\n return function constructor(loc, details) {\n const error = new SyntaxError();\n error.code = code;\n error.reasonCode = reasonCode;\n error.loc = loc;\n error.pos = loc.index;\n error.syntaxPlugin = syntaxPlugin;\n if (hasMissingPlugin) {\n error.missingPlugin = details.missingPlugin;\n }\n defineHidden(error, \"clone\", function clone(overrides = {}) {\n var _overrides$loc;\n const {\n line,\n column,\n index\n } = (_overrides$loc = overrides.loc) != null ? _overrides$loc : loc;\n return constructor(new Position(line, column, index), Object.assign({}, details, overrides.details));\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 _ref = typeof template === \"string\" ? {\n message: () => template\n } : typeof template === \"function\" ? {\n message: template\n } : template,\n {\n message\n } = _ref,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n const toMessage = typeof message === \"string\" ? () => message : message;\n ParseErrorConstructors[reasonCode] = toParseErrorConstructor(Object.assign({\n code: \"BABEL_PARSER_SYNTAX_ERROR\",\n reasonCode,\n toMessage\n }, syntaxPlugin ? {\n syntaxPlugin\n } : {}, rest));\n }\n return ParseErrorConstructors;\n}\nconst Errors = Object.assign({}, ParseErrorEnum(ModuleErrors), ParseErrorEnum(StandardErrors), ParseErrorEnum(StrictModeErrors), ParseErrorEnum`pipelineOperator`(PipelineOperatorErrors));\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 plugins: [],\n strictMode: null,\n ranges: false,\n tokens: false,\n createImportExpressions: false,\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 if (opts.startIndex != null) {\n throw new Error(\"With a `startLine > 1` you must also specify `startIndex` and `startColumn`.\");\n }\n }\n return options;\n}\nconst {\n defineProperty\n} = Object;\nconst toUnenumerable = (object, key) => {\n if (object) {\n defineProperty(object, key, {\n enumerable: false,\n value: object[key]\n });\n }\n};\nfunction toESTreeLocation(node) {\n toUnenumerable(node.loc.start, \"index\");\n toUnenumerable(node.loc.end, \"index\");\n return node;\n}\nvar estree = superClass => class ESTreeParserMixin extends superClass {\n parse() {\n const file = toESTreeLocation(super.parse());\n if (this.optionFlags & 128) {\n file.tokens = file.tokens.map(toESTreeLocation);\n }\n return 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 (_unused) {\n bigInt = null;\n }\n const node = this.estreeParseLiteral(bigInt);\n node.bigint = String(node.value || value);\n return node;\n }\n parseDecimalLiteral(value) {\n const decimal = null;\n const node = this.estreeParseLiteral(decimal);\n node.decimal = 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 directiveToStmt(directive) {\n const expression = directive.value;\n delete directive.value;\n expression.type = \"Literal\";\n expression.raw = expression.extra.raw;\n expression.value = expression.extra.expressionValue;\n const stmt = directive;\n stmt.type = \"ExpressionStatement\";\n stmt.expression = expression;\n stmt.directive = expression.extra.rawValue;\n delete expression.extra;\n return stmt;\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 var _stmt$expression$extr;\n return stmt.type === \"ExpressionStatement\" && stmt.expression.type === \"Literal\" && typeof stmt.expression.value === \"string\" && !((_stmt$expression$extr = stmt.expression.extra) != null && _stmt$expression$extr.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 {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return node;\n }\n }\n return this.convertPrivateNameToPrivateIdentifier(node);\n }\n convertPrivateNameToPrivateIdentifier(node) {\n const name = super.getPrivateNameSV(node);\n node = node;\n delete node.id;\n node.name = name;\n node.type = \"PrivateIdentifier\";\n return node;\n }\n isPrivateName(node) {\n {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return super.isPrivateName(node);\n }\n }\n return node.type === \"PrivateIdentifier\";\n }\n getPrivateNameSV(node) {\n {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return super.getPrivateNameSV(node);\n }\n }\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 funcNode.type = \"FunctionExpression\";\n delete funcNode.kind;\n node.value = funcNode;\n const {\n typeParameters\n } = node;\n if (typeParameters) {\n delete node.typeParameters;\n funcNode.typeParameters = typeParameters;\n this.resetStartLocationFromNode(funcNode, typeParameters);\n }\n if (type === \"ClassPrivateMethod\") {\n node.computed = false;\n }\n return this.finishNode(node, \"MethodDefinition\");\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 {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return propertyNode;\n }\n }\n {\n propertyNode.type = \"PropertyDefinition\";\n }\n return propertyNode;\n }\n parseClassPrivateProperty(...args) {\n const propertyNode = super.parseClassPrivateProperty(...args);\n {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return propertyNode;\n }\n }\n {\n propertyNode.type = \"PropertyDefinition\";\n }\n propertyNode.computed = false;\n return propertyNode;\n }\n parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor) {\n const node = super.parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor);\n if (node) {\n node.type = \"Property\";\n if (node.kind === \"method\") {\n node.kind = \"init\";\n }\n node.shorthand = false;\n }\n return node;\n }\n parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors) {\n const node = super.parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors);\n if (node) {\n node.kind = \"init\";\n node.type = \"Property\";\n }\n return node;\n }\n isValidLVal(type, isUnparenthesizedInAssign, binding) {\n return type === \"Property\" ? \"value\" : super.isValidLVal(type, 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.loc.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 var _ref, _ref2;\n node.type = \"ImportExpression\";\n node.source = node.arguments[0];\n node.options = (_ref = node.arguments[1]) != null ? _ref : null;\n node.attributes = (_ref2 = node.arguments[1]) != null ? _ref2 : null;\n delete node.arguments;\n delete node.callee;\n }\n return node;\n }\n toReferencedArguments(node) {\n if (node.type === \"ImportExpression\") {\n return;\n }\n super.toReferencedArguments(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 node.type = \"ExportAllDeclaration\";\n node.exported = node.specifiers[0].exported;\n delete node.specifiers;\n }\n case \"ExportDefaultDeclaration\":\n {\n var _declaration$decorato;\n const {\n declaration\n } = node;\n if ((declaration == null ? void 0 : declaration.type) === \"ClassDeclaration\" && ((_declaration$decorato = declaration.decorators) == null ? void 0 : _declaration$decorato.length) > 0 && declaration.start === node.start) {\n this.resetStartLocation(node, exportStartLoc);\n }\n }\n break;\n }\n return node;\n }\n parseSubscript(base, startLoc, noCalls, state) {\n const node = super.parseSubscript(base, startLoc, noCalls, state);\n if (state.optionalChainMember) {\n if (node.type === \"OptionalMemberExpression\" || node.type === \"OptionalCallExpression\") {\n node.type = node.type.substring(8);\n }\n if (state.stop) {\n const chain = this.startNodeAtNode(node);\n chain.expression = node;\n return this.finishNode(chain, \"ChainExpression\");\n }\n } else if (node.type === \"MemberExpression\" || node.type === \"CallExpression\") {\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 finishNodeAt(node, type, endLoc) {\n return toESTreeLocation(super.finishNodeAt(node, type, endLoc));\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};\nclass TokContext {\n constructor(token, preserveSpace) {\n this.token = void 0;\n this.preserveSpace = void 0;\n this.token = token;\n this.preserveSpace = !!preserveSpace;\n }\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};\n{\n types.template = new TokContext(\"`\", true);\n}\nconst beforeExpr = true;\nconst startsExpr = true;\nconst isLoop = true;\nconst isAssign = true;\nconst prefix = true;\nconst postfix = true;\nclass ExportedTokenType {\n constructor(label, conf = {}) {\n this.label = void 0;\n this.keyword = void 0;\n this.beforeExpr = void 0;\n this.startsExpr = void 0;\n this.rightAssociative = void 0;\n this.isLoop = void 0;\n this.isAssign = void 0;\n this.prefix = void 0;\n this.postfix = void 0;\n this.binop = void 0;\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 this.updateContext = null;\n }\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 var _options$binop, _options$beforeExpr, _options$startsExpr, _options$prefix;\n ++tokenTypeCounter;\n tokenLabels.push(name);\n tokenBinops.push((_options$binop = options.binop) != null ? _options$binop : -1);\n tokenBeforeExprs.push((_options$beforeExpr = options.beforeExpr) != null ? _options$beforeExpr : false);\n tokenStartsExprs.push((_options$startsExpr = options.startsExpr) != null ? _options$startsExpr : false);\n tokenPrefixes.push((_options$prefix = options.prefix) != null ? _options$prefix : false);\n tokenTypes.push(new ExportedTokenType(name, options));\n return tokenTypeCounter;\n}\nfunction createKeywordLike(name, options = {}) {\n var _options$binop2, _options$beforeExpr2, _options$startsExpr2, _options$prefix2;\n ++tokenTypeCounter;\n keywords$1.set(name, tokenTypeCounter);\n tokenLabels.push(name);\n tokenBinops.push((_options$binop2 = options.binop) != null ? _options$binop2 : -1);\n tokenBeforeExprs.push((_options$beforeExpr2 = options.beforeExpr) != null ? _options$beforeExpr2 : false);\n tokenStartsExprs.push((_options$startsExpr2 = options.startsExpr) != null ? _options$startsExpr2 : false);\n tokenPrefixes.push((_options$prefix2 = options.prefix) != null ? _options$prefix2 : false);\n tokenTypes.push(new ExportedTokenType(\"name\", options));\n return tokenTypeCounter;\n}\nconst tt = {\n bracketL: createToken(\"[\", {\n beforeExpr,\n startsExpr\n }),\n bracketHashL: createToken(\"#[\", {\n beforeExpr,\n startsExpr\n }),\n bracketBarL: createToken(\"[|\", {\n beforeExpr,\n startsExpr\n }),\n bracketR: createToken(\"]\"),\n bracketBarR: createToken(\"|]\"),\n braceL: createToken(\"{\", {\n beforeExpr,\n startsExpr\n }),\n braceBarL: createToken(\"{|\", {\n beforeExpr,\n startsExpr\n }),\n braceHashL: 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: true\n }),\n string: createToken(\"string\", {\n startsExpr\n }),\n num: createToken(\"num\", {\n startsExpr\n }),\n bigint: createToken(\"bigint\", {\n startsExpr\n }),\n decimal: createToken(\"decimal\", {\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: true\n }),\n jsxTagStart: createToken(\"jsxTagStart\", {\n startsExpr: true\n }),\n jsxTagEnd: createToken(\"jsxTagEnd\")\n};\nfunction tokenIsIdentifier(token) {\n return token >= 93 && token <= 133;\n}\nfunction tokenKeywordOrIdentifierIsKeyword(token) {\n return token <= 92;\n}\nfunction tokenIsKeywordOrIdentifier(token) {\n return token >= 58 && token <= 133;\n}\nfunction tokenIsLiteralPropertyName(token) {\n return token >= 58 && token <= 137;\n}\nfunction tokenComesBeforeExpression(token) {\n return tokenBeforeExprs[token];\n}\nfunction tokenCanStartExpression(token) {\n return tokenStartsExprs[token];\n}\nfunction tokenIsAssignment(token) {\n return token >= 29 && token <= 33;\n}\nfunction tokenIsFlowInterfaceOrTypeOrOpaque(token) {\n return token >= 129 && token <= 131;\n}\nfunction tokenIsLoop(token) {\n return token >= 90 && token <= 92;\n}\nfunction tokenIsKeyword(token) {\n return token >= 58 && token <= 92;\n}\nfunction tokenIsOperator(token) {\n return token >= 39 && token <= 59;\n}\nfunction tokenIsPostfix(token) {\n return token === 34;\n}\nfunction tokenIsPrefix(token) {\n return tokenPrefixes[token];\n}\nfunction tokenIsTSTypeOperator(token) {\n return token >= 121 && token <= 123;\n}\nfunction tokenIsTSDeclarationStart(token) {\n return token >= 124 && token <= 130;\n}\nfunction tokenLabelName(token) {\n return tokenLabels[token];\n}\nfunction tokenOperatorPrecedence(token) {\n return tokenBinops[token];\n}\nfunction tokenIsRightAssociative(token) {\n return token === 57;\n}\nfunction tokenIsTemplate(token) {\n return token >= 24 && token <= 25;\n}\nfunction getExportedToken(token) {\n return tokenTypes[token];\n}\n{\n tokenTypes[8].updateContext = context => {\n context.pop();\n };\n tokenTypes[5].updateContext = tokenTypes[7].updateContext = tokenTypes[23].updateContext = context => {\n context.push(types.brace);\n };\n tokenTypes[22].updateContext = context => {\n if (context[context.length - 1] === types.template) {\n context.pop();\n } else {\n context.push(types.template);\n }\n };\n tokenTypes[143].updateContext = context => {\n context.push(types.j_expr, types.j_oTag);\n };\n}\nlet nonASCIIidentifierStartChars = \"\\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-\\u088e\\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\\u0c5d\\u0c60\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cdd\\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-\\ua7cd\\ua7d0\\ua7d1\\ua7d3\\ua7d5-\\ua7dc\\ua7f2-\\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\";\nlet nonASCIIidentifierChars = \"\\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-\\u1ace\\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 nonASCIIidentifierStart = new RegExp(\"[\" + nonASCIIidentifierStartChars + \"]\");\nconst nonASCIIidentifier = new RegExp(\"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\");\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null;\nconst astralIdentifierStartCodes = [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, 71, 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, 2, 60, 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, 328, 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, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 42, 9, 8936, 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, 496, 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, 4153, 7, 221, 3, 5761, 15, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 4191];\nconst astralIdentifierCodes = [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, 80, 3, 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, 343, 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, 330, 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, 726, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];\nfunction isInAstralSet(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 && nonASCIIidentifierStart.test(String.fromCharCode(code));\n }\n return isInAstralSet(code, astralIdentifierStartCodes);\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 && nonASCIIidentifier.test(String.fromCharCode(code));\n }\n return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes);\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 constructor(flags) {\n this.flags = 0;\n this.names = new Map();\n this.firstLexicalName = \"\";\n this.flags = flags;\n }\n}\nclass ScopeHandler {\n constructor(parser, inModule) {\n this.parser = void 0;\n this.scopeStack = [];\n this.inModule = void 0;\n this.undefinedExports = new Map();\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 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 & (387 | 64)) {\n return false;\n }\n }\n }\n get inNonArrowFunction() {\n return (this.currentThisScopeFlags() & 2) > 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 & 387) 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);\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.loc.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 & 387) {\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 & (387 | 64) && !(flags & 4)) {\n return flags;\n }\n }\n }\n}\nclass FlowScope extends Scope {\n constructor(...args) {\n super(...args);\n this.declareFunctions = new Set();\n }\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}\nclass BaseParser {\n constructor() {\n this.sawUnambiguousESM = false;\n this.ambiguousScriptDifferentAst = false;\n }\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 == null ? void 0 : actualOptions[key]) !== pluginOptions[key]) {\n return false;\n }\n }\n return true;\n }\n }\n getPluginOption(plugin, name) {\n var _this$plugins$get;\n return (_this$plugins$get = this.plugins.get(plugin)) == null ? void 0 : _this$plugins$get[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 {\n start: nodeStart\n } = node;\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 {\n containingNode: node,\n start: commentStart\n } = commentWS;\n if (this.input.charCodeAt(this.offsetToSourcePos(commentStart) - 1) === 44) {\n switch (node.type) {\n case \"ObjectExpression\":\n case \"ObjectPattern\":\n case \"RecordExpression\":\n adjustInnerComments(node, node.properties, commentWS);\n break;\n case \"CallExpression\":\n case \"OptionalCallExpression\":\n adjustInnerComments(node, node.arguments, commentWS);\n break;\n case \"FunctionDeclaration\":\n case \"FunctionExpression\":\n case \"ArrowFunctionExpression\":\n case \"ObjectMethod\":\n case \"ClassMethod\":\n case \"ClassPrivateMethod\":\n adjustInnerComments(node, node.params, commentWS);\n break;\n case \"ArrayExpression\":\n case \"ArrayPattern\":\n case \"TupleExpression\":\n adjustInnerComments(node, node.elements, commentWS);\n break;\n case \"ExportNamedDeclaration\":\n case \"ImportDeclaration\":\n adjustInnerComments(node, node.specifiers, commentWS);\n break;\n case \"TSEnumDeclaration\":\n {\n adjustInnerComments(node, node.members, commentWS);\n }\n break;\n case \"TSEnumBody\":\n adjustInnerComments(node, node.members, 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 resetPreviousIdentifierLeadingComments(node) {\n const {\n commentStack\n } = this.state;\n const {\n length\n } = commentStack;\n if (length === 0) return;\n if (commentStack[length - 1].trailingNode === node) {\n commentStack[length - 1].trailingNode = null;\n } else if (length >= 2 && commentStack[length - 2].trailingNode === node) {\n commentStack[length - 2].trailingNode = 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}\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}\nclass State {\n constructor() {\n this.flags = 1024;\n this.startIndex = void 0;\n this.curLine = void 0;\n this.lineStart = void 0;\n this.startLoc = void 0;\n this.endLoc = void 0;\n this.errors = [];\n this.potentialArrowAt = -1;\n this.noArrowAt = [];\n this.noArrowParamsConversionAt = [];\n this.topicContext = {\n maxNumOfResolvableTopics: 0,\n maxTopicIndex: null\n };\n this.labels = [];\n this.commentsLen = 0;\n this.commentStack = [];\n this.pos = 0;\n this.type = 140;\n this.value = null;\n this.start = 0;\n this.end = 0;\n this.lastTokEndLoc = null;\n this.lastTokStartLoc = null;\n this.context = [types.brace];\n this.firstInvalidTemplateEscapePos = null;\n this.strictErrors = new Map();\n this.tokensLength = 0;\n }\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 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 get maybeInArrowParameters() {\n return (this.flags & 2) > 0;\n }\n set maybeInArrowParameters(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 soloAwait() {\n return (this.flags & 256) > 0;\n }\n set soloAwait(v) {\n if (v) this.flags |= 256;else this.flags &= -257;\n }\n get inFSharpPipelineDirectBody() {\n return (this.flags & 512) > 0;\n }\n set inFSharpPipelineDirectBody(v) {\n if (v) this.flags |= 512;else this.flags &= -513;\n }\n get canStartJSXElement() {\n return (this.flags & 1024) > 0;\n }\n set canStartJSXElement(v) {\n if (v) this.flags |= 1024;else this.flags &= -1025;\n }\n get containsEsc() {\n return (this.flags & 2048) > 0;\n }\n set containsEsc(v) {\n if (v) this.flags |= 2048;else this.flags &= -2049;\n }\n get hasTopLevelAwait() {\n return (this.flags & 4096) > 0;\n }\n set hasTopLevelAwait(v) {\n if (v) this.flags |= 4096;else this.flags &= -4097;\n }\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.potentialArrowAt = this.potentialArrowAt;\n state.noArrowAt = this.noArrowAt.slice();\n state.noArrowParamsConversionAt = this.noArrowParamsConversionAt.slice();\n state.topicContext = this.topicContext;\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 containsInvalid: !!firstInvalidLoc\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}\nclass Tokenizer extends CommentsParser {\n constructor(options, input) {\n super();\n this.isLookahead = void 0;\n this.tokens = [];\n this.errorHandlers_readInt = {\n invalidDigit: (pos, lineStart, curLine, radix) => {\n if (!(this.optionFlags & 1024)) 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 this.errorHandlers_readCodePoint = Object.assign({}, this.errorHandlers_readInt, {\n invalidEscapeSequence: this.errorBuilder(Errors.InvalidEscapeSequence),\n invalidCodePoint: this.errorBuilder(Errors.InvalidCodePoint)\n });\n this.errorHandlers_readStringContents_string = Object.assign({}, 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 this.errorHandlers_readStringContents_template = Object.assign({}, 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 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 }\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 & 128) {\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.input.charCodeAt(this.nextTokenStart());\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(140);\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 & 128) 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 & 128) this.pushToken(comment);\n return comment;\n }\n skipSpace() {\n const spaceStart = this.state.pos;\n const comments = this.optionFlags & 2048 ? [] : 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 == null || 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 == null || 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 & 4096) {\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 == null || comments.push(comment);\n }\n } else {\n break loop;\n }\n } else if (ch === 60 && !this.inModule && this.optionFlags & 4096) {\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 == null || comments.push(comment);\n }\n } else {\n break loop;\n }\n } else {\n break loop;\n }\n }\n }\n if ((comments == null ? void 0 : comments.length) > 0) {\n const end = this.state.pos;\n const commentWhitespace = {\n start: this.sourceToOffsetPos(spaceStart),\n end: this.sourceToOffsetPos(end),\n 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 (next === 123 || next === 91 && this.hasPlugin(\"recordAndTuple\")) {\n this.expectPlugin(\"recordAndTuple\");\n if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") === \"bar\") {\n throw this.raise(next === 123 ? Errors.RecordExpressionHashIncorrectStartSyntaxType : Errors.TupleExpressionHashIncorrectStartSyntaxType, this.state.curPosition());\n }\n this.state.pos += 2;\n if (next === 123) {\n this.finishToken(7);\n } else {\n this.finishToken(1);\n }\n } else if (isIdentifierStart(next)) {\n ++this.state.pos;\n this.finishToken(139, this.readWord1(next));\n } else if (next === 92) {\n ++this.state.pos;\n this.finishToken(139, this.readWord1());\n } else {\n this.finishOp(27, 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(21);\n } else {\n ++this.state.pos;\n this.finishToken(16);\n }\n }\n readToken_slash() {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (next === 61) {\n this.finishOp(31, 2);\n } else {\n this.finishOp(56, 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(28, value);\n return true;\n }\n readToken_mult_modulo(code) {\n let type = code === 42 ? 55 : 54;\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 = 57;\n }\n if (next === 61 && !this.state.inType) {\n width++;\n type = code === 37 ? 33 : 30;\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(30, 3);\n } else {\n this.finishOp(code === 124 ? 41 : 42, 2);\n }\n return;\n }\n if (code === 124) {\n if (next === 62) {\n this.finishOp(39, 2);\n return;\n }\n if (this.hasPlugin(\"recordAndTuple\") && next === 125) {\n if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n throw this.raise(Errors.RecordExpressionBarIncorrectEndSyntaxType, this.state.curPosition());\n }\n this.state.pos += 2;\n this.finishToken(9);\n return;\n }\n if (this.hasPlugin(\"recordAndTuple\") && next === 93) {\n if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n throw this.raise(Errors.TupleExpressionBarIncorrectEndSyntaxType, this.state.curPosition());\n }\n this.state.pos += 2;\n this.finishToken(4);\n return;\n }\n }\n if (next === 61) {\n this.finishOp(30, 2);\n return;\n }\n this.finishOp(code === 124 ? 43 : 45, 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(32, 2);\n } else if (next === 94 && this.hasPlugin([\"pipelineOperator\", {\n proposal: \"hack\",\n topicToken: \"^^\"\n }])) {\n this.finishOp(37, 2);\n const lookaheadCh = this.input.codePointAt(this.state.pos);\n if (lookaheadCh === 94) {\n this.unexpected();\n }\n } else {\n this.finishOp(44, 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(38, 2);\n } else {\n this.finishOp(26, 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(34, 2);\n return;\n }\n if (next === 61) {\n this.finishOp(30, 2);\n } else {\n this.finishOp(53, 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(30, 3);\n return;\n }\n this.finishOp(51, 2);\n return;\n }\n if (next === 61) {\n this.finishOp(49, 2);\n return;\n }\n this.finishOp(47, 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(30, size + 1);\n return;\n }\n this.finishOp(52, size);\n return;\n }\n if (next === 61) {\n this.finishOp(49, 2);\n return;\n }\n this.finishOp(48, 1);\n }\n readToken_eq_excl(code) {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (next === 61) {\n this.finishOp(46, 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(19);\n return;\n }\n this.finishOp(code === 61 ? 29 : 35, 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(30, 3);\n } else {\n this.finishOp(40, 2);\n }\n } else if (next === 46 && !(next2 >= 48 && next2 <= 57)) {\n this.state.pos += 2;\n this.finishToken(18);\n } else {\n ++this.state.pos;\n this.finishToken(17);\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(10);\n return;\n case 41:\n ++this.state.pos;\n this.finishToken(11);\n return;\n case 59:\n ++this.state.pos;\n this.finishToken(13);\n return;\n case 44:\n ++this.state.pos;\n this.finishToken(12);\n return;\n case 91:\n if (this.hasPlugin(\"recordAndTuple\") && this.input.charCodeAt(this.state.pos + 1) === 124) {\n if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n throw this.raise(Errors.TupleExpressionBarIncorrectStartSyntaxType, this.state.curPosition());\n }\n this.state.pos += 2;\n this.finishToken(2);\n } else {\n ++this.state.pos;\n this.finishToken(0);\n }\n return;\n case 93:\n ++this.state.pos;\n this.finishToken(3);\n return;\n case 123:\n if (this.hasPlugin(\"recordAndTuple\") && this.input.charCodeAt(this.state.pos + 1) === 124) {\n if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n throw this.raise(Errors.RecordExpressionBarIncorrectStartSyntaxType, this.state.curPosition());\n }\n this.state.pos += 2;\n this.finishToken(6);\n } else {\n ++this.state.pos;\n this.finishToken(5);\n }\n return;\n case 125:\n ++this.state.pos;\n this.finishToken(8);\n return;\n case 58:\n if (this.hasPlugin(\"functionBind\") && this.input.charCodeAt(this.state.pos + 1) === 58) {\n this.finishOp(15, 2);\n } else {\n ++this.state.pos;\n this.finishToken(14);\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(36, 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(138, {\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 } else if (next === 109) {\n throw this.raise(Errors.InvalidDecimal, startLoc);\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(136, str);\n return;\n }\n this.finishToken(135, 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 hasExponent = 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 hasExponent = true;\n next = this.input.charCodeAt(this.state.pos);\n }\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 (next === 109) {\n this.expectPlugin(\"decimal\", this.state.curPosition());\n if (hasExponent || hasLeadingZero) {\n this.raise(Errors.InvalidDecimal, startLoc);\n }\n ++this.state.pos;\n var isDecimal = true;\n }\n if (isIdentifierStart(this.codePointAtPos(this.state.pos))) {\n throw this.raise(Errors.NumberIdentifier, this.state.curPosition());\n }\n const str = this.input.slice(start, this.state.pos).replace(/[_mn]/g, \"\");\n if (isBigInt) {\n this.finishToken(136, str);\n return;\n }\n if (isDecimal) {\n this.finishToken(137, str);\n return;\n }\n const val = isOctal ? parseInt(str, 8) : parseFloat(str);\n this.finishToken(135, 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(134, str);\n }\n readTemplateContinuation() {\n if (!this.match(8)) {\n this.unexpected(null, 8);\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(24, firstInvalidLoc ? null : opening + str + \"`\");\n } else {\n this.state.pos++;\n this.finishToken(25, 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(132, 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 : at.loc.start;\n const error = toParseError(loc, details);\n if (!(this.optionFlags & 1024)) 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 : at.loc.start;\n const pos = loc.index;\n const errors = this.state.errors;\n for (let i = errors.length - 1; i >= 0; i--) {\n const error = errors[i];\n if (error.loc.index === pos) {\n return errors[i] = toParseError(loc, details);\n }\n if (error.loc.index < pos) break;\n }\n return this.raise(toParseError, at, 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}\nclass ClassScope {\n constructor() {\n this.privateNames = new Set();\n this.loneAccessors = new Map();\n this.undefinedPrivateNames = new Map();\n }\n}\nclass ClassScopeHandler {\n constructor(parser) {\n this.parser = void 0;\n this.stack = [];\n this.undefinedPrivateNames = new Map();\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 constructor(type) {\n super(type);\n this.declarationErrors = new Map();\n }\n recordDeclarationError(ParsingErrorClass, at) {\n const index = at.index;\n this.declarationErrors.set(index, [ParsingErrorClass, at]);\n }\n clearDeclarationError(index) {\n this.declarationErrors.delete(index);\n }\n iterateErrors(iterator) {\n this.declarationErrors.forEach(iterator);\n }\n}\nclass ExpressionScopeHandler {\n constructor(parser) {\n this.parser = void 0;\n this.stack = [new ExpressionScope()];\n this.parser = parser;\n }\n enter(scope) {\n this.stack.push(scope);\n }\n exit() {\n this.stack.pop();\n }\n recordParameterInitializerError(toParseError, node) {\n const origin = node.loc.start;\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, origin);\n } else {\n return;\n }\n scope = stack[--i];\n }\n this.parser.raise(toParseError, origin);\n }\n recordArrowParameterBindingError(error, node) {\n const {\n stack\n } = this;\n const scope = stack[stack.length - 1];\n const origin = node.loc.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, loc]) => {\n this.parser.raise(toParseError, loc);\n let i = stack.length - 2;\n let scope = stack[i];\n while (scope.canBeArrowParameterDeclaration()) {\n scope.clearDeclarationError(loc.index);\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 constructor() {\n this.stacks = [];\n }\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}\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 const nameEnd = nameStart + name.length;\n if (this.input.slice(nameStart, nameEnd) === name) {\n const nextCh = this.input.charCodeAt(nameEnd);\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(140) || this.match(8) || 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(13) || this.canInsertSemicolon();\n }\n semicolon(allowAsi = true) {\n if (allowAsi ? this.isLineTerminator() : this.eat(13)) 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,\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 } = refExpressionErrors;\n const hasErrors = !!shorthandAssignLoc || !!doubleProtoLoc || !!optionalParametersLoc || !!privateKeyLoc;\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 }\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) {\n paramFlags |= 2;\n }\n this.scope.enter(1);\n this.prodParam.enter(paramFlags);\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 constructor() {\n this.shorthandAssignLoc = null;\n this.doubleProtoLoc = null;\n this.privateKeyLoc = null;\n this.optionalParametersLoc = null;\n }\n}\nclass Node {\n constructor(parser, pos, loc) {\n this.type = \"\";\n this.start = pos;\n this.end = 0;\n this.loc = new SourceLocation(loc);\n if ((parser == null ? void 0 : parser.optionFlags) & 64) this.range = [pos, 0];\n if (parser != null && parser.filename) this.loc.filename = parser.filename;\n }\n}\nconst NodePrototype = Node.prototype;\n{\n NodePrototype.__clone = function () {\n const newNode = new Node(undefined, this.start, this.loc.start);\n const keys = Object.keys(this);\n for (let i = 0, length = keys.length; i < length; i++) {\n const key = keys[i];\n if (key !== \"leadingComments\" && key !== \"trailingComments\" && key !== \"innerComments\") {\n newNode[key] = this[key];\n }\n }\n return newNode;\n };\n}\nfunction clonePlaceholder(node) {\n return cloneIdentifier(node);\n}\nfunction cloneIdentifier(node) {\n const {\n type,\n start,\n end,\n loc,\n range,\n extra,\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.extra = extra;\n cloned.name = name;\n if (type === \"Placeholder\") {\n cloned.expectedNode = node.expectedNode;\n }\n return cloned;\n}\nfunction cloneStringLiteral(node) {\n const {\n type,\n start,\n end,\n loc,\n range,\n extra\n } = node;\n if (type === \"Placeholder\") {\n return clonePlaceholder(node);\n }\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 if (node.raw !== undefined) {\n cloned.raw = node.raw;\n } else {\n cloned.extra = extra;\n }\n cloned.value = node.value;\n return cloned;\n}\nclass NodeUtils extends UtilParser {\n startNode() {\n const loc = this.state.startLoc;\n return new Node(this, loc.index, loc);\n }\n startNodeAt(loc) {\n return new Node(this, loc.index, loc);\n }\n startNodeAtNode(type) {\n return this.startNodeAt(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 node.loc.end = endLoc;\n if (this.optionFlags & 64) node.range[1] = endLoc.index;\n if (this.optionFlags & 2048) {\n this.processComment(node);\n }\n return node;\n }\n resetStartLocation(node, startLoc) {\n node.start = startLoc.index;\n node.loc.start = startLoc;\n if (this.optionFlags & 64) node.range[0] = startLoc.index;\n }\n resetEndLocation(node, endLoc = this.state.lastTokEndLoc) {\n node.end = endLoc.index;\n node.loc.end = endLoc;\n if (this.optionFlags & 64) node.range[1] = endLoc.index;\n }\n resetStartLocationFromNode(node, locationNode) {\n this.resetStartLocation(node, locationNode.loc.start);\n }\n}\nconst reservedTypes = new Set([\"_\", \"any\", \"bool\", \"boolean\", \"empty\", \"extends\", \"false\", \"interface\", \"mixed\", \"null\", \"number\", \"static\", \"string\", \"true\", \"typeof\", \"void\"]);\nconst FlowErrors = ParseErrorEnum`flow`({\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 ImportReflectionHasImportType: \"An `import module` declaration can not use `type` or `typeof` keyword.\",\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: Object.assign({\n message: \"A binding pattern parameter cannot be optional in an implementation signature.\"\n }, {\n reasonCode: \"OptionalBindingPattern\"\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});\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/;\nvar flow = superClass => class FlowParserMixin extends superClass {\n constructor(...args) {\n super(...args);\n this.flowPragma = undefined;\n }\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 !== 134 && type !== 13 && type !== 28) {\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 || 14);\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(110);\n if (this.state.lastTokStartLoc.index > moduloLoc.index + 1) {\n this.raise(FlowErrors.UnexpectedSpaceBetweenModuloChecks, moduloLoc);\n }\n if (this.eat(10)) {\n node.value = super.parseExpression();\n this.expect(11);\n return this.finishNode(node, \"DeclaredPredicate\");\n } else {\n return this.finishNode(node, \"InferredPredicate\");\n }\n }\n flowParseTypeAndPredicateInitialiser() {\n const oldInType = this.state.inType;\n this.state.inType = true;\n this.expect(14);\n let type = null;\n let predicate = null;\n if (this.match(54)) {\n this.state.inType = oldInType;\n predicate = this.flowParsePredicate();\n } else {\n type = this.flowParseType();\n this.state.inType = oldInType;\n if (this.match(54)) {\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(47)) {\n typeNode.typeParameters = this.flowParseTypeParameterDeclaration();\n } else {\n typeNode.typeParameters = null;\n }\n this.expect(10);\n const tmp = this.flowParseFunctionTypeParams();\n typeNode.params = tmp.params;\n typeNode.rest = tmp.rest;\n typeNode.this = tmp._this;\n this.expect(11);\n [typeNode.returnType, node.predicate] = this.flowParseTypeAndPredicateInitialiser();\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.loc.start);\n return this.finishNode(node, \"DeclareFunction\");\n }\n flowParseDeclare(node, insideModule) {\n if (this.match(80)) {\n return this.flowParseDeclareClass(node);\n } else if (this.match(68)) {\n return this.flowParseDeclareFunction(node);\n } else if (this.match(74)) {\n return this.flowParseDeclareVariable(node);\n } else if (this.eatContextual(127)) {\n if (this.match(16)) {\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(130)) {\n return this.flowParseDeclareTypeAlias(node);\n } else if (this.isContextual(131)) {\n return this.flowParseDeclareOpaqueType(node);\n } else if (this.isContextual(129)) {\n return this.flowParseDeclareInterface(node);\n } else if (this.match(82)) {\n return this.flowParseDeclareExportDeclaration(node, insideModule);\n } else {\n this.unexpected();\n }\n }\n flowParseDeclareVariable(node) {\n this.next();\n node.id = this.flowParseTypeAnnotatableIdentifier(true);\n this.scope.declareName(node.id.name, 5, node.id.loc.start);\n this.semicolon();\n return this.finishNode(node, \"DeclareVariable\");\n }\n flowParseDeclareModule(node) {\n this.scope.enter(0);\n if (this.match(134)) {\n node.id = super.parseExprAtom();\n } else {\n node.id = this.parseIdentifier();\n }\n const bodyNode = node.body = this.startNode();\n const body = bodyNode.body = [];\n this.expect(5);\n while (!this.match(8)) {\n let bodyNode = this.startNode();\n if (this.match(83)) {\n this.next();\n if (!this.isContextual(130) && !this.match(87)) {\n this.raise(FlowErrors.InvalidNonTypeImportInDeclareModule, this.state.lastTokStartLoc);\n }\n super.parseImport(bodyNode);\n } else {\n this.expectContextual(125, FlowErrors.UnsupportedStatementInDeclareModule);\n bodyNode = this.flowParseDeclare(bodyNode, true);\n }\n body.push(bodyNode);\n }\n this.scope.exit();\n this.expect(8);\n 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(82);\n if (this.eat(65)) {\n if (this.match(68) || this.match(80)) {\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(75) || this.isLet() || (this.isContextual(130) || this.isContextual(129)) && !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(74) || this.match(68) || this.match(80) || this.isContextual(131)) {\n node.declaration = this.flowParseDeclare(this.startNode());\n node.default = false;\n return this.finishNode(node, \"DeclareExportDeclaration\");\n } else if (this.match(55) || this.match(5) || this.isContextual(129) || this.isContextual(130) || this.isContextual(131)) {\n node = this.parseExport(node, null);\n if (node.type === \"ExportNamedDeclaration\") {\n node.type = \"ExportDeclaration\";\n node.default = false;\n delete node.exportKind;\n }\n node.type = \"Declare\" + node.type;\n return node;\n }\n }\n this.unexpected();\n }\n flowParseDeclareModuleExports(node) {\n this.next();\n this.expectContextual(111);\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 finished.type = \"DeclareTypeAlias\";\n return finished;\n }\n flowParseDeclareOpaqueType(node) {\n this.next();\n const finished = this.flowParseOpaqueType(node, true);\n finished.type = \"DeclareOpaqueType\";\n return finished;\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.loc.start);\n if (this.match(47)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n } else {\n node.typeParameters = null;\n }\n node.extends = [];\n if (this.eat(81)) {\n do {\n node.extends.push(this.flowParseInterfaceExtends());\n } while (!isClass && this.eat(12));\n }\n if (isClass) {\n node.implements = [];\n node.mixins = [];\n if (this.eatContextual(117)) {\n do {\n node.mixins.push(this.flowParseInterfaceExtends());\n } while (this.eat(12));\n }\n if (this.eatContextual(113)) {\n do {\n node.implements.push(this.flowParseInterfaceExtends());\n } while (this.eat(12));\n }\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(47)) {\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 flowParseRestrictedIdentifier(liberal, declaration) {\n this.checkReservedType(this.state.value, this.state.startLoc, declaration);\n return this.parseIdentifier(liberal);\n }\n flowParseTypeAlias(node) {\n node.id = this.flowParseRestrictedIdentifier(false, true);\n this.scope.declareName(node.id.name, 8201, node.id.loc.start);\n if (this.match(47)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n } else {\n node.typeParameters = null;\n }\n node.right = this.flowParseTypeInitialiser(29);\n this.semicolon();\n return this.finishNode(node, \"TypeAlias\");\n }\n flowParseOpaqueType(node, declare) {\n this.expectContextual(130);\n node.id = this.flowParseRestrictedIdentifier(true, true);\n this.scope.declareName(node.id.name, 8201, node.id.loc.start);\n if (this.match(47)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n } else {\n node.typeParameters = null;\n }\n node.supertype = null;\n if (this.match(14)) {\n node.supertype = this.flowParseTypeInitialiser(14);\n }\n node.impltype = null;\n if (!declare) {\n node.impltype = this.flowParseTypeInitialiser(29);\n }\n this.semicolon();\n return this.finishNode(node, \"OpaqueType\");\n }\n flowParseTypeParameter(requireDefault = false) {\n const nodeStartLoc = this.state.startLoc;\n const node = this.startNode();\n const variance = this.flowParseVariance();\n const ident = this.flowParseTypeAnnotatableIdentifier();\n node.name = ident.name;\n node.variance = variance;\n node.bound = ident.typeAnnotation;\n if (this.match(29)) {\n this.eat(29);\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(47) || this.match(143)) {\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(48)) {\n this.expect(12);\n }\n } while (!this.match(48));\n this.expect(48);\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() !== 47) 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(47);\n const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n this.state.noAnonFunctionType = false;\n while (!this.match(48)) {\n node.params.push(this.flowParseType());\n if (!this.match(48)) {\n this.expect(12);\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(48);\n return this.finishNode(node, \"TypeParameterInstantiation\");\n }\n flowParseTypeParameterInstantiationCallOrNew() {\n if (this.reScan_lt() !== 47) return;\n const node = this.startNode();\n const oldInType = this.state.inType;\n node.params = [];\n this.state.inType = true;\n this.expect(47);\n while (!this.match(48)) {\n node.params.push(this.flowParseTypeOrImplicitInstantiation());\n if (!this.match(48)) {\n this.expect(12);\n }\n }\n this.expect(48);\n this.state.inType = oldInType;\n return this.finishNode(node, \"TypeParameterInstantiation\");\n }\n flowParseInterfaceType() {\n const node = this.startNode();\n this.expectContextual(129);\n node.extends = [];\n if (this.eat(81)) {\n do {\n node.extends.push(this.flowParseInterfaceExtends());\n } while (this.eat(12));\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(135) || this.match(134) ? super.parseExprAtom() : this.parseIdentifier(true);\n }\n flowParseObjectTypeIndexer(node, isStatic, variance) {\n node.static = isStatic;\n if (this.lookahead().type === 14) {\n node.id = this.flowParseObjectPropertyKey();\n node.key = this.flowParseTypeInitialiser();\n } else {\n node.id = null;\n node.key = this.flowParseType();\n }\n this.expect(3);\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.flowParseObjectPropertyKey();\n this.expect(3);\n this.expect(3);\n if (this.match(47) || this.match(10)) {\n node.method = true;\n node.optional = false;\n node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(node.loc.start));\n } else {\n node.method = false;\n if (this.eat(17)) {\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(47)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n this.expect(10);\n if (this.match(78)) {\n node.this = this.flowParseFunctionTypeParam(true);\n node.this.name = null;\n if (!this.match(11)) {\n this.expect(12);\n }\n }\n while (!this.match(11) && !this.match(21)) {\n node.params.push(this.flowParseFunctionTypeParam(false));\n if (!this.match(11)) {\n this.expect(12);\n }\n }\n if (this.eat(21)) {\n node.rest = this.flowParseFunctionTypeParam(false);\n }\n this.expect(11);\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(6)) {\n this.expect(6);\n endDelim = 9;\n exact = true;\n } else {\n this.expect(5);\n endDelim = 8;\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(118)) {\n const lookahead = this.lookahead();\n if (lookahead.type !== 14 && lookahead.type !== 17) {\n this.next();\n protoStartLoc = this.state.startLoc;\n allowStatic = false;\n }\n }\n if (allowStatic && this.isContextual(106)) {\n const lookahead = this.lookahead();\n if (lookahead.type !== 14 && lookahead.type !== 17) {\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.loc.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(10) || this.match(47)) {\n if (protoStartLoc != null) {\n this.unexpected(protoStartLoc);\n }\n if (variance) {\n this.unexpected(variance.loc.start);\n }\n nodeStart.callProperties.push(this.flowParseObjectTypeCallProperty(node, isStatic));\n } else {\n let kind = \"init\";\n if (this.isContextual(99) || this.isContextual(104)) {\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 != null ? 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(8) && !this.match(9)) {\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(21)) {\n const isInexactToken = this.match(12) || this.match(13) || this.match(8) || this.match(9);\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(47) || this.match(10)) {\n node.method = true;\n if (protoStartLoc != null) {\n this.unexpected(protoStartLoc);\n }\n if (variance) {\n this.unexpected(variance.loc.start);\n }\n node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(node.loc.start));\n if (kind === \"get\" || kind === \"set\") {\n this.flowCheckGetterSetterParams(node);\n }\n if (!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(17)) {\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 length = property.value.params.length + (property.value.rest ? 1 : 0);\n if (property.value.this) {\n this.raise(property.kind === \"get\" ? FlowErrors.GetterMayNotHaveThisParam : FlowErrors.SetterMayNotHaveThisParam, property.value.this);\n }\n if (length !== paramCount) {\n this.raise(property.kind === \"get\" ? Errors.BadGetterArity : Errors.BadSetterArity, property);\n }\n if (property.kind === \"set\" && property.value.rest) {\n this.raise(Errors.BadSetterRestParameter, property);\n }\n }\n flowObjectTypeSemicolon() {\n if (!this.eat(13) && !this.eat(12) && !this.match(8) && !this.match(9)) {\n this.unexpected();\n }\n }\n flowParseQualifiedTypeIdentifier(startLoc, id) {\n var _startLoc;\n (_startLoc = startLoc) != null ? _startLoc : startLoc = this.state.startLoc;\n let node = id || this.flowParseRestrictedIdentifier(true);\n while (this.eat(16)) {\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(47)) {\n node.typeParameters = this.flowParseTypeParameterInstantiation();\n }\n return this.finishNode(node, \"GenericTypeAnnotation\");\n }\n flowParseTypeofType() {\n const node = this.startNode();\n this.expect(87);\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(3)) {\n node.types.push(this.flowParseType());\n if (this.match(3)) break;\n this.expect(12);\n }\n this.expect(3);\n return this.finishNode(node, \"TupleTypeAnnotation\");\n }\n flowParseFunctionTypeParam(first) {\n let name = null;\n let optional = false;\n let typeAnnotation = null;\n const node = this.startNode();\n const lh = this.lookahead();\n const isThis = this.state.type === 78;\n if (lh.type === 14 || lh.type === 17) {\n if (isThis && !first) {\n this.raise(FlowErrors.ThisParamMustBeFirst, node);\n }\n name = this.parseIdentifier(isThis);\n if (this.eat(17)) {\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.startNodeAt(type.loc.start);\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(78)) {\n _this = this.flowParseFunctionTypeParam(true);\n _this.name = null;\n if (!this.match(11)) {\n this.expect(12);\n }\n }\n while (!this.match(11) && !this.match(21)) {\n params.push(this.flowParseFunctionTypeParam(false));\n if (!this.match(11)) {\n this.expect(12);\n }\n }\n if (this.eat(21)) {\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 5:\n return this.flowParseObjectType({\n allowStatic: false,\n allowExact: false,\n allowSpread: true,\n allowProto: false,\n allowInexact: true\n });\n case 6:\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 47:\n {\n const node = this.startNode();\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n this.expect(10);\n tmp = this.flowParseFunctionTypeParams();\n node.params = tmp.params;\n node.rest = tmp.rest;\n node.this = tmp._this;\n this.expect(11);\n this.expect(19);\n node.returnType = this.flowParseType();\n return this.finishNode(node, \"FunctionTypeAnnotation\");\n }\n case 10:\n {\n const node = this.startNode();\n this.next();\n if (!this.match(11) && !this.match(21)) {\n if (tokenIsIdentifier(this.state.type) || this.match(78)) {\n const token = this.lookahead().type;\n isGroupedType = token !== 17 && token !== 14;\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(12) || this.match(11) && this.lookahead().type === 19)) {\n this.expect(11);\n return type;\n } else {\n this.eat(12);\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(11);\n this.expect(19);\n node.returnType = this.flowParseType();\n node.typeParameters = null;\n return this.finishNode(node, \"FunctionTypeAnnotation\");\n }\n case 134:\n return this.parseLiteral(this.state.value, \"StringLiteralTypeAnnotation\");\n case 85:\n case 86:\n node.value = this.match(85);\n this.next();\n return this.finishNode(node, \"BooleanLiteralTypeAnnotation\");\n case 53:\n if (this.state.value === \"-\") {\n this.next();\n if (this.match(135)) {\n return this.parseLiteralAtNode(-this.state.value, \"NumberLiteralTypeAnnotation\", node);\n }\n if (this.match(136)) {\n return this.parseLiteralAtNode(-this.state.value, \"BigIntLiteralTypeAnnotation\", node);\n }\n throw this.raise(FlowErrors.UnexpectedSubtractionOperand, this.state.startLoc);\n }\n this.unexpected();\n return;\n case 135:\n return this.parseLiteral(this.state.value, \"NumberLiteralTypeAnnotation\");\n case 136:\n return this.parseLiteral(this.state.value, \"BigIntLiteralTypeAnnotation\");\n case 88:\n this.next();\n return this.finishNode(node, \"VoidTypeAnnotation\");\n case 84:\n this.next();\n return this.finishNode(node, \"NullLiteralTypeAnnotation\");\n case 78:\n this.next();\n return this.finishNode(node, \"ThisTypeAnnotation\");\n case 55:\n this.next();\n return this.finishNode(node, \"ExistsTypeAnnotation\");\n case 87:\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(129)) {\n return this.flowParseInterfaceType();\n }\n return this.flowIdentToTypeAnnotation(startLoc, node, this.parseIdentifier());\n }\n }\n 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(18)) && !this.canInsertSemicolon()) {\n const node = this.startNodeAt(startLoc);\n const optional = this.eat(18);\n seenOptionalIndexedAccess = seenOptionalIndexedAccess || optional;\n this.expect(0);\n if (!optional && this.match(3)) {\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(3);\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(17)) {\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(19)) {\n const node = this.startNodeAt(param.loc.start);\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(45);\n const type = this.flowParseAnonFunctionWithoutParens();\n node.types = [type];\n while (this.eat(45)) {\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(43);\n const type = this.flowParseIntersectionType();\n node.types = [type];\n while (this.eat(43)) {\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 === 132 && 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(allowPrimitiveOverride) {\n const ident = allowPrimitiveOverride ? this.parseIdentifier() : this.flowParseRestrictedIdentifier();\n if (this.match(14)) {\n ident.typeAnnotation = this.flowParseTypeAnnotation();\n this.resetEndLocation(ident);\n }\n return ident;\n }\n typeCastToParameter(node) {\n node.expression.typeAnnotation = node.typeAnnotation;\n this.resetEndLocation(node.expression, node.typeAnnotation.loc.end);\n return node.expression;\n }\n flowParseVariance() {\n let variance = null;\n if (this.match(53)) {\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(14)) {\n const typeNode = this.startNode();\n [typeNode.typeAnnotation, node.predicate] = this.flowParseTypeAndPredicateInitialiser();\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(129)) {\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(126)) {\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(80) || tokenIsIdentifier(this.state.type) || this.match(68) || this.match(74) || this.match(82)) {\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 === 126 || 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 === 126 || tokenIsFlowInterfaceOrTypeOrOpaque(type)) {\n return this.state.containsEsc;\n }\n return super.isExportDefaultSpecifier();\n }\n parseExportDefaultExpression() {\n if (this.isContextual(126)) {\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(17)) return expr;\n if (this.state.maybeInArrowParameters) {\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(17);\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 let [valid, invalid] = this.getArrowLikeExpressions(consequent);\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, invalid] = 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 failed\n } = this.tryParseConditionalConsequent());\n }\n }\n this.getArrowLikeExpressions(consequent, true);\n this.state.noArrowAt = originalNoArrowAt;\n this.expect(14);\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(14);\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 var _node$extra;\n this.toAssignableList(node.params, (_node$extra = node.extra) == null ? void 0 : _node$extra.trailingCommaLoc, false);\n this.scope.enter(2 | 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(17)) {\n newNode.optional = true;\n this.resetEndLocation(node);\n }\n if (this.match(14)) {\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(130)) {\n node.exportKind = \"type\";\n const declarationNode = this.startNode();\n this.next();\n if (this.match(5)) {\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(131)) {\n node.exportKind = \"type\";\n const declarationNode = this.startNode();\n this.next();\n return this.flowParseOpaqueType(declarationNode, false);\n } else if (this.isContextual(129)) {\n node.exportKind = \"type\";\n const declarationNode = this.startNode();\n this.next();\n return this.flowParseInterface(declarationNode);\n } else if (this.isContextual(126)) {\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(130) && this.lookahead().type === 55) {\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 super.parseClassId(node, isStatement, optionalId);\n if (this.match(47)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n }\n parseClassMember(classBody, member, state) {\n const {\n startLoc\n } = this.state;\n if (this.isContextual(125)) {\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(132, fullWord);\n }\n getTokenFromCode(code) {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (code === 123 && next === 124) {\n this.finishOp(6, 2);\n } else if (this.state.inType && (code === 62 || code === 60)) {\n this.finishOp(code === 62 ? 48 : 47, 1);\n } else if (this.state.inType && code === 63) {\n if (next === 46) {\n this.finishOp(18, 2);\n } else {\n this.finishOp(17, 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 toAssignableList(exprList, trailingCommaLoc, isLHS) {\n for (let i = 0; i < exprList.length; i++) {\n const expr = exprList[i];\n if ((expr == null ? void 0 : expr.type) === \"TypeCastExpression\") {\n exprList[i] = this.typeCastToParameter(expr);\n }\n }\n super.toAssignableList(exprList, trailingCommaLoc, isLHS);\n }\n toReferencedList(exprList, isParenthesizedExpr) {\n for (let i = 0; i < exprList.length; i++) {\n var _expr$extra;\n const expr = exprList[i];\n if (expr && expr.type === \"TypeCastExpression\" && !((_expr$extra = expr.extra) != null && _expr$extra.parenthesized) && (exprList.length > 1 || !isParenthesizedExpr)) {\n this.raise(FlowErrors.TypeCastInPattern, expr.typeAnnotation);\n }\n }\n return exprList;\n }\n parseArrayLike(close, canBePattern, isTuple, refExpressionErrors) {\n const node = super.parseArrayLike(close, canBePattern, isTuple, refExpressionErrors);\n if (canBePattern && !this.state.maybeInArrowParameters) {\n this.toReferencedList(node.elements);\n }\n return node;\n }\n isValidLVal(type, isParenthesized, binding) {\n return type === \"TypeCastExpression\" || super.isValidLVal(type, isParenthesized, binding);\n }\n parseClassProperty(node) {\n if (this.match(14)) {\n node.typeAnnotation = this.flowParseTypeAnnotation();\n }\n return super.parseClassProperty(node);\n }\n parseClassPrivateProperty(node) {\n if (this.match(14)) {\n node.typeAnnotation = this.flowParseTypeAnnotation();\n }\n return super.parseClassPrivateProperty(node);\n }\n isClassMethod() {\n return this.match(47) || super.isClassMethod();\n }\n isClassProperty() {\n return this.match(14) || super.isClassProperty();\n }\n isNonstaticConstructor(method) {\n return !this.match(14) && super.isNonstaticConstructor(method);\n }\n pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) {\n if (method.variance) {\n this.unexpected(method.variance.loc.start);\n }\n delete method.variance;\n if (this.match(47)) {\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.loc.start);\n }\n delete method.variance;\n if (this.match(47)) {\n method.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync);\n }\n parseClassSuper(node) {\n super.parseClassSuper(node);\n if (node.superClass && (this.match(47) || this.match(51))) {\n {\n node.superTypeParameters = this.flowParseTypeParameterInstantiationInExpression();\n }\n }\n if (this.isContextual(113)) {\n this.next();\n const implemented = node.implements = [];\n do {\n const node = this.startNode();\n node.id = this.flowParseRestrictedIdentifier(true);\n if (this.match(47)) {\n node.typeParameters = this.flowParseTypeParameterInstantiation();\n } else {\n node.typeParameters = null;\n }\n implemented.push(this.finishNode(node, \"ClassImplements\"));\n } while (this.eat(12));\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.loc.start);\n }\n delete prop.variance;\n let typeParameters;\n if (this.match(47) && !isAccessor) {\n typeParameters = this.flowParseTypeParameterDeclaration();\n if (!this.match(10)) 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(17)) {\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(14)) {\n param.typeAnnotation = this.flowParseTypeAnnotation();\n } else if (this.isThisParam(param)) {\n this.raise(FlowErrors.ThisParamAnnotationRequired, param);\n }\n if (this.match(29) && 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 checkImportReflection(node) {\n super.checkImportReflection(node);\n if (node.module && node.importKind !== \"value\") {\n this.raise(FlowErrors.ImportReflectionHasImportType, node.specifiers[0].loc.start);\n }\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(130)) {\n if (!isExport) return true;\n const ch = this.lookaheadCharCode();\n return ch === 123 || ch === 42;\n }\n return !isExport && this.isContextual(87);\n }\n applyImportPhase(node, isExport, phase, loc) {\n super.applyImportPhase(node, isExport, phase, loc);\n if (isExport) {\n if (!phase && this.match(65)) {\n return;\n }\n node.exportKind = phase === \"type\" ? phase : \"value\";\n } else {\n if (phase === \"type\" && this.match(55)) 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(93) && !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 = 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(93)) {\n specifier.local = this.parseIdentifier();\n } else {\n isBinding = true;\n specifier.local = 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.loc.start, true);\n }\n if (isBinding && !isInTypeOnlyImport && !specifierIsTypeImport) {\n this.checkReservedWord(specifier.local.name, specifier.loc.start, true, true);\n }\n return this.finishImportSpecifier(specifier, \"ImportSpecifier\");\n }\n parseBindingAtom() {\n switch (this.state.type) {\n case 78:\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(47)) {\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(14)) {\n decl.id.typeAnnotation = this.flowParseTypeAnnotation();\n this.resetEndLocation(decl.id);\n }\n }\n parseAsyncArrowFromCallExpression(node, call) {\n if (this.match(14)) {\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(14) || super.shouldParseAsyncArrow();\n }\n parseMaybeAssign(refExpressionErrors, afterLeftParse) {\n var _jsx;\n let state = null;\n let jsx;\n if (this.hasPlugin(\"jsx\") && (this.match(143) || this.match(47))) {\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 = jsx) != null && _jsx.error || this.match(47)) {\n var _jsx2, _jsx3;\n state = state || this.state.clone();\n let typeParameters;\n const arrow = this.tryParse(abort => {\n var _arrowExpression$extr;\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$extr = arrowExpression.extra) != null && _arrowExpression$extr.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 ((_jsx2 = jsx) != null && _jsx2.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 ((_jsx3 = jsx) != null && _jsx3.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(14)) {\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();\n this.state.noAnonFunctionType = oldNoAnonFunctionType;\n if (this.canInsertSemicolon()) this.unexpected();\n if (!this.match(19)) 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(14) || 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(canBeArrow) {\n return super.parseParenAndDistinguishExpression(canBeArrow && !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(11);\n base = this.finishNode(node, \"CallExpression\");\n } else if (base.type === \"Identifier\" && base.name === \"async\" && this.match(47)) {\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(18) && 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(10);\n node.arguments = this.parseCallExpressionArguments(11);\n node.optional = true;\n return this.finishCallExpression(node, true);\n } else if (!noCalls && this.shouldParseTypes() && (this.match(47) || this.match(51))) {\n const node = this.startNodeAt(startLoc);\n node.callee = base;\n const result = this.tryParse(() => {\n node.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew();\n this.expect(10);\n node.arguments = super.parseCallExpressionArguments(11);\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(47)) {\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(9, 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, {\n enumName,\n memberName\n }) {\n this.raise(FlowErrors.EnumBooleanMemberNotInitialized, loc, {\n memberName,\n enumName\n });\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(12) || this.match(8);\n switch (this.state.type) {\n case 135:\n {\n const literal = this.parseNumericLiteral(this.state.value);\n if (endOfInit()) {\n return {\n type: \"number\",\n loc: literal.loc.start,\n value: literal\n };\n }\n return {\n type: \"invalid\",\n loc: startLoc\n };\n }\n case 134:\n {\n const literal = this.parseStringLiteral(this.state.value);\n if (endOfInit()) {\n return {\n type: \"string\",\n loc: literal.loc.start,\n value: literal\n };\n }\n return {\n type: \"invalid\",\n loc: startLoc\n };\n }\n case 85:\n case 86:\n {\n const literal = this.parseBooleanLiteral(this.match(85));\n if (endOfInit()) {\n return {\n type: \"boolean\",\n loc: literal.loc.start,\n value: literal\n };\n }\n return {\n type: \"invalid\",\n loc: startLoc\n };\n }\n default:\n return {\n type: \"invalid\",\n loc: startLoc\n };\n }\n }\n flowEnumMemberRaw() {\n const loc = this.state.startLoc;\n const id = this.parseIdentifier(true);\n const init = this.eat(29) ? 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(8)) {\n if (this.eat(21)) {\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(8)) {\n this.expect(12);\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(102)) 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.loc.start;\n const explicitType = this.flowEnumParseExplicitType({\n enumName\n });\n this.expect(5);\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(8);\n return this.finishNode(node, \"EnumBooleanBody\");\n case \"number\":\n node.explicitType = true;\n node.members = members.numberMembers;\n this.expect(8);\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(8);\n return this.finishNode(node, \"EnumStringBody\");\n case \"symbol\":\n node.members = members.defaultedMembers;\n this.expect(8);\n return this.finishNode(node, \"EnumSymbolBody\");\n default:\n {\n const empty = () => {\n node.members = [];\n this.expect(8);\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(8);\n return this.finishNode(node, \"EnumStringBody\");\n } else if (!numsLen && !strsLen && boolsLen >= defaultedLen) {\n for (const member of members.defaultedMembers) {\n this.flowEnumErrorBooleanMemberNotInitialized(member.loc.start, {\n enumName,\n memberName: member.id.name\n });\n }\n node.members = members.booleanMembers;\n this.expect(8);\n return this.finishNode(node, \"EnumBooleanBody\");\n } else if (!boolsLen && !strsLen && numsLen >= defaultedLen) {\n for (const member of members.defaultedMembers) {\n this.flowEnumErrorNumberMemberNotInitialized(member.loc.start, {\n enumName,\n memberName: member.id.name\n });\n }\n node.members = members.numberMembers;\n this.expect(8);\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(47) || this.match(51)) {\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 === 47) {\n this.state.pos -= 1;\n this.readToken_lt();\n } else if (type === 48) {\n this.state.pos -= 1;\n this.readToken_gt();\n }\n }\n reScan_lt() {\n const {\n type\n } = this.state;\n if (type === 51) {\n this.state.pos -= 2;\n this.finishOp(47, 1);\n return 47;\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 JsxErrors = ParseErrorEnum`jsx`({\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});\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}\nvar 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(143);\n } else {\n super.getTokenFromCode(ch);\n }\n return;\n }\n out += this.input.slice(chunkStart, this.state.pos);\n this.finishToken(142, 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 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(134, 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(141, this.input.slice(start, this.state.pos));\n }\n jsxParseIdentifier() {\n const node = this.startNode();\n if (this.match(141)) {\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(14)) 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(16)) {\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 5:\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 143:\n case 134:\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(8);\n return this.finishNode(node, \"JSXSpreadChild\");\n }\n jsxParseExpressionContainer(node, previousContext) {\n if (this.match(8)) {\n node.expression = this.jsxParseEmptyExpression();\n } else {\n const expression = this.parseExpression();\n node.expression = expression;\n }\n this.setContext(previousContext);\n this.state.canStartJSXElement = true;\n this.expect(8);\n return this.finishNode(node, \"JSXExpressionContainer\");\n }\n jsxParseAttribute() {\n const node = this.startNode();\n if (this.match(5)) {\n this.setContext(types.brace);\n this.next();\n this.expect(21);\n node.argument = this.parseMaybeAssignAllowIn();\n this.setContext(types.j_oTag);\n this.state.canStartJSXElement = true;\n this.expect(8);\n return this.finishNode(node, \"JSXSpreadAttribute\");\n }\n node.name = this.jsxParseNamespacedName();\n node.value = this.eat(29) ? this.jsxParseAttributeValue() : null;\n return this.finishNode(node, \"JSXAttribute\");\n }\n jsxParseOpeningElementAt(startLoc) {\n const node = this.startNodeAt(startLoc);\n if (this.eat(144)) {\n return this.finishNode(node, \"JSXOpeningFragment\");\n }\n node.name = this.jsxParseElementName();\n return this.jsxParseOpeningElementAfterName(node);\n }\n jsxParseOpeningElementAfterName(node) {\n const attributes = [];\n while (!this.match(56) && !this.match(144)) {\n attributes.push(this.jsxParseAttribute());\n }\n node.attributes = attributes;\n node.selfClosing = this.eat(56);\n this.expect(144);\n return this.finishNode(node, \"JSXOpeningElement\");\n }\n jsxParseClosingElementAt(startLoc) {\n const node = this.startNodeAt(startLoc);\n if (this.eat(144)) {\n return this.finishNode(node, \"JSXClosingFragment\");\n }\n node.name = this.jsxParseElementName();\n this.expect(144);\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 143:\n startLoc = this.state.startLoc;\n this.next();\n if (this.eat(56)) {\n closingElement = this.jsxParseClosingElementAt(startLoc);\n break contents;\n }\n children.push(this.jsxParseElementAt(startLoc));\n break;\n case 142:\n children.push(this.parseLiteral(this.state.value, \"JSXText\"));\n break;\n case 5:\n {\n const node = this.startNode();\n this.setContext(types.brace);\n this.next();\n if (this.match(21)) {\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(47)) {\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(143)) {\n return this.jsxParseElement();\n } else if (this.match(47) && this.input.charCodeAt(this.state.pos) !== 33) {\n this.replaceToken(143);\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(144);\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(143);\n return;\n }\n super.getTokenFromCode(code);\n }\n updateContext(prevType) {\n const {\n context,\n type\n } = this.state;\n if (type === 56 && prevType === 143) {\n context.splice(-2, 2, types.j_cTag);\n this.state.canStartJSXElement = false;\n } else if (type === 143) {\n context.push(types.j_oTag);\n } else if (type === 144) {\n const out = context[context.length - 1];\n if (out === types.j_oTag && prevType === 56 || 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 constructor(...args) {\n super(...args);\n this.tsNames = new Map();\n }\n}\nclass TypeScriptScopeHandler extends ScopeHandler {\n constructor(...args) {\n super(...args);\n this.importsStack = [];\n }\n createScope(flags) {\n this.importsStack.push(new Set());\n return new TypeScriptScope(flags);\n }\n enter(flags) {\n if (flags === 256) {\n this.importsStack.push(new Set());\n }\n super.enter(flags);\n }\n exit() {\n const flags = super.exit();\n if (flags === 256) {\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);\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}\nconst unwrapParenthesizedExpression = node => {\n return node.type === \"ParenthesizedExpression\" ? unwrapParenthesizedExpression(node.expression) : node;\n};\nclass LValParser extends NodeUtils {\n toAssignable(node, isLHS = false) {\n var _node$extra, _node$extra3;\n let parenthesized = undefined;\n if (node.type === \"ParenthesizedExpression\" || (_node$extra = node.extra) != null && _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 !== \"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 break;\n case \"ObjectExpression\":\n node.type = \"ObjectPattern\";\n for (let i = 0, length = node.properties.length, last = length - 1; i < length; i++) {\n var _node$extra2;\n const prop = node.properties[i];\n const isLast = i === last;\n this.toAssignableObjectExpressionProp(prop, isLast, isLHS);\n if (isLast && prop.type === \"RestElement\" && (_node$extra2 = node.extra) != null && _node$extra2.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.loc.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 node.type = \"ArrayPattern\";\n this.toAssignableList(node.elements, (_node$extra3 = node.extra) == null ? void 0 : _node$extra3.trailingCommaLoc, isLHS);\n break;\n case \"AssignmentExpression\":\n if (node.operator !== \"=\") {\n this.raise(Errors.MissingEqInAssignment, node.left.loc.end);\n }\n node.type = \"AssignmentPattern\";\n delete node.operator;\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 prop.type = \"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 if (elt.type === \"SpreadElement\") {\n elt.type = \"RestElement\";\n const arg = elt.argument;\n this.checkToRestConversion(arg, true);\n this.toAssignable(arg, isLHS);\n } else {\n this.toAssignable(elt, isLHS);\n }\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 isAssignable(node, isBinding) {\n switch (node.type) {\n case \"Identifier\":\n case \"ObjectPattern\":\n case \"ArrayPattern\":\n case \"AssignmentPattern\":\n case \"RestElement\":\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 toReferencedListDeep(exprList, isParenthesizedExpr) {\n this.toReferencedList(exprList, isParenthesizedExpr);\n for (const expr of exprList) {\n if ((expr == null ? void 0 : expr.type) === \"ArrayExpression\") {\n this.toReferencedListDeep(expr.elements);\n }\n }\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 node.argument = this.parseBindingAtom();\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(3, 93, 1);\n return this.finishNode(node, \"ArrayPattern\");\n }\n case 5:\n return this.parseObjectLike(8, true);\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(12);\n }\n if (allowEmpty && this.match(12)) {\n elts.push(null);\n } else if (this.eat(close)) {\n break;\n } else if (this.match(21)) {\n let rest = this.parseRestBinding();\n if (this.hasPlugin(\"flow\") || 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 (this.match(26) && this.hasPlugin(\"decorators\")) {\n this.raise(Errors.UnsupportedParameterDecorator, this.state.startLoc);\n }\n while (this.match(26)) {\n decorators.push(this.parseDecorator());\n }\n elts.push(this.parseAssignableListItem(flags, decorators));\n }\n }\n return elts;\n }\n parseBindingRestProperty(prop) {\n this.next();\n prop.argument = this.parseIdentifier();\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 === 21) {\n return this.parseBindingRestProperty(this.startNode());\n }\n const prop = this.startNode();\n if (type === 139) {\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 parseAssignableListItem(flags, decorators) {\n const left = this.parseMaybeDefault();\n if (this.hasPlugin(\"flow\") || flags & 2) {\n this.parseFunctionParamType(left);\n }\n const elt = this.parseMaybeDefault(left.loc.start, left);\n if (decorators.length) {\n left.decorators = decorators;\n }\n return elt;\n }\n parseFunctionParamType(param) {\n return param;\n }\n parseMaybeDefault(startLoc, left) {\n var _startLoc, _left;\n (_startLoc = startLoc) != null ? _startLoc : startLoc = this.state.startLoc;\n left = (_left = left) != null ? _left : this.parseBindingAtom();\n if (!this.eat(29)) return left;\n const node = this.startNodeAt(startLoc);\n node.left = left;\n node.right = this.parseMaybeAssignAllowIn();\n return this.finishNode(node, \"AssignmentPattern\");\n }\n isValidLVal(type, 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 }\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) {\n var _expression$extra;\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.loc.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 }\n const validity = this.isValidLVal(type, !(hasParenthesizedAncestor || (_expression$extra = expression.extra) != null && _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);\n }\n }\n } else if (val) {\n this.checkLVal(val, nextAncestor, binding, checkClashes, strictModeChanged, isParenthesizedExpression);\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.loc.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(12)) {\n return false;\n }\n this.raise(this.lookaheadCharCode() === close ? Errors.RestTrailingComma : Errors.ElementAfterRest, this.state.startLoc);\n return true;\n }\n}\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 TSErrors = ParseErrorEnum`typescript`({\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 DuplicateAccessibilityModifier: ({\n modifier\n }) => `Accessibility modifier already seen.`,\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 ImportAliasHasImportType: \"An import alias can not use 'import type'.\",\n ImportReflectionHasImportType: \"An `import module` declaration can not use `type` modifier\",\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 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 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 NonAbstractClassHasAbstractMethod: \"Abstract methods can only appear within an abstract class.\",\n NonClassMethodPropertyHasAbstractModifer: \"'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 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 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});\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}\nvar typescript = superClass => class TypeScriptParserMixin extends superClass {\n constructor(...args) {\n super(...args);\n this.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 this.tsParseConstModifier = this.tsParseModifiers.bind(this, {\n allowedModifiers: [\"const\"],\n disallowedModifiers: [\"in\", \"out\"],\n errorTemplate: TSErrors.InvalidModifierOnTypeParameterPositions\n });\n this.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 }\n getScopeHandler() {\n return TypeScriptScopeHandler;\n }\n tsIsIdentifier() {\n return tokenIsIdentifier(this.state.type);\n }\n tsTokenCanFollowModifier() {\n return this.match(0) || this.match(5) || this.match(55) || this.match(21) || this.match(139) || 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(106)) {\n this.next();\n return this.tsTokenCanFollowModifier();\n }\n return this.tsNextTokenOnSameLineAndCanFollowModifier();\n }\n tsParseModifier(allowedModifiers, stopOnStartOfClassStaticBlock) {\n if (!tokenIsIdentifier(this.state.type) && this.state.type !== 58 && this.state.type !== 75) {\n return undefined;\n }\n const modifier = this.state.value;\n if (allowedModifiers.includes(modifier)) {\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 != null ? disallowedModifiers : []), stopOnStartOfClassStaticBlock);\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 (hasOwnProperty.call(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 != null && 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(8);\n case \"HeritageClauseElement\":\n return this.match(5);\n case \"TupleElementTypes\":\n return this.match(3);\n case \"TypeParametersOrArguments\":\n return this.match(48);\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(12)) {\n trailingCommaPos = this.state.lastTokStartLoc.index;\n continue;\n }\n if (this.tsIsListTerminator(kind)) {\n break;\n }\n if (expectSuccess) {\n this.expect(12);\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(47);\n }\n }\n const result = this.tsParseDelimitedList(kind, parseElement, refTrailingCommaPos);\n if (bracket) {\n this.expect(3);\n } else {\n this.expect(48);\n }\n return result;\n }\n tsParseImportType() {\n const node = this.startNode();\n this.expect(83);\n this.expect(10);\n if (!this.match(134)) {\n this.raise(TSErrors.UnsupportedImportTypeArgument, this.state.startLoc);\n {\n node.argument = super.parseExprAtom();\n }\n } else {\n {\n node.argument = this.parseStringLiteral(this.state.value);\n }\n }\n if (this.eat(12) && !this.match(11)) {\n node.options = super.parseMaybeAssignAllowIn();\n this.eat(12);\n } else {\n node.options = null;\n }\n this.expect(11);\n if (this.eat(16)) {\n node.qualifier = this.tsParseEntityName(1 | 2);\n }\n if (this.match(47)) {\n {\n node.typeParameters = this.tsParseTypeArguments();\n }\n }\n return this.finishNode(node, \"TSImportType\");\n }\n tsParseEntityName(flags) {\n let entity;\n if (flags & 1 && this.match(78)) {\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(16)) {\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(47)) {\n {\n node.typeParameters = this.tsParseTypeArguments();\n }\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(87);\n if (this.match(83)) {\n node.exprName = this.tsParseImportType();\n } else {\n {\n node.exprName = this.tsParseEntityName(1 | 2);\n }\n }\n if (!this.hasPrecedingLineBreak() && this.match(47)) {\n {\n node.typeParameters = this.tsParseTypeArguments();\n }\n }\n return this.finishNode(node, \"TSTypeQuery\");\n }\n tsParseTypeParameter(parseModifiers) {\n const node = this.startNode();\n parseModifiers(node);\n node.name = this.tsParseTypeParameterName();\n node.constraint = this.tsEatThenParseType(81);\n node.default = this.tsEatThenParseType(29);\n return this.finishNode(node, \"TSTypeParameter\");\n }\n tsTryParseTypeParameters(parseModifiers) {\n if (this.match(47)) {\n return this.tsParseTypeParameters(parseModifiers);\n }\n }\n tsParseTypeParameters(parseModifiers) {\n const node = this.startNode();\n if (this.match(47) || this.match(143)) {\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 === 19;\n const paramsKey = \"parameters\";\n const returnTypeKey = \"typeAnnotation\";\n signature.typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier);\n this.expect(10);\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(11, 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(12) && !this.isLineTerminator()) {\n this.expect(13);\n }\n }\n tsParseSignatureMember(kind, node) {\n this.tsFillSignature(14, 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(14);\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(3);\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(17)) node.optional = true;\n const nodeAny = node;\n if (this.match(10) || this.match(47)) {\n if (readonly) {\n this.raise(TSErrors.ReadonlyForMethodSignature, node);\n }\n const method = nodeAny;\n if (method.kind && this.match(47)) {\n this.raise(TSErrors.AccessorCannotHaveTypeParameters, this.state.curPosition());\n }\n this.tsFillSignature(14, method);\n this.tsParseTypeMemberSemicolon();\n const paramsKey = \"parameters\";\n const returnTypeKey = \"typeAnnotation\";\n if (method.kind === \"get\") {\n if (method[paramsKey].length > 0) {\n this.raise(Errors.BadGetterArity, this.state.curPosition());\n if (this.isThisParam(method[paramsKey][0])) {\n this.raise(TSErrors.AccessorCannotDeclareThisParameter, this.state.curPosition());\n }\n }\n } else if (method.kind === \"set\") {\n if (method[paramsKey].length !== 1) {\n this.raise(Errors.BadSetterArity, this.state.curPosition());\n } else {\n const firstParameter = method[paramsKey][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[returnTypeKey]) {\n this.raise(TSErrors.SetAccessorCannotHaveReturnType, method[returnTypeKey]);\n }\n } else {\n method.kind = \"method\";\n }\n return this.finishNode(method, \"TSMethodSignature\");\n } else {\n const property = nodeAny;\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(10) || this.match(47)) {\n return this.tsParseSignatureMember(\"TSCallSignatureDeclaration\", node);\n }\n if (this.match(77)) {\n const id = this.startNode();\n this.next();\n if (this.match(10) || this.match(47)) {\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 }\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(5);\n const members = this.tsParseList(\"TypeMembers\", this.tsParseTypeMember.bind(this));\n this.expect(8);\n return members;\n }\n tsIsStartOfMappedType() {\n this.next();\n if (this.eat(53)) {\n return this.isContextual(122);\n }\n if (this.isContextual(122)) {\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(58);\n }\n tsParseMappedType() {\n const node = this.startNode();\n this.expect(5);\n if (this.match(53)) {\n node.readonly = this.state.value;\n this.next();\n this.expectContextual(122);\n } else if (this.eatContextual(122)) {\n node.readonly = true;\n }\n this.expect(0);\n {\n const typeParameter = this.startNode();\n typeParameter.name = this.tsParseTypeParameterName();\n typeParameter.constraint = this.tsExpectThenParseType(58);\n node.typeParameter = this.finishNode(typeParameter, \"TSTypeParameter\");\n }\n node.nameType = this.eatContextual(93) ? this.tsParseType() : null;\n this.expect(3);\n if (this.match(53)) {\n node.optional = this.state.value;\n this.next();\n this.expect(17);\n } else if (this.eat(17)) {\n node.optional = true;\n }\n node.typeAnnotation = this.tsTryParseType();\n this.semicolon();\n this.expect(8);\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 || (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(21);\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(14);\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(17);\n this.expect(14);\n type = this.tsParseType();\n } else {\n labeled = false;\n type = typeOrLabel;\n this.expect(17);\n }\n } else {\n type = this.tsParseType();\n optional = this.eat(17);\n labeled = this.eat(14);\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(17)) {\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(10);\n node.typeAnnotation = this.tsParseType();\n this.expect(11);\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(19, node));\n return this.finishNode(node, type);\n }\n tsParseLiteralTypeNode() {\n const node = this.startNode();\n switch (this.state.type) {\n case 135:\n case 136:\n case 134:\n case 85:\n case 86:\n node.literal = super.parseExprAtom();\n break;\n default:\n this.unexpected();\n }\n return this.finishNode(node, \"TSLiteralType\");\n }\n tsParseTemplateLiteralType() {\n {\n const node = this.startNode();\n node.literal = super.parseTemplate(false);\n return this.finishNode(node, \"TSLiteralType\");\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(116) && !this.hasPrecedingLineBreak()) {\n return this.tsParseThisTypePredicate(thisKeyword);\n } else {\n return thisKeyword;\n }\n }\n tsParseNonArrayType() {\n switch (this.state.type) {\n case 134:\n case 135:\n case 136:\n case 85:\n case 86:\n return this.tsParseLiteralTypeNode();\n case 53:\n if (this.state.value === \"-\") {\n const node = this.startNode();\n const nextToken = this.lookahead();\n if (nextToken.type !== 135 && nextToken.type !== 136) {\n this.unexpected();\n }\n node.literal = this.parseMaybeUnary();\n return this.finishNode(node, \"TSLiteralType\");\n }\n break;\n case 78:\n return this.tsParseThisTypeOrThisTypePredicate();\n case 87:\n return this.tsParseTypeQuery();\n case 83:\n return this.tsParseImportType();\n case 5:\n return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this)) ? this.tsParseMappedType() : this.tsParseTypeLiteral();\n case 0:\n return this.tsParseTupleType();\n case 10:\n return this.tsParseParenthesizedType();\n case 25:\n case 24:\n return this.tsParseTemplateLiteralType();\n default:\n {\n const {\n type\n } = this.state;\n if (tokenIsIdentifier(type) || type === 88 || type === 84) {\n const nodeType = type === 88 ? \"TSVoidKeyword\" : type === 84 ? \"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 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(3)) {\n const node = this.startNodeAt(startLoc);\n node.elementType = type;\n this.expect(3);\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(3);\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(115);\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(81)) {\n const constraint = this.tsInDisallowConditionalTypesContext(() => this.tsParseType());\n if (this.state.inDisallowConditionalTypesContext || !this.match(17)) {\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(115) ? 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), 45);\n }\n tsParseUnionTypeOrHigher() {\n return this.tsParseUnionOrIntersectionType(\"TSUnionType\", this.tsParseIntersectionTypeOrHigher.bind(this), 43);\n }\n tsIsStartOfFunctionType() {\n if (this.match(47)) {\n return true;\n }\n return this.match(10) && this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this));\n }\n tsSkipParameterStart() {\n if (tokenIsIdentifier(this.state.type) || this.match(78)) {\n this.next();\n return true;\n }\n if (this.match(5)) {\n const {\n errors\n } = this.state;\n const previousErrorCount = errors.length;\n try {\n this.parseObjectLike(8, true);\n return errors.length === previousErrorCount;\n } catch (_unused) {\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(3, 93, 1);\n return errors.length === previousErrorCount;\n } catch (_unused2) {\n return false;\n }\n }\n return false;\n }\n tsIsUnambiguouslyStartOfFunctionType() {\n this.next();\n if (this.match(11) || this.match(21)) {\n return true;\n }\n if (this.tsSkipParameterStart()) {\n if (this.match(14) || this.match(12) || this.match(17) || this.match(29)) {\n return true;\n }\n if (this.match(11)) {\n this.next();\n if (this.match(19)) {\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(78)) {\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(14)) {\n return this.tsParseTypeOrTypePredicateAnnotation(14);\n }\n }\n tsTryParseTypeAnnotation() {\n if (this.match(14)) {\n return this.tsParseTypeAnnotation();\n }\n }\n tsTryParseType() {\n return this.tsEatThenParseType(14);\n }\n tsParseTypePredicatePrefix() {\n const id = this.parseIdentifier();\n if (this.isContextual(116) && !this.hasPrecedingLineBreak()) {\n this.next();\n return id;\n }\n }\n tsParseTypePredicateAsserts() {\n if (this.state.type !== 109) {\n return false;\n }\n const containsEsc = this.state.containsEsc;\n this.next();\n if (!tokenIsIdentifier(this.state.type) && !this.match(78)) {\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(14);\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(81)) {\n return type;\n }\n const node = this.startNodeAtNode(type);\n node.checkType = type;\n node.extendsType = this.tsInDisallowConditionalTypesContext(() => this.tsParseNonConditionalType());\n this.expect(17);\n node.trueType = this.tsInAllowConditionalTypesContext(() => this.tsParseType());\n this.expect(14);\n node.falseType = this.tsInAllowConditionalTypesContext(() => this.tsParseType());\n return this.finishNode(node, \"TSConditionalType\");\n }\n isAbstractConstructorSignature() {\n return this.isContextual(124) && this.lookahead().type === 77;\n }\n tsParseNonConditionalType() {\n if (this.tsIsStartOfFunctionType()) {\n return this.tsParseFunctionOrConstructorType(\"TSFunctionType\");\n }\n if (this.match(77)) {\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(75) ? this.tsParseTypeReference() : this.tsParseType();\n });\n this.expect(48);\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 node = this.startNode();\n {\n node.expression = this.tsParseEntityName(1 | 2);\n if (this.match(47)) {\n node.typeParameters = this.tsParseTypeArguments();\n }\n return this.finishNode(node, \"TSExpressionWithTypeArguments\");\n }\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(129);\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(81)) {\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(29);\n if (this.isContextual(114) && this.lookahead().type !== 16) {\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(134) ? super.parseStringLiteral(this.state.value) : this.parseIdentifier(true);\n if (this.eat(29)) {\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(126);\n node.id = this.parseIdentifier();\n this.checkIdentifier(node.id, node.const ? 8971 : 8459);\n {\n this.expect(5);\n node.members = this.tsParseDelimitedList(\"EnumMembers\", this.tsParseEnumMember.bind(this));\n this.expect(8);\n }\n return this.finishNode(node, \"TSEnumDeclaration\");\n }\n tsParseEnumBody() {\n const node = this.startNode();\n this.expect(5);\n node.members = this.tsParseDelimitedList(\"EnumMembers\", this.tsParseEnumMember.bind(this));\n this.expect(8);\n return this.finishNode(node, \"TSEnumBody\");\n }\n tsParseModuleBlock() {\n const node = this.startNode();\n this.scope.enter(0);\n this.expect(5);\n super.parseBlockOrModuleBlockBody(node.body = [], undefined, true, 8);\n this.scope.exit();\n return this.finishNode(node, \"TSModuleBlock\");\n }\n tsParseModuleOrNamespaceDeclaration(node, nested = false) {\n node.id = this.parseIdentifier();\n if (!nested) {\n this.checkIdentifier(node.id, 1024);\n }\n if (this.eat(16)) {\n const inner = this.startNode();\n this.tsParseModuleOrNamespaceDeclaration(inner, true);\n node.body = inner;\n } else {\n this.scope.enter(256);\n this.prodParam.enter(0);\n node.body = this.tsParseModuleBlock();\n this.prodParam.exit();\n this.scope.exit();\n }\n return this.finishNode(node, \"TSModuleDeclaration\");\n }\n tsParseAmbientExternalModuleDeclaration(node) {\n if (this.isContextual(112)) {\n node.kind = \"global\";\n {\n node.global = true;\n }\n node.id = this.parseIdentifier();\n } else if (this.match(134)) {\n node.kind = \"module\";\n node.id = super.parseStringLiteral(this.state.value);\n } else {\n this.unexpected();\n }\n if (this.match(5)) {\n this.scope.enter(256);\n this.prodParam.enter(0);\n node.body = this.tsParseModuleBlock();\n this.prodParam.exit();\n this.scope.exit();\n } else {\n this.semicolon();\n }\n return this.finishNode(node, \"TSModuleDeclaration\");\n }\n tsParseImportEqualsDeclaration(node, maybeDefaultIdentifier, isExport) {\n {\n node.isExport = isExport || false;\n }\n node.id = maybeDefaultIdentifier || this.parseIdentifier();\n this.checkIdentifier(node.id, 4096);\n this.expect(29);\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(119) && 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(119);\n this.expect(10);\n if (!this.match(134)) {\n this.unexpected();\n }\n node.expression = super.parseExprAtom();\n this.expect(11);\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(nany) {\n if (this.isLineTerminator()) {\n return;\n }\n let startType = this.state.type;\n let kind;\n if (this.isContextual(100)) {\n startType = 74;\n kind = \"let\";\n }\n return this.tsInAmbientContext(() => {\n switch (startType) {\n case 68:\n nany.declare = true;\n return super.parseFunctionStatement(nany, false, false);\n case 80:\n nany.declare = true;\n return this.parseClass(nany, true, false);\n case 126:\n return this.tsParseEnumDeclaration(nany, {\n declare: true\n });\n case 112:\n return this.tsParseAmbientExternalModuleDeclaration(nany);\n case 75:\n case 74:\n if (!this.match(75) || !this.isLookaheadContextual(\"enum\")) {\n nany.declare = true;\n return this.parseVarStatement(nany, kind || this.state.value, true);\n }\n this.expect(75);\n return this.tsParseEnumDeclaration(nany, {\n const: true,\n declare: true\n });\n case 129:\n {\n const result = this.tsParseInterfaceDeclaration(nany, {\n declare: true\n });\n if (result) return result;\n }\n default:\n if (tokenIsIdentifier(startType)) {\n return this.tsParseDeclaration(nany, this.state.value, true, null);\n }\n }\n });\n }\n tsTryParseExportDeclaration() {\n return this.tsParseDeclaration(this.startNode(), this.state.value, true, null);\n }\n tsParseExpressionStatement(node, expr, decorators) {\n switch (expr.name) {\n case \"declare\":\n {\n const declaration = this.tsTryParseDeclare(node);\n if (declaration) {\n declaration.declare = true;\n }\n return declaration;\n }\n case \"global\":\n if (this.match(5)) {\n this.scope.enter(256);\n this.prodParam.enter(0);\n const mod = node;\n mod.kind = \"global\";\n {\n node.global = true;\n }\n mod.id = expr;\n mod.body = this.tsParseModuleBlock();\n this.scope.exit();\n this.prodParam.exit();\n return this.finishNode(mod, \"TSModuleDeclaration\");\n }\n break;\n default:\n return this.tsParseDeclaration(node, expr.name, false, decorators);\n }\n }\n tsParseDeclaration(node, value, next, decorators) {\n switch (value) {\n case \"abstract\":\n if (this.tsCheckLineTerminator(next) && (this.match(80) || tokenIsIdentifier(this.state.type))) {\n return this.tsParseAbstractDeclaration(node, decorators);\n }\n break;\n case \"module\":\n if (this.tsCheckLineTerminator(next)) {\n if (this.match(134)) {\n return this.tsParseAmbientExternalModuleDeclaration(node);\n } else if (tokenIsIdentifier(this.state.type)) {\n node.kind = \"module\";\n return this.tsParseModuleOrNamespaceDeclaration(node);\n }\n }\n break;\n case \"namespace\":\n if (this.tsCheckLineTerminator(next) && tokenIsIdentifier(this.state.type)) {\n node.kind = \"namespace\";\n return this.tsParseModuleOrNamespaceDeclaration(node);\n }\n break;\n case \"type\":\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(47)) return;\n const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n this.state.maybeInArrowParameters = true;\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(19);\n return node;\n });\n this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n if (!res) return;\n return super.parseArrowExpression(res, null, true);\n }\n tsParseTypeArgumentsInExpression() {\n if (this.reScan_lt() !== 47) return;\n return this.tsParseTypeArguments();\n }\n tsParseTypeArguments() {\n const node = this.startNode();\n node.params = this.tsInType(() => this.tsInTopLevelContext(() => {\n this.expect(47);\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(48);\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 parseAssignableListItem(flags, decorators) {\n const startLoc = 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);\n }\n const left = this.parseMaybeDefault();\n if (flags & 2) {\n this.parseFunctionParamType(left);\n }\n const elt = this.parseMaybeDefault(left.loc.start, left);\n if (accessibility || readonly || override) {\n const pp = this.startNodeAt(startLoc);\n if (decorators.length) {\n pp.decorators = decorators;\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, pp);\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(14)) {\n node.returnType = this.tsParseTypeOrTypePredicateAnnotation(14);\n }\n const bodilessType = type === \"FunctionDeclaration\" ? \"TSDeclareFunction\" : type === \"ClassMethod\" || type === \"ClassPrivateMethod\" ? \"TSDeclareMethod\" : undefined;\n if (bodilessType && !this.match(5) && this.isLineTerminator()) {\n return this.finishNode(node, bodilessType);\n }\n if (bodilessType === \"TSDeclareFunction\" && this.state.isAmbientContext) {\n this.raise(TSErrors.DeclareFunctionHasImplementation, node);\n if (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 == null ? void 0 : 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, canBePattern, isTuple, refExpressionErrors) {\n const node = super.parseArrayLike(close, canBePattern, isTuple, 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(35)) {\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(18) && 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(47) || this.match(51)) {\n let missingParenErrorLoc;\n const result = this.tsTryParseAndCatch(() => {\n if (!noCalls && this.atPossibleAsyncArrow(base)) {\n const asyncArrowFn = this.tsTryParseGenericAsyncArrowFunction(startLoc);\n if (asyncArrowFn) {\n return asyncArrowFn;\n }\n }\n const typeArguments = this.tsParseTypeArgumentsInExpression();\n if (!typeArguments) return;\n if (isOptionalCall && !this.match(10)) {\n missingParenErrorLoc = this.state.curPosition();\n return;\n }\n if (tokenIsTemplate(this.state.type)) {\n const result = super.parseTaggedTemplateExpression(base, startLoc, state);\n {\n result.typeParameters = typeArguments;\n }\n return result;\n }\n if (!noCalls && this.eat(10)) {\n const node = this.startNodeAt(startLoc);\n node.callee = base;\n node.arguments = this.parseCallExpressionArguments(11);\n this.tsCheckForInvalidTypeCasts(node.arguments);\n {\n node.typeParameters = typeArguments;\n }\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 === 48 || tokenType === 52 || tokenType !== 10 && tokenCanStartExpression(tokenType) && !this.hasPrecedingLineBreak()) {\n return;\n }\n const node = this.startNodeAt(startLoc);\n node.expression = base;\n {\n node.typeParameters = typeArguments;\n }\n return this.finishNode(node, \"TSInstantiationExpression\");\n });\n if (missingParenErrorLoc) {\n this.unexpected(missingParenErrorLoc, 10);\n }\n if (result) {\n if (result.type === \"TSInstantiationExpression\" && (this.match(16) || this.match(18) && this.lookaheadCharCode() !== 40)) {\n this.raise(TSErrors.InvalidPropertyAccessAfterInstantiationExpression, this.state.startLoc);\n }\n return result;\n }\n }\n return super.parseSubscript(base, startLoc, noCalls, state);\n }\n parseNewCallee(node) {\n var _callee$extra;\n super.parseNewCallee(node);\n const {\n callee\n } = node;\n if (callee.type === \"TSInstantiationExpression\" && !((_callee$extra = callee.extra) != null && _callee$extra.parenthesized)) {\n {\n node.typeParameters = callee.typeParameters;\n }\n node.callee = callee.expression;\n }\n }\n parseExprOp(left, leftStartLoc, minPrec) {\n let isSatisfies;\n if (tokenOperatorPrecedence(58) > minPrec && !this.hasPrecedingLineBreak() && (this.isContextual(93) || (isSatisfies = this.isContextual(120)))) {\n const node = this.startNodeAt(leftStartLoc);\n node.expression = left;\n node.typeAnnotation = this.tsInType(() => {\n this.next();\n if (this.match(75)) {\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 this.finishNode(node, isSatisfies ? \"TSSatisfiesExpression\" : \"TSAsExpression\");\n this.reScan_lt_gt();\n return this.parseExprOp(node, 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 checkImportReflection(node) {\n super.checkImportReflection(node);\n if (node.module && node.importKind !== \"value\") {\n this.raise(TSErrors.ImportReflectionHasImportType, node.specifiers[0].loc.start);\n }\n }\n checkDuplicateExports() {}\n isPotentialImportPhase(isExport) {\n if (super.isPotentialImportPhase(isExport)) return true;\n if (this.isContextual(130)) {\n const ch = this.lookaheadCharCode();\n return isExport ? ch === 123 || ch === 42 : ch !== 61;\n }\n return !isExport && this.isContextual(87);\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(134)) {\n node.importKind = \"value\";\n return super.parseImport(node);\n }\n let importNode;\n if (tokenIsIdentifier(this.state.type) && this.lookaheadCharCode() === 61) {\n node.importKind = \"value\";\n return this.tsParseImportEqualsDeclaration(node);\n } else if (this.isContextual(130)) {\n const maybeDefaultIdentifier = this.parseMaybeImportPhase(node, false);\n if (this.lookaheadCharCode() === 61) {\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 }\n return importNode;\n }\n parseExport(node, decorators) {\n if (this.match(83)) {\n const nodeImportEquals = node;\n this.next();\n let maybeDefaultIdentifier = null;\n if (this.isContextual(130) && this.isPotentialImportPhase(false)) {\n maybeDefaultIdentifier = this.parseMaybeImportPhase(nodeImportEquals, false);\n } else {\n nodeImportEquals.importKind = \"value\";\n }\n const declaration = this.tsParseImportEqualsDeclaration(nodeImportEquals, maybeDefaultIdentifier, true);\n {\n return declaration;\n }\n } else if (this.eat(29)) {\n const assign = node;\n assign.expression = super.parseExpression();\n this.semicolon();\n this.sawUnambiguousESM = true;\n return this.finishNode(assign, \"TSExportAssignment\");\n } else if (this.eatContextual(93)) {\n const decl = node;\n this.expectContextual(128);\n decl.id = this.parseIdentifier();\n this.semicolon();\n return this.finishNode(decl, \"TSNamespaceExportDeclaration\");\n } else {\n return super.parseExport(node, decorators);\n }\n }\n isAbstractClass() {\n return this.isContextual(124) && this.lookahead().type === 80;\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(129)) {\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 for (const {\n id,\n init\n } of declaration.declarations) {\n if (!init) continue;\n if (kind !== \"const\" || !!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 if (this.match(75) && this.isLookaheadContextual(\"enum\")) {\n const node = this.startNode();\n this.expect(75);\n return this.tsParseEnumDeclaration(node, {\n const: true\n });\n }\n if (this.isContextual(126)) {\n return this.tsParseEnumDeclaration(this.startNode());\n }\n if (this.isContextual(129)) {\n const result = this.tsParseInterfaceDeclaration(this.startNode());\n if (result) return result;\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(106) && 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 }\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(17);\n if (optional) methodOrProp.optional = true;\n if (methodOrProp.readonly && this.match(10)) {\n this.raise(TSErrors.ClassMethodHasReadonly, methodOrProp);\n }\n if (methodOrProp.declare && this.match(10)) {\n this.raise(TSErrors.ClassMethodHasDeclare, methodOrProp);\n }\n }\n parseExpressionStatement(node, expr, decorators) {\n const decl = expr.type === \"Identifier\" ? this.tsParseExpressionStatement(node, expr, decorators) : undefined;\n return decl || super.parseExpressionStatement(node, expr, decorators);\n }\n shouldParseExportDeclaration() {\n if (this.tsIsDeclarationStart()) return true;\n return super.shouldParseExportDeclaration();\n }\n parseConditional(expr, startLoc, refExpressionErrors) {\n if (!this.state.maybeInArrowParameters || !this.match(17)) {\n return super.parseConditional(expr, startLoc, refExpressionErrors);\n }\n const result = this.tryParse(() => super.parseConditional(expr, startLoc));\n if (!result.node) {\n if (result.error) {\n super.setOptionalParametersError(refExpressionErrors, result.error);\n }\n return expr;\n }\n if (result.error) this.state = result.failState;\n return result.node;\n }\n parseParenItem(node, startLoc) {\n const newNode = super.parseParenItem(node, startLoc);\n if (this.eat(17)) {\n newNode.optional = true;\n this.resetEndLocation(node);\n }\n if (this.match(14)) {\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(125)) {\n return this.tsInAmbientContext(() => this.parseExportDeclaration(node));\n }\n const startLoc = this.state.startLoc;\n const isDeclare = this.eatContextual(125);\n if (isDeclare && (this.isContextual(125) || !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(113)) {\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(35)) {\n node.definite = true;\n } else if (this.eat(17)) {\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(29)) {\n this.raise(TSErrors.DeclareClassFieldHasInitializer, this.state.startLoc);\n }\n if (node.abstract && this.match(29)) {\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\" && !hasOwnProperty.call(node.value, \"body\")) {\n return;\n }\n super.declareClassPrivateMethodInScope(node, kind);\n }\n parseClassSuper(node) {\n super.parseClassSuper(node);\n if (node.superClass && (this.match(47) || this.match(51))) {\n {\n node.superTypeParameters = this.tsParseTypeArgumentsInExpression();\n }\n }\n if (this.eatContextual(113)) {\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(35)) {\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(14)) {\n node.returnType = this.tsParseTypeAnnotation();\n }\n return super.parseAsyncArrowFromCallExpression(node, call);\n }\n parseMaybeAssign(refExpressionErrors, afterLeftParse) {\n var _jsx, _jsx2, _typeCast, _jsx3, _typeCast2;\n let state;\n let jsx;\n let typeCast;\n if (this.hasPlugin(\"jsx\") && (this.match(143) || this.match(47))) {\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 = jsx) != null && _jsx.error) && !this.match(47)) {\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 var _expr$extra, _typeParameters;\n typeParameters = this.tsParseTypeParameters(this.tsParseConstModifier);\n const expr = super.parseMaybeAssign(refExpressionErrors, afterLeftParse);\n if (expr.type !== \"ArrowFunctionExpression\" || (_expr$extra = expr.extra) != null && _expr$extra.parenthesized) {\n abort();\n }\n if (((_typeParameters = typeParameters) == null ? void 0 : _typeParameters.params.length) !== 0) {\n this.resetStartLocationFromNode(expr, typeParameters);\n }\n expr.typeParameters = typeParameters;\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 ((_jsx2 = jsx) != null && _jsx2.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 = typeCast) != null && _typeCast.node) {\n this.state = typeCast.failState;\n return typeCast.node;\n }\n throw ((_jsx3 = jsx) == null ? void 0 : _jsx3.error) || arrow.error || ((_typeCast2 = typeCast) == null ? void 0 : _typeCast2.error);\n }\n reportReservedArrowTypeParam(node) {\n var _node$extra;\n if (node.params.length === 1 && !node.params[0].constraint && !((_node$extra = node.extra) != null && _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(47)) {\n return this.tsParseTypeAssertion();\n }\n return super.parseMaybeUnary(refExpressionErrors, sawUnary);\n }\n parseArrow(node) {\n if (this.match(14)) {\n const result = this.tryParse(abort => {\n const returnType = this.tsParseTypeOrTypePredicateAnnotation(14);\n if (this.canInsertSemicolon() || !this.match(19)) 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(17)) {\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, isUnparenthesizedInAssign, binding) {\n switch (type) {\n case \"TSTypeCastExpression\":\n return true;\n case \"TSParameterProperty\":\n return \"parameter\";\n case \"TSNonNullExpression\":\n case \"TSInstantiationExpression\":\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, isUnparenthesizedInAssign, binding);\n }\n }\n parseBindingAtom() {\n if (this.state.type === 78) {\n return this.parseIdentifier(true);\n }\n return super.parseBindingAtom();\n }\n parseMaybeDecoratorArguments(expr, startLoc) {\n if (this.match(47) || this.match(51)) {\n const typeArguments = this.tsParseTypeArgumentsInExpression();\n if (this.match(10)) {\n const call = super.parseMaybeDecoratorArguments(expr, startLoc);\n {\n call.typeParameters = typeArguments;\n }\n return call;\n }\n this.unexpected(null, 10);\n }\n return super.parseMaybeDecoratorArguments(expr, startLoc);\n }\n checkCommaAfterRest(close) {\n if (this.state.isAmbientContext && this.match(12) && this.lookaheadCharCode() === close) {\n this.next();\n return false;\n }\n return super.checkCommaAfterRest(close);\n }\n isClassMethod() {\n return this.match(47) || super.isClassMethod();\n }\n isClassProperty() {\n return this.match(35) || this.match(14) || 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(48, 1);\n return;\n }\n if (code === 60) {\n this.finishOp(47, 1);\n return;\n }\n }\n super.getTokenFromCode(code);\n }\n reScan_lt_gt() {\n const {\n type\n } = this.state;\n if (type === 47) {\n this.state.pos -= 1;\n this.readToken_lt();\n } else if (type === 48) {\n this.state.pos -= 1;\n this.readToken_gt();\n }\n }\n reScan_lt() {\n const {\n type\n } = this.state;\n if (type === 51) {\n this.state.pos -= 2;\n this.finishOp(47, 1);\n return 47;\n }\n return type;\n }\n toAssignableList(exprList, trailingCommaLoc, isLHS) {\n for (let i = 0; i < exprList.length; i++) {\n const expr = exprList[i];\n if ((expr == null ? void 0 : expr.type) === \"TSTypeCastExpression\") {\n exprList[i] = this.typeCastToParameter(expr);\n }\n }\n super.toAssignableList(exprList, trailingCommaLoc, isLHS);\n }\n typeCastToParameter(node) {\n node.expression.typeAnnotation = node.typeAnnotation;\n this.resetEndLocation(node.expression, node.typeAnnotation.loc.end);\n return node.expression;\n }\n shouldParseArrow(params) {\n if (this.match(14)) {\n return params.every(expr => this.isAssignable(expr, true));\n }\n return super.shouldParseArrow(params);\n }\n shouldParseAsyncArrow() {\n return this.match(14) || super.shouldParseAsyncArrow();\n }\n canHaveLeadingDecorator() {\n return super.canHaveLeadingDecorator() || this.isAbstractClass();\n }\n jsxParseOpeningElementAfterName(node) {\n if (this.match(47) || this.match(51)) {\n const typeArguments = this.tsTryParseAndCatch(() => this.tsParseTypeArgumentsInExpression());\n if (typeArguments) {\n {\n node.typeParameters = typeArguments;\n }\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(80)) {\n node.abstract = true;\n return this.maybeTakeDecorators(decorators, this.parseClass(node, true, false));\n } else if (this.isContextual(129)) {\n if (!this.hasFollowingLineBreak()) {\n node.abstract = true;\n this.raise(TSErrors.NonClassMethodPropertyHasAbstractModifer, node);\n return this.tsParseInterfaceDeclaration(node);\n }\n } else {\n this.unexpected(null, 80);\n }\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) {\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 const typeName = this.parseIdentifier();\n return typeName.name;\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.loc.start;\n if (this.isContextual(93)) {\n const firstAs = this.parseIdentifier();\n if (this.isContextual(93)) {\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(93)) {\n this.checkReservedWord(leftOfAs.name, leftOfAs.loc.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(93)) {\n node[rightOfAsKey] = isImport ? this.parseIdentifier() : this.parseModuleExportName();\n }\n if (!node[rightOfAsKey]) {\n node[rightOfAsKey] = cloneIdentifier(node[leftOfAsKey]);\n }\n if (isImport) {\n this.checkIdentifier(node[rightOfAsKey], hasTypeSpecifier ? 4098 : 4096);\n }\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 var _expression$extra;\n const {\n type\n } = expression;\n if ((_expression$extra = expression.extra) != null && _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 PlaceholderErrors = ParseErrorEnum`placeholders`({\n ClassNameIsRequired: \"A class name is required.\",\n UnexpectedSpace: \"Unexpected space in placeholder.\"\n});\nvar placeholders = superClass => class PlaceholdersParserMixin extends superClass {\n parsePlaceholder(expectedNode) {\n if (this.match(133)) {\n const node = this.startNode();\n this.next();\n this.assertNoSpace();\n node.name = super.parseIdentifier(true);\n this.assertNoSpace();\n this.expect(133);\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(133, 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 parseBindingAtom() {\n return this.parsePlaceholder(\"Pattern\") || super.parseBindingAtom();\n }\n isValidLVal(type, isParenthesized, binding) {\n return type === \"Placeholder\" || super.isValidLVal(type, 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 nextToken = this.lookahead();\n if (nextToken.type === 133) {\n return true;\n }\n return false;\n }\n verifyBreakContinue(node, isBreak) {\n if (node.label && node.label.type === \"Placeholder\") return;\n super.verifyBreakContinue(node, isBreak);\n }\n parseExpressionStatement(node, expr) {\n var _expr$extra;\n if (expr.type !== \"Placeholder\" || (_expr$extra = expr.extra) != null && _expr$extra.parenthesized) {\n return super.parseExpressionStatement(node, expr);\n }\n if (this.match(14)) {\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(81) || this.match(133) || this.match(5)) {\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(98) && !this.match(12)) {\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(65)) {\n const next = this.nextTokenStart();\n if (this.isUnparsedContextual(next, \"from\")) {\n if (this.input.startsWith(tokenLabelName(133), this.nextTokenStartSince(next + 4))) {\n return true;\n }\n }\n }\n return super.isExportDefaultSpecifier();\n }\n maybeParseExportDefaultSpecifier(node, maybeDefaultIdentifier) {\n var _specifiers;\n if ((_specifiers = node.specifiers) != null && _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 != null && 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(98) && !this.match(12)) {\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(12)) {\n const hasStarImport = this.maybeParseStarImportSpecifier(node);\n if (!hasStarImport) this.parseNamedImportSpecifiers(node);\n }\n this.expectContextual(98);\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};\nvar v8intrinsic = superClass => class V8IntrinsicMixin extends superClass {\n parseV8Intrinsic() {\n if (this.match(54)) {\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 identifier.type = \"V8IntrinsicIdentifier\";\n if (this.match(10)) {\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 = [\"minimal\", \"fsharp\", \"hack\", \"smart\"];\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 const decoratorsBeforeExport = pluginsMap.get(\"decorators\").decoratorsBeforeExport;\n if (decoratorsBeforeExport != null && typeof decoratorsBeforeExport !== \"boolean\") {\n throw new Error(\"'decoratorsBeforeExport' must be a boolean, if specified.\");\n }\n const allowCallParenthesized = pluginsMap.get(\"decorators\").allowCallParenthesized;\n if (allowCallParenthesized != null && typeof allowCallParenthesized !== \"boolean\") {\n throw new Error(\"'allowCallParenthesized' must be a boolean.\");\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 var _pluginsMap$get;\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 const tupleSyntaxIsHash = ((_pluginsMap$get = pluginsMap.get(\"recordAndTuple\")) == null ? void 0 : _pluginsMap$get.syntaxType) === \"hash\";\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 if (topicToken === \"#\" && tupleSyntaxIsHash) {\n throw new Error(`Plugin conflict between \\`[\"pipelineOperator\", { proposal: \"hack\", topicToken: \"#\" }]\\` and \\`${JSON.stringify([\"recordAndTuple\", pluginsMap.get(\"recordAndTuple\")])}\\`.`);\n }\n } else if (proposal === \"smart\" && tupleSyntaxIsHash) {\n throw new Error(`Plugin conflict between \\`[\"pipelineOperator\", { proposal: \"smart\" }]\\` and \\`${JSON.stringify([\"recordAndTuple\", pluginsMap.get(\"recordAndTuple\")])}\\`.`);\n }\n }\n if (pluginsMap.has(\"moduleAttributes\")) {\n {\n if (pluginsMap.has(\"deprecatedImportAssert\") || pluginsMap.has(\"importAssertions\")) {\n throw new Error(\"Cannot combine importAssertions, deprecatedImportAssert and moduleAttributes plugins.\");\n }\n const moduleAttributesVersionPluginOption = pluginsMap.get(\"moduleAttributes\").version;\n if (moduleAttributesVersionPluginOption !== \"may-2020\") {\n throw new Error(\"The 'moduleAttributes' plugin requires a 'version' option,\" + \" representing the last proposal update. Currently, the\" + \" only supported value is 'may-2020'.\");\n }\n }\n }\n if (pluginsMap.has(\"importAssertions\")) {\n if (pluginsMap.has(\"deprecatedImportAssert\")) {\n throw new Error(\"Cannot combine importAssertions and deprecatedImportAssert plugins.\");\n }\n }\n if (!pluginsMap.has(\"deprecatedImportAssert\") && pluginsMap.has(\"importAttributes\") && pluginsMap.get(\"importAttributes\").deprecatedAssertSyntax) {\n {\n pluginsMap.set(\"deprecatedImportAssert\", {});\n }\n }\n if (pluginsMap.has(\"recordAndTuple\")) {\n const syntaxType = pluginsMap.get(\"recordAndTuple\").syntaxType;\n if (syntaxType != null) {\n {\n const RECORD_AND_TUPLE_SYNTAX_TYPES = [\"hash\", \"bar\"];\n if (!RECORD_AND_TUPLE_SYNTAX_TYPES.includes(syntaxType)) {\n throw new Error(\"The 'syntaxType' option of the 'recordAndTuple' plugin must be one of: \" + RECORD_AND_TUPLE_SYNTAX_TYPES.map(p => `'${p}'`).join(\", \"));\n }\n }\n }\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}\nconst mixinPlugins = {\n estree,\n jsx,\n flow,\n typescript,\n v8intrinsic,\n placeholders\n};\nconst mixinPluginNames = Object.keys(mixinPlugins);\nclass ExpressionParser extends LValParser {\n checkProto(prop, isRecord, protoRef, refExpressionErrors) {\n if (prop.type === \"SpreadElement\" || this.isObjectMethod(prop) || prop.computed || prop.shorthand) {\n return;\n }\n const key = prop.key;\n const name = key.type === \"Identifier\" ? key.name : key.value;\n if (name === \"__proto__\") {\n if (isRecord) {\n this.raise(Errors.RecordNoProto, key);\n return;\n }\n if (protoRef.used) {\n if (refExpressionErrors) {\n if (refExpressionErrors.doubleProtoLoc === null) {\n refExpressionErrors.doubleProtoLoc = key.loc.start;\n }\n } else {\n this.raise(Errors.DuplicateProto, key);\n }\n }\n protoRef.used = true;\n }\n }\n shouldExitDescending(expr, potentialArrowAt) {\n return expr.type === \"ArrowFunctionExpression\" && this.offsetToSourcePos(expr.start) === potentialArrowAt;\n }\n getExpression() {\n this.enterInitialScopes();\n this.nextToken();\n const expr = this.parseExpression();\n if (!this.match(140)) {\n this.unexpected();\n }\n this.finalizeRemainingComments();\n expr.comments = this.comments;\n expr.errors = this.state.errors;\n if (this.optionFlags & 128) {\n expr.tokens = 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(12)) {\n const node = this.startNodeAt(startLoc);\n node.expressions = [expr];\n while (this.eat(12)) {\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, resultError) {\n var _resultError$loc;\n refExpressionErrors.optionalParametersLoc = (_resultError$loc = resultError == null ? void 0 : resultError.loc) != null ? _resultError$loc : this.state.startLoc;\n }\n parseMaybeAssign(refExpressionErrors, afterLeftParse) {\n const startLoc = this.state.startLoc;\n if (this.isContextual(108)) {\n if (this.prodParam.hasYield) {\n let left = this.parseYield();\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 const {\n type\n } = this.state;\n if (type === 10 || tokenIsIdentifier(type)) {\n this.state.potentialArrowAt = this.state.start;\n }\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(29)) {\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 } else {\n node.left = left;\n }\n this.next();\n node.right = this.parseMaybeAssign();\n this.checkLVal(left, this.finishNode(node, \"AssignmentExpression\"));\n return node;\n } else if (ownExpressionErrors) {\n this.checkExpressionErrors(refExpressionErrors, true);\n }\n return left;\n }\n parseMaybeConditional(refExpressionErrors) {\n const startLoc = this.state.startLoc;\n const potentialArrowAt = this.state.potentialArrowAt;\n const expr = this.parseExprOps(refExpressionErrors);\n if (this.shouldExitDescending(expr, potentialArrowAt)) {\n return expr;\n }\n return this.parseConditional(expr, startLoc, refExpressionErrors);\n }\n parseConditional(expr, startLoc, refExpressionErrors) {\n if (this.eat(17)) {\n const node = this.startNodeAt(startLoc);\n node.test = expr;\n node.consequent = this.parseMaybeAssignAllowIn();\n this.expect(14);\n node.alternate = this.parseMaybeAssign();\n return this.finishNode(node, \"ConditionalExpression\");\n }\n return expr;\n }\n parseMaybeUnaryOrPrivate(refExpressionErrors) {\n return this.match(139) ? this.parsePrivateName() : this.parseMaybeUnary(refExpressionErrors);\n }\n parseExprOps(refExpressionErrors) {\n const startLoc = this.state.startLoc;\n const potentialArrowAt = this.state.potentialArrowAt;\n const expr = this.parseMaybeUnaryOrPrivate(refExpressionErrors);\n if (this.shouldExitDescending(expr, potentialArrowAt)) {\n return expr;\n }\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(58) || !this.prodParam.hasIn || !this.match(58)) {\n this.raise(Errors.PrivateInExpectedIn, left, {\n identifierName: value\n });\n }\n this.classScope.usePrivateName(value, left.loc.start);\n }\n const op = this.state.type;\n if (tokenIsOperator(op) && (this.prodParam.hasIn || !this.match(58))) {\n let prec = tokenOperatorPrecedence(op);\n if (prec > minPrec) {\n if (op === 39) {\n this.expectPlugin(\"pipelineOperator\");\n if (this.state.inFSharpPipelineDirectBody) {\n return left;\n }\n this.checkPipelineAtInfixOperator(left, leftStartLoc);\n }\n const node = this.startNodeAt(leftStartLoc);\n node.left = left;\n node.operator = this.state.value;\n const logical = op === 41 || op === 42;\n const coalesce = op === 40;\n if (coalesce) {\n prec = tokenOperatorPrecedence(42);\n }\n this.next();\n if (op === 39 && this.hasPlugin([\"pipelineOperator\", {\n proposal: \"minimal\"\n }])) {\n if (this.state.type === 96 && this.prodParam.hasAwait) {\n throw this.raise(Errors.UnexpectedAwaitAfterPipelineBody, this.state.startLoc);\n }\n }\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 === 41 || nextOp === 42) || logical && nextOp === 40) {\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 const startLoc = this.state.startLoc;\n switch (op) {\n case 39:\n switch (this.getPluginOption(\"pipelineOperator\", \"proposal\")) {\n case \"hack\":\n return this.withTopicBindingContext(() => {\n return this.parseHackPipeBody();\n });\n case \"fsharp\":\n return this.withSoloAwaitPermittingContext(() => {\n return this.parseFSharpPipelineBody(prec);\n });\n }\n if (this.getPluginOption(\"pipelineOperator\", \"proposal\") === \"smart\") {\n return this.withTopicBindingContext(() => {\n if (this.prodParam.hasYield && this.isContextual(108)) {\n throw this.raise(Errors.PipeBodyIsTighter, this.state.startLoc);\n }\n return this.parseSmartPipelineBodyInStyle(this.parseExprOpBaseRightExpr(op, prec), startLoc);\n });\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 var _body$extra;\n const {\n startLoc\n } = this.state;\n const body = this.parseMaybeAssign();\n const requiredParentheses = UnparenthesizedPipeBodyDescriptions.has(body.type);\n if (requiredParentheses && !((_body$extra = body.extra) != null && _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(57)) {\n this.raise(Errors.UnexpectedTokenUnaryExponentiation, node.argument);\n }\n }\n parseMaybeUnary(refExpressionErrors, sawUnary) {\n const startLoc = this.state.startLoc;\n const isAwait = this.isContextual(96);\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(34);\n const node = this.startNode();\n if (tokenIsPrefix(this.state.type)) {\n node.operator = this.state.value;\n node.prefix = true;\n if (this.match(72)) {\n this.expectPlugin(\"throwExpressions\");\n }\n const isDelete = this.match(89);\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(54);\n if (startsExpr && !this.isAmbiguousAwait()) {\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 updateExpressionNode = node;\n this.checkLVal(updateExpressionNode.argument, this.finishNode(updateExpressionNode, \"UpdateExpression\"));\n return node;\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 const potentialArrowAt = this.state.potentialArrowAt;\n const expr = this.parseExprAtom(refExpressionErrors);\n if (this.shouldExitDescending(expr, potentialArrowAt)) {\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 === 15) {\n return this.parseBind(base, startLoc, noCalls, state);\n } else if (tokenIsTemplate(type)) {\n return this.parseTaggedTemplateExpression(base, startLoc, state);\n }\n let optional = false;\n if (type === 18) {\n if (noCalls) {\n this.raise(Errors.OptionalChainingNoNew, this.state.startLoc);\n if (this.lookaheadCharCode() === 40) {\n state.stop = true;\n return base;\n }\n }\n state.optionalChainMember = optional = true;\n this.next();\n }\n if (!noCalls && this.match(10)) {\n return this.parseCoverCallAndAsyncArrowHead(base, startLoc, state, optional);\n } else {\n const computed = this.eat(0);\n if (computed || optional || this.eat(16)) {\n return this.parseMember(base, startLoc, state, computed, optional);\n } else {\n state.stop = true;\n return base;\n }\n }\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(3);\n } else if (this.match(139)) {\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, noCalls, state) {\n const node = this.startNodeAt(startLoc);\n node.object = base;\n this.next();\n node.callee = this.parseNoCallExpr();\n state.stop = true;\n return this.parseSubscripts(this.finishNode(node, \"BindExpression\"), startLoc, noCalls);\n }\n parseCoverCallAndAsyncArrowHead(base, startLoc, state, optional) {\n const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n let refExpressionErrors = null;\n this.state.maybeInArrowParameters = true;\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(11);\n } else {\n node.arguments = this.parseCallExpressionArguments(11, 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.toReferencedArguments(finishedNode);\n }\n this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n return finishedNode;\n }\n toReferencedArguments(node, isParenthesizedExpr) {\n this.toReferencedListDeep(node.arguments, isParenthesizedExpr);\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.offsetToSourcePos(base.start) === this.state.potentialArrowAt;\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(close, allowPlaceholder, nodeForExtra, refExpressionErrors) {\n const elts = [];\n let first = true;\n const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n this.state.inFSharpPipelineDirectBody = false;\n while (!this.eat(close)) {\n if (first) {\n first = false;\n } else {\n this.expect(12);\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(false, refExpressionErrors, allowPlaceholder));\n }\n this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n return elts;\n }\n shouldParseAsyncArrow() {\n return this.match(19) && !this.canInsertSemicolon();\n }\n parseAsyncArrowFromCallExpression(node, call) {\n var _call$extra;\n this.resetPreviousNodeTrailingComments(call);\n this.expect(19);\n this.parseArrowExpression(node, call.arguments, true, (_call$extra = call.extra) == null ? void 0 : _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 79:\n return this.parseSuper();\n case 83:\n node = this.startNode();\n this.next();\n if (this.match(16)) {\n return this.parseImportMetaProperty(node);\n }\n if (this.match(10)) {\n if (this.optionFlags & 256) {\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 78:\n node = this.startNode();\n this.next();\n return this.finishNode(node, \"ThisExpression\");\n case 90:\n {\n return this.parseDo(this.startNode(), false);\n }\n case 56:\n case 31:\n {\n this.readRegexp();\n return this.parseRegExpLiteral(this.state.value);\n }\n case 135:\n return this.parseNumericLiteral(this.state.value);\n case 136:\n return this.parseBigIntLiteral(this.state.value);\n case 134:\n return this.parseStringLiteral(this.state.value);\n case 84:\n return this.parseNullLiteral();\n case 85:\n return this.parseBooleanLiteral(true);\n case 86:\n return this.parseBooleanLiteral(false);\n case 10:\n {\n const canBeArrow = this.state.potentialArrowAt === this.state.start;\n return this.parseParenAndDistinguishExpression(canBeArrow);\n }\n case 2:\n case 1:\n {\n return this.parseArrayLike(this.state.type === 2 ? 4 : 3, false, true);\n }\n case 0:\n {\n return this.parseArrayLike(3, true, false, refExpressionErrors);\n }\n case 6:\n case 7:\n {\n return this.parseObjectLike(this.state.type === 6 ? 9 : 8, false, true);\n }\n case 5:\n {\n return this.parseObjectLike(8, false, false, refExpressionErrors);\n }\n case 68:\n return this.parseFunctionOrFunctionSent();\n case 26:\n decorators = this.parseDecorators();\n case 80:\n return this.parseClass(this.maybeTakeDecorators(decorators, this.startNode()), false);\n case 77:\n return this.parseNewOrNewTarget();\n case 25:\n case 24:\n return this.parseTemplate(false);\n case 15:\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 139:\n {\n this.raise(Errors.PrivateInExpectedIn, this.state.startLoc, {\n identifierName: this.state.value\n });\n return this.parsePrivateName();\n }\n case 33:\n {\n return this.parseTopicReferenceThenEqualsSign(54, \"%\");\n }\n case 32:\n {\n return this.parseTopicReferenceThenEqualsSign(44, \"^\");\n }\n case 37:\n case 38:\n {\n return this.parseTopicReference(\"hack\");\n }\n case 44:\n case 54:\n case 27:\n {\n const pipeProposal = this.getPluginOption(\"pipelineOperator\", \"proposal\");\n if (pipeProposal) {\n return this.parseTopicReference(pipeProposal);\n }\n this.unexpected();\n break;\n }\n case 47:\n {\n const lookaheadCh = this.input.codePointAt(this.nextTokenStart());\n if (isIdentifierStart(lookaheadCh) || lookaheadCh === 62) {\n this.expectOnePlugin([\"jsx\", \"flow\", \"typescript\"]);\n } else {\n this.unexpected();\n }\n break;\n }\n default:\n if (type === 137) {\n return this.parseDecimalLiteral(this.state.value);\n }\n if (tokenIsIdentifier(type)) {\n if (this.isContextual(127) && this.lookaheadInLineCharCode() === 123) {\n return this.parseModuleExpression();\n }\n const canBeArrow = this.state.potentialArrowAt === this.state.start;\n const containsEsc = this.state.containsEsc;\n const id = this.parseIdentifier();\n if (!containsEsc && id.name === \"async\" && !this.canInsertSemicolon()) {\n const {\n type\n } = this.state;\n if (type === 68) {\n this.resetPreviousNodeTrailingComments(id);\n this.next();\n return this.parseAsyncFunctionExpression(this.startNodeAtNode(id));\n } else if (tokenIsIdentifier(type)) {\n if (this.lookaheadCharCode() === 61) {\n return this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(id));\n } else {\n return id;\n }\n } else if (type === 90) {\n this.resetPreviousNodeTrailingComments(id);\n return this.parseDo(this.startNodeAtNode(id), true);\n }\n }\n if (canBeArrow && this.match(19) && !this.canInsertSemicolon()) {\n this.next();\n return this.parseArrowExpression(this.startNodeAtNode(id), [id], false);\n }\n return id;\n } else {\n 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 } else {\n this.unexpected();\n }\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 (pipeProposal === \"hack\") {\n if (!this.topicReferenceIsAllowedInCurrentContext()) {\n this.raise(Errors.PipeTopicUnbound, startLoc);\n }\n this.registerTopicReference();\n return this.finishNode(node, \"TopicReference\");\n } else {\n if (!this.topicReferenceIsAllowedInCurrentContext()) {\n this.raise(Errors.PrimaryTopicNotAllowed, startLoc);\n }\n this.registerTopicReference();\n return this.finishNode(node, \"PipelinePrimaryTopicReference\");\n }\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 case \"smart\":\n return tokenType === 27;\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(19);\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(10) && !this.scope.allowDirectSuper && !(this.optionFlags & 16)) {\n this.raise(Errors.SuperNotAllowed, node);\n } else if (!this.scope.allowSuper && !(this.optionFlags & 16)) {\n this.raise(Errors.UnexpectedSuper, node);\n }\n if (!this.match(10) && !this.match(0) && !this.match(16)) {\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(16)) {\n const meta = this.createIdentifier(this.startNodeAtNode(node), \"function\");\n this.next();\n if (this.match(103)) {\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 parseImportMetaProperty(node) {\n const id = this.createIdentifier(this.startNodeAtNode(node), \"import\");\n this.next();\n if (this.isContextual(101)) {\n if (!this.inModule) {\n this.raise(Errors.ImportMetaOutsideModule, id);\n }\n this.sawUnambiguousESM = true;\n } else if (this.isContextual(105) || this.isContextual(97)) {\n const isSource = this.isContextual(105);\n this.expectPlugin(isSource ? \"sourcePhaseImports\" : \"deferredImportEvaluation\");\n if (!(this.optionFlags & 256)) {\n throw this.raise(Errors.DynamicImportPhaseRequiresImportExpressions, this.state.startLoc, {\n phase: this.state.value\n });\n }\n this.next();\n node.phase = isSource ? \"source\" : \"defer\";\n return this.parseImportCall(node);\n }\n return this.parseMetaProperty(node, id, \"meta\");\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 return this.parseLiteral(value, \"BigIntLiteral\");\n }\n parseDecimalLiteral(value) {\n return this.parseLiteral(value, \"DecimalLiteral\");\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(canBeArrow) {\n const startLoc = this.state.startLoc;\n let val;\n this.next();\n this.expressionScope.enter(newArrowHeadScope());\n const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n this.state.maybeInArrowParameters = true;\n this.state.inFSharpPipelineDirectBody = false;\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(11)) {\n if (first) {\n first = false;\n } else {\n this.expect(12, refExpressionErrors.optionalParametersLoc === null ? null : refExpressionErrors.optionalParametersLoc);\n if (this.match(11)) {\n optionalCommaStartLoc = this.state.startLoc;\n break;\n }\n }\n if (this.match(21)) {\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.parseMaybeAssignAllowIn(refExpressionErrors, this.parseParenItem));\n }\n }\n const innerEndLoc = this.state.lastTokEndLoc;\n this.expect(11);\n this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n let arrowNode = this.startNodeAt(startLoc);\n if (canBeArrow && 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.toReferencedListDeep(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 & 512)) {\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(19)) {\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(16)) {\n const meta = this.createIdentifier(this.startNodeAtNode(node), \"new\");\n this.next();\n const metaProp = this.parseMetaProperty(node, meta, \"target\");\n if (!this.scope.inNonArrowFunction && !this.scope.inClass && !(this.optionFlags & 4)) {\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(10)) {\n const args = this.parseExprList(11);\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(83);\n const callee = this.parseNoCallExpr();\n node.callee = callee;\n if (isImport && (callee.type === \"Import\" || callee.type === \"ImportExpression\")) {\n this.raise(Errors.ImportCallNotNewExpression, 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(24);\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, isRecord, refExpressionErrors) {\n if (isRecord) {\n this.expectPlugin(\"recordAndTuple\");\n }\n const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n this.state.inFSharpPipelineDirectBody = false;\n const propHash = Object.create(null);\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(12);\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 this.checkProto(prop, isRecord, propHash, refExpressionErrors);\n }\n if (isRecord && !this.isObjectProperty(prop) && prop.type !== \"SpreadElement\") {\n this.raise(Errors.InvalidRecordProperty, prop);\n }\n {\n if (prop.shorthand) {\n this.addExtra(prop, \"shorthand\", true);\n }\n }\n node.properties.push(prop);\n }\n this.next();\n this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n let type = \"ObjectExpression\";\n if (isPattern) {\n type = \"ObjectPattern\";\n } else if (isRecord) {\n type = \"RecordExpression\";\n }\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(55));\n }\n parsePropertyDefinition(refExpressionErrors) {\n let decorators = [];\n if (this.match(26)) {\n if (this.hasPlugin(\"decorators\")) {\n this.raise(Errors.UnsupportedPropertyDecorator, this.state.startLoc);\n }\n while (this.match(26)) {\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(21)) {\n if (decorators.length) this.unexpected();\n return this.parseSpread();\n }\n if (decorators.length) {\n prop.decorators = decorators;\n decorators = [];\n }\n prop.method = false;\n if (refExpressionErrors) {\n startLoc = this.state.startLoc;\n }\n let isGenerator = this.eat(55);\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(55);\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(55)) {\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 var _params;\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[params.length - 1]) == null ? void 0 : _params.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(10)) {\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(14)) {\n prop.value = isPattern ? this.parseMaybeDefault(this.state.startLoc) : this.parseMaybeAssignAllowIn(refExpressionErrors);\n return this.finishNode(prop, \"ObjectProperty\");\n }\n if (!prop.computed && prop.key.type === \"Identifier\") {\n this.checkReservedWord(prop.key.name, prop.key.loc.start, true, false);\n if (isPattern) {\n prop.value = this.parseMaybeDefault(startLoc, cloneIdentifier(prop.key));\n } else if (this.match(29)) {\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, cloneIdentifier(prop.key));\n } else {\n prop.value = cloneIdentifier(prop.key);\n }\n prop.shorthand = true;\n return this.finishNode(prop, \"ObjectProperty\");\n }\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(3);\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 135:\n key = this.parseNumericLiteral(value);\n break;\n case 134:\n key = this.parseStringLiteral(value);\n break;\n case 136:\n key = this.parseBigIntLiteral(value);\n break;\n case 139:\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 if (type === 137) {\n key = this.parseDecimalLiteral(value);\n break;\n }\n this.unexpected();\n }\n }\n prop.key = key;\n if (type !== 139) {\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(2 | 16 | (inClassScope ? 64 : 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, canBePattern, isTuple, refExpressionErrors) {\n if (isTuple) {\n this.expectPlugin(\"recordAndTuple\");\n }\n const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n this.state.inFSharpPipelineDirectBody = false;\n const node = this.startNode();\n this.next();\n node.elements = this.parseExprList(close, !isTuple, refExpressionErrors, node);\n this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n return this.finishNode(node, isTuple ? \"TupleExpression\" : \"ArrayExpression\");\n }\n parseArrowExpression(node, params, isAsync, trailingCommaLoc) {\n this.scope.enter(2 | 4);\n let flags = functionFlags(isAsync, false);\n if (!this.match(5) && this.prodParam.hasIn) {\n flags |= 8;\n }\n this.prodParam.enter(flags);\n this.initFunction(node, isAsync);\n const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n if (params) {\n this.state.maybeInArrowParameters = true;\n this.setArrowFunctionParameters(node, params, trailingCommaLoc);\n }\n this.state.maybeInArrowParameters = false;\n this.parseFunctionBody(node, true);\n this.prodParam.exit();\n this.scope.exit();\n this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\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(5);\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 ? node.key.loc.end : 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(12);\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(allowEmpty, refExpressionErrors));\n }\n return elts;\n }\n parseExprListItem(allowEmpty, refExpressionErrors, allowPlaceholder) {\n let elt;\n if (this.match(12)) {\n if (!allowEmpty) {\n this.raise(Errors.UnexpectedToken, this.state.curPosition(), {\n unexpected: \",\"\n });\n }\n elt = null;\n } else if (this.match(21)) {\n const spreadNodeStartLoc = this.state.startLoc;\n elt = this.parseParenItem(this.parseSpread(refExpressionErrors), spreadNodeStartLoc);\n } else if (this.match(17)) {\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.parseMaybeAssignAllowIn(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 node.loc.identifierName = name;\n return this.finishNode(node, \"Identifier\");\n }\n parseIdentifierName(liberal) {\n let name;\n const {\n startLoc,\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(132);\n }\n } else {\n this.checkReservedWord(name, startLoc, 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 || this.optionFlags & 1 && !this.scope.inFunction;\n if (isAwaitAllowed && !this.scope.inFunction) {\n this.state.hasTopLevelAwait = true;\n }\n return isAwaitAllowed;\n }\n parseAwait(startLoc) {\n const node = this.startNodeAt(startLoc);\n this.expressionScope.recordParameterInitializerError(Errors.AwaitExpressionFormalParameter, node);\n if (this.eat(55)) {\n this.raise(Errors.ObsoleteAwaitStar, node);\n }\n if (!this.scope.inFunction && !(this.optionFlags & 1)) {\n if (this.isAmbiguousAwait()) {\n this.ambiguousScriptDifferentAst = true;\n } else {\n this.sawUnambiguousESM = true;\n }\n }\n if (!this.state.soloAwait) {\n node.argument = this.parseMaybeUnary(null, true);\n }\n return this.finishNode(node, \"AwaitExpression\");\n }\n isAmbiguousAwait() {\n if (this.hasPrecedingLineBreak()) return true;\n const {\n type\n } = this.state;\n return type === 53 || type === 10 || type === 0 || tokenIsTemplate(type) || type === 102 && !this.state.containsEsc || type === 138 || type === 56 || this.hasPlugin(\"v8intrinsic\") && type === 54;\n }\n parseYield() {\n const node = this.startNode();\n this.expressionScope.recordParameterInitializerError(Errors.YieldInParameter, node);\n this.next();\n let delegating = false;\n let argument = null;\n if (!this.hasPrecedingLineBreak()) {\n delegating = this.eat(55);\n switch (this.state.type) {\n case 13:\n case 140:\n case 8:\n case 11:\n case 3:\n case 9:\n case 14:\n case 12:\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 node.source = this.parseMaybeAssignAllowIn();\n node.options = null;\n if (this.eat(12)) {\n if (!this.match(11)) {\n node.options = this.parseMaybeAssignAllowIn();\n if (this.eat(12) && !this.match(11)) {\n do {\n this.parseMaybeAssignAllowIn();\n } while (this.eat(12) && !this.match(11));\n this.raise(Errors.ImportCallArity, node);\n }\n }\n }\n this.expect(11);\n return this.finishNode(node, \"ImportExpression\");\n }\n checkPipelineAtInfixOperator(left, leftStartLoc) {\n if (this.hasPlugin([\"pipelineOperator\", {\n proposal: \"smart\"\n }])) {\n if (left.type === \"SequenceExpression\") {\n this.raise(Errors.PipelineHeadSequenceExpression, leftStartLoc);\n }\n }\n }\n parseSmartPipelineBodyInStyle(childExpr, startLoc) {\n if (this.isSimpleReference(childExpr)) {\n const bodyNode = this.startNodeAt(startLoc);\n bodyNode.callee = childExpr;\n return this.finishNode(bodyNode, \"PipelineBareFunction\");\n } else {\n const bodyNode = this.startNodeAt(startLoc);\n this.checkSmartPipeTopicBodyEarlyErrors(startLoc);\n bodyNode.expression = childExpr;\n return this.finishNode(bodyNode, \"PipelineTopicExpression\");\n }\n }\n isSimpleReference(expression) {\n switch (expression.type) {\n case \"MemberExpression\":\n return !expression.computed && this.isSimpleReference(expression.object);\n case \"Identifier\":\n return true;\n default:\n return false;\n }\n }\n checkSmartPipeTopicBodyEarlyErrors(startLoc) {\n if (this.match(19)) {\n throw this.raise(Errors.PipelineBodyNoArrow, this.state.startLoc);\n }\n if (!this.topicReferenceWasUsedInCurrentContext()) {\n this.raise(Errors.PipelineTopicUnused, startLoc);\n }\n }\n withTopicBindingContext(callback) {\n const outerContextTopicState = this.state.topicContext;\n this.state.topicContext = {\n maxNumOfResolvableTopics: 1,\n maxTopicIndex: null\n };\n try {\n return callback();\n } finally {\n this.state.topicContext = outerContextTopicState;\n }\n }\n withSmartMixTopicForbiddingContext(callback) {\n if (this.hasPlugin([\"pipelineOperator\", {\n proposal: \"smart\"\n }])) {\n const outerContextTopicState = this.state.topicContext;\n this.state.topicContext = {\n maxNumOfResolvableTopics: 0,\n maxTopicIndex: null\n };\n try {\n return callback();\n } finally {\n this.state.topicContext = outerContextTopicState;\n }\n } else {\n return callback();\n }\n }\n withSoloAwaitPermittingContext(callback) {\n const outerContextSoloAwaitState = this.state.soloAwait;\n this.state.soloAwait = true;\n try {\n return callback();\n } finally {\n this.state.soloAwait = outerContextSoloAwaitState;\n }\n }\n allowInAnd(callback) {\n const flags = this.prodParam.currentFlags();\n const prodParamToSet = 8 & ~flags;\n if (prodParamToSet) {\n this.prodParam.enter(flags | 8);\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 if (prodParamToClear) {\n this.prodParam.enter(flags & ~8);\n try {\n return callback();\n } finally {\n this.prodParam.exit();\n }\n }\n return callback();\n }\n registerTopicReference() {\n this.state.topicContext.maxTopicIndex = 0;\n }\n topicReferenceIsAllowedInCurrentContext() {\n return this.state.topicContext.maxNumOfResolvableTopics >= 1;\n }\n topicReferenceWasUsedInCurrentContext() {\n return this.state.topicContext.maxTopicIndex != null && this.state.topicContext.maxTopicIndex >= 0;\n }\n parseFSharpPipelineBody(prec) {\n const startLoc = this.state.startLoc;\n this.state.potentialArrowAt = this.state.start;\n const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n this.state.inFSharpPipelineDirectBody = true;\n const ret = this.parseExprOp(this.parseMaybeUnaryOrPrivate(), startLoc, prec);\n this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n return ret;\n }\n parseModuleExpression() {\n this.expectPlugin(\"moduleBlocks\");\n const node = this.startNode();\n this.next();\n if (!this.match(5)) {\n this.unexpected(null, 5);\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, 8, \"module\");\n } finally {\n revertScopes();\n }\n return this.finishNode(node, \"ModuleExpression\");\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 babel7CompatTokens(tokens, input, startIndex) {\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 {\n if (type === 139) {\n const {\n loc,\n start,\n value,\n end\n } = token;\n const hashEndPos = start + 1;\n const hashEndLoc = createPositionWithColumnOffset(loc.start, 1);\n tokens.splice(i, 1, new Token({\n type: getExportedToken(27),\n value: \"#\",\n start: start,\n end: hashEndPos,\n startLoc: loc.start,\n endLoc: hashEndLoc\n }), new Token({\n type: getExportedToken(132),\n value: value,\n start: hashEndPos,\n end: end,\n startLoc: hashEndLoc,\n endLoc: loc.end\n }));\n i++;\n continue;\n }\n if (tokenIsTemplate(type)) {\n const {\n loc,\n start,\n value,\n end\n } = token;\n const backquoteEnd = start + 1;\n const backquoteEndLoc = createPositionWithColumnOffset(loc.start, 1);\n let startToken;\n if (input.charCodeAt(start - startIndex) === 96) {\n startToken = new Token({\n type: getExportedToken(22),\n value: \"`\",\n start: start,\n end: backquoteEnd,\n startLoc: loc.start,\n endLoc: backquoteEndLoc\n });\n } else {\n startToken = new Token({\n type: getExportedToken(8),\n value: \"}\",\n start: start,\n end: backquoteEnd,\n startLoc: loc.start,\n endLoc: backquoteEndLoc\n });\n }\n let templateValue, templateElementEnd, templateElementEndLoc, endToken;\n if (type === 24) {\n templateElementEnd = end - 1;\n templateElementEndLoc = createPositionWithColumnOffset(loc.end, -1);\n templateValue = value === null ? null : value.slice(1, -1);\n endToken = new Token({\n type: getExportedToken(22),\n value: \"`\",\n start: templateElementEnd,\n end: end,\n startLoc: templateElementEndLoc,\n endLoc: loc.end\n });\n } else {\n templateElementEnd = end - 2;\n templateElementEndLoc = createPositionWithColumnOffset(loc.end, -2);\n templateValue = value === null ? null : value.slice(1, -2);\n endToken = new Token({\n type: getExportedToken(23),\n value: \"${\",\n start: templateElementEnd,\n end: end,\n startLoc: templateElementEndLoc,\n endLoc: loc.end\n });\n }\n tokens.splice(i, 1, startToken, new Token({\n type: getExportedToken(20),\n value: templateValue,\n start: backquoteEnd,\n end: templateElementEnd,\n startLoc: backquoteEndLoc,\n endLoc: templateElementEndLoc\n }), endToken);\n i += 2;\n continue;\n }\n }\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);\n file.comments = this.comments;\n if (this.optionFlags & 128) {\n file.tokens = babel7CompatTokens(this.tokens, this.input, this.startIndex);\n }\n return this.finishNode(file, \"File\");\n }\n parseProgram(program, end = 140, sourceType = this.options.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 & 32) && 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 === 140) {\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 = stmt;\n directive.type = \"Directive\";\n directive.value = directive.expression;\n delete directive.expression;\n const directiveLiteral = directive.value;\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 directiveLiteral.type = \"DirectiveLiteral\";\n return directive;\n }\n parseInterpreterDirective() {\n if (!this.match(28)) {\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(100)) {\n return false;\n }\n return this.hasFollowingBindingAtom();\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 startsUsingForOf() {\n const {\n type,\n containsEsc\n } = this.lookahead();\n if (type === 102 && !containsEsc) {\n return false;\n } else if (tokenIsIdentifier(type) && !this.hasFollowingLineBreak()) {\n this.expectPlugin(\"explicitResourceManagement\");\n return true;\n }\n }\n startsAwaitUsing() {\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 this.expectPlugin(\"explicitResourceManagement\");\n return true;\n }\n }\n return false;\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(26)) {\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 60:\n return this.parseBreakContinueStatement(node, true);\n case 63:\n return this.parseBreakContinueStatement(node, false);\n case 64:\n return this.parseDebuggerStatement(node);\n case 90:\n return this.parseDoWhileStatement(node);\n case 91:\n return this.parseForStatement(node);\n case 68:\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 80:\n if (!allowDeclaration) this.unexpected();\n return this.parseClass(this.maybeTakeDecorators(decorators, node), true);\n case 69:\n return this.parseIfStatement(node);\n case 70:\n return this.parseReturnStatement(node);\n case 71:\n return this.parseSwitchStatement(node);\n case 72:\n return this.parseThrowStatement(node);\n case 73:\n return this.parseTryStatement(node);\n case 96:\n if (!this.state.containsEsc && this.startsAwaitUsing()) {\n if (!this.recordAwaitIfAllowed()) {\n this.raise(Errors.AwaitUsingNotInAsyncContext, node);\n } else if (!allowDeclaration) {\n this.raise(Errors.UnexpectedLexicalDeclaration, node);\n }\n this.next();\n return this.parseVarStatement(node, \"await using\");\n }\n break;\n case 107:\n if (this.state.containsEsc || !this.hasInLineFollowingBindingIdentifierOrBrace()) {\n break;\n }\n this.expectPlugin(\"explicitResourceManagement\");\n if (!this.scope.inModule && this.scope.inTopLevel) {\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 100:\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 75:\n {\n if (!allowDeclaration) {\n this.raise(Errors.UnexpectedLexicalDeclaration, this.state.startLoc);\n }\n }\n case 74:\n {\n const kind = this.state.value;\n return this.parseVarStatement(node, kind);\n }\n case 92:\n return this.parseWhileStatement(node);\n case 76:\n return this.parseWithStatement(node);\n case 5:\n return this.parseBlock();\n case 13:\n return this.parseEmptyStatement(node);\n case 83:\n {\n const nextTokenCharCode = this.lookaheadCharCode();\n if (nextTokenCharCode === 40 || nextTokenCharCode === 46) {\n break;\n }\n }\n case 82:\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 === 83) {\n result = this.parseImport(node);\n if (result.type === \"ImportDeclaration\" && (!result.importKind || result.importKind === \"value\")) {\n this.sawUnambiguousESM = true;\n }\n } else {\n result = this.parseExport(node, decorators);\n if (result.type === \"ExportNamedDeclaration\" && (!result.exportKind || result.exportKind === \"value\") || result.type === \"ExportAllDeclaration\" && (!result.exportKind || result.exportKind === \"value\") || result.type === \"ExportDefaultDeclaration\") {\n this.sawUnambiguousESM = true;\n }\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(14)) {\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 decoratorsEnabledBeforeExport() {\n if (this.hasPlugin(\"decorators-legacy\")) return true;\n return this.hasPlugin(\"decorators\") && this.getPluginOption(\"decorators\", \"decoratorsBeforeExport\") !== false;\n }\n maybeTakeDecorators(maybeDecorators, classNode, exportNode) {\n if (maybeDecorators) {\n var _classNode$decorators;\n if ((_classNode$decorators = classNode.decorators) != null && _classNode$decorators.length) {\n if (typeof this.getPluginOption(\"decorators\", \"decoratorsBeforeExport\") !== \"boolean\") {\n this.raise(Errors.DecoratorsBeforeAfterExport, classNode.decorators[0]);\n }\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(80);\n }\n parseDecorators(allowExport) {\n const decorators = [];\n do {\n decorators.push(this.parseDecorator());\n } while (this.match(26));\n if (this.match(82)) {\n if (!allowExport) {\n this.unexpected();\n }\n if (!this.decoratorsEnabledBeforeExport()) {\n this.raise(Errors.DecoratorExportClass, this.state.startLoc);\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(10)) {\n const startLoc = this.state.startLoc;\n this.next();\n expr = this.parseExpression();\n this.expect(11);\n expr = this.wrapParenthesis(startLoc, expr);\n const paramsStartLoc = this.state.startLoc;\n node.expression = this.parseMaybeDecoratorArguments(expr, startLoc);\n if (this.getPluginOption(\"decorators\", \"allowCallParenthesized\") === false && node.expression !== expr) {\n this.raise(Errors.DecoratorArgumentsOutsideParentheses, paramsStartLoc);\n }\n } else {\n expr = this.parseIdentifier(false);\n while (this.eat(16)) {\n const node = this.startNodeAt(startLoc);\n node.object = expr;\n if (this.match(139)) {\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 node.expression = this.parseExprSubscripts();\n }\n return this.finishNode(node, \"Decorator\");\n }\n parseMaybeDecoratorArguments(expr, startLoc) {\n if (this.eat(10)) {\n const node = this.startNodeAt(startLoc);\n node.callee = expr;\n node.arguments = this.parseCallExpressionArguments(11);\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(10);\n const val = this.parseExpression();\n this.expect(11);\n return val;\n }\n parseDoWhileStatement(node) {\n this.next();\n this.state.labels.push(loopLabel);\n node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement());\n this.state.labels.pop();\n this.expect(92);\n node.test = this.parseHeaderExpression();\n this.eat(13);\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(96) && this.recordAwaitIfAllowed()) {\n awaitAt = this.state.startLoc;\n this.next();\n }\n this.scope.enter(0);\n this.expect(10);\n if (this.match(13)) {\n if (awaitAt !== null) {\n this.unexpected(awaitAt);\n }\n return this.parseFor(node, null);\n }\n const startsWithLet = this.isContextual(100);\n {\n const startsWithAwaitUsing = this.isContextual(96) && this.startsAwaitUsing();\n const starsWithUsingDeclaration = startsWithAwaitUsing || this.isContextual(107) && this.startsUsingForOf();\n const isLetOrUsing = startsWithLet && this.hasFollowingBindingAtom() || starsWithUsingDeclaration;\n if (this.match(74) || this.match(75) || 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(58);\n if (isForIn && starsWithUsingDeclaration) {\n this.raise(Errors.ForInUsing, init);\n }\n if ((isForIn || this.isContextual(102)) && 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(95);\n const refExpressionErrors = new ExpressionErrors();\n const init = this.parseExpression(true, refExpressionErrors);\n const isForOf = this.isContextual(102);\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(58)) {\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(66) ? this.parseStatementOrSloppyAnnexBFunctionDeclaration() : null;\n return this.finishNode(node, \"IfStatement\");\n }\n parseReturnStatement(node) {\n if (!this.prodParam.hasReturn && !(this.optionFlags & 2)) {\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(5);\n this.state.labels.push(switchLabel);\n this.scope.enter(0);\n let cur;\n for (let sawDefault; !this.match(8);) {\n if (this.match(61) || this.match(65)) {\n const isCase = this.match(61);\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(14);\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(62)) {\n const clause = this.startNode();\n this.next();\n if (this.match(10)) {\n this.expect(10);\n clause.param = this.parseCatchClauseParam();\n this.expect(11);\n } else {\n clause.param = null;\n this.scope.enter(0);\n }\n clause.body = this.withSmartMixTopicForbiddingContext(() => this.parseBlock(false, false));\n this.scope.exit();\n node.handler = this.finishNode(clause, \"CatchClause\");\n }\n node.finalizer = this.eat(67) ? 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.withSmartMixTopicForbiddingContext(() => 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.withSmartMixTopicForbiddingContext(() => 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(71) ? 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(5);\n if (createNewLexicalScope) {\n this.scope.enter(0);\n }\n this.parseBlockBody(node, allowDirectives, false, 8, 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 == null || 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(13) ? null : this.parseExpression();\n this.semicolon(false);\n node.update = this.match(11) ? null : this.parseExpression();\n this.expect(11);\n node.body = this.withSmartMixTopicForbiddingContext(() => 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(58);\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(11);\n node.body = this.withSmartMixTopicForbiddingContext(() => 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(29) ? null : isFor ? this.parseMaybeAssignDisallowIn() : this.parseMaybeAssignAllowIn();\n if (decl.init === null && !allowMissingInitializer) {\n if (decl.id.type !== \"Identifier\" && !(isFor && (this.match(58) || this.isContextual(102)))) {\n this.raise(Errors.DeclarationMissingInitializer, this.state.lastTokEndLoc, {\n kind: \"destructuring\"\n });\n } else if ((kind === \"const\" || kind === \"using\" || kind === \"await using\") && !(this.match(58) || this.isContextual(102))) {\n this.raise(Errors.DeclarationMissingInitializer, this.state.lastTokEndLoc, {\n kind\n });\n }\n }\n declarations.push(this.finishNode(decl, \"VariableDeclarator\"));\n if (!this.eat(12)) 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.loc.start);\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(55)) {\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 const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n this.state.maybeInArrowParameters = false;\n this.scope.enter(2);\n this.prodParam.enter(functionFlags(isAsync, node.generator));\n if (!isDeclaration) {\n node.id = this.parseFunctionId();\n }\n this.parseFunctionParams(node, false);\n this.withSmartMixTopicForbiddingContext(() => {\n this.parseFunctionBodyAndFinish(node, isDeclaration ? \"FunctionDeclaration\" : \"FunctionExpression\");\n });\n this.prodParam.exit();\n this.scope.exit();\n if (isDeclaration && !hangingDeclaration) {\n this.registerFunctionStatementId(node);\n }\n this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\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(10);\n this.expressionScope.enter(newParameterDeclarationScope());\n node.params = this.parseBindingList(11, 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.loc.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(29) || this.match(13) || this.match(8);\n }\n isClassMethod() {\n return this.match(10);\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(5);\n this.withSmartMixTopicForbiddingContext(() => {\n while (!this.match(8)) {\n if (this.eat(13)) {\n if (decorators.length > 0) {\n throw this.raise(Errors.DecoratorSemicolon, this.state.lastTokEndLoc);\n }\n continue;\n }\n if (this.match(26)) {\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 if (member.kind === \"constructor\" && member.decorators && member.decorators.length > 0) {\n this.raise(Errors.DecoratorConstructor, member);\n }\n }\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(106);\n if (isStatic) {\n if (this.parseClassMemberFromModifier(classBody, member)) {\n return;\n }\n if (this.eat(5)) {\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(55)) {\n method.kind = \"method\";\n const isPrivateName = this.match(139);\n this.parseClassElementName(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 (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(55);\n if (publicMember.optional) {\n this.unexpected(maybeQuestionTokenStartLoc);\n }\n method.kind = \"method\";\n const isPrivate = this.match(139);\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(55) && this.isLineTerminator())) {\n this.resetPreviousNodeTrailingComments(key);\n method.kind = maybeContextualKw;\n const isPrivate = this.match(139);\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(139);\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 === 132 || type === 134) && member.static && value === \"prototype\") {\n this.raise(Errors.StaticPrototype, this.state.startLoc);\n }\n if (type === 139) {\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 var _member$decorators;\n this.scope.enter(64 | 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, 8);\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 = member.decorators) != null && _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.loc.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.loc.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.loc.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(64 | 16);\n this.expressionScope.enter(newExpressionScope());\n this.prodParam.enter(0);\n node.value = this.eat(29) ? 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 node.superClass = this.eat(81) ? this.parseExprSubscripts() : null;\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(12);\n const hasStar = parseAfterDefault && this.eatExportStar(node);\n const hasNamespace = hasStar && this.maybeParseExportNamespaceSpecifier(node);\n const parseAfterNamespace = parseAfterDefault && (!hasNamespace || this.eat(12));\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 return this.finishNode(node, \"ExportAllDeclaration\");\n }\n const hasSpecifiers = this.maybeParseExportNamedSpecifiers(node);\n if (hasDefault && parseAfterDefault && !hasStar && !hasSpecifiers) {\n this.unexpected(null, 5);\n }\n if (hasNamespace && parseAfterNamespace) {\n this.unexpected(null, 98);\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 var _node2$declaration;\n const node2 = node;\n this.checkExport(node2, true, false, !!node2.source);\n if (((_node2$declaration = node2.declaration) == null ? void 0 : _node2$declaration.type) === \"ClassDeclaration\") {\n this.maybeTakeDecorators(decorators, node2.declaration, node2);\n } else if (decorators) {\n throw this.raise(Errors.UnsupportedDecoratorExport, node);\n }\n return this.finishNode(node2, \"ExportNamedDeclaration\");\n }\n if (this.eat(65)) {\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 return this.finishNode(node2, \"ExportDefaultDeclaration\");\n }\n this.unexpected(null, 5);\n }\n eatExportStar(node) {\n return this.eat(55);\n }\n maybeParseExportDefaultSpecifier(node, maybeDefaultIdentifier) {\n if (maybeDefaultIdentifier || this.isExportDefaultSpecifier()) {\n this.expectPlugin(\"exportDefaultFrom\", maybeDefaultIdentifier == null ? void 0 : maybeDefaultIdentifier.loc.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(93)) {\n var _ref, _ref$specifiers;\n (_ref$specifiers = (_ref = node).specifiers) != null ? _ref$specifiers : _ref.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(5)) {\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.declaration = null;\n if (this.hasPlugin(\"importAssertions\")) {\n node2.assertions = [];\n }\n return true;\n }\n return false;\n }\n maybeParseExportDeclaration(node) {\n if (this.shouldParseExportDeclaration()) {\n node.specifiers = [];\n node.source = null;\n if (this.hasPlugin(\"importAssertions\")) {\n node.assertions = [];\n }\n node.declaration = this.parseExportDeclaration(node);\n return true;\n }\n return false;\n }\n isAsyncFunction() {\n if (!this.isContextual(95)) 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(68)) {\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(80)) {\n return this.parseClass(expr, true, true);\n }\n if (this.match(26)) {\n if (this.hasPlugin(\"decorators\") && this.getPluginOption(\"decorators\", \"decoratorsBeforeExport\") === true) {\n this.raise(Errors.DecoratorBeforeExport, this.state.startLoc);\n }\n return this.parseClass(this.maybeTakeDecorators(this.parseDecorators(false), this.startNode()), true, true);\n }\n if (this.match(75) || this.match(74) || this.isLet()) {\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(80)) {\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 === 95 && !this.state.containsEsc || type === 100) {\n return false;\n }\n if ((type === 130 || type === 129) && !this.state.containsEsc) {\n const {\n type: nextType\n } = this.lookahead();\n if (tokenIsIdentifier(nextType) && nextType !== 98 || nextType === 5) {\n this.expectOnePlugin([\"flow\", \"typescript\"]);\n return false;\n }\n }\n } else if (!this.match(65)) {\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(65) && 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(98)) {\n node.source = this.parseImportSource();\n this.checkExport(node);\n this.maybeParseImportAttributes(node);\n this.checkJSONModuleImport(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 === 26) {\n this.expectOnePlugin([\"decorators\", \"decorators-legacy\"]);\n if (this.hasPlugin(\"decorators\")) {\n if (this.getPluginOption(\"decorators\", \"decoratorsBeforeExport\") === true) {\n this.raise(Errors.DecoratorBeforeExport, this.state.startLoc);\n }\n return true;\n }\n }\n if (this.isContextual(107)) {\n this.raise(Errors.UsingDeclarationExport, this.state.startLoc);\n return true;\n }\n if (this.isContextual(96) && this.startsAwaitUsing()) {\n this.raise(Errors.UsingDeclarationExport, this.state.startLoc);\n return true;\n }\n return type === 74 || type === 75 || type === 68 || type === 80 || this.isLet() || this.isAsyncFunction();\n }\n checkExport(node, checkNames, isDefault, isFrom) {\n if (checkNames) {\n var _node$specifiers;\n if (isDefault) {\n this.checkDuplicateExports(node, \"default\");\n if (this.hasPlugin(\"exportDefaultFrom\")) {\n var _declaration$extra;\n const declaration = node.declaration;\n if (declaration.type === \"Identifier\" && declaration.name === \"from\" && declaration.end - declaration.start === 4 && !((_declaration$extra = declaration.extra) != null && _declaration$extra.parenthesized)) {\n this.raise(Errors.ExportDefaultFromAsIdentifier, declaration);\n }\n }\n } else if ((_node$specifiers = node.specifiers) != null && _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.loc.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(5);\n while (!this.eat(8)) {\n if (first) {\n first = false;\n } else {\n this.expect(12);\n if (this.eat(8)) break;\n }\n const isMaybeTypeOnly = this.isContextual(130);\n const isString = this.match(134);\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(93)) {\n node.exported = this.parseModuleExportName();\n } else if (isString) {\n node.exported = cloneStringLiteral(node.local);\n } else if (!node.exported) {\n node.exported = cloneIdentifier(node.local);\n }\n return this.finishNode(node, \"ExportSpecifier\");\n }\n parseModuleExportName() {\n if (this.match(134)) {\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 isJSONModuleImport(node) {\n if (node.assertions != null) {\n return node.assertions.some(({\n key,\n value\n }) => {\n return value.value === \"json\" && (key.type === \"Identifier\" ? key.name === \"type\" : key.value === \"type\");\n });\n }\n return false;\n }\n checkImportReflection(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].loc.start);\n }\n } else if (node.phase === \"defer\") {\n if (singleBindingType !== \"ImportNamespaceSpecifier\") {\n this.raise(Errors.DeferImportRequiresNamespace, specifiers[0].loc.start);\n }\n } else if (node.module) {\n var _node$assertions;\n if (singleBindingType !== \"ImportDefaultSpecifier\") {\n this.raise(Errors.ImportReflectionNotBinding, specifiers[0].loc.start);\n }\n if (((_node$assertions = node.assertions) == null ? void 0 : _node$assertions.length) > 0) {\n this.raise(Errors.ImportReflectionHasAssertion, specifiers[0].loc.start);\n }\n }\n }\n checkJSONModuleImport(node) {\n if (this.isJSONModuleImport(node) && node.type !== \"ExportAllDeclaration\") {\n const {\n specifiers\n } = node;\n if (specifiers != null) {\n const nonDefaultNamedSpecifier = specifiers.find(specifier => {\n let imported;\n if (specifier.type === \"ExportSpecifier\") {\n imported = specifier.local;\n } else if (specifier.type === \"ImportSpecifier\") {\n imported = specifier.imported;\n }\n if (imported !== undefined) {\n return imported.type === \"Identifier\" ? imported.name !== \"default\" : imported.value !== \"default\";\n }\n });\n if (nonDefaultNamedSpecifier !== undefined) {\n this.raise(Errors.ImportJSONBindingNotDefault, nonDefaultNamedSpecifier.loc.start);\n }\n }\n }\n }\n isPotentialImportPhase(isExport) {\n if (isExport) return false;\n return this.isContextual(105) || this.isContextual(97) || this.isContextual(127);\n }\n applyImportPhase(node, isExport, phase, loc) {\n if (isExport) {\n return;\n }\n if (phase === \"module\") {\n this.expectPlugin(\"importReflection\", loc);\n node.module = true;\n } else if (this.hasPlugin(\"importReflection\")) {\n node.module = false;\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.parseIdentifier(true);\n const {\n type\n } = this.state;\n const isImportPhase = tokenIsKeywordOrIdentifier(type) ? type !== 98 || this.lookaheadCharCode() === 102 : type !== 12;\n if (isImportPhase) {\n this.resetPreviousIdentifierLeadingComments(phaseIdentifier);\n this.applyImportPhase(node, isExport, phaseIdentifier.name, phaseIdentifier.loc.start);\n return null;\n } else {\n this.applyImportPhase(node, isExport, null);\n return phaseIdentifier;\n }\n }\n isPrecedingIdImportPhase(phase) {\n const {\n type\n } = this.state;\n return tokenIsIdentifier(type) ? type !== 98 || this.lookaheadCharCode() === 102 : type !== 12;\n }\n parseImport(node) {\n if (this.match(134)) {\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(12);\n const hasStar = parseNext && this.maybeParseStarImportSpecifier(node);\n if (parseNext && !hasStar) this.parseNamedImportSpecifiers(node);\n this.expectContextual(98);\n return this.parseImportSourceAndAttributes(node);\n }\n parseImportSourceAndAttributes(node) {\n var _node$specifiers2;\n (_node$specifiers2 = node.specifiers) != null ? _node$specifiers2 : node.specifiers = [];\n node.source = this.parseImportSource();\n this.maybeParseImportAttributes(node);\n this.checkImportReflection(node);\n this.checkJSONModuleImport(node);\n this.semicolon();\n return this.finishNode(node, \"ImportDeclaration\");\n }\n parseImportSource() {\n if (!this.match(134)) 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(5);\n const attrs = [];\n const attrNames = new Set();\n do {\n if (this.match(8)) {\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(134)) {\n node.key = this.parseStringLiteral(keyName);\n } else {\n node.key = this.parseIdentifier(true);\n }\n this.expect(14);\n if (!this.match(134)) {\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(12));\n this.expect(8);\n return attrs;\n }\n parseModuleAttributes() {\n const attrs = [];\n const attributes = new Set();\n do {\n const node = this.startNode();\n node.key = this.parseIdentifier(true);\n if (node.key.name !== \"type\") {\n this.raise(Errors.ModuleAttributeDifferentFromType, node.key);\n }\n if (attributes.has(node.key.name)) {\n this.raise(Errors.ModuleAttributesWithDuplicateKeys, node.key, {\n key: node.key.name\n });\n }\n attributes.add(node.key.name);\n this.expect(14);\n if (!this.match(134)) {\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(12));\n return attrs;\n }\n maybeParseImportAttributes(node) {\n let attributes;\n {\n var useWith = false;\n }\n if (this.match(76)) {\n if (this.hasPrecedingLineBreak() && this.lookaheadCharCode() === 40) {\n return;\n }\n this.next();\n if (this.hasPlugin(\"moduleAttributes\")) {\n attributes = this.parseModuleAttributes();\n } else {\n attributes = this.parseImportAttributes();\n }\n {\n useWith = true;\n }\n } else if (this.isContextual(94) && !this.hasPrecedingLineBreak()) {\n if (!this.hasPlugin(\"deprecatedImportAssert\") && !this.hasPlugin(\"importAssertions\")) {\n this.raise(Errors.ImportAttributesUseAssert, this.state.startLoc);\n }\n if (!this.hasPlugin(\"importAssertions\")) {\n this.addExtra(node, \"deprecatedAssertSyntax\", true);\n }\n this.next();\n attributes = this.parseImportAttributes();\n } else {\n attributes = [];\n }\n if (!useWith && this.hasPlugin(\"importAssertions\")) {\n node.assertions = attributes;\n } else {\n node.attributes = attributes;\n }\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(55)) {\n const specifier = this.startNode();\n this.next();\n this.expectContextual(93);\n this.parseImportSpecifierLocal(node, specifier, \"ImportNamespaceSpecifier\");\n return true;\n }\n return false;\n }\n parseNamedImportSpecifiers(node) {\n let first = true;\n this.expect(5);\n while (!this.eat(8)) {\n if (first) {\n first = false;\n } else {\n if (this.eat(14)) {\n throw this.raise(Errors.DestructureNamedImport, this.state.startLoc);\n }\n this.expect(12);\n if (this.eat(8)) break;\n }\n const specifier = this.startNode();\n const importedIsString = this.match(134);\n const isMaybeTypeOnly = this.isContextual(130);\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(93)) {\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.loc.start, true, true);\n if (!specifier.local) {\n specifier.local = 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}\nclass Parser extends StatementParser {\n constructor(options, input, pluginsMap) {\n options = getOptions(options);\n super(options, input);\n this.options = options;\n this.initializeScopes();\n this.plugins = pluginsMap;\n this.filename = options.sourceFilename;\n this.startIndex = options.startIndex;\n let optionFlags = 0;\n if (options.allowAwaitOutsideFunction) {\n optionFlags |= 1;\n }\n if (options.allowReturnOutsideFunction) {\n optionFlags |= 2;\n }\n if (options.allowImportExportEverywhere) {\n optionFlags |= 8;\n }\n if (options.allowSuperOutsideMethod) {\n optionFlags |= 16;\n }\n if (options.allowUndeclaredExports) {\n optionFlags |= 32;\n }\n if (options.allowNewTargetOutsideFunction) {\n optionFlags |= 4;\n }\n if (options.ranges) {\n optionFlags |= 64;\n }\n if (options.tokens) {\n optionFlags |= 128;\n }\n if (options.createImportExpressions) {\n optionFlags |= 256;\n }\n if (options.createParenthesizedExpressions) {\n optionFlags |= 512;\n }\n if (options.errorRecovery) {\n optionFlags |= 1024;\n }\n if (options.attachComment) {\n optionFlags |= 2048;\n }\n if (options.annexB) {\n optionFlags |= 4096;\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 = null;\n this.parseTopLevel(file, program);\n file.errors = this.state.errors;\n file.comments.length = this.state.commentsLen;\n return file;\n }\n}\nfunction parse(input, options) {\n var _options;\n if (((_options = options) == null ? void 0 : _options.sourceType) === \"unambiguous\") {\n options = Object.assign({}, options);\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 (_unused) {}\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 (_unused2) {}\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 != null && 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}\nexports.parse = parse;\nexports.parseExpression = parseExpression;\nexports.tokTypes = tokTypes;\n//# sourceMappingURL=index.js.map\n","import type {\n File,\n ImportDeclaration,\n ExpressionStatement,\n} from '@babel/types';\n\nexport const collectExportNames = (ast: File): string[] => {\n const names = new Set<string>();\n\n for (const node of ast.program.body) {\n if (node.type === 'ExportDefaultDeclaration') {\n names.add('default');\n }\n\n if (node.type === 'ExportNamedDeclaration') {\n const { declaration, specifiers } = node;\n\n if (declaration) {\n if (declaration.type === 'FunctionDeclaration' && declaration.id) {\n names.add(declaration.id.name);\n } else if (\n declaration.type === 'VariableDeclaration' &&\n declaration.declarations.length\n ) {\n for (const declarator of declaration.declarations) {\n if (declarator.id.type === 'Identifier') {\n names.add(declarator.id.name);\n }\n }\n } else if (declaration.type === 'ClassDeclaration' && declaration.id) {\n names.add(declaration.id.name);\n }\n }\n\n if (specifiers?.length) {\n specifiers.forEach(specifier => {\n if (\n specifier.type === 'ExportSpecifier' &&\n specifier.exported.type === 'Identifier'\n ) {\n names.add(specifier.exported.name);\n }\n });\n }\n }\n }\n\n return Array.from(names);\n};\n\nexport const detectLithentUsage = (ast: File): boolean => {\n const watchedNames = new Set(['render', 'mount', 'createApp', 'createRoot']);\n\n for (const node of ast.program.body) {\n if (node.type !== 'ImportDeclaration') continue;\n const source = node.source.value;\n if (typeof source !== 'string') continue;\n\n if (source === 'lithent') {\n const hasWatched = node.specifiers.some(specifier => {\n if (\n specifier.type === 'ImportSpecifier' &&\n specifier.imported.type === 'Identifier'\n ) {\n const importedName = specifier.imported.name;\n return watchedNames.has(importedName);\n }\n return false;\n });\n\n if (hasWatched) return true;\n }\n\n if (source.startsWith('lithent/')) {\n if ((node as ImportDeclaration).importKind === 'type') {\n continue;\n }\n return true;\n }\n }\n\n return false;\n};\n\nexport const collectHeaderInsert = (\n ast: File,\n sourceCode: string,\n boundaryImportSpecifier: string,\n tagFunctionImportSpecifier: string\n) => {\n const importsToPrepend: string[] = [];\n let hasBoundaryImport = false;\n let hasTagImport = false;\n let lastImportEnd = 0;\n let directiveEnd = 0;\n let firstImportStart: number | null = null;\n\n for (const node of ast.program.body) {\n if (node.type === 'ImportDeclaration') {\n lastImportEnd = node.end ?? lastImportEnd;\n if (firstImportStart == null) {\n firstImportStart = node.start ?? null;\n }\n\n if (node.source.value === boundaryImportSpecifier) {\n hasBoundaryImport = true;\n }\n\n if (node.source.value === tagFunctionImportSpecifier) {\n const hasTag = node.specifiers.some(specifier => {\n return (\n specifier.type === 'ImportSpecifier' &&\n specifier.imported.type === 'Identifier' &&\n specifier.imported.name === 'TagFunction'\n );\n });\n\n if (hasTag) {\n hasTagImport = true;\n }\n }\n\n continue;\n }\n\n if (\n node.type === 'ExpressionStatement' &&\n node.expression.type === 'StringLiteral'\n ) {\n const expressionStatement = node as ExpressionStatement & {\n directive?: string;\n };\n if (typeof expressionStatement.directive === 'string') {\n directiveEnd = expressionStatement.end ?? directiveEnd;\n continue;\n }\n }\n\n break;\n }\n\n if (!hasBoundaryImport) {\n importsToPrepend.push(\n `import { createBoundary } from '${boundaryImportSpecifier}';`\n );\n }\n\n if (!hasTagImport) {\n importsToPrepend.push(\n `import type { TagFunction } from '${tagFunctionImportSpecifier}';`\n );\n }\n\n const importInsertionPos = firstImportStart ?? directiveEnd ?? 0;\n const blockInsertionPos = lastImportEnd || directiveEnd || 0;\n\n let snippet = '';\n if (importsToPrepend.length) {\n const precedingChar =\n importInsertionPos > 0 ? sourceCode[importInsertionPos - 1] : undefined;\n const needsLeadingNewline =\n importInsertionPos > 0 && precedingChar !== '\\n';\n snippet += needsLeadingNewline ? '\\n' : '';\n snippet += importsToPrepend.join('\\n');\n snippet += '\\n';\n }\n\n return { importInsertionPos, blockInsertionPos, headerSnippet: snippet };\n};\n","import { parse } from '@babel/parser';\nimport type { File } from '@babel/types';\nimport type {\n MarkerTransformOptions,\n BaseTransformOptions,\n MarkerAnalysisResult,\n BaseAnalysisResult,\n} from './types';\nimport {\n collectExportNames,\n detectLithentUsage,\n collectHeaderInsert,\n} from './helper/calculator';\n\nconst analyzeBase = (\n code: string,\n boundaryImportSpecifier: string,\n tagFunctionImportSpecifier: string\n) => {\n const ast = parse(code, {\n sourceType: 'module',\n plugins: ['typescript', 'jsx'],\n ranges: true,\n }) as File;\n\n const inferredExports = collectExportNames(ast);\n const targetExports =\n inferredExports.length > 0 ? inferredExports : ['default'];\n const { importInsertionPos, blockInsertionPos, headerSnippet } =\n collectHeaderInsert(\n ast,\n code,\n boundaryImportSpecifier,\n tagFunctionImportSpecifier\n );\n\n return {\n ast,\n targetExports,\n importInsertionPos,\n blockInsertionPos,\n headerSnippet,\n } as const;\n};\n\nexport const analyzeMarker = (\n options: MarkerTransformOptions\n): MarkerAnalysisResult => {\n const {\n code,\n markerRegex,\n boundaryImportSpecifier,\n tagFunctionImportSpecifier,\n } = options;\n\n const {\n ast,\n targetExports,\n importInsertionPos,\n blockInsertionPos,\n headerSnippet,\n } = analyzeBase(code, boundaryImportSpecifier, tagFunctionImportSpecifier);\n\n const match = markerRegex.exec(code);\n const rawNames = match?.[1]\n ? match[1]\n .split(',')\n .map(token => token.trim())\n .filter(Boolean)\n : [];\n\n const finalTargets = rawNames.length ? rawNames : targetExports;\n\n return {\n targetExports: finalTargets,\n shouldTransform: !!match || detectLithentUsage(ast),\n importInsertionPos,\n blockInsertionPos,\n headerSnippet,\n ast,\n match: match ?? null,\n };\n};\n\nexport const analyzeNoMarker = (\n options: BaseTransformOptions\n): BaseAnalysisResult => {\n const { code, boundaryImportSpecifier, tagFunctionImportSpecifier } = options;\n\n const {\n ast,\n targetExports,\n importInsertionPos,\n blockInsertionPos,\n headerSnippet,\n } = analyzeBase(code, boundaryImportSpecifier, tagFunctionImportSpecifier);\n\n return {\n targetExports,\n shouldTransform: detectLithentUsage(ast),\n importInsertionPos,\n blockInsertionPos,\n headerSnippet,\n ast,\n };\n};\n\nexport const shouldSkipTransform = (code: string): boolean =>\n code.includes('__lithentModuleId');\n","import MagicString from 'magic-string';\nimport type { MountInfo } from '../utils/ast/componentCollector';\n\nexport const stitchComponentRegistration = (\n ms: MagicString,\n mounts: MountInfo[],\n code: string,\n importInsertionPos: number\n) => {\n if (!mounts.length) return;\n\n const needsMountCallback = !/import\\s+{[^}]*mountCallback/.test(code);\n const needsGetComponentKey = !/import\\s+{[^}]*getComponentKey/.test(code);\n\n if (needsMountCallback || needsGetComponentKey) {\n const pieces: string[] = [];\n if (needsMountCallback) {\n pieces.push('mountCallback');\n }\n if (needsGetComponentKey) {\n pieces.push('getComponentKey');\n }\n\n const joined = pieces.join(', ');\n ms.appendLeft(importInsertionPos, `import { ${joined} } from 'lithent';\\n`);\n }\n\n for (const mount of mounts) {\n const { insertPos, componentName, declarationEnd } = mount;\n const unregisterBlock = `\n const compKey = getComponentKey();\n const unregister = compKey ? counterBoundary.register(compKey) : null;\n if (unregister) {\n mountCallback(() => () => unregister());\n }\n`;\n ms.appendLeft(insertPos, unregisterBlock);\n\n if (componentName) {\n const hotStoreVar = `__lithentHotComponent_${componentName}`;\n const storeSnippet = `\nconst ${hotStoreVar} = ${componentName} as unknown as TagFunction;\nif (__lithentModuleHotStore) {\n __lithentModuleHotStore[\"${componentName}\"] = ${hotStoreVar};\n}\n`;\n ms.appendRight(declarationEnd, storeSnippet);\n }\n }\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = shallowEqual;\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\n//# sourceMappingURL=shallowEqual.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = deprecationWarning;\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\n//# sourceMappingURL=deprecationWarning.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isAccessor = isAccessor;\nexports.isAnyTypeAnnotation = isAnyTypeAnnotation;\nexports.isArgumentPlaceholder = isArgumentPlaceholder;\nexports.isArrayExpression = isArrayExpression;\nexports.isArrayPattern = isArrayPattern;\nexports.isArrayTypeAnnotation = isArrayTypeAnnotation;\nexports.isArrowFunctionExpression = isArrowFunctionExpression;\nexports.isAssignmentExpression = isAssignmentExpression;\nexports.isAssignmentPattern = isAssignmentPattern;\nexports.isAwaitExpression = isAwaitExpression;\nexports.isBigIntLiteral = isBigIntLiteral;\nexports.isBinary = isBinary;\nexports.isBinaryExpression = isBinaryExpression;\nexports.isBindExpression = isBindExpression;\nexports.isBlock = isBlock;\nexports.isBlockParent = isBlockParent;\nexports.isBlockStatement = isBlockStatement;\nexports.isBooleanLiteral = isBooleanLiteral;\nexports.isBooleanLiteralTypeAnnotation = isBooleanLiteralTypeAnnotation;\nexports.isBooleanTypeAnnotation = isBooleanTypeAnnotation;\nexports.isBreakStatement = isBreakStatement;\nexports.isCallExpression = isCallExpression;\nexports.isCatchClause = isCatchClause;\nexports.isClass = isClass;\nexports.isClassAccessorProperty = isClassAccessorProperty;\nexports.isClassBody = isClassBody;\nexports.isClassDeclaration = isClassDeclaration;\nexports.isClassExpression = isClassExpression;\nexports.isClassImplements = isClassImplements;\nexports.isClassMethod = isClassMethod;\nexports.isClassPrivateMethod = isClassPrivateMethod;\nexports.isClassPrivateProperty = isClassPrivateProperty;\nexports.isClassProperty = isClassProperty;\nexports.isCompletionStatement = isCompletionStatement;\nexports.isConditional = isConditional;\nexports.isConditionalExpression = isConditionalExpression;\nexports.isContinueStatement = isContinueStatement;\nexports.isDebuggerStatement = isDebuggerStatement;\nexports.isDecimalLiteral = isDecimalLiteral;\nexports.isDeclaration = isDeclaration;\nexports.isDeclareClass = isDeclareClass;\nexports.isDeclareExportAllDeclaration = isDeclareExportAllDeclaration;\nexports.isDeclareExportDeclaration = isDeclareExportDeclaration;\nexports.isDeclareFunction = isDeclareFunction;\nexports.isDeclareInterface = isDeclareInterface;\nexports.isDeclareModule = isDeclareModule;\nexports.isDeclareModuleExports = isDeclareModuleExports;\nexports.isDeclareOpaqueType = isDeclareOpaqueType;\nexports.isDeclareTypeAlias = isDeclareTypeAlias;\nexports.isDeclareVariable = isDeclareVariable;\nexports.isDeclaredPredicate = isDeclaredPredicate;\nexports.isDecorator = isDecorator;\nexports.isDirective = isDirective;\nexports.isDirectiveLiteral = isDirectiveLiteral;\nexports.isDoExpression = isDoExpression;\nexports.isDoWhileStatement = isDoWhileStatement;\nexports.isEmptyStatement = isEmptyStatement;\nexports.isEmptyTypeAnnotation = isEmptyTypeAnnotation;\nexports.isEnumBody = isEnumBody;\nexports.isEnumBooleanBody = isEnumBooleanBody;\nexports.isEnumBooleanMember = isEnumBooleanMember;\nexports.isEnumDeclaration = isEnumDeclaration;\nexports.isEnumDefaultedMember = isEnumDefaultedMember;\nexports.isEnumMember = isEnumMember;\nexports.isEnumNumberBody = isEnumNumberBody;\nexports.isEnumNumberMember = isEnumNumberMember;\nexports.isEnumStringBody = isEnumStringBody;\nexports.isEnumStringMember = isEnumStringMember;\nexports.isEnumSymbolBody = isEnumSymbolBody;\nexports.isExistsTypeAnnotation = isExistsTypeAnnotation;\nexports.isExportAllDeclaration = isExportAllDeclaration;\nexports.isExportDeclaration = isExportDeclaration;\nexports.isExportDefaultDeclaration = isExportDefaultDeclaration;\nexports.isExportDefaultSpecifier = isExportDefaultSpecifier;\nexports.isExportNamedDeclaration = isExportNamedDeclaration;\nexports.isExportNamespaceSpecifier = isExportNamespaceSpecifier;\nexports.isExportSpecifier = isExportSpecifier;\nexports.isExpression = isExpression;\nexports.isExpressionStatement = isExpressionStatement;\nexports.isExpressionWrapper = isExpressionWrapper;\nexports.isFile = isFile;\nexports.isFlow = isFlow;\nexports.isFlowBaseAnnotation = isFlowBaseAnnotation;\nexports.isFlowDeclaration = isFlowDeclaration;\nexports.isFlowPredicate = isFlowPredicate;\nexports.isFlowType = isFlowType;\nexports.isFor = isFor;\nexports.isForInStatement = isForInStatement;\nexports.isForOfStatement = isForOfStatement;\nexports.isForStatement = isForStatement;\nexports.isForXStatement = isForXStatement;\nexports.isFunction = isFunction;\nexports.isFunctionDeclaration = isFunctionDeclaration;\nexports.isFunctionExpression = isFunctionExpression;\nexports.isFunctionParameter = isFunctionParameter;\nexports.isFunctionParent = isFunctionParent;\nexports.isFunctionTypeAnnotation = isFunctionTypeAnnotation;\nexports.isFunctionTypeParam = isFunctionTypeParam;\nexports.isGenericTypeAnnotation = isGenericTypeAnnotation;\nexports.isIdentifier = isIdentifier;\nexports.isIfStatement = isIfStatement;\nexports.isImmutable = isImmutable;\nexports.isImport = isImport;\nexports.isImportAttribute = isImportAttribute;\nexports.isImportDeclaration = isImportDeclaration;\nexports.isImportDefaultSpecifier = isImportDefaultSpecifier;\nexports.isImportExpression = isImportExpression;\nexports.isImportNamespaceSpecifier = isImportNamespaceSpecifier;\nexports.isImportOrExportDeclaration = isImportOrExportDeclaration;\nexports.isImportSpecifier = isImportSpecifier;\nexports.isIndexedAccessType = isIndexedAccessType;\nexports.isInferredPredicate = isInferredPredicate;\nexports.isInterfaceDeclaration = isInterfaceDeclaration;\nexports.isInterfaceExtends = isInterfaceExtends;\nexports.isInterfaceTypeAnnotation = isInterfaceTypeAnnotation;\nexports.isInterpreterDirective = isInterpreterDirective;\nexports.isIntersectionTypeAnnotation = isIntersectionTypeAnnotation;\nexports.isJSX = isJSX;\nexports.isJSXAttribute = isJSXAttribute;\nexports.isJSXClosingElement = isJSXClosingElement;\nexports.isJSXClosingFragment = isJSXClosingFragment;\nexports.isJSXElement = isJSXElement;\nexports.isJSXEmptyExpression = isJSXEmptyExpression;\nexports.isJSXExpressionContainer = isJSXExpressionContainer;\nexports.isJSXFragment = isJSXFragment;\nexports.isJSXIdentifier = isJSXIdentifier;\nexports.isJSXMemberExpression = isJSXMemberExpression;\nexports.isJSXNamespacedName = isJSXNamespacedName;\nexports.isJSXOpeningElement = isJSXOpeningElement;\nexports.isJSXOpeningFragment = isJSXOpeningFragment;\nexports.isJSXSpreadAttribute = isJSXSpreadAttribute;\nexports.isJSXSpreadChild = isJSXSpreadChild;\nexports.isJSXText = isJSXText;\nexports.isLVal = isLVal;\nexports.isLabeledStatement = isLabeledStatement;\nexports.isLiteral = isLiteral;\nexports.isLogicalExpression = isLogicalExpression;\nexports.isLoop = isLoop;\nexports.isMemberExpression = isMemberExpression;\nexports.isMetaProperty = isMetaProperty;\nexports.isMethod = isMethod;\nexports.isMiscellaneous = isMiscellaneous;\nexports.isMixedTypeAnnotation = isMixedTypeAnnotation;\nexports.isModuleDeclaration = isModuleDeclaration;\nexports.isModuleExpression = isModuleExpression;\nexports.isModuleSpecifier = isModuleSpecifier;\nexports.isNewExpression = isNewExpression;\nexports.isNoop = isNoop;\nexports.isNullLiteral = isNullLiteral;\nexports.isNullLiteralTypeAnnotation = isNullLiteralTypeAnnotation;\nexports.isNullableTypeAnnotation = isNullableTypeAnnotation;\nexports.isNumberLiteral = isNumberLiteral;\nexports.isNumberLiteralTypeAnnotation = isNumberLiteralTypeAnnotation;\nexports.isNumberTypeAnnotation = isNumberTypeAnnotation;\nexports.isNumericLiteral = isNumericLiteral;\nexports.isObjectExpression = isObjectExpression;\nexports.isObjectMember = isObjectMember;\nexports.isObjectMethod = isObjectMethod;\nexports.isObjectPattern = isObjectPattern;\nexports.isObjectProperty = isObjectProperty;\nexports.isObjectTypeAnnotation = isObjectTypeAnnotation;\nexports.isObjectTypeCallProperty = isObjectTypeCallProperty;\nexports.isObjectTypeIndexer = isObjectTypeIndexer;\nexports.isObjectTypeInternalSlot = isObjectTypeInternalSlot;\nexports.isObjectTypeProperty = isObjectTypeProperty;\nexports.isObjectTypeSpreadProperty = isObjectTypeSpreadProperty;\nexports.isOpaqueType = isOpaqueType;\nexports.isOptionalCallExpression = isOptionalCallExpression;\nexports.isOptionalIndexedAccessType = isOptionalIndexedAccessType;\nexports.isOptionalMemberExpression = isOptionalMemberExpression;\nexports.isParenthesizedExpression = isParenthesizedExpression;\nexports.isPattern = isPattern;\nexports.isPatternLike = isPatternLike;\nexports.isPipelineBareFunction = isPipelineBareFunction;\nexports.isPipelinePrimaryTopicReference = isPipelinePrimaryTopicReference;\nexports.isPipelineTopicExpression = isPipelineTopicExpression;\nexports.isPlaceholder = isPlaceholder;\nexports.isPrivate = isPrivate;\nexports.isPrivateName = isPrivateName;\nexports.isProgram = isProgram;\nexports.isProperty = isProperty;\nexports.isPureish = isPureish;\nexports.isQualifiedTypeIdentifier = isQualifiedTypeIdentifier;\nexports.isRecordExpression = isRecordExpression;\nexports.isRegExpLiteral = isRegExpLiteral;\nexports.isRegexLiteral = isRegexLiteral;\nexports.isRestElement = isRestElement;\nexports.isRestProperty = isRestProperty;\nexports.isReturnStatement = isReturnStatement;\nexports.isScopable = isScopable;\nexports.isSequenceExpression = isSequenceExpression;\nexports.isSpreadElement = isSpreadElement;\nexports.isSpreadProperty = isSpreadProperty;\nexports.isStandardized = isStandardized;\nexports.isStatement = isStatement;\nexports.isStaticBlock = isStaticBlock;\nexports.isStringLiteral = isStringLiteral;\nexports.isStringLiteralTypeAnnotation = isStringLiteralTypeAnnotation;\nexports.isStringTypeAnnotation = isStringTypeAnnotation;\nexports.isSuper = isSuper;\nexports.isSwitchCase = isSwitchCase;\nexports.isSwitchStatement = isSwitchStatement;\nexports.isSymbolTypeAnnotation = isSymbolTypeAnnotation;\nexports.isTSAnyKeyword = isTSAnyKeyword;\nexports.isTSArrayType = isTSArrayType;\nexports.isTSAsExpression = isTSAsExpression;\nexports.isTSBaseType = isTSBaseType;\nexports.isTSBigIntKeyword = isTSBigIntKeyword;\nexports.isTSBooleanKeyword = isTSBooleanKeyword;\nexports.isTSCallSignatureDeclaration = isTSCallSignatureDeclaration;\nexports.isTSConditionalType = isTSConditionalType;\nexports.isTSConstructSignatureDeclaration = isTSConstructSignatureDeclaration;\nexports.isTSConstructorType = isTSConstructorType;\nexports.isTSDeclareFunction = isTSDeclareFunction;\nexports.isTSDeclareMethod = isTSDeclareMethod;\nexports.isTSEntityName = isTSEntityName;\nexports.isTSEnumBody = isTSEnumBody;\nexports.isTSEnumDeclaration = isTSEnumDeclaration;\nexports.isTSEnumMember = isTSEnumMember;\nexports.isTSExportAssignment = isTSExportAssignment;\nexports.isTSExpressionWithTypeArguments = isTSExpressionWithTypeArguments;\nexports.isTSExternalModuleReference = isTSExternalModuleReference;\nexports.isTSFunctionType = isTSFunctionType;\nexports.isTSImportEqualsDeclaration = isTSImportEqualsDeclaration;\nexports.isTSImportType = isTSImportType;\nexports.isTSIndexSignature = isTSIndexSignature;\nexports.isTSIndexedAccessType = isTSIndexedAccessType;\nexports.isTSInferType = isTSInferType;\nexports.isTSInstantiationExpression = isTSInstantiationExpression;\nexports.isTSInterfaceBody = isTSInterfaceBody;\nexports.isTSInterfaceDeclaration = isTSInterfaceDeclaration;\nexports.isTSIntersectionType = isTSIntersectionType;\nexports.isTSIntrinsicKeyword = isTSIntrinsicKeyword;\nexports.isTSLiteralType = isTSLiteralType;\nexports.isTSMappedType = isTSMappedType;\nexports.isTSMethodSignature = isTSMethodSignature;\nexports.isTSModuleBlock = isTSModuleBlock;\nexports.isTSModuleDeclaration = isTSModuleDeclaration;\nexports.isTSNamedTupleMember = isTSNamedTupleMember;\nexports.isTSNamespaceExportDeclaration = isTSNamespaceExportDeclaration;\nexports.isTSNeverKeyword = isTSNeverKeyword;\nexports.isTSNonNullExpression = isTSNonNullExpression;\nexports.isTSNullKeyword = isTSNullKeyword;\nexports.isTSNumberKeyword = isTSNumberKeyword;\nexports.isTSObjectKeyword = isTSObjectKeyword;\nexports.isTSOptionalType = isTSOptionalType;\nexports.isTSParameterProperty = isTSParameterProperty;\nexports.isTSParenthesizedType = isTSParenthesizedType;\nexports.isTSPropertySignature = isTSPropertySignature;\nexports.isTSQualifiedName = isTSQualifiedName;\nexports.isTSRestType = isTSRestType;\nexports.isTSSatisfiesExpression = isTSSatisfiesExpression;\nexports.isTSStringKeyword = isTSStringKeyword;\nexports.isTSSymbolKeyword = isTSSymbolKeyword;\nexports.isTSTemplateLiteralType = isTSTemplateLiteralType;\nexports.isTSThisType = isTSThisType;\nexports.isTSTupleType = isTSTupleType;\nexports.isTSType = isTSType;\nexports.isTSTypeAliasDeclaration = isTSTypeAliasDeclaration;\nexports.isTSTypeAnnotation = isTSTypeAnnotation;\nexports.isTSTypeAssertion = isTSTypeAssertion;\nexports.isTSTypeElement = isTSTypeElement;\nexports.isTSTypeLiteral = isTSTypeLiteral;\nexports.isTSTypeOperator = isTSTypeOperator;\nexports.isTSTypeParameter = isTSTypeParameter;\nexports.isTSTypeParameterDeclaration = isTSTypeParameterDeclaration;\nexports.isTSTypeParameterInstantiation = isTSTypeParameterInstantiation;\nexports.isTSTypePredicate = isTSTypePredicate;\nexports.isTSTypeQuery = isTSTypeQuery;\nexports.isTSTypeReference = isTSTypeReference;\nexports.isTSUndefinedKeyword = isTSUndefinedKeyword;\nexports.isTSUnionType = isTSUnionType;\nexports.isTSUnknownKeyword = isTSUnknownKeyword;\nexports.isTSVoidKeyword = isTSVoidKeyword;\nexports.isTaggedTemplateExpression = isTaggedTemplateExpression;\nexports.isTemplateElement = isTemplateElement;\nexports.isTemplateLiteral = isTemplateLiteral;\nexports.isTerminatorless = isTerminatorless;\nexports.isThisExpression = isThisExpression;\nexports.isThisTypeAnnotation = isThisTypeAnnotation;\nexports.isThrowStatement = isThrowStatement;\nexports.isTopicReference = isTopicReference;\nexports.isTryStatement = isTryStatement;\nexports.isTupleExpression = isTupleExpression;\nexports.isTupleTypeAnnotation = isTupleTypeAnnotation;\nexports.isTypeAlias = isTypeAlias;\nexports.isTypeAnnotation = isTypeAnnotation;\nexports.isTypeCastExpression = isTypeCastExpression;\nexports.isTypeParameter = isTypeParameter;\nexports.isTypeParameterDeclaration = isTypeParameterDeclaration;\nexports.isTypeParameterInstantiation = isTypeParameterInstantiation;\nexports.isTypeScript = isTypeScript;\nexports.isTypeofTypeAnnotation = isTypeofTypeAnnotation;\nexports.isUnaryExpression = isUnaryExpression;\nexports.isUnaryLike = isUnaryLike;\nexports.isUnionTypeAnnotation = isUnionTypeAnnotation;\nexports.isUpdateExpression = isUpdateExpression;\nexports.isUserWhitespacable = isUserWhitespacable;\nexports.isV8IntrinsicIdentifier = isV8IntrinsicIdentifier;\nexports.isVariableDeclaration = isVariableDeclaration;\nexports.isVariableDeclarator = isVariableDeclarator;\nexports.isVariance = isVariance;\nexports.isVoidPattern = isVoidPattern;\nexports.isVoidTypeAnnotation = isVoidTypeAnnotation;\nexports.isWhile = isWhile;\nexports.isWhileStatement = isWhileStatement;\nexports.isWithStatement = isWithStatement;\nexports.isYieldExpression = isYieldExpression;\nvar _shallowEqual = require(\"../../utils/shallowEqual.js\");\nvar _deprecationWarning = require(\"../../utils/deprecationWarning.js\");\nfunction isArrayExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"ArrayExpression\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isAssignmentExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"AssignmentExpression\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isBinaryExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"BinaryExpression\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isInterpreterDirective(node, opts) {\n if (!node) return false;\n if (node.type !== \"InterpreterDirective\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isDirective(node, opts) {\n if (!node) return false;\n if (node.type !== \"Directive\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isDirectiveLiteral(node, opts) {\n if (!node) return false;\n if (node.type !== \"DirectiveLiteral\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isBlockStatement(node, opts) {\n if (!node) return false;\n if (node.type !== \"BlockStatement\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isBreakStatement(node, opts) {\n if (!node) return false;\n if (node.type !== \"BreakStatement\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isCallExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"CallExpression\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isCatchClause(node, opts) {\n if (!node) return false;\n if (node.type !== \"CatchClause\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isConditionalExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"ConditionalExpression\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isContinueStatement(node, opts) {\n if (!node) return false;\n if (node.type !== \"ContinueStatement\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isDebuggerStatement(node, opts) {\n if (!node) return false;\n if (node.type !== \"DebuggerStatement\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isDoWhileStatement(node, opts) {\n if (!node) return false;\n if (node.type !== \"DoWhileStatement\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isEmptyStatement(node, opts) {\n if (!node) return false;\n if (node.type !== \"EmptyStatement\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isExpressionStatement(node, opts) {\n if (!node) return false;\n if (node.type !== \"ExpressionStatement\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isFile(node, opts) {\n if (!node) return false;\n if (node.type !== \"File\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isForInStatement(node, opts) {\n if (!node) return false;\n if (node.type !== \"ForInStatement\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isForStatement(node, opts) {\n if (!node) return false;\n if (node.type !== \"ForStatement\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isFunctionDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"FunctionDeclaration\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isFunctionExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"FunctionExpression\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isIdentifier(node, opts) {\n if (!node) return false;\n if (node.type !== \"Identifier\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isIfStatement(node, opts) {\n if (!node) return false;\n if (node.type !== \"IfStatement\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isLabeledStatement(node, opts) {\n if (!node) return false;\n if (node.type !== \"LabeledStatement\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isStringLiteral(node, opts) {\n if (!node) return false;\n if (node.type !== \"StringLiteral\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isNumericLiteral(node, opts) {\n if (!node) return false;\n if (node.type !== \"NumericLiteral\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isNullLiteral(node, opts) {\n if (!node) return false;\n if (node.type !== \"NullLiteral\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isBooleanLiteral(node, opts) {\n if (!node) return false;\n if (node.type !== \"BooleanLiteral\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isRegExpLiteral(node, opts) {\n if (!node) return false;\n if (node.type !== \"RegExpLiteral\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isLogicalExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"LogicalExpression\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isMemberExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"MemberExpression\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isNewExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"NewExpression\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isProgram(node, opts) {\n if (!node) return false;\n if (node.type !== \"Program\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isObjectExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"ObjectExpression\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isObjectMethod(node, opts) {\n if (!node) return false;\n if (node.type !== \"ObjectMethod\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isObjectProperty(node, opts) {\n if (!node) return false;\n if (node.type !== \"ObjectProperty\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isRestElement(node, opts) {\n if (!node) return false;\n if (node.type !== \"RestElement\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isReturnStatement(node, opts) {\n if (!node) return false;\n if (node.type !== \"ReturnStatement\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isSequenceExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"SequenceExpression\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isParenthesizedExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"ParenthesizedExpression\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isSwitchCase(node, opts) {\n if (!node) return false;\n if (node.type !== \"SwitchCase\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isSwitchStatement(node, opts) {\n if (!node) return false;\n if (node.type !== \"SwitchStatement\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isThisExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"ThisExpression\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isThrowStatement(node, opts) {\n if (!node) return false;\n if (node.type !== \"ThrowStatement\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTryStatement(node, opts) {\n if (!node) return false;\n if (node.type !== \"TryStatement\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isUnaryExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"UnaryExpression\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isUpdateExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"UpdateExpression\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isVariableDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"VariableDeclaration\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isVariableDeclarator(node, opts) {\n if (!node) return false;\n if (node.type !== \"VariableDeclarator\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isWhileStatement(node, opts) {\n if (!node) return false;\n if (node.type !== \"WhileStatement\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isWithStatement(node, opts) {\n if (!node) return false;\n if (node.type !== \"WithStatement\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isAssignmentPattern(node, opts) {\n if (!node) return false;\n if (node.type !== \"AssignmentPattern\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isArrayPattern(node, opts) {\n if (!node) return false;\n if (node.type !== \"ArrayPattern\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isArrowFunctionExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"ArrowFunctionExpression\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isClassBody(node, opts) {\n if (!node) return false;\n if (node.type !== \"ClassBody\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isClassExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"ClassExpression\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isClassDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"ClassDeclaration\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isExportAllDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"ExportAllDeclaration\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isExportDefaultDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"ExportDefaultDeclaration\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isExportNamedDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"ExportNamedDeclaration\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isExportSpecifier(node, opts) {\n if (!node) return false;\n if (node.type !== \"ExportSpecifier\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isForOfStatement(node, opts) {\n if (!node) return false;\n if (node.type !== \"ForOfStatement\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isImportDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"ImportDeclaration\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isImportDefaultSpecifier(node, opts) {\n if (!node) return false;\n if (node.type !== \"ImportDefaultSpecifier\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isImportNamespaceSpecifier(node, opts) {\n if (!node) return false;\n if (node.type !== \"ImportNamespaceSpecifier\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isImportSpecifier(node, opts) {\n if (!node) return false;\n if (node.type !== \"ImportSpecifier\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isImportExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"ImportExpression\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isMetaProperty(node, opts) {\n if (!node) return false;\n if (node.type !== \"MetaProperty\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isClassMethod(node, opts) {\n if (!node) return false;\n if (node.type !== \"ClassMethod\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isObjectPattern(node, opts) {\n if (!node) return false;\n if (node.type !== \"ObjectPattern\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isSpreadElement(node, opts) {\n if (!node) return false;\n if (node.type !== \"SpreadElement\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isSuper(node, opts) {\n if (!node) return false;\n if (node.type !== \"Super\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTaggedTemplateExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"TaggedTemplateExpression\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTemplateElement(node, opts) {\n if (!node) return false;\n if (node.type !== \"TemplateElement\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTemplateLiteral(node, opts) {\n if (!node) return false;\n if (node.type !== \"TemplateLiteral\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isYieldExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"YieldExpression\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isAwaitExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"AwaitExpression\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isImport(node, opts) {\n if (!node) return false;\n if (node.type !== \"Import\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isBigIntLiteral(node, opts) {\n if (!node) return false;\n if (node.type !== \"BigIntLiteral\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isExportNamespaceSpecifier(node, opts) {\n if (!node) return false;\n if (node.type !== \"ExportNamespaceSpecifier\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isOptionalMemberExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"OptionalMemberExpression\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isOptionalCallExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"OptionalCallExpression\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isClassProperty(node, opts) {\n if (!node) return false;\n if (node.type !== \"ClassProperty\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isClassAccessorProperty(node, opts) {\n if (!node) return false;\n if (node.type !== \"ClassAccessorProperty\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isClassPrivateProperty(node, opts) {\n if (!node) return false;\n if (node.type !== \"ClassPrivateProperty\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isClassPrivateMethod(node, opts) {\n if (!node) return false;\n if (node.type !== \"ClassPrivateMethod\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isPrivateName(node, opts) {\n if (!node) return false;\n if (node.type !== \"PrivateName\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isStaticBlock(node, opts) {\n if (!node) return false;\n if (node.type !== \"StaticBlock\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isImportAttribute(node, opts) {\n if (!node) return false;\n if (node.type !== \"ImportAttribute\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isAnyTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"AnyTypeAnnotation\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isArrayTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"ArrayTypeAnnotation\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isBooleanTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"BooleanTypeAnnotation\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isBooleanLiteralTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"BooleanLiteralTypeAnnotation\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isNullLiteralTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"NullLiteralTypeAnnotation\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isClassImplements(node, opts) {\n if (!node) return false;\n if (node.type !== \"ClassImplements\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isDeclareClass(node, opts) {\n if (!node) return false;\n if (node.type !== \"DeclareClass\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isDeclareFunction(node, opts) {\n if (!node) return false;\n if (node.type !== \"DeclareFunction\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isDeclareInterface(node, opts) {\n if (!node) return false;\n if (node.type !== \"DeclareInterface\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isDeclareModule(node, opts) {\n if (!node) return false;\n if (node.type !== \"DeclareModule\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isDeclareModuleExports(node, opts) {\n if (!node) return false;\n if (node.type !== \"DeclareModuleExports\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isDeclareTypeAlias(node, opts) {\n if (!node) return false;\n if (node.type !== \"DeclareTypeAlias\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isDeclareOpaqueType(node, opts) {\n if (!node) return false;\n if (node.type !== \"DeclareOpaqueType\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isDeclareVariable(node, opts) {\n if (!node) return false;\n if (node.type !== \"DeclareVariable\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isDeclareExportDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"DeclareExportDeclaration\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isDeclareExportAllDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"DeclareExportAllDeclaration\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isDeclaredPredicate(node, opts) {\n if (!node) return false;\n if (node.type !== \"DeclaredPredicate\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isExistsTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"ExistsTypeAnnotation\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isFunctionTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"FunctionTypeAnnotation\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isFunctionTypeParam(node, opts) {\n if (!node) return false;\n if (node.type !== \"FunctionTypeParam\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isGenericTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"GenericTypeAnnotation\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isInferredPredicate(node, opts) {\n if (!node) return false;\n if (node.type !== \"InferredPredicate\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isInterfaceExtends(node, opts) {\n if (!node) return false;\n if (node.type !== \"InterfaceExtends\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isInterfaceDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"InterfaceDeclaration\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isInterfaceTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"InterfaceTypeAnnotation\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isIntersectionTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"IntersectionTypeAnnotation\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isMixedTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"MixedTypeAnnotation\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isEmptyTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"EmptyTypeAnnotation\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isNullableTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"NullableTypeAnnotation\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isNumberLiteralTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"NumberLiteralTypeAnnotation\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isNumberTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"NumberTypeAnnotation\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isObjectTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"ObjectTypeAnnotation\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isObjectTypeInternalSlot(node, opts) {\n if (!node) return false;\n if (node.type !== \"ObjectTypeInternalSlot\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isObjectTypeCallProperty(node, opts) {\n if (!node) return false;\n if (node.type !== \"ObjectTypeCallProperty\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isObjectTypeIndexer(node, opts) {\n if (!node) return false;\n if (node.type !== \"ObjectTypeIndexer\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isObjectTypeProperty(node, opts) {\n if (!node) return false;\n if (node.type !== \"ObjectTypeProperty\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isObjectTypeSpreadProperty(node, opts) {\n if (!node) return false;\n if (node.type !== \"ObjectTypeSpreadProperty\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isOpaqueType(node, opts) {\n if (!node) return false;\n if (node.type !== \"OpaqueType\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isQualifiedTypeIdentifier(node, opts) {\n if (!node) return false;\n if (node.type !== \"QualifiedTypeIdentifier\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isStringLiteralTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"StringLiteralTypeAnnotation\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isStringTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"StringTypeAnnotation\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isSymbolTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"SymbolTypeAnnotation\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isThisTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"ThisTypeAnnotation\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTupleTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"TupleTypeAnnotation\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTypeofTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"TypeofTypeAnnotation\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTypeAlias(node, opts) {\n if (!node) return false;\n if (node.type !== \"TypeAlias\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"TypeAnnotation\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTypeCastExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"TypeCastExpression\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTypeParameter(node, opts) {\n if (!node) return false;\n if (node.type !== \"TypeParameter\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTypeParameterDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"TypeParameterDeclaration\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTypeParameterInstantiation(node, opts) {\n if (!node) return false;\n if (node.type !== \"TypeParameterInstantiation\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isUnionTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"UnionTypeAnnotation\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isVariance(node, opts) {\n if (!node) return false;\n if (node.type !== \"Variance\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isVoidTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"VoidTypeAnnotation\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isEnumDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"EnumDeclaration\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isEnumBooleanBody(node, opts) {\n if (!node) return false;\n if (node.type !== \"EnumBooleanBody\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isEnumNumberBody(node, opts) {\n if (!node) return false;\n if (node.type !== \"EnumNumberBody\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isEnumStringBody(node, opts) {\n if (!node) return false;\n if (node.type !== \"EnumStringBody\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isEnumSymbolBody(node, opts) {\n if (!node) return false;\n if (node.type !== \"EnumSymbolBody\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isEnumBooleanMember(node, opts) {\n if (!node) return false;\n if (node.type !== \"EnumBooleanMember\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isEnumNumberMember(node, opts) {\n if (!node) return false;\n if (node.type !== \"EnumNumberMember\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isEnumStringMember(node, opts) {\n if (!node) return false;\n if (node.type !== \"EnumStringMember\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isEnumDefaultedMember(node, opts) {\n if (!node) return false;\n if (node.type !== \"EnumDefaultedMember\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isIndexedAccessType(node, opts) {\n if (!node) return false;\n if (node.type !== \"IndexedAccessType\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isOptionalIndexedAccessType(node, opts) {\n if (!node) return false;\n if (node.type !== \"OptionalIndexedAccessType\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isJSXAttribute(node, opts) {\n if (!node) return false;\n if (node.type !== \"JSXAttribute\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isJSXClosingElement(node, opts) {\n if (!node) return false;\n if (node.type !== \"JSXClosingElement\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isJSXElement(node, opts) {\n if (!node) return false;\n if (node.type !== \"JSXElement\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isJSXEmptyExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"JSXEmptyExpression\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isJSXExpressionContainer(node, opts) {\n if (!node) return false;\n if (node.type !== \"JSXExpressionContainer\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isJSXSpreadChild(node, opts) {\n if (!node) return false;\n if (node.type !== \"JSXSpreadChild\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isJSXIdentifier(node, opts) {\n if (!node) return false;\n if (node.type !== \"JSXIdentifier\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isJSXMemberExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"JSXMemberExpression\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isJSXNamespacedName(node, opts) {\n if (!node) return false;\n if (node.type !== \"JSXNamespacedName\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isJSXOpeningElement(node, opts) {\n if (!node) return false;\n if (node.type !== \"JSXOpeningElement\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isJSXSpreadAttribute(node, opts) {\n if (!node) return false;\n if (node.type !== \"JSXSpreadAttribute\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isJSXText(node, opts) {\n if (!node) return false;\n if (node.type !== \"JSXText\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isJSXFragment(node, opts) {\n if (!node) return false;\n if (node.type !== \"JSXFragment\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isJSXOpeningFragment(node, opts) {\n if (!node) return false;\n if (node.type !== \"JSXOpeningFragment\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isJSXClosingFragment(node, opts) {\n if (!node) return false;\n if (node.type !== \"JSXClosingFragment\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isNoop(node, opts) {\n if (!node) return false;\n if (node.type !== \"Noop\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isPlaceholder(node, opts) {\n if (!node) return false;\n if (node.type !== \"Placeholder\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isV8IntrinsicIdentifier(node, opts) {\n if (!node) return false;\n if (node.type !== \"V8IntrinsicIdentifier\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isArgumentPlaceholder(node, opts) {\n if (!node) return false;\n if (node.type !== \"ArgumentPlaceholder\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isBindExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"BindExpression\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isDecorator(node, opts) {\n if (!node) return false;\n if (node.type !== \"Decorator\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isDoExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"DoExpression\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isExportDefaultSpecifier(node, opts) {\n if (!node) return false;\n if (node.type !== \"ExportDefaultSpecifier\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isRecordExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"RecordExpression\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTupleExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"TupleExpression\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isDecimalLiteral(node, opts) {\n if (!node) return false;\n if (node.type !== \"DecimalLiteral\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isModuleExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"ModuleExpression\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTopicReference(node, opts) {\n if (!node) return false;\n if (node.type !== \"TopicReference\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isPipelineTopicExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"PipelineTopicExpression\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isPipelineBareFunction(node, opts) {\n if (!node) return false;\n if (node.type !== \"PipelineBareFunction\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isPipelinePrimaryTopicReference(node, opts) {\n if (!node) return false;\n if (node.type !== \"PipelinePrimaryTopicReference\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isVoidPattern(node, opts) {\n if (!node) return false;\n if (node.type !== \"VoidPattern\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSParameterProperty(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSParameterProperty\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSDeclareFunction(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSDeclareFunction\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSDeclareMethod(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSDeclareMethod\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSQualifiedName(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSQualifiedName\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSCallSignatureDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSCallSignatureDeclaration\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSConstructSignatureDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSConstructSignatureDeclaration\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSPropertySignature(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSPropertySignature\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSMethodSignature(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSMethodSignature\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSIndexSignature(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSIndexSignature\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSAnyKeyword(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSAnyKeyword\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSBooleanKeyword(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSBooleanKeyword\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSBigIntKeyword(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSBigIntKeyword\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSIntrinsicKeyword(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSIntrinsicKeyword\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSNeverKeyword(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSNeverKeyword\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSNullKeyword(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSNullKeyword\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSNumberKeyword(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSNumberKeyword\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSObjectKeyword(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSObjectKeyword\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSStringKeyword(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSStringKeyword\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSSymbolKeyword(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSSymbolKeyword\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSUndefinedKeyword(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSUndefinedKeyword\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSUnknownKeyword(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSUnknownKeyword\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSVoidKeyword(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSVoidKeyword\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSThisType(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSThisType\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSFunctionType(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSFunctionType\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSConstructorType(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSConstructorType\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSTypeReference(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSTypeReference\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSTypePredicate(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSTypePredicate\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSTypeQuery(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSTypeQuery\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSTypeLiteral(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSTypeLiteral\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSArrayType(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSArrayType\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSTupleType(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSTupleType\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSOptionalType(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSOptionalType\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSRestType(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSRestType\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSNamedTupleMember(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSNamedTupleMember\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSUnionType(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSUnionType\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSIntersectionType(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSIntersectionType\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSConditionalType(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSConditionalType\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSInferType(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSInferType\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSParenthesizedType(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSParenthesizedType\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSTypeOperator(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSTypeOperator\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSIndexedAccessType(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSIndexedAccessType\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSMappedType(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSMappedType\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSTemplateLiteralType(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSTemplateLiteralType\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSLiteralType(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSLiteralType\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSExpressionWithTypeArguments(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSExpressionWithTypeArguments\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSInterfaceDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSInterfaceDeclaration\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSInterfaceBody(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSInterfaceBody\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSTypeAliasDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSTypeAliasDeclaration\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSInstantiationExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSInstantiationExpression\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSAsExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSAsExpression\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSSatisfiesExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSSatisfiesExpression\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSTypeAssertion(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSTypeAssertion\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSEnumBody(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSEnumBody\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSEnumDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSEnumDeclaration\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSEnumMember(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSEnumMember\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSModuleDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSModuleDeclaration\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSModuleBlock(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSModuleBlock\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSImportType(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSImportType\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSImportEqualsDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSImportEqualsDeclaration\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSExternalModuleReference(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSExternalModuleReference\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSNonNullExpression(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSNonNullExpression\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSExportAssignment(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSExportAssignment\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSNamespaceExportDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSNamespaceExportDeclaration\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSTypeAnnotation(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSTypeAnnotation\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSTypeParameterInstantiation(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSTypeParameterInstantiation\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSTypeParameterDeclaration(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSTypeParameterDeclaration\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSTypeParameter(node, opts) {\n if (!node) return false;\n if (node.type !== \"TSTypeParameter\") return false;\n return opts == null || (0, _shallowEqual.default)(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 \"ImportExpression\":\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 \"Import\":\n case \"BigIntLiteral\":\n case \"ExportNamespaceSpecifier\":\n case \"OptionalMemberExpression\":\n case \"OptionalCallExpression\":\n case \"ClassProperty\":\n case \"ClassAccessorProperty\":\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 || (0, _shallowEqual.default)(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 \"ImportExpression\":\n case \"MetaProperty\":\n case \"Super\":\n case \"TaggedTemplateExpression\":\n case \"TemplateLiteral\":\n case \"YieldExpression\":\n case \"AwaitExpression\":\n case \"Import\":\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 \"RecordExpression\":\n case \"TupleExpression\":\n case \"DecimalLiteral\":\n case \"ModuleExpression\":\n case \"TopicReference\":\n case \"PipelineTopicExpression\":\n case \"PipelineBareFunction\":\n case \"PipelinePrimaryTopicReference\":\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 || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(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 case \"DecimalLiteral\":\n break;\n case \"Placeholder\":\n if (node.expectedNode === \"StringLiteral\") break;\n default:\n return false;\n }\n return opts == null || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(node, opts);\n}\nfunction isLVal(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 \"TSParameterProperty\":\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 || (0, _shallowEqual.default)(node, opts);\n}\nfunction isTSEntityName(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"Identifier\":\n case \"TSQualifiedName\":\n break;\n case \"Placeholder\":\n if (node.expectedNode === \"Identifier\") break;\n default:\n return false;\n }\n return opts == null || (0, _shallowEqual.default)(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 case \"DecimalLiteral\":\n break;\n case \"Placeholder\":\n if (node.expectedNode === \"StringLiteral\") break;\n default:\n return false;\n }\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isImmutable(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 \"BigIntLiteral\":\n case \"JSXAttribute\":\n case \"JSXClosingElement\":\n case \"JSXElement\":\n case \"JSXExpressionContainer\":\n case \"JSXSpreadChild\":\n case \"JSXOpeningElement\":\n case \"JSXText\":\n case \"JSXFragment\":\n case \"JSXOpeningFragment\":\n case \"JSXClosingFragment\":\n case \"DecimalLiteral\":\n break;\n case \"Placeholder\":\n if (node.expectedNode === \"StringLiteral\") break;\n default:\n return false;\n }\n return opts == null || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(node, opts);\n}\nfunction isProperty(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"ObjectProperty\":\n case \"ClassProperty\":\n case \"ClassAccessorProperty\":\n case \"ClassPrivateProperty\":\n break;\n default:\n return false;\n }\n return opts == null || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(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 \"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 || (0, _shallowEqual.default)(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 \"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 || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(node, opts);\n}\nfunction isMiscellaneous(node, opts) {\n if (!node) return false;\n switch (node.type) {\n case \"Noop\":\n case \"Placeholder\":\n case \"V8IntrinsicIdentifier\":\n break;\n default:\n return false;\n }\n return opts == null || (0, _shallowEqual.default)(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 \"TSExpressionWithTypeArguments\":\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 || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(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 \"TSExpressionWithTypeArguments\":\n case \"TSImportType\":\n break;\n default:\n return false;\n }\n return opts == null || (0, _shallowEqual.default)(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 || (0, _shallowEqual.default)(node, opts);\n}\nfunction isNumberLiteral(node, opts) {\n (0, _deprecationWarning.default)(\"isNumberLiteral\", \"isNumericLiteral\");\n if (!node) return false;\n if (node.type !== \"NumberLiteral\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isRegexLiteral(node, opts) {\n (0, _deprecationWarning.default)(\"isRegexLiteral\", \"isRegExpLiteral\");\n if (!node) return false;\n if (node.type !== \"RegexLiteral\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isRestProperty(node, opts) {\n (0, _deprecationWarning.default)(\"isRestProperty\", \"isRestElement\");\n if (!node) return false;\n if (node.type !== \"RestProperty\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isSpreadProperty(node, opts) {\n (0, _deprecationWarning.default)(\"isSpreadProperty\", \"isSpreadElement\");\n if (!node) return false;\n if (node.type !== \"SpreadProperty\") return false;\n return opts == null || (0, _shallowEqual.default)(node, opts);\n}\nfunction isModuleDeclaration(node, opts) {\n (0, _deprecationWarning.default)(\"isModuleDeclaration\", \"isImportOrExportDeclaration\");\n return isImportOrExportDeclaration(node, opts);\n}\n\n//# sourceMappingURL=index.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = matchesPattern;\nvar _index = require(\"./generated/index.js\");\nfunction isMemberExpressionLike(node) {\n return (0, _index.isMemberExpression)(node) || (0, _index.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 = (_object = node.object) != null ? _object : node.meta) {\n var _object;\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 ((0, _index.isIdentifier)(node)) {\n value = node.name;\n } else if ((0, _index.isStringLiteral)(node)) {\n value = node.value;\n } else if ((0, _index.isThisExpression)(node)) {\n value = \"this\";\n } else if ((0, _index.isSuper)(node)) {\n value = \"super\";\n } else if ((0, _index.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\n//# sourceMappingURL=matchesPattern.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = buildMatchMemberExpression;\nvar _matchesPattern = require(\"./matchesPattern.js\");\nfunction buildMatchMemberExpression(match, allowPartial) {\n const parts = match.split(\".\");\n return member => (0, _matchesPattern.default)(member, parts, allowPartial);\n}\n\n//# sourceMappingURL=buildMatchMemberExpression.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _buildMatchMemberExpression = require(\"../buildMatchMemberExpression.js\");\nconst isReactComponent = (0, _buildMatchMemberExpression.default)(\"React.Component\");\nvar _default = exports.default = isReactComponent;\n\n//# sourceMappingURL=isReactComponent.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isCompatTag;\nfunction isCompatTag(tagName) {\n return !!tagName && /^[a-z]/.test(tagName);\n}\n\n//# sourceMappingURL=isCompatTag.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isType;\nvar _index = require(\"../definitions/index.js\");\nfunction isType(nodeType, targetType) {\n if (nodeType === targetType) return true;\n if (nodeType == null) return false;\n if (_index.ALIAS_KEYS[targetType]) return false;\n const aliases = _index.FLIPPED_ALIAS_KEYS[targetType];\n if (aliases != null && aliases.includes(nodeType)) return true;\n return false;\n}\n\n//# sourceMappingURL=isType.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isPlaceholderType;\nvar _index = require(\"../definitions/index.js\");\nfunction isPlaceholderType(placeholderType, targetType) {\n if (placeholderType === targetType) return true;\n const aliases = _index.PLACEHOLDERS_ALIAS[placeholderType];\n if (aliases != null && aliases.includes(targetType)) return true;\n return false;\n}\n\n//# sourceMappingURL=isPlaceholderType.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = is;\nvar _shallowEqual = require(\"../utils/shallowEqual.js\");\nvar _isType = require(\"./isType.js\");\nvar _isPlaceholderType = require(\"./isPlaceholderType.js\");\nvar _index = require(\"../definitions/index.js\");\nfunction is(type, node, opts) {\n if (!node) return false;\n const matches = (0, _isType.default)(node.type, type);\n if (!matches) {\n if (!opts && node.type === \"Placeholder\" && type in _index.FLIPPED_ALIAS_KEYS) {\n return (0, _isPlaceholderType.default)(node.expectedNode, type);\n }\n return false;\n }\n if (opts === undefined) {\n return true;\n } else {\n return (0, _shallowEqual.default)(node, opts);\n }\n}\n\n//# sourceMappingURL=is.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isIdentifierChar = isIdentifierChar;\nexports.isIdentifierName = isIdentifierName;\nexports.isIdentifierStart = isIdentifierStart;\nlet nonASCIIidentifierStartChars = \"\\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\";\nlet nonASCIIidentifierChars = \"\\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 nonASCIIidentifierStart = new RegExp(\"[\" + nonASCIIidentifierStartChars + \"]\");\nconst nonASCIIidentifier = new RegExp(\"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\");\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null;\nconst astralIdentifierStartCodes = [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 astralIdentifierCodes = [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];\nfunction isInAstralSet(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 && nonASCIIidentifierStart.test(String.fromCharCode(code));\n }\n return isInAstralSet(code, astralIdentifierStartCodes);\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 && nonASCIIidentifier.test(String.fromCharCode(code));\n }\n return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes);\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\n//# sourceMappingURL=identifier.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isKeyword = isKeyword;\nexports.isReservedWord = isReservedWord;\nexports.isStrictBindOnlyReservedWord = isStrictBindOnlyReservedWord;\nexports.isStrictBindReservedWord = isStrictBindReservedWord;\nexports.isStrictReservedWord = isStrictReservedWord;\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\n//# sourceMappingURL=keyword.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"isIdentifierChar\", {\n enumerable: true,\n get: function () {\n return _identifier.isIdentifierChar;\n }\n});\nObject.defineProperty(exports, \"isIdentifierName\", {\n enumerable: true,\n get: function () {\n return _identifier.isIdentifierName;\n }\n});\nObject.defineProperty(exports, \"isIdentifierStart\", {\n enumerable: true,\n get: function () {\n return _identifier.isIdentifierStart;\n }\n});\nObject.defineProperty(exports, \"isKeyword\", {\n enumerable: true,\n get: function () {\n return _keyword.isKeyword;\n }\n});\nObject.defineProperty(exports, \"isReservedWord\", {\n enumerable: true,\n get: function () {\n return _keyword.isReservedWord;\n }\n});\nObject.defineProperty(exports, \"isStrictBindOnlyReservedWord\", {\n enumerable: true,\n get: function () {\n return _keyword.isStrictBindOnlyReservedWord;\n }\n});\nObject.defineProperty(exports, \"isStrictBindReservedWord\", {\n enumerable: true,\n get: function () {\n return _keyword.isStrictBindReservedWord;\n }\n});\nObject.defineProperty(exports, \"isStrictReservedWord\", {\n enumerable: true,\n get: function () {\n return _keyword.isStrictReservedWord;\n }\n});\nvar _identifier = require(\"./identifier.js\");\nvar _keyword = require(\"./keyword.js\");\n\n//# sourceMappingURL=index.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isValidIdentifier;\nvar _helperValidatorIdentifier = require(\"@babel/helper-validator-identifier\");\nfunction isValidIdentifier(name, reserved = true) {\n if (typeof name !== \"string\") return false;\n if (reserved) {\n if ((0, _helperValidatorIdentifier.isKeyword)(name) || (0, _helperValidatorIdentifier.isStrictReservedWord)(name, true)) {\n return false;\n }\n }\n return (0, _helperValidatorIdentifier.isIdentifierName)(name);\n}\n\n//# sourceMappingURL=isValidIdentifier.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.readCodePoint = readCodePoint;\nexports.readInt = readInt;\nexports.readStringContents = readStringContents;\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 containsInvalid: !!firstInvalidLoc\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\n//# sourceMappingURL=index.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.UPDATE_OPERATORS = exports.UNARY_OPERATORS = exports.STRING_UNARY_OPERATORS = exports.STATEMENT_OR_BLOCK_KEYS = exports.NUMBER_UNARY_OPERATORS = exports.NUMBER_BINARY_OPERATORS = exports.LOGICAL_OPERATORS = exports.INHERIT_KEYS = exports.FOR_INIT_KEYS = exports.FLATTENABLE_KEYS = exports.EQUALITY_BINARY_OPERATORS = exports.COMPARISON_BINARY_OPERATORS = exports.COMMENT_KEYS = exports.BOOLEAN_UNARY_OPERATORS = exports.BOOLEAN_NUMBER_BINARY_OPERATORS = exports.BOOLEAN_BINARY_OPERATORS = exports.BINARY_OPERATORS = exports.ASSIGNMENT_OPERATORS = void 0;\nconst STATEMENT_OR_BLOCK_KEYS = exports.STATEMENT_OR_BLOCK_KEYS = [\"consequent\", \"body\", \"alternate\"];\nconst FLATTENABLE_KEYS = exports.FLATTENABLE_KEYS = [\"body\", \"expressions\"];\nconst FOR_INIT_KEYS = exports.FOR_INIT_KEYS = [\"left\", \"init\"];\nconst COMMENT_KEYS = exports.COMMENT_KEYS = [\"leadingComments\", \"trailingComments\", \"innerComments\"];\nconst LOGICAL_OPERATORS = exports.LOGICAL_OPERATORS = [\"||\", \"&&\", \"??\"];\nconst UPDATE_OPERATORS = exports.UPDATE_OPERATORS = [\"++\", \"--\"];\nconst BOOLEAN_NUMBER_BINARY_OPERATORS = exports.BOOLEAN_NUMBER_BINARY_OPERATORS = [\">\", \"<\", \">=\", \"<=\"];\nconst EQUALITY_BINARY_OPERATORS = exports.EQUALITY_BINARY_OPERATORS = [\"==\", \"===\", \"!=\", \"!==\"];\nconst COMPARISON_BINARY_OPERATORS = exports.COMPARISON_BINARY_OPERATORS = [...EQUALITY_BINARY_OPERATORS, \"in\", \"instanceof\"];\nconst BOOLEAN_BINARY_OPERATORS = exports.BOOLEAN_BINARY_OPERATORS = [...COMPARISON_BINARY_OPERATORS, ...BOOLEAN_NUMBER_BINARY_OPERATORS];\nconst NUMBER_BINARY_OPERATORS = exports.NUMBER_BINARY_OPERATORS = [\"-\", \"/\", \"%\", \"*\", \"**\", \"&\", \"|\", \">>\", \">>>\", \"<<\", \"^\"];\nconst BINARY_OPERATORS = exports.BINARY_OPERATORS = [\"+\", ...NUMBER_BINARY_OPERATORS, ...BOOLEAN_BINARY_OPERATORS, \"|>\"];\nconst ASSIGNMENT_OPERATORS = exports.ASSIGNMENT_OPERATORS = [\"=\", \"+=\", ...NUMBER_BINARY_OPERATORS.map(op => op + \"=\"), ...LOGICAL_OPERATORS.map(op => op + \"=\")];\nconst BOOLEAN_UNARY_OPERATORS = exports.BOOLEAN_UNARY_OPERATORS = [\"delete\", \"!\"];\nconst NUMBER_UNARY_OPERATORS = exports.NUMBER_UNARY_OPERATORS = [\"+\", \"-\", \"~\"];\nconst STRING_UNARY_OPERATORS = exports.STRING_UNARY_OPERATORS = [\"typeof\"];\nconst UNARY_OPERATORS = exports.UNARY_OPERATORS = [\"void\", \"throw\", ...BOOLEAN_UNARY_OPERATORS, ...NUMBER_UNARY_OPERATORS, ...STRING_UNARY_OPERATORS];\nconst INHERIT_KEYS = exports.INHERIT_KEYS = {\n optional: [\"typeAnnotation\", \"typeParameters\", \"returnType\"],\n force: [\"start\", \"loc\", \"end\"]\n};\n{\n exports.BLOCK_SCOPED_SYMBOL = Symbol.for(\"var used to be block scoped\");\n exports.NOT_LOCAL_BINDING = Symbol.for(\"should not be considered a local binding\");\n}\n\n//# sourceMappingURL=index.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.allExpandedTypes = exports.VISITOR_KEYS = exports.NODE_UNION_SHAPES__PRIVATE = exports.NODE_PARENT_VALIDATIONS = exports.NODE_FIELDS = exports.FLIPPED_ALIAS_KEYS = exports.DEPRECATED_KEYS = exports.BUILDER_KEYS = exports.ALIAS_KEYS = void 0;\nexports.arrayOf = arrayOf;\nexports.arrayOfType = arrayOfType;\nexports.assertEach = assertEach;\nexports.assertNodeOrValueType = assertNodeOrValueType;\nexports.assertNodeType = assertNodeType;\nexports.assertOneOf = assertOneOf;\nexports.assertOptionalChainStart = assertOptionalChainStart;\nexports.assertShape = assertShape;\nexports.assertValueType = assertValueType;\nexports.chain = chain;\nexports.default = defineType;\nexports.defineAliasedType = defineAliasedType;\nexports.validate = validate;\nexports.validateArrayOfType = validateArrayOfType;\nexports.validateOptional = validateOptional;\nexports.validateOptionalType = validateOptionalType;\nexports.validateType = validateType;\nvar _is = require(\"../validators/is.js\");\nvar _validate = require(\"../validators/validate.js\");\nconst VISITOR_KEYS = exports.VISITOR_KEYS = {};\nconst ALIAS_KEYS = exports.ALIAS_KEYS = {};\nconst FLIPPED_ALIAS_KEYS = exports.FLIPPED_ALIAS_KEYS = {};\nconst NODE_FIELDS = exports.NODE_FIELDS = {};\nconst BUILDER_KEYS = exports.BUILDER_KEYS = {};\nconst DEPRECATED_KEYS = exports.DEPRECATED_KEYS = {};\nconst NODE_PARENT_VALIDATIONS = exports.NODE_PARENT_VALIDATIONS = {};\nconst NODE_UNION_SHAPES__PRIVATE = exports.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 validate(validate) {\n return {\n validate\n };\n}\nfunction validateType(...typeNames) {\n return validate(assertNodeType(...typeNames));\n}\nfunction validateOptional(validate) {\n return {\n validate,\n optional: true\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(arrayOfType(...typeNames));\n}\nfunction assertEach(callback) {\n const childValidator = process.env.BABEL_TYPES_8_BREAKING ? _validate.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 = exports.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 == null ? void 0 : val.type;\n if (valType != null) {\n if (expandedTypes.has(valType)) {\n (0, _validate.validateChild)(node, key, val);\n return;\n }\n if (valType === \"Placeholder\") {\n for (const type of types) {\n if ((0, _is.default)(type, val)) {\n (0, _validate.validateChild)(node, key, val);\n return;\n }\n }\n }\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 || (0, _is.default)(type, val)) {\n (0, _validate.validateChild)(node, key, val);\n return;\n }\n }\n throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val == null ? void 0 : val.type)}`);\n }\n validate.oneOfNodeOrValueTypes = types;\n return validate;\n}\nfunction assertValueType(type) {\n function validate(node, key, val) {\n 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 (0, _validate.validateField)(node, property, val[property], shape[property]);\n } catch (error) {\n if (error instanceof TypeError) {\n errors.push(error.message);\n continue;\n }\n throw error;\n }\n }\n if (errors.length) {\n throw new TypeError(`Property ${key} of ${node.type} expected to have the following:\\n${errors.join(\"\\n\")}`);\n }\n }\n validate.shapeOf = shape;\n return validate;\n}\nfunction assertOptionalChainStart() {\n function validate(node) {\n var _current;\n let current = node;\n while (node) {\n const {\n type\n } = current;\n if (type === \"OptionalCallExpression\") {\n if (current.optional) return;\n current = current.callee;\n continue;\n }\n if (type === \"OptionalMemberExpression\") {\n if (current.optional) return;\n current = current.object;\n continue;\n }\n break;\n }\n throw new TypeError(`Non-optional ${node.type} must chain from an optional OptionalMemberExpression or OptionalCallExpression. Found chain from ${(_current = current) == null ? void 0 : _current.type}`);\n }\n return validate;\n}\nfunction chain(...fns) {\n function validate(...args) {\n for (const fn of fns) {\n fn(...args);\n }\n }\n validate.chainOf = fns;\n if (fns.length >= 2 && \"type\" in fns[0] && fns[0].type === \"array\" && !(\"each\" in fns[1])) {\n throw new Error(`An assertValueType(\"array\") validator can only be followed by an assertEach(...) validator.`);\n }\n return validate;\n}\nconst validTypeOpts = 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 var _store$opts$inherits$;\n if (opts.inherits) defined = (_store$opts$inherits$ = store[opts.inherits].aliases) == null ? void 0 : _store$opts$inherits$.slice();\n defined != null ? defined : defined = [];\n opts.aliases = defined;\n }\n const additional = aliases.filter(a => !defined.includes(a));\n defined.unshift(...additional);\n defineType(type, opts);\n };\n}\nfunction defineType(type, opts = {}) {\n const inherits = opts.inherits && store[opts.inherits] || {};\n let fields = opts.fields;\n if (!fields) {\n fields = {};\n if (inherits.fields) {\n const keys = Object.getOwnPropertyNames(inherits.fields);\n for (const key of keys) {\n const field = inherits.fields[key];\n const def = field.default;\n if (Array.isArray(def) ? def.length > 0 : def && typeof def === \"object\") {\n throw new Error(\"field defaults can only be primitives or empty arrays currently\");\n }\n fields[key] = {\n default: Array.isArray(def) ? [] : def,\n optional: field.optional,\n deprecated: field.deprecated,\n validate: field.validate\n };\n }\n }\n }\n const visitor = opts.visitor || inherits.visitor || [];\n const aliases = opts.aliases || inherits.aliases || [];\n const builder = opts.builder || inherits.builder || opts.visitor || [];\n for (const k of Object.keys(opts)) {\n if (!validTypeOpts.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 !== undefined && !builder.includes(key)) {\n field.optional = true;\n }\n if (field.default === undefined) {\n field.default = null;\n } else if (!field.validate && field.default != null) {\n field.validate = assertValueType(getType(field.default));\n }\n for (const k of Object.keys(field)) {\n if (!validFieldKeys.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[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\n//# sourceMappingURL=utils.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.patternLikeCommon = exports.importAttributes = exports.functionTypeAnnotationCommon = exports.functionDeclarationCommon = exports.functionCommon = exports.classMethodOrPropertyUnionShapeCommon = exports.classMethodOrPropertyCommon = exports.classMethodOrDeclareMethodCommon = void 0;\nvar _is = require(\"../validators/is.js\");\nvar _isValidIdentifier = require(\"../validators/isValidIdentifier.js\");\nvar _helperValidatorIdentifier = require(\"@babel/helper-validator-identifier\");\nvar _helperStringParser = require(\"@babel/helper-string-parser\");\nvar _index = require(\"../constants/index.js\");\nvar _utils = require(\"./utils.js\");\nconst classMethodOrPropertyUnionShapeCommon = (allowPrivateName = false) => ({\n unionShape: {\n discriminator: \"computed\",\n shapes: [{\n name: \"computed\",\n value: [true],\n properties: {\n key: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n }\n }, {\n name: \"nonComputed\",\n value: [false],\n properties: {\n key: {\n validate: allowPrivateName ? (0, _utils.assertNodeType)(\"Identifier\", \"StringLiteral\", \"NumericLiteral\", \"BigIntLiteral\", \"PrivateName\") : (0, _utils.assertNodeType)(\"Identifier\", \"StringLiteral\", \"NumericLiteral\", \"BigIntLiteral\")\n }\n }\n }]\n }\n});\nexports.classMethodOrPropertyUnionShapeCommon = classMethodOrPropertyUnionShapeCommon;\nconst defineType = (0, _utils.defineAliasedType)(\"Standardized\");\ndefineType(\"ArrayExpression\", {\n fields: {\n elements: {\n validate: (0, _utils.arrayOf)((0, _utils.assertNodeOrValueType)(\"null\", \"Expression\", \"SpreadElement\")),\n default: !process.env.BABEL_TYPES_8_BREAKING ? [] : undefined\n }\n },\n visitor: [\"elements\"],\n aliases: [\"Expression\"]\n});\ndefineType(\"AssignmentExpression\", {\n fields: {\n operator: {\n validate: !process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.assertValueType)(\"string\") : Object.assign(function () {\n const identifier = (0, _utils.assertOneOf)(..._index.ASSIGNMENT_OPERATORS);\n const pattern = (0, _utils.assertOneOf)(\"=\");\n return function (node, key, val) {\n const validator = (0, _is.default)(\"Pattern\", node.left) ? pattern : identifier;\n validator(node, key, val);\n };\n }(), {\n oneOf: _index.ASSIGNMENT_OPERATORS\n })\n },\n left: {\n validate: !process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.assertNodeType)(\"LVal\", \"OptionalMemberExpression\") : (0, _utils.assertNodeType)(\"Identifier\", \"MemberExpression\", \"OptionalMemberExpression\", \"ArrayPattern\", \"ObjectPattern\", \"TSAsExpression\", \"TSSatisfiesExpression\", \"TSTypeAssertion\", \"TSNonNullExpression\")\n },\n right: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n },\n builder: [\"operator\", \"left\", \"right\"],\n visitor: [\"left\", \"right\"],\n aliases: [\"Expression\"]\n});\ndefineType(\"BinaryExpression\", {\n builder: [\"operator\", \"left\", \"right\"],\n fields: {\n operator: {\n validate: (0, _utils.assertOneOf)(..._index.BINARY_OPERATORS)\n },\n left: {\n validate: function () {\n const expression = (0, _utils.assertNodeType)(\"Expression\");\n const inOp = (0, _utils.assertNodeType)(\"Expression\", \"PrivateName\");\n const validator = Object.assign(function (node, key, val) {\n const validator = node.operator === \"in\" ? inOp : expression;\n validator(node, key, val);\n }, {\n oneOfNodeTypes: [\"Expression\", \"PrivateName\"]\n });\n return validator;\n }()\n },\n right: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n },\n visitor: [\"left\", \"right\"],\n aliases: [\"Binary\", \"Expression\"]\n});\ndefineType(\"InterpreterDirective\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: (0, _utils.assertValueType)(\"string\")\n }\n }\n});\ndefineType(\"Directive\", {\n visitor: [\"value\"],\n fields: {\n value: {\n validate: (0, _utils.assertNodeType)(\"DirectiveLiteral\")\n }\n }\n});\ndefineType(\"DirectiveLiteral\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: (0, _utils.assertValueType)(\"string\")\n }\n }\n});\ndefineType(\"BlockStatement\", {\n builder: [\"body\", \"directives\"],\n visitor: [\"directives\", \"body\"],\n fields: {\n directives: {\n validate: (0, _utils.arrayOfType)(\"Directive\"),\n default: []\n },\n body: (0, _utils.validateArrayOfType)(\"Statement\")\n },\n aliases: [\"Scopable\", \"BlockParent\", \"Block\", \"Statement\"]\n});\ndefineType(\"BreakStatement\", {\n visitor: [\"label\"],\n fields: {\n label: {\n validate: (0, _utils.assertNodeType)(\"Identifier\"),\n optional: true\n }\n },\n aliases: [\"Statement\", \"Terminatorless\", \"CompletionStatement\"]\n});\ndefineType(\"CallExpression\", {\n visitor: [\"callee\", \"typeParameters\", \"typeArguments\", \"arguments\"],\n builder: [\"callee\", \"arguments\"],\n aliases: [\"Expression\"],\n fields: Object.assign({\n callee: {\n validate: (0, _utils.assertNodeType)(\"Expression\", \"Super\", \"V8IntrinsicIdentifier\")\n },\n arguments: (0, _utils.validateArrayOfType)(\"Expression\", \"SpreadElement\", \"ArgumentPlaceholder\"),\n typeArguments: {\n validate: (0, _utils.assertNodeType)(\"TypeParameterInstantiation\"),\n optional: true\n }\n }, process.env.BABEL_TYPES_8_BREAKING ? {} : {\n optional: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n typeParameters: {\n validate: (0, _utils.assertNodeType)(\"TSTypeParameterInstantiation\"),\n optional: true\n }\n })\n});\ndefineType(\"CatchClause\", {\n visitor: [\"param\", \"body\"],\n fields: {\n param: {\n validate: (0, _utils.assertNodeType)(\"Identifier\", \"ArrayPattern\", \"ObjectPattern\"),\n optional: true\n },\n body: {\n validate: (0, _utils.assertNodeType)(\"BlockStatement\")\n }\n },\n aliases: [\"Scopable\", \"BlockParent\"]\n});\ndefineType(\"ConditionalExpression\", {\n visitor: [\"test\", \"consequent\", \"alternate\"],\n fields: {\n test: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n consequent: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n alternate: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n },\n aliases: [\"Expression\", \"Conditional\"]\n});\ndefineType(\"ContinueStatement\", {\n visitor: [\"label\"],\n fields: {\n label: {\n validate: (0, _utils.assertNodeType)(\"Identifier\"),\n optional: true\n }\n },\n aliases: [\"Statement\", \"Terminatorless\", \"CompletionStatement\"]\n});\ndefineType(\"DebuggerStatement\", {\n aliases: [\"Statement\"]\n});\ndefineType(\"DoWhileStatement\", {\n builder: [\"test\", \"body\"],\n visitor: [\"body\", \"test\"],\n fields: {\n test: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n body: {\n validate: (0, _utils.assertNodeType)(\"Statement\")\n }\n },\n aliases: [\"Statement\", \"BlockParent\", \"Loop\", \"While\", \"Scopable\"]\n});\ndefineType(\"EmptyStatement\", {\n aliases: [\"Statement\"]\n});\ndefineType(\"ExpressionStatement\", {\n visitor: [\"expression\"],\n fields: {\n expression: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n },\n aliases: [\"Statement\", \"ExpressionWrapper\"]\n});\ndefineType(\"File\", {\n builder: [\"program\", \"comments\", \"tokens\"],\n visitor: [\"program\"],\n fields: {\n program: {\n validate: (0, _utils.assertNodeType)(\"Program\")\n },\n comments: {\n validate: !process.env.BABEL_TYPES_8_BREAKING ? Object.assign(() => {}, {\n each: {\n oneOfNodeTypes: [\"CommentBlock\", \"CommentLine\"]\n }\n }) : (0, _utils.assertEach)((0, _utils.assertNodeType)(\"CommentBlock\", \"CommentLine\")),\n optional: true\n },\n tokens: {\n validate: (0, _utils.assertEach)(Object.assign(() => {}, {\n type: \"any\"\n })),\n optional: true\n }\n }\n});\ndefineType(\"ForInStatement\", {\n visitor: [\"left\", \"right\", \"body\"],\n aliases: [\"Scopable\", \"Statement\", \"For\", \"BlockParent\", \"Loop\", \"ForXStatement\"],\n fields: {\n left: {\n validate: !process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.assertNodeType)(\"VariableDeclaration\", \"LVal\") : (0, _utils.assertNodeType)(\"VariableDeclaration\", \"Identifier\", \"MemberExpression\", \"ArrayPattern\", \"ObjectPattern\", \"TSAsExpression\", \"TSSatisfiesExpression\", \"TSTypeAssertion\", \"TSNonNullExpression\")\n },\n right: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n body: {\n validate: (0, _utils.assertNodeType)(\"Statement\")\n }\n }\n});\ndefineType(\"ForStatement\", {\n visitor: [\"init\", \"test\", \"update\", \"body\"],\n aliases: [\"Scopable\", \"Statement\", \"For\", \"BlockParent\", \"Loop\"],\n fields: {\n init: {\n validate: (0, _utils.assertNodeType)(\"VariableDeclaration\", \"Expression\"),\n optional: true\n },\n test: {\n validate: (0, _utils.assertNodeType)(\"Expression\"),\n optional: true\n },\n update: {\n validate: (0, _utils.assertNodeType)(\"Expression\"),\n optional: true\n },\n body: {\n validate: (0, _utils.assertNodeType)(\"Statement\")\n }\n }\n});\nconst functionCommon = () => ({\n params: (0, _utils.validateArrayOfType)(\"FunctionParameter\"),\n generator: {\n default: false\n },\n async: {\n default: false\n }\n});\nexports.functionCommon = functionCommon;\nconst functionTypeAnnotationCommon = () => ({\n returnType: {\n validate: (0, _utils.assertNodeType)(\"TypeAnnotation\", \"TSTypeAnnotation\", \"Noop\"),\n optional: true\n },\n typeParameters: {\n validate: (0, _utils.assertNodeType)(\"TypeParameterDeclaration\", \"TSTypeParameterDeclaration\", \"Noop\"),\n optional: true\n }\n});\nexports.functionTypeAnnotationCommon = functionTypeAnnotationCommon;\nconst functionDeclarationCommon = () => Object.assign({}, functionCommon(), {\n declare: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n id: {\n validate: (0, _utils.assertNodeType)(\"Identifier\"),\n optional: true\n }\n});\nexports.functionDeclarationCommon = functionDeclarationCommon;\ndefineType(\"FunctionDeclaration\", {\n builder: [\"id\", \"params\", \"body\", \"generator\", \"async\"],\n visitor: [\"id\", \"typeParameters\", \"params\", \"predicate\", \"returnType\", \"body\"],\n fields: Object.assign({}, functionDeclarationCommon(), functionTypeAnnotationCommon(), {\n body: {\n validate: (0, _utils.assertNodeType)(\"BlockStatement\")\n },\n predicate: {\n validate: (0, _utils.assertNodeType)(\"DeclaredPredicate\", \"InferredPredicate\"),\n optional: true\n }\n }),\n aliases: [\"Scopable\", \"Function\", \"BlockParent\", \"FunctionParent\", \"Statement\", \"Pureish\", \"Declaration\"],\n validate: !process.env.BABEL_TYPES_8_BREAKING ? undefined : function () {\n const identifier = (0, _utils.assertNodeType)(\"Identifier\");\n return function (parent, key, node) {\n if (!(0, _is.default)(\"ExportDefaultDeclaration\", parent)) {\n identifier(node, \"id\", node.id);\n }\n };\n }()\n});\ndefineType(\"FunctionExpression\", {\n inherits: \"FunctionDeclaration\",\n aliases: [\"Scopable\", \"Function\", \"BlockParent\", \"FunctionParent\", \"Expression\", \"Pureish\"],\n fields: Object.assign({}, functionCommon(), functionTypeAnnotationCommon(), {\n id: {\n validate: (0, _utils.assertNodeType)(\"Identifier\"),\n optional: true\n },\n body: {\n validate: (0, _utils.assertNodeType)(\"BlockStatement\")\n },\n predicate: {\n validate: (0, _utils.assertNodeType)(\"DeclaredPredicate\", \"InferredPredicate\"),\n optional: true\n }\n })\n});\nconst patternLikeCommon = () => ({\n typeAnnotation: {\n validate: (0, _utils.assertNodeType)(\"TypeAnnotation\", \"TSTypeAnnotation\", \"Noop\"),\n optional: true\n },\n optional: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n decorators: {\n validate: (0, _utils.arrayOfType)(\"Decorator\"),\n optional: true\n }\n});\nexports.patternLikeCommon = patternLikeCommon;\ndefineType(\"Identifier\", {\n builder: [\"name\"],\n visitor: [\"typeAnnotation\", \"decorators\"],\n aliases: [\"Expression\", \"FunctionParameter\", \"PatternLike\", \"LVal\", \"TSEntityName\"],\n fields: Object.assign({}, patternLikeCommon(), {\n name: {\n validate: process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.chain)((0, _utils.assertValueType)(\"string\"), Object.assign(function (node, key, val) {\n if (!(0, _isValidIdentifier.default)(val, false)) {\n throw new TypeError(`\"${val}\" is not a valid identifier name`);\n }\n }, {\n type: \"string\"\n })) : (0, _utils.assertValueType)(\"string\")\n }\n }),\n validate: process.env.BABEL_TYPES_8_BREAKING ? 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 ((0, _is.default)(\"MemberExpression\", parent, nonComp)) return;\n if ((0, _is.default)(\"OptionalMemberExpression\", parent, nonComp)) return;\n } else if (parentKey === \"key\") {\n if ((0, _is.default)(\"Property\", parent, nonComp)) return;\n if ((0, _is.default)(\"Method\", parent, nonComp)) return;\n } else if (parentKey === \"exported\") {\n if ((0, _is.default)(\"ExportSpecifier\", parent)) return;\n } else if (parentKey === \"imported\") {\n if ((0, _is.default)(\"ImportSpecifier\", parent, {\n imported: node\n })) return;\n } else if (parentKey === \"meta\") {\n if ((0, _is.default)(\"MetaProperty\", parent, {\n meta: node\n })) return;\n }\n if (((0, _helperValidatorIdentifier.isKeyword)(node.name) || (0, _helperValidatorIdentifier.isReservedWord)(node.name, false)) && node.name !== \"this\") {\n throw new TypeError(`\"${node.name}\" is not a valid identifier`);\n }\n } : undefined\n});\ndefineType(\"IfStatement\", {\n visitor: [\"test\", \"consequent\", \"alternate\"],\n aliases: [\"Statement\", \"Conditional\"],\n fields: {\n test: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n consequent: {\n validate: (0, _utils.assertNodeType)(\"Statement\")\n },\n alternate: {\n optional: true,\n validate: (0, _utils.assertNodeType)(\"Statement\")\n }\n }\n});\ndefineType(\"LabeledStatement\", {\n visitor: [\"label\", \"body\"],\n aliases: [\"Statement\"],\n fields: {\n label: {\n validate: (0, _utils.assertNodeType)(\"Identifier\")\n },\n body: {\n validate: (0, _utils.assertNodeType)(\"Statement\")\n }\n }\n});\ndefineType(\"StringLiteral\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: (0, _utils.assertValueType)(\"string\")\n }\n },\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"]\n});\ndefineType(\"NumericLiteral\", {\n builder: [\"value\"],\n deprecatedAlias: \"NumberLiteral\",\n fields: {\n value: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"number\"), Object.assign(function (node, key, val) {\n if (1 / val < 0 || !Number.isFinite(val)) {\n const error = new Error(\"NumericLiterals must be non-negative finite numbers. \" + `You can use t.valueToNode(${val}) instead.`);\n {}\n }\n }, {\n type: \"number\"\n }))\n }\n },\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"]\n});\ndefineType(\"NullLiteral\", {\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"]\n});\ndefineType(\"BooleanLiteral\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: (0, _utils.assertValueType)(\"boolean\")\n }\n },\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"]\n});\ndefineType(\"RegExpLiteral\", {\n builder: [\"pattern\", \"flags\"],\n deprecatedAlias: \"RegexLiteral\",\n aliases: [\"Expression\", \"Pureish\", \"Literal\"],\n fields: {\n pattern: {\n validate: (0, _utils.assertValueType)(\"string\")\n },\n flags: {\n validate: process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.chain)((0, _utils.assertValueType)(\"string\"), Object.assign(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 })) : (0, _utils.assertValueType)(\"string\"),\n default: \"\"\n }\n }\n});\ndefineType(\"LogicalExpression\", {\n builder: [\"operator\", \"left\", \"right\"],\n visitor: [\"left\", \"right\"],\n aliases: [\"Binary\", \"Expression\"],\n fields: {\n operator: {\n validate: (0, _utils.assertOneOf)(..._index.LOGICAL_OPERATORS)\n },\n left: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n right: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n }\n});\ndefineType(\"MemberExpression\", {\n builder: [\"object\", \"property\", \"computed\", ...(!process.env.BABEL_TYPES_8_BREAKING ? [\"optional\"] : [])],\n visitor: [\"object\", \"property\"],\n aliases: [\"Expression\", \"LVal\", \"PatternLike\"],\n unionShape: {\n discriminator: \"computed\",\n shapes: [{\n name: \"computed\",\n value: [true],\n properties: {\n property: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n }\n }, {\n name: \"nonComputed\",\n value: [false],\n properties: {\n property: {\n validate: (0, _utils.assertNodeType)(\"Identifier\", \"PrivateName\")\n }\n }\n }]\n },\n fields: Object.assign({\n object: {\n validate: (0, _utils.assertNodeType)(\"Expression\", \"Super\")\n },\n property: {\n validate: function () {\n const normal = (0, _utils.assertNodeType)(\"Identifier\", \"PrivateName\");\n const computed = (0, _utils.assertNodeType)(\"Expression\");\n const validator = function (node, key, val) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n };\n validator.oneOfNodeTypes = [\"Expression\", \"Identifier\", \"PrivateName\"];\n return validator;\n }()\n },\n computed: {\n default: false\n }\n }, !process.env.BABEL_TYPES_8_BREAKING ? {\n optional: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n }\n } : {})\n});\ndefineType(\"NewExpression\", {\n inherits: \"CallExpression\"\n});\ndefineType(\"Program\", {\n visitor: [\"directives\", \"body\"],\n builder: [\"body\", \"directives\", \"sourceType\", \"interpreter\"],\n fields: {\n sourceType: {\n validate: (0, _utils.assertOneOf)(\"script\", \"module\"),\n default: \"script\"\n },\n interpreter: {\n validate: (0, _utils.assertNodeType)(\"InterpreterDirective\"),\n default: null,\n optional: true\n },\n directives: {\n validate: (0, _utils.arrayOfType)(\"Directive\"),\n default: []\n },\n body: (0, _utils.validateArrayOfType)(\"Statement\")\n },\n aliases: [\"Scopable\", \"BlockParent\", \"Block\"]\n});\ndefineType(\"ObjectExpression\", {\n visitor: [\"properties\"],\n aliases: [\"Expression\"],\n fields: {\n properties: (0, _utils.validateArrayOfType)(\"ObjectMethod\", \"ObjectProperty\", \"SpreadElement\")\n }\n});\ndefineType(\"ObjectMethod\", Object.assign({\n builder: [\"kind\", \"key\", \"params\", \"body\", \"computed\", \"generator\", \"async\"],\n visitor: [\"decorators\", \"key\", \"typeParameters\", \"params\", \"returnType\", \"body\"]\n}, classMethodOrPropertyUnionShapeCommon(), {\n fields: Object.assign({}, functionCommon(), functionTypeAnnotationCommon(), {\n kind: Object.assign({\n validate: (0, _utils.assertOneOf)(\"method\", \"get\", \"set\")\n }, !process.env.BABEL_TYPES_8_BREAKING ? {\n default: \"method\"\n } : {}),\n computed: {\n default: false\n },\n key: {\n validate: function () {\n const normal = (0, _utils.assertNodeType)(\"Identifier\", \"StringLiteral\", \"NumericLiteral\", \"BigIntLiteral\");\n const computed = (0, _utils.assertNodeType)(\"Expression\");\n const validator = function (node, key, val) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n };\n validator.oneOfNodeTypes = [\"Expression\", \"Identifier\", \"StringLiteral\", \"NumericLiteral\", \"BigIntLiteral\"];\n return validator;\n }()\n },\n decorators: {\n validate: (0, _utils.arrayOfType)(\"Decorator\"),\n optional: true\n },\n body: {\n validate: (0, _utils.assertNodeType)(\"BlockStatement\")\n }\n }),\n aliases: [\"UserWhitespacable\", \"Function\", \"Scopable\", \"BlockParent\", \"FunctionParent\", \"Method\", \"ObjectMember\"]\n}));\ndefineType(\"ObjectProperty\", {\n builder: [\"key\", \"value\", \"computed\", \"shorthand\", ...(!process.env.BABEL_TYPES_8_BREAKING ? [\"decorators\"] : [])],\n unionShape: {\n discriminator: \"computed\",\n shapes: [{\n name: \"computed\",\n value: [true],\n properties: {\n key: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n }\n }, {\n name: \"nonComputed\",\n value: [false],\n properties: {\n key: {\n validate: (0, _utils.assertNodeType)(\"Identifier\", \"StringLiteral\", \"NumericLiteral\", \"BigIntLiteral\", \"DecimalLiteral\", \"PrivateName\")\n }\n }\n }]\n },\n fields: {\n computed: {\n default: false\n },\n key: {\n validate: function () {\n const normal = (0, _utils.assertNodeType)(\"Identifier\", \"StringLiteral\", \"NumericLiteral\", \"BigIntLiteral\", \"DecimalLiteral\", \"PrivateName\");\n const computed = (0, _utils.assertNodeType)(\"Expression\");\n const validator = Object.assign(function (node, key, val) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n }, {\n oneOfNodeTypes: [\"Expression\", \"Identifier\", \"StringLiteral\", \"NumericLiteral\", \"BigIntLiteral\", \"DecimalLiteral\", \"PrivateName\"]\n });\n return validator;\n }()\n },\n value: {\n validate: (0, _utils.assertNodeType)(\"Expression\", \"PatternLike\")\n },\n shorthand: {\n validate: process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.chain)((0, _utils.assertValueType)(\"boolean\"), Object.assign(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 (!(0, _is.default)(\"Identifier\", node.key)) {\n throw new TypeError(\"Property shorthand of ObjectProperty cannot be true if key is not an Identifier\");\n }\n }, {\n type: \"boolean\"\n })) : (0, _utils.assertValueType)(\"boolean\"),\n default: false\n },\n decorators: {\n validate: (0, _utils.arrayOfType)(\"Decorator\"),\n optional: true\n }\n },\n visitor: [\"decorators\", \"key\", \"value\"],\n aliases: [\"UserWhitespacable\", \"Property\", \"ObjectMember\"],\n validate: !process.env.BABEL_TYPES_8_BREAKING ? undefined : function () {\n const pattern = (0, _utils.assertNodeType)(\"Identifier\", \"Pattern\", \"TSAsExpression\", \"TSSatisfiesExpression\", \"TSNonNullExpression\", \"TSTypeAssertion\");\n const expression = (0, _utils.assertNodeType)(\"Expression\");\n return function (parent, key, node) {\n const validator = (0, _is.default)(\"ObjectPattern\", parent) ? pattern : expression;\n validator(node, \"value\", node.value);\n };\n }()\n});\ndefineType(\"RestElement\", {\n visitor: [\"argument\", \"typeAnnotation\"],\n builder: [\"argument\"],\n aliases: [\"FunctionParameter\", \"PatternLike\", \"LVal\"],\n deprecatedAlias: \"RestProperty\",\n fields: Object.assign({}, patternLikeCommon(), {\n argument: {\n validate: !process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.assertNodeType)(\"Identifier\", \"ArrayPattern\", \"ObjectPattern\", \"MemberExpression\", \"TSAsExpression\", \"TSSatisfiesExpression\", \"TSTypeAssertion\", \"TSNonNullExpression\", \"RestElement\", \"AssignmentPattern\") : (0, _utils.assertNodeType)(\"Identifier\", \"ArrayPattern\", \"ObjectPattern\", \"MemberExpression\", \"TSAsExpression\", \"TSSatisfiesExpression\", \"TSTypeAssertion\", \"TSNonNullExpression\")\n }\n }),\n validate: process.env.BABEL_TYPES_8_BREAKING ? 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 } : undefined\n});\ndefineType(\"ReturnStatement\", {\n visitor: [\"argument\"],\n aliases: [\"Statement\", \"Terminatorless\", \"CompletionStatement\"],\n fields: {\n argument: {\n validate: (0, _utils.assertNodeType)(\"Expression\"),\n optional: true\n }\n }\n});\ndefineType(\"SequenceExpression\", {\n visitor: [\"expressions\"],\n fields: {\n expressions: (0, _utils.validateArrayOfType)(\"Expression\")\n },\n aliases: [\"Expression\"]\n});\ndefineType(\"ParenthesizedExpression\", {\n visitor: [\"expression\"],\n aliases: [\"Expression\", \"ExpressionWrapper\"],\n fields: {\n expression: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n }\n});\ndefineType(\"SwitchCase\", {\n visitor: [\"test\", \"consequent\"],\n fields: {\n test: {\n validate: (0, _utils.assertNodeType)(\"Expression\"),\n optional: true\n },\n consequent: (0, _utils.validateArrayOfType)(\"Statement\")\n }\n});\ndefineType(\"SwitchStatement\", {\n visitor: [\"discriminant\", \"cases\"],\n aliases: [\"Statement\", \"BlockParent\", \"Scopable\"],\n fields: {\n discriminant: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n cases: (0, _utils.validateArrayOfType)(\"SwitchCase\")\n }\n});\ndefineType(\"ThisExpression\", {\n aliases: [\"Expression\"]\n});\ndefineType(\"ThrowStatement\", {\n visitor: [\"argument\"],\n aliases: [\"Statement\", \"Terminatorless\", \"CompletionStatement\"],\n fields: {\n argument: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n }\n});\ndefineType(\"TryStatement\", {\n visitor: [\"block\", \"handler\", \"finalizer\"],\n aliases: [\"Statement\"],\n fields: {\n block: {\n validate: process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.chain)((0, _utils.assertNodeType)(\"BlockStatement\"), Object.assign(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 })) : (0, _utils.assertNodeType)(\"BlockStatement\")\n },\n handler: {\n optional: true,\n validate: (0, _utils.assertNodeType)(\"CatchClause\")\n },\n finalizer: {\n optional: true,\n validate: (0, _utils.assertNodeType)(\"BlockStatement\")\n }\n }\n});\ndefineType(\"UnaryExpression\", {\n builder: [\"operator\", \"argument\", \"prefix\"],\n fields: {\n prefix: {\n default: true\n },\n argument: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n operator: {\n validate: (0, _utils.assertOneOf)(..._index.UNARY_OPERATORS)\n }\n },\n visitor: [\"argument\"],\n aliases: [\"UnaryLike\", \"Expression\"]\n});\ndefineType(\"UpdateExpression\", {\n builder: [\"operator\", \"argument\", \"prefix\"],\n fields: {\n prefix: {\n default: false\n },\n argument: {\n validate: !process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.assertNodeType)(\"Expression\") : (0, _utils.assertNodeType)(\"Identifier\", \"MemberExpression\")\n },\n operator: {\n validate: (0, _utils.assertOneOf)(..._index.UPDATE_OPERATORS)\n }\n },\n visitor: [\"argument\"],\n aliases: [\"Expression\"]\n});\ndefineType(\"VariableDeclaration\", {\n builder: [\"kind\", \"declarations\"],\n visitor: [\"declarations\"],\n aliases: [\"Statement\", \"Declaration\"],\n fields: {\n declare: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n kind: {\n validate: (0, _utils.assertOneOf)(\"var\", \"let\", \"const\", \"using\", \"await using\")\n },\n declarations: (0, _utils.validateArrayOfType)(\"VariableDeclarator\")\n },\n validate: process.env.BABEL_TYPES_8_BREAKING ? (() => {\n const withoutInit = (0, _utils.assertNodeType)(\"Identifier\", \"Placeholder\");\n const constOrLetOrVar = (0, _utils.assertNodeType)(\"Identifier\", \"ArrayPattern\", \"ObjectPattern\", \"Placeholder\");\n const usingOrAwaitUsing = (0, _utils.assertNodeType)(\"Identifier\", \"VoidPattern\", \"Placeholder\");\n return function (parent, key, node) {\n const {\n kind,\n declarations\n } = node;\n const parentIsForX = (0, _is.default)(\"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 })() : undefined\n});\ndefineType(\"VariableDeclarator\", {\n visitor: [\"id\", \"init\"],\n fields: {\n id: {\n validate: !process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.assertNodeType)(\"LVal\", \"VoidPattern\") : (0, _utils.assertNodeType)(\"Identifier\", \"ArrayPattern\", \"ObjectPattern\", \"VoidPattern\")\n },\n definite: {\n optional: true,\n validate: (0, _utils.assertValueType)(\"boolean\")\n },\n init: {\n optional: true,\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n }\n});\ndefineType(\"WhileStatement\", {\n visitor: [\"test\", \"body\"],\n aliases: [\"Statement\", \"BlockParent\", \"Loop\", \"While\", \"Scopable\"],\n fields: {\n test: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n body: {\n validate: (0, _utils.assertNodeType)(\"Statement\")\n }\n }\n});\ndefineType(\"WithStatement\", {\n visitor: [\"object\", \"body\"],\n aliases: [\"Statement\"],\n fields: {\n object: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n body: {\n validate: (0, _utils.assertNodeType)(\"Statement\")\n }\n }\n});\ndefineType(\"AssignmentPattern\", {\n visitor: [\"left\", \"right\", \"decorators\"],\n builder: [\"left\", \"right\"],\n aliases: [\"FunctionParameter\", \"Pattern\", \"PatternLike\", \"LVal\"],\n fields: Object.assign({}, patternLikeCommon(), {\n left: {\n validate: (0, _utils.assertNodeType)(\"Identifier\", \"ObjectPattern\", \"ArrayPattern\", \"MemberExpression\", \"TSAsExpression\", \"TSSatisfiesExpression\", \"TSTypeAssertion\", \"TSNonNullExpression\")\n },\n right: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n decorators: {\n validate: (0, _utils.arrayOfType)(\"Decorator\"),\n optional: true\n }\n })\n});\ndefineType(\"ArrayPattern\", {\n visitor: [\"elements\", \"typeAnnotation\"],\n builder: [\"elements\"],\n aliases: [\"FunctionParameter\", \"Pattern\", \"PatternLike\", \"LVal\"],\n fields: Object.assign({}, patternLikeCommon(), {\n elements: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeOrValueType)(\"null\", \"PatternLike\")))\n }\n })\n});\ndefineType(\"ArrowFunctionExpression\", {\n builder: [\"params\", \"body\", \"async\"],\n visitor: [\"typeParameters\", \"params\", \"predicate\", \"returnType\", \"body\"],\n aliases: [\"Scopable\", \"Function\", \"BlockParent\", \"FunctionParent\", \"Expression\", \"Pureish\"],\n fields: Object.assign({}, functionCommon(), functionTypeAnnotationCommon(), {\n expression: {\n validate: (0, _utils.assertValueType)(\"boolean\")\n },\n body: {\n validate: (0, _utils.assertNodeType)(\"BlockStatement\", \"Expression\")\n },\n predicate: {\n validate: (0, _utils.assertNodeType)(\"DeclaredPredicate\", \"InferredPredicate\"),\n optional: true\n }\n })\n});\ndefineType(\"ClassBody\", {\n visitor: [\"body\"],\n fields: {\n body: (0, _utils.validateArrayOfType)(\"ClassMethod\", \"ClassPrivateMethod\", \"ClassProperty\", \"ClassPrivateProperty\", \"ClassAccessorProperty\", \"TSDeclareMethod\", \"TSIndexSignature\", \"StaticBlock\")\n }\n});\ndefineType(\"ClassExpression\", {\n builder: [\"id\", \"superClass\", \"body\", \"decorators\"],\n visitor: [\"decorators\", \"id\", \"typeParameters\", \"superClass\", \"superTypeParameters\", \"mixins\", \"implements\", \"body\"],\n aliases: [\"Scopable\", \"Class\", \"Expression\"],\n fields: {\n id: {\n validate: (0, _utils.assertNodeType)(\"Identifier\"),\n optional: true\n },\n typeParameters: {\n validate: (0, _utils.assertNodeType)(\"TypeParameterDeclaration\", \"TSTypeParameterDeclaration\", \"Noop\"),\n optional: true\n },\n body: {\n validate: (0, _utils.assertNodeType)(\"ClassBody\")\n },\n superClass: {\n optional: true,\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n [\"superTypeParameters\"]: {\n validate: (0, _utils.assertNodeType)(\"TypeParameterInstantiation\", \"TSTypeParameterInstantiation\"),\n optional: true\n },\n implements: {\n validate: (0, _utils.arrayOfType)(\"TSExpressionWithTypeArguments\", \"ClassImplements\"),\n optional: true\n },\n decorators: {\n validate: (0, _utils.arrayOfType)(\"Decorator\"),\n optional: true\n },\n mixins: {\n validate: (0, _utils.assertNodeType)(\"InterfaceExtends\"),\n optional: true\n }\n }\n});\ndefineType(\"ClassDeclaration\", {\n inherits: \"ClassExpression\",\n aliases: [\"Scopable\", \"Class\", \"Statement\", \"Declaration\"],\n fields: {\n id: {\n validate: (0, _utils.assertNodeType)(\"Identifier\"),\n optional: true\n },\n typeParameters: {\n validate: (0, _utils.assertNodeType)(\"TypeParameterDeclaration\", \"TSTypeParameterDeclaration\", \"Noop\"),\n optional: true\n },\n body: {\n validate: (0, _utils.assertNodeType)(\"ClassBody\")\n },\n superClass: {\n optional: true,\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n [\"superTypeParameters\"]: {\n validate: (0, _utils.assertNodeType)(\"TypeParameterInstantiation\", \"TSTypeParameterInstantiation\"),\n optional: true\n },\n implements: {\n validate: (0, _utils.arrayOfType)(\"TSExpressionWithTypeArguments\", \"ClassImplements\"),\n optional: true\n },\n decorators: {\n validate: (0, _utils.arrayOfType)(\"Decorator\"),\n optional: true\n },\n mixins: {\n validate: (0, _utils.assertNodeType)(\"InterfaceExtends\"),\n optional: true\n },\n declare: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n abstract: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n }\n },\n validate: !process.env.BABEL_TYPES_8_BREAKING ? undefined : function () {\n const identifier = (0, _utils.assertNodeType)(\"Identifier\");\n return function (parent, key, node) {\n if (!(0, _is.default)(\"ExportDefaultDeclaration\", parent)) {\n identifier(node, \"id\", node.id);\n }\n };\n }()\n});\nconst importAttributes = exports.importAttributes = {\n attributes: {\n optional: true,\n validate: (0, _utils.arrayOfType)(\"ImportAttribute\")\n },\n assertions: {\n deprecated: true,\n optional: true,\n validate: (0, _utils.arrayOfType)(\"ImportAttribute\")\n }\n};\ndefineType(\"ExportAllDeclaration\", {\n builder: [\"source\"],\n visitor: [\"source\", \"attributes\", \"assertions\"],\n aliases: [\"Statement\", \"Declaration\", \"ImportOrExportDeclaration\", \"ExportDeclaration\"],\n fields: Object.assign({\n source: {\n validate: (0, _utils.assertNodeType)(\"StringLiteral\")\n },\n exportKind: (0, _utils.validateOptional)((0, _utils.assertOneOf)(\"type\", \"value\"))\n }, importAttributes)\n});\ndefineType(\"ExportDefaultDeclaration\", {\n visitor: [\"declaration\"],\n aliases: [\"Statement\", \"Declaration\", \"ImportOrExportDeclaration\", \"ExportDeclaration\"],\n fields: {\n declaration: (0, _utils.validateType)(\"TSDeclareFunction\", \"FunctionDeclaration\", \"ClassDeclaration\", \"Expression\"),\n exportKind: (0, _utils.validateOptional)((0, _utils.assertOneOf)(\"value\"))\n }\n});\ndefineType(\"ExportNamedDeclaration\", {\n builder: [\"declaration\", \"specifiers\", \"source\"],\n visitor: [\"declaration\", \"specifiers\", \"source\", \"attributes\", \"assertions\"],\n aliases: [\"Statement\", \"Declaration\", \"ImportOrExportDeclaration\", \"ExportDeclaration\"],\n fields: Object.assign({\n declaration: {\n optional: true,\n validate: process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.chain)((0, _utils.assertNodeType)(\"Declaration\"), Object.assign(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: [\"Declaration\"]\n })) : (0, _utils.assertNodeType)(\"Declaration\")\n }\n }, importAttributes, {\n specifiers: {\n default: [],\n validate: (0, _utils.arrayOf)(function () {\n const sourced = (0, _utils.assertNodeType)(\"ExportSpecifier\", \"ExportDefaultSpecifier\", \"ExportNamespaceSpecifier\");\n const sourceless = (0, _utils.assertNodeType)(\"ExportSpecifier\");\n if (!process.env.BABEL_TYPES_8_BREAKING) return sourced;\n return Object.assign(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: (0, _utils.assertNodeType)(\"StringLiteral\"),\n optional: true\n },\n exportKind: (0, _utils.validateOptional)((0, _utils.assertOneOf)(\"type\", \"value\"))\n })\n});\ndefineType(\"ExportSpecifier\", {\n visitor: [\"local\", \"exported\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n local: {\n validate: (0, _utils.assertNodeType)(\"Identifier\")\n },\n exported: {\n validate: (0, _utils.assertNodeType)(\"Identifier\", \"StringLiteral\")\n },\n exportKind: {\n validate: (0, _utils.assertOneOf)(\"type\", \"value\"),\n optional: true\n }\n }\n});\ndefineType(\"ForOfStatement\", {\n visitor: [\"left\", \"right\", \"body\"],\n builder: [\"left\", \"right\", \"body\", \"await\"],\n aliases: [\"Scopable\", \"Statement\", \"For\", \"BlockParent\", \"Loop\", \"ForXStatement\"],\n fields: {\n left: {\n validate: function () {\n if (!process.env.BABEL_TYPES_8_BREAKING) {\n return (0, _utils.assertNodeType)(\"VariableDeclaration\", \"LVal\");\n }\n const declaration = (0, _utils.assertNodeType)(\"VariableDeclaration\");\n const lval = (0, _utils.assertNodeType)(\"Identifier\", \"MemberExpression\", \"ArrayPattern\", \"ObjectPattern\", \"TSAsExpression\", \"TSSatisfiesExpression\", \"TSTypeAssertion\", \"TSNonNullExpression\");\n return Object.assign(function (node, key, val) {\n if ((0, _is.default)(\"VariableDeclaration\", val)) {\n declaration(node, key, val);\n } else {\n lval(node, key, val);\n }\n }, {\n oneOfNodeTypes: [\"VariableDeclaration\", \"Identifier\", \"MemberExpression\", \"ArrayPattern\", \"ObjectPattern\", \"TSAsExpression\", \"TSSatisfiesExpression\", \"TSTypeAssertion\", \"TSNonNullExpression\"]\n });\n }()\n },\n right: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n body: {\n validate: (0, _utils.assertNodeType)(\"Statement\")\n },\n await: {\n default: false\n }\n }\n});\ndefineType(\"ImportDeclaration\", {\n builder: [\"specifiers\", \"source\"],\n visitor: [\"specifiers\", \"source\", \"attributes\", \"assertions\"],\n aliases: [\"Statement\", \"Declaration\", \"ImportOrExportDeclaration\"],\n fields: Object.assign({}, importAttributes, {\n module: {\n optional: true,\n validate: (0, _utils.assertValueType)(\"boolean\")\n },\n phase: {\n default: null,\n validate: (0, _utils.assertOneOf)(\"source\", \"defer\")\n },\n specifiers: (0, _utils.validateArrayOfType)(\"ImportSpecifier\", \"ImportDefaultSpecifier\", \"ImportNamespaceSpecifier\"),\n source: {\n validate: (0, _utils.assertNodeType)(\"StringLiteral\")\n },\n importKind: {\n validate: (0, _utils.assertOneOf)(\"type\", \"typeof\", \"value\"),\n optional: true\n }\n })\n});\ndefineType(\"ImportDefaultSpecifier\", {\n visitor: [\"local\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n local: {\n validate: (0, _utils.assertNodeType)(\"Identifier\")\n }\n }\n});\ndefineType(\"ImportNamespaceSpecifier\", {\n visitor: [\"local\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n local: {\n validate: (0, _utils.assertNodeType)(\"Identifier\")\n }\n }\n});\ndefineType(\"ImportSpecifier\", {\n visitor: [\"imported\", \"local\"],\n builder: [\"local\", \"imported\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n local: {\n validate: (0, _utils.assertNodeType)(\"Identifier\")\n },\n imported: {\n validate: (0, _utils.assertNodeType)(\"Identifier\", \"StringLiteral\")\n },\n importKind: {\n validate: (0, _utils.assertOneOf)(\"type\", \"typeof\", \"value\"),\n optional: true\n }\n }\n});\ndefineType(\"ImportExpression\", {\n visitor: [\"source\", \"options\"],\n aliases: [\"Expression\"],\n fields: {\n phase: {\n default: null,\n validate: (0, _utils.assertOneOf)(\"source\", \"defer\")\n },\n source: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n options: {\n validate: (0, _utils.assertNodeType)(\"Expression\"),\n optional: true\n }\n }\n});\ndefineType(\"MetaProperty\", {\n visitor: [\"meta\", \"property\"],\n aliases: [\"Expression\"],\n fields: {\n meta: {\n validate: process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.chain)((0, _utils.assertNodeType)(\"Identifier\"), Object.assign(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 (!(0, _is.default)(\"Identifier\", node.property, {\n name: property\n })) {\n throw new TypeError(\"Unrecognised MetaProperty\");\n }\n }, {\n oneOfNodeTypes: [\"Identifier\"]\n })) : (0, _utils.assertNodeType)(\"Identifier\")\n },\n property: {\n validate: (0, _utils.assertNodeType)(\"Identifier\")\n }\n }\n});\nconst classMethodOrPropertyCommon = () => ({\n abstract: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n accessibility: {\n validate: (0, _utils.assertOneOf)(\"public\", \"private\", \"protected\"),\n optional: true\n },\n static: {\n default: false\n },\n override: {\n default: false\n },\n computed: {\n default: false\n },\n optional: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n key: {\n validate: (0, _utils.chain)(function () {\n const normal = (0, _utils.assertNodeType)(\"Identifier\", \"StringLiteral\", \"NumericLiteral\", \"BigIntLiteral\");\n const computed = (0, _utils.assertNodeType)(\"Expression\");\n return function (node, key, val) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n };\n }(), (0, _utils.assertNodeType)(\"Identifier\", \"StringLiteral\", \"NumericLiteral\", \"BigIntLiteral\", \"Expression\"))\n }\n});\nexports.classMethodOrPropertyCommon = classMethodOrPropertyCommon;\nconst classMethodOrDeclareMethodCommon = () => Object.assign({}, functionCommon(), classMethodOrPropertyCommon(), {\n params: (0, _utils.validateArrayOfType)(\"FunctionParameter\", \"TSParameterProperty\"),\n kind: {\n validate: (0, _utils.assertOneOf)(\"get\", \"set\", \"method\", \"constructor\"),\n default: \"method\"\n },\n access: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"string\"), (0, _utils.assertOneOf)(\"public\", \"private\", \"protected\")),\n optional: true\n },\n decorators: {\n validate: (0, _utils.arrayOfType)(\"Decorator\"),\n optional: true\n }\n});\nexports.classMethodOrDeclareMethodCommon = classMethodOrDeclareMethodCommon;\ndefineType(\"ClassMethod\", Object.assign({\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: Object.assign({}, classMethodOrDeclareMethodCommon(), functionTypeAnnotationCommon(), {\n body: {\n validate: (0, _utils.assertNodeType)(\"BlockStatement\")\n }\n })\n}));\ndefineType(\"ObjectPattern\", {\n visitor: [\"decorators\", \"properties\", \"typeAnnotation\"],\n builder: [\"properties\"],\n aliases: [\"FunctionParameter\", \"Pattern\", \"PatternLike\", \"LVal\"],\n fields: Object.assign({}, patternLikeCommon(), {\n properties: (0, _utils.validateArrayOfType)(\"RestElement\", \"ObjectProperty\")\n })\n});\ndefineType(\"SpreadElement\", {\n visitor: [\"argument\"],\n aliases: [\"UnaryLike\"],\n deprecatedAlias: \"SpreadProperty\",\n fields: {\n argument: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n }\n});\ndefineType(\"Super\", {\n aliases: [\"Expression\"]\n});\ndefineType(\"TaggedTemplateExpression\", {\n visitor: [\"tag\", \"typeParameters\", \"quasi\"],\n builder: [\"tag\", \"quasi\"],\n aliases: [\"Expression\"],\n fields: {\n tag: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n quasi: {\n validate: (0, _utils.assertNodeType)(\"TemplateLiteral\")\n },\n [\"typeParameters\"]: {\n validate: (0, _utils.assertNodeType)(\"TypeParameterInstantiation\", \"TSTypeParameterInstantiation\"),\n optional: true\n }\n }\n});\ndefineType(\"TemplateElement\", {\n builder: [\"value\", \"tail\"],\n fields: {\n value: {\n validate: (0, _utils.chain)((0, _utils.assertShape)({\n raw: {\n validate: (0, _utils.assertValueType)(\"string\")\n },\n cooked: {\n validate: (0, _utils.assertValueType)(\"string\"),\n optional: true\n }\n }), function templateElementCookedValidator(node) {\n const raw = node.value.raw;\n let unterminatedCalled = false;\n const error = () => {\n throw new Error(\"Internal @babel/types error.\");\n };\n const {\n str,\n firstInvalidLoc\n } = (0, _helperStringParser.readStringContents)(\"template\", raw, 0, 0, 0, {\n unterminated() {\n unterminatedCalled = true;\n },\n strictNumericEscape: error,\n invalidEscapeSequence: error,\n numericSeparatorInEscapeSequence: error,\n unexpectedNumericSeparator: error,\n invalidDigit: error,\n invalidCodePoint: error\n });\n if (!unterminatedCalled) throw new Error(\"Invalid raw\");\n node.value.cooked = firstInvalidLoc ? null : str;\n })\n },\n tail: {\n default: false\n }\n }\n});\ndefineType(\"TemplateLiteral\", {\n visitor: [\"quasis\", \"expressions\"],\n aliases: [\"Expression\", \"Literal\"],\n fields: {\n quasis: (0, _utils.validateArrayOfType)(\"TemplateElement\"),\n expressions: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.assertNodeType)(\"Expression\", \"TSType\")), function (node, key, val) {\n if (node.quasis.length !== val.length + 1) {\n throw new TypeError(`Number of ${node.type} quasis should be exactly one more than the number of expressions.\\nExpected ${val.length + 1} quasis but got ${node.quasis.length}`);\n }\n })\n }\n }\n});\ndefineType(\"YieldExpression\", {\n builder: [\"argument\", \"delegate\"],\n visitor: [\"argument\"],\n aliases: [\"Expression\", \"Terminatorless\"],\n fields: {\n delegate: {\n validate: process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.chain)((0, _utils.assertValueType)(\"boolean\"), Object.assign(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 })) : (0, _utils.assertValueType)(\"boolean\"),\n default: false\n },\n argument: {\n optional: true,\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n }\n});\ndefineType(\"AwaitExpression\", {\n builder: [\"argument\"],\n visitor: [\"argument\"],\n aliases: [\"Expression\", \"Terminatorless\"],\n fields: {\n argument: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n }\n});\ndefineType(\"Import\", {\n aliases: [\"Expression\"]\n});\ndefineType(\"BigIntLiteral\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: (0, _utils.assertValueType)(\"string\")\n }\n },\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"]\n});\ndefineType(\"ExportNamespaceSpecifier\", {\n visitor: [\"exported\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n exported: {\n validate: (0, _utils.assertNodeType)(\"Identifier\")\n }\n }\n});\ndefineType(\"OptionalMemberExpression\", {\n builder: [\"object\", \"property\", \"computed\", \"optional\"],\n visitor: [\"object\", \"property\"],\n aliases: [\"Expression\"],\n fields: {\n object: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n property: {\n validate: function () {\n const normal = (0, _utils.assertNodeType)(\"Identifier\");\n const computed = (0, _utils.assertNodeType)(\"Expression\");\n const validator = Object.assign(function (node, key, val) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n }, {\n oneOfNodeTypes: [\"Expression\", \"Identifier\"]\n });\n return validator;\n }()\n },\n computed: {\n default: false\n },\n optional: {\n validate: !process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.assertValueType)(\"boolean\") : (0, _utils.chain)((0, _utils.assertValueType)(\"boolean\"), (0, _utils.assertOptionalChainStart)())\n }\n }\n});\ndefineType(\"OptionalCallExpression\", {\n visitor: [\"callee\", \"typeParameters\", \"typeArguments\", \"arguments\"],\n builder: [\"callee\", \"arguments\", \"optional\"],\n aliases: [\"Expression\"],\n fields: Object.assign({\n callee: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n arguments: (0, _utils.validateArrayOfType)(\"Expression\", \"SpreadElement\", \"ArgumentPlaceholder\"),\n optional: {\n validate: !process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.assertValueType)(\"boolean\") : (0, _utils.chain)((0, _utils.assertValueType)(\"boolean\"), (0, _utils.assertOptionalChainStart)())\n },\n typeArguments: {\n validate: (0, _utils.assertNodeType)(\"TypeParameterInstantiation\"),\n optional: true\n }\n }, {\n typeParameters: {\n validate: (0, _utils.assertNodeType)(\"TSTypeParameterInstantiation\"),\n optional: true\n }\n })\n});\ndefineType(\"ClassProperty\", Object.assign({\n visitor: [\"decorators\", \"variance\", \"key\", \"typeAnnotation\", \"value\"],\n builder: [\"key\", \"value\", \"typeAnnotation\", \"decorators\", \"computed\", \"static\"],\n aliases: [\"Property\"]\n}, classMethodOrPropertyUnionShapeCommon(), {\n fields: Object.assign({}, classMethodOrPropertyCommon(), {\n value: {\n validate: (0, _utils.assertNodeType)(\"Expression\"),\n optional: true\n },\n definite: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n typeAnnotation: {\n validate: (0, _utils.assertNodeType)(\"TypeAnnotation\", \"TSTypeAnnotation\", \"Noop\"),\n optional: true\n },\n decorators: {\n validate: (0, _utils.arrayOfType)(\"Decorator\"),\n optional: true\n },\n readonly: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n declare: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n variance: {\n validate: (0, _utils.assertNodeType)(\"Variance\"),\n optional: true\n }\n })\n}));\ndefineType(\"ClassAccessorProperty\", Object.assign({\n visitor: [\"decorators\", \"key\", \"typeAnnotation\", \"value\"],\n builder: [\"key\", \"value\", \"typeAnnotation\", \"decorators\", \"computed\", \"static\"],\n aliases: [\"Property\", \"Accessor\"]\n}, classMethodOrPropertyUnionShapeCommon(true), {\n fields: Object.assign({}, classMethodOrPropertyCommon(), {\n key: {\n validate: (0, _utils.chain)(function () {\n const normal = (0, _utils.assertNodeType)(\"Identifier\", \"StringLiteral\", \"NumericLiteral\", \"BigIntLiteral\", \"PrivateName\");\n const computed = (0, _utils.assertNodeType)(\"Expression\");\n return function (node, key, val) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n };\n }(), (0, _utils.assertNodeType)(\"Identifier\", \"StringLiteral\", \"NumericLiteral\", \"BigIntLiteral\", \"Expression\", \"PrivateName\"))\n },\n value: {\n validate: (0, _utils.assertNodeType)(\"Expression\"),\n optional: true\n },\n definite: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n typeAnnotation: {\n validate: (0, _utils.assertNodeType)(\"TypeAnnotation\", \"TSTypeAnnotation\", \"Noop\"),\n optional: true\n },\n decorators: {\n validate: (0, _utils.arrayOfType)(\"Decorator\"),\n optional: true\n },\n readonly: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n declare: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n variance: {\n validate: (0, _utils.assertNodeType)(\"Variance\"),\n optional: true\n }\n })\n}));\ndefineType(\"ClassPrivateProperty\", {\n visitor: [\"decorators\", \"variance\", \"key\", \"typeAnnotation\", \"value\"],\n builder: [\"key\", \"value\", \"decorators\", \"static\"],\n aliases: [\"Property\", \"Private\"],\n fields: {\n key: {\n validate: (0, _utils.assertNodeType)(\"PrivateName\")\n },\n value: {\n validate: (0, _utils.assertNodeType)(\"Expression\"),\n optional: true\n },\n typeAnnotation: {\n validate: (0, _utils.assertNodeType)(\"TypeAnnotation\", \"TSTypeAnnotation\", \"Noop\"),\n optional: true\n },\n decorators: {\n validate: (0, _utils.arrayOfType)(\"Decorator\"),\n optional: true\n },\n static: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n default: false\n },\n readonly: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n optional: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n definite: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n variance: {\n validate: (0, _utils.assertNodeType)(\"Variance\"),\n optional: true\n }\n }\n});\ndefineType(\"ClassPrivateMethod\", {\n builder: [\"kind\", \"key\", \"params\", \"body\", \"static\"],\n visitor: [\"decorators\", \"key\", \"typeParameters\", \"params\", \"returnType\", \"body\"],\n aliases: [\"Function\", \"Scopable\", \"BlockParent\", \"FunctionParent\", \"Method\", \"Private\"],\n fields: Object.assign({}, classMethodOrDeclareMethodCommon(), functionTypeAnnotationCommon(), {\n kind: {\n validate: (0, _utils.assertOneOf)(\"get\", \"set\", \"method\"),\n default: \"method\"\n },\n key: {\n validate: (0, _utils.assertNodeType)(\"PrivateName\")\n },\n body: {\n validate: (0, _utils.assertNodeType)(\"BlockStatement\")\n }\n })\n});\ndefineType(\"PrivateName\", {\n visitor: [\"id\"],\n aliases: [\"Private\"],\n fields: {\n id: {\n validate: (0, _utils.assertNodeType)(\"Identifier\")\n }\n }\n});\ndefineType(\"StaticBlock\", {\n visitor: [\"body\"],\n fields: {\n body: (0, _utils.validateArrayOfType)(\"Statement\")\n },\n aliases: [\"Scopable\", \"BlockParent\", \"FunctionParent\"]\n});\ndefineType(\"ImportAttribute\", {\n visitor: [\"key\", \"value\"],\n fields: {\n key: {\n validate: (0, _utils.assertNodeType)(\"Identifier\", \"StringLiteral\")\n },\n value: {\n validate: (0, _utils.assertNodeType)(\"StringLiteral\")\n }\n }\n});\n\n//# sourceMappingURL=core.js.map\n","\"use strict\";\n\nvar _core = require(\"./core.js\");\nvar _utils = require(\"./utils.js\");\nconst defineType = (0, _utils.defineAliasedType)(\"Flow\");\nconst defineInterfaceishType = name => {\n const isDeclareClass = name === \"DeclareClass\";\n defineType(name, {\n builder: [\"id\", \"typeParameters\", \"extends\", \"body\"],\n visitor: [\"id\", \"typeParameters\", \"extends\", ...(isDeclareClass ? [\"mixins\", \"implements\"] : []), \"body\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: Object.assign({\n id: (0, _utils.validateType)(\"Identifier\"),\n typeParameters: (0, _utils.validateOptionalType)(\"TypeParameterDeclaration\"),\n extends: (0, _utils.validateOptional)((0, _utils.arrayOfType)(\"InterfaceExtends\"))\n }, isDeclareClass ? {\n mixins: (0, _utils.validateOptional)((0, _utils.arrayOfType)(\"InterfaceExtends\")),\n implements: (0, _utils.validateOptional)((0, _utils.arrayOfType)(\"ClassImplements\"))\n } : {}, {\n body: (0, _utils.validateType)(\"ObjectTypeAnnotation\")\n })\n });\n};\ndefineType(\"AnyTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"]\n});\ndefineType(\"ArrayTypeAnnotation\", {\n visitor: [\"elementType\"],\n aliases: [\"FlowType\"],\n fields: {\n elementType: (0, _utils.validateType)(\"FlowType\")\n }\n});\ndefineType(\"BooleanTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"]\n});\ndefineType(\"BooleanLiteralTypeAnnotation\", {\n builder: [\"value\"],\n aliases: [\"FlowType\"],\n fields: {\n value: (0, _utils.validate)((0, _utils.assertValueType)(\"boolean\"))\n }\n});\ndefineType(\"NullLiteralTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"]\n});\ndefineType(\"ClassImplements\", {\n visitor: [\"id\", \"typeParameters\"],\n fields: {\n id: (0, _utils.validateType)(\"Identifier\"),\n typeParameters: (0, _utils.validateOptionalType)(\"TypeParameterInstantiation\")\n }\n});\ndefineInterfaceishType(\"DeclareClass\");\ndefineType(\"DeclareFunction\", {\n builder: [\"id\"],\n visitor: [\"id\", \"predicate\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: (0, _utils.validateType)(\"Identifier\"),\n predicate: (0, _utils.validateOptionalType)(\"DeclaredPredicate\")\n }\n});\ndefineInterfaceishType(\"DeclareInterface\");\ndefineType(\"DeclareModule\", {\n builder: [\"id\", \"body\", \"kind\"],\n visitor: [\"id\", \"body\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: (0, _utils.validateType)(\"Identifier\", \"StringLiteral\"),\n body: (0, _utils.validateType)(\"BlockStatement\"),\n kind: (0, _utils.validateOptional)((0, _utils.assertOneOf)(\"CommonJS\", \"ES\"))\n }\n});\ndefineType(\"DeclareModuleExports\", {\n visitor: [\"typeAnnotation\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n typeAnnotation: (0, _utils.validateType)(\"TypeAnnotation\")\n }\n});\ndefineType(\"DeclareTypeAlias\", {\n visitor: [\"id\", \"typeParameters\", \"right\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: (0, _utils.validateType)(\"Identifier\"),\n typeParameters: (0, _utils.validateOptionalType)(\"TypeParameterDeclaration\"),\n right: (0, _utils.validateType)(\"FlowType\")\n }\n});\ndefineType(\"DeclareOpaqueType\", {\n visitor: [\"id\", \"typeParameters\", \"supertype\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: (0, _utils.validateType)(\"Identifier\"),\n typeParameters: (0, _utils.validateOptionalType)(\"TypeParameterDeclaration\"),\n supertype: (0, _utils.validateOptionalType)(\"FlowType\"),\n impltype: (0, _utils.validateOptionalType)(\"FlowType\")\n }\n});\ndefineType(\"DeclareVariable\", {\n visitor: [\"id\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: (0, _utils.validateType)(\"Identifier\")\n }\n});\ndefineType(\"DeclareExportDeclaration\", {\n visitor: [\"declaration\", \"specifiers\", \"source\", \"attributes\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: Object.assign({\n declaration: (0, _utils.validateOptionalType)(\"Flow\"),\n specifiers: (0, _utils.validateOptional)((0, _utils.arrayOfType)(\"ExportSpecifier\", \"ExportNamespaceSpecifier\")),\n source: (0, _utils.validateOptionalType)(\"StringLiteral\"),\n default: (0, _utils.validateOptional)((0, _utils.assertValueType)(\"boolean\"))\n }, _core.importAttributes)\n});\ndefineType(\"DeclareExportAllDeclaration\", {\n visitor: [\"source\", \"attributes\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: Object.assign({\n source: (0, _utils.validateType)(\"StringLiteral\"),\n exportKind: (0, _utils.validateOptional)((0, _utils.assertOneOf)(\"type\", \"value\"))\n }, _core.importAttributes)\n});\ndefineType(\"DeclaredPredicate\", {\n visitor: [\"value\"],\n aliases: [\"FlowPredicate\"],\n fields: {\n value: (0, _utils.validateType)(\"Flow\")\n }\n});\ndefineType(\"ExistsTypeAnnotation\", {\n aliases: [\"FlowType\"]\n});\ndefineType(\"FunctionTypeAnnotation\", {\n builder: [\"typeParameters\", \"params\", \"rest\", \"returnType\"],\n visitor: [\"typeParameters\", \"this\", \"params\", \"rest\", \"returnType\"],\n aliases: [\"FlowType\"],\n fields: {\n typeParameters: (0, _utils.validateOptionalType)(\"TypeParameterDeclaration\"),\n params: (0, _utils.validateArrayOfType)(\"FunctionTypeParam\"),\n rest: (0, _utils.validateOptionalType)(\"FunctionTypeParam\"),\n this: (0, _utils.validateOptionalType)(\"FunctionTypeParam\"),\n returnType: (0, _utils.validateType)(\"FlowType\")\n }\n});\ndefineType(\"FunctionTypeParam\", {\n visitor: [\"name\", \"typeAnnotation\"],\n fields: {\n name: (0, _utils.validateOptionalType)(\"Identifier\"),\n typeAnnotation: (0, _utils.validateType)(\"FlowType\"),\n optional: (0, _utils.validateOptional)((0, _utils.assertValueType)(\"boolean\"))\n }\n});\ndefineType(\"GenericTypeAnnotation\", {\n visitor: [\"id\", \"typeParameters\"],\n aliases: [\"FlowType\"],\n fields: {\n id: (0, _utils.validateType)(\"Identifier\", \"QualifiedTypeIdentifier\"),\n typeParameters: (0, _utils.validateOptionalType)(\"TypeParameterInstantiation\")\n }\n});\ndefineType(\"InferredPredicate\", {\n aliases: [\"FlowPredicate\"]\n});\ndefineType(\"InterfaceExtends\", {\n visitor: [\"id\", \"typeParameters\"],\n fields: {\n id: (0, _utils.validateType)(\"Identifier\", \"QualifiedTypeIdentifier\"),\n typeParameters: (0, _utils.validateOptionalType)(\"TypeParameterInstantiation\")\n }\n});\ndefineInterfaceishType(\"InterfaceDeclaration\");\ndefineType(\"InterfaceTypeAnnotation\", {\n visitor: [\"extends\", \"body\"],\n aliases: [\"FlowType\"],\n fields: {\n extends: (0, _utils.validateOptional)((0, _utils.arrayOfType)(\"InterfaceExtends\")),\n body: (0, _utils.validateType)(\"ObjectTypeAnnotation\")\n }\n});\ndefineType(\"IntersectionTypeAnnotation\", {\n visitor: [\"types\"],\n aliases: [\"FlowType\"],\n fields: {\n types: (0, _utils.validate)((0, _utils.arrayOfType)(\"FlowType\"))\n }\n});\ndefineType(\"MixedTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"]\n});\ndefineType(\"EmptyTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"]\n});\ndefineType(\"NullableTypeAnnotation\", {\n visitor: [\"typeAnnotation\"],\n aliases: [\"FlowType\"],\n fields: {\n typeAnnotation: (0, _utils.validateType)(\"FlowType\")\n }\n});\ndefineType(\"NumberLiteralTypeAnnotation\", {\n builder: [\"value\"],\n aliases: [\"FlowType\"],\n fields: {\n value: (0, _utils.validate)((0, _utils.assertValueType)(\"number\"))\n }\n});\ndefineType(\"NumberTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"]\n});\ndefineType(\"ObjectTypeAnnotation\", {\n visitor: [\"properties\", \"indexers\", \"callProperties\", \"internalSlots\"],\n aliases: [\"FlowType\"],\n builder: [\"properties\", \"indexers\", \"callProperties\", \"internalSlots\", \"exact\"],\n fields: {\n properties: (0, _utils.validate)((0, _utils.arrayOfType)(\"ObjectTypeProperty\", \"ObjectTypeSpreadProperty\")),\n indexers: {\n validate: (0, _utils.arrayOfType)(\"ObjectTypeIndexer\"),\n optional: true,\n default: []\n },\n callProperties: {\n validate: (0, _utils.arrayOfType)(\"ObjectTypeCallProperty\"),\n optional: true,\n default: []\n },\n internalSlots: {\n validate: (0, _utils.arrayOfType)(\"ObjectTypeInternalSlot\"),\n optional: true,\n default: []\n },\n exact: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n default: false\n },\n inexact: (0, _utils.validateOptional)((0, _utils.assertValueType)(\"boolean\"))\n }\n});\ndefineType(\"ObjectTypeInternalSlot\", {\n visitor: [\"id\", \"value\"],\n builder: [\"id\", \"value\", \"optional\", \"static\", \"method\"],\n aliases: [\"UserWhitespacable\"],\n fields: {\n id: (0, _utils.validateType)(\"Identifier\"),\n value: (0, _utils.validateType)(\"FlowType\"),\n optional: (0, _utils.validate)((0, _utils.assertValueType)(\"boolean\")),\n static: (0, _utils.validate)((0, _utils.assertValueType)(\"boolean\")),\n method: (0, _utils.validate)((0, _utils.assertValueType)(\"boolean\"))\n }\n});\ndefineType(\"ObjectTypeCallProperty\", {\n visitor: [\"value\"],\n aliases: [\"UserWhitespacable\"],\n fields: {\n value: (0, _utils.validateType)(\"FlowType\"),\n static: (0, _utils.validate)((0, _utils.assertValueType)(\"boolean\"))\n }\n});\ndefineType(\"ObjectTypeIndexer\", {\n visitor: [\"variance\", \"id\", \"key\", \"value\"],\n builder: [\"id\", \"key\", \"value\", \"variance\"],\n aliases: [\"UserWhitespacable\"],\n fields: {\n id: (0, _utils.validateOptionalType)(\"Identifier\"),\n key: (0, _utils.validateType)(\"FlowType\"),\n value: (0, _utils.validateType)(\"FlowType\"),\n static: (0, _utils.validate)((0, _utils.assertValueType)(\"boolean\")),\n variance: (0, _utils.validateOptionalType)(\"Variance\")\n }\n});\ndefineType(\"ObjectTypeProperty\", {\n visitor: [\"key\", \"value\", \"variance\"],\n aliases: [\"UserWhitespacable\"],\n fields: {\n key: (0, _utils.validateType)(\"Identifier\", \"StringLiteral\"),\n value: (0, _utils.validateType)(\"FlowType\"),\n kind: (0, _utils.validate)((0, _utils.assertOneOf)(\"init\", \"get\", \"set\")),\n static: (0, _utils.validate)((0, _utils.assertValueType)(\"boolean\")),\n proto: (0, _utils.validate)((0, _utils.assertValueType)(\"boolean\")),\n optional: (0, _utils.validate)((0, _utils.assertValueType)(\"boolean\")),\n variance: (0, _utils.validateOptionalType)(\"Variance\"),\n method: (0, _utils.validate)((0, _utils.assertValueType)(\"boolean\"))\n }\n});\ndefineType(\"ObjectTypeSpreadProperty\", {\n visitor: [\"argument\"],\n aliases: [\"UserWhitespacable\"],\n fields: {\n argument: (0, _utils.validateType)(\"FlowType\")\n }\n});\ndefineType(\"OpaqueType\", {\n visitor: [\"id\", \"typeParameters\", \"supertype\", \"impltype\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: (0, _utils.validateType)(\"Identifier\"),\n typeParameters: (0, _utils.validateOptionalType)(\"TypeParameterDeclaration\"),\n supertype: (0, _utils.validateOptionalType)(\"FlowType\"),\n impltype: (0, _utils.validateType)(\"FlowType\")\n }\n});\ndefineType(\"QualifiedTypeIdentifier\", {\n visitor: [\"qualification\", \"id\"],\n builder: [\"id\", \"qualification\"],\n fields: {\n id: (0, _utils.validateType)(\"Identifier\"),\n qualification: (0, _utils.validateType)(\"Identifier\", \"QualifiedTypeIdentifier\")\n }\n});\ndefineType(\"StringLiteralTypeAnnotation\", {\n builder: [\"value\"],\n aliases: [\"FlowType\"],\n fields: {\n value: (0, _utils.validate)((0, _utils.assertValueType)(\"string\"))\n }\n});\ndefineType(\"StringTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"]\n});\ndefineType(\"SymbolTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"]\n});\ndefineType(\"ThisTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"]\n});\ndefineType(\"TupleTypeAnnotation\", {\n visitor: [\"types\"],\n aliases: [\"FlowType\"],\n fields: {\n types: (0, _utils.validate)((0, _utils.arrayOfType)(\"FlowType\"))\n }\n});\ndefineType(\"TypeofTypeAnnotation\", {\n visitor: [\"argument\"],\n aliases: [\"FlowType\"],\n fields: {\n argument: (0, _utils.validateType)(\"FlowType\")\n }\n});\ndefineType(\"TypeAlias\", {\n visitor: [\"id\", \"typeParameters\", \"right\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: (0, _utils.validateType)(\"Identifier\"),\n typeParameters: (0, _utils.validateOptionalType)(\"TypeParameterDeclaration\"),\n right: (0, _utils.validateType)(\"FlowType\")\n }\n});\ndefineType(\"TypeAnnotation\", {\n visitor: [\"typeAnnotation\"],\n fields: {\n typeAnnotation: (0, _utils.validateType)(\"FlowType\")\n }\n});\ndefineType(\"TypeCastExpression\", {\n visitor: [\"expression\", \"typeAnnotation\"],\n aliases: [\"ExpressionWrapper\", \"Expression\"],\n fields: {\n expression: (0, _utils.validateType)(\"Expression\"),\n typeAnnotation: (0, _utils.validateType)(\"TypeAnnotation\")\n }\n});\ndefineType(\"TypeParameter\", {\n visitor: [\"bound\", \"default\", \"variance\"],\n fields: {\n name: (0, _utils.validate)((0, _utils.assertValueType)(\"string\")),\n bound: (0, _utils.validateOptionalType)(\"TypeAnnotation\"),\n default: (0, _utils.validateOptionalType)(\"FlowType\"),\n variance: (0, _utils.validateOptionalType)(\"Variance\")\n }\n});\ndefineType(\"TypeParameterDeclaration\", {\n visitor: [\"params\"],\n fields: {\n params: (0, _utils.validate)((0, _utils.arrayOfType)(\"TypeParameter\"))\n }\n});\ndefineType(\"TypeParameterInstantiation\", {\n visitor: [\"params\"],\n fields: {\n params: (0, _utils.validate)((0, _utils.arrayOfType)(\"FlowType\"))\n }\n});\ndefineType(\"UnionTypeAnnotation\", {\n visitor: [\"types\"],\n aliases: [\"FlowType\"],\n fields: {\n types: (0, _utils.validate)((0, _utils.arrayOfType)(\"FlowType\"))\n }\n});\ndefineType(\"Variance\", {\n builder: [\"kind\"],\n fields: {\n kind: (0, _utils.validate)((0, _utils.assertOneOf)(\"minus\", \"plus\"))\n }\n});\ndefineType(\"VoidTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"]\n});\ndefineType(\"EnumDeclaration\", {\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"body\"],\n fields: {\n id: (0, _utils.validateType)(\"Identifier\"),\n body: (0, _utils.validateType)(\"EnumBooleanBody\", \"EnumNumberBody\", \"EnumStringBody\", \"EnumSymbolBody\")\n }\n});\ndefineType(\"EnumBooleanBody\", {\n aliases: [\"EnumBody\"],\n visitor: [\"members\"],\n fields: {\n explicitType: (0, _utils.validate)((0, _utils.assertValueType)(\"boolean\")),\n members: (0, _utils.validateArrayOfType)(\"EnumBooleanMember\"),\n hasUnknownMembers: (0, _utils.validate)((0, _utils.assertValueType)(\"boolean\"))\n }\n});\ndefineType(\"EnumNumberBody\", {\n aliases: [\"EnumBody\"],\n visitor: [\"members\"],\n fields: {\n explicitType: (0, _utils.validate)((0, _utils.assertValueType)(\"boolean\")),\n members: (0, _utils.validateArrayOfType)(\"EnumNumberMember\"),\n hasUnknownMembers: (0, _utils.validate)((0, _utils.assertValueType)(\"boolean\"))\n }\n});\ndefineType(\"EnumStringBody\", {\n aliases: [\"EnumBody\"],\n visitor: [\"members\"],\n fields: {\n explicitType: (0, _utils.validate)((0, _utils.assertValueType)(\"boolean\")),\n members: (0, _utils.validateArrayOfType)(\"EnumStringMember\", \"EnumDefaultedMember\"),\n hasUnknownMembers: (0, _utils.validate)((0, _utils.assertValueType)(\"boolean\"))\n }\n});\ndefineType(\"EnumSymbolBody\", {\n aliases: [\"EnumBody\"],\n visitor: [\"members\"],\n fields: {\n members: (0, _utils.validateArrayOfType)(\"EnumDefaultedMember\"),\n hasUnknownMembers: (0, _utils.validate)((0, _utils.assertValueType)(\"boolean\"))\n }\n});\ndefineType(\"EnumBooleanMember\", {\n aliases: [\"EnumMember\"],\n builder: [\"id\"],\n visitor: [\"id\", \"init\"],\n fields: {\n id: (0, _utils.validateType)(\"Identifier\"),\n init: (0, _utils.validateType)(\"BooleanLiteral\")\n }\n});\ndefineType(\"EnumNumberMember\", {\n aliases: [\"EnumMember\"],\n visitor: [\"id\", \"init\"],\n fields: {\n id: (0, _utils.validateType)(\"Identifier\"),\n init: (0, _utils.validateType)(\"NumericLiteral\")\n }\n});\ndefineType(\"EnumStringMember\", {\n aliases: [\"EnumMember\"],\n visitor: [\"id\", \"init\"],\n fields: {\n id: (0, _utils.validateType)(\"Identifier\"),\n init: (0, _utils.validateType)(\"StringLiteral\")\n }\n});\ndefineType(\"EnumDefaultedMember\", {\n aliases: [\"EnumMember\"],\n visitor: [\"id\"],\n fields: {\n id: (0, _utils.validateType)(\"Identifier\")\n }\n});\ndefineType(\"IndexedAccessType\", {\n visitor: [\"objectType\", \"indexType\"],\n aliases: [\"FlowType\"],\n fields: {\n objectType: (0, _utils.validateType)(\"FlowType\"),\n indexType: (0, _utils.validateType)(\"FlowType\")\n }\n});\ndefineType(\"OptionalIndexedAccessType\", {\n visitor: [\"objectType\", \"indexType\"],\n aliases: [\"FlowType\"],\n fields: {\n objectType: (0, _utils.validateType)(\"FlowType\"),\n indexType: (0, _utils.validateType)(\"FlowType\"),\n optional: (0, _utils.validate)((0, _utils.assertValueType)(\"boolean\"))\n }\n});\n\n//# sourceMappingURL=flow.js.map\n","\"use strict\";\n\nvar _utils = require(\"./utils.js\");\nconst defineType = (0, _utils.defineAliasedType)(\"JSX\");\ndefineType(\"JSXAttribute\", {\n visitor: [\"name\", \"value\"],\n aliases: [\"Immutable\"],\n fields: {\n name: {\n validate: (0, _utils.assertNodeType)(\"JSXIdentifier\", \"JSXNamespacedName\")\n },\n value: {\n optional: true,\n validate: (0, _utils.assertNodeType)(\"JSXElement\", \"JSXFragment\", \"StringLiteral\", \"JSXExpressionContainer\")\n }\n }\n});\ndefineType(\"JSXClosingElement\", {\n visitor: [\"name\"],\n aliases: [\"Immutable\"],\n fields: {\n name: {\n validate: (0, _utils.assertNodeType)(\"JSXIdentifier\", \"JSXMemberExpression\", \"JSXNamespacedName\")\n }\n }\n});\ndefineType(\"JSXElement\", {\n builder: [\"openingElement\", \"closingElement\", \"children\", \"selfClosing\"],\n visitor: [\"openingElement\", \"children\", \"closingElement\"],\n aliases: [\"Immutable\", \"Expression\"],\n fields: Object.assign({\n openingElement: {\n validate: (0, _utils.assertNodeType)(\"JSXOpeningElement\")\n },\n closingElement: {\n optional: true,\n validate: (0, _utils.assertNodeType)(\"JSXClosingElement\")\n },\n children: (0, _utils.validateArrayOfType)(\"JSXText\", \"JSXExpressionContainer\", \"JSXSpreadChild\", \"JSXElement\", \"JSXFragment\")\n }, {\n selfClosing: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n }\n })\n});\ndefineType(\"JSXEmptyExpression\", {});\ndefineType(\"JSXExpressionContainer\", {\n visitor: [\"expression\"],\n aliases: [\"Immutable\"],\n fields: {\n expression: {\n validate: (0, _utils.assertNodeType)(\"Expression\", \"JSXEmptyExpression\")\n }\n }\n});\ndefineType(\"JSXSpreadChild\", {\n visitor: [\"expression\"],\n aliases: [\"Immutable\"],\n fields: {\n expression: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n }\n});\ndefineType(\"JSXIdentifier\", {\n builder: [\"name\"],\n fields: {\n name: {\n validate: (0, _utils.assertValueType)(\"string\")\n }\n }\n});\ndefineType(\"JSXMemberExpression\", {\n visitor: [\"object\", \"property\"],\n fields: {\n object: {\n validate: (0, _utils.assertNodeType)(\"JSXMemberExpression\", \"JSXIdentifier\")\n },\n property: {\n validate: (0, _utils.assertNodeType)(\"JSXIdentifier\")\n }\n }\n});\ndefineType(\"JSXNamespacedName\", {\n visitor: [\"namespace\", \"name\"],\n fields: {\n namespace: {\n validate: (0, _utils.assertNodeType)(\"JSXIdentifier\")\n },\n name: {\n validate: (0, _utils.assertNodeType)(\"JSXIdentifier\")\n }\n }\n});\ndefineType(\"JSXOpeningElement\", {\n builder: [\"name\", \"attributes\", \"selfClosing\"],\n visitor: [\"name\", \"typeParameters\", \"typeArguments\", \"attributes\"],\n aliases: [\"Immutable\"],\n fields: Object.assign({\n name: {\n validate: (0, _utils.assertNodeType)(\"JSXIdentifier\", \"JSXMemberExpression\", \"JSXNamespacedName\")\n },\n selfClosing: {\n default: false\n },\n attributes: (0, _utils.validateArrayOfType)(\"JSXAttribute\", \"JSXSpreadAttribute\"),\n typeArguments: {\n validate: (0, _utils.assertNodeType)(\"TypeParameterInstantiation\"),\n optional: true\n }\n }, {\n typeParameters: {\n validate: (0, _utils.assertNodeType)(\"TSTypeParameterInstantiation\"),\n optional: true\n }\n })\n});\ndefineType(\"JSXSpreadAttribute\", {\n visitor: [\"argument\"],\n fields: {\n argument: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n }\n});\ndefineType(\"JSXText\", {\n aliases: [\"Immutable\"],\n builder: [\"value\"],\n fields: {\n value: {\n validate: (0, _utils.assertValueType)(\"string\")\n }\n }\n});\ndefineType(\"JSXFragment\", {\n builder: [\"openingFragment\", \"closingFragment\", \"children\"],\n visitor: [\"openingFragment\", \"children\", \"closingFragment\"],\n aliases: [\"Immutable\", \"Expression\"],\n fields: {\n openingFragment: {\n validate: (0, _utils.assertNodeType)(\"JSXOpeningFragment\")\n },\n closingFragment: {\n validate: (0, _utils.assertNodeType)(\"JSXClosingFragment\")\n },\n children: (0, _utils.validateArrayOfType)(\"JSXText\", \"JSXExpressionContainer\", \"JSXSpreadChild\", \"JSXElement\", \"JSXFragment\")\n }\n});\ndefineType(\"JSXOpeningFragment\", {\n aliases: [\"Immutable\"]\n});\ndefineType(\"JSXClosingFragment\", {\n aliases: [\"Immutable\"]\n});\n\n//# sourceMappingURL=jsx.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PLACEHOLDERS_FLIPPED_ALIAS = exports.PLACEHOLDERS_ALIAS = exports.PLACEHOLDERS = void 0;\nvar _utils = require(\"./utils.js\");\nconst PLACEHOLDERS = exports.PLACEHOLDERS = [\"Identifier\", \"StringLiteral\", \"Expression\", \"Statement\", \"Declaration\", \"BlockStatement\", \"ClassBody\", \"Pattern\"];\nconst PLACEHOLDERS_ALIAS = exports.PLACEHOLDERS_ALIAS = {\n Declaration: [\"Statement\"],\n Pattern: [\"PatternLike\", \"LVal\"]\n};\nfor (const type of PLACEHOLDERS) {\n const alias = _utils.ALIAS_KEYS[type];\n if (alias != null && alias.length) PLACEHOLDERS_ALIAS[type] = alias;\n}\nconst PLACEHOLDERS_FLIPPED_ALIAS = exports.PLACEHOLDERS_FLIPPED_ALIAS = {};\nObject.keys(PLACEHOLDERS_ALIAS).forEach(type => {\n PLACEHOLDERS_ALIAS[type].forEach(alias => {\n if (!hasOwnProperty.call(PLACEHOLDERS_FLIPPED_ALIAS, alias)) {\n PLACEHOLDERS_FLIPPED_ALIAS[alias] = [];\n }\n PLACEHOLDERS_FLIPPED_ALIAS[alias].push(type);\n });\n});\n\n//# sourceMappingURL=placeholders.js.map\n","\"use strict\";\n\nvar _utils = require(\"./utils.js\");\nvar _placeholders = require(\"./placeholders.js\");\nvar _core = require(\"./core.js\");\nconst defineType = (0, _utils.defineAliasedType)(\"Miscellaneous\");\n{\n defineType(\"Noop\", {\n visitor: []\n });\n}\ndefineType(\"Placeholder\", {\n visitor: [],\n builder: [\"expectedNode\", \"name\"],\n fields: Object.assign({\n name: {\n validate: (0, _utils.assertNodeType)(\"Identifier\")\n },\n expectedNode: {\n validate: (0, _utils.assertOneOf)(..._placeholders.PLACEHOLDERS)\n }\n }, (0, _core.patternLikeCommon)())\n});\ndefineType(\"V8IntrinsicIdentifier\", {\n builder: [\"name\"],\n fields: {\n name: {\n validate: (0, _utils.assertValueType)(\"string\")\n }\n }\n});\n\n//# sourceMappingURL=misc.js.map\n","\"use strict\";\n\nvar _utils = require(\"./utils.js\");\n(0, _utils.default)(\"ArgumentPlaceholder\", {});\n(0, _utils.default)(\"BindExpression\", {\n visitor: [\"object\", \"callee\"],\n aliases: [\"Expression\"],\n fields: !process.env.BABEL_TYPES_8_BREAKING ? {\n object: {\n validate: Object.assign(() => {}, {\n oneOfNodeTypes: [\"Expression\"]\n })\n },\n callee: {\n validate: Object.assign(() => {}, {\n oneOfNodeTypes: [\"Expression\"]\n })\n }\n } : {\n object: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n },\n callee: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n }\n});\n(0, _utils.default)(\"Decorator\", {\n visitor: [\"expression\"],\n fields: {\n expression: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n }\n});\n(0, _utils.default)(\"DoExpression\", {\n visitor: [\"body\"],\n builder: [\"body\", \"async\"],\n aliases: [\"Expression\"],\n fields: {\n body: {\n validate: (0, _utils.assertNodeType)(\"BlockStatement\")\n },\n async: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n default: false\n }\n }\n});\n(0, _utils.default)(\"ExportDefaultSpecifier\", {\n visitor: [\"exported\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n exported: {\n validate: (0, _utils.assertNodeType)(\"Identifier\")\n }\n }\n});\n(0, _utils.default)(\"RecordExpression\", {\n visitor: [\"properties\"],\n aliases: [\"Expression\"],\n fields: {\n properties: (0, _utils.validateArrayOfType)(\"ObjectProperty\", \"SpreadElement\")\n }\n});\n(0, _utils.default)(\"TupleExpression\", {\n fields: {\n elements: {\n validate: (0, _utils.arrayOfType)(\"Expression\", \"SpreadElement\"),\n default: []\n }\n },\n visitor: [\"elements\"],\n aliases: [\"Expression\"]\n});\n{\n (0, _utils.default)(\"DecimalLiteral\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: (0, _utils.assertValueType)(\"string\")\n }\n },\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"]\n });\n}\n(0, _utils.default)(\"ModuleExpression\", {\n visitor: [\"body\"],\n fields: {\n body: {\n validate: (0, _utils.assertNodeType)(\"Program\")\n }\n },\n aliases: [\"Expression\"]\n});\n(0, _utils.default)(\"TopicReference\", {\n aliases: [\"Expression\"]\n});\n(0, _utils.default)(\"PipelineTopicExpression\", {\n builder: [\"expression\"],\n visitor: [\"expression\"],\n fields: {\n expression: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n },\n aliases: [\"Expression\"]\n});\n(0, _utils.default)(\"PipelineBareFunction\", {\n builder: [\"callee\"],\n visitor: [\"callee\"],\n fields: {\n callee: {\n validate: (0, _utils.assertNodeType)(\"Expression\")\n }\n },\n aliases: [\"Expression\"]\n});\n(0, _utils.default)(\"PipelinePrimaryTopicReference\", {\n aliases: [\"Expression\"]\n});\n(0, _utils.default)(\"VoidPattern\", {\n aliases: [\"Pattern\", \"PatternLike\", \"FunctionParameter\"]\n});\n\n//# sourceMappingURL=experimental.js.map\n","\"use strict\";\n\nvar _utils = require(\"./utils.js\");\nvar _core = require(\"./core.js\");\nvar _is = require(\"../validators/is.js\");\nconst defineType = (0, _utils.defineAliasedType)(\"TypeScript\");\nconst bool = (0, _utils.assertValueType)(\"boolean\");\nconst tSFunctionTypeAnnotationCommon = () => ({\n returnType: {\n validate: (0, _utils.assertNodeType)(\"TSTypeAnnotation\", \"Noop\"),\n optional: true\n },\n typeParameters: {\n validate: (0, _utils.assertNodeType)(\"TSTypeParameterDeclaration\", \"Noop\"),\n optional: true\n }\n});\ndefineType(\"TSParameterProperty\", {\n aliases: [\"LVal\"],\n visitor: [\"parameter\"],\n fields: {\n accessibility: {\n validate: (0, _utils.assertOneOf)(\"public\", \"private\", \"protected\"),\n optional: true\n },\n readonly: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n parameter: {\n validate: (0, _utils.assertNodeType)(\"Identifier\", \"AssignmentPattern\")\n },\n override: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n decorators: {\n validate: (0, _utils.arrayOfType)(\"Decorator\"),\n optional: true\n }\n }\n});\ndefineType(\"TSDeclareFunction\", {\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"typeParameters\", \"params\", \"returnType\"],\n fields: Object.assign({}, (0, _core.functionDeclarationCommon)(), tSFunctionTypeAnnotationCommon())\n});\ndefineType(\"TSDeclareMethod\", Object.assign({\n visitor: [\"decorators\", \"key\", \"typeParameters\", \"params\", \"returnType\"]\n}, (0, _core.classMethodOrPropertyUnionShapeCommon)(), {\n fields: Object.assign({}, (0, _core.classMethodOrDeclareMethodCommon)(), tSFunctionTypeAnnotationCommon())\n}));\ndefineType(\"TSQualifiedName\", {\n aliases: [\"TSEntityName\"],\n visitor: [\"left\", \"right\"],\n fields: {\n left: (0, _utils.validateType)(\"TSEntityName\"),\n right: (0, _utils.validateType)(\"Identifier\")\n }\n});\nconst signatureDeclarationCommon = () => ({\n typeParameters: (0, _utils.validateOptionalType)(\"TSTypeParameterDeclaration\"),\n [\"parameters\"]: (0, _utils.validateArrayOfType)(\"ArrayPattern\", \"Identifier\", \"ObjectPattern\", \"RestElement\"),\n [\"typeAnnotation\"]: (0, _utils.validateOptionalType)(\"TSTypeAnnotation\")\n});\nconst callConstructSignatureDeclaration = {\n aliases: [\"TSTypeElement\"],\n visitor: [\"typeParameters\", \"parameters\", \"typeAnnotation\"],\n fields: signatureDeclarationCommon()\n};\ndefineType(\"TSCallSignatureDeclaration\", callConstructSignatureDeclaration);\ndefineType(\"TSConstructSignatureDeclaration\", callConstructSignatureDeclaration);\nconst namedTypeElementCommon = () => ({\n key: (0, _utils.validateType)(\"Expression\"),\n computed: {\n default: false\n },\n optional: (0, _utils.validateOptional)(bool)\n});\ndefineType(\"TSPropertySignature\", {\n aliases: [\"TSTypeElement\"],\n visitor: [\"key\", \"typeAnnotation\"],\n fields: Object.assign({}, namedTypeElementCommon(), {\n readonly: (0, _utils.validateOptional)(bool),\n typeAnnotation: (0, _utils.validateOptionalType)(\"TSTypeAnnotation\"),\n kind: {\n optional: true,\n validate: (0, _utils.assertOneOf)(\"get\", \"set\")\n }\n })\n});\ndefineType(\"TSMethodSignature\", {\n aliases: [\"TSTypeElement\"],\n visitor: [\"key\", \"typeParameters\", \"parameters\", \"typeAnnotation\"],\n fields: Object.assign({}, signatureDeclarationCommon(), namedTypeElementCommon(), {\n kind: {\n validate: (0, _utils.assertOneOf)(\"method\", \"get\", \"set\")\n }\n })\n});\ndefineType(\"TSIndexSignature\", {\n aliases: [\"TSTypeElement\"],\n visitor: [\"parameters\", \"typeAnnotation\"],\n fields: {\n readonly: (0, _utils.validateOptional)(bool),\n static: (0, _utils.validateOptional)(bool),\n parameters: (0, _utils.validateArrayOfType)(\"Identifier\"),\n typeAnnotation: (0, _utils.validateOptionalType)(\"TSTypeAnnotation\")\n }\n});\nconst tsKeywordTypes = [\"TSAnyKeyword\", \"TSBooleanKeyword\", \"TSBigIntKeyword\", \"TSIntrinsicKeyword\", \"TSNeverKeyword\", \"TSNullKeyword\", \"TSNumberKeyword\", \"TSObjectKeyword\", \"TSStringKeyword\", \"TSSymbolKeyword\", \"TSUndefinedKeyword\", \"TSUnknownKeyword\", \"TSVoidKeyword\"];\nfor (const type of tsKeywordTypes) {\n defineType(type, {\n aliases: [\"TSType\", \"TSBaseType\"],\n visitor: [],\n fields: {}\n });\n}\ndefineType(\"TSThisType\", {\n aliases: [\"TSType\", \"TSBaseType\"],\n visitor: [],\n fields: {}\n});\nconst fnOrCtrBase = {\n aliases: [\"TSType\"],\n visitor: [\"typeParameters\", \"parameters\", \"typeAnnotation\"]\n};\ndefineType(\"TSFunctionType\", Object.assign({}, fnOrCtrBase, {\n fields: signatureDeclarationCommon()\n}));\ndefineType(\"TSConstructorType\", Object.assign({}, fnOrCtrBase, {\n fields: Object.assign({}, signatureDeclarationCommon(), {\n abstract: (0, _utils.validateOptional)(bool)\n })\n}));\ndefineType(\"TSTypeReference\", {\n aliases: [\"TSType\"],\n visitor: [\"typeName\", \"typeParameters\"],\n fields: {\n typeName: (0, _utils.validateType)(\"TSEntityName\"),\n [\"typeParameters\"]: (0, _utils.validateOptionalType)(\"TSTypeParameterInstantiation\")\n }\n});\ndefineType(\"TSTypePredicate\", {\n aliases: [\"TSType\"],\n visitor: [\"parameterName\", \"typeAnnotation\"],\n builder: [\"parameterName\", \"typeAnnotation\", \"asserts\"],\n fields: {\n parameterName: (0, _utils.validateType)(\"Identifier\", \"TSThisType\"),\n typeAnnotation: (0, _utils.validateOptionalType)(\"TSTypeAnnotation\"),\n asserts: (0, _utils.validateOptional)(bool)\n }\n});\ndefineType(\"TSTypeQuery\", {\n aliases: [\"TSType\"],\n visitor: [\"exprName\", \"typeParameters\"],\n fields: {\n exprName: (0, _utils.validateType)(\"TSEntityName\", \"TSImportType\"),\n [\"typeParameters\"]: (0, _utils.validateOptionalType)(\"TSTypeParameterInstantiation\")\n }\n});\ndefineType(\"TSTypeLiteral\", {\n aliases: [\"TSType\"],\n visitor: [\"members\"],\n fields: {\n members: (0, _utils.validateArrayOfType)(\"TSTypeElement\")\n }\n});\ndefineType(\"TSArrayType\", {\n aliases: [\"TSType\"],\n visitor: [\"elementType\"],\n fields: {\n elementType: (0, _utils.validateType)(\"TSType\")\n }\n});\ndefineType(\"TSTupleType\", {\n aliases: [\"TSType\"],\n visitor: [\"elementTypes\"],\n fields: {\n elementTypes: (0, _utils.validateArrayOfType)(\"TSType\", \"TSNamedTupleMember\")\n }\n});\ndefineType(\"TSOptionalType\", {\n aliases: [\"TSType\"],\n visitor: [\"typeAnnotation\"],\n fields: {\n typeAnnotation: (0, _utils.validateType)(\"TSType\")\n }\n});\ndefineType(\"TSRestType\", {\n aliases: [\"TSType\"],\n visitor: [\"typeAnnotation\"],\n fields: {\n typeAnnotation: (0, _utils.validateType)(\"TSType\")\n }\n});\ndefineType(\"TSNamedTupleMember\", {\n visitor: [\"label\", \"elementType\"],\n builder: [\"label\", \"elementType\", \"optional\"],\n fields: {\n label: (0, _utils.validateType)(\"Identifier\"),\n optional: {\n validate: bool,\n default: false\n },\n elementType: (0, _utils.validateType)(\"TSType\")\n }\n});\nconst unionOrIntersection = {\n aliases: [\"TSType\"],\n visitor: [\"types\"],\n fields: {\n types: (0, _utils.validateArrayOfType)(\"TSType\")\n }\n};\ndefineType(\"TSUnionType\", unionOrIntersection);\ndefineType(\"TSIntersectionType\", unionOrIntersection);\ndefineType(\"TSConditionalType\", {\n aliases: [\"TSType\"],\n visitor: [\"checkType\", \"extendsType\", \"trueType\", \"falseType\"],\n fields: {\n checkType: (0, _utils.validateType)(\"TSType\"),\n extendsType: (0, _utils.validateType)(\"TSType\"),\n trueType: (0, _utils.validateType)(\"TSType\"),\n falseType: (0, _utils.validateType)(\"TSType\")\n }\n});\ndefineType(\"TSInferType\", {\n aliases: [\"TSType\"],\n visitor: [\"typeParameter\"],\n fields: {\n typeParameter: (0, _utils.validateType)(\"TSTypeParameter\")\n }\n});\ndefineType(\"TSParenthesizedType\", {\n aliases: [\"TSType\"],\n visitor: [\"typeAnnotation\"],\n fields: {\n typeAnnotation: (0, _utils.validateType)(\"TSType\")\n }\n});\ndefineType(\"TSTypeOperator\", {\n aliases: [\"TSType\"],\n visitor: [\"typeAnnotation\"],\n builder: [\"typeAnnotation\", \"operator\"],\n fields: {\n operator: {\n validate: (0, _utils.assertValueType)(\"string\"),\n default: \"keyof\"\n },\n typeAnnotation: (0, _utils.validateType)(\"TSType\")\n }\n});\ndefineType(\"TSIndexedAccessType\", {\n aliases: [\"TSType\"],\n visitor: [\"objectType\", \"indexType\"],\n fields: {\n objectType: (0, _utils.validateType)(\"TSType\"),\n indexType: (0, _utils.validateType)(\"TSType\")\n }\n});\ndefineType(\"TSMappedType\", {\n aliases: [\"TSType\"],\n visitor: [\"typeParameter\", \"nameType\", \"typeAnnotation\"],\n builder: [\"typeParameter\", \"typeAnnotation\", \"nameType\"],\n fields: Object.assign({}, {\n typeParameter: (0, _utils.validateType)(\"TSTypeParameter\")\n }, {\n readonly: (0, _utils.validateOptional)((0, _utils.assertOneOf)(true, false, \"+\", \"-\")),\n optional: (0, _utils.validateOptional)((0, _utils.assertOneOf)(true, false, \"+\", \"-\")),\n typeAnnotation: (0, _utils.validateOptionalType)(\"TSType\"),\n nameType: (0, _utils.validateOptionalType)(\"TSType\")\n })\n});\ndefineType(\"TSTemplateLiteralType\", {\n aliases: [\"TSType\", \"TSBaseType\"],\n visitor: [\"quasis\", \"types\"],\n fields: {\n quasis: (0, _utils.validateArrayOfType)(\"TemplateElement\"),\n types: {\n validate: (0, _utils.chain)((0, _utils.assertValueType)(\"array\"), (0, _utils.assertEach)((0, _utils.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 = (0, _utils.assertNodeType)(\"NumericLiteral\", \"BigIntLiteral\");\n const unaryOperator = (0, _utils.assertOneOf)(\"-\");\n const literal = (0, _utils.assertNodeType)(\"NumericLiteral\", \"StringLiteral\", \"BooleanLiteral\", \"BigIntLiteral\", \"TemplateLiteral\");\n const validator = function validator(parent, key, node) {\n if ((0, _is.default)(\"UnaryExpression\", node)) {\n unaryOperator(node, \"operator\", node.operator);\n unaryExpression(node, \"argument\", node.argument);\n } else {\n literal(parent, key, node);\n }\n };\n validator.oneOfNodeTypes = [\"NumericLiteral\", \"StringLiteral\", \"BooleanLiteral\", \"BigIntLiteral\", \"TemplateLiteral\", \"UnaryExpression\"];\n return validator;\n }()\n }\n }\n});\n{\n defineType(\"TSExpressionWithTypeArguments\", {\n aliases: [\"TSType\"],\n visitor: [\"expression\", \"typeParameters\"],\n fields: {\n expression: (0, _utils.validateType)(\"TSEntityName\"),\n typeParameters: (0, _utils.validateOptionalType)(\"TSTypeParameterInstantiation\")\n }\n });\n}\ndefineType(\"TSInterfaceDeclaration\", {\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"typeParameters\", \"extends\", \"body\"],\n fields: {\n declare: (0, _utils.validateOptional)(bool),\n id: (0, _utils.validateType)(\"Identifier\"),\n typeParameters: (0, _utils.validateOptionalType)(\"TSTypeParameterDeclaration\"),\n extends: (0, _utils.validateOptional)((0, _utils.arrayOfType)(\"TSExpressionWithTypeArguments\")),\n body: (0, _utils.validateType)(\"TSInterfaceBody\")\n }\n});\ndefineType(\"TSInterfaceBody\", {\n visitor: [\"body\"],\n fields: {\n body: (0, _utils.validateArrayOfType)(\"TSTypeElement\")\n }\n});\ndefineType(\"TSTypeAliasDeclaration\", {\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"typeParameters\", \"typeAnnotation\"],\n fields: {\n declare: (0, _utils.validateOptional)(bool),\n id: (0, _utils.validateType)(\"Identifier\"),\n typeParameters: (0, _utils.validateOptionalType)(\"TSTypeParameterDeclaration\"),\n typeAnnotation: (0, _utils.validateType)(\"TSType\")\n }\n});\ndefineType(\"TSInstantiationExpression\", {\n aliases: [\"Expression\"],\n visitor: [\"expression\", \"typeParameters\"],\n fields: {\n expression: (0, _utils.validateType)(\"Expression\"),\n [\"typeParameters\"]: (0, _utils.validateOptionalType)(\"TSTypeParameterInstantiation\")\n }\n});\nconst TSTypeExpression = {\n aliases: [\"Expression\", \"LVal\", \"PatternLike\"],\n visitor: [\"expression\", \"typeAnnotation\"],\n fields: {\n expression: (0, _utils.validateType)(\"Expression\"),\n typeAnnotation: (0, _utils.validateType)(\"TSType\")\n }\n};\ndefineType(\"TSAsExpression\", TSTypeExpression);\ndefineType(\"TSSatisfiesExpression\", TSTypeExpression);\ndefineType(\"TSTypeAssertion\", {\n aliases: [\"Expression\", \"LVal\", \"PatternLike\"],\n visitor: [\"typeAnnotation\", \"expression\"],\n fields: {\n typeAnnotation: (0, _utils.validateType)(\"TSType\"),\n expression: (0, _utils.validateType)(\"Expression\")\n }\n});\ndefineType(\"TSEnumBody\", {\n visitor: [\"members\"],\n fields: {\n members: (0, _utils.validateArrayOfType)(\"TSEnumMember\")\n }\n});\n{\n defineType(\"TSEnumDeclaration\", {\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"members\"],\n fields: {\n declare: (0, _utils.validateOptional)(bool),\n const: (0, _utils.validateOptional)(bool),\n id: (0, _utils.validateType)(\"Identifier\"),\n members: (0, _utils.validateArrayOfType)(\"TSEnumMember\"),\n initializer: (0, _utils.validateOptionalType)(\"Expression\"),\n body: (0, _utils.validateOptionalType)(\"TSEnumBody\")\n }\n });\n}\ndefineType(\"TSEnumMember\", {\n visitor: [\"id\", \"initializer\"],\n fields: {\n id: (0, _utils.validateType)(\"Identifier\", \"StringLiteral\"),\n initializer: (0, _utils.validateOptionalType)(\"Expression\")\n }\n});\ndefineType(\"TSModuleDeclaration\", {\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"body\"],\n fields: Object.assign({\n kind: {\n validate: (0, _utils.assertOneOf)(\"global\", \"module\", \"namespace\")\n },\n declare: (0, _utils.validateOptional)(bool)\n }, {\n global: (0, _utils.validateOptional)(bool)\n }, {\n id: (0, _utils.validateType)(\"Identifier\", \"StringLiteral\"),\n body: (0, _utils.validateType)(\"TSModuleBlock\", \"TSModuleDeclaration\")\n })\n});\ndefineType(\"TSModuleBlock\", {\n aliases: [\"Scopable\", \"Block\", \"BlockParent\", \"FunctionParent\"],\n visitor: [\"body\"],\n fields: {\n body: (0, _utils.validateArrayOfType)(\"Statement\")\n }\n});\ndefineType(\"TSImportType\", {\n aliases: [\"TSType\"],\n builder: [\"argument\", \"qualifier\", \"typeParameters\"],\n visitor: [\"argument\", \"options\", \"qualifier\", \"typeParameters\"],\n fields: {\n argument: (0, _utils.validateType)(\"StringLiteral\"),\n qualifier: (0, _utils.validateOptionalType)(\"TSEntityName\"),\n [\"typeParameters\"]: (0, _utils.validateOptionalType)(\"TSTypeParameterInstantiation\"),\n options: {\n validate: (0, _utils.assertNodeType)(\"ObjectExpression\"),\n optional: true\n }\n }\n});\ndefineType(\"TSImportEqualsDeclaration\", {\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"moduleReference\"],\n fields: Object.assign({}, {\n isExport: (0, _utils.validate)(bool)\n }, {\n id: (0, _utils.validateType)(\"Identifier\"),\n moduleReference: (0, _utils.validateType)(\"TSEntityName\", \"TSExternalModuleReference\"),\n importKind: {\n validate: (0, _utils.assertOneOf)(\"type\", \"value\"),\n optional: true\n }\n })\n});\ndefineType(\"TSExternalModuleReference\", {\n visitor: [\"expression\"],\n fields: {\n expression: (0, _utils.validateType)(\"StringLiteral\")\n }\n});\ndefineType(\"TSNonNullExpression\", {\n aliases: [\"Expression\", \"LVal\", \"PatternLike\"],\n visitor: [\"expression\"],\n fields: {\n expression: (0, _utils.validateType)(\"Expression\")\n }\n});\ndefineType(\"TSExportAssignment\", {\n aliases: [\"Statement\"],\n visitor: [\"expression\"],\n fields: {\n expression: (0, _utils.validateType)(\"Expression\")\n }\n});\ndefineType(\"TSNamespaceExportDeclaration\", {\n aliases: [\"Statement\"],\n visitor: [\"id\"],\n fields: {\n id: (0, _utils.validateType)(\"Identifier\")\n }\n});\ndefineType(\"TSTypeAnnotation\", {\n visitor: [\"typeAnnotation\"],\n fields: {\n typeAnnotation: {\n validate: (0, _utils.assertNodeType)(\"TSType\")\n }\n }\n});\ndefineType(\"TSTypeParameterInstantiation\", {\n visitor: [\"params\"],\n fields: {\n params: (0, _utils.validateArrayOfType)(\"TSType\")\n }\n});\ndefineType(\"TSTypeParameterDeclaration\", {\n visitor: [\"params\"],\n fields: {\n params: (0, _utils.validateArrayOfType)(\"TSTypeParameter\")\n }\n});\ndefineType(\"TSTypeParameter\", {\n builder: [\"constraint\", \"default\", \"name\"],\n visitor: [\"constraint\", \"default\"],\n fields: {\n name: {\n validate: (0, _utils.assertValueType)(\"string\")\n },\n in: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n out: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n const: {\n validate: (0, _utils.assertValueType)(\"boolean\"),\n optional: true\n },\n constraint: {\n validate: (0, _utils.assertNodeType)(\"TSType\"),\n optional: true\n },\n default: {\n validate: (0, _utils.assertNodeType)(\"TSType\"),\n optional: true\n }\n }\n});\n\n//# sourceMappingURL=typescript.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DEPRECATED_ALIASES = void 0;\nconst DEPRECATED_ALIASES = exports.DEPRECATED_ALIASES = {\n ModuleDeclaration: \"ImportOrExportDeclaration\"\n};\n\n//# sourceMappingURL=deprecated-aliases.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"ALIAS_KEYS\", {\n enumerable: true,\n get: function () {\n return _utils.ALIAS_KEYS;\n }\n});\nObject.defineProperty(exports, \"BUILDER_KEYS\", {\n enumerable: true,\n get: function () {\n return _utils.BUILDER_KEYS;\n }\n});\nObject.defineProperty(exports, \"DEPRECATED_ALIASES\", {\n enumerable: true,\n get: function () {\n return _deprecatedAliases.DEPRECATED_ALIASES;\n }\n});\nObject.defineProperty(exports, \"DEPRECATED_KEYS\", {\n enumerable: true,\n get: function () {\n return _utils.DEPRECATED_KEYS;\n }\n});\nObject.defineProperty(exports, \"FLIPPED_ALIAS_KEYS\", {\n enumerable: true,\n get: function () {\n return _utils.FLIPPED_ALIAS_KEYS;\n }\n});\nObject.defineProperty(exports, \"NODE_FIELDS\", {\n enumerable: true,\n get: function () {\n return _utils.NODE_FIELDS;\n }\n});\nObject.defineProperty(exports, \"NODE_PARENT_VALIDATIONS\", {\n enumerable: true,\n get: function () {\n return _utils.NODE_PARENT_VALIDATIONS;\n }\n});\nObject.defineProperty(exports, \"NODE_UNION_SHAPES__PRIVATE\", {\n enumerable: true,\n get: function () {\n return _utils.NODE_UNION_SHAPES__PRIVATE;\n }\n});\nObject.defineProperty(exports, \"PLACEHOLDERS\", {\n enumerable: true,\n get: function () {\n return _placeholders.PLACEHOLDERS;\n }\n});\nObject.defineProperty(exports, \"PLACEHOLDERS_ALIAS\", {\n enumerable: true,\n get: function () {\n return _placeholders.PLACEHOLDERS_ALIAS;\n }\n});\nObject.defineProperty(exports, \"PLACEHOLDERS_FLIPPED_ALIAS\", {\n enumerable: true,\n get: function () {\n return _placeholders.PLACEHOLDERS_FLIPPED_ALIAS;\n }\n});\nexports.TYPES = void 0;\nObject.defineProperty(exports, \"VISITOR_KEYS\", {\n enumerable: true,\n get: function () {\n return _utils.VISITOR_KEYS;\n }\n});\nrequire(\"./core.js\");\nrequire(\"./flow.js\");\nrequire(\"./jsx.js\");\nrequire(\"./misc.js\");\nrequire(\"./experimental.js\");\nrequire(\"./typescript.js\");\nvar _utils = require(\"./utils.js\");\nvar _placeholders = require(\"./placeholders.js\");\nvar _deprecatedAliases = require(\"./deprecated-aliases.js\");\nObject.keys(_deprecatedAliases.DEPRECATED_ALIASES).forEach(deprecatedAlias => {\n _utils.FLIPPED_ALIAS_KEYS[deprecatedAlias] = _utils.FLIPPED_ALIAS_KEYS[_deprecatedAliases.DEPRECATED_ALIASES[deprecatedAlias]];\n});\nfor (const {\n types,\n set\n} of _utils.allExpandedTypes) {\n for (const type of types) {\n const aliases = _utils.FLIPPED_ALIAS_KEYS[type];\n if (aliases) {\n aliases.forEach(set.add, set);\n } else {\n set.add(type);\n }\n }\n}\nconst TYPES = exports.TYPES = [].concat(Object.keys(_utils.VISITOR_KEYS), Object.keys(_utils.FLIPPED_ALIAS_KEYS), Object.keys(_utils.DEPRECATED_KEYS));\n\n//# sourceMappingURL=index.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = validate;\nexports.validateChild = validateChild;\nexports.validateField = validateField;\nexports.validateInternal = validateInternal;\nvar _index = require(\"../definitions/index.js\");\nfunction validate(node, key, val) {\n if (!node) return;\n const fields = _index.NODE_FIELDS[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 != null && field.validate)) return;\n if (field.optional && val == null) return;\n field.validate(node, key, val);\n if (maybeNode) {\n var _NODE_PARENT_VALIDATI;\n const type = val.type;\n if (type == null) return;\n (_NODE_PARENT_VALIDATI = _index.NODE_PARENT_VALIDATIONS[type]) == null || _NODE_PARENT_VALIDATI.call(_index.NODE_PARENT_VALIDATIONS, node, key, val);\n }\n}\nfunction validateField(node, key, val, field) {\n if (!(field != null && field.validate)) return;\n if (field.optional && val == null) return;\n field.validate(node, key, val);\n}\nfunction validateChild(node, key, val) {\n var _NODE_PARENT_VALIDATI2;\n const type = val == null ? void 0 : val.type;\n if (type == null) return;\n (_NODE_PARENT_VALIDATI2 = _index.NODE_PARENT_VALIDATIONS[type]) == null || _NODE_PARENT_VALIDATI2.call(_index.NODE_PARENT_VALIDATIONS, node, key, val);\n}\n\n//# sourceMappingURL=validate.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.anyTypeAnnotation = anyTypeAnnotation;\nexports.argumentPlaceholder = argumentPlaceholder;\nexports.arrayExpression = arrayExpression;\nexports.arrayPattern = arrayPattern;\nexports.arrayTypeAnnotation = arrayTypeAnnotation;\nexports.arrowFunctionExpression = arrowFunctionExpression;\nexports.assignmentExpression = assignmentExpression;\nexports.assignmentPattern = assignmentPattern;\nexports.awaitExpression = awaitExpression;\nexports.bigIntLiteral = bigIntLiteral;\nexports.binaryExpression = binaryExpression;\nexports.bindExpression = bindExpression;\nexports.blockStatement = blockStatement;\nexports.booleanLiteral = booleanLiteral;\nexports.booleanLiteralTypeAnnotation = booleanLiteralTypeAnnotation;\nexports.booleanTypeAnnotation = booleanTypeAnnotation;\nexports.breakStatement = breakStatement;\nexports.callExpression = callExpression;\nexports.catchClause = catchClause;\nexports.classAccessorProperty = classAccessorProperty;\nexports.classBody = classBody;\nexports.classDeclaration = classDeclaration;\nexports.classExpression = classExpression;\nexports.classImplements = classImplements;\nexports.classMethod = classMethod;\nexports.classPrivateMethod = classPrivateMethod;\nexports.classPrivateProperty = classPrivateProperty;\nexports.classProperty = classProperty;\nexports.conditionalExpression = conditionalExpression;\nexports.continueStatement = continueStatement;\nexports.debuggerStatement = debuggerStatement;\nexports.decimalLiteral = decimalLiteral;\nexports.declareClass = declareClass;\nexports.declareExportAllDeclaration = declareExportAllDeclaration;\nexports.declareExportDeclaration = declareExportDeclaration;\nexports.declareFunction = declareFunction;\nexports.declareInterface = declareInterface;\nexports.declareModule = declareModule;\nexports.declareModuleExports = declareModuleExports;\nexports.declareOpaqueType = declareOpaqueType;\nexports.declareTypeAlias = declareTypeAlias;\nexports.declareVariable = declareVariable;\nexports.declaredPredicate = declaredPredicate;\nexports.decorator = decorator;\nexports.directive = directive;\nexports.directiveLiteral = directiveLiteral;\nexports.doExpression = doExpression;\nexports.doWhileStatement = doWhileStatement;\nexports.emptyStatement = emptyStatement;\nexports.emptyTypeAnnotation = emptyTypeAnnotation;\nexports.enumBooleanBody = enumBooleanBody;\nexports.enumBooleanMember = enumBooleanMember;\nexports.enumDeclaration = enumDeclaration;\nexports.enumDefaultedMember = enumDefaultedMember;\nexports.enumNumberBody = enumNumberBody;\nexports.enumNumberMember = enumNumberMember;\nexports.enumStringBody = enumStringBody;\nexports.enumStringMember = enumStringMember;\nexports.enumSymbolBody = enumSymbolBody;\nexports.existsTypeAnnotation = existsTypeAnnotation;\nexports.exportAllDeclaration = exportAllDeclaration;\nexports.exportDefaultDeclaration = exportDefaultDeclaration;\nexports.exportDefaultSpecifier = exportDefaultSpecifier;\nexports.exportNamedDeclaration = exportNamedDeclaration;\nexports.exportNamespaceSpecifier = exportNamespaceSpecifier;\nexports.exportSpecifier = exportSpecifier;\nexports.expressionStatement = expressionStatement;\nexports.file = file;\nexports.forInStatement = forInStatement;\nexports.forOfStatement = forOfStatement;\nexports.forStatement = forStatement;\nexports.functionDeclaration = functionDeclaration;\nexports.functionExpression = functionExpression;\nexports.functionTypeAnnotation = functionTypeAnnotation;\nexports.functionTypeParam = functionTypeParam;\nexports.genericTypeAnnotation = genericTypeAnnotation;\nexports.identifier = identifier;\nexports.ifStatement = ifStatement;\nexports.import = _import;\nexports.importAttribute = importAttribute;\nexports.importDeclaration = importDeclaration;\nexports.importDefaultSpecifier = importDefaultSpecifier;\nexports.importExpression = importExpression;\nexports.importNamespaceSpecifier = importNamespaceSpecifier;\nexports.importSpecifier = importSpecifier;\nexports.indexedAccessType = indexedAccessType;\nexports.inferredPredicate = inferredPredicate;\nexports.interfaceDeclaration = interfaceDeclaration;\nexports.interfaceExtends = interfaceExtends;\nexports.interfaceTypeAnnotation = interfaceTypeAnnotation;\nexports.interpreterDirective = interpreterDirective;\nexports.intersectionTypeAnnotation = intersectionTypeAnnotation;\nexports.jSXAttribute = exports.jsxAttribute = jsxAttribute;\nexports.jSXClosingElement = exports.jsxClosingElement = jsxClosingElement;\nexports.jSXClosingFragment = exports.jsxClosingFragment = jsxClosingFragment;\nexports.jSXElement = exports.jsxElement = jsxElement;\nexports.jSXEmptyExpression = exports.jsxEmptyExpression = jsxEmptyExpression;\nexports.jSXExpressionContainer = exports.jsxExpressionContainer = jsxExpressionContainer;\nexports.jSXFragment = exports.jsxFragment = jsxFragment;\nexports.jSXIdentifier = exports.jsxIdentifier = jsxIdentifier;\nexports.jSXMemberExpression = exports.jsxMemberExpression = jsxMemberExpression;\nexports.jSXNamespacedName = exports.jsxNamespacedName = jsxNamespacedName;\nexports.jSXOpeningElement = exports.jsxOpeningElement = jsxOpeningElement;\nexports.jSXOpeningFragment = exports.jsxOpeningFragment = jsxOpeningFragment;\nexports.jSXSpreadAttribute = exports.jsxSpreadAttribute = jsxSpreadAttribute;\nexports.jSXSpreadChild = exports.jsxSpreadChild = jsxSpreadChild;\nexports.jSXText = exports.jsxText = jsxText;\nexports.labeledStatement = labeledStatement;\nexports.logicalExpression = logicalExpression;\nexports.memberExpression = memberExpression;\nexports.metaProperty = metaProperty;\nexports.mixedTypeAnnotation = mixedTypeAnnotation;\nexports.moduleExpression = moduleExpression;\nexports.newExpression = newExpression;\nexports.noop = noop;\nexports.nullLiteral = nullLiteral;\nexports.nullLiteralTypeAnnotation = nullLiteralTypeAnnotation;\nexports.nullableTypeAnnotation = nullableTypeAnnotation;\nexports.numberLiteral = NumberLiteral;\nexports.numberLiteralTypeAnnotation = numberLiteralTypeAnnotation;\nexports.numberTypeAnnotation = numberTypeAnnotation;\nexports.numericLiteral = numericLiteral;\nexports.objectExpression = objectExpression;\nexports.objectMethod = objectMethod;\nexports.objectPattern = objectPattern;\nexports.objectProperty = objectProperty;\nexports.objectTypeAnnotation = objectTypeAnnotation;\nexports.objectTypeCallProperty = objectTypeCallProperty;\nexports.objectTypeIndexer = objectTypeIndexer;\nexports.objectTypeInternalSlot = objectTypeInternalSlot;\nexports.objectTypeProperty = objectTypeProperty;\nexports.objectTypeSpreadProperty = objectTypeSpreadProperty;\nexports.opaqueType = opaqueType;\nexports.optionalCallExpression = optionalCallExpression;\nexports.optionalIndexedAccessType = optionalIndexedAccessType;\nexports.optionalMemberExpression = optionalMemberExpression;\nexports.parenthesizedExpression = parenthesizedExpression;\nexports.pipelineBareFunction = pipelineBareFunction;\nexports.pipelinePrimaryTopicReference = pipelinePrimaryTopicReference;\nexports.pipelineTopicExpression = pipelineTopicExpression;\nexports.placeholder = placeholder;\nexports.privateName = privateName;\nexports.program = program;\nexports.qualifiedTypeIdentifier = qualifiedTypeIdentifier;\nexports.recordExpression = recordExpression;\nexports.regExpLiteral = regExpLiteral;\nexports.regexLiteral = RegexLiteral;\nexports.restElement = restElement;\nexports.restProperty = RestProperty;\nexports.returnStatement = returnStatement;\nexports.sequenceExpression = sequenceExpression;\nexports.spreadElement = spreadElement;\nexports.spreadProperty = SpreadProperty;\nexports.staticBlock = staticBlock;\nexports.stringLiteral = stringLiteral;\nexports.stringLiteralTypeAnnotation = stringLiteralTypeAnnotation;\nexports.stringTypeAnnotation = stringTypeAnnotation;\nexports.super = _super;\nexports.switchCase = switchCase;\nexports.switchStatement = switchStatement;\nexports.symbolTypeAnnotation = symbolTypeAnnotation;\nexports.taggedTemplateExpression = taggedTemplateExpression;\nexports.templateElement = templateElement;\nexports.templateLiteral = templateLiteral;\nexports.thisExpression = thisExpression;\nexports.thisTypeAnnotation = thisTypeAnnotation;\nexports.throwStatement = throwStatement;\nexports.topicReference = topicReference;\nexports.tryStatement = tryStatement;\nexports.tSAnyKeyword = exports.tsAnyKeyword = tsAnyKeyword;\nexports.tSArrayType = exports.tsArrayType = tsArrayType;\nexports.tSAsExpression = exports.tsAsExpression = tsAsExpression;\nexports.tSBigIntKeyword = exports.tsBigIntKeyword = tsBigIntKeyword;\nexports.tSBooleanKeyword = exports.tsBooleanKeyword = tsBooleanKeyword;\nexports.tSCallSignatureDeclaration = exports.tsCallSignatureDeclaration = tsCallSignatureDeclaration;\nexports.tSConditionalType = exports.tsConditionalType = tsConditionalType;\nexports.tSConstructSignatureDeclaration = exports.tsConstructSignatureDeclaration = tsConstructSignatureDeclaration;\nexports.tSConstructorType = exports.tsConstructorType = tsConstructorType;\nexports.tSDeclareFunction = exports.tsDeclareFunction = tsDeclareFunction;\nexports.tSDeclareMethod = exports.tsDeclareMethod = tsDeclareMethod;\nexports.tSEnumBody = exports.tsEnumBody = tsEnumBody;\nexports.tSEnumDeclaration = exports.tsEnumDeclaration = tsEnumDeclaration;\nexports.tSEnumMember = exports.tsEnumMember = tsEnumMember;\nexports.tSExportAssignment = exports.tsExportAssignment = tsExportAssignment;\nexports.tSExpressionWithTypeArguments = exports.tsExpressionWithTypeArguments = tsExpressionWithTypeArguments;\nexports.tSExternalModuleReference = exports.tsExternalModuleReference = tsExternalModuleReference;\nexports.tSFunctionType = exports.tsFunctionType = tsFunctionType;\nexports.tSImportEqualsDeclaration = exports.tsImportEqualsDeclaration = tsImportEqualsDeclaration;\nexports.tSImportType = exports.tsImportType = tsImportType;\nexports.tSIndexSignature = exports.tsIndexSignature = tsIndexSignature;\nexports.tSIndexedAccessType = exports.tsIndexedAccessType = tsIndexedAccessType;\nexports.tSInferType = exports.tsInferType = tsInferType;\nexports.tSInstantiationExpression = exports.tsInstantiationExpression = tsInstantiationExpression;\nexports.tSInterfaceBody = exports.tsInterfaceBody = tsInterfaceBody;\nexports.tSInterfaceDeclaration = exports.tsInterfaceDeclaration = tsInterfaceDeclaration;\nexports.tSIntersectionType = exports.tsIntersectionType = tsIntersectionType;\nexports.tSIntrinsicKeyword = exports.tsIntrinsicKeyword = tsIntrinsicKeyword;\nexports.tSLiteralType = exports.tsLiteralType = tsLiteralType;\nexports.tSMappedType = exports.tsMappedType = tsMappedType;\nexports.tSMethodSignature = exports.tsMethodSignature = tsMethodSignature;\nexports.tSModuleBlock = exports.tsModuleBlock = tsModuleBlock;\nexports.tSModuleDeclaration = exports.tsModuleDeclaration = tsModuleDeclaration;\nexports.tSNamedTupleMember = exports.tsNamedTupleMember = tsNamedTupleMember;\nexports.tSNamespaceExportDeclaration = exports.tsNamespaceExportDeclaration = tsNamespaceExportDeclaration;\nexports.tSNeverKeyword = exports.tsNeverKeyword = tsNeverKeyword;\nexports.tSNonNullExpression = exports.tsNonNullExpression = tsNonNullExpression;\nexports.tSNullKeyword = exports.tsNullKeyword = tsNullKeyword;\nexports.tSNumberKeyword = exports.tsNumberKeyword = tsNumberKeyword;\nexports.tSObjectKeyword = exports.tsObjectKeyword = tsObjectKeyword;\nexports.tSOptionalType = exports.tsOptionalType = tsOptionalType;\nexports.tSParameterProperty = exports.tsParameterProperty = tsParameterProperty;\nexports.tSParenthesizedType = exports.tsParenthesizedType = tsParenthesizedType;\nexports.tSPropertySignature = exports.tsPropertySignature = tsPropertySignature;\nexports.tSQualifiedName = exports.tsQualifiedName = tsQualifiedName;\nexports.tSRestType = exports.tsRestType = tsRestType;\nexports.tSSatisfiesExpression = exports.tsSatisfiesExpression = tsSatisfiesExpression;\nexports.tSStringKeyword = exports.tsStringKeyword = tsStringKeyword;\nexports.tSSymbolKeyword = exports.tsSymbolKeyword = tsSymbolKeyword;\nexports.tSTemplateLiteralType = exports.tsTemplateLiteralType = tsTemplateLiteralType;\nexports.tSThisType = exports.tsThisType = tsThisType;\nexports.tSTupleType = exports.tsTupleType = tsTupleType;\nexports.tSTypeAliasDeclaration = exports.tsTypeAliasDeclaration = tsTypeAliasDeclaration;\nexports.tSTypeAnnotation = exports.tsTypeAnnotation = tsTypeAnnotation;\nexports.tSTypeAssertion = exports.tsTypeAssertion = tsTypeAssertion;\nexports.tSTypeLiteral = exports.tsTypeLiteral = tsTypeLiteral;\nexports.tSTypeOperator = exports.tsTypeOperator = tsTypeOperator;\nexports.tSTypeParameter = exports.tsTypeParameter = tsTypeParameter;\nexports.tSTypeParameterDeclaration = exports.tsTypeParameterDeclaration = tsTypeParameterDeclaration;\nexports.tSTypeParameterInstantiation = exports.tsTypeParameterInstantiation = tsTypeParameterInstantiation;\nexports.tSTypePredicate = exports.tsTypePredicate = tsTypePredicate;\nexports.tSTypeQuery = exports.tsTypeQuery = tsTypeQuery;\nexports.tSTypeReference = exports.tsTypeReference = tsTypeReference;\nexports.tSUndefinedKeyword = exports.tsUndefinedKeyword = tsUndefinedKeyword;\nexports.tSUnionType = exports.tsUnionType = tsUnionType;\nexports.tSUnknownKeyword = exports.tsUnknownKeyword = tsUnknownKeyword;\nexports.tSVoidKeyword = exports.tsVoidKeyword = tsVoidKeyword;\nexports.tupleExpression = tupleExpression;\nexports.tupleTypeAnnotation = tupleTypeAnnotation;\nexports.typeAlias = typeAlias;\nexports.typeAnnotation = typeAnnotation;\nexports.typeCastExpression = typeCastExpression;\nexports.typeParameter = typeParameter;\nexports.typeParameterDeclaration = typeParameterDeclaration;\nexports.typeParameterInstantiation = typeParameterInstantiation;\nexports.typeofTypeAnnotation = typeofTypeAnnotation;\nexports.unaryExpression = unaryExpression;\nexports.unionTypeAnnotation = unionTypeAnnotation;\nexports.updateExpression = updateExpression;\nexports.v8IntrinsicIdentifier = v8IntrinsicIdentifier;\nexports.variableDeclaration = variableDeclaration;\nexports.variableDeclarator = variableDeclarator;\nexports.variance = variance;\nexports.voidPattern = voidPattern;\nexports.voidTypeAnnotation = voidTypeAnnotation;\nexports.whileStatement = whileStatement;\nexports.withStatement = withStatement;\nexports.yieldExpression = yieldExpression;\nvar _validate = require(\"../../validators/validate.js\");\nvar _deprecationWarning = require(\"../../utils/deprecationWarning.js\");\nvar utils = require(\"../../definitions/utils.js\");\nconst {\n validateInternal: validate\n} = _validate;\nconst {\n NODE_FIELDS\n} = utils;\nfunction bigIntLiteral(value) {\n if (typeof value === \"bigint\") {\n value = value.toString();\n }\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 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, optional = null) {\n const node = {\n type: \"MemberExpression\",\n object,\n property,\n computed,\n optional\n };\n const defs = NODE_FIELDS.MemberExpression;\n validate(defs.object, node, \"object\", object, 1);\n validate(defs.property, node, \"property\", property, 1);\n validate(defs.computed, node, \"computed\", computed);\n validate(defs.optional, node, \"optional\", optional);\n return node;\n}\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 = \"method\", 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, decorators = null) {\n const node = {\n type: \"ObjectProperty\",\n key,\n value,\n computed,\n shorthand,\n decorators\n };\n const defs = NODE_FIELDS.ObjectProperty;\n validate(defs.key, node, \"key\", key, 1);\n validate(defs.value, node, \"value\", value, 1);\n validate(defs.computed, node, \"computed\", computed);\n validate(defs.shorthand, node, \"shorthand\", shorthand);\n validate(defs.decorators, node, \"decorators\", decorators, 1);\n return node;\n}\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 expression: null\n };\n const defs = NODE_FIELDS.ArrowFunctionExpression;\n validate(defs.params, node, \"params\", params, 1);\n validate(defs.body, node, \"body\", body, 1);\n validate(defs.async, node, \"async\", async);\n return node;\n}\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) {\n const node = {\n type: \"ExportAllDeclaration\",\n source\n };\n const defs = NODE_FIELDS.ExportAllDeclaration;\n validate(defs.source, node, \"source\", source, 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) {\n const node = {\n type: \"ExportNamedDeclaration\",\n declaration,\n specifiers,\n source\n };\n const defs = NODE_FIELDS.ExportNamedDeclaration;\n validate(defs.declaration, node, \"declaration\", declaration, 1);\n validate(defs.specifiers, node, \"specifiers\", specifiers, 1);\n validate(defs.source, node, \"source\", source, 1);\n return node;\n}\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) {\n const node = {\n type: \"ImportDeclaration\",\n specifiers,\n source\n };\n const defs = NODE_FIELDS.ImportDeclaration;\n validate(defs.specifiers, node, \"specifiers\", specifiers, 1);\n validate(defs.source, node, \"source\", source, 1);\n return node;\n}\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 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 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 _import() {\n return {\n type: \"Import\"\n };\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 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 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 };\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 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: null\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: null\n };\n const defs = NODE_FIELDS.ObjectTypeIndexer;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.key, node, \"key\", key, 1);\n validate(defs.value, node, \"value\", value, 1);\n validate(defs.variance, node, \"variance\", variance, 1);\n return node;\n}\nfunction objectTypeProperty(key, value, variance = null) {\n const node = {\n type: \"ObjectTypeProperty\",\n key,\n value,\n variance,\n kind: null,\n method: null,\n optional: null,\n proto: null,\n static: null\n };\n const defs = NODE_FIELDS.ObjectTypeProperty;\n validate(defs.key, node, \"key\", key, 1);\n validate(defs.value, node, \"value\", value, 1);\n validate(defs.variance, node, \"variance\", variance, 1);\n return node;\n}\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(bound = null, _default = null, variance = null) {\n const node = {\n type: \"TypeParameter\",\n bound,\n default: _default,\n variance,\n name: null\n };\n const defs = NODE_FIELDS.TypeParameter;\n validate(defs.bound, node, \"bound\", bound, 1);\n validate(defs.default, node, \"default\", _default, 1);\n validate(defs.variance, node, \"variance\", variance, 1);\n return node;\n}\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: null,\n hasUnknownMembers: null\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: null,\n hasUnknownMembers: null\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: null,\n hasUnknownMembers: null\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: null\n };\n const defs = NODE_FIELDS.EnumSymbolBody;\n validate(defs.members, node, \"members\", members, 1);\n return node;\n}\nfunction enumBooleanMember(id) {\n const node = {\n type: \"EnumBooleanMember\",\n id,\n init: null\n };\n const defs = NODE_FIELDS.EnumBooleanMember;\n validate(defs.id, node, \"id\", id, 1);\n return node;\n}\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: null\n };\n const defs = NODE_FIELDS.OptionalIndexedAccessType;\n validate(defs.objectType, node, \"objectType\", objectType, 1);\n validate(defs.indexType, node, \"indexType\", indexType, 1);\n return node;\n}\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, selfClosing = null) {\n const node = {\n type: \"JSXElement\",\n openingElement,\n closingElement,\n children,\n selfClosing\n };\n const defs = NODE_FIELDS.JSXElement;\n validate(defs.openingElement, node, \"openingElement\", openingElement, 1);\n validate(defs.closingElement, node, \"closingElement\", closingElement, 1);\n validate(defs.children, node, \"children\", children, 1);\n validate(defs.selfClosing, node, \"selfClosing\", selfClosing);\n return node;\n}\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 noop() {\n return {\n type: \"Noop\"\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 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 recordExpression(properties) {\n const node = {\n type: \"RecordExpression\",\n properties\n };\n const defs = NODE_FIELDS.RecordExpression;\n validate(defs.properties, node, \"properties\", properties, 1);\n return node;\n}\nfunction tupleExpression(elements = []) {\n const node = {\n type: \"TupleExpression\",\n elements\n };\n const defs = NODE_FIELDS.TupleExpression;\n validate(defs.elements, node, \"elements\", elements, 1);\n return node;\n}\nfunction decimalLiteral(value) {\n const node = {\n type: \"DecimalLiteral\",\n value\n };\n const defs = NODE_FIELDS.DecimalLiteral;\n validate(defs.value, node, \"value\", value);\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 pipelineTopicExpression(expression) {\n const node = {\n type: \"PipelineTopicExpression\",\n expression\n };\n const defs = NODE_FIELDS.PipelineTopicExpression;\n validate(defs.expression, node, \"expression\", expression, 1);\n return node;\n}\nfunction pipelineBareFunction(callee) {\n const node = {\n type: \"PipelineBareFunction\",\n callee\n };\n const defs = NODE_FIELDS.PipelineBareFunction;\n validate(defs.callee, node, \"callee\", callee, 1);\n return node;\n}\nfunction pipelinePrimaryTopicReference() {\n return {\n type: \"PipelinePrimaryTopicReference\"\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 };\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(decorators = null, key, typeParameters = null, params, returnType = null) {\n const node = {\n type: \"TSDeclareMethod\",\n decorators,\n key,\n typeParameters,\n params,\n returnType\n };\n const defs = NODE_FIELDS.TSDeclareMethod;\n validate(defs.decorators, node, \"decorators\", decorators, 1);\n validate(defs.key, node, \"key\", key, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.params, node, \"params\", params, 1);\n validate(defs.returnType, node, \"returnType\", returnType, 1);\n return node;\n}\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, parameters, typeAnnotation = null) {\n const node = {\n type: \"TSCallSignatureDeclaration\",\n typeParameters,\n parameters,\n typeAnnotation\n };\n const defs = NODE_FIELDS.TSCallSignatureDeclaration;\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.parameters, node, \"parameters\", parameters, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nfunction tsConstructSignatureDeclaration(typeParameters = null, parameters, typeAnnotation = null) {\n const node = {\n type: \"TSConstructSignatureDeclaration\",\n typeParameters,\n parameters,\n typeAnnotation\n };\n const defs = NODE_FIELDS.TSConstructSignatureDeclaration;\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.parameters, node, \"parameters\", parameters, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nfunction tsPropertySignature(key, typeAnnotation = null) {\n const node = {\n type: \"TSPropertySignature\",\n key,\n typeAnnotation\n };\n const defs = NODE_FIELDS.TSPropertySignature;\n validate(defs.key, node, \"key\", key, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nfunction tsMethodSignature(key, typeParameters = null, parameters, typeAnnotation = null) {\n const node = {\n type: \"TSMethodSignature\",\n key,\n typeParameters,\n parameters,\n typeAnnotation,\n kind: null\n };\n const defs = NODE_FIELDS.TSMethodSignature;\n validate(defs.key, node, \"key\", key, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.parameters, node, \"parameters\", parameters, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\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, parameters, typeAnnotation = null) {\n const node = {\n type: \"TSFunctionType\",\n typeParameters,\n parameters,\n typeAnnotation\n };\n const defs = NODE_FIELDS.TSFunctionType;\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.parameters, node, \"parameters\", parameters, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nfunction tsConstructorType(typeParameters = null, parameters, typeAnnotation = null) {\n const node = {\n type: \"TSConstructorType\",\n typeParameters,\n parameters,\n typeAnnotation\n };\n const defs = NODE_FIELDS.TSConstructorType;\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.parameters, node, \"parameters\", parameters, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nfunction tsTypeReference(typeName, typeParameters = null) {\n const node = {\n type: \"TSTypeReference\",\n typeName,\n typeParameters\n };\n const defs = NODE_FIELDS.TSTypeReference;\n validate(defs.typeName, node, \"typeName\", typeName, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n return node;\n}\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, typeParameters = null) {\n const node = {\n type: \"TSTypeQuery\",\n exprName,\n typeParameters\n };\n const defs = NODE_FIELDS.TSTypeQuery;\n validate(defs.exprName, node, \"exprName\", exprName, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n return node;\n}\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 = \"keyof\") {\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(typeParameter, typeAnnotation = null, nameType = null) {\n const node = {\n type: \"TSMappedType\",\n typeParameter,\n typeAnnotation,\n nameType\n };\n const defs = NODE_FIELDS.TSMappedType;\n validate(defs.typeParameter, node, \"typeParameter\", typeParameter, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n validate(defs.nameType, node, \"nameType\", nameType, 1);\n return node;\n}\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 tsExpressionWithTypeArguments(expression, typeParameters = null) {\n const node = {\n type: \"TSExpressionWithTypeArguments\",\n expression,\n typeParameters\n };\n const defs = NODE_FIELDS.TSExpressionWithTypeArguments;\n validate(defs.expression, node, \"expression\", expression, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n return node;\n}\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, typeParameters = null) {\n const node = {\n type: \"TSInstantiationExpression\",\n expression,\n typeParameters\n };\n const defs = NODE_FIELDS.TSInstantiationExpression;\n validate(defs.expression, node, \"expression\", expression, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n return node;\n}\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, members) {\n const node = {\n type: \"TSEnumDeclaration\",\n id,\n members\n };\n const defs = NODE_FIELDS.TSEnumDeclaration;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.members, node, \"members\", members, 1);\n return node;\n}\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: null\n };\n const defs = NODE_FIELDS.TSModuleDeclaration;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\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(argument, qualifier = null, typeParameters = null) {\n const node = {\n type: \"TSImportType\",\n argument,\n qualifier,\n typeParameters\n };\n const defs = NODE_FIELDS.TSImportType;\n validate(defs.argument, node, \"argument\", argument, 1);\n validate(defs.qualifier, node, \"qualifier\", qualifier, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n return node;\n}\nfunction tsImportEqualsDeclaration(id, moduleReference) {\n const node = {\n type: \"TSImportEqualsDeclaration\",\n id,\n moduleReference,\n isExport: null\n };\n const defs = NODE_FIELDS.TSImportEqualsDeclaration;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.moduleReference, node, \"moduleReference\", moduleReference, 1);\n return node;\n}\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);\n return node;\n}\nfunction NumberLiteral(value) {\n (0, _deprecationWarning.default)(\"NumberLiteral\", \"NumericLiteral\", \"The node type \");\n return numericLiteral(value);\n}\nfunction RegexLiteral(pattern, flags = \"\") {\n (0, _deprecationWarning.default)(\"RegexLiteral\", \"RegExpLiteral\", \"The node type \");\n return regExpLiteral(pattern, flags);\n}\nfunction RestProperty(argument) {\n (0, _deprecationWarning.default)(\"RestProperty\", \"RestElement\", \"The node type \");\n return restElement(argument);\n}\nfunction SpreadProperty(argument) {\n (0, _deprecationWarning.default)(\"SpreadProperty\", \"SpreadElement\", \"The node type \");\n return spreadElement(argument);\n}\n\n//# sourceMappingURL=lowercase.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.JSXIdentifier = exports.JSXFragment = exports.JSXExpressionContainer = exports.JSXEmptyExpression = exports.JSXElement = exports.JSXClosingFragment = exports.JSXClosingElement = exports.JSXAttribute = exports.IntersectionTypeAnnotation = exports.InterpreterDirective = exports.InterfaceTypeAnnotation = exports.InterfaceExtends = exports.InterfaceDeclaration = exports.InferredPredicate = exports.IndexedAccessType = exports.ImportSpecifier = exports.ImportNamespaceSpecifier = exports.ImportExpression = exports.ImportDefaultSpecifier = exports.ImportDeclaration = exports.ImportAttribute = exports.Import = exports.IfStatement = exports.Identifier = exports.GenericTypeAnnotation = exports.FunctionTypeParam = exports.FunctionTypeAnnotation = exports.FunctionExpression = exports.FunctionDeclaration = exports.ForStatement = exports.ForOfStatement = exports.ForInStatement = exports.File = exports.ExpressionStatement = exports.ExportSpecifier = exports.ExportNamespaceSpecifier = exports.ExportNamedDeclaration = exports.ExportDefaultSpecifier = exports.ExportDefaultDeclaration = exports.ExportAllDeclaration = exports.ExistsTypeAnnotation = exports.EnumSymbolBody = exports.EnumStringMember = exports.EnumStringBody = exports.EnumNumberMember = exports.EnumNumberBody = exports.EnumDefaultedMember = exports.EnumDeclaration = exports.EnumBooleanMember = exports.EnumBooleanBody = exports.EmptyTypeAnnotation = exports.EmptyStatement = exports.DoWhileStatement = exports.DoExpression = exports.DirectiveLiteral = exports.Directive = exports.Decorator = exports.DeclaredPredicate = exports.DeclareVariable = exports.DeclareTypeAlias = exports.DeclareOpaqueType = exports.DeclareModuleExports = exports.DeclareModule = exports.DeclareInterface = exports.DeclareFunction = exports.DeclareExportDeclaration = exports.DeclareExportAllDeclaration = exports.DeclareClass = exports.DecimalLiteral = exports.DebuggerStatement = exports.ContinueStatement = exports.ConditionalExpression = exports.ClassProperty = exports.ClassPrivateProperty = exports.ClassPrivateMethod = exports.ClassMethod = exports.ClassImplements = exports.ClassExpression = exports.ClassDeclaration = exports.ClassBody = exports.ClassAccessorProperty = exports.CatchClause = exports.CallExpression = exports.BreakStatement = exports.BooleanTypeAnnotation = exports.BooleanLiteralTypeAnnotation = exports.BooleanLiteral = exports.BlockStatement = exports.BindExpression = exports.BinaryExpression = exports.BigIntLiteral = exports.AwaitExpression = exports.AssignmentPattern = exports.AssignmentExpression = exports.ArrowFunctionExpression = exports.ArrayTypeAnnotation = exports.ArrayPattern = exports.ArrayExpression = exports.ArgumentPlaceholder = exports.AnyTypeAnnotation = void 0;\nexports.TSNumberKeyword = exports.TSNullKeyword = exports.TSNonNullExpression = exports.TSNeverKeyword = exports.TSNamespaceExportDeclaration = exports.TSNamedTupleMember = exports.TSModuleDeclaration = exports.TSModuleBlock = exports.TSMethodSignature = exports.TSMappedType = exports.TSLiteralType = exports.TSIntrinsicKeyword = exports.TSIntersectionType = exports.TSInterfaceDeclaration = exports.TSInterfaceBody = exports.TSInstantiationExpression = exports.TSInferType = exports.TSIndexedAccessType = exports.TSIndexSignature = exports.TSImportType = exports.TSImportEqualsDeclaration = exports.TSFunctionType = exports.TSExternalModuleReference = exports.TSExpressionWithTypeArguments = exports.TSExportAssignment = exports.TSEnumMember = exports.TSEnumDeclaration = exports.TSEnumBody = exports.TSDeclareMethod = exports.TSDeclareFunction = exports.TSConstructorType = exports.TSConstructSignatureDeclaration = exports.TSConditionalType = exports.TSCallSignatureDeclaration = exports.TSBooleanKeyword = exports.TSBigIntKeyword = exports.TSAsExpression = exports.TSArrayType = exports.TSAnyKeyword = exports.SymbolTypeAnnotation = exports.SwitchStatement = exports.SwitchCase = exports.Super = exports.StringTypeAnnotation = exports.StringLiteralTypeAnnotation = exports.StringLiteral = exports.StaticBlock = exports.SpreadProperty = exports.SpreadElement = exports.SequenceExpression = exports.ReturnStatement = exports.RestProperty = exports.RestElement = exports.RegexLiteral = exports.RegExpLiteral = exports.RecordExpression = exports.QualifiedTypeIdentifier = exports.Program = exports.PrivateName = exports.Placeholder = exports.PipelineTopicExpression = exports.PipelinePrimaryTopicReference = exports.PipelineBareFunction = exports.ParenthesizedExpression = exports.OptionalMemberExpression = exports.OptionalIndexedAccessType = exports.OptionalCallExpression = exports.OpaqueType = exports.ObjectTypeSpreadProperty = exports.ObjectTypeProperty = exports.ObjectTypeInternalSlot = exports.ObjectTypeIndexer = exports.ObjectTypeCallProperty = exports.ObjectTypeAnnotation = exports.ObjectProperty = exports.ObjectPattern = exports.ObjectMethod = exports.ObjectExpression = exports.NumericLiteral = exports.NumberTypeAnnotation = exports.NumberLiteralTypeAnnotation = exports.NumberLiteral = exports.NullableTypeAnnotation = exports.NullLiteralTypeAnnotation = exports.NullLiteral = exports.Noop = exports.NewExpression = exports.ModuleExpression = exports.MixedTypeAnnotation = exports.MetaProperty = exports.MemberExpression = exports.LogicalExpression = exports.LabeledStatement = exports.JSXText = exports.JSXSpreadChild = exports.JSXSpreadAttribute = exports.JSXOpeningFragment = exports.JSXOpeningElement = exports.JSXNamespacedName = exports.JSXMemberExpression = void 0;\nexports.YieldExpression = exports.WithStatement = exports.WhileStatement = exports.VoidTypeAnnotation = exports.VoidPattern = exports.Variance = exports.VariableDeclarator = exports.VariableDeclaration = exports.V8IntrinsicIdentifier = exports.UpdateExpression = exports.UnionTypeAnnotation = exports.UnaryExpression = exports.TypeofTypeAnnotation = exports.TypeParameterInstantiation = exports.TypeParameterDeclaration = exports.TypeParameter = exports.TypeCastExpression = exports.TypeAnnotation = exports.TypeAlias = exports.TupleTypeAnnotation = exports.TupleExpression = exports.TryStatement = exports.TopicReference = exports.ThrowStatement = exports.ThisTypeAnnotation = exports.ThisExpression = exports.TemplateLiteral = exports.TemplateElement = exports.TaggedTemplateExpression = exports.TSVoidKeyword = exports.TSUnknownKeyword = exports.TSUnionType = exports.TSUndefinedKeyword = exports.TSTypeReference = exports.TSTypeQuery = exports.TSTypePredicate = exports.TSTypeParameterInstantiation = exports.TSTypeParameterDeclaration = exports.TSTypeParameter = exports.TSTypeOperator = exports.TSTypeLiteral = exports.TSTypeAssertion = exports.TSTypeAnnotation = exports.TSTypeAliasDeclaration = exports.TSTupleType = exports.TSThisType = exports.TSTemplateLiteralType = exports.TSSymbolKeyword = exports.TSStringKeyword = exports.TSSatisfiesExpression = exports.TSRestType = exports.TSQualifiedName = exports.TSPropertySignature = exports.TSParenthesizedType = exports.TSParameterProperty = exports.TSOptionalType = exports.TSObjectKeyword = void 0;\nvar b = require(\"./lowercase.js\");\nvar _deprecationWarning = require(\"../../utils/deprecationWarning.js\");\nfunction alias(lowercase) {\n {\n return b[lowercase];\n }\n}\nconst ArrayExpression = exports.ArrayExpression = alias(\"arrayExpression\"),\n AssignmentExpression = exports.AssignmentExpression = alias(\"assignmentExpression\"),\n BinaryExpression = exports.BinaryExpression = alias(\"binaryExpression\"),\n InterpreterDirective = exports.InterpreterDirective = alias(\"interpreterDirective\"),\n Directive = exports.Directive = alias(\"directive\"),\n DirectiveLiteral = exports.DirectiveLiteral = alias(\"directiveLiteral\"),\n BlockStatement = exports.BlockStatement = alias(\"blockStatement\"),\n BreakStatement = exports.BreakStatement = alias(\"breakStatement\"),\n CallExpression = exports.CallExpression = alias(\"callExpression\"),\n CatchClause = exports.CatchClause = alias(\"catchClause\"),\n ConditionalExpression = exports.ConditionalExpression = alias(\"conditionalExpression\"),\n ContinueStatement = exports.ContinueStatement = alias(\"continueStatement\"),\n DebuggerStatement = exports.DebuggerStatement = alias(\"debuggerStatement\"),\n DoWhileStatement = exports.DoWhileStatement = alias(\"doWhileStatement\"),\n EmptyStatement = exports.EmptyStatement = alias(\"emptyStatement\"),\n ExpressionStatement = exports.ExpressionStatement = alias(\"expressionStatement\"),\n File = exports.File = alias(\"file\"),\n ForInStatement = exports.ForInStatement = alias(\"forInStatement\"),\n ForStatement = exports.ForStatement = alias(\"forStatement\"),\n FunctionDeclaration = exports.FunctionDeclaration = alias(\"functionDeclaration\"),\n FunctionExpression = exports.FunctionExpression = alias(\"functionExpression\"),\n Identifier = exports.Identifier = alias(\"identifier\"),\n IfStatement = exports.IfStatement = alias(\"ifStatement\"),\n LabeledStatement = exports.LabeledStatement = alias(\"labeledStatement\"),\n StringLiteral = exports.StringLiteral = alias(\"stringLiteral\"),\n NumericLiteral = exports.NumericLiteral = alias(\"numericLiteral\"),\n NullLiteral = exports.NullLiteral = alias(\"nullLiteral\"),\n BooleanLiteral = exports.BooleanLiteral = alias(\"booleanLiteral\"),\n RegExpLiteral = exports.RegExpLiteral = alias(\"regExpLiteral\"),\n LogicalExpression = exports.LogicalExpression = alias(\"logicalExpression\"),\n MemberExpression = exports.MemberExpression = alias(\"memberExpression\"),\n NewExpression = exports.NewExpression = alias(\"newExpression\"),\n Program = exports.Program = alias(\"program\"),\n ObjectExpression = exports.ObjectExpression = alias(\"objectExpression\"),\n ObjectMethod = exports.ObjectMethod = alias(\"objectMethod\"),\n ObjectProperty = exports.ObjectProperty = alias(\"objectProperty\"),\n RestElement = exports.RestElement = alias(\"restElement\"),\n ReturnStatement = exports.ReturnStatement = alias(\"returnStatement\"),\n SequenceExpression = exports.SequenceExpression = alias(\"sequenceExpression\"),\n ParenthesizedExpression = exports.ParenthesizedExpression = alias(\"parenthesizedExpression\"),\n SwitchCase = exports.SwitchCase = alias(\"switchCase\"),\n SwitchStatement = exports.SwitchStatement = alias(\"switchStatement\"),\n ThisExpression = exports.ThisExpression = alias(\"thisExpression\"),\n ThrowStatement = exports.ThrowStatement = alias(\"throwStatement\"),\n TryStatement = exports.TryStatement = alias(\"tryStatement\"),\n UnaryExpression = exports.UnaryExpression = alias(\"unaryExpression\"),\n UpdateExpression = exports.UpdateExpression = alias(\"updateExpression\"),\n VariableDeclaration = exports.VariableDeclaration = alias(\"variableDeclaration\"),\n VariableDeclarator = exports.VariableDeclarator = alias(\"variableDeclarator\"),\n WhileStatement = exports.WhileStatement = alias(\"whileStatement\"),\n WithStatement = exports.WithStatement = alias(\"withStatement\"),\n AssignmentPattern = exports.AssignmentPattern = alias(\"assignmentPattern\"),\n ArrayPattern = exports.ArrayPattern = alias(\"arrayPattern\"),\n ArrowFunctionExpression = exports.ArrowFunctionExpression = alias(\"arrowFunctionExpression\"),\n ClassBody = exports.ClassBody = alias(\"classBody\"),\n ClassExpression = exports.ClassExpression = alias(\"classExpression\"),\n ClassDeclaration = exports.ClassDeclaration = alias(\"classDeclaration\"),\n ExportAllDeclaration = exports.ExportAllDeclaration = alias(\"exportAllDeclaration\"),\n ExportDefaultDeclaration = exports.ExportDefaultDeclaration = alias(\"exportDefaultDeclaration\"),\n ExportNamedDeclaration = exports.ExportNamedDeclaration = alias(\"exportNamedDeclaration\"),\n ExportSpecifier = exports.ExportSpecifier = alias(\"exportSpecifier\"),\n ForOfStatement = exports.ForOfStatement = alias(\"forOfStatement\"),\n ImportDeclaration = exports.ImportDeclaration = alias(\"importDeclaration\"),\n ImportDefaultSpecifier = exports.ImportDefaultSpecifier = alias(\"importDefaultSpecifier\"),\n ImportNamespaceSpecifier = exports.ImportNamespaceSpecifier = alias(\"importNamespaceSpecifier\"),\n ImportSpecifier = exports.ImportSpecifier = alias(\"importSpecifier\"),\n ImportExpression = exports.ImportExpression = alias(\"importExpression\"),\n MetaProperty = exports.MetaProperty = alias(\"metaProperty\"),\n ClassMethod = exports.ClassMethod = alias(\"classMethod\"),\n ObjectPattern = exports.ObjectPattern = alias(\"objectPattern\"),\n SpreadElement = exports.SpreadElement = alias(\"spreadElement\"),\n Super = exports.Super = alias(\"super\"),\n TaggedTemplateExpression = exports.TaggedTemplateExpression = alias(\"taggedTemplateExpression\"),\n TemplateElement = exports.TemplateElement = alias(\"templateElement\"),\n TemplateLiteral = exports.TemplateLiteral = alias(\"templateLiteral\"),\n YieldExpression = exports.YieldExpression = alias(\"yieldExpression\"),\n AwaitExpression = exports.AwaitExpression = alias(\"awaitExpression\"),\n Import = exports.Import = alias(\"import\"),\n BigIntLiteral = exports.BigIntLiteral = alias(\"bigIntLiteral\"),\n ExportNamespaceSpecifier = exports.ExportNamespaceSpecifier = alias(\"exportNamespaceSpecifier\"),\n OptionalMemberExpression = exports.OptionalMemberExpression = alias(\"optionalMemberExpression\"),\n OptionalCallExpression = exports.OptionalCallExpression = alias(\"optionalCallExpression\"),\n ClassProperty = exports.ClassProperty = alias(\"classProperty\"),\n ClassAccessorProperty = exports.ClassAccessorProperty = alias(\"classAccessorProperty\"),\n ClassPrivateProperty = exports.ClassPrivateProperty = alias(\"classPrivateProperty\"),\n ClassPrivateMethod = exports.ClassPrivateMethod = alias(\"classPrivateMethod\"),\n PrivateName = exports.PrivateName = alias(\"privateName\"),\n StaticBlock = exports.StaticBlock = alias(\"staticBlock\"),\n ImportAttribute = exports.ImportAttribute = alias(\"importAttribute\"),\n AnyTypeAnnotation = exports.AnyTypeAnnotation = alias(\"anyTypeAnnotation\"),\n ArrayTypeAnnotation = exports.ArrayTypeAnnotation = alias(\"arrayTypeAnnotation\"),\n BooleanTypeAnnotation = exports.BooleanTypeAnnotation = alias(\"booleanTypeAnnotation\"),\n BooleanLiteralTypeAnnotation = exports.BooleanLiteralTypeAnnotation = alias(\"booleanLiteralTypeAnnotation\"),\n NullLiteralTypeAnnotation = exports.NullLiteralTypeAnnotation = alias(\"nullLiteralTypeAnnotation\"),\n ClassImplements = exports.ClassImplements = alias(\"classImplements\"),\n DeclareClass = exports.DeclareClass = alias(\"declareClass\"),\n DeclareFunction = exports.DeclareFunction = alias(\"declareFunction\"),\n DeclareInterface = exports.DeclareInterface = alias(\"declareInterface\"),\n DeclareModule = exports.DeclareModule = alias(\"declareModule\"),\n DeclareModuleExports = exports.DeclareModuleExports = alias(\"declareModuleExports\"),\n DeclareTypeAlias = exports.DeclareTypeAlias = alias(\"declareTypeAlias\"),\n DeclareOpaqueType = exports.DeclareOpaqueType = alias(\"declareOpaqueType\"),\n DeclareVariable = exports.DeclareVariable = alias(\"declareVariable\"),\n DeclareExportDeclaration = exports.DeclareExportDeclaration = alias(\"declareExportDeclaration\"),\n DeclareExportAllDeclaration = exports.DeclareExportAllDeclaration = alias(\"declareExportAllDeclaration\"),\n DeclaredPredicate = exports.DeclaredPredicate = alias(\"declaredPredicate\"),\n ExistsTypeAnnotation = exports.ExistsTypeAnnotation = alias(\"existsTypeAnnotation\"),\n FunctionTypeAnnotation = exports.FunctionTypeAnnotation = alias(\"functionTypeAnnotation\"),\n FunctionTypeParam = exports.FunctionTypeParam = alias(\"functionTypeParam\"),\n GenericTypeAnnotation = exports.GenericTypeAnnotation = alias(\"genericTypeAnnotation\"),\n InferredPredicate = exports.InferredPredicate = alias(\"inferredPredicate\"),\n InterfaceExtends = exports.InterfaceExtends = alias(\"interfaceExtends\"),\n InterfaceDeclaration = exports.InterfaceDeclaration = alias(\"interfaceDeclaration\"),\n InterfaceTypeAnnotation = exports.InterfaceTypeAnnotation = alias(\"interfaceTypeAnnotation\"),\n IntersectionTypeAnnotation = exports.IntersectionTypeAnnotation = alias(\"intersectionTypeAnnotation\"),\n MixedTypeAnnotation = exports.MixedTypeAnnotation = alias(\"mixedTypeAnnotation\"),\n EmptyTypeAnnotation = exports.EmptyTypeAnnotation = alias(\"emptyTypeAnnotation\"),\n NullableTypeAnnotation = exports.NullableTypeAnnotation = alias(\"nullableTypeAnnotation\"),\n NumberLiteralTypeAnnotation = exports.NumberLiteralTypeAnnotation = alias(\"numberLiteralTypeAnnotation\"),\n NumberTypeAnnotation = exports.NumberTypeAnnotation = alias(\"numberTypeAnnotation\"),\n ObjectTypeAnnotation = exports.ObjectTypeAnnotation = alias(\"objectTypeAnnotation\"),\n ObjectTypeInternalSlot = exports.ObjectTypeInternalSlot = alias(\"objectTypeInternalSlot\"),\n ObjectTypeCallProperty = exports.ObjectTypeCallProperty = alias(\"objectTypeCallProperty\"),\n ObjectTypeIndexer = exports.ObjectTypeIndexer = alias(\"objectTypeIndexer\"),\n ObjectTypeProperty = exports.ObjectTypeProperty = alias(\"objectTypeProperty\"),\n ObjectTypeSpreadProperty = exports.ObjectTypeSpreadProperty = alias(\"objectTypeSpreadProperty\"),\n OpaqueType = exports.OpaqueType = alias(\"opaqueType\"),\n QualifiedTypeIdentifier = exports.QualifiedTypeIdentifier = alias(\"qualifiedTypeIdentifier\"),\n StringLiteralTypeAnnotation = exports.StringLiteralTypeAnnotation = alias(\"stringLiteralTypeAnnotation\"),\n StringTypeAnnotation = exports.StringTypeAnnotation = alias(\"stringTypeAnnotation\"),\n SymbolTypeAnnotation = exports.SymbolTypeAnnotation = alias(\"symbolTypeAnnotation\"),\n ThisTypeAnnotation = exports.ThisTypeAnnotation = alias(\"thisTypeAnnotation\"),\n TupleTypeAnnotation = exports.TupleTypeAnnotation = alias(\"tupleTypeAnnotation\"),\n TypeofTypeAnnotation = exports.TypeofTypeAnnotation = alias(\"typeofTypeAnnotation\"),\n TypeAlias = exports.TypeAlias = alias(\"typeAlias\"),\n TypeAnnotation = exports.TypeAnnotation = alias(\"typeAnnotation\"),\n TypeCastExpression = exports.TypeCastExpression = alias(\"typeCastExpression\"),\n TypeParameter = exports.TypeParameter = alias(\"typeParameter\"),\n TypeParameterDeclaration = exports.TypeParameterDeclaration = alias(\"typeParameterDeclaration\"),\n TypeParameterInstantiation = exports.TypeParameterInstantiation = alias(\"typeParameterInstantiation\"),\n UnionTypeAnnotation = exports.UnionTypeAnnotation = alias(\"unionTypeAnnotation\"),\n Variance = exports.Variance = alias(\"variance\"),\n VoidTypeAnnotation = exports.VoidTypeAnnotation = alias(\"voidTypeAnnotation\"),\n EnumDeclaration = exports.EnumDeclaration = alias(\"enumDeclaration\"),\n EnumBooleanBody = exports.EnumBooleanBody = alias(\"enumBooleanBody\"),\n EnumNumberBody = exports.EnumNumberBody = alias(\"enumNumberBody\"),\n EnumStringBody = exports.EnumStringBody = alias(\"enumStringBody\"),\n EnumSymbolBody = exports.EnumSymbolBody = alias(\"enumSymbolBody\"),\n EnumBooleanMember = exports.EnumBooleanMember = alias(\"enumBooleanMember\"),\n EnumNumberMember = exports.EnumNumberMember = alias(\"enumNumberMember\"),\n EnumStringMember = exports.EnumStringMember = alias(\"enumStringMember\"),\n EnumDefaultedMember = exports.EnumDefaultedMember = alias(\"enumDefaultedMember\"),\n IndexedAccessType = exports.IndexedAccessType = alias(\"indexedAccessType\"),\n OptionalIndexedAccessType = exports.OptionalIndexedAccessType = alias(\"optionalIndexedAccessType\"),\n JSXAttribute = exports.JSXAttribute = alias(\"jsxAttribute\"),\n JSXClosingElement = exports.JSXClosingElement = alias(\"jsxClosingElement\"),\n JSXElement = exports.JSXElement = alias(\"jsxElement\"),\n JSXEmptyExpression = exports.JSXEmptyExpression = alias(\"jsxEmptyExpression\"),\n JSXExpressionContainer = exports.JSXExpressionContainer = alias(\"jsxExpressionContainer\"),\n JSXSpreadChild = exports.JSXSpreadChild = alias(\"jsxSpreadChild\"),\n JSXIdentifier = exports.JSXIdentifier = alias(\"jsxIdentifier\"),\n JSXMemberExpression = exports.JSXMemberExpression = alias(\"jsxMemberExpression\"),\n JSXNamespacedName = exports.JSXNamespacedName = alias(\"jsxNamespacedName\"),\n JSXOpeningElement = exports.JSXOpeningElement = alias(\"jsxOpeningElement\"),\n JSXSpreadAttribute = exports.JSXSpreadAttribute = alias(\"jsxSpreadAttribute\"),\n JSXText = exports.JSXText = alias(\"jsxText\"),\n JSXFragment = exports.JSXFragment = alias(\"jsxFragment\"),\n JSXOpeningFragment = exports.JSXOpeningFragment = alias(\"jsxOpeningFragment\"),\n JSXClosingFragment = exports.JSXClosingFragment = alias(\"jsxClosingFragment\"),\n Noop = exports.Noop = alias(\"noop\"),\n Placeholder = exports.Placeholder = alias(\"placeholder\"),\n V8IntrinsicIdentifier = exports.V8IntrinsicIdentifier = alias(\"v8IntrinsicIdentifier\"),\n ArgumentPlaceholder = exports.ArgumentPlaceholder = alias(\"argumentPlaceholder\"),\n BindExpression = exports.BindExpression = alias(\"bindExpression\"),\n Decorator = exports.Decorator = alias(\"decorator\"),\n DoExpression = exports.DoExpression = alias(\"doExpression\"),\n ExportDefaultSpecifier = exports.ExportDefaultSpecifier = alias(\"exportDefaultSpecifier\"),\n RecordExpression = exports.RecordExpression = alias(\"recordExpression\"),\n TupleExpression = exports.TupleExpression = alias(\"tupleExpression\"),\n DecimalLiteral = exports.DecimalLiteral = alias(\"decimalLiteral\"),\n ModuleExpression = exports.ModuleExpression = alias(\"moduleExpression\"),\n TopicReference = exports.TopicReference = alias(\"topicReference\"),\n PipelineTopicExpression = exports.PipelineTopicExpression = alias(\"pipelineTopicExpression\"),\n PipelineBareFunction = exports.PipelineBareFunction = alias(\"pipelineBareFunction\"),\n PipelinePrimaryTopicReference = exports.PipelinePrimaryTopicReference = alias(\"pipelinePrimaryTopicReference\"),\n VoidPattern = exports.VoidPattern = alias(\"voidPattern\"),\n TSParameterProperty = exports.TSParameterProperty = alias(\"tsParameterProperty\"),\n TSDeclareFunction = exports.TSDeclareFunction = alias(\"tsDeclareFunction\"),\n TSDeclareMethod = exports.TSDeclareMethod = alias(\"tsDeclareMethod\"),\n TSQualifiedName = exports.TSQualifiedName = alias(\"tsQualifiedName\"),\n TSCallSignatureDeclaration = exports.TSCallSignatureDeclaration = alias(\"tsCallSignatureDeclaration\"),\n TSConstructSignatureDeclaration = exports.TSConstructSignatureDeclaration = alias(\"tsConstructSignatureDeclaration\"),\n TSPropertySignature = exports.TSPropertySignature = alias(\"tsPropertySignature\"),\n TSMethodSignature = exports.TSMethodSignature = alias(\"tsMethodSignature\"),\n TSIndexSignature = exports.TSIndexSignature = alias(\"tsIndexSignature\"),\n TSAnyKeyword = exports.TSAnyKeyword = alias(\"tsAnyKeyword\"),\n TSBooleanKeyword = exports.TSBooleanKeyword = alias(\"tsBooleanKeyword\"),\n TSBigIntKeyword = exports.TSBigIntKeyword = alias(\"tsBigIntKeyword\"),\n TSIntrinsicKeyword = exports.TSIntrinsicKeyword = alias(\"tsIntrinsicKeyword\"),\n TSNeverKeyword = exports.TSNeverKeyword = alias(\"tsNeverKeyword\"),\n TSNullKeyword = exports.TSNullKeyword = alias(\"tsNullKeyword\"),\n TSNumberKeyword = exports.TSNumberKeyword = alias(\"tsNumberKeyword\"),\n TSObjectKeyword = exports.TSObjectKeyword = alias(\"tsObjectKeyword\"),\n TSStringKeyword = exports.TSStringKeyword = alias(\"tsStringKeyword\"),\n TSSymbolKeyword = exports.TSSymbolKeyword = alias(\"tsSymbolKeyword\"),\n TSUndefinedKeyword = exports.TSUndefinedKeyword = alias(\"tsUndefinedKeyword\"),\n TSUnknownKeyword = exports.TSUnknownKeyword = alias(\"tsUnknownKeyword\"),\n TSVoidKeyword = exports.TSVoidKeyword = alias(\"tsVoidKeyword\"),\n TSThisType = exports.TSThisType = alias(\"tsThisType\"),\n TSFunctionType = exports.TSFunctionType = alias(\"tsFunctionType\"),\n TSConstructorType = exports.TSConstructorType = alias(\"tsConstructorType\"),\n TSTypeReference = exports.TSTypeReference = alias(\"tsTypeReference\"),\n TSTypePredicate = exports.TSTypePredicate = alias(\"tsTypePredicate\"),\n TSTypeQuery = exports.TSTypeQuery = alias(\"tsTypeQuery\"),\n TSTypeLiteral = exports.TSTypeLiteral = alias(\"tsTypeLiteral\"),\n TSArrayType = exports.TSArrayType = alias(\"tsArrayType\"),\n TSTupleType = exports.TSTupleType = alias(\"tsTupleType\"),\n TSOptionalType = exports.TSOptionalType = alias(\"tsOptionalType\"),\n TSRestType = exports.TSRestType = alias(\"tsRestType\"),\n TSNamedTupleMember = exports.TSNamedTupleMember = alias(\"tsNamedTupleMember\"),\n TSUnionType = exports.TSUnionType = alias(\"tsUnionType\"),\n TSIntersectionType = exports.TSIntersectionType = alias(\"tsIntersectionType\"),\n TSConditionalType = exports.TSConditionalType = alias(\"tsConditionalType\"),\n TSInferType = exports.TSInferType = alias(\"tsInferType\"),\n TSParenthesizedType = exports.TSParenthesizedType = alias(\"tsParenthesizedType\"),\n TSTypeOperator = exports.TSTypeOperator = alias(\"tsTypeOperator\"),\n TSIndexedAccessType = exports.TSIndexedAccessType = alias(\"tsIndexedAccessType\"),\n TSMappedType = exports.TSMappedType = alias(\"tsMappedType\"),\n TSTemplateLiteralType = exports.TSTemplateLiteralType = alias(\"tsTemplateLiteralType\"),\n TSLiteralType = exports.TSLiteralType = alias(\"tsLiteralType\"),\n TSExpressionWithTypeArguments = exports.TSExpressionWithTypeArguments = alias(\"tsExpressionWithTypeArguments\"),\n TSInterfaceDeclaration = exports.TSInterfaceDeclaration = alias(\"tsInterfaceDeclaration\"),\n TSInterfaceBody = exports.TSInterfaceBody = alias(\"tsInterfaceBody\"),\n TSTypeAliasDeclaration = exports.TSTypeAliasDeclaration = alias(\"tsTypeAliasDeclaration\"),\n TSInstantiationExpression = exports.TSInstantiationExpression = alias(\"tsInstantiationExpression\"),\n TSAsExpression = exports.TSAsExpression = alias(\"tsAsExpression\"),\n TSSatisfiesExpression = exports.TSSatisfiesExpression = alias(\"tsSatisfiesExpression\"),\n TSTypeAssertion = exports.TSTypeAssertion = alias(\"tsTypeAssertion\"),\n TSEnumBody = exports.TSEnumBody = alias(\"tsEnumBody\"),\n TSEnumDeclaration = exports.TSEnumDeclaration = alias(\"tsEnumDeclaration\"),\n TSEnumMember = exports.TSEnumMember = alias(\"tsEnumMember\"),\n TSModuleDeclaration = exports.TSModuleDeclaration = alias(\"tsModuleDeclaration\"),\n TSModuleBlock = exports.TSModuleBlock = alias(\"tsModuleBlock\"),\n TSImportType = exports.TSImportType = alias(\"tsImportType\"),\n TSImportEqualsDeclaration = exports.TSImportEqualsDeclaration = alias(\"tsImportEqualsDeclaration\"),\n TSExternalModuleReference = exports.TSExternalModuleReference = alias(\"tsExternalModuleReference\"),\n TSNonNullExpression = exports.TSNonNullExpression = alias(\"tsNonNullExpression\"),\n TSExportAssignment = exports.TSExportAssignment = alias(\"tsExportAssignment\"),\n TSNamespaceExportDeclaration = exports.TSNamespaceExportDeclaration = alias(\"tsNamespaceExportDeclaration\"),\n TSTypeAnnotation = exports.TSTypeAnnotation = alias(\"tsTypeAnnotation\"),\n TSTypeParameterInstantiation = exports.TSTypeParameterInstantiation = alias(\"tsTypeParameterInstantiation\"),\n TSTypeParameterDeclaration = exports.TSTypeParameterDeclaration = alias(\"tsTypeParameterDeclaration\"),\n TSTypeParameter = exports.TSTypeParameter = alias(\"tsTypeParameter\");\nconst NumberLiteral = exports.NumberLiteral = b.numberLiteral,\n RegexLiteral = exports.RegexLiteral = b.regexLiteral,\n RestProperty = exports.RestProperty = b.restProperty,\n SpreadProperty = exports.SpreadProperty = b.spreadProperty;\n\n//# sourceMappingURL=uppercase.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _lowercase = require(\"./lowercase.js\");\nObject.keys(_lowercase).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _lowercase[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _lowercase[key];\n }\n });\n});\nvar _uppercase = require(\"./uppercase.js\");\nObject.keys(_uppercase).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _uppercase[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _uppercase[key];\n }\n });\n});\n\n//# sourceMappingURL=index.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = cleanJSXElementLiteralChild;\nvar _index = require(\"../../builders/generated/index.js\");\nvar _index2 = require(\"../../index.js\");\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((0, _index2.inherits)((0, _index.stringLiteral)(str), child));\n}\n\n//# sourceMappingURL=cleanJSXElementLiteralChild.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = buildChildren;\nvar _index = require(\"../../validators/generated/index.js\");\nvar _cleanJSXElementLiteralChild = require(\"../../utils/react/cleanJSXElementLiteralChild.js\");\nfunction buildChildren(node) {\n const elements = [];\n for (let i = 0; i < node.children.length; i++) {\n let child = node.children[i];\n if ((0, _index.isJSXText)(child)) {\n (0, _cleanJSXElementLiteralChild.default)(child, elements);\n continue;\n }\n if ((0, _index.isJSXExpressionContainer)(child)) child = child.expression;\n if ((0, _index.isJSXEmptyExpression)(child)) continue;\n elements.push(child);\n }\n return elements;\n}\n\n//# sourceMappingURL=buildChildren.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isNode;\nvar _index = require(\"../definitions/index.js\");\nfunction isNode(node) {\n return !!(node && _index.VISITOR_KEYS[node.type]);\n}\n\n//# sourceMappingURL=isNode.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = assertNode;\nvar _isNode = require(\"../validators/isNode.js\");\nfunction assertNode(node) {\n if (!(0, _isNode.default)(node)) {\n var _node$type;\n const type = (_node$type = node == null ? void 0 : node.type) != null ? _node$type : JSON.stringify(node);\n throw new TypeError(`Not a valid node of type \"${type}\"`);\n }\n}\n\n//# sourceMappingURL=assertNode.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.assertAccessor = assertAccessor;\nexports.assertAnyTypeAnnotation = assertAnyTypeAnnotation;\nexports.assertArgumentPlaceholder = assertArgumentPlaceholder;\nexports.assertArrayExpression = assertArrayExpression;\nexports.assertArrayPattern = assertArrayPattern;\nexports.assertArrayTypeAnnotation = assertArrayTypeAnnotation;\nexports.assertArrowFunctionExpression = assertArrowFunctionExpression;\nexports.assertAssignmentExpression = assertAssignmentExpression;\nexports.assertAssignmentPattern = assertAssignmentPattern;\nexports.assertAwaitExpression = assertAwaitExpression;\nexports.assertBigIntLiteral = assertBigIntLiteral;\nexports.assertBinary = assertBinary;\nexports.assertBinaryExpression = assertBinaryExpression;\nexports.assertBindExpression = assertBindExpression;\nexports.assertBlock = assertBlock;\nexports.assertBlockParent = assertBlockParent;\nexports.assertBlockStatement = assertBlockStatement;\nexports.assertBooleanLiteral = assertBooleanLiteral;\nexports.assertBooleanLiteralTypeAnnotation = assertBooleanLiteralTypeAnnotation;\nexports.assertBooleanTypeAnnotation = assertBooleanTypeAnnotation;\nexports.assertBreakStatement = assertBreakStatement;\nexports.assertCallExpression = assertCallExpression;\nexports.assertCatchClause = assertCatchClause;\nexports.assertClass = assertClass;\nexports.assertClassAccessorProperty = assertClassAccessorProperty;\nexports.assertClassBody = assertClassBody;\nexports.assertClassDeclaration = assertClassDeclaration;\nexports.assertClassExpression = assertClassExpression;\nexports.assertClassImplements = assertClassImplements;\nexports.assertClassMethod = assertClassMethod;\nexports.assertClassPrivateMethod = assertClassPrivateMethod;\nexports.assertClassPrivateProperty = assertClassPrivateProperty;\nexports.assertClassProperty = assertClassProperty;\nexports.assertCompletionStatement = assertCompletionStatement;\nexports.assertConditional = assertConditional;\nexports.assertConditionalExpression = assertConditionalExpression;\nexports.assertContinueStatement = assertContinueStatement;\nexports.assertDebuggerStatement = assertDebuggerStatement;\nexports.assertDecimalLiteral = assertDecimalLiteral;\nexports.assertDeclaration = assertDeclaration;\nexports.assertDeclareClass = assertDeclareClass;\nexports.assertDeclareExportAllDeclaration = assertDeclareExportAllDeclaration;\nexports.assertDeclareExportDeclaration = assertDeclareExportDeclaration;\nexports.assertDeclareFunction = assertDeclareFunction;\nexports.assertDeclareInterface = assertDeclareInterface;\nexports.assertDeclareModule = assertDeclareModule;\nexports.assertDeclareModuleExports = assertDeclareModuleExports;\nexports.assertDeclareOpaqueType = assertDeclareOpaqueType;\nexports.assertDeclareTypeAlias = assertDeclareTypeAlias;\nexports.assertDeclareVariable = assertDeclareVariable;\nexports.assertDeclaredPredicate = assertDeclaredPredicate;\nexports.assertDecorator = assertDecorator;\nexports.assertDirective = assertDirective;\nexports.assertDirectiveLiteral = assertDirectiveLiteral;\nexports.assertDoExpression = assertDoExpression;\nexports.assertDoWhileStatement = assertDoWhileStatement;\nexports.assertEmptyStatement = assertEmptyStatement;\nexports.assertEmptyTypeAnnotation = assertEmptyTypeAnnotation;\nexports.assertEnumBody = assertEnumBody;\nexports.assertEnumBooleanBody = assertEnumBooleanBody;\nexports.assertEnumBooleanMember = assertEnumBooleanMember;\nexports.assertEnumDeclaration = assertEnumDeclaration;\nexports.assertEnumDefaultedMember = assertEnumDefaultedMember;\nexports.assertEnumMember = assertEnumMember;\nexports.assertEnumNumberBody = assertEnumNumberBody;\nexports.assertEnumNumberMember = assertEnumNumberMember;\nexports.assertEnumStringBody = assertEnumStringBody;\nexports.assertEnumStringMember = assertEnumStringMember;\nexports.assertEnumSymbolBody = assertEnumSymbolBody;\nexports.assertExistsTypeAnnotation = assertExistsTypeAnnotation;\nexports.assertExportAllDeclaration = assertExportAllDeclaration;\nexports.assertExportDeclaration = assertExportDeclaration;\nexports.assertExportDefaultDeclaration = assertExportDefaultDeclaration;\nexports.assertExportDefaultSpecifier = assertExportDefaultSpecifier;\nexports.assertExportNamedDeclaration = assertExportNamedDeclaration;\nexports.assertExportNamespaceSpecifier = assertExportNamespaceSpecifier;\nexports.assertExportSpecifier = assertExportSpecifier;\nexports.assertExpression = assertExpression;\nexports.assertExpressionStatement = assertExpressionStatement;\nexports.assertExpressionWrapper = assertExpressionWrapper;\nexports.assertFile = assertFile;\nexports.assertFlow = assertFlow;\nexports.assertFlowBaseAnnotation = assertFlowBaseAnnotation;\nexports.assertFlowDeclaration = assertFlowDeclaration;\nexports.assertFlowPredicate = assertFlowPredicate;\nexports.assertFlowType = assertFlowType;\nexports.assertFor = assertFor;\nexports.assertForInStatement = assertForInStatement;\nexports.assertForOfStatement = assertForOfStatement;\nexports.assertForStatement = assertForStatement;\nexports.assertForXStatement = assertForXStatement;\nexports.assertFunction = assertFunction;\nexports.assertFunctionDeclaration = assertFunctionDeclaration;\nexports.assertFunctionExpression = assertFunctionExpression;\nexports.assertFunctionParameter = assertFunctionParameter;\nexports.assertFunctionParent = assertFunctionParent;\nexports.assertFunctionTypeAnnotation = assertFunctionTypeAnnotation;\nexports.assertFunctionTypeParam = assertFunctionTypeParam;\nexports.assertGenericTypeAnnotation = assertGenericTypeAnnotation;\nexports.assertIdentifier = assertIdentifier;\nexports.assertIfStatement = assertIfStatement;\nexports.assertImmutable = assertImmutable;\nexports.assertImport = assertImport;\nexports.assertImportAttribute = assertImportAttribute;\nexports.assertImportDeclaration = assertImportDeclaration;\nexports.assertImportDefaultSpecifier = assertImportDefaultSpecifier;\nexports.assertImportExpression = assertImportExpression;\nexports.assertImportNamespaceSpecifier = assertImportNamespaceSpecifier;\nexports.assertImportOrExportDeclaration = assertImportOrExportDeclaration;\nexports.assertImportSpecifier = assertImportSpecifier;\nexports.assertIndexedAccessType = assertIndexedAccessType;\nexports.assertInferredPredicate = assertInferredPredicate;\nexports.assertInterfaceDeclaration = assertInterfaceDeclaration;\nexports.assertInterfaceExtends = assertInterfaceExtends;\nexports.assertInterfaceTypeAnnotation = assertInterfaceTypeAnnotation;\nexports.assertInterpreterDirective = assertInterpreterDirective;\nexports.assertIntersectionTypeAnnotation = assertIntersectionTypeAnnotation;\nexports.assertJSX = assertJSX;\nexports.assertJSXAttribute = assertJSXAttribute;\nexports.assertJSXClosingElement = assertJSXClosingElement;\nexports.assertJSXClosingFragment = assertJSXClosingFragment;\nexports.assertJSXElement = assertJSXElement;\nexports.assertJSXEmptyExpression = assertJSXEmptyExpression;\nexports.assertJSXExpressionContainer = assertJSXExpressionContainer;\nexports.assertJSXFragment = assertJSXFragment;\nexports.assertJSXIdentifier = assertJSXIdentifier;\nexports.assertJSXMemberExpression = assertJSXMemberExpression;\nexports.assertJSXNamespacedName = assertJSXNamespacedName;\nexports.assertJSXOpeningElement = assertJSXOpeningElement;\nexports.assertJSXOpeningFragment = assertJSXOpeningFragment;\nexports.assertJSXSpreadAttribute = assertJSXSpreadAttribute;\nexports.assertJSXSpreadChild = assertJSXSpreadChild;\nexports.assertJSXText = assertJSXText;\nexports.assertLVal = assertLVal;\nexports.assertLabeledStatement = assertLabeledStatement;\nexports.assertLiteral = assertLiteral;\nexports.assertLogicalExpression = assertLogicalExpression;\nexports.assertLoop = assertLoop;\nexports.assertMemberExpression = assertMemberExpression;\nexports.assertMetaProperty = assertMetaProperty;\nexports.assertMethod = assertMethod;\nexports.assertMiscellaneous = assertMiscellaneous;\nexports.assertMixedTypeAnnotation = assertMixedTypeAnnotation;\nexports.assertModuleDeclaration = assertModuleDeclaration;\nexports.assertModuleExpression = assertModuleExpression;\nexports.assertModuleSpecifier = assertModuleSpecifier;\nexports.assertNewExpression = assertNewExpression;\nexports.assertNoop = assertNoop;\nexports.assertNullLiteral = assertNullLiteral;\nexports.assertNullLiteralTypeAnnotation = assertNullLiteralTypeAnnotation;\nexports.assertNullableTypeAnnotation = assertNullableTypeAnnotation;\nexports.assertNumberLiteral = assertNumberLiteral;\nexports.assertNumberLiteralTypeAnnotation = assertNumberLiteralTypeAnnotation;\nexports.assertNumberTypeAnnotation = assertNumberTypeAnnotation;\nexports.assertNumericLiteral = assertNumericLiteral;\nexports.assertObjectExpression = assertObjectExpression;\nexports.assertObjectMember = assertObjectMember;\nexports.assertObjectMethod = assertObjectMethod;\nexports.assertObjectPattern = assertObjectPattern;\nexports.assertObjectProperty = assertObjectProperty;\nexports.assertObjectTypeAnnotation = assertObjectTypeAnnotation;\nexports.assertObjectTypeCallProperty = assertObjectTypeCallProperty;\nexports.assertObjectTypeIndexer = assertObjectTypeIndexer;\nexports.assertObjectTypeInternalSlot = assertObjectTypeInternalSlot;\nexports.assertObjectTypeProperty = assertObjectTypeProperty;\nexports.assertObjectTypeSpreadProperty = assertObjectTypeSpreadProperty;\nexports.assertOpaqueType = assertOpaqueType;\nexports.assertOptionalCallExpression = assertOptionalCallExpression;\nexports.assertOptionalIndexedAccessType = assertOptionalIndexedAccessType;\nexports.assertOptionalMemberExpression = assertOptionalMemberExpression;\nexports.assertParenthesizedExpression = assertParenthesizedExpression;\nexports.assertPattern = assertPattern;\nexports.assertPatternLike = assertPatternLike;\nexports.assertPipelineBareFunction = assertPipelineBareFunction;\nexports.assertPipelinePrimaryTopicReference = assertPipelinePrimaryTopicReference;\nexports.assertPipelineTopicExpression = assertPipelineTopicExpression;\nexports.assertPlaceholder = assertPlaceholder;\nexports.assertPrivate = assertPrivate;\nexports.assertPrivateName = assertPrivateName;\nexports.assertProgram = assertProgram;\nexports.assertProperty = assertProperty;\nexports.assertPureish = assertPureish;\nexports.assertQualifiedTypeIdentifier = assertQualifiedTypeIdentifier;\nexports.assertRecordExpression = assertRecordExpression;\nexports.assertRegExpLiteral = assertRegExpLiteral;\nexports.assertRegexLiteral = assertRegexLiteral;\nexports.assertRestElement = assertRestElement;\nexports.assertRestProperty = assertRestProperty;\nexports.assertReturnStatement = assertReturnStatement;\nexports.assertScopable = assertScopable;\nexports.assertSequenceExpression = assertSequenceExpression;\nexports.assertSpreadElement = assertSpreadElement;\nexports.assertSpreadProperty = assertSpreadProperty;\nexports.assertStandardized = assertStandardized;\nexports.assertStatement = assertStatement;\nexports.assertStaticBlock = assertStaticBlock;\nexports.assertStringLiteral = assertStringLiteral;\nexports.assertStringLiteralTypeAnnotation = assertStringLiteralTypeAnnotation;\nexports.assertStringTypeAnnotation = assertStringTypeAnnotation;\nexports.assertSuper = assertSuper;\nexports.assertSwitchCase = assertSwitchCase;\nexports.assertSwitchStatement = assertSwitchStatement;\nexports.assertSymbolTypeAnnotation = assertSymbolTypeAnnotation;\nexports.assertTSAnyKeyword = assertTSAnyKeyword;\nexports.assertTSArrayType = assertTSArrayType;\nexports.assertTSAsExpression = assertTSAsExpression;\nexports.assertTSBaseType = assertTSBaseType;\nexports.assertTSBigIntKeyword = assertTSBigIntKeyword;\nexports.assertTSBooleanKeyword = assertTSBooleanKeyword;\nexports.assertTSCallSignatureDeclaration = assertTSCallSignatureDeclaration;\nexports.assertTSConditionalType = assertTSConditionalType;\nexports.assertTSConstructSignatureDeclaration = assertTSConstructSignatureDeclaration;\nexports.assertTSConstructorType = assertTSConstructorType;\nexports.assertTSDeclareFunction = assertTSDeclareFunction;\nexports.assertTSDeclareMethod = assertTSDeclareMethod;\nexports.assertTSEntityName = assertTSEntityName;\nexports.assertTSEnumBody = assertTSEnumBody;\nexports.assertTSEnumDeclaration = assertTSEnumDeclaration;\nexports.assertTSEnumMember = assertTSEnumMember;\nexports.assertTSExportAssignment = assertTSExportAssignment;\nexports.assertTSExpressionWithTypeArguments = assertTSExpressionWithTypeArguments;\nexports.assertTSExternalModuleReference = assertTSExternalModuleReference;\nexports.assertTSFunctionType = assertTSFunctionType;\nexports.assertTSImportEqualsDeclaration = assertTSImportEqualsDeclaration;\nexports.assertTSImportType = assertTSImportType;\nexports.assertTSIndexSignature = assertTSIndexSignature;\nexports.assertTSIndexedAccessType = assertTSIndexedAccessType;\nexports.assertTSInferType = assertTSInferType;\nexports.assertTSInstantiationExpression = assertTSInstantiationExpression;\nexports.assertTSInterfaceBody = assertTSInterfaceBody;\nexports.assertTSInterfaceDeclaration = assertTSInterfaceDeclaration;\nexports.assertTSIntersectionType = assertTSIntersectionType;\nexports.assertTSIntrinsicKeyword = assertTSIntrinsicKeyword;\nexports.assertTSLiteralType = assertTSLiteralType;\nexports.assertTSMappedType = assertTSMappedType;\nexports.assertTSMethodSignature = assertTSMethodSignature;\nexports.assertTSModuleBlock = assertTSModuleBlock;\nexports.assertTSModuleDeclaration = assertTSModuleDeclaration;\nexports.assertTSNamedTupleMember = assertTSNamedTupleMember;\nexports.assertTSNamespaceExportDeclaration = assertTSNamespaceExportDeclaration;\nexports.assertTSNeverKeyword = assertTSNeverKeyword;\nexports.assertTSNonNullExpression = assertTSNonNullExpression;\nexports.assertTSNullKeyword = assertTSNullKeyword;\nexports.assertTSNumberKeyword = assertTSNumberKeyword;\nexports.assertTSObjectKeyword = assertTSObjectKeyword;\nexports.assertTSOptionalType = assertTSOptionalType;\nexports.assertTSParameterProperty = assertTSParameterProperty;\nexports.assertTSParenthesizedType = assertTSParenthesizedType;\nexports.assertTSPropertySignature = assertTSPropertySignature;\nexports.assertTSQualifiedName = assertTSQualifiedName;\nexports.assertTSRestType = assertTSRestType;\nexports.assertTSSatisfiesExpression = assertTSSatisfiesExpression;\nexports.assertTSStringKeyword = assertTSStringKeyword;\nexports.assertTSSymbolKeyword = assertTSSymbolKeyword;\nexports.assertTSTemplateLiteralType = assertTSTemplateLiteralType;\nexports.assertTSThisType = assertTSThisType;\nexports.assertTSTupleType = assertTSTupleType;\nexports.assertTSType = assertTSType;\nexports.assertTSTypeAliasDeclaration = assertTSTypeAliasDeclaration;\nexports.assertTSTypeAnnotation = assertTSTypeAnnotation;\nexports.assertTSTypeAssertion = assertTSTypeAssertion;\nexports.assertTSTypeElement = assertTSTypeElement;\nexports.assertTSTypeLiteral = assertTSTypeLiteral;\nexports.assertTSTypeOperator = assertTSTypeOperator;\nexports.assertTSTypeParameter = assertTSTypeParameter;\nexports.assertTSTypeParameterDeclaration = assertTSTypeParameterDeclaration;\nexports.assertTSTypeParameterInstantiation = assertTSTypeParameterInstantiation;\nexports.assertTSTypePredicate = assertTSTypePredicate;\nexports.assertTSTypeQuery = assertTSTypeQuery;\nexports.assertTSTypeReference = assertTSTypeReference;\nexports.assertTSUndefinedKeyword = assertTSUndefinedKeyword;\nexports.assertTSUnionType = assertTSUnionType;\nexports.assertTSUnknownKeyword = assertTSUnknownKeyword;\nexports.assertTSVoidKeyword = assertTSVoidKeyword;\nexports.assertTaggedTemplateExpression = assertTaggedTemplateExpression;\nexports.assertTemplateElement = assertTemplateElement;\nexports.assertTemplateLiteral = assertTemplateLiteral;\nexports.assertTerminatorless = assertTerminatorless;\nexports.assertThisExpression = assertThisExpression;\nexports.assertThisTypeAnnotation = assertThisTypeAnnotation;\nexports.assertThrowStatement = assertThrowStatement;\nexports.assertTopicReference = assertTopicReference;\nexports.assertTryStatement = assertTryStatement;\nexports.assertTupleExpression = assertTupleExpression;\nexports.assertTupleTypeAnnotation = assertTupleTypeAnnotation;\nexports.assertTypeAlias = assertTypeAlias;\nexports.assertTypeAnnotation = assertTypeAnnotation;\nexports.assertTypeCastExpression = assertTypeCastExpression;\nexports.assertTypeParameter = assertTypeParameter;\nexports.assertTypeParameterDeclaration = assertTypeParameterDeclaration;\nexports.assertTypeParameterInstantiation = assertTypeParameterInstantiation;\nexports.assertTypeScript = assertTypeScript;\nexports.assertTypeofTypeAnnotation = assertTypeofTypeAnnotation;\nexports.assertUnaryExpression = assertUnaryExpression;\nexports.assertUnaryLike = assertUnaryLike;\nexports.assertUnionTypeAnnotation = assertUnionTypeAnnotation;\nexports.assertUpdateExpression = assertUpdateExpression;\nexports.assertUserWhitespacable = assertUserWhitespacable;\nexports.assertV8IntrinsicIdentifier = assertV8IntrinsicIdentifier;\nexports.assertVariableDeclaration = assertVariableDeclaration;\nexports.assertVariableDeclarator = assertVariableDeclarator;\nexports.assertVariance = assertVariance;\nexports.assertVoidPattern = assertVoidPattern;\nexports.assertVoidTypeAnnotation = assertVoidTypeAnnotation;\nexports.assertWhile = assertWhile;\nexports.assertWhileStatement = assertWhileStatement;\nexports.assertWithStatement = assertWithStatement;\nexports.assertYieldExpression = assertYieldExpression;\nvar _is = require(\"../../validators/is.js\");\nvar _deprecationWarning = require(\"../../utils/deprecationWarning.js\");\nfunction assert(type, node, opts) {\n if (!(0, _is.default)(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 assertImportExpression(node, opts) {\n assert(\"ImportExpression\", 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 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 assertClassAccessorProperty(node, opts) {\n assert(\"ClassAccessorProperty\", 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 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 assertNoop(node, opts) {\n assert(\"Noop\", 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 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 assertRecordExpression(node, opts) {\n assert(\"RecordExpression\", node, opts);\n}\nfunction assertTupleExpression(node, opts) {\n assert(\"TupleExpression\", node, opts);\n}\nfunction assertDecimalLiteral(node, opts) {\n assert(\"DecimalLiteral\", node, opts);\n}\nfunction assertModuleExpression(node, opts) {\n assert(\"ModuleExpression\", node, opts);\n}\nfunction assertTopicReference(node, opts) {\n assert(\"TopicReference\", node, opts);\n}\nfunction assertPipelineTopicExpression(node, opts) {\n assert(\"PipelineTopicExpression\", node, opts);\n}\nfunction assertPipelineBareFunction(node, opts) {\n assert(\"PipelineBareFunction\", node, opts);\n}\nfunction assertPipelinePrimaryTopicReference(node, opts) {\n assert(\"PipelinePrimaryTopicReference\", 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 assertTSExpressionWithTypeArguments(node, opts) {\n assert(\"TSExpressionWithTypeArguments\", 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 assertAccessor(node, opts) {\n assert(\"Accessor\", 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 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 (0, _deprecationWarning.default)(\"assertNumberLiteral\", \"assertNumericLiteral\");\n assert(\"NumberLiteral\", node, opts);\n}\nfunction assertRegexLiteral(node, opts) {\n (0, _deprecationWarning.default)(\"assertRegexLiteral\", \"assertRegExpLiteral\");\n assert(\"RegexLiteral\", node, opts);\n}\nfunction assertRestProperty(node, opts) {\n (0, _deprecationWarning.default)(\"assertRestProperty\", \"assertRestElement\");\n assert(\"RestProperty\", node, opts);\n}\nfunction assertSpreadProperty(node, opts) {\n (0, _deprecationWarning.default)(\"assertSpreadProperty\", \"assertSpreadElement\");\n assert(\"SpreadProperty\", node, opts);\n}\nfunction assertModuleDeclaration(node, opts) {\n (0, _deprecationWarning.default)(\"assertModuleDeclaration\", \"assertImportOrExportDeclaration\");\n assert(\"ModuleDeclaration\", node, opts);\n}\n\n//# sourceMappingURL=index.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = require(\"../generated/index.js\");\nvar _default = exports.default = createTypeAnnotationBasedOnTypeof;\nfunction createTypeAnnotationBasedOnTypeof(type) {\n switch (type) {\n case \"string\":\n return (0, _index.stringTypeAnnotation)();\n case \"number\":\n return (0, _index.numberTypeAnnotation)();\n case \"undefined\":\n return (0, _index.voidTypeAnnotation)();\n case \"boolean\":\n return (0, _index.booleanTypeAnnotation)();\n case \"function\":\n return (0, _index.genericTypeAnnotation)((0, _index.identifier)(\"Function\"));\n case \"object\":\n return (0, _index.genericTypeAnnotation)((0, _index.identifier)(\"Object\"));\n case \"symbol\":\n return (0, _index.genericTypeAnnotation)((0, _index.identifier)(\"Symbol\"));\n case \"bigint\":\n return (0, _index.anyTypeAnnotation)();\n }\n throw new Error(\"Invalid typeof value: \" + type);\n}\n\n//# sourceMappingURL=createTypeAnnotationBasedOnTypeof.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = removeTypeDuplicates;\nvar _index = require(\"../../validators/generated/index.js\");\nfunction getQualifiedName(node) {\n return (0, _index.isIdentifier)(node) ? node.name : `${node.id.name}.${getQualifiedName(node.qualification)}`;\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 ((0, _index.isAnyTypeAnnotation)(node)) {\n return [node];\n }\n if ((0, _index.isFlowBaseAnnotation)(node)) {\n bases.set(node.type, node);\n continue;\n }\n if ((0, _index.isUnionTypeAnnotation)(node)) {\n if (!typeGroups.has(node.types)) {\n nodes.push(...node.types);\n typeGroups.add(node.types);\n }\n continue;\n }\n if ((0, _index.isGenericTypeAnnotation)(node)) {\n const name = getQualifiedName(node.id);\n if (generics.has(name)) {\n let existing = generics.get(name);\n if (existing.typeParameters) {\n if (node.typeParameters) {\n existing.typeParameters.params.push(...node.typeParameters.params);\n existing.typeParameters.params = removeTypeDuplicates(existing.typeParameters.params);\n }\n } else {\n existing = node.typeParameters;\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\n//# sourceMappingURL=removeTypeDuplicates.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createFlowUnionType;\nvar _index = require(\"../generated/index.js\");\nvar _removeTypeDuplicates = require(\"../../modifications/flow/removeTypeDuplicates.js\");\nfunction createFlowUnionType(types) {\n const flattened = (0, _removeTypeDuplicates.default)(types);\n if (flattened.length === 1) {\n return flattened[0];\n } else {\n return (0, _index.unionTypeAnnotation)(flattened);\n }\n}\n\n//# sourceMappingURL=createFlowUnionType.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = removeTypeDuplicates;\nvar _index = require(\"../../validators/generated/index.js\");\nfunction getQualifiedName(node) {\n return (0, _index.isIdentifier)(node) ? node.name : (0, _index.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 ((0, _index.isTSAnyKeyword)(node)) {\n return [node];\n }\n if ((0, _index.isTSBaseType)(node)) {\n bases.set(node.type, node);\n continue;\n }\n if ((0, _index.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 = \"typeParameters\";\n if ((0, _index.isTSTypeReference)(node) && node[typeArgumentsKey]) {\n const typeArguments = node[typeArgumentsKey];\n const name = getQualifiedName(node.typeName);\n if (generics.has(name)) {\n let existing = generics.get(name);\n const existingTypeArguments = existing[typeArgumentsKey];\n if (existingTypeArguments) {\n existingTypeArguments.params.push(...typeArguments.params);\n existingTypeArguments.params = removeTypeDuplicates(existingTypeArguments.params);\n } else {\n existing = typeArguments;\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\n//# sourceMappingURL=removeTypeDuplicates.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createTSUnionType;\nvar _index = require(\"../generated/index.js\");\nvar _removeTypeDuplicates = require(\"../../modifications/typescript/removeTypeDuplicates.js\");\nvar _index2 = require(\"../../validators/generated/index.js\");\nfunction createTSUnionType(typeAnnotations) {\n const types = typeAnnotations.map(type => {\n return (0, _index2.isTSTypeAnnotation)(type) ? type.typeAnnotation : type;\n });\n const flattened = (0, _removeTypeDuplicates.default)(types);\n if (flattened.length === 1) {\n return flattened[0];\n } else {\n return (0, _index.tsUnionType)(flattened);\n }\n}\n\n//# sourceMappingURL=createTSUnionType.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.buildUndefinedNode = buildUndefinedNode;\nvar _index = require(\"./generated/index.js\");\nfunction buildUndefinedNode() {\n return (0, _index.unaryExpression)(\"void\", (0, _index.numericLiteral)(0), true);\n}\n\n//# sourceMappingURL=productions.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = cloneNode;\nvar _index = require(\"../definitions/index.js\");\nvar _index2 = require(\"../validators/generated/index.js\");\nconst {\n hasOwn\n} = {\n hasOwn: Function.call.bind(Object.prototype.hasOwnProperty)\n};\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 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 ((0, _index2.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(_index.NODE_FIELDS, type)) {\n throw new Error(`Unknown node type: \"${type}\"`);\n } else {\n for (const field of Object.keys(_index.NODE_FIELDS[type])) {\n if (hasOwn(node, field)) {\n if (deep) {\n newNode[field] = (0, _index2.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 = Object.assign({}, node.extra);\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 = null;\n }\n commentsCache.set(comment, ret);\n return ret;\n });\n}\n\n//# sourceMappingURL=cloneNode.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = clone;\nvar _cloneNode = require(\"./cloneNode.js\");\nfunction clone(node) {\n return (0, _cloneNode.default)(node, false);\n}\n\n//# sourceMappingURL=clone.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = cloneDeep;\nvar _cloneNode = require(\"./cloneNode.js\");\nfunction cloneDeep(node) {\n return (0, _cloneNode.default)(node);\n}\n\n//# sourceMappingURL=cloneDeep.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = cloneDeepWithoutLoc;\nvar _cloneNode = require(\"./cloneNode.js\");\nfunction cloneDeepWithoutLoc(node) {\n return (0, _cloneNode.default)(node, true, true);\n}\n\n//# sourceMappingURL=cloneDeepWithoutLoc.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = cloneWithoutLoc;\nvar _cloneNode = require(\"./cloneNode.js\");\nfunction cloneWithoutLoc(node) {\n return (0, _cloneNode.default)(node, false, true);\n}\n\n//# sourceMappingURL=cloneWithoutLoc.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = addComments;\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\n//# sourceMappingURL=addComments.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = addComment;\nvar _addComments = require(\"./addComments.js\");\nfunction addComment(node, type, content, line) {\n return (0, _addComments.default)(node, type, [{\n type: line ? \"CommentLine\" : \"CommentBlock\",\n value: content\n }]);\n}\n\n//# sourceMappingURL=addComment.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = inherit;\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\n//# sourceMappingURL=inherit.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = inheritInnerComments;\nvar _inherit = require(\"../utils/inherit.js\");\nfunction inheritInnerComments(child, parent) {\n (0, _inherit.default)(\"innerComments\", child, parent);\n}\n\n//# sourceMappingURL=inheritInnerComments.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = inheritLeadingComments;\nvar _inherit = require(\"../utils/inherit.js\");\nfunction inheritLeadingComments(child, parent) {\n (0, _inherit.default)(\"leadingComments\", child, parent);\n}\n\n//# sourceMappingURL=inheritLeadingComments.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = inheritTrailingComments;\nvar _inherit = require(\"../utils/inherit.js\");\nfunction inheritTrailingComments(child, parent) {\n (0, _inherit.default)(\"trailingComments\", child, parent);\n}\n\n//# sourceMappingURL=inheritTrailingComments.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = inheritsComments;\nvar _inheritTrailingComments = require(\"./inheritTrailingComments.js\");\nvar _inheritLeadingComments = require(\"./inheritLeadingComments.js\");\nvar _inheritInnerComments = require(\"./inheritInnerComments.js\");\nfunction inheritsComments(child, parent) {\n (0, _inheritTrailingComments.default)(child, parent);\n (0, _inheritLeadingComments.default)(child, parent);\n (0, _inheritInnerComments.default)(child, parent);\n return child;\n}\n\n//# sourceMappingURL=inheritsComments.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = removeComments;\nvar _index = require(\"../constants/index.js\");\nfunction removeComments(node) {\n _index.COMMENT_KEYS.forEach(key => {\n node[key] = null;\n });\n return node;\n}\n\n//# sourceMappingURL=removeComments.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.WHILE_TYPES = exports.USERWHITESPACABLE_TYPES = exports.UNARYLIKE_TYPES = exports.TYPESCRIPT_TYPES = exports.TSTYPE_TYPES = exports.TSTYPEELEMENT_TYPES = exports.TSENTITYNAME_TYPES = exports.TSBASETYPE_TYPES = exports.TERMINATORLESS_TYPES = exports.STATEMENT_TYPES = exports.STANDARDIZED_TYPES = exports.SCOPABLE_TYPES = exports.PUREISH_TYPES = exports.PROPERTY_TYPES = exports.PRIVATE_TYPES = exports.PATTERN_TYPES = exports.PATTERNLIKE_TYPES = exports.OBJECTMEMBER_TYPES = exports.MODULESPECIFIER_TYPES = exports.MODULEDECLARATION_TYPES = exports.MISCELLANEOUS_TYPES = exports.METHOD_TYPES = exports.LVAL_TYPES = exports.LOOP_TYPES = exports.LITERAL_TYPES = exports.JSX_TYPES = exports.IMPORTOREXPORTDECLARATION_TYPES = exports.IMMUTABLE_TYPES = exports.FUNCTION_TYPES = exports.FUNCTIONPARENT_TYPES = exports.FUNCTIONPARAMETER_TYPES = exports.FOR_TYPES = exports.FORXSTATEMENT_TYPES = exports.FLOW_TYPES = exports.FLOWTYPE_TYPES = exports.FLOWPREDICATE_TYPES = exports.FLOWDECLARATION_TYPES = exports.FLOWBASEANNOTATION_TYPES = exports.EXPRESSION_TYPES = exports.EXPRESSIONWRAPPER_TYPES = exports.EXPORTDECLARATION_TYPES = exports.ENUMMEMBER_TYPES = exports.ENUMBODY_TYPES = exports.DECLARATION_TYPES = exports.CONDITIONAL_TYPES = exports.COMPLETIONSTATEMENT_TYPES = exports.CLASS_TYPES = exports.BLOCK_TYPES = exports.BLOCKPARENT_TYPES = exports.BINARY_TYPES = exports.ACCESSOR_TYPES = void 0;\nvar _index = require(\"../../definitions/index.js\");\nconst STANDARDIZED_TYPES = exports.STANDARDIZED_TYPES = _index.FLIPPED_ALIAS_KEYS[\"Standardized\"];\nconst EXPRESSION_TYPES = exports.EXPRESSION_TYPES = _index.FLIPPED_ALIAS_KEYS[\"Expression\"];\nconst BINARY_TYPES = exports.BINARY_TYPES = _index.FLIPPED_ALIAS_KEYS[\"Binary\"];\nconst SCOPABLE_TYPES = exports.SCOPABLE_TYPES = _index.FLIPPED_ALIAS_KEYS[\"Scopable\"];\nconst BLOCKPARENT_TYPES = exports.BLOCKPARENT_TYPES = _index.FLIPPED_ALIAS_KEYS[\"BlockParent\"];\nconst BLOCK_TYPES = exports.BLOCK_TYPES = _index.FLIPPED_ALIAS_KEYS[\"Block\"];\nconst STATEMENT_TYPES = exports.STATEMENT_TYPES = _index.FLIPPED_ALIAS_KEYS[\"Statement\"];\nconst TERMINATORLESS_TYPES = exports.TERMINATORLESS_TYPES = _index.FLIPPED_ALIAS_KEYS[\"Terminatorless\"];\nconst COMPLETIONSTATEMENT_TYPES = exports.COMPLETIONSTATEMENT_TYPES = _index.FLIPPED_ALIAS_KEYS[\"CompletionStatement\"];\nconst CONDITIONAL_TYPES = exports.CONDITIONAL_TYPES = _index.FLIPPED_ALIAS_KEYS[\"Conditional\"];\nconst LOOP_TYPES = exports.LOOP_TYPES = _index.FLIPPED_ALIAS_KEYS[\"Loop\"];\nconst WHILE_TYPES = exports.WHILE_TYPES = _index.FLIPPED_ALIAS_KEYS[\"While\"];\nconst EXPRESSIONWRAPPER_TYPES = exports.EXPRESSIONWRAPPER_TYPES = _index.FLIPPED_ALIAS_KEYS[\"ExpressionWrapper\"];\nconst FOR_TYPES = exports.FOR_TYPES = _index.FLIPPED_ALIAS_KEYS[\"For\"];\nconst FORXSTATEMENT_TYPES = exports.FORXSTATEMENT_TYPES = _index.FLIPPED_ALIAS_KEYS[\"ForXStatement\"];\nconst FUNCTION_TYPES = exports.FUNCTION_TYPES = _index.FLIPPED_ALIAS_KEYS[\"Function\"];\nconst FUNCTIONPARENT_TYPES = exports.FUNCTIONPARENT_TYPES = _index.FLIPPED_ALIAS_KEYS[\"FunctionParent\"];\nconst PUREISH_TYPES = exports.PUREISH_TYPES = _index.FLIPPED_ALIAS_KEYS[\"Pureish\"];\nconst DECLARATION_TYPES = exports.DECLARATION_TYPES = _index.FLIPPED_ALIAS_KEYS[\"Declaration\"];\nconst FUNCTIONPARAMETER_TYPES = exports.FUNCTIONPARAMETER_TYPES = _index.FLIPPED_ALIAS_KEYS[\"FunctionParameter\"];\nconst PATTERNLIKE_TYPES = exports.PATTERNLIKE_TYPES = _index.FLIPPED_ALIAS_KEYS[\"PatternLike\"];\nconst LVAL_TYPES = exports.LVAL_TYPES = _index.FLIPPED_ALIAS_KEYS[\"LVal\"];\nconst TSENTITYNAME_TYPES = exports.TSENTITYNAME_TYPES = _index.FLIPPED_ALIAS_KEYS[\"TSEntityName\"];\nconst LITERAL_TYPES = exports.LITERAL_TYPES = _index.FLIPPED_ALIAS_KEYS[\"Literal\"];\nconst IMMUTABLE_TYPES = exports.IMMUTABLE_TYPES = _index.FLIPPED_ALIAS_KEYS[\"Immutable\"];\nconst USERWHITESPACABLE_TYPES = exports.USERWHITESPACABLE_TYPES = _index.FLIPPED_ALIAS_KEYS[\"UserWhitespacable\"];\nconst METHOD_TYPES = exports.METHOD_TYPES = _index.FLIPPED_ALIAS_KEYS[\"Method\"];\nconst OBJECTMEMBER_TYPES = exports.OBJECTMEMBER_TYPES = _index.FLIPPED_ALIAS_KEYS[\"ObjectMember\"];\nconst PROPERTY_TYPES = exports.PROPERTY_TYPES = _index.FLIPPED_ALIAS_KEYS[\"Property\"];\nconst UNARYLIKE_TYPES = exports.UNARYLIKE_TYPES = _index.FLIPPED_ALIAS_KEYS[\"UnaryLike\"];\nconst PATTERN_TYPES = exports.PATTERN_TYPES = _index.FLIPPED_ALIAS_KEYS[\"Pattern\"];\nconst CLASS_TYPES = exports.CLASS_TYPES = _index.FLIPPED_ALIAS_KEYS[\"Class\"];\nconst IMPORTOREXPORTDECLARATION_TYPES = exports.IMPORTOREXPORTDECLARATION_TYPES = _index.FLIPPED_ALIAS_KEYS[\"ImportOrExportDeclaration\"];\nconst EXPORTDECLARATION_TYPES = exports.EXPORTDECLARATION_TYPES = _index.FLIPPED_ALIAS_KEYS[\"ExportDeclaration\"];\nconst MODULESPECIFIER_TYPES = exports.MODULESPECIFIER_TYPES = _index.FLIPPED_ALIAS_KEYS[\"ModuleSpecifier\"];\nconst ACCESSOR_TYPES = exports.ACCESSOR_TYPES = _index.FLIPPED_ALIAS_KEYS[\"Accessor\"];\nconst PRIVATE_TYPES = exports.PRIVATE_TYPES = _index.FLIPPED_ALIAS_KEYS[\"Private\"];\nconst FLOW_TYPES = exports.FLOW_TYPES = _index.FLIPPED_ALIAS_KEYS[\"Flow\"];\nconst FLOWTYPE_TYPES = exports.FLOWTYPE_TYPES = _index.FLIPPED_ALIAS_KEYS[\"FlowType\"];\nconst FLOWBASEANNOTATION_TYPES = exports.FLOWBASEANNOTATION_TYPES = _index.FLIPPED_ALIAS_KEYS[\"FlowBaseAnnotation\"];\nconst FLOWDECLARATION_TYPES = exports.FLOWDECLARATION_TYPES = _index.FLIPPED_ALIAS_KEYS[\"FlowDeclaration\"];\nconst FLOWPREDICATE_TYPES = exports.FLOWPREDICATE_TYPES = _index.FLIPPED_ALIAS_KEYS[\"FlowPredicate\"];\nconst ENUMBODY_TYPES = exports.ENUMBODY_TYPES = _index.FLIPPED_ALIAS_KEYS[\"EnumBody\"];\nconst ENUMMEMBER_TYPES = exports.ENUMMEMBER_TYPES = _index.FLIPPED_ALIAS_KEYS[\"EnumMember\"];\nconst JSX_TYPES = exports.JSX_TYPES = _index.FLIPPED_ALIAS_KEYS[\"JSX\"];\nconst MISCELLANEOUS_TYPES = exports.MISCELLANEOUS_TYPES = _index.FLIPPED_ALIAS_KEYS[\"Miscellaneous\"];\nconst TYPESCRIPT_TYPES = exports.TYPESCRIPT_TYPES = _index.FLIPPED_ALIAS_KEYS[\"TypeScript\"];\nconst TSTYPEELEMENT_TYPES = exports.TSTYPEELEMENT_TYPES = _index.FLIPPED_ALIAS_KEYS[\"TSTypeElement\"];\nconst TSTYPE_TYPES = exports.TSTYPE_TYPES = _index.FLIPPED_ALIAS_KEYS[\"TSType\"];\nconst TSBASETYPE_TYPES = exports.TSBASETYPE_TYPES = _index.FLIPPED_ALIAS_KEYS[\"TSBaseType\"];\nconst MODULEDECLARATION_TYPES = exports.MODULEDECLARATION_TYPES = IMPORTOREXPORTDECLARATION_TYPES;\n\n//# sourceMappingURL=index.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toBlock;\nvar _index = require(\"../validators/generated/index.js\");\nvar _index2 = require(\"../builders/generated/index.js\");\nfunction toBlock(node, parent) {\n if ((0, _index.isBlockStatement)(node)) {\n return node;\n }\n let blockNodes = [];\n if ((0, _index.isEmptyStatement)(node)) {\n blockNodes = [];\n } else {\n if (!(0, _index.isStatement)(node)) {\n if ((0, _index.isFunction)(parent)) {\n node = (0, _index2.returnStatement)(node);\n } else {\n node = (0, _index2.expressionStatement)(node);\n }\n }\n blockNodes = [node];\n }\n return (0, _index2.blockStatement)(blockNodes);\n}\n\n//# sourceMappingURL=toBlock.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = ensureBlock;\nvar _toBlock = require(\"./toBlock.js\");\nfunction ensureBlock(node, key = \"body\") {\n const result = (0, _toBlock.default)(node[key], node);\n node[key] = result;\n return result;\n}\n\n//# sourceMappingURL=ensureBlock.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toIdentifier;\nvar _isValidIdentifier = require(\"../validators/isValidIdentifier.js\");\nvar _helperValidatorIdentifier = require(\"@babel/helper-validator-identifier\");\nfunction toIdentifier(input) {\n input = input + \"\";\n let name = \"\";\n for (const c of input) {\n name += (0, _helperValidatorIdentifier.isIdentifierChar)(c.codePointAt(0)) ? c : \"-\";\n }\n name = name.replace(/^[-0-9]+/, \"\");\n name = name.replace(/[-\\s]+(.)?/g, function (match, c) {\n return c ? c.toUpperCase() : \"\";\n });\n if (!(0, _isValidIdentifier.default)(name)) {\n name = `_${name}`;\n }\n return name || \"_\";\n}\n\n//# sourceMappingURL=toIdentifier.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toBindingIdentifierName;\nvar _toIdentifier = require(\"./toIdentifier.js\");\nfunction toBindingIdentifierName(name) {\n name = (0, _toIdentifier.default)(name);\n if (name === \"eval\" || name === \"arguments\") name = \"_\" + name;\n return name;\n}\n\n//# sourceMappingURL=toBindingIdentifierName.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toComputedKey;\nvar _index = require(\"../validators/generated/index.js\");\nvar _index2 = require(\"../builders/generated/index.js\");\nfunction toComputedKey(node, key = node.key || node.property) {\n if (!node.computed && (0, _index.isIdentifier)(key)) key = (0, _index2.stringLiteral)(key.name);\n return key;\n}\n\n//# sourceMappingURL=toComputedKey.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = require(\"../validators/generated/index.js\");\nvar _default = exports.default = toExpression;\nfunction toExpression(node) {\n if ((0, _index.isExpressionStatement)(node)) {\n node = node.expression;\n }\n if ((0, _index.isExpression)(node)) {\n return node;\n }\n if ((0, _index.isClass)(node)) {\n node.type = \"ClassExpression\";\n node.abstract = false;\n } else if ((0, _index.isFunction)(node)) {\n node.type = \"FunctionExpression\";\n }\n if (!(0, _index.isExpression)(node)) {\n throw new Error(`cannot turn ${node.type} to an expression`);\n }\n return node;\n}\n\n//# sourceMappingURL=toExpression.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = traverseFast;\nvar _index = require(\"../definitions/index.js\");\nconst _skip = Symbol();\nconst _stop = Symbol();\nfunction traverseFast(node, enter, opts) {\n if (!node) return false;\n const keys = _index.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\n//# sourceMappingURL=traverseFast.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = removeProperties;\nvar _index = require(\"../constants/index.js\");\nconst CLEAR_KEYS = [\"tokens\", \"start\", \"end\", \"loc\", \"raw\", \"rawValue\"];\nconst CLEAR_KEYS_PLUS_COMMENTS = [..._index.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[0] === \"_\" && 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\n//# sourceMappingURL=removeProperties.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = removePropertiesDeep;\nvar _traverseFast = require(\"../traverse/traverseFast.js\");\nvar _removeProperties = require(\"./removeProperties.js\");\nfunction removePropertiesDeep(tree, opts) {\n (0, _traverseFast.default)(tree, _removeProperties.default, opts);\n return tree;\n}\n\n//# sourceMappingURL=removePropertiesDeep.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toKeyAlias;\nvar _index = require(\"../validators/generated/index.js\");\nvar _cloneNode = require(\"../clone/cloneNode.js\");\nvar _removePropertiesDeep = require(\"../modifications/removePropertiesDeep.js\");\nfunction toKeyAlias(node, key = node.key) {\n let alias;\n if (node.kind === \"method\") {\n return toKeyAlias.increment() + \"\";\n } else if ((0, _index.isIdentifier)(key)) {\n alias = key.name;\n } else if ((0, _index.isStringLiteral)(key)) {\n alias = JSON.stringify(key.value);\n } else {\n alias = JSON.stringify((0, _removePropertiesDeep.default)((0, _cloneNode.default)(key)));\n }\n if (node.computed) {\n alias = `[${alias}]`;\n }\n if (node.static) {\n alias = `static:${alias}`;\n }\n return alias;\n}\ntoKeyAlias.uid = 0;\ntoKeyAlias.increment = function () {\n if (toKeyAlias.uid >= Number.MAX_SAFE_INTEGER) {\n return toKeyAlias.uid = 0;\n } else {\n return toKeyAlias.uid++;\n }\n};\n\n//# sourceMappingURL=toKeyAlias.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = require(\"../validators/generated/index.js\");\nvar _index2 = require(\"../builders/generated/index.js\");\nvar _default = exports.default = toStatement;\nfunction toStatement(node, ignore) {\n if ((0, _index.isStatement)(node)) {\n return node;\n }\n let mustHaveId = false;\n let newType;\n if ((0, _index.isClass)(node)) {\n mustHaveId = true;\n newType = \"ClassDeclaration\";\n } else if ((0, _index.isFunction)(node)) {\n mustHaveId = true;\n newType = \"FunctionDeclaration\";\n } else if ((0, _index.isAssignmentExpression)(node)) {\n return (0, _index2.expressionStatement)(node);\n }\n if (mustHaveId && !node.id) {\n newType = false;\n }\n if (!newType) {\n if (ignore) {\n return false;\n } else {\n throw new Error(`cannot turn ${node.type} to a statement`);\n }\n }\n node.type = newType;\n return node;\n}\n\n//# sourceMappingURL=toStatement.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _isValidIdentifier = require(\"../validators/isValidIdentifier.js\");\nvar _index = require(\"../builders/generated/index.js\");\nvar _default = exports.default = valueToNode;\nconst objectToString = Function.call.bind(Object.prototype.toString);\nfunction isRegExp(value) {\n return objectToString(value) === \"[object RegExp]\";\n}\nfunction isPlainObject(value) {\n if (typeof value !== \"object\" || value === null || Object.prototype.toString.call(value) !== \"[object Object]\") {\n return false;\n }\n const proto = Object.getPrototypeOf(value);\n return proto === null || Object.getPrototypeOf(proto) === null;\n}\nfunction valueToNode(value) {\n if (value === undefined) {\n return (0, _index.identifier)(\"undefined\");\n }\n if (value === true || value === false) {\n return (0, _index.booleanLiteral)(value);\n }\n if (value === null) {\n return (0, _index.nullLiteral)();\n }\n if (typeof value === \"string\") {\n return (0, _index.stringLiteral)(value);\n }\n if (typeof value === \"number\") {\n let result;\n if (Number.isFinite(value)) {\n result = (0, _index.numericLiteral)(Math.abs(value));\n } else {\n let numerator;\n if (Number.isNaN(value)) {\n numerator = (0, _index.numericLiteral)(0);\n } else {\n numerator = (0, _index.numericLiteral)(1);\n }\n result = (0, _index.binaryExpression)(\"/\", numerator, (0, _index.numericLiteral)(0));\n }\n if (value < 0 || Object.is(value, -0)) {\n result = (0, _index.unaryExpression)(\"-\", result);\n }\n return result;\n }\n if (typeof value === \"bigint\") {\n if (value < 0) {\n return (0, _index.unaryExpression)(\"-\", (0, _index.bigIntLiteral)(-value));\n } else {\n return (0, _index.bigIntLiteral)(value);\n }\n }\n if (isRegExp(value)) {\n const pattern = value.source;\n const flags = /\\/([a-z]*)$/.exec(value.toString())[1];\n return (0, _index.regExpLiteral)(pattern, flags);\n }\n if (Array.isArray(value)) {\n return (0, _index.arrayExpression)(value.map(valueToNode));\n }\n if (isPlainObject(value)) {\n const props = [];\n for (const key of Object.keys(value)) {\n let nodeKey,\n computed = false;\n if ((0, _isValidIdentifier.default)(key)) {\n if (key === \"__proto__\") {\n computed = true;\n nodeKey = (0, _index.stringLiteral)(key);\n } else {\n nodeKey = (0, _index.identifier)(key);\n }\n } else {\n nodeKey = (0, _index.stringLiteral)(key);\n }\n props.push((0, _index.objectProperty)(nodeKey, valueToNode(value[key]), computed));\n }\n return (0, _index.objectExpression)(props);\n }\n throw new Error(\"don't know how to turn this value into a node\");\n}\n\n//# sourceMappingURL=valueToNode.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = appendToMemberExpression;\nvar _index = require(\"../builders/generated/index.js\");\nfunction appendToMemberExpression(member, append, computed = false) {\n member.object = (0, _index.memberExpression)(member.object, member.property, member.computed);\n member.property = append;\n member.computed = !!computed;\n return member;\n}\n\n//# sourceMappingURL=appendToMemberExpression.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = inherits;\nvar _index = require(\"../constants/index.js\");\nvar _inheritsComments = require(\"../comments/inheritsComments.js\");\nfunction inherits(child, parent) {\n if (!child || !parent) return child;\n for (const key of _index.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[0] === \"_\" && key !== \"__clone\") {\n child[key] = parent[key];\n }\n }\n for (const key of _index.INHERIT_KEYS.force) {\n child[key] = parent[key];\n }\n (0, _inheritsComments.default)(child, parent);\n return child;\n}\n\n//# sourceMappingURL=inherits.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = prependToMemberExpression;\nvar _index = require(\"../builders/generated/index.js\");\nvar _index2 = require(\"../index.js\");\nfunction prependToMemberExpression(member, prepend) {\n if ((0, _index2.isSuper)(member.object)) {\n throw new Error(\"Cannot prepend node to super property access (`super.foo`).\");\n }\n member.object = (0, _index.memberExpression)(prepend, member.object);\n return member;\n}\n\n//# sourceMappingURL=prependToMemberExpression.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getAssignmentIdentifiers;\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 default:\n break;\n }\n }\n return ids;\n}\n\n//# sourceMappingURL=getAssignmentIdentifiers.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getBindingIdentifiers;\nvar _index = require(\"../validators/generated/index.js\");\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 && ((0, _index.isAssignmentExpression)(id) || (0, _index.isUnaryExpression)(id) || (0, _index.isUpdateExpression)(id))) {\n continue;\n }\n if ((0, _index.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 ((0, _index.isExportDeclaration)(id) && !(0, _index.isExportAllDeclaration)(id)) {\n if ((0, _index.isDeclaration)(id.declaration)) {\n search.push(id.declaration);\n }\n continue;\n }\n if (outerOnly) {\n if ((0, _index.isFunctionDeclaration)(id)) {\n search.push(id.id);\n continue;\n }\n if ((0, _index.isFunctionExpression)(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\n//# sourceMappingURL=getBindingIdentifiers.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _getBindingIdentifiers = require(\"./getBindingIdentifiers.js\");\nvar _default = exports.default = getOuterBindingIdentifiers;\nfunction getOuterBindingIdentifiers(node, duplicates) {\n return (0, _getBindingIdentifiers.default)(node, duplicates, true);\n}\n\n//# sourceMappingURL=getOuterBindingIdentifiers.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getFunctionName;\nvar _index = require(\"../validators/generated/index.js\");\nfunction getNameFromLiteralId(id) {\n if ((0, _index.isNullLiteral)(id)) {\n return \"null\";\n }\n if ((0, _index.isRegExpLiteral)(id)) {\n return `/${id.pattern}/${id.flags}`;\n }\n if ((0, _index.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 || (0, _index.isLiteral)(node.key)) {\n return node.key;\n }\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 ((0, _index.isObjectProperty)(parent, {\n value: node\n })) {\n id = getObjectMemberKey(parent);\n } else if ((0, _index.isObjectMethod)(node) || (0, _index.isClassMethod)(node)) {\n id = getObjectMemberKey(node);\n if (node.kind === \"get\") prefix = \"get \";else if (node.kind === \"set\") prefix = \"set \";\n } else if ((0, _index.isVariableDeclarator)(parent, {\n init: node\n })) {\n id = parent.id;\n } else if ((0, _index.isAssignmentExpression)(parent, {\n operator: \"=\",\n right: node\n })) {\n id = parent.left;\n }\n if (!id) return null;\n const name = (0, _index.isLiteral)(id) ? getNameFromLiteralId(id) : (0, _index.isIdentifier)(id) ? id.name : (0, _index.isPrivateName)(id) ? id.id.name : null;\n if (name == null) return null;\n return {\n name: prefix + name,\n originalNode: id\n };\n}\n\n//# sourceMappingURL=getFunctionName.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = traverse;\nvar _index = require(\"../definitions/index.js\");\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 = _index.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\n//# sourceMappingURL=traverse.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBinding;\nvar _getBindingIdentifiers = require(\"../retrievers/getBindingIdentifiers.js\");\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.default.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\n//# sourceMappingURL=isBinding.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLet;\nvar _index = require(\"./generated/index.js\");\n{\n var BLOCK_SCOPED_SYMBOL = Symbol.for(\"var used to be block scoped\");\n}\nfunction isLet(node) {\n {\n return (0, _index.isVariableDeclaration)(node) && (node.kind !== \"var\" || node[BLOCK_SCOPED_SYMBOL]);\n }\n}\n\n//# sourceMappingURL=isLet.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBlockScoped;\nvar _index = require(\"./generated/index.js\");\nvar _isLet = require(\"./isLet.js\");\nfunction isBlockScoped(node) {\n return (0, _index.isFunctionDeclaration)(node) || (0, _index.isClassDeclaration)(node) || (0, _isLet.default)(node);\n}\n\n//# sourceMappingURL=isBlockScoped.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isImmutable;\nvar _isType = require(\"./isType.js\");\nvar _index = require(\"./generated/index.js\");\nfunction isImmutable(node) {\n if ((0, _isType.default)(node.type, \"Immutable\")) return true;\n if ((0, _index.isIdentifier)(node)) {\n if (node.name === \"undefined\") {\n return true;\n } else {\n return false;\n }\n }\n return false;\n}\n\n//# sourceMappingURL=isImmutable.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isNodesEquivalent;\nvar _index = require(\"../definitions/index.js\");\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(_index.NODE_FIELDS[a.type] || a.type);\n const visitorKeys = _index.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 != null && 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\n//# sourceMappingURL=isNodesEquivalent.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isReferenced;\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 || 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 != null && 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\n//# sourceMappingURL=isReferenced.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isScope;\nvar _index = require(\"./generated/index.js\");\nfunction isScope(node, parent) {\n if ((0, _index.isBlockStatement)(node) && ((0, _index.isFunction)(parent) || (0, _index.isCatchClause)(parent))) {\n return false;\n }\n if ((0, _index.isPattern)(node) && ((0, _index.isFunction)(parent) || (0, _index.isCatchClause)(parent))) {\n return true;\n }\n return (0, _index.isScopable)(node);\n}\n\n//# sourceMappingURL=isScope.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isSpecifierDefault;\nvar _index = require(\"./generated/index.js\");\nfunction isSpecifierDefault(specifier) {\n return (0, _index.isImportDefaultSpecifier)(specifier) || (0, _index.isIdentifier)(specifier.imported || specifier.exported, {\n name: \"default\"\n });\n}\n\n//# sourceMappingURL=isSpecifierDefault.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isValidES3Identifier;\nvar _isValidIdentifier = require(\"./isValidIdentifier.js\");\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 (0, _isValidIdentifier.default)(name) && !RESERVED_WORDS_ES3_ONLY.has(name);\n}\n\n//# sourceMappingURL=isValidES3Identifier.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isVar;\nvar _index = require(\"./generated/index.js\");\n{\n var BLOCK_SCOPED_SYMBOL = Symbol.for(\"var used to be block scoped\");\n}\nfunction isVar(node) {\n {\n return (0, _index.isVariableDeclaration)(node, {\n kind: \"var\"\n }) && !node[BLOCK_SCOPED_SYMBOL];\n }\n}\n\n//# sourceMappingURL=isVar.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = gatherSequenceExpressions;\nvar _getBindingIdentifiers = require(\"../retrievers/getBindingIdentifiers.js\");\nvar _index = require(\"../validators/generated/index.js\");\nvar _index2 = require(\"../builders/generated/index.js\");\nvar _productions = require(\"../builders/productions.js\");\nvar _cloneNode = require(\"../clone/cloneNode.js\");\n;\nfunction gatherSequenceExpressions(nodes, declars) {\n const exprs = [];\n let ensureLastUndefined = true;\n for (const node of nodes) {\n if (!(0, _index.isEmptyStatement)(node)) {\n ensureLastUndefined = false;\n }\n if ((0, _index.isExpression)(node)) {\n exprs.push(node);\n } else if ((0, _index.isExpressionStatement)(node)) {\n exprs.push(node.expression);\n } else if ((0, _index.isVariableDeclaration)(node)) {\n if (node.kind !== \"var\") return;\n for (const declar of node.declarations) {\n const bindings = (0, _getBindingIdentifiers.default)(declar);\n for (const key of Object.keys(bindings)) {\n declars.push({\n kind: node.kind,\n id: (0, _cloneNode.default)(bindings[key])\n });\n }\n if (declar.init) {\n exprs.push((0, _index2.assignmentExpression)(\"=\", declar.id, declar.init));\n }\n }\n ensureLastUndefined = true;\n } else if ((0, _index.isIfStatement)(node)) {\n const consequent = node.consequent ? gatherSequenceExpressions([node.consequent], declars) : (0, _productions.buildUndefinedNode)();\n const alternate = node.alternate ? gatherSequenceExpressions([node.alternate], declars) : (0, _productions.buildUndefinedNode)();\n if (!consequent || !alternate) return;\n exprs.push((0, _index2.conditionalExpression)(node.test, consequent, alternate));\n } else if ((0, _index.isBlockStatement)(node)) {\n const body = gatherSequenceExpressions(node.body, declars);\n if (!body) return;\n exprs.push(body);\n } else if ((0, _index.isEmptyStatement)(node)) {\n if (nodes.indexOf(node) === 0) {\n ensureLastUndefined = true;\n }\n } else {\n return;\n }\n }\n if (ensureLastUndefined) {\n exprs.push((0, _productions.buildUndefinedNode)());\n }\n if (exprs.length === 1) {\n return exprs[0];\n } else {\n return (0, _index2.sequenceExpression)(exprs);\n }\n}\n\n//# sourceMappingURL=gatherSequenceExpressions.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toSequenceExpression;\nvar _gatherSequenceExpressions = require(\"./gatherSequenceExpressions.js\");\n;\nfunction toSequenceExpression(nodes, scope) {\n if (!(nodes != null && nodes.length)) return;\n const declars = [];\n const result = (0, _gatherSequenceExpressions.default)(nodes, declars);\n if (!result) return;\n for (const declar of declars) {\n scope.push(declar);\n }\n return result;\n}\n\n//# sourceMappingURL=toSequenceExpression.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _exportNames = {\n react: true,\n assertNode: true,\n createTypeAnnotationBasedOnTypeof: true,\n createUnionTypeAnnotation: true,\n createFlowUnionType: true,\n createTSUnionType: true,\n cloneNode: true,\n clone: true,\n cloneDeep: true,\n cloneDeepWithoutLoc: true,\n cloneWithoutLoc: true,\n addComment: true,\n addComments: true,\n inheritInnerComments: true,\n inheritLeadingComments: true,\n inheritsComments: true,\n inheritTrailingComments: true,\n removeComments: true,\n ensureBlock: true,\n toBindingIdentifierName: true,\n toBlock: true,\n toComputedKey: true,\n toExpression: true,\n toIdentifier: true,\n toKeyAlias: true,\n toStatement: true,\n valueToNode: true,\n appendToMemberExpression: true,\n inherits: true,\n prependToMemberExpression: true,\n removeProperties: true,\n removePropertiesDeep: true,\n removeTypeDuplicates: true,\n getAssignmentIdentifiers: true,\n getBindingIdentifiers: true,\n getOuterBindingIdentifiers: true,\n getFunctionName: true,\n traverse: true,\n traverseFast: true,\n shallowEqual: true,\n is: true,\n isBinding: true,\n isBlockScoped: true,\n isImmutable: true,\n isLet: true,\n isNode: true,\n isNodesEquivalent: true,\n isPlaceholderType: true,\n isReferenced: true,\n isScope: true,\n isSpecifierDefault: true,\n isType: true,\n isValidES3Identifier: true,\n isValidIdentifier: true,\n isVar: true,\n matchesPattern: true,\n validate: true,\n buildMatchMemberExpression: true,\n __internal__deprecationWarning: true\n};\nObject.defineProperty(exports, \"__internal__deprecationWarning\", {\n enumerable: true,\n get: function () {\n return _deprecationWarning.default;\n }\n});\nObject.defineProperty(exports, \"addComment\", {\n enumerable: true,\n get: function () {\n return _addComment.default;\n }\n});\nObject.defineProperty(exports, \"addComments\", {\n enumerable: true,\n get: function () {\n return _addComments.default;\n }\n});\nObject.defineProperty(exports, \"appendToMemberExpression\", {\n enumerable: true,\n get: function () {\n return _appendToMemberExpression.default;\n }\n});\nObject.defineProperty(exports, \"assertNode\", {\n enumerable: true,\n get: function () {\n return _assertNode.default;\n }\n});\nObject.defineProperty(exports, \"buildMatchMemberExpression\", {\n enumerable: true,\n get: function () {\n return _buildMatchMemberExpression.default;\n }\n});\nObject.defineProperty(exports, \"clone\", {\n enumerable: true,\n get: function () {\n return _clone.default;\n }\n});\nObject.defineProperty(exports, \"cloneDeep\", {\n enumerable: true,\n get: function () {\n return _cloneDeep.default;\n }\n});\nObject.defineProperty(exports, \"cloneDeepWithoutLoc\", {\n enumerable: true,\n get: function () {\n return _cloneDeepWithoutLoc.default;\n }\n});\nObject.defineProperty(exports, \"cloneNode\", {\n enumerable: true,\n get: function () {\n return _cloneNode.default;\n }\n});\nObject.defineProperty(exports, \"cloneWithoutLoc\", {\n enumerable: true,\n get: function () {\n return _cloneWithoutLoc.default;\n }\n});\nObject.defineProperty(exports, \"createFlowUnionType\", {\n enumerable: true,\n get: function () {\n return _createFlowUnionType.default;\n }\n});\nObject.defineProperty(exports, \"createTSUnionType\", {\n enumerable: true,\n get: function () {\n return _createTSUnionType.default;\n }\n});\nObject.defineProperty(exports, \"createTypeAnnotationBasedOnTypeof\", {\n enumerable: true,\n get: function () {\n return _createTypeAnnotationBasedOnTypeof.default;\n }\n});\nObject.defineProperty(exports, \"createUnionTypeAnnotation\", {\n enumerable: true,\n get: function () {\n return _createFlowUnionType.default;\n }\n});\nObject.defineProperty(exports, \"ensureBlock\", {\n enumerable: true,\n get: function () {\n return _ensureBlock.default;\n }\n});\nObject.defineProperty(exports, \"getAssignmentIdentifiers\", {\n enumerable: true,\n get: function () {\n return _getAssignmentIdentifiers.default;\n }\n});\nObject.defineProperty(exports, \"getBindingIdentifiers\", {\n enumerable: true,\n get: function () {\n return _getBindingIdentifiers.default;\n }\n});\nObject.defineProperty(exports, \"getFunctionName\", {\n enumerable: true,\n get: function () {\n return _getFunctionName.default;\n }\n});\nObject.defineProperty(exports, \"getOuterBindingIdentifiers\", {\n enumerable: true,\n get: function () {\n return _getOuterBindingIdentifiers.default;\n }\n});\nObject.defineProperty(exports, \"inheritInnerComments\", {\n enumerable: true,\n get: function () {\n return _inheritInnerComments.default;\n }\n});\nObject.defineProperty(exports, \"inheritLeadingComments\", {\n enumerable: true,\n get: function () {\n return _inheritLeadingComments.default;\n }\n});\nObject.defineProperty(exports, \"inheritTrailingComments\", {\n enumerable: true,\n get: function () {\n return _inheritTrailingComments.default;\n }\n});\nObject.defineProperty(exports, \"inherits\", {\n enumerable: true,\n get: function () {\n return _inherits.default;\n }\n});\nObject.defineProperty(exports, \"inheritsComments\", {\n enumerable: true,\n get: function () {\n return _inheritsComments.default;\n }\n});\nObject.defineProperty(exports, \"is\", {\n enumerable: true,\n get: function () {\n return _is.default;\n }\n});\nObject.defineProperty(exports, \"isBinding\", {\n enumerable: true,\n get: function () {\n return _isBinding.default;\n }\n});\nObject.defineProperty(exports, \"isBlockScoped\", {\n enumerable: true,\n get: function () {\n return _isBlockScoped.default;\n }\n});\nObject.defineProperty(exports, \"isImmutable\", {\n enumerable: true,\n get: function () {\n return _isImmutable.default;\n }\n});\nObject.defineProperty(exports, \"isLet\", {\n enumerable: true,\n get: function () {\n return _isLet.default;\n }\n});\nObject.defineProperty(exports, \"isNode\", {\n enumerable: true,\n get: function () {\n return _isNode.default;\n }\n});\nObject.defineProperty(exports, \"isNodesEquivalent\", {\n enumerable: true,\n get: function () {\n return _isNodesEquivalent.default;\n }\n});\nObject.defineProperty(exports, \"isPlaceholderType\", {\n enumerable: true,\n get: function () {\n return _isPlaceholderType.default;\n }\n});\nObject.defineProperty(exports, \"isReferenced\", {\n enumerable: true,\n get: function () {\n return _isReferenced.default;\n }\n});\nObject.defineProperty(exports, \"isScope\", {\n enumerable: true,\n get: function () {\n return _isScope.default;\n }\n});\nObject.defineProperty(exports, \"isSpecifierDefault\", {\n enumerable: true,\n get: function () {\n return _isSpecifierDefault.default;\n }\n});\nObject.defineProperty(exports, \"isType\", {\n enumerable: true,\n get: function () {\n return _isType.default;\n }\n});\nObject.defineProperty(exports, \"isValidES3Identifier\", {\n enumerable: true,\n get: function () {\n return _isValidES3Identifier.default;\n }\n});\nObject.defineProperty(exports, \"isValidIdentifier\", {\n enumerable: true,\n get: function () {\n return _isValidIdentifier.default;\n }\n});\nObject.defineProperty(exports, \"isVar\", {\n enumerable: true,\n get: function () {\n return _isVar.default;\n }\n});\nObject.defineProperty(exports, \"matchesPattern\", {\n enumerable: true,\n get: function () {\n return _matchesPattern.default;\n }\n});\nObject.defineProperty(exports, \"prependToMemberExpression\", {\n enumerable: true,\n get: function () {\n return _prependToMemberExpression.default;\n }\n});\nexports.react = void 0;\nObject.defineProperty(exports, \"removeComments\", {\n enumerable: true,\n get: function () {\n return _removeComments.default;\n }\n});\nObject.defineProperty(exports, \"removeProperties\", {\n enumerable: true,\n get: function () {\n return _removeProperties.default;\n }\n});\nObject.defineProperty(exports, \"removePropertiesDeep\", {\n enumerable: true,\n get: function () {\n return _removePropertiesDeep.default;\n }\n});\nObject.defineProperty(exports, \"removeTypeDuplicates\", {\n enumerable: true,\n get: function () {\n return _removeTypeDuplicates.default;\n }\n});\nObject.defineProperty(exports, \"shallowEqual\", {\n enumerable: true,\n get: function () {\n return _shallowEqual.default;\n }\n});\nObject.defineProperty(exports, \"toBindingIdentifierName\", {\n enumerable: true,\n get: function () {\n return _toBindingIdentifierName.default;\n }\n});\nObject.defineProperty(exports, \"toBlock\", {\n enumerable: true,\n get: function () {\n return _toBlock.default;\n }\n});\nObject.defineProperty(exports, \"toComputedKey\", {\n enumerable: true,\n get: function () {\n return _toComputedKey.default;\n }\n});\nObject.defineProperty(exports, \"toExpression\", {\n enumerable: true,\n get: function () {\n return _toExpression.default;\n }\n});\nObject.defineProperty(exports, \"toIdentifier\", {\n enumerable: true,\n get: function () {\n return _toIdentifier.default;\n }\n});\nObject.defineProperty(exports, \"toKeyAlias\", {\n enumerable: true,\n get: function () {\n return _toKeyAlias.default;\n }\n});\nObject.defineProperty(exports, \"toStatement\", {\n enumerable: true,\n get: function () {\n return _toStatement.default;\n }\n});\nObject.defineProperty(exports, \"traverse\", {\n enumerable: true,\n get: function () {\n return _traverse.default;\n }\n});\nObject.defineProperty(exports, \"traverseFast\", {\n enumerable: true,\n get: function () {\n return _traverseFast.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function () {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"valueToNode\", {\n enumerable: true,\n get: function () {\n return _valueToNode.default;\n }\n});\nvar _isReactComponent = require(\"./validators/react/isReactComponent.js\");\nvar _isCompatTag = require(\"./validators/react/isCompatTag.js\");\nvar _buildChildren = require(\"./builders/react/buildChildren.js\");\nvar _assertNode = require(\"./asserts/assertNode.js\");\nvar _index = require(\"./asserts/generated/index.js\");\nObject.keys(_index).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _index[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index[key];\n }\n });\n});\nvar _createTypeAnnotationBasedOnTypeof = require(\"./builders/flow/createTypeAnnotationBasedOnTypeof.js\");\nvar _createFlowUnionType = require(\"./builders/flow/createFlowUnionType.js\");\nvar _createTSUnionType = require(\"./builders/typescript/createTSUnionType.js\");\nvar _productions = require(\"./builders/productions.js\");\nObject.keys(_productions).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _productions[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _productions[key];\n }\n });\n});\nvar _index2 = require(\"./builders/generated/index.js\");\nObject.keys(_index2).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _index2[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index2[key];\n }\n });\n});\nvar _cloneNode = require(\"./clone/cloneNode.js\");\nvar _clone = require(\"./clone/clone.js\");\nvar _cloneDeep = require(\"./clone/cloneDeep.js\");\nvar _cloneDeepWithoutLoc = require(\"./clone/cloneDeepWithoutLoc.js\");\nvar _cloneWithoutLoc = require(\"./clone/cloneWithoutLoc.js\");\nvar _addComment = require(\"./comments/addComment.js\");\nvar _addComments = require(\"./comments/addComments.js\");\nvar _inheritInnerComments = require(\"./comments/inheritInnerComments.js\");\nvar _inheritLeadingComments = require(\"./comments/inheritLeadingComments.js\");\nvar _inheritsComments = require(\"./comments/inheritsComments.js\");\nvar _inheritTrailingComments = require(\"./comments/inheritTrailingComments.js\");\nvar _removeComments = require(\"./comments/removeComments.js\");\nvar _index3 = require(\"./constants/generated/index.js\");\nObject.keys(_index3).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _index3[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index3[key];\n }\n });\n});\nvar _index4 = require(\"./constants/index.js\");\nObject.keys(_index4).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _index4[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index4[key];\n }\n });\n});\nvar _ensureBlock = require(\"./converters/ensureBlock.js\");\nvar _toBindingIdentifierName = require(\"./converters/toBindingIdentifierName.js\");\nvar _toBlock = require(\"./converters/toBlock.js\");\nvar _toComputedKey = require(\"./converters/toComputedKey.js\");\nvar _toExpression = require(\"./converters/toExpression.js\");\nvar _toIdentifier = require(\"./converters/toIdentifier.js\");\nvar _toKeyAlias = require(\"./converters/toKeyAlias.js\");\nvar _toStatement = require(\"./converters/toStatement.js\");\nvar _valueToNode = require(\"./converters/valueToNode.js\");\nvar _index5 = require(\"./definitions/index.js\");\nObject.keys(_index5).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _index5[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index5[key];\n }\n });\n});\nvar _appendToMemberExpression = require(\"./modifications/appendToMemberExpression.js\");\nvar _inherits = require(\"./modifications/inherits.js\");\nvar _prependToMemberExpression = require(\"./modifications/prependToMemberExpression.js\");\nvar _removeProperties = require(\"./modifications/removeProperties.js\");\nvar _removePropertiesDeep = require(\"./modifications/removePropertiesDeep.js\");\nvar _removeTypeDuplicates = require(\"./modifications/flow/removeTypeDuplicates.js\");\nvar _getAssignmentIdentifiers = require(\"./retrievers/getAssignmentIdentifiers.js\");\nvar _getBindingIdentifiers = require(\"./retrievers/getBindingIdentifiers.js\");\nvar _getOuterBindingIdentifiers = require(\"./retrievers/getOuterBindingIdentifiers.js\");\nvar _getFunctionName = require(\"./retrievers/getFunctionName.js\");\nvar _traverse = require(\"./traverse/traverse.js\");\nObject.keys(_traverse).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _traverse[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _traverse[key];\n }\n });\n});\nvar _traverseFast = require(\"./traverse/traverseFast.js\");\nvar _shallowEqual = require(\"./utils/shallowEqual.js\");\nvar _is = require(\"./validators/is.js\");\nvar _isBinding = require(\"./validators/isBinding.js\");\nvar _isBlockScoped = require(\"./validators/isBlockScoped.js\");\nvar _isImmutable = require(\"./validators/isImmutable.js\");\nvar _isLet = require(\"./validators/isLet.js\");\nvar _isNode = require(\"./validators/isNode.js\");\nvar _isNodesEquivalent = require(\"./validators/isNodesEquivalent.js\");\nvar _isPlaceholderType = require(\"./validators/isPlaceholderType.js\");\nvar _isReferenced = require(\"./validators/isReferenced.js\");\nvar _isScope = require(\"./validators/isScope.js\");\nvar _isSpecifierDefault = require(\"./validators/isSpecifierDefault.js\");\nvar _isType = require(\"./validators/isType.js\");\nvar _isValidES3Identifier = require(\"./validators/isValidES3Identifier.js\");\nvar _isValidIdentifier = require(\"./validators/isValidIdentifier.js\");\nvar _isVar = require(\"./validators/isVar.js\");\nvar _matchesPattern = require(\"./validators/matchesPattern.js\");\nvar _validate = require(\"./validators/validate.js\");\nvar _buildMatchMemberExpression = require(\"./validators/buildMatchMemberExpression.js\");\nvar _index6 = require(\"./validators/generated/index.js\");\nObject.keys(_index6).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _index6[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index6[key];\n }\n });\n});\nvar _deprecationWarning = require(\"./utils/deprecationWarning.js\");\nvar _toSequenceExpression = require(\"./converters/toSequenceExpression.js\");\nconst react = exports.react = {\n isReactComponent: _isReactComponent.default,\n isCompatTag: _isCompatTag.default,\n buildChildren: _buildChildren.default\n};\n{\n exports.toSequenceExpression = _toSequenceExpression.default;\n}\nif (process.env.BABEL_TYPES_8_BREAKING) {\n console.warn(\"BABEL_TYPES_8_BREAKING is not supported anymore. Use the latest Babel 8.0.0 pre-release instead!\");\n}\n\n//# sourceMappingURL=index.js.map\n","import MagicString from 'magic-string';\nimport type { File, Node, CallExpression } from '@babel/types';\nimport { VISITOR_KEYS } from '@babel/types';\n\nconst collectRenderCalls = (ast: Node, calls: CallExpression[]): void => {\n const visit = (node: Node | null | undefined) => {\n if (!node) return;\n\n if (\n node.type === 'CallExpression' &&\n node.callee.type === 'Identifier' &&\n node.callee.name === 'render'\n ) {\n calls.push(node as CallExpression);\n }\n\n const keys = VISITOR_KEYS[node.type] ?? [];\n for (const key of keys) {\n const value = (node as any)[key];\n if (Array.isArray(value)) {\n for (const child of value) {\n if (child && typeof child.type === 'string') {\n visit(child as Node);\n }\n }\n } else if (value && typeof value.type === 'string') {\n visit(value as Node);\n }\n }\n };\n\n visit(ast);\n};\n\nexport const wrapRenderCalls = (\n ms: MagicString,\n ast: File,\n code: string\n): boolean => {\n const calls: CallExpression[] = [];\n collectRenderCalls(ast, calls);\n\n if (!calls.length) return false;\n\n const sorted = calls\n .map(node => ({\n start: node.start ?? 0,\n end: node.end ?? 0,\n }))\n .filter(({ start, end }) => start >= 0 && end > start)\n .sort((a, b) => b.start - a.start);\n\n for (const { start, end } of sorted) {\n const original = code.slice(start, end);\n ms.overwrite(start, end, `__lithentRenderOnce(() => ${original})`);\n }\n\n return true;\n};\n","import type {\n File,\n Node,\n CallExpression,\n Identifier,\n ObjectPattern,\n ArrayPattern,\n} from '@babel/types';\n\nexport type MountInfo = {\n insertPos: number;\n propsExpression: string;\n componentName: string | null;\n declarationEnd: number;\n};\n\nconst isMountCall = (node: Node): node is CallExpression =>\n node.type === 'CallExpression' &&\n node.callee.type === 'Identifier' &&\n node.callee.name === 'mount';\n\nconst sliceWithoutType = (\n code: string,\n node: Node & { typeAnnotation?: Node | null }\n): string => {\n const start = node.start ?? 0;\n const end = node.typeAnnotation?.start ?? node.end ?? 0;\n return code.slice(start, end);\n};\n\nconst extractPropsExpression = (\n propsParam: Identifier | ObjectPattern | ArrayPattern | undefined,\n code: string\n): string => {\n if (!propsParam) {\n return 'props';\n }\n\n switch (propsParam.type) {\n case 'Identifier':\n return propsParam.name;\n case 'ObjectPattern':\n case 'ArrayPattern':\n return sliceWithoutType(code, propsParam);\n default:\n return 'props';\n }\n};\n\nexport const collectComponentMounts = (\n ast: File,\n code: string\n): MountInfo[] => {\n const results: MountInfo[] = [];\n\n const inspectDeclaration = (node: any) => {\n if (node.type !== 'VariableDeclaration' || node.declarations.length !== 1) {\n return;\n }\n\n const declaration = node.declarations[0];\n if (\n !declaration.init ||\n !isMountCall(declaration.init) ||\n declaration.init.arguments.length === 0\n ) {\n return;\n }\n\n const firstArg = declaration.init.arguments[0];\n if (\n firstArg.type !== 'ArrowFunctionExpression' ||\n firstArg.body.type !== 'BlockStatement'\n ) {\n return;\n }\n\n const block = firstArg.body;\n const propsParam = firstArg.params[1] as\n | Identifier\n | ObjectPattern\n | ArrayPattern\n | undefined;\n const propsExpression = extractPropsExpression(propsParam, code);\n const insertPos =\n block.body.length > 0\n ? (block.body[0].start ?? block.start ?? 0)\n : (block.start ?? 0);\n const componentName =\n declaration.id && declaration.id.type === 'Identifier'\n ? declaration.id.name\n : null;\n const declarationEnd = node.end ?? block.end ?? insertPos;\n\n results.push({\n insertPos,\n propsExpression,\n componentName,\n declarationEnd,\n });\n };\n\n for (const statement of ast.program.body) {\n if (statement.type === 'VariableDeclaration') {\n inspectDeclaration(statement);\n continue;\n }\n\n if (\n statement.type === 'ExportNamedDeclaration' &&\n statement.declaration &&\n statement.declaration.type === 'VariableDeclaration'\n ) {\n inspectDeclaration(statement.declaration);\n }\n }\n\n return results;\n};\n","import MagicString from 'magic-string';\nimport { createHmrBootstrapBlock } from './strings';\nimport type { MarkerTransformOptions, HmrTransformResult } from './types';\nimport { analyzeMarker } from './shared';\nimport { stitchComponentRegistration } from './transform/componentRegister';\nimport { wrapRenderCalls } from './transform/renderGuard';\nimport { collectComponentMounts } from './utils/ast/componentCollector';\n\nexport const transformWithMarker = (\n options: MarkerTransformOptions\n): HmrTransformResult => {\n const analysis = analyzeMarker(options);\n const {\n match,\n targetExports,\n shouldTransform,\n importInsertionPos,\n headerSnippet,\n } = analysis;\n\n if (!shouldTransform || !match) {\n return { transformed: false, code: options.code, map: null };\n }\n\n const mounts = collectComponentMounts(analysis.ast, options.code);\n const componentNames = Array.from(\n new Set(\n mounts\n .map(mount => mount.componentName)\n .filter((name): name is string => !!name)\n )\n );\n\n const ms = new MagicString(options.code);\n wrapRenderCalls(ms, analysis.ast, options.code);\n const transformBlock = createHmrBootstrapBlock(\n targetExports,\n componentNames\n ).trimStart();\n\n if (headerSnippet) {\n ms.appendLeft(importInsertionPos, headerSnippet);\n }\n\n const precedingChar =\n match.index > 0 ? options.code[match.index - 1] : undefined;\n const needsLeadingNewline = match.index > 0 && precedingChar !== '\\n';\n const followingChar = options.code[match.index + match[0].length] ?? null;\n const trailingNewline = followingChar === '\\n' ? '\\n' : '\\n\\n';\n const blockSnippet = `${needsLeadingNewline ? '\\n' : ''}${transformBlock}${trailingNewline}`;\n\n ms.overwrite(match.index, match.index + match[0].length, blockSnippet);\n\n stitchComponentRegistration(ms, mounts, options.code, importInsertionPos);\n\n return {\n transformed: true,\n code: ms.toString(),\n map: ms.generateMap({ hires: true }),\n };\n};\n","import MagicString from 'magic-string';\nimport { createHmrBootstrapBlock } from './strings';\nimport type { BaseTransformOptions, HmrTransformResult } from './types';\nimport { analyzeNoMarker } from './shared';\nimport { stitchComponentRegistration } from './transform/componentRegister';\nimport { wrapRenderCalls } from './transform/renderGuard';\nimport { collectComponentMounts } from './utils/ast/componentCollector';\n\nexport const transformWithoutMarker = (\n options: BaseTransformOptions\n): HmrTransformResult => {\n const analysis = analyzeNoMarker(options);\n const {\n targetExports,\n shouldTransform,\n importInsertionPos,\n blockInsertionPos,\n headerSnippet,\n ast,\n } = analysis;\n\n if (!shouldTransform) {\n return { transformed: false, code: options.code, map: null };\n }\n\n const mounts = collectComponentMounts(ast, options.code);\n const componentNames = Array.from(\n new Set(\n mounts\n .map(mount => mount.componentName)\n .filter((name): name is string => !!name)\n )\n );\n\n const ms = new MagicString(options.code);\n wrapRenderCalls(ms, ast, options.code);\n const transformBlock = createHmrBootstrapBlock(\n targetExports,\n componentNames\n ).trimStart();\n\n const blockPrecedingChar =\n blockInsertionPos > 0 ? options.code[blockInsertionPos - 1] : undefined;\n const needsLeadingNewlineForBlock =\n blockInsertionPos > 0 && blockPrecedingChar !== '\\n';\n const blockSnippet = `${needsLeadingNewlineForBlock ? '\\n' : ''}${transformBlock}\\n\\n`;\n\n if (!headerSnippet && !blockSnippet.trim().length) {\n return { transformed: false, code: options.code, map: null };\n }\n\n if (headerSnippet) {\n if (blockInsertionPos === importInsertionPos) {\n ms.appendLeft(importInsertionPos, `${headerSnippet}${blockSnippet}`);\n } else {\n ms.appendLeft(importInsertionPos, headerSnippet);\n ms.appendLeft(blockInsertionPos, blockSnippet);\n }\n } else {\n ms.appendLeft(blockInsertionPos, blockSnippet);\n }\n\n stitchComponentRegistration(ms, mounts, options.code, importInsertionPos);\n\n return {\n transformed: true,\n code: ms.toString(),\n map: ms.generateMap({ hires: true }),\n };\n};\n","import { transformWithMarker } from './markerParse';\nimport { transformWithoutMarker } from './noMarkerParse';\nimport { analyzeMarker, analyzeNoMarker, shouldSkipTransform } from './shared';\nimport type {\n MarkerTransformOptions,\n BaseTransformOptions,\n HmrTransformResult,\n} from './types';\n\nexport const transformWithHmr = (\n options: MarkerTransformOptions\n): HmrTransformResult => {\n const markerResult = transformWithMarker(options);\n if (markerResult.transformed) {\n return markerResult;\n }\n\n const baseOptions: BaseTransformOptions = {\n code: options.code,\n boundaryImportSpecifier: options.boundaryImportSpecifier,\n tagFunctionImportSpecifier: options.tagFunctionImportSpecifier,\n };\n\n return transformWithoutMarker(baseOptions);\n};\n\nexport { analyzeMarker, analyzeNoMarker, shouldSkipTransform };\nexport { transformWithMarker, transformWithoutMarker };\nexport type {\n MarkerTransformOptions,\n BaseTransformOptions,\n HmrTransformResult,\n} from './types';\n"],"names":["comma","semicolon","chars","intToChar","charToInt","i","c","encodeInteger","builder","num","relative","delta","clamped","bufLength","td","buf","out","StringWriter","v","buffer","pos","encode","decoded","writer","sourcesIndex","sourceLine","sourceColumn","namesIndex","line","genColumn","j","segment","BitSet","arg","n","Chunk","start","end","content","chunk","index","fn","storeName","contentOnly","sliceIndex","originalBefore","originalAfter","newChunk","rx","trimmed","getBtoa","str","btoa","SourceMap","properties","guessIndent","code","lines","tabbed","spaced","min","previous","current","numSpaces","getRelativePath","from","to","fromParts","toParts","toString","isObject","thing","getLocator","source","originalLines","lineOffsets","m","column","wordRegex","Mappings","hires","sourceIndex","loc","nameIndex","contentLengthMinusOne","contentLineEnd","previousContentLineEnd","original","sourcemapLocations","originalCharIndex","first","charInHiresBoundary","warned","MagicString","string","options","char","cloned","originalChunk","clonedChunk","nextOriginalChunk","nextClonedChunk","names","mappings","locate","indentStr","pattern","isExcluded","exclusion","shouldIndentNextCharacter","replacer","match","charIndex","last","oldLeft","oldRight","newRight","newLeft","overwrite","lineIndex","lineStr","result","startChunk","containsEnd","sliceStart","sliceEnd","clone","previousChunk","searchForward","length","charType","aborted","searchValue","replacement","getReplacement","_","matchAll","re","matches","stringLength","_replacement","createHmrBootstrapBlock","targetExports","componentNames","normalizedTargets","lib","_objectWithoutPropertiesLoose","r","t","Position","col","SourceLocation","createPositionWithColumnOffset","position","columnOffset","ModuleErrors","NodeDescriptions","toNodeDescription","node","StandardErrors","kind","exportName","phase","localName","type","importName","radix","reservedWord","identifierName","ancestor","unexpected","labelName","missingPlugin","name","key","surrogateCharCode","keyword","expected","target","onlyValidPropertyName","StrictModeErrors","referenceName","bindingName","UnparenthesizedPipeBodyDescriptions","PipelineOperatorErrors","token","_excluded","defineHidden","obj","value","toParseErrorConstructor","toMessage","reasonCode","syntaxPlugin","hasMissingPlugin","oldReasonCodes","constructor","details","error","overrides","_overrides$loc","message","ParseErrorEnum","argument","parseErrorTemplates","ParseErrorConstructors","template","_ref","rest","Errors","createDefaultOptions","getOptions","opts","defineProperty","toUnenumerable","object","toESTreeLocation","estree","superClass","file","flags","regex","bigInt","directive","expression","stmt","isAsync","method","_stmt$expression$extr","allowDirectives","topLevel","afterBlockParse","directiveStatements","d","allowExpression","isMethod","isGenerator","isConstructor","allowDirectSuper","inClassScope","funcNode","typeParameters","args","propertyNode","prop","isPattern","isAccessor","startLoc","refExpressionErrors","isUnparenthesizedInAssign","binding","isBinding","isLHS","isLast","unfinished","optional","_ref2","decorators","exportStartLoc","_declaration$decorato","declaration","base","noCalls","state","chain","endLoc","TokContext","preserveSpace","types","beforeExpr","startsExpr","isLoop","isAssign","prefix","postfix","ExportedTokenType","label","conf","keywords$1","createKeyword","createToken","createBinop","binop","tokenTypeCounter","tokenTypes","tokenLabels","tokenBinops","tokenBeforeExprs","tokenStartsExprs","tokenPrefixes","_options$binop","_options$beforeExpr","_options$startsExpr","_options$prefix","createKeywordLike","_options$binop2","_options$beforeExpr2","_options$startsExpr2","_options$prefix2","tt","tokenIsIdentifier","tokenKeywordOrIdentifierIsKeyword","tokenIsKeywordOrIdentifier","tokenIsLiteralPropertyName","tokenComesBeforeExpression","tokenCanStartExpression","tokenIsAssignment","tokenIsFlowInterfaceOrTypeOrOpaque","tokenIsLoop","tokenIsKeyword","tokenIsOperator","tokenIsPostfix","tokenIsPrefix","tokenIsTSTypeOperator","tokenIsTSDeclarationStart","tokenLabelName","tokenOperatorPrecedence","tokenIsRightAssociative","tokenIsTemplate","getExportedToken","context","nonASCIIidentifierStartChars","nonASCIIidentifierChars","nonASCIIidentifierStart","nonASCIIidentifier","astralIdentifierStartCodes","astralIdentifierCodes","isInAstralSet","set","isIdentifierStart","isIdentifierChar","reservedWords","keywords","reservedWordsStrictSet","reservedWordsStrictBindSet","isReservedWord","word","inModule","isStrictReservedWord","isStrictBindOnlyReservedWord","isStrictBindReservedWord","isKeyword","isIteratorStart","next","next2","reservedWordLikeSet","canBeReservedWord","Scope","ScopeHandler","parser","scope","bindingType","id","FlowScope","FlowScopeHandler","BaseParser","sourcePos","offsetPos","pluginConfig","pluginName","pluginOptions","actualOptions","plugin","_this$plugins$get","setTrailingComments","comments","setLeadingComments","setInnerComments","adjustInnerComments","elements","commentWS","lastElement","CommentsParser","comment","commentsLen","commentStack","commentStackLength","lastCommentWS","nodeStart","commentEnd","commentStart","lineBreak","lineBreakG","isNewLine","hasNewLine","input","skipWhiteSpace","skipWhiteSpaceInLine","isWhitespace","State","strictMode","sourceType","startIndex","startLine","startColumn","_isDigit","forbiddenNumericSeparatorSiblings","isAllowedNumericSeparatorSibling","ch","readStringContents","lineStart","curLine","errors","initialPos","initialLineStart","initialCurLine","firstInvalidLoc","chunkStart","isStringEnd","res","readEscapedChar","inTemplate","throwOnInvalid","readHexChar","readCodePoint","startPos","octalStr","octal","len","forceLen","readInt","allowNumSeparator","bailOnError","forbiddenSiblings","isAllowedSibling","invalid","total","e","val","prev","buildPosition","VALID_REGEX_FLAGS","Token","Tokenizer","old","curr","cp","trail","strict","toParseError","at","startSkip","spaceStart","loop","commentWhitespace","prevType","nextPos","width","size","escaped","inClass","mods","isBigInt","startsWithDot","isFloat","hasExponent","isOctal","hasLeadingZero","integer","underscorePos","isDecimal","quote","opening","firstCode","escStart","identifierCheck","esc","pluginNames","ClassScope","ClassScopeHandler","oldClassScope","elementType","privateNames","loneAccessors","undefinedPrivateNames","redefined","accessor","oldStatic","newStatic","oldKind","newKind","classScope","ExpressionScope","ArrowHeadParsingScope","ParsingErrorClass","iterator","ExpressionScopeHandler","origin","stack","currentScope","newParameterDeclarationScope","newArrowHeadScope","newAsyncArrowScope","newExpressionScope","ProductionParameterHandler","functionFlags","UtilParser","enumerable","extra","nameStart","nameEnd","nextCh","allowAsi","oldState","abortSignal","failState","andThrow","shorthandAssignLoc","doubleProtoLoc","privateKeyLoc","optionalParametersLoc","hasErrors","oldLabels","oldExportedIdentifiers","oldInModule","oldScope","oldProdParam","oldExpressionScope","paramFlags","ExpressionErrors","Node","NodePrototype","newNode","keys","clonePlaceholder","cloneIdentifier","range","cloneStringLiteral","NodeUtils","locationNode","reservedTypes","FlowErrors","reservedType","memberName","enumName","invalidEnumType","explicitType","suggestion","unsupportedExportKind","isEsModuleType","bodyElement","hasTypeImportKind","exportSuggestions","partition","list","test","list1","list2","FLOW_PRAGMA_REGEX","flow","tok","oldInType","moduloLoc","predicate","typeNode","typeContainer","tmp","insideModule","bodyNode","body","hasModuleExport","finished","isClass","liberal","declare","requireDefault","nodeStartLoc","variance","ident","defaultRequired","typeParameter","cb","oldContext","oldNoAnonFunctionType","isStatic","valueNode","allowStatic","allowExact","allowSpread","allowProto","allowInexact","endDelim","exact","inexact","protoStartLoc","inexactStartLoc","lookahead","propOrInexact","property","paramCount","_startLoc","node2","typeAnnotation","lh","isThis","params","_this","isGroupedType","seenOptionalIndexedAccess","param","allowPrimitiveOverride","allowExpressionBody","expr","originalNoArrowAt","consequent","failed","valid","noArrowAt","disallowInvalid","arrows","_node$extra","parse","typeCastNode","declarationNode","hasNamespace","isStatement","optionalId","classBody","member","fullWord","exprList","trailingCommaLoc","isParenthesizedExpr","_expr$extra","close","canBePattern","isTuple","isParenthesized","allowsDirectSuper","implemented","left","specifier","isExport","importedIsString","isInTypeOnlyImport","isMaybeTypeOnly","firstIdent","specifierTypeKind","as_ident","specifierIsTypeImport","decl","call","afterLeftParse","_jsx","jsx","currentContext","_jsx2","_jsx3","arrow","abort","_arrowExpression$extr","arrowExpression","allowDuplicates","isArrowFunction","strictModeChanged","canBeArrow","subscriptState","targs","program","fileNode","commentSkip","shiftToFirstNonWhiteSpace","ch2","ch3","enumContext","endOfInit","literal","init","expectedType","seenNames","members","hasUnknownMembers","memberNode","initializedMembers","defaultedMembers","nameLoc","empty","boolsLen","numsLen","strsLen","defaultedLen","afterNext","entities","JsxErrors","openingTagName","HTMLEntity","isFragment","getQualifiedJSXName","normalizeCRLF","codePoint","count","semi","desc","entity","previousContext","attributes","children","openingElement","closingElement","contents","newContext","TypeScriptScope","TypeScriptScopeHandler","allowShadow","isConst","wasConst","unwrapParenthesizedExpression","LValParser","_node$extra3","parenthesized","_node$extra2","elt","element","closeCharCode","allowEmpty","elts","_left","checkClashes","hasParenthesizedAncestor","_expression$extra","isOptionalMemberExpression","validity","ParseErrorClass","isParenthesizedExpression","nextAncestor","child","identifier","allowPattern","nonNull","x","assert","TSErrors","methodName","propertyName","modifier","modifiers","orderedModifiers","typeParameterName","keywordTypeFromName","tsIsAccessModifier","tsIsVarianceAnnotations","typescript","allowedModifiers","stopOnStartOfClassStaticBlock","disallowedModifiers","errorTemplate","modified","enforceOrder","before","after","incompatible","mod1","mod2","parseElement","refTrailingCommaPos","expectSuccess","trailingCommaPos","bracket","skipFirstToken","lhs","parseModifiers","returnToken","signature","returnTokenRequired","paramsKey","returnTypeKey","readonly","nodeAny","firstParameter","idx","seenOptionalElement","elementNode","restStartLoc","labeled","chAfterWord","wordName","typeOrLabel","labeledNode","optionalTypeNode","restNode","abstract","thisKeyword","nextToken","nodeType","operator","constraint","parseConstituentType","hasLeadingOperator","previousErrorCount","asserts","thisTypePredicate","typePredicateVariable","containsEsc","eatColon","originalStartLoc","delimitedList","oldInDisallowConditionalTypesContext","nested","inner","maybeDefaultIdentifier","moduleReference","f","nany","startType","mod","oldMaybeInArrowParameters","accessibility","override","pp","bodilessType","items","isInParens","nonNullExpression","isOptionalCall","missingParenErrorLoc","asyncArrowFn","typeArguments","tokenType","_callee$extra","callee","leftStartLoc","minPrec","isSatisfies","checkKeywords","importNode","nodeImportEquals","assign","cls","allowMissingInitializer","isAmbientContext","isValidAmbientConstInitializer","callParseClassMemberWithIsStatic","methodOrProp","isDeclare","_typeCast","_typeCast2","typeCast","_typeParameters","sawUnary","returnType","baseCount","firstParam","oldIsAmbientContext","oldStrict","oldInAbstractClass","isString","isInTypeExport","isImport","isInTypeOnlyImportExport","leftOfAsKey","rightOfAsKey","leftOfAs","rightOfAs","hasTypeSpecifier","canParseAsKeyword","firstAs","secondAs","kindKey","isPossiblyLiteralEnum","computed","isUncomputedMemberExpressionChain","isNumber","isNegativeNumber","PlaceholderErrors","placeholders","expectedNode","placeholder","isBreak","stmtPlaceholder","createNewLexicalScope","requireId","_specifiers","specifiers","v8intrinsic","v8IntrinsicStartLoc","PIPELINE_PROPOSALS","TOPIC_TOKENS","validatePlugins","pluginsMap","decoratorsBeforeExport","allowCallParenthesized","_pluginsMap$get","proposal","proposalList","p","tupleSyntaxIsHash","topicToken","tokenList","syntaxType","RECORD_AND_TUPLE_SYNTAX_TYPES","mixinPlugins","mixinPluginNames","ExpressionParser","isRecord","protoRef","potentialArrowAt","disallowIn","resultError","_resultError$loc","ownExpressionErrors","op","prec","logical","coalesce","finishedNode","nextOp","_body$extra","isAwait","update","isDelete","updateExpressionNode","maybeAsyncArrow","optionalChainMember","allowPlaceholder","nodeForExtra","oldInFSharpPipelineDirectBody","_call$extra","pipeProposal","lookaheadCh","topicTokenType","topicTokenValue","meta","isSource","innerStartLoc","spreadStartLoc","optionalCommaStartLoc","spreadNodeStartLoc","innerEndLoc","arrowNode","parenExpression","metaProp","isTagged","elemStart","elem","isTail","endOffset","elemEnd","curElt","quasis","substitutions","propHash","keyName","_params","finishedProp","isExpression","hasStrictModeDirective","nonSimple","formalParameters","isAwaitAllowed","delegating","childExpr","callback","outerContextTopicState","outerContextSoloAwaitState","ret","revertScopes","loopLabel","switchLabel","loneSurrogate","keywordRelationalOperator","babel7CompatTokens","tokens","hashEndPos","hashEndLoc","backquoteEnd","backquoteEndLoc","startToken","templateValue","templateElementEnd","templateElementEndLoc","endToken","StatementParser","finishedProgram","directiveLiteral","expressionValue","raw","endCh","allowLabeledFunction","allowDeclaration","allowFunctionDeclaration","nextTokenCharCode","maybeName","maybeDecorators","classNode","exportNode","_classNode$decorators","allowExport","paramsStartLoc","lab","awaitAt","startsWithLet","startsWithAwaitUsing","starsWithUsingDeclaration","isLetOrUsing","initNode","isForIn","startsWithAsync","isForOf","isHangingDeclaration","cases","cur","sawDefault","isCase","clause","directives","parsedNonDirective","isFor","declarations","hangingDeclaration","isDeclaration","hadSuperClass","publicMethod","privateMethod","publicProp","privateProp","accessorProp","publicMember","isPrivateName","isContextual","maybeContextualKw","isPrivate","maybeQuestionTokenStartLoc","_member$decorators","hasDefault","parseAfterDefault","hasStar","parseAfterNamespace","isFromRequired","hasSpecifiers","hasDeclaration","_node2$declaration","_ref$specifiers","isTypeExport","nextType","hasFrom","nextAfterFrom","expect","checkNames","isDefault","isFrom","_node$specifiers","_declaration$extra","exported","local","nodes","surrogate","singleBindingType","_node$assertions","nonDefaultNamedSpecifier","imported","phaseIdentifier","parseNext","_node$specifiers2","attrs","attrNames","useWith","importSpecifier","Parser","optionFlags","_options","getParser","ast","moduleError","parseExpression","generateExportedTokenTypes","internalTokenTypes","typeName","tokTypes","getParserClass","parserClassCache","pluginList","parse_1","collectExportNames","declarator","detectLithentUsage","watchedNames","importedName","collectHeaderInsert","sourceCode","boundaryImportSpecifier","tagFunctionImportSpecifier","importsToPrepend","hasBoundaryImport","hasTagImport","lastImportEnd","directiveEnd","firstImportStart","expressionStatement","importInsertionPos","blockInsertionPos","snippet","precedingChar","needsLeadingNewline","analyzeBase","inferredExports","headerSnippet","analyzeMarker","markerRegex","rawNames","analyzeNoMarker","shouldSkipTransform","stitchComponentRegistration","ms","mounts","needsMountCallback","needsGetComponentKey","pieces","joined","mount","insertPos","componentName","declarationEnd","hotStoreVar","storeSnippet","shallowEqual_1","shallowEqual","actual","deprecationWarning_1","deprecationWarning","warnings","oldName","newName","cacheKey","internal","trace","captureShortStackTrace","skip","stackTraceLimit","prepareStackTrace","stackTrace","err","shortStackTrace","frame","generated","isAnyTypeAnnotation","isArgumentPlaceholder","isArrayExpression","isArrayPattern","isArrayTypeAnnotation","isArrowFunctionExpression","isAssignmentExpression","isAssignmentPattern","isAwaitExpression","isBigIntLiteral","isBinary","isBinaryExpression","isBindExpression","isBlock","isBlockParent","isBlockStatement","isBooleanLiteral","isBooleanLiteralTypeAnnotation","isBooleanTypeAnnotation","isBreakStatement","isCallExpression","isCatchClause","isClassAccessorProperty","isClassBody","isClassDeclaration","isClassExpression","isClassImplements","isClassMethod","isClassPrivateMethod","isClassPrivateProperty","isClassProperty","isCompletionStatement","isConditional","isConditionalExpression","isContinueStatement","isDebuggerStatement","isDecimalLiteral","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","isExpressionStatement","isExpressionWrapper","isFile","isFlow","isFlowBaseAnnotation","isFlowDeclaration","isFlowPredicate","isFlowType","isForInStatement","isForOfStatement","isForStatement","isForXStatement","isFunction","isFunctionDeclaration","isFunctionExpression","isFunctionParameter","isFunctionParent","isFunctionTypeAnnotation","isFunctionTypeParam","isGenericTypeAnnotation","isIdentifier","isIfStatement","isImmutable","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","isLiteral","isLogicalExpression","isMemberExpression","isMetaProperty","isMiscellaneous","isMixedTypeAnnotation","isModuleDeclaration","isModuleExpression","isModuleSpecifier","isNewExpression","isNoop","isNullLiteral","isNullLiteralTypeAnnotation","isNullableTypeAnnotation","isNumberLiteral","isNumberLiteralTypeAnnotation","isNumberTypeAnnotation","isNumericLiteral","isObjectExpression","isObjectMember","isObjectMethod","isObjectPattern","isObjectProperty","isObjectTypeAnnotation","isObjectTypeCallProperty","isObjectTypeIndexer","isObjectTypeInternalSlot","isObjectTypeProperty","isObjectTypeSpreadProperty","isOpaqueType","isOptionalCallExpression","isOptionalIndexedAccessType","isPatternLike","isPipelineBareFunction","isPipelinePrimaryTopicReference","isPipelineTopicExpression","isPlaceholder","isProgram","isProperty","isPureish","isQualifiedTypeIdentifier","isRecordExpression","isRegExpLiteral","isRegexLiteral","isRestElement","isRestProperty","isReturnStatement","isScopable","isSequenceExpression","isSpreadElement","isSpreadProperty","isStandardized","isStaticBlock","isStringLiteral","isStringLiteralTypeAnnotation","isStringTypeAnnotation","isSuper","isSwitchCase","isSwitchStatement","isSymbolTypeAnnotation","isTSAnyKeyword","isTSArrayType","isTSAsExpression","isTSBaseType","isTSBigIntKeyword","isTSBooleanKeyword","isTSCallSignatureDeclaration","isTSConditionalType","isTSConstructSignatureDeclaration","isTSConstructorType","isTSDeclareFunction","isTSDeclareMethod","isTSEntityName","isTSEnumBody","isTSEnumDeclaration","isTSEnumMember","isTSExportAssignment","isTSExpressionWithTypeArguments","isTSExternalModuleReference","isTSFunctionType","isTSImportEqualsDeclaration","isTSImportType","isTSIndexSignature","isTSIndexedAccessType","isTSInferType","isTSInstantiationExpression","isTSInterfaceBody","isTSInterfaceDeclaration","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","isTupleExpression","isTupleTypeAnnotation","isTypeAlias","isTypeAnnotation","isTypeCastExpression","isTypeParameter","isTypeParameterDeclaration","isTypeParameterInstantiation","isTypeScript","isTypeofTypeAnnotation","isUnaryExpression","isUnaryLike","isUnionTypeAnnotation","isUpdateExpression","isUserWhitespacable","isV8IntrinsicIdentifier","isVariableDeclaration","isVariableDeclarator","isVariance","isVoidPattern","isVoidTypeAnnotation","isWhile","isWhileStatement","isWithStatement","isYieldExpression","_shallowEqual","require$$0","_deprecationWarning","require$$1","matchesPattern_1","matchesPattern","_index","isMemberExpressionLike","allowPartial","parts","_object","buildMatchMemberExpression_1","buildMatchMemberExpression","_matchesPattern","isReactComponent_1","_buildMatchMemberExpression","isReactComponent","isCompatTag_1","isCompatTag","tagName","isType_1","isType","targetType","aliases","isPlaceholderType_1","isPlaceholderType","placeholderType","is_1","is","_isType","_isPlaceholderType","require$$2","require$$3","isIdentifierName","isFirst","exports","_identifier","_keyword","isValidIdentifier_1","isValidIdentifier","_helperValidatorIdentifier","reserved","constants","LOGICAL_OPERATORS","BOOLEAN_NUMBER_BINARY_OPERATORS","EQUALITY_BINARY_OPERATORS","COMPARISON_BINARY_OPERATORS","BOOLEAN_BINARY_OPERATORS","NUMBER_BINARY_OPERATORS","BOOLEAN_UNARY_OPERATORS","NUMBER_UNARY_OPERATORS","STRING_UNARY_OPERATORS","utils","arrayOf","arrayOfType","assertEach","assertNodeOrValueType","assertNodeType","assertOneOf","assertOptionalChainStart","assertShape","assertValueType","defineType","defineAliasedType","validate","validateArrayOfType","validateOptional","validateOptionalType","validateType","_is","_validate","VISITOR_KEYS","ALIAS_KEYS","FLIPPED_ALIAS_KEYS","NODE_FIELDS","BUILDER_KEYS","DEPRECATED_KEYS","NODE_PARENT_VALIDATIONS","NODE_UNION_SHAPES__PRIVATE","getType","typeNames","childValidator","validator","subKey","values","allExpandedTypes","expandedTypes","valType","primitiveType","shape","_current","fns","validTypeOpts","validFieldKeys","store","defined","_store$opts$inherits$","additional","a","inherits","fields","field","def","visitor","k","alias","core","_isValidIdentifier","_helperStringParser","require$$4","_utils","require$$5","classMethodOrPropertyUnionShapeCommon","allowPrivateName","inOp","functionCommon","functionTypeAnnotationCommon","functionDeclarationCommon","parent","patternLikeCommon","parentKey","nonComp","normal","shorthand","listKey","withoutInit","constOrLetOrVar","usingOrAwaitUsing","parentIsForX","importAttributes","sourced","sourceless","lval","classMethodOrPropertyCommon","classMethodOrDeclareMethodCommon","unterminatedCalled","_core","defineInterfaceishType","PLACEHOLDERS","PLACEHOLDERS_ALIAS","PLACEHOLDERS_FLIPPED_ALIAS","_placeholders","bool","tSFunctionTypeAnnotationCommon","signatureDeclarationCommon","callConstructSignatureDeclaration","namedTypeElementCommon","tsKeywordTypes","fnOrCtrBase","unionOrIntersection","unaryExpression","unaryOperator","TSTypeExpression","deprecatedAliases","_deprecatedAliases","require$$6","require$$7","require$$8","deprecatedAlias","validate_1","validateChild","validateField","validateInternal","maybeNode","_NODE_PARENT_VALIDATI","_NODE_PARENT_VALIDATI2","lowercase","anyTypeAnnotation","argumentPlaceholder","arrayExpression","arrayPattern","arrayTypeAnnotation","arrowFunctionExpression","assignmentExpression","assignmentPattern","awaitExpression","bigIntLiteral","binaryExpression","bindExpression","blockStatement","booleanLiteral","booleanLiteralTypeAnnotation","booleanTypeAnnotation","breakStatement","callExpression","catchClause","classAccessorProperty","classDeclaration","classExpression","classImplements","classMethod","classPrivateMethod","classPrivateProperty","classProperty","conditionalExpression","continueStatement","debuggerStatement","decimalLiteral","declareClass","declareExportAllDeclaration","declareExportDeclaration","declareFunction","declareInterface","declareModule","declareModuleExports","declareOpaqueType","declareTypeAlias","declareVariable","declaredPredicate","decorator","doExpression","doWhileStatement","emptyStatement","emptyTypeAnnotation","enumBooleanBody","enumBooleanMember","enumDeclaration","enumDefaultedMember","enumNumberBody","enumNumberMember","enumStringBody","enumStringMember","enumSymbolBody","existsTypeAnnotation","exportAllDeclaration","exportDefaultDeclaration","exportDefaultSpecifier","exportNamedDeclaration","exportNamespaceSpecifier","exportSpecifier","forInStatement","forOfStatement","forStatement","functionDeclaration","functionExpression","functionTypeAnnotation","functionTypeParam","genericTypeAnnotation","ifStatement","_import","importAttribute","importDeclaration","importDefaultSpecifier","importExpression","importNamespaceSpecifier","indexedAccessType","inferredPredicate","interfaceDeclaration","interfaceExtends","interfaceTypeAnnotation","interpreterDirective","intersectionTypeAnnotation","jsxAttribute","jsxClosingElement","jsxClosingFragment","jsxElement","jsxEmptyExpression","jsxExpressionContainer","jsxFragment","jsxIdentifier","jsxMemberExpression","jsxNamespacedName","jsxOpeningElement","jsxOpeningFragment","jsxSpreadAttribute","jsxSpreadChild","jsxText","labeledStatement","logicalExpression","memberExpression","metaProperty","mixedTypeAnnotation","moduleExpression","newExpression","noop","nullLiteral","nullLiteralTypeAnnotation","nullableTypeAnnotation","NumberLiteral","numberLiteralTypeAnnotation","numberTypeAnnotation","numericLiteral","objectExpression","objectMethod","objectPattern","objectProperty","objectTypeAnnotation","objectTypeCallProperty","objectTypeIndexer","objectTypeInternalSlot","objectTypeProperty","objectTypeSpreadProperty","opaqueType","optionalCallExpression","optionalIndexedAccessType","optionalMemberExpression","parenthesizedExpression","pipelineBareFunction","pipelinePrimaryTopicReference","pipelineTopicExpression","privateName","qualifiedTypeIdentifier","recordExpression","regExpLiteral","RegexLiteral","restElement","RestProperty","returnStatement","sequenceExpression","spreadElement","SpreadProperty","staticBlock","stringLiteral","stringLiteralTypeAnnotation","stringTypeAnnotation","_super","switchCase","switchStatement","symbolTypeAnnotation","taggedTemplateExpression","templateElement","templateLiteral","thisExpression","thisTypeAnnotation","throwStatement","topicReference","tryStatement","tsAnyKeyword","tsArrayType","tsAsExpression","tsBigIntKeyword","tsBooleanKeyword","tsCallSignatureDeclaration","tsConditionalType","tsConstructSignatureDeclaration","tsConstructorType","tsDeclareFunction","tsDeclareMethod","tsEnumBody","tsEnumDeclaration","tsEnumMember","tsExportAssignment","tsExpressionWithTypeArguments","tsExternalModuleReference","tsFunctionType","tsImportEqualsDeclaration","tsImportType","tsIndexSignature","tsIndexedAccessType","tsInferType","tsInstantiationExpression","tsInterfaceBody","tsInterfaceDeclaration","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","tupleExpression","tupleTypeAnnotation","typeAlias","typeCastExpression","typeParameterDeclaration","typeParameterInstantiation","typeofTypeAnnotation","unionTypeAnnotation","updateExpression","v8IntrinsicIdentifier","variableDeclaration","variableDeclarator","voidPattern","voidTypeAnnotation","whileStatement","withStatement","yieldExpression","defs","right","_arguments","alternate","generator","async","interpreter","expressions","discriminant","block","handler","finalizer","_await","_static","tag","quasi","tail","delegate","_extends","supertype","indexers","callProperties","internalSlots","impltype","qualification","bound","_default","objectType","indexType","selfClosing","namespace","openingFragment","closingFragment","parameter","parameters","parameterName","exprName","elementTypes","checkType","extendsType","trueType","falseType","nameType","initializer","qualifier","uppercase","b","_lowercase","_uppercase","cleanJSXElementLiteralChild_1","cleanJSXElementLiteralChild","_index2","lastNonEmptyLine","isFirstLine","isLastLine","isLastNonEmptyLine","trimmedLine","buildChildren_1","buildChildren","_cleanJSXElementLiteralChild","isNode_1","isNode","assertNode_1","assertNode","_isNode","_node$type","assertAccessor","assertAnyTypeAnnotation","assertArgumentPlaceholder","assertArrayExpression","assertArrayPattern","assertArrayTypeAnnotation","assertArrowFunctionExpression","assertAssignmentExpression","assertAssignmentPattern","assertAwaitExpression","assertBigIntLiteral","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","assertDecimalLiteral","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","assertNoop","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","assertPipelineBareFunction","assertPipelinePrimaryTopicReference","assertPipelineTopicExpression","assertPlaceholder","assertPrivate","assertPrivateName","assertProgram","assertProperty","assertPureish","assertQualifiedTypeIdentifier","assertRecordExpression","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","assertTSConditionalType","assertTSConstructSignatureDeclaration","assertTSConstructorType","assertTSDeclareFunction","assertTSDeclareMethod","assertTSEntityName","assertTSEnumBody","assertTSEnumDeclaration","assertTSEnumMember","assertTSExportAssignment","assertTSExpressionWithTypeArguments","assertTSExternalModuleReference","assertTSFunctionType","assertTSImportEqualsDeclaration","assertTSImportType","assertTSIndexSignature","assertTSIndexedAccessType","assertTSInferType","assertTSInstantiationExpression","assertTSInterfaceBody","assertTSInterfaceDeclaration","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","assertTupleExpression","assertTupleTypeAnnotation","assertTypeAlias","assertTypeAnnotation","assertTypeCastExpression","assertTypeParameter","assertTypeParameterDeclaration","assertTypeParameterInstantiation","assertTypeScript","assertTypeofTypeAnnotation","assertUnaryExpression","assertUnaryLike","assertUnionTypeAnnotation","assertUpdateExpression","assertUserWhitespacable","assertV8IntrinsicIdentifier","assertVariableDeclaration","assertVariableDeclarator","assertVariance","assertVoidPattern","assertVoidTypeAnnotation","assertWhile","assertWhileStatement","assertWithStatement","assertYieldExpression","createTypeAnnotationBasedOnTypeof_1","createTypeAnnotationBasedOnTypeof","removeTypeDuplicates_1","removeTypeDuplicates","getQualifiedName","nodesIn","generics","bases","typeGroups","existing","baseType","genericName","createFlowUnionType_1","createFlowUnionType","_removeTypeDuplicates","flattened","typeArgumentsKey","existingTypeArguments","createTSUnionType_1","createTSUnionType","typeAnnotations","productions","buildUndefinedNode","cloneNode_1","cloneNode","hasOwn","cloneIfNode","deep","withoutLoc","commentsCache","cloneNodeInternal","cloneIfNodeOrArray","maybeCloneComments","cache","clone_1","_cloneNode","cloneDeep_1","cloneDeep","cloneDeepWithoutLoc_1","cloneDeepWithoutLoc","cloneWithoutLoc_1","cloneWithoutLoc","addComments_1","addComments","addComment_1","addComment","_addComments","inherit_1","inherit","inheritInnerComments_1","inheritInnerComments","_inherit","inheritLeadingComments_1","inheritLeadingComments","inheritTrailingComments_1","inheritTrailingComments","inheritsComments_1","inheritsComments","_inheritTrailingComments","_inheritLeadingComments","_inheritInnerComments","removeComments_1","removeComments","IMPORTOREXPORTDECLARATION_TYPES","toBlock_1","toBlock","blockNodes","ensureBlock_1","ensureBlock","_toBlock","toIdentifier_1","toIdentifier","toBindingIdentifierName_1","toBindingIdentifierName","_toIdentifier","toComputedKey_1","toComputedKey","toExpression_1","toExpression","traverseFast_1","traverseFast","_skip","_stop","enter","subNode","removeProperties_1","removeProperties","CLEAR_KEYS","CLEAR_KEYS_PLUS_COMMENTS","map","symbols","sym","removePropertiesDeep_1","removePropertiesDeep","_traverseFast","_removeProperties","tree","toKeyAlias_1","toKeyAlias","_removePropertiesDeep","toStatement_1","toStatement","ignore","mustHaveId","newType","valueToNode_1","valueToNode","objectToString","isRegExp","isPlainObject","proto","numerator","props","nodeKey","appendToMemberExpression_1","appendToMemberExpression","append","inherits_1","_inheritsComments","prependToMemberExpression_1","prependToMemberExpression","prepend","getAssignmentIdentifiers_1","getAssignmentIdentifiers","search","ids","getBindingIdentifiers_1","getBindingIdentifiers","duplicates","outerOnly","newBindingsOnly","getOuterBindingIdentifiers_1","_getBindingIdentifiers","getOuterBindingIdentifiers","getFunctionName_1","getFunctionName","getNameFromLiteralId","getObjectMemberKey","traverse_1","traverse","handlers","exit","traverseSimpleImpl","ancestors","isBinding_1","grandparent","isLet_1","isLet","BLOCK_SCOPED_SYMBOL","isBlockScoped_1","isBlockScoped","_isLet","isImmutable_1","isNodesEquivalent_1","isNodesEquivalent","visitorKeys","val_a","val_b","isReferenced_1","isReferenced","isScope_1","isScope","isSpecifierDefault_1","isSpecifierDefault","isValidES3Identifier_1","isValidES3Identifier","RESERVED_WORDS_ES3_ONLY","isVar_1","isVar","gatherSequenceExpressions_1","gatherSequenceExpressions","_productions","declars","exprs","ensureLastUndefined","declar","bindings","toSequenceExpression_1","toSequenceExpression","_gatherSequenceExpressions","_exportNames","_addComment","_appendToMemberExpression","_assertNode","_clone","_cloneDeep","_cloneDeepWithoutLoc","_cloneWithoutLoc","_createFlowUnionType","_createTSUnionType","_createTypeAnnotationBasedOnTypeof","_ensureBlock","_getAssignmentIdentifiers","_getFunctionName","_getOuterBindingIdentifiers","_inherits","_isBinding","_isBlockScoped","_isImmutable","_isNodesEquivalent","_isReferenced","_isScope","_isSpecifierDefault","_isValidES3Identifier","_isVar","_prependToMemberExpression","_removeComments","_toBindingIdentifierName","_toComputedKey","_toExpression","_toKeyAlias","_toStatement","_traverse","_valueToNode","_isReactComponent","_isCompatTag","_buildChildren","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","require$$21","_index3","require$$22","_index4","require$$23","require$$24","require$$25","require$$26","require$$27","require$$28","require$$29","require$$30","require$$31","require$$32","_index5","require$$33","require$$34","require$$35","require$$36","require$$37","require$$38","require$$39","require$$40","require$$41","require$$42","require$$43","require$$44","require$$45","require$$46","require$$47","require$$48","require$$49","require$$50","require$$51","require$$52","require$$53","require$$54","require$$55","require$$56","require$$57","require$$58","require$$59","require$$60","require$$61","require$$62","require$$63","require$$64","_index6","require$$65","require$$66","_toSequenceExpression","require$$67","collectRenderCalls","calls","visit","wrapRenderCalls","sorted","isMountCall","sliceWithoutType","_a","extractPropsExpression","propsParam","collectComponentMounts","results","inspectDeclaration","firstArg","propsExpression","statement","transformWithMarker","analysis","shouldTransform","transformBlock","trailingNewline","blockSnippet","transformWithoutMarker","blockPrecedingChar","transformWithHmr","markerResult","baseOptions"],"mappings":"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IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,KAAK,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,KAAK,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,KAAK,GAAG,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,MAAM,IAAI,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,KAAK,MAAM,IAAI,MAAM,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,MAAM,GAAG,MAAM,IAAI,GAAG,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,KAAK,MAAM,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,MAAM,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,MAAM,IAAI,GAAG,GAAG,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,GAAG,MAAM,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,MAAM,OAAO,IAAI,MAAM,GAAG,KAAK,GAAG,MAAM,IAAI,MAAM,IAAI,KAAK,MAAM,KAAK,MAAM,MAAM,GAAG,IAAI,GAC/oEC,KAAwB,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,KAAK,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,I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K;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAA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I,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,KAAK,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,KAAK,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,KAAK,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,KAAK,GAAG,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,MAAM,IAAI,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,KAAK,MAAM,IAAI,MAAM,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,MAAM,IAAI,IAAI,IAAI,KAAK,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,KAAK,MAAM,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,MAAM,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,MAAM,IAAI,GAAG,GAAG,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,GAAG,GAAG,KAAK,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,GAAG,MAAM,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,MAAM,OAAO,IAAI,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI,KAAK,MAAM,KAAK,MAAM,MAAM,GAAG,IAAI,GACntEC,KAAwB,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,KAAK,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,IAAI,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,MAAM,GAAG,GAAG,IAAI,OAAO,IAAI,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,GAAG,IAAI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","x_google_ignoreList":[0,1,3,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94]}
|